[tryton-debian-vcs] tryton-modules-party branch upstream updated. upstream/3.8.1-2-g0bb80ba

Mathias Behrle tryton-debian-vcs at alioth.debian.org
Thu Jun 2 16:20:11 UTC 2016


The following commit has been merged in the upstream branch:
https://alioth.debian.org/plugins/scmgit/cgi-bin/gitweb.cgi/?p=tryton/tryton-modules-party.git;a=commitdiff;h=upstream/3.8.1-2-g0bb80ba

commit 0bb80bab9a430175bc902c594f41f04452bcac25
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Fri May 27 18:35:23 2016 +0200

    Adding upstream version 4.0.1.
    
    Signed-off-by: Mathias Behrle <mathiasb at m9s.biz>

diff --git a/CHANGELOG b/CHANGELOG
index d89d8ad..9a64ec7 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 4.0.1 - 2016-05-11
+* Bug fixes (see mercurial logs for details)
+
 Version 4.0.0 - 2016-05-02
 * Bug fixes (see mercurial logs for details)
 * Add Python3 support
diff --git a/PKG-INFO b/PKG-INFO
index 94f8fff..6a736b6 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: trytond_party
-Version: 4.0.0
+Version: 4.0.1
 Summary: Tryton module with parties and addresses
 Home-page: http://www.tryton.org/
 Author: Tryton
diff --git a/locale/ca_ES.po b/locale/ca_ES.po
index 638db50..3bfdade 100644
--- a/locale/ca_ES.po
+++ b/locale/ca_ES.po
@@ -166,7 +166,7 @@ msgstr "ID"
 
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
-msgstr "Seqüència del tercer"
+msgstr "Seqüència de tercer"
 
 msgctxt "field:party.configuration,rec_name:"
 msgid "Name"
@@ -414,11 +414,11 @@ msgstr "Adreces"
 
 msgctxt "model:ir.action,name:act_category_list"
 msgid "Categories"
-msgstr "Categories"
+msgstr "Categories de tercer"
 
 msgctxt "model:ir.action,name:act_category_tree"
 msgid "Categories"
-msgstr "Categories"
+msgstr "Categories de tercer"
 
 msgctxt "model:ir.action,name:act_contact_mechanism_form"
 msgid "Contact Mechanisms"
@@ -462,7 +462,7 @@ msgstr "Categories"
 
 msgctxt "model:ir.ui.menu,name:menu_category_tree"
 msgid "Categories"
-msgstr "Categories"
+msgstr "Arbre de categories"
 
 msgctxt "model:ir.ui.menu,name:menu_configuration"
 msgid "Configuration"
@@ -566,7 +566,7 @@ msgstr "Adreces"
 
 msgctxt "view:party.category:"
 msgid "Categories"
-msgstr "Categories"
+msgstr "Categories de tercer"
 
 msgctxt "view:party.category:"
 msgid "Category"
diff --git a/locale/es_CO.po b/locale/es_CO.po
index 9de6bcd..3467988 100644
--- a/locale/es_CO.po
+++ b/locale/es_CO.po
@@ -24,7 +24,6 @@ msgctxt "error:party.contact_mechanism:"
 msgid "You can not modify the party of contact mechanism \"%s\"."
 msgstr "Usted no puede modificar los medios de contacto del tercero \"%s\" "
 
-#, fuzzy
 msgctxt "error:party.identifier:"
 msgid "Invalid VAT number \"%(code)s\" on party \"%(party)s\"."
 msgstr "Inválido número NIT \"%(vat)s\" en tercero \"%(party)s\"."
@@ -339,7 +338,7 @@ msgstr "ID"
 
 msgctxt "field:party.party,identifiers:"
 msgid "Identifiers"
-msgstr ""
+msgstr "Identificador"
 
 msgctxt "field:party.party,lang:"
 msgid "Language"
@@ -507,7 +506,7 @@ msgstr "Medio de Contacto"
 
 msgctxt "model:party.identifier,name:"
 msgid "Party Identifier"
-msgstr ""
+msgstr "Identificador de Tercero"
 
 msgctxt "model:party.party,name:"
 msgid "Party"
@@ -591,11 +590,11 @@ msgstr "Medios de Contacto"
 
 msgctxt "view:party.identifier:"
 msgid "Party Identifier"
-msgstr ""
+msgstr "Identificador de Tercero"
 
 msgctxt "view:party.identifier:"
 msgid "Party Identifiers"
-msgstr ""
+msgstr "Identificador de Tercero"
 
 msgctxt "view:party.party:"
 msgid "General"
diff --git a/locale/es_ES.po b/locale/es_ES.po
index 11ca21f..f9974c5 100644
--- a/locale/es_ES.po
+++ b/locale/es_ES.po
@@ -166,7 +166,7 @@ msgstr "ID"
 
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
-msgstr "Secuencia del tercero"
+msgstr "Secuencia de tercero"
 
 msgctxt "field:party.configuration,rec_name:"
 msgid "Name"
@@ -414,11 +414,11 @@ msgstr "Direcciones"
 
 msgctxt "model:ir.action,name:act_category_list"
 msgid "Categories"
-msgstr "Categorías"
+msgstr "Categorías de tercero"
 
 msgctxt "model:ir.action,name:act_category_tree"
 msgid "Categories"
-msgstr "Categorías"
+msgstr "Categorías de tercero"
 
 msgctxt "model:ir.action,name:act_contact_mechanism_form"
 msgid "Contact Mechanisms"
@@ -462,7 +462,7 @@ msgstr "Categorías"
 
 msgctxt "model:ir.ui.menu,name:menu_category_tree"
 msgid "Categories"
-msgstr "Categorías"
+msgstr "Árbol de categorías"
 
 msgctxt "model:ir.ui.menu,name:menu_configuration"
 msgid "Configuration"
@@ -566,7 +566,7 @@ msgstr "Direcciones"
 
 msgctxt "view:party.category:"
 msgid "Categories"
-msgstr "Categorías"
+msgstr "Categorías de tercero"
 
 msgctxt "view:party.category:"
 msgid "Category"
diff --git a/locale/lo_LA.po b/locale/lo_LA.po
index fae1dba..6330ad8 100644
--- a/locale/lo_LA.po
+++ b/locale/lo_LA.po
@@ -4,31 +4,31 @@ msgstr "Content-Type: text/plain; charset=utf-8\n"
 
 msgctxt "error:party.address:"
 msgid "You can not modify the party of address \"%s\"."
-msgstr "ເຈົາບໍ່ສາມາດປ່ຽນທີ່ຢູ່ຂອງພາກສ່ນີ້ໄດ້ \"%s\"."
+msgstr "ເຈົ້າບໍ່ສາມາດປ່ຽນທີ່ຢູ່ຂອງພາກສ່ວນ \"%s\" ນີ້ໄດ້."
 
 msgctxt "error:party.category:"
 msgid "Invalid category name \"%s\": You can not use \" / \" in name field."
-msgstr "ຊື່ຂນິດນີບໍຖຶກ \"%s\": ເຈົາ \" / \" ໄຊ້ບໍໄດ້ ໃນຊື່ຄົນ"
+msgstr "ຊື່ປະເພດ \"%s\" ນີ້ບໍ່ຖືກ : ທ່ານບໍ່ສາມາດໃຊ້ \" / \" ໄດ້ ໃນຫ້ອງຊື່ຄົນ"
 
 msgctxt "error:party.category:"
 msgid "The name of a party category must be unique by parent."
-msgstr "ຊື່ຂອງພາກສ່ວນນີຕ້ອງມີຊື່ດຽວຈາກພໍແມ່"
+msgstr "ຊື່ປະເພດຂອງພາກສ່ວນຕ້ອງບໍ່ຊໍ້າກັນ"
 
 msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
-msgstr "ການລໍລິການຊີວິດບໍມີ,ລອງອິກເທື່ອຫນ້າ"
+msgstr "ການບໍລິການລະບົບຂໍ້ມູນແລກປ່ຽນອາກອນບໍ່ທັນມີ, ລອງໃໝ່ອີກນໍາຫຼັງ."
 
 msgctxt "error:party.contact_mechanism:"
 msgid "You can not modify the party of contact mechanism \"%s\"."
-msgstr "ເຈົາບໍ່ສາມາດປ່ຽນລະບົບຜູ້ຕິດຕໍຂອງພາກສ່ນີ້ໄດ້ \"%s\"."
+msgstr "ທ່ານບໍ່ສາມາດປັບປຸງແກ້ໄຂພາກສ່ວນຂອງກົນໄກການຕິດຕໍ່ \"%s\" ນີ້ໄດ້."
 
 msgctxt "error:party.identifier:"
 msgid "Invalid VAT number \"%(code)s\" on party \"%(party)s\"."
-msgstr ""
+msgstr "ເລກ ອມພ \"%(code)s\" ໃນພາກສ່ວນ \"%(party)s\" ບໍ່ຖືກຕ້ອງ."
 
 msgctxt "error:party.party:"
 msgid "The code of the party must be unique."
-msgstr "ລະຫັດຂອງພາກສ່ວນນີຕ້ອງເປັນເອກກະລັກ"
+msgstr "ລະຫັດຂອງພາກສ່ວນຕ້ອງບໍ່ຊໍ້າກັນ"
 
 msgctxt "field:party.address,active:"
 msgid "Active"
@@ -36,7 +36,7 @@ msgstr "ໃຊ້ຢູ່"
 
 msgctxt "field:party.address,city:"
 msgid "City"
-msgstr "ເມືອງ"
+msgstr "ບ້ານ"
 
 msgctxt "field:party.address,country:"
 msgid "Country"
@@ -72,15 +72,15 @@ msgstr "ຊື່"
 
 msgctxt "field:party.address,sequence:"
 msgid "Sequence"
-msgstr "ບ່ອນທີ"
+msgstr "ລຳດັບ"
 
 msgctxt "field:party.address,street:"
 msgid "Street"
-msgstr "ບ້ານ"
+msgstr "ຖະໜົນ"
 
 msgctxt "field:party.address,streetbis:"
 msgid "Street (bis)"
-msgstr "ຖະໜົນ"
+msgstr "ຖະໜົນເຊື່ອມຕໍ່"
 
 msgctxt "field:party.address,subdivision:"
 msgid "Subdivision"
@@ -96,7 +96,7 @@ msgstr "ຂຽນຊື່ຜູ້ໃຊ້"
 
 msgctxt "field:party.address,zip:"
 msgid "Zip"
-msgstr "ລະຫັດໄປສະນີ"
+msgstr "ລະຫັດປະເທດ"
 
 msgctxt "field:party.category,active:"
 msgid "Active"
@@ -124,7 +124,7 @@ msgstr "ຊື່"
 
 msgctxt "field:party.category,parent:"
 msgid "Parent"
-msgstr "ໝວດລວມ"
+msgstr "ຂຶ້ນກັບ"
 
 msgctxt "field:party.category,rec_name:"
 msgid "Name"
@@ -140,15 +140,15 @@ msgstr "ຂຽນຜູ້ໃຊ້ງານ"
 
 msgctxt "field:party.check_vies.result,id:"
 msgid "ID"
-msgstr "ບັດ"
+msgstr "ເລກລຳດັບ"
 
 msgctxt "field:party.check_vies.result,parties_failed:"
 msgid "Parties Failed"
-msgstr "ພາກສ່ວນຫຼົມເຫຼວ"
+msgstr "ພາກສ່ວນລົ້ມເຫຼວ"
 
 msgctxt "field:party.check_vies.result,parties_succeed:"
 msgid "Parties Succeed"
-msgstr "ພາກສ່ວນລຽບລ້ອຍດີ"
+msgstr "ພາກສ່ວນສຳເລັດຜົນ"
 
 msgctxt "field:party.configuration,create_date:"
 msgid "Create Date"
@@ -180,7 +180,7 @@ msgstr "ຂຽນຊື່ຜູ້ໃຊ້"
 
 msgctxt "field:party.contact_mechanism,active:"
 msgid "Active"
-msgstr "ຍັງໃຊ້ຢູ່"
+msgstr "ໃຊ້ຢູ່"
 
 msgctxt "field:party.contact_mechanism,comment:"
 msgid "Comment"
@@ -196,15 +196,15 @@ msgstr "ສ້າງຜູ້ໃຊ້"
 
 msgctxt "field:party.contact_mechanism,email:"
 msgid "E-Mail"
-msgstr "ອີເມນ"
+msgstr "ອີເມວລ໌"
 
 msgctxt "field:party.contact_mechanism,id:"
 msgid "ID"
-msgstr "ບັດ"
+msgstr "ເລກລຳດັບ"
 
 msgctxt "field:party.contact_mechanism,other_value:"
 msgid "Value"
-msgstr "ຄ່າ"
+msgstr "ໝາຍເລກ"
 
 msgctxt "field:party.contact_mechanism,party:"
 msgid "Party"
