diff --git a/htdocs/langs/ca_ES/languages.lang b/htdocs/langs/ca_ES/languages.lang
index b6b6d03b9d044197b4952e9bf6a8a5b915b6ce2b..fb3e6c8d5bb9ea0a94b0ea989b77725afa6b097c 100644
--- a/htdocs/langs/ca_ES/languages.lang
+++ b/htdocs/langs/ca_ES/languages.lang
@@ -19,6 +19,7 @@ Language_fr_FR=Francès
 Language_hu_HU=Hongarès
 Language_is_IS=Islandès
 Language_it_IT=Italià
+Language_ja_JP=Japonès
 Language_nb_NO=Noruec (Bokmal)
 Language_nl_BE=Neerlandès (Bèlgica)
 Language_nl_NL=Neerlandès (Països Baixos)
diff --git a/htdocs/langs/ca_ES/withdrawals.lang b/htdocs/langs/ca_ES/withdrawals.lang
index 0de2ca383eb3f6506a1152a03ebb7211b1701dd1..3e71fe0cf6ae072f698ebd4194adaf309e693476 100644
--- a/htdocs/langs/ca_ES/withdrawals.lang
+++ b/htdocs/langs/ca_ES/withdrawals.lang
@@ -74,3 +74,4 @@ PleaseSelectCustomerBankBANToWithdraw=Introduïu la informació del compte banca
 WithBankUsingRIB=Per als comptes bancaris que utilitzen CCC
 WithBankUsingBANBIC=Per als comptes bancaris que utilitzen el codi BAN/BIC/SWIFT
 BankToReceiveWithdraw=Informació del seu compte bancari receptor de les domiciliacions
+CreditDate=Abonada el
\ No newline at end of file
diff --git a/htdocs/langs/da_DA/languages.lang b/htdocs/langs/da_DA/languages.lang
index 003db02ebc599812232fdcde8e00b86735bcdc76..4c42cd9988076e1d0e1a823df17deb4a22fd0914 100644
--- a/htdocs/langs/da_DA/languages.lang
+++ b/htdocs/langs/da_DA/languages.lang
@@ -25,6 +25,7 @@ Language_fr_CH=Fransk (Schweiz)
 Language_fr_FR=Fransk
 Language_is_IS=Islandsk
 Language_it_IT=Italiensk
+Language_ja_JP=Japansk
 Language_nb_NO=Norsk (Bokmål)
 Language_nl_BE=Hollandsk (Belgien)
 Language_nl_NL=Hollandsk (Nederlandene)
diff --git a/htdocs/langs/de_AT/languages.lang b/htdocs/langs/de_AT/languages.lang
index 6a070cf8d8dc0f44f4583b3b01d78153ea4cae82..9cc22158e1e043ca340d7d4fe79c9e742f6548b5 100755
--- a/htdocs/langs/de_AT/languages.lang
+++ b/htdocs/langs/de_AT/languages.lang
@@ -24,6 +24,7 @@ Language_fr_CH=Französisch (Schweiz)
 Language_fr_FR=Französisch
 Language_is_IS=Isländisch
 Language_it_IT=Italienisch
+Language_ja_JP=Japanisch
 Language_nb_NO=Norwegisch (Bokmål)
 Language_nl_BE=Niederländisch (Belgien)
 Language_nl_NL=Niederländisch (Niederlande)
diff --git a/htdocs/langs/de_DE/languages.lang b/htdocs/langs/de_DE/languages.lang
index 6a070cf8d8dc0f44f4583b3b01d78153ea4cae82..9cc22158e1e043ca340d7d4fe79c9e742f6548b5 100644
--- a/htdocs/langs/de_DE/languages.lang
+++ b/htdocs/langs/de_DE/languages.lang
@@ -24,6 +24,7 @@ Language_fr_CH=Französisch (Schweiz)
 Language_fr_FR=Französisch
 Language_is_IS=Isländisch
 Language_it_IT=Italienisch
+Language_ja_JP=Japanisch
 Language_nb_NO=Norwegisch (Bokmål)
 Language_nl_BE=Niederländisch (Belgien)
 Language_nl_NL=Niederländisch (Niederlande)
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index 308423eefbd285cce8ea219064d546c00f5fe1e6..74d260282fa3375135c33a67a8a4764d635eb754 100644
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -284,6 +284,7 @@ NumberOfModelFilesFound=Number of ODT templates files found in those directories
 ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
 FirstnameNamePosition=Position of firstname/name
 DescWeather=The following pictures will be shown on dashboard when number of late actions reach the following values:
+KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices)
 
 # Modules
 Module0Name=Users & groups
@@ -892,7 +893,7 @@ FreeLegalTextOnOrders=Free text on orders
 WatermarkOnDraftOrders=Watermark on draft orders (any if empty)
 ##### Clicktodial #####
 ClickToDialSetup=Click To Dial module setup
-ClickToDialUrlDesc=Url called when a click on phone picto is done.  Dans l'url, vous pouvez utiliser les balises<br><b>__PHONETO__</b> qui sera remplacé par le téléphone de l'appelé<br><b>__PHONEFROM__</b> qui sera remplacé par le téléphone de l'appelant (le votre)<br><b>__LOGIN__</b> qui sera remplacé par votre login clicktodial (défini sur votre fiche utilisateur)<br><b>__PASS__</b> qui sera remplacé par votre mot de passe clicktodial (défini sur votre fiche utilisateur).
+ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with your clicktodial login (defined on your user card)<br><b>__PASS__</b> that will be replaced with your clicktodial password (defined on your user card).
 ##### Bookmark4u #####
 Bookmark4uSetup=Bookmark4u module setup
 ##### Interventions #####
@@ -1194,7 +1195,7 @@ NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu
 ##### WebServices #####
 WebServicesSetup=Webservices module setup
 WebServicesDesc=By enabling this module, Dolibarr become a web service server to provide miscellaneous web services.
-WSDLCanBeDownloadedHere=WSDL descriptor file of provided serviceses can be download here
+WSDLCanBeDownloadedHere=WSDL descriptor files of provided services can be download here
 EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at Url
 ##### Bank #####
 BankSetupModule=Bank module setup
diff --git a/htdocs/langs/en_US/languages.lang b/htdocs/langs/en_US/languages.lang
index 1c97df9a5ac5a3bf99aee74323e52216d7b51d9f..38aba1a4d2327e996b8ff8c25be33ca76557ad8f 100644
--- a/htdocs/langs/en_US/languages.lang
+++ b/htdocs/langs/en_US/languages.lang
@@ -20,6 +20,7 @@ Language_fr_FR=French
 Language_hu_HU=Hungarian
 Language_is_IS=Icelandic
 Language_it_IT=Italian
+Language_ja_JP=Japanese
 Language_nb_NO=Norwegian (Bokmål)
 Language_nl_BE=Dutch (Belgium)
 Language_nl_NL=Dutch (Netherlands)
diff --git a/htdocs/langs/en_US/members.lang b/htdocs/langs/en_US/members.lang
index 98ad76d1fe4875e603ff08e83267e0ea25655f29..e3b7257b24cba2ff0c8e87c3841c4e5dc81a0065 100644
--- a/htdocs/langs/en_US/members.lang
+++ b/htdocs/langs/en_US/members.lang
@@ -147,6 +147,8 @@ DescADHERENT_CARD_TEXT=Text printed on member cards (align on left)
 DescADHERENT_CARD_TEXT_RIGHT=Text printed on member cards (align on right)
 DescADHERENT_CARD_FOOTER_TEXT=Text printed on bottom of member cards
 DescADHERENT_MAILMAN_LISTS=List(s) for automatic insription of new members (separated by a comma)
+GlobalConfigUsedIfNotDefined=Text defined in Foundation module setup will be used if not defined here
+MayBeOverwrited=This text can be overwrited by value defined for member's type
 ShowTypeCard=Show type '%s'
 HTPasswordExport=htpassword file generation
 NoThirdPartyAssociatedToMember=No third party associated to this member
@@ -161,4 +163,6 @@ LinkToGeneratedPagesDesc=This screen allows you to generate PDF files with busin
 DocForAllMembersCards=Generate business cards for all members (Format for output actually setup : <b>%s</b>)
 DocForOneMemberCards=Generate business cards for a particular member (Format for output actually setup: <b>%s</b>)
 DocForLabels=Generate address sheets (Format for output actually setup: <b>%s</b>)
-SubscriptionPayment=Subscription payment
\ No newline at end of file
+SubscriptionPayment=Subscription payment
+LastSubscriptionDate=Last subscription date
+LastSubscriptionAmount=Last subscription amount
diff --git a/htdocs/langs/en_US/withdrawals.lang b/htdocs/langs/en_US/withdrawals.lang
index 964a8c790152fd4fbe4706304ad950e6131c1532..8fa4a324922b92666b119b48742928bb89648eb4 100755
--- a/htdocs/langs/en_US/withdrawals.lang
+++ b/htdocs/langs/en_US/withdrawals.lang
@@ -73,4 +73,5 @@ NumeroNationalEmetter=National Transmitter Number
 PleaseSelectCustomerBankBANToWithdraw=Select information about customer bank account to withdraw
 WithBankUsingRIB=For bank accounts using RIB
 WithBankUsingBANBIC=For bank accounts using IBAN/BIC/SWIFT
