diff --git a/htdocs/core/boxes/box_graph_orders_permonth.php b/htdocs/core/boxes/box_graph_orders_permonth.php
index c42ac88074a..4f86dcd0b8b 100644
--- a/htdocs/core/boxes/box_graph_orders_permonth.php
+++ b/htdocs/core/boxes/box_graph_orders_permonth.php
@@ -89,7 +89,9 @@ class box_graph_orders_permonth extends ModeleBoxes
if ($user->rights->commande->lire)
{
- $param_year='DOLUSERCOOKIE_box_'.$this->boxcode.'_year';
+ $langs->load("orders");
+
+ $param_year='DOLUSERCOOKIE_box_'.$this->boxcode.'_year';
$param_shownb='DOLUSERCOOKIE_box_'.$this->boxcode.'_shownb';
$param_showtot='DOLUSERCOOKIE_box_'.$this->boxcode.'_showtot';
diff --git a/htdocs/core/boxes/box_graph_orders_supplier_permonth.php b/htdocs/core/boxes/box_graph_orders_supplier_permonth.php
index 2f7ecb3cbda..6df7d81766c 100644
--- a/htdocs/core/boxes/box_graph_orders_supplier_permonth.php
+++ b/htdocs/core/boxes/box_graph_orders_supplier_permonth.php
@@ -88,7 +88,9 @@ class box_graph_orders_supplier_permonth extends ModeleBoxes
if ($user->rights->fournisseur->commande->lire)
{
- $param_year='DOLUSERCOOKIE_box_'.$this->boxcode.'_year';
+ $langs->load("orders");
+
+ $param_year='DOLUSERCOOKIE_box_'.$this->boxcode.'_year';
$param_shownb='DOLUSERCOOKIE_box_'.$this->boxcode.'_shownb';
$param_showtot='DOLUSERCOOKIE_box_'.$this->boxcode.'_showtot';
diff --git a/htdocs/core/class/cstate.class.php b/htdocs/core/class/cstate.class.php
new file mode 100644
index 00000000000..a2a84d3b9ed
--- /dev/null
+++ b/htdocs/core/class/cstate.class.php
@@ -0,0 +1,305 @@
+
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+/**
+ * \file htdocs/core/class/cstate.class.php
+ * \ingroup core
+ * \brief This file is a CRUD class file (Create/Read/Update/Delete) for c_departements dictionary
+ */
+
+// Put here all includes required by your class file
+//require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
+//require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
+//require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
+
+
+/**
+ * Class to manage dictionary States (used by imports)
+ */
+class Cstate // extends CommonObject
+{
+ var $db; //!< To store db handler
+ var $error; //!< To return error code (or message)
+ var $errors=array(); //!< To return several error codes (or messages)
+ //var $element='cstate'; //!< Id that identify managed objects
+ //var $table_element='cstate'; //!< Name of table without prefix where object is stored
+
+ var $id;
+ var $code_departement;
+ var $nom;
+ var $active;
+
+
+
+
+ /**
+ * Constructor
+ *
+ * @param DoliDb $db Database handler
+ */
+ function __construct($db)
+ {
+ $this->db = $db;
+ return 1;
+ }
+
+
+ /**
+ * Create object into database
+ *
+ * @param User $user User that create
+ * @param int $notrigger 0=launch triggers after, 1=disable triggers
+ * @return int <0 if KO, Id of created object if OK
+ */
+ function create($user, $notrigger=0)
+ {
+ global $conf, $langs;
+ $error=0;
+
+ // Clean parameters
+ if (isset($this->code_departement)) $this->code_departement=trim($this->code_departement);
+ if (isset($this->nom)) $this->nom=trim($this->nom);
+ if (isset($this->active)) $this->active=trim($this->active);
+
+ // Check parameters
+ // Put here code to add control on parameters values
+
+ // Insert request
+ $sql = "INSERT INTO ".MAIN_DB_PREFIX."c_departements(";
+ $sql.= "rowid,";
+ $sql.= "code_departement,";
+ $sql.= "nom,";
+ $sql.= "active";
+ $sql.= ") VALUES (";
+ $sql.= " ".(! isset($this->rowid)?'NULL':"'".$this->rowid."'").",";
+ $sql.= " ".(! isset($this->code_departement)?'NULL':"'".$this->db->escape($this->code_departement)."'").",";
+ $sql.= " ".(! isset($this->nom)?'NULL':"'".$this->db->escape($this->nom)."'").",";
+ $sql.= " ".(! isset($this->active)?'NULL':"'".$this->active."'")."";
+ $sql.= ")";
+
+ $this->db->begin();
+
+ dol_syslog(get_class($this)."::create", LOG_DEBUG);
+ $resql=$this->db->query($sql);
+ if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
+
+ if (! $error)
+ {
+ $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."c_departements");
+
+ if (! $notrigger)
+ {
+ // Uncomment this and change MYOBJECT to your own tag if you
+ // want this action call a trigger.
+
+ //// Call triggers
+ //include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
+ //$interface=new Interfaces($this->db);
+ //$result=$interface->run_triggers('MYOBJECT_CREATE',$this,$user,$langs,$conf);
+ //if ($result < 0) { $error++; $this->errors=$interface->errors; }
+ //// End call triggers
+ }
+ }
+
+ // Commit or rollback
+ if ($error)
+ {
+ foreach($this->errors as $errmsg)
+ {
+ dol_syslog(get_class($this)."::create ".$errmsg, LOG_ERR);
+ $this->error.=($this->error?', '.$errmsg:$errmsg);
+ }
+ $this->db->rollback();
+ return -1*$error;
+ }
+ else
+ {
+ $this->db->commit();
+ return $this->id;
+ }
+ }
+
+
+ /**
+ * Load object in memory from database
+ *
+ * @param int $id Id object
+ * @param string $code Code
+ * @return int <0 if KO, >0 if OK
+ */
+ function fetch($id,$code='')
+ {
+ global $langs;
+ $sql = "SELECT";
+ $sql.= " t.rowid,";
+ $sql.= " t.code_departement,";
+ $sql.= " t.nom,";
+ $sql.= " t.active";
+ $sql.= " FROM ".MAIN_DB_PREFIX."c_departements as t";
+ if ($id) $sql.= " WHERE t.rowid = ".$id;
+ elseif ($code) $sql.= " WHERE t.code_departement = '".$this->db->escape($code)."'";
+
+ dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
+ $resql=$this->db->query($sql);
+ if ($resql)
+ {
+ if ($this->db->num_rows($resql))
+ {
+ $obj = $this->db->fetch_object($resql);
+
+ $this->id = $obj->rowid;
+ $this->code_departement = $obj->code_departement;
+ $this->nom = $obj->nom;
+ $this->active = $obj->active;
+ }
+ $this->db->free($resql);
+
+ return 1;
+ }
+ else
+ {
+ $this->error="Error ".$this->db->lasterror();
+ return -1;
+ }
+ }
+
+
+ /**
+ * Update object into database
+ *
+ * @param User $user User that modify
+ * @param int $notrigger 0=launch triggers after, 1=disable triggers
+ * @return int <0 if KO, >0 if OK
+ */
+ function update($user=null, $notrigger=0)
+ {
+ global $conf, $langs;
+ $error=0;
+
+ // Clean parameters
+ if (isset($this->code_departement)) $this->code_departement=trim($this->code_departement);
+ if (isset($this->nom)) $this->nom=trim($this->nom);
+ if (isset($this->active)) $this->active=trim($this->active);
+
+
+ // Check parameters
+ // Put here code to add control on parameters values
+
+ // Update request
+ $sql = "UPDATE ".MAIN_DB_PREFIX."c_departements SET";
+ $sql.= " code_departement=".(isset($this->code_departement)?"'".$this->db->escape($this->code_departement)."'":"null").",";
+ $sql.= " nom=".(isset($this->nom)?"'".$this->db->escape($this->nom)."'":"null").",";
+ $sql.= " active=".(isset($this->active)?$this->active:"null")."";
+ $sql.= " WHERE rowid=".$this->id;
+
+ $this->db->begin();
+
+ dol_syslog(get_class($this)."::update", LOG_DEBUG);
+ $resql = $this->db->query($sql);
+ if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
+
+ if (! $error)
+ {
+ if (! $notrigger)
+ {
+ // Uncomment this and change MYOBJECT to your own tag if you
+ // want this action call a trigger.
+
+ //// Call triggers
+ //include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
+ //$interface=new Interfaces($this->db);
+ //$result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf);
+ //if ($result < 0) { $error++; $this->errors=$interface->errors; }
+ //// End call triggers
+ }
+ }
+
+ // Commit or rollback
+ if ($error)
+ {
+ foreach($this->errors as $errmsg)
+ {
+ dol_syslog(get_class($this)."::update ".$errmsg, LOG_ERR);
+ $this->error.=($this->error?', '.$errmsg:$errmsg);
+ }
+ $this->db->rollback();
+ return -1*$error;
+ }
+ else
+ {
+ $this->db->commit();
+ return 1;
+ }
+ }
+
+
+ /**
+ * Delete object in database
+ *
+ * @param User $user User that delete
+ * @param int $notrigger 0=launch triggers after, 1=disable triggers
+ * @return int <0 if KO, >0 if OK
+ */
+ function delete($user, $notrigger=0)
+ {
+ global $conf, $langs;
+ $error=0;
+
+ $sql = "DELETE FROM ".MAIN_DB_PREFIX."c_departements";
+ $sql.= " WHERE rowid=".$this->id;
+
+ $this->db->begin();
+
+ dol_syslog(get_class($this)."::delete", LOG_DEBUG);
+ $resql = $this->db->query($sql);
+ if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
+
+ if (! $error)
+ {
+ if (! $notrigger)
+ {
+ // Uncomment this and change MYOBJECT to your own tag if you
+ // want this action call a trigger.
+
+ //// Call triggers
+ //include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
+ //$interface=new Interfaces($this->db);
+ //$result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf);
+ //if ($result < 0) { $error++; $this->errors=$interface->errors; }
+ //// End call triggers
+ }
+ }
+
+ // Commit or rollback
+ if ($error)
+ {
+ foreach($this->errors as $errmsg)
+ {
+ dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR);
+ $this->error.=($this->error?', '.$errmsg:$errmsg);
+ }
+ $this->db->rollback();
+ return -1*$error;
+ }
+ else
+ {
+ $this->db->commit();
+ return 1;
+ }
+ }
+
+}
diff --git a/htdocs/install/mysql/data/llx_20_c_departements.sql b/htdocs/install/mysql/data/llx_20_c_departements.sql
index 3c2adc371f3..3b68310ed23 100644
--- a/htdocs/install/mysql/data/llx_20_c_departements.sql
+++ b/htdocs/install/mysql/data/llx_20_c_departements.sql
@@ -953,7 +953,7 @@ INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, nc
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2306', 2302, '', 0, 'CHACO', 'Chaco', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2307', 2302, '', 0, 'CORRIENTES', 'Corrientes', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2308', 2302, '', 0, 'ENTRE RIOS', 'Entre Ríos', 1);
-INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2309', 2302, '', 0, 'FORMOSA MISIONES', 'Formosa Misiones', 1);
+INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2309', 2302, '', 0, 'FORMOSA', 'Formosa', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2310', 2302, '', 0, 'SANTA FE', 'Santa Fe', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2311', 2303, '', 0, 'LA RIOJA', 'La Rioja', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2312', 2303, '', 0, 'MENDOZA', 'Mendoza', 1);
@@ -970,6 +970,7 @@ INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, nc
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2323', 2305, '', 0, 'TIERRA DEL FUEGO', 'Tierra del Fuego', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2324', 2305, '', 0, 'ISLAS MALVINAS', 'Islas Malvinas', 1);
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2325', 2305, '', 0, 'ANTARTIDA', 'Antártida', 1);
+INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2326', 2305, '', 0, 'MISIONES', 'Misiones', 1);
-- Parish Barbados (id country=46)
INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('CC', 4601, 'Oistins', 0, 'CC', 'Christ Church', 1);
diff --git a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
index 034d2765fbc..7eb1fd46269 100644
--- a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
+++ b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
@@ -594,3 +594,6 @@ ALTER TABLE llx_accounting_bookkeeping MODIFY COLUMN doc_ref varchar(300) NOT NU
ALTER TABLE llx_holiday ADD COLUMN tms timestamp;
ALTER TABLE llx_holiday ADD COLUMN entity integer DEFAULT 1 NOT NULL;
+-- Fix Argentina provences
+INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2326', 2305, '', 0, 'MISIONES', 'Misiones', 1);
+UPDATE llx_c_departements SET ncc = "FORMOSA", nom = "Formosa" WHERE nom = "Formosa Misiones";
diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang
index 51c30e6dc6e..a6360e39f72 100644
--- a/htdocs/langs/en_US/products.lang
+++ b/htdocs/langs/en_US/products.lang
@@ -320,4 +320,6 @@ NbOfQtyInProposals=Qty in proposals
ClinkOnALinkOfColumn=Click on a link of column %s to get a detailed view...
TranslatedLabel=Translated label
TranslatedDescription=Translated description
-TranslatedNote=Translated notes
\ No newline at end of file
+TranslatedNote=Translated notes
+WeightUnits=Weight unit
+SizeUnits=Size unit
diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang
index ef95c99ec18..333be2ad4fc 100644
--- a/htdocs/langs/fr_FR/admin.lang
+++ b/htdocs/langs/fr_FR/admin.lang
@@ -282,6 +282,7 @@ ModuleSetup=Configuration du module
ModulesSetup=Configuration des modules
ModuleFamilyBase=Système
ModuleFamilyCrm=Gestion de la relation client (GRC)
+ModuleFamilySrm=Supplier Relation Management (SRM)
ModuleFamilyProducts=Gestion des Produits/Services (PM)
ModuleFamilyHr=Gestion des Ressources Humaines (RH)
ModuleFamilyProjects=Projets/Travail collaboratif
@@ -1090,7 +1091,7 @@ PathDirectory=Répertoire
SendmailOptionMayHurtBuggedMTA=La fonction d'envoi de mails par la méthode "PHP mail directe" génère un message mail qui peut être mal interprété par certains serveurs mal configurés de réception de mail. Cela se traduit par des mails non lisibles chez les personnes hébergés par ces plateformes boguées. C'est le cas des clients de certains fournisseurs d'accès internet (Ex: Orange). Ce n'est pas un problème, ni dans Dolibarr ni dans PHP mais sur le serveur de réception. Vous pouvez toutefois ajouter l'option MAIN_FIX_FOR_BUGGED_MTA à 1 dans configuration - divers pour modifier Dolibarr afin de compenser le bug. Toutefois ce sont les serveurs respectueux du standard d'envoi de mail qui pourront avoir des problèmes. L'autre solution (recommandée) est d'utiliser la méthode d'envoi SMTP socket library qui n'a aucun de ces inconvénients.
TranslationSetup=Configuration de la traduction
TranslationDesc=Le choix de la langue affichée à l'écran se modifie: * Soit de manière globale depuis le menu Accueil - Configuration - Affichage * Soit de manière spécifique à l'utilisateur depuis l'onglet Interface utilisateur de sa fiche utilisateur (cliquer sur l'identifiant en haut de l'écran).
-TranslationOverwriteDesc=You can also overwrite some value by completing/editing the following table. You must use for "%s" the language code, for "%s" the key found into file langs/xx_XX/somefile.lang and "%s" the new value you want to use as new translation.
+TranslationOverwriteDesc=Vous pouvez aussi écraser des valeurs en complétant/corrigeant le tableau suivant. Vous devez utiliser pour "%s" le code de langue, pour "%s" le code trouvé dans le fichier langs/xx_XX/somefile.lang et "%s" la nouvelle valeur que vous souhaitez utiliser comme nouvelle traduction.
TotalNumberOfActivatedModules=Nombre total de modules/fonctionnalités activés: %s / %s
YouMustEnableOneModule=Vous devez activer au moins une fonctionnalité
ClassNotFoundIntoPathWarning=La classe %s n'a pas été trouvée dans le chemin PHP
@@ -1712,4 +1713,4 @@ ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s est disponible. La ver
ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s est disponible. La version %s est une version de maintanance, aussi elle ne contient que des correctifs de bugs. Nous recommandons tout personne utilisant une version plus ancienne de migrer sur celle-ci. En tant que version de maintenance, aucune nouvelle fonctionnalité n'est ajouté, ni modification de format de données. Vous pouvez télécharger cette version à partir de la zone de téléchargement du portail http://www.dolibarr.org (sous-répertoire "Versions stables"). Vous pouvez lire le ChangeLog pour la liste complète des changements.
MultiPriceRuleDesc=Quand l'option « Plusieurs niveaux de prix par produit/service» est activée, vous pouvez définir différents prix (un par niveau de prix) pour chaque produits. Pour sauver du temps, vous pouvez entrer ici une règle pour avoir un prix pour chaque niveau calculé automatiquement. Cette page est ici pour sauver du temps et peut être utile si vos prix pour chaque niveaux sont relatif au premier niveau. Vous pouvez ignorer cette page dans la plupart des cas
ModelModulesProduct=Modèles des documents de produits
-ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
+ToGenerateCodeDefineAutomaticRuleFirst=Pour pouvoir générer automatiquement des codes, vous devez d'abord définir un gestionnaire pour définir automatiquement le numéro du codebar.
diff --git a/htdocs/langs/fr_FR/boxes.lang b/htdocs/langs/fr_FR/boxes.lang
index a006c333239..b19d51dfbd3 100644
--- a/htdocs/langs/fr_FR/boxes.lang
+++ b/htdocs/langs/fr_FR/boxes.lang
@@ -60,8 +60,8 @@ BoxTitleLastContracts=Les %s derniers contrats
BoxTitleLastModifiedDonations=Les %s derniers dons modifiés
BoxTitleLastModifiedExpenses=Les %s dernières notes de frais modifiées
BoxGlobalActivity=Activité globale (factures, propositions, commandes)
-BoxGoodCustomers=Good Customers
-BoxTitleGoodCustomers=%s Good Customers
+BoxGoodCustomers=Good customers
+BoxTitleGoodCustomers=%s Good customers
FailedToRefreshDataInfoNotUpToDate=Échec du rafraichissement du flux RSS. Date du dernier rafraichissement : %s
LastRefreshDate=Date dernier rafraichissement
NoRecordedBookmarks=Pas de marques-pages personnels.
diff --git a/htdocs/langs/fr_FR/companies.lang b/htdocs/langs/fr_FR/companies.lang
index 1612d396d07..f31f2cbd2c4 100644
--- a/htdocs/langs/fr_FR/companies.lang
+++ b/htdocs/langs/fr_FR/companies.lang
@@ -203,7 +203,7 @@ ProfId4IN=Id. prof. 4
ProfId5IN=Id. prof. 5
ProfId6IN=-
ProfId1LU=Id. prof. 1 (R.C.S. Luxembourg)
-ProfId2LU=Id. prof. 2 (Autorisation d'établissement)
+ProfId2LU=Id. prof. 2 (Business permit)
ProfId3LU=-
ProfId4LU=-
ProfId5LU=-
@@ -317,10 +317,12 @@ ShowContact=Afficher contact
ContactsAllShort=Tous (pas de filtre)
ContactType=Type de contact
ContactForOrders=Contact de commandes
+ContactForOrdersOrShipments=Contact de commandes ou expéditions
ContactForProposals=Contact de propositions
ContactForContracts=Contact de contrats
ContactForInvoices=Contact de factures
NoContactForAnyOrder=Ce contact n'est contact d'aucune commande
+NoContactForAnyOrderOrShipment=Ce contact n'est contact d'aucune commande ni expédition
NoContactForAnyProposal=Ce contact n'est contact d'aucune proposition commerciale
NoContactForAnyContract=Ce contact n'est contact d'aucun contrat
NoContactForAnyInvoice=Ce contact n'est contact d'aucune facture
diff --git a/htdocs/langs/fr_FR/errors.lang b/htdocs/langs/fr_FR/errors.lang
index 79bba51615c..4c4e934ffff 100644
--- a/htdocs/langs/fr_FR/errors.lang
+++ b/htdocs/langs/fr_FR/errors.lang
@@ -172,6 +172,8 @@ ErrorMandatoryParametersNotProvided=Paramètre(s) obligatoire(s) non fournis
ErrorOppStatusRequiredIfAmount=Vous avez fixé un montant estimé pour cette opportunité/affaire. Aussi, vous devez également entrer son statut
ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Mauvaise définition du tableau Menu dans le descripteur de module (mauvaise valeur pour la clé fk_menu)
ErrorSavingChanges=Une erreur est survenue lors de la sauvegarde des modifications
+ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
+ErrorFileMustHaveFormat=File must have format %s
# Warnings
WarningPasswordSetWithNoAccount=Un mot de passe a été fixé pour cet adhérent. Cependant, aucun compte d'utilisateur n'a été créé. Donc, ce mot de passe est stocké, mais ne peut être utilisé pour accéder à Dolibarr. Il peut être utilisé par un module/interface externe, mais si vous n'avez pas besoin de définir ni login ni mot de passe pour un adhérent, vous pouvez désactiver l'option «Gérer un login pour chaque adhérent" depuis la configuration du module Adhérents. Si vous avez besoin de gérer un login, mais pas de mot de passe, vous pouvez laisser ce champ vide pour éviter cet avertissement. Remarque: L'email peut également être utilisé comme login si l'adhérent est lié à un utilisateur.
diff --git a/htdocs/langs/fr_FR/exports.lang b/htdocs/langs/fr_FR/exports.lang
index 73650632926..44be3ccbe50 100644
--- a/htdocs/langs/fr_FR/exports.lang
+++ b/htdocs/langs/fr_FR/exports.lang
@@ -128,6 +128,10 @@ SpecialCode=Code spécial
ExportStringFilter=%% permet de remplacer 1 ou plusieurs caractères dans le texte
ExportDateFilter=AAAA, AAAAMM, AAAAMMJJ: filtre pour une année/mois/jour AAAA+AAAA, AAAAMM+AAAAMM, AAAAMMJJ+AAAAMMJJ: filtre pour une plage année/mois/jour > AAAA, > AAAAMM, > AAAAMMJJ': filtre pour une date supérieure à une année/mois/jour donné < AAAA, < AAAAMM, < AAAAMMJJ: filtre pour une date inférieure à une année/mois/jour donné
ExportNumericFilter='NNNNN' filtres sur une valeur 'NNNNN+NNNNN' filtres sur une place de valeurs '>NNNNN' filtres sur les valeurs plus petites '>NNNNN' filtres sur les valeurs plus grandes
+ImportFromLine=Import starting from line number
+EndAtLineNb=End at line number
+SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines
+KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file
## filters
SelectFilterFields=Si vous voulez filtrer sur certaines valeurs, saisissez ces valeurs.
FilterableFields=Champs filtrables
diff --git a/htdocs/langs/fr_FR/products.lang b/htdocs/langs/fr_FR/products.lang
index 0e99bc447e9..f8514e725b3 100644
--- a/htdocs/langs/fr_FR/products.lang
+++ b/htdocs/langs/fr_FR/products.lang
@@ -318,3 +318,6 @@ WarningSelectOneDocument=Sélectionnez au moins un document
DefaultUnitToShow=Unité
NbOfQtyInProposals=Qté en propositions
ClinkOnALinkOfColumn=Click on a link of column %s to get a detailed view...
+TranslatedLabel=Translated label
+TranslatedDescription=Translated description
+TranslatedNote=Translated notes
diff --git a/htdocs/societe/soc.php b/htdocs/societe/soc.php
index ae18fa1890f..3ec3a635919 100644
--- a/htdocs/societe/soc.php
+++ b/htdocs/societe/soc.php
@@ -1289,7 +1289,7 @@ else
dol_fiche_end();
print '