@@ -216,15 +216,15 @@ msgstr "ຊື່"
 
 msgctxt "field:party.contact_mechanism,sequence:"
 msgid "Sequence"
-msgstr "ລຽງ"
+msgstr "ລໍາດັບ"
 
 msgctxt "field:party.contact_mechanism,sip:"
 msgid "SIP"
-msgstr "ຕິດຕໍ່ທາງSIP"
+msgstr "ຕິດຕໍ່ທາງສື່ອິນເຕີເນັດ"
 
 msgctxt "field:party.contact_mechanism,skype:"
 msgid "Skype"
-msgstr "ຫາໄກປີ"
+msgstr "ສະກາຍປີ (Skype)"
 
 msgctxt "field:party.contact_mechanism,type:"
 msgid "Type"
@@ -236,7 +236,7 @@ msgstr "ທີ່ຢູ່ເວບ"
 
 msgctxt "field:party.contact_mechanism,value:"
 msgid "Value"
-msgstr "ຄ່າ"
+msgstr "ໝາຍເລກ"
 
 msgctxt "field:party.contact_mechanism,website:"
 msgid "Website"
@@ -250,54 +250,45 @@ msgctxt "field:party.contact_mechanism,write_uid:"
 msgid "Write User"
 msgstr "ຂຽນຊື່ຜູ້ໃຊ້"
 
-#, fuzzy
 msgctxt "field:party.identifier,code:"
 msgid "Code"
 msgstr "ລະຫັດ"
 
-#, fuzzy
 msgctxt "field:party.identifier,create_date:"
 msgid "Create Date"
 msgstr "ສ້າງວັນທີ"
 
-#, fuzzy
 msgctxt "field:party.identifier,create_uid:"
 msgid "Create User"
 msgstr "ສ້າງຜູ້ໃຊ້"
 
-#, fuzzy
 msgctxt "field:party.identifier,id:"
 msgid "ID"
-msgstr "ເລກລະຫັດ"
+msgstr "ເລກລໍາດັບ"
 
-#, fuzzy
 msgctxt "field:party.identifier,party:"
 msgid "Party"
 msgstr "ພາກສ່ວນ"
 
-#, fuzzy
 msgctxt "field:party.identifier,rec_name:"
 msgid "Name"
 msgstr "ຊື່"
 
-#, fuzzy
 msgctxt "field:party.identifier,type:"
 msgid "Type"
 msgstr "ປະເພດ"
 
-#, fuzzy
 msgctxt "field:party.identifier,write_date:"
 msgid "Write Date"
 msgstr "ຂຽນວັນທີ"
 
-#, fuzzy
 msgctxt "field:party.identifier,write_uid:"
 msgid "Write User"
 msgstr "ຂຽນຊື່ຜູ້ໃຊ້"
 
 msgctxt "field:party.party,active:"
 msgid "Active"
-msgstr "ໃຊ້ງານຢູ່"
+msgstr "ໃຊ້ຢູ່"
 
 msgctxt "field:party.party,addresses:"
 msgid "Addresses"
@@ -313,11 +304,11 @@ msgstr "ລະຫັດ"
 
 msgctxt "field:party.party,code_readonly:"
 msgid "Code Readonly"
-msgstr "ລະຫັດລຶບບໍ່ໄດ້"
+msgstr "ລະຫັດອ່ານໄດ້ຢ່າງດຽວ"
 
 msgctxt "field:party.party,contact_mechanisms:"
 msgid "Contact Mechanisms"
-msgstr "ລະບົບການຕິດຕໍ່"
+msgstr "ກົນໄກການຕິດຕໍ່"
 
 msgctxt "field:party.party,create_date:"
 msgid "Create Date"
@@ -341,11 +332,11 @@ msgstr "ຊື່ເຕັມ"
 
 msgctxt "field:party.party,id:"
 msgid "ID"
-msgstr "ເລກປະຈໍາ"
+msgstr "ເລກປະຈໍາໂຕ"
 
 msgctxt "field:party.party,identifiers:"
 msgid "Identifiers"
-msgstr ""
+msgstr "ລະບຸຕົວຕົນ"
 
 msgctxt "field:party.party,lang:"
 msgid "Language"
@@ -369,7 +360,7 @@ msgstr "ຊື່"
 
 msgctxt "field:party.party,vat_code:"
 msgid "VAT Code"
-msgstr "ລະຫັດ ອ.ມ.ພ"
+msgstr "ລະຫັດ ອມພ"
 
 msgctxt "field:party.party,website:"
 msgid "Website"
@@ -397,7 +388,7 @@ msgstr "ສ້າງຜູ້ໃຊ້"
 
 msgctxt "field:party.party-party.category,id:"
 msgid "ID"
-msgstr "ບັດ"
+msgstr "ເລກລຳດັບ"
 
 msgctxt "field:party.party-party.category,party:"
 msgid "Party"
@@ -445,7 +436,7 @@ msgstr "ພາກສ່ວນ"
 
 msgctxt "model:ir.action,name:report_label"
 msgid "Labels"
-msgstr "ບັດ"
+msgstr "ປ້າຍຊື່"
 
 msgctxt "model:ir.action,name:wizard_check_vies"
 msgid "Check VIES"
@@ -509,11 +500,11 @@ msgstr "ການຕັ້ງຄ່າພາກສ່ວນ"
 
 msgctxt "model:party.contact_mechanism,name:"
 msgid "Contact Mechanism"
-msgstr "ລະບົບການຕິດຕໍ່"
+msgstr "ກົນໄກການຕິດຕໍ່"
 
 msgctxt "model:party.identifier,name:"
 msgid "Party Identifier"
-msgstr ""
+msgstr "ລະບຸຕົວຕົນພາກສ່ວນ"
 
 msgctxt "model:party.party,name:"
 msgid "Party"
@@ -529,19 +520,19 @@ msgstr "ການບໍລິຫານພາກສ່ວນ"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "E-Mail"
-msgstr "ອີເມນ"
+msgstr "ອີເມວລ໌"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Fax"
-msgstr "ແຟກ"
+msgstr "ໂທລະສານ"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "IRC"
-msgstr "ພົວພັນທາງຄອມ"
+msgstr "ສື່ທາງອິນເຕີເນັດ"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Jabber"
-msgstr "ສົ່ງສັນຍານຄຳ"
+msgstr "ສົ່ງສັນຍານຄຳເວົ້າ"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Mobile"
@@ -561,11 +552,11 @@ msgstr "ໂທລະສັບວິດິໂອ"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Skype"
-msgstr "ສະໄກປີ"
+msgstr "ສະກາຍປີ (Skype)"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Website"
-msgstr "ເວບໄຊ"
+msgstr "ເວັບໄຊຕ໌"
 
 msgctxt "view:party.address:"
 msgid "Addresses"
@@ -581,7 +572,7 @@ msgstr "ປະເພດ"
 
 msgctxt "view:party.check_vies.result:"
 msgid "VAT Information Exchange System Results"
-msgstr "ປົນລະບົບແລກປ່ຽນພາສີ"
+msgstr "ຜົນລະບົບຂໍ້ມູນແລກປ່ຽນອາກອນ"
 
 msgctxt "view:party.configuration:"
 msgid "Party Configuration"
@@ -589,19 +580,19 @@ msgstr "ການຕັ້ງຄ່າພາກສ່ວນ"
 
 msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanism"
-msgstr "ລະບົບການຕິດຕໍ່"
+msgstr "ກົນໄກການຕິດຕໍ່"
 
 msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanisms"
-msgstr "ລະບົບການຕິດຕໍ່"
+msgstr "ກົນໄກການຕິດຕໍ່"
 
 msgctxt "view:party.identifier:"
 msgid "Party Identifier"
-msgstr ""
+msgstr "ລະບຸຕົວຕົນພາກສ່ວນ"
 
 msgctxt "view:party.identifier:"
 msgid "Party Identifiers"
-msgstr ""
+msgstr "ລະບຸຕົວຕົນພາກສ່ວນ"
 
 msgctxt "view:party.party:"
 msgid "General"
diff --git a/tryton.cfg b/tryton.cfg
index 6885398..fe4da1f 100644
--- a/tryton.cfg
+++ b/tryton.cfg
@@ -1,5 +1,5 @@
 [tryton]
-version=4.0.0
+version=4.0.1
 depends:
     country
     ir
diff --git a/trytond_party.egg-info/PKG-INFO b/trytond_party.egg-info/PKG-INFO
index 5ea9e55..6b86790 100644
--- a/trytond_party.egg-info/PKG-INFO
+++ b/trytond_party.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: trytond-party
-Version: 4.0.0
+Version: 4.0.1
 Summary: Tryton module with parties and addresses
 Home-page: http://www.tryton.org/
 Author: Tryton
diff --git a/trytond_party.egg-info/SOURCES.txt b/trytond_party.egg-info/SOURCES.txt
index 6c1308f..46b8045 100644
--- a/trytond_party.egg-info/SOURCES.txt
+++ b/trytond_party.egg-info/SOURCES.txt
@@ -39,11 +39,13 @@ tryton.cfg
 ./locale/hu_HU.po
 ./locale/it_IT.po
 ./locale/ja_JP.po
+./locale/lo_LA.po
 ./locale/lt_LT.po
 ./locale/nl_NL.po
 ./locale/pt_BR.po
 ./locale/ru_RU.po
 ./locale/sl_SI.po
+./locale/zh_CN.po
 ./tests/__init__.py
 ./tests/test_party.py
 ./view/address_form.xml
diff --git a/trytond_party.egg-info/requires.txt b/trytond_party.egg-info/requires.txt
index 52ae873..4636b2b 100644
--- a/trytond_party.egg-info/requires.txt
+++ b/trytond_party.egg-info/requires.txt
@@ -4,4 +4,4 @@ trytond_country >= 4.0, < 4.1
 trytond >= 4.0, < 4.1
 
 [VAT]
-python-stdnum
\ No newline at end of file
+python-stdnum
commit edc28a2daa027cb20d98c433256d57b36b281e2d
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Fri May 27 18:26:05 2016 +0200

    Adding upstream version 4.0.0.
    
    Signed-off-by: Mathias Behrle <mathiasb at m9s.biz>

diff --git a/CHANGELOG b/CHANGELOG
index ae5928e..d89d8ad 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,7 @@
-Version 3.8.1 - 2015-12-22
+Version 4.0.0 - 2016-05-02
 * Bug fixes (see mercurial logs for details)
+* Add Python3 support
+* Remove required on Party name
 
 Version 3.8.0 - 2015-11-02
 * Bug fixes (see mercurial logs for details)
diff --git a/COPYRIGHT b/COPYRIGHT
index 1f2d75b..b8124d7 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -1,6 +1,6 @@
-Copyright (C) 2008-2015 Cédric Krier.
+Copyright (C) 2008-2016 Cédric Krier.
 Copyright (C) 2008-2013 Bertrand Chenal.
-Copyright (C) 2008-2015 B2CK SPRL.
+Copyright (C) 2008-2016 B2CK SPRL.
 Copyright (C) 2008-2013 Udo Spallek.
 Copyright (C) 2008-2011 Korbinian Preisler.
 Copyright (C) 2008-2011 virtual things.
diff --git a/PKG-INFO b/PKG-INFO
index 1361105..94f8fff 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.1
 Name: trytond_party
-Version: 3.8.1
+Version: 4.0.0
 Summary: Tryton module with parties and addresses
 Home-page: http://www.tryton.org/
 Author: Tryton
 Author-email: issue_tracker at tryton.org
 License: GPL-3
-Download-URL: http://downloads.tryton.org/3.8/
+Download-URL: http://downloads.tryton.org/4.0/
 Description: trytond_party
         =============
         
@@ -55,6 +55,7 @@ Classifier: Intended Audience :: Manufacturing
 Classifier: License :: OSI Approved :: GNU General Public License (GPL)
 Classifier: Natural Language :: Bulgarian
 Classifier: Natural Language :: Catalan
+Classifier: Natural Language :: Chinese (Simplified)
 Classifier: Natural Language :: Czech
 Classifier: Natural Language :: Dutch
 Classifier: Natural Language :: English
@@ -68,6 +69,9 @@ Classifier: Natural Language :: Slovenian
 Classifier: Natural Language :: Spanish
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3.3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Topic :: Office/Business
diff --git a/address.py b/address.py
index 6f127d6..dfbcd10 100644
--- a/address.py
+++ b/address.py
@@ -6,7 +6,6 @@ from sql.conditionals import Case
 
 from trytond.model import ModelView, ModelSQL, fields
 from trytond.pyson import Eval, If
-from trytond.transaction import Transaction
 from trytond import backend
 from trytond.pool import Pool
 
@@ -53,8 +52,7 @@ class Address(ModelSQL, ModelView):
     @classmethod
     def __register__(cls, module_name):
         TableHandler = backend.get('TableHandler')