-BankToReceiveWithdraw=Information about you bank account to receive withdraws
\ No newline at end of file
+BankToReceiveWithdraw=Information about you bank account to receive withdraws
+CreditDate=Credit on
\ No newline at end of file
diff --git a/htdocs/langs/es_AR/languages.lang b/htdocs/langs/es_AR/languages.lang
index f070a6dd02547acb2f3a260ed70aebf371bfaded..8ab18dff2ca0ad5a4a578b3036606c668e1d1b62 100755
--- a/htdocs/langs/es_AR/languages.lang
+++ b/htdocs/langs/es_AR/languages.lang
@@ -19,6 +19,7 @@ Language_fr_FR=Francés
 Language_hu_HU=Húngaro
 Language_is_IS=Islandés
 Language_it_IT=Italiano
+Language_ja_JP=Japonés
 Language_nb_NO=Noruego (Bokmal)
 Language_nl_BE=Neerlandés (Bélgica)
 Language_nl_NL=Neerlandés (Países Bajos)
diff --git a/htdocs/langs/es_AR/withdrawals.lang b/htdocs/langs/es_AR/withdrawals.lang
index a3738690c40e8af676de218129e926149d879927..1864b57ba4bbcaffc6bc8650818ad71932ede120 100755
--- a/htdocs/langs/es_AR/withdrawals.lang
+++ b/htdocs/langs/es_AR/withdrawals.lang
@@ -74,3 +74,4 @@ PleaseSelectCustomerBankBANToWithdraw=Introduzca la información de la cuenta ba
 WithBankUsingRIB=Para las cuentas bancarias que utilizan CCC
 WithBankUsingBANBIC=Para las cuentas bancarias que utilizan el código BAN/BIC/SWIFT
 BankToReceiveWithdraw=Información de su cuenta bancaria receptora de las domiciliaciones
+CreditDate=Abonada el
\ No newline at end of file
diff --git a/htdocs/langs/es_ES/languages.lang b/htdocs/langs/es_ES/languages.lang
index f4adfc9cfb76c60ca50e919d1797ba5d88494248..92f58ba4ee19a01aca8c175c6b2e49829378aafa 100644
--- a/htdocs/langs/es_ES/languages.lang
+++ b/htdocs/langs/es_ES/languages.lang
@@ -19,6 +19,7 @@ Language_fr_FR=Francés
 Language_hu_HU=Húngaro
 Language_is_IS=Islandés
 Language_it_IT=Italiano
+Language_ja_JP=Japonés
 Language_nb_NO=Noruego (Bokmal)
 Language_nl_BE=Neerlandés (Bélgica)
 Language_nl_NL=Neerlandés (Países Bajos)
diff --git a/htdocs/langs/es_ES/withdrawals.lang b/htdocs/langs/es_ES/withdrawals.lang
index c2b40f64990c8de4ff10589ff3396292bf9c0198..1d71135464b8bb16c16b7146b82e15ac03343c9c 100644
--- a/htdocs/langs/es_ES/withdrawals.lang
+++ b/htdocs/langs/es_ES/withdrawals.lang
@@ -74,3 +74,4 @@ PleaseSelectCustomerBankBANToWithdraw=Introduzca la información de la cuenta ba
 WithBankUsingRIB=Para las cuentas bancarias que utilizan CCC
 WithBankUsingBANBIC=Para las cuentas bancarias que utilizan el código BAN/BIC/SWIFT
 BankToReceiveWithdraw=Información de su cuenta bancaria receptora de las domiciliaciones
+CreditDate=Abonada el
\ No newline at end of file
diff --git a/htdocs/langs/fi_FI/languages.lang b/htdocs/langs/fi_FI/languages.lang
index 15f54b1e7be12dfa02bf1b94507367cb8f0f02fa..77e1f580b16404c0919915dfd2cac76d867c0d73 100644
--- a/htdocs/langs/fi_FI/languages.lang
+++ b/htdocs/langs/fi_FI/languages.lang
@@ -25,6 +25,7 @@ Language_fr_CH=Ranska (Sveitsi)
 Language_fr_FR=Ranskalainen
 Language_is_IS=Islannin
 Language_it_IT=Italialainen
+Language_ja_JP=Japanin kieli
 Language_nb_NO=Norja (bokmål)
 Language_nl_BE=Hollanti (Belgia)
 Language_nl_NL=Hollanti (Alankomaat)
diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang
index 3fdf740f8652ce86482d981d97880210ec97c5aa..ae6d910934be48417634879f75af899acd749aed 100644
--- a/htdocs/langs/fr_FR/admin.lang
+++ b/htdocs/langs/fr_FR/admin.lang
@@ -286,6 +286,7 @@ FollowingSubstitutionKeysCanBeUsed=En plaçant les tags suivant dans le modèle,
 FullListOnOnlineDocumentation=Liste complète des tags disponibles sur la documentation utilisateur du module Tiers sur le wiki http://wiki.dolibarr.org
 FirstnameNamePosition=Ordre affichage prénom/nom
 DescWeather=Les graphiques suivant seront affichées sur le tableau de bord si le nombre d'éléments en retard atteints ces valeurs:
+KeyForWebServicesAccess=Clé pour utiliser les Web Services (paramètre "dolibarrkey" dans les webservices)
 
 # Modules= undefined
 Module0Name= Utilisateurs & groupes
@@ -1206,7 +1207,7 @@ NbOfBoomarkToShow= Nombre maximum de marques-pages à afficher dans le menu
 ##### WebServices #####
 WebServicesSetup=Configuration du module Webservices
 WebServicesDesc=En activant ce module, Dolibarr devient aussi serveur de web services offrant des web services divers.
-WSDLCanBeDownloadedHere=Le descripteur WSDL des services fournis peut être récupéré ici
+WSDLCanBeDownloadedHere=Les descripteurs WSDL des services fournis peuvent être récupéré ici
 EndPointIs=Les clients SOAP doivent envoyer leur requêtes vers l'endpoint Dolibarr à l'URL
 ##### Bank #####
 BankSetupModule=Configuration du module Banque
diff --git a/htdocs/langs/fr_FR/languages.lang b/htdocs/langs/fr_FR/languages.lang
index dd5bc2f670f2fda62584b89acb95183790756da6..f3fbe4fa5de73419c4c0c2cab06d7d8b6544bf35 100644
--- a/htdocs/langs/fr_FR/languages.lang
+++ b/htdocs/langs/fr_FR/languages.lang
@@ -20,6 +20,7 @@ Language_fr_FR=Français
 Language_hu_HU=Hongrois
 Language_is_IS=Islandais
 Language_it_IT=Italien
+Language_ja_JP=Japonais
 Language_nb_NO=Norvégien (Bokmal)
 Language_nl_BE=Néerlandais (Belgique)
 Language_nl_NL=Néerlandais (Pays-Bas)
diff --git a/htdocs/langs/fr_FR/members.lang b/htdocs/langs/fr_FR/members.lang
index 9309c1cfbfeee3da2fb3dd807b15f62917f5e6be..dc04d5a25525eae4b72e07c00b66a56b4318ed5c 100644
--- a/htdocs/langs/fr_FR/members.lang
+++ b/htdocs/langs/fr_FR/members.lang
@@ -17,6 +17,7 @@ ListOfPublicMembers=Liste des adhérents publics
 ListOfValidatedPublicMembers=Liste des adhérents publics validés
 ErrorThisMemberIsNotPublic=Cet adhérent n'est pas public
 ErrorMemberIsAlreadyLinkedToThisThirdParty=Un autre adhérent (nom: <b>%s</b>, login: <b>%s</b>) est déjà lié au tiers <b>%s</b>. Supprimer le lien existant d'abord car un tiers ne peut être lié qu'à un seul adhérent (et vice versa).
+ErrorBadValueForDate=Erreur : La date de fin d'adhésion ne doit être ni égale ni inférieure à la date de début.
 ErrorUserPermissionAllowsToLinksToItselfOnly=Pour des raisons de sécurité, il faut posséder les droits de modification de tous les utilisateurs pour pouvoir lier un adhérent à un utilisateur autre que vous même.
 ThisIsContentOfYourCard=Voici les détails de votre fiche
 CardContent=Contenu de votre fiche adhérent
@@ -147,6 +148,8 @@ DescADHERENT_CARD_TEXT=Texte imprimé sur les cartes d'adhérent (Aligné à gau
 DescADHERENT_CARD_TEXT_RIGHT=Texte imprimé sur les cartes d'adhérent (Aligné à droite)
 DescADHERENT_CARD_FOOTER_TEXT=Texte imprimé sur le bas des cartes d'adhérent
 DescADHERENT_MAILMAN_LISTS=Liste(s) auxquelles inscrire les nouveaux adhérents (séparés par une virgule)