-        cursor = Transaction().cursor
-        table = TableHandler(cursor, cls, module_name)
+        table = TableHandler(cls, module_name)
 
         super(Address, cls).__register__(module_name)
 
@@ -127,15 +125,14 @@ class Address(ModelSQL, ModelView):
                 if full_address[-1:] != '\n':
                     full_address += ' '
                 full_address += self.city
-        if self.country or self.subdivision:
+        if self.subdivision:
             if full_address:
                 full_address += '\n'
-            if self.subdivision:
-                full_address += self.subdivision.name
-            if self.country:
-                if full_address[-1:] != '\n':
-                    full_address += ' '
-                full_address += self.country.name
+            full_address += self.subdivision.name
+        if self.country:
+            if full_address:
+                full_address += '\n'
+            full_address += self.country.name.upper()
         return full_address
 
     def get_rec_name(self, name):
diff --git a/configuration.py b/configuration.py
index 6a426ce..9fd3c00 100644
--- a/configuration.py
+++ b/configuration.py
@@ -13,6 +13,3 @@ class Configuration(ModelSingleton, ModelSQL, ModelView):
             'Party Sequence', domain=[
                 ('code', '=', 'party.party'),
                 ]))
-    party_lang = fields.Property(fields.Many2One("ir.lang", 'Party Language',
-        help=('The value set on this field will preset the language on new '
-            'parties')))
diff --git a/contact_mechanism.py b/contact_mechanism.py
index 32fb314..35e9b61 100644
--- a/contact_mechanism.py
+++ b/contact_mechanism.py
@@ -5,7 +5,6 @@ from sql.conditionals import Case
 
 from trytond.model import ModelView, ModelSQL, fields
 from trytond.pyson import Eval
-from trytond.transaction import Transaction
 from trytond import backend
 
 __all__ = ['ContactMechanism']
@@ -94,8 +93,7 @@ class ContactMechanism(ModelSQL, ModelView):
     @classmethod
     def __register__(cls, module_name):
         TableHandler = backend.get('TableHandler')
-        cursor = Transaction().cursor
-        table = TableHandler(cursor, cls, module_name)
+        table = TableHandler(cls, module_name)
 
         super(ContactMechanism, cls).__register__(module_name)
 
diff --git a/doc/index.rst b/doc/index.rst
index a428419..630e18a 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -1,9 +1,9 @@
 Party Module
 ############
 
-The party module defines the concepts of party, category and contact
-mechanism. It also comes with reports to print labels and letters and
-a *Check VIES* wizard.
+The party module defines the concepts of party, identifier, category and
+contact mechanism. It also comes with reports to print labels and letters and a
+*Check VIES* wizard.
 
 
 Party
@@ -11,7 +11,7 @@ Party
 
 A party can be a person, a company or any organisation that one want
 to consider as the same entity. A party is defined by a name, a code,
-a language, a VAT code, categories, contact mechanisms and a list of
+a language, identifiers, categories, contact mechanisms and a list of
 addresses.
 
 Two reports are available:
@@ -23,8 +23,8 @@ Two reports are available:
   header, the address of the recipient, a date, a greeting, an ending
   and the signature of the current reader.
 
-The *Check VIES* wizard allow to check the VAT number of parties with
-the VIES web service.
+The *Check VIES* wizard allow to check the European VAT number identifier of
+parties with the VIES web service.
 
 
 Address
diff --git a/locale/bg_BG.po b/locale/bg_BG.po
index 37a2bde..65ae5fa 100644
--- a/locale/bg_BG.po
+++ b/locale/bg_BG.po
@@ -162,10 +162,6 @@ msgctxt "field:party.configuration,id:"
 msgid "ID"
 msgstr "ID"
 
-msgctxt "field:party.configuration,party_lang:"
-msgid "Party Language"
-msgstr "Език на партньор"
-
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr "Последователност за партньор"
@@ -257,39 +253,39 @@ msgstr "Променено от"
 
 msgctxt "field:party.identifier,code:"
 msgid "Code"
-msgstr ""
+msgstr "Код"
 
 msgctxt "field:party.identifier,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Създадено на"
 
 msgctxt "field:party.identifier,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "Създадено от"
 
 msgctxt "field:party.identifier,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.identifier,party:"
 msgid "Party"
-msgstr ""
+msgstr "Партньор"
 
 msgctxt "field:party.identifier,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "Име"
 
 msgctxt "field:party.identifier,type:"
 msgid "Type"
-msgstr ""
+msgstr "Вид"
 
 msgctxt "field:party.identifier,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Променено на"
 
 msgctxt "field:party.identifier,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Променено от"
 
 msgctxt "field:party.party,active:"
 msgid "Active"
@@ -411,10 +407,6 @@ msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
 msgstr "Променено от"
 
-msgctxt "help:party.configuration,party_lang:"
-msgid "The value set on this field will preset the language on new parties"
-msgstr "Стойността в това поле ще се използва за език при нови партньори."
-
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr "Адреси"
diff --git a/locale/ca_ES.po b/locale/ca_ES.po
index d59550d..638db50 100644
--- a/locale/ca_ES.po
+++ b/locale/ca_ES.po
@@ -164,10 +164,6 @@ msgctxt "field:party.configuration,id:"
 msgid "ID"
 msgstr "ID"
 
-msgctxt "field:party.configuration,party_lang:"
-msgid "Party Language"
-msgstr "Idioma del tercer"
-
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr "Seqüència del tercer"
@@ -412,11 +408,6 @@ msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
 msgstr "Usuari modificació"
 
-msgctxt "help:party.configuration,party_lang:"
-msgid "The value set on this field will preset the language on new parties"
-msgstr ""
-"El valor d'aquest camp serà el valor per defecte de l'idioma dels tercers."
-
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr "Adreces"
diff --git a/locale/cs_CZ.po b/locale/cs_CZ.po
index 213b741..589e7e5 100644
--- a/locale/cs_CZ.po
+++ b/locale/cs_CZ.po
@@ -163,10 +163,6 @@ msgctxt "field:party.configuration,id:"
 msgid "ID"
 msgstr ""
 
-msgctxt "field:party.configuration,party_lang:"
-msgid "Party Language"
-msgstr ""
-
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr ""
@@ -411,10 +407,6 @@ msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
 msgstr ""
 
-msgctxt "help:party.configuration,party_lang:"
-msgid "The value set on this field will preset the language on new parties"
-msgstr ""
-
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr ""
diff --git a/locale/de_DE.po b/locale/de_DE.po
index 72444ae..dc0e7cd 100644
--- a/locale/de_DE.po
+++ b/locale/de_DE.po
@@ -165,10 +165,6 @@ msgctxt "field:party.configuration,id:"
 msgid "ID"
 msgstr "ID"
 
-msgctxt "field:party.configuration,party_lang:"
-msgid "Party Language"
-msgstr "Sprache Partei"
-
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr "Nummernkreis Partei"
@@ -413,12 +409,6 @@ msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
 msgstr "Letzte Änderung durch"
 
-msgctxt "help:party.configuration,party_lang:"
-msgid "The value set on this field will preset the language on new parties"
-msgstr ""
-"Ein Wert in diesem Feld dient als Voreinstellung für die Sprache von neu "
-"angelegten Parteien"
-
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr "Adressen"
diff --git a/locale/es_AR.po b/locale/es_AR.po
index d8bb25f..2f2335c 100644
--- a/locale/es_AR.po
+++ b/locale/es_AR.po
@@ -165,10 +165,6 @@ msgctxt "field:party.configuration,id:"
 msgid "ID"
 msgstr "ID"
 
-msgctxt "field:party.configuration,party_lang:"
-msgid "Party Language"
-msgstr "Idioma de la entidad"
-
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr "Secuencia de entidades"
@@ -413,12 +409,6 @@ msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
 msgstr "Usuario modificación"
 
-msgctxt "help:party.configuration,party_lang:"
-msgid "The value set on this field will preset the language on new parties"
-msgstr ""
-"El valor de este campo será el valor por defecto del idioma de las nuevas "
-"entidades"
-
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr "Direcciones"
diff --git a/locale/es_CO.po b/locale/es_CO.po
index 43094b5..9de6bcd 100644
--- a/locale/es_CO.po
+++ b/locale/es_CO.po
@@ -24,9 +24,10 @@ msgctxt "error:party.contact_mechanism:"
 msgid "You can not modify the party of contact mechanism \"%s\"."
 msgstr "Usted no puede modificar los medios de contacto del tercero \"%s\" "
 
+#, fuzzy
 msgctxt "error:party.identifier:"
 msgid "Invalid VAT number \"%(code)s\" on party \"%(party)s\"."
-msgstr ""
+msgstr "Inválido número NIT \"%(vat)s\" en tercero \"%(party)s\"."
 
 msgctxt "error:party.party:"
 msgid "The code of the party must be unique."
@@ -164,10 +165,6 @@ msgctxt "field:party.configuration,id:"
 msgid "ID"
 msgstr "ID"
 
-msgctxt "field:party.configuration,party_lang:"
-msgid "Party Language"
-msgstr "Idioma del Tercero"
-
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr "Secuencia de Tercero"
@@ -258,39 +255,39 @@ msgstr "Modificado por Usuario"
 
 msgctxt "field:party.identifier,code:"
 msgid "Code"
-msgstr ""
+msgstr "Código"
 
 msgctxt "field:party.identifier,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Fecha de Creación"
 
 msgctxt "field:party.identifier,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "Creado por Usuario"
 
 msgctxt "field:party.identifier,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.identifier,party:"
 msgid "Party"
-msgstr ""
+msgstr "Tercero"
 
 msgctxt "field:party.identifier,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "Contacto"
 
 msgctxt "field:party.identifier,type:"
 msgid "Type"
-msgstr ""
+msgstr "Tipo"
 
 msgctxt "field:party.identifier,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Fecha de Modificación"
 
 msgctxt "field:party.identifier,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Modificado por Usuario"
 
 msgctxt "field:party.party,active:"
 msgid "Active"
@@ -412,11 +409,6 @@ msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
 msgstr "Modificado por Usuario"
 
-msgctxt "help:party.configuration,party_lang:"
-msgid "The value set on this field will preset the language on new parties"
-msgstr ""
-"El valor de este campo predeterminada el idioma de las nuevos terceros"
-
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr "Direcciones"
diff --git a/locale/es_EC.po b/locale/es_EC.po
index 07fc86a..6332775 100644
--- a/locale/es_EC.po
+++ b/locale/es_EC.po
@@ -26,7 +26,7 @@ msgstr "No puede modificar el tercero del medio de contacto \"%s\"."
 
 msgctxt "error:party.identifier:"
 msgid "Invalid VAT number \"%(code)s\" on party \"%(party)s\"."
-msgstr "El número de CI/RUC \"%(vat)s\" del tercero \"%(party)s\" no es válido."
+msgstr "El número de C.I./RUC \"%(vat)s\" del tercero \"%(party)s\" no es válido."
 
 msgctxt "error:party.party:"
 msgid "The code of the party must be unique."
@@ -164,10 +164,6 @@ msgctxt "field:party.configuration,id:"
 msgid "ID"
 msgstr "ID"
 
-msgctxt "field:party.configuration,party_lang:"
-msgid "Party Language"
-msgstr "Idioma del tercero"
-
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr "Secuencia de terceros"
@@ -202,7 +198,7 @@ msgstr "Creado por usuario"
 
 msgctxt "field:party.contact_mechanism,email:"
 msgid "E-Mail"
-msgstr "Correo electrónico"
+msgstr "Email"
 
 msgctxt "field:party.contact_mechanism,id:"
 msgid "ID"
@@ -326,7 +322,7 @@ msgstr "Creado por usuario"
 
 msgctxt "field:party.party,email:"
 msgid "E-Mail"
-msgstr "Correo electrónico"
+msgstr "Email"
 
 msgctxt "field:party.party,fax:"
 msgid "Fax"
@@ -366,7 +362,7 @@ msgstr "Nombre"
 
 msgctxt "field:party.party,vat_code:"
 msgid "VAT Code"
-msgstr "CI/RUC"
+msgstr "C.I./RUC"
 
 msgctxt "field:party.party,website:"
 msgid "Website"
@@ -412,12 +408,6 @@ msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
 msgstr "Modificado por usuario"
 
-msgctxt "help:party.configuration,party_lang:"
-msgid "The value set on this field will preset the language on new parties"
-msgstr ""
-"El valor de este campo será el valor por defecto del idioma de los nuevos "
-"terceros"
-
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr "Direcciones"
@@ -532,7 +522,7 @@ msgstr "Administración de Terceros"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "E-Mail"
-msgstr "Correo electrónico"
+msgstr "Email"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Fax"
@@ -584,7 +574,7 @@ msgstr "Categoría"
 
 msgctxt "view:party.check_vies.result:"
 msgid "VAT Information Exchange System Results"