+GlobalConfigUsedIfNotDefined=Le texte définie dans la configuration du module Adhérent sera utilisée si cette valeur est non définie ici.
+MayBeOverwrited=Cette valeur peut être écrasée par le texte défini au niveau du type d'adhérent
 ShowTypeCard=Voir type '%s'
 HTPasswordExport=Génération fichier htpassword
 NoThirdPartyAssociatedToMember=Pas de tiers associé à cet adhérent
@@ -161,4 +164,6 @@ LinkToGeneratedPagesDesc=Cet écran vous permet de générer des planches de car
 DocForAllMembersCards=Génération de cartes pour tous les adhérents (Format de planche actuellement configuré: <b>%s</b>)
 DocForOneMemberCards=Génération de cartes pour un adhérent particulier (Format de planche actuellement configuré: <b>%s</b>)
 DocForLabels=Génération d'étiquette d'adresses (Format de planche actuellement configuré: <b>%s</b>)
-SubscriptionPayment=Paiement cotisation
\ No newline at end of file
+SubscriptionPayment=Paiement cotisation
+LastSubscriptionDate=Date de la dernière cotisation
+LastSubscriptionAmount=Montant de la dernière cotisation
diff --git a/htdocs/langs/fr_FR/withdrawals.lang b/htdocs/langs/fr_FR/withdrawals.lang
index e2a563ba2882a3211a4214633f2bc1568eb58263..e568863a2d8397769610ad901bc26dfb60fae2b0 100755
--- a/htdocs/langs/fr_FR/withdrawals.lang
+++ b/htdocs/langs/fr_FR/withdrawals.lang
@@ -73,4 +73,5 @@ NumeroNationalEmetter= Numéro National Émetteur
 PleaseSelectCustomerBankBANToWithdraw=Saisissez les informations du compte bancaire client à prélever
 WithBankUsingRIB=Pour les comptes bancaires utilisant le RIB
 WithBankUsingBANBIC=Pour les comptes bancaires utilisant le code BAN/BIC/SWIFT
-BankToReceiveWithdraw=Informations de votre compte bancaire recevant les prélèvements
\ No newline at end of file
+BankToReceiveWithdraw=Informations de votre compte bancaire recevant les prélèvements
+CreditDate=Crédité le
\ No newline at end of file
diff --git a/htdocs/langs/is_IS/languages.lang b/htdocs/langs/is_IS/languages.lang
index 7ba2e88aab1dbc850cb6ac471ff8ec340e4ce0a7..1bc0a6f5a1a34ddb656559d344397d1472d10e11 100644
--- a/htdocs/langs/is_IS/languages.lang
+++ b/htdocs/langs/is_IS/languages.lang
@@ -23,6 +23,7 @@ Language_fr_CA=Franska (Kanada)
 Language_fr_CH=Franska (Sviss)
 Language_fr_FR=Franska
 Language_it_IT=Italien
+Language_ja_JP=Japanska
 Language_nb_NO=Norska (bokmål)
 Language_nl_BE=Hollenska (Belgíu)
 Language_nl_NL=Hollenska (Holland)
diff --git a/htdocs/langs/it_IT/languages.lang b/htdocs/langs/it_IT/languages.lang
index f023462c5b4f250851b1063747140032b79657f7..73c3572c91ec7570c87892e3815ddccfb3f61fdf 100644
--- a/htdocs/langs/it_IT/languages.lang
+++ b/htdocs/langs/it_IT/languages.lang
@@ -25,6 +25,7 @@ Language_fr_CH=Francese (Svizzera)
 Language_fr_FR=Francese
 Language_is_IS=Islandese
 Language_it_IT=Italiano
+Language_ja_JP=Giapponese
 Language_nb_NO=Norvegese (Bokmål)
 Language_nl_BE=Olandese (Belgio)
 Language_nl_NL=Olandese (Paesi Bassi)
diff --git a/htdocs/langs/ja_JP/languages.lang b/htdocs/langs/ja_JP/languages.lang
new file mode 100755
index 0000000000000000000000000000000000000000..c5388cfa95b0cdce3f8f37711910f174678e6da6
--- /dev/null
+++ b/htdocs/langs/ja_JP/languages.lang
@@ -0,0 +1,36 @@
+# Dolibarr language file - fr_FR - languages
+CHARSET=UTF-8
+
+Language_ar_AR=アラビア語
+Language_ca_ES=カタルにゃ語
+Language_da_DA=デンマーク語
+Language_de_DE=ドイツ語
+Language_de_AT=ドイツ語 (オーストリア)
+Language_en_AU=英語 (オーストラリア)
+Language_en_GB=英語 (イギリス)
+Language_en_IN=英語 (インド)
+Language_en_US=英語 (アメリカ)
+Language_es_ES=スペイン語
+Language_es_AR=スペイン語 (アルゼンチン)
+Language_fi_FI=フインランド語
+Language_fr_BE=フランス語 (ベルギー)
+Language_fr_CA=フランス語 (カナダ)
+Language_fr_CH=フランス語 (スイス)
+Language_fr_FR=フランス語
+Language_hu_HU=ハンガリー語
+Language_is_IS=アイスランド語
+Language_it_IT=イタリア語
+Language_ja_JP=日本語
+Language_nb_NO=ノルウエー語 (ブーケモール)
+Language_nl_BE=オランダ語 (ベルギー)
+Language_nl_NL=オランダ語 (オランダ)
+Language_pl_PL=ポーランド語
+Language_pt_BR=ポルトガル語 (ブラジル)
+Language_pt_PT=ポルトガル語
+Language_ro_RO=ルーマニア語
+Language_ru_RU=ロシア語
+Language_tr_TR=トルコ語
+Language_sl_SL=スロベニア語
+Language_sv_SV=スウエーデん語
+Language_zh_CN=中国語
+Language_is_IS=アイスランド語
diff --git a/htdocs/langs/nb_NO/languages.lang b/htdocs/langs/nb_NO/languages.lang
index 595e28762ebaed17f10bc91f0b9593b34d4a08e3..3147381523dec2f778045eed85d9252b654f6879 100644
--- a/htdocs/langs/nb_NO/languages.lang
+++ b/htdocs/langs/nb_NO/languages.lang
@@ -25,6 +25,7 @@ Language_fr_CH=Fransk (Sveits)
 Language_fr_FR=Fransk
 Language_is_IS=Islandsk
 Language_it_IT=Italiensk
+Language_ja_JP=Japansk
 Language_nb_NO=Norsk (bokmål)
 Language_nl_BE=Nederlandsk (Belgia)
 Language_nl_NL=Nederlandsk (Nederland)
diff --git a/htdocs/langs/nl_NL/languages.lang b/htdocs/langs/nl_NL/languages.lang
index f67b0adba9a2e6f8a7d42515182119c148695bb1..416383bf9c896225bda1769969bccdace2f7487f 100644
--- a/htdocs/langs/nl_NL/languages.lang
+++ b/htdocs/langs/nl_NL/languages.lang
@@ -15,6 +15,7 @@ Language_fr_CA=Frans (Canada)
 Language_fr_CH=Frans (Zwitzerland)
 Language_fr_FR=Frans (Frankrijk)
 Language_it_IT=Italiaans
+Language_ja_JP=Japans
 Language_nb_NO=Noors (Bokmål)
 Language_nl_BE=Nerderlands (België)
 Language_nl_NL=Nerderlands (Netherland)
diff --git a/htdocs/langs/pt_PT/languages.lang b/htdocs/langs/pt_PT/languages.lang
index f3efe9b77bf4645bafa7b4dd8995756bf3d7be34..b4458336c633660ff042fe9f96bfba24c101fbb7 100644
--- a/htdocs/langs/pt_PT/languages.lang
+++ b/htdocs/langs/pt_PT/languages.lang
@@ -3,39 +3,40 @@
  * Automatic generated via autotranslator.php tool
  * Generation date 2010-07-17 11:45:17
  */
-
-
-// START - Lines generated via autotranslator.php tool (2010-09-04 01:33:40).
-// Reference language: en_US -> pt_PT
-CHARSET=UTF-8
-Language_ar_AR=Árabe
-Language_ca_ES=Catalão
-Language_da_DA=Dinamarquês
-Language_de_DE=Alemão
-Language_en_AU=Inglês (Austrália)
-Language_en_GB=Inglês (Reino Unido)
-Language_en_IN=Inglês (Índia)
-Language_en_US=Inglês (Estados Unidos)
-Language_es_ES=Espanhol
-Language_es_AR=Espanhol (Argentina)
-Language_fi_FI=Fins
-Language_fr_BE=Francês (Bélgica)
-Language_fr_CA=Francês (Canadá)
-Language_fr_CH=Francês (Suíça)
-Language_fr_FR=Francês
-Language_is_IS=Islandês
-Language_it_IT=Italiano
-Language_nb_NO=Norueguês (bokmål)
-Language_nl_BE=Holandês (Bélgica)
-Language_nl_NL=Holandês (Países Baixos)
-Language_pl_PL=Polonês
-Language_pt_BR=Português (Brasil)
-Language_pt_PT=Português
-Language_ro_RO=Romeno
-Language_ru_RU=Russo
-Language_tr_TR=Turco
-Language_sl_SL=Esloveno
-Language_sv_SV=Sueco
-Language_zh_CN=Chinês
-Language_is_IS=Islandês
-// STOP - Lines generated via autotranslator.php tool (2010-09-04 01:40:23).
+
+
+// START - Lines generated via autotranslator.php tool (2010-09-04 01:33:40).
+// Reference language: en_US -> pt_PT
+CHARSET=UTF-8
+Language_ar_AR=Árabe
+Language_ca_ES=Catalão
+Language_da_DA=Dinamarquês
+Language_de_DE=Alemão
+Language_en_AU=Inglês (Austrália)
+Language_en_GB=Inglês (Reino Unido)
+Language_en_IN=Inglês (Índia)
+Language_en_US=Inglês (Estados Unidos)
+Language_es_ES=Espanhol
+Language_es_AR=Espanhol (Argentina)
+Language_fi_FI=Fins
+Language_fr_BE=Francês (Bélgica)
+Language_fr_CA=Francês (Canadá)
+Language_fr_CH=Francês (Suíça)
+Language_fr_FR=Francês
+Language_is_IS=Islandês
+Language_it_IT=Italiano
+Language_ja_JP=Língua japonesa
+Language_nb_NO=Norueguês (bokmål)
+Language_nl_BE=Holandês (Bélgica)
+Language_nl_NL=Holandês (Países Baixos)
+Language_pl_PL=Polonês
+Language_pt_BR=Português (Brasil)
+Language_pt_PT=Português
+Language_ro_RO=Romeno
+Language_ru_RU=Russo
+Language_tr_TR=Turco
+Language_sl_SL=Esloveno
+Language_sv_SV=Sueco
+Language_zh_CN=Chinês
+Language_is_IS=Islandês
+// STOP - Lines generated via autotranslator.php tool (2010-09-04 01:40:23).
diff --git a/htdocs/langs/ro_RO/languages.lang b/htdocs/langs/ro_RO/languages.lang
index a73047b2debb21357a799206bb3a84df222d2cff..b7d03bd0e0f4a1981d0da7ff0ec19cc120ce3e28 100644
--- a/htdocs/langs/ro_RO/languages.lang
+++ b/htdocs/langs/ro_RO/languages.lang
@@ -25,6 +25,7 @@ Language_fr_CH=Franceză (Elveţia)
 Language_fr_FR=Franceză
 Language_is_IS=Islandez
 Language_it_IT=Italian
+Language_ja_JP=Japoneză
 Language_nb_NO=Norvegiană (Bokmål)
 Language_nl_BE=Ţările de Jos (Belgia)
 Language_nl_NL=Ţările de Jos (Olanda)
diff --git a/htdocs/langs/ro_RO/main.lang b/htdocs/langs/ro_RO/main.lang
index 44ecc062c7fa3fc1c5ad50a4d19b33b8591469dd..2a25be6da5b08fe9f5d8534a4da173eb2f9f4569 100644
--- a/htdocs/langs/ro_RO/main.lang
+++ b/htdocs/langs/ro_RO/main.lang
@@ -9,6 +9,7 @@
 // Reference language: en_US
 CHARSET=UTF-8
 FONTFORPDF=DejaVuSans
+FONTSIZEFORPDF=8
 SeparatorDecimal=,
 SeparatorThousand=
 FormatDateShort=%d.%m.%Y
diff --git a/htdocs/langs/ru_RU/languages.lang b/htdocs/langs/ru_RU/languages.lang
index 991a880d21efb92ea12ce491e3e2f70d34c9cf8a..f11c210595789b1a706880b6308d76978d834e42 100644
--- a/htdocs/langs/ru_RU/languages.lang
+++ b/htdocs/langs/ru_RU/languages.lang
@@ -4,39 +4,40 @@
  * Generation date 2010-07-17 11:45:17
  */
 
-
-
-// START - Lines generated via autotranslator.php tool (2010-09-04 01:33:40).
-// Reference language: en_US -> ru_RU
-CHARSET=UTF-8
-Language_ar_AR=Арабский
-Language_ca_ES=Каталанский
-Language_da_DA=Датский
-Language_de_DE=Немецкий
-Language_en_AU=Английский (Австралия)
-Language_en_GB=Английский (Великобритания)
-Language_en_IN=Английский (Индия)
-Language_en_US=Английский (США)
-Language_es_ES=Испанский
-Language_es_AR=Испанский (Аргентина)
-Language_fi_FI=Ласты
-Language_fr_BE=Французский (Бельгия)
-Language_fr_CA=Французский (Канада)
-Language_fr_CH=Французский (Швейцария)
-Language_fr_FR=Французский
-Language_is_IS=Исландский
-Language_it_IT=Итальянский
-Language_nb_NO=Норвежский (букмол)
-Language_nl_BE=Голландский (Бельгия)
-Language_nl_NL=Голландский (Нидерланды)
-Language_pl_PL=Польский
-Language_pt_BR=Португальский (Бразилия)
-Language_pt_PT=Португальский язык
-Language_ro_RO=Румынский
-Language_ru_RU=Русский
-Language_tr_TR=Турецкий
-Language_sl_SL=Словенский
-Language_sv_SV=Шведский
-Language_zh_CN=Китайский
-Language_is_IS=Исландский
-// STOP - Lines generated via autotranslator.php tool (2010-09-04 01:40:27).
+
+
+// START - Lines generated via autotranslator.php tool (2010-09-04 01:33:40).
+// Reference language: en_US -> ru_RU
+CHARSET=UTF-8
+Language_ar_AR=Арабский
+Language_ca_ES=Каталанский
+Language_da_DA=Датский
+Language_de_DE=Немецкий
+Language_en_AU=Английский (Австралия)
+Language_en_GB=Английский (Великобритания)
+Language_en_IN=Английский (Индия)
+Language_en_US=Английский (США)
+Language_es_ES=Испанский
+Language_es_AR=Испанский (Аргентина)
+Language_fi_FI=Ласты
+Language_fr_BE=Французский (Бельгия)
+Language_fr_CA=Французский (Канада)
+Language_fr_CH=Французский (Швейцария)
+Language_fr_FR=Французский
+Language_is_IS=Исландский
+Language_it_IT=Итальянский
+Language_ja_JP=Япо́нский язы́к
+Language_nb_NO=Норвежский (букмол)
+Language_nl_BE=Голландский (Бельгия)
+Language_nl_NL=Голландский (Нидерланды)
+Language_pl_PL=Польский
+Language_pt_BR=Португальский (Бразилия)
+Language_pt_PT=Португальский язык
+Language_ro_RO=Румынский
+Language_ru_RU=Русский
+Language_tr_TR=Турецкий
+Language_sl_SL=Словенский
+Language_sv_SV=Шведский
+Language_zh_CN=Китайский
+Language_is_IS=Исландский
+// STOP - Lines generated via autotranslator.php tool (2010-09-04 01:40:27).
diff --git a/htdocs/langs/sl_SL/languages.lang b/htdocs/langs/sl_SL/languages.lang
index aa71db22e7d38ebc527463004a8490135b7bcc25..c0c482f56824607eea2058a45a2f258d1e8a284b 100644
--- a/htdocs/langs/sl_SL/languages.lang
+++ b/htdocs/langs/sl_SL/languages.lang
@@ -17,6 +17,7 @@ Language_fr_CH=Francoščina (Švica)
 Language_fr_FR=Francoščina
 Language_is_IS=Islandščina
 Language_it_IT=Italijanščina
+Language_ja_JP=Japonščina
 Language_nb_NO=Norveščina (Bokmål)
 Language_nl_BE=Nizozemščina (Belgija)
 Language_nl_NL=Nizozemščina (Nizozemska)
@@ -30,9 +31,9 @@ Language_sl_SL=Slovenščina
 Language_zh_CN=Kitajščina
 Language_is_IS=Islandščina
 
-
-
-// START - Lines generated via autotranslator.php tool (2010-09-04 01:33:40).
-// Reference language: en_US -> sl_SL
-Language_sv_SV=Švedski
-// STOP - Lines generated via autotranslator.php tool (2010-09-04 01:40:27).
+
+
+// START - Lines generated via autotranslator.php tool (2010-09-04 01:33:40).
+// Reference language: en_US -> sl_SL
+Language_sv_SV=Švedski
+// STOP - Lines generated via autotranslator.php tool (2010-09-04 01:40:27).
diff --git a/htdocs/langs/sv_SV/languages.lang b/htdocs/langs/sv_SV/languages.lang
index 4a06092aa3b0b23a18294ca941e973e1643c5ba6..2bbdc32368a35fe447d416b44e3e00f3217d4883 100644
--- a/htdocs/langs/sv_SV/languages.lang
+++ b/htdocs/langs/sv_SV/languages.lang
@@ -25,6 +25,7 @@ Language_fr_CH=Franska (Schweiz)
 Language_fr_FR=Franska
 Language_is_IS=Isländska
 Language_it_IT=Italienska