-msgstr "Resultados del Sistema de Intercambio de Información de CI/RUC"
+msgstr "Resultados del Sistema de Intercambio de Información de C.I./RUC"
 
 msgctxt "view:party.configuration:"
 msgid "Party Configuration"
diff --git a/locale/es_ES.po b/locale/es_ES.po
index 5d0600b..11ca21f 100644
--- a/locale/es_ES.po
+++ b/locale/es_ES.po
@@ -164,10 +164,6 @@ msgctxt "field:party.configuration,id:"
 msgid "ID"
 msgstr "ID"
 
-msgctxt "field:party.configuration,party_lang:"
-msgid "Party Language"
-msgstr "Idioma del tercero"
-
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr "Secuencia del tercero"
@@ -412,11 +408,6 @@ msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
 msgstr "Usuario modificación"
 
-msgctxt "help:party.configuration,party_lang:"
-msgid "The value set on this field will preset the language on new parties"
-msgstr ""
-"El valor de este campo será el valor por defecto del idioma de los terceros."
-
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr "Direcciones"
diff --git a/locale/es_MX.po b/locale/es_MX.po
index 927916f..bb9cd4c 100644
--- a/locale/es_MX.po
+++ b/locale/es_MX.po
@@ -27,9 +27,10 @@ msgctxt "error:party.contact_mechanism:"
 msgid "You can not modify the party of contact mechanism \"%s\"."
 msgstr "No puede modificar la entidad del contacto \"%s\"."
 
+#, fuzzy
 msgctxt "error:party.identifier:"
 msgid "Invalid VAT number \"%(code)s\" on party \"%(party)s\"."
-msgstr ""
+msgstr "El RFC \"%(vat)s\" de la entidad \"%(party)s\" no es correcto."
 
 msgctxt "error:party.party:"
 msgid "The code of the party must be unique."
@@ -167,10 +168,6 @@ msgctxt "field:party.configuration,id:"
 msgid "ID"
 msgstr "ID"
 
-msgctxt "field:party.configuration,party_lang:"
-msgid "Party Language"
-msgstr "Idioma de la entidad"
-
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr "Secuencia de la entidad"
@@ -259,41 +256,50 @@ msgctxt "field:party.contact_mechanism,write_uid:"
 msgid "Write User"
 msgstr "Usuario modificación"
 
+#, fuzzy
 msgctxt "field:party.identifier,code:"
 msgid "Code"
-msgstr ""
+msgstr "Código"
 
+#, fuzzy
 msgctxt "field:party.identifier,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Fecha creación"
 
+#, fuzzy
 msgctxt "field:party.identifier,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "Usuario creación"
 
+#, fuzzy
 msgctxt "field:party.identifier,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
+#, fuzzy
 msgctxt "field:party.identifier,party:"
 msgid "Party"
-msgstr ""
+msgstr "Entidad"
 
+#, fuzzy
 msgctxt "field:party.identifier,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "Contacto"
 
+#, fuzzy
 msgctxt "field:party.identifier,type:"
 msgid "Type"
-msgstr ""
+msgstr "Tipo"
 
+#, fuzzy
 msgctxt "field:party.identifier,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Fecha modificación"
 
+#, fuzzy
 msgctxt "field:party.identifier,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Usuario modificación"
 
 msgctxt "field:party.party,active:"
 msgid "Active"
@@ -415,12 +421,6 @@ msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
 msgstr "Usuario modificación"
 
-msgctxt "help:party.configuration,party_lang:"
-msgid "The value set on this field will preset the language on new parties"
-msgstr ""
-"El valor de este campo será el valor predefinido para el idioma de las "
-"entidades."
-
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr "Direcciones"
@@ -573,33 +573,39 @@ msgctxt "selection:party.contact_mechanism,type:"
 msgid "Website"
 msgstr "Sitio Web"
 
+#, fuzzy
 msgctxt "view:party.address:"
 msgid "Addresses"
-msgstr ""
+msgstr "Direcciones"
 
+#, fuzzy
 msgctxt "view:party.category:"
 msgid "Categories"
-msgstr ""
+msgstr "Categorías"
 
+#, fuzzy
 msgctxt "view:party.category:"
 msgid "Category"
-msgstr ""
+msgstr "Categoría"
 
 msgctxt "view:party.check_vies.result:"
 msgid "VAT Information Exchange System Results"
 msgstr ""
 
+#, fuzzy
 msgctxt "view:party.configuration:"
 msgid "Party Configuration"
-msgstr ""
+msgstr "Configuración de entidades"
 
+#, fuzzy
 msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanism"
-msgstr ""
+msgstr "Medio de contacto"
 
+#, fuzzy
 msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanisms"
-msgstr ""
+msgstr "Medios de contacto"
 
 msgctxt "view:party.identifier:"
 msgid "Party Identifier"
@@ -613,13 +619,15 @@ msgctxt "view:party.party:"
 msgid "General"
 msgstr ""
 
+#, fuzzy
 msgctxt "view:party.party:"
 msgid "Parties"
-msgstr ""
+msgstr "Entidades"
 
+#, fuzzy
 msgctxt "view:party.party:"
 msgid "Party"
-msgstr ""
+msgstr "Entidad"
 
 msgctxt "wizard_button:party.check_vies,result,end:"
 msgid "OK"
diff --git a/locale/fr_FR.po b/locale/fr_FR.po
index 7125b32..c3fbb5d 100644
--- a/locale/fr_FR.po
+++ b/locale/fr_FR.po
@@ -164,10 +164,6 @@ msgctxt "field:party.configuration,id:"
 msgid "ID"
 msgstr "ID"
 
-msgctxt "field:party.configuration,party_lang:"
-msgid "Party Language"
-msgstr "Langue des tiers"
-
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr "Séquence de tiers"
@@ -412,12 +408,6 @@ msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
 msgstr "Mis à jour par"
 
-msgctxt "help:party.configuration,party_lang:"
-msgid "The value set on this field will preset the language on new parties"
-msgstr ""
-"La valeur de ce champs sera la valeur par défaut pour la langue des nouveaux"
-" tiers"
-
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr "Adresses"
diff --git a/locale/hu_HU.po b/locale/hu_HU.po
index 40c8331..fb57a1d 100644
--- a/locale/hu_HU.po
+++ b/locale/hu_HU.po
@@ -23,9 +23,10 @@ msgctxt "error:party.contact_mechanism:"
 msgid "You can not modify the party of contact mechanism \"%s\"."
 msgstr "A partner kapcsolati mechanizmus \"%s\" módosítása nem lehetséges"
 
+#, fuzzy
 msgctxt "error:party.identifier:"
 msgid "Invalid VAT number \"%(code)s\" on party \"%(party)s\"."
-msgstr ""
+msgstr "A partner \"%(party)s\"érvénytelen adóazonosító száma \"%(vat)s\""
 
 msgctxt "error:party.party:"
 msgid "The code of the party must be unique."
@@ -163,10 +164,6 @@ msgctxt "field:party.configuration,id:"
 msgid "ID"
 msgstr "ID"
 
-msgctxt "field:party.configuration,party_lang:"
-msgid "Party Language"
-msgstr "Partner nyelvezete"
-
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr "Partner számköre"
@@ -257,39 +254,39 @@ msgstr "Utolsó módosítás a következő felhasználó által"
 
 msgctxt "field:party.identifier,code:"
 msgid "Code"
-msgstr ""
+msgstr "Partner kód"
 
 msgctxt "field:party.identifier,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Létrehozás dátuma"
 
 msgctxt "field:party.identifier,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "Által létrehozva"
 
 msgctxt "field:party.identifier,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.identifier,party:"
 msgid "Party"
-msgstr ""
+msgstr "Partner"
 
 msgctxt "field:party.identifier,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "Név"
 
 msgctxt "field:party.identifier,type:"
 msgid "Type"
-msgstr ""
+msgstr "Típus"
 
 msgctxt "field:party.identifier,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Utoljára módosított dátum"
 
 msgctxt "field:party.identifier,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Által módosítva"
 
 msgctxt "field:party.party,active:"
 msgid "Active"
@@ -411,11 +408,6 @@ msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
 msgstr "Által módosítva"
 
-msgctxt "help:party.configuration,party_lang:"
-msgid "The value set on this field will preset the language on new parties"
-msgstr ""
-"Érték ebben a mezőben elő beállításként szolgál az új Partner nyelvezetére"
-
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr "Címek"
@@ -570,15 +562,15 @@ msgstr "Weboldal"
 
 msgctxt "view:party.address:"
 msgid "Addresses"
-msgstr ""
+msgstr "Címek"
 
 msgctxt "view:party.category:"
 msgid "Categories"
-msgstr ""
+msgstr "Kategóriák"
 
 msgctxt "view:party.category:"
 msgid "Category"
-msgstr ""
+msgstr "Kategória"
 
 msgctxt "view:party.check_vies.result:"
 msgid "VAT Information Exchange System Results"
@@ -586,15 +578,15 @@ msgstr ""
 
 msgctxt "view:party.configuration:"
 msgid "Party Configuration"
-msgstr ""
+msgstr "Partner"
 
 msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanism"
-msgstr ""
+msgstr "Kapcsolat lehetőségek"
 
 msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanisms"
-msgstr ""
+msgstr "Kapcsolat lehetőség"
 
 msgctxt "view:party.identifier:"
 msgid "Party Identifier"
@@ -610,11 +602,11 @@ msgstr ""
 
 msgctxt "view:party.party:"
 msgid "Parties"
-msgstr ""
+msgstr "Partnerek"
 
 msgctxt "view:party.party:"
 msgid "Party"
-msgstr ""
+msgstr "Partner"
 
 msgctxt "wizard_button:party.check_vies,result,end:"
 msgid "OK"
diff --git a/locale/it_IT.po b/locale/it_IT.po
index 2f1b465..cfe2fb0 100644
--- a/locale/it_IT.po
+++ b/locale/it_IT.po
@@ -22,9 +22,10 @@ msgctxt "error:party.contact_mechanism:"
 msgid "You can not modify the party of contact mechanism \"%s\"."
 msgstr "Controparte in meccanismo di contatto \"%s\" non modificabile"
 
+#, fuzzy
 msgctxt "error:party.identifier:"
 msgid "Invalid VAT number \"%(code)s\" on party \"%(party)s\"."
-msgstr ""
+msgstr "Identificativo IVA \"%(vat)s\" invalido per controparte \"%(party)s\"."
 
 msgctxt "error:party.party:"
 msgid "The code of the party must be unique."
@@ -183,10 +184,6 @@ msgctxt "field:party.configuration,id:"
 msgid "ID"
 msgstr "ID"
 
-msgctxt "field:party.configuration,party_lang:"
-msgid "Party Language"
-msgstr "Lingua controparte"
-
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr "Sequenza controparte"
@@ -291,39 +288,45 @@ msgstr "Scrivente"
 
 msgctxt "field:party.identifier,code:"
 msgid "Code"
-msgstr ""
+msgstr "Codice"
 
 msgctxt "field:party.identifier,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Data Creazione"
 
+#, fuzzy
 msgctxt "field:party.identifier,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "Creazione Utente"
 
+#, fuzzy
 msgctxt "field:party.identifier,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.identifier,party:"
 msgid "Party"
-msgstr ""
+msgstr "Controparte"
 
+#, fuzzy
 msgctxt "field:party.identifier,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "Nome"
 
+#, fuzzy
 msgctxt "field:party.identifier,type:"
 msgid "Type"
-msgstr ""
+msgstr "Tipo"
 
+#, fuzzy
 msgctxt "field:party.identifier,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Data di Scrittura"
 
+#, fuzzy
 msgctxt "field:party.identifier,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Scrivente"
 
 #, fuzzy
 msgctxt "field:party.party,active:"
@@ -457,12 +460,6 @@ msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
 msgstr "Scrivente"
 
-msgctxt "help:party.configuration,party_lang:"
-msgid "The value set on this field will preset the language on new parties"
-msgstr ""
-"Il valore immesso per il campo predeterminerà la lingua delle nuove "
-"controparti"
-
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr "Indirizzi"
@@ -477,7 +474,7 @@ msgstr "Categorie"
 
 msgctxt "model:ir.action,name:act_contact_mechanism_form"
 msgid "Contact Mechanisms"
-msgstr ""
+msgstr "Meccanismi di contatto"
 
 msgctxt "model:ir.action,name:act_party_by_category"
 msgid "Parties by Category"
@@ -525,7 +522,7 @@ msgstr "Configurazione"
 
 msgctxt "model:ir.ui.menu,name:menu_contact_mechanism_form"
 msgid "Contact Mechanisms"
-msgstr ""
+msgstr "Meccanismi di contatto"
 
 msgctxt "model:ir.ui.menu,name:menu_party"
 msgid "Party"