+Language_ja_JP=Japanska
 Language_nb_NO=Norska (bokmål)
 Language_nl_BE=Holländska (Belgien)
 Language_nl_NL=Nederländska (Nederländerna)
diff --git a/htdocs/langs/tr_TR/languages.lang b/htdocs/langs/tr_TR/languages.lang
index 565bb967ba5f0c0b07bea83e6eb2aa2750e9672d..2e91de7787f5fb64b8147348a496efe62aa60e81 100644
--- a/htdocs/langs/tr_TR/languages.lang
+++ b/htdocs/langs/tr_TR/languages.lang
@@ -4,39 +4,40 @@
  * Generation date 2010-07-17 11:45:17
  */
 
-
-
-// START - Lines generated via autotranslator.php tool (2010-09-04 01:33:40).
-// Reference language: en_US -> tr_TR
-CHARSET=UTF-8
-Language_ar_AR=Arapça
-Language_ca_ES=Katalanca
-Language_da_DA=Danimarkalı
-Language_de_DE=Alman
-Language_en_AU=İngilizce (Avustralya)
-Language_en_GB=İngilizce (Birleşik Krallık)
-Language_en_IN=İngilizce (Hindistan)
-Language_en_US=İngilizce (ABD)
-Language_es_ES=İspanyolca
-Language_es_AR=İspanyolca (Arjantin)
-Language_fi_FI=Fins
-Language_fr_BE=Fransızca (Belçika)
-Language_fr_CA=Fransızca (Kanada)
-Language_fr_CH=Fransızca (İsviçre)
-Language_fr_FR=Fransız
-Language_is_IS=İzlanda
-Language_it_IT=İtalyanca
-Language_nb_NO=(Bokmål) Norveç
-Language_nl_BE=Hollandaca (Belçika)
-Language_nl_NL=Hollanda (Hollanda)
-Language_pl_PL=Polonya
-Language_pt_BR=Portekizce (Brezilya)
-Language_pt_PT=Portekizce
-Language_ro_RO=Romanian
-Language_ru_RU=Rus
-Language_tr_TR=Türk
-Language_sl_SL=Sloven
-Language_sv_SV=İsveç
-Language_zh_CN=Çin
-Language_is_IS=İzlanda
-// STOP - Lines generated via autotranslator.php tool (2010-09-04 01:40:31).
+
+
+// START - Lines generated via autotranslator.php tool (2010-09-04 01:33:40).
+// Reference language: en_US -> tr_TR
+CHARSET=UTF-8
+Language_ar_AR=Arapça
+Language_ca_ES=Katalanca
+Language_da_DA=Danimarkalı
+Language_de_DE=Alman
+Language_en_AU=İngilizce (Avustralya)
+Language_en_GB=İngilizce (Birleşik Krallık)
+Language_en_IN=İngilizce (Hindistan)
+Language_en_US=İngilizce (ABD)
+Language_es_ES=İspanyolca
+Language_es_AR=İspanyolca (Arjantin)
+Language_fi_FI=Fins
+Language_fr_BE=Fransızca (Belçika)
+Language_fr_CA=Fransızca (Kanada)
+Language_fr_CH=Fransızca (İsviçre)
+Language_fr_FR=Fransız
+Language_is_IS=İzlanda
+Language_it_IT=İtalyanca
+Language_ja_JP=Japonca
+Language_nb_NO=(Bokmål) Norveç
+Language_nl_BE=Hollandaca (Belçika)
+Language_nl_NL=Hollanda (Hollanda)
+Language_pl_PL=Polonya
+Language_pt_BR=Portekizce (Brezilya)
+Language_pt_PT=Portekizce
+Language_ro_RO=Romanian
+Language_ru_RU=Rus
+Language_tr_TR=Türk
+Language_sl_SL=Sloven
+Language_sv_SV=İsveç
+Language_zh_CN=Çin
+Language_is_IS=İzlanda
+// STOP - Lines generated via autotranslator.php tool (2010-09-04 01:40:31).
diff --git a/htdocs/langs/tr_TR/main.lang b/htdocs/langs/tr_TR/main.lang
index 1813c8398ae3c4888e2f1594e0356625d8f1cfc6..db1e6b20589626661a4bb34f6d582dc767a62a83 100644
--- a/htdocs/langs/tr_TR/main.lang
+++ b/htdocs/langs/tr_TR/main.lang
@@ -10,6 +10,7 @@
 CHARSET=UTF-8
 DIRECTION=ltr
 FONTFORPDF=DejaVuSans
+FONTSIZEFORPDF=9
 SeparatorDecimal=.
 SeparatorThousand=,
 FormatDateShort=%d/%m/%Y
@@ -279,7 +280,7 @@ Total=Toplam
 SubTotal=Subtotal
 TotalHTShort=(Net) Toplam
 TotalTTCShort=Toplam (bahis vergi)
-TotalHT=(Toplam vergi net)
+TotalHT=Toplam (vergi net)
 TotalTTC=Toplam (bahis vergi)
 TotalTTCToYourCredit=Kredi için toplam (bahis vergi)
 TotalVAT=Toplam KDV
diff --git a/htdocs/langs/zh_CN/languages.lang b/htdocs/langs/zh_CN/languages.lang
index 312ad4d9d6ac1b3865857fd5773483b35585b44d..aa19b53a8dcd4029be0a7564b30908ecd8f82c1f 100644
--- a/htdocs/langs/zh_CN/languages.lang
+++ b/htdocs/langs/zh_CN/languages.lang
@@ -21,7 +21,8 @@ Language_fr_BE=法语(比利时)
 Language_fr_CA=法语(加拿大)
 Language_fr_CH=法语(瑞士)
 Language_fr_FR=法国的
-Language_it_IT=Italien
+Language_it_IT=意大利语
+Language_ja_JP=日语
 Language_nb_NO=挪威文(巴克摩)
 Language_nl_BE=荷兰语(比利时)
 Language_nl_NL=荷兰语(荷兰)
@@ -33,14 +34,14 @@ Language_ru_RU=俄
 Language_tr_TR=土耳其
 Language_sl_SL=斯洛文尼亚
 // STOP - Lines generated via autotranslator.php tool (2010-06-08 21:22:55).
-
-
-// START - Lines generated via autotranslator.php tool (2010-09-04 01:33:40).
-// Reference language: en_US -> zh_CN
-Language_en_IN=英国(印度)
-Language_es_AR=西班牙语(阿根廷)
-Language_is_IS=冰岛
-Language_sv_SV=瑞典
-Language_zh_CN=中文
-Language_is_IS=冰岛
-// STOP - Lines generated via autotranslator.php tool (2010-09-04 01:40:32).
+
+
+// START - Lines generated via autotranslator.php tool (2010-09-04 01:33:40).
+// Reference language: en_US -> zh_CN
+Language_en_IN=英国(印度)
+Language_es_AR=西班牙语(阿根廷)
+Language_is_IS=冰岛
+Language_sv_SV=瑞典
+Language_zh_CN=中文
+Language_is_IS=冰岛
+// STOP - Lines generated via autotranslator.php tool (2010-09-04 01:40:32).
diff --git a/htdocs/langs/zh_CN/main.lang b/htdocs/langs/zh_CN/main.lang
index b71e585bca9d5c2292b779f6a78f786fad13cc87..cb46bb54e3e097c14d0aaeac541a3963bf36dcf7 100644
--- a/htdocs/langs/zh_CN/main.lang
+++ b/htdocs/langs/zh_CN/main.lang
@@ -8,8 +8,9 @@
 // START - Lines generated via autotranslator.php tool (2010-06-09 00:39:24).
 // Reference language: en_US
 CHARSET=UTF-8
-DIRECTION=升
-FONTFORPDF=?????
+DIRECTION=ltr
+FONTFORPDF=arialunicid0
+FONTSIZEFORPDF=9
 SeparatorDecimal=。
 SeparatorThousand=,
 FormatDateShort=%d/%m/%Y
diff --git a/htdocs/public/paybox/newpayment.php b/htdocs/public/paybox/newpayment.php
index 17a56fcc2536c686cb6912f5ff243f08bf7ca39f..4e5cefcd2f9debc6783e6da1c9c09f4c3fd537bf 100644
--- a/htdocs/public/paybox/newpayment.php
+++ b/htdocs/public/paybox/newpayment.php
@@ -225,6 +225,7 @@ if (! GETPOST("source"))
         print '<input type="hidden" name="amount" value="'.$amount.'">';
 		print '<input type="hidden" name="newamount" value="'.$amount.'">';
 	}
+
 	// Currency
 	print ' <b>'.$langs->trans("Currency".$currency).'</b>';
 	print '<input type="hidden" name="currency" value="'.$currency.'">';