@@ -617,15 +614,15 @@ msgstr "sito web"
 
 msgctxt "view:party.address:"
 msgid "Addresses"
-msgstr ""
+msgstr "Indirizzi"
 
 msgctxt "view:party.category:"
 msgid "Categories"
-msgstr ""
+msgstr "Categorie"
 
 msgctxt "view:party.category:"
 msgid "Category"
-msgstr ""
+msgstr "Categoria"
 
 msgctxt "view:party.check_vies.result:"
 msgid "VAT Information Exchange System Results"
@@ -633,15 +630,15 @@ msgstr ""
 
 msgctxt "view:party.configuration:"
 msgid "Party Configuration"
-msgstr ""
+msgstr "Connfigurazione Controparte"
 
 msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanism"
-msgstr ""
+msgstr "Meccanismo di contatto"
 
 msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanisms"
-msgstr ""
+msgstr "Meccanismi di contatto"
 
 msgctxt "view:party.identifier:"
 msgid "Party Identifier"
@@ -657,11 +654,11 @@ msgstr ""
 
 msgctxt "view:party.party:"
 msgid "Parties"
-msgstr ""
+msgstr "Controparti"
 
 msgctxt "view:party.party:"
 msgid "Party"
-msgstr ""
+msgstr "Controparte"
 
 msgctxt "wizard_button:party.check_vies,result,end:"
 msgid "OK"
diff --git a/locale/ja_JP.po b/locale/ja_JP.po
index bc2a22e..ce1b20c 100644
--- a/locale/ja_JP.po
+++ b/locale/ja_JP.po
@@ -162,10 +162,6 @@ msgctxt "field:party.configuration,id:"
 msgid "ID"
 msgstr ""
 
-msgctxt "field:party.configuration,party_lang:"
-msgid "Party Language"
-msgstr ""
-
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr ""
@@ -410,10 +406,6 @@ msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
 msgstr ""
 
-msgctxt "help:party.configuration,party_lang:"
-msgid "The value set on this field will preset the language on new parties"
-msgstr ""
-
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr ""
diff --git a/locale/it_IT.po b/locale/lo_LA.po
similarity index 64%
copy from locale/it_IT.po
copy to locale/lo_LA.po
index 2f1b465..fae1dba 100644
--- a/locale/it_IT.po
+++ b/locale/lo_LA.po
@@ -4,23 +4,23 @@ msgstr "Content-Type: text/plain; charset=utf-8\n"
 
 msgctxt "error:party.address:"
 msgid "You can not modify the party of address \"%s\"."
-msgstr "Controparte di indirizzo \"%s\" non modificabile"
+msgstr "ເຈົາບໍ່ສາມາດປ່ຽນທີ່ຢູ່ຂອງພາກສ່ນີ້ໄດ້ \"%s\"."
 
 msgctxt "error:party.category:"
 msgid "Invalid category name \"%s\": You can not use \" / \" in name field."
-msgstr "Nome di categoria \"%s\" non modificabile: \"/\" non usabile in campo nome."
+msgstr "ຊື່ຂນິດນີບໍຖຶກ \"%s\": ເຈົາ \" / \" ໄຊ້ບໍໄດ້ ໃນຊື່ຄົນ"
 
 msgctxt "error:party.category:"
 msgid "The name of a party category must be unique by parent."
-msgstr "Il nome di una categoria di controparti dev'essere unico"
+msgstr "ຊື່ຂອງພາກສ່ວນນີຕ້ອງມີຊື່ດຽວຈາກພໍແມ່"
 
 msgctxt "error:party.check_vies:"
 msgid "The VIES service is unavailable, try again later."
-msgstr "Servizio VIES non disponibile, ritentare più tardi"
+msgstr "ການລໍລິການຊີວິດບໍມີ,ລອງອິກເທື່ອຫນ້າ"
 
 msgctxt "error:party.contact_mechanism:"
 msgid "You can not modify the party of contact mechanism \"%s\"."
-msgstr "Controparte in meccanismo di contatto \"%s\" non modificabile"
+msgstr "ເຈົາບໍ່ສາມາດປ່ຽນລະບົບຜູ້ຕິດຕໍຂອງພາກສ່ນີ້ໄດ້ \"%s\"."
 
 msgctxt "error:party.identifier:"
 msgid "Invalid VAT number \"%(code)s\" on party \"%(party)s\"."
@@ -28,536 +28,488 @@ msgstr ""
 
 msgctxt "error:party.party:"
 msgid "The code of the party must be unique."
-msgstr "Il codice dev'essere unico per controparte"
+msgstr "ລະຫັດຂອງພາກສ່ວນນີຕ້ອງເປັນເອກກະລັກ"
 
-#, fuzzy
 msgctxt "field:party.address,active:"
 msgid "Active"
-msgstr "Attivo"
+msgstr "ໃຊ້ຢູ່"
 
 msgctxt "field:party.address,city:"
 msgid "City"
-msgstr "Città"
+msgstr "ເມືອງ"
 
 msgctxt "field:party.address,country:"
 msgid "Country"
-msgstr "Paese"
+msgstr "ປະເທດ"
 
 msgctxt "field:party.address,create_date:"
 msgid "Create Date"
-msgstr "Data Creazione"
+msgstr "ສ້າງວັນທີ"
 
-#, fuzzy
 msgctxt "field:party.address,create_uid:"
 msgid "Create User"
-msgstr "Creazione Utente"
+msgstr "ສ້າງຜູ້ໃຊ້"
 
 msgctxt "field:party.address,full_address:"
 msgid "Full Address"
-msgstr "Indirizzo completo"
+msgstr "ທີ່ຢູ່ເຕັມ"
 
-#, fuzzy
 msgctxt "field:party.address,id:"
 msgid "ID"
-msgstr "ID"
+msgstr "ເລກລະຫັດ"
 
-#, fuzzy
 msgctxt "field:party.address,name:"
 msgid "Name"
-msgstr "Nome"
+msgstr "ຊື່"
 
 msgctxt "field:party.address,party:"
 msgid "Party"
-msgstr "Controparte"
+msgstr "ພາກສ່ວນ"
 
-#, fuzzy
 msgctxt "field:party.address,rec_name:"
 msgid "Name"
-msgstr "Nome"
+msgstr "ຊື່"
 
-#, fuzzy
 msgctxt "field:party.address,sequence:"
 msgid "Sequence"
-msgstr "Sequenza"
+msgstr "ບ່ອນທີ"
 
 msgctxt "field:party.address,street:"
 msgid "Street"
-msgstr "Via"
+msgstr "ບ້ານ"
 
 msgctxt "field:party.address,streetbis:"
 msgid "Street (bis)"
-msgstr "Via (bis)"
+msgstr "ຖະໜົນ"
 
 msgctxt "field:party.address,subdivision:"
 msgid "Subdivision"
-msgstr "Divisione"
+msgstr "ແຂວງ"
 
-#, fuzzy
 msgctxt "field:party.address,write_date:"
 msgid "Write Date"
-msgstr "Data di Scrittura"
+msgstr "ຂຽນວັນທີ"
 
-#, fuzzy
 msgctxt "field:party.address,write_uid:"
 msgid "Write User"
-msgstr "Scrivente"
+msgstr "ຂຽນຊື່ຜູ້ໃຊ້"
 
 msgctxt "field:party.address,zip:"
 msgid "Zip"
-msgstr "Zip"
+msgstr "ລະຫັດໄປສະນີ"
 
-#, fuzzy
 msgctxt "field:party.category,active:"
 msgid "Active"
-msgstr "Attivo"
+msgstr "ໃຊ້ງານຢູ່"
 
-#, fuzzy
 msgctxt "field:party.category,childs:"
 msgid "Children"
-msgstr "Figlio"
+msgstr "ໝວດຍ່ອຍ"
 
-#, fuzzy
 msgctxt "field:party.category,create_date:"
 msgid "Create Date"
-msgstr "Creazione Data"
+msgstr "ສ້າງວັນທີ"
 
-#, fuzzy
 msgctxt "field:party.category,create_uid:"
 msgid "Create User"
-msgstr "Creazione Utente"
+msgstr "ສ້າງຜູ້ໃຊ້"
 
-#, fuzzy
 msgctxt "field:party.category,id:"
 msgid "ID"
-msgstr "ID"
+msgstr "ເລກລຳດັບ"
 
-#, fuzzy
 msgctxt "field:party.category,name:"
 msgid "Name"
-msgstr "Nome"
+msgstr "ຊື່"
 
 msgctxt "field:party.category,parent:"
 msgid "Parent"
-msgstr "Parte"
+msgstr "ໝວດລວມ"
 
-#, fuzzy
 msgctxt "field:party.category,rec_name:"
 msgid "Name"
-msgstr "Nome"
+msgstr "ຊື່"
 
-#, fuzzy
 msgctxt "field:party.category,write_date:"
 msgid "Write Date"
-msgstr "Data di Scrittura"
+msgstr "ຂຽນວັນທີ"
 
-#, fuzzy
 msgctxt "field:party.category,write_uid:"
 msgid "Write User"
-msgstr "Scrivente"
+msgstr "ຂຽນຜູ້ໃຊ້ງານ"
 
-#, fuzzy
 msgctxt "field:party.check_vies.result,id:"
 msgid "ID"
-msgstr "ID"
+msgstr "ບັດ"
 
 msgctxt "field:party.check_vies.result,parties_failed:"
 msgid "Parties Failed"
-msgstr "Controparti non riuscite"
+msgstr "ພາກສ່ວນຫຼົມເຫຼວ"
 
 msgctxt "field:party.check_vies.result,parties_succeed:"
 msgid "Parties Succeed"
-msgstr "Controparti riuscite"
+msgstr "ພາກສ່ວນລຽບລ້ອຍດີ"
 
-#, fuzzy
 msgctxt "field:party.configuration,create_date:"
 msgid "Create Date"
-msgstr "Creazione Data"
+msgstr "ສ້າງວັນທີ"
 
-#, fuzzy
 msgctxt "field:party.configuration,create_uid:"
 msgid "Create User"
-msgstr "Creazione Utente"
+msgstr "ສ້າງຜູ້ໃຊ້"
 
-#, fuzzy
 msgctxt "field:party.configuration,id:"
 msgid "ID"
-msgstr "ID"
-
-msgctxt "field:party.configuration,party_lang:"
-msgid "Party Language"
-msgstr "Lingua controparte"
+msgstr "ເລກລະຫັດ"
 
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
-msgstr "Sequenza controparte"
+msgstr "ລໍາດັບພາກສ່ວນ"
 
-#, fuzzy
 msgctxt "field:party.configuration,rec_name:"
 msgid "Name"
-msgstr "Nome"
+msgstr "ຊື່"
 
-#, fuzzy
 msgctxt "field:party.configuration,write_date:"
 msgid "Write Date"
-msgstr "Data di Scrittura"
+msgstr "ຂຽນວັນທີ"
 
-#, fuzzy
 msgctxt "field:party.configuration,write_uid:"
 msgid "Write User"
-msgstr "Scrivente"
+msgstr "ຂຽນຊື່ຜູ້ໃຊ້"
 
-#, fuzzy
 msgctxt "field:party.contact_mechanism,active:"
 msgid "Active"
-msgstr "Attivo"
+msgstr "ຍັງໃຊ້ຢູ່"
 
 msgctxt "field:party.contact_mechanism,comment:"
 msgid "Comment"
-msgstr "Commento"
+msgstr "ຄໍາເຫັນ"
 
-#, fuzzy
 msgctxt "field:party.contact_mechanism,create_date:"
 msgid "Create Date"
-msgstr "Creazione Data"
+msgstr "ສ້າງວັນທີ"
 
-#, fuzzy
 msgctxt "field:party.contact_mechanism,create_uid:"
 msgid "Create User"
-msgstr "Creazione Utente"
+msgstr "ສ້າງຜູ້ໃຊ້"
 
 msgctxt "field:party.contact_mechanism,email:"
 msgid "E-Mail"
-msgstr "e-mail"
+msgstr "ອີເມນ"
 
-#, fuzzy
 msgctxt "field:party.contact_mechanism,id:"
 msgid "ID"
-msgstr "ID"
+msgstr "ບັດ"
 
-#, fuzzy
 msgctxt "field:party.contact_mechanism,other_value:"
 msgid "Value"
-msgstr "Valore"
+msgstr "ຄ່າ"
 
 msgctxt "field:party.contact_mechanism,party:"
 msgid "Party"
-msgstr "Controparte"
+msgstr "ພາກສ່ວນ"
 
-#, fuzzy
 msgctxt "field:party.contact_mechanism,rec_name:"
 msgid "Name"
-msgstr "Nome"
+msgstr "ຊື່"
 
-#, fuzzy
 msgctxt "field:party.contact_mechanism,sequence:"
 msgid "Sequence"
-msgstr "Sequenza"
+msgstr "ລຽງ"
 
 msgctxt "field:party.contact_mechanism,sip:"
 msgid "SIP"
-msgstr ""
+msgstr "ຕິດຕໍ່ທາງSIP"
 
 msgctxt "field:party.contact_mechanism,skype:"
 msgid "Skype"
-msgstr "Skype"
+msgstr "ຫາໄກປີ"
 
-#, fuzzy
 msgctxt "field:party.contact_mechanism,type:"
 msgid "Type"
-msgstr "Tipo"
+msgstr "ປະເພດ"
 
-#, fuzzy
 msgctxt "field:party.contact_mechanism,url:"
 msgid "URL"
-msgstr "URL"
+msgstr "ທີ່ຢູ່ເວບ"
 
-#, fuzzy
 msgctxt "field:party.contact_mechanism,value:"
 msgid "Value"
-msgstr "Valore"
+msgstr "ຄ່າ"
 
 msgctxt "field:party.contact_mechanism,website:"
 msgid "Website"
-msgstr "Web"
+msgstr "ເວບໄຊ"
 
 msgctxt "field:party.contact_mechanism,write_date:"
 msgid "Write Date"
-msgstr "Data di Scrittura"
+msgstr "ຂຽນວັນທີ"
 
-#, fuzzy
 msgctxt "field:party.contact_mechanism,write_uid:"
 msgid "Write User"
-msgstr "Scrivente"
+msgstr "ຂຽນຊື່ຜູ້ໃຊ້"
 
+#, fuzzy
 msgctxt "field:party.identifier,code:"
 msgid "Code"
-msgstr ""
+msgstr "ລະຫັດ"
 
+#, fuzzy
 msgctxt "field:party.identifier,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "ສ້າງວັນທີ"
 
+#, fuzzy
 msgctxt "field:party.identifier,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "ສ້າງຜູ້ໃຊ້"
 
+#, fuzzy
 msgctxt "field:party.identifier,id:"
 msgid "ID"
-msgstr ""
+msgstr "ເລກລະຫັດ"
 
+#, fuzzy
 msgctxt "field:party.identifier,party:"
 msgid "Party"
-msgstr ""
+msgstr "ພາກສ່ວນ"
 
+#, fuzzy
 msgctxt "field:party.identifier,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "ຊື່"
 
+#, fuzzy
 msgctxt "field:party.identifier,type:"
 msgid "Type"
-msgstr ""
+msgstr "ປະເພດ"
 
+#, fuzzy
 msgctxt "field:party.identifier,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "ຂຽນວັນທີ"
 
+#, fuzzy
 msgctxt "field:party.identifier,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "ຂຽນຊື່ຜູ້ໃຊ້"
 
-#, fuzzy
 msgctxt "field:party.party,active:"
 msgid "Active"
-msgstr "Attivo"
+msgstr "ໃຊ້ງານຢູ່"
 
 msgctxt "field:party.party,addresses:"
 msgid "Addresses"
-msgstr "Indirizzi"
+msgstr "ທີ່ຢູ່"
 
 msgctxt "field:party.party,categories:"
 msgid "Categories"
-msgstr "Categorie"
+msgstr "ໝວດ"
 
 msgctxt "field:party.party,code:"
 msgid "Code"
-msgstr "Codice"
+msgstr "ລະຫັດ"
 
 msgctxt "field:party.party,code_readonly:"
 msgid "Code Readonly"
-msgstr "codice sola lettura"
+msgstr "ລະຫັດລຶບບໍ່ໄດ້"
 
 msgctxt "field:party.party,contact_mechanisms:"
 msgid "Contact Mechanisms"
-msgstr "Meccanismi di contatto"
+msgstr "ລະບົບການຕິດຕໍ່"
 
 msgctxt "field:party.party,create_date:"
 msgid "Create Date"
-msgstr "Data Creazione"
+msgstr "ສ້າງວັນທີ"
 
 msgctxt "field:party.party,create_uid:"
 msgid "Create User"
-msgstr "Creazione Utente"
+msgstr "ສ້າງຜູ້ໃຊ້"
 
 msgctxt "field:party.party,email:"
 msgid "E-Mail"
-msgstr "e-mail"
+msgstr "ອີເມວລ໌"
 
 msgctxt "field:party.party,fax:"
 msgid "Fax"
-msgstr "Fax"
+msgstr "ໂທລະສານ"
 
 msgctxt "field:party.party,full_name:"
 msgid "Full Name"
-msgstr "Nome e cognome"
+msgstr "ຊື່ເຕັມ"
 
-#, fuzzy
 msgctxt "field:party.party,id:"
 msgid "ID"
-msgstr "ID"
+msgstr "ເລກປະຈໍາ"
 
 msgctxt "field:party.party,identifiers:"
 msgid "Identifiers"
 msgstr ""
 
-#, fuzzy
 msgctxt "field:party.party,lang:"
 msgid "Language"
-msgstr "Lingua"
+msgstr "ພາສາ"
 
 msgctxt "field:party.party,mobile:"
 msgid "Mobile"
-msgstr "Cellulare"
+msgstr "ໂທລະສັບມືຖື"
 
-#, fuzzy
 msgctxt "field:party.party,name:"
 msgid "Name"
-msgstr "Nome"
+msgstr "ຊື່"
 
 msgctxt "field:party.party,phone:"
 msgid "Phone"
-msgstr "Telefono"
+msgstr "ໂທລະສັບ"
 
-#, fuzzy
 msgctxt "field:party.party,rec_name:"
 msgid "Name"
-msgstr "Nome"
+msgstr "ຊື່"
 
 msgctxt "field:party.party,vat_code:"
 msgid "VAT Code"
-msgstr "Codice IVA"
+msgstr "ລະຫັດ ອ.ມ.ພ"
 
 msgctxt "field:party.party,website:"
 msgid "Website"
-msgstr "sito web"
+msgstr "ເວັບໄຊຕ໌"
 
-#, fuzzy
 msgctxt "field:party.party,write_date:"
 msgid "Write Date"
-msgstr "Data di Scrittura"
+msgstr "ຂຽນວັນທີ"
 
-#, fuzzy
 msgctxt "field:party.party,write_uid:"
 msgid "Write User"
-msgstr "Scrivente"
+msgstr "ຂຽນຊື່ຜູ້ໃຊ້"
 
 msgctxt "field:party.party-party.category,category:"
 msgid "Category"
-msgstr "Categoria"
+msgstr "ປະເພດ"
 
-#, fuzzy
 msgctxt "field:party.party-party.category,create_date:"
 msgid "Create Date"
-msgstr "Data di creazione"
+msgstr "ສ້າງວັນທີ"
 
-#, fuzzy
 msgctxt "field:party.party-party.category,create_uid:"
 msgid "Create User"
-msgstr "Creazione Utente"
+msgstr "ສ້າງຜູ້ໃຊ້"
 
-#, fuzzy
 msgctxt "field:party.party-party.category,id:"
 msgid "ID"
-msgstr "ID"
+msgstr "ບັດ"
 
 msgctxt "field:party.party-party.category,party:"
 msgid "Party"
-msgstr "Controparte"
+msgstr "ພາກສ່ວນ"
 
 msgctxt "field:party.party-party.category,rec_name:"
 msgid "Name"
-msgstr "Nome"
+msgstr "ຊື່"
 
-#, fuzzy
 msgctxt "field:party.party-party.category,write_date:"
 msgid "Write Date"
-msgstr "Data di Scrittura"
+msgstr "ຂຽນວັນທີ"
 
-#, fuzzy
 msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
-msgstr "Scrivente"
-
-msgctxt "help:party.configuration,party_lang:"
-msgid "The value set on this field will preset the language on new parties"
-msgstr ""
-"Il valore immesso per il campo predeterminerà la lingua delle nuove "
-"controparti"
+msgstr "ຂຽນຊື່ຜູ້ໃຊ້"
 
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
-msgstr "Indirizzi"
+msgstr "ທີ່ຢູ່"
 
 msgctxt "model:ir.action,name:act_category_list"
 msgid "Categories"
-msgstr "Categorie"
+msgstr "ປະເພດ"
 
 msgctxt "model:ir.action,name:act_category_tree"
 msgid "Categories"
-msgstr "Categorie"
+msgstr "ປະເພດ"
 
 msgctxt "model:ir.action,name:act_contact_mechanism_form"
 msgid "Contact Mechanisms"
-msgstr ""
+msgstr "ກົນໄກການຕິດຕໍ່"
 
 msgctxt "model:ir.action,name:act_party_by_category"
 msgid "Parties by Category"
-msgstr "Contrpoarti per categoria"
+msgstr "ພາກສ່ວນລຽງຕາມປະເພດ"
 
 msgctxt "model:ir.action,name:act_party_configuration_form"
 msgid "Party Configuration"
-msgstr "Connfigurazione Controparte"
+msgstr "ການຕັ້ງຄ່າພາກສ່ວນ"
 
 msgctxt "model:ir.action,name:act_party_form"
 msgid "Parties"
-msgstr "Controparti"
+msgstr "ພາກສ່ວນ"
 
 msgctxt "model:ir.action,name:report_label"
 msgid "Labels"
-msgstr "Etichette"
+msgstr "ບັດ"
 
 msgctxt "model:ir.action,name:wizard_check_vies"
 msgid "Check VIES"
-msgstr "Verifica VIES"
+msgstr "ກວດເລກພາສີ"
 
 msgctxt "model:ir.sequence,name:sequence_party"
 msgid "Party"
-msgstr "Controparte"
+msgstr "ພາກສ່ວນ"
 
 msgctxt "model:ir.sequence.type,name:sequence_type_party"
 msgid "Party"
-msgstr "Controparte"
+msgstr "ພາກສ່ວນ"
 
 msgctxt "model:ir.ui.menu,name:menu_address_form"
 msgid "Addresses"
-msgstr "Indirizzi"
+msgstr "ທີ່ຢູ່"
 
 msgctxt "model:ir.ui.menu,name:menu_category_list"
 msgid "Categories"
-msgstr "Categorie"
+msgstr "ໝວດ"
 
 msgctxt "model:ir.ui.menu,name:menu_category_tree"
 msgid "Categories"
-msgstr "Categorie"
+msgstr "ໝວດ"
 
 msgctxt "model:ir.ui.menu,name:menu_configuration"
 msgid "Configuration"
-msgstr "Configurazione"
+msgstr "ການຕັ້ງຄ່າ"
 
 msgctxt "model:ir.ui.menu,name:menu_contact_mechanism_form"
 msgid "Contact Mechanisms"
-msgstr ""
+msgstr "ກົນໄກການຕິດຕໍ່"
 
 msgctxt "model:ir.ui.menu,name:menu_party"
 msgid "Party"
-msgstr "Controparti"
+msgstr "ພາກສ່ວນ"
 
 msgctxt "model:ir.ui.menu,name:menu_party_configuration"
 msgid "Party Configuration"
-msgstr "Configurazione Controparte"
+msgstr "ການຕັ້ງຄ່າພາກສ່ວນ"
 
 msgctxt "model:ir.ui.menu,name:menu_party_form"
 msgid "Parties"
-msgstr "Controparti"
+msgstr "ພາກສ່ວນ"
 
 msgctxt "model:party.address,name:"
 msgid "Address"
-msgstr "Indirizzo"
+msgstr "ທີ່ຢູ່"
 
 msgctxt "model:party.category,name:"
 msgid "Category"
-msgstr "Categoria"
+msgstr "ໝວດ"
 
 msgctxt "model:party.check_vies.result,name:"
 msgid "Check VIES"
-msgstr "Controllo VIES"
+msgstr "ກວດເລກພາສີ"
 
 msgctxt "model:party.configuration,name:"
 msgid "Party Configuration"
-msgstr "Configurazione Controparte"
+msgstr "ການຕັ້ງຄ່າພາກສ່ວນ"
 
 msgctxt "model:party.contact_mechanism,name:"
 msgid "Contact Mechanism"
-msgstr "Meccanismo di contatto"
+msgstr "ລະບົບການຕິດຕໍ່"
 
 msgctxt "model:party.identifier,name:"
 msgid "Party Identifier"
@@ -565,83 +517,83 @@ msgstr ""
 
 msgctxt "model:party.party,name:"
 msgid "Party"
-msgstr "Controparte"
+msgstr "ພາກສ່ວນ"
 
 msgctxt "model:party.party-party.category,name:"
 msgid "Party - Category"
-msgstr "Controparte - Categoria"
+msgstr "ພາກສ່ວນ-ປະເພດ"
 
 msgctxt "model:res.group,name:group_party_admin"
 msgid "Party Administration"