@@ -633,6 +634,23 @@ if (GETPOST("source") == 'membersubscription')
 	print '<input type="hidden" name="ref" value="'.$member->ref.'">';
 	print '</td></tr>'."\n";
 
+	if ($member->last_subscription_date || $member->last_subscription_amount)
+	{
+		// Last subscription date
+		$var=!$var;
+		print '<tr><td class="CTableRow'.($var?'1':'2').'">'.$langs->trans("LastSubscriptionDate");
+		print '</td><td class="CTableRow'.($var?'1':'2').'">'.dol_print_date($member->last_subscription_date,'day');
+		print '</td></tr>'."\n";
+
+		// Last subscription amount
+		$var=!$var;
+		print '<tr><td class="CTableRow'.($var?'1':'2').'">'.$langs->trans("LastSubscriptionAmount");
+		print '</td><td class="CTableRow'.($var?'1':'2').'">'.price($member->last_subscription_amount);
+		print '</td></tr>'."\n";
+
+		if (empty($amount) && ! GETPOST('newamount')) $_GET['newamount']=$member->last_subscription_amount;
+	}
+
 	// Amount
 	$var=!$var;
 	print '<tr><td class="CTableRow'.($var?'1':'2').'">'.$langs->trans("Amount");
diff --git a/htdocs/public/paypal/newpayment.php b/htdocs/public/paypal/newpayment.php
index f41f3ccfdfeb90137f1d8c704076708bd560c0e3..8e215bc2d3ca7f8ad09f9c6f07471d2eb8a2dd28 100755
--- a/htdocs/public/paypal/newpayment.php
+++ b/htdocs/public/paypal/newpayment.php
@@ -182,7 +182,7 @@ if (GETPOST("action") == 'dopayment')
         dol_syslog("shipToStreet2: $shipToStreet2", LOG_DEBUG);
         dol_syslog("phoneNum: $phoneNum", LOG_DEBUG);
 
-	    header("Content-type: text/html; charset=".$conf->file->character_set_client);
+	    /*header("Content-type: text/html; charset=".$conf->file->character_set_client);
 
 	    print '<html>'."\n";
 	    print '<head>'."\n";
@@ -190,14 +190,16 @@ if (GETPOST("action") == 'dopayment')
 	    print '</head>'."\n";
 	    print '<body>'."\n";
 	    print "\n";
+		*/
 
 	    $_SESSION["Payment_Amount"]=$PAYPAL_API_PRICE;
 
 	    // A redirect is added if API call successfull
         print_paypal_redirect($PAYPAL_API_PRICE,$PAYPAL_API_DEVISE,$PAYPAL_PAYMENT_TYPE,$PAYPAL_API_OK,$PAYPAL_API_KO, $FULLTAG);
 
-	    print '</body></html>'."\n";
+	    /*print '</body></html>'."\n";
 	    print "\n";
+		*/
 
 		exit;
 	}
@@ -287,7 +289,7 @@ if (! GETPOST("source"))
 	$found=true;
 	$tag=GETPOST("tag");
 	$fulltag=$tag;
-	
+
 	// Creditor
 	$var=!$var;
 	print '<tr><td class="CTableRow'.($var?'1':'2').'">'.$langs->trans("Creditor");
@@ -795,6 +797,23 @@ if (GETPOST("source") == 'membersubscription')
 	print '<input type="hidden" name="ref" value="'.$member->ref.'">';
 	print '</td></tr>'."\n";
 
+	if ($member->last_subscription_date || $member->last_subscription_amount)
+	{
+		// Last subscription date
+		$var=!$var;
+		print '<tr><td class="CTableRow'.($var?'1':'2').'">'.$langs->trans("LastSubscriptionDate");
+		print '</td><td class="CTableRow'.($var?'1':'2').'">'.dol_print_date($member->last_subscription_date,'day');
+		print '</td></tr>'."\n";
+
+		// Last subscription amount
+		$var=!$var;
+		print '<tr><td class="CTableRow'.($var?'1':'2').'">'.$langs->trans("LastSubscriptionAmount");
+		print '</td><td class="CTableRow'.($var?'1':'2').'">'.price($member->last_subscription_amount);
+		print '</td></tr>'."\n";
+
+		if (empty($amount) && ! GETPOST('newamount')) $_GET['newamount']=$member->last_subscription_amount;
+	}
+
 	// Amount
 	$var=!$var;
 	print '<tr><td class="CTableRow'.($var?'1':'2').'">'.$langs->trans("Amount");
@@ -828,7 +847,7 @@ if (GETPOST("source") == 'membersubscription')
 	print '</td><td class="CTableRow'.($var?'1':'2').'"><input class="flat" type="text" name="EMAIL" size="48" value="'.$email.'"></td></tr>'."\n";
 
     // Shipping address
-    $shipToName=$member->getFullName();
+    $shipToName=$member->getFullName($langs);
     $shipToStreet=$member->adresse;
     $shipToCity=$member->ville;
     $shipToState=$member->departement_code;
diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php
index 8c42f1d83195763ee137ca3275a186edc1f2dc49..d4b289a2629106284a916cf35eab42b362e10f22 100644
--- a/htdocs/societe/class/societe.class.php
+++ b/htdocs/societe/class/societe.class.php
@@ -538,12 +538,16 @@ class Societe extends CommonObject
     }
 
     /**
-     *    \brief      Load a third party from database into memory
-     *    \param      socid			Id third party to load
-     *    \param      ref			Name of third party (Warning, this can return several records)
-     *    \return     int			>0 if OK, <0 if KO or if two records found for same ref.
+     *    Load a third party from database into memory
+     *    @param      socid			Id third party to load
+     *    @param      ref			Name of third party (Warning, this can return several records)
+     *    @param      idprof1		Prof id 1 of third party (Warning, this can return several records)
+     *    @param      idprof2		Prof id 2 of third party (Warning, this can return several records)
+     *    @param      idprof3		Prof id 3 of third party (Warning, this can return several records)
+     *    @param      idprof4		Prof id 4 of third party (Warning, this can return several records)
+     *    @return     int			>0 if OK, <0 if KO or if two records found for same ref or idprof.
      */