-msgstr "Amministrazione Controparte"
+msgstr "ການບໍລິຫານພາກສ່ວນ"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "E-Mail"
-msgstr "e-mail"
+msgstr "ອີເມນ"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Fax"
-msgstr "Fax"
+msgstr "ແຟກ"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "IRC"
-msgstr "IRC"
+msgstr "ພົວພັນທາງຄອມ"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Jabber"
-msgstr "Jabber"
+msgstr "ສົ່ງສັນຍານຄຳ"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Mobile"
-msgstr "Cellulare"
+msgstr "ມືຖື"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Other"
-msgstr "Altro"
+msgstr "ອື່ນໆ"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Phone"
-msgstr "Telefono"
+msgstr "ໂທລະສັບຕັ້ງໂຕະ"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "SIP"
-msgstr ""
+msgstr "ໂທລະສັບວິດິໂອ"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Skype"
-msgstr "Skype"
+msgstr "ສະໄກປີ"
 
 msgctxt "selection:party.contact_mechanism,type:"
 msgid "Website"
-msgstr "sito web"
+msgstr "ເວບໄຊ"
 
 msgctxt "view:party.address:"
 msgid "Addresses"
-msgstr ""
+msgstr "ທີ່ຢູ່"
 
 msgctxt "view:party.category:"
 msgid "Categories"
-msgstr ""
+msgstr "ປະເພດ"
 
 msgctxt "view:party.category:"
 msgid "Category"
-msgstr ""
+msgstr "ປະເພດ"
 
 msgctxt "view:party.check_vies.result:"
 msgid "VAT Information Exchange System Results"
-msgstr ""
+msgstr "ປົນລະບົບແລກປ່ຽນພາສີ"
 
 msgctxt "view:party.configuration:"
 msgid "Party Configuration"
-msgstr ""
+msgstr "ການຕັ້ງຄ່າພາກສ່ວນ"
 
 msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanism"
-msgstr ""
+msgstr "ລະບົບການຕິດຕໍ່"
 
 msgctxt "view:party.contact_mechanism:"
 msgid "Contact Mechanisms"
-msgstr ""
+msgstr "ລະບົບການຕິດຕໍ່"
 
 msgctxt "view:party.identifier:"
 msgid "Party Identifier"
@@ -653,16 +605,16 @@ msgstr ""
 
 msgctxt "view:party.party:"
 msgid "General"
-msgstr ""
+msgstr "ທົ່ວໄປ"
 
 msgctxt "view:party.party:"
 msgid "Parties"
-msgstr ""
+msgstr "ພາກສ່ວນ"
 
 msgctxt "view:party.party:"
 msgid "Party"
-msgstr ""
+msgstr "ພາກສ່ວນ"
 
 msgctxt "wizard_button:party.check_vies,result,end:"
 msgid "OK"
-msgstr ""
+msgstr "ຕົກລົງ"
diff --git a/locale/lt_LT.po b/locale/lt_LT.po
index bc2a22e..ce1b20c 100644
--- a/locale/lt_LT.po
+++ b/locale/lt_LT.po
@@ -162,10 +162,6 @@ msgctxt "field:party.configuration,id:"
 msgid "ID"
 msgstr ""
 
-msgctxt "field:party.configuration,party_lang:"
-msgid "Party Language"
-msgstr ""
-
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr ""
@@ -410,10 +406,6 @@ msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
 msgstr ""
 
-msgctxt "help:party.configuration,party_lang:"
-msgid "The value set on this field will preset the language on new parties"
-msgstr ""
-
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr ""
diff --git a/locale/nl_NL.po b/locale/nl_NL.po
index bf06ce1..9542feb 100644
--- a/locale/nl_NL.po
+++ b/locale/nl_NL.po
@@ -162,11 +162,6 @@ msgctxt "field:party.configuration,id:"
 msgid "ID"
 msgstr ""
 
-#, fuzzy
-msgctxt "field:party.configuration,party_lang:"
-msgid "Party Language"
-msgstr "Taal relatie"
-
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr "Relatiecode"
@@ -258,7 +253,7 @@ msgstr ""
 
 msgctxt "field:party.identifier,code:"
 msgid "Code"
-msgstr ""
+msgstr "Code"
 
 msgctxt "field:party.identifier,create_date:"
 msgid "Create Date"
@@ -274,15 +269,15 @@ msgstr ""
 
 msgctxt "field:party.identifier,party:"
 msgid "Party"
-msgstr ""
+msgstr "Relatie"
 
 msgctxt "field:party.identifier,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "Aanhef"
 
 msgctxt "field:party.identifier,type:"
 msgid "Type"
-msgstr ""
+msgstr "Type"
 
 msgctxt "field:party.identifier,write_date:"
 msgid "Write Date"
@@ -412,10 +407,6 @@ msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
 msgstr ""
 
-msgctxt "help:party.configuration,party_lang:"
-msgid "The value set on this field will preset the language on new parties"
-msgstr ""
-
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr "Adressen"
diff --git a/locale/pt_BR.po b/locale/pt_BR.po
index cdb2e81..484208b 100644
--- a/locale/pt_BR.po
+++ b/locale/pt_BR.po
@@ -162,10 +162,6 @@ msgctxt "field:party.configuration,id:"
 msgid "ID"
 msgstr "ID"
 
-msgctxt "field:party.configuration,party_lang:"
-msgid "Party Language"
-msgstr "Idioma da pessoa"
-
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr "Sequência da pessoa"
@@ -410,12 +406,6 @@ msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
 msgstr "Gravado pelo usuário"
 
-msgctxt "help:party.configuration,party_lang:"
-msgid "The value set on this field will preset the language on new parties"
-msgstr ""
-"O valor configurado neste campo será atribuído como o idioma padrão ao se "
-"cadastrar novas pessoas"
-
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr "Endereços"
diff --git a/locale/ru_RU.po b/locale/ru_RU.po
index 88d3c8e..191fdb4 100644
--- a/locale/ru_RU.po
+++ b/locale/ru_RU.po
@@ -26,9 +26,10 @@ msgctxt "error:party.contact_mechanism:"
 msgid "You can not modify the party of contact mechanism \"%s\"."
 msgstr "Вы не можете изменить контрагента в контакнтых данных \"%s\"."
 
+#, fuzzy
 msgctxt "error:party.identifier:"
 msgid "Invalid VAT number \"%(code)s\" on party \"%(party)s\"."
-msgstr ""
+msgstr "Некорректный номер ИНН \"%(vat)s\" у контрагента \"%(party)s\"."
 
 msgctxt "error:party.party:"
 msgid "The code of the party must be unique."
@@ -166,10 +167,6 @@ msgctxt "field:party.configuration,id:"
 msgid "ID"
 msgstr "ID"
 
-msgctxt "field:party.configuration,party_lang:"
-msgid "Party Language"
-msgstr "Язык контрагента"
-
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr "Нумерация для контрагентов"
@@ -260,39 +257,39 @@ msgstr "Изменено пользователем"
 
 msgctxt "field:party.identifier,code:"
 msgid "Code"
-msgstr ""
+msgstr "Код"
 
 msgctxt "field:party.identifier,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Дата создания"
 
 msgctxt "field:party.identifier,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "Создано пользователем"
 
 msgctxt "field:party.identifier,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:party.identifier,party:"
 msgid "Party"
-msgstr ""
+msgstr "Контрагент"
 
 msgctxt "field:party.identifier,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "Наименование"
 
 msgctxt "field:party.identifier,type:"
 msgid "Type"
-msgstr ""
+msgstr "Тип"
 
 msgctxt "field:party.identifier,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Дата изменения"
 
 msgctxt "field:party.identifier,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Изменено пользователем"
 
 msgctxt "field:party.party,active:"
 msgid "Active"
@@ -414,10 +411,6 @@ msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
 msgstr "Изменено пользователем"
 
-msgctxt "help:party.configuration,party_lang:"
-msgid "The value set on this field will preset the language on new parties"
-msgstr "Значение этого поля задает язык по умолчанию у новых контрагентов"
-
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr "Адреса"
diff --git a/locale/sl_SI.po b/locale/sl_SI.po
index 3a4da34..d9af975 100644
--- a/locale/sl_SI.po
+++ b/locale/sl_SI.po
@@ -162,10 +162,6 @@ msgctxt "field:party.configuration,id:"
 msgid "ID"
 msgstr "ID"
 
-msgctxt "field:party.configuration,party_lang:"
-msgid "Party Language"
-msgstr "Jezik partnerja"
-
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr "Štetje partnerjev"
@@ -410,10 +406,6 @@ msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
 msgstr "Zapisal"
 
-msgctxt "help:party.configuration,party_lang:"
-msgid "The value set on this field will preset the language on new parties"
-msgstr "Vrednost v tem polju bo nastavila jezik za nove partnerje."
-
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr "Naslovi"
diff --git a/locale/lt_LT.po b/locale/zh_CN.po
similarity index 98%
copy from locale/lt_LT.po
copy to locale/zh_CN.po
index bc2a22e..ce1b20c 100644
--- a/locale/lt_LT.po
+++ b/locale/zh_CN.po
@@ -162,10 +162,6 @@ msgctxt "field:party.configuration,id:"
 msgid "ID"
 msgstr ""
 
-msgctxt "field:party.configuration,party_lang:"
-msgid "Party Language"
-msgstr ""
-
 msgctxt "field:party.configuration,party_sequence:"
 msgid "Party Sequence"
 msgstr ""
@@ -410,10 +406,6 @@ msgctxt "field:party.party-party.category,write_uid:"
 msgid "Write User"
 msgstr ""
 
-msgctxt "help:party.configuration,party_lang:"
-msgid "The value set on this field will preset the language on new parties"
-msgstr ""
-
 msgctxt "model:ir.action,name:act_address_form"
 msgid "Addresses"
 msgstr ""
diff --git a/party.py b/party.py
index b146c5c..6742861 100644
--- a/party.py
+++ b/party.py
@@ -28,8 +28,7 @@ class Party(ModelSQL, ModelView):
     "Party"
     __name__ = 'party.party'
 
-    name = fields.Char('Name', required=True, select=True,
-        states=STATES, depends=DEPENDS)
+    name = fields.Char('Name', select=True, states=STATES, depends=DEPENDS)
     code = fields.Char('Code', required=True, select=True,
         states={
             'readonly': Eval('code_readonly', True),
@@ -72,12 +71,12 @@ class Party(ModelSQL, ModelView):
         pool = Pool()
         Property = pool.get('ir.property')
         TableHandler = backend.get('TableHandler')
-        cursor = Transaction().cursor
+        cursor = Transaction().connection.cursor()
         table = cls.__table__()
 
         super(Party, cls).__register__(module_name)
 
-        table_h = TableHandler(cursor, cls, module_name)
+        table_h = TableHandler(cls, module_name)
         if table_h.column_exist('lang'):
             cursor.execute(*table.select(table.id, table.lang,
                     order_by=table.lang))
@@ -90,6 +89,9 @@ class Party(ModelSQL, ModelView):
                 Property.set('lang', cls.__name__, ids, value)
             table_h.drop_column('lang')
 
+        # Migration from 3.8
+        table_h.not_null_action('name', 'remove')
+
     @staticmethod
     def order_code(tables):
         table, _ = tables[None]
@@ -114,13 +116,6 @@ class Party(ModelSQL, ModelView):
         return [Address.default_get(fields_names)]
 
     @staticmethod
-    def default_lang():
-        Configuration = Pool().get('party.configuration')
-        config = Configuration(1)
-        if config.party_lang:
-            return config.party_lang.id
-
-    @staticmethod
     def default_code_readonly():
         Configuration = Pool().get('party.configuration')
         config = Configuration(1)
@@ -182,6 +177,11 @@ class Party(ModelSQL, ModelView):
             icon = icon or 'tryton-party'
             yield record, rec_name, icon
 
+    def get_rec_name(self, name):
+        if not self.name:
+            return '[' + self.code + ']'
+        return self.name
+
     @classmethod
     def search_rec_name(cls, name, clause):
         if clause[1].startswith('!') or clause[1].startswith('not '):
@@ -246,12 +246,12 @@ class PartyIdentifier(ModelSQL, ModelView):
         pool = Pool()
         Party = pool.get('party.party')
         TableHandler = backend.get('TableHandler')
-        cursor = Transaction().cursor
+        cursor = Transaction().connection.cursor()
         party = Party.__table__()
 
         super(PartyIdentifier, cls).__register__(module_name)
 
-        party_h = TableHandler(cursor, Party, module_name)
+        party_h = TableHandler(Party, module_name)
         if (party_h.column_exist('vat_number')
                 and party_h.column_exist('vat_country')):
             identifiers = []
@@ -288,18 +288,20 @@ class PartyIdentifier(ModelSQL, ModelView):
                 pass
         return self.code
 
-    @classmethod
-    def validate(cls, identifiers):
-        super(PartyIdentifier, cls).validate(identifiers)
-        for identifier in identifiers:
-            identifier.check_code()
+    def pre_validate(self):
+        super(PartyIdentifier, self).pre_validate()
+        self.check_code()
 
     def check_code(self):
         if self.type == 'eu_vat':
             if not vat.is_valid(self.code):
+                if self.party.id > 0:
+                    party = self.party.rec_name
+                else:
+                    party = ''
                 self.raise_user_error('invalid_vat', {
                         'code': self.code,
-                        'party': self.party.rec_name,
+                        'party': party,
                         })
 
 
diff --git a/setup.py b/setup.py
index 1d6fc19..1b110b6 100644
--- a/setup.py
+++ b/setup.py
@@ -5,11 +5,17 @@
 from setuptools import setup
 import re
 import os
-import ConfigParser
+import io
+try:
+    from configparser import ConfigParser
+except ImportError:
+    from ConfigParser import ConfigParser
 
 
 def read(fname):
-    return open(os.path.join(os.path.dirname(__file__), fname)).read()
+    return io.open(
+        os.path.join(os.path.dirname(__file__), fname),
+        'r', encoding='utf-8').read()
 
 
 def get_require_version(name):
@@ -21,7 +27,7 @@ def get_require_version(name):
         major_version, minor_version + 1)
     return require
 
-config = ConfigParser.ConfigParser()
+config = ConfigParser()
 config.readfp(open('tryton.cfg'))
 info = dict(config.items('tryton'))
 for key in ('depends', 'extras_depend', 'xml'):
@@ -43,7 +49,7 @@ if minor_version % 2:
 
 requires = ['python-sql >= 0.4', 'python-stdnum']
 for dep in info.get('depends', []):
-    if not re.match(r'(ir|res|webdav)(\W|$)', dep):
+    if not re.match(r'(ir|res)(\W|$)', dep):
         requires.append(get_require_version('trytond_%s' % dep))
 requires.append(get_require_version('trytond'))
 
@@ -77,6 +83,7 @@ setup(name=name,
         'License :: OSI Approved :: GNU General Public License (GPL)',
         'Natural Language :: Bulgarian',
         'Natural Language :: Catalan',
+        'Natural Language :: Chinese (Simplified)',
         'Natural Language :: Czech',
         'Natural Language :: Dutch',
         'Natural Language :: English',
@@ -90,6 +97,9 @@ setup(name=name,
         'Natural Language :: Spanish',
         'Operating System :: OS Independent',
         'Programming Language :: Python :: 2.7',
+        'Programming Language :: Python :: 3.3',
+        'Programming Language :: Python :: 3.4',
+        'Programming Language :: Python :: 3.5',
         'Programming Language :: Python :: Implementation :: CPython',
         'Programming Language :: Python :: Implementation :: PyPy',
         'Topic :: Office/Business',
@@ -106,4 +116,5 @@ setup(name=name,
     """,
     test_suite='tests',
     test_loader='trytond.test_loader:Loader',
+    use_2to3=True,
     )
diff --git a/tests/__init__.py b/tests/__init__.py
index b42e89b..529ad88 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -1,6 +1,9 @@
 # This file is part of Tryton.  The COPYRIGHT file at the top level of
 # this repository contains the full copyright notices and license terms.
 
-from .test_party import suite
+try:
+    from trytond.modules.party.tests.test_party import suite
+except ImportError:
+    from .test_party import suite
 
 __all__ = ['suite']
diff --git a/tests/test_party.py b/tests/test_party.py
index ef88cfb..d91155a 100644
--- a/tests/test_party.py
+++ b/tests/test_party.py
@@ -2,95 +2,110 @@
 # this repository contains the full copyright notices and license terms.
 import unittest
 import trytond.tests.test_tryton
-from trytond.tests.test_tryton import ModuleTestCase
-from trytond.tests.test_tryton import POOL, DB_NAME, USER, CONTEXT
-from trytond.transaction import Transaction
+from trytond.tests.test_tryton import ModuleTestCase, with_transaction
+from trytond.pool import Pool
 
 
 class PartyTestCase(ModuleTestCase):
     'Test Party module'
     module = 'party'
 
-    def setUp(self):
-        super(PartyTestCase, self).setUp()
-        self.category = POOL.get('party.category')
-        self.party = POOL.get('party.party')
-        self.address = POOL.get('party.address')
-
-    def test0010category(self):
+    @with_transaction()
+    def test_category(self):
         'Create category'
-        with Transaction().start(DB_NAME, USER,
-                context=CONTEXT) as transaction:
-            category1, = self.category.create([{
-                        'name': 'Category 1',
-                        }])
-            self.assert_(category1.id)
-            transaction.cursor.commit()
-
-    def test0020category_recursion(self):
+        pool = Pool()
+        Category = pool.get('party.category')
+        category1, = Category.create([{
+                    'name': 'Category 1',
+                    }])
+        self.assert_(category1.id)
+
+    @with_transaction()
+    def test_category_recursion(self):
         'Test category recursion'
-        with Transaction().start(DB_NAME, USER, context=CONTEXT):
-            category1, = self.category.search([
-                ('name', '=', 'Category 1'),
-                ], limit=1)
-
-            category2, = self.category.create([{
-                        'name': 'Category 2',
-                        'parent': category1.id,
-                        }])
-            self.assert_(category2.id)
-
-            self.assertRaises(Exception, self.category.write,
-                [category1], {
-                    'parent': category2.id,
+        pool = Pool()
+        Category = pool.get('party.category')
+        category1, = Category.create([{
+                    'name': 'Category 1',
+                    }])
+        category2, = Category.create([{
+                    'name': 'Category 2',
+                    'parent': category1.id,
+                    }])
+        self.assert_(category2.id)
+
+        self.assertRaises(Exception, Category.write, [category1], {
+                'parent': category2.id,
                 })
 
-    def test0030party(self):
+    @with_transaction()
+    def test_party(self):
         'Create party'
-        with Transaction().start(DB_NAME, USER,
-                context=CONTEXT) as transaction:
-            party1, = self.party.create([{
-                        'name': 'Party 1',
-                        }])
-            self.assert_(party1.id)
-            transaction.cursor.commit()
-
-    def test0040party_code(self):
+        pool = Pool()
+        Party = pool.get('party.party')
+        party1, = Party.create([{
+                    'name': 'Party 1',
+                    }])
+        self.assert_(party1.id)
+
+    @with_transaction()
+    def test_party_code(self):
         'Test party code constraint'
-        with Transaction().start(DB_NAME, USER, context=CONTEXT):
-            party1, = self.party.search([], limit=1)
+        pool = Pool()
+        Party = pool.get('party.party')
+        party1, = Party.create([{
+                    'name': 'Party 1',
+                    }])
 
-            code = party1.code
+        code = party1.code
 
-            party2, = self.party.create([{
-                        'name': 'Party 2',
-                        }])
+        party2, = Party.create([{
+                    'name': 'Party 2',
+                    }])
 
-            self.assertRaises(Exception, self.party.write,
-                [party2], {
-                    'code': code,
+        self.assertRaises(Exception, Party.write, [party2], {
+                'code': code,
                 })
 
-    def test0050address(self):
+    @with_transaction()
+    def test_address(self):
         'Create address'
-        with Transaction().start(DB_NAME, USER, context=CONTEXT):
-            party1, = self.party.search([], limit=1)
-
-            address, = self.address.create([{
-                        'party': party1.id,
-                        'street': 'St sample, 15',
-                        'city': 'City',
-                        }])
-            self.assert_(address.id)
-
-    def test0060party_label_report(self):
+        pool = Pool()
+        Party = pool.get('party.party')
+        Address = pool.get('party.address')
+        party1, = Party.create([{
+                    'name': 'Party 1',
+                    }])
+
+        address, = Address.create([{
+                    'party': party1.id,
+                    'street': 'St sample, 15',
+                    'city': 'City',
+                    }])
+        self.assert_(address.id)
+
+    @with_transaction()
+    def test_party_label_report(self):
         'Test party label report'
-        with Transaction().start(DB_NAME, USER, context=CONTEXT):
-            party1, = self.party.search([], limit=1)
-            report = POOL.get('party.label', type='report')
-            oext, content, _, _ = report.execute([party1.id], {})
-            self.assertEqual(oext, 'odt')
-            self.assertTrue(content)
+        pool = Pool()
+        Party = pool.get('party.party')
+        Label = pool.get('party.label', type='report')
+        party1, = Party.create([{
+                    'name': 'Party 1',
+                    }])
+        oext, content, _, _ = Label.execute([party1.id], {})
+        self.assertEqual(oext, 'odt')
+        self.assertTrue(content)
+
+    @with_transaction()
+    def test_party_without_name(self):
+        'Create party without name'
+        pool = Pool()
+        Party = pool.get('party.party')
+        party2, = Party.create([{}])
+        self.assert_(party2.id)
+        code = party2.code
+        self.assertEqual(party2.rec_name, '[' + code + ']')
 
 
 def suite():
diff --git a/tryton.cfg b/tryton.cfg
index 3d98027..6885398 100644
--- a/tryton.cfg
+++ b/tryton.cfg
@@ -1,5 +1,5 @@
 [tryton]
-version=3.8.1
+version=4.0.0
 depends:
     country
     ir
diff --git a/trytond_party.egg-info/PKG-INFO b/trytond_party.egg-info/PKG-INFO
index 635fd9b..5ea9e55 100644
--- a/trytond_party.egg-info/PKG-INFO
+++ b/trytond_party.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.1
 Name: trytond-party
-Version: 3.8.1
+Version: 4.0.0
 Summary: Tryton module with parties and addresses
 Home-page: http://www.tryton.org/
 Author: Tryton
 Author-email: issue_tracker at tryton.org
 License: GPL-3
-Download-URL: http://downloads.tryton.org/3.8/
+Download-URL: http://downloads.tryton.org/4.0/
 Description: trytond_party
         =============
         
@@ -55,6 +55,7 @@ Classifier: Intended Audience :: Manufacturing
 Classifier: License :: OSI Approved :: GNU General Public License (GPL)
 Classifier: Natural Language :: Bulgarian
 Classifier: Natural Language :: Catalan
+Classifier: Natural Language :: Chinese (Simplified)
 Classifier: Natural Language :: Czech
 Classifier: Natural Language :: Dutch
 Classifier: Natural Language :: English
@@ -68,6 +69,9 @@ Classifier: Natural Language :: Slovenian
 Classifier: Natural Language :: Spanish
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3.3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Topic :: Office/Business
diff --git a/trytond_party.egg-info/SOURCES.txt b/trytond_party.egg-info/SOURCES.txt
index fe61117..6c1308f 100644
--- a/trytond_party.egg-info/SOURCES.txt
+++ b/trytond_party.egg-info/SOURCES.txt
@@ -76,11 +76,13 @@ locale/fr_FR.po
 locale/hu_HU.po
 locale/it_IT.po
 locale/ja_JP.po
+locale/lo_LA.po
 locale/lt_LT.po
 locale/nl_NL.po
 locale/pt_BR.po
 locale/ru_RU.po
 locale/sl_SI.po
+locale/zh_CN.po
 trytond_party.egg-info/PKG-INFO
 trytond_party.egg-info/SOURCES.txt
 trytond_party.egg-info/dependency_links.txt
diff --git a/trytond_party.egg-info/requires.txt b/trytond_party.egg-info/requires.txt
index b3a02fb..52ae873 100644
--- a/trytond_party.egg-info/requires.txt
+++ b/trytond_party.egg-info/requires.txt
@@ -1,7 +1,7 @@
 python-sql >= 0.4
 python-stdnum
-trytond_country >= 3.8, < 3.9
-trytond >= 3.8, < 3.9
+trytond_country >= 4.0, < 4.1
+trytond >= 4.0, < 4.1
 
 [VAT]
 python-stdnum
\ No newline at end of file
diff --git a/view/configuration_form.xml b/view/configuration_form.xml
index 60ad602..66eb72e 100644
--- a/view/configuration_form.xml
+++ b/view/configuration_form.xml
@@ -4,6 +4,4 @@ this repository contains the full copyright notices and license terms. -->
 <form string="Party Configuration">
     <label name="party_sequence"/>
     <field name="party_sequence"/>
-    <label name="party_lang" />
-    <field name="party_lang" widget="selection" />
 </form>
diff --git a/view/party_form.xml b/view/party_form.xml
index 2410fa6..241228b 100644
--- a/view/party_form.xml
+++ b/view/party_form.xml
@@ -25,7 +25,7 @@ this repository contains the full copyright notices and license terms. -->
                 view_ids="party.category_view_list"/>
         </page>
         <page name="identifiers">
-            <field name="identifiers" colspan="4"/>
+            <field name="identifiers" colspan="4" pre_validate="1"/>
         </page>
     </notebook>
 </form>
-- 
tryton-modules-party



More information about the tryton-debian-vcs mailing list