-    function fetch($socid, $ref='')
+    function fetch($socid, $ref='',$idprof1='',$idprof2='',$idprof3='',$idprof4='')
     {
         global $langs;
         global $conf;
@@ -578,6 +582,10 @@ class Societe extends CommonObject
         $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_typent as te ON s.fk_typent = te.id';
         if ($socid) $sql .= ' WHERE s.rowid = '.$socid;
         if ($ref)   $sql .= " WHERE s.nom = '".addslashes($ref)."' AND s.entity = ".$conf->entity;
+        if ($idprof1) $sql .= " WHERE s.siren = '".addslashes($siren)."' AND s.entity = ".$conf->entity;
+        if ($idprof2) $sql .= " WHERE s.siret = '".addslashes($siret)."' AND s.entity = ".$conf->entity;
+        if ($idprof3) $sql .= " WHERE s.ape = '".addslashes($ape)."' AND s.entity = ".$conf->entity;
+        if ($idprof4) $sql .= " WHERE s.idprof4 = '".addslashes($idprof4)."' AND s.entity = ".$conf->entity;
 
         $resql=$this->db->query($sql);
         dol_syslog("Societe::fetch ".$sql);
diff --git a/htdocs/support/index.php b/htdocs/support/index.php
index b6267400f184f6c901fd680c326d06d792b85a27..f56b7f6061407f737976f1bfd3b67fdb3aa8f029 100644
--- a/htdocs/support/index.php
+++ b/htdocs/support/index.php
@@ -23,6 +23,8 @@
  *       \version   $Id$
  */
 
+error_reporting(0);
+
 // Use its own include to not share the include of Dolibarr
 // This is a standalone feature with no information from Dolibarr to show
 // and no database access to do.
diff --git a/htdocs/support/online.php b/htdocs/support/online.php
index 9bbdde74b26504a57a3ee7da747d3d4ae71b0404..159b2f5fa4484e6c50adfc7084a7bc056c15baf4 100644
--- a/htdocs/support/online.php
+++ b/htdocs/support/online.php
@@ -17,18 +17,21 @@
  */
 
 /**
- *       \file      htdocs/install/phpinfo.php
+ *       \file      htdocs/support/online.php
  *       \ingroup   install
  *       \brief     Provide an Online Help support
  *       \version   $Id$
  */
 
+error_reporting(0);
+
 include_once("./inc.php");
 $uri=preg_replace('/^http(s?):\/\//i','',$dolibarr_main_url_root);
 $pos = strstr ($uri, '/');      // $pos contient alors url sans nom domaine
 if ($pos == '/') $pos = '';     // si $pos vaut /, on le met a ''
 define('DOL_URL_ROOT', $pos);	// URL racine relative
 
+
 $langs->load("other");
 $langs->load("help");
 
diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php
index f0628e57098cd99ec4fd96f4a189386783d79b73..59db5e91adda1d9926ffc9217069587a256b52ce 100644
--- a/htdocs/user/class/user.class.php
+++ b/htdocs/user/class/user.class.php
@@ -95,8 +95,8 @@ class User extends CommonObject
 
 
 	/**
-	 *    \brief Constructeur de la classe
-	 *    \param  DB         Handler acces base de donnees
+	 *    Constructeur de la classe
+	 *    @param  DB         Handler acces base de donnees
 	 */
 	function User($DB)
 	{
@@ -113,12 +113,12 @@ class User extends CommonObject
 	}
 
 	/**
-	 *	\brief      Charge un objet user avec toutes ces caracteristiques depuis un id ou login
-	 *	\param      id		       		Si defini, id a utiliser pour recherche
-	 * 	\param      login       		Si defini, login a utiliser pour recherche
-	 *	\param      sid					Si defini, sid a utiliser pour recherche
-	 * 	\param		$loadpersonalconf	Also load personal conf of user (in $user->conf->xxx)
-	 * 	\return		int					<0 if KO, 0 not found, >0 if OK
+	 *	Charge un objet user avec toutes ces caracteristiques depuis un id ou login
+	 *	@param      id		       		Si defini, id a utiliser pour recherche
+	 * 	@param      login       		Si defini, login a utiliser pour recherche
+	 *	@param      sid					Si defini, sid a utiliser pour recherche
+	 * 	@param		$loadpersonalconf	Also load personal conf of user (in $user->conf->xxx)
+	 * 	@return		int					<0 if KO, 0 not found, >0 if OK
 	 */
 	function fetch($id='', $login='',$sid='',$loadpersonalconf=1)
 	{
@@ -137,15 +137,17 @@ class User extends CommonObject
 		$sql.= " u.tms as datem,";
 		$sql.= " u.datelastlogin as datel,";
 		$sql.= " u.datepreviouslogin as datep,";
-		$sql.= " u.photo as photo";
+		$sql.= " u.photo as photo,";
+		$sql.= " u.openid as openid";
 		$sql.= " FROM ".MAIN_DB_PREFIX."user as u";
 		$sql.= " WHERE u.entity IN (0,".$conf->entity.")";
+
 		if ($sid)
 		{
-			// permet une recherche du user par son SID ActiveDirectory ou Samba
 			$sql.= " AND (u.ldap_sid = '".$sid."' || u.login = '".addslashes($login)."') LIMIT 1";
 		}
 		else if ($login)
+			// permet une recherche du user par son SID ActiveDirectory ou Samba
 		{
 			$sql.= " AND u.login = '".addslashes($login)."'";
 		}
@@ -181,6 +183,7 @@ class User extends CommonObject
 				$this->note = $obj->note;
 				$this->statut = $obj->statut;
 				$this->photo = $obj->photo;
+				$this->openid = $obj->openid;
 				$this->lang = $obj->lang;
 				$this->entity = $obj->entity;
 
@@ -441,7 +444,7 @@ class User extends CommonObject
 
 
 	/**
-	 *    \brief      Clear all permissions array of user
+	 *    Clear all permissions array of user
 	 */
 	function clearrights()
 	{
@@ -453,8 +456,8 @@ class User extends CommonObject
 
 
 	/**
-	 *	\brief      Load permissions granted to user into object user
-	 *	\param      moduletag    Limit permission for a particular module ('' by default means load all permissions)
+	 *	Load permissions granted to user into object user
+	 *	@param      moduletag    Limit permission for a particular module ('' by default means load all permissions)
 	 */
 	function getrights($moduletag='')
 	{
@@ -993,6 +996,7 @@ class User extends CommonObject
 		$this->user_mobile  = trim($this->user_mobile);
 		$this->email        = trim($this->email);
 		$this->note         = trim($this->note);
+		$this->openid         = trim($this->openid);
 		$this->webcal_login = trim($this->webcal_login);
 		$this->phenix_login = trim($this->phenix_login);
 		if ($this->phenix_pass != $this->phenix_pass_crypted)
@@ -1026,6 +1030,7 @@ class User extends CommonObject
 		$sql.= ", phenix_pass = '".addslashes($this->phenix_pass)."'";
 		$sql.= ", note = '".addslashes($this->note)."'";
 		$sql.= ", photo = ".($this->photo?"'".addslashes($this->photo)."'":"null");
+		$sql.= ", openid = ".($this->openid?"'".addslashes($this->openid)."'":"null");
 		//$sql.= ", entity = '".$this->entity."'";
 		$sql.= " WHERE rowid = ".$this->id;
 
diff --git a/htdocs/user/fiche.php b/htdocs/user/fiche.php
index 17d93d15cd9b34923681758115f1c15765d43951..1f847f17896b7ded0b1e082e1a5864df78ff0907 100644
--- a/htdocs/user/fiche.php
+++ b/htdocs/user/fiche.php
@@ -289,6 +289,7 @@ if ($_POST["action"] == 'update' && ! $_POST["cancel"])
 			$edituser->office_fax    = $_POST["office_fax"];
 			$edituser->user_mobile   = $_POST["user_mobile"];
 			$edituser->email         = $_POST["email"];
+			$edituser->openid         = $_POST["openid"];
 			$edituser->webcal_login  = $_POST["webcal_login"];
 			$edituser->phenix_login  = $_POST["phenix_login"];
 			$edituser->phenix_pass   = $_POST["phenix_pass"];
@@ -923,7 +924,7 @@ else
 			}
 			// Photo
 			print '<td align="center" valign="middle" width="25%" rowspan="'.$rowspan.'">';
-			print $html->showphoto('userphoto',$fuser);
+			print $html->showphoto('userphoto',$fuser,100,1);
 			print '</td>';
 			print '</tr>';
 
@@ -1009,7 +1010,7 @@ else
 			print '<td>'.dol_print_phone($fuser->office_fax,'',0,0,1).'</td>';
 
 			// EMail
-			print '<tr><td valign="top">'.$langs->trans("EMail").($conf->global->USER_MAIL_REQUIRED?'*':'').'</td>';
+			print '<tr><td valign="top">'.$langs->trans("EMail").'</td>';
 			print '<td>'.dol_print_email($fuser->email,0,0,1).'</td>';
 			print "</tr>\n";
 
@@ -1027,6 +1028,13 @@ else
 			print '<td>'.dol_print_date($fuser->datepreviouslogin,"dayhour").'</td>';
 			print "</tr>\n";
 
+			
+			if (preg_match('/myopenid/',$conf->authmode))
+			{
+				print '<tr><td valign="top">'.$langs->trans("url_openid").'</td>';
+				print '<td>'.$fuser->openid.'</td>';
+				print "</tr>\n";
+			}
 			// Autres caracteristiques issus des autres modules
 
 			// Module Webcalendar
@@ -1312,7 +1320,7 @@ else
 			print '</tr>';
 
 			// Nom
-			print "<tr>".'<td valign="top" class="fieldrequired">'.$langs->trans("Name").'</span></td>';
+			print "<tr>".'<td valign="top" class="fieldrequired">'.$langs->trans("Lastname").'</span></td>';
 			print '<td colspan="2">';
 			if ($caneditfield && !$fuser->ldap_sid)
 			{
@@ -1479,7 +1487,7 @@ else
 			print '</td></tr>';
 
 			// EMail
-			print "<tr>".'<td valign="top">'.$langs->trans("EMail").'</td>';
+			print "<tr>".'<td valign="top"'.($conf->global->USER_MAIL_REQUIRED?' class="fieldrequired"':'').'>'.$langs->trans("EMail").'</td>';
 			print '<td>';
 			if ($caneditfield  && !$fuser->ldap_sid)
 			{
@@ -1491,6 +1499,23 @@ else
 				print $fuser->email;
 			}
 			print '</td></tr>';
+			
+			// openid
+			if (preg_match('/myopenid/',$conf->authmode))
+			{
+				print "<tr>".'<td valign="top">'.$langs->trans("url_openid").'</td>';
+				print '<td>';
+				if ($caneditfield  && !$fuser->ldap_sid)
+				{
+					print '<input size="40" type="text" name="openid" class="flat" value="'.$fuser->openid.'">';
+				}
+				else
+				{
+					print '<input type="hidden" name="openid" value="'.$fuser->openid.'">';
+					print $fuser->openid;
+				}
+				print '</td></tr>';
+			}			
 
 			// Statut
 			print '<tr><td valign="top">'.$langs->trans("Status").'</td>';
diff --git a/htdocs/webservices/server_invoice.php b/htdocs/webservices/server_invoice.php
index 27609a6ceba173df3d26929d74d3a413ad5c7303..5142e0ee7d0e50bde96eed6b98d46cd0dce7aec5 100755
--- a/htdocs/webservices/server_invoice.php
+++ b/htdocs/webservices/server_invoice.php
@@ -96,32 +96,58 @@ $server->wsdl->addComplexType(
 );
 
 $server->wsdl->addComplexType(
-        'invoice',
- 	    'complexType',
-	    'struct',
-	    'all',
-	    '',
-	    array(
-	    	'id' => array('name'=>'id','type'=>'xsd:string'),
-	        'ref' => array('name'=>'ref','type'=>'xsd:string'),
-	        'fk_user_author' => array('name'=>'fk_user_author','type'=>'xsd:string'),
-	        'fk_user_valid' => array('name'=>'fk_user_valid','type'=>'xsd:string'),
-	        'date' => array('name'=>'date','type'=>'xsd:int'),
-	        'date_creation' => array('name'=>'date_creation','type'=>'xsd:int'),
-	        'date_validation' => array('name'=>'date_validation','type'=>'xsd:int'),
-	        'date_modification' => array('name'=>'date_modification','type'=>'xsd:int'),
-	        'type' => array('name'=>'type','type'=>'xsd:int'),
-	        'total' => array('name'=>'type','type'=>'xsd:int'),
-	        'total_vat' => array('name'=>'type','type'=>'xsd:int'),
-	        'total_vat' => array('name'=>'type','type'=>'xsd:int'),
-	        'note' => array('name'=>'note','type'=>'xsd:int'),
-	        'note_public' => array('name'=>'note_public','type'=>'xsd:int'),
-	        'status' => array('name'=>'status','type'=>'xsd:int'),
-	        'close_code' => array('name'=>'close_code','type'=>'xsd:int'),
-	        'close_note' => array('name'=>'close_note','type'=>'xsd:int'),
-	    	'lines' => array('name'=>'lines','type'=>'tns:LinesArray')
-	    )
-    );
+    'invoice',
+    'element',		// If we put element here instead of complexType to have tag called invoice in getInvoicesForThirdParty we brek getInvoice
+    'struct',
+    'all',
+    '',
+    array(
+    	'id' => array('name'=>'id','type'=>'xsd:string'),
+        'ref' => array('name'=>'ref','type'=>'xsd:string'),
+        'fk_user_author' => array('name'=>'fk_user_author','type'=>'xsd:string'),
+        'fk_user_valid' => array('name'=>'fk_user_valid','type'=>'xsd:string'),
+        'date' => array('name'=>'date','type'=>'xsd:int'),
+        'date_creation' => array('name'=>'date_creation','type'=>'xsd:int'),
+        'date_validation' => array('name'=>'date_validation','type'=>'xsd:int'),
+        'date_modification' => array('name'=>'date_modification','type'=>'xsd:int'),
+        'type' => array('name'=>'type','type'=>'xsd:int'),
+        'total' => array('name'=>'type','type'=>'xsd:int'),
+        'total_vat' => array('name'=>'type','type'=>'xsd:int'),
+        'total_vat' => array('name'=>'type','type'=>'xsd:int'),
+        'note' => array('name'=>'note','type'=>'xsd:int'),
+        'note_public' => array('name'=>'note_public','type'=>'xsd:int'),
+        'status' => array('name'=>'status','type'=>'xsd:int'),
+        'close_code' => array('name'=>'close_code','type'=>'xsd:int'),
+        'close_note' => array('name'=>'close_note','type'=>'xsd:int'),
+    	'lines' => array('name'=>'lines','type'=>'tns:LinesArray')
+    )
+);
+
+$server->wsdl->addComplexType(
+    'InvoicesArray',
+    'complexType',
+    'array',
+    '',
+    'SOAP-ENC:Array',
+    array(),
+    array(
+        array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:invoice[]')
+    ),
+    'tns:invoice'
+);
+
+$server->wsdl->addComplexType(
+    'invoices',
+    'complexType',
+    'array',
+    '',
+    'SOAP-ENC:Array',
+    array(),
+    array(
+        array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:invoice[]')
+    ),
+    'tns:invoice'
+);
 
 $server->wsdl->addComplexType(
         'result',
@@ -143,9 +169,16 @@ array('authentication'=>'tns:authentication','id'=>'xsd:string','ref'=>'xsd:stri
 array('result'=>'tns:result','invoice'=>'tns:invoice'),
 $ns
 );
+$server->register('getInvoicesForThirdParty',
+// Entry values
+array('authentication'=>'tns:authentication','idthirdparty'=>'xsd:string'),
+// Exit values
+array('result'=>'tns:result','invoices'=>'tns:invoices'),
+$ns
+);
 
 
-// Full methods code
+// Get invoice from id
 function getInvoice($authentication,$id,$ref)
 {
 	global $db,$conf,$langs;
@@ -249,6 +282,100 @@ function getInvoice($authentication,$id,$ref)
 }
 
 
+// Get list of invoices for third party
+function getInvoicesForThirdParty($authentication,$idthirdparty)
+{
+	global $db,$conf,$langs;
+
+	dol_syslog("Function: getInvoicesForThirdParty login=".$authentication['login']." id=".$idthirdparty);
+
+	if ($authentication['entity']) $conf->entity=$authentication['entity'];
+
+	$objectresp=array();
+	$errorcode='';$errorlabel='';
+	$error=0;
+
+	if (! $error && ($authentication['dolibarrkey'] != $conf->global->WEBSERVICES_KEY))
+	{
+		$error++;
+		$errorcode='BAD_VALUE_FOR_SECURITY_KEY'; $errorlabel='Value provided into dolibarrkey entry field does not match security key defined in Webservice module setup';
+	}
+
+	if (! $error && empty($idthirdparty))
+	{
+		$error++;
+		$errorcode='BAD_PARAMETERS'; $errorlabel='Parameter id is not provided';
+	}
+
+	if (! $error)
+	{
+		$linesinvoice=array();
+
+		$sql.='SELECT rowid, facnumber as ref, type, total_ttc, total, tva';
+		$sql.= ' FROM '.MAIN_DB_PREFIX.'facture as f';
+		//$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON pt.fk_product = p.rowid';
+		$sql.= ' WHERE fk_soc = '.$idthirdparty;
+
+		$resql=$db->query($sql);
+		if ($resql)
+		{
+			$num=$db->num_rows($resql);
+			$i=0;
+			while ($i < $num)
+			{
+				// En attendant remplissage par boucle
+
+				// Define lines of invoice
+				$linesresp=array();
+				$linesresp[]=array(
+					'id'=>100,
+					'type'=>1,
+					'total_ht'=>$line->total_ht,
+					'total_vat'=>$line->total_tva,
+					'total_ttc'=>$line->total_ttc,
+				);
+				$linesresp[]=array(
+					'id'=>101,
+					'type'=>1,
+					'total_ht'=>$line->total_ht,
+					'total_vat'=>$line->total_tva,
+					'total_ttc'=>$line->total_ttc,
+				);
+				// Now define invoice
+				$linesinvoice[]=array(
+					'id'=>'1',
+				    'ref'=>'aa',
+					'type'=>1,
+					'total_ht'=>10,
+					'total_vat'=>$line->total_tva,
+					'total_ttc'=>$line->total_ttc,
+		    		'lines' => $linesresp
+				);
+
+				$i++;
+			}
+
+			$objectresp=array(
+		    	'result'=>array('result_code'=>'', 'result_label'=>''),
+		        'invoices'=>$linesinvoice
+
+			);
+		}
+		else
+		{
+			$error++;
+			$errorcode=$db->lasterrno(); $errorlabel=$db->lasterror();
+		}
+	}
+
+	if ($error)
+	{
+		$objectresp = array('result'=>array('result_code' => $errorcode, 'result_label' => $errorlabel));
+	}
+
+	return $objectresp;
+}
+
 
 // Return the results.
 $server->service($HTTP_RAW_POST_DATA);
diff --git a/htdocs/webservices/server_thirdparty.php b/htdocs/webservices/server_thirdparty.php
index ed56f9580019b7a7eebe438e15564a33ea49e7e4..e50f33594586206b508b868682a09f428f20ced9 100755
--- a/htdocs/webservices/server_thirdparty.php
+++ b/htdocs/webservices/server_thirdparty.php
@@ -76,10 +76,10 @@ $server->wsdl->addComplexType(
 	    	'id' => array('name'=>'id','type'=>'xsd:string'),
 	        'name' => array('name'=>'name','type'=>'xsd:string'),
 	        'fk_user_author' => array('name'=>'fk_user_author','type'=>'xsd:string'),
-	        'date' => array('name'=>'date','type'=>'xsd:int'),
-	        'date_creation' => array('name'=>'date_creation','type'=>'xsd:int'),
-	        'date_modification' => array('name'=>'date_modification','type'=>'xsd:int'),
-	        'note' => array('name'=>'note','type'=>'xsd:int'),
+	        'date' => array('name'=>'date','type'=>'xsd:date'),
+	        'date_creation' => array('name'=>'date_creation','type'=>'xsd:dateTime'),
+	        'date_modification' => array('name'=>'date_modification','type'=>'xsd:dateTime'),
+	        'note' => array('name'=>'note','type'=>'xsd:string'),
 	    	'address' => array('name'=>'address','type'=>'xsd:string'),
 	    	'zip' => array('name'=>'zip','type'=>'xsd:string'),
 	    	'town' => array('name'=>'town','type'=>'xsd:string'),