From efd24cc1a2b27f613b0f29cb977410b1899615d7 Mon Sep 17 00:00:00 2001
From: Alexandre SPANGARO <alexandre.spangaro@gmail.com>
Date: Tue, 1 Aug 2017 06:16:23 +0200
Subject: [PATCH 01/27] Fix: function length_accountg has been moved in
 getNomUrl

---
 htdocs/compta/bank/index.php | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/htdocs/compta/bank/index.php b/htdocs/compta/bank/index.php
index 9bc8608692d..6c0d1613943 100644
--- a/htdocs/compta/bank/index.php
+++ b/htdocs/compta/bank/index.php
@@ -492,12 +492,10 @@ foreach ($accounts as $key=>$type)
     // Account number
     if (! empty($arrayfields['b.account_number']['checked']))
     {
-        include_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
-
 		$accountingaccount = new AccountingAccount($db);
 		$accountingaccount->fetch('',$acc->account_number);
 
-		print '<td>'.length_accountg($accountingaccount->getNomUrl(0,1,1,'',1)).'</td>';
+		print '<td>'.$accountingaccount->getNomUrl(0,1,1,'',1).'</td>';
 
 	    if (! $i) $totalarray['nbfield']++;
     }
-- 
GitLab


From 9629a50853fb81953e17e012d4c7d84ae0be9c73 Mon Sep 17 00:00:00 2001
From: Alexandre SPANGARO <alexandre.spangaro@gmail.com>
Date: Tue, 1 Aug 2017 06:21:19 +0200
Subject: [PATCH 02/27] Fix: SQL error in payment list

---
 htdocs/compta/paiement/list.php | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/htdocs/compta/paiement/list.php b/htdocs/compta/paiement/list.php
index 4a7a2e3c81a..bddc5e9f500 100644
--- a/htdocs/compta/paiement/list.php
+++ b/htdocs/compta/paiement/list.php
@@ -3,8 +3,9 @@
  * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
  * Copyright (C) 2013      Cédric Salvador      <csalvador@gpcsolutions.fr>
- * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
+ * Copyright (C) 2015      Jean-François Ferry  <jfefe@aternatik.fr>
  * Copyright (C) 2015      Juanjo Menent        <jmenent@2byte.es>
+ * Copyright (C) 2017      Alexandre Spangaro   <aspangaro@zendsi.com>
  *
  * 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
@@ -31,14 +32,15 @@ require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
 require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
+if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingjournal.class.php';
 
 $langs->load("bills");
 $langs->load("compta");
 
 // Security check
-$facid =GETPOST('facid','int');
-$socid =GETPOST('socid','int');
-$userid=GETPOST('userid','int');
+$facid	= GETPOST('facid','int');
+$socid	= GETPOST('socid','int');
+$userid	= GETPOST('userid','int');
 $day	= GETPOST('day','int');
 $month	= GETPOST('month','int');
 $year	= GETPOST('year','int');
@@ -129,7 +131,7 @@ else
     $sql = "SELECT DISTINCT p.rowid, p.ref, p.datep as dp, p.amount,"; // DISTINCT is to avoid duplicate when there is a link to sales representatives
     $sql.= " p.statut, p.num_paiement,";
     $sql.= " c.code as paiement_code,";
-    $sql.= " ba.rowid as bid, ba.ref as bref, ba.label as blabel, ba.number, ba.account_number as account_number, ba.accountancy_journal as accountancy_journal,";
+    $sql.= " ba.rowid as bid, ba.ref as bref, ba.label as blabel, ba.number, ba.account_number as account_number, ba.fk_accountancy_journal as accountancy_journal,";
     $sql.= " s.rowid as socid, s.nom as name";
 	// Add fields for extrafields
 	foreach ($extrafields->attribute_list as $key => $val) $sql.=",ef.".$key.' as options_'.$key;
@@ -329,7 +331,11 @@ if ($resql)
 	            $accountstatic->label=$objp->blabel;
 	            $accountstatic->number=$objp->number;
 	            $accountstatic->account_number=$objp->account_number;
-	            $accountstatic->accountancy_journal=$objp->accountancy_journal;
+            
+				$accountingjournal = new AccountingJournal($db);
+				$accountingjournal->fetch($objp->accountancy_journal);
+				$accountstatic->accountancy_journal = $accountingjournal->getNomUrl(0,1,1,'',1);
+
 	            print $accountstatic->getNomUrl(1);
 	        }
 	        else print '&nbsp;';
-- 
GitLab


From 3c34add0d60c4351045fd1cdb221baa31724a961 Mon Sep 17 00:00:00 2001
From: Alexandre SPANGARO <alexandre.spangaro@gmail.com>
Date: Tue, 1 Aug 2017 06:26:35 +0200
Subject: [PATCH 03/27] remove condition

---
 htdocs/compta/paiement/list.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/compta/paiement/list.php b/htdocs/compta/paiement/list.php
index bddc5e9f500..04dbaf8fc11 100644
--- a/htdocs/compta/paiement/list.php
+++ b/htdocs/compta/paiement/list.php
@@ -32,7 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
 require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
-if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingjournal.class.php';
+require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php';
 
 $langs->load("bills");
 $langs->load("compta");
-- 
GitLab


From ddee8023249105fe0c264e703752084bce3976f6 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Tue, 1 Aug 2017 10:22:09 +0200
Subject: [PATCH 04/27] Add second parameter in GETPOST

---
 htdocs/comm/propal/list.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php
index 0fd9ddb4c7c..0f0f1ded0db 100644
--- a/htdocs/comm/propal/list.php
+++ b/htdocs/comm/propal/list.php
@@ -73,9 +73,9 @@ $search_zip=GETPOST('search_zip','alpha');
 $search_state=trim(GETPOST("search_state"));
 $search_country=GETPOST("search_country",'int');
 $search_type_thirdparty=GETPOST("search_type_thirdparty",'int');
-$viewstatut=GETPOST('viewstatut');
+$viewstatut=GETPOST('viewstatut','alpha');
 $optioncss = GETPOST('optioncss','alpha');
-$object_statut=GETPOST('propal_statut');
+$object_statut=GETPOST('propal_statut','alpha');
 
 $sall=GETPOST('sall', 'alphanohtml');
 $mesg=(GETPOST("msg") ? GETPOST("msg") : GETPOST("mesg"));
-- 
GitLab


From 03b3f54c2cc2c000a684d21e814653af0c8133ff Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Tue, 1 Aug 2017 13:10:15 +0200
Subject: [PATCH 05/27] Fix class not found

---
 .../project/doc/pdf_beluga.modules.php        | 82 ++++++++++++-------
 1 file changed, 51 insertions(+), 31 deletions(-)

diff --git a/htdocs/core/modules/project/doc/pdf_beluga.modules.php b/htdocs/core/modules/project/doc/pdf_beluga.modules.php
index 2b58cd59c09..15fd0e5f615 100644
--- a/htdocs/core/modules/project/doc/pdf_beluga.modules.php
+++ b/htdocs/core/modules/project/doc/pdf_beluga.modules.php
@@ -33,16 +33,17 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
 
-if (! empty($conf->propal->enabled))      require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
-if (! empty($conf->facture->enabled))     require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
-if (! empty($conf->facture->enabled))     require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture-rec.class.php';
-if (! empty($conf->commande->enabled))    require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
-if (! empty($conf->fournisseur->enabled)) require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
-if (! empty($conf->fournisseur->enabled)) require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php';
-if (! empty($conf->contrat->enabled))     require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php';
-if (! empty($conf->ficheinter->enabled))  require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php';
-if (! empty($conf->deplacement->enabled)) require_once DOL_DOCUMENT_ROOT.'/compta/deplacement/class/deplacement.class.php';
-if (! empty($conf->agenda->enabled))      require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php';
+if (! empty($conf->propal->enabled))        require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
+if (! empty($conf->facture->enabled))       require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
+if (! empty($conf->facture->enabled))       require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture-rec.class.php';
+if (! empty($conf->commande->enabled))      require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
+if (! empty($conf->fournisseur->enabled))   require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
+if (! empty($conf->fournisseur->enabled))   require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php';
+if (! empty($conf->contrat->enabled))       require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php';
+if (! empty($conf->ficheinter->enabled))    require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php';
+if (! empty($conf->deplacement->enabled))   require_once DOL_DOCUMENT_ROOT.'/compta/deplacement/class/deplacement.class.php';
+if (! empty($conf->expensereport->enabled)) require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php';
+if (! empty($conf->agenda->enabled))        require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php';
 
 
 
@@ -223,7 +224,7 @@ class pdf_beluga extends ModelePDFProjects
 				$iniY = $tab_top + 7;
 				$curY = $tab_top + 7;
 				$nexY = $tab_top + 7;
-                                    
+
                 $listofreferent=array(
                     'propal'=>array(
                     	'name'=>"Proposals",
@@ -311,7 +312,7 @@ class pdf_beluga extends ModelePDFProjects
                     	'margin'=>'minus',
                     	'disableamount'=>1,
                     	'test'=>$conf->expensereport->enabled && $user->rights->expensereport->lire,
-                        'lang'=>'trip'),                    
+                        'lang'=>'trip'),
                     'agenda'=>array(
                     	'name'=>"Agenda",
                     	'title'=>"ListActionsAssociatedProject",
@@ -322,8 +323,8 @@ class pdf_beluga extends ModelePDFProjects
                     	'test'=>$conf->agenda->enabled && $user->rights->agenda->allactions->read,
                         'lang'=>'agenda')
                 );
-                
-                
+
+
                 foreach ($listofreferent as $key => $value)
                 {
                 	$title=$value['title'];
@@ -333,13 +334,13 @@ class pdf_beluga extends ModelePDFProjects
                 	$qualified=$value['test'];
                 	$langstoload=$value['lang'];
                 	$langs->load($langstoload);
-                	
+
                     if ($qualified)
                     {
                         //var_dump("$key, $tablename, $datefieldname, $dates, $datee");
                         $elementarray = $object->get_element_list($key, $tablename, $datefieldname, $dates, $datee);
                         //var_dump($elementarray);
-                        
+
                         $num = count($elementarray);
                         if ($num >= 0)
                         {
@@ -347,7 +348,7 @@ class pdf_beluga extends ModelePDFProjects
                             $curY = $nexY;
                             $pdf->SetXY($this->posxref, $curY);
                             $pdf->MultiCell($this->posxstatut - $this->posxref, 3, $outputlangs->transnoentities($title), 0, 'L');
-                            
+
                             $selectList = $formproject->select_element($tablename, $project->thirdparty->id);
                             $nexY = $pdf->GetY() + 1;
                             $curY = $nexY;
@@ -356,7 +357,9 @@ class pdf_beluga extends ModelePDFProjects
                             $pdf->SetXY($this->posxdate, $curY);
                             $pdf->MultiCell($this->posxsociety - $this->posxdate, 3, $outputlangs->transnoentities("Date"), 1, 'C');
                             $pdf->SetXY($this->posxsociety, $curY);
-                            $pdf->MultiCell($this->posxamountht - $this->posxsociety, 3, $outputlangs->transnoentities("ThirdParty"), 1, 'L');
+                            $titlethirdparty=$outputlangs->transnoentities("ThirdParty");
+                            if ($classname == 'ExpenseReport') $titlethirdparty=$langs->trans("User");
+                            $pdf->MultiCell($this->posxamountht - $this->posxsociety, 3, $titlethirdparty, 1, 'L');
                             if (empty($value['disableamount'])) {
                                 $pdf->SetXY($this->posxamountht, $curY);
                                 $pdf->MultiCell($this->posxamountttc - $this->posxamountht, 3, $outputlangs->transnoentities("AmountHTShort"), 1, 'R');
@@ -368,30 +371,39 @@ class pdf_beluga extends ModelePDFProjects
                             }
                             $pdf->SetXY($this->posxstatut, $curY);
                             $pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxstatut, 3, $outputlangs->transnoentities("Statut"), 1, 'R');
-                            
+
                             if (is_array($elementarray) && count($elementarray) > 0)
                             {
                                 $nexY = $pdf->GetY();
                                 $curY = $nexY;
-                                
+
                                 $total_ht = 0;
                                 $total_ttc = 0;
                                 $num = count($elementarray);
                                 for ($i = 0; $i < $num; $i ++) {
+                                	$idofelement=$elementarray[$i];
+                                	if ($classname == 'ExpenseReport')
+                                	{
+                                		// We get id of expense report
+                                		$expensereportline=new ExpenseReportLine($this->db);
+                                		$expensereportline->fetch($idofelement);
+                                		$idofelement = $expensereportline->fk_expensereport;
+                                	}
+
                                     $element = new $classname($this->db);
-                                    $element->fetch($elementarray[$i]);
+                                    $element->fetch($idofelement);
                                     $element->fetch_thirdparty();
                                     // print $classname;
-                                    
+
                                     $qualifiedfortotal = true;
                                     if ($key == 'invoice') {
                                         if ($element->close_code == 'replaced')
                                             $qualifiedfortotal = false; // Replacement invoice
                                     }
-                                    
+
                                     $pdf->SetXY($this->posxref, $curY);
                                     $pdf->MultiCell($this->posxdate - $this->posxref, 3, $element->ref, 1, 'L');
-                                    
+
                                     // Date
                                     if ($tablename == 'commande_fournisseur' || $tablename == 'supplier_order')
                                         $date = $element->date_commande;
@@ -404,15 +416,23 @@ class pdf_beluga extends ModelePDFProjects
                                         if (empty($date))
                                             $date = $element->datev; // Fiche inter
                                     }
-                                    
+
                                     $pdf->SetXY($this->posxdate, $curY);
                                     $pdf->MultiCell($this->posxsociety - $this->posxdate, 3, dol_print_date($date, 'day'), 1, 'C');
-                                    
+
                                     $pdf->SetXY($this->posxsociety, $curY);
                                     if (is_object($element->thirdparty))
+                                    {
                                         $pdf->MultiCell($this->posxamountht - $this->posxsociety, 3, $element->thirdparty->name, 1, 'L');
-                                        
-                                        // Amount without tax
+                                    }
+									elseif ($classname == 'ExpenseReport')
+									{
+										$fuser=new User($this->db);
+										$fuser->fetch($element->fk_user_author);
+										$pdf->MultiCell($this->posxamountht - $this->posxsociety, 3, $fuser->getFullName($outputlangs), 1, 'L');
+									}
+
+                                    // Amount without tax
                                     if (empty($value['disableamount'])) {
                                         $pdf->SetXY($this->posxamountht, $curY);
                                         $pdf->MultiCell($this->posxamountttc - $this->posxamountht, 3, (isset($element->total_ht) ? price($element->total_ht) : '&nbsp;'), 1, 'R');
@@ -422,7 +442,7 @@ class pdf_beluga extends ModelePDFProjects
                                         $pdf->SetXY($this->posxamountht, $curY);
                                         $pdf->MultiCell($this->posxstatut - $this->posxamountht, 3, "", 1, 'R');
                                     }
-                                    
+
                                     // Status
                                     if ($element instanceof CommonInvoice) {
                                         // This applies for Facture and FactureFournisseur
@@ -432,7 +452,7 @@ class pdf_beluga extends ModelePDFProjects
                                     }
                                     $pdf->SetXY($this->posxstatut, $curY);
                                     $pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxstatut, 3, $outputstatut, 1, 'R', false, 1, '', '', true, 0, true);
-                                    
+
                                     if ($qualifiedfortotal) {
                                         $total_ht = $total_ht + $element->total_ht;
                                         $total_ttc = $total_ttc + $element->total_ttc;
@@ -440,7 +460,7 @@ class pdf_beluga extends ModelePDFProjects
                                     $nexY = $pdf->GetY();
                                     $curY = $nexY;
                                 }
-                                
+
                                 if (empty($value['disableamount'])) {
                                     $curY = $nexY;
                                     $pdf->SetXY($this->posxref, $curY);
-- 
GitLab


From 19ba90f57780e1ed724e382d7ed3a4f3e5dc64f2 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Tue, 1 Aug 2017 13:17:27 +0200
Subject: [PATCH 06/27] Fix creation of leave request

---
 htdocs/holiday/card.php                | 17 ++++++++++-------
 htdocs/holiday/class/holiday.class.php |  6 +++---
 2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/htdocs/holiday/card.php b/htdocs/holiday/card.php
index e50c880c0ee..8ee0fb64b40 100644
--- a/htdocs/holiday/card.php
+++ b/htdocs/holiday/card.php
@@ -60,7 +60,7 @@ if ($action == 'create')
 	$object = new Holiday($db);
 
     // If no right to create a request
-    $fuserid = GETPOST('fuserid');
+    $fuserid = GETPOST('fuserid','int');
     if (($fuserid == $user->id && empty($user->rights->holiday->write)) || ($fuserid != $user->id && empty($user->rights->holiday->write_all)))
     {
     	$error++;
@@ -118,7 +118,7 @@ if ($action == 'create')
 	    }
 
 	    // Check if there is already holiday for this period
-	    $verifCP = $object->verifDateHolidayCP($userID, $date_debut, $date_fin, $halfday);
+	    $verifCP = $object->verifDateHolidayCP($fuserid, $date_debut, $date_fin, $halfday);
 	    if (! $verifCP)
 	    {
 	        setEventMessages($langs->trans("alreadyCPexist"), null, 'errors');
@@ -144,11 +144,9 @@ if ($action == 'create')
 
 	    $result = 0;
 
-	    $result = 0;
-
 	    if (! $error)
 	    {
-    	    $object->fk_user = $userid;
+    	    $object->fk_user = $fuserid;
     	    $object->description = $description;
     	    $object->date_debut = $date_debut;
     	    $object->date_fin = $date_fin;
@@ -157,10 +155,15 @@ if ($action == 'create')
     		$object->fk_type = $type;
 
     		$result = $object->create($user);
+    		if ($result <= 0)
+    		{
+    			setEventMessages($object->error, $object->errors, 'errors');
+    			$error++;
+    		}
 	    }
 
 	    // If no SQL error we redirect to the request card
-	    if (! $error && $result > 0)
+	    if (! $error)
 	    {
 			$db->commit();
 
@@ -834,7 +837,7 @@ if (empty($id) || $action == 'add' || $action == 'request' || $action == 'create
         	print $form->select_dolusers($fuserid, 'useridbis', 0, '', 1, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
         	print '<input type="hidden" name="fuserid" value="'.($fuserid?$fuserid:$user->id).'">';
         }
-        else print $form->select_dolusers(GETPOST('fuserid')?GETPOST('fuserid'):$user->id,'fuserid',0,'',0);
+        else print $form->select_dolusers(GETPOST('fuserid','int')?GETPOST('fuserid','int'):$user->id,'fuserid',0,'',0);
         print '</td>';
         print '</tr>';
 
diff --git a/htdocs/holiday/class/holiday.class.php b/htdocs/holiday/class/holiday.class.php
index 9973223ba0f..4815bee4b00 100644
--- a/htdocs/holiday/class/holiday.class.php
+++ b/htdocs/holiday/class/holiday.class.php
@@ -125,9 +125,9 @@ class Holiday extends CommonObject
         $now=dol_now();
 
         // Check parameters
-        if (empty($this->fk_user) || ! is_numeric($this->fk_user) || $this->fk_user < 0) { $this->error="ErrorBadParameter"; return -1; }
-        if (empty($this->fk_validator) || ! is_numeric($this->fk_validator) || $this->fk_validator < 0)  { $this->error="ErrorBadParameter"; return -1; }
-        if (empty($this->fk_type) || ! is_numeric($this->fk_type) || $this->fk_type < 0) { $this->error="ErrorBadParameter"; return -1; }
+        if (empty($this->fk_user) || ! is_numeric($this->fk_user) || $this->fk_user < 0) { $this->error="ErrorBadParameterFkUser"; return -1; }
+        if (empty($this->fk_validator) || ! is_numeric($this->fk_validator) || $this->fk_validator < 0)  { $this->error="ErrorBadParameterFkValidator"; return -1; }
+        if (empty($this->fk_type) || ! is_numeric($this->fk_type) || $this->fk_type < 0) { $this->error="ErrorBadParameterFkType"; return -1; }
 
         // Insert request
         $sql = "INSERT INTO ".MAIN_DB_PREFIX."holiday(";
-- 
GitLab


From f9dc628f0bb0d528f292a4b7a4bb5a7bebb1f73d Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Tue, 1 Aug 2017 15:53:22 +0200
Subject: [PATCH 07/27] Add tool to fix missing thumbs

---
 htdocs/core/lib/images.lib.php        |   2 +-
 scripts/product/regenerate_thumbs.php | 106 ++++++++++++++++++++++++++
 2 files changed, 107 insertions(+), 1 deletion(-)
 create mode 100755 scripts/product/regenerate_thumbs.php

diff --git a/htdocs/core/lib/images.lib.php b/htdocs/core/lib/images.lib.php
index d9d7d0d9730..e6f69da1d93 100644
--- a/htdocs/core/lib/images.lib.php
+++ b/htdocs/core/lib/images.lib.php
@@ -347,7 +347,7 @@ function dolRotateImage($file_path)
  *    	@param     int		$quality        	Quality of compression (0=worst, 100=best)
  *      @param     string	$outdir           	Directory where to store thumb
  *      @param     int		$targetformat     	New format of target (IMAGETYPE_GIF, IMAGETYPE_JPG, IMAGETYPE_PNG, IMAGETYPE_BMP, IMAGETYPE_WBMP ... or 0 to keep old format)
- *    	@return    string						Full path of thumb or '' if it fails
+ *    	@return    string						Full path of thumb or '' if it fails or 'Error...' if it fails
  */
 function vignette($file, $maxWidth = 160, $maxHeight = 120, $extName='_small', $quality=50, $outdir='thumbs', $targetformat=0)
 {
diff --git a/scripts/product/regenerate_thumbs.php b/scripts/product/regenerate_thumbs.php
new file mode 100755
index 00000000000..389dcf2222a
--- /dev/null
+++ b/scripts/product/regenerate_thumbs.php
@@ -0,0 +1,106 @@
+#!/usr/bin/env php
+<?php
+/* Copyright (C) 2007-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
+ * Copyright (C) 2015 Jean Heimburger  <http://tiaris.eu>
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ *      \file       scripts/product/migrate_picture_path.php
+ *		\ingroup    scripts
+ *      \brief      Migrate pictures from old system prior to 3.7 to new path for 3.7+
+ */
+
+$sapi_type = php_sapi_name();
+$script_file = basename(__FILE__);
+$path=dirname(__FILE__).'/';
+
+// Test if batch mode
+if (substr($sapi_type, 0, 3) == 'cgi') {
+    echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
+	exit(-1);
+}
+
+@set_time_limit(0);							// No timeout for this script
+define('EVEN_IF_ONLY_LOGIN_ALLOWED',1);		// Set this define to 0 if you want to lock your script when dolibarr setup is "locked to admin user only".
+
+// Include and load Dolibarr environment variables
+require_once($path."../../htdocs/master.inc.php");
+require_once(DOL_DOCUMENT_ROOT."/product/class/product.class.php");
+require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
+require_once(DOL_DOCUMENT_ROOT."/core/lib/images.lib.php");
+// After this $db, $mysoc, $langs, $conf and $hookmanager are defined (Opened $db handler to database will be closed at end of file).
+// $user is created but empty.
+
+//$langs->setDefaultLang('en_US'); 	// To change default language of $langs
+$langs->load("main");				// To load language file for default language
+
+
+// Global variables
+$version=DOL_VERSION;
+$error=0;
+$forcecommit=0;
+
+
+print "***** ".$script_file." (".$version.") pid=".dol_getmypid()." *****\n";
+dol_syslog($script_file." launched with arg ".join(',',$argv));
+
+if (empty($argv[1])) {
+    print "Usage:    $script_file  subdirtoscan\n";
+    print "Example:  $script_file  produit\n";
+    exit(-1);
+}
+
+print '--- start'."\n";
+
+$dir = DOL_DATA_ROOT;
+$subdir=$argv[1];
+if (empty($dir) || empty($subdir))
+{
+	dol_print_error('', 'dir not defined');
+	exit(1);
+}
+if (! dol_is_dir($dir.'/'.$subdir))
+{
+	print 'Directory '.$dir.'/'.$subdir.' not found.'."\n";
+	exit(2);
+}
+
+$filearray=dol_dir_list($dir.'/'.$subdir,"directories",0,'','temp$');
+
+global $maxwidthsmall, $maxheightsmall, $maxwidthmini, $maxheightmini;
+
+foreach($filearray as $keyf => $valf)
+{
+	$ref=basename($valf['name']);
+	$filearrayimg=dol_dir_list($valf['fullname'],"files",0,'(\.gif|\.png|\.jpg|\.jpeg|\.bmp)$','(\.meta|_preview.*\.png)$');
+	foreach($filearrayimg as $keyi => $vali)
+	{
+		print 'Process image for ref '.$ref.' : '.$vali['name']."\n";
+
+		// Used on logon for example
+		$imgThumbSmall = vignette($vali['fullname'], $maxwidthsmall, $maxheightsmall, '_small', 50, "thumbs");
+		if (preg_match('/Error/', $imgThumbSmall)) print $imgThumbSmall."\n";
+
+		// Create mini thumbs for image (Ratio is near 16/9)
+		// Used on menu or for setup page for example
+		$imgThumbMini = vignette($vali['fullname'], $maxwidthmini, $maxheightmini, '_mini', 50, "thumbs");
+		if (preg_match('/Error/', $imgThumbMini)) print $imgThumbMini."\n";
+	}
+}
+
+$db->close();	// Close $db database opened handler
+
+exit($error);
-- 
GitLab


From 747719b3e8c93ed02a3770d5cb2127170f1c65ab Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Tue, 1 Aug 2017 15:54:28 +0200
Subject: [PATCH 08/27] Code comment

---
 scripts/product/regenerate_thumbs.php | 1 +
 1 file changed, 1 insertion(+)

diff --git a/scripts/product/regenerate_thumbs.php b/scripts/product/regenerate_thumbs.php
index 389dcf2222a..bc3e1f53a6b 100755
--- a/scripts/product/regenerate_thumbs.php
+++ b/scripts/product/regenerate_thumbs.php
@@ -90,6 +90,7 @@ foreach($filearray as $keyf => $valf)
 	{
 		print 'Process image for ref '.$ref.' : '.$vali['name']."\n";
 
+		// Create small thumbs for image
 		// Used on logon for example
 		$imgThumbSmall = vignette($vali['fullname'], $maxwidthsmall, $maxheightsmall, '_small', 50, "thumbs");
 		if (preg_match('/Error/', $imgThumbSmall)) print $imgThumbSmall."\n";
-- 
GitLab


From 71d49f1c6f5761b9e09e980eeedc457c2ff1555a Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Tue, 1 Aug 2017 18:32:21 +0200
Subject: [PATCH 09/27] Fix pb in ecm

---
 htdocs/core/ajax/ajaxdirpreview.php       |  4 +-
 htdocs/core/class/html.form.class.php     | 28 ++++++++-----
 htdocs/core/class/html.formfile.class.php |  6 +--
 htdocs/core/lib/files.lib.php             | 26 +++++++-----
 htdocs/core/lib/functions.lib.php         |  2 +-
 htdocs/core/modules/modECM.class.php      |  2 +-
 htdocs/ecm/class/ecmdirectory.class.php   | 28 ++++++++++++-
 htdocs/ecm/docfile.php                    |  8 ++--
 htdocs/ecm/docmine.php                    | 50 +++++++++++++++--------
 htdocs/ecm/index.php                      |  4 +-
 10 files changed, 105 insertions(+), 53 deletions(-)

diff --git a/htdocs/core/ajax/ajaxdirpreview.php b/htdocs/core/ajax/ajaxdirpreview.php
index 709d07c0832..cee16f923f5 100644
--- a/htdocs/core/ajax/ajaxdirpreview.php
+++ b/htdocs/core/ajax/ajaxdirpreview.php
@@ -202,7 +202,7 @@ if ($type == 'directory')
         $upload_dir = $conf->ecm->dir_output.'/'.$relativepath;
 
         // If $section defined with value 0
-        if ($section === '0')
+		if ($section === '0' || empty($section))
         {
             $filearray=array();
         }
@@ -216,7 +216,7 @@ if ($type == 'directory')
         else if ($section === '0') $textifempty='<br><div align="center"><font class="warning">'.$langs->trans("DirNotSynchronizedSyncFirst").'</font></div><br>';
         else $textifempty=($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("ECMSelectASection"));
 
-        $formfile->list_of_documents($filearray,'','ecm',$param,1,$relativepath,$user->rights->ecm->upload,1,$textifempty,$maxlengthname,'',$url);
+		$formfile->list_of_documents($filearray,'','ecm',$param,1,$relativepath,$user->rights->ecm->upload,1,$textifempty,$maxlengthname,'',$url);
     }
 }
 
diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index 27115d12eb7..c7dd20547f4 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -5890,18 +5890,22 @@ class Form
             $object->next_prev_filter.=$hookmanager->resPrint;
         }
 
-        //print "paramid=$paramid,morehtml=$morehtml,shownav=$shownav,$fieldid,$fieldref,$morehtmlref,$moreparam";
-        $object->load_previous_next_ref((isset($object->next_prev_filter)?$object->next_prev_filter:''),$fieldid,$nodbprefix);
-
-        $navurl = $_SERVER["PHP_SELF"];
-        // Special case for project/task page
-        if ($paramid == 'project_ref')
+        $previous_ref = $next_ref = '';
+        if ($shownav)
         {
-            $navurl = preg_replace('/\/tasks\/(task|contact|time|note|document).php/','/tasks.php',$navurl);
-            $paramid='ref';
+	        //print "paramid=$paramid,morehtml=$morehtml,shownav=$shownav,$fieldid,$fieldref,$morehtmlref,$moreparam";
+	        $object->load_previous_next_ref((isset($object->next_prev_filter)?$object->next_prev_filter:''),$fieldid,$nodbprefix);
+
+        	$navurl = $_SERVER["PHP_SELF"];
+	        // Special case for project/task page
+	        if ($paramid == 'project_ref')
+	        {
+	            $navurl = preg_replace('/\/tasks\/(task|contact|time|note|document)\.php/','/tasks.php',$navurl);
+	            $paramid='ref';
+	        }
+	        $previous_ref = $object->ref_previous?'<a href="'.$navurl.'?'.$paramid.'='.urlencode($object->ref_previous).$moreparam.'"><i class="fa fa-chevron-left"></i></a>':'<span class="inactive"><i class="fa fa-chevron-left opacitymedium"></i></span>';
+	        $next_ref     = $object->ref_next?'<a href="'.$navurl.'?'.$paramid.'='.urlencode($object->ref_next).$moreparam.'"><i class="fa fa-chevron-right"></i></a>':'<span class="inactive"><i class="fa fa-chevron-right opacitymedium"></i></span>';
         }
-        $previous_ref = $object->ref_previous?'<a href="'.$navurl.'?'.$paramid.'='.urlencode($object->ref_previous).$moreparam.'"><i class="fa fa-chevron-left"></i></a>':'<span class="inactive"><i class="fa fa-chevron-left opacitymedium"></i></span>';
-        $next_ref     = $object->ref_next?'<a href="'.$navurl.'?'.$paramid.'='.urlencode($object->ref_next).$moreparam.'"><i class="fa fa-chevron-right"></i></a>':'<span class="inactive"><i class="fa fa-chevron-right opacitymedium"></i></span>';
 
         //print "xx".$previous_ref."x".$next_ref;
         $ret.='<!-- Start banner content --><div style="vertical-align: middle">';
@@ -5955,6 +5959,10 @@ class Form
 		{
 			$ret.=$object->label;
 		}
+		else if ($object->element == 'ecm_directories')
+		{
+			$ret.='';
+		}
 		else if ($fieldref != 'none') $ret.=dol_htmlentities($object->$fieldref);
 
 
diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php
index 040ae1ba96e..c02d2b5c2be 100644
--- a/htdocs/core/class/html.formfile.class.php
+++ b/htdocs/core/class/html.formfile.class.php
@@ -1007,9 +1007,9 @@ class FormFile
 			print '<table width="100%" id="tablelines" class="'.($useinecm?'liste noborder':'liste').'">'."\n";
 
 			print '<tr class="liste_titre nodrag nodrop">';
-			print_liste_field_titre($langs->trans("Documents2"),$url,"name","",$param,'align="left"',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("Size"),$url,"size","",$param,'align="right"',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("Date"),$url,"date","",$param,'align="center"',$sortfield,$sortorder);
+			print_liste_field_titre('Documents2',$url,"name","",$param,'align="left"',$sortfield,$sortorder);
+			print_liste_field_titre('Size',$url,"size","",$param,'align="right"',$sortfield,$sortorder);
+			print_liste_field_titre('Date',$url,"date","",$param,'align="center"',$sortfield,$sortorder);
 			if (empty($useinecm)) print_liste_field_titre('',$url,"","",$param,'align="center"');
 			print_liste_field_titre('');
 			if (! $disablemove) print_liste_field_titre('');
diff --git a/htdocs/core/lib/files.lib.php b/htdocs/core/lib/files.lib.php
index 0b8282ad5b6..394b3e76778 100644
--- a/htdocs/core/lib/files.lib.php
+++ b/htdocs/core/lib/files.lib.php
@@ -1349,14 +1349,15 @@ function dol_init_file_process($pathtoscan='', $trackid='')
  *
  * @param	string	$upload_dir				Directory where to store uploaded file (note: used to forge $destpath = $upload_dir + filename)
  * @param	int		$allowoverwrite			1=Allow overwrite existing file
- * @param	int		$donotupdatesession		1=Do no edit _SESSION variable
+ * @param	int		$donotupdatesession		1=Do no edit _SESSION variable but update database index. 0=Update _SESSION and not database index.
  * @param	string	$varfiles				_FILES var name
  * @param	string	$savingdocmask			Mask to use to define output filename. For example 'XXXXX-__YYYYMMDD__-__file__'
  * @param	string	$link					Link to add (to add a link instead of a file)
  * @param   string  $trackid                Track id (used to prefix name of session vars to avoid conflict)
+ * @param	int		$generatethumbs			1=Generate also thumbs for uploaded image files
  * @return	int                             <=0 if KO, >0 if OK
  */
-function dol_add_file_process($upload_dir, $allowoverwrite=0, $donotupdatesession=0, $varfiles='addedfile', $savingdocmask='', $link=null, $trackid='')
+function dol_add_file_process($upload_dir, $allowoverwrite=0, $donotupdatesession=0, $varfiles='addedfile', $savingdocmask='', $link=null, $trackid='', $generatethumbs=1)
 {
 	global $db,$user,$conf,$langs;
 
@@ -1407,16 +1408,19 @@ function dol_add_file_process($upload_dir, $allowoverwrite=0, $donotupdatesessio
 					include_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
 
 					// Generate thumbs.
-					if (image_format_supported($destfull) == 1)
+					if ($generatethumbs)
 					{
-					    // Create thumbs
-					    // We can't use $object->addThumbs here because there is no $object known
-
-					    // Used on logon for example
-					    $imgThumbSmall = vignette($destfull, $maxwidthsmall, $maxheightsmall, '_small', 50, "thumbs");
-					    // Create mini thumbs for image (Ratio is near 16/9)
-					    // Used on menu or for setup page for example
-					    $imgThumbMini = vignette($destfull, $maxwidthmini, $maxheightmini, '_mini', 50, "thumbs");
+						if (image_format_supported($destfull) == 1)
+						{
+						    // Create thumbs
+						    // We can't use $object->addThumbs here because there is no $object known
+
+						    // Used on logon for example
+						    $imgThumbSmall = vignette($destfull, $maxwidthsmall, $maxheightsmall, '_small', 50, "thumbs");
+						    // Create mini thumbs for image (Ratio is near 16/9)
+						    // Used on menu or for setup page for example
+						    $imgThumbMini = vignette($destfull, $maxwidthmini, $maxheightmini, '_mini', 50, "thumbs");
+						}
 					}
 
 					// Update session
diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php
index 61093ebcc52..0b629c1f215 100644
--- a/htdocs/core/lib/functions.lib.php
+++ b/htdocs/core/lib/functions.lib.php
@@ -1341,7 +1341,7 @@ function dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='r
 		if (! empty($object->label)) $morehtmlref.='<div class="refidno">'.$object->label.'</div>';
 	}
 
-	if ($object->element != 'product' && $object->element != 'bookmark')
+	if ($object->element != 'product' && $object->element != 'bookmark' && $object->element != 'ecm_directories')
 	{
     	$morehtmlref.='<div class="refidno">';
     	$morehtmlref.=$object->getBannerAddress('refaddress',$object);
diff --git a/htdocs/core/modules/modECM.class.php b/htdocs/core/modules/modECM.class.php
index b263b16e29e..bfe0e45e02c 100644
--- a/htdocs/core/modules/modECM.class.php
+++ b/htdocs/core/modules/modECM.class.php
@@ -63,7 +63,7 @@ class modECM extends DolibarrModules
 		$this->picto='dir';
 
 		// Data directories to create when module is enabled
-		$this->dirs = array("/ecm/temp");
+		$this->dirs = array("/ecm/My_First_Directory","/ecm/temp");
 
 		// Config pages. Put here list of php page names stored in admmin directory used to setup module
 		$this->config_page_url = array('ecm.php');
diff --git a/htdocs/ecm/class/ecmdirectory.class.php b/htdocs/ecm/class/ecmdirectory.class.php
index 31439fa5ba3..5f713bdab91 100644
--- a/htdocs/ecm/class/ecmdirectory.class.php
+++ b/htdocs/ecm/class/ecmdirectory.class.php
@@ -27,8 +27,9 @@
  */
 class EcmDirectory // extends CommonObject
 {
-	//public $element='ecm_directories';			//!< Id that identify managed objects
+	public $element='ecm_directories';			//!< Id that identify managed objects
 	//public $table_element='ecm_directories';	//!< Name of table without prefix where object is stored
+	var $picto = 'dir';
 
 	var $id;
 
@@ -514,6 +515,31 @@ class EcmDirectory // extends CommonObject
 	}
 
 
+	/**
+	 *  Retourne le libelle du status d'un user (actif, inactif)
+	 *
+	 *  @param	int		$mode          0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto
+	 *  @return	string 			       Label of status
+	 */
+	function getLibStatut($mode=0)
+	{
+		return $this->LibStatut($this->status,$mode);
+	}
+
+	/**
+	 *  Return the status
+	 *
+	 *  @param	int		$status        	Id status
+	 *  @param  int		$mode          	0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 5=Long label + Picto
+	 *  @return string 			       	Label of status
+	 */
+	static function LibStatut($status,$mode=0)
+	{
+		global $langs;
+		return '';
+	}
+
+
 	/**
 	 * 	Reconstruit l'arborescence des categories sous la forme d'un tableau à partir de la base de donnée
 	 *	Renvoi un tableau de tableau('id','id_mere',...) trie selon arbre et avec:
diff --git a/htdocs/ecm/docfile.php b/htdocs/ecm/docfile.php
index 31f9b6b11c2..577ac3e0262 100644
--- a/htdocs/ecm/docfile.php
+++ b/htdocs/ecm/docfile.php
@@ -78,7 +78,7 @@ if (! $urlfile)
 
 // Load ecm object
 $ecmdir = new EcmDirectory($db);
-$result=$ecmdir->fetch(GETPOST("section"));
+$result=$ecmdir->fetch(GETPOST("section",'alpha'));
 if (! $result > 0)
 {
     dol_print_error($db,$ecmdir->error);
@@ -109,10 +109,10 @@ if (! empty($_GET["fileid"]))
  * Put here all code to do according to value of "action" parameter
  ********************************************************************/
 
-if ($action == 'cancel') 
+if ($action == 'cancel')
 {
     $action ='';
-    if ($backtourl) 
+    if ($backtourl)
     {
         header("Location: ".$backtourl);
         exit;
@@ -144,7 +144,7 @@ if ($action == 'update')
     //print $oldfile.' - '.$newfile;
     if ($newlabel != $oldlabel)
     {
-        $result=dol_move($oldfile,$newfile);
+        $result=dol_move($oldfile, $newfile);
         if (! $result)
         {
             $langs->load('errors');
diff --git a/htdocs/ecm/docmine.php b/htdocs/ecm/docmine.php
index 48f39cb12f2..f418627d1be 100644
--- a/htdocs/ecm/docmine.php
+++ b/htdocs/ecm/docmine.php
@@ -191,15 +191,15 @@ if ($action == 'update' && ! GETPOST('cancel'))
 
 
 /*******************************************************************
-* PAGE
-*
-* Put here all code to do according to value of "action" parameter
+* View
 ********************************************************************/
 
-llxHeader();
-
 $form=new Form($db);
 
+$object=new EcmDirectory($db);	// Need to create a new one
+$object->fetch($ecmdir->id);
+
+llxHeader();
 
 // Built the file List
 $filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
@@ -211,7 +211,8 @@ foreach($filearray as $key => $file)
 
 
 $head = ecm_prepare_head($ecmdir);
-dol_fiche_head($head, 'card', $langs->trans("ECMSectionManual"), '', 'dir');
+dol_fiche_head($head, 'card', $langs->trans("ECMSectionManual"), -1, 'dir');
+
 
 if ($action == 'edit')
 {
@@ -221,13 +222,11 @@ if ($action == 'edit')
 	print '<input type="hidden" name="action" value="update">';
 }
 
-print '<table class="border" width="100%">';
-print '<tr><td class="titlefield">'.$langs->trans("Ref").'</td><td>';
 $s='';
-$tmpecmdir=new EcmDirectory($db);	// Need to create a new one
-$tmpecmdir->fetch($ecmdir->id);
 $result = 1;
 $i=0;
+$tmpecmdir=new EcmDirectory($db);	// Need to create a new one
+$tmpecmdir->fetch($ecmdir->id);
 while ($tmpecmdir && $result > 0)
 {
 	$tmpecmdir->ref=$tmpecmdir->label;
@@ -248,10 +247,21 @@ while ($tmpecmdir && $result > 0)
 	$i++;
 }
 
+$morehtml='';
+
+$morehtmlref = '<a href="'.DOL_URL_ROOT.'/ecm/index.php">'.$langs->trans("ECMRoot").'</a> -> '.$s;
+
+dol_banner_tab($object, '', $morehtml, 0, '', '', $morehtmlref);
+
+print '<div class="fichecenter">';
+
+print '<div class="underbanner clearboth"></div>';
+print '<table class="border" width="100%">';
+/*print '<tr><td class="titlefield">'.$langs->trans("Ref").'</td><td>';
 print img_picto('','object_dir').' <a href="'.DOL_URL_ROOT.'/ecm/index.php">'.$langs->trans("ECMRoot").'</a> -> ';
 print $s;
-print '</td></tr>';
-print '<tr><td class="tdtop">'.$langs->trans("Description").'</td><td>';
+print '</td></tr>';*/
+print '<tr><td class="titlefield tdtop">'.$langs->trans("Description").'</td><td>';
 if ($action == 'edit')
 {
 	print '<textarea class="flat" name="description" cols="80">';
@@ -283,20 +293,24 @@ print '</td></tr>';
 print '<tr><td>'.$langs->trans("TotalSizeOfAttachedFiles").'</td><td>';
 print dol_print_size($totalsize);
 print '</td></tr>';
+print '</table>';
+
 if ($action == 'edit')
 {
-	print '<tr><td colspan="2" align="center">';
+	print '<br><div align="center">';
 	print '<input type="submit" class="button" name="submit" value="'.$langs->trans("Save").'">';
 	print ' &nbsp; &nbsp; ';
 	print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
-	print '</td></tr>';
+	print '</div>';
 }
-print '</table>';
+
+print '</div>';
 if ($action == 'edit')
 {
 	print '</form>';
 }
-print '</div>';
+
+dol_fiche_end();
 
 
 
@@ -341,7 +355,7 @@ if ($action != 'edit' && $action != 'delete')
 if ($action == 'delete')
 {
 	print $form->formconfirm($_SERVER["PHP_SELF"].'?section='.$_REQUEST["section"].'&amp;urlfile='.urlencode($_GET["urlfile"]), $langs->trans('DeleteFile'), $langs->trans('ConfirmDeleteFile'), 'confirm_deletefile');
-	
+
 }
 
 // Confirm remove file
@@ -349,7 +363,7 @@ if ($action == 'delete_dir')
 {
 	$relativepathwithoutslash=preg_replace('/[\/]$/','',$relativepath);
     print $form->formconfirm($_SERVER["PHP_SELF"].'?section='.$_REQUEST["section"], $langs->trans('DeleteSection'), $langs->trans('ConfirmDeleteSection',$relativepathwithoutslash), 'confirm_deletedir', '', 1, 1);
-	
+
 }
 
 $formfile=new FormFile($db);
diff --git a/htdocs/ecm/index.php b/htdocs/ecm/index.php
index 28913f9aa11..bc2b781d2dc 100644
--- a/htdocs/ecm/index.php
+++ b/htdocs/ecm/index.php
@@ -110,7 +110,7 @@ if (GETPOST("sendit") && ! empty($conf->global->MAIN_UPLOAD_DOC))
 
 	if (! $error)
 	{
-	    $res = dol_add_file_process($upload_dir, 0, 1, 'userfile', '', '', '');
+	    $res = dol_add_file_process($upload_dir, 0, 1, 'userfile', '', '', '', 0);
 	    if ($res > 0)
 	    {
 	       $result=$ecmdir->changeNbOfFiles('+');
@@ -430,7 +430,7 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i',$acti
 
 	// Manual section
 	$htmltooltip=$langs->trans("ECMAreaDesc2");
-	
+
     if (! empty($conf->use_javascript_ajax) && empty($conf->global->MAIN_ECM_DISABLE_JS))
     {
         print '<tr><td colspan="6">';
-- 
GitLab


From 33d6903d3fe794f4be0034ebae3b5cf8816c0bf7 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Wed, 2 Aug 2017 11:39:11 +0200
Subject: [PATCH 10/27] Fix bad recipient when using mass actions

---
 htdocs/core/actions_massactions.inc.php | 91 +++++++++++++++++--------
 htdocs/langs/en_US/errors.lang          |  1 +
 2 files changed, 62 insertions(+), 30 deletions(-)

diff --git a/htdocs/core/actions_massactions.inc.php b/htdocs/core/actions_massactions.inc.php
index 5313b79dc04..0d4a6c6d80c 100644
--- a/htdocs/core/actions_massactions.inc.php
+++ b/htdocs/core/actions_massactions.inc.php
@@ -90,6 +90,8 @@ if (! $error && $massaction == 'confirm_presend')
         }
         //var_dump($listofobjectthirdparties);exit;
 
+
+        // Loop on each thirdparty
         foreach ($listofobjectthirdparties as $thirdpartyid)
         {
             $result = $thirdparty->fetch($thirdpartyid);
@@ -99,62 +101,90 @@ if (! $error && $massaction == 'confirm_presend')
                 exit;
             }
 
-            // Define recipient $sendto and $sendtocc
+            $sendto='';
+            $sendtocc='';
+            $sendtobcc='';
+            $sendtoid = array();
+
+            // Define $sendto
+            $receiver=$_POST['receiver'];
+            if (! is_array($receiver))
+            {
+            	if ($receiver == '-1') $receiver=array();
+            	else $receiver=array($receiver);
+            }
+            $tmparray=array();
             if (trim($_POST['sendto']))
             {
-                // Recipient is provided into free text
-                $sendto = trim($_POST['sendto']);
-                $sendtoid = 0;
+            	// Recipients are provided into free text
+            	$tmparray[] = trim($_POST['sendto']);
             }
-            elseif ($_POST['receiver'] != '-1')
+            if (count($receiver)>0)
             {
-                // Recipient was provided from combo list
-                if ($_POST['receiver'] == 'thirdparty') // Id of third party
-                {
-                    $sendto = $thirdparty->email;
-                    $sendtoid = 0;
-                }
-                else	// Id du contact
-                {
-                    $sendto = $thirdparty->contact_get_property((int) $_POST['receiver'],'email');
-                    $sendtoid = $_POST['receiver'];
-                }
+            	foreach($receiver as $key=>$val)
+            	{
+            		// Recipient was provided from combo list
+            		if ($val == 'thirdparty') // Id of third party
+            		{
+            			$tmparray[] = $thirdparty->name.' <'.$thirdparty->email.'>';
+            		}
+            		elseif ($val)	// Id du contact
+            		{
+            			$tmparray[] = $thirdparty->contact_get_property((int) $val,'email');
+            			$sendtoid[] = $val;
+            		}
+            	}
             }
+            $sendto=implode(',',$tmparray);
+
+            // Define $sendtocc
+            $receivercc=$_POST['receivercc'];
+            if (! is_array($receivercc))
+            {
+            	if ($receivercc == '-1') $receivercc=array();
+            	else $receivercc=array($receivercc);
+            }
+            $tmparray=array();
             if (trim($_POST['sendtocc']))
             {
-                $sendtocc = trim($_POST['sendtocc']);
+            	$tmparray[] = trim($_POST['sendtocc']);
             }
-            elseif ($_POST['receivercc'] != '-1')
+            if (count($receivercc) > 0)
             {
-                // Recipient was provided from combo list
-                if ($_POST['receivercc'] == 'thirdparty')	// Id of third party
-                {
-                    $sendtocc = $thirdparty->email;
-                }
-                else	// Id du contact
-                {
-                    $sendtocc = $thirdparty->contact_get_property((int) $_POST['receivercc'],'email');
-                }
+            	foreach($receivercc as $key=>$val)
+            	{
+            		// Recipient was provided from combo list
+            		if ($val == 'thirdparty') // Id of third party
+            		{
+            			$tmparray[] = $thirdparty->name.' <'.$thirdparty->email.'>';
+            		}
+            		elseif ($val)	// Id du contact
+            		{
+            			$tmparray[] = $thirdparty->contact_get_property((int) $val,'email');
+            			//$sendtoid[] = $val;  TODO Add also id of contact in CC ?
+            		}
+            	}
             }
+            $sendtocc=implode(',',$tmparray);
 
-            //var_dump($listofobjectref[$thirdpartyid]);	// Array of invoice for this thirdparty
-
+            //var_dump($listofobjectref);exit;
             $attachedfiles=array('paths'=>array(), 'names'=>array(), 'mimes'=>array());
             $listofqualifiedinvoice=array();
             $listofqualifiedref=array();
             foreach($listofobjectref[$thirdpartyid] as $objectid => $object)
             {
-                //var_dump($object);
                 //var_dump($thirdpartyid.' - '.$objectid.' - '.$object->statut);
 
                 if ($objectclass == 'Facture' && $object->statut != Facture::STATUS_VALIDATED)
                 {
+                	$langs->load("errors");
                     $nbignored++;
                     $resaction.='<div class="error">'.$langs->trans('ErrorOnlyInvoiceValidatedCanBeSentInMassAction',$object->ref).'</div><br>';
                     continue; // Payment done or started or canceled
                 }
                 if ($objectclass == 'Commande' && $object->statut == Commande::STATUS_DRAFT)
                 {
+                	$langs->load("errors");
                     $nbignored++;
                     $resaction.='<div class="error">'.$langs->trans('ErrorOnlyOrderNotDraftCanBeSentInMassAction',$object->ref).'</div><br>';
                     continue;
@@ -208,6 +238,7 @@ if (! $error && $massaction == 'confirm_presend')
                 //var_dump($listofqualifiedref);
             }
 
+            // Loop on each qualified invoice of the thirdparty
             if (count($listofqualifiedinvoice) > 0)
             {
                 $langs->load("commercial");
diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang
index ac982973ef3..b03b8ad37bb 100644
--- a/htdocs/langs/en_US/errors.lang
+++ b/htdocs/langs/en_US/errors.lang
@@ -194,6 +194,7 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. 
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Only validated invoices can be sent using the "Send by email" mass action. 
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.  
-- 
GitLab


From 5b1f5b0f20271d49791516e70c9494dd9f3e1651 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Wed, 2 Aug 2017 13:31:53 +0200
Subject: [PATCH 11/27] Fix translation done twice into field title of array

---
 htdocs/accountancy/admin/productaccount.php   | 14 ++--
 htdocs/accountancy/bookkeeping/balance.php    | 10 +--
 htdocs/accountancy/bookkeeping/card.php       | 14 ++--
 htdocs/accountancy/bookkeeping/list.php       | 18 ++---
 .../accountancy/bookkeeping/listbyaccount.php | 16 ++--
 htdocs/accountancy/bookkeeping/listbyyear.php | 26 +++---
 .../bookkeeping/thirdparty_lettrage.php       | 22 ++---
 .../thirdparty_lettrage_supplier.php          | 22 ++---
 htdocs/accountancy/customer/lines.php         | 22 ++---
 htdocs/accountancy/customer/list.php          | 20 ++---
 htdocs/accountancy/expensereport/lines.php    | 16 ++--
 htdocs/accountancy/expensereport/list.php     | 18 ++---
 htdocs/accountancy/supplier/lines.php         | 24 +++---
 htdocs/accountancy/supplier/list.php          | 22 ++---
 htdocs/adherents/list.php                     |  6 +-
 htdocs/adherents/subscription/list.php        | 42 +++++-----
 htdocs/adherents/type.php                     | 14 ++--
 htdocs/admin/defaultvalues.php                |  2 +-
 htdocs/admin/tools/listevents.php             | 10 +--
 htdocs/admin/tools/listsessions.php           | 14 ++--
 htdocs/admin/translation.php                  | 16 ++--
 htdocs/bookmarks/list.php                     | 22 ++---
 htdocs/comm/action/listactions.php            | 20 ++---
 htdocs/comm/contact.php                       | 18 ++---
 htdocs/comm/mailing/cibles.php                | 56 ++++++-------
 htdocs/comm/mailing/list.php                  | 26 +++---
 htdocs/comm/propal/list.php                   |  2 +-
 htdocs/commande/customer.php                  | 14 ++--
 htdocs/commande/list.php                      |  2 +-
 htdocs/commande/orderstoinvoice.php           | 12 +--
 htdocs/compta/bank/bankentries.php            |  2 +-
 htdocs/compta/bank/index.php                  |  2 +-
 htdocs/compta/bank/various_payment/index.php  | 14 ++--
 htdocs/compta/charges/index.php               | 80 +++++++++----------
 htdocs/compta/clients.php                     | 14 ++--
 htdocs/compta/deplacement/list.php            | 14 ++--
 htdocs/compta/facture/list.php                |  2 +-
 htdocs/compta/paiement.php                    |  8 +-
 htdocs/compta/paiement/avalider.php           | 10 +--
 htdocs/compta/paiement/cheque/card.php        | 48 +++++------
 htdocs/compta/paiement/cheque/list.php        | 12 +--
 htdocs/compta/paiement/list.php               | 34 ++++----
 htdocs/compta/prelevement/bons.php            |  6 +-
 htdocs/compta/prelevement/card.php            |  8 +-
 htdocs/compta/prelevement/demandes.php        | 14 ++--
 htdocs/compta/prelevement/factures.php        | 24 +++---
 htdocs/compta/prelevement/list.php            | 14 ++--
 htdocs/compta/prelevement/rejets.php          |  8 +-
 htdocs/compta/resultat/clientfourn.php        | 24 +++---
 htdocs/compta/salaries/index.php              | 14 ++--
 htdocs/compta/sociales/index.php              | 24 +++---
 htdocs/compta/sociales/payments.php           | 62 +++++++-------
 htdocs/compta/tva/reglement.php               | 24 +++---
 htdocs/contact/list.php                       | 34 ++++----
 htdocs/contrat/list.php                       |  2 +-
 htdocs/contrat/services.php                   |  2 +-
 htdocs/core/class/html.formactions.class.php  | 10 +--
 htdocs/core/class/html.formfile.class.php     |  8 +-
 htdocs/core/lib/company.lib.php               |  8 +-
 htdocs/core/lib/project.lib.php               | 14 ++--
 htdocs/cron/list.php                          | 26 +++---
 htdocs/don/list.php                           | 20 ++---
 htdocs/expedition/list.php                    |  2 +-
 htdocs/expensereport/list.php                 |  2 +-
 htdocs/fichinter/list.php                     | 18 ++---
 htdocs/fourn/commande/list.php                |  2 +-
 htdocs/fourn/commande/orderstoinvoice.php     | 12 +--
 htdocs/fourn/contact.php                      | 12 +--
 htdocs/fourn/facture/impayees.php             | 20 ++---
 htdocs/fourn/facture/list.php                 |  2 +-
 htdocs/fourn/facture/paiement.php             | 16 ++--
 htdocs/fourn/product/list.php                 | 14 ++--
 htdocs/holiday/define_holiday.php             |  4 +-
 htdocs/holiday/list.php                       | 18 ++---
 htdocs/holiday/view_log.php                   | 16 ++--
 htdocs/hrm/admin/admin_establishment.php      | 18 ++---
 htdocs/langs/en_US/members.lang               |  1 +
 htdocs/loan/index.php                         | 16 ++--
 htdocs/margin/agentMargins.php                | 16 ++--
 htdocs/margin/checkMargins.php                | 14 ++--
 htdocs/margin/customerMargins.php             | 18 ++---
 htdocs/margin/productMargins.php              | 18 ++---
 htdocs/margin/tabs/productMargins.php         | 42 +++++-----
 htdocs/margin/tabs/thirdpartyMargins.php      | 36 ++++-----
 htdocs/opensurvey/list.php                    | 14 ++--
 htdocs/product/fournisseurs.php               | 23 +++---
 htdocs/product/list.php                       |  2 +-
 htdocs/product/popuprop.php                   | 12 +--
 htdocs/product/reassort.php                   | 54 ++++++-------
 htdocs/product/reassortlot.php                | 24 +++---
 htdocs/product/stats/commande.php             | 14 ++--
 htdocs/product/stats/commande_fournisseur.php | 14 ++--
 htdocs/product/stats/contrat.php              | 10 +--
 htdocs/product/stats/facture.php              | 14 ++--
 htdocs/product/stats/facture_fournisseur.php  | 14 ++--
 htdocs/product/stats/propal.php               | 12 +--
 htdocs/product/stock/card.php                 | 14 ++--
 htdocs/product/stock/list.php                 | 30 +++----
 htdocs/product/stock/mouvement.php            |  6 +-
 htdocs/product/stock/productlot_list.php      |  4 +-
 htdocs/product/stock/replenish.php            | 22 ++---
 htdocs/product/stock/replenishorders.php      | 14 ++--
 htdocs/product/stock/valo.php                 | 14 ++--
 htdocs/projet/index.php                       |  4 +-
 htdocs/projet/list.php                        |  2 +-
 htdocs/projet/tasks/list.php                  |  2 +-
 htdocs/projet/tasks/time.php                  |  2 +-
 htdocs/public/members/public_list.php         | 12 +--
 htdocs/resource/list.php                      |  2 +-
 htdocs/societe/consumption.php                | 24 +++---
 htdocs/societe/list.php                       |  2 +-
 htdocs/societe/notify/card.php                | 22 ++---
 htdocs/societe/notify/index.php               |  8 +-
 htdocs/societe/rib.php                        | 16 ++--
 htdocs/societe/societecontact.php             | 16 ++--
 htdocs/supplier_proposal/list.php             |  2 +-
 htdocs/user/group/index.php                   |  8 +-
 htdocs/user/hierarchy.php                     |  4 +-
 htdocs/user/index.php                         | 32 ++++----
 htdocs/user/notify/card.php                   | 68 ++++++++--------
 test/phpunit/CodingPhpTest.php                | 14 ++++
 121 files changed, 1004 insertions(+), 990 deletions(-)

diff --git a/htdocs/accountancy/admin/productaccount.php b/htdocs/accountancy/admin/productaccount.php
index c72ce8cc134..85784ec16d7 100644
--- a/htdocs/accountancy/admin/productaccount.php
+++ b/htdocs/accountancy/admin/productaccount.php
@@ -336,17 +336,17 @@ if ($result)
 	print '</tr>';
 
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Label"), $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder);
-    if (! empty($conf->global->ACCOUNTANCY_SHOW_PROD_DESC)) print_liste_field_titre($langs->trans("Description"), $_SERVER["PHP_SELF"], "p.description", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("OnSell"), $_SERVER["PHP_SELF"], "p.tosell", "", $param, 'align="center"', $sortfield, $sortorder);
-   	print_liste_field_titre($langs->trans("OnBuy"), $_SERVER["PHP_SELF"], "p.tobuy", "", $param, 'align="center"', $sortfield, $sortorder);
+	print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Label", $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder);
+    if (! empty($conf->global->ACCOUNTANCY_SHOW_PROD_DESC)) print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "p.description", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("OnSell", $_SERVER["PHP_SELF"], "p.tosell", "", $param, 'align="center"', $sortfield, $sortorder);
+   	print_liste_field_titre("OnBuy", $_SERVER["PHP_SELF"], "p.tobuy", "", $param, 'align="center"', $sortfield, $sortorder);
    	if ($accounting_product_mode == 'ACCOUNTANCY_BUY') {
    	    $fieldtosortaccount="p.accountancy_code_buy";
    	}
    	else $fieldtosortaccount="p.accountancy_code_sell";
-   	print_liste_field_titre($langs->trans("CurrentDedicatedAccountingAccount"), $_SERVER["PHP_SELF"], $fieldtosortaccount, "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("AssignDedicatedAccountingAccount"));
+   	print_liste_field_titre("CurrentDedicatedAccountingAccount", $_SERVER["PHP_SELF"], $fieldtosortaccount, "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("AssignDedicatedAccountingAccount");
 	$clickpitco=$form->showCheckAddButtons('checkforselect', 1);
 	print_liste_field_titre($clickpitco, '', '', '', '', 'align="center"');
 	print '</tr>';
diff --git a/htdocs/accountancy/bookkeeping/balance.php b/htdocs/accountancy/bookkeeping/balance.php
index fb503c17ca0..50f9e18fd80 100644
--- a/htdocs/accountancy/bookkeeping/balance.php
+++ b/htdocs/accountancy/bookkeeping/balance.php
@@ -195,11 +195,11 @@ else {
 	print '</tr>';
 
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("AccountAccounting"), $_SERVER['PHP_SELF'], "t.numero_compte", "", $options, "", $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Label"), $_SERVER['PHP_SELF'], "t.label_operation", "", $options, "", $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Debit"), $_SERVER['PHP_SELF'], "t.debit", "", $options, 'align="right"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Credit"), $_SERVER['PHP_SELF'], "t.credit", "", $options, 'align="right"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Solde"), $_SERVER["PHP_SELF"], "", $options, "", 'align="right"', $sortfield, $sortorder);
+	print_liste_field_titre("AccountAccounting", $_SERVER['PHP_SELF'], "t.numero_compte", "", $options, "", $sortfield, $sortorder);
+	print_liste_field_titre("Label", $_SERVER['PHP_SELF'], "t.label_operation", "", $options, "", $sortfield, $sortorder);
+	print_liste_field_titre("Debit", $_SERVER['PHP_SELF'], "t.debit", "", $options, 'align="right"', $sortfield, $sortorder);
+	print_liste_field_titre("Credit", $_SERVER['PHP_SELF'], "t.credit", "", $options, 'align="right"', $sortfield, $sortorder);
+	print_liste_field_titre("Solde", $_SERVER["PHP_SELF"], "", $options, "", 'align="right"', $sortfield, $sortorder);
 	print_liste_field_titre('', $_SERVER["PHP_SELF"], "", $options, "", 'width="60" align="center"', $sortfield, $sortorder);
 	print "</tr>\n";
 
diff --git a/htdocs/accountancy/bookkeeping/card.php b/htdocs/accountancy/bookkeeping/card.php
index d05dc11ed26..d3252b01a18 100644
--- a/htdocs/accountancy/bookkeeping/card.php
+++ b/htdocs/accountancy/bookkeeping/card.php
@@ -567,13 +567,13 @@ if ($action == 'create') {
 
 				print '<tr class="liste_titre">';
 
-				print_liste_field_titre($langs->trans("AccountAccountingShort"));
-				print_liste_field_titre($langs->trans("SubledgerAccount"));
-				print_liste_field_titre($langs->trans("Labelcompte"));
-				print_liste_field_titre($langs->trans("Label"));
-				print_liste_field_titre($langs->trans("Debit"), "", "", "", "", 'align="right"');
-				print_liste_field_titre($langs->trans("Credit"), "", "", "", "", 'align="right"');
-				print_liste_field_titre($langs->trans("Action"), "", "", "", "", 'width="60" align="center"');
+				print_liste_field_titre("AccountAccountingShort");
+				print_liste_field_titre("SubledgerAccount");
+				print_liste_field_titre("Labelcompte");
+				print_liste_field_titre("Label");
+				print_liste_field_titre("Debit", "", "", "", "", 'align="right"');
+				print_liste_field_titre("Credit", "", "", "", "", 'align="right"');
+				print_liste_field_titre("Action", "", "", "", "", 'width="60" align="center"');
 
 				print "</tr>\n";
 
diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php
index 93968644a8f..3d6d7b7ad86 100644
--- a/htdocs/accountancy/bookkeeping/list.php
+++ b/htdocs/accountancy/bookkeeping/list.php
@@ -436,15 +436,15 @@ print '</td>';
 print '</tr>';
 
 print '<tr class="liste_titre">';
-print_liste_field_titre($langs->trans("TransactionNumShort"), $_SERVER['PHP_SELF'], "t.piece_num", "", $param, "", $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Docdate"), $_SERVER['PHP_SELF'], "t.doc_date", "", $param, 'align="center"', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Docref"), $_SERVER['PHP_SELF'], "t.doc_ref", "", $param, "", $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("AccountAccountingShort"), $_SERVER['PHP_SELF'], "t.numero_compte", "", $param, "", $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("SubledgerAccount"), $_SERVER['PHP_SELF'], "t.subledger_account", "", $param, "", $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Label"), $_SERVER['PHP_SELF'], "t.label_operation", "", $param, "", $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Debit"), $_SERVER['PHP_SELF'], "t.debit", "", $param, 'align="right"', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Credit"), $_SERVER['PHP_SELF'], "t.credit", "", $param, 'align="right"', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Codejournal"), $_SERVER['PHP_SELF'], "t.code_journal", "", $param, 'align="center"', $sortfield, $sortorder);
+print_liste_field_titre("TransactionNumShort", $_SERVER['PHP_SELF'], "t.piece_num", "", $param, "", $sortfield, $sortorder);
+print_liste_field_titre("Docdate", $_SERVER['PHP_SELF'], "t.doc_date", "", $param, 'align="center"', $sortfield, $sortorder);
+print_liste_field_titre("Docref", $_SERVER['PHP_SELF'], "t.doc_ref", "", $param, "", $sortfield, $sortorder);
+print_liste_field_titre("AccountAccountingShort", $_SERVER['PHP_SELF'], "t.numero_compte", "", $param, "", $sortfield, $sortorder);
+print_liste_field_titre("SubledgerAccount", $_SERVER['PHP_SELF'], "t.subledger_account", "", $param, "", $sortfield, $sortorder);
+print_liste_field_titre("Label", $_SERVER['PHP_SELF'], "t.label_operation", "", $param, "", $sortfield, $sortorder);
+print_liste_field_titre("Debit", $_SERVER['PHP_SELF'], "t.debit", "", $param, 'align="right"', $sortfield, $sortorder);
+print_liste_field_titre("Credit", $_SERVER['PHP_SELF'], "t.credit", "", $param, 'align="right"', $sortfield, $sortorder);
+print_liste_field_titre("Codejournal", $_SERVER['PHP_SELF'], "t.code_journal", "", $param, 'align="center"', $sortfield, $sortorder);
 $checkpicto='';
 if ($massactionbutton) $checkpicto=$form->showCheckAddButtons('checkforselect', 1);
 print_liste_field_titre($checkpicto, $_SERVER["PHP_SELF"], "", $param, "", 'width="60" align="center"', $sortfield, $sortorder);
diff --git a/htdocs/accountancy/bookkeeping/listbyaccount.php b/htdocs/accountancy/bookkeeping/listbyaccount.php
index 1f43964bd0a..2e125925860 100644
--- a/htdocs/accountancy/bookkeeping/listbyaccount.php
+++ b/htdocs/accountancy/bookkeeping/listbyaccount.php
@@ -244,14 +244,14 @@ print $searchpicto;
 print '</td>';
 
 print '<tr class="liste_titre">';
-print_liste_field_titre($langs->trans("AccountAccountingShort"), $_SERVER['PHP_SELF']);
-print_liste_field_titre($langs->trans("TransactionNumShort"), $_SERVER['PHP_SELF'], "t.piece_num", "", $options, 'align="right"', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Docdate"), $_SERVER['PHP_SELF'], "t.doc_date", "", $options, 'align="center"', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Docref"), $_SERVER['PHP_SELF'], "t.doc_ref", "", $options, "", $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Label"));
-print_liste_field_titre($langs->trans("Debit"), $_SERVER['PHP_SELF'], "t.debit", "", $options, 'align="right"', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Credit"), $_SERVER['PHP_SELF'], "t.credit", "", $options, 'align="right"', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Codejournal"), $_SERVER['PHP_SELF'], "t.code_journal", "", $options, 'align="center"', $sortfield, $sortorder);
+print_liste_field_titre("AccountAccountingShort", $_SERVER['PHP_SELF']);
+print_liste_field_titre("TransactionNumShort", $_SERVER['PHP_SELF'], "t.piece_num", "", $options, 'align="right"', $sortfield, $sortorder);
+print_liste_field_titre("Docdate", $_SERVER['PHP_SELF'], "t.doc_date", "", $options, 'align="center"', $sortfield, $sortorder);
+print_liste_field_titre("Docref", $_SERVER['PHP_SELF'], "t.doc_ref", "", $options, "", $sortfield, $sortorder);
+print_liste_field_titre("Label");
+print_liste_field_titre("Debit", $_SERVER['PHP_SELF'], "t.debit", "", $options, 'align="right"', $sortfield, $sortorder);
+print_liste_field_titre("Credit", $_SERVER['PHP_SELF'], "t.credit", "", $options, 'align="right"', $sortfield, $sortorder);
+print_liste_field_titre("Codejournal", $_SERVER['PHP_SELF'], "t.code_journal", "", $options, 'align="center"', $sortfield, $sortorder);
 print_liste_field_titre('', $_SERVER["PHP_SELF"], "", $options, "", 'width="60" align="center"', $sortfield, $sortorder);
 print "</tr>\n";
 
diff --git a/htdocs/accountancy/bookkeeping/listbyyear.php b/htdocs/accountancy/bookkeeping/listbyyear.php
index d10f621d9e3..bf7578bb752 100644
--- a/htdocs/accountancy/bookkeeping/listbyyear.php
+++ b/htdocs/accountancy/bookkeeping/listbyyear.php
@@ -201,19 +201,19 @@ print '</div>';
 print "<table class=\"noborder\" width=\"100%\">";
 
 print '<tr class="liste_titre">';
-print_liste_field_titre($langs->trans("NumPiece"), $_SERVER['PHP_SELF'], "t.piece_num", "", $options, "", $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Doctype"), $_SERVER['PHP_SELF'], "t.doc_type", "", $options, "", $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Date"), $_SERVER['PHP_SELF'], "t.doc_date", "", $options, 'align="center"', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Docref"), $_SERVER['PHP_SELF'], "t.doc_ref", "", $options, "", $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("AccountAccounting"), $_SERVER['PHP_SELF'], "t.numero_compte", "", $options, "", $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("ThirdPartyAccount"), $_SERVER['PHP_SELF'], "t.subledger_account", "", $options, "", $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Label"), $_SERVER['PHP_SELF'], "t.label_operation", "", $options, "", $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Debit"), $_SERVER['PHP_SELF'], "t.debit", "", $options, "", $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Credit"), $_SERVER['PHP_SELF'], "t.credit", "", $options, 'align="center"', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Amount"), $_SERVER['PHP_SELF'], "t.montant", "", $options, 'align="center"', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Sens"), $_SERVER['PHP_SELF'], "t.sens", "", $options, 'align="center"', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Codejournal"), $_SERVER['PHP_SELF'], "t.code_journal", "", $options, 'align="center"', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Action"), $_SERVER["PHP_SELF"], "", $options, "", 'width="60" align="center"', $sortfield, $sortorder);
+print_liste_field_titre("NumPiece", $_SERVER['PHP_SELF'], "t.piece_num", "", $options, "", $sortfield, $sortorder);
+print_liste_field_titre("Doctype", $_SERVER['PHP_SELF'], "t.doc_type", "", $options, "", $sortfield, $sortorder);
+print_liste_field_titre("Date", $_SERVER['PHP_SELF'], "t.doc_date", "", $options, 'align="center"', $sortfield, $sortorder);
+print_liste_field_titre("Docref", $_SERVER['PHP_SELF'], "t.doc_ref", "", $options, "", $sortfield, $sortorder);
+print_liste_field_titre("AccountAccounting", $_SERVER['PHP_SELF'], "t.numero_compte", "", $options, "", $sortfield, $sortorder);
+print_liste_field_titre("ThirdPartyAccount", $_SERVER['PHP_SELF'], "t.subledger_account", "", $options, "", $sortfield, $sortorder);
+print_liste_field_titre("Label", $_SERVER['PHP_SELF'], "t.label_operation", "", $options, "", $sortfield, $sortorder);
+print_liste_field_titre("Debit", $_SERVER['PHP_SELF'], "t.debit", "", $options, "", $sortfield, $sortorder);
+print_liste_field_titre("Credit", $_SERVER['PHP_SELF'], "t.credit", "", $options, 'align="center"', $sortfield, $sortorder);
+print_liste_field_titre("Amount", $_SERVER['PHP_SELF'], "t.montant", "", $options, 'align="center"', $sortfield, $sortorder);
+print_liste_field_titre("Sens", $_SERVER['PHP_SELF'], "t.sens", "", $options, 'align="center"', $sortfield, $sortorder);
+print_liste_field_titre("Codejournal", $_SERVER['PHP_SELF'], "t.code_journal", "", $options, 'align="center"', $sortfield, $sortorder);
+print_liste_field_titre("Action", $_SERVER["PHP_SELF"], "", $options, "", 'width="60" align="center"', $sortfield, $sortorder);
 print "</tr>\n";
 
 print '<tr class="liste_titre">';
diff --git a/htdocs/accountancy/bookkeeping/thirdparty_lettrage.php b/htdocs/accountancy/bookkeeping/thirdparty_lettrage.php
index cddeff27651..9ffffb4d1ed 100644
--- a/htdocs/accountancy/bookkeeping/thirdparty_lettrage.php
+++ b/htdocs/accountancy/bookkeeping/thirdparty_lettrage.php
@@ -191,17 +191,17 @@ llxHeader ( '', 'Compta - Grand Livre' );
 		print "<table class=\"noborder\" width=\"100%\">";
 		print '<tr class="liste_titre">';
 			print '<td></td>';
-		print_liste_field_titre ( $langs->trans ( "Doctype" ), "liste.php", "bk.doc_type" );
-		print_liste_field_titre ( $langs->trans ( "Docdate" ), "liste.php", "bk.doc_date" );
-		print_liste_field_titre ( $langs->trans ( "Docref" ), "liste.php", "bk.doc_ref" );
-// 		print_liste_field_titre ( $langs->trans ( "Numerocompte" ), "liste.php", "bk.numero_compte" );
-// 		print_liste_field_titre ( $langs->trans ( "Code_tiers" ), "liste.php", "bk.code_tiers" );
-		print_liste_field_titre ( $langs->trans ( "Labelcompte" ), "liste.php", "bk_label_compte" );
-		print_liste_field_titre ( $langs->trans ( "Debit" ), "liste.php", "bk.debit" );
-		print_liste_field_titre ( $langs->trans ( "Credit" ), "liste.php", "bk.credit" );
-//		print_liste_field_titre ( $langs->trans ( "Amount" ), "liste.php", "bk.montant" );
-//		print_liste_field_titre ( $langs->trans ( "Sens" ), "liste.php", "bk.sens" );
-		print_liste_field_titre ( $langs->trans ( "Codejournal" ), "liste.php", "bk.code_journal" );
+		print_liste_field_titre("Doctype", "liste.php", "bk.doc_type" );
+		print_liste_field_titre("Docdate", "liste.php", "bk.doc_date" );
+		print_liste_field_titre("Docref", "liste.php", "bk.doc_ref" );
+// 		print_liste_field_titre("Numerocompte", "liste.php", "bk.numero_compte" );
+// 		print_liste_field_titre("Code_tiers", "liste.php", "bk.code_tiers" );
+		print_liste_field_titre("Labelcompte", "liste.php", "bk_label_compte" );
+		print_liste_field_titre("Debit", "liste.php", "bk.debit" );
+		print_liste_field_titre("Credit", "liste.php", "bk.credit" );
+//		print_liste_field_titre("Amount", "liste.php", "bk.montant" );
+//		print_liste_field_titre("Sens", "liste.php", "bk.sens" );
+		print_liste_field_titre("Codejournal", "liste.php", "bk.code_journal" );
 		print '<td></td>';
 		print '<td></td>';
 		print "</tr>\n";
diff --git a/htdocs/accountancy/bookkeeping/thirdparty_lettrage_supplier.php b/htdocs/accountancy/bookkeeping/thirdparty_lettrage_supplier.php
index 7dfb7067a31..05315fe13ad 100644
--- a/htdocs/accountancy/bookkeeping/thirdparty_lettrage_supplier.php
+++ b/htdocs/accountancy/bookkeeping/thirdparty_lettrage_supplier.php
@@ -200,17 +200,17 @@ llxHeader ( '', 'Compta - Grand Livre' );
 		print "<table class=\"noborder\" width=\"100%\">";
 		print '<tr class="liste_titre">';
 			print '<td></td>';
-		print_liste_field_titre ( $langs->trans ( "Doctype" ), "liste.php", "bk.doc_type" );
-		print_liste_field_titre ( $langs->trans ( "Docdate" ), "liste.php", "bk.doc_date" );
-		print_liste_field_titre ( $langs->trans ( "Docref" ), "liste.php", "bk.doc_ref" );
-// 		print_liste_field_titre ( $langs->trans ( "Numerocompte" ), "liste.php", "bk.numero_compte" );
-// 		print_liste_field_titre ( $langs->trans ( "Code_tiers" ), "liste.php", "bk.code_tiers" );
-		print_liste_field_titre ( $langs->trans ( "Labelcompte" ), "liste.php", "bk_label_compte" );
-		print_liste_field_titre ( $langs->trans ( "Debit" ), "liste.php", "bk.debit" );
-		print_liste_field_titre ( $langs->trans ( "Credit" ), "liste.php", "bk.credit" );
-		print_liste_field_titre ( $langs->trans ( "Amount" ), "liste.php", "bk.montant" );
-		print_liste_field_titre ( $langs->trans ( "Sens" ), "liste.php", "bk.sens" );
-		print_liste_field_titre ( $langs->trans ( "Codejournal" ), "liste.php", "bk.code_journal" );
+		print_liste_field_titre("Doctype", "liste.php", "bk.doc_type" );
+		print_liste_field_titre("Docdate", "liste.php", "bk.doc_date" );
+		print_liste_field_titre("Docref", "liste.php", "bk.doc_ref" );
+// 		print_liste_field_titre("Numerocompte", "liste.php", "bk.numero_compte" );
+// 		print_liste_field_titre("Code_tiers", "liste.php", "bk.code_tiers" );
+		print_liste_field_titre("Labelcompte", "liste.php", "bk_label_compte" );
+		print_liste_field_titre("Debit", "liste.php", "bk.debit" );
+		print_liste_field_titre("Credit", "liste.php", "bk.credit" );
+		print_liste_field_titre("Amount", "liste.php", "bk.montant" );
+		print_liste_field_titre("Sens", "liste.php", "bk.sens" );
+		print_liste_field_titre("Codejournal", "liste.php", "bk.code_journal" );
 		print '<td></td>';
 		print '<td></td>';
 		print "</tr>\n";
diff --git a/htdocs/accountancy/customer/lines.php b/htdocs/accountancy/customer/lines.php
index d48f81259df..9012257adee 100644
--- a/htdocs/accountancy/customer/lines.php
+++ b/htdocs/accountancy/customer/lines.php
@@ -280,17 +280,17 @@ if ($result) {
 	print "</td></tr>\n";
 
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("LineId"), $_SERVER["PHP_SELF"], "fd.rowid", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Invoice"), $_SERVER["PHP_SELF"], "f.facnumber", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Date"), $_SERVER["PHP_SELF"], "f.datef, f.facnumber, fd.rowid", "", $param, 'align="center"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("ProductRef"), $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder);
-	//print_liste_field_titre($langs->trans("ProductLabel"), $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Description"), $_SERVER["PHP_SELF"], "fd.description", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Amount"), $_SERVER["PHP_SELF"], "fd.total_ht", "", $param, 'align="right"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("VATRate"), $_SERVER["PHP_SELF"], "fd.tva_tx", "", $param, 'align="right"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Account"), $_SERVER["PHP_SELF"], "aa.account_number", "", $param, 'align="center"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Country"), $_SERVER["PHP_SELF"], "co.label", "", $param, 'align="center"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("VATIntra"), $_SERVER["PHP_SELF"], "s.tva_intra", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("LineId", $_SERVER["PHP_SELF"], "fd.rowid", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Invoice", $_SERVER["PHP_SELF"], "f.facnumber", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "f.datef, f.facnumber, fd.rowid", "", $param, 'align="center"', $sortfield, $sortorder);
+	print_liste_field_titre("ProductRef", $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder);
+	//print_liste_field_titre("ProductLabel", $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "fd.description", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "fd.total_ht", "", $param, 'align="right"', $sortfield, $sortorder);
+	print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], "fd.tva_tx", "", $param, 'align="right"', $sortfield, $sortorder);
+	print_liste_field_titre("Account", $_SERVER["PHP_SELF"], "aa.account_number", "", $param, 'align="center"', $sortfield, $sortorder);
+	print_liste_field_titre("Country", $_SERVER["PHP_SELF"], "co.label", "", $param, 'align="center"', $sortfield, $sortorder);
+	print_liste_field_titre("VATIntra", $_SERVER["PHP_SELF"], "s.tva_intra", "", $param, '', $sortfield, $sortorder);
 	$clickpicto=$form->showCheckAddButtons();
 	print_liste_field_titre($clickpicto, '', '', '', '', 'align="center"');
 	print "</tr>\n";
diff --git a/htdocs/accountancy/customer/list.php b/htdocs/accountancy/customer/list.php
index 4272dfaf115..5e78d735523 100644
--- a/htdocs/accountancy/customer/list.php
+++ b/htdocs/accountancy/customer/list.php
@@ -295,16 +295,16 @@ if ($result) {
 	print '</tr>';
 
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("LineId"), $_SERVER["PHP_SELF"], "l.rowid", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Invoice"), $_SERVER["PHP_SELF"], "f.facnumber", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Date"), $_SERVER["PHP_SELF"], "f.datef, f.facnumber, l.rowid", "", $param, 'align="center"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("ProductRef"), $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder);
-	//print_liste_field_titre($langs->trans("ProductLabel"), $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Description"), $_SERVER["PHP_SELF"], "l.description", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Amount"), $_SERVER["PHP_SELF"], "l.total_ht", "", $param, 'align="right"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("VATRate"), $_SERVER["PHP_SELF"], "l.tva_tx", "", $param, 'align="right"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("AccountAccountingSuggest"), '', '', '', '', 'align="center"');
-	print_liste_field_titre($langs->trans("IntoAccount"), '', '', '', '', 'align="center"');
+	print_liste_field_titre("LineId", $_SERVER["PHP_SELF"], "l.rowid", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Invoice", $_SERVER["PHP_SELF"], "f.facnumber", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "f.datef, f.facnumber, l.rowid", "", $param, 'align="center"', $sortfield, $sortorder);
+	print_liste_field_titre("ProductRef", $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder);
+	//print_liste_field_titre("ProductLabel", $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "l.description", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "l.total_ht", "", $param, 'align="right"', $sortfield, $sortorder);
+	print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], "l.tva_tx", "", $param, 'align="right"', $sortfield, $sortorder);
+	print_liste_field_titre("AccountAccountingSuggest", '', '', '', '', 'align="center"');
+	print_liste_field_titre("IntoAccount", '', '', '', '', 'align="center"');
 	$checkpicto='';
 	if ($massactionbutton) $checkpicto=$form->showCheckAddButtons('checkforselect', 1);
 	print_liste_field_titre($checkpicto, '', '', '', '', 'align="center"');
diff --git a/htdocs/accountancy/expensereport/lines.php b/htdocs/accountancy/expensereport/lines.php
index f115cbde2e4..156d80f09e4 100644
--- a/htdocs/accountancy/expensereport/lines.php
+++ b/htdocs/accountancy/expensereport/lines.php
@@ -251,14 +251,14 @@ if ($result) {
 	print "</tr>\n";
 
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("LineId"), $_SERVER["PHP_SELF"], "erd.rowid", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("ExpenseReport"), $_SERVER["PHP_SELF"], "er.ref", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Date"), $_SERVER["PHP_SELF"], "erd.date, erd.rowid", "", $param, 'align="center"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("TypeFees"), $_SERVER["PHP_SELF"], "f.label", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Description"), $_SERVER["PHP_SELF"], "erd.comments", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Amount"), $_SERVER["PHP_SELF"], "erd.total_ht", "", $param, 'align="right"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("VATRate"), $_SERVER["PHP_SELF"], "erd.tva_tx", "", $param, 'align="center"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Account"), $_SERVER["PHP_SELF"], "aa.account_number", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("LineId", $_SERVER["PHP_SELF"], "erd.rowid", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("ExpenseReport", $_SERVER["PHP_SELF"], "er.ref", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "erd.date, erd.rowid", "", $param, 'align="center"', $sortfield, $sortorder);
+	print_liste_field_titre("TypeFees", $_SERVER["PHP_SELF"], "f.label", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "erd.comments", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "erd.total_ht", "", $param, 'align="right"', $sortfield, $sortorder);
+	print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], "erd.tva_tx", "", $param, 'align="center"', $sortfield, $sortorder);
+	print_liste_field_titre("Account", $_SERVER["PHP_SELF"], "aa.account_number", "", $param, '', $sortfield, $sortorder);
 	print_liste_field_titre('');
     $checkpicto=$form->showCheckAddButtons();
 	print_liste_field_titre($checkpicto, '', '', '', '', 'align="center"');
diff --git a/htdocs/accountancy/expensereport/list.php b/htdocs/accountancy/expensereport/list.php
index 1c08deb51d2..09bb45df918 100644
--- a/htdocs/accountancy/expensereport/list.php
+++ b/htdocs/accountancy/expensereport/list.php
@@ -277,15 +277,15 @@ if ($result) {
 	print '</tr>';
 
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("LineId"), $_SERVER["PHP_SELF"], "erd.rowid", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("ExpenseReport"), $_SERVER["PHP_SELF"], "er.ref", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Date"), $_SERVER["PHP_SELF"], "erd.date, erd.rowid", "", $param, 'align="center"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("TypeFees"), $_SERVER["PHP_SELF"], "f.label", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Description"), $_SERVER["PHP_SELF"], "erd.comments", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Amount"), $_SERVER["PHP_SELF"], "erd.total_ht", "", $param, 'align="right"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("VATRate"), $_SERVER["PHP_SELF"], "erd.tva_tx", "", $param, 'align="right"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("AccountAccountingSuggest"), '', '', '', '', 'align="center"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("IntoAccount"), '', '', '', '', 'align="center"', $sortfield, $sortorder);
+	print_liste_field_titre("LineId", $_SERVER["PHP_SELF"], "erd.rowid", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("ExpenseReport", $_SERVER["PHP_SELF"], "er.ref", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "erd.date, erd.rowid", "", $param, 'align="center"', $sortfield, $sortorder);
+	print_liste_field_titre("TypeFees", $_SERVER["PHP_SELF"], "f.label", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "erd.comments", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "erd.total_ht", "", $param, 'align="right"', $sortfield, $sortorder);
+	print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], "erd.tva_tx", "", $param, 'align="right"', $sortfield, $sortorder);
+	print_liste_field_titre("AccountAccountingSuggest", '', '', '', '', 'align="center"', $sortfield, $sortorder);
+	print_liste_field_titre("IntoAccount", '', '', '', '', 'align="center"', $sortfield, $sortorder);
 	$checkpicto='';
 	if ($massactionbutton) $checkpicto=$form->showCheckAddButtons('checkforselect', 1);
 	print_liste_field_titre($checkpicto, '', '', '', '', 'align="center"');
diff --git a/htdocs/accountancy/supplier/lines.php b/htdocs/accountancy/supplier/lines.php
index 9ac7eae658f..66e6928da07 100644
--- a/htdocs/accountancy/supplier/lines.php
+++ b/htdocs/accountancy/supplier/lines.php
@@ -278,18 +278,18 @@ if ($result) {
 	print "</tr>\n";
 
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("LineId"), $_SERVER["PHP_SELF"], "l.rowid", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Invoice"), $_SERVER["PHP_SELF"], "f.ref", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("InvoiceLabel"), $_SERVER["PHP_SELF"], "f.libelle", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Date"), $_SERVER["PHP_SELF"], "f.datef, f.ref, l.rowid", "", $param, 'align="center"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("ProductRef"), $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder);
-	//print_liste_field_titre($langs->trans("ProductLabel"), $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Description"), $_SERVER["PHP_SELF"], "l.description", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Amount"), $_SERVER["PHP_SELF"], "l.total_ht", "", $param, 'align="right"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("VATRate"), $_SERVER["PHP_SELF"], "l.tva_tx", "", $param, 'align="right"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Account"), $_SERVER["PHP_SELF"], "aa.account_number", "", $param, 'align="center"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Country"), $_SERVER["PHP_SELF"], "co.label", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("VATIntra"), $_SERVER["PHP_SELF"], "s.tva_intra", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("LineId", $_SERVER["PHP_SELF"], "l.rowid", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Invoice", $_SERVER["PHP_SELF"], "f.ref", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("InvoiceLabel", $_SERVER["PHP_SELF"], "f.libelle", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "f.datef, f.ref, l.rowid", "", $param, 'align="center"', $sortfield, $sortorder);
+	print_liste_field_titre("ProductRef", $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder);
+	//print_liste_field_titre("ProductLabel", $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "l.description", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "l.total_ht", "", $param, 'align="right"', $sortfield, $sortorder);
+	print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], "l.tva_tx", "", $param, 'align="right"', $sortfield, $sortorder);
+	print_liste_field_titre("Account", $_SERVER["PHP_SELF"], "aa.account_number", "", $param, 'align="center"', $sortfield, $sortorder);
+	print_liste_field_titre("Country", $_SERVER["PHP_SELF"], "co.label", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("VATIntra", $_SERVER["PHP_SELF"], "s.tva_intra", "", $param, '', $sortfield, $sortorder);
     $checkpicto=$form->showCheckAddButtons();
 	print_liste_field_titre($checkpicto, '', '', '', '', 'align="center"');
 	print "</tr>\n";
diff --git a/htdocs/accountancy/supplier/list.php b/htdocs/accountancy/supplier/list.php
index 2eac6fdd6df..84c341400d7 100644
--- a/htdocs/accountancy/supplier/list.php
+++ b/htdocs/accountancy/supplier/list.php
@@ -294,17 +294,17 @@ if ($result) {
 	print '</tr>';
 
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("LineId"), $_SERVER["PHP_SELF"], "l.rowid", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Invoice"), $_SERVER["PHP_SELF"], "f.ref", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("InvoiceLabel"), $_SERVER["PHP_SELF"], "f.libelle", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Date"), $_SERVER["PHP_SELF"], "f.datef, f.ref, l.rowid", "", $param, 'align="center"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("ProductRef"), $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder);
-	//print_liste_field_titre($langs->trans("ProductLabel"), $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Description"), $_SERVER["PHP_SELF"], "l.description", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Amount"), $_SERVER["PHP_SELF"], "l.total_ht", "", $param, 'align="right"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("VATRate"), $_SERVER["PHP_SELF"], "l.tva_tx", "", $param, 'align="right"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("AccountAccountingSuggest"), '', '', '', '', 'align="center"');
-	print_liste_field_titre($langs->trans("IntoAccount"), '', '', '', '', 'align="center"');
+	print_liste_field_titre("LineId", $_SERVER["PHP_SELF"], "l.rowid", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Invoice", $_SERVER["PHP_SELF"], "f.ref", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("InvoiceLabel", $_SERVER["PHP_SELF"], "f.libelle", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "f.datef, f.ref, l.rowid", "", $param, 'align="center"', $sortfield, $sortorder);
+	print_liste_field_titre("ProductRef", $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder);
+	//print_liste_field_titre("ProductLabel", $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "l.description", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "l.total_ht", "", $param, 'align="right"', $sortfield, $sortorder);
+	print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], "l.tva_tx", "", $param, 'align="right"', $sortfield, $sortorder);
+	print_liste_field_titre("AccountAccountingSuggest", '', '', '', '', 'align="center"');
+	print_liste_field_titre("IntoAccount", '', '', '', '', 'align="center"');
 	$checkpicto='';
 	if ($massactionbutton) $checkpicto=$form->showCheckAddButtons('checkforselect', 1);
 	print_liste_field_titre($checkpicto, '', '', '', '', 'align="center"');
diff --git a/htdocs/adherents/list.php b/htdocs/adherents/list.php
index bfa92cafa7b..f2f7aacbf52 100644
--- a/htdocs/adherents/list.php
+++ b/htdocs/adherents/list.php
@@ -594,8 +594,8 @@ if (! empty($arrayfields['t.libelle']['checked']))        print_liste_field_titr
 if (! empty($arrayfields['d.address']['checked']))        print_liste_field_titre($arrayfields['d.address']['label'],$_SERVER["PHP_SELF"],'d.address','',$param,'',$sortfield,$sortorder);
 if (! empty($arrayfields['d.zip']['checked']))            print_liste_field_titre($arrayfields['d.zip']['label'],$_SERVER["PHP_SELF"],'d.zip','',$param,'',$sortfield,$sortorder);
 if (! empty($arrayfields['d.town']['checked']))           print_liste_field_titre($arrayfields['d.town']['label'],$_SERVER["PHP_SELF"],'d.town','',$param,'',$sortfield,$sortorder);
-if (! empty($arrayfields['state.nom']['checked']))        print_liste_field_titre($langs->trans("StateShort"),$_SERVER["PHP_SELF"],"state.nom","",$param,'',$sortfield,$sortorder);
-if (! empty($arrayfields['country.code_iso']['checked'])) print_liste_field_titre($langs->trans("Country"),$_SERVER["PHP_SELF"],"country.code_iso","",$param,'align="center"',$sortfield,$sortorder);
+if (! empty($arrayfields['state.nom']['checked']))        print_liste_field_titre($arrayfields['state.town']['label'],$_SERVER["PHP_SELF"],"state.nom","",$param,'',$sortfield,$sortorder);
+if (! empty($arrayfields['country.code_iso']['checked'])) print_liste_field_titre($arrayfields['country.code_iso']['label'],$_SERVER["PHP_SELF"],"country.code_iso","",$param,'align="center"',$sortfield,$sortorder);
 if (! empty($arrayfields['d.phone']['checked']))          print_liste_field_titre($arrayfields['d.phone']['label'],$_SERVER["PHP_SELF"],'d.phone','',$param,'',$sortfield,$sortorder);
 if (! empty($arrayfields['d.phone_perso']['checked']))    print_liste_field_titre($arrayfields['d.phone_perso']['label'],$_SERVER["PHP_SELF"],'d.phone_perso','',$param,'',$sortfield,$sortorder);
 if (! empty($arrayfields['d.phone_mobile']['checked']))   print_liste_field_titre($arrayfields['d.phone_mobile']['label'],$_SERVER["PHP_SELF"],'d.phone_mobile','',$param,'',$sortfield,$sortorder);
@@ -611,7 +611,7 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab
             $align=$extrafields->getAlignFlag($key);
             $sortonfield = "ef.".$key;
             if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-            print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+            print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
         }
     }
 }
diff --git a/htdocs/adherents/subscription/list.php b/htdocs/adherents/subscription/list.php
index 1b42b3aaf06..1fee5ac545c 100644
--- a/htdocs/adherents/subscription/list.php
+++ b/htdocs/adherents/subscription/list.php
@@ -155,7 +155,7 @@ if ($result)
     $num = $db->num_rows($result);
 
 	$arrayofselected=is_array($toselect)?$toselect:array();
-    
+
 	$i = 0;
 
     $title=$langs->trans("ListOfSubscriptions");
@@ -171,7 +171,7 @@ if ($result)
 	if ($search_acount)   $param.="&search_account=".$search_account;
 	if ($search_amount)   $param.="&search_amount=".$search_amount;
 	if ($optioncss != '') $param.='&optioncss='.$optioncss;
-    
+
 	// List of mass actions available
 	$arrayofmassactions =  array(
 	    //'presend'=>$langs->trans("SendByMail"),
@@ -181,7 +181,7 @@ if ($result)
 	if ($user->rights->adherent->supprimer) $arrayofmassactions['delete']=$langs->trans("Delete");
 	//if ($massaction == 'presend' || $massaction == 'createbills') $arrayofmassactions=array();
 	$massactionbutton=$form->selectMassAction('', $arrayofmassactions);
-	
+
     print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
     if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
     print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
@@ -191,7 +191,7 @@ if ($result)
     print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
     print '<input type="hidden" name="page" value="'.$page.'">';
     print '<input type="hidden" name="contextpage" value="'.$contextpage.'">';
-    
+
 	print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_generic.png', 0, '', '', $limit);
 
 	if ($sall)
@@ -200,11 +200,11 @@ if ($result)
 	}
 
     $moreforfilter = '';
-    
+
     $varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
     $selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage);	// This also change content of $arrayfields
     if ($massactionbutton) $selectedfields.=$form->showCheckAddButtons('checkforselect', 1);
-    
+
     print '<div class="div-table-responsive">';
     print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
 
@@ -237,33 +237,33 @@ if ($result)
 	print '<td align="right" class="liste_titre">';
 	print '<input class="flat" type="text" name="search_amount" value="'.dol_escape_htmltag($search_amount).'" size="4">';
 	print '</td>';
-	
+
     // Action column
     print '<td class="liste_titre" align="right">';
     $searchpicto=$form->showFilterButtons();
     print $searchpicto;
-    print '</td>';  
+    print '</td>';
 
 	print "</tr>\n";
 
 
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"c.rowid",$param,"","",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Name"),$_SERVER["PHP_SELF"],"d.lastname",$param,"","",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Login"),$_SERVER["PHP_SELF"],"d.login",$param,"","",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"c.note",$param,"",'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"c.rowid",$param,"","",$sortfield,$sortorder);
+	print_liste_field_titre("Name",$_SERVER["PHP_SELF"],"d.lastname",$param,"","",$sortfield,$sortorder);
+	print_liste_field_titre("Login",$_SERVER["PHP_SELF"],"d.login",$param,"","",$sortfield,$sortorder);
+	print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"c.note",$param,"",'align="left"',$sortfield,$sortorder);
 	if (! empty($conf->banque->enabled))
 	{
-	    print_liste_field_titre($langs->trans("Account"),$_SERVER["PHP_SELF"],"b.fk_account",$pram,"","",$sortfield,$sortorder);
+	    print_liste_field_titre("Account",$_SERVER["PHP_SELF"],"b.fk_account",$pram,"","",$sortfield,$sortorder);
 	}
-	print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"c.dateadh",$param,"",'align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("DateEnd"),$_SERVER["PHP_SELF"],"c.datef",$param,"",'align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"c.subscription",$param,"",'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"c.dateadh",$param,"",'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre("DateEnd",$_SERVER["PHP_SELF"],"c.datef",$param,"",'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"c.subscription",$param,"",'align="right"',$sortfield,$sortorder);
 	//print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ');
 	print_liste_field_titre('', $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ');
 	print "</tr>\n";
-	
-	
+
+
     // Static objects
     $subscription=new Subscription($db);
     $adherent=new Adherent($db);
@@ -286,7 +286,7 @@ if ($result)
         $adherent->login=$obj->login;
         $adherent->photo=$obj->photo;
 
-        
+
 
         print '<tr class="oddeven">';
 
@@ -329,7 +329,7 @@ if ($result)
 
         // Price
         print '<td align="right">'.price($obj->subscription).'</td>';
-        
+
         print '<td></td>';
 
         print "</tr>";
@@ -338,7 +338,7 @@ if ($result)
     }
 
     // Total
-    
+
     print '<tr class="liste_total">';
     print "<td>".$langs->trans("Total")."</td>\n";
     print "<td align=\"right\">&nbsp;</td>\n";
diff --git a/htdocs/adherents/type.php b/htdocs/adherents/type.php
index 06297229420..016fc5e0499 100644
--- a/htdocs/adherents/type.php
+++ b/htdocs/adherents/type.php
@@ -508,13 +508,13 @@ if ($rowid > 0)
 			print "</tr>\n";
 
 			print '<tr class="liste_titre">';
-		    print_liste_field_titre($langs->trans("Name")." / ".$langs->trans("Company"),$_SERVER["PHP_SELF"],"d.lastname",$param,"","",$sortfield,$sortorder);
-		    print_liste_field_titre($langs->trans("Login"),$_SERVER["PHP_SELF"],"d.login",$param,"","",$sortfield,$sortorder);
-		    print_liste_field_titre($langs->trans("Nature"),$_SERVER["PHP_SELF"],"d.morphy",$param,"","",$sortfield,$sortorder);
-		    print_liste_field_titre($langs->trans("EMail"),$_SERVER["PHP_SELF"],"d.email",$param,"","",$sortfield,$sortorder);
-		    print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"d.statut,d.datefin",$param,"","",$sortfield,$sortorder);
-		    print_liste_field_titre($langs->trans("EndSubscription"),$_SERVER["PHP_SELF"],"d.datefin",$param,"",'align="center"',$sortfield,$sortorder);
-		    print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"",$param,"",'width="60" align="center"',$sortfield,$sortorder);
+		    print_liste_field_titre( $langs->trans("Name")." / ".$langs->trans("Company"),$_SERVER["PHP_SELF"],"d.lastname",$param,"","",$sortfield,$sortorder);
+		    print_liste_field_titre("Login",$_SERVER["PHP_SELF"],"d.login",$param,"","",$sortfield,$sortorder);
+		    print_liste_field_titre("Nature",$_SERVER["PHP_SELF"],"d.morphy",$param,"","",$sortfield,$sortorder);
+		    print_liste_field_titre("EMail",$_SERVER["PHP_SELF"],"d.email",$param,"","",$sortfield,$sortorder);
+		    print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"d.statut,d.datefin",$param,"","",$sortfield,$sortorder);
+		    print_liste_field_titre("EndSubscription",$_SERVER["PHP_SELF"],"d.datefin",$param,"",'align="center"',$sortfield,$sortorder);
+		    print_liste_field_titre("Action",$_SERVER["PHP_SELF"],"",$param,"",'width="60" align="center"',$sortfield,$sortorder);
 		    print "</tr>\n";
 
 		    while ($i < $num && $i < $conf->liste_limit)
diff --git a/htdocs/admin/defaultvalues.php b/htdocs/admin/defaultvalues.php
index 40446c27217..7e4593de2b3 100644
--- a/htdocs/admin/defaultvalues.php
+++ b/htdocs/admin/defaultvalues.php
@@ -285,7 +285,7 @@ if ($mode != 'focus')
     print_liste_field_titre($textvalue, $_SERVER["PHP_SELF"], 'value', '', $param, '', $sortfield, $sortorder);
 }
 // Entity
-if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre($langs->trans("Entity"),$_SERVER["PHP_SELF"],'entity,page','',$param,'',$sortfield,$sortorder);
+if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre("Entity",$_SERVER["PHP_SELF"],'entity,page','',$param,'',$sortfield,$sortorder);
 // Actions
 print '<td align="center"></td>';
 print "</tr>\n";
diff --git a/htdocs/admin/tools/listevents.php b/htdocs/admin/tools/listevents.php
index 516d9e41bb2..ac520ce22b3 100644
--- a/htdocs/admin/tools/listevents.php
+++ b/htdocs/admin/tools/listevents.php
@@ -260,11 +260,11 @@ if ($result)
 
 
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"e.dateevent","",$param,'align="left"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Code"),$_SERVER["PHP_SELF"],"e.type","",$param,'align="left"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("IP"),$_SERVER["PHP_SELF"],"e.ip","",$param,'align="left"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("User"),$_SERVER["PHP_SELF"],"u.login","",$param,'align="left"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Description"),$_SERVER["PHP_SELF"],"e.description","",$param,'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"e.dateevent","",$param,'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre("Code",$_SERVER["PHP_SELF"],"e.type","",$param,'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre("IP",$_SERVER["PHP_SELF"],"e.ip","",$param,'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre("User",$_SERVER["PHP_SELF"],"u.login","",$param,'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre("Description",$_SERVER["PHP_SELF"],"e.description","",$param,'align="left"',$sortfield,$sortorder);
 	print_liste_field_titre('');
 	print "</tr>\n";
 
diff --git a/htdocs/admin/tools/listsessions.php b/htdocs/admin/tools/listsessions.php
index c57a78974ed..6106fbe8dd8 100644
--- a/htdocs/admin/tools/listsessions.php
+++ b/htdocs/admin/tools/listsessions.php
@@ -128,12 +128,12 @@ if ($savehandler == 'files')
 {
 	print '<table class="liste" width="100%">';
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("Login"),$_SERVER["PHP_SELF"],"login","","",'align="left"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("SessionId"),$_SERVER["PHP_SELF"],"id","","",'align="left"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"datec","","",'align="left"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("DateModification"),$_SERVER["PHP_SELF"],"datem","","",'align="left"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Age"),$_SERVER["PHP_SELF"],"age","","",'align="left"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Raw"),$_SERVER["PHP_SELF"],"raw","","",'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre("Login",$_SERVER["PHP_SELF"],"login","","",'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre("SessionId",$_SERVER["PHP_SELF"],"id","","",'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre("DateCreation",$_SERVER["PHP_SELF"],"datec","","",'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre("DateModification",$_SERVER["PHP_SELF"],"datem","","",'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre("Age",$_SERVER["PHP_SELF"],"age","","",'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre("Raw",$_SERVER["PHP_SELF"],"raw","","",'align="left"',$sortfield,$sortorder);
 	print_liste_field_titre('');
 	print "</tr>\n";
 
@@ -141,7 +141,7 @@ if ($savehandler == 'files')
 
 	foreach ($listofsessions as $key => $sessionentry)
 	{
-		
+
 
 		print '<tr class="oddeven">';
 
diff --git a/htdocs/admin/translation.php b/htdocs/admin/translation.php
index 5236315daf3..016d1ff8bb1 100644
--- a/htdocs/admin/translation.php
+++ b/htdocs/admin/translation.php
@@ -235,10 +235,10 @@ if ($mode == 'overwrite')
 
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre">';
-    print_liste_field_titre($langs->trans("Language").' (en_US, es_MX, ...)',$_SERVER["PHP_SELF"],'lang,transkey','',$param,'',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Key"),$_SERVER["PHP_SELF"],'transkey','',$param,'',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("NewTranslationStringToShow"),$_SERVER["PHP_SELF"],'transvalue','',$param,'',$sortfield,$sortorder);
-    //if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre($langs->trans("Entity"),$_SERVER["PHP_SELF"],'entity,transkey','',$param,'',$sortfield,$sortorder);
+    print_liste_field_titre( $langs->trans("Language").' (en_US, es_MX, ...)',$_SERVER["PHP_SELF"],'lang,transkey','',$param,'',$sortfield,$sortorder);
+    print_liste_field_titre("Key",$_SERVER["PHP_SELF"],'transkey','',$param,'',$sortfield,$sortorder);
+    print_liste_field_titre("NewTranslationStringToShow",$_SERVER["PHP_SELF"],'transvalue','',$param,'',$sortfield,$sortorder);
+    //if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre("Entity"),$_SERVER["PHP_SELF"],'entity,transkey','',$param,'',$sortfield,$sortorder);
     print '<td align="center"></td>';
     print "</tr>\n";
 
@@ -393,10 +393,10 @@ if ($mode == 'searchkey')
 
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre">';
-    print_liste_field_titre($langs->trans("Language").' (en_US, es_MX, ...)',$_SERVER["PHP_SELF"],'lang,transkey','',$param,'',$sortfield,$sortorder).'</td>';
-    print_liste_field_titre($langs->trans("Key"),$_SERVER["PHP_SELF"],'transkey','',$param,'',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("CurrentTranslationString"),$_SERVER["PHP_SELF"],'transvalue','',$param,'',$sortfield,$sortorder);
-    //if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre($langs->trans("Entity"),$_SERVER["PHP_SELF"],'entity,transkey','',$param,'',$sortfield,$sortorder);
+    print_liste_field_titre( $langs->trans("Language").' (en_US, es_MX, ...)',$_SERVER["PHP_SELF"],'lang,transkey','',$param,'',$sortfield,$sortorder).'</td>';
+    print_liste_field_titre("Key",$_SERVER["PHP_SELF"],'transkey','',$param,'',$sortfield,$sortorder);
+    print_liste_field_titre("CurrentTranslationString",$_SERVER["PHP_SELF"],'transvalue','',$param,'',$sortfield,$sortorder);
+    //if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre("Entity",$_SERVER["PHP_SELF"],'entity,transkey','',$param,'',$sortfield,$sortorder);
     print '<td align="center"></td>';
     print "</tr>\n";
 
diff --git a/htdocs/bookmarks/list.php b/htdocs/bookmarks/list.php
index a192076e88a..c9387561837 100644
--- a/htdocs/bookmarks/list.php
+++ b/htdocs/bookmarks/list.php
@@ -101,19 +101,19 @@ if ($resql)
     if ($optioncss != '') $param ='&optioncss='.$optioncss;
 
     $moreforfilter='';
-    
+
     print '<div class="div-table-responsive">';
     print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
-    
+
     print "<tr class=\"liste_titre\">";
     //print "<td>&nbsp;</td>";
-    print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"bid","", $param,'align="left"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Title"),$_SERVER["PHP_SELF"],"title","", $param,'align="left"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Link"),'','');
-    print_liste_field_titre($langs->trans("Target"),'','','','','align="center"');
-    print_liste_field_titre($langs->trans("Owner"),$_SERVER["PHP_SELF"],"u.lastname","", $param,'align="center"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"b.dateb","", $param,'align="center"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Position"),$_SERVER["PHP_SELF"],"b.position","", $param,'align="right"',$sortfield,$sortorder);
+    print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"bid","", $param,'align="left"',$sortfield,$sortorder);
+    print_liste_field_titre("Title",$_SERVER["PHP_SELF"],"title","", $param,'align="left"',$sortfield,$sortorder);
+    print_liste_field_titre("Link",'','');
+    print_liste_field_titre("Target",'','','','','align="center"');
+    print_liste_field_titre("Owner",$_SERVER["PHP_SELF"],"u.lastname","", $param,'align="center"',$sortfield,$sortorder);
+    print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"b.dateb","", $param,'align="center"',$sortfield,$sortorder);
+    print_liste_field_titre("Position",$_SERVER["PHP_SELF"],"b.position","", $param,'align="right"',$sortfield,$sortorder);
     print_liste_field_titre('');
     print "</tr>\n";
 
@@ -122,7 +122,7 @@ if ($resql)
     {
         $obj = $db->fetch_object($resql);
 
-        
+
         print '<tr class="oddeven">';
 
         // Id
@@ -209,7 +209,7 @@ if ($resql)
     }
     print "</table>";
     print '</div>';
-    
+
     $db->free($resql);
 }
 else
diff --git a/htdocs/comm/action/listactions.php b/htdocs/comm/action/listactions.php
index 59755728e81..c77c4279439 100644
--- a/htdocs/comm/action/listactions.php
+++ b/htdocs/comm/action/listactions.php
@@ -394,17 +394,17 @@ if ($resql)
 	print "</tr>\n";
 
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"a.id",$param,"","",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Title"),$_SERVER["PHP_SELF"],"a.label",$param,"","",$sortfield,$sortorder);
+	print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"a.id",$param,"","",$sortfield,$sortorder);
+	print_liste_field_titre("Title",$_SERVER["PHP_SELF"],"a.label",$param,"","",$sortfield,$sortorder);
 	//if (! empty($conf->global->AGENDA_USE_EVENT_TYPE))
-	print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"c.libelle",$param,"","",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("DateStart"),$_SERVER["PHP_SELF"],"a.datep",$param,'','align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("DateEnd"),$_SERVER["PHP_SELF"],"a.datep2",$param,'','align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom",$param,"","",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Contact"),$_SERVER["PHP_SELF"],"a.fk_contact",$param,"","",$sortfield,$sortorder);
-    if (! empty($conf->global->AGENDA_SHOW_LINKED_OBJECT)) print_liste_field_titre($langs->trans("LinkedObject"),$_SERVER["PHP_SELF"],"a.fk_element",$param,"","",$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("ActionsOwnedByShort"),$_SERVER["PHP_SELF"],"",$param,"","",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"a.percent",$param,"",'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"c.libelle",$param,"","",$sortfield,$sortorder);
+	print_liste_field_titre("DateStart",$_SERVER["PHP_SELF"],"a.datep",$param,'','align="center"',$sortfield,$sortorder);
+	print_liste_field_titre("DateEnd",$_SERVER["PHP_SELF"],"a.datep2",$param,'','align="center"',$sortfield,$sortorder);
+	print_liste_field_titre("ThirdParty",$_SERVER["PHP_SELF"],"s.nom",$param,"","",$sortfield,$sortorder);
+	print_liste_field_titre("Contact",$_SERVER["PHP_SELF"],"a.fk_contact",$param,"","",$sortfield,$sortorder);
+    if (! empty($conf->global->AGENDA_SHOW_LINKED_OBJECT)) print_liste_field_titre("LinkedObject",$_SERVER["PHP_SELF"],"a.fk_element",$param,"","",$sortfield,$sortorder);
+    print_liste_field_titre("ActionsOwnedByShort",$_SERVER["PHP_SELF"],"",$param,"","",$sortfield,$sortorder);
+	print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"a.percent",$param,"",'align="center"',$sortfield,$sortorder);
 	print_liste_field_titre("");
 	print "</tr>\n";
 
diff --git a/htdocs/comm/contact.php b/htdocs/comm/contact.php
index a13ffe61c76..5c160bfab16 100644
--- a/htdocs/comm/contact.php
+++ b/htdocs/comm/contact.php
@@ -126,14 +126,14 @@ if ($resql)
 	print_barre_liste($title.($label?" (".$label.")":""),$page, $_SERVER["PHP_SELF"], $param,$sortfield,$sortorder,"",$num);
 
 	print '<form action="'.$_SERVER["PHP_SELF"].'?type='.GETPOST("type", "alpha").'" method="GET">';
-	
+
 	print '<table class="liste" width="100%">';
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("Lastname"),$_SERVER["PHP_SELF"],"p.name", $begin, $param,"",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Firstname"),$_SERVER["PHP_SELF"],"p.firstname", $begin, $param,"",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom", $begin, $param,"",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Email"));
-	print_liste_field_titre($langs->trans("Phone"));
+	print_liste_field_titre("Lastname",$_SERVER["PHP_SELF"],"p.name", $begin, $param,"",$sortfield,$sortorder);
+	print_liste_field_titre("Firstname",$_SERVER["PHP_SELF"],"p.firstname", $begin, $param,"",$sortfield,$sortorder);
+	print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom", $begin, $param,"",$sortfield,$sortorder);
+	print_liste_field_titre("Email");
+	print_liste_field_titre("Phone");
 	print "</tr>\n";
 
 	print '<tr class="liste_titre">';
@@ -150,7 +150,7 @@ if ($resql)
 	{
 		$obj = $db->fetch_object($resql);
 
-		
+
 
 		print '<tr class="oddeven">';
 		print '<td><a href="'.DOL_URL_ROOT.'/contact/card.php?id='.$obj->cidp.'&socid='.$obj->rowid.'">'.img_object($langs->trans("ShowContact"),"contact");
@@ -168,9 +168,9 @@ if ($resql)
 		$i++;
 	}
 	print "</table>";
-	
+
 	print '</form>';
-	
+
 	$db->free($resql);
 }
 else
diff --git a/htdocs/comm/mailing/cibles.php b/htdocs/comm/mailing/cibles.php
index 6c580cc93d6..a2743246560 100644
--- a/htdocs/comm/mailing/cibles.php
+++ b/htdocs/comm/mailing/cibles.php
@@ -184,12 +184,12 @@ if ($object->fetch($id) >= 0)
 
 	$morehtmlright='';
 	if ($object->statut == 2) $morehtmlright.=' ('.$object->countNbOfTargets('alreadysent').'/'.$object->nbemail.') ';
-	
+
 	dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', '', '', 0, '', $morehtmlright);
 
 	print '<div class="fichecenter">';
 	print '<div class="underbanner clearboth"></div>';
-	
+
 	print '<table class="border" width="100%">';
 
 	print '<tr><td class="titlefield">'.$langs->trans("MailTitle").'</td><td colspan="3">'.$object->titre.'</td></tr>';
@@ -221,7 +221,7 @@ if ($object->fetch($id) >= 0)
 	print "</div>";
 
 	dol_fiche_end();
-	
+
 
 	$allowaddtarget=($object->statut == 0);
 
@@ -232,7 +232,7 @@ if ($object->fetch($id) >= 0)
 
 		//print '<table class="noborder" width="100%">';
 		print '<div class="tagtable centpercent liste_titre_bydiv" id="tablelines">';
-		
+
 		//print '<tr class="liste_titre">';
 		print '<div class="tagtr liste_titre">';
 		//print '<td class="liste_titre">'.$langs->trans("RecipientSelectionModules").'</td>';
@@ -245,11 +245,11 @@ if ($object->fetch($id) >= 0)
 		print '<div class="tagtd">&nbsp;</div>';
 		//print "</tr>\n";
 		print '</div>';
-		
+
 		clearstatcache();
 
 		$var = true;
-		
+
 		foreach ($modulesdir as $dir)
 		{
 		    $modulenames=array();
@@ -324,7 +324,7 @@ if ($object->fetch($id) >= 0)
 					print $obj->getDesc();
 					//print '</td>';
 					print '</div>';
-						
+
 					try {
 						$nbofrecipient=$obj->getNbOfRecipients('');
 					}
@@ -345,7 +345,7 @@ if ($object->fetch($id) >= 0)
 					}
 					//print '</td>';
 					print '</div>';
-						
+
 					//print '<td align="left">';
 					print '<div class="tagtd" align="left">';
 					if ($allowaddtarget)
@@ -362,7 +362,7 @@ if ($object->fetch($id) >= 0)
 					}
 					//print '</td>';
 					print '</div>';
-						
+
 					//print '<td align="right">';
 					print '<div class="tagtd" align="right">';
 					if ($allowaddtarget)
@@ -377,10 +377,10 @@ if ($object->fetch($id) >= 0)
 					}
 					//print '</td>';
 					print '</div>';
-						
+
 					if ($allowaddtarget) print '</form>';
 					else print '</div>';
-						
+
 					//print "</tr>\n";
 //					print '</div>'."\n";
 				}
@@ -389,7 +389,7 @@ if ($object->fetch($id) >= 0)
 
 		//print '</table>';
 		print '</div>';
-		
+
 		print '<br><br>';
 	}
 
@@ -412,11 +412,11 @@ if ($object->fetch($id) >= 0)
 	}
 	//$nbtotalofrecords=$object->nbemail;     // nbemail is a denormalized field storing nb of targets
 	$sql .= $db->plimit($limit+1, $offset);
-	
+
 	$resql=$db->query($sql);
 	if ($resql)
 	{
-	    
+
 		$num = $db->num_rows($resql);
 
 		$param = "&amp;id=".$object->id;
@@ -436,7 +436,7 @@ if ($object->fetch($id) >= 0)
 		    $cleartext=$langs->trans("ToClearAllRecipientsClickHere").' '.'<a href="'.$_SERVER["PHP_SELF"].'?clearlist=1&id='.$object->id.'" class="button reposition">'.$langs->trans("TargetsReset").'</a>';
 		}
 		print_barre_liste($langs->trans("MailSelectedRecipients"),$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,$cleartext,$num,$nbtotalofrecords,'title_generic',0,'','',$limit);
-		
+
 		print '</form>';
 
 		print "\n<!-- Liste destinataires selectionnes -->\n";
@@ -447,12 +447,12 @@ if ($object->fetch($id) >= 0)
         print '<input type="hidden" name="page" value="'.$page.'">';
 		print '<input type="hidden" name="id" value="'.$object->id.'">';
 		print '<input type="hidden" name="limit" value="'.$limit.'">';
-		
+
 
 		if ($page)	$param.= "&amp;page=".$page;
-		
+
 		print '<table class="noborder" width="100%">';
-		
+
 		// Ligne des champs de filtres
 		print '<tr class="liste_titre_filter">';
 		// EMail
@@ -475,7 +475,7 @@ if ($object->fetch($id) >= 0)
 		print '<td class="liste_titre">';
 		print '&nbsp';
 		print '</td>';
-		
+
 		// Date sending
 		print '<td class="liste_titre">';
 		print '&nbsp';
@@ -490,13 +490,13 @@ if ($object->fetch($id) >= 0)
 		print $searchpicto;
 		print '</td>';
 		print '</tr>';
-		
+
 		print '<tr class="liste_titre">';
-		print_liste_field_titre($langs->trans("EMail"),$_SERVER["PHP_SELF"],"mc.email",$param,"","",$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("Lastname"),$_SERVER["PHP_SELF"],"mc.lastname",$param,"","",$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("Firstname"),$_SERVER["PHP_SELF"],"mc.firstname",$param,"","",$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("OtherInformations"),$_SERVER["PHP_SELF"],"",$param,"","",$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("Source"),$_SERVER["PHP_SELF"],"",$param,"",'align="center"',$sortfield,$sortorder);
+		print_liste_field_titre("EMail",$_SERVER["PHP_SELF"],"mc.email",$param,"","",$sortfield,$sortorder);
+		print_liste_field_titre("Lastname",$_SERVER["PHP_SELF"],"mc.lastname",$param,"","",$sortfield,$sortorder);
+		print_liste_field_titre("Firstname",$_SERVER["PHP_SELF"],"mc.firstname",$param,"","",$sortfield,$sortorder);
+		print_liste_field_titre("OtherInformations",$_SERVER["PHP_SELF"],"",$param,"","",$sortfield,$sortorder);
+		print_liste_field_titre("Source",$_SERVER["PHP_SELF"],"",$param,"",'align="center"',$sortfield,$sortorder);
 		// Date sending
 		if ($object->statut < 2)
 		{
@@ -504,9 +504,9 @@ if ($object->fetch($id) >= 0)
 		}
 		else
 		{
-			print_liste_field_titre($langs->trans("DateSending"),$_SERVER["PHP_SELF"],"mc.date_envoi",$param,'','align="center"',$sortfield,$sortorder);
+			print_liste_field_titre("DateSending",$_SERVER["PHP_SELF"],"mc.date_envoi",$param,'','align="center"',$sortfield,$sortorder);
 		}
-		print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"mc.statut",$param,'','align="right"',$sortfield,$sortorder);
+		print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"mc.statut",$param,'','align="right"',$sortfield,$sortorder);
 		print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch ');
 		print '</tr>';
 
@@ -590,7 +590,7 @@ if ($object->fetch($id) >= 0)
 		}
 		else
 		{
-			if ($object->statut < 2) 
+			if ($object->statut < 2)
 			{
 			    print '<tr><td colspan="8" class="opacitymedium">';
     			print $langs->trans("NoTargetYet");
diff --git a/htdocs/comm/mailing/list.php b/htdocs/comm/mailing/list.php
index fb513c99b9b..82cb53fdfbf 100644
--- a/htdocs/comm/mailing/list.php
+++ b/htdocs/comm/mailing/list.php
@@ -109,7 +109,7 @@ if ($result)
 
 	$param = "&amp;sall=".urlencode($sall);
 	if ($filteremail) $param.='&amp;filteremail='.urlencode($filteremail);
-	
+
 	print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">';
 	if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
 	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
@@ -117,9 +117,9 @@ if ($result)
 	print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
 	print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
 	print '<input type="hidden" name="page" value="'.$page.'">';
-	
+
     $moreforfilter = '';
-    
+
     print '<div class="div-table-responsive">';
     print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
 
@@ -142,24 +142,24 @@ if ($result)
 	print "</tr>\n";
 
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"m.rowid",$param,"","",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Title"),$_SERVER["PHP_SELF"],"m.titre",$param,"","",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"m.date_creat",$param,"",'align="center"',$sortfield,$sortorder);
-	if (! $filteremail) print_liste_field_titre($langs->trans("NbOfEMails"),$_SERVER["PHP_SELF"],"m.nbemail",$param,"",'align="center"',$sortfield,$sortorder);
-	if (! $filteremail) print_liste_field_titre($langs->trans("DateLastSend"),$_SERVER["PHP_SELF"],"m.date_envoi",$param,"",'align="center"',$sortfield,$sortorder);
-	else print_liste_field_titre($langs->trans("DateSending"),$_SERVER["PHP_SELF"],"mc.date_envoi",$param,"",'align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],($filteremail?"mc.statut":"m.statut"),$param,"",'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"m.rowid",$param,"","",$sortfield,$sortorder);
+	print_liste_field_titre("Title",$_SERVER["PHP_SELF"],"m.titre",$param,"","",$sortfield,$sortorder);
+	print_liste_field_titre("DateCreation",$_SERVER["PHP_SELF"],"m.date_creat",$param,"",'align="center"',$sortfield,$sortorder);
+	if (! $filteremail) print_liste_field_titre("NbOfEMails",$_SERVER["PHP_SELF"],"m.nbemail",$param,"",'align="center"',$sortfield,$sortorder);
+	if (! $filteremail) print_liste_field_titre("DateLastSend",$_SERVER["PHP_SELF"],"m.date_envoi",$param,"",'align="center"',$sortfield,$sortorder);
+	else print_liste_field_titre("DateSending",$_SERVER["PHP_SELF"],"mc.date_envoi",$param,"",'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre("Status",$_SERVER["PHP_SELF"],($filteremail?"mc.statut":"m.statut"),$param,"",'align="right"',$sortfield,$sortorder);
 	print_liste_field_titre('', $_SERVER["PHP_SELF"],"",'','','align="right"',$sortfield,$sortorder,'maxwidthsearch ');
 	print "</tr>\n";
-	
-	
+
+
 	$email=new Mailing($db);
 
 	while ($i < min($num,$limit))
 	{
 		$obj = $db->fetch_object($result);
 
-		
+
 
 		print "<tr>";
 		print '<td><a href="'.DOL_URL_ROOT.'/comm/mailing/card.php?id='.$obj->rowid.'">';
diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php
index 6062f6033dc..5c63f1264c4 100644
--- a/htdocs/comm/propal/list.php
+++ b/htdocs/comm/propal/list.php
@@ -734,7 +734,7 @@ if ($resql)
 				$align=$extrafields->getAlignFlag($key);
     			$sortonfield = "ef.".$key;
     			if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-    			print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+    			print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
            }
 	   }
 	}
diff --git a/htdocs/commande/customer.php b/htdocs/commande/customer.php
index 8aa699fed71..205efc3ad91 100644
--- a/htdocs/commande/customer.php
+++ b/htdocs/commande/customer.php
@@ -120,11 +120,11 @@ if ($resql)
 	print '<table class="liste" width="100%">';
 	print '<tr class="liste_titre">';
 
-	print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","","",'valign="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"s.town","","",'valign="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("CustomerCode"),$_SERVER["PHP_SELF"],"s.code_client","","",'align="left"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("AccountancyCode"),$_SERVER["PHP_SELF"],"s.code_compta","","",'align="left"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"datec",$addu,"",'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom","","",'valign="center"',$sortfield,$sortorder);
+	print_liste_field_titre("Town",$_SERVER["PHP_SELF"],"s.town","","",'valign="center"',$sortfield,$sortorder);
+	print_liste_field_titre("CustomerCode",$_SERVER["PHP_SELF"],"s.code_client","","",'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre("AccountancyCode",$_SERVER["PHP_SELF"],"s.code_compta","","",'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre("DateCreation",$_SERVER["PHP_SELF"],"datec",$addu,"",'align="right"',$sortfield,$sortorder);
 	print "</tr>\n";
 
 	// Lignes des champs de filtre
@@ -146,7 +146,7 @@ if ($resql)
 	print '<td align="right" colspan="2" class="liste_titre">';
 	print '<input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" name="button_search" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
 	print '</td>';
-	
+
 	print "</tr>\n";
 
 	$var=true;
@@ -155,7 +155,7 @@ if ($resql)
 	{
 		$obj = $db->fetch_object($resql);
 
-		
+
 
 		print '<tr class="oddeven">';
 		print '<td>';
diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php
index 565f39e62a2..b2d4f5d9a61 100644
--- a/htdocs/commande/list.php
+++ b/htdocs/commande/list.php
@@ -1036,7 +1036,7 @@ if ($resql)
 				$align=$extrafields->getAlignFlag($key);
     			$sortonfield = "ef.".$key;
     			if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-    			print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+    			print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
            }
 	   }
 	}
diff --git a/htdocs/commande/orderstoinvoice.php b/htdocs/commande/orderstoinvoice.php
index fa9f810b036..83ec75043c3 100644
--- a/htdocs/commande/orderstoinvoice.php
+++ b/htdocs/commande/orderstoinvoice.php
@@ -602,12 +602,12 @@ if (($action != 'create' && $action != 'add') || ($action == 'create' && $error)
 
 		print '<table class="noborder" width="100%">';
 		print '<tr class="liste_titre">';
-		print_liste_field_titre($langs->trans('Ref'),$_SERVER["PHP_SELF"],'c.ref','','&amp;socid='.$socid,'',$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans('RefCustomerOrder'),$_SERVER["PHP_SELF"],'c.ref_client','','&amp;socid='.$socid,'',$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans('OrderDate'),$_SERVER["PHP_SELF"],'c.date_commande','','&amp;socid='.$socid, 'align="center"',$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans('DeliveryDate'),$_SERVER["PHP_SELF"],'c.date_livraison','','&amp;socid='.$socid, 'align="center"',$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans('Status'),'','','','','align="right"');
-		print_liste_field_titre($langs->trans('GenerateBill'),'','','','','align="center"');
+		print_liste_field_titre('Ref',$_SERVER["PHP_SELF"],'c.ref','','&amp;socid='.$socid,'',$sortfield,$sortorder);
+		print_liste_field_titre('RefCustomerOrder',$_SERVER["PHP_SELF"],'c.ref_client','','&amp;socid='.$socid,'',$sortfield,$sortorder);
+		print_liste_field_titre('OrderDate',$_SERVER["PHP_SELF"],'c.date_commande','','&amp;socid='.$socid, 'align="center"',$sortfield,$sortorder);
+		print_liste_field_titre('DeliveryDate',$_SERVER["PHP_SELF"],'c.date_livraison','','&amp;socid='.$socid, 'align="center"',$sortfield,$sortorder);
+		print_liste_field_titre('Status','','','','','align="right"');
+		print_liste_field_titre('GenerateBill','','','','','align="center"');
 		print '</tr>';
 
 		// Lignes des champs de filtre
diff --git a/htdocs/compta/bank/bankentries.php b/htdocs/compta/bank/bankentries.php
index a19ccbb6b7c..39542bf12c8 100644
--- a/htdocs/compta/bank/bankentries.php
+++ b/htdocs/compta/bank/bankentries.php
@@ -896,7 +896,7 @@ if ($resql)
 	            $align=$extrafields->getAlignFlag($key);
     			$sortonfield = "ef.".$key;
     			if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-    			print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+    			print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
 	        }
 	    }
 	}
diff --git a/htdocs/compta/bank/index.php b/htdocs/compta/bank/index.php
index 9bc8608692d..62294d29d58 100644
--- a/htdocs/compta/bank/index.php
+++ b/htdocs/compta/bank/index.php
@@ -418,7 +418,7 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab
             $align=$extrafields->getAlignFlag($key);
 			$sortonfield = "ef.".$key;
 			if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-			print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+			print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
         }
     }
 }
diff --git a/htdocs/compta/bank/various_payment/index.php b/htdocs/compta/bank/various_payment/index.php
index 5b2488cc5e8..8079092388e 100644
--- a/htdocs/compta/bank/various_payment/index.php
+++ b/htdocs/compta/bank/various_payment/index.php
@@ -151,13 +151,13 @@ if ($result)
 	print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
 
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"v.rowid","",$param,"",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"v.label","",$param,'align="left"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"v.datep","",$param,'align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("PaymentMode"),$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder);
-	if (! empty($conf->banque->enabled)) print_liste_field_titre($langs->trans("BankAccount"),$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"v.amount","",$param,'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Sens"),$_SERVER["PHP_SELF"],"v.sens","",$param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"v.rowid","",$param,"",$sortfield,$sortorder);
+	print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"v.label","",$param,'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre("DatePayment",$_SERVER["PHP_SELF"],"v.datep","",$param,'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre("PaymentMode",$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder);
+	if (! empty($conf->banque->enabled)) print_liste_field_titre("BankAccount",$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder);
+	print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"v.amount","",$param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("Sens",$_SERVER["PHP_SELF"],"v.sens","",$param,'align="right"',$sortfield,$sortorder);
 	print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch ');
 	print "</tr>\n";
 
diff --git a/htdocs/compta/charges/index.php b/htdocs/compta/charges/index.php
index d494f778df0..e048de2deb7 100644
--- a/htdocs/compta/charges/index.php
+++ b/htdocs/compta/charges/index.php
@@ -92,7 +92,7 @@ print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
 print '<input type="hidden" name="page" value="'.$page.'">';
 print '<input type="hidden" name="mode" value="'.$mode.'">';
 
-if ($mode != 'sconly') 
+if ($mode != 'sconly')
 {
     $center=($year?'<a href="index.php?year='.($year-1).$param.'">'.img_previous($langs->trans("Previous"), 'class="valignbottom"')."</a> ".$langs->trans("Year").' '.$year.' <a href="index.php?year='.($year+1).$param.'">'.img_next($langs->trans("Next"), 'class="valignbottom"')."</a>":"");
     print_barre_liste($title,$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,$center,$num,$totalnboflines, 'title_accountancy', 0, '', '', $limit, 1);
@@ -120,15 +120,15 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire)
 
 	print '<table class="noborder" width="100%">';
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"cs.date_ech","",$param,'width="140px"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"c.libelle","",$param,'',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"cs.fk_type","",$param,'',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("ExpectedToPay"),$_SERVER["PHP_SELF"],"cs.amount","",$param,'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"pc.rowid","",$param,'',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"pc.datep","",$param,'align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"pct.code","",$param,'',$sortfield,$sortorder);
-    if (! empty($conf->banque->enabled)) print_liste_field_titre($langs->trans("Account"),$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"pc.amount","",$param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("PeriodEndDate",$_SERVER["PHP_SELF"],"cs.date_ech","",$param,'width="140px"',$sortfield,$sortorder);
+	print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"c.libelle","",$param,'',$sortfield,$sortorder);
+	print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"cs.fk_type","",$param,'',$sortfield,$sortorder);
+	print_liste_field_titre("ExpectedToPay",$_SERVER["PHP_SELF"],"cs.amount","",$param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("RefPayment",$_SERVER["PHP_SELF"],"pc.rowid","",$param,'',$sortfield,$sortorder);
+	print_liste_field_titre("DatePayment",$_SERVER["PHP_SELF"],"pc.datep","",$param,'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"pct.code","",$param,'',$sortfield,$sortorder);
+    if (! empty($conf->banque->enabled)) print_liste_field_titre("Account",$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder);
+	print_liste_field_titre("PayedByThisPayment",$_SERVER["PHP_SELF"],"pc.amount","",$param,'align="right"',$sortfield,$sortorder);
 	print "</tr>\n";
 
 	$sql = "SELECT c.id, c.libelle as lib,";
@@ -278,14 +278,14 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire)
 		    $total = 0 ;
 		    print '<table class="noborder" width="100%">';
 		    print '<tr class="liste_titre">';
-			print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"pv.datev","",$param,'width="140px"',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"pv.label","",$param,'',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("ExpectedToPay"),$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"pv.rowid","",$param,'',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"pv.datev","",$param,'align="center"',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"pct.code","",$param,'',$sortfield,$sortorder);
-			if (! empty($conf->banque->enabled)) print_liste_field_titre($langs->trans("Account"),$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder);
+			print_liste_field_titre("PeriodEndDate",$_SERVER["PHP_SELF"],"pv.datev","",$param,'width="140px"',$sortfield,$sortorder);
+			print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"pv.label","",$param,'',$sortfield,$sortorder);
+			print_liste_field_titre("ExpectedToPay",$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder);
+			print_liste_field_titre("RefPayment",$_SERVER["PHP_SELF"],"pv.rowid","",$param,'',$sortfield,$sortorder);
+			print_liste_field_titre("DatePayment",$_SERVER["PHP_SELF"],"pv.datev","",$param,'align="center"',$sortfield,$sortorder);
+			print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"pct.code","",$param,'',$sortfield,$sortorder);
+			if (! empty($conf->banque->enabled)) print_liste_field_titre("Account",$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder);
+			print_liste_field_titre("PayedByThisPayment",$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder);
 		    print "</tr>\n";
 		    $var=1;
 		    while ($i < $num)
@@ -294,7 +294,7 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire)
 
 		        $total = $total + $obj->amount;
 
-		        
+
 		        print '<tr class="oddeven">';
 		        print '<td align="left">'.dol_print_date($db->jdate($obj->dm),'day').'</td>'."\n";
 
@@ -309,12 +309,12 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire)
 
 		        // Date
 		        print '<td align="center">'.dol_print_date($db->jdate($obj->dm),'day')."</td>\n";
-		        
+
 		        // Type payment
 	    	    print '<td>';
 	    	    if ($obj->payment_code) print $langs->trans("PaymentTypeShort".$obj->payment_code).' ';
 	    	    print $obj->num_payment.'</td>';
-			        
+
 		    	// Account
 		    	if (! empty($conf->banque->enabled))
 			    {
@@ -333,7 +333,7 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire)
 			        else print '&nbsp;';
 			        print '</td>';
 			    }
-			    
+
 	    	    // Paid
 		    	print '<td align="right">'.price($obj->amount)."</td>";
 		        print "</tr>\n";
@@ -411,11 +411,11 @@ while($j<$numlt)
 			$total = 0 ;
 			print '<table class="noborder" width="100%">';
 			print '<tr class="liste_titre">';
-			print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"pv.datev","",$param,'width="120"',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"pv.label","",$param,'',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"pv.rowid","",$param,'',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"pv.datep","",$param,'align="center"',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder);
+			print_liste_field_titre("PeriodEndDate",$_SERVER["PHP_SELF"],"pv.datev","",$param,'width="120"',$sortfield,$sortorder);
+			print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"pv.label","",$param,'',$sortfield,$sortorder);
+			print_liste_field_titre("RefPayment",$_SERVER["PHP_SELF"],"pv.rowid","",$param,'',$sortfield,$sortorder);
+			print_liste_field_titre("DatePayment",$_SERVER["PHP_SELF"],"pv.datep","",$param,'align="center"',$sortfield,$sortorder);
+			print_liste_field_titre("PayedByThisPayment",$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder);
 			print "</tr>\n";
 			$var=1;
 			while ($i < $num)
@@ -424,7 +424,7 @@ while($j<$numlt)
 
 				$total = $total + $obj->amount;
 
-				
+
 				print '<tr class="oddeven">';
 				print '<td align="left">'.dol_print_date($db->jdate($obj->dm),'day').'</td>'."\n";
 
@@ -465,8 +465,8 @@ if (! empty($conf->salaries->enabled) && $user->rights->salaries->read)
         $sal = new PaymentSalary($db);
 
         print "<br>";
-        
-        print_fiche_titre($langs->trans("SalariesPayments").($year?' ('.$langs->trans("Year").' '.$year.')':''), '', '');
+
+        print_fiche_titre( $langs->trans("SalariesPayments").($year?' ('.$langs->trans("Year").' '.$year.')':''), '', '');
 
         $sql = "SELECT s.rowid, s.amount, s.label, s.datep as datep, s.datev as datev, s.datesp, s.dateep, s.salary, s.fk_bank, u.salary as current_salary,";
 		$sql.= " pct.code as payment_code,";
@@ -493,13 +493,13 @@ if (! empty($conf->salaries->enabled) && $user->rights->salaries->read)
             $total = 0 ;
             print '<table class="noborder" width="100%">';
             print '<tr class="liste_titre">';
-            print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"s.dateep","",$param,'width="140px"',$sortfield,$sortorder);
-            print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"s.label","",$param,'',$sortfield,$sortorder);
-            print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"s.rowid","",$param,'',$sortfield,$sortorder);
-            print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"s.datep","",$param,'align="center"',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"pct.code","",$param,'',$sortfield,$sortorder);
-			if (! empty($conf->banque->enabled)) print_liste_field_titre($langs->trans("Account"),$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder);
-            print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"s.amount","",$param,'align="right"',$sortfield,$sortorder);
+            print_liste_field_titre("PeriodEndDate",$_SERVER["PHP_SELF"],"s.dateep","",$param,'width="140px"',$sortfield,$sortorder);
+            print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"s.label","",$param,'',$sortfield,$sortorder);
+            print_liste_field_titre("RefPayment",$_SERVER["PHP_SELF"],"s.rowid","",$param,'',$sortfield,$sortorder);
+            print_liste_field_titre("DatePayment",$_SERVER["PHP_SELF"],"s.datep","",$param,'align="center"',$sortfield,$sortorder);
+			print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"pct.code","",$param,'',$sortfield,$sortorder);
+			if (! empty($conf->banque->enabled)) print_liste_field_titre("Account",$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder);
+            print_liste_field_titre("PayedByThisPayment",$_SERVER["PHP_SELF"],"s.amount","",$param,'align="right"',$sortfield,$sortorder);
             print "</tr>\n";
             $var=1;
             while ($i < $num)
@@ -508,7 +508,7 @@ if (! empty($conf->salaries->enabled) && $user->rights->salaries->read)
 
                 $total = $total + $obj->amount;
 
-                
+
                 print '<tr class="oddeven">';
 
                 print '<td align="left">'.dol_print_date($db->jdate($obj->dateep),'day').'</td>'."\n";
@@ -527,7 +527,7 @@ if (! empty($conf->salaries->enabled) && $user->rights->salaries->read)
 	    	    print '<td>';
 	    	    if ($obj->payment_code) print $langs->trans("PaymentTypeShort".$obj->payment_code).' ';
 	    	    print $obj->num_payment.'</td>';
-			        
+
 		    	// Account
 		    	if (! empty($conf->banque->enabled))
 			    {
@@ -546,7 +546,7 @@ if (! empty($conf->salaries->enabled) && $user->rights->salaries->read)
 			        else print '&nbsp;';
 			        print '</td>';
 			    }
-			    
+
                 // Paid
                 print '<td align="right">'.price($obj->amount)."</td>";
                 print "</tr>\n";
diff --git a/htdocs/compta/clients.php b/htdocs/compta/clients.php
index 5c57603bf31..c65a7a670ae 100644
--- a/htdocs/compta/clients.php
+++ b/htdocs/compta/clients.php
@@ -69,7 +69,7 @@ if ($action == 'note')
 	$result = $db->query($sql);
 }
 
-if ($mode == 'search') 
+if ($mode == 'search')
 {
 	$resql=$db->query($sql);
 	if ($resql) {
@@ -144,11 +144,11 @@ if ($resql)
 	print '<table class="liste" width="100%">';
 	print '<tr class="liste_titre">';
 
-	print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","","",'valign="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"s.town","","",'valign="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("CustomerCode"),$_SERVER["PHP_SELF"],"s.code_client","","",'align="left"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("AccountancyCode"),$_SERVER["PHP_SELF"],"s.code_compta","","",'align="left"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"datec",$addu,"",'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom","","",'valign="center"',$sortfield,$sortorder);
+	print_liste_field_titre("Town",$_SERVER["PHP_SELF"],"s.town","","",'valign="center"',$sortfield,$sortorder);
+	print_liste_field_titre("CustomerCode",$_SERVER["PHP_SELF"],"s.code_client","","",'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre("AccountancyCode",$_SERVER["PHP_SELF"],"s.code_compta","","",'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre("DateCreation",$_SERVER["PHP_SELF"],"datec",$addu,"",'align="right"',$sortfield,$sortorder);
 	print "</tr>\n";
 
 	// Lignes des champs de filtre
@@ -178,7 +178,7 @@ if ($resql)
 	{
 		$obj = $db->fetch_object($resql);
 
-		
+
 
 		print '<tr class="oddeven">';
 		print '<td>';
diff --git a/htdocs/compta/deplacement/list.php b/htdocs/compta/deplacement/list.php
index e42e9f2325a..807ddfee700 100644
--- a/htdocs/compta/deplacement/list.php
+++ b/htdocs/compta/deplacement/list.php
@@ -133,12 +133,12 @@ if ($resql)
     print '<form method="get" action="'.$_SERVER["PHP_SELF"].'">'."\n";
     print '<table class="noborder" width="100%">';
     print "<tr class=\"liste_titre\">";
-    print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"d.rowid","","&socid=$socid",'',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"d.type","","&socid=$socid",'',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"d.dated","","&socid=$socid",'align="center"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Person"),$_SERVER["PHP_SELF"],"u.lastname","","&socid=$socid",'',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","","&socid=$socid",'',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("FeesKilometersOrAmout"),$_SERVER["PHP_SELF"],"d.km","","&socid=$socid",'align="right"',$sortfield,$sortorder);
+    print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"d.rowid","","&socid=$socid",'',$sortfield,$sortorder);
+    print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"d.type","","&socid=$socid",'',$sortfield,$sortorder);
+    print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"d.dated","","&socid=$socid",'align="center"',$sortfield,$sortorder);
+    print_liste_field_titre("Person",$_SERVER["PHP_SELF"],"u.lastname","","&socid=$socid",'',$sortfield,$sortorder);
+    print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom","","&socid=$socid",'',$sortfield,$sortorder);
+    print_liste_field_titre("FeesKilometersOrAmout",$_SERVER["PHP_SELF"],"d.km","","&socid=$socid",'align="right"',$sortfield,$sortorder);
     print_liste_field_titre('');
     print "</tr>\n";
 
@@ -178,7 +178,7 @@ if ($resql)
         $soc = new Societe($db);
         if ($obj->socid) $soc->fetch($obj->socid);
 
-        
+
         print '<tr class="oddeven">';
         // Id
         print '<td><a href="card.php?id='.$obj->rowid.'">'.img_object($langs->trans("ShowTrip"),"trip").' '.$obj->rowid.'</a></td>';
diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php
index 13e9a22d717..a4840dd37be 100644
--- a/htdocs/compta/facture/list.php
+++ b/htdocs/compta/facture/list.php
@@ -979,7 +979,7 @@ if ($resql)
                 $align=$extrafields->getAlignFlag($key);
     			$sortonfield = "ef.".$key;
     			if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-    			print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+    			print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
             }
         }
     }
diff --git a/htdocs/compta/paiement.php b/htdocs/compta/paiement.php
index 394e2f23841..37b23c03724 100644
--- a/htdocs/compta/paiement.php
+++ b/htdocs/compta/paiement.php
@@ -854,10 +854,10 @@ if (! GETPOST('action','aZ09'))
         print_barre_liste($langs->trans('Payments'), $page, $_SERVER["PHP_SELF"],'',$sortfield,$sortorder,'',$num);
         print '<table class="noborder" width="100%">';
         print '<tr class="liste_titre">';
-        print_liste_field_titre($langs->trans('Invoice'),$_SERVER["PHP_SELF"],'facnumber','','','',$sortfield,$sortorder);
-        print_liste_field_titre($langs->trans('Date'),$_SERVER["PHP_SELF"],'dp','','','',$sortfield,$sortorder);
-        print_liste_field_titre($langs->trans('Type'),$_SERVER["PHP_SELF"],'libelle','','','',$sortfield,$sortorder);
-        print_liste_field_titre($langs->trans('Amount'),$_SERVER["PHP_SELF"],'fa_amount','','','align="right"',$sortfield,$sortorder);
+        print_liste_field_titre('Invoice',$_SERVER["PHP_SELF"],'facnumber','','','',$sortfield,$sortorder);
+        print_liste_field_titre('Date',$_SERVER["PHP_SELF"],'dp','','','',$sortfield,$sortorder);
+        print_liste_field_titre('Type',$_SERVER["PHP_SELF"],'libelle','','','',$sortfield,$sortorder);
+        print_liste_field_titre('Amount',$_SERVER["PHP_SELF"],'fa_amount','','','align="right"',$sortfield,$sortorder);
 		print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch ');
         print "</tr>\n";
 
diff --git a/htdocs/compta/paiement/avalider.php b/htdocs/compta/paiement/avalider.php
index 0fe627cf7ac..370fbdfdd05 100644
--- a/htdocs/compta/paiement/avalider.php
+++ b/htdocs/compta/paiement/avalider.php
@@ -101,17 +101,17 @@ if ($resql)
 
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre">';
-    print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"p.rowid","","",'width="60"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"dp","","",'width="80" align="center"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"c.libelle","","","",$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("AmountTTC"),$_SERVER["PHP_SELF"],"c.libelle","","",'align="right"',$sortfield,$sortorder);
+    print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"p.rowid","","",'width="60"',$sortfield,$sortorder);
+    print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"dp","","",'width="80" align="center"',$sortfield,$sortorder);
+    print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"c.libelle","","","",$sortfield,$sortorder);
+    print_liste_field_titre("AmountTTC",$_SERVER["PHP_SELF"],"c.libelle","","",'align="right"',$sortfield,$sortorder);
     print_liste_field_titre('');
     print "</tr>\n";
 
     while ($i < min($num,$limit))
     {
         $objp = $db->fetch_object($resql);
-        
+
         print '<tr class="oddeven">';
         print '<td><a href="'.DOL_URL_ROOT.'/compta/paiement/card.php?id='.$objp->rowid.'">'.img_object($langs->trans("ShowPayment"),"payment").' '.$objp->rowid.'</a></td>';
         print '<td width="80" align="center">'.dol_print_date($db->jdate($objp->dp),'day')."</td>\n";
diff --git a/htdocs/compta/paiement/cheque/card.php b/htdocs/compta/paiement/cheque/card.php
index b5767a6f0bc..01787ca3372 100644
--- a/htdocs/compta/paiement/cheque/card.php
+++ b/htdocs/compta/paiement/cheque/card.php
@@ -373,7 +373,7 @@ if ($action == 'new')
 {
 	$paymentstatic=new Paiement($db);
 	$accountlinestatic=new AccountLine($db);
-    
+
 	$lines = array();
 
 	$now=dol_now();
@@ -474,7 +474,7 @@ if ($action == 'new')
 		$moreforfilter='';
         print '<div class="div-table-responsive-no-min">';
         print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
-		
+
 		print '<tr class="liste_titre">';
 		print '<td style="min-width: 120px">'.$langs->trans("DateChequeReceived").'</td>'."\n";
 		print '<td style="min-width: 120px">'.$langs->trans("ChequeNumber")."</td>\n";
@@ -529,18 +529,18 @@ if ($action == 'new')
     				print '&nbsp;';
     			}
     			print '</td>';
-    
+
     			print '<td align="center">';
     			print '<input id="'.$value["id"].'" class="flat checkforremise_'.$bid.'" checked type="checkbox" name="toRemise[]" value="'.$value["id"].'">';
     			print '</td>' ;
     			print '</tr>';
-    
+
     			$i++;
     		}
 		}
 		print "</table>";
         print '</div>';
-        
+
 		print '<div class="tabsAction">';
 		if ($user->rights->banque->cheque)
 		{
@@ -563,15 +563,15 @@ else
 	$accountstatic->fetch($object->account_id);
 
 	$linkback='<a href="'.DOL_URL_ROOT.'/compta/paiement/cheque/list.php">'.$langs->trans("BackToList").'</a>';
-	
+
 	$morehtmlref='';
 	dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
-	
-	
+
+
 	print '<div class="fichecenter">';
 	print '<div class="underbanner clearboth"></div>';
 
-	
+
 	print '<table class="border" width="100%">';
 
 	print '<tr><td class="titlefield">';
@@ -626,7 +626,7 @@ else
 	print '</td>';
 	print '</tr>';
 	*/
-	
+
 	print '<tr><td>'.$langs->trans('Account').'</td><td colspan="2">';
 	print $accountstatic->getNomUrl(1);
 	print '</td></tr>';
@@ -648,7 +648,7 @@ else
 
 	print '</div>';
 
-	
+
 	// List of cheques
 	$sql = "SELECT b.rowid, b.amount, b.num_chq, b.emetteur,";
 	$sql.= " b.dateo as date, b.datec as datec, b.banque,";
@@ -670,16 +670,16 @@ else
 		print '<table class="noborder" width="100%">';
 
 		$param="&amp;id=".$object->id;
-		
+
 		print '<tr class="liste_titre">';
-		print_liste_field_titre($langs->trans("Cheques"),'','','','','width="30"');
-		print_liste_field_titre($langs->trans("DateChequeReceived"),$_SERVER["PHP_SELF"],"b.dateo,b.rowid", "",$param,'align="center"',$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("Numero"),$_SERVER["PHP_SELF"],"b.num_chq", "",$param,'align="center"',$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("CheckTransmitter"),$_SERVER["PHP_SELF"],"b.emetteur", "",$param,"",$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("Bank"),$_SERVER["PHP_SELF"],"b.banque", "",$param,"",$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"b.amount", "",$param,'align="right"',$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("Payment"),$_SERVER["PHP_SELF"],"p.rowid", "",$param,'align="center"',$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("LineRecord"),$_SERVER["PHP_SELF"],"b.rowid", "",$param,'align="center"',$sortfield,$sortorder);
+		print_liste_field_titre("Cheques",'','','','','width="30"');
+		print_liste_field_titre("DateChequeReceived",$_SERVER["PHP_SELF"],"b.dateo,b.rowid", "",$param,'align="center"',$sortfield,$sortorder);
+		print_liste_field_titre("Numero",$_SERVER["PHP_SELF"],"b.num_chq", "",$param,'align="center"',$sortfield,$sortorder);
+		print_liste_field_titre("CheckTransmitter",$_SERVER["PHP_SELF"],"b.emetteur", "",$param,"",$sortfield,$sortorder);
+		print_liste_field_titre("Bank",$_SERVER["PHP_SELF"],"b.banque", "",$param,"",$sortfield,$sortorder);
+		print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"b.amount", "",$param,'align="right"',$sortfield,$sortorder);
+		print_liste_field_titre("Payment",$_SERVER["PHP_SELF"],"p.rowid", "",$param,'align="center"',$sortfield,$sortorder);
+		print_liste_field_titre("LineRecord",$_SERVER["PHP_SELF"],"b.rowid", "",$param,'align="center"',$sortfield,$sortorder);
 		print_liste_field_titre('');
 		print "</tr>\n";
 		$i=1;
@@ -692,7 +692,7 @@ else
     			if (! isset($accounts[$objp->bid]))
     				$accounts[$objp->bid]=0;
     			$accounts[$objp->bid] += 1;
-    
+
     			print '<tr class="oddeven">';
     			print '<td align="center">'.$i.'</td>';
     			print '<td align="center">'.dol_print_date($db->jdate($objp->date),'day').'</td>';	// Date operation
@@ -735,13 +735,13 @@ else
        			{
        				print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=reject_check&amp;lineid='.$objp->rowid.'">'.img_picto($langs->trans("RejectCheck"),'disable').'</a>';
        			}
-    			if ($objp->statut == 2) 
+    			if ($objp->statut == 2)
     			{
     				print ' &nbsp; '.img_picto($langs->trans('CheckRejected'),'statut8').'</a>';
     			}
     		    print '</td>';
     			print '</tr>';
-    			
+
     			$i++;
     		}
         }
@@ -751,7 +751,7 @@ else
             print $langs->trans("None");
             print '</td>';
         }
-                
+
 		print "</table>";
 		print "</div>";
 	}
diff --git a/htdocs/compta/paiement/cheque/list.php b/htdocs/compta/paiement/cheque/list.php
index 3e2b43b7f34..d08b6c734cc 100644
--- a/htdocs/compta/paiement/cheque/list.php
+++ b/htdocs/compta/paiement/cheque/list.php
@@ -172,12 +172,12 @@ if ($resql)
     print "</tr>\n";
 
     print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"bc.ref","",$param,"",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"dp","",$param,'align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Account"),$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("NbOfCheques"),$_SERVER["PHP_SELF"],"bc.nbcheque","",$param,'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"bc.amount","",$param,'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"bc.statut","",$param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"bc.ref","",$param,"",$sortfield,$sortorder);
+	print_liste_field_titre("DateCreation",$_SERVER["PHP_SELF"],"dp","",$param,'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre("Account",$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder);
+	print_liste_field_titre("NbOfCheques",$_SERVER["PHP_SELF"],"bc.nbcheque","",$param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"bc.amount","",$param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"bc.statut","",$param,'align="right"',$sortfield,$sortorder);
 	print_liste_field_titre('');
 	print "</tr>\n";
 
diff --git a/htdocs/compta/paiement/list.php b/htdocs/compta/paiement/list.php
index 4a7a2e3c81a..22b6ead8f56 100644
--- a/htdocs/compta/paiement/list.php
+++ b/htdocs/compta/paiement/list.php
@@ -177,7 +177,7 @@ else
     if ($search_account > 0)      	$sql .=" AND b.fk_account=".$search_account;
     if ($search_paymenttype != "")  $sql .=" AND c.code='".$db->escape($search_paymenttype)."'";
     if ($search_payment_num != '')  $sql .= natural_search('p.num_paiement', $search_payment_num);
-    if ($search_amount)      		$sql .= natural_search('p.amount', $search_amount, 1); 
+    if ($search_amount)      		$sql .= natural_search('p.amount', $search_amount, 1);
     if ($search_company)     		$sql .= natural_search('s.nom', $search_company);
 	// Add where from hooks
 	$parameters=array();
@@ -211,7 +211,7 @@ if ($resql)
     $param.=($search_amount?"&search_amount=".urlencode($search_amount):"");
     $param.=($search_payment_num?"&search_payment_num=".urlencode($search_payment_num):"");
     if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss);
-    
+
     print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
     if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
     print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
@@ -220,9 +220,9 @@ if ($resql)
     print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
     print '<input type="hidden" name="page" value="'.$page.'">';
     print '<input type="hidden" name="viewstatut" value="'.$viewstatut.'">';
-    
+
     print_barre_liste($langs->trans("ReceivedCustomersPayments"), $page, $_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num, $nbtotalofrecords,'title_accountancy.png', 0, '', '', $limit);
-    
+
     print '<div class="div-table-responsive">';
     print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
 
@@ -266,26 +266,26 @@ if ($resql)
     print "</tr>\n";
 
     print '<tr class="liste_titre">';
-    print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"p.rowid","",$param,"",$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"dp","",$param,'align="center"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"c.libelle","",$param,"",$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Numero"),$_SERVER["PHP_SELF"],"p.num_paiement","",$param,"",$sortfield,$sortorder);
+    print_liste_field_titre("RefPayment",$_SERVER["PHP_SELF"],"p.rowid","",$param,"",$sortfield,$sortorder);
+    print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"dp","",$param,'align="center"',$sortfield,$sortorder);
+    print_liste_field_titre("ThirdParty",$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder);
+    print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"c.libelle","",$param,"",$sortfield,$sortorder);
+    print_liste_field_titre("Numero",$_SERVER["PHP_SELF"],"p.num_paiement","",$param,"",$sortfield,$sortorder);
     if (! empty($conf->banque->enabled))
     {
-        print_liste_field_titre($langs->trans("Account"),$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder);
+        print_liste_field_titre("Account",$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder);
     }
-    print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"p.amount","",$param,'align="right"',$sortfield,$sortorder);
-    //print_liste_field_titre($langs->trans("Invoices"),"","","",$param,'align="left"',$sortfield,$sortorder);
-    
+    print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"p.amount","",$param,'align="right"',$sortfield,$sortorder);
+    //print_liste_field_titre("Invoices"),"","","",$param,'align="left"',$sortfield,$sortorder);
+
     $parameters=array();
     $reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters);    // Note that $action and $object may have been modified by hook
     print $hookmanager->resPrint;
-    
-    if (! empty($conf->global->BILL_ADD_PAYMENT_VALIDATION)) print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"p.statut","",$param,'align="right"',$sortfield,$sortorder);
+
+    if (! empty($conf->global->BILL_ADD_PAYMENT_VALIDATION)) print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"p.statut","",$param,'align="right"',$sortfield,$sortorder);
     print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch ');
     print "</tr>\n";
-    
+
     while ($i < min($num,$limit))
     {
         $objp = $db->fetch_object($resql);
@@ -314,7 +314,7 @@ if ($resql)
 
         // Type
         print '<td>'.$langs->trans("PaymentTypeShort".$objp->paiement_code).'</td>';
-        
+
         // Payment number
         print '<td>'.$objp->num_paiement.'</td>';
 
diff --git a/htdocs/compta/prelevement/bons.php b/htdocs/compta/prelevement/bons.php
index 6fcbb62b5d9..2a91ae13bfc 100644
--- a/htdocs/compta/prelevement/bons.php
+++ b/htdocs/compta/prelevement/bons.php
@@ -125,9 +125,9 @@ if ($result)
   print '</tr>';
 
   print '<tr class="liste_titre">';
-  print_liste_field_titre($langs->trans("WithdrawalsReceipts"),$_SERVER["PHP_SELF"],"p.ref",'','','class="liste_titre"');
-  print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"p.datec","","",'class="liste_titre" align="center"');
-  print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"","","",'align="center"');
+  print_liste_field_titre("WithdrawalsReceipts",$_SERVER["PHP_SELF"],"p.ref",'','','class="liste_titre"');
+  print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"p.datec","","",'class="liste_titre" align="center"');
+  print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"","","",'align="center"');
   print "</tr>\n";
 
   while ($i < min($num,$limit))
diff --git a/htdocs/compta/prelevement/card.php b/htdocs/compta/prelevement/card.php
index 1a0435862ea..20d7b0232e9 100644
--- a/htdocs/compta/prelevement/card.php
+++ b/htdocs/compta/prelevement/card.php
@@ -308,9 +308,9 @@ if ($id > 0)
 		print"\n<!-- debut table -->\n";
 		print '<table class="noborder" width="100%" cellspacing="0" cellpadding="4">';
 		print '<tr class="liste_titre">';
-		print_liste_field_titre($langs->trans("Lines"),$_SERVER["PHP_SELF"],"pl.rowid",'',$urladd);
-		print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom",'',$urladd);
-		print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"pl.amount","",$urladd,'align="right"');
+		print_liste_field_titre("Lines",$_SERVER["PHP_SELF"],"pl.rowid",'',$urladd);
+		print_liste_field_titre("ThirdParty",$_SERVER["PHP_SELF"],"s.nom",'',$urladd);
+		print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"pl.amount","",$urladd,'align="right"');
 		print_liste_field_titre('');
 		print "</tr>\n";
 
@@ -354,7 +354,7 @@ if ($id > 0)
 			print '</td></tr>';
 
 			$total += $obj->amount;
-			
+
 			$i++;
 		}
 
diff --git a/htdocs/compta/prelevement/demandes.php b/htdocs/compta/prelevement/demandes.php
index dd453bd7f4e..04ec746d7f6 100644
--- a/htdocs/compta/prelevement/demandes.php
+++ b/htdocs/compta/prelevement/demandes.php
@@ -106,14 +106,14 @@ if ($resql)
 	}
 
 	print '<form action="'.$_SERVER["PHP_SELF"].'" method="GET">';
-	
+
 	print '<table class="liste" width="100%">';
 
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("Bill"), $_SERVER["PHP_SELF"]);
-	print_liste_field_titre($langs->trans("Company"), $_SERVER["PHP_SELF"]);
-    print_liste_field_titre($langs->trans("Amount"), $_SERVER["PHP_SELF"], "", "", $param, 'align="right"');
-	print_liste_field_titre($langs->trans("DateRequest"), $_SERVER["PHP_SELF"], "", "", $param, 'align="center"');
+	print_liste_field_titre("Bill", $_SERVER["PHP_SELF"]);
+	print_liste_field_titre("Company", $_SERVER["PHP_SELF"]);
+    print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "", "", $param, 'align="right"');
+	print_liste_field_titre("DateRequest", $_SERVER["PHP_SELF"], "", "", $param, 'align="center"');
 	print_liste_field_titre('');
 	print '</tr>';
 
@@ -136,7 +136,7 @@ if ($resql)
 	while ($i < min($num,$limit))
 	{
 		$obj = $db->fetch_object($resql);
-		
+
 		print '<tr class="oddeven">';
 
 		// Ref facture
@@ -157,7 +157,7 @@ if ($resql)
         print '<td align="center">'.dol_print_date($db->jdate($obj->date_demande),'day').'</td>';
 
         print '<td align="right"></td>';
-        
+
 		print '</tr>';
 		$i++;
 	}
diff --git a/htdocs/compta/prelevement/factures.php b/htdocs/compta/prelevement/factures.php
index 996a1aabe88..437af529ad9 100644
--- a/htdocs/compta/prelevement/factures.php
+++ b/htdocs/compta/prelevement/factures.php
@@ -171,16 +171,16 @@ if ($result)
 	print '<input type="hidden" name="viewstatut" value="'.$viewstatut.'">';
 
 	$massactionbutton='';
-	
+
 	print_barre_liste('', $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, '', 0, '', '', $limit);
-  	
+
   	print"\n<!-- debut table -->\n";
   	print '<table class="liste" width="100%">';
   	print '<tr class="liste_titre">';
-  	print_liste_field_titre($langs->trans("Bill"),$_SERVER["PHP_SELF"],"p.ref",'',$param,'',$sortfield,$sortorder);
-  	print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom",'',$param,'',$sortfield,$sortorder);
-  	print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"f.total_ttc","",$param,'align="right"',$sortfield,$sortorder);
-  	print_liste_field_titre($langs->trans("StatusDebitCredit"),$_SERVER["PHP_SELF"],"","",$param,'align="center"',$sortfield,$sortorder);
+  	print_liste_field_titre("Bill",$_SERVER["PHP_SELF"],"p.ref",'',$param,'',$sortfield,$sortorder);
+  	print_liste_field_titre("ThirdParty",$_SERVER["PHP_SELF"],"s.nom",'',$param,'',$sortfield,$sortorder);
+  	print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"f.total_ttc","",$param,'align="right"',$sortfield,$sortorder);
+  	print_liste_field_titre("StatusDebitCredit",$_SERVER["PHP_SELF"],"","",$param,'align="center"',$sortfield,$sortorder);
 	print_liste_field_titre('');
 	print "</tr>\n";
 
@@ -194,12 +194,12 @@ if ($result)
 
      	$invoicetmp->id = $obj->facid;
      	$invoicetmp->ref = $obj->ref;
-     	
+
      	$thirdpartytmp->id = $obj->socid;
      	$thirdpartytmp->name = $obj->name;
-     	
+
       	print '<tr class="oddeven">';
-      	
+
       	print "<td>";
       	print $invoicetmp->getNomUrl(1);
         print "</td>\n";
@@ -228,13 +228,13 @@ if ($result)
 		}
 
       	print "</td>";
-      	
+
       	print "<td></td>";
-      	
+
       	print "</tr>\n";
 
       	$total += $obj->total_ttc;
-      	
+
       	$i++;
     }
 
diff --git a/htdocs/compta/prelevement/list.php b/htdocs/compta/prelevement/list.php
index 6251a6f6521..245903101cf 100644
--- a/htdocs/compta/prelevement/list.php
+++ b/htdocs/compta/prelevement/list.php
@@ -149,13 +149,13 @@ if ($result)
     print '</tr>';
 
     print '<tr class="liste_titre">';
-    print_liste_field_titre($langs->trans("Line"),$_SERVER["PHP_SELF"]);
-    print_liste_field_titre($langs->trans("WithdrawalsReceipts"),$_SERVER["PHP_SELF"],"p.ref");
-    print_liste_field_titre($langs->trans("Bill"),$_SERVER["PHP_SELF"],"f.facnumber",'',$urladd);
-    print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom");
-    print_liste_field_titre($langs->trans("CustomerCode"),$_SERVER["PHP_SELF"],"s.code_client",'','','align="center"');
-    print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"p.datec","","",'align="center"');
-    print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"pl.amount","","",'align="right"');
+    print_liste_field_titre("Line",$_SERVER["PHP_SELF"]);
+    print_liste_field_titre("WithdrawalsReceipts",$_SERVER["PHP_SELF"],"p.ref");
+    print_liste_field_titre("Bill",$_SERVER["PHP_SELF"],"f.facnumber",'',$urladd);
+    print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom");
+    print_liste_field_titre("CustomerCode",$_SERVER["PHP_SELF"],"s.code_client",'','','align="center"');
+    print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"p.datec","","",'align="center"');
+    print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"pl.amount","","",'align="right"');
     print_liste_field_titre('');
 	print "</tr>\n";
 
diff --git a/htdocs/compta/prelevement/rejets.php b/htdocs/compta/prelevement/rejets.php
index 0f737a50f22..3c18207f451 100644
--- a/htdocs/compta/prelevement/rejets.php
+++ b/htdocs/compta/prelevement/rejets.php
@@ -89,9 +89,9 @@ if ($result)
 	print"\n<!-- debut table -->\n";
 	print '<table class="noborder" width="100%" cellspacing="0" cellpadding="4">';
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("Line"),$_SERVER["PHP_SELF"],"p.ref",'',$urladd);
-	print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom",'',$urladd);
-	print_liste_field_titre($langs->trans("Reason"),$_SERVER["PHP_SELF"],"pr.motif","",$urladd);
+	print_liste_field_titre("Line",$_SERVER["PHP_SELF"],"p.ref",'',$urladd);
+	print_liste_field_titre("ThirdParty",$_SERVER["PHP_SELF"],"s.nom",'',$urladd);
+	print_liste_field_titre("Reason",$_SERVER["PHP_SELF"],"pr.motif","",$urladd);
 	print "</tr>\n";
 
 	$total = 0;
@@ -110,7 +110,7 @@ if ($result)
 
 		print '<td>'.$rej->motifs[$obj->motif].'</td>';
 		print "</tr>\n";
-		
+
 		$i++;
 	}
 
diff --git a/htdocs/compta/resultat/clientfourn.php b/htdocs/compta/resultat/clientfourn.php
index 62ee285d70b..a7cf8769711 100644
--- a/htdocs/compta/resultat/clientfourn.php
+++ b/htdocs/compta/resultat/clientfourn.php
@@ -177,12 +177,12 @@ if ($date_endyear) $param.='&date_endyear='.$date_startyear;
 print '<table class="noborder" width="100%">';
 print '<tr class="liste_titre">';
 print_liste_field_titre('');
-print_liste_field_titre($langs->trans("Name"), $_SERVER["PHP_SELF"],'s.nom, s.rowid','',$param,'',$sortfield,$sortorder);
+print_liste_field_titre("Name", $_SERVER["PHP_SELF"],'s.nom, s.rowid','',$param,'',$sortfield,$sortorder);
 if ($modecompta == 'CREANCES-DETTES')
 {
-	print_liste_field_titre($langs->trans("AmountHT"), $_SERVER["PHP_SELF"],'amount_ht','',$param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("AmountHT", $_SERVER["PHP_SELF"],'amount_ht','',$param,'align="right"',$sortfield,$sortorder);
 }
-print_liste_field_titre($langs->trans("AmountTTC"), $_SERVER["PHP_SELF"],'amount_ttc','',$param,'align="right"',$sortfield,$sortorder);
+print_liste_field_titre("AmountTTC", $_SERVER["PHP_SELF"],'amount_ttc','',$param,'align="right"',$sortfield,$sortorder);
 print "</tr>\n";
 
 /*
@@ -234,7 +234,7 @@ if ($result) {
     while ($i < $num)
     {
         $objp = $db->fetch_object($result);
-        
+
         print '<tr class="oddeven"><td>&nbsp;</td>';
         print "<td>".$langs->trans("Bills").' <a href="'.DOL_URL_ROOT.'/compta/facture/list.php?socid='.$objp->socid.'">'.$objp->name."</td>\n";
 
@@ -278,7 +278,7 @@ if ($modecompta != 'CREANCES-DETTES')
             while ($i < $num)
             {
                 $objp = $db->fetch_object($result);
-                
+
 
                 print '<tr class="oddeven"><td>&nbsp;</td>';
                 print "<td>".$langs->trans("Bills")." ".$langs->trans("Other")." (".$langs->trans("PaymentsNotLinkedToInvoice").")\n";
@@ -301,7 +301,7 @@ if ($modecompta != 'CREANCES-DETTES')
 }
 
 if ($total_ttc == 0)
-{    
+{
     print '<tr class="oddeven"><td>&nbsp;</td>';
     print '<td colspan="3" class="opacitymedium">'.$langs->trans("None").'</td>';
     print '</tr>';
@@ -363,7 +363,7 @@ if ($result) {
         while ($i < $num)
         {
             $objp = $db->fetch_object($result);
-            
+
             print '<tr class="oddeven"><td>&nbsp;</td>';
             print "<td>".$langs->trans("Bills")." <a href=\"".DOL_URL_ROOT."/fourn/facture/list.php?socid=".$objp->socid."\">".$objp->name."</a></td>\n";
 
@@ -381,7 +381,7 @@ if ($result) {
         }
     }
     else
-    {        
+    {
         print '<tr class="oddeven"><td>&nbsp;</td>';
         print '<td colspan="3" class="opacitymedium">'.$langs->trans("None").'</td>';
         print '</tr>';
@@ -581,7 +581,7 @@ if (! empty($conf->salaries->enabled))
 	    $column = 'p.datep';
 	}
 
-	print '<tr><td colspan="4">'.$langs->trans("Salaries").'</td></tr>';    
+	print '<tr><td colspan="4">'.$langs->trans("Salaries").'</td></tr>';
 	$sql = "SELECT u.rowid, u.firstname, u.lastname, p.fk_user, p.label as label, date_format($column,'%Y-%m') as dm, sum(p.amount) as amount";
 	$sql.= " FROM ".MAIN_DB_PREFIX."payment_salary as p";
 	$sql.= " INNER JOIN ".MAIN_DB_PREFIX."user as u ON u.rowid=p.fk_user";
@@ -595,7 +595,7 @@ if (! empty($conf->salaries->enabled))
     if ($newsortfield == 'amount_ht') $newsortfield = 'amount';
     if ($newsortfield == 'amount_ttc') $newsortfield = 'amount';
 	$sql.= $db->order($newsortfield, $sortorder);
-	
+
 	dol_syslog("get payment salaries");
 	$result=$db->query($sql);
 	$subtotal_ht = 0;
@@ -676,7 +676,7 @@ if (! empty($conf->expensereport->enabled))
 	{
 		$sql.= " AND $column >= '".$db->idate($date_start)."' AND $column <= '".$db->idate($date_end)."'";
 	}
-	
+
 	$sql.= " GROUP BY u.rowid, p.rowid, p.ref, u.firstname, u.lastname, dm";
     $newsortfield = $sortfield;
     if ($newsortfield == 's.nom, s.rowid') $newsortfield = 'p.ref';
@@ -746,7 +746,7 @@ if (! empty($conf->don->enabled))
 	    $sql.= " INNER JOIN ".MAIN_DB_PREFIX."payment_donation as pe ON pe.fk_donation = p.rowid";
 	    $sql.= " INNER JOIN ".MAIN_DB_PREFIX."c_paiement as c ON pe.fk_typepayment = c.id";
 	    $sql.= " WHERE p.entity = ".getEntity('donation');
-	    $sql.= " AND fk_statut >= 2";	 
+	    $sql.= " AND fk_statut >= 2";
 	}
 	if (! empty($date_start) && ! empty($date_end))
 		$sql.= " AND p.datedon >= '".$db->idate($date_start)."' AND p.datedon <= '".$db->idate($date_end)."'";
diff --git a/htdocs/compta/salaries/index.php b/htdocs/compta/salaries/index.php
index b25df5a71ac..f7c722e3e1d 100644
--- a/htdocs/compta/salaries/index.php
+++ b/htdocs/compta/salaries/index.php
@@ -197,13 +197,13 @@ if ($result)
     print '</td>';
 
     print '<tr class="liste_titre">';
-    print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"s.rowid","",$param,"",$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Employee"),$_SERVER["PHP_SELF"],"u.rowid","",$param,"",$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"s.label","",$param,'align="left"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"s.datep","",$param,'align="center"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("PaymentMode"),$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder);
-    if (! empty($conf->banque->enabled)) print_liste_field_titre($langs->trans("BankAccount"),$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"s.amount","",$param,'align="right"',$sortfield,$sortorder);
+    print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"s.rowid","",$param,"",$sortfield,$sortorder);
+    print_liste_field_titre("Employee",$_SERVER["PHP_SELF"],"u.rowid","",$param,"",$sortfield,$sortorder);
+    print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"s.label","",$param,'align="left"',$sortfield,$sortorder);
+    print_liste_field_titre("DatePayment",$_SERVER["PHP_SELF"],"s.datep","",$param,'align="center"',$sortfield,$sortorder);
+    print_liste_field_titre("PaymentMode",$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder);
+    if (! empty($conf->banque->enabled)) print_liste_field_titre("BankAccount",$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder);
+    print_liste_field_titre("PayedByThisPayment",$_SERVER["PHP_SELF"],"s.amount","",$param,'align="right"',$sortfield,$sortorder);
     print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch ');
     print "</tr>\n";
 
diff --git a/htdocs/compta/sociales/index.php b/htdocs/compta/sociales/index.php
index 50dd4d430ed..8723541efda 100644
--- a/htdocs/compta/sociales/index.php
+++ b/htdocs/compta/sociales/index.php
@@ -154,7 +154,7 @@ if ($resql)
 	print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
     print '<input type="hidden" name="page" value="'.$page.'">';
 	print '<input type="hidden" name="viewstatut" value="'.$viewstatut.'">';
-	
+
 	if ($year)
 	{
 	    $center=($year?"<a href='index.php?year=".($year-1)."'>".img_previous()."</a> ".$langs->trans("Year")." $year <a href='index.php?year=".($year+1)."'>".img_next()."</a>":"");
@@ -177,7 +177,7 @@ if ($resql)
 	{
 	    print '<div class="div-table-responsive">';
 	    print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
-	    
+
 		print '<tr class="liste_titre_filter">';
 		// Ref
 		print '<td class="liste_titre" align="left">';
@@ -209,16 +209,16 @@ if ($resql)
 		print "</tr>\n";
 
 		print '<tr class="liste_titre">';
-		print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"id","",$param,"",$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"cs.libelle","",$param,'align="left"',$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"periode","",$param,'align="center"',$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"cs.amount","",$param,'align="right"',$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("DateDue"),$_SERVER["PHP_SELF"],"cs.date_ech","",$param,'align="center"',$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"cs.paye","",$param,'align="right"',$sortfield,$sortorder);
+		print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"id","",$param,"",$sortfield,$sortorder);
+		print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"cs.libelle","",$param,'align="left"',$sortfield,$sortorder);
+		print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder);
+		print_liste_field_titre("PeriodEndDate",$_SERVER["PHP_SELF"],"periode","",$param,'align="center"',$sortfield,$sortorder);
+		print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"cs.amount","",$param,'align="right"',$sortfield,$sortorder);
+		print_liste_field_titre("DateDue",$_SERVER["PHP_SELF"],"cs.date_ech","",$param,'align="center"',$sortfield,$sortorder);
+		print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"cs.paye","",$param,'align="right"',$sortfield,$sortorder);
 		print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch ');
 		print "</tr>\n";
-		
+
 		$i=0;
 		$totalarray=array();
 		while ($i < min($num,$limit))
@@ -258,7 +258,7 @@ if ($resql)
 			if (! $i) $totalarray['nbfield']++;
 		    if (! $i) $totalarray['totalttcfield']=$totalarray['nbfield'];
 			$totalarray['totalttc'] += $obj->amount;
-			
+
 			// Due date
 			print '<td width="110" align="center">'.dol_print_date($db->jdate($obj->date_ech), 'day').'</td>';
 
@@ -285,7 +285,7 @@ if ($resql)
 	        print '<td></td>';
 	        print '</tr>';
 		}
-		
+
 		print '</table>';
 		print '</div>';
 	}
diff --git a/htdocs/compta/sociales/payments.php b/htdocs/compta/sociales/payments.php
index 6c88305f72e..879e9b69ee7 100644
--- a/htdocs/compta/sociales/payments.php
+++ b/htdocs/compta/sociales/payments.php
@@ -88,7 +88,7 @@ print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
 print '<input type="hidden" name="page" value="'.$page.'">';
 print '<input type="hidden" name="mode" value="'.$mode.'">';
 
-if ($mode != 'sconly') 
+if ($mode != 'sconly')
 {
     $center=($year?'<a href="index.php?year='.($year-1).$param.'">'.img_previous($langs->trans("Previous"), 'class="valignbottom"')."</a> ".$langs->trans("Year").' '.$year.' <a href="index.php?year='.($year+1).$param.'">'.img_next($langs->trans("Next"), 'class="valignbottom"')."</a>":"");
     print_barre_liste($title,$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,$center,$num,$totalnboflines, 'title_accountancy', 0, '', '', $limit, 1);
@@ -116,14 +116,14 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire)
 
 	print '<table class="noborder" width="100%">';
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"pc.rowid","",$param,'',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"pc.datep","",$param,'align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"pct.code","",$param,'',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("LabelContrib"),$_SERVER["PHP_SELF"],"c.libelle","",$param,'',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("TypeContrib"),$_SERVER["PHP_SELF"],"cs.fk_type","",$param,'',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"cs.date_ech","",$param,'width="140px"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("ExpectedToPay"),$_SERVER["PHP_SELF"],"cs.amount","",$param,'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"pc.amount","",$param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("RefPayment",$_SERVER["PHP_SELF"],"pc.rowid","",$param,'',$sortfield,$sortorder);
+	print_liste_field_titre("DatePayment",$_SERVER["PHP_SELF"],"pc.datep","",$param,'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"pct.code","",$param,'',$sortfield,$sortorder);
+	print_liste_field_titre("LabelContrib",$_SERVER["PHP_SELF"],"c.libelle","",$param,'',$sortfield,$sortorder);
+	print_liste_field_titre("TypeContrib",$_SERVER["PHP_SELF"],"cs.fk_type","",$param,'',$sortfield,$sortorder);
+	print_liste_field_titre("PeriodEndDate",$_SERVER["PHP_SELF"],"cs.date_ech","",$param,'width="140px"',$sortfield,$sortorder);
+	print_liste_field_titre("ExpectedToPay",$_SERVER["PHP_SELF"],"cs.amount","",$param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("PayedByThisPayment",$_SERVER["PHP_SELF"],"pc.amount","",$param,'align="right"',$sortfield,$sortorder);
 	print "</tr>\n";
 
 	$sql = "SELECT c.id, c.libelle as lib,";
@@ -246,12 +246,12 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire)
 		    $total = 0 ;
 		    print '<table class="noborder" width="100%">';
 		    print '<tr class="liste_titre">';
-			print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"pv.datev","",$param,'width="140px"',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"pv.label","",$param,'',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("ExpectedToPay"),$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"pv.rowid","",$param,'',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"pv.datev","",$param,'align="center"',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder);
+			print_liste_field_titre("PeriodEndDate",$_SERVER["PHP_SELF"],"pv.datev","",$param,'width="140px"',$sortfield,$sortorder);
+			print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"pv.label","",$param,'',$sortfield,$sortorder);
+			print_liste_field_titre("ExpectedToPay",$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder);
+			print_liste_field_titre("RefPayment",$_SERVER["PHP_SELF"],"pv.rowid","",$param,'',$sortfield,$sortorder);
+			print_liste_field_titre("DatePayment",$_SERVER["PHP_SELF"],"pv.datev","",$param,'align="center"',$sortfield,$sortorder);
+			print_liste_field_titre("PayedByThisPayment",$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder);
 		    print "</tr>\n";
 		    $var=1;
 		    while ($i < $num)
@@ -260,7 +260,7 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire)
 
 		        $total = $total + $obj->amount;
 
-		        
+
 		        print '<tr class="oddeven">';
 		        print '<td align="left">'.dol_print_date($db->jdate($obj->dm),'day').'</td>'."\n";
 
@@ -348,12 +348,12 @@ while($j<$numlt)
 			$total = 0 ;
 			print '<table class="noborder" width="100%">';
 			print '<tr class="liste_titre">';
-			print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"pv.datev","",$param,'width="120"',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"pv.label","",$param,'',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("ExpectedToPay"),$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"pv.rowid","",$param,'',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"pv.datep","",$param,'align="center"',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder);
+			print_liste_field_titre("PeriodEndDate",$_SERVER["PHP_SELF"],"pv.datev","",$param,'width="120"',$sortfield,$sortorder);
+			print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"pv.label","",$param,'',$sortfield,$sortorder);
+			print_liste_field_titre("ExpectedToPay",$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder);
+			print_liste_field_titre("RefPayment",$_SERVER["PHP_SELF"],"pv.rowid","",$param,'',$sortfield,$sortorder);
+			print_liste_field_titre("DatePayment",$_SERVER["PHP_SELF"],"pv.datep","",$param,'align="center"',$sortfield,$sortorder);
+			print_liste_field_titre("PayedByThisPayment",$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder);
 			print "</tr>\n";
 			$var=1;
 			while ($i < $num)
@@ -362,7 +362,7 @@ while($j<$numlt)
 
 				$total = $total + $obj->amount;
 
-				
+
 				print '<tr class="oddeven">';
 				print '<td align="left">'.dol_print_date($db->jdate($obj->dm),'day').'</td>'."\n";
 
@@ -408,7 +408,7 @@ if (! empty($conf->salaries->enabled) && $user->rights->salaries->read)
         $sal = new PaymentSalary($db);
 
         print "<br>";
-        
+
         print_fiche_titre($langs->trans("SalariesPayments").($year?' ('.$langs->trans("Year").' '.$year.')':''), '', '');
 
         $sql = "SELECT s.rowid, s.amount, s.label, s.datep as datep, s.datev as datev, s.datesp, s.dateep, s.salary, u.salary as current_salary";
@@ -430,12 +430,12 @@ if (! empty($conf->salaries->enabled) && $user->rights->salaries->read)
             $total = 0 ;
             print '<table class="noborder" width="100%">';
             print '<tr class="liste_titre">';
-            print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"s.dateep","",$param,'width="140px"',$sortfield,$sortorder);
-            print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"s.label","",$param,'',$sortfield,$sortorder);
-            print_liste_field_titre($langs->trans("ExpectedToPay"),$_SERVER["PHP_SELF"],"s.amount","",$param,'align="right"',$sortfield,$sortorder);
-            print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"s.rowid","",$param,'',$sortfield,$sortorder);
-            print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"s.datep","",$param,'align="center"',$sortfield,$sortorder);
-            print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"s.amount","",$param,'align="right"',$sortfield,$sortorder);
+            print_liste_field_titre("PeriodEndDate",$_SERVER["PHP_SELF"],"s.dateep","",$param,'width="140px"',$sortfield,$sortorder);
+            print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"s.label","",$param,'',$sortfield,$sortorder);
+            print_liste_field_titre("ExpectedToPay",$_SERVER["PHP_SELF"],"s.amount","",$param,'align="right"',$sortfield,$sortorder);
+            print_liste_field_titre("RefPayment",$_SERVER["PHP_SELF"],"s.rowid","",$param,'',$sortfield,$sortorder);
+            print_liste_field_titre("DatePayment",$_SERVER["PHP_SELF"],"s.datep","",$param,'align="center"',$sortfield,$sortorder);
+            print_liste_field_titre("PayedByThisPayment",$_SERVER["PHP_SELF"],"s.amount","",$param,'align="right"',$sortfield,$sortorder);
             print "</tr>\n";
             $var=1;
             while ($i < $num)
@@ -444,7 +444,7 @@ if (! empty($conf->salaries->enabled) && $user->rights->salaries->read)
 
                 $total = $total + $obj->amount;
 
-                
+
                 print '<tr class="oddeven">';
 
                 print '<td align="left">'.dol_print_date($db->jdate($obj->dateep),'day').'</td>'."\n";
diff --git a/htdocs/compta/tva/reglement.php b/htdocs/compta/tva/reglement.php
index c75730d2f8e..0d4d827e694 100644
--- a/htdocs/compta/tva/reglement.php
+++ b/htdocs/compta/tva/reglement.php
@@ -156,9 +156,9 @@ if ($result)
 	print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
 	print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
 	print '<input type="hidden" name="page" value="'.$page.'">';
-	
+
 	print_barre_liste($langs->trans("VATPayments"),$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$totalnboflines, 'title_accountancy', 0, '', '', $limit);
-	
+
 	print '<div class="div-table-responsive">';
 	print '<table class="noborder" width="100%">';
 
@@ -190,16 +190,16 @@ if ($result)
 	print "</tr>\n";
 
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"t.rowid","",$param,"",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"t.label","",$param,'align="left"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("DateValue"),$_SERVER["PHP_SELF"],"dv","",$param,'align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"dp","",$param,'align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder);
-	if (! empty($conf->banque->enabled)) print_liste_field_titre($langs->trans("Account"),$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"t.amount","",$param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"t.rowid","",$param,"",$sortfield,$sortorder);
+	print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"t.label","",$param,'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre("DateValue",$_SERVER["PHP_SELF"],"dv","",$param,'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre("DatePayment",$_SERVER["PHP_SELF"],"dp","",$param,'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder);
+	if (! empty($conf->banque->enabled)) print_liste_field_titre("Account",$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder);
+	print_liste_field_titre("PayedByThisPayment",$_SERVER["PHP_SELF"],"t.amount","",$param,'align="right"',$sortfield,$sortorder);
 	print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch ');
 	print "</tr>\n";
-	
+
 	while ($i < min($num,$limit))
     {
         $obj = $db->fetch_object($result);
@@ -252,7 +252,7 @@ if ($result)
 
         $i++;
     }
-    
+
     $colspan=5;
     if (! empty($conf->banque->enabled)) $colspan++;
     print '<tr class="liste_total"><td colspan="'.$colspan.'">'.$langs->trans("Total").'</td>';
@@ -261,7 +261,7 @@ if ($result)
 
     print "</table>";
     print '</div>';
-    
+
 	print '</form>';
 
     $db->free($result);
diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php
index a0f7ae9a87d..80bd079135e 100644
--- a/htdocs/contact/list.php
+++ b/htdocs/contact/list.php
@@ -613,19 +613,19 @@ print '</tr>';
 
 // Ligne des titres
 print '<tr class="liste_titre">';
-if (! empty($arrayfields['p.lastname']['checked']))            print_liste_field_titre($langs->trans("Lastname"),$_SERVER["PHP_SELF"],"p.lastname", $begin, $param, '', $sortfield,$sortorder);
-if (! empty($arrayfields['p.firstname']['checked']))            print_liste_field_titre($langs->trans("Firstname"),$_SERVER["PHP_SELF"],"p.firstname", $begin, $param, '', $sortfield,$sortorder);
-if (! empty($arrayfields['p.zip']['checked']))            print_liste_field_titre($langs->trans("Zip"),$_SERVER["PHP_SELF"],"p.zip", $begin, $param, '', $sortfield,$sortorder);
-if (! empty($arrayfields['p.town']['checked']))            print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"p.town", $begin, $param, '', $sortfield,$sortorder);
-if (! empty($arrayfields['p.poste']['checked']))            print_liste_field_titre($langs->trans("PostOrFunction"),$_SERVER["PHP_SELF"],"p.poste", $begin, $param, '', $sortfield,$sortorder);
-if (! empty($arrayfields['p.phone']['checked']))            print_liste_field_titre($langs->trans("Phone"),$_SERVER["PHP_SELF"],"p.phone", $begin, $param, '', $sortfield,$sortorder);
-if (! empty($arrayfields['p.phone_perso']['checked']))            print_liste_field_titre($langs->trans("PhonePerso"),$_SERVER["PHP_SELF"],"p.phone_perso", $begin, $param, '', $sortfield,$sortorder);
-if (! empty($arrayfields['p.phone_mobile']['checked']))            print_liste_field_titre($langs->trans("PhoneMobile"),$_SERVER["PHP_SELF"],"p.phone_mobile", $begin, $param, '', $sortfield,$sortorder);
-if (! empty($arrayfields['p.fax']['checked']))            print_liste_field_titre($langs->trans("Fax"),$_SERVER["PHP_SELF"],"p.fax", $begin, $param, '', $sortfield,$sortorder);
-if (! empty($arrayfields['p.email']['checked']))            print_liste_field_titre($langs->trans("EMail"),$_SERVER["PHP_SELF"],"p.email", $begin, $param, '', $sortfield,$sortorder);
-if (! empty($arrayfields['p.skype']['checked']))            print_liste_field_titre($langs->trans("Skype"),$_SERVER["PHP_SELF"],"p.skype", $begin, $param, '', $sortfield,$sortorder);
-if (! empty($arrayfields['p.thirdparty']['checked']))            print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom", $begin, $param, '', $sortfield,$sortorder);
-if (! empty($arrayfields['p.priv']['checked']))            print_liste_field_titre($langs->trans("ContactVisibility"),$_SERVER["PHP_SELF"],"p.priv", $begin, $param, 'align="center"', $sortfield,$sortorder);
+if (! empty($arrayfields['p.lastname']['checked']))            print_liste_field_titre("Lastname",$_SERVER["PHP_SELF"],"p.lastname", $begin, $param, '', $sortfield,$sortorder);
+if (! empty($arrayfields['p.firstname']['checked']))            print_liste_field_titre("Firstname",$_SERVER["PHP_SELF"],"p.firstname", $begin, $param, '', $sortfield,$sortorder);
+if (! empty($arrayfields['p.zip']['checked']))            print_liste_field_titre("Zip",$_SERVER["PHP_SELF"],"p.zip", $begin, $param, '', $sortfield,$sortorder);
+if (! empty($arrayfields['p.town']['checked']))            print_liste_field_titre("Town",$_SERVER["PHP_SELF"],"p.town", $begin, $param, '', $sortfield,$sortorder);
+if (! empty($arrayfields['p.poste']['checked']))            print_liste_field_titre("PostOrFunction",$_SERVER["PHP_SELF"],"p.poste", $begin, $param, '', $sortfield,$sortorder);
+if (! empty($arrayfields['p.phone']['checked']))            print_liste_field_titre("Phone",$_SERVER["PHP_SELF"],"p.phone", $begin, $param, '', $sortfield,$sortorder);
+if (! empty($arrayfields['p.phone_perso']['checked']))            print_liste_field_titre("PhonePerso",$_SERVER["PHP_SELF"],"p.phone_perso", $begin, $param, '', $sortfield,$sortorder);
+if (! empty($arrayfields['p.phone_mobile']['checked']))            print_liste_field_titre("PhoneMobile",$_SERVER["PHP_SELF"],"p.phone_mobile", $begin, $param, '', $sortfield,$sortorder);
+if (! empty($arrayfields['p.fax']['checked']))            print_liste_field_titre("Fax",$_SERVER["PHP_SELF"],"p.fax", $begin, $param, '', $sortfield,$sortorder);
+if (! empty($arrayfields['p.email']['checked']))            print_liste_field_titre("EMail",$_SERVER["PHP_SELF"],"p.email", $begin, $param, '', $sortfield,$sortorder);
+if (! empty($arrayfields['p.skype']['checked']))            print_liste_field_titre("Skype",$_SERVER["PHP_SELF"],"p.skype", $begin, $param, '', $sortfield,$sortorder);
+if (! empty($arrayfields['p.thirdparty']['checked']))            print_liste_field_titre("ThirdParty",$_SERVER["PHP_SELF"],"s.nom", $begin, $param, '', $sortfield,$sortorder);
+if (! empty($arrayfields['p.priv']['checked']))            print_liste_field_titre("ContactVisibility",$_SERVER["PHP_SELF"],"p.priv", $begin, $param, 'align="center"', $sortfield,$sortorder);
 // Extra fields
 if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
 {
@@ -636,7 +636,7 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab
 			$align=$extrafields->getAlignFlag($key);
 			$sortonfield = "ef.".$key;
 			if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-			print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+			print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
        }
    }
 }
@@ -644,9 +644,9 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab
 $parameters=array('arrayfields'=>$arrayfields);
 $reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters);    // Note that $action and $object may have been modified by hook
 print $hookmanager->resPrint;
-if (! empty($arrayfields['p.datec']['checked']))  print_liste_field_titre($langs->trans("DateCreationShort"),$_SERVER["PHP_SELF"],"p.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
-if (! empty($arrayfields['p.tms']['checked']))    print_liste_field_titre($langs->trans("DateModificationShort"),$_SERVER["PHP_SELF"],"p.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
-if (! empty($arrayfields['p.statut']['checked'])) print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"p.statut","",$param,'align="center"',$sortfield,$sortorder);
+if (! empty($arrayfields['p.datec']['checked']))  print_liste_field_titre("DateCreationShort",$_SERVER["PHP_SELF"],"p.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
+if (! empty($arrayfields['p.tms']['checked']))    print_liste_field_titre("DateModificationShort",$_SERVER["PHP_SELF"],"p.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
+if (! empty($arrayfields['p.statut']['checked'])) print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"p.statut","",$param,'align="center"',$sortfield,$sortorder);
 print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ');
 print "</tr>\n";
 
diff --git a/htdocs/contrat/list.php b/htdocs/contrat/list.php
index d53bc0a3ee1..e38fa6ceab3 100644
--- a/htdocs/contrat/list.php
+++ b/htdocs/contrat/list.php
@@ -544,7 +544,7 @@ if ($resql)
 				$align=$extrafields->getAlignFlag($key);
     			$sortonfield = "ef.".$key;
     			if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-    			print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+    			print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
            }
 	   }
 	}
diff --git a/htdocs/contrat/services.php b/htdocs/contrat/services.php
index 6534ef1e362..54e4d271c6d 100644
--- a/htdocs/contrat/services.php
+++ b/htdocs/contrat/services.php
@@ -374,7 +374,7 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab
             $align=$extrafields->getAlignFlag($key);
 			$sortonfield = "ef.".$key;
 			if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-			print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+			print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
         }
     }
 }
diff --git a/htdocs/core/class/html.formactions.class.php b/htdocs/core/class/html.formactions.class.php
index a6ec8db928a..7b312ea784a 100644
--- a/htdocs/core/class/html.formactions.class.php
+++ b/htdocs/core/class/html.formactions.class.php
@@ -194,11 +194,11 @@ class FormActions
         	print '<div class="div-table-responsive">';
         	print '<table class="noborder'.($morecss?' '.$morecss:'').'" width="100%">';
         	print '<tr class="liste_titre">';
-        	print_liste_field_titre($langs->trans('Ref'), $_SERVER["PHP_SELF"], '', $page, $param, '');
-        	print_liste_field_titre($langs->trans('Action'), $_SERVER["PHP_SELF"], '', $page, $param, '');
-        	print_liste_field_titre($langs->trans('Type'), $_SERVER["PHP_SELF"], '', $page, $param, '');
-        	print_liste_field_titre($langs->trans('Date'), $_SERVER["PHP_SELF"], '', $page, $param, '');
-        	print_liste_field_titre($langs->trans('By'), $_SERVER["PHP_SELF"], '', $page, $param, '');
+        	print_liste_field_titre('Ref', $_SERVER["PHP_SELF"], '', $page, $param, '');
+        	print_liste_field_titre('Action', $_SERVER["PHP_SELF"], '', $page, $param, '');
+        	print_liste_field_titre('Type', $_SERVER["PHP_SELF"], '', $page, $param, '');
+        	print_liste_field_titre('Date', $_SERVER["PHP_SELF"], '', $page, $param, '');
+        	print_liste_field_titre('By', $_SERVER["PHP_SELF"], '', $page, $param, '');
         	print_liste_field_titre('', $_SERVER["PHP_SELF"], '', $page, $param, 'align="right"');
         	print '</tr>';
         	print "\n";
diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php
index c02d2b5c2be..0db46e416cb 100644
--- a/htdocs/core/class/html.formfile.class.php
+++ b/htdocs/core/class/html.formfile.class.php
@@ -1309,10 +1309,10 @@ class FormFile
         print '<tr class="liste_titre">';
         $sortref="fullname";
         if ($modulepart == 'invoice_supplier') $sortref='level1name';
-        print_liste_field_titre($langs->trans("Ref"),$url,$sortref,"",$param,'align="left"',$sortfield,$sortorder);
-        print_liste_field_titre($langs->trans("Documents2"),$url,"name","",$param,'align="left"',$sortfield,$sortorder);
-        print_liste_field_titre($langs->trans("Size"),$url,"size","",$param,'align="right"',$sortfield,$sortorder);
-        print_liste_field_titre($langs->trans("Date"),$url,"date","",$param,'align="center"',$sortfield,$sortorder);
+        print_liste_field_titre("Ref",$url,$sortref,"",$param,'align="left"',$sortfield,$sortorder);
+        print_liste_field_titre("Documents2",$url,"name","",$param,'align="left"',$sortfield,$sortorder);
+        print_liste_field_titre("Size",$url,"size","",$param,'align="right"',$sortfield,$sortorder);
+        print_liste_field_titre("Date",$url,"date","",$param,'align="center"',$sortfield,$sortorder);
         print_liste_field_titre('','','');
         print '</tr>'."\n";
 
diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php
index c0e5e896872..ae4dfe1c2e4 100644
--- a/htdocs/core/lib/company.lib.php
+++ b/htdocs/core/lib/company.lib.php
@@ -749,10 +749,10 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='')
 
     $colspan=9;
     print '<tr class="liste_titre">';
-    print_liste_field_titre($langs->trans("Name"),$_SERVER["PHP_SELF"],"p.lastname","",$param,'',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Poste"),$_SERVER["PHP_SELF"],"p.poste","",$param,'',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Address").' / '.$langs->trans("Phone").' / '.$langs->trans("Email"),$_SERVER["PHP_SELF"],"","",$param,'',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"p.statut","",$param,'',$sortfield,$sortorder);
+    print_liste_field_titre("Name",$_SERVER["PHP_SELF"],"p.lastname","",$param,'',$sortfield,$sortorder);
+    print_liste_field_titre("Poste",$_SERVER["PHP_SELF"],"p.poste","",$param,'',$sortfield,$sortorder);
+    print_liste_field_titre( $langs->trans("Address").' / '.$langs->trans("Phone").' / '.$langs->trans("Email"),$_SERVER["PHP_SELF"],"","",$param,'',$sortfield,$sortorder);
+    print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"p.statut","",$param,'',$sortfield,$sortorder);
     // Add to agenda
     if (! empty($conf->agenda->enabled) && ! empty($user->rights->agenda->myactions->create))
     {
diff --git a/htdocs/core/lib/project.lib.php b/htdocs/core/lib/project.lib.php
index 366413c376f..607b107de2c 100644
--- a/htdocs/core/lib/project.lib.php
+++ b/htdocs/core/lib/project.lib.php
@@ -1140,19 +1140,19 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks=
 
     	print '<tr class="liste_titre">';
     	print_liste_field_titre($title.' <span class="badge">'.$num.'</span>',$_SERVER["PHP_SELF"],"","","","",$sortfield,$sortorder);
-    	print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"","","","",$sortfield,$sortorder);
+    	print_liste_field_titre("ThirdParty",$_SERVER["PHP_SELF"],"","","","",$sortfield,$sortorder);
     	if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES))
     	{
-    		print_liste_field_titre($langs->trans("OpportunityAmount"),"","","","",'align="right"',$sortfield,$sortorder);
-    		print_liste_field_titre($langs->trans("OpportunityStatus"),"","","","",'align="right"',$sortfield,$sortorder);
+    		print_liste_field_titre("OpportunityAmount","","","","",'align="right"',$sortfield,$sortorder);
+    		print_liste_field_titre("OpportunityStatus","","","","",'align="right"',$sortfield,$sortorder);
     	}
     	if (empty($conf->global->PROJECT_HIDE_TASKS))
     	{
-            print_liste_field_titre($langs->trans("Tasks"),"","","","",'align="right"',$sortfield,$sortorder);
-            if (! in_array('plannedworkload', $hiddenfields))  print_liste_field_titre($langs->trans("PlannedWorkload"),"","","","",'align="right"',$sortfield,$sortorder);
-            if (! in_array('declaredprogress', $hiddenfields)) print_liste_field_titre($langs->trans("ProgressDeclared"),"","","","",'align="right"',$sortfield,$sortorder);
+            print_liste_field_titre("Tasks","","","","",'align="right"',$sortfield,$sortorder);
+            if (! in_array('plannedworkload', $hiddenfields))  print_liste_field_titre("PlannedWorkload","","","","",'align="right"',$sortfield,$sortorder);
+            if (! in_array('declaredprogress', $hiddenfields)) print_liste_field_titre("ProgressDeclared","","","","",'align="right"',$sortfield,$sortorder);
     	}
-    	print_liste_field_titre($langs->trans("Status"),"","","","",'align="right"',$sortfield,$sortorder);
+    	print_liste_field_titre("Status","","","","",'align="right"',$sortfield,$sortorder);
     	print "</tr>\n";
 
 		while ($i < $num)
diff --git a/htdocs/cron/list.php b/htdocs/cron/list.php
index 913da57ac39..6a0b794c607 100644
--- a/htdocs/cron/list.php
+++ b/htdocs/cron/list.php
@@ -324,19 +324,19 @@ print '</td>';
 print '</tr>';
 
 print '<tr class="liste_titre">';
-print_liste_field_titre($langs->trans("ID"),$_SERVER["PHP_SELF"],"t.rowid","",$param,'',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("CronLabel"),$_SERVER["PHP_SELF"],"t.label","",$param,'',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("CronTask"),'','',"",$param,'',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("CronFrequency"),'',"","",$param,'',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("CronDtStart"),$_SERVER["PHP_SELF"],"t.datestart","",$param,'align="center"',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("CronDtEnd"),$_SERVER["PHP_SELF"],"t.dateend","",$param,'align="center"',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("CronMaxRun"),$_SERVER["PHP_SELF"],"t.maxrun","",$param,'align="right"',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("CronNbRun"),$_SERVER["PHP_SELF"],"t.nbrun","",$param,'align="right"',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("CronDtNextLaunch"),$_SERVER["PHP_SELF"],"t.datenextrun","",$param,'align="center"',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("CronDtLastLaunch"),$_SERVER["PHP_SELF"],"t.datelastrun","",$param,'align="center"',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("CronLastResult"),$_SERVER["PHP_SELF"],"t.lastresult","",$param,'align="center"',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("CronLastOutput"),$_SERVER["PHP_SELF"],"t.lastoutput","",$param,'',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"t.status","",$param,'align="center"',$sortfield,$sortorder);
+print_liste_field_titre("ID",$_SERVER["PHP_SELF"],"t.rowid","",$param,'',$sortfield,$sortorder);
+print_liste_field_titre("CronLabel",$_SERVER["PHP_SELF"],"t.label","",$param,'',$sortfield,$sortorder);
+print_liste_field_titre("CronTask",'','',"",$param,'',$sortfield,$sortorder);
+print_liste_field_titre("CronFrequency",'',"","",$param,'',$sortfield,$sortorder);
+print_liste_field_titre("CronDtStart",$_SERVER["PHP_SELF"],"t.datestart","",$param,'align="center"',$sortfield,$sortorder);
+print_liste_field_titre("CronDtEnd",$_SERVER["PHP_SELF"],"t.dateend","",$param,'align="center"',$sortfield,$sortorder);
+print_liste_field_titre("CronMaxRun",$_SERVER["PHP_SELF"],"t.maxrun","",$param,'align="right"',$sortfield,$sortorder);
+print_liste_field_titre("CronNbRun",$_SERVER["PHP_SELF"],"t.nbrun","",$param,'align="right"',$sortfield,$sortorder);
+print_liste_field_titre("CronDtNextLaunch",$_SERVER["PHP_SELF"],"t.datenextrun","",$param,'align="center"',$sortfield,$sortorder);
+print_liste_field_titre("CronDtLastLaunch",$_SERVER["PHP_SELF"],"t.datelastrun","",$param,'align="center"',$sortfield,$sortorder);
+print_liste_field_titre("CronLastResult",$_SERVER["PHP_SELF"],"t.lastresult","",$param,'align="center"',$sortfield,$sortorder);
+print_liste_field_titre("CronLastOutput",$_SERVER["PHP_SELF"],"t.lastoutput","",$param,'',$sortfield,$sortorder);
+print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"t.status","",$param,'align="center"',$sortfield,$sortorder);
 print_liste_field_titre('');
 print "</tr>\n";
 
diff --git a/htdocs/don/list.php b/htdocs/don/list.php
index 2eab3557797..3d0422da917 100644
--- a/htdocs/don/list.php
+++ b/htdocs/don/list.php
@@ -72,7 +72,7 @@ $fieldstosearchall = array(
     'd.lastname'=>'Lastname',
     'd.firstname'=>'Firstname',
 );
-        
+
 /*
  * View
  */
@@ -157,7 +157,7 @@ if ($resql)
         foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
         print $langs->trans("FilterOnInto", $search_all) . join(', ',$fieldstosearchall);
     }
-    
+
     print '<div class="div-table-responsive">';
     print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
 
@@ -190,20 +190,20 @@ if ($resql)
 	print "</tr>\n";
 
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"d.rowid","", $param,"",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"d.societe","", $param,"",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Name"),$_SERVER["PHP_SELF"],"d.lastname","", $param,"",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"d.datedon","", $param,'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"d.rowid","", $param,"",$sortfield,$sortorder);
+	print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"d.societe","", $param,"",$sortfield,$sortorder);
+	print_liste_field_titre("Name",$_SERVER["PHP_SELF"],"d.lastname","", $param,"",$sortfield,$sortorder);
+	print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"d.datedon","", $param,'align="center"',$sortfield,$sortorder);
 	if (! empty($conf->projet->enabled))
 	{
 	    $langs->load("projects");
-	    print_liste_field_titre($langs->trans("Project"),$_SERVER["PHP_SELF"],"fk_projet","", $param,"",$sortfield,$sortorder);
+	    print_liste_field_titre("Project",$_SERVER["PHP_SELF"],"fk_projet","", $param,"",$sortfield,$sortorder);
 	}
-	print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"d.amount","", $param,'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"d.fk_statut","", $param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"d.amount","", $param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"d.fk_statut","", $param,'align="right"',$sortfield,$sortorder);
 	print_liste_field_titre('');
 	print "</tr>\n";
-	
+
 	while ($i < min($num,$limit))
 	{
 		$objp = $db->fetch_object($resql);
diff --git a/htdocs/expedition/list.php b/htdocs/expedition/list.php
index e936e0f73bd..01a4a1fb79f 100644
--- a/htdocs/expedition/list.php
+++ b/htdocs/expedition/list.php
@@ -449,7 +449,7 @@ if ($resql)
 	            $align=$extrafields->getAlignFlag($key);
     			$sortonfield = "ef.".$key;
     			if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-    			print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+    			print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
 	        }
 	    }
 	}
diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php
index e0a9df80b3f..5d57daa7677 100644
--- a/htdocs/expensereport/list.php
+++ b/htdocs/expensereport/list.php
@@ -488,7 +488,7 @@ if ($resql)
 	            $align=$extrafields->getAlignFlag($key);
     			$sortonfield = "ef.".$key;
     			if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-    			print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+    			print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
 	        }
 	    }
 	}
diff --git a/htdocs/fichinter/list.php b/htdocs/fichinter/list.php
index 75f151d0850..d3d163da7ac 100644
--- a/htdocs/fichinter/list.php
+++ b/htdocs/fichinter/list.php
@@ -417,12 +417,12 @@ if ($resql)
     print "</tr>\n";
 
     print '<tr class="liste_titre">';
-    if (! empty($arrayfields['f.ref']['checked']))          print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"f.ref","",$param,'',$sortfield,$sortorder);
-    if (! empty($arrayfields['s.nom']['checked']))          print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom","",$param,'',$sortfield,$sortorder);
-    if (! empty($arrayfields['f.description']['checked']))  print_liste_field_titre($langs->trans("Description"),$_SERVER["PHP_SELF"],"f.description","",$param,'',$sortfield,$sortorder);
+    if (! empty($arrayfields['f.ref']['checked']))          print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"f.ref","",$param,'',$sortfield,$sortorder);
+    if (! empty($arrayfields['s.nom']['checked']))          print_liste_field_titre("ThirdParty",$_SERVER["PHP_SELF"],"s.nom","",$param,'',$sortfield,$sortorder);
+    if (! empty($arrayfields['f.description']['checked']))  print_liste_field_titre("Description",$_SERVER["PHP_SELF"],"f.description","",$param,'',$sortfield,$sortorder);
     if (! empty($arrayfields['fd.description']['checked'])) print_liste_field_titre('',$_SERVER["PHP_SELF"],'');
-    if (! empty($arrayfields['fd.date']['checked']))        print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"fd.date","",$param,'align="center"',$sortfield,$sortorder);
-    if (! empty($arrayfields['fd.duree']['checked']))       print_liste_field_titre($langs->trans("Duration"),$_SERVER["PHP_SELF"],"fd.duree","",$param,'align="right"',$sortfield,$sortorder);
+    if (! empty($arrayfields['fd.date']['checked']))        print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"fd.date","",$param,'align="center"',$sortfield,$sortorder);
+    if (! empty($arrayfields['fd.duree']['checked']))       print_liste_field_titre("Duration",$_SERVER["PHP_SELF"],"fd.duree","",$param,'align="right"',$sortfield,$sortorder);
     // Extra fields
     if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
     {
@@ -433,7 +433,7 @@ if ($resql)
                 $align=$extrafields->getAlignFlag($key);
     			$sortonfield = "ef.".$key;
     			if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-    			print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+    			print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
             }
         }
     }
@@ -441,9 +441,9 @@ if ($resql)
     $parameters=array('arrayfields'=>$arrayfields);
     $reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters);    // Note that $action and $object may have been modified by hook
     print $hookmanager->resPrint;
-    if (! empty($arrayfields['f.datec']['checked']))     print_liste_field_titre($langs->trans("DateCreationShort"),$_SERVER["PHP_SELF"],"f.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
-    if (! empty($arrayfields['f.tms']['checked']))       print_liste_field_titre($langs->trans("DateModificationShort"),$_SERVER["PHP_SELF"],"f.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
-    if (! empty($arrayfields['f.fk_statut']['checked'])) print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"f.fk_statut","",$param,'align="right"',$sortfield,$sortorder);
+    if (! empty($arrayfields['f.datec']['checked']))     print_liste_field_titre("DateCreationShort",$_SERVER["PHP_SELF"],"f.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
+    if (! empty($arrayfields['f.tms']['checked']))       print_liste_field_titre("DateModificationShort",$_SERVER["PHP_SELF"],"f.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
+    if (! empty($arrayfields['f.fk_statut']['checked'])) print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"f.fk_statut","",$param,'align="right"',$sortfield,$sortorder);
     print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ');
     print "</tr>\n";
 
diff --git a/htdocs/fourn/commande/list.php b/htdocs/fourn/commande/list.php
index 41c9988e903..8495c1030fd 100644
--- a/htdocs/fourn/commande/list.php
+++ b/htdocs/fourn/commande/list.php
@@ -1052,7 +1052,7 @@ if ($resql)
 	            $align=$extrafields->getAlignFlag($key);
     			$sortonfield = "ef.".$key;
     			if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-    			print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+    			print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
 	        }
 	    }
 	}
diff --git a/htdocs/fourn/commande/orderstoinvoice.php b/htdocs/fourn/commande/orderstoinvoice.php
index 86c177c4313..b1a8c0c08c1 100644
--- a/htdocs/fourn/commande/orderstoinvoice.php
+++ b/htdocs/fourn/commande/orderstoinvoice.php
@@ -501,12 +501,12 @@ if (($action != 'create' && $action != 'add') && !$error) {
 		print '<input type="hidden" name="socid" value="' . $socid . '">';
 		print '<table class="noborder" width="100%">';
 		print '<tr class="liste_titre">';
-		print_liste_field_titre($langs->trans('Ref'), 'orderstoinvoice.php', 'c.ref', '', '&amp;socid=' . $socid, '', $sortfield, $sortorder);
-		print_liste_field_titre($langs->trans('RefSupplier'), 'orderstoinvoice.php', 'c.ref_supplier', '', '&amp;socid=' . $socid, '', $sortfield, $sortorder);
-		print_liste_field_titre($langs->trans('OrderDate'), 'orderstoinvoice.php', 'c.date_commande', '', '&amp;socid=' . $socid, 'align="center"', $sortfield, $sortorder);
-		print_liste_field_titre($langs->trans('DeliveryDate'), 'orderstoinvoice.php', 'c.date_livraison', '', '&amp;socid=' . $socid, 'align="center"', $sortfield, $sortorder);
-		print_liste_field_titre($langs->trans('Status'), '', '', '', '', 'align="right"');
-		print_liste_field_titre($langs->trans('GenerateBill'), '', '', '', '', 'align="center"');
+		print_liste_field_titre('Ref', 'orderstoinvoice.php', 'c.ref', '', '&amp;socid=' . $socid, '', $sortfield, $sortorder);
+		print_liste_field_titre('RefSupplier', 'orderstoinvoice.php', 'c.ref_supplier', '', '&amp;socid=' . $socid, '', $sortfield, $sortorder);
+		print_liste_field_titre('OrderDate', 'orderstoinvoice.php', 'c.date_commande', '', '&amp;socid=' . $socid, 'align="center"', $sortfield, $sortorder);
+		print_liste_field_titre('DeliveryDate', 'orderstoinvoice.php', 'c.date_livraison', '', '&amp;socid=' . $socid, 'align="center"', $sortfield, $sortorder);
+		print_liste_field_titre('Status', '', '', '', '', 'align="right"');
+		print_liste_field_titre('GenerateBill', '', '', '', '', 'align="center"');
 		print "</tr>\n";
 
 		// Lignes des champs de filtre
diff --git a/htdocs/fourn/contact.php b/htdocs/fourn/contact.php
index f9188c3c4dd..584b053b3ba 100644
--- a/htdocs/fourn/contact.php
+++ b/htdocs/fourn/contact.php
@@ -98,11 +98,11 @@ if ($result)
 
     print '<table class="liste" width="100%">';
     print '<tr class="liste_titre">';
-    print_liste_field_titre($langs->trans("Lastname"),$_SERVER["PHP_SELF"],"p.name", $begin, "", "", $sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Firstname"),$_SERVER["PHP_SELF"],"p.firstname", $begin, "", "", $sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom", $begin, "", "", $sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Email"));
-    print_liste_field_titre($langs->trans("Phone"));
+    print_liste_field_titre("Lastname",$_SERVER["PHP_SELF"],"p.name", $begin, "", "", $sortfield,$sortorder);
+    print_liste_field_titre("Firstname",$_SERVER["PHP_SELF"],"p.firstname", $begin, "", "", $sortfield,$sortorder);
+    print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom", $begin, "", "", $sortfield,$sortorder);
+    print_liste_field_titre("Email");
+    print_liste_field_titre("Phone");
     print "</tr>\n";
 
     $var=True;
@@ -111,7 +111,7 @@ if ($result)
     {
         $obj = $db->fetch_object($result);
 
-        
+
 
         print '<tr class="oddeven">';
 
diff --git a/htdocs/fourn/facture/impayees.php b/htdocs/fourn/facture/impayees.php
index cb562edf9ec..7ad76d4426b 100644
--- a/htdocs/fourn/facture/impayees.php
+++ b/htdocs/fourn/facture/impayees.php
@@ -189,15 +189,15 @@ if ($user->rights->fournisseur->facture->lire)
 
 		print '<table class="liste" width="100%">';
 		print '<tr class="liste_titre">';
-		print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"f.rowid","",$param,"",$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("RefSupplier"),$_SERVER["PHP_SELF"],"f.ref_supplier","",$param,"",$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"f.datef","",$param,'align="center"',$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("DateDue"),$_SERVER["PHP_SELF"],"f.date_lim_reglement","",$param,'align="center"',$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("AmountHT"),$_SERVER["PHP_SELF"],"f.total_ht","",$param,'align="right"',$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("AmountTTC"),$_SERVER["PHP_SELF"],"f.total_ttc","",$param,'align="right"',$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("AlreadyPaid"),$_SERVER["PHP_SELF"],"am","",$param,'align="right"',$sortfield,$sortorder);
-		print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"fk_statut,paye,am","",$param,'align="right"',$sortfield,$sortorder);
+		print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"f.rowid","",$param,"",$sortfield,$sortorder);
+		print_liste_field_titre("RefSupplier",$_SERVER["PHP_SELF"],"f.ref_supplier","",$param,"",$sortfield,$sortorder);
+		print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"f.datef","",$param,'align="center"',$sortfield,$sortorder);
+		print_liste_field_titre("DateDue",$_SERVER["PHP_SELF"],"f.date_lim_reglement","",$param,'align="center"',$sortfield,$sortorder);
+		print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder);
+		print_liste_field_titre("AmountHT",$_SERVER["PHP_SELF"],"f.total_ht","",$param,'align="right"',$sortfield,$sortorder);
+		print_liste_field_titre("AmountTTC",$_SERVER["PHP_SELF"],"f.total_ttc","",$param,'align="right"',$sortfield,$sortorder);
+		print_liste_field_titre("AlreadyPaid",$_SERVER["PHP_SELF"],"am","",$param,'align="right"',$sortfield,$sortorder);
+		print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"fk_statut,paye,am","",$param,'align="right"',$sortfield,$sortorder);
 		print "</tr>\n";
 
 		// Lines with filter fields
@@ -235,7 +235,7 @@ if ($user->rights->fournisseur->facture->lire)
 				$facturestatic->statut = $objp->fk_statut;
 				$facturestatic->date_echeance = $db->jdate($objp->datelimite);
 
-				
+
 
 				print '<tr class="oddeven">';
 				$classname = "impayee";
diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php
index 909fa1dadfd..ba81e6742cd 100644
--- a/htdocs/fourn/facture/list.php
+++ b/htdocs/fourn/facture/list.php
@@ -891,7 +891,7 @@ if ($resql)
 	            $align=$extrafields->getAlignFlag($key);
     			$sortonfield = "ef.".$key;
     			if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-    			print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+    			print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
 	        }
 	    }
 	}
diff --git a/htdocs/fourn/facture/paiement.php b/htdocs/fourn/facture/paiement.php
index 460eee8c19b..0b401e35fd5 100644
--- a/htdocs/fourn/facture/paiement.php
+++ b/htdocs/fourn/facture/paiement.php
@@ -850,14 +850,14 @@ if (empty($action))
         print "</tr>\n";
 
         print '<tr class="liste_titre">';
-        print_liste_field_titre($langs->trans('RefPayment'),$_SERVER["PHP_SELF"],'p.rowid','',$param,'',$sortfield,$sortorder);
-        print_liste_field_titre($langs->trans('Date'),$_SERVER["PHP_SELF"],'dp','',$param,'align="center"',$sortfield,$sortorder);
-        print_liste_field_titre($langs->trans('ThirdParty'),$_SERVER["PHP_SELF"],'s.nom','',$param,'',$sortfield,$sortorder);
-        print_liste_field_titre($langs->trans('Type'),$_SERVER["PHP_SELF"],'c.libelle','',$param,'',$sortfield,$sortorder);
-        print_liste_field_titre($langs->trans("Numero"),$_SERVER["PHP_SELF"],"p.num_paiement","",$param,"",$sortfield,$sortorder);
-        print_liste_field_titre($langs->trans('Account'),$_SERVER["PHP_SELF"],'ba.label','',$param,'',$sortfield,$sortorder);
-        print_liste_field_titre($langs->trans('Amount'),$_SERVER["PHP_SELF"],'p.amount','',$param,'align="right"',$sortfield,$sortorder);
-        //print_liste_field_titre($langs->trans('Invoice'),$_SERVER["PHP_SELF"],'ref_supplier','',$param,'',$sortfield,$sortorder);
+        print_liste_field_titre('RefPayment',$_SERVER["PHP_SELF"],'p.rowid','',$param,'',$sortfield,$sortorder);
+        print_liste_field_titre('Date',$_SERVER["PHP_SELF"],'dp','',$param,'align="center"',$sortfield,$sortorder);
+        print_liste_field_titre('ThirdParty',$_SERVER["PHP_SELF"],'s.nom','',$param,'',$sortfield,$sortorder);
+        print_liste_field_titre('Type',$_SERVER["PHP_SELF"],'c.libelle','',$param,'',$sortfield,$sortorder);
+        print_liste_field_titre("Numero",$_SERVER["PHP_SELF"],"p.num_paiement","",$param,"",$sortfield,$sortorder);
+        print_liste_field_titre('Account',$_SERVER["PHP_SELF"],'ba.label','',$param,'',$sortfield,$sortorder);
+        print_liste_field_titre('Amount',$_SERVER["PHP_SELF"],'p.amount','',$param,'align="right"',$sortfield,$sortorder);
+        //print_liste_field_titre('Invoice',$_SERVER["PHP_SELF"],'ref_supplier','',$param,'',$sortfield,$sortorder);
         print_liste_field_titre('');
         print "</tr>\n";
 
diff --git a/htdocs/fourn/product/list.php b/htdocs/fourn/product/list.php
index 33659b87639..5707c0bff30 100644
--- a/htdocs/fourn/product/list.php
+++ b/htdocs/fourn/product/list.php
@@ -234,13 +234,13 @@ if ($resql)
 
 	// Lignes des titres
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"], "p.ref",$param,"","",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("RefSupplierShort"),$_SERVER["PHP_SELF"], "ppf.ref_fourn",$param,"","",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"], "p.label",$param,"","",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Supplier"),$_SERVER["PHP_SELF"], "ppf.fk_soc",$param,"","",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("BuyingPrice"),$_SERVER["PHP_SELF"], "ppf.price",$param,"",'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("QtyMin"),$_SERVER["PHP_SELF"], "ppf.quantity",$param,"",'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("UnitPrice"),$_SERVER["PHP_SELF"], "ppf.unitprice",$param,"",'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("Ref",$_SERVER["PHP_SELF"], "p.ref",$param,"","",$sortfield,$sortorder);
+	print_liste_field_titre("RefSupplierShort",$_SERVER["PHP_SELF"], "ppf.ref_fourn",$param,"","",$sortfield,$sortorder);
+	print_liste_field_titre("Label",$_SERVER["PHP_SELF"], "p.label",$param,"","",$sortfield,$sortorder);
+	print_liste_field_titre("Supplier",$_SERVER["PHP_SELF"], "ppf.fk_soc",$param,"","",$sortfield,$sortorder);
+	print_liste_field_titre("BuyingPrice",$_SERVER["PHP_SELF"], "ppf.price",$param,"",'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("QtyMin",$_SERVER["PHP_SELF"], "ppf.quantity",$param,"",'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("UnitPrice",$_SERVER["PHP_SELF"], "ppf.unitprice",$param,"",'align="right"',$sortfield,$sortorder);
 	print_liste_field_titre('',$_SERVER["PHP_SELF"]);
 	print "</tr>\n";
 
diff --git a/htdocs/holiday/define_holiday.php b/htdocs/holiday/define_holiday.php
index 92f1d4cafc6..66e490ae420 100644
--- a/htdocs/holiday/define_holiday.php
+++ b/htdocs/holiday/define_holiday.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
+ */
 
 /**
  *		File that defines the balance of paid holiday of users.
@@ -265,7 +265,7 @@ else
     print '</tr>';
 
     print '<tr class="liste_titre">';
-    print_liste_field_titre($langs->trans('Employee'), $_SERVER["PHP_SELF"]);
+    print_liste_field_titre('Employee', $_SERVER["PHP_SELF"]);
     if (count($typeleaves))
     {
         foreach($typeleaves as $key => $val)
diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php
index 9048ed9a8b8..8541454e549 100644
--- a/htdocs/holiday/list.php
+++ b/htdocs/holiday/list.php
@@ -387,15 +387,15 @@ print '</td>';
 print "</tr>\n";
 
 print '<tr class="liste_titre">';
-print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"cp.rowid","",$param,'',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("DateCreateCP"),$_SERVER["PHP_SELF"],"cp.date_create","",$param,'align="center"',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("Employee"),$_SERVER["PHP_SELF"],"cp.fk_user","",$param,'',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("ValidatorCP"),$_SERVER["PHP_SELF"],"cp.fk_validator","",$param,'',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],'','',$param,'',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("Duration"),$_SERVER["PHP_SELF"],'','',$pram,'align="right"',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("DateDebCP"),$_SERVER["PHP_SELF"],"cp.date_debut","",$param,'align="center"',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("DateFinCP"),$_SERVER["PHP_SELF"],"cp.date_fin","",$param,'align="center"',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"cp.statut","",$param,'align="right"',$sortfield,$sortorder);
+print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"cp.rowid","",$param,'',$sortfield,$sortorder);
+print_liste_field_titre("DateCreateCP",$_SERVER["PHP_SELF"],"cp.date_create","",$param,'align="center"',$sortfield,$sortorder);
+print_liste_field_titre("Employee",$_SERVER["PHP_SELF"],"cp.fk_user","",$param,'',$sortfield,$sortorder);
+print_liste_field_titre("ValidatorCP",$_SERVER["PHP_SELF"],"cp.fk_validator","",$param,'',$sortfield,$sortorder);
+print_liste_field_titre("Type",$_SERVER["PHP_SELF"],'','',$param,'',$sortfield,$sortorder);
+print_liste_field_titre("Duration",$_SERVER["PHP_SELF"],'','',$pram,'align="right"',$sortfield,$sortorder);
+print_liste_field_titre("DateDebCP",$_SERVER["PHP_SELF"],"cp.date_debut","",$param,'align="center"',$sortfield,$sortorder);
+print_liste_field_titre("DateFinCP",$_SERVER["PHP_SELF"],"cp.date_fin","",$param,'align="center"',$sortfield,$sortorder);
+print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"cp.statut","",$param,'align="right"',$sortfield,$sortorder);
 print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'',$param,'',$sortfield,$sortorder,'maxwidthsearch ');
 print "</tr>\n";
 
diff --git a/htdocs/holiday/view_log.php b/htdocs/holiday/view_log.php
index 17b374e5f4a..69bd6b6a190 100644
--- a/htdocs/holiday/view_log.php
+++ b/htdocs/holiday/view_log.php
@@ -91,14 +91,14 @@ print '<td class="liste_titre"></td>';
 print '</tr>';
 
 print '<tr class="liste_titre">';
-print_liste_field_titre($langs->trans('ID'));
-print_liste_field_titre($langs->trans('Date'), $_SERVER["PHP_SELF"], '', '', '', 'align="center"');
-print_liste_field_titre($langs->trans('ActionByCP'));
-print_liste_field_titre($langs->trans('UserUpdateCP'));
-print_liste_field_titre($langs->trans('Description'));
-print_liste_field_titre($langs->trans('Type'));
-print_liste_field_titre($langs->trans('PrevSoldeCP'), $_SERVER["PHP_SELF"], '', '', '', 'align="right"');
-print_liste_field_titre($langs->trans('NewSoldeCP'), $_SERVER["PHP_SELF"], '', '', '', 'align="right"');
+print_liste_field_titre('ID');
+print_liste_field_titre('Date', $_SERVER["PHP_SELF"], '', '', '', 'align="center"');
+print_liste_field_titre('ActionByCP');
+print_liste_field_titre('UserUpdateCP');
+print_liste_field_titre('Description');
+print_liste_field_titre('Type');
+print_liste_field_titre('PrevSoldeCP', $_SERVER["PHP_SELF"], '', '', '', 'align="right"');
+print_liste_field_titre('NewSoldeCP', $_SERVER["PHP_SELF"], '', '', '', 'align="right"');
 print '</tr>';
 
 
diff --git a/htdocs/hrm/admin/admin_establishment.php b/htdocs/hrm/admin/admin_establishment.php
index 091a2a15f06..077d76d0d32 100644
--- a/htdocs/hrm/admin/admin_establishment.php
+++ b/htdocs/hrm/admin/admin_establishment.php
@@ -90,12 +90,12 @@ if ($result)
 
 	// Load attribute_label
 	print '<table class="noborder" width="100%">';
-	print "<tr class=\"liste_titre\">";
-	print_liste_field_titre($langs->trans("Name"),$_SERVER["PHP_SELF"],"e.name","","","",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Address"),$_SERVER["PHP_SELF"],"e.address","","","",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Zipcode"),$_SERVER["PHP_SELF"],"e.zip","","","",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"e.town","","","",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"e.status","","",'align="right"',$sortfield,$sortorder);
+	print '<tr class="liste_titre">';
+	print_liste_field_titre("Name",$_SERVER["PHP_SELF"],"e.name","","","",$sortfield,$sortorder);
+	print_liste_field_titre("Address",$_SERVER["PHP_SELF"],"e.address","","","",$sortfield,$sortorder);
+	print_liste_field_titre("Zipcode",$_SERVER["PHP_SELF"],"e.zip","","","",$sortfield,$sortorder);
+	print_liste_field_titre("Town",$_SERVER["PHP_SELF"],"e.town","","","",$sortfield,$sortorder);
+	print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"e.status","","",'align="right"',$sortfield,$sortorder);
 	print "</tr>\n";
 
 	$var=true;
@@ -107,12 +107,12 @@ if ($result)
 		while ($i < min($num,$limit))
 		{
             $obj = $db->fetch_object($result);
-            
+
 			$establishmentstatic->id=$obj->rowid;
 			$establishmentstatic->name=$obj->name;
 			$establishmentstatic->status=$obj->status;
-			
-			
+
+
 			print '<tr class="oddeven">';
 			print '<td>'.$establishmentstatic->getNomUrl(1).'</td>';
             print '<td align="left">'.$obj->address.'</td>';
diff --git a/htdocs/langs/en_US/members.lang b/htdocs/langs/en_US/members.lang
index db3aefa9363..6dca3afbdb3 100644
--- a/htdocs/langs/en_US/members.lang
+++ b/htdocs/langs/en_US/members.lang
@@ -171,3 +171,4 @@ VATToUseForSubscriptions=VAT rate to use for subscriptions
 NoVatOnSubscription=No TVA for subscriptions
 MEMBER_PAYONLINE_SENDEMAIL=Email to use for email warning when Dolibarr receive a confirmation of a validated payment for a subscription (Example: paymentdone@example.com)
 ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Product used for subscription line into invoice: %s
+NameOrCompany=Name or company
\ No newline at end of file
diff --git a/htdocs/loan/index.php b/htdocs/loan/index.php
index 0aa16b4225d..7b96c13358f 100644
--- a/htdocs/loan/index.php
+++ b/htdocs/loan/index.php
@@ -119,7 +119,7 @@ if ($resql)
 	print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
     print '<input type="hidden" name="page" value="'.$page.'">';
 	print '<input type="hidden" name="viewstatut" value="'.$viewstatut.'">';
-    
+
     print_barre_liste($langs->trans("Loans"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_accountancy.png', 0, '', '', $limit);
 
     print '<div class="div-table-responsive">';
@@ -139,14 +139,14 @@ if ($resql)
 	print '</tr>';
 
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"l.rowid","",$param,"",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"l.label","",$param,'align="left"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("LoanCapital"),$_SERVER["PHP_SELF"],"l.capital","",$param,'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("DateStart"),$_SERVER["PHP_SELF"],"l.datestart","",$param,'align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"l.paid","",$param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"l.rowid","",$param,"",$sortfield,$sortorder);
+	print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"l.label","",$param,'align="left"',$sortfield,$sortorder);
+	print_liste_field_titre("LoanCapital",$_SERVER["PHP_SELF"],"l.capital","",$param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("DateStart",$_SERVER["PHP_SELF"],"l.datestart","",$param,'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"l.paid","",$param,'align="right"',$sortfield,$sortorder);
 	print_liste_field_titre('');
 	print "</tr>\n";
-	
+
 	while ($i < min($num,$limit))
 	{
 		$obj = $db->fetch_object($resql);
@@ -172,7 +172,7 @@ if ($resql)
 		print '<td align="right" class="nowrap">'.$loan_static->LibStatut($obj->paid,5,$obj->alreadypayed).'</a></td>';
 
 		print '<td></td>';
-		
+
         print "</tr>\n";
 
 		$i++;
diff --git a/htdocs/margin/agentMargins.php b/htdocs/margin/agentMargins.php
index 6c3a246ad0d..9867a3da5ec 100644
--- a/htdocs/margin/agentMargins.php
+++ b/htdocs/margin/agentMargins.php
@@ -184,26 +184,26 @@ if ($result)
 	print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num, $num, '', 0, '', '', 0, 1);
 
 	if ($conf->global->MARGIN_TYPE == "1")
-	    $labelcostprice=$langs->trans('BuyingPrice');
+	    $labelcostprice='BuyingPrice';
 	else   // value is 'costprice' or 'pmp'
-	    $labelcostprice=$langs->trans('CostPrice');
+	    $labelcostprice='CostPrice';
 
 	$i = 0;
 	print "<table class=\"noborder\" width=\"100%\">";
 
 	print '<tr class="liste_titre">';
 	if ($agentid > 0)
-		print_liste_field_titre($langs->trans("Customer"),$_SERVER["PHP_SELF"],"s.nom","","&amp;agentid=".$agentid,'',$sortfield,$sortorder);
+		print_liste_field_titre("Customer",$_SERVER["PHP_SELF"],"s.nom","","&amp;agentid=".$agentid,'',$sortfield,$sortorder);
 	else
-		print_liste_field_titre($langs->trans("SalesRepresentative"),$_SERVER["PHP_SELF"],"u.lastname","","&amp;agentid=".$agentid,'',$sortfield,$sortorder);
+		print_liste_field_titre("SalesRepresentative",$_SERVER["PHP_SELF"],"u.lastname","","&amp;agentid=".$agentid,'',$sortfield,$sortorder);
 
-	print_liste_field_titre($langs->trans("SellingPrice"),$_SERVER["PHP_SELF"],"selling_price","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("SellingPrice",$_SERVER["PHP_SELF"],"selling_price","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
 	print_liste_field_titre($labelcostprice,$_SERVER["PHP_SELF"],"buying_price","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Margin"),$_SERVER["PHP_SELF"],"marge","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
 	if (! empty($conf->global->DISPLAY_MARGIN_RATES))
-		print_liste_field_titre($langs->trans("MarginRate"),$_SERVER["PHP_SELF"],"","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
+		print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
 	if (! empty($conf->global->DISPLAY_MARK_RATES))
-		print_liste_field_titre($langs->trans("MarkRate"),$_SERVER["PHP_SELF"],"","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
+		print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
 	print "</tr>\n";
 
 	$rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT);
diff --git a/htdocs/margin/checkMargins.php b/htdocs/margin/checkMargins.php
index 58fee8c3ea6..5f6f46c4b2b 100644
--- a/htdocs/margin/checkMargins.php
+++ b/htdocs/margin/checkMargins.php
@@ -218,9 +218,9 @@ if ($result) {
 	print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, '', 0, '', '', $limit);
 
 	if ($conf->global->MARGIN_TYPE == "1")
-	    $labelcostprice=$langs->trans('BuyingPrice');
+	    $labelcostprice='BuyingPrice';
 	else   // value is 'costprice' or 'pmp'
-	    $labelcostprice=$langs->trans('CostPrice');
+	    $labelcostprice='CostPrice';
 
 	$moreforfilter='';
 
@@ -246,12 +246,12 @@ if ($result) {
 	print "</tr>\n";
 
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "f.facnumber", "", $param, '', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Description"), $_SERVER["PHP_SELF"], "", "", $param, 'width=20%', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("UnitPriceHT"), $_SERVER["PHP_SELF"], "d.subprice", "", $param, 'align="right"', $sortfield, $sortorder);
+	print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "f.facnumber", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "", "", $param, 'width=20%', $sortfield, $sortorder);
+	print_liste_field_titre("UnitPriceHT", $_SERVER["PHP_SELF"], "d.subprice", "", $param, 'align="right"', $sortfield, $sortorder);
 	print_liste_field_titre($labelcostprice, $_SERVER["PHP_SELF"], "d.buy_price_ht", "", $param, 'align="right"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("Qty"), $_SERVER["PHP_SELF"], "d.qty", "", $param, 'align="right"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("AmountTTC"), $_SERVER["PHP_SELF"], "d.total_ht", "", $param, 'align="right"', $sortfield, $sortorder);
+	print_liste_field_titre("Qty", $_SERVER["PHP_SELF"], "d.qty", "", $param, 'align="right"', $sortfield, $sortorder);
+	print_liste_field_titre("AmountTTC", $_SERVER["PHP_SELF"], "d.total_ht", "", $param, 'align="right"', $sortfield, $sortorder);
 	print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'',$param,'align="center"',$sortfield,$sortorder,'maxwidthsearch ');
 	print "</tr>\n";
 
diff --git a/htdocs/margin/customerMargins.php b/htdocs/margin/customerMargins.php
index 643fdcb4704..85f13a881ab 100644
--- a/htdocs/margin/customerMargins.php
+++ b/htdocs/margin/customerMargins.php
@@ -216,27 +216,27 @@ if ($result)
 	print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num, $num, '', 0, '', '', 0, 1);
 
 	if ($conf->global->MARGIN_TYPE == "1")
-	    $labelcostprice=$langs->trans('BuyingPrice');
+	    $labelcostprice='BuyingPrice';
 	else   // value is 'costprice' or 'pmp'
-	    $labelcostprice=$langs->trans('CostPrice');
+	    $labelcostprice='CostPrice';
 
 	$i = 0;
 	print "<table class=\"noborder\" width=\"100%\">";
 
 	print '<tr class="liste_titre">';
 	if (! empty($client)) {
-  		print_liste_field_titre($langs->trans("Invoice"),$_SERVER["PHP_SELF"],"f.facnumber","","&amp;socid=".$socid,'',$sortfield,$sortorder);
-  		print_liste_field_titre($langs->trans("DateInvoice"),$_SERVER["PHP_SELF"],"f.datef","","&amp;socid=".$socid,'align="center"',$sortfield,$sortorder);
+  		print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.facnumber","","&amp;socid=".$socid,'',$sortfield,$sortorder);
+  		print_liste_field_titre("DateInvoice",$_SERVER["PHP_SELF"],"f.datef","","&amp;socid=".$socid,'align="center"',$sortfield,$sortorder);
 	}
 	else
-  		print_liste_field_titre($langs->trans("Customer"),$_SERVER["PHP_SELF"],"s.nom","","&amp;socid=".$socid,'',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("SellingPrice"),$_SERVER["PHP_SELF"],"selling_price","","&amp;socid=".$socid,'align="right"',$sortfield,$sortorder);
+  		print_liste_field_titre("Customer",$_SERVER["PHP_SELF"],"s.nom","","&amp;socid=".$socid,'',$sortfield,$sortorder);
+	print_liste_field_titre("SellingPrice",$_SERVER["PHP_SELF"],"selling_price","","&amp;socid=".$socid,'align="right"',$sortfield,$sortorder);
 	print_liste_field_titre($labelcostprice,$_SERVER["PHP_SELF"],"buying_price","","&amp;socid=".$socid,'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Margin"),$_SERVER["PHP_SELF"],"marge","","&amp;socid=".$socid,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&amp;socid=".$socid,'align="right"',$sortfield,$sortorder);
 	if (! empty($conf->global->DISPLAY_MARGIN_RATES))
-		print_liste_field_titre($langs->trans("MarginRate"),$_SERVER["PHP_SELF"],"","","&amp;socid=".$socid,'align="right"',$sortfield,$sortorder);
+		print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&amp;socid=".$socid,'align="right"',$sortfield,$sortorder);
 	if (! empty($conf->global->DISPLAY_MARK_RATES))
-		print_liste_field_titre($langs->trans("MarkRate"),$_SERVER["PHP_SELF"],"","","&amp;socid=".$socid,'align="right"',$sortfield,$sortorder);
+		print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&amp;socid=".$socid,'align="right"',$sortfield,$sortorder);
 	print "</tr>\n";
 
 	$cumul_achat = 0;
diff --git a/htdocs/margin/productMargins.php b/htdocs/margin/productMargins.php
index 77f7e23c84f..9d52b25de36 100644
--- a/htdocs/margin/productMargins.php
+++ b/htdocs/margin/productMargins.php
@@ -207,9 +207,9 @@ if ($result)
 
 	//var_dump($conf->global->MARGIN_TYPE);
 	if ($conf->global->MARGIN_TYPE == "1")
-	    $labelcostprice=$langs->trans('BuyingPrice');
+	    $labelcostprice='BuyingPrice';
 	else   // value is 'costprice' or 'pmp'
-	    $labelcostprice=$langs->trans('CostPrice');
+	    $labelcostprice='CostPrice';
 
 	$moreforfilter='';
 
@@ -219,20 +219,20 @@ if ($result)
 
 	print '<tr class="liste_titre">';
 	if ($id > 0) {
-  		print_liste_field_titre($langs->trans("Invoice"),$_SERVER["PHP_SELF"],"f.facnumber","","&amp;id=".$id,'',$sortfield,$sortorder);
-  		print_liste_field_titre($langs->trans("DateInvoice"),$_SERVER["PHP_SELF"],"f.datef","","&amp;id=".$id,'align="center"',$sortfield,$sortorder);
+  		print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.facnumber","","&amp;id=".$id,'',$sortfield,$sortorder);
+  		print_liste_field_titre("DateInvoice",$_SERVER["PHP_SELF"],"f.datef","","&amp;id=".$id,'align="center"',$sortfield,$sortorder);
   	}
   	else
   	{
-  		print_liste_field_titre($langs->trans("ProductService"),$_SERVER["PHP_SELF"],"p.ref","","&amp;id=".$id,'',$sortfield,$sortorder);
+  		print_liste_field_titre("ProductService",$_SERVER["PHP_SELF"],"p.ref","","&amp;id=".$id,'',$sortfield,$sortorder);
   	}
-	print_liste_field_titre($langs->trans("SellingPrice"),$_SERVER["PHP_SELF"],"selling_price","","&amp;id=".$id,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("SellingPrice",$_SERVER["PHP_SELF"],"selling_price","","&amp;id=".$id,'align="right"',$sortfield,$sortorder);
 	print_liste_field_titre($labelcostprice,$_SERVER["PHP_SELF"],"buying_price","","&amp;id=".$id,'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Margin"),$_SERVER["PHP_SELF"],"marge","","&amp;id=".$id,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&amp;id=".$id,'align="right"',$sortfield,$sortorder);
 	if (! empty($conf->global->DISPLAY_MARGIN_RATES))
-		print_liste_field_titre($langs->trans("MarginRate"),$_SERVER["PHP_SELF"],"","","&amp;id=".$id,'align="right"',$sortfield,$sortorder);
+		print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&amp;id=".$id,'align="right"',$sortfield,$sortorder);
 	if (! empty($conf->global->DISPLAY_MARK_RATES))
-		print_liste_field_titre($langs->trans("MarkRate"),$_SERVER["PHP_SELF"],"","","&amp;id=".$id,'align="right"',$sortfield,$sortorder);
+		print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&amp;id=".$id,'align="right"',$sortfield,$sortorder);
 	print "</tr>\n";
 
 	$cumul_achat = 0;
diff --git a/htdocs/margin/tabs/productMargins.php b/htdocs/margin/tabs/productMargins.php
index 907e927c5fd..9175736d5db 100644
--- a/htdocs/margin/tabs/productMargins.php
+++ b/htdocs/margin/tabs/productMargins.php
@@ -68,7 +68,7 @@ $form = new Form($db);
 if ($id > 0 || ! empty($ref))
 {
     $result = $object->fetch($id, $ref);
-    
+
     $title = $langs->trans('ProductServiceCard');
 	$helpurl = '';
 	$shortlabel = dol_trunc($object->label,16);
@@ -96,12 +96,12 @@ if ($id > 0 || ! empty($ref))
 		dol_fiche_head($head, 'margin', $titre, -1, $picto);
 
 		$linkback = '<a href="'.DOL_URL_ROOT.'/product/list.php">'.$langs->trans("BackToList").'</a>';
-		
+
         dol_banner_tab($object, 'ref', $linkback, ($user->societe_id?0:1), 'ref');
-        
-        
+
+
         print '<div class="fichecenter">';
-        
+
         print '<div class="underbanner clearboth"></div>';
         print '<table class="border tableforfield" width="100%">';
 
@@ -125,10 +125,10 @@ if ($id > 0 || ! empty($ref))
 		}
 
 		print "</table>";
-		
+
         print '</div>';
         print '<div style="clear:both"></div>';
-		
+
 		dol_fiche_end();
 
 
@@ -167,24 +167,24 @@ if ($id > 0 || ! empty($ref))
                 print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"&amp;id=$object->id",$sortfield,$sortorder,'',0,0,'');
 
                 $i = 0;
-                
+
                 print '<div class="div-table-responsive">';
                 print '<table class="noborder" width="100%">';
 
                 print '<tr class="liste_titre">';
-                print_liste_field_titre($langs->trans("Invoice"),$_SERVER["PHP_SELF"],"f.facnumber","","&amp;id=".$object->id,'',$sortfield,$sortorder);
-                print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","","&amp;id=".$object->id,'',$sortfield,$sortorder);
-                print_liste_field_titre($langs->trans("CustomerCode"),$_SERVER["PHP_SELF"],"s.code_client","","&amp;id=".$object->id,'',$sortfield,$sortorder);
-                print_liste_field_titre($langs->trans("DateInvoice"),$_SERVER["PHP_SELF"],"f.datef","","&amp;id=".$object->id,'align="center"',$sortfield,$sortorder);
-                print_liste_field_titre($langs->trans("SellingPrice"),$_SERVER["PHP_SELF"],"selling_price","","&amp;id=".$object->id,'align="right"',$sortfield,$sortorder);
-                print_liste_field_titre($langs->trans("BuyingPrice"),$_SERVER["PHP_SELF"],"buying_price","","&amp;id=".$object->id,'align="right"',$sortfield,$sortorder);
-                print_liste_field_titre($langs->trans("Qty"),$_SERVER["PHP_SELF"],"d.qty","","&amp;id=".$object->id,'align="right"',$sortfield,$sortorder);
-                print_liste_field_titre($langs->trans("Margin"),$_SERVER["PHP_SELF"],"marge","","&amp;id=".$object->id,'align="right"',$sortfield,$sortorder);
+                print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.facnumber","","&amp;id=".$object->id,'',$sortfield,$sortorder);
+                print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom","","&amp;id=".$object->id,'',$sortfield,$sortorder);
+                print_liste_field_titre("CustomerCode",$_SERVER["PHP_SELF"],"s.code_client","","&amp;id=".$object->id,'',$sortfield,$sortorder);
+                print_liste_field_titre("DateInvoice",$_SERVER["PHP_SELF"],"f.datef","","&amp;id=".$object->id,'align="center"',$sortfield,$sortorder);
+                print_liste_field_titre("SellingPrice",$_SERVER["PHP_SELF"],"selling_price","","&amp;id=".$object->id,'align="right"',$sortfield,$sortorder);
+                print_liste_field_titre("BuyingPrice",$_SERVER["PHP_SELF"],"buying_price","","&amp;id=".$object->id,'align="right"',$sortfield,$sortorder);
+                print_liste_field_titre("Qty",$_SERVER["PHP_SELF"],"d.qty","","&amp;id=".$object->id,'align="right"',$sortfield,$sortorder);
+                print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&amp;id=".$object->id,'align="right"',$sortfield,$sortorder);
                 if (! empty($conf->global->DISPLAY_MARGIN_RATES))
-                    print_liste_field_titre($langs->trans("MarginRate"),$_SERVER["PHP_SELF"],"","","&amp;id=".$object->id,'align="right"',$sortfield,$sortorder);
+                    print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&amp;id=".$object->id,'align="right"',$sortfield,$sortorder);
                 if (! empty($conf->global->DISPLAY_MARK_RATES))
-                    print_liste_field_titre($langs->trans("MarkRate"),$_SERVER["PHP_SELF"],"","","&amp;id=".$object->id,'align="right"',$sortfield,$sortorder);
-                print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"f.paye,f.fk_statut","","&amp;id=".$object->id,'align="right"',$sortfield,$sortorder);
+                    print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&amp;id=".$object->id,'align="right"',$sortfield,$sortorder);
+                print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"f.paye,f.fk_statut","","&amp;id=".$object->id,'align="right"',$sortfield,$sortorder);
                 print "</tr>\n";
 
                 $cumul_achat = 0;
@@ -196,7 +196,7 @@ if ($id > 0 || ! empty($ref))
                     $var=True;
                     while ($i < $num /*&& $i < $conf->liste_limit*/) {
                         $objp = $db->fetch_object($result);
-                        
+
 
 						$marginRate = ($objp->buying_price != 0)?(100 * $objp->marge / $objp->buying_price):'' ;
 						$markRate = ($objp->selling_price != 0)?(100 * $objp->marge / $objp->selling_price):'' ;
@@ -229,7 +229,7 @@ if ($id > 0 || ! empty($ref))
                 }
 
                 // affichage totaux marges
-                
+
                 $totalMargin = $cumul_vente - $cumul_achat;
                 if ($totalMargin < 0)
                 {
diff --git a/htdocs/margin/tabs/thirdpartyMargins.php b/htdocs/margin/tabs/thirdpartyMargins.php
index d7257a3cb1d..bc8928bdc6e 100644
--- a/htdocs/margin/tabs/thirdpartyMargins.php
+++ b/htdocs/margin/tabs/thirdpartyMargins.php
@@ -92,14 +92,14 @@ if ($socid > 0)
     dol_fiche_head($head, 'margin', $langs->trans("ThirdParty"), -1, 'company');
 
     $linkback = '<a href="'.DOL_URL_ROOT.'/societe/list.php">'.$langs->trans("BackToList").'</a>';
-    
+
     dol_banner_tab($object, 'socid', $linkback, ($user->societe_id?0:1), 'rowid', 'nom');
-    
+
     print '<div class="fichecenter">';
-    
+
     print '<div class="underbanner clearboth"></div>';
     print '<table class="border tableforfield" width="100%">';
-    
+
     if ($object->client)
     {
         print '<tr><td class="titlefield">';
@@ -138,14 +138,14 @@ if ($socid > 0)
     }
 
     print "</table>";
-    
+
     print '</div>';
     print '<div style="clear:both"></div>';
 
     dol_fiche_end();
-    
+
     print '<br>';
-    
+
     $sql = "SELECT distinct s.nom, s.rowid as socid, s.code_client,";
     $sql.= " f.rowid as facid, f.facnumber, f.total as total_ht,";
     $sql.= " f.datef, f.paye, f.fk_statut as statut, f.type,";
@@ -179,16 +179,16 @@ if ($socid > 0)
     	print "<table class=\"noborder\" width=\"100%\">";
 
     	print '<tr class="liste_titre">';
-    	print_liste_field_titre($langs->trans("Invoice"),$_SERVER["PHP_SELF"],"f.facnumber","","&amp;socid=".$_REQUEST["socid"],'',$sortfield,$sortorder);
-    	print_liste_field_titre($langs->trans("DateInvoice"),$_SERVER["PHP_SELF"],"f.datef","","&amp;socid=".$_REQUEST["socid"],'align="center"',$sortfield,$sortorder);
-    	print_liste_field_titre($langs->trans("SoldAmount"),$_SERVER["PHP_SELF"],"selling_price","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
-    	print_liste_field_titre($langs->trans("PurchasedAmount"),$_SERVER["PHP_SELF"],"buying_price","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
-    	print_liste_field_titre($langs->trans("Margin"),$_SERVER["PHP_SELF"],"marge","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
+    	print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.facnumber","","&amp;socid=".$_REQUEST["socid"],'',$sortfield,$sortorder);
+    	print_liste_field_titre("DateInvoice",$_SERVER["PHP_SELF"],"f.datef","","&amp;socid=".$_REQUEST["socid"],'align="center"',$sortfield,$sortorder);
+    	print_liste_field_titre("SoldAmount",$_SERVER["PHP_SELF"],"selling_price","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
+    	print_liste_field_titre("PurchasedAmount",$_SERVER["PHP_SELF"],"buying_price","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
+    	print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
     	if (! empty($conf->global->DISPLAY_MARGIN_RATES))
-    		print_liste_field_titre($langs->trans("MarginRate"),$_SERVER["PHP_SELF"],"","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
+    		print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
     	if (! empty($conf->global->DISPLAY_MARK_RATES))
-    		print_liste_field_titre($langs->trans("MarkRate"),$_SERVER["PHP_SELF"],"","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
-    	print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"f.paye,f.fk_statut","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
+    		print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
+    	print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"f.paye,f.fk_statut","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
     	print "</tr>\n";
 
     	$cumul_achat = 0;
@@ -206,7 +206,7 @@ if ($socid > 0)
     			$marginRate = ($objp->buying_price != 0)?(100 * $objp->marge / $objp->buying_price):'' ;
     			$markRate = ($objp->selling_price != 0)?(100 * $objp->marge / $objp->selling_price):'' ;
 
-    			
+
 
     			print '<tr class="oddeven">';
     			print '<td>';
@@ -232,7 +232,7 @@ if ($socid > 0)
     	}
 
     	// affichage totaux marges
-    	
+
     	$totalMargin = $cumul_vente - $cumul_achat;
     	if ($totalMargin < 0)
     	{
@@ -244,7 +244,7 @@ if ($socid > 0)
     		$marginRate = ($cumul_achat != 0)?(100 * $totalMargin / $cumul_achat):'';
     		$markRate = ($cumul_vente != 0)?(100 * $totalMargin / $cumul_vente):'';
     	}
-    	
+
     	// Total
     	print '<tr class="liste_total">';
     	print '<td colspan=2>'.$langs->trans('TotalMargin')."</td>";
diff --git a/htdocs/opensurvey/list.php b/htdocs/opensurvey/list.php
index d5a17f02239..8c3f43b03d3 100644
--- a/htdocs/opensurvey/list.php
+++ b/htdocs/opensurvey/list.php
@@ -112,13 +112,13 @@ print '</td>';
 print '</tr>'."\n";
 
 print '<tr class="liste_titre">';
-print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "p.id_sondage", $param,"","",$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("Title"), $_SERVER["PHP_SELF"], "p.titre", $param,"","",$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("Type"));
-print_liste_field_titre($langs->trans("Author"), $_SERVER["PHP_SELF"], "u.".$fieldtosortuser, $param,"","",$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("NbOfVoters"), $_SERVER["PHP_SELF"], "", $param,"",'align="right"',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("ExpireDate"), $_SERVER["PHP_SELF"], "p.date_fin", $param,"",'align="center"',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("Status"), $_SERVER["PHP_SELF"], "p.status", $param,"",'align="center"',$sortfield,$sortorder);
+print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "p.id_sondage", $param,"","",$sortfield,$sortorder);
+print_liste_field_titre("Title", $_SERVER["PHP_SELF"], "p.titre", $param,"","",$sortfield,$sortorder);
+print_liste_field_titre("Type");
+print_liste_field_titre("Author", $_SERVER["PHP_SELF"], "u.".$fieldtosortuser, $param,"","",$sortfield,$sortorder);
+print_liste_field_titre("NbOfVoters", $_SERVER["PHP_SELF"], "", $param,"",'align="right"',$sortfield,$sortorder);
+print_liste_field_titre("ExpireDate", $_SERVER["PHP_SELF"], "p.date_fin", $param,"",'align="center"',$sortfield,$sortorder);
+print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "p.status", $param,"",'align="center"',$sortfield,$sortorder);
 print_liste_field_titre('');
 print '</tr>'."\n";
 
diff --git a/htdocs/product/fournisseurs.php b/htdocs/product/fournisseurs.php
index a887f082d69..ed53163615d 100644
--- a/htdocs/product/fournisseurs.php
+++ b/htdocs/product/fournisseurs.php
@@ -603,21 +603,20 @@ if ($id > 0 || $ref)
 
 				$param="&id=".$object->id;
 				print '<tr class="liste_titre">';
-				print_liste_field_titre($langs->trans("Suppliers"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder);
-				print_liste_field_titre($langs->trans("SupplierRef"));
-				if (!empty($conf->global->FOURN_PRODUCT_AVAILABILITY)) print_liste_field_titre($langs->trans("Availability"),$_SERVER["PHP_SELF"],"pfp.fk_availability","",$param,"",$sortfield,$sortorder);
-				print_liste_field_titre($langs->trans("QtyMin"),$_SERVER["PHP_SELF"],"pfp.quantity","",$param,'align="right"',$sortfield,$sortorder);
-				print_liste_field_titre($langs->trans("VATRate"),$_SERVER["PHP_SELF"],'','',$param,'align="right"',$sortfield,$sortorder);
-				print_liste_field_titre($langs->trans("PriceQtyMinHT"),$_SERVER["PHP_SELF"],'','',$param,'align="right"',$sortfield,$sortorder);
-				print_liste_field_titre($langs->trans("UnitPriceHT"),$_SERVER["PHP_SELF"],"pfp.unitprice","",$param,'align="right"',$sortfield,$sortorder);
-				print_liste_field_titre($langs->trans("DiscountQtyMin"),$_SERVER["PHP_SELF"],'','',$param,'align="right"',$sortfield,$sortorder);
-				print_liste_field_titre($langs->trans("NbDaysToDelivery"),$_SERVER["PHP_SELF"],"pfp.delivery_time_days","",$param,'align="right"',$sortfield,$sortorder);
-				print_liste_field_titre($langs->trans("ReputationForThisProduct"),$_SERVER["PHP_SELF"],"pfp.supplier_reputation","",$param,'align="center"',$sortfield,$sortorder);
-
+				print_liste_field_titre("Suppliers",$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder);
+				print_liste_field_titre("SupplierRef");
+				if (!empty($conf->global->FOURN_PRODUCT_AVAILABILITY)) print_liste_field_titre("Availability",$_SERVER["PHP_SELF"],"pfp.fk_availability","",$param,"",$sortfield,$sortorder);
+				print_liste_field_titre("QtyMin",$_SERVER["PHP_SELF"],"pfp.quantity","",$param,'align="right"',$sortfield,$sortorder);
+				print_liste_field_titre("VATRate",$_SERVER["PHP_SELF"],'','',$param,'align="right"',$sortfield,$sortorder);
+				print_liste_field_titre("PriceQtyMinHT",$_SERVER["PHP_SELF"],'','',$param,'align="right"',$sortfield,$sortorder);
+				print_liste_field_titre("UnitPriceHT",$_SERVER["PHP_SELF"],"pfp.unitprice","",$param,'align="right"',$sortfield,$sortorder);
+				print_liste_field_titre("DiscountQtyMin",$_SERVER["PHP_SELF"],'','',$param,'align="right"',$sortfield,$sortorder);
+				print_liste_field_titre("NbDaysToDelivery",$_SERVER["PHP_SELF"],"pfp.delivery_time_days","",$param,'align="right"',$sortfield,$sortorder);
+				print_liste_field_titre("ReputationForThisProduct",$_SERVER["PHP_SELF"],"pfp.supplier_reputation","",$param,'align="center"',$sortfield,$sortorder);
 				// Charges ????
 				if ($conf->global->PRODUCT_CHARGES)
 				{
-					if (! empty($conf->margin->enabled)) print_liste_field_titre($langs->trans("UnitCharges"));
+					if (! empty($conf->margin->enabled)) print_liste_field_titre("UnitCharges");
 				}
 				print_liste_field_titre('');
 				print "</tr>\n";
diff --git a/htdocs/product/list.php b/htdocs/product/list.php
index 13793438a7b..73911588600 100644
--- a/htdocs/product/list.php
+++ b/htdocs/product/list.php
@@ -674,7 +674,7 @@ else
     		            $align=$extrafields->getAlignFlag($key);
             			$sortonfield = "ef.".$key;
             			if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-            			print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+            			print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
     		        }
     		    }
     		}
diff --git a/htdocs/product/popuprop.php b/htdocs/product/popuprop.php
index 21491eab512..91a8f4f80a4 100644
--- a/htdocs/product/popuprop.php
+++ b/htdocs/product/popuprop.php
@@ -139,10 +139,10 @@ if ($resql)
     while ($i < $num)
     {
         $objp = $db->fetch_object($resql);
-        
+
         $infoprod[$objp->rowid]=array('type'=>$objp->type, 'ref'=>$objp->ref, 'label'=>$objp->label);
         $infoprod[$objp->rowid]['nblineproposal']=$objp->c;
-        
+
         $i++;
     }
     $db->free($resql);
@@ -159,10 +159,10 @@ print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sort
 print '<table class="noborder" width="100%">';
 
 print "<tr class=\"liste_titre\">";
-print_liste_field_titre($langs->trans('Ref'), $_SERVER["PHP_SELF"], 'p.ref', '', $param, '', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans('Type'), $_SERVER["PHP_SELF"], 'p.fk_product_type', '', $param, '', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans('Label'), $_SERVER["PHP_SELF"], 'p.label', '', $param, '', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans('NbOfQtyInProposals'), $_SERVER["PHP_SELF"], 'c', '', $param, 'align="right"', $sortfield, $sortorder);
+print_liste_field_titre('Ref', $_SERVER["PHP_SELF"], 'p.ref', '', $param, '', $sortfield, $sortorder);
+print_liste_field_titre('Type', $_SERVER["PHP_SELF"], 'p.fk_product_type', '', $param, '', $sortfield, $sortorder);
+print_liste_field_titre('Label', $_SERVER["PHP_SELF"], 'p.label', '', $param, '', $sortfield, $sortorder);
+print_liste_field_titre('NbOfQtyInProposals', $_SERVER["PHP_SELF"], 'c', '', $param, 'align="right"', $sortfield, $sortorder);
 print "</tr>\n";
 
 foreach($infoprod as $prodid => $vals)
diff --git a/htdocs/product/reassort.php b/htdocs/product/reassort.php
index 9d58c244b2e..e3983344cff 100644
--- a/htdocs/product/reassort.php
+++ b/htdocs/product/reassort.php
@@ -200,7 +200,7 @@ if ($resql)
 	{
 	    print_barre_liste($texte, $page, $_SERVER["PHP_SELF"], "&sref=$sref&snom=$snom&fourn_id=$fourn_id".(isset($type)?"&amp;type=$type":"").(!empty($search_categ) ? '&amp;search_categ='.$search_categ : '').(!empty($toolowstock) ? '&amp;toolowstock='.$toolowstock : ''), $sortfield, $sortorder,'',$num, $nbtotalofrecords, 'title_products', 0, '', '', $limit);
 	}
-	
+
 	if (! empty($catid))
 	{
 	    print "<div id='ways'>";
@@ -210,7 +210,7 @@ if ($resql)
 	    print " &gt; ".$ways[0]."<br>\n";
 	    print "</div><br>";
 	}
-	
+
 	// Filter on categories
  	$moreforfilter='';
 	if (! empty($conf->categorie->enabled))
@@ -220,11 +220,11 @@ if ($resql)
 		$moreforfilter.=$htmlother->select_categories(Categorie::TYPE_PRODUCT,$search_categ,'search_categ');
 	 	$moreforfilter.='</div>';
 	}
-	
+
 	$moreforfilter.='<div class="divsearchfield">';
 	$moreforfilter.=$langs->trans("StockTooLow").' <input type="checkbox" name="toolowstock" value="1"'.($toolowstock?' checked':'').'>';
 	$moreforfilter.='</div>';
-    
+
     if (! empty($moreforfilter))
     {
         print '<div class="liste_titre liste_titre_bydiv centpercent">';
@@ -234,7 +234,7 @@ if ($resql)
         print $hookmanager->resPrint;
         print '</div>';
     }
-	
+
 	$param='';
 	if ($tosell)	$param.="&tosell=".$tosell;
 	if ($tobuy)		$param.="&tobuy=".$tobuy;
@@ -242,17 +242,17 @@ if ($resql)
 	if ($fourn_id)	$param.="&fourn_id=".$fourn_id;
 	if ($snom)		$param.="&snom=".$snom;
 	if ($sref)		$param.="&sref=".$sref;
-    
+
 	$formProduct = new FormProduct($db);
 	$formProduct->loadWarehouses();
 	$warehouses_list = $formProduct->cache_warehouses;
 	$nb_warehouse = count($warehouses_list);
 	$colspan_warehouse = 1;
 	if (! empty($conf->global->STOCK_DETAIL_ON_WAREHOUSE)) { $colspan_warehouse = $nb_warehouse > 1 ? $nb_warehouse+1 : 1; }
-	
+
     print '<div class="div-table-responsive">';
 	print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">';
-	
+
 	// Lignes des champs de filtre
 	print '<tr class="liste_titre_filter">';
 	print '<td class="liste_titre">';
@@ -284,12 +284,12 @@ if ($resql)
 
 	// Lignes des titres
 	print "<tr class=\"liste_titre\">";
-	print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "p.ref",$param,"","",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Label"), $_SERVER["PHP_SELF"], "p.label",$param,"","",$sortfield,$sortorder);
-	if (! empty($conf->service->enabled) && $type == 1) print_liste_field_titre($langs->trans("Duration"), $_SERVER["PHP_SELF"], "p.duration",$param,"",'align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("StockLimit"), $_SERVER["PHP_SELF"], "p.seuil_stock_alerte",$param,"",'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("DesiredStock"), $_SERVER["PHP_SELF"], "p.desiredstock",$param,"",'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("PhysicalStock"), $_SERVER["PHP_SELF"], "stock_physique",$param,"",'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "p.ref",$param,"","",$sortfield,$sortorder);
+	print_liste_field_titre("Label", $_SERVER["PHP_SELF"], "p.label",$param,"","",$sortfield,$sortorder);
+	if (! empty($conf->service->enabled) && $type == 1) print_liste_field_titre("Duration", $_SERVER["PHP_SELF"], "p.duration",$param,"",'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre("StockLimit", $_SERVER["PHP_SELF"], "p.seuil_stock_alerte",$param,"",'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("DesiredStock", $_SERVER["PHP_SELF"], "p.desiredstock",$param,"",'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("PhysicalStock", $_SERVER["PHP_SELF"], "stock_physique",$param,"",'align="right"',$sortfield,$sortorder);
 	// Details per warehouse
 	if (! empty($conf->global->STOCK_DETAIL_ON_WAREHOUSE))	// TODO This should be moved into the selection of fields on page product/list (page product/stock will be removed and replaced with product/list with its own context)
 	{
@@ -297,16 +297,16 @@ if ($resql)
 	        foreach($warehouses_list as &$wh) {
 	            print_liste_field_titre($wh['label'], '', '','','','align="right"');
 	        }
-	        	
+
 	    }
 	}
-	if ($virtualdiffersfromphysical) print_liste_field_titre($langs->trans("VirtualStock"),$_SERVER["PHP_SELF"], "",$param,"",'align="right"',$sortfield,$sortorder);
+	if ($virtualdiffersfromphysical) print_liste_field_titre("VirtualStock",$_SERVER["PHP_SELF"], "",$param,"",'align="right"',$sortfield,$sortorder);
 	print_liste_field_titre('');
-	print_liste_field_titre($langs->trans("Status").' ('.$langs->trans("Sell").')',$_SERVER["PHP_SELF"], "p.tosell",$param,"",'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Status").' ('.$langs->trans("Buy").')',$_SERVER["PHP_SELF"], "p.tobuy",$param,"",'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre( $langs->trans("Status").' ('.$langs->trans("Sell").')',$_SERVER["PHP_SELF"], "p.tosell",$param,"",'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre( $langs->trans("Status").' ('.$langs->trans("Buy").')',$_SERVER["PHP_SELF"], "p.tobuy",$param,"",'align="right"',$sortfield,$sortorder);
 	print_liste_field_titre('');
 	print "</tr>\n";
-	
+
 	while ($i < min($num,$limit))
 	{
 		$objp = $db->fetch_object($resql);
@@ -338,22 +338,22 @@ if ($resql)
         if ($objp->seuil_stock_alerte != '' && ($objp->stock_physique < $objp->seuil_stock_alerte)) print img_warning($langs->trans("StockTooLow")).' ';
 		print $objp->stock_physique;
 		print '</td>';
-		
+
 		// Details per warehouse
 		if (! empty($conf->global->STOCK_DETAIL_ON_WAREHOUSE))	// TODO This should be moved into the selection of fields on page product/list (page product/stock will be removed and replaced with product/list with its own context)
 		{
 			if($nb_warehouse>1) {
 				foreach($warehouses_list as &$wh) {
-					
+
 					print '<td align="right">';
 					print empty($product->stock_warehouse[$wh['id']]->real) ? '0' : $product->stock_warehouse[$wh['id']]->real;
 					print '</td>';
 				}
-			}			
-		} 
-		
-			
-		
+			}
+		}
+
+
+
 		// Virtual stock
 		if ($virtualdiffersfromphysical)
 		{
@@ -372,7 +372,7 @@ if ($resql)
 
 	print "</table>";
 	print '</div>';
-	
+
 	print '</form>';
 
 	$db->free($resql);
diff --git a/htdocs/product/reassortlot.php b/htdocs/product/reassortlot.php
index 3c335ed1ad8..490986b155e 100644
--- a/htdocs/product/reassortlot.php
+++ b/htdocs/product/reassortlot.php
@@ -288,20 +288,20 @@ if ($resql)
 
 	// Lignes des titres
 	print "<tr class=\"liste_titre\">";
-	print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "p.ref",$param,"","",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Label"), $_SERVER["PHP_SELF"], "p.label",$param,"","",$sortfield,$sortorder);
-	if (! empty($conf->service->enabled) && $type == 1) print_liste_field_titre($langs->trans("Duration"), $_SERVER["PHP_SELF"], "p.duration",$param,"",'align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Warehouse"), $_SERVER["PHP_SELF"], "e.label",$param,"",'',$sortfield,$sortorder);
-	//print_liste_field_titre($langs->trans("DesiredStock"), $_SERVER["PHP_SELF"], "p.desiredstock",$param,"",'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Batch"), $_SERVER["PHP_SELF"], "pb.batch",$param,"",'align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("EatByDate"), $_SERVER["PHP_SELF"], "pb.eatby",$param,"",'align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("SellByDate"), $_SERVER["PHP_SELF"], "pb.sellby",$param,"",'align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("PhysicalStock"), $_SERVER["PHP_SELF"], "stock_physique",$param,"",'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "p.ref",$param,"","",$sortfield,$sortorder);
+	print_liste_field_titre("Label", $_SERVER["PHP_SELF"], "p.label",$param,"","",$sortfield,$sortorder);
+	if (! empty($conf->service->enabled) && $type == 1) print_liste_field_titre("Duration", $_SERVER["PHP_SELF"], "p.duration",$param,"",'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre("Warehouse", $_SERVER["PHP_SELF"], "e.label",$param,"",'',$sortfield,$sortorder);
+	//print_liste_field_titre("DesiredStock", $_SERVER["PHP_SELF"], "p.desiredstock",$param,"",'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("Batch", $_SERVER["PHP_SELF"], "pb.batch",$param,"",'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre("EatByDate", $_SERVER["PHP_SELF"], "pb.eatby",$param,"",'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre("SellByDate", $_SERVER["PHP_SELF"], "pb.sellby",$param,"",'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre("PhysicalStock", $_SERVER["PHP_SELF"], "stock_physique",$param,"",'align="right"',$sortfield,$sortorder);
 	// TODO Add info of running suppliers/customers orders
-	//print_liste_field_titre($langs->trans("TheoreticalStock"),$_SERVER["PHP_SELF"], "stock_theorique",$param,"",'align="right"',$sortfield,$sortorder);
+	//print_liste_field_titre("TheoreticalStock",$_SERVER["PHP_SELF"], "stock_theorique",$param,"",'align="right"',$sortfield,$sortorder);
 	print_liste_field_titre('');
-	print_liste_field_titre($langs->trans("Status").' ('.$langs->trans("Sell").')',$_SERVER["PHP_SELF"], "p.tosell","",$param,'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Status").' ('.$langs->trans("Buy").')',$_SERVER["PHP_SELF"], "p.tobuy","",$param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre( $langs->trans("Status").' ('.$langs->trans("Sell").')',$_SERVER["PHP_SELF"], "p.tosell","",$param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre( $langs->trans("Status").' ('.$langs->trans("Buy").')',$_SERVER["PHP_SELF"], "p.tobuy","",$param,'align="right"',$sortfield,$sortorder);
 	print_liste_field_titre('');
 	print "</tr>\n";
 
diff --git a/htdocs/product/stats/commande.php b/htdocs/product/stats/commande.php
index 1b4036af8af..5a371554058 100644
--- a/htdocs/product/stats/commande.php
+++ b/htdocs/product/stats/commande.php
@@ -200,13 +200,13 @@ if ($id > 0 || ! empty($ref))
                 print '<div class="div-table-responsive">';
 				print '<table class="tagtable liste listwithfilterbefore" width="100%">';
 				print '<tr class="liste_titre">';
-				print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"c.rowid","",$option,'',$sortfield,$sortorder);
-				print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$option,'',$sortfield,$sortorder);
-				print_liste_field_titre($langs->trans("CustomerCode"),$_SERVER["PHP_SELF"],"s.code_client","",$option,'',$sortfield,$sortorder);
-				print_liste_field_titre($langs->trans("OrderDate"),$_SERVER["PHP_SELF"],"c.date_commande","",$option,'align="center"',$sortfield,$sortorder);
-				print_liste_field_titre($langs->trans("Qty"),$_SERVER["PHP_SELF"],"d.qty","",$option,'align="center"',$sortfield,$sortorder);
-				print_liste_field_titre($langs->trans("AmountHT"),$_SERVER["PHP_SELF"],"c.total_ht","",$option,'align="right"',$sortfield,$sortorder);
-				print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"c.fk_statut","",$option,'align="right"',$sortfield,$sortorder);
+				print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"c.rowid","",$option,'',$sortfield,$sortorder);
+				print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom","",$option,'',$sortfield,$sortorder);
+				print_liste_field_titre("CustomerCode",$_SERVER["PHP_SELF"],"s.code_client","",$option,'',$sortfield,$sortorder);
+				print_liste_field_titre("OrderDate",$_SERVER["PHP_SELF"],"c.date_commande","",$option,'align="center"',$sortfield,$sortorder);
+				print_liste_field_titre("Qty",$_SERVER["PHP_SELF"],"d.qty","",$option,'align="center"',$sortfield,$sortorder);
+				print_liste_field_titre("AmountHT",$_SERVER["PHP_SELF"],"c.total_ht","",$option,'align="right"',$sortfield,$sortorder);
+				print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"c.fk_statut","",$option,'align="right"',$sortfield,$sortorder);
 				print "</tr>\n";
 
 				if ($num > 0)
diff --git a/htdocs/product/stats/commande_fournisseur.php b/htdocs/product/stats/commande_fournisseur.php
index ad802ed36f6..daf2a9c3654 100644
--- a/htdocs/product/stats/commande_fournisseur.php
+++ b/htdocs/product/stats/commande_fournisseur.php
@@ -210,13 +210,13 @@ if ($id > 0 || ! empty($ref)) {
                 print '<div class="div-table-responsive">';
 				print '<table class="tagtable liste listwithfilterbefore" width="100%">';
 				print '<tr class="liste_titre">';
-				print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "c.rowid", "", $option, '', $sortfield, $sortorder);
-				print_liste_field_titre($langs->trans("Company"), $_SERVER["PHP_SELF"], "s.nom", "", $option, '', $sortfield, $sortorder);
-				print_liste_field_titre($langs->trans("SupplierCode"), $_SERVER["PHP_SELF"], "s.code_client", "", $option, '', $sortfield, $sortorder);
-				print_liste_field_titre($langs->trans("OrderDate"), $_SERVER["PHP_SELF"], "c.date_commande", "", $option, 'align="center"', $sortfield, $sortorder);
-				print_liste_field_titre($langs->trans("Qty"), $_SERVER["PHP_SELF"], "d.qty", "", $option, 'align="center"', $sortfield, $sortorder);
-				print_liste_field_titre($langs->trans("AmountHT"), $_SERVER["PHP_SELF"], "c.total_ht", "", $option, 'align="right"', $sortfield, $sortorder);
-				print_liste_field_titre($langs->trans("Status"), $_SERVER["PHP_SELF"], "c.fk_statut", "", $option, 'align="right"', $sortfield, $sortorder);
+				print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "c.rowid", "", $option, '', $sortfield, $sortorder);
+				print_liste_field_titre("Company", $_SERVER["PHP_SELF"], "s.nom", "", $option, '', $sortfield, $sortorder);
+				print_liste_field_titre("SupplierCode", $_SERVER["PHP_SELF"], "s.code_client", "", $option, '', $sortfield, $sortorder);
+				print_liste_field_titre("OrderDate", $_SERVER["PHP_SELF"], "c.date_commande", "", $option, 'align="center"', $sortfield, $sortorder);
+				print_liste_field_titre("Qty", $_SERVER["PHP_SELF"], "d.qty", "", $option, 'align="center"', $sortfield, $sortorder);
+				print_liste_field_titre("AmountHT", $_SERVER["PHP_SELF"], "c.total_ht", "", $option, 'align="right"', $sortfield, $sortorder);
+				print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "c.fk_statut", "", $option, 'align="right"', $sortfield, $sortorder);
 				print "</tr>\n";
 
 				if ($num > 0) {
diff --git a/htdocs/product/stats/contrat.php b/htdocs/product/stats/contrat.php
index 1f85d25f9f3..f9eed565903 100644
--- a/htdocs/product/stats/contrat.php
+++ b/htdocs/product/stats/contrat.php
@@ -163,11 +163,11 @@ if ($id > 0 || ! empty($ref))
 			print '<table class="tagtable liste listwithfilterbefore" width="100%">';
 
 			print '<tr class="liste_titre">';
-			print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"c.rowid","","&amp;id=".$product->id,'',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","","&amp;id=".$product->id,'',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("CustomerCode"),$_SERVER["PHP_SELF"],"s.code_client","","&amp;id=".$product->id,'',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"c.date_contrat","","&amp;id=".$product->id,'align="center"',$sortfield,$sortorder);
-			//print_liste_field_titre($langs->trans("AmountHT"),$_SERVER["PHP_SELF"],"c.amount","","&amp;id=".$product->id,'align="right"',$sortfield,$sortorder);
+			print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"c.rowid","","&amp;id=".$product->id,'',$sortfield,$sortorder);
+			print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom","","&amp;id=".$product->id,'',$sortfield,$sortorder);
+			print_liste_field_titre("CustomerCode",$_SERVER["PHP_SELF"],"s.code_client","","&amp;id=".$product->id,'',$sortfield,$sortorder);
+			print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"c.date_contrat","","&amp;id=".$product->id,'align="center"',$sortfield,$sortorder);
+			//print_liste_field_titre("AmountHT"),$_SERVER["PHP_SELF"],"c.amount","","&amp;id=".$product->id,'align="right"',$sortfield,$sortorder);
 			print_liste_field_titre($staticcontratligne->LibStatut(0,3),$_SERVER["PHP_SELF"],"",'','','width="16"',$sortfield,$sortorder,'maxwidthsearch ');
 			print_liste_field_titre($staticcontratligne->LibStatut(4,3),$_SERVER["PHP_SELF"],"",'','','width="16"',$sortfield,$sortorder,'maxwidthsearch ');
 			print_liste_field_titre($staticcontratligne->LibStatut(5,3),$_SERVER["PHP_SELF"],"",'','','width="16"',$sortfield,$sortorder,'maxwidthsearch ');
diff --git a/htdocs/product/stats/facture.php b/htdocs/product/stats/facture.php
index 831e7ec729c..8cdc0efd5c0 100644
--- a/htdocs/product/stats/facture.php
+++ b/htdocs/product/stats/facture.php
@@ -223,13 +223,13 @@ if ($id > 0 || ! empty($ref))
                 print '<div class="div-table-responsive">';
                 print '<table class="tagtable liste listwithfilterbefore" width="100%">';
                 print '<tr class="liste_titre">';
-                print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"s.rowid","",$option,'',$sortfield,$sortorder);
-                print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$option,'',$sortfield,$sortorder);
-                print_liste_field_titre($langs->trans("CustomerCode"),$_SERVER["PHP_SELF"],"s.code_client","",$option,'',$sortfield,$sortorder);
-                print_liste_field_titre($langs->trans("DateInvoice"),$_SERVER["PHP_SELF"],"f.datef","",$option,'align="center"',$sortfield,$sortorder);
-                print_liste_field_titre($langs->trans("Qty"),$_SERVER["PHP_SELF"],"d.qty","",$option,'align="center"',$sortfield,$sortorder);
-                print_liste_field_titre($langs->trans("AmountHT"),$_SERVER["PHP_SELF"],"f.total","",$option,'align="right"',$sortfield,$sortorder);
-                print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"f.paye,f.fk_statut","",$option,'align="right"',$sortfield,$sortorder);
+                print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"s.rowid","",$option,'',$sortfield,$sortorder);
+                print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom","",$option,'',$sortfield,$sortorder);
+                print_liste_field_titre("CustomerCode",$_SERVER["PHP_SELF"],"s.code_client","",$option,'',$sortfield,$sortorder);
+                print_liste_field_titre("DateInvoice",$_SERVER["PHP_SELF"],"f.datef","",$option,'align="center"',$sortfield,$sortorder);
+                print_liste_field_titre("Qty",$_SERVER["PHP_SELF"],"d.qty","",$option,'align="center"',$sortfield,$sortorder);
+                print_liste_field_titre("AmountHT",$_SERVER["PHP_SELF"],"f.total","",$option,'align="right"',$sortfield,$sortorder);
+                print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"f.paye,f.fk_statut","",$option,'align="right"',$sortfield,$sortorder);
                 print "</tr>\n";
 
                 if ($num > 0)
diff --git a/htdocs/product/stats/facture_fournisseur.php b/htdocs/product/stats/facture_fournisseur.php
index 514fc622cc5..586741496c2 100644
--- a/htdocs/product/stats/facture_fournisseur.php
+++ b/htdocs/product/stats/facture_fournisseur.php
@@ -202,13 +202,13 @@ if ($id > 0 || ! empty($ref))
                 print '<div class="div-table-responsive">';
 				print '<table class="tagtable liste listwithfilterbefore" width="100%">';
 				print '<tr class="liste_titre">';
-				print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "s.rowid", "", $option, '', $sortfield, $sortorder);
-				print_liste_field_titre($langs->trans("Company"), $_SERVER["PHP_SELF"], "s.nom", "", $option, '', $sortfield, $sortorder);
-				print_liste_field_titre($langs->trans("SupplierCode"), $_SERVER["PHP_SELF"], "s.code_client", "", $option, '', $sortfield, $sortorder);
-				print_liste_field_titre($langs->trans("DateInvoice"), $_SERVER["PHP_SELF"], "f.datef", "", $option, 'align="center"', $sortfield, $sortorder);
-				print_liste_field_titre($langs->trans("Qty"), $_SERVER["PHP_SELF"], "d.qty", "", $option, 'align="center"', $sortfield, $sortorder);
-				print_liste_field_titre($langs->trans("AmountHT"), $_SERVER["PHP_SELF"], "f.total_ht", "", $option, 'align="right"', $sortfield, $sortorder);
-				print_liste_field_titre($langs->trans("Status"), $_SERVER["PHP_SELF"], "f.paye,f.fk_statut", "", $option, 'align="right"', $sortfield, $sortorder);
+				print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "s.rowid", "", $option, '', $sortfield, $sortorder);
+				print_liste_field_titre("Company", $_SERVER["PHP_SELF"], "s.nom", "", $option, '', $sortfield, $sortorder);
+				print_liste_field_titre("SupplierCode", $_SERVER["PHP_SELF"], "s.code_client", "", $option, '', $sortfield, $sortorder);
+				print_liste_field_titre("DateInvoice", $_SERVER["PHP_SELF"], "f.datef", "", $option, 'align="center"', $sortfield, $sortorder);
+				print_liste_field_titre("Qty", $_SERVER["PHP_SELF"], "d.qty", "", $option, 'align="center"', $sortfield, $sortorder);
+				print_liste_field_titre("AmountHT", $_SERVER["PHP_SELF"], "f.total_ht", "", $option, 'align="right"', $sortfield, $sortorder);
+				print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "f.paye,f.fk_statut", "", $option, 'align="right"', $sortfield, $sortorder);
 				print "</tr>\n";
 
 				if ($num > 0)
diff --git a/htdocs/product/stats/propal.php b/htdocs/product/stats/propal.php
index 3b7131245a6..a5801c422e0 100644
--- a/htdocs/product/stats/propal.php
+++ b/htdocs/product/stats/propal.php
@@ -204,12 +204,12 @@ if ($id > 0 || ! empty($ref))
                 print '<div class="div-table-responsive">';
 				print '<table class="tagtable liste listwithfilterbefore" width="100%">';
 				print '<tr class="liste_titre">';
-				print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "p.rowid", "", $option, '', $sortfield, $sortorder);
-				print_liste_field_titre($langs->trans("Company"), $_SERVER["PHP_SELF"], "s.nom", "", $option, '', $sortfield, $sortorder);
-				print_liste_field_titre($langs->trans("DatePropal"), $_SERVER["PHP_SELF"], "p.datep", "", $option, 'align="center"', $sortfield, $sortorder);
-				print_liste_field_titre($langs->trans("Qty"), $_SERVER["PHP_SELF"], "d.qty", "", $option, 'align="center"', $sortfield, $sortorder);
-				print_liste_field_titre($langs->trans("AmountHT"), $_SERVER["PHP_SELF"], "p.total", "", $option, 'align="right"', $sortfield, $sortorder);
-				print_liste_field_titre($langs->trans("Status"), $_SERVER["PHP_SELF"], "p.fk_statut", "", $option, 'align="right"', $sortfield, $sortorder);
+				print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "p.rowid", "", $option, '', $sortfield, $sortorder);
+				print_liste_field_titre("Company", $_SERVER["PHP_SELF"], "s.nom", "", $option, '', $sortfield, $sortorder);
+				print_liste_field_titre("DatePropal", $_SERVER["PHP_SELF"], "p.datep", "", $option, 'align="center"', $sortfield, $sortorder);
+				print_liste_field_titre("Qty", $_SERVER["PHP_SELF"], "d.qty", "", $option, 'align="center"', $sortfield, $sortorder);
+				print_liste_field_titre("AmountHT", $_SERVER["PHP_SELF"], "p.total", "", $option, 'align="right"', $sortfield, $sortorder);
+				print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "p.fk_statut", "", $option, 'align="right"', $sortfield, $sortorder);
 				print "</tr>\n";
 
 				if ($num > 0)
diff --git a/htdocs/product/stock/card.php b/htdocs/product/stock/card.php
index db8a6736688..0f843e97b61 100644
--- a/htdocs/product/stock/card.php
+++ b/htdocs/product/stock/card.php
@@ -429,13 +429,13 @@ else
 
 			print '<table class="noborder" width="100%">';
 			print "<tr class=\"liste_titre\">";
-			print_liste_field_titre($langs->trans("Product"),"", "p.ref","&amp;id=".$id,"","",$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("Label"),"", "p.label","&amp;id=".$id,"","",$sortfield,$sortorder);
-            print_liste_field_titre($langs->trans("Units"),"", "ps.reel","&amp;id=".$id,"",'align="right"',$sortfield,$sortorder);
-            print_liste_field_titre($langs->trans("AverageUnitPricePMPShort"),"", "p.pmp","&amp;id=".$id,"",'align="right"',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("EstimatedStockValueShort"),"", "","&amp;id=".$id,"",'align="right"',$sortfield,$sortorder);
-            if (empty($conf->global->PRODUIT_MULTIPRICES)) print_liste_field_titre($langs->trans("SellPriceMin"),"", "p.price","&amp;id=".$id,"",'align="right"',$sortfield,$sortorder);
-            if (empty($conf->global->PRODUIT_MULTIPRICES)) print_liste_field_titre($langs->trans("EstimatedStockValueSellShort"),"", "","&amp;id=".$id,"",'align="right"',$sortfield,$sortorder);
+			print_liste_field_titre("Product","", "p.ref","&amp;id=".$id,"","",$sortfield,$sortorder);
+			print_liste_field_titre("Label","", "p.label","&amp;id=".$id,"","",$sortfield,$sortorder);
+            print_liste_field_titre("Units","", "ps.reel","&amp;id=".$id,"",'align="right"',$sortfield,$sortorder);
+            print_liste_field_titre("AverageUnitPricePMPShort","", "p.pmp","&amp;id=".$id,"",'align="right"',$sortfield,$sortorder);
+			print_liste_field_titre("EstimatedStockValueShort","", "","&amp;id=".$id,"",'align="right"',$sortfield,$sortorder);
+            if (empty($conf->global->PRODUIT_MULTIPRICES)) print_liste_field_titre("SellPriceMin","", "p.price","&amp;id=".$id,"",'align="right"',$sortfield,$sortorder);
+            if (empty($conf->global->PRODUIT_MULTIPRICES)) print_liste_field_titre("EstimatedStockValueSellShort","", "","&amp;id=".$id,"",'align="right"',$sortfield,$sortorder);
 			if ($user->rights->stock->mouvement->creer) print_liste_field_titre('');
 			if ($user->rights->stock->creer)            print_liste_field_titre('');
 			print "</tr>\n";
diff --git a/htdocs/product/stock/list.php b/htdocs/product/stock/list.php
index 683bb4de566..d740a2a9d73 100644
--- a/htdocs/product/stock/list.php
+++ b/htdocs/product/stock/list.php
@@ -129,22 +129,22 @@ if ($result)
 	if ($search_label)	$param.="&search_label=".$search_label;
 	if ($search_status)	$param.="&search_status=".$search_status;
 	if ($sall)			$param.="&sall=".$sall;
-	
+
     print '<form action="'.$_SERVER["PHP_SELF"].'" method="post" name="formulaire">';
 	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
 	print '<input type="hidden" name="action" value="list">';
 	print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
 	print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
 	print '<input type="hidden" name="page" value="'.$page.'">';
-	
+
 	print_barre_liste($langs->trans("ListOfWarehouses"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $totalnboflines, 'title_generic.png', 0, '', '', $limit);
-	
+
 	if ($sall)
 	{
 	    foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
 	    print $langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall);
 	}
-	
+
 	$moreforfilter='';
 
     print '<div class="div-table-responsive">';
@@ -174,14 +174,14 @@ if ($result)
     print '</td>';
 
 	print '</tr>';
-    
+
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"], "e.label","",$param,"",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("LocationSummary"),$_SERVER["PHP_SELF"], "e.lieu","",$param,"",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("PhysicalStock"), $_SERVER["PHP_SELF"], "stockqty",'',$param,'align="right"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("EstimatedStockValue"), $_SERVER["PHP_SELF"], "estimatedvalue",'',$param,'align="right"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("EstimatedStockValueSell"), $_SERVER["PHP_SELF"], "",'',$param,'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"], "e.statut",'',$param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("Ref",$_SERVER["PHP_SELF"], "e.label","",$param,"",$sortfield,$sortorder);
+	print_liste_field_titre("LocationSummary",$_SERVER["PHP_SELF"], "e.lieu","",$param,"",$sortfield,$sortorder);
+	print_liste_field_titre("PhysicalStock", $_SERVER["PHP_SELF"], "stockqty",'',$param,'align="right"',$sortfield,$sortorder);
+    print_liste_field_titre("EstimatedStockValue", $_SERVER["PHP_SELF"], "estimatedvalue",'',$param,'align="right"',$sortfield,$sortorder);
+    print_liste_field_titre("EstimatedStockValueSell", $_SERVER["PHP_SELF"], "",'',$param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre("Status",$_SERVER["PHP_SELF"], "e.statut",'',$param,'align="right"',$sortfield,$sortorder);
 	print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'',$param,'',$sortfield,$sortorder,'maxwidthsearch ');
 	print "</tr>\n";
 
@@ -192,12 +192,12 @@ if ($result)
 		while ($i < min($num,$limit))
 		{
 			$objp = $db->fetch_object($result);
-            
+
 			$warehouse->id = $objp->rowid;
             $warehouse->label = $objp->ref;
             $warehouse->lieu = $objp->lieu;
             $warehouse->fk_parent = $objp->fk_parent;
-            
+
             print '<tr class="oddeven">';
             print '<td>' . $warehouse->getNomUrl(1) . '</td>';
             // Location
@@ -225,7 +225,7 @@ if ($result)
 
             print "</tr>\n";
 
-            
+
             $i++;
 		}
 
@@ -253,7 +253,7 @@ if ($result)
 
 	print "</table>";
     print "</table>";
-    
+
 	print '</form>';
 }
 else
diff --git a/htdocs/product/stock/mouvement.php b/htdocs/product/stock/mouvement.php
index e12ecee2b9b..d4f3ccd889c 100644
--- a/htdocs/product/stock/mouvement.php
+++ b/htdocs/product/stock/mouvement.php
@@ -878,12 +878,12 @@ if ($resql)
     if (! empty($arrayfields['m.batch']['checked']))            print_liste_field_titre($arrayfields['m.batch']['label'],$_SERVER["PHP_SELF"],'m.batch','',$param,'align="center"',$sortfield,$sortorder);
 	if (! empty($arrayfields['pl.eatby']['checked']))           print_liste_field_titre($arrayfields['pl.eatby']['label'],$_SERVER["PHP_SELF"],'pl.eatby','',$param,'align="center"',$sortfield,$sortorder);
 	if (! empty($arrayfields['pl.sellby']['checked']))          print_liste_field_titre($arrayfields['pl.sellby']['label'],$_SERVER["PHP_SELF"],'pl.sellby','',$param,'align="center"',$sortfield,$sortorder);
-    if (! empty($arrayfields['e.label']['checked']))        print_liste_field_titre($arrayfields['e.label']['label'],$_SERVER["PHP_SELF"], "e.label","",$param,"",$sortfield,$sortorder);	// We are on a specific warehouse card, no filter on other should be possible
+    if (! empty($arrayfields['e.label']['checked']))        	print_liste_field_titre($arrayfields['e.label']['label'],$_SERVER["PHP_SELF"], "e.label","",$param,"",$sortfield,$sortorder);	// We are on a specific warehouse card, no filter on other should be possible
     if (! empty($arrayfields['m.fk_user_author']['checked']))   print_liste_field_titre($arrayfields['m.fk_user_author']['label'],$_SERVER["PHP_SELF"], "m.fk_user_author","",$param,"",$sortfield,$sortorder);
     if (! empty($arrayfields['m.inventorycode']['checked']))    print_liste_field_titre($arrayfields['m.inventorycode']['label'],$_SERVER["PHP_SELF"], "m.inventorycode","",$param,"",$sortfield,$sortorder);
     if (! empty($arrayfields['m.label']['checked']))            print_liste_field_titre($arrayfields['m.label']['label'],$_SERVER["PHP_SELF"], "m.label","",$param,"",$sortfield,$sortorder);
     if (! empty($arrayfields['origin']['checked']))             print_liste_field_titre($arrayfields['origin']['label'],$_SERVER["PHP_SELF"], "","",$param,"",$sortfield,$sortorder);
-    if (! empty($arrayfields['m.value']['checked']))            print_liste_field_titre($langs->trans("Qty"),$_SERVER["PHP_SELF"], "m.value","",$param,'align="right"',$sortfield,$sortorder);
+    if (! empty($arrayfields['m.value']['checked']))            print_liste_field_titre($arrayfields['m.value']['label'],$_SERVER["PHP_SELF"], "m.value","",$param,'align="right"',$sortfield,$sortorder);
 	// Extra fields
 	if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
 	{
@@ -894,7 +894,7 @@ if ($resql)
 				$align=$extrafields->getAlignFlag($key);
     			$sortonfield = "ef.".$key;
     			if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-    			print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+    			print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
            }
 	   }
 	}
diff --git a/htdocs/product/stock/productlot_list.php b/htdocs/product/stock/productlot_list.php
index fc60f500ba6..638aa1e4fbd 100644
--- a/htdocs/product/stock/productlot_list.php
+++ b/htdocs/product/stock/productlot_list.php
@@ -425,7 +425,7 @@ if ($resql)
 				$align=$extrafields->getAlignFlag($key);
     			$sortonfield = "ef.".$key;
     			if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-    			print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+    			print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
            }
 	   }
 	}
@@ -435,7 +435,7 @@ if ($resql)
     print $hookmanager->resPrint;
 	if (! empty($arrayfields['t.datec']['checked']))  print_liste_field_titre($arrayfields['t.datec']['label'],$_SERVER["PHP_SELF"],"t.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
 	if (! empty($arrayfields['t.tms']['checked']))    print_liste_field_titre($arrayfields['t.tms']['label'],$_SERVER["PHP_SELF"],"t.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
-	//if (! empty($arrayfields['t.status']['checked'])) print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"t.status","",$param,'align="center"',$sortfield,$sortorder);
+	//if (! empty($arrayfields['t.status']['checked'])) print_liste_field_titre($arrayfields['t.status']['label'],$_SERVER["PHP_SELF"],"t.status","",$param,'align="center"',$sortfield,$sortorder);
 	print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ');
     print '</tr>'."\n";
 
diff --git a/htdocs/product/stock/replenish.php b/htdocs/product/stock/replenish.php
index a3f4cb8ecaf..55fe5908c7f 100644
--- a/htdocs/product/stock/replenish.php
+++ b/htdocs/product/stock/replenish.php
@@ -487,8 +487,8 @@ $param .= '&fk_supplier=' . $fk_supplier;
 $param .= '&fk_entrepot=' . $fk_entrepot;
 
 $stocklabel = $langs->trans('Stock');
-if ($usevirtualstock == 1) $stocklabel = $langs->trans('VirtualStock');
-if ($usevirtualstock == 0) $stocklabel = $langs->trans('PhysicalStock');
+if ($usevirtualstock == 1) $stocklabel = 'VirtualStock';
+if ($usevirtualstock == 0) $stocklabel = 'PhysicalStock';
 
 print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST" name="formulaire">'.
 	'<input type="hidden" name="token" value="' .$_SESSION['newtoken'] . '">'.
@@ -521,15 +521,15 @@ print '</tr>';
 // Lines of title
 print '<tr class="liste_titre">';
 print_liste_field_titre('<input type="checkbox" onClick="toggle(this)" />', $_SERVER["PHP_SELF"], '');
-print_liste_field_titre($langs->trans('Ref'), $_SERVER["PHP_SELF"], 'p.ref', $param, '', '', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans('Label'), $_SERVER["PHP_SELF"], 'p.label', $param, '', '', $sortfield, $sortorder);
-if (!empty($conf->service->enabled) && $type == 1) print_liste_field_titre($langs->trans('Duration'), $_SERVER["PHP_SELF"], 'p.duration', $param, '', 'align="center"', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans('DesiredStock'), $_SERVER["PHP_SELF"], 'p.desiredstock', $param, '', 'align="right"', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans('StockLimitShort'), $_SERVER["PHP_SELF"], 'p.seuil_stock_alerte', $param, '', 'align="right"', $sortfield, $sortorder);
+print_liste_field_titre('Ref', $_SERVER["PHP_SELF"], 'p.ref', $param, '', '', $sortfield, $sortorder);
+print_liste_field_titre('Label', $_SERVER["PHP_SELF"], 'p.label', $param, '', '', $sortfield, $sortorder);
+if (!empty($conf->service->enabled) && $type == 1) print_liste_field_titre('Duration', $_SERVER["PHP_SELF"], 'p.duration', $param, '', 'align="center"', $sortfield, $sortorder);
+print_liste_field_titre('DesiredStock', $_SERVER["PHP_SELF"], 'p.desiredstock', $param, '', 'align="right"', $sortfield, $sortorder);
+print_liste_field_titre('StockLimitShort', $_SERVER["PHP_SELF"], 'p.seuil_stock_alerte', $param, '', 'align="right"', $sortfield, $sortorder);
 print_liste_field_titre($stocklabel, $_SERVER["PHP_SELF"], 'stock_physique', $param, '', 'align="right"', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans('Ordered'), $_SERVER["PHP_SELF"], '', $param, '', 'align="right"', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans('StockToBuy'), $_SERVER["PHP_SELF"], '', $param, '', 'align="right"', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans('SupplierRef'), $_SERVER["PHP_SELF"], '', $param, '', 'align="right"', $sortfield, $sortorder);
+print_liste_field_titre('Ordered', $_SERVER["PHP_SELF"], '', $param, '', 'align="right"', $sortfield, $sortorder);
+print_liste_field_titre('StockToBuy', $_SERVER["PHP_SELF"], '', $param, '', 'align="right"', $sortfield, $sortorder);
+print_liste_field_titre('SupplierRef', $_SERVER["PHP_SELF"], '', $param, '', 'align="right"', $sortfield, $sortorder);
 print "</tr>\n";
 
 $prod = new Product($db);
@@ -579,7 +579,7 @@ while ($i < ($limit ? min($num, $limit) : $num))
 		}else {
 			$result=$prod->load_stats_commande_fournisseur(0,'1,2,3,4');
 		}
-		
+
 		$result=$prod->load_stats_reception(0,'4');
 
 		//print $prod->stats_commande_fournisseur['qty'].'<br>'."\n";
diff --git a/htdocs/product/stock/replenishorders.php b/htdocs/product/stock/replenishorders.php
index 6ed7fc379b5..694f9cae1ad 100644
--- a/htdocs/product/stock/replenishorders.php
+++ b/htdocs/product/stock/replenishorders.php
@@ -186,7 +186,7 @@ if ($resql)
 
          print '<tr class="liste_titre">';
          print_liste_field_titre(
-             $langs->trans('Ref'),
+             'Ref',
              $_SERVER['PHP_SELF'],
              'cf.ref',
              '',
@@ -196,7 +196,7 @@ if ($resql)
              $sortorder
              );
          print_liste_field_titre(
-             $langs->trans('Company'),
+             'Company',
              $_SERVER['PHP_SELF'],
              's.nom',
              '',
@@ -206,7 +206,7 @@ if ($resql)
              $sortorder
              );
          print_liste_field_titre(
-             $langs->trans('Author'),
+             'Author',
              $_SERVER['PHP_SELF'],
              'u.login',
              '',
@@ -216,7 +216,7 @@ if ($resql)
              $sortorder
              );
          print_liste_field_titre(
-             $langs->trans('AmountTTC'),
+             'AmountTTC',
              $_SERVER['PHP_SELF'],
              'cf.total_ttc',
              '',
@@ -226,7 +226,7 @@ if ($resql)
              $sortorder
              );
          print_liste_field_titre(
-             $langs->trans('OrderCreation'),
+             'OrderCreation',
              $_SERVER['PHP_SELF'],
              'cf.date_creation',
              '',
@@ -236,7 +236,7 @@ if ($resql)
              $sortorder
              );
          print_liste_field_titre(
-             $langs->trans('Status'),
+             'Status',
              $_SERVER['PHP_SELF'],
              'cf.fk_statut',
              '',
@@ -246,7 +246,7 @@ if ($resql)
              $sortorder
              );
          print '</tr>';
-          
+
     $userstatic = new User($db);
 
     while ($i < min($num,$conf->liste_limit))
diff --git a/htdocs/product/stock/valo.php b/htdocs/product/stock/valo.php
index 40e3060cfee..a1d68394bb0 100644
--- a/htdocs/product/stock/valo.php
+++ b/htdocs/product/stock/valo.php
@@ -87,11 +87,11 @@ if ($result)
 
     print '<table class="noborder" width="100%">';
     print "<tr class=\"liste_titre\">";
-    print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "e.label","","","",$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("LocationSummary"), $_SERVER["PHP_SELF"], "e.lieu","","","",$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("EstimatedStockValue"), $_SERVER["PHP_SELF"], "e.valo_pmp",'','','align="right"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("EstimatedStockValueSell"), $_SERVER["PHP_SELF"], "",'','','align="right"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Status"), $_SERVER["PHP_SELF"], "e.statut",'','','align="right"',$sortfield,$sortorder);
+    print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "e.label","","","",$sortfield,$sortorder);
+    print_liste_field_titre("LocationSummary", $_SERVER["PHP_SELF"], "e.lieu","","","",$sortfield,$sortorder);
+    print_liste_field_titre("EstimatedStockValue", $_SERVER["PHP_SELF"], "e.valo_pmp",'','','align="right"',$sortfield,$sortorder);
+    print_liste_field_titre("EstimatedStockValueSell", $_SERVER["PHP_SELF"], "",'','','align="right"',$sortfield,$sortorder);
+    print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "e.statut",'','','align="right"',$sortfield,$sortorder);
     print "</tr>\n";
 
     if ($num)
@@ -120,7 +120,7 @@ if ($result)
             print "</tr>\n";
             $total += price2num($objp->estimatedvalue,'MU');
             $totalsell += price2num($objp->sellvalue,'MU');
-            
+
             $i++;
         }
 
@@ -134,7 +134,7 @@ if ($result)
     }
 
     $db->free($result);
-    
+
     print "</table>";
 
     print '<br>';
diff --git a/htdocs/projet/index.php b/htdocs/projet/index.php
index 7aecd454365..2188d4bd6a4 100644
--- a/htdocs/projet/index.php
+++ b/htdocs/projet/index.php
@@ -161,8 +161,8 @@ print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
 
 print '<table class="noborder" width="100%">';
 print '<tr class="liste_titre">';
-print_liste_field_titre($langs->trans("OpenedProjectsByThirdparties"),$_SERVER["PHP_SELF"],"s.nom","","",'',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("NbOfProjects"),"","","","",'align="right"',$sortfield,$sortorder);
+print_liste_field_titre("OpenedProjectsByThirdparties",$_SERVER["PHP_SELF"],"s.nom","","",'',$sortfield,$sortorder);
+print_liste_field_titre("NbOfProjects","","","","",'align="right"',$sortfield,$sortorder);
 print "</tr>\n";
 
 $sql = "SELECT COUNT(p.rowid) as nb, SUM(p.opp_amount)";
diff --git a/htdocs/projet/list.php b/htdocs/projet/list.php
index 7ee41fcd024..12576d790fd 100644
--- a/htdocs/projet/list.php
+++ b/htdocs/projet/list.php
@@ -640,7 +640,7 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab
             $align=$extrafields->getAlignFlag($key);
             $sortonfield = "ef.".$key;
             if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-            print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+            print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
         }
     }
 }
diff --git a/htdocs/projet/tasks/list.php b/htdocs/projet/tasks/list.php
index 58ef76b7a91..7078b11ae70 100644
--- a/htdocs/projet/tasks/list.php
+++ b/htdocs/projet/tasks/list.php
@@ -610,7 +610,7 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab
             $align=$extrafields->getAlignFlag($key);
             $sortonfield = "ef.".$key;
             if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-            print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+            print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
         }
     }
 }
diff --git a/htdocs/projet/tasks/time.php b/htdocs/projet/tasks/time.php
index f643b9b5ca3..595617110c7 100644
--- a/htdocs/projet/tasks/time.php
+++ b/htdocs/projet/tasks/time.php
@@ -807,7 +807,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     				$align=$extrafields->getAlignFlag($key);
         			$sortonfield = "ef.".$key;
         			if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-        			print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+        			print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
                }
     	   }
     	}*/
diff --git a/htdocs/public/members/public_list.php b/htdocs/public/members/public_list.php
index 232c6ef5aa3..ef42b4e8d56 100644
--- a/htdocs/public/members/public_list.php
+++ b/htdocs/public/members/public_list.php
@@ -132,18 +132,18 @@ if ($result)
 	print '<tr class="public_liste_titre">';
 	print '<td><a href="'.$_SERVER["PHP_SELF"].'?page='.$page.'&sortorder=ASC&sortfield=firstname">'.dolGetFirstLastname($langs->trans("Firstname"),$langs->trans("Lastname")).'</a></td>';
 	print '<td><a href="'.$_SERVER["PHP_SELF"].'?page='.$page.'&sortorder=ASC&sortfield=societe">'.$langs->trans("Company").'</a></td>'."\n";
-	//print_liste_field_titre($langs->trans("DateToBirth"), $_SERVER["PHP_SELF"],"birth",'',$param,$sortfield,$sortorder); // est-ce nécessaire ??
-	print_liste_field_titre($langs->trans("EMail"), $_SERVER["PHP_SELF"],"email",'',$param,'',$sortfield,$sortorder,'public_');
-	print_liste_field_titre($langs->trans("Zip"), $_SERVER["PHP_SELF"],"zip","",$param,'',$sortfield,$sortorder,'public_');
-	print_liste_field_titre($langs->trans("Town"), $_SERVER["PHP_SELF"],"town","",$param,'',$sortfield,$sortorder,'public_');
-	print_liste_field_titre($langs->trans("Photo"), $_SERVER["PHP_SELF"],"","",$param,'',$sortfield,$sortorder,'public_');
+	//print_liste_field_titre("DateToBirth", $_SERVER["PHP_SELF"],"birth",'',$param,$sortfield,$sortorder); // est-ce nécessaire ??
+	print_liste_field_titre("EMail", $_SERVER["PHP_SELF"],"email",'',$param,'',$sortfield,$sortorder,'public_');
+	print_liste_field_titre("Zip", $_SERVER["PHP_SELF"],"zip","",$param,'',$sortfield,$sortorder,'public_');
+	print_liste_field_titre("Town", $_SERVER["PHP_SELF"],"town","",$param,'',$sortfield,$sortorder,'public_');
+	print_liste_field_titre("Photo", $_SERVER["PHP_SELF"],"","",$param,'',$sortfield,$sortorder,'public_');
 	print "</tr>\n";
 
 	$var=True;
 	while ($i < $num && $i < $conf->liste_limit)
 	{
 		$objp = $db->fetch_object($result);
-		
+
 		print '<tr class="oddeven">';
 		print '<td><a href="public_card.php?id='.$objp->rowid.'">'.dolGetFirstLastname($objp->firstname, $objp->lastname).'</a></td>'."\n";
 		print '<td>'.$objp->societe.'</td>'."\n";
diff --git a/htdocs/resource/list.php b/htdocs/resource/list.php
index 0564392071a..40d4b7b3655 100644
--- a/htdocs/resource/list.php
+++ b/htdocs/resource/list.php
@@ -247,7 +247,7 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab
             $align=$extrafields->getAlignFlag($key);
 			$sortonfield = "ef.".$key;
 			if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-			print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+			print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
         }
     }
 }
diff --git a/htdocs/societe/consumption.php b/htdocs/societe/consumption.php
index 5c134aee36d..4c68e12583a 100644
--- a/htdocs/societe/consumption.php
+++ b/htdocs/societe/consumption.php
@@ -386,13 +386,13 @@ if ($sql_select)
 
     // Titles with sort buttons
     print '<tr class="liste_titre">';
-    print_liste_field_titre($langs->trans('Ref'),$_SERVER['PHP_SELF'],'doc_number','',$param,'align="left"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans('Date'),$_SERVER['PHP_SELF'],'dateprint','',$param,'align="center" width="150"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans('Status'),$_SERVER['PHP_SELF'],'fk_statut','',$param,'align="center"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans('Product'),$_SERVER['PHP_SELF'],'','',$param,'align="left"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans('Quantity'),$_SERVER['PHP_SELF'],'prod_qty','',$param,'align="right"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans('TotalHT'),$_SERVER['PHP_SELF'],'total_ht','',$param,'align="right"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans('UnitPrice'),$_SERVER['PHP_SELF'],'','',$param,'align="right"',$sortfield,$sortorder);
+    print_liste_field_titre('Ref',$_SERVER['PHP_SELF'],'doc_number','',$param,'align="left"',$sortfield,$sortorder);
+    print_liste_field_titre('Date',$_SERVER['PHP_SELF'],'dateprint','',$param,'align="center" width="150"',$sortfield,$sortorder);
+    print_liste_field_titre('Status',$_SERVER['PHP_SELF'],'fk_statut','',$param,'align="center"',$sortfield,$sortorder);
+    print_liste_field_titre('Product',$_SERVER['PHP_SELF'],'','',$param,'align="left"',$sortfield,$sortorder);
+    print_liste_field_titre('Quantity',$_SERVER['PHP_SELF'],'prod_qty','',$param,'align="right"',$sortfield,$sortorder);
+    print_liste_field_titre('TotalHT',$_SERVER['PHP_SELF'],'total_ht','',$param,'align="right"',$sortfield,$sortorder);
+    print_liste_field_titre('UnitPrice',$_SERVER['PHP_SELF'],'','',$param,'align="right"',$sortfield,$sortorder);
     print "</tr>\n";
 
 
@@ -605,11 +605,11 @@ else if (empty($type_element) || $type_element == -1)
     print '<table class="liste" width="100%">'."\n";
     // Titles with sort buttons
     print '<tr class="liste_titre">';
-    print_liste_field_titre($langs->trans('Ref'),$_SERVER['PHP_SELF'],'doc_number','',$param,'align="left"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans('Date'),$_SERVER['PHP_SELF'],'dateprint','',$param,'align="center" width="150"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans('Status'),$_SERVER['PHP_SELF'],'fk_status','',$param,'align="center"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans('Product'),$_SERVER['PHP_SELF'],'','',$param,'align="left"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans('Quantity'),$_SERVER['PHP_SELF'],'prod_qty','',$param,'align="right"',$sortfield,$sortorder);
+    print_liste_field_titre('Ref',$_SERVER['PHP_SELF'],'doc_number','',$param,'align="left"',$sortfield,$sortorder);
+    print_liste_field_titre('Date',$_SERVER['PHP_SELF'],'dateprint','',$param,'align="center" width="150"',$sortfield,$sortorder);
+    print_liste_field_titre('Status',$_SERVER['PHP_SELF'],'fk_status','',$param,'align="center"',$sortfield,$sortorder);
+    print_liste_field_titre('Product',$_SERVER['PHP_SELF'],'','',$param,'align="left"',$sortfield,$sortorder);
+    print_liste_field_titre('Quantity',$_SERVER['PHP_SELF'],'prod_qty','',$param,'align="right"',$sortfield,$sortorder);
     print "</tr>\n";
 
 	print '<tr '.$bc[0].'><td class="opacitymedium" colspan="5">'.$langs->trans("SelectElementAndClick", $langs->transnoentitiesnoconv("Search")).'</td></tr>';
diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php
index 6896685f4fc..45030b7f3cd 100644
--- a/htdocs/societe/list.php
+++ b/htdocs/societe/list.php
@@ -931,7 +931,7 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab
             $align=$extrafields->getAlignFlag($key);
             $sortonfield = "ef.".$key;
             if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-            print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+            print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
         }
     }
 }
diff --git a/htdocs/societe/notify/card.php b/htdocs/societe/notify/card.php
index 5cbbdba629b..697ae315fb3 100644
--- a/htdocs/societe/notify/card.php
+++ b/htdocs/societe/notify/card.php
@@ -230,9 +230,9 @@ if ($result > 0)
     // Line with titles
     print '<table width="100%" class="noborder">';
     print '<tr class="liste_titre">';
-    print_liste_field_titre($langs->trans("Target"),$_SERVER["PHP_SELF"],"c.lastname,c.firstname",'',$param,'"width="45%"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"",'',$param,'"width="35%"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"n.type",'',$param,'"width="10%"',$sortfield,$sortorder);
+    print_liste_field_titre("Target",$_SERVER["PHP_SELF"],"c.lastname,c.firstname",'',$param,'"width="45%"',$sortfield,$sortorder);
+    print_liste_field_titre("Action",$_SERVER["PHP_SELF"],"",'',$param,'"width="35%"',$sortfield,$sortorder);
+    print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"n.type",'',$param,'"width="10%"',$sortfield,$sortorder);
     print_liste_field_titre('');
 	print "</tr>\n";
 
@@ -305,9 +305,9 @@ if ($result > 0)
     // Line with titles
     print '<table width="100%" class="noborder">';
     print '<tr class="liste_titre">';
-    print_liste_field_titre($langs->trans("Target"),$_SERVER["PHP_SELF"],"c.lastname,c.firstname",'',$param,'"width="45%"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"",'',$param,'"width="35%"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"n.type",'',$param,'"width="10%"',$sortfield,$sortorder);
+    print_liste_field_titre("Target",$_SERVER["PHP_SELF"],"c.lastname,c.firstname",'',$param,'"width="45%"',$sortfield,$sortorder);
+    print_liste_field_titre("Action",$_SERVER["PHP_SELF"],"",'',$param,'"width="35%"',$sortfield,$sortorder);
+    print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"n.type",'',$param,'"width="10%"',$sortfield,$sortorder);
     print_liste_field_titre('','','');
     print '</tr>';
 
@@ -463,11 +463,11 @@ if ($result > 0)
     // Line with titles
     print '<table width="100%" class="noborder">';
     print '<tr class="liste_titre">';
-    print_liste_field_titre($langs->trans("Target"),$_SERVER["PHP_SELF"],"c.lastname,c.firstname",'',$param,'',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"",'',$param,'',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"n.type",'',$param,'',$sortfield,$sortorder);
-    //print_liste_field_titre($langs->trans("Object"),$_SERVER["PHP_SELF"],"",'',$param,'"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"n.daten",'',$param,'align="right"',$sortfield,$sortorder);
+    print_liste_field_titre("Target",$_SERVER["PHP_SELF"],"c.lastname,c.firstname",'',$param,'',$sortfield,$sortorder);
+    print_liste_field_titre("Action",$_SERVER["PHP_SELF"],"",'',$param,'',$sortfield,$sortorder);
+    print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"n.type",'',$param,'',$sortfield,$sortorder);
+    //print_liste_field_titre("Object",$_SERVER["PHP_SELF"],"",'',$param,'"',$sortfield,$sortorder);
+    print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"n.daten",'',$param,'align="right"',$sortfield,$sortorder);
     print '</tr>';
 
     if ($num > 0)
diff --git a/htdocs/societe/notify/index.php b/htdocs/societe/notify/index.php
index 4b7a5a3a111..1a46f62d202 100644
--- a/htdocs/societe/notify/index.php
+++ b/htdocs/societe/notify/index.php
@@ -81,16 +81,16 @@ if ($result)
 
 	print '<table class="noborder" width="100%">';
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","","",'valign="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Contact"),$_SERVER["PHP_SELF"],"c.lastname","","",'valign="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"a.titre","","",'valign="center"',$sortfield,$sortorder);
+	print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom","","",'valign="center"',$sortfield,$sortorder);
+	print_liste_field_titre("Contact",$_SERVER["PHP_SELF"],"c.lastname","","",'valign="center"',$sortfield,$sortorder);
+	print_liste_field_titre("Action",$_SERVER["PHP_SELF"],"a.titre","","",'valign="center"',$sortfield,$sortorder);
 	print "</tr>\n";
 	$var=True;
 	while ($i < $num)
 	{
 		$obj = $db->fetch_object($result);
 
-		
+
 
 		print '<tr class="oddeven">';
 		print "<td><a href=\"card.php?socid=".$obj->socid."\">".$obj->name."</a></td>\n";
diff --git a/htdocs/societe/rib.php b/htdocs/societe/rib.php
index 7385b466e34..92b3ef01552 100644
--- a/htdocs/societe/rib.php
+++ b/htdocs/societe/rib.php
@@ -443,17 +443,17 @@ if ($socid && $action != 'edit' && $action != "create")
         print '<table class="liste" width="100%">';
 
         print '<tr class="liste_titre">';
-        print_liste_field_titre($langs->trans("LabelRIB"));
-        print_liste_field_titre($langs->trans("Bank"));
-        print_liste_field_titre($langs->trans("RIB"));
-        print_liste_field_titre($langs->trans("IBAN"));
-        print_liste_field_titre($langs->trans("BIC"));
+        print_liste_field_titre("LabelRIB");
+        print_liste_field_titre("Bank");
+        print_liste_field_titre("RIB");
+        print_liste_field_titre("IBAN");
+        print_liste_field_titre("BIC");
         if (! empty($conf->prelevement->enabled))
         {
-			print print_liste_field_titre($langs->trans("RUM"));
-			print print_liste_field_titre($langs->trans("WithdrawMode"));
+			print print_liste_field_titre("RUM");
+			print print_liste_field_titre("WithdrawMode");
         }
-        print_liste_field_titre($langs->trans("DefaultRIB"), '', '', '', '', 'align="center"');
+        print_liste_field_titre("DefaultRIB", '', '', '', '', 'align="center"');
         print_liste_field_titre('', '', '', '', '', 'align="center"');
         print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch ');
 		print "</tr>\n";
diff --git a/htdocs/societe/societecontact.php b/htdocs/societe/societecontact.php
index e640cabc93b..d95c0bc554f 100644
--- a/htdocs/societe/societecontact.php
+++ b/htdocs/societe/societecontact.php
@@ -234,14 +234,14 @@ if ($id > 0 || ! empty($ref))
 
 					print "<table class=\"noborder\" width=\"100%\">";
 					print '<tr class="liste_titre">';
-					print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"d.rowid",$param,"","",$sortfield,$sortorder);
-					print_liste_field_titre($langs->trans("Name")." / ".$langs->trans("Company"),$_SERVER["PHP_SELF"],"d.lastname",$param,"","",$sortfield,$sortorder);
-					print_liste_field_titre($langs->trans("Login"),$_SERVER["PHP_SELF"],"d.login",$param,"","",$sortfield,$sortorder);
-					print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"t.libelle",$param,"","",$sortfield,$sortorder);
-					print_liste_field_titre($langs->trans("Person"),$_SERVER["PHP_SELF"],"d.morphy",$param,"","",$sortfield,$sortorder);
-					print_liste_field_titre($langs->trans("EMail"),$_SERVER["PHP_SELF"],"d.email",$param,"","",$sortfield,$sortorder);
-					print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"d.statut,d.datefin",$param,"","",$sortfield,$sortorder);
-					print_liste_field_titre($langs->trans("EndSubscription"),$_SERVER["PHP_SELF"],"d.datefin",$param,"",'align="center"',$sortfield,$sortorder);
+					print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"d.rowid",$param,"","",$sortfield,$sortorder);
+					print_liste_field_titre( $langs->trans("Name")." / ".$langs->trans("Company"),$_SERVER["PHP_SELF"],"d.lastname",$param,"","",$sortfield,$sortorder);
+					print_liste_field_titre("Login",$_SERVER["PHP_SELF"],"d.login",$param,"","",$sortfield,$sortorder);
+					print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"t.libelle",$param,"","",$sortfield,$sortorder);
+					print_liste_field_titre("Person",$_SERVER["PHP_SELF"],"d.morphy",$param,"","",$sortfield,$sortorder);
+					print_liste_field_titre("EMail",$_SERVER["PHP_SELF"],"d.email",$param,"","",$sortfield,$sortorder);
+					print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"d.statut,d.datefin",$param,"","",$sortfield,$sortorder);
+					print_liste_field_titre("EndSubscription",$_SERVER["PHP_SELF"],"d.datefin",$param,"",'align="center"',$sortfield,$sortorder);
 					print "</tr>\n";
 
 					$var=True;
diff --git a/htdocs/supplier_proposal/list.php b/htdocs/supplier_proposal/list.php
index 23a0fae1876..cfe94989301 100644
--- a/htdocs/supplier_proposal/list.php
+++ b/htdocs/supplier_proposal/list.php
@@ -734,7 +734,7 @@ if ($resql)
 				$align=$extrafields->getAlignFlag($key);
     			$sortonfield = "ef.".$key;
     			if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-    			print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+    			print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
            }
 	   }
 	}
diff --git a/htdocs/user/group/index.php b/htdocs/user/group/index.php
index 41eb7d0fa77..9624e462a71 100644
--- a/htdocs/user/group/index.php
+++ b/htdocs/user/group/index.php
@@ -164,14 +164,14 @@ if ($resql)
     print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
 
     print '<tr class="liste_titre">';
-    print_liste_field_titre($langs->trans("Group"),$_SERVER["PHP_SELF"],"g.nom",$param,"","",$sortfield,$sortorder);
+    print_liste_field_titre("Group",$_SERVER["PHP_SELF"],"g.nom",$param,"","",$sortfield,$sortorder);
     //multicompany
     if(! empty($conf->multicompany->enabled) && empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE) && $conf->entity == 1)
     {
-    	print_liste_field_titre($langs->trans("Entity"),$_SERVER["PHP_SELF"],"g.entity",$param,"",'align="center"',$sortfield,$sortorder);
+    	print_liste_field_titre("Entity",$_SERVER["PHP_SELF"],"g.entity",$param,"",'align="center"',$sortfield,$sortorder);
     }
-    print_liste_field_titre($langs->trans("NbOfUsers"),$_SERVER["PHP_SELF"],"nb",$param,"",'align="center"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("DateCreationShort"),$_SERVER["PHP_SELF"],"g.datec",$param,"",'align="right"',$sortfield,$sortorder);
+    print_liste_field_titre("NbOfUsers",$_SERVER["PHP_SELF"],"nb",$param,"",'align="center"',$sortfield,$sortorder);
+    print_liste_field_titre("DateCreationShort",$_SERVER["PHP_SELF"],"g.datec",$param,"",'align="right"',$sortfield,$sortorder);
     print "</tr>\n";
 
     $var=True;
diff --git a/htdocs/user/hierarchy.php b/htdocs/user/hierarchy.php
index 59798d65e1a..892d60373a9 100644
--- a/htdocs/user/hierarchy.php
+++ b/htdocs/user/hierarchy.php
@@ -156,9 +156,9 @@ print '</td>';
 print '</tr>';
 
 print '<tr class="liste_titre">';
-print_liste_field_titre($langs->trans("HierarchicView"));
+print_liste_field_titre("HierarchicView");
 print_liste_field_titre('<div id="iddivjstreecontrol"><a href="#">'.img_picto('','object_category').' '.$langs->trans("UndoExpandAll").'</a> | <a href="#">'.img_picto('','object_category-expanded').' '.$langs->trans("ExpandAll").'</a></div>',$_SERVER['PHP_SELF'],"",'',"",'align="center"');
-print_liste_field_titre($langs->trans("Status"),$_SERVER['PHP_SELF'],"",'',"",'align="right"');
+print_liste_field_titre("Status",$_SERVER['PHP_SELF'],"",'',"",'align="right"');
 print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','','','','maxwidthsearch ');
 print '</tr>';
 
diff --git a/htdocs/user/index.php b/htdocs/user/index.php
index 631a75d47c4..9f15b1dda18 100644
--- a/htdocs/user/index.php
+++ b/htdocs/user/index.php
@@ -431,18 +431,18 @@ print "</tr>\n";
 
 
 print '<tr class="liste_titre">';
-if (! empty($arrayfields['u.login']['checked']))          print_liste_field_titre($langs->trans("Login"),$_SERVER['PHP_SELF'],"u.login",$param,"","",$sortfield,$sortorder);
-if (! empty($arrayfields['u.lastname']['checked']))       print_liste_field_titre($langs->trans("Lastname"),$_SERVER['PHP_SELF'],"u.lastname",$param,"","",$sortfield,$sortorder);
-if (! empty($arrayfields['u.firstname']['checked']))      print_liste_field_titre($langs->trans("FirstName"),$_SERVER['PHP_SELF'],"u.firstname",$param,"","",$sortfield,$sortorder);
-if (! empty($arrayfields['u.gender']['checked']))         print_liste_field_titre($langs->trans("Gender"),$_SERVER['PHP_SELF'],"u.gender",$param,"","",$sortfield,$sortorder);
-if (! empty($arrayfields['u.employee']['checked']))       print_liste_field_titre($langs->trans("Employee"),$_SERVER['PHP_SELF'],"u.employee",$param,"","",$sortfield,$sortorder);
-if (! empty($arrayfields['u.accountancy_code']['checked'])) print_liste_field_titre($langs->trans("AccountancyCode"),$_SERVER['PHP_SELF'],"u.accountancy_code",$param,"","",$sortfield,$sortorder);
-if (! empty($arrayfields['u.email']['checked']))          print_liste_field_titre($langs->trans("EMail"),$_SERVER['PHP_SELF'],"u.email",$param,"","",$sortfield,$sortorder);
-if (! empty($arrayfields['u.fk_soc']['checked']))         print_liste_field_titre($langs->trans("Company"),$_SERVER['PHP_SELF'],"u.fk_soc",$param,"","",$sortfield,$sortorder);
-if (! empty($arrayfields['u.entity']['checked']))         print_liste_field_titre($langs->trans("Entity"),$_SERVER['PHP_SELF'],"u.entity",$param,"","",$sortfield,$sortorder);
-if (! empty($arrayfields['u.fk_user']['checked']))        print_liste_field_titre($langs->trans("HierarchicalResponsible"),$_SERVER['PHP_SELF'],"u.fk_user",$param,"","",$sortfield,$sortorder);
-if (! empty($arrayfields['u.datelastlogin']['checked']))  print_liste_field_titre($langs->trans("LastConnexion"),$_SERVER['PHP_SELF'],"u.datelastlogin",$param,"",'align="center"',$sortfield,$sortorder);
-if (! empty($arrayfields['u.datepreviouslogin']['checked'])) print_liste_field_titre($langs->trans("PreviousConnexion"),$_SERVER['PHP_SELF'],"u.datepreviouslogin",$param,"",'align="center"',$sortfield,$sortorder);
+if (! empty($arrayfields['u.login']['checked']))          print_liste_field_titre("Login",$_SERVER['PHP_SELF'],"u.login",$param,"","",$sortfield,$sortorder);
+if (! empty($arrayfields['u.lastname']['checked']))       print_liste_field_titre("Lastname",$_SERVER['PHP_SELF'],"u.lastname",$param,"","",$sortfield,$sortorder);
+if (! empty($arrayfields['u.firstname']['checked']))      print_liste_field_titre("FirstName",$_SERVER['PHP_SELF'],"u.firstname",$param,"","",$sortfield,$sortorder);
+if (! empty($arrayfields['u.gender']['checked']))         print_liste_field_titre("Gender",$_SERVER['PHP_SELF'],"u.gender",$param,"","",$sortfield,$sortorder);
+if (! empty($arrayfields['u.employee']['checked']))       print_liste_field_titre("Employee",$_SERVER['PHP_SELF'],"u.employee",$param,"","",$sortfield,$sortorder);
+if (! empty($arrayfields['u.accountancy_code']['checked'])) print_liste_field_titre("AccountancyCode",$_SERVER['PHP_SELF'],"u.accountancy_code",$param,"","",$sortfield,$sortorder);
+if (! empty($arrayfields['u.email']['checked']))          print_liste_field_titre("EMail",$_SERVER['PHP_SELF'],"u.email",$param,"","",$sortfield,$sortorder);
+if (! empty($arrayfields['u.fk_soc']['checked']))         print_liste_field_titre("Company",$_SERVER['PHP_SELF'],"u.fk_soc",$param,"","",$sortfield,$sortorder);
+if (! empty($arrayfields['u.entity']['checked']))         print_liste_field_titre("Entity",$_SERVER['PHP_SELF'],"u.entity",$param,"","",$sortfield,$sortorder);
+if (! empty($arrayfields['u.fk_user']['checked']))        print_liste_field_titre("HierarchicalResponsible",$_SERVER['PHP_SELF'],"u.fk_user",$param,"","",$sortfield,$sortorder);
+if (! empty($arrayfields['u.datelastlogin']['checked']))  print_liste_field_titre("LastConnexion",$_SERVER['PHP_SELF'],"u.datelastlogin",$param,"",'align="center"',$sortfield,$sortorder);
+if (! empty($arrayfields['u.datepreviouslogin']['checked'])) print_liste_field_titre("PreviousConnexion",$_SERVER['PHP_SELF'],"u.datepreviouslogin",$param,"",'align="center"',$sortfield,$sortorder);
 // Extra fields
 if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
 {
@@ -453,7 +453,7 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab
             $align=$extrafields->getAlignFlag($key);
 			$sortonfield = "ef.".$key;
 			if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
-			print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+			print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
         }
     }
 }
@@ -461,9 +461,9 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab
 $parameters=array('arrayfields'=>$arrayfields);
 $reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters);    // Note that $action and $object may have been modified by hook
 print $hookmanager->resPrint;
-if (! empty($arrayfields['u.datec']['checked']))  print_liste_field_titre($langs->trans("DateCreationShort"),$_SERVER["PHP_SELF"],"u.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
-if (! empty($arrayfields['u.tms']['checked']))    print_liste_field_titre($langs->trans("DateModificationShort"),$_SERVER["PHP_SELF"],"u.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
-if (! empty($arrayfields['u.statut']['checked'])) print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"u.statut","",$param,'align="center"',$sortfield,$sortorder);
+if (! empty($arrayfields['u.datec']['checked']))  print_liste_field_titre("DateCreationShort",$_SERVER["PHP_SELF"],"u.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
+if (! empty($arrayfields['u.tms']['checked']))    print_liste_field_titre("DateModificationShort",$_SERVER["PHP_SELF"],"u.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
+if (! empty($arrayfields['u.statut']['checked'])) print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"u.statut","",$param,'align="center"',$sortfield,$sortorder);
 print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ');
 print "</tr>\n";
 
diff --git a/htdocs/user/notify/card.php b/htdocs/user/notify/card.php
index b803fd93f7b..04e524cef92 100644
--- a/htdocs/user/notify/card.php
+++ b/htdocs/user/notify/card.php
@@ -140,14 +140,14 @@ if ($result > 0)
     dol_fiche_head($head, 'notify', $langs->trans("User"), -1, 'user');
 
     $linkback = '<a href="'.DOL_URL_ROOT.'/user/index.php">'.$langs->trans("BackToList").'</a>';
-    
+
     dol_banner_tab($object, 'id', $linkback, $user->rights->user->user->lire || $user->admin, 'rowid', 'ref', '', '', 0, '', '', 0, '');
-        
+
     print '<div class="fichecenter">';
-    
+
     print '<div class="underbanner clearboth"></div>';
     print '<table class="border centpercent">';
-    
+
     // Login
     print '<tr><td class="titlefield">'.$langs->trans("Login").'</td>';
     if (! empty($object->ldap_sid) && $object->statut==0)
@@ -159,7 +159,7 @@ if ($result > 0)
         print '<td>'.$object->login.'</td>';
     }
     print '</tr>'."\n";
-            
+
     /*print '<tr><td class="titlefield">'.$langs->trans("NbOfActiveNotifications").'</td>';   // Notification for this thirdparty
     print '<td colspan="3">';
     $nbofrecipientemails=0;
@@ -171,23 +171,23 @@ if ($result > 0)
     }
     print $nbofrecipientemails;
     print '</td></tr>';*/
-    
+
     print '</table>';
-    
+
     print '</div>';
-    
+
     dol_fiche_end();
 
     print "\n";
-    
+
     // Help
     print '<br>'.$langs->trans("NotificationsDesc");
     print '<br>'.$langs->trans("NotificationsDescUser");
     print '<br>'.$langs->trans("NotificationsDescContact");
     print '<br>'.$langs->trans("NotificationsDescGlobal");
-    
+
     print '<br><br><br>'."\n";
-    
+
 
     // Add notification form
     print_fiche_titre($langs->trans("AddNewNotification"),'','');
@@ -201,9 +201,9 @@ if ($result > 0)
     // Line with titles
     print '<table width="100%" class="noborder">';
     print '<tr class="liste_titre">';
-    print_liste_field_titre($langs->trans("Target"),$_SERVER["PHP_SELF"],"c.lastname,c.firstname",'',$param,'"width="45%"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"",'',$param,'"width="35%"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"n.type",'',$param,'"width="10%"',$sortfield,$sortorder);
+    print_liste_field_titre("Target",$_SERVER["PHP_SELF"],"c.lastname,c.firstname",'',$param,'"width="45%"',$sortfield,$sortorder);
+    print_liste_field_titre("Action",$_SERVER["PHP_SELF"],"",'',$param,'"width="35%"',$sortfield,$sortorder);
+    print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"n.type",'',$param,'"width="10%"',$sortfield,$sortorder);
     print_liste_field_titre('');
 	print "</tr>\n";
 
@@ -266,7 +266,7 @@ if ($result > 0)
     $sql.= " WHERE a.rowid = n.fk_action";
     $sql.= " AND c.rowid = n.fk_user";
     $sql.= " AND c.rowid = ".$object->id;
-    
+
     $resql=$db->query($sql);
     if ($resql)
     {
@@ -276,7 +276,7 @@ if ($result > 0)
     {
         dol_print_error($db);
     }
-    
+
     // List of active notifications
     print_fiche_titre($langs->trans("ListOfActiveNotifications").' ('.$num.')','','');
     $var=true;
@@ -284,9 +284,9 @@ if ($result > 0)
     // Line with titles
     print '<table width="100%" class="noborder">';
     print '<tr class="liste_titre">';
-    print_liste_field_titre($langs->trans("Target"),$_SERVER["PHP_SELF"],"c.lastname,c.firstname",'',$param,'"width="45%"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"",'',$param,'"width="35%"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"n.type",'',$param,'"width="10%"',$sortfield,$sortorder);
+    print_liste_field_titre("Target",$_SERVER["PHP_SELF"],"c.lastname,c.firstname",'',$param,'"width="45%"',$sortfield,$sortorder);
+    print_liste_field_titre("Action",$_SERVER["PHP_SELF"],"",'',$param,'"width="35%"',$sortfield,$sortorder);
+    print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"n.type",'',$param,'"width="10%"',$sortfield,$sortorder);
     print_liste_field_titre('','','');
     print '</tr>';
 
@@ -389,8 +389,8 @@ if ($result > 0)
     }*/
 
     print '</table>';
-    
-    
+
+
     print '<br><br>'."\n";
 
 
@@ -404,7 +404,7 @@ if ($result > 0)
     $sql.= " WHERE a.rowid = n.fk_action";
     $sql.= " AND n.fk_user = ".$object->id;
     $sql.= $db->order($sortfield, $sortorder);
-    
+
     // Count total nb of records
     $nbtotalofrecords = '';
     if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
@@ -412,9 +412,9 @@ if ($result > 0)
         $result = $db->query($sql);
         $nbtotalofrecords = $db->num_rows($result);
     }
-    
+
     $sql.= $db->plimit($limit+1, $offset);
-    
+
     $resql=$db->query($sql);
     if ($resql)
     {
@@ -424,11 +424,11 @@ if ($result > 0)
     {
         dol_print_error($db);
     }
-    
+
     $param='&id='.$object->id;
     if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
     if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
-    
+
     print '<form method="post" action="'.$_SERVER["PHP_SELF"].'" name="formfilter">';
     if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
     print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
@@ -437,18 +437,18 @@ if ($result > 0)
     print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
     print '<input type="hidden" name="page" value="'.$page.'">';
     print '<input type="hidden" name="id" value="'.$object->id.'">';
-    
+
     // List of notifications done
     print_barre_liste($langs->trans("ListOfNotificationsDone"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, '', 0, '', '', $limit);
-    
+
     // Line with titles
     print '<table width="100%" class="noborder">';
     print '<tr class="liste_titre">';
-    print_liste_field_titre($langs->trans("Target"),$_SERVER["PHP_SELF"],"c.lastname,c.firstname",'',$param,'',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"",'',$param,'',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"n.type",'',$param,'',$sortfield,$sortorder);
-    //print_liste_field_titre($langs->trans("Object"),$_SERVER["PHP_SELF"],"",'',$param,'"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"n.daten",'',$param,'align="right"',$sortfield,$sortorder);
+    print_liste_field_titre("Target",$_SERVER["PHP_SELF"],"c.lastname,c.firstname",'',$param,'',$sortfield,$sortorder);
+    print_liste_field_titre("Action",$_SERVER["PHP_SELF"],"",'',$param,'',$sortfield,$sortorder);
+    print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"n.type",'',$param,'',$sortfield,$sortorder);
+    //print_liste_field_titre("Object",$_SERVER["PHP_SELF"],"",'',$param,'"',$sortfield,$sortorder);
+    print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"n.daten",'',$param,'align="right"',$sortfield,$sortorder);
     print '</tr>';
 
     if ($num)
@@ -501,7 +501,7 @@ if ($result > 0)
     }
 
     print '</table>';
-    
+
     print '</form>';
 }
 else dol_print_error('','RecordNotFound');
diff --git a/test/phpunit/CodingPhpTest.php b/test/phpunit/CodingPhpTest.php
index 3460bb7f711..1a11f3fc1c8 100644
--- a/test/phpunit/CodingPhpTest.php
+++ b/test/phpunit/CodingPhpTest.php
@@ -207,6 +207,20 @@ class CodingPhpTest extends PHPUnit_Framework_TestCase
             }
             $this->assertTrue($ok, 'Found a $_SERVER[\'QUERY_STRING\'] without dol_escape_htmltag around in file '.$file['fullname'].' ('.$val[1].'$_SERVER[\'QUERY_STRING\']). Bad.');
 
+
+            // Test that first param of print_liste_field_titre is a translation key and not the translated value
+            $ok=true;
+            $matches=array();
+            // Check string   ='".$this->xxx   with xxx that is not 'escape'. It means we forget a db->escape when forging sql request.
+            preg_match_all('/print_liste_field_titre\(\$langs/', $filecontent, $matches, PREG_SET_ORDER);
+            foreach($matches as $key => $val)
+            {
+           		$ok=false;
+           		break;
+            }
+            $this->assertTrue($ok, 'Found a use of print_liste_field_titre with fist parameter that is a translated value instead of just the translation key in file '.$file['fullname'].'. Bad.');
+
+
             // Test that output of $_SERVER\[\'PHP_SELF\'\] is escaped (not done for the moment, did not found a way to forge value of $_SERVER['PHP_SELF'] by extern access).
             /*$ok=true;
             $matches=array();
-- 
GitLab


From 01e1457a09642f6c66b41f1e44afceaef8b15bf6 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Wed, 2 Aug 2017 13:46:56 +0200
Subject: [PATCH 12/27] Fix typo

---
 htdocs/install/repair.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/install/repair.php b/htdocs/install/repair.php
index 3cfbbda5d26..058802978fd 100644
--- a/htdocs/install/repair.php
+++ b/htdocs/install/repair.php
@@ -78,7 +78,7 @@ print 'Option clean_product_stock_batch (0 or \'test\' or \'confirmed\') is '.(G
 print 'Option set_empty_time_spent_amount (0 or \'test\' or \'confirmed\') is '.(GETPOST('set_empty_time_spent_amount','alpha')?GETPOST('set_empty_time_spent_amount','alpha'):'0').'<br>'."\n";
 print 'Option rebuild_product_thumbs (0 or \'test\' or \'confirmed\') is '.(GETPOST('rebuild_product_thumbs','alpha')?GETPOST('rebuild_product_thumbs','alpha'):'0').'<br>'."\n";
 print 'Option force_disable_of_modules_not_found (0 or \'test\' or \'confirmed\') is '.(GETPOST('force_disable_of_modules_not_found','alpha')?GETPOST('force_disable_of_modules_not_found','alpha'):'0').'<br>'."\n";
-print 'Option force_utf8_on_tables, for mysql/mariadb only(0 or \'test\' or \'confirmed\') is '.(GETPOST('force_utf8_on_tables','alpha')?GETPOST('force_utf8_on_tables','alpha'):'0').'<br>'."\n";
+print 'Option force_utf8_on_tables, for mysql/mariadb only (0 or \'test\' or \'confirmed\') is '.(GETPOST('force_utf8_on_tables','alpha')?GETPOST('force_utf8_on_tables','alpha'):'0').'<br>'."\n";
 print '<br>';
 
 print '<table cellspacing="0" cellpadding="1" border="0" width="100%">';
-- 
GitLab


From 2a92ee6008ac4ccf4bb87e615db2e027b8bcf7a6 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Wed, 2 Aug 2017 14:10:43 +0200
Subject: [PATCH 13/27] Fix look and feel v6

---
 htdocs/core/lib/product.lib.php | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/htdocs/core/lib/product.lib.php b/htdocs/core/lib/product.lib.php
index 7048b8570c6..b01637d7b08 100644
--- a/htdocs/core/lib/product.lib.php
+++ b/htdocs/core/lib/product.lib.php
@@ -52,7 +52,7 @@ function product_prepare_head($object)
     	$head[$h][2] = 'price';
     	$h++;
 	}
-	
+
 	if (! empty($object->status_buy) || (! empty($conf->margin->enabled) && ! empty($object->status)))   // If margin is on and product on sell, we may need the cost price even if product os not on purchase
 	{
     	if ((! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->lire)
@@ -102,7 +102,7 @@ function product_prepare_head($object)
 
 		$prodcomb = new ProductCombination($db);
 
-		if ($prodcomb->fetchByFkProductChild($object->id) == -1) 
+		if ($prodcomb->fetchByFkProductChild($object->id) == -1)
 		{
 			$head[$h][0] = DOL_URL_ROOT."/variants/combinations.php?id=".$object->id;
 			$head[$h][1] = $langs->trans('ProductCombinations');
@@ -184,7 +184,7 @@ function productlot_prepare_head($object)
     global $db, $langs, $conf, $user;
     $langs->load("products");
     $langs->load("productbatch");
-    
+
     $h = 0;
     $head = array();
 
@@ -208,7 +208,7 @@ function productlot_prepare_head($object)
     $head[$h][2] = 'info';
     $h++;
     */
-    
+
     return $head;
 }
 
@@ -301,9 +301,9 @@ function show_stats_for_company($product,$socid)
 	global $conf,$langs,$user,$db;
 
 	$nblines = 0;
-	
-	print '<tr>';
-	print '<td align="left" width="25%" valign="top">'.$langs->trans("Referers").'</td>';
+
+	print '<tr class="liste_titre">';
+	print '<td align="left" class="tdtop" width="25%">'.$langs->trans("Referers").'</td>';
 	print '<td align="right" width="25%">'.$langs->trans("NbOfThirdParties").'</td>';
 	print '<td align="right" width="25%">'.$langs->trans("NbOfObjectReferers").'</td>';
 	print '<td align="right" width="25%">'.$langs->trans("TotalQuantity").'</td>';
-- 
GitLab


From 025ecd4eccfdf5e6b9b2dbcff226b416995edb3c Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Wed, 2 Aug 2017 14:21:20 +0200
Subject: [PATCH 14/27] Fix default value for inventory code during a stock
 correction

---
 .../product/stock/tpl/stockcorrection.tpl.php  | 14 +++++++-------
 htdocs/product/stock/tpl/stocktransfer.tpl.php | 18 +++++++++---------
 2 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/htdocs/product/stock/tpl/stockcorrection.tpl.php b/htdocs/product/stock/tpl/stockcorrection.tpl.php
index 28fd3dfadea..4242121177c 100644
--- a/htdocs/product/stock/tpl/stockcorrection.tpl.php
+++ b/htdocs/product/stock/tpl/stockcorrection.tpl.php
@@ -15,7 +15,7 @@
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  *
  * $object must be defined
- * $backtopage 
+ * $backtopage
  */
 ?>
 
@@ -50,7 +50,7 @@
 		print '<form action="'.$_SERVER["PHP_SELF"].'?id='.$id.'" method="post">'."\n";
 
         dol_fiche_head();
-        
+
 		print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
 		print '<input type="hidden" name="action" value="correct_stock">';
 		print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
@@ -93,12 +93,12 @@
 			print '<td>'.$langs->trans('Project').'</td>';
 			print '<td>';
 			$formproject->select_projects();
-			print '</td>';	
+			print '</td>';
 		}
 		print '</tr>';
 
 		// Serial / Eat-by date
-		if (! empty($conf->productbatch->enabled) && 
+		if (! empty($conf->productbatch->enabled) &&
 		    (($object->element == 'product' && $object->hasbatch())
 		    || ($object->element == 'stock'))
 		)
@@ -127,19 +127,19 @@
 		print '<td>';
 		print '<input type="text" name="label" size="60" value="'.$valformovementlabel.'">';
 		print '</td>';
-		print '<td>'.$langs->trans("InventoryCode").'</td><td><input class="maxwidth100onsmartphone" name="inventorycode" id="inventorycode" value="'.GETPOST("inventorycode").'"></td>';
+		print '<td>'.$langs->trans("InventoryCode").'</td><td><input class="maxwidth100onsmartphone" name="inventorycode" id="inventorycode" value="'.(isset($_POST["inventorycode"])?GETPOST("inventorycode",'alpha'):dol_print_date(dol_now(),'%y%m%d%H%M%S')).'"></td>';
 		print '</tr>';
 
 		print '</table>';
 
         dol_fiche_end();
-        
+
 		print '<div class="center">';
 		print '<input type="submit" class="button" name="save" value="'.dol_escape_htmltag($langs->trans('Save')).'">';
 		print '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
 		print '<input type="submit" class="button" name="cancel" value="'.dol_escape_htmltag($langs->trans("Cancel")).'">';
 		print '</div>';
-		
+
 		print '</form>';
 ?>
 <!-- END PHP STOCKCORRECTION.TPL.PHP -->
diff --git a/htdocs/product/stock/tpl/stocktransfer.tpl.php b/htdocs/product/stock/tpl/stocktransfer.tpl.php
index ed367742f1c..6d028da5663 100644
--- a/htdocs/product/stock/tpl/stocktransfer.tpl.php
+++ b/htdocs/product/stock/tpl/stocktransfer.tpl.php
@@ -25,9 +25,9 @@
         if ($object->element == 'product') $productref = $object->ref;
 
         $langs->load("productbatch");
-        
+
         if (empty($id)) $id = $object->id;
-        
+
         $pdluoid=GETPOST('pdluoid','int');
 
 	    $pdluo = new Productbatch($db);
@@ -48,9 +48,9 @@
 		print load_fiche_titre($langs->trans("StockTransfer"),'','title_generic.png');
 
 		print '<form action="'.$_SERVER["PHP_SELF"].'?id='.$id.'" method="post">'."\n";
-		
+
 		dol_fiche_head();
-		
+
 		print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
 		print '<input type="hidden" name="action" value="transfert_stock">';
 		print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
@@ -76,7 +76,7 @@
 		    print $form->select_produits(GETPOST('product_id'),'product_id',(empty($conf->global->STOCK_SUPPORTS_SERVICES)?'0':''));
 		    print '</td>';
 		}
-		
+
 		print '<td width="20%" class="fieldrequired">'.$langs->trans("WarehouseTarget").'</td><td width="30%">';
 		print $formproduct->selectWarehouses(GETPOST('id_entrepot_destination'), 'id_entrepot_destination', 'warehouseopen,warehouseinternal', 1);
 		print '</td></tr>';
@@ -84,7 +84,7 @@
 		print '</tr>';
 
 		// Serial / Eat-by date
-		if (! empty($conf->productbatch->enabled) && 
+		if (! empty($conf->productbatch->enabled) &&
 		    (($object->element == 'product' && $object->hasbatch())
 		    || ($object->element == 'stock'))
 		)
@@ -103,7 +103,7 @@
 			}
 			print '</td>';
 			print '</tr>';
-			
+
 			print '<tr>';
 			print '<td>'.$langs->trans("EatByDate").'</td><td>';
 			print $form->select_date(($d_eatby?$d_eatby:$pdluo->eatby),'eatby','','',1,"", 1, 0, 1, ($pdluoid > 0 ? 1 : 0));		// If form was opened for a specific pdluoid, field is disabled
@@ -121,13 +121,13 @@
 		print '<td>';
 		print '<input type="text" name="label" size="60" value="'.dol_escape_htmltag($valformovementlabel).'">';
 		print '</td>';
-		print '<td width="15%">'.$langs->trans("InventoryCode").'</td><td><input class="maxwidth100onsmartphone" name="inventorycode" id="inventorycode" value="'.(GETPOST("inventorycode")?GETPOST("inventorycode",'alpha'):dol_print_date(dol_now(),'%y%m%d%H%M%S')).'"></td>';
+		print '<td width="15%">'.$langs->trans("InventoryCode").'</td><td><input class="maxwidth100onsmartphone" name="inventorycode" id="inventorycode" value="'.(isset($_POST["inventorycode"])?GETPOST("inventorycode",'alpha'):dol_print_date(dol_now(),'%y%m%d%H%M%S')).'"></td>';
 		print '</tr>';
 
 		print '</table>';
 
 		dol_fiche_end();
-		
+
 		print '<div class="center">';
 		print '<input type="submit" class="button" value="'.dol_escape_htmltag($langs->trans('Save')).'">';
 		print '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
-- 
GitLab


From c8b79214cd96dab99ce628114b2beac2038320e6 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Wed, 2 Aug 2017 14:53:42 +0200
Subject: [PATCH 15/27] Fix translation

---
 htdocs/langs/en_US/stocks.lang         |  6 ++++--
 htdocs/product/stock/massstockmove.php |  8 ++++----
 htdocs/product/stock/mouvement.php     | 10 +++++-----
 htdocs/product/stock/product.php       |  6 +++---
 4 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/htdocs/langs/en_US/stocks.lang b/htdocs/langs/en_US/stocks.lang
index 11c013cb768..81945b17f85 100644
--- a/htdocs/langs/en_US/stocks.lang
+++ b/htdocs/langs/en_US/stocks.lang
@@ -33,8 +33,10 @@ LastMovement=Latest movement
 LastMovements=Latest movements
 Units=Units
 Unit=Unit
-StockCorrection=Correct stock
-StockTransfer=Transfer stock
+StockCorrection=Stock correction
+CorrectStock=Correct stock
+StockTransfer=Stock transfer
+TransferStock=Transfer stock
 MassStockTransferShort=Mass stock transfer
 StockMovement=Stock movement
 StockMovements=Stock movements
diff --git a/htdocs/product/stock/massstockmove.php b/htdocs/product/stock/massstockmove.php
index 2ab78ac735d..1ca2b1b16d1 100644
--- a/htdocs/product/stock/massstockmove.php
+++ b/htdocs/product/stock/massstockmove.php
@@ -328,9 +328,9 @@ llxHeader('', $title);
 print load_fiche_titre($langs->trans("MassStockTransferShort"));
 
 $titletoadd=$langs->trans("Select");
-$titletoaddnoent=$langs->transnoentitiesnoconv("Select");
 $buttonrecord=$langs->trans("RecordMovement");
-$buttonrecordnoent=$langs->trans("RecordMovement");
+$titletoaddnoent=$langs->transnoentitiesnoconv("Select");
+$buttonrecordnoent=$langs->transnoentitiesnoconv("RecordMovement");
 print $langs->trans("SelectProductInAndOutWareHouse",$titletoaddnoent,$buttonrecordnoent).'<br>';
 print '<br>'."\n";
 
@@ -402,7 +402,7 @@ print '</tr>';
 
 foreach($listofdata as $key => $val)
 {
-	
+
 
 	$productstatic->fetch($val['id_product']);
 	$warehousestatics->fetch($val['id_sw']);
@@ -444,7 +444,7 @@ print '<input type="hidden" name="token" value="' .$_SESSION['newtoken'] . '">';
 print '<input type="hidden" name="action" value="createmovements">';
 
 // Button to record mass movement
-$codemove=GETPOST('codemove');
+$codemove=(isset($_POST["codemove"])?GETPOST("codemove",'alpha'):dol_print_date(dol_now(),'%y%m%d%H%M%S'));
 $labelmovement=GETPOST("label")?GETPOST('label'):$langs->trans("StockTransfer").' '.dol_print_date($now,'%Y-%m-%d %H:%M');
 
 print '<table class="border" width="100%">';
diff --git a/htdocs/product/stock/mouvement.php b/htdocs/product/stock/mouvement.php
index d4f3ccd889c..4f56527353d 100644
--- a/htdocs/product/stock/mouvement.php
+++ b/htdocs/product/stock/mouvement.php
@@ -649,12 +649,12 @@ if ($resql)
 
         if ($user->rights->stock->mouvement->creer)
         {
-            print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$id.'&action=correction">'.$langs->trans("StockCorrection").'</a>';
+            print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$id.'&action=correction">'.$langs->trans("CorrectStock").'</a>';
         }
 
         if ($user->rights->stock->mouvement->creer)
         {
-            print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$id.'&action=transfert">'.$langs->trans("StockTransfer").'</a>';
+            print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$id.'&action=transfert">'.$langs->trans("TransferStock").'</a>';
         }
 
         print '</div><br>';
@@ -756,20 +756,20 @@ if ($resql)
     {
 	    // Product Ref
 	    print '<td class="liste_titre" align="left">';
-	    print '<input class="flat" type="text" size="6" name="search_product_ref" value="'.dol_escape_htmltag($idproduct?$product->ref:$search_product_ref).'">';
+	    print '<input class="flat maxwidth100" type="text" name="search_product_ref" value="'.dol_escape_htmltag($idproduct?$product->ref:$search_product_ref).'">';
 	    print '</td>';
     }
     if (! empty($arrayfields['p.label']['checked']))
     {
 	    // Product label
 	    print '<td class="liste_titre" align="left">';
-	    print '<input class="flat" type="text" size="10" name="search_product" value="'.dol_escape_htmltag($idproduct?$product->label:$search_product).'">';
+	    print '<input class="flat maxwidth100" type="text" name="search_product" value="'.dol_escape_htmltag($idproduct?$product->label:$search_product).'">';
 	    print '</td>';
     }
     // Batch
     if (! empty($arrayfields['m.batch']['checked']))
     {
-    	print '<td class="liste_titre" align="center"><input class="flat" type="text" size="5" name="search_batch" value="'.dol_escape_htmltag($search_batch).'"></td>';
+    	print '<td class="liste_titre" align="center"><input class="flat maxwidth100" type="text" name="search_batch" value="'.dol_escape_htmltag($search_batch).'"></td>';
 	}
     if (! empty($arrayfields['pl.eatby']['checked']))
     {
diff --git a/htdocs/product/stock/product.php b/htdocs/product/stock/product.php
index 1daff124764..f45f2b30a56 100644
--- a/htdocs/product/stock/product.php
+++ b/htdocs/product/stock/product.php
@@ -769,13 +769,13 @@ if (empty($reshook))
 
 	    if ($user->rights->stock->mouvement->creer)
 	    {
-	        print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=correction">'.$langs->trans("StockCorrection").'</a>';
+	        print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=correction">'.$langs->trans("CorrectStock").'</a>';
 	    }
 
 	    //if (($user->rights->stock->mouvement->creer) && ! $object->hasbatch())
 	    if ($user->rights->stock->mouvement->creer)
 		{
-			print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=transfert">'.$langs->trans("StockTransfer").'</a>';
+			print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=transfert">'.$langs->trans("TransferStock").'</a>';
 		}
 
 		print '</div>';
@@ -891,7 +891,7 @@ if ($resql)
 				{
                     print "\n".'<tr><td align="right">';
                     print img_picto($langs->trans("Tranfer"),'uparrow','class="hideonsmartphone"').' ';
-					print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;id_entrepot='.$entrepotstatic->id.'&amp;action=transfert&amp;pdluoid='.$pdluo->id.'">'.$langs->trans("StockTransfer").'</a>';
+					print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;id_entrepot='.$entrepotstatic->id.'&amp;action=transfert&amp;pdluoid='.$pdluo->id.'">'.$langs->trans("TransferStock").'</a>';
 					// Disabled, because edition of stock content must use the "Correct stock menu".
 					// Do not use this, or data will be wrong (bad tracking of movement label, inventory code, ...
                     //print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$id.'&amp;action=editline&amp;lineid='.$pdluo->id.'#'.$pdluo->id.'">';
-- 
GitLab


From 32eb2aba432b25af428b7617e8e7668d91fb41eb Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Wed, 2 Aug 2017 15:30:46 +0200
Subject: [PATCH 16/27] Sync transifex

---
 htdocs/langs/ar_SA/accountancy.lang   |  22 +-
 htdocs/langs/ar_SA/admin.lang         |  17 +-
 htdocs/langs/ar_SA/banks.lang         |   8 +-
 htdocs/langs/ar_SA/bills.lang         |   1 +
 htdocs/langs/ar_SA/compta.lang        |   4 +-
 htdocs/langs/ar_SA/errors.lang        |   3 +
 htdocs/langs/ar_SA/install.lang       |   4 +-
 htdocs/langs/ar_SA/main.lang          |   7 +-
 htdocs/langs/ar_SA/modulebuilder.lang |  26 +-
 htdocs/langs/ar_SA/orders.lang        |   1 +
 htdocs/langs/ar_SA/other.lang         |   1 +
 htdocs/langs/ar_SA/propal.lang        |   1 +
 htdocs/langs/ar_SA/salaries.lang      |   2 +-
 htdocs/langs/ar_SA/website.lang       |  19 +-
 htdocs/langs/ar_SA/workflow.lang      |  18 +-
 htdocs/langs/bg_BG/accountancy.lang   |  22 +-
 htdocs/langs/bg_BG/admin.lang         |  17 +-
 htdocs/langs/bg_BG/banks.lang         |   8 +-
 htdocs/langs/bg_BG/bills.lang         |   1 +
 htdocs/langs/bg_BG/compta.lang        |   4 +-
 htdocs/langs/bg_BG/errors.lang        |   3 +
 htdocs/langs/bg_BG/install.lang       |   4 +-
 htdocs/langs/bg_BG/main.lang          |   7 +-
 htdocs/langs/bg_BG/modulebuilder.lang |  26 +-
 htdocs/langs/bg_BG/orders.lang        |   1 +
 htdocs/langs/bg_BG/other.lang         |   1 +
 htdocs/langs/bg_BG/propal.lang        |   1 +
 htdocs/langs/bg_BG/salaries.lang      |   2 +-
 htdocs/langs/bg_BG/website.lang       |  19 +-
 htdocs/langs/bg_BG/workflow.lang      |  18 +-
 htdocs/langs/bn_BD/accountancy.lang   |  22 +-
 htdocs/langs/bn_BD/admin.lang         |  17 +-
 htdocs/langs/bn_BD/banks.lang         |   8 +-
 htdocs/langs/bn_BD/bills.lang         |   1 +
 htdocs/langs/bn_BD/compta.lang        |   4 +-
 htdocs/langs/bn_BD/errors.lang        |   3 +
 htdocs/langs/bn_BD/install.lang       |   4 +-
 htdocs/langs/bn_BD/main.lang          |   7 +-
 htdocs/langs/bn_BD/modulebuilder.lang |  26 +-
 htdocs/langs/bn_BD/orders.lang        |   1 +
 htdocs/langs/bn_BD/other.lang         |   1 +
 htdocs/langs/bn_BD/propal.lang        |   1 +
 htdocs/langs/bn_BD/salaries.lang      |   2 +-
 htdocs/langs/bn_BD/website.lang       |  19 +-
 htdocs/langs/bn_BD/workflow.lang      |  18 +-
 htdocs/langs/bs_BA/accountancy.lang   |  22 +-
 htdocs/langs/bs_BA/admin.lang         |  17 +-
 htdocs/langs/bs_BA/banks.lang         |   8 +-
 htdocs/langs/bs_BA/bills.lang         |   1 +
 htdocs/langs/bs_BA/compta.lang        |   4 +-
 htdocs/langs/bs_BA/errors.lang        |   3 +
 htdocs/langs/bs_BA/install.lang       |   4 +-
 htdocs/langs/bs_BA/main.lang          |   7 +-
 htdocs/langs/bs_BA/modulebuilder.lang |  26 +-
 htdocs/langs/bs_BA/multicurrency.lang |   3 +-
 htdocs/langs/bs_BA/orders.lang        |   1 +
 htdocs/langs/bs_BA/other.lang         |   1 +
 htdocs/langs/bs_BA/propal.lang        |   1 +
 htdocs/langs/bs_BA/salaries.lang      |   2 +-
 htdocs/langs/bs_BA/website.lang       |  19 +-
 htdocs/langs/bs_BA/workflow.lang      |  18 +-
 htdocs/langs/ca_ES/accountancy.lang   |  44 +--
 htdocs/langs/ca_ES/admin.lang         | 107 +++---
 htdocs/langs/ca_ES/agenda.lang        |  10 +-
 htdocs/langs/ca_ES/banks.lang         |   4 +-
 htdocs/langs/ca_ES/bills.lang         |   1 +
 htdocs/langs/ca_ES/compta.lang        |   4 +-
 htdocs/langs/ca_ES/errors.lang        |   3 +
 htdocs/langs/ca_ES/exports.lang       |  10 +-
 htdocs/langs/ca_ES/install.lang       |   6 +-
 htdocs/langs/ca_ES/loan.lang          |   2 +-
 htdocs/langs/ca_ES/mails.lang         |   4 +-
 htdocs/langs/ca_ES/main.lang          |  43 +--
 htdocs/langs/ca_ES/modulebuilder.lang |  90 ++---
 htdocs/langs/ca_ES/multicurrency.lang |  27 +-
 htdocs/langs/ca_ES/orders.lang        |   1 +
 htdocs/langs/ca_ES/other.lang         |  25 +-
 htdocs/langs/ca_ES/paypal.lang        |  12 +-
 htdocs/langs/ca_ES/products.lang      |  36 +-
 htdocs/langs/ca_ES/projects.lang      |  18 +-
 htdocs/langs/ca_ES/propal.lang        |   1 +
 htdocs/langs/ca_ES/resource.lang      |   4 +-
 htdocs/langs/ca_ES/salaries.lang      |   4 +-
 htdocs/langs/ca_ES/sendings.lang      |   2 +-
 htdocs/langs/ca_ES/stocks.lang        |  78 ++---
 htdocs/langs/ca_ES/trips.lang         |   4 +-
 htdocs/langs/ca_ES/users.lang         |   4 +-
 htdocs/langs/ca_ES/website.lang       |  25 +-
 htdocs/langs/ca_ES/withdrawals.lang   |   4 +-
 htdocs/langs/ca_ES/workflow.lang      |  18 +-
 htdocs/langs/cs_CZ/accountancy.lang   |  22 +-
 htdocs/langs/cs_CZ/admin.lang         |  17 +-
 htdocs/langs/cs_CZ/banks.lang         |   8 +-
 htdocs/langs/cs_CZ/bills.lang         |   1 +
 htdocs/langs/cs_CZ/compta.lang        |   4 +-
 htdocs/langs/cs_CZ/errors.lang        |   3 +
 htdocs/langs/cs_CZ/install.lang       |   4 +-
 htdocs/langs/cs_CZ/main.lang          |   7 +-
 htdocs/langs/cs_CZ/modulebuilder.lang |  26 +-
 htdocs/langs/cs_CZ/multicurrency.lang |   3 +-
 htdocs/langs/cs_CZ/orders.lang        |   1 +
 htdocs/langs/cs_CZ/other.lang         |   1 +
 htdocs/langs/cs_CZ/propal.lang        |   1 +
 htdocs/langs/cs_CZ/salaries.lang      |   2 +-
 htdocs/langs/cs_CZ/website.lang       |  19 +-
 htdocs/langs/cs_CZ/workflow.lang      |  18 +-
 htdocs/langs/da_DK/accountancy.lang   |  22 +-
 htdocs/langs/da_DK/admin.lang         |  17 +-
 htdocs/langs/da_DK/banks.lang         |   8 +-
 htdocs/langs/da_DK/bills.lang         |   1 +
 htdocs/langs/da_DK/compta.lang        |   4 +-
 htdocs/langs/da_DK/errors.lang        |   3 +
 htdocs/langs/da_DK/install.lang       |   4 +-
 htdocs/langs/da_DK/main.lang          |   7 +-
 htdocs/langs/da_DK/modulebuilder.lang |  26 +-
 htdocs/langs/da_DK/orders.lang        |   1 +
 htdocs/langs/da_DK/other.lang         |   1 +
 htdocs/langs/da_DK/propal.lang        |   1 +
 htdocs/langs/da_DK/salaries.lang      |   2 +-
 htdocs/langs/da_DK/website.lang       |  19 +-
 htdocs/langs/da_DK/workflow.lang      |  18 +-
 htdocs/langs/de_AT/compta.lang        |   2 +
 htdocs/langs/de_AT/holiday.lang       |   1 +
 htdocs/langs/de_AT/mails.lang         |   1 +
 htdocs/langs/de_AT/main.lang          |  22 ++
 htdocs/langs/de_AT/members.lang       |   1 +
 htdocs/langs/de_AT/sms.lang           |   1 +
 htdocs/langs/de_AT/users.lang         |   2 +
 htdocs/langs/de_CH/admin.lang         |   1 -
 htdocs/langs/de_CH/website.lang       |   2 -
 htdocs/langs/de_DE/accountancy.lang   |  22 +-
 htdocs/langs/de_DE/admin.lang         |  17 +-
 htdocs/langs/de_DE/banks.lang         |   8 +-
 htdocs/langs/de_DE/bills.lang         |   1 +
 htdocs/langs/de_DE/compta.lang        |   4 +-
 htdocs/langs/de_DE/errors.lang        |   3 +
 htdocs/langs/de_DE/install.lang       |   4 +-
 htdocs/langs/de_DE/main.lang          |   7 +-
 htdocs/langs/de_DE/modulebuilder.lang |  26 +-
 htdocs/langs/de_DE/multicurrency.lang |   3 +-
 htdocs/langs/de_DE/orders.lang        |   1 +
 htdocs/langs/de_DE/other.lang         |   1 +
 htdocs/langs/de_DE/propal.lang        |   1 +
 htdocs/langs/de_DE/salaries.lang      |   2 +-
 htdocs/langs/de_DE/website.lang       |  19 +-
 htdocs/langs/de_DE/workflow.lang      |  18 +-
 htdocs/langs/el_GR/accountancy.lang   |  22 +-
 htdocs/langs/el_GR/admin.lang         |  17 +-
 htdocs/langs/el_GR/banks.lang         |   8 +-
 htdocs/langs/el_GR/bills.lang         |   1 +
 htdocs/langs/el_GR/compta.lang        |   4 +-
 htdocs/langs/el_GR/errors.lang        |   3 +
 htdocs/langs/el_GR/install.lang       |   4 +-
 htdocs/langs/el_GR/main.lang          |   7 +-
 htdocs/langs/el_GR/modulebuilder.lang |  26 +-
 htdocs/langs/el_GR/multicurrency.lang |   3 +-
 htdocs/langs/el_GR/orders.lang        |   1 +
 htdocs/langs/el_GR/other.lang         |   1 +
 htdocs/langs/el_GR/propal.lang        |   1 +
 htdocs/langs/el_GR/salaries.lang      |   2 +-
 htdocs/langs/el_GR/website.lang       |  19 +-
 htdocs/langs/el_GR/workflow.lang      |  18 +-
 htdocs/langs/en_GB/accountancy.lang   |   5 +-
 htdocs/langs/en_GB/admin.lang         |   3 +-
 htdocs/langs/en_GB/compta.lang        |   4 +
 htdocs/langs/en_GB/website.lang       |   8 +
 htdocs/langs/en_IN/compta.lang        |   4 +
 htdocs/langs/en_IN/main.lang          |   4 -
 htdocs/langs/es_CL/compta.lang        |   4 +
 htdocs/langs/es_CL/workflow.lang      |   8 -
 htdocs/langs/es_CO/compta.lang        |   4 +
 htdocs/langs/es_EC/admin.lang         | 325 +++++++++++++++++-
 htdocs/langs/es_EC/main.lang          | 455 +++++++++++++++++++++++++-
 htdocs/langs/es_ES/accountancy.lang   |  22 +-
 htdocs/langs/es_ES/admin.lang         |  17 +-
 htdocs/langs/es_ES/banks.lang         |   8 +-
 htdocs/langs/es_ES/bills.lang         |   1 +
 htdocs/langs/es_ES/compta.lang        |   4 +-
 htdocs/langs/es_ES/errors.lang        |   3 +
 htdocs/langs/es_ES/install.lang       |   4 +-
 htdocs/langs/es_ES/main.lang          |   7 +-
 htdocs/langs/es_ES/modulebuilder.lang |  26 +-
 htdocs/langs/es_ES/multicurrency.lang |   3 +-
 htdocs/langs/es_ES/orders.lang        |   1 +
 htdocs/langs/es_ES/other.lang         |   1 +
 htdocs/langs/es_ES/propal.lang        |   1 +
 htdocs/langs/es_ES/salaries.lang      |   2 +-
 htdocs/langs/es_ES/website.lang       |  19 +-
 htdocs/langs/es_ES/workflow.lang      |  18 +-
 htdocs/langs/es_MX/accountancy.lang   |  41 ++-
 htdocs/langs/es_MX/admin.lang         |  49 +++
 htdocs/langs/es_MX/agenda.lang        |   5 +
 htdocs/langs/es_MX/banks.lang         |  12 +
 htdocs/langs/es_MX/companies.lang     |   6 +
 htdocs/langs/es_MX/compta.lang        |   5 +
 htdocs/langs/es_MX/holiday.lang       |  10 +
 htdocs/langs/es_MX/install.lang       |   1 -
 htdocs/langs/es_MX/main.lang          |   3 +
 htdocs/langs/es_MX/paybox.lang        |   1 +
 htdocs/langs/es_MX/products.lang      |  21 +-
 htdocs/langs/es_MX/stocks.lang        |   2 +
 htdocs/langs/es_MX/users.lang         |  11 +
 htdocs/langs/et_EE/accountancy.lang   |  22 +-
 htdocs/langs/et_EE/admin.lang         |  17 +-
 htdocs/langs/et_EE/banks.lang         |   8 +-
 htdocs/langs/et_EE/bills.lang         |   1 +
 htdocs/langs/et_EE/compta.lang        |   4 +-
 htdocs/langs/et_EE/errors.lang        |   3 +
 htdocs/langs/et_EE/install.lang       |   4 +-
 htdocs/langs/et_EE/main.lang          |   7 +-
 htdocs/langs/et_EE/modulebuilder.lang |  26 +-
 htdocs/langs/et_EE/orders.lang        |   1 +
 htdocs/langs/et_EE/other.lang         |   1 +
 htdocs/langs/et_EE/propal.lang        |   1 +
 htdocs/langs/et_EE/salaries.lang      |   2 +-
 htdocs/langs/et_EE/website.lang       |  19 +-
 htdocs/langs/et_EE/workflow.lang      |  18 +-
 htdocs/langs/eu_ES/accountancy.lang   |  22 +-
 htdocs/langs/eu_ES/admin.lang         |  17 +-
 htdocs/langs/eu_ES/banks.lang         |   8 +-
 htdocs/langs/eu_ES/bills.lang         |   1 +
 htdocs/langs/eu_ES/compta.lang        |   4 +-
 htdocs/langs/eu_ES/errors.lang        |   3 +
 htdocs/langs/eu_ES/install.lang       |   4 +-
 htdocs/langs/eu_ES/main.lang          |   7 +-
 htdocs/langs/eu_ES/modulebuilder.lang |  26 +-
 htdocs/langs/eu_ES/orders.lang        |   1 +
 htdocs/langs/eu_ES/other.lang         |   1 +
 htdocs/langs/eu_ES/propal.lang        |   1 +
 htdocs/langs/eu_ES/salaries.lang      |   2 +-
 htdocs/langs/eu_ES/website.lang       |  19 +-
 htdocs/langs/eu_ES/workflow.lang      |  18 +-
 htdocs/langs/fa_IR/accountancy.lang   |  22 +-
 htdocs/langs/fa_IR/admin.lang         |  17 +-
 htdocs/langs/fa_IR/banks.lang         |   8 +-
 htdocs/langs/fa_IR/bills.lang         |   1 +
 htdocs/langs/fa_IR/compta.lang        |   4 +-
 htdocs/langs/fa_IR/errors.lang        |   3 +
 htdocs/langs/fa_IR/install.lang       |   4 +-
 htdocs/langs/fa_IR/main.lang          |   7 +-
 htdocs/langs/fa_IR/modulebuilder.lang |  26 +-
 htdocs/langs/fa_IR/orders.lang        |   1 +
 htdocs/langs/fa_IR/other.lang         |   1 +
 htdocs/langs/fa_IR/propal.lang        |   1 +
 htdocs/langs/fa_IR/salaries.lang      |   2 +-
 htdocs/langs/fa_IR/website.lang       |  19 +-
 htdocs/langs/fa_IR/workflow.lang      |  18 +-
 htdocs/langs/fi_FI/accountancy.lang   |  22 +-
 htdocs/langs/fi_FI/admin.lang         |  17 +-
 htdocs/langs/fi_FI/banks.lang         |   8 +-
 htdocs/langs/fi_FI/bills.lang         |   1 +
 htdocs/langs/fi_FI/compta.lang        |   4 +-
 htdocs/langs/fi_FI/errors.lang        |   3 +
 htdocs/langs/fi_FI/install.lang       |   4 +-
 htdocs/langs/fi_FI/main.lang          |   7 +-
 htdocs/langs/fi_FI/modulebuilder.lang |  26 +-
 htdocs/langs/fi_FI/orders.lang        |   1 +
 htdocs/langs/fi_FI/other.lang         |   1 +
 htdocs/langs/fi_FI/propal.lang        |   1 +
 htdocs/langs/fi_FI/salaries.lang      |   2 +-
 htdocs/langs/fi_FI/website.lang       |  19 +-
 htdocs/langs/fi_FI/workflow.lang      |  18 +-
 htdocs/langs/fr_BE/compta.lang        |   4 +
 htdocs/langs/fr_CA/accountancy.lang   |   4 -
 htdocs/langs/fr_CA/admin.lang         |   3 -
 htdocs/langs/fr_CA/banks.lang         |   4 -
 htdocs/langs/fr_CA/compta.lang        |   2 -
 htdocs/langs/fr_CA/modulebuilder.lang |   1 +
 htdocs/langs/fr_CA/multicurrency.lang |   1 -
 htdocs/langs/fr_CA/stocks.lang        |   2 -
 htdocs/langs/fr_CA/website.lang       |   9 +-
 htdocs/langs/fr_CA/workflow.lang      |   8 -
 htdocs/langs/fr_FR/accountancy.lang   |  26 +-
 htdocs/langs/fr_FR/admin.lang         |  19 +-
 htdocs/langs/fr_FR/agenda.lang        |   2 +-
 htdocs/langs/fr_FR/banks.lang         |   8 +-
 htdocs/langs/fr_FR/bills.lang         |   1 +
 htdocs/langs/fr_FR/commercial.lang    |   2 +-
 htdocs/langs/fr_FR/compta.lang        |   4 +-
 htdocs/langs/fr_FR/cron.lang          |   2 +-
 htdocs/langs/fr_FR/errors.lang        |   5 +-
 htdocs/langs/fr_FR/install.lang       |   4 +-
 htdocs/langs/fr_FR/modulebuilder.lang |  62 ++--
 htdocs/langs/fr_FR/multicurrency.lang |   3 +-
 htdocs/langs/fr_FR/orders.lang        |   1 +
 htdocs/langs/fr_FR/other.lang         |   3 +-
 htdocs/langs/fr_FR/products.lang      |   6 +-
 htdocs/langs/fr_FR/projects.lang      |   2 +-
 htdocs/langs/fr_FR/propal.lang        |   1 +
 htdocs/langs/fr_FR/salaries.lang      |   4 +-
 htdocs/langs/fr_FR/stocks.lang        |  16 +-
 htdocs/langs/fr_FR/website.lang       |  23 +-
 htdocs/langs/fr_FR/withdrawals.lang   |   2 +-
 htdocs/langs/fr_FR/workflow.lang      |  18 +-
 htdocs/langs/he_IL/accountancy.lang   |  22 +-
 htdocs/langs/he_IL/admin.lang         |  17 +-
 htdocs/langs/he_IL/banks.lang         |   8 +-
 htdocs/langs/he_IL/bills.lang         |   1 +
 htdocs/langs/he_IL/compta.lang        |   4 +-
 htdocs/langs/he_IL/errors.lang        |   3 +
 htdocs/langs/he_IL/install.lang       |   4 +-
 htdocs/langs/he_IL/main.lang          |   7 +-
 htdocs/langs/he_IL/modulebuilder.lang |  26 +-
 htdocs/langs/he_IL/orders.lang        |   1 +
 htdocs/langs/he_IL/other.lang         |   1 +
 htdocs/langs/he_IL/propal.lang        |   1 +
 htdocs/langs/he_IL/salaries.lang      |   2 +-
 htdocs/langs/he_IL/website.lang       |  19 +-
 htdocs/langs/he_IL/workflow.lang      |  18 +-
 htdocs/langs/hr_HR/accountancy.lang   |  22 +-
 htdocs/langs/hr_HR/admin.lang         |  17 +-
 htdocs/langs/hr_HR/banks.lang         |   8 +-
 htdocs/langs/hr_HR/bills.lang         |   1 +
 htdocs/langs/hr_HR/compta.lang        |   4 +-
 htdocs/langs/hr_HR/errors.lang        |   3 +
 htdocs/langs/hr_HR/install.lang       |   4 +-
 htdocs/langs/hr_HR/main.lang          |   7 +-
 htdocs/langs/hr_HR/modulebuilder.lang |  26 +-
 htdocs/langs/hr_HR/orders.lang        |   1 +
 htdocs/langs/hr_HR/other.lang         |   1 +
 htdocs/langs/hr_HR/propal.lang        |   1 +
 htdocs/langs/hr_HR/salaries.lang      |   2 +-
 htdocs/langs/hr_HR/website.lang       |  19 +-
 htdocs/langs/hr_HR/workflow.lang      |  18 +-
 htdocs/langs/hu_HU/accountancy.lang   |  22 +-
 htdocs/langs/hu_HU/admin.lang         |  17 +-
 htdocs/langs/hu_HU/banks.lang         |   8 +-
 htdocs/langs/hu_HU/bills.lang         |   1 +
 htdocs/langs/hu_HU/compta.lang        |   4 +-
 htdocs/langs/hu_HU/errors.lang        |   3 +
 htdocs/langs/hu_HU/install.lang       |   4 +-
 htdocs/langs/hu_HU/main.lang          |   7 +-
 htdocs/langs/hu_HU/modulebuilder.lang |  26 +-
 htdocs/langs/hu_HU/multicurrency.lang |   3 +-
 htdocs/langs/hu_HU/orders.lang        |   1 +
 htdocs/langs/hu_HU/other.lang         |   1 +
 htdocs/langs/hu_HU/propal.lang        |   1 +
 htdocs/langs/hu_HU/salaries.lang      |   2 +-
 htdocs/langs/hu_HU/website.lang       |  19 +-
 htdocs/langs/hu_HU/workflow.lang      |  18 +-
 htdocs/langs/id_ID/accountancy.lang   |  22 +-
 htdocs/langs/id_ID/admin.lang         |  17 +-
 htdocs/langs/id_ID/banks.lang         |   8 +-
 htdocs/langs/id_ID/bills.lang         |   1 +
 htdocs/langs/id_ID/compta.lang        |   4 +-
 htdocs/langs/id_ID/errors.lang        |   3 +
 htdocs/langs/id_ID/install.lang       |   4 +-
 htdocs/langs/id_ID/main.lang          |   7 +-
 htdocs/langs/id_ID/modulebuilder.lang |  26 +-
 htdocs/langs/id_ID/orders.lang        |   1 +
 htdocs/langs/id_ID/other.lang         |   1 +
 htdocs/langs/id_ID/propal.lang        |   1 +
 htdocs/langs/id_ID/salaries.lang      |   2 +-
 htdocs/langs/id_ID/website.lang       |  19 +-
 htdocs/langs/id_ID/workflow.lang      |  18 +-
 htdocs/langs/is_IS/accountancy.lang   |  22 +-
 htdocs/langs/is_IS/admin.lang         |  17 +-
 htdocs/langs/is_IS/banks.lang         |   8 +-
 htdocs/langs/is_IS/bills.lang         |   1 +
 htdocs/langs/is_IS/compta.lang        |   4 +-
 htdocs/langs/is_IS/errors.lang        |   3 +
 htdocs/langs/is_IS/install.lang       |   4 +-
 htdocs/langs/is_IS/main.lang          |   7 +-
 htdocs/langs/is_IS/modulebuilder.lang |  26 +-
 htdocs/langs/is_IS/orders.lang        |   1 +
 htdocs/langs/is_IS/other.lang         |   1 +
 htdocs/langs/is_IS/propal.lang        |   1 +
 htdocs/langs/is_IS/salaries.lang      |   2 +-
 htdocs/langs/is_IS/website.lang       |  19 +-
 htdocs/langs/is_IS/workflow.lang      |  18 +-
 htdocs/langs/it_IT/accountancy.lang   |  22 +-
 htdocs/langs/it_IT/admin.lang         |  17 +-
 htdocs/langs/it_IT/banks.lang         |   8 +-
 htdocs/langs/it_IT/bills.lang         |   1 +
 htdocs/langs/it_IT/compta.lang        |   4 +-
 htdocs/langs/it_IT/errors.lang        |   3 +
 htdocs/langs/it_IT/install.lang       |   4 +-
 htdocs/langs/it_IT/main.lang          |   7 +-
 htdocs/langs/it_IT/modulebuilder.lang |  26 +-
 htdocs/langs/it_IT/multicurrency.lang |   3 +-
 htdocs/langs/it_IT/orders.lang        |   1 +
 htdocs/langs/it_IT/other.lang         |   1 +
 htdocs/langs/it_IT/propal.lang        |   1 +
 htdocs/langs/it_IT/salaries.lang      |   2 +-
 htdocs/langs/it_IT/website.lang       |  19 +-
 htdocs/langs/it_IT/workflow.lang      |  18 +-
 htdocs/langs/ja_JP/accountancy.lang   |  22 +-
 htdocs/langs/ja_JP/admin.lang         |  17 +-
 htdocs/langs/ja_JP/banks.lang         |   8 +-
 htdocs/langs/ja_JP/bills.lang         |   1 +
 htdocs/langs/ja_JP/compta.lang        |   4 +-
 htdocs/langs/ja_JP/errors.lang        |   3 +
 htdocs/langs/ja_JP/install.lang       |   4 +-
 htdocs/langs/ja_JP/main.lang          |   7 +-
 htdocs/langs/ja_JP/modulebuilder.lang |  26 +-
 htdocs/langs/ja_JP/orders.lang        |   1 +
 htdocs/langs/ja_JP/other.lang         |   1 +
 htdocs/langs/ja_JP/propal.lang        |   1 +
 htdocs/langs/ja_JP/salaries.lang      |   2 +-
 htdocs/langs/ja_JP/website.lang       |  19 +-
 htdocs/langs/ja_JP/workflow.lang      |  18 +-
 htdocs/langs/ka_GE/accountancy.lang   |  22 +-
 htdocs/langs/ka_GE/admin.lang         |  17 +-
 htdocs/langs/ka_GE/banks.lang         |   8 +-
 htdocs/langs/ka_GE/bills.lang         |   1 +
 htdocs/langs/ka_GE/compta.lang        |   4 +-
 htdocs/langs/ka_GE/errors.lang        |   3 +
 htdocs/langs/ka_GE/install.lang       |   4 +-
 htdocs/langs/ka_GE/main.lang          |   7 +-
 htdocs/langs/ka_GE/modulebuilder.lang |  26 +-
 htdocs/langs/ka_GE/orders.lang        |   1 +
 htdocs/langs/ka_GE/other.lang         |   1 +
 htdocs/langs/ka_GE/propal.lang        |   1 +
 htdocs/langs/ka_GE/salaries.lang      |   2 +-
 htdocs/langs/ka_GE/website.lang       |  19 +-
 htdocs/langs/ka_GE/workflow.lang      |  18 +-
 htdocs/langs/km_KH/accountancy.lang   |  22 +-
 htdocs/langs/km_KH/admin.lang         |  17 +-
 htdocs/langs/km_KH/banks.lang         |   8 +-
 htdocs/langs/km_KH/bills.lang         |   1 +
 htdocs/langs/km_KH/compta.lang        |   4 +-
 htdocs/langs/km_KH/errors.lang        |   3 +
 htdocs/langs/km_KH/install.lang       |   4 +-
 htdocs/langs/km_KH/main.lang          |   7 +-
 htdocs/langs/km_KH/modulebuilder.lang |  26 +-
 htdocs/langs/km_KH/orders.lang        |   1 +
 htdocs/langs/km_KH/other.lang         |   1 +
 htdocs/langs/km_KH/propal.lang        |   1 +
 htdocs/langs/km_KH/salaries.lang      |   2 +-
 htdocs/langs/km_KH/website.lang       |  19 +-
 htdocs/langs/km_KH/workflow.lang      |  18 +-
 htdocs/langs/kn_IN/accountancy.lang   |  22 +-
 htdocs/langs/kn_IN/admin.lang         |  17 +-
 htdocs/langs/kn_IN/banks.lang         |   8 +-
 htdocs/langs/kn_IN/bills.lang         |   1 +
 htdocs/langs/kn_IN/compta.lang        |   4 +-
 htdocs/langs/kn_IN/errors.lang        |   3 +
 htdocs/langs/kn_IN/install.lang       |   4 +-
 htdocs/langs/kn_IN/main.lang          |   7 +-
 htdocs/langs/kn_IN/modulebuilder.lang |  26 +-
 htdocs/langs/kn_IN/orders.lang        |   1 +
 htdocs/langs/kn_IN/other.lang         |   1 +
 htdocs/langs/kn_IN/propal.lang        |   1 +
 htdocs/langs/kn_IN/salaries.lang      |   2 +-
 htdocs/langs/kn_IN/website.lang       |  19 +-
 htdocs/langs/kn_IN/workflow.lang      |  18 +-
 htdocs/langs/ko_KR/accountancy.lang   |  22 +-
 htdocs/langs/ko_KR/admin.lang         |  17 +-
 htdocs/langs/ko_KR/banks.lang         |   8 +-
 htdocs/langs/ko_KR/bills.lang         |   1 +
 htdocs/langs/ko_KR/compta.lang        |   4 +-
 htdocs/langs/ko_KR/errors.lang        |   3 +
 htdocs/langs/ko_KR/install.lang       |   4 +-
 htdocs/langs/ko_KR/main.lang          |   7 +-
 htdocs/langs/ko_KR/modulebuilder.lang |  26 +-
 htdocs/langs/ko_KR/orders.lang        |   1 +
 htdocs/langs/ko_KR/other.lang         |   1 +
 htdocs/langs/ko_KR/propal.lang        |   1 +
 htdocs/langs/ko_KR/salaries.lang      |   2 +-
 htdocs/langs/ko_KR/website.lang       |  19 +-
 htdocs/langs/ko_KR/workflow.lang      |  18 +-
 htdocs/langs/lo_LA/accountancy.lang   |  22 +-
 htdocs/langs/lo_LA/admin.lang         |  17 +-
 htdocs/langs/lo_LA/banks.lang         |   8 +-
 htdocs/langs/lo_LA/bills.lang         |   1 +
 htdocs/langs/lo_LA/compta.lang        |   4 +-
 htdocs/langs/lo_LA/errors.lang        |   3 +
 htdocs/langs/lo_LA/install.lang       |   4 +-
 htdocs/langs/lo_LA/main.lang          |   7 +-
 htdocs/langs/lo_LA/modulebuilder.lang |  26 +-
 htdocs/langs/lo_LA/orders.lang        |   1 +
 htdocs/langs/lo_LA/other.lang         |   1 +
 htdocs/langs/lo_LA/propal.lang        |   1 +
 htdocs/langs/lo_LA/salaries.lang      |   2 +-
 htdocs/langs/lo_LA/website.lang       |  19 +-
 htdocs/langs/lo_LA/workflow.lang      |  18 +-
 htdocs/langs/lt_LT/accountancy.lang   |  22 +-
 htdocs/langs/lt_LT/admin.lang         |  17 +-
 htdocs/langs/lt_LT/banks.lang         |   8 +-
 htdocs/langs/lt_LT/bills.lang         |   1 +
 htdocs/langs/lt_LT/compta.lang        |   4 +-
 htdocs/langs/lt_LT/errors.lang        |   3 +
 htdocs/langs/lt_LT/install.lang       |   4 +-
 htdocs/langs/lt_LT/main.lang          |   7 +-
 htdocs/langs/lt_LT/modulebuilder.lang |  26 +-
 htdocs/langs/lt_LT/orders.lang        |   1 +
 htdocs/langs/lt_LT/other.lang         |   1 +
 htdocs/langs/lt_LT/propal.lang        |   1 +
 htdocs/langs/lt_LT/salaries.lang      |   2 +-
 htdocs/langs/lt_LT/website.lang       |  19 +-
 htdocs/langs/lt_LT/workflow.lang      |  18 +-
 htdocs/langs/lv_LV/accountancy.lang   |  22 +-
 htdocs/langs/lv_LV/admin.lang         |  17 +-
 htdocs/langs/lv_LV/banks.lang         |   8 +-
 htdocs/langs/lv_LV/bills.lang         |   1 +
 htdocs/langs/lv_LV/compta.lang        |   4 +-
 htdocs/langs/lv_LV/errors.lang        |   3 +
 htdocs/langs/lv_LV/install.lang       |   4 +-
 htdocs/langs/lv_LV/main.lang          |   7 +-
 htdocs/langs/lv_LV/modulebuilder.lang |  26 +-
 htdocs/langs/lv_LV/multicurrency.lang |   3 +-
 htdocs/langs/lv_LV/orders.lang        |   1 +
 htdocs/langs/lv_LV/other.lang         |   1 +
 htdocs/langs/lv_LV/products.lang      |   2 +-
 htdocs/langs/lv_LV/propal.lang        |   7 +-
 htdocs/langs/lv_LV/salaries.lang      |   2 +-
 htdocs/langs/lv_LV/website.lang       |  19 +-
 htdocs/langs/lv_LV/workflow.lang      |  18 +-
 htdocs/langs/mk_MK/accountancy.lang   |  22 +-
 htdocs/langs/mk_MK/admin.lang         |  17 +-
 htdocs/langs/mk_MK/banks.lang         |   8 +-
 htdocs/langs/mk_MK/bills.lang         |   1 +
 htdocs/langs/mk_MK/compta.lang        |   4 +-
 htdocs/langs/mk_MK/errors.lang        |   3 +
 htdocs/langs/mk_MK/install.lang       |   4 +-
 htdocs/langs/mk_MK/main.lang          |   7 +-
 htdocs/langs/mk_MK/modulebuilder.lang |  26 +-
 htdocs/langs/mk_MK/orders.lang        |   1 +
 htdocs/langs/mk_MK/other.lang         |   1 +
 htdocs/langs/mk_MK/propal.lang        |   1 +
 htdocs/langs/mk_MK/salaries.lang      |   2 +-
 htdocs/langs/mk_MK/website.lang       |  19 +-
 htdocs/langs/mk_MK/workflow.lang      |  18 +-
 htdocs/langs/mn_MN/accountancy.lang   |  22 +-
 htdocs/langs/mn_MN/admin.lang         |  17 +-
 htdocs/langs/mn_MN/banks.lang         |   8 +-
 htdocs/langs/mn_MN/bills.lang         |   1 +
 htdocs/langs/mn_MN/compta.lang        |   4 +-
 htdocs/langs/mn_MN/errors.lang        |   3 +
 htdocs/langs/mn_MN/install.lang       |   4 +-
 htdocs/langs/mn_MN/main.lang          |   7 +-
 htdocs/langs/mn_MN/modulebuilder.lang |  26 +-
 htdocs/langs/mn_MN/orders.lang        |   1 +
 htdocs/langs/mn_MN/other.lang         |   1 +
 htdocs/langs/mn_MN/propal.lang        |   1 +
 htdocs/langs/mn_MN/salaries.lang      |   2 +-
 htdocs/langs/mn_MN/website.lang       |  19 +-
 htdocs/langs/mn_MN/workflow.lang      |  18 +-
 htdocs/langs/nb_NO/accountancy.lang   |  22 +-
 htdocs/langs/nb_NO/admin.lang         |  19 +-
 htdocs/langs/nb_NO/banks.lang         |   8 +-
 htdocs/langs/nb_NO/bills.lang         |   1 +
 htdocs/langs/nb_NO/compta.lang        |   4 +-
 htdocs/langs/nb_NO/errors.lang        |   3 +
 htdocs/langs/nb_NO/install.lang       |   4 +-
 htdocs/langs/nb_NO/main.lang          |   9 +-
 htdocs/langs/nb_NO/modulebuilder.lang |  28 +-
 htdocs/langs/nb_NO/multicurrency.lang |   3 +-
 htdocs/langs/nb_NO/orders.lang        |   1 +
 htdocs/langs/nb_NO/other.lang         |   3 +-
 htdocs/langs/nb_NO/propal.lang        |   1 +
 htdocs/langs/nb_NO/salaries.lang      |   2 +-
 htdocs/langs/nb_NO/website.lang       |  19 +-
 htdocs/langs/nb_NO/workflow.lang      |  18 +-
 htdocs/langs/nl_BE/website.lang       |   5 -
 htdocs/langs/nl_BE/workflow.lang      |   4 -
 htdocs/langs/nl_NL/accountancy.lang   |  22 +-
 htdocs/langs/nl_NL/admin.lang         |  17 +-
 htdocs/langs/nl_NL/banks.lang         |   8 +-
 htdocs/langs/nl_NL/bills.lang         |   1 +
 htdocs/langs/nl_NL/compta.lang        |   4 +-
 htdocs/langs/nl_NL/errors.lang        |   3 +
 htdocs/langs/nl_NL/install.lang       |   4 +-
 htdocs/langs/nl_NL/main.lang          |   7 +-
 htdocs/langs/nl_NL/modulebuilder.lang |  26 +-
 htdocs/langs/nl_NL/orders.lang        |   1 +
 htdocs/langs/nl_NL/other.lang         |   1 +
 htdocs/langs/nl_NL/propal.lang        |   1 +
 htdocs/langs/nl_NL/salaries.lang      |   2 +-
 htdocs/langs/nl_NL/website.lang       |  19 +-
 htdocs/langs/nl_NL/workflow.lang      |  18 +-
 htdocs/langs/pl_PL/accountancy.lang   |  72 ++--
 htdocs/langs/pl_PL/admin.lang         |  71 ++--
 htdocs/langs/pl_PL/banks.lang         |   8 +-
 htdocs/langs/pl_PL/bills.lang         |   1 +
 htdocs/langs/pl_PL/boxes.lang         |  24 +-
 htdocs/langs/pl_PL/categories.lang    |  24 +-
 htdocs/langs/pl_PL/commercial.lang    |   4 +-
 htdocs/langs/pl_PL/companies.lang     |   6 +-
 htdocs/langs/pl_PL/compta.lang        |   4 +-
 htdocs/langs/pl_PL/errors.lang        |   3 +
 htdocs/langs/pl_PL/help.lang          |   2 +-
 htdocs/langs/pl_PL/holiday.lang       |  16 +-
 htdocs/langs/pl_PL/install.lang       |  30 +-
 htdocs/langs/pl_PL/interventions.lang |  30 +-
 htdocs/langs/pl_PL/ldap.lang          |   2 +-
 htdocs/langs/pl_PL/main.lang          |   9 +-
 htdocs/langs/pl_PL/margins.lang       |   2 +-
 htdocs/langs/pl_PL/members.lang       |   2 +-
 htdocs/langs/pl_PL/modulebuilder.lang |  26 +-
 htdocs/langs/pl_PL/multicurrency.lang |   3 +-
 htdocs/langs/pl_PL/opensurvey.lang    |   2 +-
 htdocs/langs/pl_PL/orders.lang        |   1 +
 htdocs/langs/pl_PL/other.lang         |   1 +
 htdocs/langs/pl_PL/printing.lang      |   2 +-
 htdocs/langs/pl_PL/propal.lang        |   1 +
 htdocs/langs/pl_PL/salaries.lang      |   2 +-
 htdocs/langs/pl_PL/website.lang       |  19 +-
 htdocs/langs/pl_PL/workflow.lang      |  18 +-
 htdocs/langs/pt_BR/accountancy.lang   |   2 -
 htdocs/langs/pt_BR/admin.lang         |   5 -
 htdocs/langs/pt_BR/banks.lang         |   4 -
 htdocs/langs/pt_BR/companies.lang     |   1 +
 htdocs/langs/pt_BR/install.lang       |   1 -
 htdocs/langs/pt_BR/website.lang       |   3 -
 htdocs/langs/pt_BR/workflow.lang      |   7 -
 htdocs/langs/pt_PT/accountancy.lang   |  32 +-
 htdocs/langs/pt_PT/admin.lang         |  43 +--
 htdocs/langs/pt_PT/agenda.lang        |  10 +-
 htdocs/langs/pt_PT/banks.lang         |   8 +-
 htdocs/langs/pt_PT/bills.lang         |   1 +
 htdocs/langs/pt_PT/compta.lang        |   4 +-
 htdocs/langs/pt_PT/errors.lang        |   3 +
 htdocs/langs/pt_PT/install.lang       |   4 +-
 htdocs/langs/pt_PT/main.lang          |   7 +-
 htdocs/langs/pt_PT/modulebuilder.lang |  68 ++--
 htdocs/langs/pt_PT/multicurrency.lang |   3 +-
 htdocs/langs/pt_PT/orders.lang        |   1 +
 htdocs/langs/pt_PT/other.lang         |   1 +
 htdocs/langs/pt_PT/propal.lang        |   1 +
 htdocs/langs/pt_PT/salaries.lang      |   2 +-
 htdocs/langs/pt_PT/website.lang       |  19 +-
 htdocs/langs/pt_PT/workflow.lang      |  18 +-
 htdocs/langs/ro_RO/accountancy.lang   |  22 +-
 htdocs/langs/ro_RO/admin.lang         |  17 +-
 htdocs/langs/ro_RO/banks.lang         |   8 +-
 htdocs/langs/ro_RO/bills.lang         |   1 +
 htdocs/langs/ro_RO/compta.lang        |   4 +-
 htdocs/langs/ro_RO/errors.lang        |   3 +
 htdocs/langs/ro_RO/install.lang       |   4 +-
 htdocs/langs/ro_RO/main.lang          |   7 +-
 htdocs/langs/ro_RO/modulebuilder.lang |  26 +-
 htdocs/langs/ro_RO/orders.lang        |   1 +
 htdocs/langs/ro_RO/other.lang         |   1 +
 htdocs/langs/ro_RO/propal.lang        |   1 +
 htdocs/langs/ro_RO/salaries.lang      |   2 +-
 htdocs/langs/ro_RO/website.lang       |  19 +-
 htdocs/langs/ro_RO/workflow.lang      |  18 +-
 htdocs/langs/ru_RU/accountancy.lang   |  22 +-
 htdocs/langs/ru_RU/admin.lang         |  25 +-
 htdocs/langs/ru_RU/banks.lang         |   8 +-
 htdocs/langs/ru_RU/bills.lang         |   1 +
 htdocs/langs/ru_RU/compta.lang        |   4 +-
 htdocs/langs/ru_RU/errors.lang        |   3 +
 htdocs/langs/ru_RU/install.lang       |   4 +-
 htdocs/langs/ru_RU/main.lang          |  57 ++--
 htdocs/langs/ru_RU/modulebuilder.lang |  26 +-
 htdocs/langs/ru_RU/multicurrency.lang |   3 +-
 htdocs/langs/ru_RU/orders.lang        |   1 +
 htdocs/langs/ru_RU/other.lang         |   1 +
 htdocs/langs/ru_RU/propal.lang        |   1 +
 htdocs/langs/ru_RU/salaries.lang      |   2 +-
 htdocs/langs/ru_RU/website.lang       |  19 +-
 htdocs/langs/ru_RU/workflow.lang      |  18 +-
 htdocs/langs/sk_SK/accountancy.lang   |  22 +-
 htdocs/langs/sk_SK/admin.lang         |  17 +-
 htdocs/langs/sk_SK/banks.lang         |   8 +-
 htdocs/langs/sk_SK/bills.lang         |   1 +
 htdocs/langs/sk_SK/compta.lang        |   4 +-
 htdocs/langs/sk_SK/errors.lang        |   3 +
 htdocs/langs/sk_SK/install.lang       |   4 +-
 htdocs/langs/sk_SK/main.lang          |   7 +-
 htdocs/langs/sk_SK/modulebuilder.lang |  26 +-
 htdocs/langs/sk_SK/orders.lang        |   1 +
 htdocs/langs/sk_SK/other.lang         |   1 +
 htdocs/langs/sk_SK/propal.lang        |   1 +
 htdocs/langs/sk_SK/salaries.lang      |   2 +-
 htdocs/langs/sk_SK/website.lang       |  19 +-
 htdocs/langs/sk_SK/workflow.lang      |  18 +-
 htdocs/langs/sl_SI/accountancy.lang   |  22 +-
 htdocs/langs/sl_SI/admin.lang         |  17 +-
 htdocs/langs/sl_SI/banks.lang         |   8 +-
 htdocs/langs/sl_SI/bills.lang         |   1 +
 htdocs/langs/sl_SI/compta.lang        |   4 +-
 htdocs/langs/sl_SI/errors.lang        |   3 +
 htdocs/langs/sl_SI/install.lang       |   4 +-
 htdocs/langs/sl_SI/main.lang          |   7 +-
 htdocs/langs/sl_SI/modulebuilder.lang |  26 +-
 htdocs/langs/sl_SI/orders.lang        |   1 +
 htdocs/langs/sl_SI/other.lang         |   1 +
 htdocs/langs/sl_SI/propal.lang        |   1 +
 htdocs/langs/sl_SI/salaries.lang      |   2 +-
 htdocs/langs/sl_SI/website.lang       |  19 +-
 htdocs/langs/sl_SI/workflow.lang      |  18 +-
 htdocs/langs/sq_AL/accountancy.lang   |  22 +-
 htdocs/langs/sq_AL/admin.lang         |  17 +-
 htdocs/langs/sq_AL/banks.lang         |   8 +-
 htdocs/langs/sq_AL/bills.lang         |   1 +
 htdocs/langs/sq_AL/compta.lang        |   4 +-
 htdocs/langs/sq_AL/errors.lang        |   3 +
 htdocs/langs/sq_AL/install.lang       |   4 +-
 htdocs/langs/sq_AL/main.lang          |   7 +-
 htdocs/langs/sq_AL/modulebuilder.lang |  26 +-
 htdocs/langs/sq_AL/orders.lang        |   1 +
 htdocs/langs/sq_AL/other.lang         |   1 +
 htdocs/langs/sq_AL/propal.lang        |   1 +
 htdocs/langs/sq_AL/salaries.lang      |   2 +-
 htdocs/langs/sq_AL/website.lang       |  19 +-
 htdocs/langs/sq_AL/workflow.lang      |  18 +-
 htdocs/langs/sr_RS/accountancy.lang   |  22 +-
 htdocs/langs/sr_RS/admin.lang         |  17 +-
 htdocs/langs/sr_RS/banks.lang         |   8 +-
 htdocs/langs/sr_RS/bills.lang         | 107 +++---
 htdocs/langs/sr_RS/boxes.lang         |   2 +-
 htdocs/langs/sr_RS/cashdesk.lang      |   4 +-
 htdocs/langs/sr_RS/commercial.lang    |  14 +-
 htdocs/langs/sr_RS/compta.lang        |   4 +-
 htdocs/langs/sr_RS/ecm.lang           |   4 +-
 htdocs/langs/sr_RS/errors.lang        |   3 +
 htdocs/langs/sr_RS/help.lang          |   2 +-
 htdocs/langs/sr_RS/install.lang       |   4 +-
 htdocs/langs/sr_RS/languages.lang     |  10 +-
 htdocs/langs/sr_RS/ldap.lang          |   6 +-
 htdocs/langs/sr_RS/main.lang          |   7 +-
 htdocs/langs/sr_RS/members.lang       |   6 +-
 htdocs/langs/sr_RS/orders.lang        |   1 +
 htdocs/langs/sr_RS/other.lang         |   1 +
 htdocs/langs/sr_RS/propal.lang        |   1 +
 htdocs/langs/sr_RS/resource.lang      |   6 +-
 htdocs/langs/sr_RS/salaries.lang      |  10 +-
 htdocs/langs/sr_RS/sms.lang           |   2 +-
 htdocs/langs/sr_RS/workflow.lang      |  22 +-
 htdocs/langs/sv_SE/accountancy.lang   |  22 +-
 htdocs/langs/sv_SE/admin.lang         |  17 +-
 htdocs/langs/sv_SE/banks.lang         |   8 +-
 htdocs/langs/sv_SE/bills.lang         |   1 +
 htdocs/langs/sv_SE/compta.lang        |   4 +-
 htdocs/langs/sv_SE/errors.lang        |   3 +
 htdocs/langs/sv_SE/install.lang       |   4 +-
 htdocs/langs/sv_SE/main.lang          |   7 +-
 htdocs/langs/sv_SE/modulebuilder.lang |  26 +-
 htdocs/langs/sv_SE/orders.lang        |   1 +
 htdocs/langs/sv_SE/other.lang         |   1 +
 htdocs/langs/sv_SE/propal.lang        |   1 +
 htdocs/langs/sv_SE/salaries.lang      |   2 +-
 htdocs/langs/sv_SE/website.lang       |  19 +-
 htdocs/langs/sv_SE/workflow.lang      |  18 +-
 htdocs/langs/sw_SW/accountancy.lang   |  22 +-
 htdocs/langs/sw_SW/admin.lang         |  17 +-
 htdocs/langs/sw_SW/banks.lang         |   8 +-
 htdocs/langs/sw_SW/bills.lang         |   1 +
 htdocs/langs/sw_SW/compta.lang        |   4 +-
 htdocs/langs/sw_SW/errors.lang        |   3 +
 htdocs/langs/sw_SW/install.lang       |   4 +-
 htdocs/langs/sw_SW/main.lang          |   7 +-
 htdocs/langs/sw_SW/orders.lang        |   1 +
 htdocs/langs/sw_SW/other.lang         |   1 +
 htdocs/langs/sw_SW/propal.lang        |   1 +
 htdocs/langs/sw_SW/salaries.lang      |   2 +-
 htdocs/langs/sw_SW/workflow.lang      |  18 +-
 htdocs/langs/th_TH/accountancy.lang   |  22 +-
 htdocs/langs/th_TH/admin.lang         |  17 +-
 htdocs/langs/th_TH/banks.lang         |   8 +-
 htdocs/langs/th_TH/bills.lang         |   1 +
 htdocs/langs/th_TH/compta.lang        |   4 +-
 htdocs/langs/th_TH/errors.lang        |   3 +
 htdocs/langs/th_TH/install.lang       |   4 +-
 htdocs/langs/th_TH/main.lang          |   7 +-
 htdocs/langs/th_TH/modulebuilder.lang |  26 +-
 htdocs/langs/th_TH/multicurrency.lang |   3 +-
 htdocs/langs/th_TH/orders.lang        |   1 +
 htdocs/langs/th_TH/other.lang         |   1 +
 htdocs/langs/th_TH/propal.lang        |   1 +
 htdocs/langs/th_TH/salaries.lang      |   2 +-
 htdocs/langs/th_TH/website.lang       |  19 +-
 htdocs/langs/th_TH/workflow.lang      |  18 +-
 htdocs/langs/tr_TR/accountancy.lang   |  22 +-
 htdocs/langs/tr_TR/admin.lang         |  17 +-
 htdocs/langs/tr_TR/banks.lang         |   8 +-
 htdocs/langs/tr_TR/bills.lang         |   1 +
 htdocs/langs/tr_TR/compta.lang        |   4 +-
 htdocs/langs/tr_TR/errors.lang        |   3 +
 htdocs/langs/tr_TR/install.lang       |   4 +-
 htdocs/langs/tr_TR/main.lang          |   7 +-
 htdocs/langs/tr_TR/modulebuilder.lang |  26 +-
 htdocs/langs/tr_TR/multicurrency.lang |   3 +-
 htdocs/langs/tr_TR/orders.lang        |   1 +
 htdocs/langs/tr_TR/other.lang         |   1 +
 htdocs/langs/tr_TR/propal.lang        |   1 +
 htdocs/langs/tr_TR/salaries.lang      |   2 +-
 htdocs/langs/tr_TR/website.lang       |  19 +-
 htdocs/langs/tr_TR/workflow.lang      |  18 +-
 htdocs/langs/uk_UA/accountancy.lang   |  22 +-
 htdocs/langs/uk_UA/admin.lang         |  17 +-
 htdocs/langs/uk_UA/banks.lang         |   8 +-
 htdocs/langs/uk_UA/bills.lang         |   1 +
 htdocs/langs/uk_UA/compta.lang        |   4 +-
 htdocs/langs/uk_UA/errors.lang        |   3 +
 htdocs/langs/uk_UA/install.lang       |   4 +-
 htdocs/langs/uk_UA/main.lang          |   7 +-
 htdocs/langs/uk_UA/modulebuilder.lang |  26 +-
 htdocs/langs/uk_UA/orders.lang        |   1 +
 htdocs/langs/uk_UA/other.lang         |   1 +
 htdocs/langs/uk_UA/propal.lang        |   1 +
 htdocs/langs/uk_UA/salaries.lang      |   2 +-
 htdocs/langs/uk_UA/website.lang       |  19 +-
 htdocs/langs/uk_UA/workflow.lang      |  18 +-
 htdocs/langs/uz_UZ/accountancy.lang   |  22 +-
 htdocs/langs/uz_UZ/admin.lang         |  17 +-
 htdocs/langs/uz_UZ/banks.lang         |   8 +-
 htdocs/langs/uz_UZ/bills.lang         |   1 +
 htdocs/langs/uz_UZ/compta.lang        |   4 +-
 htdocs/langs/uz_UZ/errors.lang        |   3 +
 htdocs/langs/uz_UZ/install.lang       |   4 +-
 htdocs/langs/uz_UZ/main.lang          |   7 +-
 htdocs/langs/uz_UZ/orders.lang        |   1 +
 htdocs/langs/uz_UZ/other.lang         |   1 +
 htdocs/langs/uz_UZ/propal.lang        |   1 +
 htdocs/langs/uz_UZ/salaries.lang      |   2 +-
 htdocs/langs/uz_UZ/workflow.lang      |  18 +-
 htdocs/langs/vi_VN/accountancy.lang   |  22 +-
 htdocs/langs/vi_VN/admin.lang         |  17 +-
 htdocs/langs/vi_VN/banks.lang         |   8 +-
 htdocs/langs/vi_VN/bills.lang         |   1 +
 htdocs/langs/vi_VN/compta.lang        |   4 +-
 htdocs/langs/vi_VN/errors.lang        |   3 +
 htdocs/langs/vi_VN/install.lang       |   4 +-
 htdocs/langs/vi_VN/main.lang          |   7 +-
 htdocs/langs/vi_VN/modulebuilder.lang |  26 +-
 htdocs/langs/vi_VN/orders.lang        |   1 +
 htdocs/langs/vi_VN/other.lang         |   1 +
 htdocs/langs/vi_VN/propal.lang        |   1 +
 htdocs/langs/vi_VN/salaries.lang      |   2 +-
 htdocs/langs/vi_VN/website.lang       |  19 +-
 htdocs/langs/vi_VN/workflow.lang      |  18 +-
 htdocs/langs/zh_CN/accountancy.lang   |  22 +-
 htdocs/langs/zh_CN/admin.lang         |  17 +-
 htdocs/langs/zh_CN/banks.lang         |   8 +-
 htdocs/langs/zh_CN/bills.lang         |   1 +
 htdocs/langs/zh_CN/compta.lang        |   4 +-
 htdocs/langs/zh_CN/errors.lang        |   3 +
 htdocs/langs/zh_CN/install.lang       |   4 +-
 htdocs/langs/zh_CN/main.lang          |   7 +-
 htdocs/langs/zh_CN/modulebuilder.lang |  26 +-
 htdocs/langs/zh_CN/multicurrency.lang |   3 +-
 htdocs/langs/zh_CN/orders.lang        |   1 +
 htdocs/langs/zh_CN/other.lang         |   1 +
 htdocs/langs/zh_CN/propal.lang        |   1 +
 htdocs/langs/zh_CN/salaries.lang      |   2 +-
 htdocs/langs/zh_CN/website.lang       |  19 +-
 htdocs/langs/zh_CN/workflow.lang      |  18 +-
 htdocs/langs/zh_TW/accountancy.lang   |  22 +-
 htdocs/langs/zh_TW/admin.lang         |  17 +-
 htdocs/langs/zh_TW/banks.lang         |   8 +-
 htdocs/langs/zh_TW/bills.lang         |   1 +
 htdocs/langs/zh_TW/compta.lang        |   4 +-
 htdocs/langs/zh_TW/errors.lang        |   3 +
 htdocs/langs/zh_TW/install.lang       |   4 +-
 htdocs/langs/zh_TW/main.lang          |   7 +-
 htdocs/langs/zh_TW/modulebuilder.lang |  26 +-
 htdocs/langs/zh_TW/orders.lang        |   1 +
 htdocs/langs/zh_TW/other.lang         |   1 +
 htdocs/langs/zh_TW/propal.lang        |   1 +
 htdocs/langs/zh_TW/salaries.lang      |   2 +-
 htdocs/langs/zh_TW/website.lang       |  19 +-
 htdocs/langs/zh_TW/workflow.lang      |  18 +-
 856 files changed, 5941 insertions(+), 2884 deletions(-)

diff --git a/htdocs/langs/ar_SA/accountancy.lang b/htdocs/langs/ar_SA/accountancy.lang
index 0d632261a5d..bce26d8e104 100644
--- a/htdocs/langs/ar_SA/accountancy.lang
+++ b/htdocs/langs/ar_SA/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=إجمالي شراء المورد قبل الضريبة
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=دفتر المالية اليومي
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=دفتر المالية اليومي المتضمن لجميع الدفعات عن طريق الحساب المصرفي
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=قائمة الحسابات المحاسبية
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=فئة الحساب
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=خطأ، لا يمكنك حذف هذا الحساب المحاسبي لأنه مستخدم
-MvtNotCorrectlyBalanced=الحركة غير متوازنة\nالدائن =%s\nالمدين =%s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=رمز
 Nature=طبيعة
 AccountingJournalType1=Various operation
 AccountingJournalType2=مبيعات
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=صادرات
-Export=تصدير
 ExportDraftJournal=Export draft journal
 Modelcsv=نموذج التصدير
 OptionsDeactivatedForThisExportModel=تم الغاء الخيارات لنموذج التصدير هذا
diff --git a/htdocs/langs/ar_SA/admin.lang b/htdocs/langs/ar_SA/admin.lang
index 9d7b2dad978..19b6f612757 100644
--- a/htdocs/langs/ar_SA/admin.lang
+++ b/htdocs/langs/ar_SA/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=منظقة أدوات نظام
 SystemToolsAreaDesc=هذه المنطقة توفر مميزات إدارية. استخدم القائمة لاختيار الخصائص التي تبحث عنها.
 Purge=أحذف
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=حذف كل الملفات في المجلد <b>%s</b> الملفات المؤقتة ، بل أيضا ملفات استرجاع قاعدة البيانات, الملفات الملحقة بعناصر (أطراف ثالثة أو خارجية ، فواتير...) وتم تحمليها في نموذج إي سي إم, سيتم حذفها
 PurgeRunNow=إحذف الآن
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> ملفات او مجلدات حذفت
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=احذف جميع الأحداث المتعلقة بالأمان
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=قم بإنشاء نسخة احتياطية
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=لهذه الخطوة، يمكنك إرسال حزمة باستخدام هذه الأداة: اختر ملف الوحدة النمطية
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr النسخة الحالية
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=اقتراح التجاري المورد
 Module1120Desc=اقتراح تجاري طلب المورد والأسعار
 Module1200Name=فرس النبي
 Module1200Desc=فرس النبي التكامل
-Module1400Name=المحاسبة
-Module1400Desc=Accounting management (double entries)
 Module1520Name=الجيل ثيقة
 Module1520Desc=الجيل ثيقة الإلكتروني الشامل
 Module1780Name=الكلمات / فئات
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=باي بال
 Module50200Desc=وحدة لتقديم على صفحة الدفع عبر الإنترنت عن طريق بطاقة الائتمان مع بايبال
 Module50400Name=المحاسبة (متقدم)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=(يجب أن تكون الطابعة مرئية من الخادم، ويجب أن تكون الكؤوس تركيبها على الخادم) الطباعة مباشرة (دون فتح المستندات) باستخدام واجهة الكؤوس IPP.
 Module55000Name=استطلاع للرأي، أو مسح التصويت
@@ -751,8 +750,10 @@ Permission401=قراءة خصومات
 Permission402=إنشاء / تعديل الخصومات
 Permission403=تحقق من الخصومات
 Permission404=حذف خصومات
-Permission510=قراءة الرواتب
-Permission512=إنشاء / تعديل الرواتب
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=حذف الرواتب
 Permission517=رواتب التصدير
 Permission520=قراءة القروض
@@ -1057,7 +1058,7 @@ RestoreDesc2=استعادة ملف أرشيف (ملف مضغوط على سبيل
 RestoreDesc3=استعادة البيانات من ملف تفريغ النسخ الاحتياطي، في قاعدة بيانات التثبيت Dolibarr جديد أو إلى قاعدة البيانات من هذا التثبيت الحالي <b>(%s).</b> تحذير، بمجرد استعادة الانتهاء، يجب عليك استخدام تسجيل الدخول / كلمة المرور، التي كانت موجودة عندما تم النسخ الاحتياطي، والاتصال مرة أخرى. استعادة قاعدة بيانات النسخ الاحتياطي إلى هذا التثبيت الحالي، يمكنك اتباع هذا المساعد.
 RestoreMySQL=استيراد MySQL
 ForcedToByAModule= هذه القاعدة <b>%s</b> الى جانب تفعيل وحدة
-PreviousDumpFiles=متاح تفريغ النسخ الاحتياطي ملفات قاعدة البيانات
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=أول يوم من الأسبوع
 RunningUpdateProcessMayBeRequired=تشغيل عملية الترقية ويبدو أن المطلوب (ليالي برامج الإصدار %s  يختلف عن إصدار قاعدة بيانات  %s )
 YouMustRunCommandFromCommandLineAfterLoginToUser=يجب تشغيل هذا الأمر من سطر الأوامر بعد تسجيل الدخول إلى قذيفة مع <b>المستخدم %s </b> أو يجب عليك إضافة خيار -w في نهاية سطر الأوامر <b>لتوفير %s </b> كلمة المرور.
diff --git a/htdocs/langs/ar_SA/banks.lang b/htdocs/langs/ar_SA/banks.lang
index c056dcbdedb..687e1a41214 100644
--- a/htdocs/langs/ar_SA/banks.lang
+++ b/htdocs/langs/ar_SA/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=تحقق عاد والفواتير فتح
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/ar_SA/bills.lang b/htdocs/langs/ar_SA/bills.lang
index e56aff37ced..29ba7be2312 100644
--- a/htdocs/langs/ar_SA/bills.lang
+++ b/htdocs/langs/ar_SA/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=فاتورة بطاقة
 PredefinedInvoices=الفواتير مسبقا
 Invoice=فاتورة
+PdfInvoiceTitle=فاتورة
 Invoices=فواتير
 InvoiceLine=فاتورة الخط
 InvoiceCustomer=الزبون فاتورة
diff --git a/htdocs/langs/ar_SA/compta.lang b/htdocs/langs/ar_SA/compta.lang
index fa147c7919b..181038bcd56 100644
--- a/htdocs/langs/ar_SA/compta.lang
+++ b/htdocs/langs/ar_SA/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=استنساخ ضريبة اجتماعية / مالية
 ConfirmCloneTax=تأكيد استنساخ ل/ دفع الضرائب المالية الاجتماعي
 CloneTaxForNextMonth=استنساخ لشهر المقبل
diff --git a/htdocs/langs/ar_SA/errors.lang b/htdocs/langs/ar_SA/errors.lang
index 46eb89f55e9..724b337bff6 100644
--- a/htdocs/langs/ar_SA/errors.lang
+++ b/htdocs/langs/ar_SA/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=تم تعيين كلمة مرور لهذا العضو. ومع ذلك، تم إنشاء أي حساب المستخدم. لذلك يتم تخزين كلمة المرور هذه ولكن لا يمكن استخدامها للدخول إلى Dolibarr. ويمكن استخدامه من قبل وحدة / واجهة خارجية ولكن إذا كنت لا تحتاج إلى تعريف أي تسجيل دخول أو كلمة المرور لأحد أفراد، يمكنك تعطيل خيار "إدارة تسجيل دخول لكل عضو" من إعداد وحدة الأعضاء. إذا كنت بحاجة إلى إدارة تسجيل الدخول ولكن لا تحتاج إلى أي كلمة المرور، يمكنك الحفاظ على هذا الحقل فارغا لتجنب هذا التحذير. ملاحظة: يمكن أيضا أن تستخدم البريد الإلكتروني لتسجيل الدخول إذا تم ربط عضو إلى المستخدم.
diff --git a/htdocs/langs/ar_SA/install.lang b/htdocs/langs/ar_SA/install.lang
index 0f64b05b43a..ae258ae626b 100644
--- a/htdocs/langs/ar_SA/install.lang
+++ b/htdocs/langs/ar_SA/install.lang
@@ -53,10 +53,10 @@ AdminLogin=ادخل لDolibarr مدير قاعدة البيانات. تبقي ف
 PasswordAgain=أعد كتابة كلمة المرور مرة ثانية
 AdminPassword=Dolibarr كلمة السر لمدير قاعدة البيانات. تبقي فارغة إذا لم يذكر اسمه في اتصال
 CreateDatabase=إنشاء قاعدة بيانات
-CreateUser=إنشاء مستخدم
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=قاعدة بيانات -- وصول مستخدم الكومبيوتر ذو الصلاحيات العليا
 CheckToCreateDatabase=المربع إذا كان لا وجود قاعدة بيانات ، ويجب تهيئة. <br> في هذه الحالة ، يجب عليك ملء ادخل كلمة السر لحساب المستعملين المتميزين في أسفل هذه الصفحة.
-CheckToCreateUser=المربع اذا ادخل لا وجود له ، ويجب تهيئة. <br> في هذه الحالة ، يجب عليك ملء ادخل كلمة السر لحساب المستعملين المتميزين في أسفل هذه الصفحة.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=ادخل يسمح للمستخدم لإنشاء قواعد بيانات جديدة أو المستخدمين الجدد ، وإذا كانت غير مجدية وقاعدة البيانات وقاعدة البيانات ادخل موجود بالفعل (مثل عندما كنت استضافته استضافة ويب).
 KeepEmptyIfNoPassword=ترك فارغا إذا لم المستخدم كلمة السر (تجنب هذا؟)
 SaveConfigurationFile=إنقاذ القيم
diff --git a/htdocs/langs/ar_SA/main.lang b/htdocs/langs/ar_SA/main.lang
index 93456670297..82c058bebfe 100644
--- a/htdocs/langs/ar_SA/main.lang
+++ b/htdocs/langs/ar_SA/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=تم تحميل الملف بنجاح
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=يتم اختيار ملف لمرفق ولكن لم تحميلها بعد. انقر على "إرفاق ملف" لهذا الغرض.
 NbOfEntries=ملحوظة من إدخالات
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=معلمة
 Parameters=المعايير
 Value=القيمة
 PersonalValue=قيمة الشخصية
+NewObject=New %s
 NewValue=القيمة الجديدة
 CurrentValue=القيمة الحالية
 Code=رمز
@@ -441,6 +443,7 @@ Reporting=التقارير
 Reportings=التقارير
 Draft=مسودة
 Drafts=الداما
+StatusInterInvoiced=
 Validated=التحقق من صحة
 Opened=فتح
 New=جديد
@@ -727,6 +730,7 @@ SetBankAccount=تحديد الحساب المصرفي
 AccountCurrency=عملة الحساب
 ViewPrivateNote=عرض الملاحظات
 XMoreLines=٪ ق خط (ق) مخبأة
+ShowMoreLines=Show more lines
 PublicUrl=URL العام
 AddBox=إضافة مربع
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=اذهب إلى الصفحة الرئيسية - إعداد - شركة لتغيير شعار أو الذهاب إلى الصفحة الرئيسية - إعداد - عرض للاختباء.
 Deny=رفض
 Denied=رفض
+ListOf=List of %s
 ListOfTemplates=قائمة القوالب
 Gender=جنس
 Genderman=رجل
diff --git a/htdocs/langs/ar_SA/modulebuilder.lang b/htdocs/langs/ar_SA/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/ar_SA/modulebuilder.lang
+++ b/htdocs/langs/ar_SA/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/ar_SA/orders.lang b/htdocs/langs/ar_SA/orders.lang
index 8e9615a7b16..fcadbc73997 100644
--- a/htdocs/langs/ar_SA/orders.lang
+++ b/htdocs/langs/ar_SA/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=الموردين أوامر المنطقة
 OrderCard=من أجل بطاقة
 OrderId=رقم التعريف الخاص بالطلب
 Order=ترتيب
+PdfOrderTitle=الطلبية
 Orders=أوامر
 OrderLine=من أجل خط
 OrderDate=من أجل التاريخ
diff --git a/htdocs/langs/ar_SA/other.lang b/htdocs/langs/ar_SA/other.lang
index cd0c8f45437..7a0a0db8629 100644
--- a/htdocs/langs/ar_SA/other.lang
+++ b/htdocs/langs/ar_SA/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/ar_SA/propal.lang b/htdocs/langs/ar_SA/propal.lang
index dec35bde005..7e07222bc30 100644
--- a/htdocs/langs/ar_SA/propal.lang
+++ b/htdocs/langs/ar_SA/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=مقترحات مشاريع تجارية
 ProposalsOpened=مقترحات التجارية المفتوحة
 Prop=مقترحات تجارية
 CommercialProposal=اقتراح التجارية
+PdfCommercialProposalTitle=اقتراح التجارية
 ProposalCard=اقتراح بطاقة
 NewProp=التجاري الجديد المقترح
 NewPropal=اقتراح جديد
diff --git a/htdocs/langs/ar_SA/salaries.lang b/htdocs/langs/ar_SA/salaries.lang
index 8a066b643c6..ac60cd65b73 100644
--- a/htdocs/langs/ar_SA/salaries.lang
+++ b/htdocs/langs/ar_SA/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=الراتب
 Salaries=الرواتب
diff --git a/htdocs/langs/ar_SA/website.lang b/htdocs/langs/ar_SA/website.lang
index 2dffe244283..094492623b9 100644
--- a/htdocs/langs/ar_SA/website.lang
+++ b/htdocs/langs/ar_SA/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/ar_SA/workflow.lang b/htdocs/langs/ar_SA/workflow.lang
index 7eace175607..37dca046c79 100644
--- a/htdocs/langs/ar_SA/workflow.lang
+++ b/htdocs/langs/ar_SA/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=سير العمل وحدة الإعداد
 WorkflowDesc=تم تصميم هذه الوحدة لتعديل السلوك من الإجراءات الآلية إلى التطبيق. افتراضيا، سير العمل مفتوح (يمكنك أن تفعل أشياء في النظام الذي تريد). يمكنك تفعيل الإجراءات الآلية كنت مهتما في.
 ThereIsNoWorkflowToModify=لا يوجد أي تعديلات سير العمل المتاحة مع وحدات تفعيلها.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=إنشاء النظام العميل تلقائيا بعد التوقيع على اقتراح التجاري
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=إنشاء فاتورة العميل تلقائيا بعد التوقيع على اقتراح التجاري
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=إنشاء فاتورة العميل تلقائيا بعد التحقق من صحة العقد
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=إنشاء فاتورة العميل تلقائيا بعد إغلاق النظام العميل
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=تصنيف مقترح مصدر على صلة وصفت عند تعيين النظام العميل لدفع
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=تصنيف المصدر المرتبط النظام العميل (ق) إلى المنقار عند تعيين فاتورة العملاء لدفع
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=تصنيف ربط مصدر النظام العميل (ق) إلى المنقار عند التحقق من صحة الفاتورة العملاء
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/bg_BG/accountancy.lang b/htdocs/langs/bg_BG/accountancy.lang
index d611bd0e6df..7d5d689eee0 100644
--- a/htdocs/langs/bg_BG/accountancy.lang
+++ b/htdocs/langs/bg_BG/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Възникна грешка, вие не можете да изтриете тази счетоводна сметка, защото се използва.
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Код
 Nature=Същност
 AccountingJournalType1=Various operation
 AccountingJournalType2=Sales
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exports
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model of export
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/bg_BG/admin.lang b/htdocs/langs/bg_BG/admin.lang
index e0b34499dbd..cfb6ce00095 100644
--- a/htdocs/langs/bg_BG/admin.lang
+++ b/htdocs/langs/bg_BG/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Системни инструменти
 SystemToolsAreaDesc=Тук се предоставят административни функции. Използвайте менюто за да изберете функцията която търсите.
 Purge=Изчистване
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Изтрий временните файлове
 PurgeDeleteAllFilesInDocumentsDir=Изтриване на всички файлове в директорията <b>%s.</b> Временни файлове, но също така и резервната база данни сметища, файлове, прикрепени към елементи (контрагенти, фактури, ...) и качени в модул ECM ще бъдат изтрити.
 PurgeRunNow=Изчистване сега
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> изтрити файлове или директории.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Поръси всички събития по сигурността
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Генериране на бекъп
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Текуща версия на Dolibarr
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Богомолка
 Module1200Desc=Mantis интеграция
-Module1400Name=Счетоводство
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Модул предлага онлайн страница на плащане с кредитна карта с Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Прочети отстъпки
 Permission402=Създаване / промяна на отстъпки
 Permission403=Проверка на отстъпки
 Permission404=Изтриване на отстъпки
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL внос
 ForcedToByAModule= Това правило е принуден да <b>%s</b> от активиран модул
-PreviousDumpFiles=Файлове с бекъпи на базата данни
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=Първи ден от седмицата
 RunningUpdateProcessMayBeRequired=Продължителност на процеса на актуализация изглежда да се изисква (Програми версия %s различава от %s версия на базата от данни)
 YouMustRunCommandFromCommandLineAfterLoginToUser=Трябва да изпълните тази команда от командния ред след влизане на черупката с потребителски <b>%s</b> или трябва да добавите опцията-W в края на командния ред, за да предоставят <b>%s</b> парола.
diff --git a/htdocs/langs/bg_BG/banks.lang b/htdocs/langs/bg_BG/banks.lang
index dfddebc56e3..6fb0f61166f 100644
--- a/htdocs/langs/bg_BG/banks.lang
+++ b/htdocs/langs/bg_BG/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Върнат Чек и отворена фак
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/bg_BG/bills.lang b/htdocs/langs/bg_BG/bills.lang
index 3f39229ae38..fd64a10defb 100644
--- a/htdocs/langs/bg_BG/bills.lang
+++ b/htdocs/langs/bg_BG/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Фактурна карта
 PredefinedInvoices=Предварително-дефинирани Фактури
 Invoice=Фактура
+PdfInvoiceTitle=Фактура
 Invoices=Фактури
 InvoiceLine=Фактурен ред
 InvoiceCustomer=Продажна фактура
diff --git a/htdocs/langs/bg_BG/compta.lang b/htdocs/langs/bg_BG/compta.lang
index 1098b2e07f8..34bfce0018a 100644
--- a/htdocs/langs/bg_BG/compta.lang
+++ b/htdocs/langs/bg_BG/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Клониране за следващ месец
diff --git a/htdocs/langs/bg_BG/errors.lang b/htdocs/langs/bg_BG/errors.lang
index d1e9ea2e582..1036ad1703c 100644
--- a/htdocs/langs/bg_BG/errors.lang
+++ b/htdocs/langs/bg_BG/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=Парола е зададено за този член. Обаче, няма създаден потребителски акаунт. Следователно тази парола е записана, но не може да бъде използвана за влизане в Dolibarr. Може да бъде използвана от външен модул/интерфейс, но ако нямате нужда да определите нито потребителско име нито парола за член, можете да деактивирате тази опция. Ако имате нужда да управлявате потребителско име, но нямата нужда от парола, можете да оставите това поле празно, за да избегнете това предупреждение. Забележка: Имейл също може да бъде използван като потребителско име ако члена с свързан към потребител.
diff --git a/htdocs/langs/bg_BG/install.lang b/htdocs/langs/bg_BG/install.lang
index 629bf7f4657..fa018129f28 100644
--- a/htdocs/langs/bg_BG/install.lang
+++ b/htdocs/langs/bg_BG/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Идентифициране на собственика на баз
 PasswordAgain=Въведете паролата отново
 AdminPassword=Парола на собственика на базата данни на Dolibarr.
 CreateDatabase=Създаване на база данни
-CreateUser=Създаване на собственик
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Сървър на базата данни - Достъп супер потребител
 CheckToCreateDatabase=Отметнете ако базата данни не съществува и трябва да бъде създадена. <br> В този случай, трябва да попълните потребителско име/парола за профил на суперпотребител в долната част на тази страница.
-CheckToCreateUser=Отметнете ако собственика на базата данни не съществува и трябва да бъде създаден. <br> В този случай, трябва да изберете потребителско име и парола за него и да попълните име/парола за профил на суперпотребител в долната част на тази страница. Ако това поле не е отметнато, собственика на базата данни и неговите пароли трябва да съществуват.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Идентифицирането на потребителя му позволява да създава нови бази данни или нови потребители, задължително ако вашата база данни или нейния собственик вече не съществуват.
 KeepEmptyIfNoPassword=Оставете празно, ако потребителят няма парола (избягвайте това)
 SaveConfigurationFile=Регистрация на конфигурационния файл
diff --git a/htdocs/langs/bg_BG/main.lang b/htdocs/langs/bg_BG/main.lang
index 936912cb884..c491735a2e0 100644
--- a/htdocs/langs/bg_BG/main.lang
+++ b/htdocs/langs/bg_BG/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=Файлът е качен успешно
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=Файлът е избран за прикачване, но все още не е качен. Кликнете върху &quot;Прикачи файл&quot;.
 NbOfEntries=Брой записи
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Параметър
 Parameters=Параметри
 Value=Стойност
 PersonalValue=Лична стойност
+NewObject=New %s
 NewValue=Нова стойност
 CurrentValue=Текуща стойност
 Code=Код
@@ -441,6 +443,7 @@ Reporting=Справка
 Reportings=Справки
 Draft=Чернова
 Drafts=Чернови
+StatusInterInvoiced=
 Validated=Валидиран
 Opened=Отворено
 New=Нов
@@ -727,6 +730,7 @@ SetBankAccount=Дефинирай банкова сметка
 AccountCurrency=Валута на сметката
 ViewPrivateNote=Биж бележки
 XMoreLines=%s ред(а) скрити
+ShowMoreLines=Show more lines
 PublicUrl=Публичен URL
 AddBox=Добави поле
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Отидете на Начало - Настройки - Фирма/Организация, за да промените логото или отидете на Начало - Настройки- Екран, за да го скриете.
 Deny=Забрани
 Denied=Забранено
+ListOf=List of %s
 ListOfTemplates=Списък с шаблони
 Gender=Пол
 Genderman=Мъж
diff --git a/htdocs/langs/bg_BG/modulebuilder.lang b/htdocs/langs/bg_BG/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/bg_BG/modulebuilder.lang
+++ b/htdocs/langs/bg_BG/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/bg_BG/orders.lang b/htdocs/langs/bg_BG/orders.lang
index 6e3913540de..4be312db766 100644
--- a/htdocs/langs/bg_BG/orders.lang
+++ b/htdocs/langs/bg_BG/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Секция за поръчки към доставчици
 OrderCard=Карта за поръчка
 OrderId=Поръчка Id
 Order=Поръчка
+PdfOrderTitle=Поръчка
 Orders=Поръчки
 OrderLine=Ред за поръчка
 OrderDate=Дата на поръчка
diff --git a/htdocs/langs/bg_BG/other.lang b/htdocs/langs/bg_BG/other.lang
index 48253542cba..777b9b05890 100644
--- a/htdocs/langs/bg_BG/other.lang
+++ b/htdocs/langs/bg_BG/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/bg_BG/propal.lang b/htdocs/langs/bg_BG/propal.lang
index b69167cc24d..930ba3db4ea 100644
--- a/htdocs/langs/bg_BG/propal.lang
+++ b/htdocs/langs/bg_BG/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Проектът на търговски предложения
 ProposalsOpened=Отваряне на търговски предложения
 Prop=Търговски предложения
 CommercialProposal=Търговско предложение
+PdfCommercialProposalTitle=Търговско предложение
 ProposalCard=Предложение карта
 NewProp=Нов търговски предложение
 NewPropal=Ново предложение
diff --git a/htdocs/langs/bg_BG/salaries.lang b/htdocs/langs/bg_BG/salaries.lang
index 8685a8aed71..7bb5fc9858e 100644
--- a/htdocs/langs/bg_BG/salaries.lang
+++ b/htdocs/langs/bg_BG/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Заплата
 Salaries=Заплати
diff --git a/htdocs/langs/bg_BG/website.lang b/htdocs/langs/bg_BG/website.lang
index 12f66a3cee3..4cda94f5d7f 100644
--- a/htdocs/langs/bg_BG/website.lang
+++ b/htdocs/langs/bg_BG/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/bg_BG/workflow.lang b/htdocs/langs/bg_BG/workflow.lang
index 0f38c670ab5..0a657406164 100644
--- a/htdocs/langs/bg_BG/workflow.lang
+++ b/htdocs/langs/bg_BG/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Настройки на модул Workflow
 WorkflowDesc=Този модул е проектиран да редактира поведението на автоматичните действия в приложението. По подразбиране, работния процес е отворен (можете да правите неща в реда, в който желаете). Можете да активирате автоматичните действия, които ви интересуват.
 ThereIsNoWorkflowToModify=Няма налични промени на работния процес с активираните модули.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Автоматично създаване на клиентска поръчка след като търговското предложение е подписано
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Автоматично създаване на клиентска фактура след като търговското предложение е подписано
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Автоматично създаване на клиентска фактура след като договора е валидиран
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Автоматично създаване на клиентска фактура след като клиентската поръчка е затворена
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Класифицира свързан източник на предложение за Плоскоклюн при поръчка на клиента на платен
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/bn_BD/accountancy.lang b/htdocs/langs/bn_BD/accountancy.lang
index d239f259a94..a7176d2e55f 100644
--- a/htdocs/langs/bn_BD/accountancy.lang
+++ b/htdocs/langs/bn_BD/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Code
 Nature=Nature
 AccountingJournalType1=Various operation
 AccountingJournalType2=Sales
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exports
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model of export
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/bn_BD/admin.lang b/htdocs/langs/bn_BD/admin.lang
index a443d04f35d..8dba7af0e0b 100644
--- a/htdocs/langs/bn_BD/admin.lang
+++ b/htdocs/langs/bn_BD/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=System tools area
 SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for.
 Purge=Purge
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory <b>%s</b>. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted.
 PurgeRunNow=Purge now
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> files or directories deleted.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Purge all security events
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Generate backup
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr current version
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Mantis integration
-Module1400Name=Accounting
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Module to offer an online payment page by credit card with Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Read discounts
 Permission402=Create/modify discounts
 Permission403=Validate discounts
 Permission404=Delete discounts
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
-PreviousDumpFiles=Available database backup dump files
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=First day of week
 RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user <b>%s</b> or you must add -W option at end of command line to provide <b>%s</b> password.
diff --git a/htdocs/langs/bn_BD/banks.lang b/htdocs/langs/bn_BD/banks.lang
index 191d30e1585..cd650c5958f 100644
--- a/htdocs/langs/bn_BD/banks.lang
+++ b/htdocs/langs/bn_BD/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/bn_BD/bills.lang b/htdocs/langs/bn_BD/bills.lang
index 5fb3b6169da..f80eaf6dd85 100644
--- a/htdocs/langs/bn_BD/bills.lang
+++ b/htdocs/langs/bn_BD/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Invoice card
 PredefinedInvoices=Predefined Invoices
 Invoice=Invoice
+PdfInvoiceTitle=Invoice
 Invoices=Invoices
 InvoiceLine=Invoice line
 InvoiceCustomer=Customer invoice
diff --git a/htdocs/langs/bn_BD/compta.lang b/htdocs/langs/bn_BD/compta.lang
index 94a3bd671ef..f8b5b683cb8 100644
--- a/htdocs/langs/bn_BD/compta.lang
+++ b/htdocs/langs/bn_BD/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/bn_BD/errors.lang b/htdocs/langs/bn_BD/errors.lang
index feada2d1b5a..853a34b4bb4 100644
--- a/htdocs/langs/bn_BD/errors.lang
+++ b/htdocs/langs/bn_BD/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/bn_BD/install.lang b/htdocs/langs/bn_BD/install.lang
index a3533a31277..5b6ba06e78a 100644
--- a/htdocs/langs/bn_BD/install.lang
+++ b/htdocs/langs/bn_BD/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner.
 PasswordAgain=Retype password a second time
 AdminPassword=Password for Dolibarr database owner.
 CreateDatabase=Create database
-CreateUser=Create owner
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Database server - Superuser access
 CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
-CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
 KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
 SaveConfigurationFile=Save values
diff --git a/htdocs/langs/bn_BD/main.lang b/htdocs/langs/bn_BD/main.lang
index 31a9ef8f2af..1e17ca6c744 100644
--- a/htdocs/langs/bn_BD/main.lang
+++ b/htdocs/langs/bn_BD/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=The file was successfully uploaded
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
 NbOfEntries=Nb of entries
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parameter
 Parameters=Parameters
 Value=Value
 PersonalValue=Personal value
+NewObject=New %s
 NewValue=New value
 CurrentValue=Current value
 Code=Code
@@ -441,6 +443,7 @@ Reporting=Reporting
 Reportings=Reporting
 Draft=Draft
 Drafts=Drafts
+StatusInterInvoiced=
 Validated=Validated
 Opened=Opened
 New=New
@@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account
 AccountCurrency=Account Currency
 ViewPrivateNote=View notes
 XMoreLines=%s line(s) hidden
+ShowMoreLines=Show more lines
 PublicUrl=Public URL
 AddBox=Add box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gender
 Genderman=Man
diff --git a/htdocs/langs/bn_BD/modulebuilder.lang b/htdocs/langs/bn_BD/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/bn_BD/modulebuilder.lang
+++ b/htdocs/langs/bn_BD/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/bn_BD/orders.lang b/htdocs/langs/bn_BD/orders.lang
index 331e3b49d3e..0c59b4f4ada 100644
--- a/htdocs/langs/bn_BD/orders.lang
+++ b/htdocs/langs/bn_BD/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area
 OrderCard=Order card
 OrderId=Order Id
 Order=Order
+PdfOrderTitle=Order
 Orders=Orders
 OrderLine=Order line
 OrderDate=Order date
diff --git a/htdocs/langs/bn_BD/other.lang b/htdocs/langs/bn_BD/other.lang
index e15d490c0f2..e519f7af405 100644
--- a/htdocs/langs/bn_BD/other.lang
+++ b/htdocs/langs/bn_BD/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/bn_BD/propal.lang b/htdocs/langs/bn_BD/propal.lang
index e1df85f8775..85fdfe5a174 100644
--- a/htdocs/langs/bn_BD/propal.lang
+++ b/htdocs/langs/bn_BD/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals
 ProposalsOpened=Open commercial proposals
 Prop=Commercial proposals
 CommercialProposal=Commercial proposal
+PdfCommercialProposalTitle=Commercial proposal
 ProposalCard=Proposal card
 NewProp=New commercial proposal
 NewPropal=New proposal
diff --git a/htdocs/langs/bn_BD/salaries.lang b/htdocs/langs/bn_BD/salaries.lang
index 522bf0a65d7..7e0c80d3380 100644
--- a/htdocs/langs/bn_BD/salaries.lang
+++ b/htdocs/langs/bn_BD/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Salary
 Salaries=Salaries
diff --git a/htdocs/langs/bn_BD/website.lang b/htdocs/langs/bn_BD/website.lang
index b3b05ee6cc9..98577e0de5e 100644
--- a/htdocs/langs/bn_BD/website.lang
+++ b/htdocs/langs/bn_BD/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/bn_BD/workflow.lang b/htdocs/langs/bn_BD/workflow.lang
index 54246856e9b..8021fb9b198 100644
--- a/htdocs/langs/bn_BD/workflow.lang
+++ b/htdocs/langs/bn_BD/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Workflow module setup
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/bs_BA/accountancy.lang b/htdocs/langs/bs_BA/accountancy.lang
index 530cd0e073b..7183c252e90 100644
--- a/htdocs/langs/bs_BA/accountancy.lang
+++ b/htdocs/langs/bs_BA/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Ukupno nabavke od dobavljača prije poreza
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Kod
 Nature=Nature
 AccountingJournalType1=Various operation
 AccountingJournalType2=Sales
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Izvozi
-Export=Izvoz
 ExportDraftJournal=Export draft journal
 Modelcsv=Model izvoza
 OptionsDeactivatedForThisExportModel=Za ovaj model izvoza, opcije su onemogućene
diff --git a/htdocs/langs/bs_BA/admin.lang b/htdocs/langs/bs_BA/admin.lang
index 1c4673e173f..77202bd8fe6 100644
--- a/htdocs/langs/bs_BA/admin.lang
+++ b/htdocs/langs/bs_BA/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Područje sistemskih alata
 SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for.
 Purge=Purge
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Izbrišite sve fajlove u datoteci <b>%s</b>. Privremeni fajlovi, ali i dump backup-a baze podataka, fajlova vezanih za elemenata (trećim strankama, fakturama, ...) i dodani u ECM modul, će biti izbrisani.
 PurgeRunNow=Purge now
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> files or directories deleted.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Purge all security events
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Generate backup
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr current version
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Mantis integration
-Module1400Name=Računovodstvo
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Module to offer an online payment page by credit card with Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Read discounts
 Permission402=Create/modify discounts
 Permission403=Validate discounts
 Permission404=Delete discounts
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
-PreviousDumpFiles=Available database backup dump files
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=First day of week
 RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user <b>%s</b> or you must add -W option at end of command line to provide <b>%s</b> password.
diff --git a/htdocs/langs/bs_BA/banks.lang b/htdocs/langs/bs_BA/banks.lang
index bb23b2539ef..d1ec865143d 100644
--- a/htdocs/langs/bs_BA/banks.lang
+++ b/htdocs/langs/bs_BA/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Ček vraćen i fakture ponovno otvorene
 BankAccountModelModule=Šabloni dokumenata za bankovne račune
 DocumentModelSepaMandate=Šablon za SEPA mandat. Koristan je samo za evropske zemlje članice EU.
 DocumentModelBan=Šablon za štampanje stranice sa BAN podacima.
-NewVariousPayment=Novo ostalo plaćanje
-VariousPayment=Razno plaćanje
-VariousPayments=Razna plaćanja
-ShowVariousPayment=Pokaži ostala plaćanja
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/bs_BA/bills.lang b/htdocs/langs/bs_BA/bills.lang
index 2f4576863bf..d94f3a8e060 100644
--- a/htdocs/langs/bs_BA/bills.lang
+++ b/htdocs/langs/bs_BA/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=je bila izvor jedne ili više knjižnih obavijesti
 CardBill=Kartica fakture
 PredefinedInvoices=Predefinisane fakture
 Invoice=Faktura
+PdfInvoiceTitle=Faktura
 Invoices=Fakture
 InvoiceLine=Tekst fakture
 InvoiceCustomer=Faktura kupca
diff --git a/htdocs/langs/bs_BA/compta.lang b/htdocs/langs/bs_BA/compta.lang
index db2ed3d9ec4..703171ae080 100644
--- a/htdocs/langs/bs_BA/compta.lang
+++ b/htdocs/langs/bs_BA/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/bs_BA/errors.lang b/htdocs/langs/bs_BA/errors.lang
index f9603e851d0..841ad5ab420 100644
--- a/htdocs/langs/bs_BA/errors.lang
+++ b/htdocs/langs/bs_BA/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/bs_BA/install.lang b/htdocs/langs/bs_BA/install.lang
index 48fec99a553..8693950c938 100644
--- a/htdocs/langs/bs_BA/install.lang
+++ b/htdocs/langs/bs_BA/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner.
 PasswordAgain=Retype password a second time
 AdminPassword=Password for Dolibarr database owner.
 CreateDatabase=Create database
-CreateUser=Create owner
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Database server - Superuser access
 CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
-CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
 KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
 SaveConfigurationFile=Save values
diff --git a/htdocs/langs/bs_BA/main.lang b/htdocs/langs/bs_BA/main.lang
index 253e7b82ca9..ac62d6972a2 100644
--- a/htdocs/langs/bs_BA/main.lang
+++ b/htdocs/langs/bs_BA/main.lang
@@ -75,7 +75,8 @@ FileRenamed=Datoteka je uspješno preimenovana
 FileGenerated=Datoteka je uspješno generirana
 FileSaved=The file was successfully saved
 FileUploaded=Datoteka je uspješno postavljena
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=Datoteka je odabrana za prilog ali nije još postavljena. Kliknite na "Dodaj datoteku" da bi ste to uradili.
 NbOfEntries=Broj unosa
 GoToWikiHelpPage=Pročitajte online pomoć (neophodan pristup internetu)
@@ -196,6 +197,7 @@ Parameter=Parametar
 Parameters=Parametri
 Value=Vrijednost
 PersonalValue=Lična vrijednost
+NewObject=New %s
 NewValue=Nova vrijednost
 CurrentValue=Trenutna vrijednost
 Code=Kod
@@ -441,6 +443,7 @@ Reporting=Izvještavanje
 Reportings=Izvještavanja
 Draft=Nacrt
 Drafts=Uzorak
+StatusInterInvoiced=
 Validated=Potvrđeno
 Opened=Otvori
 New=Novo
@@ -727,6 +730,7 @@ SetBankAccount=Definiraj bankovni račun
 AccountCurrency=Valuta računa
 ViewPrivateNote=Vidi zabilješke
 XMoreLines=%s red(ova) skriveno
+ShowMoreLines=Show more lines
 PublicUrl=Javni URL
 AddBox=Dodaj kutijicu
 SelectElementAndClick=Odaberite element i kliknite %s
@@ -735,6 +739,7 @@ ShowTransaction=Pokaži unos u bankovni račun
 GoIntoSetupToChangeLogo=Idite u  Početna - Postavke - Kompanija za promjenu logotipa ili Početna - Postavke - Prikaz za sakrivanje.
 Deny=Zabrani
 Denied=Zabranjeno
+ListOf=List of %s
 ListOfTemplates=Spisak šablona
 Gender=Spol
 Genderman=Muškarac
diff --git a/htdocs/langs/bs_BA/modulebuilder.lang b/htdocs/langs/bs_BA/modulebuilder.lang
index 4cae99aea55..aabf528b29d 100644
--- a/htdocs/langs/bs_BA/modulebuilder.lang
+++ b/htdocs/langs/bs_BA/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=Ova kartica za određena za definiranje stavki menija koje daje vaš modul.
 ModuleBuilderDescpermissions=Ova kartica je određena za definiranje novih dozvola koje želite dati s vašim modulom.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/bs_BA/multicurrency.lang b/htdocs/langs/bs_BA/multicurrency.lang
index de75ec8b646..162c473a145 100644
--- a/htdocs/langs/bs_BA/multicurrency.lang
+++ b/htdocs/langs/bs_BA/multicurrency.lang
@@ -4,7 +4,8 @@ ErrorAddRateFail=Error in added rate
 ErrorAddCurrencyFail=Error in added currency
 ErrorDeleteCurrencyFail=Error delete fail
 multicurrency_syncronize_error=Synchronisation error: %s
-multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate)
+MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate
+multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate)
 CurrencyLayerAccount=CurrencyLayer API
 CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality<br />Get your <b>API key</b><br />If you use a free account you can't change the <b>currency source</b> (USD by default)<br />But if your main currency isn't USD you can use the <b>alternate currency source</b> to force you main currency<br /><br />You are limited at 1000 synchronizations per month
 multicurrency_appId=API key
diff --git a/htdocs/langs/bs_BA/orders.lang b/htdocs/langs/bs_BA/orders.lang
index 477e9210b67..c919801faa8 100644
--- a/htdocs/langs/bs_BA/orders.lang
+++ b/htdocs/langs/bs_BA/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area
 OrderCard=Order card
 OrderId=Order Id
 Order=Narudžba
+PdfOrderTitle=Narudžba
 Orders=Narudžbe
 OrderLine=Order line
 OrderDate=Datum narudžbe
diff --git a/htdocs/langs/bs_BA/other.lang b/htdocs/langs/bs_BA/other.lang
index 0f2d133132d..e0b43fdaf77 100644
--- a/htdocs/langs/bs_BA/other.lang
+++ b/htdocs/langs/bs_BA/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/bs_BA/propal.lang b/htdocs/langs/bs_BA/propal.lang
index d932ada9211..4e76231b123 100644
--- a/htdocs/langs/bs_BA/propal.lang
+++ b/htdocs/langs/bs_BA/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Nacrti poslovnih prijedloga
 ProposalsOpened=Open commercial proposals
 Prop=Poslovni prijedlozi
 CommercialProposal=Poslovni prijedlog
+PdfCommercialProposalTitle=Poslovni prijedlog
 ProposalCard=Kartica prijedloga
 NewProp=Novi poslovni prijedlozi
 NewPropal=Novi prijedlog
diff --git a/htdocs/langs/bs_BA/salaries.lang b/htdocs/langs/bs_BA/salaries.lang
index 522bf0a65d7..7e0c80d3380 100644
--- a/htdocs/langs/bs_BA/salaries.lang
+++ b/htdocs/langs/bs_BA/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Salary
 Salaries=Salaries
diff --git a/htdocs/langs/bs_BA/website.lang b/htdocs/langs/bs_BA/website.lang
index c438cb78f6f..eda58a168a6 100644
--- a/htdocs/langs/bs_BA/website.lang
+++ b/htdocs/langs/bs_BA/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/bs_BA/workflow.lang b/htdocs/langs/bs_BA/workflow.lang
index 2645cfccfff..d7b6ae54114 100644
--- a/htdocs/langs/bs_BA/workflow.lang
+++ b/htdocs/langs/bs_BA/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Postavke workflow modula
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Označiti povezani izvorni prijedlog kao naplaćen odmah nakon plaćanja narudžbe za kupca
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Označiti povezanu izvornu narudžbu(e) kao plaćene kada je faktura za kupca postavljena kao plaćena.
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Označiti povezanu izvornu narudžbu(e) kao plaćene kada je faktura za kupca postavljena kao potvrđena.
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/ca_ES/accountancy.lang b/htdocs/langs/ca_ES/accountancy.lang
index ca34ed5443d..20fdb77c2c3 100644
--- a/htdocs/langs/ca_ES/accountancy.lang
+++ b/htdocs/langs/ca_ES/accountancy.lang
@@ -27,8 +27,15 @@ OverviewOfAmountOfLinesNotBound=Visió general de quantitat de línies no compta
 OverviewOfAmountOfLinesBound=Visió general de quantitat de línies ja comptabilitzades al compte comptable
 OtherInfo=Altra informació
 DeleteCptCategory=Remove accounting account from group
-ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+ConfirmDeleteCptCategory=Estàs segur que vols eliminar aquest compte comptable del grup de comptabilitat?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Àrea de comptabilitat
 AccountancyAreaDescIntro=L'ús del mòdul de comptabilitat es realitza en diverses etapes:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=PAS %s: Definir els comptes comptables per a cada banc i compte financer. Per a això, aneu a la fitxa de cada compte financer. Vostè pot comnçar a la pàgina %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -79,11 +86,11 @@ SuppliersVentilation=Comptabilització de factura de proveïdor
 ExpenseReportsVentilation=Comptabilització d'informes de despeses
 CreateMvts=Crea una nova transacció
 UpdateMvts=Modificació d'una transacció
-ValidTransaction=Validate transaction
+ValidTransaction=Valida la transacció
 WriteBookKeeping=Journalize transactions in Ledger
-Bookkeeping=Ledger
+Bookkeeping=Llibre major
 AccountBalance=Compte saldo
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Informe de despeses totals
 InvoiceLines=Línies de factura a comptabilitzar
@@ -103,7 +110,7 @@ LineOfExpenseReport=Línia d'informe de despeses
 NoAccountSelected=Compte comptable no seleccionat
 VentilatedinAccount=Vinculat amb èxit al compte comptable
 NotVentilatedinAccount=No vinculat al compte comptable
-XLineSuccessfullyBinded=%s de productes/serveis comptabilitzats correctament a un compte comptable
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s de productes/serveis no comptabilitzats en cap compte comptable
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Nombre d'elements a vincular mostrats per pàgina (màxim recomanat: 50)
@@ -145,16 +152,16 @@ AccountingCategory=Grups comptes contables
 GroupByAccountAccounting=Agrupar per compte comptable
 ByAccounts=By accounts
 NotMatch=No definit
-DeleteMvt=Delete Ledger lines
+DeleteMvt=Elimina línies del llibre major
 DelYear=Any a eliminar
 DelJournal=Diari per esborrar
 ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required.
-ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger
-DelBookKeeping=Delete record of the Ledger
+ConfirmDeleteMvtPartial=Això eliminarà la línia o línies seleccionades del llibre major 
+DelBookKeeping=Elimina el registre del libre major
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Informe-diari de despeses
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Comptes comptables de IVA sense definir
 ThirdpartyAccountNotDefined=Comptes comptables de tercers (clients o proveïdors) sense definir
 ProductAccountNotDefined=Comptes comptables per al producte sense definir
@@ -166,13 +173,15 @@ NewAccountingMvt=Nova transacció
 NumMvts=Número de transacció
 ListeMvts=Llista de moviments
 ErrorDebitCredit=El dèbit i el crèdit no poden tenir valors alhora
-AddCompteFromBK=Add accounting accounts to the group
+AddCompteFromBK=Afegeix comptes comptables al grup
 ReportThirdParty=Llista el compte del tercer
 DescThirdPartyReport=Consulti aquí la llista de tercers (cliente i proveïdors) i els seus corresponents comptes  comptables
 ListAccounts=Llistat dels comptes comptables
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Classe de compte
-Pcgsubtype=Subclass of account
+Pcgsubtype=Subclasse de compte
 
 TotalVente=Total turnover before tax
 TotalMarge=Marge total de vendes
@@ -194,11 +203,11 @@ ValidateHistory=Comptabilitza automàticament
 AutomaticBindingDone=Comptabilització automàtica realitzada
 
 ErrorAccountancyCodeIsAlreadyUse=Error, no pots eliminar aquest compte comptable perquè està en ús
-MvtNotCorrectlyBalanced=Moviment no balancejat correctament. Crèdit = %s. Dèbit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Fitxa de comptabilització
-GeneralLedgerIsWritten=Transactions are written in the Ledger
+GeneralLedgerIsWritten=Les transaccions s'han escrit al llibre major
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
-NoNewRecordSaved=No new record dispatched
+NoNewRecordSaved=No s'ha enviat cap nou registre
 ListOfProductsWithoutAccountingAccount=Llista de productes no comptabilitzats en cap compte comptable
 ChangeBinding=Canvia la comptabilització
 
@@ -206,11 +215,10 @@ ChangeBinding=Canvia la comptabilització
 ApplyMassCategories=Aplica categories massives
 AddAccountFromBookKeepingWithNoCategories=Afegir compte ja utilitzada sense categories
 CategoryDeleted=La categoria per al compte contable ha sigut eliminada
-AccountingJournals=Accounting journals
+AccountingJournals=Diari de comptabilitat
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Codi
 Nature=Caràcter
 AccountingJournalType1=Various operation
 AccountingJournalType2=Vendes
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exportacions
-Export=Exporta
 ExportDraftJournal=Export draft journal
 Modelcsv=Model d'exportació
 OptionsDeactivatedForThisExportModel=Per aquest model d'exportació les opcions estan desactivades
diff --git a/htdocs/langs/ca_ES/admin.lang b/htdocs/langs/ca_ES/admin.lang
index 47ede739dae..7bd9791b9c0 100644
--- a/htdocs/langs/ca_ES/admin.lang
+++ b/htdocs/langs/ca_ES/admin.lang
@@ -48,7 +48,7 @@ InternalUsers=Usuaris interns
 ExternalUsers=Usuaris externs
 GUISetup=Entorn
 SetupArea=Àrea configuració
-UploadNewTemplate=Upload new template(s)
+UploadNewTemplate=Carrega nova plantilla(s)
 FormToTestFileUploadForm=Formulari de prova de càrrega de fitxer (segons opcions escollides)
 IfModuleEnabled=Nota: sí només és eficaç si el mòdul <b>%s</b> està activat
 RemoveLock=Esborreu el fitxer <b>%s</b>, si existeix, per permetre la utilitat d'actualització.
@@ -104,7 +104,7 @@ MenuIdParent=Id del menú pare
 DetailMenuIdParent=IDr del menú pare (buit per a un menú superior)
 DetailPosition=Número d'ordre per a la posició del menú
 AllMenus=Tots
-NotConfigured=Module/Application not configured
+NotConfigured=Mòdul/Aplicació no configurat
 Active=Actiu
 SetupShort=Configuració
 OtherOptions=Altres opcions
@@ -123,8 +123,8 @@ PHPTZ=Zona horària Servidor PHP
 DaylingSavingTime=Horari d'estiu (usuari)
 CurrentHour=Hora PHP (servidor)
 CurrentSessionTimeOut=Timeout sessió actual
-YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
-HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
+YouCanEditPHPTZ=Per establir una zona horària PHP diferent (no és necessari), pots intentar afegir un fitxer .htaccess amb una línia com aquesta "SetEnv TZ Europe/Paris"
+HoursOnThisPageAreOnServerTZ=Avís, al contrari d'altres pantalles, les hores d'aquesta pàgina no són a la vostra zona horària local, sinó a la zona horària del servidor.
 Box=Panell
 Boxes=Panells
 MaxNbOfLinesForBoxes=Màxim número de línies per panell
@@ -140,13 +140,14 @@ SystemToolsArea=Àrea utilitats del sistema
 SystemToolsAreaDesc=Aquesta àrea ofereix diverses funcions d'administració. Utilitzeu el menú per triar la funcionalitat cercada.
 Purge=Purga
 PurgeAreaDesc=Aquesta pàgina permet eliminar tots els fitxers generats o guardats per Dolibarr (fitxers temporals o tots els fitxers de la carpeta <b>%s</b>). L'ús d'aquesta funció no és necessària. Es dóna per als usuaris que alberguen Dolibarr en un servidor que no ofereix els permisos d'eliminació de fitxers generats pel servidor web.
-PurgeDeleteLogFile=Eliminar arxiu de registre <b>%s</b> definit al mòdul Syslog (no hi ha risc de perdre dades)
+PurgeDeleteLogFile=Suprimeix els fitxers de registre, incloent <b>%s</b> definit per al mòdul Syslog (sense risc de perdre dades)
 PurgeDeleteTemporaryFiles=Elimina tots els fitxers temporals (sense risc de perdre dades)
 PurgeDeleteTemporaryFilesShort=Elimina els fitxers temporals
 PurgeDeleteAllFilesInDocumentsDir=Eliminar tots els fitxers de la carpeta <b>%s</b>. Arxius temporals i arxius adjunts a elements (tercers, factures, etc.) Seran eliminats.
 PurgeRunNow=Purgar
 PurgeNothingToDelete=No hi ha carpeta o fitxers per esborrar.
 PurgeNDirectoriesDeleted=<b>%s</b> arxius o carpetes eliminats
+PurgeNDirectoriesFailed=No s'han pogut eliminar <b>%s</b> fitxers o directoris.
 PurgeAuditEvents=Purgar els esdeveniments de seguretat
 ConfirmPurgeAuditEvents=Estàs segur que vols purgar tots els esdeveniments de seguretat? S'eliminaran tots els registres de seguretat, cap altra dada serà eliminada.
 GenerateBackup=Generar còpia
@@ -190,7 +191,7 @@ FeatureAvailableOnlyOnStable=Funcionalitat disponible únicament en versions est
 Rights=Permisos
 BoxesDesc=Els panells són components que mostren alguna informació que pots afegir per personalitzar algunes pàgines. Pots triar entre mostrar el panell o no seleccionant la pàgina de destí i fent clic a 'Activa', o fent clic al cubell d'escombraries per desactivar.
 OnlyActiveElementsAreShown=Només els elements de <a href="%s"> mòduls activats</a> són mostrats
-ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
+ModulesDesc=Els mòduls Dolibarr defineixen quina aplicació/característica està habilitada al programari. Algunes aplicacions/mòduls requereixen permisos que has de concedir als usuaris, després d'activar-los. Fes clic al botó d'activació/desactivació per habilitar un mòdul/aplicació.
 ModulesMarketPlaceDesc=Pots trobar més mòduls per descarregar en pàgines web externes per internet...
 ModulesDeployDesc=Si els permisos en el seu sistema d'arxius ho permiteixen, pot utilitzar aquesta ferramente per instal·lar un mòdul extern. El mòdul estarà aleshores visible en la pestanya <strong>%s</strong>
 ModulesMarketPlaces=Busca mòduls externs...
@@ -214,7 +215,7 @@ MainDbPasswordFileConfEncrypted=Encriptar la contrasenya de la base en l'arxiu c
 InstrucToEncodePass=Per tenir la contrasenya encriptada al fitxer <b>conf.php</b> reemplaça la línia<br><b>$dolibarr_main_db_pass="...";</b><br>per<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
 InstrucToClearPass=Per tenir la contrasenya descodificada en el fitxer de configuració <b> conf.php </b>, reemplaça en aquest fitxer la línia <br><b>$dolibarr_main_db_pass="crypted:..."</b><br> per <br><b>$dolibarr_main_db_pass="%s"</b>
 ProtectAndEncryptPdfFiles=Protecció i encriptació dels pdf generats
-ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
+ProtectAndEncryptPdfFilesDesc=La protecció d'un document PDF el manté disponible per llegir i imprimir amb qualsevol navegador PDF. No obstant això, l'edició i la còpia ja no és possible. Tingues en compte que l'ús d'aquesta característica fa que la construcció d'un arxiu PDF fusionat global no funcioni.
 Feature=Funció
 DolibarrLicense=Llicència
 Developpers=Desenvolupadors/col·laboradors
@@ -270,7 +271,7 @@ FeatureNotAvailableOnLinux=Funcionalitat no disponible en sistemes Unix. Proveu
 SubmitTranslation=Si la traducció d'aquest idioma no està completa o trobes errors, pots corregir-ho editant els arxius en el directori<b>langs/%s</b> i enviant els canvis a www.transifex.com/dolibarr-association/dolibarr/
 SubmitTranslationENUS=Si la traducció d'aquest idioma no està completa o trobes errors, pots corregir-ho editant els fitxers en el directori<b>langs/%s</b> i enviant els fitxers modificats al fòrum de www.dolibarr.es o pels desenvolupadors a github.com/Dolibarr/dolibarr.
 ModuleSetup=Configuració del mòdul
-ModulesSetup=Modules/Application setup
+ModulesSetup=Configuració de mòduls/aplicacions
 ModuleFamilyBase=Sistema
 ModuleFamilyCrm=Gestió client (CRM)
 ModuleFamilySrm=Gestió de seguiment de proveïdors (SRM)
@@ -298,13 +299,13 @@ SetupIsReadyForUse=La instal·lació del mòdul ha finalitzat. No obstant, ha d'
 NotExistsDirect=No s'ha definit el directori arrel alternatiu a un directori existent.<br>
 InfDirAlt=Des de la versió 3, és possible definir un directori arrel alternatiu. Això li permet emmagatzemar, en un directori dedicat, plug-ins i plantilles personalitzades.<br>Només ha de crear un directori a l'arrel de Dolibarr (per exemple: custom).<br>
 InfDirExample=<br>Després indiqui-ho al fitxer <strong>conf.php</strong> <br>$dolibarr_main_url_root_alt='http://miservidor/custom'<br>$dolibarr_main_document_root_alt='/ruta/de/Dolibarr/htdocs/custom'<br>Si aquestes línies es troben comentades amb "#", per habilitar-les, només cal descomentar eliminant el caràcter "#".
-YouCanSubmitFile=Per aquest pas, pots enviar el paquet utilitzant aquesta utilitat: Selecciona el fitxer del mòdul
+YouCanSubmitFile=Per a aquest pas, pots enviar el fitxer del paquet aquí:
 CurrentVersion=Versió actual de Dolibarr
 CallUpdatePage=Ves a la pàgina que actualitza l'estructura de base de dades i les dades: %s
 LastStableVersion=Última versió estable
 LastActivationDate=Data de l'última activació
-LastActivationAuthor=Latest activation author
-LastActivationIP=Latest activation IP
+LastActivationAuthor=Últim autor d'activació
+LastActivationIP=Última IP d'activació
 UpdateServerOffline=Actualitzacións del servidor fora de línia
 WithCounter=Gestiona un comptador
 GenericMaskCodes=Podeu introduir qualsevol màscara numèrica. En aquesta màscara, pot utilitzar les següents etiquetes:<br><b>{000000}</b> correspon a un número que s'incrementa en cadascun %s. Introduïu tants zeros com longuitud desitgi mostrar. El comptador es completarà a partir de zeros per l'esquerra per tal de tenir tants zeros com la màscara. <br><b>{000000+000}</b>Igual que l'anterior, amb una compensació corresponent al número a la dreta del signe + s'aplica a partir del primer %s.<br><b>{000000@x}</b>igual que l'anterior, però el comptador es restableix a zero quan s'arriba a x mesos (x entre 1 i 12). Si aquesta opció s'utilitza i x és de 2 o superior, llavors la seqüència {yy}{mm} ó {yyyy}{mm} també és necessària.<br><b>  {dd}  </b> dies (01 a 31).<br><b> {mm}</b> mes (01 a 12).<br><b> {yy} </ b>, <b> {yyyy</ b> ó <b>{y} </b> any en 2, 4 ó 1 xifra.<br>
@@ -375,7 +376,7 @@ Int=Enter
 Float=Decimal
 DateAndTime=Data i hora
 Unique=Unic
-Boolean=Boolean (one checkbox)
+Boolean=Boleà (una casella de verificació)
 ExtrafieldPhone = Telèfon
 ExtrafieldPrice = Preu
 ExtrafieldMail = Correu
@@ -386,9 +387,9 @@ ExtrafieldSeparator=Separador (no és un camp)
 ExtrafieldPassword=Contrasenya
 ExtrafieldRadio=Botons d'opció (només una opció)
 ExtrafieldCheckBox=Caselles de verificació
-ExtrafieldCheckBoxFromList=Checkboxes from table
+ExtrafieldCheckBoxFromList=Caselles de verificació des de taula
 ExtrafieldLink=Enllaç a un objecte
-ComputedFormula=Computed field
+ComputedFormula=Camp calculat
 ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
 ExtrafieldParamHelpselect=El llistat de paràmetres ha de ser key,valor<br><br> per exemple:\\n<br>1,value1<br>2,value2<br>3,value3<br>...<br><br>Per a tindre una llista en funció d'atributs complementaris de llista:\n<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>Per a tindre la llista en funció d'altra:<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
 ExtrafieldParamHelpcheckbox=La llista ha de ser en forma clau, valor<br><br> per exemple : <br>1,text1<br>2,text2<br>3,text3<br>...
@@ -432,18 +433,18 @@ WarningPHPMail=ADVERTÈNCIA: Alguns proveïdors de correu electrònic (com Yahoo
 ClickToShowDescription=Clica per mostrar la descripció
 DependsOn=Aquest mòdul necesita el/s mòdul/s
 RequiredBy=Aquest mòdul és requerit pel/s mòdul/s
-TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
-PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
-PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>
-PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>
-EnableDefaultValues=Enable usage of personalized default values
-EnableOverwriteTranslation=Enable usage of overwrote translation
-GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
-WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
+TheKeyIsTheNameOfHtmlField=Aquest és el nom del camp HTML. Això necessita tenir coneixements tècnics per llegir el contingut de la pàgina HTML per obtenir el nom clau d'un camp.
+PageUrlForDefaultValues=Has d'introduir aquí l'URL relatiu de la pàgina. Si inclous paràmetres a l'URL, els valors predeterminats seran efectius si tots els paràmetres s'estableixen en el mateix valor. Exemples:
+PageUrlForDefaultValuesCreate=<br>Pel formulari de crear un nou tercer, és <strong>%s</strong>
+PageUrlForDefaultValuesList=<br>Per a la pàgina que llista els tercers, és <strong>%s</strong>
+EnableDefaultValues=Permet l'ús de valors predeterminats personalitzats
+EnableOverwriteTranslation=Habilita l'ús de la traducció sobreescrita
+GoIntoTranslationMenuToChangeThis=S'ha trobat una traducció per a la clau amb aquest codi, per tant, per canviar aquest valor, heu d'editar-lo des de  Inici-Configuració-Traducció.
+WarningSettingSortOrder=Avís, establir un ordre de classificació predeterminat pot provocar un error tècnic en passar a la pàgina de la llista si el camp és un camp desconegut. Si experimentes aquest error, torna a aquesta pàgina per eliminar l'ordre de classificació predeterminat i restablir el comportament predeterminat.
 Field=Camp
-ProductDocumentTemplates=Document templates to generate product document
-FreeLegalTextOnExpenseReports=Free legal text on expense reports
-WatermarkOnDraftExpenseReports=Watermark on draft expense reports
+ProductDocumentTemplates=Plantilles de documents per generar document de producte
+FreeLegalTextOnExpenseReports=Text legal lliure en informes de despeses
+WatermarkOnDraftExpenseReports=Marca d'aigua en informes de despeses esborrany
 # Modules
 Module0Name=Usuaris i grups
 Module0Desc=Gestió d'usuaris / empleats i grups
@@ -466,7 +467,7 @@ Module30Desc=Gestió de factures i abonaments de clients. Gestió factures de pr
 Module40Name=Proveïdors
 Module40Desc=Gestió de proveïdors
 Module42Name=Syslog
-Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes.
+Module42Desc=Generació de registres/logs (fitxer, syslog, ...). Aquests registres són per a finalitats tècniques/depuració.
 Module49Name=Editors
 Module49Desc=Gestió d'editors
 Module50Name=Productes
@@ -521,8 +522,8 @@ Module410Name=Webcalendar
 Module410Desc=Interface amb el calendari webcalendar
 Module500Name=Pagaments especials
 Module500Desc=Gestió de despeses especials (impostos varis, dividends)
-Module510Name=Payment of employee wages
-Module510Desc=Record and follow payment of your employee wages
+Module510Name=Pagament de salaris dels empleats
+Module510Desc=Registre i seguiment del pagament dels salaris dels empleats
 Module520Name=Préstec
 Module520Desc=Gestió de préstecs
 Module600Name=Notificacions
@@ -535,8 +536,6 @@ Module1120Name=Pressupost de proveïdor
 Module1120Desc=Sol·licitud pressupost i preus a proveïdor
 Module1200Name=Mantis
 Module1200Desc=Interface amb el sistema de seguiment d'incidències Mantis
-Module1400Name=Comptabilitat experta
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Generar document
 Module1520Desc=Generació de documents de correu massiu
 Module1780Name=Etiquetes
@@ -564,10 +563,10 @@ Module2900Name=GeoIPMaxmind
 Module2900Desc=Capacitats de conversió GeoIP Maxmind
 Module3100Name=Skype
 Module3100Desc=Afegeix un botó d'Skype a les fitxes dels usuaris / tercers / contactes / socis
-Module3200Name=Non Reversible Logs
-Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries.
+Module3200Name=Registres no reversibles
+Module3200Desc=Activa el registre d'alguns esdeveniments de negoci en un registre no reversible. Els esdeveniments s'arxiven en temps real. El registre és una taula d'esdeveniments encadenats que es pot llegir i exportar. Aquest mòdul pot ser obligatori per a alguns països.
 Module4000Name=RRHH
-Module4000Desc=Human resources management (mangement of department, employee contracts and feelings)
+Module4000Desc=Gestió de recursos humans (gestió del departament, contractes d'empleats i sentiments)
 Module5000Name=Multi-empresa
 Module5000Desc=Permet gestionar diverses empreses
 Module6000Name=Workflow
@@ -585,7 +584,7 @@ Module50100Desc=Mòdul Terminal Punt Venda (TPV)
 Module50200Name=Paypal
 Module50200Desc=Mòdul per a proporcionar un pagament en línia amb targeta de crèdit mitjançant Paypal
 Module50400Name=Comptabilitat (avançat)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Gestió comptable (entrades dobles, suport a llibres major i auxiliar)
 Module54000Name=PrintIPP
 Module54000Desc=L'impressió directa (sense obrir els documents) utilitza l'interfície Cups IPP (L'impressora té que ser visible pel servidor i CUPS té que estar instal·lat en el servidor)
 Module55000Name=Enquesta o votació
@@ -615,7 +614,7 @@ Permission32=Crear/modificar productes
 Permission34=Elimina productes
 Permission36=Veure/gestionar els productes ocults
 Permission38=Exportar productes
-Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
+Permission41=Consulta projectes i tasques (els projectes compartits i els projectes en que sóc el contacte). També pots introduir els temps consumits, per a mi o la meva jerarquia, en tasques asignades (full de temps)
 Permission42=Crea/modifica projectes (projectes compartits i projectes dels que sóc contacte). També pot crear tasques i assignar usuaris a projectes i tasques
 Permission44=Elimina projectes (projectes compartits i projectes dels que en sóc contacte)
 Permission45=Exporta projectes
@@ -751,8 +750,10 @@ Permission401=Consultar havers
 Permission402=Crear/modificar havers
 Permission403=Validar havers
 Permission404=Eliminar havers
-Permission510=Consultar salaris
-Permission512=Crear/modificar salaris
+Permission501=Consulta els contractes/salaris dels empleats
+Permission502=Crea/modifica els contractes/salaris dels empleats
+Permission511=Consulta el pagament dels salaris
+Permission512=Crea/modifica el pagament dels salaris
 Permission514=Elimina salaris
 Permission517=Exportació salaris
 Permission520=Consulta préstecs
@@ -868,7 +869,7 @@ DictionaryOrderMethods=Mètodes de comanda
 DictionarySource=Orígens de pressupostos/comandes
 DictionaryAccountancyCategory=Grups comptes contables
 DictionaryAccountancysystem=Models de plans comptables
-DictionaryAccountancyJournal=Accounting journals
+DictionaryAccountancyJournal=Diari de comptabilitat
 DictionaryEMailTemplates=Models d'emails
 DictionaryUnits=Unitats
 DictionaryProspectStatus=Estat del client potencial
@@ -997,7 +998,7 @@ Delays_MAIN_DELAY_MEMBERS=Tolerància de retard abans de l'alerta (en dies) sobr
 Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerància de retard abans de l'alerta (en dies) sobre xecs a ingressar
 Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerància de retard (en dies) abans d'alertar d'informes de despeses pendents d'aprovar
 SetupDescription1=L'àrea de configuració són pels paràmetres de configuració inicials abans de començar a utilitzar Dolibarr.
-SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page :
+SetupDescription2=Els dos passos de configuració obligatoris són els dos primers en el menú d'instal·lació de l'esquerra: %s pàgina de configuració i %s pàgina de configuració:
 SetupDescription3=Parameters in menu <a href="%s">%s -> %s</a> are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example).
 SetupDescription4=Parameters in menu <a href="%s">%s -> %s</a> are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate.
 SetupDescription5=Les altres entrades de configuració gestionen paràmetres opcionals.
@@ -1015,7 +1016,7 @@ BrowserOS=S.O. del navegador
 ListOfSecurityEvents=Llistat d'esdeveniments de seguretat Dolibarr
 SecurityEventsPurged=Esdeveniments de seguretat purgats
 LogEventDesc=Podeu habilitar el registre d'esdeveniments de seguretat Dolibarr aquí. Els administradors poden veure el seu contingut a través de menú <b>Eines del sistema->Auditoria</b>. Atenció, aquesta característica pot consumir una gran quantitat de dades a la base de dades.
-AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
+AreaForAdminOnly=Els paràmetres de configuració només poden ser establerts per <b>usuaris administradors</b>.
 SystemInfoDesc=La informació del sistema és informació tècnica accessible només en només lectura als administradors.
 SystemAreaForAdminOnly=Aquesta àrea només és accessible als usuaris de tipus administradors. Cap permís Dolibarr permet estendre el cercle de usuaris autoritzats a aquesta áera.
 CompanyFundationDesc=Edita en aquesta pàgina tota la informació coneguda sobre l'empresa o entitat a administrar (Fes clic al botó "Modificar" o "Desar" a peu de pàgina)
@@ -1057,7 +1058,7 @@ RestoreDesc2=Agafar l'arxiu (arxiu zip, per exemple) del directori dels document
 RestoreDesc3=Restaurar l'arxiu del bolcat guardat a la base de dades de la nova instal·lació de Dolibarr o d'aquesta instal·lació (<b>%s</b>). Atenció, una vegada realitzada la restauració, tindra d'utilitzar un login/contrasenya d'administrador existent en el moment de la copia de seguretat per connectar-se. Per restaurar la base de dades de l'instal·lació actual, pot utilitzar l'assistent a continuació.
 RestoreMySQL=Importació MySQL
 ForcedToByAModule= Aquesta regla està forçada a <b>%s</b> per un dels mòduls activats
-PreviousDumpFiles=Arxius de còpia de seguretat de la base de dades disponibles
+PreviousDumpFiles=Fitxers de còpia de seguretat de bases de dades generades
 WeekStartOnDay=Primer dia de la setmana
 RunningUpdateProcessMayBeRequired=Sembla necessari realitzar el procés d'actualizació (la versió del programa %s difereix de la versió de la base de dades %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=Ha d'executar la comanda des d'un shell després d'haver iniciat sessió amb el compte <b>%s</b>.
@@ -1107,8 +1108,8 @@ CurrentTranslationString=Cadena de traducció actual
 WarningAtLeastKeyOrTranslationRequired=Es necessita un criteri de cerca com a mínim per cadena o clau de traducció
 NewTranslationStringToShow=Nova cadena de traducció a mostrar
 OriginalValueWas=La traducció original s'ha sobreescrit. El valor original era: <br><br>%s
-TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
-TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
+TransKeyWithoutOriginalValue=Has obligat una nova traducció per a la clau de traducció '<strong>%s</strong>' que no existeix en cap fitxer d'idioma
+TotalNumberOfActivatedModules=Mòduls/Aplicacions activats: <b>%s</b> / <b>%s</b>
 YouMustEnableOneModule=Ha d'activar almenys 1 mòdul.
 ClassNotFoundIntoPathWarning=No s'ha trobat la classe %s en el seu path PHP
 YesInSummer=Sí a l'estiu
@@ -1165,7 +1166,7 @@ WebCalUrlForVCalExport=Un vincle d'exportació del calendari en format <b>%s</b>
 BillsSetup=Configuració del mòdul Factures
 BillsNumberingModule=Mòdul de numeració de factures i abonaments
 BillsPDFModules=Models de documents de factures
-PaymentsPDFModules=Payment documents models
+PaymentsPDFModules=Models de documents de pagament
 CreditNote=Abonament
 CreditNotes=Abonaments
 ForceInvoiceDate=Forçar la data de factura a la data de validació
@@ -1358,16 +1359,16 @@ FilesOfTypeNotCached=Fitxers de tipus %s no s'emmagatzemen en memòria cau pel s
 FilesOfTypeCompressed=Fitxers de tipus %s són comprimits pel servidor HTTP
 FilesOfTypeNotCompressed=Fitxers de tipus %s no són comprimits pel servidor HTTP
 CacheByServer=Memòria cau amb el servidor
-CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
+CacheByServerDesc=Per exemple, utilitzant la directiva Apache "ExpiresByType image/gif A2592000"
 CacheByClient=Memòria cau del navegador
 CompressionOfResources=Compressió de les respostes HTTP
-CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
+CompressionOfResourcesDesc=Per exemple, utilitzant la directiva Apache "AddOutputFilterByType DEFLATE"
 TestNotPossibleWithCurrentBrowsers=La detecció automàtica no és possible amb els navegadors actuals
-DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
+DefaultValuesDesc=Pots definir/forçar aquí el valor predeterminat que vols obtenir quan crees un registre nou, i/o filtres predeterminats o ordenació quan el teu llistat es registri.
 DefaultCreateForm=Valors per defecte pels nous objectes
 DefaultSearchFilters=Filtres de cerca per defecte
 DefaultSortOrder=Tipus d'ordenació per defecte
-DefaultFocus=Default focus fields
+DefaultFocus=Camps d'enfocament per defecte
 ##### Products #####
 ProductSetup=Configuració del mòdul Productes
 ServiceSetup=Configuració del mòdul Serveis
@@ -1517,7 +1518,7 @@ AGENDA_DEFAULT_FILTER_STATUS=Establir per defecte aquest estat de esdeveniments
 AGENDA_DEFAULT_VIEW=Establir la pestanya per defecte al seleccionar el menú Agenda
 AGENDA_NOTIFICATION=Activa la notificació de events en els navegadors dels usuaris quan s'arriba a la data de l'esdeveniment (cada usuari és capaç de rebutjar-ho des de la pregunta de confirmació del navegador)
 AGENDA_NOTIFICATION_SOUND=Habilita les notificacions sonores
-AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
+AGENDA_SHOW_LINKED_OBJECT=Mostra l'objecte vinculat a la vista d'agenda
 ##### Clicktodial #####
 ClickToDialSetup=Configuració del mòdul Click To Dial
 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 clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
@@ -1638,7 +1639,7 @@ MinimumNoticePeriod=Període mínim de notificació (La solicitud de dia lliure
 NbAddedAutomatically=Número de dies afegits en comptadors d'usuaris (automàticament) cada mes
 EnterAnyCode=Aquest camp conté una referència a un identificador de línia. Introdueix qualsevol valor però sense caràcters especials.
 UnicodeCurrency=Introduïu aquí entre claus, la llista de nombre de bytes que representen el símbol de moneda. Per Exemple: per $, introdueix [36] - per als reals de Brasil R$ [82,36] - per € , introdueix [8364]
-ColorFormat=The RGB color is in HEX format, eg: FF0000
+ColorFormat=El color RGB es troba en format HEX, per exemple: FF0000
 PositionIntoComboList=Posició de la línia en llistes combo
 SellTaxRate=Valor de l'IVA
 RecuperableOnly=Sí per l'IVA "Non Perçue Récupérable" dedicat a algun estat a França. Mantingui el valor a "No" en els altres casos.
@@ -1697,9 +1698,9 @@ SamePriceAlsoForSharedCompanies=Si utilitzes el mòdul Multiempresa, amb l'elecc
 ModuleEnabledAdminMustCheckRights=S'ha activat el mòdul. Els permisos per als mòdul(s) activats es donen només als usuaris administradors. Podria ser necessari concedir permisos a altres usuaris o grups de forma manual si és necessari.
 UserHasNoPermissions=Aquest usuari no té permisos definits
 TypeCdr=Utilitze "Cap" si la data de termini de pagament és la data de la factura més un delta en dies (delta és el camp "Nº de dies")<br>Utilitze "A final de mes", si, després del delta, la data ha d'aumentar-se per arribar a final de mes (+ "Offset" opcional en dies)<br>Utilitze "Actual/Següent" per tindre la data de termini de pagament sent el primer N de cada mes (N es guarda en el camp "Nº de dies")
-BaseCurrency=Reference currency of the company (go into setup of company to change this)
-WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
-WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
+BaseCurrency=Moneda de referència de l'empresa (entra a la configuració de l'empresa per canviar-la)
+WarningNoteModuleInvoiceForFrenchLaw=Aquest mòdul %s compleix les lleis franceses (Loi Finance 2016).
+WarningNoteModulePOSForFrenchLaw=Aquest mòdul %s compleix les lleis franceses (Loi Finance 2016) perquè el mòdul Non Reversible Logs s'ha activat automàticament.
 WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
 ##### Resource ####
 ResourceSetup=Configuració del mòdul Recurs
diff --git a/htdocs/langs/ca_ES/agenda.lang b/htdocs/langs/ca_ES/agenda.lang
index 30254d7226f..76aaab7c1c6 100644
--- a/htdocs/langs/ca_ES/agenda.lang
+++ b/htdocs/langs/ca_ES/agenda.lang
@@ -75,17 +75,17 @@ InterventionSentByEMail=Intervenció %s enviada per email
 ProposalDeleted=Pressupost esborrat
 OrderDeleted=Comanda esborrada
 InvoiceDeleted=Factura esborrada
-PRODUCT_CREATEInDolibarr=Product %s created
-PRODUCT_MODIFYInDolibarr=Product %s modified
-PRODUCT_DELETEInDolibarr=Product %s deleted
+PRODUCT_CREATEInDolibarr=Producte %s creat
+PRODUCT_MODIFYInDolibarr=Producte %s modificat
+PRODUCT_DELETEInDolibarr=Producte %s eliminat
 ##### End agenda events #####
 AgendaModelModule=Plantilles de documents per esdeveniments
 DateActionStart=Data d'inici
 DateActionEnd=Data finalització
 AgendaUrlOptions1=Podeu també afegir aquests paràmetres al filtre de sortida:
 AgendaUrlOptions3=<b>logina=%s</b> ​​per a restringir insercions a les accions creades per l'usuari <b>%s</b>.
-AgendaUrlOptionsNotAdmin=<b>logina=!%s</b> to restrict output to actions not owned by user <b>%s</b>.
-AgendaUrlOptions4=<b>logint=%s</b> to restrict output to actions assigned to user <b>%s</b> (owner and others).
+AgendaUrlOptionsNotAdmin=<b>logina=!%s</b> ​​per a restringir la producció d'accions que no pertanyen a l'usuari <b>%s</b>.
+AgendaUrlOptions4=<b>logint=%s</b> per a restringir la producció d'accions assignades a l'usuari <b>%s</b> (propietari i altres).
 AgendaUrlOptionsProject=<b>project=PROJECT_ID</b> per a restringir la sortida d'accions associades al projecta <b>PROJECT_ID</b>.
 AgendaShowBirthdayEvents=Mostra aniversaris dels contactes
 AgendaHideBirthdayEvents=Oculta aniversaris dels contactes
diff --git a/htdocs/langs/ca_ES/banks.lang b/htdocs/langs/ca_ES/banks.lang
index c73774003f7..e936eccac98 100644
--- a/htdocs/langs/ca_ES/banks.lang
+++ b/htdocs/langs/ca_ES/banks.lang
@@ -152,6 +152,6 @@ BankAccountModelModule=Plantilles de documents per comptes bancaris
 DocumentModelSepaMandate=Plantilla per a mandat SEPA. Vàlid només per a països europeus de la CEE.
 DocumentModelBan=Plantilla per imprimir una pàgina amb informació BAN
 NewVariousPayment=Nou pagament varis
-VariousPayment=Pagament varis
+VariousPayment=Pagaments varis
 VariousPayments=Pagaments varis
-ShowVariousPayment=Mostra el pagament varis
+ShowVariousPayment=Mostra els pagaments varis
diff --git a/htdocs/langs/ca_ES/bills.lang b/htdocs/langs/ca_ES/bills.lang
index a1aa5c412d1..7ead0c91c22 100644
--- a/htdocs/langs/ca_ES/bills.lang
+++ b/htdocs/langs/ca_ES/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Era la font d'un o diversos abonaments
 CardBill=Fitxa factura
 PredefinedInvoices=Factura predefinida
 Invoice=Factura
+PdfInvoiceTitle=Factura
 Invoices=Factures
 InvoiceLine=Línia de factura
 InvoiceCustomer=Factura a client
diff --git a/htdocs/langs/ca_ES/compta.lang b/htdocs/langs/ca_ES/compta.lang
index 6e3a8ecbd22..58c5dc35a5b 100644
--- a/htdocs/langs/ca_ES/compta.lang
+++ b/htdocs/langs/ca_ES/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Compte comptable per defecte per a IVA repercutit -
 ACCOUNTING_VAT_BUY_ACCOUNT=Compte comptable per defecte per a IVA suportat - IVA a les compres (utilitzat si no ha estat definit al diccionari de IVA)
 ACCOUNTING_VAT_PAY_ACCOUNT=Compte comptable per defecte per IVA pagat
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Duplica un impost varis
 ConfirmCloneTax=Confirma la duplicació del pagament de l'impost varis
 CloneTaxForNextMonth=Clonar-la pel pròxim mes
diff --git a/htdocs/langs/ca_ES/errors.lang b/htdocs/langs/ca_ES/errors.lang
index d21594a7dc6..c82fbb59576 100644
--- a/htdocs/langs/ca_ES/errors.lang
+++ b/htdocs/langs/ca_ES/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, nom de disparador %s duplicat. Ja es troba carregat
 ErrorNoWarehouseDefined=Error, no hi ha magatzems definits.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=No és possible la validació massiva quan s'estableix l'opció d'augmentar/disminuir l'estoc en aquesta acció (cal validar-ho un per un per poder definir el magatzem a augmentar/disminuir)
+ErrorObjectMustHaveStatusDraftToBeValidated=L'objecte %s ha de tenir l'estat 'Esborrany' per ser validat.
+ErrorObjectMustHaveLinesToBeValidated=L'objecte %s ha de tenir línies per ser validat.
 
 # Warnings
 WarningPasswordSetWithNoAccount=S'ha indicat una contrasenya per aquest soci. En canvi, no s'ha creat cap compte d'usuari, de manera que aquesta contrasenya s'ha desat però no pot ser utilitzada per entrar a Dolibarr. Es pot utilitzar per un mòdul/interfície extern, però si no cal definir cap usuari i contrasenya per un soci, pots deshabilitar la opció "Gestiona l'entrada per tots els socis" des de la configuració del mòdul Socis. Si necessites gestionar una entrada sense contrasenya, pots mantenir aquest camp buit i permetre aquest avís. Nota: El correu electrònic es pot utilitzar per entrar si el soci està enllaçat a un usuarí
diff --git a/htdocs/langs/ca_ES/exports.lang b/htdocs/langs/ca_ES/exports.lang
index 1ad1177dc3a..893eaefcd4b 100644
--- a/htdocs/langs/ca_ES/exports.lang
+++ b/htdocs/langs/ca_ES/exports.lang
@@ -113,14 +113,14 @@ ExportDateFilter=AAAA, AAAAMM, AAAAMMDD: filtres per any/mes/dia<br>AAAA+AAAA, A
 ExportNumericFilter=NNNNN filtra per un valor<br>NNNNN+NNNNN filtra sobre un rang de valors<br>< NNNN filtra per valors menors<br>> NNNNN filtra per valors majors
 ImportFromLine=Importa començant des del número de línia
 EndAtLineNb=Final en el número de línia
-ImportFromToLine=Import line numbers (from - to)
+ImportFromToLine=Importa números de línia (desde - fins a)
 SetThisValueTo2ToExcludeFirstLine=Per exemple, defineix aquest valor a 3 per excloure les 2 primeres línies
 KeepEmptyToGoToEndOfFile=Deixa aquest camp buit per anar al final del fitxer
-SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt
-UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert)
-NoUpdateAttempt=No update attempt was performed, only insert
+SelectPrimaryColumnsForUpdateAttempt=Seleccioneu la columna(s) que s'utilitzarà com a clau principal d'intent d'actualització
+UpdateNotYetSupportedForThisImport=L'actualització no és compatible amb aquest tipus d'importació (només afegir)
+NoUpdateAttempt=No s'ha realitzat cap intent d'actualització, només afegir
 ImportDataset_user_1=Usuaris (empleats o no) i propietats
-ComputedField=Computed field
+ComputedField=Camp calculat
 ## filters
 SelectFilterFields=Si vol aplicar un filtre sobre alguns valors, introduïu-los aquí.
 FilteredFields=Camps filtrats
diff --git a/htdocs/langs/ca_ES/install.lang b/htdocs/langs/ca_ES/install.lang
index 5602ff160e7..4d42a15aa0c 100644
--- a/htdocs/langs/ca_ES/install.lang
+++ b/htdocs/langs/ca_ES/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Usuari de l'administrador de la base de dades Dolibarr.
 PasswordAgain=Verificació de la contrasenya
 AdminPassword=Contrasenya de l'administrador de la base de dades Dolibarr.
 CreateDatabase=Crear la base de dades
-CreateUser=Crear el propietari
+CreateUser=Crea el propietari o concedeix-li permís en la base de dades
 DatabaseSuperUserAccess=Base de dades - Accés super usuari
 CheckToCreateDatabase=Seleccioneu aquesta opció si la base de dades no existeix i s'ha de crear. En aquest cas, cal indicar usuari/contrasenya de superusuari, més endavant en aquesta pàgina.
-CheckToCreateUser=Seleccioneu aquesta opció si l'usuari no existeix i s'ha de crear.<br>En aquest cas, cal indicar usuari/contrasenya de superusuari, més endavant en aquesta pàgina.
+CheckToCreateUser=Marca la casella de verificació si el propietari de la base de dades no existeix i s'ha de crear, o si existeix, però la base de dades no existeix i els permisos s'han de concedir. <br>En aquest cas, has de triar el seu nom d'usuari i contrasenya i també omplir el nom d'usuari i contrasenya del compte superusuari al final d'aquesta pàgina.  Si aquesta casella no està activada, el propietari de la base de dades i les seves contrasenyes han d'existir.
 DatabaseRootLoginDescription=Usuari de la base que té els drets de creació de bases de dades o compte per a la base de dades, inútil si la base de dades i el seu usuari ja existeixen (com quan estan en un amfitrió).
 KeepEmptyIfNoPassword=Deixa-ho en blanc si l'usuari no té contrasenya (evita-ho)
 SaveConfigurationFile=Gravació del fitxer de configuració
@@ -138,7 +138,7 @@ KeepDefaultValuesWamp=Estàs utilitzant l'assistent d'instal·lació de DoliWamp
 KeepDefaultValuesDeb=Estàs utilitzant l'assistent d'instal·lació Dolibarr d'un paquet Linux (Ubuntu, Debian, Fedora...) amb els valors proposats més òptims. Només cal completar la contrasenya del propietari de la base de dades a crear. Canvia els altres paràmetres només si estàs segur del que estàs fent.
 KeepDefaultValuesMamp=Estàs utilitzant l'assistent d'instal·lació de DoliMamp amb els valors proposats més òptims. Canvia'ls només si estàs segur del que estàs fent.
 KeepDefaultValuesProxmox=Estàs utilitzant l'assistent d'instal·lació de Dolibarr des d'una màquina virtual Proxmox amb els valors proposats més òptims. Canvia'ls només si estàs segur del que estàs fent.
-UpgradeExternalModule=Run dedicated upgrade process of external modules
+UpgradeExternalModule=Executa el procés d'actualització dedicat de mòduls externs
 
 #########
 # upgrade
diff --git a/htdocs/langs/ca_ES/loan.lang b/htdocs/langs/ca_ES/loan.lang
index 5e9c5bbb647..a1b6f9e1a8e 100644
--- a/htdocs/langs/ca_ES/loan.lang
+++ b/htdocs/langs/ca_ES/loan.lang
@@ -44,7 +44,7 @@ GoToInterest=%s es destinaran a INTERÈS
 GoToPrincipal=%s es destinaran a PRINCIPAL
 YouWillSpend=Gastaràs %s en l'any %s
 ListLoanAssociatedProject=Llistat de prèstecs associats al projecte
-AddLoan=Create loan
+AddLoan=Crea un préstec
 # Admin
 ConfigLoan=Configuració del mòdul de préstecs
 LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Compte comptable del capital per defecte
diff --git a/htdocs/langs/ca_ES/mails.lang b/htdocs/langs/ca_ES/mails.lang
index 74856b642f5..9887f4cbbfc 100644
--- a/htdocs/langs/ca_ES/mails.lang
+++ b/htdocs/langs/ca_ES/mails.lang
@@ -79,8 +79,8 @@ MailingModuleDescContactsWithThirdpartyFilter=Contacte amb filtres de client
 MailingModuleDescContactsByCompanyCategory=Contactes per categoria de tercer
 MailingModuleDescContactsByCategory=Contactes per categories
 MailingModuleDescContactsByFunction=Contactes per càrrec
-MailingModuleDescEmailsFromFile=Emails from file
-MailingModuleDescEmailsFromUser=Emails input by user
+MailingModuleDescEmailsFromFile=Correus electrònics desde fitxer
+MailingModuleDescEmailsFromUser=Entrada de correus electrònics per usuari
 MailingModuleDescDolibarrUsers=Usuaris amb correus electrònics
 MailingModuleDescThirdPartiesByCategories=Tercers (per categories)
 
diff --git a/htdocs/langs/ca_ES/main.lang b/htdocs/langs/ca_ES/main.lang
index 363c9cddd79..1335409b2f5 100644
--- a/htdocs/langs/ca_ES/main.lang
+++ b/htdocs/langs/ca_ES/main.lang
@@ -73,9 +73,10 @@ Apply=Aplicar
 BackgroundColorByDefault=Color de fons
 FileRenamed=L'arxiu s'ha renombrat correctament
 FileGenerated=L'arxiu ha estat generat correctament
-FileSaved=The file was successfully saved
+FileSaved=El fitxer s'ha desat correctament
 FileUploaded=L'arxiu s'ha carregat correctament
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=El(s) fitxer(s) s'han carregat correctament
+FilesDeleted=El(s) fitxer(s) s'han eliminat correctament
 FileWasNotUploaded=Un arxiu ha estat seleccionat per adjuntar, però encara no ha estat pujat. Feu clic a "Adjuntar aquest arxiu" per a això.
 NbOfEntries=Nº d'entrades
 GoToWikiHelpPage=Llegeix l'ajuda online (cal tenir accés a internet)
@@ -196,6 +197,7 @@ Parameter=Paràmetre
 Parameters=Paràmetres
 Value=Valor
 PersonalValue=Valor personalitzat
+NewObject=Nou %s
 NewValue=Nou valor
 CurrentValue=Valor actual
 Code=Codi
@@ -360,7 +362,7 @@ TotalLT1ES=Total RE
 TotalLT2ES=Total IRPF
 HT=Sense IVA
 TTC=IVA inclòs
-INCT=Inc. all taxes
+INCT=Inc. tots els impostos
 VAT=IVA
 VATs=IVAs
 LT1ES=RE
@@ -369,8 +371,8 @@ VATRate=Taxa IVA
 Average=Mitja
 Sum=Suma
 Delta=Diferència
-Module=Module/Application
-Modules=Modules/Applications
+Module=Mòdul/Aplicació
+Modules=Mòduls/Aplicacions
 Option=Opció
 List=Llistat
 FullList=Llista completa
@@ -414,7 +416,7 @@ TotalDuration=Duració total
 Summary=Resum
 DolibarrStateBoard=Estadístiques de base de dades
 DolibarrWorkBoard=Taula de control de indicadors oberts
-NoOpenedElementToProcess=No opened element to process
+NoOpenedElementToProcess=Sense elements oberts per processar
 Available=Disponible
 NotYetAvailable=Encara no disponible
 NotAvailable=No disponible
@@ -441,6 +443,7 @@ Reporting=Informe
 Reportings=Informes
 Draft=Esborrany
 Drafts=Esborranys
+StatusInterInvoiced=
 Validated=Validat
 Opened=Actiu
 New=Nou
@@ -614,8 +617,8 @@ PartialWoman=Parcial
 TotalWoman=Total
 NeverReceived=Mai rebut
 Canceled=Anul·lada
-YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
-YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
+YouCanChangeValuesForThisListFromDictionarySetup=Pots canviar els valors d'aquesta llista des del menú Configuració - Diccionaris
+YouCanChangeValuesForThisListFrom=Pots canviar els valors d'aquesta llista des del menú %s
 YouCanSetDefaultValueInModuleSetup=Pots indicar el valor per defecte utilitzat en la creació de nous registres en el mòdul de configuració
 Color=Color
 Documents=Documents
@@ -718,7 +721,7 @@ from=de
 toward=cap a
 Access=Accés
 SelectAction=Selecciona acció
-SelectTargetUser=Select target user/employee
+SelectTargetUser=Selecciona l'usuari/empleat de destí
 HelpCopyToClipboard=Utilitzeu Ctrl+C per copiar al portapapers
 SaveUploadedFileWithMask=Desa el fitxer al servidor amb el nom "<strong>%s</strong>" (del contrari "%s")
 OriginFileName=Nom original de l'arxiu
@@ -727,14 +730,16 @@ SetBankAccount=Definir el compte bancari
 AccountCurrency=Divisa del compte
 ViewPrivateNote=Veure notes
 XMoreLines=%s línia(es)  oculta(es)
+ShowMoreLines=Mostra més línies
 PublicUrl=URL pública
 AddBox=Afegir quadre
-SelectElementAndClick=Select an element and click %s
+SelectElementAndClick=Selecciona un element i fes clic a %s
 PrintFile=%s arxius a imprimir
 ShowTransaction=Mostra la transacció en el compte bancari
 GoIntoSetupToChangeLogo=Ves a Inici - Configuració - Empresa per canviar el logo o ves a Inici - Configuració - Entorn per ocultar-lo.
 Deny=Denegar
 Denied=Denegad
+ListOf=Llista de %s
 ListOfTemplates=Llistat de plantilles
 Gender=Sexe
 Genderman=Home
@@ -745,8 +750,8 @@ Hello=Hola
 Sincerely=Sincerament
 DeleteLine=Elimina la línia
 ConfirmDeleteLine=Esteu segur de voler eliminar aquesta línia ?
-NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
-TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
+NoPDFAvailableForDocGenAmongChecked=No hi havia PDF disponibles per a la generació de document entre els registre comprovats
+TooManyRecordForMassAction=S'ha seleccionat massa registres per a l'acció massiva. L'acció està restringida a una llista de %s registres.
 NoRecordSelected=No s'han seleccionat registres
 MassFilesArea=Àrea de fitxers generats per accions massives
 ShowTempMassFilesArea=Mostra l'àrea de fitxers generats per accions massives
@@ -766,20 +771,20 @@ Calendar=Calendari
 GroupBy=Agrupat per...
 ViewFlatList=Veure llista plana
 RemoveString=Eliminar cadena '%s'
-SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
+SomeTranslationAreUncomplete=Alguns idiomes poden estar traduïts parcialment o poden tenir errors. Si detectes algun, pots corregir els fitxers d'idiomes registrant-te a <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
 DirectDownloadLink=Enllaç de descàrrega directa
 Download=Descarrega
 ActualizeCurrency=Actualitza el canvi de divisa
 Fiscalyear=Any fiscal
 ModuleBuilder=Creador de mòdul
-SetMultiCurrencyCode=Set currency
+SetMultiCurrencyCode=Estableix moneda
 BulkActions=Accions massives
-ClickToShowHelp=Click to show tooltip help
-HR=HR
-HRAndBank=HR and Bank
+ClickToShowHelp=Fes clic per mostrar l'ajuda desplegable
+HR=RRHH
+HRAndBank=RRHH i banc
 AutomaticallyCalculated=Calculat automàticament
-TitleSetToDraft=Go back to draft
-ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
+TitleSetToDraft=Torna a esborrany
+ConfirmSetToDraft=Estàs segur que vols tornar a l'estat esborrany?
 # Week day
 Monday=Dilluns
 Tuesday=Dimarts
diff --git a/htdocs/langs/ca_ES/modulebuilder.lang b/htdocs/langs/ca_ES/modulebuilder.lang
index fe2e816c133..89498e763cd 100644
--- a/htdocs/langs/ca_ES/modulebuilder.lang
+++ b/htdocs/langs/ca_ES/modulebuilder.lang
@@ -1,40 +1,56 @@
 # Dolibarr language file - Source file is en_US - loan
-ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
-EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
-ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
-ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
+ModuleBuilderDesc=Aquestes eines han de ser utilitzades per usuaris o desenvolupadors experimentats. Et dóna eines per crear o editar el teu propi mòdul (Documentació per a un altre <a href="%s" target="_blank">desenvolupament manual aquí</a>).
+EnterNameOfModuleDesc=Introdueix el nom del mòdul/aplicació per crear sense espais. Utilitza majúscules per separar paraules (Per exemple: MyModule, EcommerceForShop, SyncWithMySystem...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
+ModuleBuilderDesc2=Ruta on es generen/modifiquen els mòduls (primer directori alternatiu definit a %s): <strong>%s</strong>
+ModuleBuilderDesc3=S'han trobat mòduls generats/editables: <strong>%s</strong> (es detecten com a editables quan el fitxer <strong>%s</strong> existeix a l'arrel del directori del mòdul).
 NewModule=Nou mòdul
-NewObject=New object
-ModuleKey=Module key
-ObjectKey=Object key
+NewObject=Nou objecte
+ModuleKey=Clau del mòdul
+ObjectKey=Clau de l'objecte
 ModuleInitialized=Mòdul inicialitzat
-FilesForObjectInitialized=Files for new object initialized
-ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
-ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
-ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
-ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
-ModuleBuilderDeschooks=This tab is dedicated to hooks.
-ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets.
-ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file.
-EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost !
-EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost !
-DangerZone=Danger zone
-BuildPackage=Build package/documentation
-BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
-ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
-DescriptionLong=Long description
-EditorName=Name of editor
-EditorUrl=URL of editor
-DescriptorFile=Descriptor file of module
-ClassFile=File for PHP class
-ApiClassFile=File for PHP API class
-PageForList=PHP page for list of record
-PageForCreateEditView=PHP page to create/edit/view a record
-PathToModulePackage=Path to zip of module/application package
-PathToModuleDocumentation=Path to file of module/application documentation
-SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
-FileNotYetGenerated=File not yet generated
+FilesForObjectInitialized=S'han inicialitzat els fitxers per al nou objecte '%s'
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
+ModuleBuilderDescdescription=Introdueix aquí tota la informació general que descrigui el teu mòdul
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
+ModuleBuilderDescmenus=Aquesta pestanya està dedicada a definir les entrades de menú proporcionades pel teu mòdul.
+ModuleBuilderDescpermissions=Aquesta pestanya està dedicada a definir els nous permisos que vols proporcionar amb el teu mòdul.
+ModuleBuilderDesctriggers=Aquesta és la vista dels disparadors proporcionats pel teu mòdul. Per incloure el codi executat quan es posa en marxa un esdeveniment de negoci desencadenat, edita aquest fitxer.
+ModuleBuilderDeschooks=Aquesta pestanya està dedicada als ganxos (hooks)
+ModuleBuilderDescwidgets=Aquesta pestanya està dedicada per crear/gestionar ginys
+ModuleBuilderDescbuildpackage=Pots generar aquí un fitxer de paquet "llest per distribuir" (un fitxer .zip normalitzat) del teu mòdul i un fitxer de documentació "llest per distribuir". Només cal que facis clic al botó per crear el paquet o el fitxer de documentació.
+EnterNameOfModuleToDeleteDesc=Pots eliminar el mòdul. AVÍS: Tots els fitxers del mòdul, però també les dades estructurades i la documentació, es perdran definitivament!
+EnterNameOfObjectToDeleteDesc=Pots eliminar un objecte. AVÍS: Tots els fitxers relacionats amb l'objecte es perdran definitivament!
+DangerZone=Zona perillosa
+BuildPackage=Construeix paquet/documentació
+BuildDocumentation=Construeix documentació
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
+ModuleIsLive=Aquest mòdul s'ha activat. Qualsevol canvi en ell pot trencar una característica activa actual.
+DescriptionLong=Descripció llarga
+EditorName=Nom de l'editor
+EditorUrl=URL d'editor
+DescriptorFile=Fitxer descriptor del mòdul
+ClassFile=Fitxer per la classe PHP
+ApiClassFile=Fitxer per la classe PHP API
+PageForList=Pàgina PHP per a la llista de registres
+PageForCreateEditView=Pàgina PHP per crear/editar/veure un registre
+PathToModulePackage=Ruta al zip del paquet del mòdul/aplicació
+PathToModuleDocumentation=Ruta al fitxer de documentació del mòdul/aplicació
+SpaceOrSpecialCharAreNotAllowed=Els espais o caràcters especials no estan permesos.
+FileNotYetGenerated=El fitxer encara no s'ha generat
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=No és NULL
+SearchAll=Utilitzat per a 'cerca tot'
+DatabaseIndex=Índex de bases de dades
+FileAlreadyExists=El fitxer %s ja existeix
+TriggersFile=Fitxer del codi de triggers
+HooksFile=Fitxer per al codi de hooks
+WidgetFile=Fitxer de widget
+ReadmeFile=Fitxer Readme
+ChangeLog=Fitxer ChangeLog
+SqlFile=Fitxer Sql
+SqlFileKey=Fitxer Sql per a claus
+AnObjectAlreadyExistWithThisNameAndDiffCase=Ja existeix un objecte amb aquest nom i un cas diferent
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/ca_ES/multicurrency.lang b/htdocs/langs/ca_ES/multicurrency.lang
index ac9450ce42f..d2224727252 100644
--- a/htdocs/langs/ca_ES/multicurrency.lang
+++ b/htdocs/langs/ca_ES/multicurrency.lang
@@ -1,18 +1,19 @@
 # Dolibarr language file - Source file is en_US - multicurrency
 MultiCurrency=Multi moneda
-ErrorAddRateFail=Error in added rate
-ErrorAddCurrencyFail=Error in added currency
-ErrorDeleteCurrencyFail=Error delete fail
-multicurrency_syncronize_error=Synchronisation error: %s
-multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate)
-CurrencyLayerAccount=CurrencyLayer API
-CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality<br />Get your <b>API key</b><br />If you use a free account you can't change the <b>currency source</b> (USD by default)<br />But if your main currency isn't USD you can use the <b>alternate currency source</b> to force you main currency<br /><br />You are limited at 1000 synchronizations per month
+ErrorAddRateFail=Error en la taxa afegida
+ErrorAddCurrencyFail=Error en la moneda afegida
+ErrorDeleteCurrencyFail=Error en esborrar
+multicurrency_syncronize_error=Error de sincronització: %s
+MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Utilitza la data del document per trobar el tipus de canvi, en lloc d'utilitzar la conversió més recent coneguda
+multicurrency_useOriginTx=Quan un objecte es crea des d'un altre, manté la conversió original de l'objecte origen (en cas contrari, utilitza l'última conversió coneguda)
+CurrencyLayerAccount=API Moneda-Layer
+CurrencyLayerAccount_help_to_synchronize=Pots crear un compte al seu lloc web per utilitzar aquesta funcionalitat<br />Obté la teva <b>clau API</b><br />Si utilitzes un compte gratuït no pots canviar la <b>moneda origen</b> (USD per defecte)<br />Però si la teva moneda principal no és USD pots utilitzar el <b>canvi de moneda origen</b> per forçar la moneda principal<br /><br />Estàs limitat a 1000 sincronitzacions al mes
 multicurrency_appId=Clau API
-multicurrency_appCurrencySource=Currency source
-multicurrency_alternateCurrencySource= Alternate currency souce
+multicurrency_appCurrencySource=Moneda origen
+multicurrency_alternateCurrencySource= Canvia la moneda origen
 CurrenciesUsed=Monedes utilitzades
-CurrenciesUsed_help_to_add=Add the differents currencies and rates you need to use on you <b>proposals</b>, <b>orders</b>, etc.
-rate=rate
-MulticurrencyReceived=Received, original currency
-MulticurrencyRemainderToTake=Remaining amout, original currency
+CurrenciesUsed_help_to_add=Afegeix les diferents monedes i conversions que necessitis per utilitzar <b>pressupostos</b>, <b>comandes</b>, etc.
+rate=Taxa
+MulticurrencyReceived=Rebut, moneda original
+MulticurrencyRemainderToTake=Import restant, moneda original
 MulticurrencyPaymentAmount=Import de pagament, moneda original
diff --git a/htdocs/langs/ca_ES/orders.lang b/htdocs/langs/ca_ES/orders.lang
index 5614cb0573b..5d4811e3555 100644
--- a/htdocs/langs/ca_ES/orders.lang
+++ b/htdocs/langs/ca_ES/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Àrea comandes a proveïdors
 OrderCard=Fitxa comanda
 OrderId=Id comanda
 Order=Comanda
+PdfOrderTitle=Comanda
 Orders=Comandes
 OrderLine=Línia de comanda
 OrderDate=Data comanda
diff --git a/htdocs/langs/ca_ES/other.lang b/htdocs/langs/ca_ES/other.lang
index 2ffc6728c4f..a74db030ec5 100644
--- a/htdocs/langs/ca_ES/other.lang
+++ b/htdocs/langs/ca_ES/other.lang
@@ -9,18 +9,19 @@ BirthdayDate=Data d'aniversari
 DateToBirth=Data de naixement
 BirthdayAlertOn=alerta aniversari activada
 BirthdayAlertOff=alerta aniversari desactivada
-TransKey=Translation of the key TransKey
-MonthOfInvoice=Month (number 1-12) of invoice date
+TransKey=Traducció de la clau TransKey
+MonthOfInvoice=Mes (número 1-12) de la data de la factura
 TextMonthOfInvoice=Mes (text) de la data de factura
-PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date
-TextPreviousMonthOfInvoice=Previous month (text) of invoice date
-NextMonthOfInvoice=Following month (number 1-12) of invoice date
-TextNextMonthOfInvoice=Following month (text) of invoice date
-ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+PreviousMonthOfInvoice=Mes anterior (número 1-12) de la data de la factura
+TextPreviousMonthOfInvoice=Mes anterior (text) de la data de la factura
+NextMonthOfInvoice=Mes següent (número 1-12) de la data de la factura
+TextNextMonthOfInvoice=Mes següent (text) de la data de la factura
+ZipFileGeneratedInto=Fitxer Zip generat a <b>%s</b>.
+DocFileGeneratedInto=Fitxer del document generat a <b>%s</b>.
 
 YearOfInvoice=Any de la data de factura
-PreviousYearOfInvoice=Previous year of invoice date
-NextYearOfInvoice=Following year of invoice date
+PreviousYearOfInvoice=Any anterior de la data de la factura
+NextYearOfInvoice=Any següent de la data de la factura
 
 Notify_FICHINTER_ADD_CONTACT=Contacte afegit a la intervenció
 Notify_FICHINTER_VALIDATE=Validació fitxa intervenció
@@ -74,7 +75,7 @@ PredefinedMailTestHtml=Això és un e-mail de <b>prova</b> (la paraula prova ha
 PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nAquí tens la factura __REF__\n\n__PERSONALIZED__Salutacions\n\n__SIGNATURE__
 PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nVolem comentar que no hem rebut cap notificació de la factura __REF__ que indiqui que ha estat pagada. És per això que li adjuntem de nou la factura com a recordatori.\n\n__PERSONALIZED__Salutacions\n\n__SIGNATURE__
 PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nLi adjuntem el pressupost __PROPREF__\n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__
-PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
+PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nAquí trobarás la sol·licitud de preu __REF__\n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__
 PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nLi adjuntem la comanda __ORDERREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__
 PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nLi adjuntem la nostre comanda __ORDERREF__\n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__
 PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nAquí tens la factura __REF__\n\n__PERSONALIZED__Salutacions\n\n__SIGNATURE__
@@ -161,8 +162,8 @@ AuthenticationDoesNotAllowSendNewPassword=El mode d'autenticació és <b>%s</b>.
 EnableGDLibraryDesc=Instala o habilita la llibreria GD en la teva instal·lació PHP per poder utilitzar aquesta opció.
 ProfIdShortDesc=<b>Prof Id %s </b> és una informació que depèn del país del tercer. <br>Per exemple, per al país <b>%s</b>, és el codi <b>%s</b>.
 DolibarrDemo=Demo de Dolibarr ERP/CRM
-StatsByNumberOfUnits=Statistics for sum of qty of products/services
-StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
+StatsByNumberOfUnits=Estadístiques de suma quantitat de productes/serveis
+StatsByNumberOfEntities=Estadístiques en nombre d'entitats referents (nº de factura, o comanda ...)
 NumberOfProposals=Número de pressupostos
 NumberOfCustomerOrders=Número de comandes de client
 NumberOfCustomerInvoices=Número de factures de client
diff --git a/htdocs/langs/ca_ES/paypal.lang b/htdocs/langs/ca_ES/paypal.lang
index 953d99fae5b..b226a417b80 100644
--- a/htdocs/langs/ca_ES/paypal.lang
+++ b/htdocs/langs/ca_ES/paypal.lang
@@ -16,17 +16,17 @@ ThisIsTransactionId=Identificador de la transacció: <b>%s</b>
 PAYPAL_ADD_PAYMENT_URL=Afegir la url del pagament Paypal en enviar un document per e-mail
 PredefinedMailContentLink=Podeu fer clic a l'enllaç assegurança de sota per realitzar el seu pagament a través de PayPal\n\n%s\n\n
 YouAreCurrentlyInSandboxMode=Actualment es troba en mode "sandbox"
-NewOnlinePaymentReceived=New online payment received
-NewOnlinePaymentFailed=New online payment tried but failed
+NewOnlinePaymentReceived=Nou pagament online rebut
+NewOnlinePaymentFailed=S'ha intentat el nou pagament online però ha fallat
 PAYPAL_PAYONLINE_SENDEMAIL=E-Mail a avisar en cas de pagament (amb èxit o no)
 ReturnURLAfterPayment=URL de retorn després del pagament
-ValidationOfOnlinePaymentFailed=Validation of online payment failed
-PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error
+ValidationOfOnlinePaymentFailed=Ha fallat la validació del pagament online
+PaymentSystemConfirmPaymentPageWasCalledButFailed=La pàgina de confirmació de pagament sol·licitada pel sistema de pagament ha retornat un error
 SetExpressCheckoutAPICallFailed=Ha fallat la crida a l'API SetExpressCheckout.
 DoExpressCheckoutPaymentAPICallFailed=Ha fallat la crida a l'API DoExpressCheckoutPayment.
 DetailedErrorMessage=Missatge d'error detallat
 ShortErrorMessage=Missatge d'error curt
 ErrorCode=Codi d'error
 ErrorSeverityCode=Codi sever d'error
-OnlinePaymentSystem=Online payment system
-PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode)
+OnlinePaymentSystem=Sistema de pagament online
+PaypalLiveEnabled=Paypal live actiu (d'una altra forma en mode prova/sandbox)
diff --git a/htdocs/langs/ca_ES/products.lang b/htdocs/langs/ca_ES/products.lang
index 4edd95060dc..9a57e45c416 100644
--- a/htdocs/langs/ca_ES/products.lang
+++ b/htdocs/langs/ca_ES/products.lang
@@ -25,13 +25,13 @@ ProductAccountancySellCode=Codi comptable (venda)
 ProductOrService=Producte o servei
 ProductsAndServices=Productes i serveis
 ProductsOrServices=Productes o serveis
-ProductsOnSaleOnly=Products for sale only
-ProductsOnPurchaseOnly=Products for purchase only
-ProductsNotOnSell=Products not for sale and not for purchase
+ProductsOnSaleOnly=Productes només en venda
+ProductsOnPurchaseOnly=Productes només per compra
+ProductsNotOnSell=Productes no a la venda i no per a la compra
 ProductsOnSellAndOnBuy=Productes de venda i de compra
-ServicesOnSaleOnly=Services for sale only
-ServicesOnPurchaseOnly=Services for purchase only
-ServicesNotOnSell=Services not for sale and not for purchase
+ServicesOnSaleOnly=Serveis només en venda
+ServicesOnPurchaseOnly=Serveis només per compra
+ServicesNotOnSell=Serveis no a la venda i no per a la compra
 ServicesOnSellAndOnBuy=Serveis en venda o de compra
 LastModifiedProductsAndServices=Últims %s productes/serveis modificats
 LastRecordedProducts=Últims %s productes registrats
@@ -178,14 +178,14 @@ m3=m³
 liter=litre
 l=L
 unitP=Peça
-unitSET=Set
+unitSET=Conjunt
 unitS=Segon
 unitH=Hora
 unitD=Dia
 unitKG=Kilogram
 unitG=Gram
 unitM=Metre
-unitLM=Linear meter
+unitLM=Metres lineals
 unitM2=Metre quadrat
 unitM3=Metre cúbic
 unitL=Litre
@@ -200,7 +200,7 @@ MultipriceRules=Regles de nivell de preu
 UseMultipriceRules=Utilitza les regles de preu per nivell (definit en la configuració del mòdul de productes) per autocalcular preus dels altres nivells en funció del primer nivell
 PercentVariationOver=%% variació sobre %s
 PercentDiscountOver=%% descompte sobre %s
-KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products
+KeepEmptyForAutoCalculation=Mantingueu-lo buit per obtenir-ho calculat automàticament pel pes o el volum dels productes
 ### composition fabrication
 Build=Fabricar
 ProductsMultiPrice=Productes i preus per cada nivell de preu
@@ -247,7 +247,7 @@ ComposedProduct=Sub-producte
 MinSupplierPrice=Preu mínim de proveïdor
 MinCustomerPrice=Preu de client mínim
 DynamicPriceConfiguration=Configuració de preu dinàmic
-DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value.
+DynamicPriceDesc=A la fitxa de producte, amb aquest mòdul habilitat, haureu de poder establir funcions matemàtiques per calcular els preus dels clients o dels proveïdors. Aquesta funció pot utilitzar tots els operadors matemàtics, algunes constants i variables. Podeu definir aquí les variables que voleu utilitzar i si la variable necessita una actualització automàtica, l'URL externa que s'utilitzarà per demanar a Dolibarr que actualitzi automàticament el valor.
 AddVariable=Afegeix variable
 AddUpdater=Afegeix actualitzador
 GlobalVariables=Variables globals
@@ -255,10 +255,10 @@ VariableToUpdate=Variable per actualitzar
 GlobalVariableUpdaters=Actualitzacions de variables globals
 GlobalVariableUpdaterType0=Dades JSON
 GlobalVariableUpdaterHelp0=Analitza dades JSON des de l'URL especificada, el valor especifica l'ubicació de valor rellevant
-GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"}
+GlobalVariableUpdaterHelpFormat0=Format per a la sol·licitud {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"}
 GlobalVariableUpdaterType1=Dades WebService
 GlobalVariableUpdaterHelp1=Analitza dades WebService de l'URL especificada, NS especifica el namespace, VALUE especifica l'ubicació del valor pertinent, DATA conter les dades a enviar i METHOD és el mètode WS a trucar
-GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}}
+GlobalVariableUpdaterHelpFormat1=El format per a la sol·licitud és {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}}
 UpdateInterval=Interval d'actualizació (minuts)
 LastUpdated=Última actualització
 CorrectlyUpdated=Actualitzat correctament
@@ -294,14 +294,14 @@ ProductAttributeValueDeleteDialog=Està segur d'eliminar el valor "%s" amb refer
 ProductCombinationDeleteDialog=Està segur d'eliminar la variant del producte "<strong>%s</strong>"?
 ProductCombinationAlreadyUsed=Ha ocorregut un error al eliminar la variant. Comprovi que no siga utilitzada per algun objecte
 ProductCombinations=Variants
-PropagateVariant=Propagate variants
+PropagateVariant=Propaga variants
 HideProductCombinations=Ocultar les variants en el selector de productes
 ProductCombination=Variant
 NewProductCombination=Nova variant
 EditProductCombination=Editant variant
-NewProductCombinations=New variants
-EditProductCombinations=Editing variants
-SelectCombination=Select combination
+NewProductCombinations=Nous variants
+EditProductCombinations=Editant variants
+SelectCombination=Selecciona la combinació
 ProductCombinationGenerator=Generador de variants
 Features=Funcionalitats
 PriceImpact=Impacte en el preu
@@ -318,8 +318,8 @@ ErrorDeletingGeneratedProducts=S'ha produït un error al intentar eliminar les v
 NbOfDifferentValues=Nº de valors diferents
 NbProducts=Nº de productes
 ParentProduct=Producte pare
-HideChildProducts=Hide variant products
-ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference?
+HideChildProducts=Oculta productes variants
+ConfirmCloneProductCombinations=Vols copiar totes les variants del producte a l'altre producte pare amb la referència donada?
 CloneDestinationReference=Referència del producte destí
 ErrorCopyProductCombinations=S'ha produït un error al copiar les variants de producte
 ErrorDestinationProductNotFound=No s'ha trobat el producte de destí
diff --git a/htdocs/langs/ca_ES/projects.lang b/htdocs/langs/ca_ES/projects.lang
index b4a9a340d75..c3e6a070704 100644
--- a/htdocs/langs/ca_ES/projects.lang
+++ b/htdocs/langs/ca_ES/projects.lang
@@ -9,8 +9,8 @@ ProjectsArea=Àrea de projectes
 ProjectStatus=Estat el projecte
 SharedProject=Projecte compartit
 PrivateProject=Contactes del projecte
-ProjectsImContactFor=Projects I'm explicitely a contact of
-AllAllowedProjects=All project I can read (mine + public)
+ProjectsImContactFor=Projectes on sóc explícitament un contacte
+AllAllowedProjects=Tots els projectes que puc llegir (meu + públic)
 AllProjects=Tots els projectes
 MyProjectsDesc=Aquesta vista està limitada als projectes en que estàs com a contacte afectat (per a qualsevol tipus).
 ProjectsPublicDesc=Aquesta vista mostra tots els projectes en els que vostè té dret a tenir visibilitat.
@@ -64,7 +64,7 @@ TaskDescription=Descripció de tasca
 NewTask=Nova tasca
 AddTask=Crear tasca
 AddTimeSpent=Crea temps dedicat
-AddHereTimeSpentForDay=Add here time spent for this day/task
+AddHereTimeSpentForDay=Afegeix aqui el temps dedicat per aquest dia/tasca
 Activity=Activitat
 Activities=Tasques/activitats
 MyActivities=Les meves tasques/activitats
@@ -84,7 +84,7 @@ ListPredefinedInvoicesAssociatedProject=Llista de plantilles de factures de clie
 ListSupplierOrdersAssociatedProject=Llista de comandes a proveïdors associades al projecte
 ListSupplierInvoicesAssociatedProject=Llista de factures a proveïdors associades al projecte
 ListContractAssociatedProject=Llistatde contractes associats al projecte
-ListShippingAssociatedProject=List of shippings associated with the project
+ListShippingAssociatedProject=Llista d'expedicions associades al projecte
 ListFichinterAssociatedProject=Llistat d'intervencions associades al projecte
 ListExpenseReportsAssociatedProject=Llistat d'informes de despeses associades al projecte
 ListDonationsAssociatedProject=Llistat de donacions associades al projecte
@@ -118,7 +118,7 @@ TaskRessourceLinks=Recursos
 ProjectsDedicatedToThisThirdParty=Projectes dedicats a aquest tercer
 NoTasks=Cap tasca per a aquest projecte
 LinkedToAnotherCompany=Enllaçat a una altra empresa
-TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
+TaskIsNotAssignedToUser=Tasca no assignada a l'usuari. Utilitza el botó '<strong>%s</strong>' per assignar una tasca ara.
 ErrorTimeSpentIsEmpty=El temps dedicat està buit
 ThisWillAlsoRemoveTasks=Aquesta operació també destruirà les tasques del projecte (<b>%s</b> tasques en aquest moment) i tots els seus temps dedicats.
 IfNeedToUseOhterObjectKeepEmpty=Si els elements (factura, comanda, ...) pertanyen a un tercer que no és el seleccionat, havent aquests estar lligats al projecte a crear, deixeu buit per permetre el projecte a multi-tercers.
@@ -169,15 +169,15 @@ FirstAddRessourceToAllocateTime=Associa un recurs d'usuari per reservar el temps
 InputPerDay=Entrada per dia
 InputPerWeek=Entrada per setmana
 InputPerAction=Entrada per acció
-TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s
+TimeAlreadyRecorded=Aquest és el temps dedicat ja registrat per a aquesta tasca/dia i l'usuari %s
 ProjectsWithThisUserAsContact=Projectes amb aquest usuari com a contacte
 TasksWithThisUserAsContact=Tasques asignades a l'usuari
 ResourceNotAssignedToProject=No assignat a cap projecte
 ResourceNotAssignedToTheTask=No assignat a la tasca
 TasksAssignedTo=Tasques assignades a
 AssignTaskToMe=Assignar-me una tasca
-AssignTaskToUser=Assign task to %s
-SelectTaskToAssign=Select task to assign...
+AssignTaskToUser=Assigna una tasca a %s
+SelectTaskToAssign=Selecciona una tasca per assignar...
 AssignTask=Assigna
 ProjectOverview=Informació general
 ManageTasks=Utilitza els projectes per seguir tasques i temps
@@ -188,7 +188,7 @@ ProjectOppAmountOfProjectsByMonth=Import d'oportunitats per mes
 ProjectWeightedOppAmountOfProjectsByMonth=Quantitat ponderada d'oportunitats per mes
 ProjectOpenedProjectByOppStatus=Projectes oberts per estats d'oportunitat
 ProjectsStatistics=Estadístiques en projectes/leads
-TasksStatistics=Statistics on project/lead tasks
+TasksStatistics=Estadístiques de tasques de projecte/lideratge
 TaskAssignedToEnterTime=Tasca assignada. És possible entrar els temps en aquesta tasca.
 IdTaskTime=Id de temps de tasca
 YouCanCompleteRef=Si vols completar la referència amb més informació (per utilitzar-la als filtres de cerca), es recomana afegir el caràcter - per separar-ho, així la numeració automàtica funcionarà correctament pels propers projectes. Per exemple %s-ABC. També pots preferir afegir claus de cerca en l'etiqueta. Però la millor pràctica pot ser afegir un camp dedicat, també anomenat Atributs complementaris.
diff --git a/htdocs/langs/ca_ES/propal.lang b/htdocs/langs/ca_ES/propal.lang
index 9735681b3de..d803adcc00b 100644
--- a/htdocs/langs/ca_ES/propal.lang
+++ b/htdocs/langs/ca_ES/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Pressupostos esborrany
 ProposalsOpened=Pressupostos oberts
 Prop=Pressupostos
 CommercialProposal=Pressupost
+PdfCommercialProposalTitle=Pressupost
 ProposalCard=Fitxa pressupost
 NewProp=Nou pressupost
 NewPropal=Nou pressupost
diff --git a/htdocs/langs/ca_ES/resource.lang b/htdocs/langs/ca_ES/resource.lang
index 40dec371160..64a8fd5d1a7 100644
--- a/htdocs/langs/ca_ES/resource.lang
+++ b/htdocs/langs/ca_ES/resource.lang
@@ -30,7 +30,7 @@ DictionaryResourceType=Tipus de recurs
 
 SelectResource=Seleccionar recurs
 
-IdResource=Id resource
+IdResource=Id de recurs
 AssetNumber=Número de serie
-ResourceTypeCode=Resource type code
+ResourceTypeCode=Codi de tipus de recurs
 ImportDataset_resource_1=Recursos
diff --git a/htdocs/langs/ca_ES/salaries.lang b/htdocs/langs/ca_ES/salaries.lang
index 937de3dea2e..43932afa217 100644
--- a/htdocs/langs/ca_ES/salaries.lang
+++ b/htdocs/langs/ca_ES/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Compte comptable utilitzat per usuaris tercers
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Compte comptable per defecte per a despeses de personal
 Salary=Sou
 Salaries=Sous
diff --git a/htdocs/langs/ca_ES/sendings.lang b/htdocs/langs/ca_ES/sendings.lang
index aa094084731..c210d0b315b 100644
--- a/htdocs/langs/ca_ES/sendings.lang
+++ b/htdocs/langs/ca_ES/sendings.lang
@@ -52,7 +52,7 @@ ShipmentCreationIsDoneFromOrder=De moment, la creació d'una nova expedició es
 ShipmentLine=Línia d'expedició
 ProductQtyInCustomersOrdersRunning=Quantitat de producte en comandes de clients obertes
 ProductQtyInSuppliersOrdersRunning=Quantitat de producte en comandes de proveïdors obertes
-ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent
+ProductQtyInShipmentAlreadySent=Quantitat de producte des de comandes de client obertes ja enviades
 ProductQtyInSuppliersShipmentAlreadyRecevied=Quantitat de producte des de comandes de proveïdor obertes ja rebudes
 NoProductToShipFoundIntoStock=No s'ha trobat el producte per enviar en el magatzem <b>%s</b>. Corregeix l'estoc o torna enrera per triar un altre magatzem.
 WeightVolShort=Pes/Vol.
diff --git a/htdocs/langs/ca_ES/stocks.lang b/htdocs/langs/ca_ES/stocks.lang
index 5cbb392ecd6..21338d1527c 100644
--- a/htdocs/langs/ca_ES/stocks.lang
+++ b/htdocs/langs/ca_ES/stocks.lang
@@ -53,7 +53,7 @@ IndependantSubProductStock=Estoc del producte i estoc del subproducte són indep
 QtyDispatched=Quantitat desglossada
 QtyDispatchedShort=Quant. rebuda
 QtyToDispatchShort=Quant. a enviar
-OrderDispatch=Goods Receptions
+OrderDispatch=Recepció d'estocs
 RuleForStockManagementDecrease=Regla per la reducció automàtica d'estoc (la reducció manual sempre és possible, excepte si hi ha una regla de reducció automàtica activada)
 RuleForStockManagementIncrease=Regla per l'increment automàtic d'estoc (l'increment manual sempre és possible, excepte si hi ha una regla d'increment automàtica activada)
 DeStockOnBill=Decrementar els estocs físics sobre les factures/abonaments a clients
@@ -71,10 +71,10 @@ StockLimitShort=Límit per l'alerta
 StockLimit=Estoc límit per les alertes
 PhysicalStock=Estoc físic
 RealStock=Estoc real
-RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements.
-RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this):
+RealStockDesc=L'estoc físic o real és l'estoc que tens actualment als teus magatzems/emplaçaments interns.
+RealStockWillAutomaticallyWhen=L'estoc real canviarà automàticament d'acord amb aquestes regles (consulteu la configuració del mòdul d'estoc per canviar-ho):
 VirtualStock=Estoc virtual
-VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...)
+VirtualStockDesc=L'estoc virtual és l'estoc que tindràs un cop es tanquin totes les accions obertes pendents que afecten als estocs (recepció de comanda de proveïdor, expedició de comanda de client, ...)
 IdWarehouse=Id. magatzem
 DescWareHouse=Descripció magatzem
 LieuWareHouse=Localització magatzem
@@ -119,7 +119,7 @@ NbOfProductBeforePeriod=Quantitat del producte %s en estoc abans del periode sel
 NbOfProductAfterPeriod=Quantitat del producte %s en estoc despres del periode seleccionat (> %s)
 MassMovement=Moviments en massa
 SelectProductInAndOutWareHouse=Seleccioni un producte, una quantitat, un magatzem origen i un magatzem destí, seguidament faci clic "%s". Una vegada seleccionats tots els moviments, faci clic en "%s".
-RecordMovement=Record transfer
+RecordMovement=Registre de transferència
 ReceivingForSameOrder=Recepcions d'aquesta comanda
 StockMovementRecorded=Moviments d'estoc registrat
 RuleForStockAvailability=Regles de requeriment d'estoc
@@ -146,50 +146,50 @@ ProductStockWarehouseUpdated=Estoc límit per llançar una alerta i estoc òptim
 ProductStockWarehouseDeleted=S'ha eliminat correctament el límit d'estoc per alerta i l'estoc òptim desitjat.
 AddNewProductStockWarehouse=Posar nou estoc límit per alertar i nou estoc òptim desitjat
 AddStockLocationLine=Decrementa quantitat i a continuació fes clic per afegir un altre magatzem per aquest producte
-InventoryDate=Inventory date
-NewInventory=New inventory
-inventorySetup = Inventory Setup
-inventoryCreatePermission=Create new inventory
-inventoryReadPermission=View inventories
-inventoryWritePermission=Update inventories
-inventoryValidatePermission=Validate inventory
-inventoryTitle=Inventory
-inventoryListTitle=Inventories
-inventoryListEmpty=No inventory in progress
-inventoryCreateDelete=Create/Delete inventory
-inventoryCreate=Create new
+InventoryDate=Data d'inventari
+NewInventory=Nou inventari
+inventorySetup = Configuració de l'inventari
+inventoryCreatePermission=Crea un nou inventari
+inventoryReadPermission=Veure inventaris
+inventoryWritePermission=Actualitza els inventaris
+inventoryValidatePermission=Valida l'inventari
+inventoryTitle=Inventari
+inventoryListTitle=Inventaris
+inventoryListEmpty=Cap inventari en progrés
+inventoryCreateDelete=Crea/elimina l'inventari
+inventoryCreate=Crea nou
 inventoryEdit=Edita
 inventoryValidate=Validat
 inventoryDraft=En servei
-inventorySelectWarehouse=Warehouse choice
+inventorySelectWarehouse=Selecciona magatzem
 inventoryConfirmCreate=Crear
-inventoryOfWarehouse=Inventory for warehouse : %s
-inventoryErrorQtyAdd=Error : one quantity is leaser than zero
-inventoryMvtStock=By inventory
-inventoryWarningProductAlreadyExists=This product is already into list
+inventoryOfWarehouse=Inventari de magatzem: %s
+inventoryErrorQtyAdd=Error: una quantitat és menor que zero
+inventoryMvtStock=Per inventari
+inventoryWarningProductAlreadyExists=Aquest producte ja està en llista
 SelectCategory=Filtre per categoria
-SelectFournisseur=Supplier filter
-inventoryOnDate=Inventory
-INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory
-INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found
-INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory
-inventoryChangePMPPermission=Allow to change PMP value for a product
-ColumnNewPMP=New unit PMP
-OnlyProdsInStock=Do not add product without stock
-TheoricalQty=Theorique qty
-TheoricalValue=Theorique qty
-LastPA=Last BP
-CurrentPA=Curent BP
+SelectFournisseur=Filtre de proveïdor
+inventoryOnDate=Inventari
+INVENTORY_DISABLE_VIRTUAL=Permet no canviar l'estoc del producte fill d'un kit a l'inventari
+INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Utilitza el preu de compra si no es pot trobar l'últim preu de compra
+INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=El moviment d'estoc té data d'inventari
+inventoryChangePMPPermission=Permet canviar el valor PMP d'un producte
+ColumnNewPMP=Nova unitat PMP
+OnlyProdsInStock=No afegeixis producte sense estoc
+TheoricalQty=Qtat. teòrica
+TheoricalValue=Qtat. teòrica
+LastPA=Últim BP
+CurrentPA=Actual BP
 RealQty=Qtat. real
 RealValue=Valor real
-RegulatedQty=Regulated Qty
-AddInventoryProduct=Add product to inventory
+RegulatedQty=Qtat. regulada
+AddInventoryProduct=Afegeix producte a l'inventari
 AddProduct=Afegir
-ApplyPMP=Apply PMP
+ApplyPMP=Aplica el PMP
 FlushInventory=Flush inventory
 ConfirmFlushInventory=Confirmes aquesta acció?
 InventoryFlushed=Inventory flushed
-ExitEditMode=Exit edition
+ExitEditMode=Surt de l'edició
 inventoryDeleteLine=Elimina la línia
-RegulateStock=Regulate Stock
+RegulateStock=Regula l'estoc
 ListInventory=Llistat
diff --git a/htdocs/langs/ca_ES/trips.lang b/htdocs/langs/ca_ES/trips.lang
index ccb84bdda26..5f6d2e81b0f 100644
--- a/htdocs/langs/ca_ES/trips.lang
+++ b/htdocs/langs/ca_ES/trips.lang
@@ -70,7 +70,7 @@ DATE_SAVE=Data de validació
 DATE_CANCEL=Data de cancelació
 DATE_PAIEMENT=Data de pagament
 BROUILLONNER=Reobrir
-ExpenseReportRef=Ref. expense report
+ExpenseReportRef=Ref del informe de despeses
 ValidateAndSubmit=Validar i sotmetre a aprovació
 ValidatedWaitingApproval=Validat (pendent d'aprovació)
 NOT_AUTHOR=No ets l'autor d'aquest informe de despeses. L'operació s'ha cancelat.
@@ -88,5 +88,5 @@ NoTripsToExportCSV=No hi ha informe de despeses per exportar en aquest període
 ExpenseReportPayment=Informe de despeses pagades
 ExpenseReportsToApprove=Informes de despeses per aprovar
 ExpenseReportsToPay=Informes de despeses a pagar
-CloneExpenseReport=Clone expense report
+CloneExpenseReport=Clona el informe de despeses
 ConfirmCloneExpenseReport=Estàs segur de voler clonar aquest informe de despeses ?
diff --git a/htdocs/langs/ca_ES/users.lang b/htdocs/langs/ca_ES/users.lang
index dcd49b2e7d9..0e1e106c51d 100644
--- a/htdocs/langs/ca_ES/users.lang
+++ b/htdocs/langs/ca_ES/users.lang
@@ -66,8 +66,8 @@ InternalUser=Usuari intern
 ExportDataset_user_1=Usuaris Dolibarr i propietats
 DomainUser=Usuari de domini
 Reactivate=Reactivar
-CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card.
-InternalExternalDesc=An <b>internal</b> user is a user that is part of your company/organisation.<br>An <b>external</b> user is a customer, supplier or other.<br><br>In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display)
+CreateInternalUserDesc=Aquest formulari permet crear un usuari intern a la teva empresa/entitat. Per crear un usuari extern (clients, proveïdors, ...), utilitzeu el botó 'Crea usuari de Dolibarr' a la fitxa de contacte del tercer.
+InternalExternalDesc=Un usuari <b>intern</b> és un usuari que pertany a la teva empresa/entitat. <br>Un usuari<b>extern</b> és un usuari client, proveïdor o un altre.<br><br>En els 2 casos, els permisos defineixen els drets d'accés, però també l'usuari extern pot tenir un gestor de menús diferent a l'usuari intern (veure Inici - Configuració - Entorn)
 PermissionInheritedFromAGroup=El permís es concedeix ja que ho hereta d'un grup al qual pertany l'usuari.
 Inherited=Heretat
 UserWillBeInternalUser=L'usuari creat serà un usuari intern (ja que no està lligat a un tercer en particular)
diff --git a/htdocs/langs/ca_ES/website.lang b/htdocs/langs/ca_ES/website.lang
index dcf3374c874..3cd7bcb63be 100644
--- a/htdocs/langs/ca_ES/website.lang
+++ b/htdocs/langs/ca_ES/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Crea tantes entrades com número de pàgines web que necessitis
 DeleteWebsite=Elimina la pàgina web
 ConfirmDeleteWebsite=Estàs segur de voler elimiar aquesta pàgina web? També s'esborraran totes les pàgines i el seu contingut.
 WEBSITE_PAGENAME=Nom/alies de pàgina
+WEBSITE_HTML_HEADER=Capçalera HTML
 WEBSITE_CSS_URL=URL del fitxer CSS extern
 WEBSITE_CSS_INLINE=Contingut CSS
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Llibreria Media
-EditCss=Edita estil/CSS
+EditCss=Edita l'estil/CSS o la capçalera HTML
 EditMenu=Edita menú
 EditPageMeta=Edita "meta"
 EditPageContent=Edita contingut
 Website=Lloc web
-Webpage=Pàgina web
-AddPage=Afegeix pàgina
-HomePage=Home Page
+Webpage=Pàgina/contenidor web
+AddPage=Afegeix pàgina/contenidor
+HomePage=Pàgina d'inici
 PreviewOfSiteNotYetAvailable=La previsualització del teu lloc web <strong>%s</strong> encara no està disponible. Primer has d'afegir una pàgina.
-RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=La pàgina '%s' del lloc web %s s'ha eliminat
-PageAdded=Pàgina '%s' afegida
+RequestedPageHasNoContentYet=La pàgina sol·licitada amb l'identificador %s encara no té contingut, o el fitxer de memòria cau .tpl.php s'ha eliminat. Edita el contingut de la pàgina per solucionar-ho.
+PageContent=Pàgina/Contenidor
+PageDeleted=Pàgina/Contenidor '%s' del lloc web %s eliminat
+PageAdded=Pàgina/Contenidor '%s' afegit
 ViewSiteInNewTab=Mostra el lloc en una nova pestanya
 ViewPageInNewTab=Mostra la pàgina en una nova pestanya
 SetAsHomePage=Indica com a Pàgina principal
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=Mostra la pàgina web utilitzant les URLs d'inici
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
-NoPageYet=No pages yet
+VirtualHostUrlNotDefined=No s'ha definit la URL de l'amfitrió virtual que serveix el servidor web extern
+NoPageYet=Encara sense pàgines
+SyntaxHelp=Ajuda sobre la sintaxi del codi
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clona la pàgina/contenidor
+CloneSite=Clona el lloc
diff --git a/htdocs/langs/ca_ES/withdrawals.lang b/htdocs/langs/ca_ES/withdrawals.lang
index 723dd04967a..829b127717e 100644
--- a/htdocs/langs/ca_ES/withdrawals.lang
+++ b/htdocs/langs/ca_ES/withdrawals.lang
@@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nombre de factura de client amb pagament per domic
 InvoiceWaitingWithdraw=Factura esperant per domiciliació bancària
 AmountToWithdraw=Import a domiciliar
 WithdrawsRefused=Domiciliació bancària refusada
-NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request.
+NoInvoiceToWithdraw=No hi ha cap factura del client amb "Sol·licituds de domiciliació" obertes. Ves a la pestanya '%s' a la fitxa de la factura per fer una sol·licitud.
 ResponsibleUser=Usuari responsable de les domiciliacions
 WithdrawalsSetup=Configuració del pagament mitjançant domiciliació bancària
 WithdrawStatistics=Estadístiques del pagament mitjançant domiciliació bancària
@@ -41,7 +41,7 @@ RefusedReason=Motiu de devolució
 RefusedInvoicing=Facturació de la devolució
 NoInvoiceRefused=No facturar la devolució
 InvoiceRefused=Factura rebutjada (Carregar les despeses al client)
-StatusDebitCredit=Status debit/credit
+StatusDebitCredit=Estat dèbit/crèdit
 StatusWaiting=En espera
 StatusTrans=Enviada
 StatusCredited=Abonada
diff --git a/htdocs/langs/ca_ES/workflow.lang b/htdocs/langs/ca_ES/workflow.lang
index 1cb9bfaac1b..213184f68c9 100644
--- a/htdocs/langs/ca_ES/workflow.lang
+++ b/htdocs/langs/ca_ES/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Configuració del mòdul workflow
 WorkflowDesc=Aquest mòdul li permet canviar el comportament de les accions automàticament en l'aplicació. De forma predeterminada, el workflow està obert (configuri segons les seves necessitats). Activi les accions automàtiques que li interessin.
 ThereIsNoWorkflowToModify=No hi ha modificacions disponibles del fluxe de treball amb els mòduls activats.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crear una comanda de client automàticament a la signatura d'un pressupost
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Crear automàticament una factura a client després de signar un pressupost
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crea automàticament una comanda de client després d'haver signat un pressupost (la nova comanda tindrà la mateixa quantitat que el pressupost)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Crea automàticament una factura del client després d'haver signat un pressupost (la nova factura tindrà la mateixa quantitat que el pressupost)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Crear automàticament una factura a client després de validar un contracte
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Crear automàticament una factura a client després de tancar una comanda de client
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classificar com facturat el pressupost quan la comanda de client relacionada es classifiqui com pagada
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classificar com facturades les comanda(es) quan la factura relacionada es classifiqui com a pagada
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classificar com a facturades les comanda(es) de clients relacionats quan la factura sigui validada
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classifica com a facturat el pressupost enllaçat quan la factura de client sigui validada
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classificar enllaçant origen de la comanda i enviament quan l'enviament està validat i la quantitat enviada és la mateixa que la de la comanda
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Crea automàticament una factura de client després de tancar una comanda de client (la nova factura tindrà la mateixa quantitat que la comanda)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classifica els pressupostos vinculats d'origen com a facturats quan la comanda del client es posi com a facturada (i si l'import de la comanda és igual a l'import total dels pressupostos vinculats i signats)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classifica els pressupostos vinculats d'origen com a facturats quan la factura del client es validi (i si l'import de la factura és igual a l'import total dels pressupostos vinculats i signats)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classifica les comandes de client vinculades d'origen com a facturades quan la factura del client es validi (i si l'import de la factura és igual a l'import total de les comandes vinculades)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classifica les comandes de client vinculades d'origen com a facturades quan la factura del client es posi com a pagada (i si l'import de la factura és igual a l'import total de les comandes vinculades)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classifica les comandes vinculades com a expedides quan l'expedició es validi (i si la quantitat enviada per totes les expedicions és igual que la comanda a actualitzar)
 AutomaticCreation=Creació automàtica
 AutomaticClassification=Classificació automàtica
diff --git a/htdocs/langs/cs_CZ/accountancy.lang b/htdocs/langs/cs_CZ/accountancy.lang
index 7746d579ab6..0db49164d5b 100644
--- a/htdocs/langs/cs_CZ/accountancy.lang
+++ b/htdocs/langs/cs_CZ/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Přehled množství linek již vázán na účetnic
 OtherInfo=Jiná informace
 DeleteCptCategory=Odebrat účtování účet ze skupiny
 ConfirmDeleteCptCategory=Jste si jisti, že chcete odstranit tento účetní účet ze skupiny účetního účtu?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Oblast účetnictví
 AccountancyAreaDescIntro=Využití evidence modulu se provádí v několika kroku:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=KROK %s: Definovat účetní účty pro každou banku a finančních účtů. Za tímto účelem přejděte na kartu každého finančního účtu. Můžete začít od strana %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Zůstatek na účtu
-
+ObjectsRef=Source object ref
 CAHTF=Celkový nákup dodavatele před zdaněním
 TotalExpenseReport=Celkové náklady zpráva
 InvoiceLines=Řádky faktury, které mají být prověřeny
@@ -103,7 +110,7 @@ LineOfExpenseReport=Zpráva o výdajích
 NoAccountSelected=Není vybrán žádný účetní účet
 VentilatedinAccount=Úspěšně prověření v účetním účtu
 NotVentilatedinAccount=Neprověřeno v účetním účtu
-XLineSuccessfullyBinded=%s produkty / služby úspěšně vázána k účetnímu účtu
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s produkty / služby nebyly vázány na kterémkoli účetním účtu
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Počet prvků pro kontrolu zobrazených na stránce (maximální doporučeno: 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finanční deník
 ExpenseReportsJournal=Výdajové zprávy journal
 DescFinanceJournal=Finanční deník včetně všech typů plateb prostřednictvím bankovního účtu
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Účet pro DPH není definován
 ThirdpartyAccountNotDefined=Účet pro třetí stranu není definováno
 ProductAccountNotDefined=Účet pro výrobek není definován
@@ -170,6 +177,8 @@ AddCompteFromBK=Přidat účetní účty do skupiny
 ReportThirdParty=Seznam účtů třetí strany
 DescThirdPartyReport=Konzultujte zde seznam třetích stran, zákazníky a dodavateli a jejich účetní účty
 ListAccounts=Seznam účetních účtů
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Třída účtu
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Ověřit automaticky
 AutomaticBindingDone=Automatická vazba provádí
 
 ErrorAccountancyCodeIsAlreadyUse=Chyba, nelze odstranit tento účetní účet, protože ho zrovna používáte
-MvtNotCorrectlyBalanced=Pohyb není správně vyrovnán. Kredit = %s. Debet = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Ověřovací karta
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=účetní deníky
 AccountingJournal=Účetní deník
 NewAccountingJournal=Nový účetní deník
 ShowAccoutingJournal=Zobrazit účetní deník
-Code=Kód
 Nature=Příroda
 AccountingJournalType1=Různé operace
 AccountingJournalType2=Odbyt
@@ -221,8 +229,6 @@ AccountingJournalType9=Má-new
 ErrorAccountingJournalIsAlreadyUse=Tento deník se již používá
 
 ## Export
-Exports=Exporty
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model exportu
 OptionsDeactivatedForThisExportModel=Možnosti pro tento exportní model jsou deaktivovány
diff --git a/htdocs/langs/cs_CZ/admin.lang b/htdocs/langs/cs_CZ/admin.lang
index 0e27050ee19..c082dd8bc2c 100644
--- a/htdocs/langs/cs_CZ/admin.lang
+++ b/htdocs/langs/cs_CZ/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Sekce systémových nástrojů
 SystemToolsAreaDesc=Tato sekce poskytuje správu uživatelských funkcí. V menu vyberte funkci, kterou hledáte.
 Purge=Očistit
 PurgeAreaDesc=Tato stránka vám umožňuje odstranit všechny postavené nebo uložené soubory Dolibarr (dočasné soubory nebo všechny soubory v adresáři <b>%s</b>). Použití této funkce není nutné. Je k dispozici pro uživatele, jejichž Dolibarr je provozován u poskytovatele, který neposkytuje oprávnění k odstranění souborů na webovém serveru.
-PurgeDeleteLogFile=Vymažte log <b>%s</b>, definovaný pro modul Syslog (bez rizika ztráty)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Vymažte všechny dočasné soubory (bez rizika ztráty dat)
 PurgeDeleteTemporaryFilesShort=Odstranit dočasné soubory
 PurgeDeleteAllFilesInDocumentsDir=Odstraňte všechny soubory v adresáři <b>%s.</b> Dočasné soubory, zálohy databáze, soubory přiložené k prvkům (třetí strany, faktury, ...) a  uploady do modulu ECM budou vymazány.
 PurgeRunNow=Vyčistit nyní
 PurgeNothingToDelete=Žádný adresář nebo soubor k odstranění
 PurgeNDirectoriesDeleted=<b>%s</b> soubory nebo adresáře odstraněny.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Vyčistit všechny bezpečnostní události
 ConfirmPurgeAuditEvents=Jste si jisti, že chcete vyčistit všechny bezpečnostní události? Všechny bezpečnostní záznamy budou odstraněny, žádná další data nebudou odstraněna.
 GenerateBackup=Vytvořit zálohu
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Nasazení modulu je dokončeno. Musíte však povolit a nasta
 NotExistsDirect=Alternativní kořenový adresář není definován. <br>
 InfDirAlt=Od verze 3 je možné definovat alternativní kořenovou složku. To umožňuje ukládat na stejné místo plug-iny a vlastní šablony. <br> Stačí vytvořit adresář v kořenovém adresáři Dolibarr (např.: custom). <br>
 InfDirExample=<br>Pak je deklarujte v souboru conf.php<br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>*Řádky jsou zakomentovány znakem "#", pro odkomentování tento znak odmažte.
-YouCanSubmitFile=Pro tento krok můžete posílat balíček pomocí tohoto nástroje: Vyberte soubor modulu
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr aktuální verze
 CallUpdatePage=Přejděte na stránku, která aktualizuje strukturu databáze a data: %s.
 LastStableVersion=Poslední stabilní verze
@@ -535,8 +536,6 @@ Module1120Name=Dodavatel obchodní nabídky
 Module1120Desc=Požadavek dodavatel obchodní návrh a ceny
 Module1200Name=Mantis
 Module1200Desc=Mantis integrace
-Module1400Name=Účetnictví
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Dokument Generation
 Module1520Desc=Hromadná pošta generování dokumentů
 Module1780Name=Tagy/Kategorie
@@ -585,7 +584,7 @@ Module50100Desc=Bod prodejního modulu (POS).
 Module50200Name=Paypal
 Module50200Desc=Modul nabídnout on-line platby kreditní kartou stránku s Paypal
 Module50400Name=Účetnictví (pokročilé)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Přímý tisk (bez otevření dokumentů) pomocí poháry IPP rozhraní (tiskárna musí být viditelné ze serveru, a CUPS musí být installe na serveru).
 Module55000Name=Anketa, průzkum nebo hlasování
@@ -751,8 +750,10 @@ Permission401=Přečtěte slevy
 Permission402=Vytvořit / upravit slevy
 Permission403=Ověřit slevy
 Permission404=Odstranit slevy
-Permission510=Číst platy
-Permission512=Vytvořit/upravit platy
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Smazat platy
 Permission517=Export výplat
 Permission520=Přečtěte si Úvěry
@@ -1057,7 +1058,7 @@ RestoreDesc2=Obnovit archivní soubor (soubor zip například) z adresáře doku
 RestoreDesc3=Obnovení dat, ze záložního souboru výpisu, do databáze nové instalace Dolibarr nebo do databáze tohoto stávající instalace <b>(%s).</b> Varování, po obnovení je dokončeno, musíte použít login / heslo, které existovaly, když byla provedena záloha, se znovu připojit. Chcete-li obnovit záložní databázi do této stávající instalace, můžete sledovat tento asistenta.
 RestoreMySQL=MySQL import
 ForcedToByAModule= Toto pravidlo je nucen <b>%s</b> aktivovaným modulem
-PreviousDumpFiles=Dostupné databázové soubory zálohování výpisu
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=První den v týdnu
 RunningUpdateProcessMayBeRequired=Spuštění procesu upgradu se zdá být nutná (programy %s verze se liší od verze databáze %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=Je nutné spustit tento příkaz z příkazového řádku po přihlášení do shellu s uživatelskými <b>%s</b> nebo musíte přidat parametr-w na konci příkazového řádku, aby <b>%s</b> heslo.
diff --git a/htdocs/langs/cs_CZ/banks.lang b/htdocs/langs/cs_CZ/banks.lang
index aeaa58c12e3..b67259a2d2c 100644
--- a/htdocs/langs/cs_CZ/banks.lang
+++ b/htdocs/langs/cs_CZ/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New různé platební
-VariousPayment=Různé platební
-VariousPayments=různé platby
-ShowVariousPayment=Ukazují různé platby
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/cs_CZ/bills.lang b/htdocs/langs/cs_CZ/bills.lang
index af1f08a705b..371c9e86e22 100644
--- a/htdocs/langs/cs_CZ/bills.lang
+++ b/htdocs/langs/cs_CZ/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Byl zdrojem jednoho nebo několika dobropisy
 CardBill=Karta faktury
 PredefinedInvoices=Předdefinované faktury
 Invoice=Faktura
+PdfInvoiceTitle=Faktura
 Invoices=Faktury
 InvoiceLine=Faktura linka
 InvoiceCustomer=Faktura zákazníka
diff --git a/htdocs/langs/cs_CZ/compta.lang b/htdocs/langs/cs_CZ/compta.lang
index 9ad184c485d..ee450e3f318 100644
--- a/htdocs/langs/cs_CZ/compta.lang
+++ b/htdocs/langs/cs_CZ/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Účtování účet ve výchozím nastavení výběr
 ACCOUNTING_VAT_BUY_ACCOUNT=Účtování v úvahu jako výchozí pro obnoveného DPH - DPH při nákupu (používá pokud není definována v nastavení slovníku DPH)
 ACCOUNTING_VAT_PAY_ACCOUNT=Účtovací účet pro platby DPH
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Klonovat sociální / fiskální daň
 ConfirmCloneTax=Potvrdí klon sociálního / fiskální zaplacení daně
 CloneTaxForNextMonth=Kopírovat pro příští měsíc
diff --git a/htdocs/langs/cs_CZ/errors.lang b/htdocs/langs/cs_CZ/errors.lang
index 0da4c3c5123..c61e1ad3175 100644
--- a/htdocs/langs/cs_CZ/errors.lang
+++ b/htdocs/langs/cs_CZ/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Chyba, spoušť název %s duplikát. Již vložen z %s.
 ErrorNoWarehouseDefined=Chyba, nejsou definovány žádné sklady.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=Heslo bylo nastaveno pro tohoto člena. Nicméně, žádný uživatelský účet byl vytvořen. Takže toto heslo uloženo, ale nemůže být použit pro přihlášení do Dolibarr. Může být použit externí modulu / rozhraní, ale pokud nepotřebujete definovat libovolné přihlašovací jméno ani heslo pro členem, můžete možnost vypnout „Správa přihlášení pro každého člena“ z nastavení člen modulu. Pokud potřebujete ke správě přihlášení, ale nepotřebují žádné heslo, můžete mít toto pole prázdné, aby se zabránilo toto upozornění. Poznámka: E-mail může být také použit jako přihlášení v případě, že člen je připojen k uživateli.
diff --git a/htdocs/langs/cs_CZ/install.lang b/htdocs/langs/cs_CZ/install.lang
index c8f7f47dcc1..90d29719e15 100644
--- a/htdocs/langs/cs_CZ/install.lang
+++ b/htdocs/langs/cs_CZ/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Přihlášení pro vlastníka databáze Dolibarr.
 PasswordAgain=Heslo znovu
 AdminPassword=Heslo pro vlastníka databáze Dolibarr.
 CreateDatabase=Vytvořit databázi
-CreateUser=Vytvořit majitele databáze
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Databázový server - přístup Superuser
 CheckToCreateDatabase=Zaškrtněte, pokud databáze neexistuje a musí být vytvořena. <br> V takovém případě budete muset zadat přihlašovací jméno / heslo pro superuživatele účtu v dolní části stránky.
-CheckToCreateUser=Zaškrtněte, pokud vlastník databáze neexistuje a musí být vytvořen. <br> V takovém případě je potřeba zvolit si přihlašovací jméno a heslo a také vyplnit login / heslo pro superuživatele účtu v dolní části stránky. Pokud nezaškrtnete, vlastník databáze a jeho heslo již musí existovat.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Přihlášení uživatele oprávněného vytvářet nové databáze nebo nové uživatele, povinné, pokud vaše databáze nebo její majitel doposud neexistuje.
 KeepEmptyIfNoPassword=Ponechte prázdné, pokud uživatel nemá heslo (nedoporučeno)
 SaveConfigurationFile=Uložit hodnoty
diff --git a/htdocs/langs/cs_CZ/main.lang b/htdocs/langs/cs_CZ/main.lang
index b4ddbeac2f9..04032bf94d2 100644
--- a/htdocs/langs/cs_CZ/main.lang
+++ b/htdocs/langs/cs_CZ/main.lang
@@ -75,7 +75,8 @@ FileRenamed=Soubor byl úspěšně přejmenován
 FileGenerated=Soubor byl úspěšně vygenerován
 FileSaved=The file was successfully saved
 FileUploaded=Soubor byl úspěšně nahrán
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=Soubor vybrán pro připojení, ale ještě nebyl nahrán. Klikněte na "Přiložit soubor".
 NbOfEntries=Počet záznamů
 GoToWikiHelpPage=Přečtěte si online nápovědu (přístup k internetu je potřeba)
@@ -196,6 +197,7 @@ Parameter=Parametr
 Parameters=Parametry
 Value=Hodnota
 PersonalValue=Osobní hodnota
+NewObject=New %s
 NewValue=Nová hodnota
 CurrentValue=Současná hodnota
 Code=Kód
@@ -441,6 +443,7 @@ Reporting=Hlášení
 Reportings=Hlášení
 Draft=Návrh
 Drafts=Návrhy
+StatusInterInvoiced=
 Validated=Ověřené
 Opened=Otevřeno
 New=Nový
@@ -727,6 +730,7 @@ SetBankAccount=Definujte bankovní účet
 AccountCurrency=Měna účtu
 ViewPrivateNote=Zobrazit poznámky
 XMoreLines=%s řádky(ů) skryto
+ShowMoreLines=Show more lines
 PublicUrl=Veřejná URL
 AddBox=Přidejte box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Ukázat záznam o bankovním účtu
 GoIntoSetupToChangeLogo=Jděte na Domů-Nastavení-Společnost pro změnu loga, nebo je v nastavení skryjte.
 Deny=Odmítnout
 Denied=Odmítnuto
+ListOf=List of %s
 ListOfTemplates=Seznam šablon
 Gender=Pohlaví
 Genderman=Muž
diff --git a/htdocs/langs/cs_CZ/modulebuilder.lang b/htdocs/langs/cs_CZ/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/cs_CZ/modulebuilder.lang
+++ b/htdocs/langs/cs_CZ/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/cs_CZ/multicurrency.lang b/htdocs/langs/cs_CZ/multicurrency.lang
index 6e9c9ccbe6c..7c8c7b466b0 100644
--- a/htdocs/langs/cs_CZ/multicurrency.lang
+++ b/htdocs/langs/cs_CZ/multicurrency.lang
@@ -4,7 +4,8 @@ ErrorAddRateFail=Error in added rate
 ErrorAddCurrencyFail=Error in added currency
 ErrorDeleteCurrencyFail=Error delete fail
 multicurrency_syncronize_error=Synchronisation error: %s
-multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate)
+MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate
+multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate)
 CurrencyLayerAccount=CurrencyLayer API
 CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality<br />Get your <b>API key</b><br />If you use a free account you can't change the <b>currency source</b> (USD by default)<br />But if your main currency isn't USD you can use the <b>alternate currency source</b> to force you main currency<br /><br />You are limited at 1000 synchronizations per month
 multicurrency_appId=API key
diff --git a/htdocs/langs/cs_CZ/orders.lang b/htdocs/langs/cs_CZ/orders.lang
index 4dc2cc05b3a..0ccafbe9151 100644
--- a/htdocs/langs/cs_CZ/orders.lang
+++ b/htdocs/langs/cs_CZ/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Oblast objednávek dodavatelů
 OrderCard=Karta objednávky
 OrderId=ID objednávky
 Order=Objednávka
+PdfOrderTitle=Pořadí
 Orders=Objednávky
 OrderLine=Řádek objednávky
 OrderDate=Datum objednávky
diff --git a/htdocs/langs/cs_CZ/other.lang b/htdocs/langs/cs_CZ/other.lang
index f81530dc14d..6fc7293989b 100644
--- a/htdocs/langs/cs_CZ/other.lang
+++ b/htdocs/langs/cs_CZ/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/cs_CZ/propal.lang b/htdocs/langs/cs_CZ/propal.lang
index f3160730740..badb400c1a1 100644
--- a/htdocs/langs/cs_CZ/propal.lang
+++ b/htdocs/langs/cs_CZ/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Navrhnout obchodní nabídky
 ProposalsOpened=Otevřené obchodní návrhy
 Prop=Obchodní nabídky
 CommercialProposal=Obchodní nabídka
+PdfCommercialProposalTitle=Obchodní nabídka
 ProposalCard=Karta obchodních nabídek
 NewProp=Nová obchodní nabídka
 NewPropal=Nová nabídka
diff --git a/htdocs/langs/cs_CZ/salaries.lang b/htdocs/langs/cs_CZ/salaries.lang
index 4f47be51d88..daa3bcfee2c 100644
--- a/htdocs/langs/cs_CZ/salaries.lang
+++ b/htdocs/langs/cs_CZ/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Účtovací účet ve výchozím nastavení personálních nákladů
 Salary=Mzda
 Salaries=Mzdy
diff --git a/htdocs/langs/cs_CZ/website.lang b/htdocs/langs/cs_CZ/website.lang
index 78a904e30f7..324dacf55ab 100644
--- a/htdocs/langs/cs_CZ/website.lang
+++ b/htdocs/langs/cs_CZ/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Vytvořte zde tolik vstupů jako množství různých webových
 DeleteWebsite=Odstranit web
 ConfirmDeleteWebsite=Jste si jisti, že chcete smazat tuto webovou stránku? Všechny stránky a obsah budou odstraněny.
 WEBSITE_PAGENAME=Název stránky / alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL externího souboru CSS
 WEBSITE_CSS_INLINE=obsah CSS
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=knihovna multimédií
-EditCss=Editace Style / CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Úprava menu
 EditPageMeta=Editovat Meta
 EditPageContent=Editovat obsah
 Website=Webová stránka
-Webpage=webová stránka
-AddPage=Přidat stránku
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Ukázky vaše webové stránky <strong> %s </ strong> ještě nejsou k dispozici. Musíte nejprve přidat stránku.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Strana ‚%s‘ z webové stránky %s odstraněny
-PageAdded=Stránka ‚%s‘ přidána
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=Zobrazit stránku v nové záložce
 ViewPageInNewTab=Zobrazit stránku v nové kartě
 SetAsHomePage=Nastavit jako domovskou stránku
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=Pohled webové stránky s použitím domácí adresy URL
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/cs_CZ/workflow.lang b/htdocs/langs/cs_CZ/workflow.lang
index fed3a5e4205..938ea44ba17 100644
--- a/htdocs/langs/cs_CZ/workflow.lang
+++ b/htdocs/langs/cs_CZ/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Nastavení workflow modulu
 WorkflowDesc=Tento modul je určen k úpravě chování automatických akcí, v aplikaci. Ve výchozím nastavení workflow je otevřen (uděláte něco, co chcete). Můžete aktivovat automatické akce, které jsou zajímavé.
 ThereIsNoWorkflowToModify=Workflow zde není nastaven, můžete upravit modul pokud ho chcete aktivovat.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Vytvoření objednávky zákazníka automaticky po podepsání komerčního návrhu
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automaticky vytvoří zákaznickou fakturu až po podpisu obchodní návrh
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automaticky vytvoří zákaznickou faktury poté, co smlouva byla ověřena
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automaticky vytvoří zákaznickou fakturu za objednávku zákazníka je uzavřen
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Označit propojený zdrojový návrh jako zaúčtovaný, když je objednávka zákazníka nastavena jako placená
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Označit propojenou zdrojovou objednávku zákazníka(ů) jako zaúčtované, když jsou zákaznické faktury nastaveny jako placené
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Označit propojenou zdrojovou objednávku zákazníka(ů) jako zaúčtovanou, když je ověřená zákaznická faktura
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Klasifikovat propojený zdroj návrh účtovaný když je zákazník faktury ověřen
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Klasifikovat propojený zdroj rozkaz dodáván, když je zásilka ověřena a množství dodáno je stejný jako v pořadí
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatická tvorba
 AutomaticClassification=Automatická klasifikace
diff --git a/htdocs/langs/da_DK/accountancy.lang b/htdocs/langs/da_DK/accountancy.lang
index e23601db728..cf391483da4 100644
--- a/htdocs/langs/da_DK/accountancy.lang
+++ b/htdocs/langs/da_DK/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=Liste over de regnskabsmæssige konti
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Kontoens klasse
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Fejl, kan du ikke slette denne regnskabsmæssige konto, fordi den bruges
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Kode
 Nature=Natur
 AccountingJournalType1=Various operation
 AccountingJournalType2=Salg
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Eksporter
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Eksportmodul
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/da_DK/admin.lang b/htdocs/langs/da_DK/admin.lang
index ab491d6cfc9..af23b7d07cf 100644
--- a/htdocs/langs/da_DK/admin.lang
+++ b/htdocs/langs/da_DK/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Systemværktøjer område
 SystemToolsAreaDesc=Dette område giver administration funktioner. Brug menuen til at vælge den funktion, du leder efter.
 Purge=Purge
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Slet alle filer i <b>mappen %s.</b> Midlertidige filer, men også vedhæftede filer elementer (tredjemand, fakturaer, ...) og uploades i ECM-modul vil blive slettet.
 PurgeRunNow=Rensningsanordningen nu
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b> %s</b> eller mapper slettes.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Rensningsanordningen alle begivenheder
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Generer backup
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr aktuelle version
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Mantis integration
-Module1400Name=Regnskabsmæssig ekspert
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Modul til at tilbyde en online betaling side med kreditkort med Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Læs rabatter
 Permission402=Opret / ændre rabatter
 Permission403=Valider rabatter
 Permission404=Slet rabatter
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= Denne regel er tvunget til <b>at %s</b> ved en aktiveret modul
-PreviousDumpFiles=Tilgængelig database backup dump filer
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=Første dag i ugen
 RunningUpdateProcessMayBeRequired=Kørsel opgraderingen processen synes at være nødvendig (Programmer version %s adskiller sig fra database version %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=Du skal køre denne kommando fra kommandolinjen efter login til en shell med brugerens <b>%s.</b>
diff --git a/htdocs/langs/da_DK/banks.lang b/htdocs/langs/da_DK/banks.lang
index 497d363346f..f3d897198d2 100644
--- a/htdocs/langs/da_DK/banks.lang
+++ b/htdocs/langs/da_DK/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/da_DK/bills.lang b/htdocs/langs/da_DK/bills.lang
index 4a54b435151..636a974dca6 100644
--- a/htdocs/langs/da_DK/bills.lang
+++ b/htdocs/langs/da_DK/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Faktura kortet
 PredefinedInvoices=Foruddefinerede Fakturaer
 Invoice=Faktura
+PdfInvoiceTitle=Faktura
 Invoices=Fakturaer
 InvoiceLine=Faktura linje
 InvoiceCustomer=Kunden faktura
diff --git a/htdocs/langs/da_DK/compta.lang b/htdocs/langs/da_DK/compta.lang
index 821d6408f2b..ef0c558063e 100644
--- a/htdocs/langs/da_DK/compta.lang
+++ b/htdocs/langs/da_DK/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/da_DK/errors.lang b/htdocs/langs/da_DK/errors.lang
index 39f7c9b2fd4..dbcc00607a6 100644
--- a/htdocs/langs/da_DK/errors.lang
+++ b/htdocs/langs/da_DK/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/da_DK/install.lang b/htdocs/langs/da_DK/install.lang
index a33a1a1c66a..0fd402bf95d 100644
--- a/htdocs/langs/da_DK/install.lang
+++ b/htdocs/langs/da_DK/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Log ind for Dolibarr database administrator. Hold tomme, hvis du slut
 PasswordAgain=Gentag adgangskode en anden gang
 AdminPassword=Adgangskode til Dolibarr database administrator. Hold tomme, hvis du slutter i anonym
 CreateDatabase=Opret database
-CreateUser=Opret bruger
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Database - SuperUser adgang
 CheckToCreateDatabase=Afkrydsningsfelt, hvis databasen ikke eksisterer og skal være oprettet. <br> I dette tilfælde skal du udfylde login / password for SuperUser konto nederst på denne side.
-CheckToCreateUser=Afkrydsningsfelt, hvis login ikke eksisterer og skal være oprettet. <br> I dette tilfælde skal du udfylde login / password for SuperUser konto nederst på denne side.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Log ind på den bruger lov til at oprette nye databaser eller nye brugere, ubrugelige, hvis din database og din database login findes allerede (ligesom når du er vært ved en web hosting provider).
 KeepEmptyIfNoPassword=Efterlad tom, hvis brugeren ikke har nogen adgangskode (undgå dette)
 SaveConfigurationFile=Gem værdier
diff --git a/htdocs/langs/da_DK/main.lang b/htdocs/langs/da_DK/main.lang
index 9e2ad417d07..450ad9099e3 100644
--- a/htdocs/langs/da_DK/main.lang
+++ b/htdocs/langs/da_DK/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=Filen blev uploadet
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=En fil er valgt for udlæg, men endnu ikke var uploadet. Klik på "Vedhæft fil" for dette.
 NbOfEntries=Nb af tilmeldinger
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parameter
 Parameters=Parametre
 Value=Værdi
 PersonalValue=Personlige værdi
+NewObject=New %s
 NewValue=Ny værdi
 CurrentValue=Nuværende værdi
 Code=Kode
@@ -441,6 +443,7 @@ Reporting=Rapportering
 Reportings=Rapportering
 Draft=Udkast
 Drafts=Drafts
+StatusInterInvoiced=
 Validated=Valideret
 Opened=Åbent
 New=Ny
@@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account
 AccountCurrency=Account Currency
 ViewPrivateNote=View notes
 XMoreLines=%s line(s) hidden
+ShowMoreLines=Show more lines
 PublicUrl=Public URL
 AddBox=Add box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gender
 Genderman=Man
diff --git a/htdocs/langs/da_DK/modulebuilder.lang b/htdocs/langs/da_DK/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/da_DK/modulebuilder.lang
+++ b/htdocs/langs/da_DK/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/da_DK/orders.lang b/htdocs/langs/da_DK/orders.lang
index 96910da21a7..59798a1c6a0 100644
--- a/htdocs/langs/da_DK/orders.lang
+++ b/htdocs/langs/da_DK/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Leverandører ordrer område
 OrderCard=Bestil kort
 OrderId=Order Id
 Order=Rækkefølge
+PdfOrderTitle=Rækkefølge
 Orders=Ordrer
 OrderLine=Bestil online
 OrderDate=Bestil dato
diff --git a/htdocs/langs/da_DK/other.lang b/htdocs/langs/da_DK/other.lang
index 4a54f5c58aa..a0bbc8072b5 100644
--- a/htdocs/langs/da_DK/other.lang
+++ b/htdocs/langs/da_DK/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/da_DK/propal.lang b/htdocs/langs/da_DK/propal.lang
index 1fa1c8210db..1467015b3d4 100644
--- a/htdocs/langs/da_DK/propal.lang
+++ b/htdocs/langs/da_DK/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Udkast til kommercielle forslag
 ProposalsOpened=Open commercial proposals
 Prop=Kommerciel forslag
 CommercialProposal=Kommerciel forslag
+PdfCommercialProposalTitle=Kommerciel forslag
 ProposalCard=Forslag kort
 NewProp=Nye kommercielle forslag
 NewPropal=Nyt forslag
diff --git a/htdocs/langs/da_DK/salaries.lang b/htdocs/langs/da_DK/salaries.lang
index 522bf0a65d7..7e0c80d3380 100644
--- a/htdocs/langs/da_DK/salaries.lang
+++ b/htdocs/langs/da_DK/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Salary
 Salaries=Salaries
diff --git a/htdocs/langs/da_DK/website.lang b/htdocs/langs/da_DK/website.lang
index a18865b0f91..804eade0c4d 100644
--- a/htdocs/langs/da_DK/website.lang
+++ b/htdocs/langs/da_DK/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/da_DK/workflow.lang b/htdocs/langs/da_DK/workflow.lang
index aff06d28448..a8ab6b89a04 100644
--- a/htdocs/langs/da_DK/workflow.lang
+++ b/htdocs/langs/da_DK/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Workflow-modul opsætning
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/de_AT/compta.lang b/htdocs/langs/de_AT/compta.lang
index e4d47e6fe2b..be873ed63e2 100644
--- a/htdocs/langs/de_AT/compta.lang
+++ b/htdocs/langs/de_AT/compta.lang
@@ -6,6 +6,7 @@ RemainingAmountPayment=Leistende Zahlung übrig:
 VATReceived=Eingehobene MwSt.
 VATToCollect=Einzuhebende MwSt.
 VATSummary=MwSt. Zahllast
+VATPaid=VAT paid
 VATCollected=Eingehobene MwSt.
 MenuSpecialExpenses=Steuern, Sozialbeiträge und Dividenden
 AnnualSummaryDueDebtMode=Die Jahresbilanz der Einnahmen/Ausgaben im Modus<b>%sForderungen-Verbindlichkeiten%s</b> meldet <b>Kameralistik</b>.
@@ -21,3 +22,4 @@ SellsJournal=Vertrieb Journal
 PurchasesJournal=Käufe Journal
 DescSellsJournal=Vertrieb Journal
 DescPurchasesJournal=Käufe Journal
+LinkedOrder==> Bestellung
diff --git a/htdocs/langs/de_AT/holiday.lang b/htdocs/langs/de_AT/holiday.lang
index 5593de59612..da5673f77f2 100644
--- a/htdocs/langs/de_AT/holiday.lang
+++ b/htdocs/langs/de_AT/holiday.lang
@@ -1,3 +1,4 @@
 # Dolibarr language file - Source file is en_US - holiday
 DateDebCP=Start-Datum
 DateFinCP=End-Datum
+DeleteCP=Löschen
diff --git a/htdocs/langs/de_AT/mails.lang b/htdocs/langs/de_AT/mails.lang
index 73d9bd548c3..6e617b087e6 100644
--- a/htdocs/langs/de_AT/mails.lang
+++ b/htdocs/langs/de_AT/mails.lang
@@ -1,4 +1,5 @@
 # Dolibarr language file - Source file is en_US - mails
+MailTitle=Beschreibung
 ResetMailing=E-Mail-Kampagne erneut senden
 MailingStatusValidated=Bestätigt
 CloneEMailing=E-Mail-Kampagne duplizieren
diff --git a/htdocs/langs/de_AT/main.lang b/htdocs/langs/de_AT/main.lang
index e4e649378dc..bcdd1aefec6 100644
--- a/htdocs/langs/de_AT/main.lang
+++ b/htdocs/langs/de_AT/main.lang
@@ -25,8 +25,11 @@ ErrorFailedToSendMail=Fehler beim Senden des Mails (Absender=%s, Empfänger=%s)
 ErrorDuplicateField=Dieser Wert muß einzigartig sein
 LevelOfFeature=Funktions-Level
 PreviousConnexion=Vorherige Verbindung
+NotePublic=Notiz (öffentlich)
 Closed=geschlossen
 Closed2=geschlossen
+ToClone=Klonen
+ConfirmClone=Klonen/Duplizieren - Optionen:
 Of=Von
 Search=Suche
 SearchOf=Suche
@@ -34,22 +37,30 @@ Upload=Upload
 PasswordRetype=Geben Sie das Passwort erneut ein
 DateStart=Start-Datum
 DateEnd=End-Datum
+DateDue=Zahlungsziel
 DateRequest=Verlange Datum
 DurationDays=Tag
 days=Tag
 UnitPrice=Bruttopreis (Stk.)
 UnitPriceHT=Nettopreis (Stk.)
 UnitPriceTTC=Bruttopreis (Stk.)
+PriceU=Stückpreis
+PriceUHT=Stückpreis (net)
 AmountAverage=Durchnschnittsbetrag
+TotalTTCShort=Summe (inkl. MwSt.)
+TotalTTC=Summe (inkl. MwSt.)
 TotalVAT=Steuer gesamt
+VAT=MwSt.
 Ref=Bezeichnung
 RefSupplier=Lieferanten Nr.
 RefPayment=Zahlungs Nr.
+Qty=Mng.
 Drafts=Entwurf
 Late=Versätet
 January=Jänner
 Month01=Jänner
 ReportName=Berichtname
+AmountInCurrency=Beträge in 1%s
 RefCustomer=Kunden Nr.
 SendByMail=Per E-Mail senden
 MailSentBy=E-Mail-Absender
@@ -57,12 +68,23 @@ TextUsedInTheMessageBody=E-Mail-Text
 NoEMail=Keine E-Mails
 Offered=Angeboten
 Receive=Erhalte
+Documents=Verknüpfte Dateien
 ThisLimitIsDefinedInSetup=Gesetzte System-Limits (Menü Home-Einstellungen-Sicherheit): %s Kb, PHP Limit: %s Kb
 UnHidePassword=Passwort-Zeichen anzeigen
 CloneMainAttributes=Duplikat mit den Haupteigenschaften
 AttributeCode=Attribut-Code
+LinkTo=Verknüpfen mit...
+LinkToProposal==> Angebot
+LinkToOrder==> Bestellung
+LinkToInvoice==> Rechnung
+LinkToSupplierOrder==> Lieferantenbestellung
+LinkToSupplierProposal==> Lieferantenangebot
+LinkToSupplierInvoice==> Lieferantenrechnung
+LinkToContract==> Vertrag
 CreateDraft=Erstelle Entwurf
 NoPhotoYet=Es wurde noch kein Bild hochgeladen
+PublicUrl=Öffentliche Internetadresse
 ViewList=Liste anzeigen
+RelatedObjects=Ähnliche Dokumente
 Calendar=Kalender
 SearchIntoInterventions=Eingriffe
diff --git a/htdocs/langs/de_AT/members.lang b/htdocs/langs/de_AT/members.lang
index a7bb5fc170e..063dfac0666 100644
--- a/htdocs/langs/de_AT/members.lang
+++ b/htdocs/langs/de_AT/members.lang
@@ -14,6 +14,7 @@ SubscriptionEndDate=Abonnementauslaufdatum
 SubscriptionLate=Versätet
 NewMemberType=Neues Mitgliedsrt
 WelcomeEMail=Willkommens-E-Mail
+DeleteType=Löschen
 Physical=Physisch
 Moral=Rechtlich
 MorPhy=Physisch/Rechtlich
diff --git a/htdocs/langs/de_AT/sms.lang b/htdocs/langs/de_AT/sms.lang
index 5c591816ea1..e795440909c 100644
--- a/htdocs/langs/de_AT/sms.lang
+++ b/htdocs/langs/de_AT/sms.lang
@@ -1,2 +1,3 @@
 # Dolibarr language file - Source file is en_US - sms
+SmsTitle=Beschreibung
 SmsStatusValidated=Bestätigt
diff --git a/htdocs/langs/de_AT/users.lang b/htdocs/langs/de_AT/users.lang
index 24b0c80c5b1..d2317672533 100644
--- a/htdocs/langs/de_AT/users.lang
+++ b/htdocs/langs/de_AT/users.lang
@@ -1,4 +1,6 @@
 # Dolibarr language file - Source file is en_US - users
+DeleteUser=Löschen
+DeleteGroup=Löschen
 DefaultRightsDesc=Definieren Sie hier die, neu erstellten Benutzern automatisch zugewiesenen, Standardberechtigungen.
 PasswordChangedAndSentTo=Passwort geändert und an <b>%s</b> gesandt.
 PasswordChangeRequestSent=Antrag auf eine Änderung das Passworts für <b>%s</b> an <b>%s</b> gesandt.
diff --git a/htdocs/langs/de_CH/admin.lang b/htdocs/langs/de_CH/admin.lang
index 89ca7ecc041..7b96d2672a3 100644
--- a/htdocs/langs/de_CH/admin.lang
+++ b/htdocs/langs/de_CH/admin.lang
@@ -24,7 +24,6 @@ MaxNbOfLinesForBoxes=Maximale Zeilenanzahl für Boxen
 MenusDesc=In der Menüverwaltung können Sie den Inhalt der beiden Menüleisten (Horizontal und Vertikal) festlegen
 MenusEditorDesc=Über den Menü-Editor können Sie Ihre Menüeinträge personalisieren. Gehen Sie dabei sorgfältig vor um die Stabilität des Systems zu gewährleisten und zu verhindern, dass einzelne Module gänzlich unerreichbar werden.<br>Einige Module erzeugen einen Menüeintrag (in den meisten Fällen im Menü <b>Alle</b>). Sollten Sie einen oder mehrere dieser Einträge unabsichtlich entfernt haben, können Sie diese durch das Deaktivieren und neuerliche Aktivieren des Moduls beheben.
 PurgeAreaDesc=Hier können Sie alle vom System erzeugten und gespeicherten Dateien löschen (temporäre Dateien oder alle Dateien im Verzeichnis <b>%s</b>). Diese Funktion ist richtet sich vorwiegend an Benutzer ohne Zugriff auf das Dateisystem des Webservers (z.B. Hostingpakete)
-PurgeDeleteLogFile=Löschen der Protokolldatei <b>%s</b> des Systemprotokollmoduls (kein Risiko des Datenverlusts)
 PurgeDeleteTemporaryFiles=Alle temporären Dateien löschen (kein Datenverlustrisiko)
 PurgeDeleteTemporaryFilesShort=Temporärdateien löschen
 PurgeDeleteAllFilesInDocumentsDir=Alle Datein im Verzeichnis <b>%s</b> löschen. Dies beinhaltet temporäre Dateien ebenso wie Datenbanksicherungen, Dokumente (Geschäftspartner, Rechnungen, ...) und alle Inhalte des ECM-Moduls.
diff --git a/htdocs/langs/de_CH/website.lang b/htdocs/langs/de_CH/website.lang
index 8cb306077f0..77f8d74333c 100644
--- a/htdocs/langs/de_CH/website.lang
+++ b/htdocs/langs/de_CH/website.lang
@@ -6,7 +6,5 @@ WEBSITE_CSS_URL=URL zu externer CSS Datei
 EditPageMeta=Metadaten bearbeiten
 Website=Website
 PreviewOfSiteNotYetAvailable=Vorschau des Webauftritt <strong>%s</strong> noch nicht verfügbar. Sie müssen zuerst eine Seite hinzufügen.
-PageDeleted=Seite '%s' des Webauftritt %s gelöscht
-PageAdded=Seite '%s' hinzugefügt
 ViewSiteInNewTab=Webauftritt in neuem Tab anzeigen
 SetAsHomePage=Als Startseite definieren
diff --git a/htdocs/langs/de_DE/accountancy.lang b/htdocs/langs/de_DE/accountancy.lang
index 50b4b65b560..b6ae612e277 100644
--- a/htdocs/langs/de_DE/accountancy.lang
+++ b/htdocs/langs/de_DE/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Übersicht über die Anzahl der bereits an ein Buch
 OtherInfo=Zusatzinformationen
 DeleteCptCategory=Buchhaltungskonto aus Gruppe entfernen
 ConfirmDeleteCptCategory=Soll dieses Buchhaltungskonto wirklich aus der Gruppe entfernt werden?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Buchhaltung
 AccountancyAreaDescIntro=Die Verwendung des Buchhaltungsmoduls erfolgt in mehreren Schritten:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=SCHRITT %s: Definition der Buchhaltungskonten f
 AccountancyAreaDescSal=SCHRITT %s: Buchhaltungskonto für Lohnzahlungen definieren. Kann im Menü %s geändert werden.
 AccountancyAreaDescContrib=SCHRITT %s: Definition der Buchhaltungskonten für besondere Aufwendungen (Sonstige Steuern) . Kann im Menü %s geändert werden.
 AccountancyAreaDescDonation=SCHRITT %s: Definition der Buchhaltungskonten für Spenden. Kann im Menü %s geändert werden.
-AccountancyAreaDescMisc=SCHRITT %s: Buchhaltungskonto für nicht zugeordnete Buchungen. Kann im Menü %s geändert werden.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=SCHRITT %s: Definitiond der Buchhaltungskonten für Darlehenszahlungen. Kann im Menü %s geändert werden.
 AccountancyAreaDescBank=SCHRITT %s: Definition der Buchhaltungskonten für jede Bank und Finanzkonten. Gehen Sie zum jeweiligen Finanzkonto. Kann im Menü %s geändert werden.
 AccountancyAreaDescProd=SCHRITT %s: Definition der Buchhaltungskonten für Ihre Produkte/Dienstleistungen. Kann im Menü %s geändert werden.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Buchungen ins Hauptbuch übernehmen
 Bookkeeping=Hauptbuch
 AccountBalance=Saldo Sachkonto
-
+ObjectsRef=Source object ref
 CAHTF=Einkaufssume pro Lieferant ohne Steuer
 TotalExpenseReport=Gesamtausgaben Bericht
 InvoiceLines=Zeilen der Rechnungen zu verbinden
@@ -103,7 +110,7 @@ LineOfExpenseReport=Zeilen der Spesenabrechnung
 NoAccountSelected=Kein Buchhaltungskonto ausgewählt
 VentilatedinAccount=erfolgreich zu dem Buchhaltungskonto zugeordnet
 NotVentilatedinAccount=Nicht zugeordnet, zu einem Buchhaltungskonto
-XLineSuccessfullyBinded=%s Produkte/Leistungen erfolgreich an ein Buchhaltungskonto zugeordnet
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s Produkte/Leistungen waren an kein Buchhaltungskonto zugeordnet
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Anzahl der Elemente, die beim Kontieren angezeigt werden  (empfohlen Max.: 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Eintrag im Hauptbuch löschen
 FinanceJournal=Finanzjournal
 ExpenseReportsJournal=Spesenabrechnungsjournal
 DescFinanceJournal=Finanzjournal inklusive aller Arten von Zahlungen mit Bankkonto
-DescJournalOnlyBindedVisible=Dies ist eine Ansicht der Datensätze, die an ein Produkt- / Dienstleistungskonto gebunden sind und in das Hauptbuch übernommen werden können.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Steuerkonto nicht definiert
 ThirdpartyAccountNotDefined=Konto für Adresse nicht definiert
 ProductAccountNotDefined=Konto für Produkt nicht definiert
@@ -170,6 +177,8 @@ AddCompteFromBK=Buchhaltungskonten zur Gruppe hinzufügen
 ReportThirdParty=Zeige Partner
 DescThirdPartyReport=Kontieren Sie hier die Liste der Kunden und Lieferanten zu Ihrem Buchhaltungs-Konten
 ListAccounts=Liste der Abrechnungskonten
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Kontenklasse
 Pcgsubtype=Unterkontenklasse
@@ -194,7 +203,7 @@ ValidateHistory=automatisch verbinden
 AutomaticBindingDone=automatische Zuordnung erledigt
 
 ErrorAccountancyCodeIsAlreadyUse=Fehler, Sie können dieses Buchhaltungskonto nicht löschen, da es benutzt wird.
-MvtNotCorrectlyBalanced=Der Saldo der Buchung ist nicht ausgeglichen. Haben = %s. Soll = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Zuordnungs Karte
 GeneralLedgerIsWritten=Operationen werden ins Hauptbuch geschrieben
 GeneralLedgerSomeRecordWasNotRecorded=Einige der Buchungen konnten nicht übernommen werden. Es gab keine Fehler, vermutlich wurden diese Buchungen schon früher übernommen.
@@ -210,7 +219,6 @@ AccountingJournals=Buchhaltungsjournale
 AccountingJournal=Buchhaltungsjournal
 NewAccountingJournal=Neues Buchhaltungsjournal
 ShowAccoutingJournal=Buchhaltungsjournal anzeigen
-Code=Code
 Nature=Art
 AccountingJournalType1=Verschiedene Aktionen
 AccountingJournalType2=Verkauf
@@ -221,8 +229,6 @@ AccountingJournalType9=Hat neue
 ErrorAccountingJournalIsAlreadyUse=Dieses Journal wird bereits verwendet
 
 ## Export
-Exports=Exporte
-Export=Exportieren
 ExportDraftJournal=Export draft journal
 Modelcsv=Exportmodell
 OptionsDeactivatedForThisExportModel=Für dieses Exportmodell sind die Einstellungen deaktiviert
diff --git a/htdocs/langs/de_DE/admin.lang b/htdocs/langs/de_DE/admin.lang
index e177e7a544d..7e304d68d52 100644
--- a/htdocs/langs/de_DE/admin.lang
+++ b/htdocs/langs/de_DE/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Systemwerkzeugsübersicht
 SystemToolsAreaDesc=In diesem Bereich finden Sie die Verwaltungsfunktionen. Verwenden Sie das linke Menü zur Auswahl der gesuchten Funktion.
 Purge=Säubern
 PurgeAreaDesc=Hier können Sie alle vom System erzeugten und gespeicherten Dateien löschen (temporäre Dateien oder alle Dateien im Verzeichnis <b>%s</b>). Diese Funktion ist nicht erforderlich und richtet sich vorwiegend an Benutzer ohne Zugriff auf das Dateisystem des Webservers (z.B. Hostingpakete)
-PurgeDeleteLogFile=Löschen der Protokolldatei <b>%s</b> des Systemprotokollmoduls (Kein Risiko von Datenverlust)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Löschen der Temporärdateien (Kein Risiko von Datenverlust)
 PurgeDeleteTemporaryFilesShort=temporäre Dateien löschen
 PurgeDeleteAllFilesInDocumentsDir=Alle Dateien im Verzeichnis <b>%s</b> löschen. Dies beinhaltet temporäre Dateien ebenso wie Datenbanksicherungen, Dokumente (Partner, Rechnungen, ...) und alle Inhalte des ECM-Moduls.
 PurgeRunNow=Jetzt bereinigen
 PurgeNothingToDelete=Kein Ordner oder Datei zum löschen.
 PurgeNDirectoriesDeleted=<b>%s</b> Dateien oder Verzeichnisse gelöscht.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Bereinige alle Sicherheitsereignisse
 ConfirmPurgeAuditEvents=Möchten Sie wirklich alle Sicherheitsereignisse löschen ?
 GenerateBackup=Sicherung erzeugen
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Modul-Installation abgeschlossen, es muss aber noch aktiviert
 NotExistsDirect=Das alternative Stammverzeichnis ist nicht zu einem existierenden Verzeichnis definiert.<br>
 InfDirAlt=Seit Version 3 ist es möglich, ein alternatives Stammverzeichnis anzugeben. Dies ermöglicht, Erweiterungen und eigene Templates am gleichen Ort zu speichern.<br>Erstellen Sie einfach ein Verzeichis im Hauptverzeichnis von Dolibarr an (z.B. "custom").<br>
 InfDirExample=<br>Danach in der Datei <strong>conf.php</strong> deklarieren<br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>Wenn diese Zeilen mit "#" auskommentiert sind, um sie zu aktivieren, einfach das Zeichen "#" entfernen.
-YouCanSubmitFile=Durch diesen Schritt, können Sie das Paket mit diesem Tool senden: Wähle Modul Datei
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Aktuelle dolibarr-Version
 CallUpdatePage=Zur Aktualisierung der Daten und Datenbankstrukturen zur Seite %s gehen.
 LastStableVersion=Letzte stabile Version
@@ -535,8 +536,6 @@ Module1120Name=Lieferant-Angebote
 Module1120Desc=Anfordern von Lieferanten-Angeboten und Preise
 Module1200Name=Mantis
 Module1200Desc=Mantis-Integration
-Module1400Name=Buchhaltung
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Dokumente erstellen
 Module1520Desc= Mailings Dokumente erstellen
 Module1780Name=Kategorien/#tags
@@ -585,7 +584,7 @@ Module50100Desc=Modul Point of Sale (POS)\n
 Module50200Name=Paypal
 Module50200Desc=Mit diesem Modul können Sie via PayPal Online Kreditkartenzahlungen entgegennehmen
 Module50400Name=Buchhaltung (erweitert)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direktdruck (ohne die Dokumente zu öffnen) mittels CUPS IPP (Drucker muss vom Server aus sichtbar sein und auf dem Server muss CUPS installiert sein)
 Module55000Name=Befragung, Umfrage oder Abstimmung
@@ -751,8 +750,10 @@ Permission401=Rabatte einsehen
 Permission402=Rabatte erstellen/bearbeiten
 Permission403=Rabatte freigeben
 Permission404=Rabatte löschen
-Permission510=Löhne einsehen
-Permission512=Löhne erstellen/bearbeiten
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Löhne löschen
 Permission517=Löhne exportieren
 Permission520=Darlehen einsehen
@@ -1057,7 +1058,7 @@ RestoreDesc2=Wiederherstellung der Archivdatei des Dokumentenverzeichnis (zum Be
 RestoreDesc3=* Die Datenbanksicherung aus dem Dump in eine neue Dolibarr-Installation oder das bestehende System (<b>%s</b>) zurückspielen. Achtung: Nach Beendigung dieses Vorganges müssen Sie sich mit dem Benutzernamen/Passwort-Paar zum Zeitpunkt der Sicherung am System anmelden. Zur Wiederherstellung der Datenbank steht Ihnen der folgende Assistent zur Verfügung:
 RestoreMySQL=MySQL Import
 ForcedToByAModule= Diese Regel wird <b>%s</b> durch ein aktiviertes Modul aufgezwungen
-PreviousDumpFiles=Vorige Datenbanksicherungen
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=Wochenstart
 RunningUpdateProcessMayBeRequired=Eine Systemaktualisierung scheint erforderlich (Programmversion %s unterscheidet sich von Datenbankversion %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=Diesen Befehl müssen Sie auf der Kommandozeile (nach Login auf der Shell mit Benutzer <b>%s</b>) ausführen.
diff --git a/htdocs/langs/de_DE/banks.lang b/htdocs/langs/de_DE/banks.lang
index 3dd77ed9f33..f915e47af5f 100644
--- a/htdocs/langs/de_DE/banks.lang
+++ b/htdocs/langs/de_DE/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Scheck zurückgewiesen und Rechnungen wieder ge
 BankAccountModelModule=Dokumentvorlagen für Bankkonten
 DocumentModelSepaMandate=Vorlage für SEPA Mandate. Nur sinnvoll in Ländern der EU.
 DocumentModelBan=Template für den Druck von Seiten mit Bankkonto-Nummern Eintrag.
-NewVariousPayment=Neue "Verschiedenes" Zahlung
-VariousPayment=Diverse Zahlung
-VariousPayments=Diverse Zahlungen
-ShowVariousPayment=Zeige "Verschiedenes" Zahlung
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/de_DE/bills.lang b/htdocs/langs/de_DE/bills.lang
index 3f43f357b20..725d1329889 100644
--- a/htdocs/langs/de_DE/bills.lang
+++ b/htdocs/langs/de_DE/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Diese Rechnung ist bereits Gegenstand einer oder mehrerer Gutsch
 CardBill=Rechnung - Karte
 PredefinedInvoices=Vordefinierte Rechnungen
 Invoice=Rechnung
+PdfInvoiceTitle=Rechnung
 Invoices=Rechnungen
 InvoiceLine=Rechnungszeile
 InvoiceCustomer=Kundenrechnung
diff --git a/htdocs/langs/de_DE/compta.lang b/htdocs/langs/de_DE/compta.lang
index d8c0a533eb9..de2c4ae5faf 100644
--- a/htdocs/langs/de_DE/compta.lang
+++ b/htdocs/langs/de_DE/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Standard Buchhaltungs-Konto für die Erhebung der Mw
 ACCOUNTING_VAT_BUY_ACCOUNT=Standard Buchhaltungs-Konto für Vorsteuer  - Ust bei Einkäufen (wird verwendet, wenn nicht unter Einstellungen->Stammdaten USt.-Sätze definiert)
 ACCOUNTING_VAT_PAY_ACCOUNT=Standard-Aufwandskonto, um MwSt zu bezahlen
 ACCOUNTING_ACCOUNT_CUSTOMER=Standard Buchhaltungskonto für Kunden/Debitoren (wenn nicht beim Partner definiert)
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Buchhaltungskonten die auf der Partnerkarte definiert wurden werden für die Nebenbücher verwendet, dieses für das Hauptbuch oder als Vorgabewert für Nebenbücher falls kein Buchhaltungskonto auf der Kunden-Partnerkarte definiert wurde
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Standard Buchhaltungskonto für Lieferanten/Kreditoren (wenn nicht beim Lieferanten definiert)
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Buchhaltungskonten die auf der Partnerkarte definiert wurden werden für die Nebenbücher verwendet, dieses für das Hauptbuch oder als Vorgabewert für Nebenbücher falls kein Buchhaltungskonto auf der Lieferanten-Partnerkarte definiert wurde
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Dupliziere Sozialabgabe/Steuersatz
 ConfirmCloneTax=Bestätigen Sie die Duplizierung der Steuer-/Sozialabgaben-Zahlung
 CloneTaxForNextMonth=Für nächsten Monat duplizieren
diff --git a/htdocs/langs/de_DE/errors.lang b/htdocs/langs/de_DE/errors.lang
index 349a4449acb..50c028707d1 100644
--- a/htdocs/langs/de_DE/errors.lang
+++ b/htdocs/langs/de_DE/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Fehler, doppelter Triggername %s. Schon geladen durch %s.
 ErrorNoWarehouseDefined=Fehler, keine Warenlager definiert.
 ErrorBadLinkSourceSetButBadValueForRef=Der Link ist ungültig. Die Quelle für die Zahlung ist definiert, aber die Referenz ist ungültig.
 ErrorTooManyErrorsProcessStopped=Zu viele Fehler, Verarbeitung abgebrochen.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=Es wurde ein Passwort für dieses Mitglied vergeben, aber kein Benutzer erstellt. Das Passwort wird gespeichert, aber kann nicht für die Anmeldung an Dolibarr verwendet werden. Es kann von einem externen Modul/einer Schnittstelle verwendet werden, aber wenn Sie kein Login oder Passwort für dieses Mitglied definiert müssen, können Sie die Option "Login für jedes Mitglied verwalten" in den Mitgliedseinstellungen deaktivieren. Wenn Sie ein Login aber kein Passwort benötige, lassen Sie dieses Feld leer, um diese Meldung zu deaktivieren. Anmerkung: Die E-Mail-Adresse kann auch zur Anmeldung verwendet werden, wenn das Mitglied mit einem Benutzer verbunden wird.
diff --git a/htdocs/langs/de_DE/install.lang b/htdocs/langs/de_DE/install.lang
index 1e3ceccb663..ca7464f4eb2 100644
--- a/htdocs/langs/de_DE/install.lang
+++ b/htdocs/langs/de_DE/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Administrator Benutzername für Dolibarr Datenbank
 PasswordAgain=Passwort wiederholen
 AdminPassword=Passwort des dolibarr-Datenbankadministrators
 CreateDatabase=Datenbank erstellen
-CreateUser=Erstelle Besitzer
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Datenbankserver - Superadministrator-Zugriff
 CheckToCreateDatabase=Aktivieren Sie dieses Kontrollkästchen, falls Sie noch keine Datenbank angelegt haben und diese im Zuge der Installation erstellt werden soll.<br>Hierfür müssen Sie Benutzername und Passwort des Datenbank-Superusers am Ende der Seite angeben.
-CheckToCreateUser=Aktivieren Sie dieses Kontrollkästchen, falls Sie noch keinen Datenbankbenutzer angelegt haben und dieser im Zuge der Installation erstellt werden soll.<br>Hierfür müssen Sie Benutzername und Passwort des Datenbank-Superusers am Ende der Seite angeben.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Anmeldedaten des Datenbank-Superusers zur Erstellung neuer Datenbanken und -benutzer. Sollten diese bereits existieren (z.B. weil Ihre Website bei einem Hosting-Provider liegt), ist diese Option nutzlos.
 KeepEmptyIfNoPassword=Leer lassen wenn der Benutzer kein Passwort hat (nicht empfohlen)
 SaveConfigurationFile=Konfigurationsdatei wird gespeichert
diff --git a/htdocs/langs/de_DE/main.lang b/htdocs/langs/de_DE/main.lang
index 3ec7de61727..7a23b19b26b 100644
--- a/htdocs/langs/de_DE/main.lang
+++ b/htdocs/langs/de_DE/main.lang
@@ -75,7 +75,8 @@ FileRenamed=Datei wurde erfolgreich unbenannt
 FileGenerated=Die Datei wurde erfolgreich erstellt
 FileSaved=The file was successfully saved
 FileUploaded=Datei wurde erfolgreich hochgeladen
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=Ein Dateianhang wurde gewählt aber noch nicht hochgeladen. Klicken Sie auf "Datei anhängen" um den Vorgang zu starten.
 NbOfEntries=Anzahl der Einträge
 GoToWikiHelpPage=Onlinehilfe lesen (Internetzugang notwendig)
@@ -196,6 +197,7 @@ Parameter=Parameter
 Parameters=Parameter
 Value=Wert
 PersonalValue=Persönlicher Wert
+NewObject=New %s
 NewValue=Neuer Wert
 CurrentValue=Aktueller Wert
 Code=Code
@@ -441,6 +443,7 @@ Reporting=Berichterstattung
 Reportings=Berichte
 Draft=Entwurf
 Drafts=Entwürfe
+StatusInterInvoiced=
 Validated=Bestätigt
 Opened=Geöffnet
 New=Neu
@@ -727,6 +730,7 @@ SetBankAccount=Bankkonto angeben
 AccountCurrency=Kontowährung
 ViewPrivateNote=Zeige Hinweise
 XMoreLines=%s Zeile(n) versteckt
+ShowMoreLines=Show more lines
 PublicUrl=Öffentliche URL
 AddBox=Box anfügen
 SelectElementAndClick=Element auswählen und %s anklicken
@@ -735,6 +739,7 @@ ShowTransaction=Transaktion auf Bankkonto anzeigen
 GoIntoSetupToChangeLogo=Gehen Sie zu Start - Einstellungen - Firma/Stiftung um das Logo zu ändern oder gehen Sie in Start -> Einstellungen -> Anzeige um es zu verstecken.
 Deny=ablehnen
 Denied=abgelehnt
+ListOf=List of %s
 ListOfTemplates=Liste der Vorlagen
 Gender=Geschlecht
 Genderman=männlich
diff --git a/htdocs/langs/de_DE/modulebuilder.lang b/htdocs/langs/de_DE/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/de_DE/modulebuilder.lang
+++ b/htdocs/langs/de_DE/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/de_DE/multicurrency.lang b/htdocs/langs/de_DE/multicurrency.lang
index c830c05dd40..cd8fac39c40 100644
--- a/htdocs/langs/de_DE/multicurrency.lang
+++ b/htdocs/langs/de_DE/multicurrency.lang
@@ -4,7 +4,8 @@ ErrorAddRateFail=Fehler in hinzugefügtem Währungskurs
 ErrorAddCurrencyFail=Fehler in hinzugefügter Währung
 ErrorDeleteCurrencyFail=Fehler, konnte Daten nicht löschen
 multicurrency_syncronize_error=Synchronisationsfehler: %s
-multicurrency_useOriginTx=Wenn ein Objekt anhand eines anderen Erstellt wird, den Währungskurs des Originals beibehalten (Ansonsten wird der aktuelle Währungskurs verwendet)
+MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate
+multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate)
 CurrencyLayerAccount=Währungslayer API
 CurrencyLayerAccount_help_to_synchronize=Erstellen Sie ein Konto auf ihrer Webseite um die Funktionalität nutzen zu können. <br />Erhalten sie ihren <b>API key</b><br />Bei Gratisaccounts kann die <b>Währungsquelle</b> nicht verändert werden (USD Standard<br />Wenn ihre Basiswährung nicht USD ist, kann die <b>Alternative Währungsquelle</b> zum übersteuern der Hauptwährung verwendet werden<br /><br />Sie sind auf 1000 Synchronisationen pro Monat begrenzt
 multicurrency_appId=API key
diff --git a/htdocs/langs/de_DE/orders.lang b/htdocs/langs/de_DE/orders.lang
index 79ab3bcd62a..dfbe5601373 100644
--- a/htdocs/langs/de_DE/orders.lang
+++ b/htdocs/langs/de_DE/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Übersicht Lieferantenbestellungen
 OrderCard=Bestellung - Karte
 OrderId=Bestell-ID
 Order=Bestellung
+PdfOrderTitle=Bestellung
 Orders=Bestellungen
 OrderLine=Bestellservice
 OrderDate=Bestelldatum
diff --git a/htdocs/langs/de_DE/other.lang b/htdocs/langs/de_DE/other.lang
index aac0ae3d320..fcb5633d33b 100644
--- a/htdocs/langs/de_DE/other.lang
+++ b/htdocs/langs/de_DE/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Vorangehender Monat (Text) des Rechnungsdatums
 NextMonthOfInvoice=Folgender Monat (1-12) des Rechnungsdatums
 TextNextMonthOfInvoice=Folgender Monat (1-12) des Rechnungsdatum
 ZipFileGeneratedInto=ZIP-Datei erstellt in <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Jahr der Rechnung
 PreviousYearOfInvoice=Vorangehendes Jahr des Rechnungsdatums
diff --git a/htdocs/langs/de_DE/propal.lang b/htdocs/langs/de_DE/propal.lang
index 583ec1ae81f..20ec9db9b33 100644
--- a/htdocs/langs/de_DE/propal.lang
+++ b/htdocs/langs/de_DE/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Angebotsentwürfe
 ProposalsOpened=Offene Angebote
 Prop=Angebote
 CommercialProposal=Angebot
+PdfCommercialProposalTitle=Angebot
 ProposalCard=Angebot - Karte
 NewProp=Neues Angebot
 NewPropal=Neues Angebot
diff --git a/htdocs/langs/de_DE/salaries.lang b/htdocs/langs/de_DE/salaries.lang
index 13be926dd27..748ec45c014 100644
--- a/htdocs/langs/de_DE/salaries.lang
+++ b/htdocs/langs/de_DE/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Standard Buchhaltungskonto für persönliche Aufwendungen
 Salary=Lohn
 Salaries=Löhne
diff --git a/htdocs/langs/de_DE/website.lang b/htdocs/langs/de_DE/website.lang
index f4b3ef673ed..82fe652295a 100644
--- a/htdocs/langs/de_DE/website.lang
+++ b/htdocs/langs/de_DE/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Erstellen Sie hier für jede benötigte Website einen Eintrag.
 DeleteWebsite=Website löschen
 ConfirmDeleteWebsite=Möchten Sie diese Website wirklich löschen? Alle Seiten inkl. Inhalt werden auch gelöscht.
 WEBSITE_PAGENAME=Seitenname/Alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL der externen CSS-Datei
 WEBSITE_CSS_INLINE=CSS Inhalt
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Medienbibliothek
-EditCss=Style/CSS bearbeiten
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Menü bearbeiten
 EditPageMeta=Meta bearbeiten
 EditPageContent=Inhalt bearbeiten
 Website=Webseite
-Webpage=Webseite
-AddPage=Seite hinzufügen
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Vorschau ihrer Webseite <strong>%s</strong> noch nicht Verfügbar. Zuerst muss eine Seite hinzugefügt werden.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Seite '%s' der Webseite %s entfernt
-PageAdded=Seite '%s' angefügt
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=Webseite in neuen Tab anzeigen
 ViewPageInNewTab=Seite in neuem Tab anzeigen
 SetAsHomePage=Als Startseite festlegen
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=Anzeige der Webseite über die Startseite\n\n\n\n\n\n\n\
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Vorschau %s in neuem Tab.<br><br>%s wird durch einen externen Webserver (Wie Apache, Nginx, IIS) ausgeliefert. Dieser Server muss installiert sein. Verzeichnis <br><strong>%s</strong><br> als URL <br><strong>%s</strong> durch den externen Webserver freigeben
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/de_DE/workflow.lang b/htdocs/langs/de_DE/workflow.lang
index 25e3a46f029..cc564291feb 100644
--- a/htdocs/langs/de_DE/workflow.lang
+++ b/htdocs/langs/de_DE/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Workflow Moduleinstellungen
 WorkflowDesc=Dieses Modul ermöglicht, das Verhalten von automatischen Aktionen in den Anwendungen zu verändern. Standardmäßig wird der Prozess offen sein (Sie können die Dinge in der gewünschten Reihenfolge tun). Sie können automatische Aktionen aktivieren, die Sie interessieren.
 ThereIsNoWorkflowToModify=Es sind keine Workflow-Änderungen möglich mit den aktivierten Modulen.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Erstelle einen Kundenauftrag automatisch, nachdem ein Angebot unterzeichnet wurde
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Erstelle automatisch eine Kundenrechnung, nachdem das Angebot bestätigt wurde.
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Erstelle automatisch eine Kundenrechnung, nachdem der Vertrag bestätigt wurde.
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Erstelle automatisch eine Kundenrechnung,  nachdem ein Auftrag abgeschlossen wurde.
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Kennzeichne verknüpftes Angebot als in Rechnung gestellt, wenn der Kundenauftrag als bezahlt markiert wird
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Kennzeichne verknüpfte Kundenaufträge als verrechnet, wenn die Kundenrechnung als bezahlt markiert wird
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Kennzeichne verknüpfte Kundenaufträge als verrechnet, wenn die Kundenrechnung bestätigt wird
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Kennzeichne das verknüpfte Angebot als abgerechnet, wenn die Kundenrechnung erstellt wurde.
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Kennzeichne verknüpfte Aufträge als geliefert, wenn die Lieferung verbucht wurde und die Liefermenge der Bestellmenge entspricht
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=automatische Erstellung
 AutomaticClassification=Automatische Klassifikation
diff --git a/htdocs/langs/el_GR/accountancy.lang b/htdocs/langs/el_GR/accountancy.lang
index c258d991153..292b88bc44f 100644
--- a/htdocs/langs/el_GR/accountancy.lang
+++ b/htdocs/langs/el_GR/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Ημερολόγιο οικονομικών
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=Λίστα των λογιστικών λογαριασμών
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Τύπος λογαριασμού
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Σφάλμα, δεν μπορείτε να διαγράψετε αυτόν τον λογιστικό λογαριασμό γιατί χρησιμοποιείται
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Κώδικας
 Nature=Nature
 AccountingJournalType1=Various operation
 AccountingJournalType2=Πωλήσεις
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Εξαγωγές
-Export=Εξαγωγή
 ExportDraftJournal=Export draft journal
 Modelcsv=Πρότυπο εξαγωγής
 OptionsDeactivatedForThisExportModel=Γι 'αυτό το μοντέλο εξαγωγών, οι επιλογές είναι απενεργοποιημένες
diff --git a/htdocs/langs/el_GR/admin.lang b/htdocs/langs/el_GR/admin.lang
index beb168bacfd..646a45f6f2a 100644
--- a/htdocs/langs/el_GR/admin.lang
+++ b/htdocs/langs/el_GR/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Περιοχή Εργαλείων Συστήματος
 SystemToolsAreaDesc=Αυτή η περιοχή παρέχει δυνατότητες διαχείρισης. Χρησιμοποιήστε το μενού για να επιλέξετε τη λειτουργία που ψάχνετε.
 Purge=Εκκαθάριση
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Διαγραφή ολών των προσωρινών αρχείων (δεν υπάρχει κίνδυνος απώλειας δεδομένων)
 PurgeDeleteTemporaryFilesShort=Διαγραφή προσωρινών αρχείων
 PurgeDeleteAllFilesInDocumentsDir=Διαγραφή όλων των αρχείων στον κατάλογο <b>%s</b>.  Προσωρινά αρχεία αλλά και βάση δεδομένων αντιγράφων ασφαλείας κάδου απορριμάτων, αρχεία που συνδέονται με τα στοιχεία (ΠΕΛ./ΠΡΟΜ., τιμολόγια, ...) και μεταφορτώνονται στη μονάδα ECM θα διαγραφούν.
 PurgeRunNow=Διαγραφή τώρα
 PurgeNothingToDelete=Δεν υπάρχει κατάλογος ή αρχείο για διαγραφή.
 PurgeNDirectoriesDeleted=<b>%s</b> αρχεία ή κατάλογοι που διαγραφήκαν.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Διαγραφή όλων των γεγονότων
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Δημιουργία αντιγράφου ασφαλείας
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=Για αυτό το βήμα μπορείτε να στείλετε πακέτα χρησιμοποιώντας ατό το εργαλείο: Επιλέξτε αρχείο ενθέματος
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Έκδοση Dolibarr
 CallUpdatePage=Μετάβαση στη σελίδα ενημέρωσης της δομής της βάσης δεδομένων και των δεδομένων: %s.
 LastStableVersion=Τελευταία σταθερή έκδοση
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Mantis integration
-Module1400Name=Accounting
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Δημιουργία εγγράφων
 Module1520Desc=Δημιουργία εγγράφου για μαζικά mail
 Module1780Name=Ετικέτες/Κατηγορίες
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Ενότητα για να προσφέρει μια σε απευθείας σύνδεση σελίδα πληρωμής με πιστωτική κάρτα με Paypal
 Module50400Name=Λογιστική (για προχωρημένους)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Απευθείας εκτύπωση (χωρίς να ανοίξετε τα έγγραφα) χρησιμοποιώντας Cups IPP διασύνδεση (Ο Εκτυπωτής πρέπει να είναι ορατός από τον server, και το CUPS πρέπει να έχει εγκατασταθεί στο server).
 Module55000Name=Δημοσκόπηση, έρευνα ή ψηφοφορία
@@ -751,8 +750,10 @@ Permission401=Read discounts
 Permission402=Create/modify discounts
 Permission403=Validate discounts
 Permission404=Delete discounts
-Permission510=Διαβάστε τους μισθούς
-Permission512=Δημιουργία/Τροποποίηση μισθών
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Διαγραφή μισθών
 Permission517=Εξαγωγή μισθών
 Permission520=Ανάγνωση δανείων
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
-PreviousDumpFiles=Available database backup dump files
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=Πρώτη ημέρα της εβδομάδας
 RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user <b>%s</b> or you must add -W option at end of command line to provide <b>%s</b> password.
diff --git a/htdocs/langs/el_GR/banks.lang b/htdocs/langs/el_GR/banks.lang
index 71a2a29c50f..3bcb97a3718 100644
--- a/htdocs/langs/el_GR/banks.lang
+++ b/htdocs/langs/el_GR/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Ελέγξτε την επιστροφή και
 BankAccountModelModule=Πρότυπα εγγράφων για τραπεζικούς λογαριασμούς
 DocumentModelSepaMandate=Πρότυπο SEPA. Χρήσιμο μόνο για κράτη μέλη της Ευρωζώνης.
 DocumentModelBan=Πρότυπο για εκτύπωση σελίδας με πληροφορίες BAN.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/el_GR/bills.lang b/htdocs/langs/el_GR/bills.lang
index f5e07bc1753..8035e666fa8 100644
--- a/htdocs/langs/el_GR/bills.lang
+++ b/htdocs/langs/el_GR/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Καρτέλα Τιμολογίου
 PredefinedInvoices=Προκαθορισμένα τιμολόγια
 Invoice=Τιμολόγιο
+PdfInvoiceTitle=Τιμολόγιο
 Invoices=Τιμολόγια
 InvoiceLine=Γραμμή Τιμολογίου
 InvoiceCustomer=Τιμολόγιο Πελάτη
diff --git a/htdocs/langs/el_GR/compta.lang b/htdocs/langs/el_GR/compta.lang
index f236f0314b3..9921263418e 100644
--- a/htdocs/langs/el_GR/compta.lang
+++ b/htdocs/langs/el_GR/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/el_GR/errors.lang b/htdocs/langs/el_GR/errors.lang
index 01bec9222fe..bdbd8b340bf 100644
--- a/htdocs/langs/el_GR/errors.lang
+++ b/htdocs/langs/el_GR/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/el_GR/install.lang b/htdocs/langs/el_GR/install.lang
index eddc83052b6..2436ee86eff 100644
--- a/htdocs/langs/el_GR/install.lang
+++ b/htdocs/langs/el_GR/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Είσοδος ιδιοκτήτη της βάσης δεδομένω
 PasswordAgain=Ξαναγράψτε τον κωδικό
 AdminPassword=Κωδικός ιδιοκτήτη της βάσης δεδομένων Dolibarr.
 CreateDatabase=Δημιουργία βάσης δεδομένων
-CreateUser=Δημιουργία ιδιοκτήτη
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Database server - Superuser access
 CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
-CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, useless if your database and your database login already exists (like when you're hosted by a web hosting provider).
 KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
 SaveConfigurationFile=Αποθήκευση τιμών
diff --git a/htdocs/langs/el_GR/main.lang b/htdocs/langs/el_GR/main.lang
index 13a87b7aef0..a1261e766ae 100644
--- a/htdocs/langs/el_GR/main.lang
+++ b/htdocs/langs/el_GR/main.lang
@@ -75,7 +75,8 @@ FileRenamed=Το αρχείο μετονομάστηκε με επιτυχία
 FileGenerated=Το αρχείο δημιουργήθηκε με επιτυχία
 FileSaved=The file was successfully saved
 FileUploaded=Το αρχείο ανέβηκε με επιτυχία
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=Επιλέχθηκε ένα αρχείο για επισύναψη, αλλά δεν έχει μεταφερθεί ακόμη. Πατήστε στο "Επισύναψη Αρχείου".
 NbOfEntries=Πλήθος εγγραφών
 GoToWikiHelpPage=Online βοήθεια (απαιτείται σύνδεση στο internet)
@@ -196,6 +197,7 @@ Parameter=Παράμετρος
 Parameters=Παράμετροι
 Value=Τιμή
 PersonalValue=Προσωπική Τιμή
+NewObject=New %s
 NewValue=Νέα Τιμή
 CurrentValue=Τρέχουσα Τιμή
 Code=Κωδικός
@@ -441,6 +443,7 @@ Reporting=Αναφορές
 Reportings=Αναφορές
 Draft=Προσχέδιο
 Drafts=Προσχέδια
+StatusInterInvoiced=
 Validated=Επικυρωμένο
 Opened=Άνοιγμα
 New=Νέο
@@ -727,6 +730,7 @@ SetBankAccount=Προσδιορίστε Τραπεζικό λογαριασμό
 AccountCurrency=Νόμισμα Λογαριασμού
 ViewPrivateNote=Προβολή σημειώσεων
 XMoreLines=%s γραμμή (ές) κρυμμένη
+ShowMoreLines=Show more lines
 PublicUrl=Δημόσια URL
 AddBox=Προσθήκη πεδίου
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Εμφάνιση καταχώρισης σε τραπεζικό
 GoIntoSetupToChangeLogo=Πηγαίνετε Αρχική - Ρυθμίσεις - Εταιρία να αλλάξει το λογότυπο ή πηγαίνετε Αρχική - Ρυθμίσεις - Προβολή για απόκρυψη.
 Deny=Άρνηση
 Denied=Άρνηση
+ListOf=List of %s
 ListOfTemplates=Κατάλογος των προτύπων
 Gender=Φύλο
 Genderman=Άνδρας
diff --git a/htdocs/langs/el_GR/modulebuilder.lang b/htdocs/langs/el_GR/modulebuilder.lang
index 19e5f19a1b0..0d4ad2307b4 100644
--- a/htdocs/langs/el_GR/modulebuilder.lang
+++ b/htdocs/langs/el_GR/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=Νέο Άρθρωμα
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Γράψε εδώ όλες τις γενικές πληροφορίες που περιγράφουν το άρθρωμα.
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/el_GR/multicurrency.lang b/htdocs/langs/el_GR/multicurrency.lang
index c733f753380..b45e32436f7 100644
--- a/htdocs/langs/el_GR/multicurrency.lang
+++ b/htdocs/langs/el_GR/multicurrency.lang
@@ -4,7 +4,8 @@ ErrorAddRateFail=Error in added rate
 ErrorAddCurrencyFail=Error in added currency
 ErrorDeleteCurrencyFail=Error delete fail
 multicurrency_syncronize_error=Σφάλμα συγχρονισμού:%s
-multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate)
+MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate
+multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate)
 CurrencyLayerAccount=CurrencyLayer API
 CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality<br />Get your <b>API key</b><br />If you use a free account you can't change the <b>currency source</b> (USD by default)<br />But if your main currency isn't USD you can use the <b>alternate currency source</b> to force you main currency<br /><br />You are limited at 1000 synchronizations per month
 multicurrency_appId=API key
diff --git a/htdocs/langs/el_GR/orders.lang b/htdocs/langs/el_GR/orders.lang
index dace308f76f..0579aa5a365 100644
--- a/htdocs/langs/el_GR/orders.lang
+++ b/htdocs/langs/el_GR/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Περιοχή παραγγελιών προμηθευτών
 OrderCard=Καρτέλα παραγγελίας
 OrderId=Αρ.Παραγγελίας
 Order=Παραγγελία
+PdfOrderTitle=Παραγγελία
 Orders=Παραγγελίες
 OrderLine=Γραμμή Παραγγελίας
 OrderDate=Ημερομηνία παραγγελίας
diff --git a/htdocs/langs/el_GR/other.lang b/htdocs/langs/el_GR/other.lang
index f56d6867144..4d05fd3ac6b 100644
--- a/htdocs/langs/el_GR/other.lang
+++ b/htdocs/langs/el_GR/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/el_GR/propal.lang b/htdocs/langs/el_GR/propal.lang
index 755f834b5fe..b577d02796f 100644
--- a/htdocs/langs/el_GR/propal.lang
+++ b/htdocs/langs/el_GR/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Σχέδιο Προσφοράς
 ProposalsOpened=Open commercial proposals
 Prop=Προσφορές
 CommercialProposal=Προσφορά
+PdfCommercialProposalTitle=Προσφορά
 ProposalCard=Καρτέλα Προσφοράς
 NewProp=Νέα Προσφορά
 NewPropal=Νέα Προσφορά
diff --git a/htdocs/langs/el_GR/salaries.lang b/htdocs/langs/el_GR/salaries.lang
index ae7fa33641f..e89361ff944 100644
--- a/htdocs/langs/el_GR/salaries.lang
+++ b/htdocs/langs/el_GR/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Mισθός
 Salaries=Μισθοί
diff --git a/htdocs/langs/el_GR/website.lang b/htdocs/langs/el_GR/website.lang
index 05e664122e3..22e4809b0d8 100644
--- a/htdocs/langs/el_GR/website.lang
+++ b/htdocs/langs/el_GR/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Διαγραφή ιστοχώρου
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=Περιεχόμενο CSS
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Βιβλιοθήκη πολυμέσων
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Επεξεργασία μενού
 EditPageMeta=Edit Meta
 EditPageContent=Επεξεργασία περιεχομένου
 Website=Ιστοτοπός
-Webpage=Ιστοσελίδα
-AddPage=Προσθήκη σελίδας
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Η προεπισκόπιση της ιστοσελίδας σας <strong>%s</strong> δεν είναι δυνατή. Πρέπει πρώτα να προσθέσετε μια σελίδα.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Η σελίδα '%s' από τον ιστότοπο %s διαγράφηκε
-PageAdded=Η σελίδα '%s' προστέθηκς
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=Προβολή χώρου σε νέα καρτέλα
 ViewPageInNewTab=Προβολή σελίδας σε νέα καρτέλα
 SetAsHomePage=Ορισμός σαν αρχική σελίδα
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/el_GR/workflow.lang b/htdocs/langs/el_GR/workflow.lang
index 50af24ee22a..29dfac8dc9a 100644
--- a/htdocs/langs/el_GR/workflow.lang
+++ b/htdocs/langs/el_GR/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Ροής εργασίας ρύθμιση μονάδας
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Κατατάσσει που συνδέονται με παραγγελία (ες) του πελάτη να χρεωθεί όταν το τιμολόγιο του πελάτη έχει οριστεί να καταβληθεί
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Κατατάσσει που συνδέονται με παραγγελία (ες) του πελάτη να χρεωθεί όταν το τιμολόγιο του πελάτη έχει επικυρωθεί
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/en_GB/accountancy.lang b/htdocs/langs/en_GB/accountancy.lang
index 4f1dbace022..832f0808b37 100644
--- a/htdocs/langs/en_GB/accountancy.lang
+++ b/htdocs/langs/en_GB/accountancy.lang
@@ -14,7 +14,6 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default finance accounts for ea
 AccountancyAreaDescSal=STEP %s: Define default finance accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default finance accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default finance accounts for donations. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default finance accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default finance accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define finance accounts for each bank accounts. For this, go to the card of each finance account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define finance accounts on your products/services. For this, use the menu entry %s.
@@ -40,12 +39,12 @@ ExpenseReportLines=Lines of expense reports to link
 ExpenseReportLinesDone=Linked lines of expense reports
 IntoAccount=Link line with the Financial account
 Ventilate=Link
+LineId=ID line
 EndProcessing=Process terminated
 Lineofinvoice=Invoice line
 NoAccountSelected=No finance account selected
 VentilatedinAccount=Linked successfully to the financial account
 NotVentilatedinAccount=Not linked to the financial account
-XLineSuccessfullyBinded=%s products/services successfully linked to an account
 XLineFailedToBeBinded=%s products/services were not linked to any finance account
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to link shown by page (maximum recommended : 50)
 ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin sorting the page "Links to do" by the most recent elements
@@ -69,7 +68,6 @@ NumPiece=Item number
 AccountingCategory=Finance account groups
 GroupByAccountAccounting=Group by finance account
 DelBookKeeping=Delete record in the Ledger
-DescJournalOnlyBindedVisible=This is a view of records that are linked to product/service accounts and can be recorded into the Ledger.
 FeeAccountNotDefined=Account for fees not defined
 ThirdPartyAccount=Third party account
 NumMvts=Transaction Number
@@ -93,7 +91,6 @@ DescVentilDoneExpenseReport=View here the list of the lines of expense reports a
 ValidateHistory=Link Automatically
 AutomaticBindingDone=Automatic link done
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this finance account because it is used
-MvtNotCorrectlyBalanced=Posting does not balance. Credit = %s. Debit = %s
 FicheVentilation=Link card
 GeneralLedgerIsWritten=Transactions are written to the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be processed. If there is no other error message, this is probably because they had already been processed.
diff --git a/htdocs/langs/en_GB/admin.lang b/htdocs/langs/en_GB/admin.lang
index 5c56c9dd01f..c3396304dae 100644
--- a/htdocs/langs/en_GB/admin.lang
+++ b/htdocs/langs/en_GB/admin.lang
@@ -24,15 +24,16 @@ CurrentValueSeparatorThousand=Thousands separator
 PositionByDefault=Default position
 MenusDesc=Menu managers set the content of the two menu bars (horizontal and vertical).
 MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and make permanently unreachable menu entries.<br />Some modules add menu entries (in menu <b>All</b> mostly). If you remove some of these entries by mistake, you can restore them by disabling and re-enabling the module.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for the Syslog module (no risk of losing data)
 PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory <b>%s</b>. All temporary files including database backup dumps, any files attached to elements (third parties, invoices, ...) and files uploaded into the ECM module will be deleted.
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted but no other data will be removed.
 ImportMySqlDesc=To import a backup file, you must use the mysql command from the command line:
 ImportPostgreSqlDesc=To import a backup file, you must use the pg_restore command from the command line:
 FileNameToGenerate=File name to be generated\n
 CommandsToDisableForeignKeysForImportWarning=This is mandatory if you want to restore your sql dumps later
+GenericMaskCodes4a=<u>Example on the 99th %s of the third party The Company, with date 2007-01-31:</u><br>
 ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
 Module330Desc=Bookmark management
+Module50200Name=PayPal
 Permission300=Read barcodes
 Permission301=Create/modify barcodes
 Permission302=Delete barcodes
diff --git a/htdocs/langs/en_GB/compta.lang b/htdocs/langs/en_GB/compta.lang
index 48f980f4449..3bae9797c16 100644
--- a/htdocs/langs/en_GB/compta.lang
+++ b/htdocs/langs/en_GB/compta.lang
@@ -1,4 +1,8 @@
 # Dolibarr language file - Source file is en_US - compta
+VATReceived=VAT received
+VATToCollect=VAT purchases
+VATSummary=VAT Balance
+VATPaid=VAT paid
 CheckReceipt=Cheque deposit
 CheckReceiptShort=Cheque deposit
 NewCheckDeposit=New cheque deposit
diff --git a/htdocs/langs/en_GB/website.lang b/htdocs/langs/en_GB/website.lang
index 3bed7990483..70a04d16ce6 100644
--- a/htdocs/langs/en_GB/website.lang
+++ b/htdocs/langs/en_GB/website.lang
@@ -1,4 +1,12 @@
 # Dolibarr language file - Source file is en_US - website
 WebsiteSetupDesc=Create here as many entries for websites as you need. Then go into menu Websites to edit them.
+EditCss=Edit Style/CSS or HTML header
+EditPageContent=Edit Content
 Website=Website
+Webpage=Web page/container
+AddPage=Add page/container
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> is not yet available. You must first add a page.
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
diff --git a/htdocs/langs/en_IN/compta.lang b/htdocs/langs/en_IN/compta.lang
index 6e6975592c2..74422d49b9d 100644
--- a/htdocs/langs/en_IN/compta.lang
+++ b/htdocs/langs/en_IN/compta.lang
@@ -1,2 +1,6 @@
 # Dolibarr language file - Source file is en_US - compta
+VATReceived=VAT received
+VATToCollect=VAT purchases
+VATSummary=VAT Balance
+VATPaid=VAT paid
 ProposalStats=Statistics on quotations
diff --git a/htdocs/langs/en_IN/main.lang b/htdocs/langs/en_IN/main.lang
index 13a90b526c4..80f13de139f 100644
--- a/htdocs/langs/en_IN/main.lang
+++ b/htdocs/langs/en_IN/main.lang
@@ -24,7 +24,3 @@ LinkToProposal=Link to quotation
 LinkToSupplierProposal=Link to supplier quotation
 SearchIntoCustomerProposals=Customer quotations
 SearchIntoSupplierProposals=Supplier quotations
-
-AmountVAT=Amount tax IGST
-AmountLT1=Amount tax CGST
-AmountLT2=Amount tax SGST
diff --git a/htdocs/langs/es_CL/compta.lang b/htdocs/langs/es_CL/compta.lang
index efc65af3d5e..23af47f67e4 100644
--- a/htdocs/langs/es_CL/compta.lang
+++ b/htdocs/langs/es_CL/compta.lang
@@ -2,6 +2,10 @@
 Param=Configurar
 Debit=Débito
 Credit=Crédito
+VATReceived=VAT received
+VATToCollect=VAT purchases
+VATSummary=VAT Balance
+VATPaid=VAT paid
 ProposalStats=Estadísticas de cotizaciones
 Dispatched=Despachado
 ToDispatch=Para despachar
diff --git a/htdocs/langs/es_CL/workflow.lang b/htdocs/langs/es_CL/workflow.lang
index 866f3929198..e836a302760 100644
--- a/htdocs/langs/es_CL/workflow.lang
+++ b/htdocs/langs/es_CL/workflow.lang
@@ -2,12 +2,4 @@
 WorkflowSetup=Configuración del módulo de flujo de trabajo
 WorkflowDesc=Este módulo está diseñado para modificar el comportamiento de las acciones automáticas en la aplicación. Por defecto, el flujo de trabajo está abierto (puede hacer las cosas en el orden que desee). Usted puede activar las acciones automáticas que le interesen.
 ThereIsNoWorkflowToModify=No hay modificaciones de flujo de trabajo disponibles con los módulos activados.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crear un pedido de cliente automáticamente a la firma de una cotización
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Crear automáticamente una factura de cliente después de que una propuesta comercial es fimada
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Crear automáticamente una factura de cliente después de que un contrato es validado
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Crear automáticamente una factura de cliente después de cerrar una orden de cliente
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Clasificar como facturada la cotización cuando el pedido de cliente relacionado se clasifique como pagado
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Clasificar órden(es) fuente vinculadas del cliente a facturar cuando la factura del cliente se establece a pago
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Clasificar órden(es) fuente vinculadas del cliente a facturar cuando se valida la factura del cliente
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Clasificar propuesta de fuente vinculada a facturar cuando  la factura del cliente es validada
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Clasificar orden de origen vinculado a enviar cuando un envío es validado y la cantidad enviada es la misma que en la orden
diff --git a/htdocs/langs/es_CO/compta.lang b/htdocs/langs/es_CO/compta.lang
index 006f13c57a0..5c76c2dc287 100644
--- a/htdocs/langs/es_CO/compta.lang
+++ b/htdocs/langs/es_CO/compta.lang
@@ -1,4 +1,8 @@
 # Dolibarr language file - Source file is en_US - compta
 Param=Configuración
+VATReceived=VAT received
+VATToCollect=VAT purchases
+VATSummary=VAT Balance
+VATPaid=VAT paid
 ByThirdParties=Por empresa
 CodeNotDef=No definida
diff --git a/htdocs/langs/es_EC/admin.lang b/htdocs/langs/es_EC/admin.lang
index 1c53b65c99c..cdea66549c4 100644
--- a/htdocs/langs/es_EC/admin.lang
+++ b/htdocs/langs/es_EC/admin.lang
@@ -1,4 +1,323 @@
 # Dolibarr language file - Source file is en_US - admin
-AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe<br>Example for ClamAv: /usr/bin/clamscan
-AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib"
-ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
+VersionProgram=Versión del programa
+VersionLastInstall=Versión de instalación inicial
+VersionLastUpgrade=Actualización de la versión más reciente
+VersionUnknown=Desconocido
+VersionRecommanded=Recomendado
+FileCheckDesc=Esta herramienta le permite comprobar la integridad de los archivos y la configuración de la aplicación, la comparación de cada archivo con las oficiales. Valor de algunas constantes de configuración pueden ser también verificados. Puede utilizar esta herramienta para detectar si algunos archivos fueron modificados por un hacker por ejemplo.
+FileIntegrityIsOkButFilesWereAdded=La comprobación de integridad de archivos ha pasado, sin embargo, se han añadido algunos archivos nuevos.
+FileIntegritySomeFilesWereRemovedOrModified=La comprobación de integridad de archivos ha fallado. Algunos archivos fueron modificados, eliminados o añadidos.
+GlobalChecksum=Verificación global
+MakeIntegrityAnalysisFrom=Hacer análisis de la integridad de los archivos de la aplicación de
+LocalSignature=Firma local incrustada (menos confiable)
+RemoteSignature=Remote distant signature (más confiable)
+FilesMissing=Archivos perdidos
+FilesAdded=Archivos agregados
+FileCheckDolibarr=Comprobar la integridad de los archivos de la aplicación
+AvailableOnlyOnPackagedVersions=El archivo local para la comprobación de la integridad sólo está disponible cuando la aplicación se instala desde un paquete oficial
+XmlNotFound=Archivo de integridad Xml no se encontró
+SessionId=ID de sesión
+SessionSaveHandler=Manejador para guardar sesiones
+SessionSavePath=Localización del almacenamiento de las sesiones
+ConfirmPurgeSessions=Es lo que realmente desea purgar todas las sesiones? Esto desconectará todos los usuarios (excepto usted mismo).
+NoSessionListWithThisHandler=Guardar controlador de sesión configurado en su PHP no permite la lista de todas las sesiones en ejecución.
+ConfirmLockNewSessions=¿Está seguro de que desea restringir cualquier conexión Dolibarr nueva a sí mismo. Solo el usuario <b>%s</b> podrá conectarse después de eso.
+UnlockNewSessions=Quitar el bloqueo de conexión
+Sessions=Sesión de usuarios
+WebUserGroup=Usuario/grupo del servidor web
+NoSessionFound=Su PHP parece no permitir la lista de sesiones activas. El directorio utilizado para guardar las sesiones (<b>%s</b>) puede estar protegido (por ejemplo, por los permisos del sistema operativo o por la directiva PHP open_basedir).
+DBStoringCharset=Conjunto de caracteres de base de datos para almacenar datos
+DBSortingCharset=Conjunto de caracteres de base de datos para ordenar los datos
+WarningModuleNotActive=Módulo <b>%s</b> debe estar habilitado
+WarningOnlyPermissionOfActivatedModules=Solamente los permisos relacionados con los módulos activados se muestran aquí. Puede activar otros módulos desde: Inicio-> Configuración-> Página Módulos.
+DolibarrSetup=Dolibarr instalar o actualizar
+GUISetup=Pantalla
+SetupArea=Area de configuración
+UploadNewTemplate=Subir nueva(s) plantilla(s)
+FormToTestFileUploadForm=Formulario para probar la carga del archivo (según la configuración)
+IfModuleEnabled=Nota: si es efectivo sólo si el módulo <b>%s</b> está activado
+RemoveLock=Eliminar el archivo <b>%s</b> si es que existe para permitir el uso de la herramienta de actualización.
+RestoreLock=Restaurar archivo <b>%s</b>, con permiso de lectura solamente, para deshabilitar cualquier uso de la herramienta de actualización.
+SecuritySetup=Configuración de seguridad
+SecurityFilesDesc=Definir aquí las opciones relacionadas con la seguridad acerca de la carga de archivos.
+ErrorModuleRequirePHPVersion=Error, este módulo requiere la versión de PHP%s o superior
+ErrorModuleRequireDolibarrVersion=Error, este módulo requiere la versión Dolibarr %s o superior
+ErrorDecimalLargerThanAreForbidden=Error, una precisión mayor que <b>%s</b> no es compatible.
+DictionarySetup=Configuración del diccionario
+ErrorReservedTypeSystemSystemAuto=El valor 'sistema' y 'sistemamauto' esta reservado. Puede utilizar 'user' como valor para añadir su propio registro.
+DisableJavascript=Desactivar las funciones JavaScript y Ajax (Recomendado para navegadores de texto o personas ciegas)
+UseSearchToSelectCompanyTooltip=Además, si usted tiene un gran número de clientes (> 100 000), puede aumentar la velocidad estableciendo COMPANY_DONOTSEARCH_ANYWHERE constante en 1 en: Configuración-> Otros. La búsqueda se limitará entonces al inicio de la cadena.
+UseSearchToSelectContactTooltip=Además, si tiene un gran número de clientes (> 100 000), puede aumentar la velocidad estableciendo constante CONTACT_DONOTSEARCH_ANYWHERE en 1 en: Configuración-> Otros. La búsqueda se limitará entonces al inicio de la cadena.
+DelaiedFullListToSelectCompany=Espere a que presione una tecla antes de cargar el contenido de la lista combinada de clientes (Esto puede aumentar el rendimiento si tiene un gran número de clientes, pero es menos conveniente)
+DelaiedFullListToSelectContact=Espere que presione una tecla antes de cargar el contenido de la lista de contactos (Esto puede aumentar el rendimiento si tiene un gran número de contactos, pero es menos conveniente)
+NumberOfKeyToSearch=Número de caracteres para activar la búsqueda: %s
+NotAvailableWhenAjaxDisabled=No disponible cuando Ajax esta inhabilitado
+AllowToSelectProjectFromOtherCompany=En el documento de un cliente, puede elegir un proyecto vinculado a otro cliente
+JavascriptDisabled=JavaScript desactivado
+UsePreviewTabs=Usar pestañas de vista previa
+ShowPreview=Mostrar vista previa
+CurrentTimeZone=Zona horaria PHP (servidor)
+MySQLTimeZone=Zona horaria MySQL (base de datos)
+TZHasNoEffect=Las fechas son almacenadas y devueltas por el servidor de base de datos como si estuvieran guardadas como cadena enviada. La zona horaria sólo tiene efecto cuando se utiliza la función UNIX_TIMESTAMP (que no debe ser utilizada por Dolibarr, por lo que la base de datos TZ no debería tener ningún efecto, incluso si se modificó después de introducir los datos).
+Space=Espacio
+Index=Indice
+NextValue=siguiente valor
+NextValueForInvoices=Siguiente valor (facturas)
+NextValueForCreditNotes=Siguiente valor (notas de crédito)
+NextValueForDeposit=Siguiente valor (pago inicial)
+NextValueForReplacements=Siguiente valor (sustituciones)
+MustBeLowerThanPHPLimit=Nota: Tu PHP limita cada tamaño de archivo a <b>%s</b>%s, sea cual sea el valor de este parámetro
+NoMaxSizeByPHPLimit=Nota: No hay límite en tu configuración de PHP
+MaxSizeForUploadedFiles=Tamaño máximo de los archivos cargados (0 para rechazar cualquier subida)
+UseCaptchaCode=Utilizar código gráfico (CAPTCHA) en la página de inicio de sesión
+AntiVirusCommand=Ruta completa al comando antivirus
+AntiVirusCommandExample=Ejemplo para ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe<br>Example for ClamAv: /usr/bin/clamscan
+AntiVirusParam=Más parámetros de línea de comandos
+ComptaSetup=Configuración del módulo de contabilidad
+UserSetup=Configuración de gestión de usuarios
+MultiCurrencySetup=Configuración de múltiples divisas
+MenuIdParent=ID del menú principal
+DetailMenuIdParent=ID del menú principal (vacío para un menú superior)
+DetailPosition=Orden por número para definir la posición del menú
+AllMenus=Todas
+NotConfigured=Módulo/aplicación no está configurado
+SetupShort=Configurar
+OtherSetup=Otras configuraciones
+CurrentValueSeparatorThousand=separador de miles
+Destination=Destino
+IdModule=Módulo de Identificación
+IdPermissions=ID de permisos
+LanguageBrowserParameter=Parámetros %s
+ClientTZ=Zona horaria del cliente (usuario)
+ClientHour=Hora del cliente (usuario)
+OSTZ=Zona horaria del servidor
+PHPTZ=Zona horaria del servidor PHP
+DaylingSavingTime=Horario de verano
+CurrentSessionTimeOut=Tiempo de espera de la sesión actual
+YouCanEditPHPTZ=Para establecer una zona horaria diferente PHP (no es obligatorio), se puede tratar de añadir un archivo .htaccess con una línea como esta "SetEnv TZ Europe/Paris"
+HoursOnThisPageAreOnServerTZ=Advertencia, al contrario de otras pantallas, las horas de esta página no se encuentran en su zona horaria local, sino en la zona horaria del servidor.
+MaxNbOfLinesForBoxes=Número máximo de líneas para los widgets
+PositionByDefault=Orden predeterminada
+MenusDesc=Los administradores de menús establecen el contenido de las dos barras de menú (horizontal y vertical).
+MenusEditorDesc=El editor de menús le permite definir entradas de menú personalizadas. Utilícelo cuidadosamente para evitar inestabilidad y entradas de menú permanentemente inaccesibles. <br/>Algunos módulos añaden entradas de menú (en el menú <b>Todos</b> en su mayoría). Si elimina algunas de estas entradas por error, puede restaurarlas desactivando y reactivando el módulo.
+MenuForUsers=Menú para usuarios
+SystemInfo=Información del sistema
+SystemToolsArea=Area de herramientas del sistema
+SystemToolsAreaDesc=Esta zona proporciona funciones de administración. Utilice el menú para elegir la función que está buscando.
+Purge=Purgar
+PurgeAreaDesc=Esta página le permite borrar todos los archivos generados o almacenados por Dolibarr (archivos temporales o todos los archivos en el directorio <b>%s</b>). El uso de esta función no es necesaria. Se proporciona como una solución para los usuarios cuyos Dolibarr está alojado en un proveedor que no ofrece permisos para eliminar los archivos generados por el servidor web.
+PurgeDeleteLogFile=Eliminar archivo de registro <b>%s</b> definido para el módulo de Registro del Sistema (Syslog) (sin riesgo de perder datos)
+PurgeDeleteTemporaryFiles=Eliminar todos los archivos temporales (no hay riesgo de pérdida de datos)
+PurgeDeleteAllFilesInDocumentsDir=Elimine todos los archivos del directorio <b>%s</b>. Los archivos temporales, pero también los volcados de copia de seguridad de la base de datos, los archivos adjuntos a elementos (clientes, facturas, ...) y cargados en el módulo ECM se eliminarán.
+PurgeRunNow=Purgar ahora
+PurgeNothingToDelete=Sin directorio o archivos que desea eliminar.
+PurgeNDirectoriesDeleted=<b>%s</b> archivos o directorios eliminados.
+PurgeAuditEvents=Purgar todos los eventos de seguridad
+ConfirmPurgeAuditEvents=¿Está seguro de que desea eliminar todos los eventos de seguridad? Todos los registros de seguridad se eliminarán, no se eliminarán otros datos.
+GenerateBackup=Generar copias de seguridad
+Restore=Restaurar
+RunCommandSummary=La copia de seguridad se ha puesto en marcha con el siguiente comando
+BackupResult=Resultado de la copia de seguridad
+BackupFileSuccessfullyCreated=La copia de seguridad se generó correctamente
+YouCanDownloadBackupFile=Los archivos generados ahora se pueden descargar
+NoBackupFileAvailable=No hay archivos de copia de seguridad disponibles
+ToBuildBackupFileClickHere=Para crear un archivo de copia de seguridad, haga clic <a href="%s">aqui</a>.
+ImportMySqlDesc=Para importar un archivo de copia de seguridad, debe utilizar el comando mysql desde la línea de comandos:
+ImportPostgreSqlDesc=Para importar un archivo de copia de seguridad, debe utilizar el comando pg_restore desde la línea de comandos:
+FileNameToGenerate=Nombre del archivo para generar
+CommandsToDisableForeignKeysForImport=Comando para deshabilitar claves externas en la importación
+CommandsToDisableForeignKeysForImportWarning=Obligatorio si desea restaurar su copia de seguridad de SQL más tarde
+ExportCompatibility=Compatibilidad de archivo de exportación generados
+MySqlExportParameters=Parámetros de exportación de MySQL
+PostgreSqlExportParameters=Parámetros de exportación de PostgreSQL
+UseTransactionnalMode=Utilice el modo transaccional
+FullPathToMysqldumpCommand=Ruta completa al comando mysqldump
+FullPathToPostgreSQLdumpCommand=Ruta completa al comando pg_dump
+AddDropDatabase=Añadir comando DROP DATABASE
+AddDropTable=Añadir comando DROP TABLE
+NameColumn=Nombre de columnas
+ExtendedInsert=INSERT extendida
+NoLockBeforeInsert=No hay comandos de bloqueo alrededor de INSERT
+DelayedInsert=Inserción retardada
+EncodeBinariesInHexa=Codificar los datos binarios en hexadecimal
+IgnoreDuplicateRecords=Ignorar los errores de registro duplicado (INSERT IGNORE)
+AutoDetectLang=Detección automática (idioma del navegador)
+FeatureDisabledInDemo=Función desactivada en demostración
+FeatureAvailableOnlyOnStable=Característica sólo está disponible en las versiones oficiales estables
+BoxesDesc=Los widgets son componentes que muestran algunos datos que se pueden agregar para personalizar algunas páginas. Puede elegir entre mostrar el widget o no mediante la selección de la página de destino y haciendo clic en 'Activar', o haciendo clic en el cubo de basura para desactivarlo.
+OnlyActiveElementsAreShown=Solo se muestran elementos de <a href="%s">módulos habilitados</a> are shown.
+ModulesDesc=Los módulos Dolibarr definen qué aplicación / función está habilitada en el software. Algunas aplicaciones / módulos requieren permisos que debe otorgar a los usuarios, después de activarlos. Haga clic en el botón on / off para activar un módulo / aplicación.
+ModulesDeployDesc=Si los permisos de su sistema de archivos lo permiten, puede utilizar esta herramienta para implementar un módulo externo. El módulo estará entonces visible en la pestaña  <strong>%s</strong>.
+GoModuleSetupArea=Para implementar / instalar un nuevo módulo, vaya al área de configuración del módulo en <a href="%s">%s</a>.
+DoliStoreDesc=DoliStore, el mercado oficial de módulos externos ERP/CRM de Dolibarr
+DoliPartnersDesc=Lista de las empresas que ofrecen módulos o funciones desarrolladas a medida (Nota: cualquier persona con experiencia en programación PHP puede proporcionar desarrollos a medida para un proyecto de código abierto)
+BoxesAvailable=Widgets disponibles
+BoxesActivated=Widgets activados
+ActiveOn=Activado en
+SourceFile=Archivo fuente
+AvailableOnlyIfJavascriptAndAjaxNotDisabled=Disponible solamente si Javascript no está desactivado
+Required=Necesario
+UsedOnlyWithTypeOption=Utilizado solo por alguna opción de agenda
+DoNotStoreClearPassword=No almacene las contraseñas en la base de datos, pero almacene sólo el valor cifrado (Activado recomendado)
+MainDbPasswordFileConfEncrypted=Contraseña de base de datos cifrada en conf.php (activada recomendado)
+InstrucToEncodePass=Para que la contraseña se codifique en el archivo <b>conf.php</b>, reemplazar la línea <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
+InstrucToClearPass=Para que la contraseña se descodifique (borrar) en el archivo <b>conf.php</b>, reemplazar la línea <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
+ProtectAndEncryptPdfFiles=Protección de archivos generados en pdf (Activado NO recomendado, rompe la generación de pdf en masa)
+ProtectAndEncryptPdfFilesDesc=La protección de un documento PDF lo mantiene disponible para leer e imprimir con cualquier navegador PDF. Sin embargo, la edición y la copia ya no son posibles. Tenga en cuenta que el uso de esta característica hace que la creación de un conjunto global de PDF no funcione.
+Feature=Característica
+Developpers=Desarrolladores/colaboradores
+OfficialWebSite=Dolibarr sitio web internacional oficial
+OfficialWiki=Documentación de Dolibarr en Wiki
+OfficialMarketPlace=Mercado oficial de módulos/complementos externos
+OfficialWebHostingService=Servicios de alojamiento web referenciados (Cloud hosting)
+ReferencedPreferredPartners=Socios Preferidos
+SocialNetworks=Redes Sociales
+ForDocumentationSeeWiki=Para la documentación del usuario o del desarrollador (Doc, Preguntas Frecuentes...),<br>Eche un vistazo a la Wiki Dolibarr:<br><b><a href="%s" target="_blank">%s</a></b>
+ForAnswersSeeForum=Para cualquier otra pregunta/ayuda, puede utilizar el foro Dolibarr:<br><b><a href="%s" target="_blank">%s</a></b
+HelpCenterDesc1=Esta área le puede ayudar a obtener un servicio de ayuda de Dolibarr.
+HelpCenterDesc2=Una parte de este servicio está disponible en <b>Inglés solamente</b>.
+CurrentMenuHandler=Controlador de menús actual
+SpaceX=Espacio X
+SpaceY=Espacio Y
+NoticePeriod=Periodo de notificación
+Emails=Correos electrónicos
+EMailsSetup=Configuración de correo electrónico
+EMailsDesc=Esta página le permite sobrescribir los parámetros de PHP para el envío de correos electrónicos. En la mayoría de los casos en Unix OS/Linux, la configuración de PHP es correcta y estos parámetros son inútiles.
+MAIN_MAIL_SMTP_PORT=SMTP/SMTPS puerto (Por defecto en php.ini: <b>%s</b>)
+MAIN_MAIL_SMTP_SERVER=SMTP/Host SMTPS (Por defecto en php.ini: <b>%s</b>)
+MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS puerto (No está definido en PHP en sistemas Unix)
+MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (No está definido en PHP en sistemas Unix)
+MAIN_MAIL_EMAIL_FROM=Dirección electróica del remitente para correos electrónicos automáticos (por defecto en php.ini: <b>%s</b>)
+MAIN_MAIL_ERRORS_TO=Remitente de correo electrónico se utilizara para devolver los correos electrónicos enviados con errores
+MAIN_MAIL_AUTOCOPY_TO=Enviar sistemáticamente una copia carbon oculta (CCO) de todos los correos enviados a
+MAIN_DISABLE_ALL_MAILS=Desactivar todos los envíos de correo electrónico (con fines de prueba o demos)
+MAIN_MAIL_SENDMODE=Método a utilizar para enviar mensajes de correo electrónico
+MAIN_MAIL_SMTPS_ID=ID de SMTP si se requiere autenticación
+MAIN_MAIL_SMTPS_PW=Contraseña SMTP si se necesita autenticación
+MAIN_MAIL_EMAIL_TLS=Usar cifrado TLS (SSL)
+MAIN_MAIL_EMAIL_STARTTLS=Usar cifrado TLS (STARTTLS)
+MAIN_DISABLE_ALL_SMS=Desactivar todos los envíos de SMS (con fines de prueba o demos)
+MAIN_SMS_SENDMODE=Método a utilizar para enviar SMS
+MAIN_MAIL_SMS_FROM=Número de teléfono del remitente predeterminado para el envío de SMS
+MAIN_MAIL_DEFAULT_FROMTYPE=Correo electrónico del remitente por defecto para envíos manuales (correo electrónico del usuario o correo electrónico de la empresa)
+UserEmail=Correo electrónico del usuario
+CompanyEmail=Correo de la empresa
+FeatureNotAvailableOnLinux=Característica no disponible en sistemas Unix. Comprobar el programa Sendmail localmente.
+SubmitTranslation=Si la traducción para este idioma no es completo o presente errores, puede corregir esto mediante la edición de archivos en el directorio <b>langs/%s</b> y presentar su cambio a www.transifex.com/dolibarr-association/dolibarr/
+SubmitTranslationENUS=Si la traducción para este idioma no es completo o presente errores, puede corregir esto editando los archivos en el directorio <b>langs/%s</b> y enviar archivos modificados a dolibarr.org/forum o para los desarrolladores en github.com / Dolibarr / Dolibarr.
+ModuleSetup=Módulo de configuración
+ModulesSetup=Módulos de configuración/Aplicación
+ModuleFamilyCrm=Gestión de Relaciones con el Cliente (CRM)
+ModuleFamilyHr=Gestión de Recursos Humanos (HR)
+ModuleFamilyProjects=Proyectos/trabajo colaborativo
+ModuleFamilyTechnic=Herramientas multi-módulos
+ModuleFamilyFinancial=Módulos financieros (Contabilidad/Tesoreria)
+ModuleFamilyECM=Gestión de contenidos electrónicos (ECM)
+ModuleFamilyPortal=sitios web y otras aplicaciones frontales
+ModuleFamilyInterface=Interfaces con sistemas externos
+MenuHandlers=Manejadores de menús
+MenuAdmin=Editor de menús
+DoNotUseInProduction=No utilizar en producción
+ThisIsProcessToFollow=Esto es pasos a procesar:
+ThisIsAlternativeProcessToFollow=Esta es una configuración alternativa para procesar manualmente:
+FindPackageFromWebSite=Encontrar un paquete que proporciona la función que desea (por ejemplo, en el sitio web oficial de %s).
+DownloadPackageFromWebSite=Descargar paquete (por ejemplo, desde el sitio web oficial de %s).
+UnpackPackageInDolibarrRoot=Descomprimir los archivos empaquetados en el directorio de servidor dedicado a Dolibarr: <b>%s</b>
+UnpackPackageInModulesRoot=Para implementar/instalar un módulo externo, descomprimir los archivos empaquetados en el directorio del servidor dedicado a los módulos: <b>%s</b>
+SetupIsReadyForUse=La implementación del módulo está terminada. Sin embargo, debe habilitar y configurar el módulo en su aplicación, vaya a la página para configurar los módulos: <a href="%s">%s</a>.
+NotExistsDirect=El directorio raíz alternativo no está definido en un directorio existente.<br>
+InfDirAlt=Desde la versión 3, es posible definir un directorio raíz alternativo. Esto le permite almacenar, en un directorio dedicado, plug-ins y plantillas personalizadas.<br>Sólo cree un directorio en la raíz de Dolibarr (por ejemplo: personalizado).<br>
+YouCanSubmitFile=Para este paso, puede enviar paquetes utilizando esta herramienta: Seleccionar el archivo de módulo
+CurrentVersion=Dolibarr versión actual
+CallUpdatePage=Vaya a la página que actualiza la estructura y los datos de la base de datos: %s.
+LastStableVersion=La última versión estable
+LastActivationAuthor=Última autor de activación
+LastActivationIP=Última activación IP
+UpdateServerOffline=Actualización de servidor fuera de línea
+WithCounter=Administrar un contador
+GenericMaskCodes=Puede ingresar cualquier máscara de numeración. En esta máscara, podrían utilizarse las siguientes etiquetas:<br><b>{000000}</b> Corresponde a un número que se incrementará en cada %s. Introduzca tantos ceros como la longitud deseada del contador. El contador se completará con ceros de la izquierda para tener tantos ceros como la máscara. <br><b>{000000+000}</b> Igual que la anterior, pero se aplica un desplazamiento correspondiente al número a la derecha del signo +, comenzando en la primera %s. <br><b>{000000@x}</b> Igual a anterior pero el contador se restablece a cero cuando se alcanza el mes x (x entre 1 y 12, o 0 para usar los primeros meses del año fiscal definido en su configuración o 99 para restablecer a cero cada mes). Si se utiliza esta opción y x es 2 o superior, la secuencia {yy}{mm} or {yyyy}{mm} también se requiere. <br><b>{dd}</b> día (01 to 31).<br><b>{mm}</b> mes (01 to 12).<br><b>{yy}</b>, <b>{yyyy}</b> o <b>{y}</b> año más de 2, 4 o 1 número. <br>
+GenericMaskCodes2=<b>{cccc}</b> El código de cliente en n caracteres<br><b>{cccc000}</b> El código del cliente en n caracteres es seguido por un contador dedicado para el cliente. Este contador dedicado al cliente se restablece al mismo tiempo que el contador global.<br><b>{tttt}</b> El código de tipo de cliente/proveedor en n caracteres (ver menú Inicio - Configuración - Diccionario - Tipos de cliente/proveedor). Si agrega esta etiqueta, el contador será diferente para cada tipo de cliente/proveedor.<br>
+GenericMaskCodes3=Todos los demás caracteres de la máscara permanecerán intactos.<br>No se permiten espacios.<br>
+GenericMaskCodes4a=<u>Ejemplo en el %s 99 de las empresas externas, con fecha 2007-01-31:</u><br>
+GenericMaskCodes4b=<u>Ejemplo de cliente/proveedor creados en 2007-03-01:</u><br>
+GenericMaskCodes4c=<u>Ejemplo de producto creado en 2007-03-01:</u><br>
+GenericMaskCodes5=<b>ABC{yy}{mm}-{000000}</b> dará <b>ABC0701-000099</b><br><b>{0000+100@1}-ZZZ/{dd}/XXX</b> dará <b>0199-ZZZ/31/XXX</b><br><b>IN{yy}{mm}-{0000}-{t}</b> dará <b>IN0701-0099-A</b> si el tipo de empresa es 'Responsable Inscripto' con código para el tipo que es 'A_RI'
+GenericNumRefModelDesc=Devuelve un número personalizable de acuerdo con una máscara definida.
+ServerAvailableOnIPOrPort=Servidor está disponible en la dirección <b>%s</b> on port <b>%s</b>
+ServerNotAvailableOnIPOrPort=Servidor no está disponible en la dirección <b>%s</b> on port <b>%s</b>
+DoTestServerAvailability=Probar conectividad del servidor
+DoTestSend=Prueba de envío
+DoTestSendHTML=Prueba de envío HTML
+ErrorCantUseRazIfNoYearInMask=Error, no puede utilizar la opción @ para restablecer el contador cada año si la secuencia {aa} o {aaaa} no está en la máscara.
+ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, no se puede utilizar la opción @ si la secuencia {aa}{mm} o {aaaa}{mm} no está en la máscara.
+UMask=Parámetro UMask para los nuevos archivos en el sistema de archivos de Unix/Linux/BSD/Mac.
+UMaskExplanation=Este parámetro le permite definir los permisos establecidos de forma predeterminada en los archivos creados por Dolibarr en el servidor (durante la carga, por ejemplo).<br> Debe ser el valor octal (por ejemplo, 0666 significa leer y escribir para todos).<br> Este parámetro es inútil en un servidor Windows.
+SeeWikiForAllTeam=Echar un vistazo a la página wiki para la lista completa de todos los actores y su organización
+UseACacheDelay=Retardo para el almacenamiento en caché de la respuesta de exportación en segundos (0 o vacío para no caché)
+DisableLinkToHelpCenter=Ocultar enlace "<b>Necesita ayuda o soporte</b>" en la página de inicio de sesión
+AddCRIfTooLong=No hay envoltura automática, por lo que si la línea está fuera de la página de los documentos porque es demasiado larga, debe agregar devoluciones de carro en la zona de texto.
+ConfirmPurge=¿Seguro que desea ejecutar esta purga?<br>Esto eliminará definitivamente todos los archivos de datos y no hay forma de restaurarlos (ECM archivos, archivos adjuntos ...).
+MinLength=Longitud mínima
+LanguageFilesCachedIntoShmopSharedMemory=Archivos .lang cargados en la memoria compartida
+ExamplesWithCurrentSetup=Ejemplos con la configuración actual en ejecución
+ListOfDirectories=Lista de directorios plantillas OpenDocument
+ListOfDirectoriesForModelGenODT=Lista de directorios que contienen archivos de plantillas con formato OpenDocument.<br><br> Ponga aquí la ruta completa de los directorios.<br> Agregue un transporte entre cada directorio.<br> Para añadir un directorio del módulo GED, añádalo aquí <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br> Los archivos de esos directorios deben finalizar con <b>.odt</b> or <b>.ods</b>.
+NumberOfModelFilesFound=Número de archivos de plantillas ODT/ODS que se encuentran en esos directorios
+FollowingSubstitutionKeysCanBeUsed=<br>Para saber cómo crear sus plantillas de documentos ODT, antes de guardarlos en esos directorios, leer la documentación wiki:
+FirstnameNamePosition=Posición del Nombre / Apellido
+DescWeather=Las siguientes imágenes se mostrarán en el tablero cuando el número de acciones tardías alcance los siguientes valores:
+KeyForWebServicesAccess=Clave para utilizar Servicios Web (parámetro "dolibarrkey" en servicios web)
+TestSubmitForm=Formulario de prueba de entrada
+ThisForceAlsoTheme=El uso de este administrador de menús también utilizará su propio tema, sea cual sea la elección del usuario. También este administrador de menús especializado para smartphones no funciona en todos los teléfonos inteligentes. Utilice otro administrador de menús si experimenta problemas en la suya.
+ThemeDir=Directorio de Skins
+ConnectionTimeout=Tiempo de espera de conexión
+ResponseTimeout=Tiempo de espera de respuesta
+SmsTestMessage=Mensaje de prueba desde __PHONEFROM__ a __PHONETO__
+ModuleMustBeEnabledFirst=Módulo <b>%s</b> debe estar habilitado primero si necesita esta función.
+SecurityToken=Clave para proteger las URL
+NoSmsEngine=No hay gestor de envío de SMS disponible. El gestor de envío de SMS no está instalado con la distribución predeterminada (porque depende de un proveedor externo), pero puede encontrar algunos en %s
+PDFDesc=Puede configurar cada opción globales relacionados con la generación de PDF
+PDFAddressForging=Reglas para forjar cuadros de direcciones
+HideAnyVATInformationOnPDF=Ocultar toda la información relacionada con el IVA en el PDF generado
+HideDescOnPDF=Ocultar la descripción de los productos en el PDF generado
+HideRefOnPDF=Ocultar referencia de productos en PDF generado
+HideDetailsOnPDF=Ocultar líneas de productos en PDF generado detalles
+PlaceCustomerAddressToIsoLocation=Utilice la posición estándar francesa (La Poste) para la posición de dirección del cliente
+Library=Biblioteca
+UrlGenerationParameters=Parámetros para asegurar URL
+SecurityTokenIsUnique=Utilice un parámetro de SecureKey único para cada URL
+GetSecuredUrl=Obtener URL calculada
+ButtonHideUnauthorized=Ocultar botones para usuarios no administradores para acciones no autorizadas en lugar de mostrar los botones desactivados en gris
+OldVATRates=Antigua tasa de IVA
+NewVATRates=Nueva tasa de IVA
+PriceBaseTypeToChange=Modificar los precios con el valor base de referencia definido en
+MassConvert=Iniciar conversión en masa
+String=Cuerda
+Int=Entero
+Float=Flotador
+Boolean=Boolean (una casilla de verificación)
+ExtrafieldSelect =Seleccionar lista
+ExtrafieldSelectList =Seleccionear tabla
+ExtrafieldSeparator=Separador (no un campo)
+ExtrafieldRadio=Botones de opción (en la única opción)
+ExtrafieldCheckBox=Casillas de verificación
+ExtrafieldCheckBoxFromList=Casillas de verificación de la tabla
+ExtrafieldLink=Enlace a un objeto
+ComputedFormula=Campo calculado
+ComputedFormulaDesc=Puede introducir aquí una fórmula utilizando otras propiedades de objeto o cualquier código PHP para obtener un valor calculado dinámico. Puede utilizar cualquier fórmula compatible con PHP, incluyendo el "?" Operador de condición y objeto global siguiente: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Sólo algunas propiedades de $object puede estar disponible. Si necesita propiedades no cargadas, solo busque el objeto en su fórmula como en el segundo ejemplo.<br> Utilizando un campo computado significa que no puede ingresar ningún valor de la interfaz. Además, si hay un error de sintaxis, la fórmula no puede devolver nada.<br><br> Ejemplo de fórmula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br> Ejemplo para volver a cargar el objeto<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br> Otro ejemplo de fórmula para forzar la carga del objeto y su objeto primario:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Proyecto principal no encontrado'
+ExtrafieldParamHelpselect=Lista de parámetros tienen que ser como clave,value<br><br> por ejemplo: <br>1, value1<br>2, value2<br>3, value3<br>...<br><br> Para que la lista dependa de otra lista de atributos complementarios :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br> Para que la lista dependa de otra lista :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
+ExtrafieldParamHelpcheckbox=Lista de parámetros tiene que ser como clave,value<br><br> por ejemplo : <br>1,value1<br>2,value2<br>3,value3<br>…
+ExtrafieldParamHelpradio=Lista de parámetros tiene que ser como clave,value<br><br> por ejemplo : <br>1,value1<br>2,value2<br>3,value3<br>...
+ExtrafieldParamHelpsellist=Lista de parámetros proviene de una tabla<br>Syntax : table_name:label_field:id_field::filter<br>Ejemplo : c_typent:libelle:id::filter<br><br> Filtro puede ser una prueba simple (eg active=1) Para mostrar sólo el valor activo<br> También puede usar $ID$ En el filtro CON es el ID del objeto actual<br> Para hacer un SELECT en el uso del filtro $SEL$<br> Si desea filtrar en extrafields utilizar la sintaxis extra.fieldcode=... (donde código de campo es el código de extrafield)<br><br>para que la lista dependa de otro atributo complementario list:<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>Para que la lista dependa de otra list:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
+ExtrafieldParamHelpchkbxlst=Lista de parámetros proviene de una tabla<br>Syntax : table_name:label_field:id_field::filter<br>Ejemplo : c_typent:libelle:id::filter<br><br>filtro puede ser una prueba simple (eg active=1) para mostrar sólo el valor activo<br>También puedes usar $ID$ en el filtro CON es el ID del objeto actual <br>Para hacer un SELECT en el uso del filtro $SEL$<br>si desea filtrar en extrafields utilizar la sintaxis extra.fieldcode=... (donde código de campo es el código de extrafield)<br><br>para que la lista dependa de otra lista de atributos complementarios:<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>Para que la lista dependa de otra lista:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
+ExtrafieldParamHelplink=Los parámetros deben ser ObjectName:Classpath<br>Syntaxis : ObjectName:Classpath<br>Ejemplo : Societe:societe/class/societe.class.php
+LibraryToBuildPDF=Biblioteca utilizado para la generación de PDF
+WarningUsingFPDF=Advertencia: Su <b>conf.php</b> contiene una directiva <b>dolibarr_pdf_force_fpdf=1</b>. Esto significa que utiliza la biblioteca FPDF para generar archivos PDF. Esta biblioteca es antigua y no soporta muchas características (Unicode, transparencia de imagen, cyrillic, árabe y idiomas asiáticos, ...), por lo que puede experimentar errores durante la generación de PDF.<br> Para resolver esto y tener un soporte completo de generación de PDF, por favor descargue <a href="http://www.tcpdf.org/" target="_blank">TCPDF library</a>, luego comenta o elimina la línea <b>$dolibarr_pdf_force_fpdf=1</b>, and Agregar en su lugar <b>$dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir'</b>
+LocalTaxDesc=Algunos países aplican 2 o 3 impuestos en cada línea de factura. Si este es el caso, elija el tipo de segundo y tercer impuesto y su tasa. El tipo posible es:<br>1 : el impuesto local se aplica sobre los productos y servicios sin IVA (impuesto local se calcula sobre la cantidad sin impuestos)<br>2 : El impuesto local se aplica en los productos y los servicios incluyendo el IVA (el impuesto local se calcula sobre la cantidad + impuesto principal)<br>3 : El impuesto local se aplica en los productos sin IVA (el impuesto local se calcula sobre la cantidad sin impuestos)<br>4 : El impuesto local se aplica a los productos, incluido el IVA (el impuesto local se calcula sobre la cantidad + impuesto principal)<br>5 : Se aplica el impuesto local sobre los servicios sin IVA (el impuesto local se calcula sobre la cantidad sin impuestos)<br>6 : Se aplican impuestos locales sobre los servicios, incluido el IVA (el impuesto local se calcula sobre el importe + impuestos)
+LinkToTestClickToDial=Introduzca un número de teléfono para llamar,  para mostrar un enlace y probar la URL de ClickToDial para el usuario <strong>%s</strong>
+RefreshPhoneLink=Actualizar enlace
+LinkToTest=hacer clic en enlace generado para el usuario <strong>% s </ strong> (haga clic en el número de teléfono para probar)
+Module770Name=Reporte de gastos
+LTRate=Tarifa
+MenuCompanySetup=Empresa/Organización
+CompanyName=Nombre
diff --git a/htdocs/langs/es_EC/main.lang b/htdocs/langs/es_EC/main.lang
index dc6e36a2483..ff99b166487 100644
--- a/htdocs/langs/es_EC/main.lang
+++ b/htdocs/langs/es_EC/main.lang
@@ -3,7 +3,7 @@ DIRECTION=ltr
 FONTFORPDF=helvetica
 FONTSIZEFORPDF=10
 SeparatorDecimal=,
-SeparatorThousand=None
+SeparatorThousand=.
 FormatDateShort=%d/%m/%Y
 FormatDateShortInput=%d/%m/%Y
 FormatDateShortJava=dd/MM/yyyy
@@ -16,7 +16,458 @@ FormatHourShortDuration=%H:%M
 FormatDateTextShort=%d %b %Y
 FormatDateText=%d %B %Y
 FormatDateHourShort=%d/%m/%Y %H:%M
-FormatDateHourSecShort=%d/%m/%Y %H:%M:%S
+FormatDateHourSecShort=%d/%m/%Y %H:%M: %s
 FormatDateHourTextShort=%d %b %Y %H:%M
 FormatDateHourText=%d %B %Y %H:%M
+DatabaseConnection=Conexión con la base de datos
+NoTemplateDefined=Ninguna plantilla definida para este tipo de correo electrónico
+AvailableVariables=Variables de sustitución disponibles
+NoRecordFound=Ningún registro encontrado
+NoRecordDeleted=Ningún registro eliminado
+NoError=No hay error
+ErrorFieldRequired=Campo '%s' necesario
+ErrorFailedToOpenFile=No se pudo abrir el archivo %s
+ErrorCanNotCreateDir=No se puede crear el directorio %s
+ErrorCanNotReadDir=No se puede leer el dir %s
+ErrorLogoFileNotFound=No se ha encontrado el archivo de logotipo '%s'
+ErrorGoToGlobalSetup=Ir a la configuración de "Empresa/Organización para solucionar este problema
+ErrorGoToModuleSetup=Ir al módulo de configuración para solucionar este problema
+ErrorFailedToSendMail=No se pudo enviar el correo (emisor= %s, receptor= %s)
+ErrorFileNotUploaded=El archivo no se ha subido. Compruebe que el tamaño no exceda el máximo permitido, el espacio libre disponible en el disco y que no hay ya un archivo con el mismo nombre en este directorio.
+ErrorInternalErrorDetected=Detectado un error
 ErrorWrongHostParameter=Parámetro host incorrecto
+ErrorYourCountryIsNotDefined=Su país no está definido. Ir a Inicio-Configuración-Edit y vuelva a publicar el formulario.
+ErrorRecordIsUsedByChild=No se ha podido eliminar este registro. Este registro se utiliza por lo menos un registro secundario.
+ErrorWrongValueForParameterX=valor incorrecto para el parámetro %s
+ErrorNoRequestInError=Ninguna solicitud por error
+ErrorServiceUnavailableTryLater=El servicio no está disponible por el momento. Inténtelo de nuevo más tarde.
+ErrorDuplicateField=Valor duplicado en un campo único
+ErrorSomeErrorWereFoundRollbackIsDone=Se encontraron algunos errores. Revertiremos los cambios.
+ErrorConfigParameterNotDefined=Parámetro <b>%s</b> no está definido dentro de archivo de configuración Dolibarr <b>conf.php</b>.
+ErrorCantLoadUserFromDolibarrDatabase=No se pudo encontrar el usuario <b>%s</b> en la base de datos Dolibarr.
+ErrorNoVATRateDefinedForSellerCountry=Error, no hay tipos de IVA definidos para el país '%s'.
+ErrorNoSocialContributionForSellerCountry=Error, no hay ningun tipo de impuesto fiscal definido para el país '%s'.
+ErrorFailedToSaveFile=Error, Error al guardar el archivo.
+ErrorCannotAddThisParentWarehouse=Está intentando agregar un almacén padre que ya es un hijo de uno actual
+MaxNbOfRecordPerPage=Maximo número de registro por página
+NotAuthorized=No está autorizado para hacer eso.
+SetDate=Establecer fecha
+SeeHere=Mire aquí
+BackgroundColorByDefault=Color de fondo por defecto
+FileRenamed=El archivo se cambió de nombre correctamente.
+FileGenerated=El archivo se generó correctamente
+FileSaved=El archivo se ha guardado correctamente
+FileTransferComplete=Archivo(s) cargados correctamente
+FilesDeleted=Archivo(s) eliminados correctamente
+FileWasNotUploaded=Se ha seleccionado un archivo para adjuntarlo, pero todavía no se ha cargado. Haga clic en "Adjuntar archivo" para hacerlo.
+NbOfEntries=Número de entradas
+GoToWikiHelpPage=Lea la ayuda en línea (acceso a Internet es necesario)
+GoToHelpPage=Leer la ayuda
+DolibarrInHttpAuthenticationSoPasswordUseless=El modo de autenticación Dolibarr está configurado en <b>%s</b> en el archivo de configuración <b>conf.php</b>. <br> Esto significa que la base de datos de contraseñas es externa a Dolibarr, por lo que cambiar este campo puede no tener efecto.
+Undefined=Indefinido
+PasswordForgotten=¿Contraseña olvidada?
+SeeAbove=Véase más arriba
+HomeArea=Área de inicio
+PreviousValue=Valor anterior
+ConnectedOnMultiCompany=Conectado en ambiente
+AuthenticationMode=Modo de autenticación
+DatabaseTypeManager=Administrador de tipo de base de datos
+RequestLastAccessInError=Error de solicitud de acceso a la base de datos
+ReturnCodeLastAccessInError=Código de error de solicitud de acceso a la base de datos
+InformationLastAccessInError=Información del error de solicitud de acceso a la base de datos
+InformationToHelpDiagnose=Esta información puede ser útil para fines de diagnóstico
+TechnicalID=Identificación técnico
+NotePublic=Nota (público)
+PrecisionUnitIsLimitedToXDecimals=Dolibarr fue configurado para limitar la precisión de los precios unitarios a <b>%s</b> decimales.
+DoTest=Prueba
+ToFilter=Filtro
+WarningYouHaveAtLeastOneTaskLate=Advertencia, tiene al menos un elemento que ha superado el retardo de tolerancia.
+All=Todas
+OnlineHelp=Ayuda en linea
+Under=Debajo
+Period=Período
+PeriodEndDate=Fecha de finalización del período
+NotClosed=No se ha cerrado
+Enabled=Habilitado
+Disable=Inhabilitar
+Disabled=Inhabilitado
+AddLink=Agregar enlace
+RemoveLink=Retire enlace
+AddToDraft=Añadir a redactar
+Update=Actualizar
+Close=Cerrado
+CloseBox=Retire widget desde su panel de control
+ConfirmSendCardByMail=Es lo que realmente desea enviar el contenido de esta carta por correo a <b>%s</b>?
+Delete=Borrar
+Remove=retirar
+Resiliate=Terminar
+Cancel=Cancelar
+ValidateAndApprove=Validar y aprobar
+ToValidate=Validar
+Save=Guardar
+SaveAs=Guardar como
+TestConnection=Conexión de prueba
+ToClone=Clon
+ConfirmClone=Elija los datos que desea clonar:
+NoCloneOptionsSpecified=No hay datos definidos para clonar.
+Of=De
+Run=Correr
+Show=Mostrar
+Hide=Esconder
+ShowCardHere=Mostrar tarjeta
+SearchOf=Buscar
+Valid=Válido
+ToLink=Enlazar
+Choose=Escoger
+Resize=Cambiar el tamaño
+NoUserGroupDefined=No se ha definido ningún grupo de usuarios
+PasswordRetype=Reescribe tu contraseña
+NoteSomeFeaturesAreDisabled=Tenga en cuenta que una gran cantidad de funciones/módulos están deshabilitados en esta demostración.
+Parameters=parámetros
+PersonalValue=Valor personal
+NewObject=Nuevo %s
+MultiLanguage=Multi lenguaje
+RefOrLabel=Referencia o etiqueta
+Info=Iniciar sesión
+Model=Pantilla de documento
+DefaultModel=Pantilla de documento por defecto
+Action=Evento
+NumberByMonth=Número por meses
+AmountByMonth=Monto por mes
+Limits=límites
+Logout=Cerrar sesión
+NoLogoutProcessWithAuthMode=No hay función de desconexión aplicable con el modo de autenticación <b>%s</b>
+Setup=Configurar
+Cards=Tarjetas
+Card=Tarjeta
+DateToday=El día de hoy
+DateEnd=Fecha final
+DateCreationShort=Fecha de Creación
+DateModificationShort=Fecha de modificación
+DateValue=Valor de fecha
+DateValueShort=Valor de fecha
+DateOperation=Fecha de la operación
+DateOperationShort=Fecha de la operación
+DateRequest=Fecha de solicitud
+DateProcess=Fecha de procesamiento
+DateBuild=Fecha de creación del informe
+DatePayment=Fecha del pago
+UserCreation=Creación de usuarios
+UserModification=Modificación de usuario
+UserCreationShort=Creación de usuarios
+UserModificationShort=Modificación de usuario
+Morning=Temprano
+Rate=Tarifa
+UseLocalTax=Incluye impuestos
+Gb=GB
+Default=Predeterminados
+DefaultValue=Valor predeterminado
+DefaultValues=Valores predeterminados
+UnitPriceHT=Precio unitario (neto)
+UnitPriceTTC=Precio unitario
+PriceU=Precio
+PriceUHT=Precio (neto)
+PriceUHTCurrency=Precio (moneda)
+PriceUTTC=Precio (inc. IVA)
+Amount=Cantidad
+AmountInvoice=Valor de la factura
+AmountPayment=Monto del pago
+AmountHTShort=Valor (neto)
+AmountTTCShort=Valor (inc. IVA)
+AmountHT=Valor (neto de impuestos)
+AmountTTC=Valor (inc. IVA)
+AmountVAT=Impuesto sobre el Valor
+MulticurrencyAlreadyPaid=Ya pagado, moneda de origen
+MulticurrencyRemainderToPay=Seguir pagando, moneda de origen
+MulticurrencyPaymentAmount=Monto a pagar, moneda de origen
+MulticurrencyAmountHT=Valor (neto de impuestos), moneda de origen
+MulticurrencyAmountTTC=Valor (inc. impuestos), moneda de origen
+MulticurrencyAmountVAT=Valor del impuesto, moneda de origen
+AmountLT1=Valor del impuesto 2
+AmountLT2=Valor del impuesto 3
+AmountLT1ES=Valor RE
+AmountLT2ES=Valor IRPF
+AmountTotal=Valor total
+AmountAverage=Valor promedio
+PriceQtyMinHT=Precio cantidad min. (neto IVA)
+TotalHTShort=Total (neto)
+TotalHTShortCurrency=Total (neto en moneda)
+TotalTTCShort=Total (inc. IVA)
+TotalHT=Total (neto de impuestos)
+TotalHTforthispage=Total (neto de impuestos) para esta página
+Totalforthispage=Total para esta página
+TotalTTC=Total (inc. IVA)
+TotalTTCToYourCredit=Total (inc. Impuestos) a su crédito
+TotalVAT=Total impuestos
+TotalLT1=Total impuestos 2
+TotalLT2=Total impuestos 3
+HT=Impuesto neto
+TTC=impuestos Inc.
+INCT=Inc. todos los impuestos
+VAT=Impuesto de venta
+VATs=Impuestos de ventas
+VATRate=Tasa de impuesto
+Average=Promedio
+Module=Módulo/Aplicación
+Modules=Módulos/Aplicaciones
+List=Lista
+FullList=Lista completa
+Statistics=Estadística
+Ref=Referencia
+ExternalRef=Referencia externa
+RefSupplier=Referencia proveedor
+RefPayment=Referencia pago
+CommercialProposalsShort=Propuestas comerciales
+ActionsToDo=Eventos que se pueden hacer
+ActionsToDoShort=Que hacer
+ActionsDoneShort=Hecho
+ActionNotApplicable=No aplica
+ActionRunningNotStarted=Para comenzar
+CompanyFoundation=Empresa/Organización
+ContactsForCompany=Contactos de clientes
+ContactsAddressesForCompany=Contactos/direcciones de clientes
+AddressesForCompany=Direcciones de clientes
+ActionsOnCompany=Eventos sobre clientes
+ActionsOnMember=Eventos sobre miembros
+NActionsLate=%s tarde
+RequestAlreadyDone=La solicitud ya se registró
+Filter=Filtrar
+FilterOnInto=Criterios de búsqueda '<strong> %s </strong>' en los campos %s
+RemoveFilter=Retirar filtro
+ChartGenerated=Gráfico generado
+ChartNotGenerated=Gráfico no genera
+GeneratedOn=Construir el %s
+DolibarrStateBoard=Estadísticas de la base de datos
+DolibarrWorkBoard=Abrir el tablero de artículos
+NoOpenedElementToProcess=Ningún elemento abierto para procesar
+NotYetAvailable=No disponible aún
+Categories=Etiquetas/categorías
+Category=Etiquetas/categoría
+OtherInformations=Otra informacion
+ChangedBy=Cambiado por
+ResultKo=Fallo
+Reporting=Informes
+Validated=validado
+Opened=Abierto
+Topic=Tema
+ByCompanies=Por cliente
+ByUsers=Por Usuario
+Rejects=Rechazos
+Preview=Anterior
+NextStep=Próximo paso
+None=Ninguna
+Late=Tarde
+LateDesc=Retardo para definir si un registro es tarde o no depende de la configuración. Pregunte a su administrador para cambiar de retardo desde el menú Inicio - Configuración - Alertas.
+Photo=Imagen
+Photos=Imágenes
+DeletePicture=Borrar imagen
+ConfirmDeletePicture=Confirmar eliminación de la imagen?
+Login=Iniciar sesión
+CurrentLogin=Inicio de sesión actual
+January=Enero
+February=Febrero
+March=Marzo
+April=Abril
+May=Mayo
+June=Junio
+July=Julio
+August=Agosto
+September=Septiembre
+October=Octubre
+November=Noviembre
+MayMin=Mayo
+Month01=Enero
+Month02=Febrero
+Month03=Marzo
+Month04=Abril
+Month05=Mayo
+Month06=Junio
+Month07=Julio
+Month08=Agosto
+Month09=Septiembre
+Month10=Octubre
+Month11=Noviembre
+Month12=Diciembre
+MonthShort01=Ene
+MonthShort04=Abr
+MonthShort05=Mayo
+MonthShort08=Ago
+MonthShort12=Dic
+DateFormatYYYYMM=MM-AAAA
+DateFormatYYYYMMDD=DD-MM-AAAA
+DateFormatYYYYMMDDHHMM=DD-MM-AAAA HH:SS
+ReportName=Nombre del reporte
+ReportPeriod=Período del reporte
+Report=Reporte
+Keyword=Palabra clave
+Fill=Llenar
+Reset=Reiniciar
+NotAllowed=No permitido
+ReadPermissionNotAllowed=Permiso de lectura no permitido
+AmountInCurrency=Valor en %s moneda
+NoExample=Ningún ejemplo
+NbOfThirdParties=Número de clientes
+NbOfLines=Número de líneas
+NbOfObjectReferers=Número de artículos relacionados
+Referers=Artículos relacionados
+DateFromTo=De %s para %s
+DateFrom=De %s
+Check=Comprobar
+Internals=Interno
+Externals=Externo
+Warning=Advertencia
+Warnings=Advertencias
+BuildDoc=Generar Documento
+Entity=Ambiente
+CustomerPreview=Vista previa del cliente
+SupplierPreview=Vista Previa del proveedor
+ShowCustomerPreview=Mostrar vista previa al cliente
+ShowSupplierPreview=Mostrar la previsualización de un proveedor
+RefCustomer=Referencia de cliente
+Currency=Moneda
+Undo=Deshacer
+UndoExpandAll=Deshacer expandir
+FeatureNotYetSupported=Característica aún no soportado
+SendByMail=Enviar por correo electrónico
+MailSentBy=Correo electrónico enviado por
+TextUsedInTheMessageBody=Cuerpo del correo electronico
+SendAcknowledgementByMail=Enviar correo electrónico de confirmación
+EMail=Correo electrónico
+NoEMail=Sin correo electrónico
+Email=Correo electrónico
+NoMobilePhone=No hay teléfono móvil
+FollowingConstantsWillBeSubstituted=Las siguientes constantes serán reemplazados con el valor correspondiente.
+BackToList=Volver a la lista
+GoBack=Regresa
+CanBeModifiedIfOk=Puede ser modificado si es válido
+CanBeModifiedIfKo=Puede ser modificado si no es válida
+ValueIsValid=El valor es válido
+ValueIsNotValid=El valor no es válido
+RecordCreatedSuccessfully=Registro creado con éxito
+RecordsModified=%s registro modificado
+RecordsDeleted=%s registro eliminado
+AutomaticCode=Código automático
+MoveBox=Mover widget
+Offered=Ofrecido
+NotEnoughPermissions=Usted no tiene permiso para esta acción
+SessionName=Nombre de sesión
+Receive=Recibir
+CompleteOrNoMoreReceptionExpected=Completa o nada más esperada
+YouCanChangeValuesForThisListFromDictionarySetup=Puede cambiar los valores para esta lista de menú de Configuración - Diccionarios
+YouCanChangeValuesForThisListFrom=Puede cambiar los valores para esta lista de menú %s
+YouCanSetDefaultValueInModuleSetup=Se puede establecer el valor predeterminado que se utiliza cuando se crea un nuevo registro en la configuración del módulo
+Documents=Archivos enlazados
+UploadDisabled=Carga inhabilitada
+MenuAgendaGoogle=Agenda de google
+ThisLimitIsDefinedInSetup=límite de Dolibarr (Menú Inicio-setup-seguridad): %s Kb, límite de PHP: %s Kb
+CurrentMenuManager=Gestor de menú actual
+Layout=Diseño
+DisabledModules=Módulos deshabilitados
+For=Por
+ForCustomer=Para el cliente
+HidePassword=Mostrar comando con la contraseña oculta
+UnHidePassword=Mostrar comando real con contraseña clara
+Informations=informaciones
+AddFile=Agregar archivo
+CloneMainAttributes=Clonar objeto con sus atributos principales
+PDFMerge=Combinar PDF
+Merge=Combinar
+DocumentModelStandardPDF=Plantilla PDF estándar
+PrintContentArea=Mostrar la página para imprimir el área de contenido principal
+MenuManager=Administrador de menús
+WarningYouAreInMaintenanceMode=Advertencia, está en un modo de mantenimiento, por lo que sólo se permite el acceso <b>%s</b> a la aplicación en este momento.
+CoreErrorMessage=Disculpe, ocurrió un error. Póngase en contacto con el administrador del sistema para comprobar los registros o desactivar $dolibarr_main_prod=1 para obtener más información.
+FieldsWithAreMandatory=Los campos con <b>%s</b> son obligatorios
+FieldsWithIsForPublic=Los campos con <b>%s</b> se muestran en la lista pública de miembros. Si no lo desea, marque la casilla "público".
+AccordingToGeoIPDatabase=(Según la conversión GeoIP)
+RequiredField=Campo requerido
+ToTest=Prueba
+ValidateBefore=La tarjeta debe ser validado antes de usar esta función
+Hidden=Oculto
+Source=Fuente
+AttributeCode=Código de atributo
+URLPhoto=URL de la foto/logotipo
+SetLinkToAnotherThirdParty=Enlace a otro cliente
+LinkTo=Enlace a
+LinkToProposal=Enlace a la propuesta
+LinkToOrder=Enlace al pedido
+LinkToInvoice=Enlace a la factura
+LinkToSupplierOrder=Enlace a pedido de proveedor
+LinkToSupplierProposal=Enlace a la propuesta del proveedor
+LinkToSupplierInvoice=Enlace a la factura del proveedor
+LinkToContract=Enlace al contrato
+LinkToIntervention=Enlace a la intervención
+CreateDraft=Crear proyecto
+SetToDraft=Volver al proyecto
+ClickToEdit=Click para editar
+ByCountry=Por país
+ByTown=por ciudad
+BySalesRepresentative=Por representante de ventas
+LinkedToSpecificUsers=Enlace a un contacto de usuario en particular
+NoResults=No hay resultados
+AdminTools=Herramientas de administración
+SystemTools=Herramientas del sistema
+ModulesSystemTools=Módulos de herramientas
+NoPhotoYet=No hay imagenes disponibles todavía
+SelectAction=Seleccione la acción
+HelpCopyToClipboard=Utilizar las teclas Ctrl+C para copiar al portapapeles
+SaveUploadedFileWithMask=Guardar el archivo en el servidor con el nombre "<strong>%s</strong>" (de lo contrario " %s")
+OriginFileName=Nombre del archivo original
+SetDemandReason=Establecer origen
+AccountCurrency=Cuenta de dinero
+XMoreLines=%S línea(s) oculta(s)
+AddBox=Agregar cuadro
+SelectElementAndClick=Seleccione un elemento y haga clic en %s
+PrintFile=Imprimir archivo %s
+ShowTransaction=Mostrar entrada en la cuenta bancaria
+GoIntoSetupToChangeLogo=Vaya a Inicio-Configuración - Empresa para cambiar el logotipo o entrar en Inicio-Configuración-Mostrar para ocultar.
+Deny=Negar
+Denied=Negado
+ListOf=Lista de %s
+ListOfTemplates=Lista de plantillas
+Gender=Género
+ViewList=Vista de la lista
+Sincerely=Sinceramente
+DeleteLine=Borrar línea
+NoPDFAvailableForDocGenAmongChecked=No hay PDF disponibles para la generación de documentos entre el registro guardado
+TooManyRecordForMassAction=Demasiados registros seleccionados para la acción masiva. La acción está restringida a una lista de %s registros.
+NoRecordSelected=Ningún registro seleccionado
+MassFilesArea=Área para archivos construidos por acciones masivas
+ShowTempMassFilesArea=Mostrar área de archivos creados por acciones masivas
+ClassifyBilled=Clasificar facturas
+ClickHere=haga clic aquí
+ExportFilteredList=Exportar lista filtrada
+ExportList=Exportar lista
+Miscellaneous=Varios
+GroupBy=Agrupar por...
+SomeTranslationAreUncomplete=Algunos idiomas pueden traducirse parcialmente o pueden contener errores. Si detecta alguno, puede arreglar archivos de idioma que se registren en <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
+ActualizeCurrency=Actualizar tipo de cambio
+ModuleBuilder=Generador de módulos
+ClickToShowHelp=Haga clic para mostrar ayuda sobre herramientas
+HRAndBank=HR y Banco
+TitleSetToDraft=Volver al borrador
+ConfirmSetToDraft=¿Seguro que desea volver al estado de borrador?
+MondayMin=Lun
+TuesdayMin=Mar
+WednesdayMin=Mier
+ThursdayMin=Jue
+FridayMin=Vie
+SaturdayMin=Sab
+SundayMin=Dom
+ShortWednesday=M
+SelectMailModel=Seleccionar plantilla de correo electrónico
+SetRef=Establecer referencia
+Select2ResultFoundUseArrows=Se han encontrado algunos resultados. Utilice las flechas para seleccionar.
+Select2NotFound=No se han encontrado resultados
+Select2Enter=Ingresar
+Select2MoreCharacter=o más carácter
+Select2MoreCharactersMore=<strong>Buscar sintaxis:</strong><br/><kbd><strong> |</strong></kbd><kbd> o</kbd> (a | b) <br /><kbd><strong>*</strong></kbd><kbd> Cualquier carácter</kbd> (a*b)<br /><kbd><strong>^</strong></kbd><kbd> Start with</kbd> (^ab)<br /><kbd><strong>$</strong></kbd><kbd> End with</kbd> (ab$)<br />
+Select2LoadingMoreResults=Cargando más resultados ...
+Select2SearchInProgress=Búsqueda en proceso...
+SearchIntoThirdparties=Clientes
+SearchIntoCustomerInvoices=Facturas de clientes
+SearchIntoCustomerProposals=Propuestas de clientes
+SearchIntoSupplierProposals=Propuestas de proveedor
+SearchIntoCustomerShipments=Envíos de clientes
+SearchIntoExpenseReports=Reporte de gastos
+SearchIntoLeaves=Hojas
diff --git a/htdocs/langs/es_ES/accountancy.lang b/htdocs/langs/es_ES/accountancy.lang
index 5e0398a8660..921514755d8 100644
--- a/htdocs/langs/es_ES/accountancy.lang
+++ b/htdocs/langs/es_ES/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Ver la cantidad de líneas ligadas a cuentas contab
 OtherInfo=Otra información
 DeleteCptCategory=Eliminar la cuenta contable del grupo
 ConfirmDeleteCptCategory=¿Está seguro de querer eliminar esta cuenta contable del grupo de cuentas contables?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Área contabilidad
 AccountancyAreaDescIntro=El uso del módulo de contabilidad se realiza en varios pasos:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=PASO %s: Defina las cuentas contables para los
 AccountancyAreaDescSal=PASO %s: Defina las cuentas contables para los pagos de salarios. Para ello puede utilizar el menú %s.
 AccountancyAreaDescContrib=PASO %s: Defina las cuentas contables de los gastos especiales (impuestos varios). Para ello puede utilizar el menú %s.
 AccountancyAreaDescDonation=PASO %s: Defina las cuentas contables para las donaciones. Para ello puede utilizar el menú %s.
-AccountancyAreaDescMisc=PASO %s: Defina las cuentas contables para registros varios. Para ello puede utilizar el menú %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=PASO %s: Defina las cuentas contables para los préstamos. Para ello puede utilizar el menú %s.\n
 AccountancyAreaDescBank=PASO %s: Defina las cuentas contables para cada banco y cuentas financieras. Puede empezar desde la página %s.
 AccountancyAreaDescProd=PASO %s: Defina las cuentas contables en sus productos. Para ello puede utilizar el menú %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Registrar movimientos en el Libro Mayor
 Bookkeeping=Libro Mayor
 AccountBalance=Saldo de la cuenta
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total informe de gastos
 InvoiceLines=Líneas de facturas a contabilizar
@@ -103,7 +110,7 @@ LineOfExpenseReport=Línea de informe de gastos
 NoAccountSelected=No se ha seleccionado cuenta contable
 VentilatedinAccount=Contabilizada con éxito en la cuenta contable
 NotVentilatedinAccount=Cuenta sin contabilización en la contabilidad
-XLineSuccessfullyBinded=%s productos/servicios unidos a una cuenta contable.
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s productos/servicios sin cuenta contable
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Número de elementos a contabilizar que se muestran por página (máximo recomendado: 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Eliminar los registros del Libro Mayor
 FinanceJournal=Diario financiero
 ExpenseReportsJournal=Diario informe de gastos
 DescFinanceJournal=El diario financiero incluye todos los tipos de pagos por cuenta bancaria
-DescJournalOnlyBindedVisible=Esta es una vista de registros que están vinculados a una cuenta contable de productos/servicios y pueden ser registrados en el Libro Mayor.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Cuenta contable para IVA no definida
 ThirdpartyAccountNotDefined=Cuenta contable de tercero no definida
 ProductAccountNotDefined=Cuenta contable de producto no definida
@@ -170,6 +177,8 @@ AddCompteFromBK=Añadir cuentas contables al grupo
 ReportThirdParty=Listado de cuentas de terceros
 DescThirdPartyReport=Consulte aquí el listado de clientes y proveedores y sus códigos contables
 ListAccounts=Listado de cuentas contables
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Tipo del plan
 Pcgsubtype=Subcuenta
@@ -194,7 +203,7 @@ ValidateHistory=Vincular automáticamente
 AutomaticBindingDone=Vinculación automática finalizada
 
 ErrorAccountancyCodeIsAlreadyUse=Error, no puede eliminar esta cuenta ya que está siendo usada
-MvtNotCorrectlyBalanced=Movimiento descuadrado. Debe = %s. Haber = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Ficha contable
 GeneralLedgerIsWritten=Transacciones escritas en el Libro Mayor
 GeneralLedgerSomeRecordWasNotRecorded=Algunas de las operaciones que no podrán registrarse. Si no hay un mensaje de error, es probable que ya estén contabilizadas
@@ -210,7 +219,6 @@ AccountingJournals=Diarios contables
 AccountingJournal=Diario contable
 NewAccountingJournal=Nuevo diario contable
 ShowAccoutingJournal=Mostrar diario contable
-Code=Código
 Nature=Naturaleza
 AccountingJournalType1=Operaciones varias
 AccountingJournalType2=Ventas
@@ -221,8 +229,6 @@ AccountingJournalType9=Haber
 ErrorAccountingJournalIsAlreadyUse=Este diario ya esta siendo usado
 
 ## Export
-Exports=Exportaciones
-Export=Exportar
 ExportDraftJournal=Export draft journal
 Modelcsv=Modelo de exportación
 OptionsDeactivatedForThisExportModel=Las opciones están desactivadas para este modelo de exportación
diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang
index 92311441ec2..7cd5bf0f887 100644
--- a/htdocs/langs/es_ES/admin.lang
+++ b/htdocs/langs/es_ES/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Área utilidades del sistema
 SystemToolsAreaDesc=Esta área ofrece distintas funciones de administración. Utilice la menú para elegir la funcionalidad buscada.
 Purge=Purga
 PurgeAreaDesc=Esta página le permite borrar todos los archivos generados o almacenados por Dolibarr (archivos temporales o todos los archivos del directorio <b>%s</b>). El uso de esta función no es necesaria. Se proporciona como solución para los usuarios cuyos Dolibarr se encuentran en un proveedor que no ofrece permisos para eliminar los archivos generados por el servidor web.
-PurgeDeleteLogFile=Eliminar archivo de registro <b>%s</b> definido en el módulo Syslog (no hay riesgo de perder datos)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Eliminar todos los ficheros temporales (sin riesgo de perdida de datos)
 PurgeDeleteTemporaryFilesShort=Eliminar archivos temporales
 PurgeDeleteAllFilesInDocumentsDir=Eliminar todos los archivos del directorio <b>%s</b>. Archivos temporales y archivos adjuntados a elementos (terceros, facturas, etc.) serán eliminados.
 PurgeRunNow=Purgar
 PurgeNothingToDelete=Sin directorios o archivos a eliminar.
 PurgeNDirectoriesDeleted=<b>%s</b> archivos o directorios eliminados
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Purgar los eventos de seguridad
 ConfirmPurgeAuditEvents=¿Está seguro de que desea purgar todos los eventos de seguridad? Se eliminarán todos los registros de seguridad, no se eliminarán datos.
 GenerateBackup=Generar copia de seguridad
@@ -298,7 +299,7 @@ SetupIsReadyForUse=La instalación del módulo ha concluido. Sin embargo, debe h
 NotExistsDirect=El directorio raíz alternativo no está configurado en un directorio existente.<br>
 InfDirAlt=Desde la versión 3, es posible definir un directorio raíz alternativo. Esto le permite almacenar, en un directorio dedicado, plug-ins y plantillas personalizadas.<br>Sólo cree un directorio en la raíz de Dolibarr (por ejemplo: custom).<br>
 InfDirExample=<br>Luego indíquelo en el archivo <strong>conf.php</strong><br> $ dolibarr_main_url_root_alt = 'http://miservidor /custom'<br>$ dolibarr_main_document_root_alt = '/ruta/de/dolibarr/htdocs/custom '<br>Si estas líneas se encuentran comentadas con "#", para habilitarlas, basta con descomentar eliminando el carácter "#".
-YouCanSubmitFile=Para este paso, puede enviar el paquete usando esta herramienta: Seleccionar el archivo del módulo
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Versión actual de Dolibarr
 CallUpdatePage=Ir a la página de actualización de la estructura de la base de datos y sus datos: %s.
 LastStableVersion=Última versión estable
@@ -535,8 +536,6 @@ Module1120Name=Presupuesto de proveedor
 Module1120Desc=Solicitud presupuesto y precios a proveedor
 Module1200Name=Mantis
 Module1200Desc=Interfaz con el sistema de seguimiento de incidencias Mantis
-Module1400Name=Contabilidad experta
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Generación Documento
 Module1520Desc=Generación de documentos de correo masivo
 Module1780Name=Etiquetas/Categorías
@@ -585,7 +584,7 @@ Module50100Desc=Módulo punto de venta (TPV)
 Module50200Name=Paypal
 Module50200Desc=Módulo para proporcionar un pago en línea con tarjeta de crédito mediante Paypal
 Module50400Name=Contabilidad (avanzada)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=La impresión directa (sin abrir los documentos) usa el interfaz Cups IPP (La impresora debe ser visible por el servidor y CUPS debe estar instalado en el servidor)
 Module55000Name=Encuesta o Voto
@@ -751,8 +750,10 @@ Permission401=Consultar haberes
 Permission402=Crear/modificar haberes
 Permission403=Validar haberes
 Permission404=Eliminar haberes
-Permission510=Consultar salarios
-Permission512=Crear/modificar salarios
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Eliminar salarios
 Permission517=Exportar salarios
 Permission520=Consultar Créditos
@@ -1057,7 +1058,7 @@ RestoreDesc2=Tomar el archivo (archivo zip, por ejemplo) del directorio de los d
 RestoreDesc3=Restaurar el archivo de volcado guardado en la base de datos de la nueva instalación de Dolibarr o de esta instalación (<b>%s</b>). Atención, una vez realizada la restauración, deberá utilizar un login/contraseña de administrador existente en el momento de la copia de seguridad para conectarse. Para restaurar la base de datos en la instalación actual, puede utilizar el asistente a continuación.
 RestoreMySQL=Importación MySQL
 ForcedToByAModule= Esta regla está forzada a <b>%s</b> por uno de los módulos activados
-PreviousDumpFiles=Archivos de copia de seguridad de la base de datos disponibles
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=Primer día de la semana
 RunningUpdateProcessMayBeRequired=Parece necesario realizar el proceso de actualización (la versión del programa %s difiere de la versión de la base de datos %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=Debe ejecutar el comando desde un shell después de haber iniciado sesión con la cuenta <b>%s</b>.
diff --git a/htdocs/langs/es_ES/banks.lang b/htdocs/langs/es_ES/banks.lang
index 2d81ed7a690..7c79dc37091 100644
--- a/htdocs/langs/es_ES/banks.lang
+++ b/htdocs/langs/es_ES/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Cheque devuelto y facturas reabiertas
 BankAccountModelModule=Modelos de documentos para cuentas bancarias
 DocumentModelSepaMandate=Plantilla de mandato SEPA, usable únicamente para paises miembros de la UEE
 DocumentModelBan=Plantilla para imprimir una página con la información IBAN.
-NewVariousPayment=Nuevo pago varios
-VariousPayment=Pago varios
-VariousPayments=Pagos varios
-ShowVariousPayment=Mostrar pago varios
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/es_ES/bills.lang b/htdocs/langs/es_ES/bills.lang
index 242b27c55c8..9f2e3d495a4 100644
--- a/htdocs/langs/es_ES/bills.lang
+++ b/htdocs/langs/es_ES/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Corregida por uno o más abonos
 CardBill=Ficha factura
 PredefinedInvoices=Factura predefinida
 Invoice=Factura
+PdfInvoiceTitle=Factura
 Invoices=Facturas
 InvoiceLine=Línea de factura
 InvoiceCustomer=Factura a cliente
diff --git a/htdocs/langs/es_ES/compta.lang b/htdocs/langs/es_ES/compta.lang
index 76bf55ea0ec..20d05c2020e 100644
--- a/htdocs/langs/es_ES/compta.lang
+++ b/htdocs/langs/es_ES/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Cuenta contable por defecto para el IVA de ventas (u
 ACCOUNTING_VAT_BUY_ACCOUNT=Cuenta contable por defecto para el IVA de compras (usado si no se define en el diccionario de IVA)
 ACCOUNTING_VAT_PAY_ACCOUNT=Código contable por defecto para el pago de IVA
 ACCOUNTING_ACCOUNT_CUSTOMER=Cuenta contable a usar para clientes
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Se utilizará una cuenta contable dedicada definida en la ficha de terceros para el relleno del Libro Mayor,  o como valor predeterminado de la contabilidad del Libro Mayor si no se define una cuenta contable en la ficha del tercero
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Cuenta contable a usar para proveedores
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Se utilizará una cuenta contable dedicada definida en la ficha de terceros para el relleno del Libro Mayor, o como valor predeterminado de la contabilidad del Libro Mayor si no se define una cuenta contable en la ficha del tercero
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clonar una tasa social/fiscal
 ConfirmCloneTax=Confirmar la clonación de una tasa social/fiscal
 CloneTaxForNextMonth=Clonarla para el próximo mes
diff --git a/htdocs/langs/es_ES/errors.lang b/htdocs/langs/es_ES/errors.lang
index 0b170ca6342..ee612dc50c7 100644
--- a/htdocs/langs/es_ES/errors.lang
+++ b/htdocs/langs/es_ES/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, nombre de trigger %s duplicado. Ya se encuentra car
 ErrorNoWarehouseDefined=Error, no hay definidos almacenes.
 ErrorBadLinkSourceSetButBadValueForRef=El enlace que utiliza no es válido. Hay definido un 'origen para el pago, pero el valor de 'ref' no es válido.
 ErrorTooManyErrorsProcessStopped=Demasiados errores. El proceso ha sido detenido
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=Se fijó una contraseña para este miembro. Sin embargo, no se ha creado ninguna cuenta de usuario. Así que esta contraseña no se puede utilizar para acceder a Dolibarr. Puede ser utilizada por un módulo/interfaz externo, pero si no necesitar definir accesos de un miembro, puede desactivar la opción "Administrar un inicio de sesión para cada miembro" en la configuración del módulo miembros. Si necesita administrar un inicio de sesión, pero no necesita ninguna contraseña, puede dejar este campo vacío para evitar esta advertencia. Nota: También puede usarse el correo electrónico como inicio de sesión si el miembro está vinculada a un usuario.
diff --git a/htdocs/langs/es_ES/install.lang b/htdocs/langs/es_ES/install.lang
index ca340bcc6d1..eaea7f43bdb 100644
--- a/htdocs/langs/es_ES/install.lang
+++ b/htdocs/langs/es_ES/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Usuario del administrador de la base de datos Dolibarr. Deje vacío s
 PasswordAgain=Verificación de la contraseña
 AdminPassword=Contraseña del administrador de la base de datos Dolibarr. Deje vacío si se conecta en anonymous
 CreateDatabase=Crear la base de datos
-CreateUser=Crear el propietario
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Base de datos - Acceso super usuario
 CheckToCreateDatabase=Seleccione esta opción si la base de datos no existe y debe crearse. En este caso, es necesario indicar usuario/contraseña del superusuario más adelante en esta página.
-CheckToCreateUser=Seleccione esta opción si el usuario no existe y debe crearse.<br>En este caso, es necesario indicar usuario/contraseña del superusuario más adelante en esta página.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Usuario de la base que tiene los derechos de creación de bases de datos o cuenta para la base de datos, inútil si la base de datos y su usuario ya existen (como cuando están en un anfitrión).
 KeepEmptyIfNoPassword=Deje vacío si el usuario no tiene contraseña
 SaveConfigurationFile=Grabación del archivo de configuración
diff --git a/htdocs/langs/es_ES/main.lang b/htdocs/langs/es_ES/main.lang
index 1a785c93704..977f396e2ba 100644
--- a/htdocs/langs/es_ES/main.lang
+++ b/htdocs/langs/es_ES/main.lang
@@ -75,7 +75,8 @@ FileRenamed=El archivo ha sido renombrado correctamente
 FileGenerated=el archivo ha sido generado correctamente
 FileSaved=The file was successfully saved
 FileUploaded=El archivo se ha subido correctamente
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=Un archivo ha sido seleccionado para adjuntarlo, pero aún no se ha subido. Haga clic en "Adjuntar este archivo" para ello.
 NbOfEntries=Nº de entradas
 GoToWikiHelpPage=Leer la ayuda en línea (es necesario acceso a Internet )
@@ -196,6 +197,7 @@ Parameter=Parámetro
 Parameters=Parámetros
 Value=Valor
 PersonalValue=Valor personalizado
+NewObject=New %s
 NewValue=Nuevo valor
 CurrentValue=Valor actual
 Code=Código
@@ -441,6 +443,7 @@ Reporting=Informe
 Reportings=Informes
 Draft=Borrador
 Drafts=Borradores
+StatusInterInvoiced=
 Validated=Validado
 Opened=Activo
 New=Nuevo
@@ -727,6 +730,7 @@ SetBankAccount=Definir cuenta bancaria
 AccountCurrency=Divisa de la cuenta
 ViewPrivateNote=Ver notas
 XMoreLines=%s línea(s) ocultas
+ShowMoreLines=Show more lines
 PublicUrl=URL pública
 AddBox=Añadir caja
 SelectElementAndClick=Seleccione un elemento y haga clic %s
@@ -735,6 +739,7 @@ ShowTransaction=Mostrar registro en la cuenta bancaria
 GoIntoSetupToChangeLogo=Vaya a Inicio->Configuración->Empresa/Institución para cambiar el logo o vaya a Inicio->Configuración->Entorno para ocultarlo
 Deny=Denegar
 Denied=Denegada
+ListOf=List of %s
 ListOfTemplates=Listado de plantillas
 Gender=Sexo
 Genderman=Hombre
diff --git a/htdocs/langs/es_ES/modulebuilder.lang b/htdocs/langs/es_ES/modulebuilder.lang
index 12876829546..ea9665b95ea 100644
--- a/htdocs/langs/es_ES/modulebuilder.lang
+++ b/htdocs/langs/es_ES/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Módulos generados/editables encontrados: <strong>%s</strong> (se detectan como editables cuando el archivo <strong>%s</strong> existe en la raíz del directorio del módulo).
 NewModule=Nuevo módulo
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Módulo inicializado
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Introduzca aquí toda la información general que describa su módulo
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=Esta pestaña está dedicada a definir entradas de menú proporcionadas por su módulo.
 ModuleBuilderDescpermissions=Esta pestaña está dedicada a definir los nuevos permisos que desea proporcionar con su módulo.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Zona peligrosa
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=Este módulo ha sido activado. Cualquier cambio en él puede romper una característica activa actual.
 DescriptionLong=Descripción larga
 EditorName=Nombre del editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/es_ES/multicurrency.lang b/htdocs/langs/es_ES/multicurrency.lang
index a64bfa51b44..a2a4c316c6e 100644
--- a/htdocs/langs/es_ES/multicurrency.lang
+++ b/htdocs/langs/es_ES/multicurrency.lang
@@ -4,7 +4,8 @@ ErrorAddRateFail=Error al añadir tasa
 ErrorAddCurrencyFail=Error al añadir la divisa
 ErrorDeleteCurrencyFail=Error al eliminar
 multicurrency_syncronize_error=Error sincronización: %s
-multicurrency_useOriginTx=Cuando un objeto se crea desde otro, mantiene la tasa original del objeto de origen (de lo contrario, utilice la nueva tasa conocida)
+MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate
+multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate)
 CurrencyLayerAccount=CurrencyLayer API
 CurrencyLayerAccount_help_to_synchronize=Debe crear una cuenta en su sitio web para utilizar esta función.  <br />Obtenga su <b>clave API</b><br />Si utiliza una cuenta gratuita, no puede cambiar la <b>divisa origen</b> (USD por defecto)<br />. Pero si su divisa principal no es USD, puede usar la <b>divisa origen alternativa</b> para forzar su divisa principal. <br /><br />Está limitado a 1000 sincronizaciones por mes
 multicurrency_appId=Clave API
diff --git a/htdocs/langs/es_ES/orders.lang b/htdocs/langs/es_ES/orders.lang
index 2107778efaf..1533b4f25cb 100644
--- a/htdocs/langs/es_ES/orders.lang
+++ b/htdocs/langs/es_ES/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Área pedidos a proveedores
 OrderCard=Ficha pedido
 OrderId=Id pedido
 Order=Pedido
+PdfOrderTitle=Orden
 Orders=Pedidos
 OrderLine=Línea de pedido
 OrderDate=Fecha pedido
diff --git a/htdocs/langs/es_ES/other.lang b/htdocs/langs/es_ES/other.lang
index 33379c66d60..300a2f255a1 100644
--- a/htdocs/langs/es_ES/other.lang
+++ b/htdocs/langs/es_ES/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Mes anterior (texto) de la fecha de la factura
 NextMonthOfInvoice=Mes siguiente (número 1-12) de la fecha de la factura
 TextNextMonthOfInvoice=Mes siguiente (texto) de la fecha de la factura
 ZipFileGeneratedInto=Archivo zip generado en <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Año de la fecha de la factura
 PreviousYearOfInvoice=Año anterior de la fecha de la factura
diff --git a/htdocs/langs/es_ES/propal.lang b/htdocs/langs/es_ES/propal.lang
index 923437a4754..39e457ea6aa 100644
--- a/htdocs/langs/es_ES/propal.lang
+++ b/htdocs/langs/es_ES/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Presupuestos borrador
 ProposalsOpened=Presupuestos abiertos
 Prop=Presupuestos
 CommercialProposal=Presupuesto
+PdfCommercialProposalTitle=Presupuesto
 ProposalCard=Ficha presupuesto
 NewProp=Nuevo presupuesto
 NewPropal=Nuevo presupuesto
diff --git a/htdocs/langs/es_ES/salaries.lang b/htdocs/langs/es_ES/salaries.lang
index fe6c4de8ec2..1586e1012c9 100644
--- a/htdocs/langs/es_ES/salaries.lang
+++ b/htdocs/langs/es_ES/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Código contable cargas financieras
 Salary=Salario
 Salaries=Salarios
diff --git a/htdocs/langs/es_ES/website.lang b/htdocs/langs/es_ES/website.lang
index 9962f07cf32..cba37fcf340 100644
--- a/htdocs/langs/es_ES/website.lang
+++ b/htdocs/langs/es_ES/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Cree aquí tanto la entrada como el número de diferentes sitio
 DeleteWebsite=Eliminar sitio web
 ConfirmDeleteWebsite=¿Está seguro de querer eliminar este sitio web? Todas las páginas y contenido también sera eliminado
 WEBSITE_PAGENAME=Nombre/alias página
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL del fichero CSS externo
 WEBSITE_CSS_INLINE=Contenido CSS
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Librería de medios
-EditCss=Editar Estilo/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Editar menu
 EditPageMeta=Editar Meta
 EditPageContent=Editar contenido
 Website=Sitio web
-Webpage=Página web
-AddPage=Añadir página
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Vista previa de su sitio web <strong>%s</strong> todavía no disponible. Debe de añadir primero una página.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Página '%s' del sitio web %s eliminada
-PageAdded=Página '%s' añadida
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=Ver sitio en una pestaña nueva
 ViewPageInNewTab=Ver página en una pestaña nueva
 SetAsHomePage=Establecer como Página de inicio
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=Ver sitio web usando la URL de inicio
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Vista previa de %s en una nueva pestaña. <br><br>%s será servido por un servidor web externo (como Apache, Nginx, IIS). Antes debe instalar y configurar este servidor URL de <br><strong>%s</strong><br> servido por el servidor externo: <br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/es_ES/workflow.lang b/htdocs/langs/es_ES/workflow.lang
index 0d3ef48d095..a0a69401f5a 100644
--- a/htdocs/langs/es_ES/workflow.lang
+++ b/htdocs/langs/es_ES/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Configuración del módulo Flujo de trabajo
 WorkflowDesc=Este módulo está diseñado para modificar el comportamiento de acciones automáticas en la aplicación. Por defecto, el flujo de trabajo está abierto (se pueden hacer cosas en el orden que se desee). Puede activar las acciones automáticas que le interesen.
 ThereIsNoWorkflowToModify=No hay disponibles modificaciones de flujo de trabajo de los módulos activados.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crear un pedido de cliente automáticamente a la firma de un presupuesto
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Crear una factura a cliente automáticamente a la firma de un presupuesto
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Crear una factura a cliente automáticamente al validar un contrato
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Crear una factura a cliente automáticamente después de cerrar una orden
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Clasificar como facturado el presupuesto cuando el pedido de cliente relacionado se clasifique como pagado
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Clasificar como facturados los pedidos cuando la factura relacionada se clasifique como pagada
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Clasificar como facturados los pedidos de cliente relacionados cuando la factura sea validada
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Clasificar como facturado el presupuesto relacionado cuando la factura a cliente sea validada
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Clasificar como enviado el pedido relacionado cuando el envío relacionado sea validado y la cantidad enviada sea la misma que la del pedido
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Creación automática
 AutomaticClassification=Clasificación automática
diff --git a/htdocs/langs/es_MX/accountancy.lang b/htdocs/langs/es_MX/accountancy.lang
index ccf0f375279..68c8ebc4432 100644
--- a/htdocs/langs/es_MX/accountancy.lang
+++ b/htdocs/langs/es_MX/accountancy.lang
@@ -3,14 +3,27 @@ ACCOUNTING_EXPORT_SEPARATORCSV=Separador de columnas para el archivo de exportac
 ACCOUNTING_EXPORT_DATE=Formato de fecha para el archivo de exportación
 ACCOUNTING_EXPORT_PIECE=Exportar el número de pieza
 ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Exportación con cuenta global
-ACCOUNTING_EXPORT_DEVISE=Exportar moneda
+DefaultForService=Predeterminado para servicio
+InvoiceLabel=Etiqueta de factura
+DeleteCptCategory=Eliminar cuenta contable del grupo
+ConfirmDeleteCptCategory=¿Está seguro de que desea eliminar esta cuenta de contabilidad del grupo de cuentas contables?
+AlreadyInGeneralLedger=Ya registrado en diarios
+AccountancyAreaDescJournalSetup=PASO %s: Cree o verifique el contenido de su lista de diario desde el menú %s
+AccountancyAreaDescBind=PASO %s: Compruebe el enlace entre las líneas %s existentes y la cuenta de contabilidad está terminada, para que la aplicación pueda registrar las transacciones en el libro mayor en un solo clic. Complete los enlaces que falten. Para ello, utilice la entrada de menú %s.
 Selectchartofaccounts=Seleccionar gráfico activo de cuentas
+ShowAccountingAccount=Mostrar cuenta contable
+ShowAccountingJournal=Mostrar registro de contabilidad
 Ventilation=Agregando a cuentas
 CustomersVentilation=Agregar factura de cliente
 SuppliersVentilation=Agregar factura de proveedor
 CreateMvts=Crear nueva transaccion
 UpdateMvts=Modificación de una transacción
+ValidTransaction=Validar transacción
+WriteBookKeeping=Journalize transacciones en Ledger
+Bookkeeping=Libro mayor
 CAHTF=Total de compra al proveedor antes de impuestos
+InvoiceLines=Líneas de facturas para enlazar
+InvoiceLinesDone=Líneas de facturas vinculadas
 IntoAccount=Unir partida con la cuenta contable
 Ventilate=Agregar
 Processing=Procesando
@@ -19,6 +32,7 @@ SelectedLines=Partidas seleccionadas
 Lineofinvoice=Partida de factura
 VentilatedinAccount=Agregado exitosamente a la cuenta contable
 NotVentilatedinAccount=No añadido a la cuenta contable
+ACCOUNTING_LIMIT_LIST_VENTILATION=Número de elementos a enlazar mostrado por página (máximo recomendado: 50)
 ACCOUNTING_MISCELLANEOUS_JOURNAL=Diario de varios
 ACCOUNTING_EXPENSEREPORT_JOURNAL=Diario de reporte de gastos
 ACCOUNTING_SOCIAL_JOURNAL=Diario Social
@@ -29,11 +43,34 @@ ACCOUNTING_SERVICE_BUY_ACCOUNT=Cuenta contable por defecto para los servicios co
 ACCOUNTING_SERVICE_SOLD_ACCOUNT=Cuenta contable por defecto para los servicios vendidos (si no ha sido definida en la hoja servicio)
 Labelcompte=Descripción de la cuenta
 Sens=Significado
+ByAccounts=Por cuentas
+DelYear=Año a borrar
+DelJournal=Diario a borrar
+DelBookKeeping=Eliminar registro del libro mayor
 DescFinanceJournal=Diario financiero incluyendo todos los tipos de pagos por cuenta bancaria
+NewAccountingMvt=Nueva transacción
+NumMvts=Número de transacción
+ListeMvts=Lista de movimientos
 ErrorDebitCredit=Débito y Crédito no pueden tener un valor al mismo tiempo
+ReportThirdParty=Listar cuenta de terceros
+DescThirdPartyReport=Consulte aquí la lista de clientes y proveedores de terceros y sus cuentas de contabilidad
 Pcgtype=Tipo de cuenta
+Pcgsubtype=Subclase de cuenta
 TotalVente=Facturación total antes de impuestos
 TotalMarge=Margen de ventas total
 DescVentilDoneSupplier=Consulte aquí la lista de partidas de las facturas a proveedores y sus cuentas contables
+DescVentilExpenseReport=Consulte aquí la lista de líneas de reporte de gastos vinculadas (o no) a una cuenta de contabilidad de comisiones
+DescVentilExpenseReportMore=Si configura la cuenta contable en el tipo de líneas de reporte de gastos, la aplicación podrá hacer todo el enlace entre sus líneas de informes de gastos y la cuenta de contabilidad de su plan de cuentas, con un clic con el botón <strong> "%s" </strong>. Si la cuenta no se ha establecido en el diccionario de comisiones o si todavía tiene algunas líneas no vinculadas a ninguna cuenta, tendrá que realizar una vinculación manual en el menú "<strong> %s</strong>".
 ErrorAccountancyCodeIsAlreadyUse=Error, no es posible eliminar ésta cuenta contable porque está siendo usada
-MvtNotCorrectlyBalanced=Movimiento balanceado incorrectamente. Crédito = %s. Débito = %s
+AccountingJournal=Diario de contabilidad
+ShowAccoutingJournal=Mostrar registro de contabilidad
+AccountingJournalType1=Varias operaciones
+AccountingJournalType5=Informe de gastos
+AccountingJournalType9=Tiene nuevo
+ErrorAccountingJournalIsAlreadyUse=Este diario ya está en uso
+ExportDraftJournal=Exportar borrador de diario
+Modelcsv_CEGID=Exportar con compatibilidad para CEGID Expert
+Modelcsv_agiris=Exportar a Agiris (En pruebas aún)
+SomeMandatoryStepsOfSetupWereNotDone=Algunos pasos obligatorios de la instalación no se realizaron, favor de completar
+ExportNotSupported=El formato de exportación configurado no se admite en esta página
+NoJournalDefined=Ningún diario definido
diff --git a/htdocs/langs/es_MX/admin.lang b/htdocs/langs/es_MX/admin.lang
index 7a5fd81233d..6e98301ce82 100644
--- a/htdocs/langs/es_MX/admin.lang
+++ b/htdocs/langs/es_MX/admin.lang
@@ -18,6 +18,7 @@ WarningModuleNotActive=El módulo <b>%s</b> debe estar habilitado
 WarningOnlyPermissionOfActivatedModules=Sólo los permisos relacionados a los módulos activados son mostrados aquí. Puedes activar otros módulos en la página Inicio->Configuración->Módulos
 DolibarrSetup=Instalación o actualización de Dolibarr
 SetupArea=Área de configuración
+UploadNewTemplate=Subir nueva(s) plantilla(s)
 FormToTestFileUploadForm=Formulario para probar la carga de archivos (según la configuración)
 IfModuleEnabled=Nota: sí es efectivo sólo si el módulo <b>%s</b> está activado
 RemoveLock=Eliminar archivo <b>%s</b> si existe para permitir el uso de la herramienta para actualizar
@@ -65,15 +66,63 @@ OSTZ=Servidor OS Zona Horaria
 PHPTZ=Servidor PHP Zona Horaria
 DaylingSavingTime=Hora de verano
 CurrentSessionTimeOut=Sesión actual pausada
+MaxNbOfLinesForBoxes=Número máximo de líneas para widgets
 PositionByDefault=Pedido por defecto
 Position=Puesto
 MenusDesc=Administradores de menú establecen contenido de las dos barras de menú (horizontal y vertical)
 MenusEditorDesc=El editorde menú te permite definir entradas personales de menú. Usalo cuidadosamente para evitar inestabilidad y permanente incapacidad de acceder a entradas del menú.<br />Algunos módulos agregan entradas de menú (en menú <b>Todo</b>principalmente). Si tu remueves algunas de estas entradas por error, tu puedes restaurarlas deshabilitando y rehabilitando el  módulo.
+MenuForUsers=Menú para usuarios
+LangFile=Archivo .lang
+SystemInfo=Información del sistema
+SystemToolsArea=Área de herramientas del sistema
+SystemToolsAreaDesc=Esta área proporciona funciones de administración. Utilice el menú para elegir la función que está buscando.
+PurgeAreaDesc=Esta página le permite borrar todos los archivos generados o almacenados por Dolibarr (archivos temporales o todos los archivos del directorio <b>%s </b>). No es necesario utilizar esta función. Se proporciona como una solución para los usuarios cuyo Dolibarr está alojado por un proveedor que no ofrece permisos para eliminar archivos generados por el servidor web.
+PurgeDeleteTemporaryFiles=Eliminar todos los archivos temporales (sin riesgo de perder datos)
+PurgeDeleteAllFilesInDocumentsDir=Elimine todos los archivos del directorio <b> %s </b>. Los archivos temporales, pero también los volcados de copia de seguridad de la base de datos, los archivos adjuntos a elementos (terceros, facturas, ...) y cargados en el módulo ECM se eliminarán.
+PurgeRunNow=Purgar ahora
+PurgeNothingToDelete=Ningún directorio o archivos que desee eliminar.
+PurgeNDirectoriesDeleted=<B> %s </b> archivos o directorios eliminados.
+PurgeAuditEvents=Purgar todos los eventos de seguridad
+ConfirmPurgeAuditEvents=¿Está seguro de que desea eliminar todos los eventos de seguridad? Todos los registros de seguridad se eliminarán, no se eliminarán otros datos.
+Backup=Copia de Seguridad
+Restore=Restaurar
+RunCommandSummary=Se ha iniciado la copia de seguridad con el siguiente comando
+BackupResult=Resultado de copia de seguridad
+BackupFileSuccessfullyCreated=Archivo de copia de seguridad generado correctamente
+YouCanDownloadBackupFile=Los archivos generados ahora se pueden descargar
+NoBackupFileAvailable=No hay archivos de copia de seguridad disponibles.
+ToBuildBackupFileClickHere=Para crear un archivo de copia de seguridad, haga clic <a href="%s"> aquí </a>.
+ImportMySqlDesc=Para importar un archivo de copia de seguridad, debe utilizar el comando mysql desde la línea de comandos:
+ImportPostgreSqlDesc=Para importar un archivo de respaldo, debe usar el comando pg_restore en la linea de comandos:
+ImportMySqlCommand=%s %s < miarchivoderespaldo.sql
+FileNameToGenerate=Nombre de archivo a generar
+CommandsToDisableForeignKeysForImport=Comando para deshabilitar claves foráneas en la importación
+CommandsToDisableForeignKeysForImportWarning=Obligatorio si desea restaurar su copia de seguridad de SQL más tarde
+MySqlExportParameters=Parámetros de exportación de MySQL
+PostgreSqlExportParameters=Parámetros de exportación de PostgreSQL
+UseTransactionnalMode=Usar modo transaccional
+FullPathToPostgreSQLdumpCommand=Ruta completa del comando pg_dump
+ExportOptions=Opciónes de exportación
+AddDropDatabase=Agregar comando DROP DATABASE
+AddDropTable=Agregar comando DROP TABLE
+NameColumn=Nombre de columnas
+EncodeBinariesInHexa=Convertir datos binarios en hexadecimal
+OnlyActiveElementsAreShown=Solo elementos de <a href="%s">\nmodulos habilitados</a> son\n mostrados.
+ModulesDesc=Módulos Dolibarr definen que\naplicación/característica esta habilitada en\nel programa. Algunas\naplicaciónes/módulos requieren\npermisos que tu debes otorgar a\nusuarios, despues de activarlos.\nHaz click en el botón on/off para habilitar un\nmódulo/aplicación.
+ModulesMarketPlaceDesc=Tu puedes encontrar mas módulos para descargar en sitios web externos en el Internet
 URL=Vínculo
+LastActivationIP=IP de activación más reciente
 ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
+WarningSettingSortOrder=Advertencia, establecer un orden predeterminado puede resultar en un error técnico al pasar a la página de lista si "campo" es un campo desconocido. Si experimenta un error de este tipo, vuelva a esta página para eliminar el orden predeterminado y restaurar el comportamiento predeterminado.
 Module50Name=productos
 Module770Name=Reporte de gastos
+Module3200Desc=Active el registro de algunos eventos empresariales en un registro no reversible. Los eventos se archivan en tiempo real. El registro es una tabla de sucesos encadenados que se pueden leer y exportar. Este módulo puede ser obligatorio para algunos países.
 DictionaryCanton=Estado/Provincia
+DictionaryAccountancyJournal=Diarios de contabilidad
 Upgrade=Actualizar
 CompanyName=Nombre
 LDAPFieldFirstName=Nombre(s)
+CacheByServerDesc=Por ejemplo, utilizando la directiva Apache "ExpiresByType image/gif A2592000"
+AGENDA_SHOW_LINKED_OBJECT=Mostrar objeto vinculado en la vista de agenda
+ConfFileMustContainCustom=Instalar o construir un módulo externo desde la aplicación necesita guardar los archivos del módulo en el directorio <strong> %s </strong>. Para que este directorio sea procesado por Dolibarr, debe configurar su <strong> conf/conf.php </strong> para agregar las 2 líneas de directiva: <strong> $dolibarr_main_url_root_alt='/custom'; </strong> <br> <strong> $dolibarr_main_document_root_alt='%s/custom'; </strong>
+WarningNoteModulePOSForFrenchLaw=Este módulo %s es compatible con las leyes francesas (Loi Finance 2016) porque el módulo Non Reversible Logs se activa automáticamente.
diff --git a/htdocs/langs/es_MX/agenda.lang b/htdocs/langs/es_MX/agenda.lang
index 53d212bf453..d92663bcb04 100644
--- a/htdocs/langs/es_MX/agenda.lang
+++ b/htdocs/langs/es_MX/agenda.lang
@@ -1,5 +1,6 @@
 # Dolibarr language file - Source file is en_US - agenda
 ActionsOwnedBy=Evento propiedad de
+AffectedTo=Asignado a
 Event=Evento
 ListOfActions=Lista de eventos
 EventOnFullDay=Evento de todo el día(s)
@@ -35,9 +36,13 @@ SupplierInvoiceSentByEMail=Factura de proveedor %s enviada por correo electróni
 ShippingSentByEMail=Envío %s enviado por correo electrónico
 ShippingValidated=Envío %s validado
 InterventionSentByEMail=Intervención %s enviada por correo electrónico
+PRODUCT_CREATEInDolibarr=Producto %s creado
+PRODUCT_MODIFYInDolibarr=Producto %s modificado
+PRODUCT_DELETEInDolibarr=Producto %s eliminado
 DateActionEnd=Fecha de finalización
 AgendaUrlOptions1=También puede agregar los siguientes parámetros para filtrar la salida:
 AgendaUrlOptions3=<b>logina=%s</b> para restringir la salida a las acciones propiedad del usuario <b>%s</b>.
+AgendaUrlOptionsNotAdmin=<B> logina =!%s </b> para restringir la salida a acciones que no pertenecen al usuario <b> %s </b>.
 AgendaUrlOptions4=<b>logint=%s</b> para restringir la salida a acciones asignadas al usuario <b>%s</b>.
 AgendaUrlOptionsProject=<b>project=PROJECT_ID</b> para restringir la salida a acciones asociadas al proyecto <b>PROJECT_ID</b>.
 ExportDataset_event1=Lista de eventos de la agenda
diff --git a/htdocs/langs/es_MX/banks.lang b/htdocs/langs/es_MX/banks.lang
index 0d809e615c9..28419a19c6f 100644
--- a/htdocs/langs/es_MX/banks.lang
+++ b/htdocs/langs/es_MX/banks.lang
@@ -28,22 +28,34 @@ BankType2=Cuenta de caja/efectivo
 AccountsArea=Área de cuentas
 AccountCard=Ficha de cuenta
 DeleteAccount=Eliminar cuenta
+ConfirmDeleteAccount=¿Seguro que desea eliminar esta cuenta?
 IdTransaction=ID de transacción
+ListTransactions=Listar entradas
+ListTransactionsByCategory=Listar entradas / categoría
+TransactionsToConciliate=Entradas para conciliar
 Conciliable=Puede ser conciliado
 OnlyOpenedAccount=Sólo las cuentas abiertas
 DisableConciliation=Desactivar función de conciliación para esta cuenta
 ConciliationDisabled=Característica conciliación deshabilitada
 StatusAccountOpened=Abierta
 LineRecord=Transacción
+AddBankRecord=Añadir entrada
+AddBankRecordLong=Añadir entrada manualmente
 DateConciliating=Fecha de conciliación
+BankLineConciliated=Entrada reconciliada
 CustomerInvoicePayment=Pago de cliente
 WithdrawalPayment=Pago de retiro
 SocialContributionPayment=Pago de impuesto social/fiscal
+TransferDesc=Transferencia de una cuenta a otra, Dolibarr escribirá dos registros (un débito en la cuenta de origen y un crédito en la cuenta de destino, para esta transacción se utilizará la misma cantidad (excepto signo), etiqueta y fecha)
 TransferFromToDone=La transferencia de <b>%s</b> hacia <b>%s</b> de <b>%s</b> %s ha sido registrada.
+ValidateCheckReceipt=¿Validar este recibo de cheque?
+ConfirmValidateCheckReceipt=¿Está seguro de que desea validar este recibo de cheques, ningún cambio será posible una vez hecho esto?
+DeleteCheckReceipt=¿Eliminar este recibo de cheque?
 BankChecks=Cheques bancarios
 BankChecksToReceipt=Cheques en espera de depósito
 ShowCheckReceipt=Mostrar recibo de depósito de cheque
 NumberOfCheques=Número de cheque
+DeleteTransaction=Eliminar la entrada
 ExportDataset_banque_2=Ficha de depósito
 TransactionOnTheOtherAccount=Transacción en la otra cuenta
 PaymentNumberUpdateSucceeded=Número de pago actualizado con éxito
diff --git a/htdocs/langs/es_MX/companies.lang b/htdocs/langs/es_MX/companies.lang
index 1550a99d48e..b93f3b13a4d 100644
--- a/htdocs/langs/es_MX/companies.lang
+++ b/htdocs/langs/es_MX/companies.lang
@@ -17,6 +17,7 @@ AliasNameShort=Nombre simple
 CountryIsInEEC=El país está dentro de la Comunidad Económica Europea
 ThirdPartyName=Nombre de tercero
 ThirdPartyCustomersWithIdProf12=Clientes con %s o %s
+ToCreateContactWithSameName=Creará automáticamente un contacto/dirección con la misma información en tercero. En la mayoría de los casos, incluso si su tercero es una persona física, la creación de un tercero solo es suficiente.
 ParentCompany=Empresa matriz
 ReportByCustomers=Reporte por clientes
 ReportByQuarter=Reporte por tasa
@@ -30,9 +31,11 @@ CountryId=ID de país
 PhonePro=Teléfono trabajo
 PhonePerso=Teléfono particular
 PhoneMobile=Celular
+No_Email=Rechazar e-mailings masivos
 Town=Ciudad
 Web=Página de internet
 LocalTax1IsUsed=Usar segundo impuesto
+LocalTax1IsUsedES=RE se utiliza
 LocalTax2IsUsed=Usar tercer impuesto
 WrongCustomerCode=Código de cliente inválido
 WrongSupplierCode=Código de proveedor inválido
@@ -84,6 +87,9 @@ ProfId2MA=ID Prof. 2 (Patente)
 ProfId3MA=Id Prof. 3 (I.F.)
 ProfId4MA=ID Prof. 4 (C.N.S.S.)
 ProfId2MX=R.P. IMSS
+ProfId3PT=Prof Id 3 (número de registro comercial)
+VATIntra=Número de IVA
+VATIntraShort=Número de IVA
 VATIntraSyntaxIsValid=La sintaxis es válida
 ProspectCustomer=Cliente potencial / Cliente
 CustomerCard=Ficha del cliente
diff --git a/htdocs/langs/es_MX/compta.lang b/htdocs/langs/es_MX/compta.lang
index 9c1cd218356..b209aec0b1e 100644
--- a/htdocs/langs/es_MX/compta.lang
+++ b/htdocs/langs/es_MX/compta.lang
@@ -1,4 +1,9 @@
 # Dolibarr language file - Source file is en_US - compta
+MenuFinancial=Financiero
 Param=Configuración
+VATReceived=VAT received
+VATToCollect=VAT purchases
+VATSummary=VAT Balance
+VATPaid=VAT paid
 PaymentSocialContribution=Pago de impuesto social/fiscal
 ByThirdParties=Por terceros
diff --git a/htdocs/langs/es_MX/holiday.lang b/htdocs/langs/es_MX/holiday.lang
index b831a466cf7..213091587cf 100644
--- a/htdocs/langs/es_MX/holiday.lang
+++ b/htdocs/langs/es_MX/holiday.lang
@@ -1,9 +1,19 @@
 # Dolibarr language file - Source file is en_US - holiday
+Holidays=Licencias
+CPTitreMenu=Licencias
+MenuAddCP=Nueva solicitud de licencia
+NotActiveModCP=Debe activar el módulo de licencias para ver esta página.
+AddCP=Hacer una solicitud de licencia
 DateDebCP=Fecha de inicio
 DateFinCP=Fecha de finalización
 ApprovedCP=Aprobado
 CancelCP=Cancelado
 RefuseCP=Rechazado
+ListeCP=Lista de licencias
+ReviewedByCP=Será aprobado por
+SendRequestCP=Crear solicitud de licencia
+DelayToRequestCP=Las solicitudes de permiso deben ser hechas al menos <b> %s día(s) </b> antes.
+MenuConfCP=Balance de licencias
 EditCP=Editar
 ActionCancelCP=Cancelar
 MotifCP=Razón
diff --git a/htdocs/langs/es_MX/install.lang b/htdocs/langs/es_MX/install.lang
index 5b0120eb612..bbd54f20597 100644
--- a/htdocs/langs/es_MX/install.lang
+++ b/htdocs/langs/es_MX/install.lang
@@ -40,7 +40,6 @@ PasswordAgain=Vuelva a escribir la contraseña por segunda vez
 AdminPassword=Contraseña para el propietario de la base de datos de Dolibarr.
 DatabaseSuperUserAccess=Servidor de base de datos - acceso de Superusuario
 CheckToCreateDatabase=Marque la casilla si no existe base de datos y se debe crear.<br>En este caso, debe llenar el login/contraseña de la cuenta de superusuario en la parte inferior de esta página.
-CheckToCreateUser=Marque la casilla si el propietario de base de datos no existe y debe ser creado.<br>En este caso, debe elegir su nombre de usuario y contraseña y también llenar el login/contraseña de la cuenta de superusuario en la parte inferior de esta página. Si esta casilla no está marcada, el propietario de la base de datos y su contraseña deben existir.
 DatabaseRootLoginDescription=Login del usuario con permisos para crear nuevas bases de datos o nuevos usuarios, obligatorio si su base de datos o su propietario no existen.
 KeepEmptyIfNoPassword=Deje en blanco si el usuario no tiene contraseña (evite esto)
 SaveConfigurationFile=Guardar valores
diff --git a/htdocs/langs/es_MX/main.lang b/htdocs/langs/es_MX/main.lang
index e48ab931f18..3a69d24074e 100644
--- a/htdocs/langs/es_MX/main.lang
+++ b/htdocs/langs/es_MX/main.lang
@@ -94,6 +94,7 @@ DefaultValue=Valor predeterminado
 PriceUTTC=P.U. (IVA incl.)
 AmountInvoice=Importe de la factura
 AmountPayment=Importe de pago
+MulticurrencyPaymentAmount=Monto del pago, moneda original
 AmountLT1=Importe impuestos 2
 AmountLT2=Importe impuestos 3
 AmountAverage=Importe promedio
@@ -104,6 +105,7 @@ TTC=IVA Incluido
 VATs=Impuestos de ventas
 VATRate=Tasa de IVA
 Average=Promedio
+Modules=Módulos/Aplicaciones
 List=Lista
 FullList=Lista completa
 RefSupplier=Ref. Proveedor
@@ -291,3 +293,4 @@ SearchIntoCustomerOrders=Pedidos de los clientes
 SearchIntoCustomerProposals=Propuestas de clientes
 SearchIntoSupplierProposals=Propuestas de proveedores
 SearchIntoExpenseReports=Reporte de gastos
+SearchIntoLeaves=Licencias
diff --git a/htdocs/langs/es_MX/paybox.lang b/htdocs/langs/es_MX/paybox.lang
index b5e026cdced..dd38b46a33b 100644
--- a/htdocs/langs/es_MX/paybox.lang
+++ b/htdocs/langs/es_MX/paybox.lang
@@ -1,2 +1,3 @@
 # Dolibarr language file - Source file is en_US - paybox
+WelcomeOnPaymentPage=Bienvenido a nuestro servicio de pago en línea
 Continue=Siguiente
diff --git a/htdocs/langs/es_MX/products.lang b/htdocs/langs/es_MX/products.lang
index af22c89503a..020764ca7f6 100644
--- a/htdocs/langs/es_MX/products.lang
+++ b/htdocs/langs/es_MX/products.lang
@@ -1,6 +1,21 @@
 # Dolibarr language file - Source file is en_US - products
-TMenuProducts=productos
-Products=productos
+ProductId=ID de producto / servicio
+CantBeLessThanMinPrice=El precio de venta no puede ser inferior al mínimo permitido para este producto (%s sin impuestos). Este mensaje también puede aparecer si escribe un descuento demasiado importante.
 ContractStatusClosed=Cerrada
-ExportDataset_produit_1=productos
+ErrorProductBadRefOrLabel=Valor incorrecto para referencia o etiqueta.
+ProductsAndServicesArea=Área de productos y servicios
+ProductsArea=Área de producto
+SetDefaultBarcodeType=Establecer el tipo de código de barras
+AssociatedProductsAbility=Activar la función para administrar productos virtuales
+AssociatedProducts=Producto virtual
+KeywordFilter=Filtro de palabras clave
+NoMatchFound=No se encontraron coincidencias
+DeleteProduct=Eliminar un producto / servicio
+ExportDataset_produit_1=Productos
 ImportDataset_produit_1=productos
+GlobalVariableUpdaterType0=Datos JSON
+GlobalVariableUpdaterHelp0=Analiza los datos JSON de la URL especificada, VALUE especifica la ubicación del valor relevante,
+GlobalVariableUpdaterHelpFormat0=Formato de la solicitud {"URL": "http://example.com/urlofjson", "VALUE": "array1, array2, targetvalue"}
+GlobalVariableUpdaterType1=Datos de WebService
+GlobalVariableUpdaterHelp1=Analiza los datos de WebService desde la URL especificada, NS especifica el espacio de nombres, VALUE especifica la ubicación del valor relevante, DATA debe contener los datos a enviar y METHOD es el método WS que llama
+GlobalVariableUpdaterHelpFormat1=El formato de la solicitud es {"URL": "http://example.com/urlofws", "VALUE": "array, targetvalue", "NS": "http://example.com/urlofns", "METHOD" : "MyWSMethod", "DATA": {"tus": "datos", "a": "enviar"}}
diff --git a/htdocs/langs/es_MX/stocks.lang b/htdocs/langs/es_MX/stocks.lang
index 07ee78f0dea..4bfe01abf24 100644
--- a/htdocs/langs/es_MX/stocks.lang
+++ b/htdocs/langs/es_MX/stocks.lang
@@ -1,6 +1,8 @@
 # Dolibarr language file - Source file is en_US - stocks
 Stock=stock
 Location=Ubicación
+StockCorrection=Correct stock
+StockTransfer=Transfer stock
 inventoryEdit=Editar
 inventoryDeleteLine=Borrar línea
 ListInventory=Lista
diff --git a/htdocs/langs/es_MX/users.lang b/htdocs/langs/es_MX/users.lang
index 3e1587b1ba1..b3893c38b29 100644
--- a/htdocs/langs/es_MX/users.lang
+++ b/htdocs/langs/es_MX/users.lang
@@ -1,3 +1,14 @@
 # Dolibarr language file - Source file is en_US - users
+UserCard=Tarjeta de usuario
+GroupCard=Tarjeta de grupo
+Permission=Permiso
+EditPassword=Editar contraseña
+SendNewPassword=Regenerar y enviar contraseña
+ReinitPassword=Regenerar contraseña
+PasswordChangedTo=La contraseña ha cambiado a: %s
+UserRights=Permisos de usuario
+UserGUISetup=Configuración de la pantalla del usuario
+DisableAUser=Deshabilitar un usuario
+EnableAUser=Habilitar un usuario
 LastName=Apellido
 FirstName=Nombre(s)
diff --git a/htdocs/langs/et_EE/accountancy.lang b/htdocs/langs/et_EE/accountancy.lang
index e50968beac9..984e52fea67 100644
--- a/htdocs/langs/et_EE/accountancy.lang
+++ b/htdocs/langs/et_EE/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Kood
 Nature=Loomus
 AccountingJournalType1=Various operation
 AccountingJournalType2=Müügid
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Eksportimised
-Export=Eksport
 ExportDraftJournal=Export draft journal
 Modelcsv=Eksportimise mudel
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/et_EE/admin.lang b/htdocs/langs/et_EE/admin.lang
index d41e513558d..9b67cffee6b 100644
--- a/htdocs/langs/et_EE/admin.lang
+++ b/htdocs/langs/et_EE/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Süsteemi tööriistade ala
 SystemToolsAreaDesc=Selles alas on administreerimise vahendid. Kasuta menüüd, et leida soovitud tööriist.
 Purge=Tühjenda
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Kustuta kõik failid kataloogis <b>%s</b>. Kustutatakse ajutised failid, andmebaasi varukoopiad, elementidega (kolmandad isikud, arved, ...) seotud failid ning dokumendihaldusse üles laetud failid.
 PurgeRunNow=Tühjenda nüüd
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> faili või kataloogi kustutatud.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Tühjenda kõik turvalisusega seotud sündmused
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Loo varukoopia
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarri praegune versioo
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Viimane stabiilne versioon
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Mantise integratsioon
-Module1400Name=Raamatupidamine
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Sildid/kategooriad
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Moodul, mis pakub online-makse võimalust krediitkaardiga Paypali abil
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Allahindluste vaatamine
 Permission402=Allahindluste loomine/muutmine
 Permission403=Allahindluste kinnitamine
 Permission404=Allahindluste kustutamine
-Permission510=Palkade vaatamine
-Permission512=Palkade loomine/muutmine
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Palkade kustutamine
 Permission517=Palkade eksportimine
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQLi import
 ForcedToByAModule= Aktiveeritud moodul on antud reegli väärtuseks sundinud <b>%s</b>
-PreviousDumpFiles=Saadaval andmebaasi varukoopiate tõmmised
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=Nädala esimene päev
 RunningUpdateProcessMayBeRequired=Tundub, et on vaja käivitada uuendamise protsess (programmi versioon %s erineb andmebaasi versioonist %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=Antud käsu peab käivitama käsurealt pärast kasutajaga <b>%s</b> sisse logimist või lisades -W võtme käsu lõppu parooli <b>%s</b> kasutamiseks.
diff --git a/htdocs/langs/et_EE/banks.lang b/htdocs/langs/et_EE/banks.lang
index e1bdf4e567c..4dfa50b5096 100644
--- a/htdocs/langs/et_EE/banks.lang
+++ b/htdocs/langs/et_EE/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/et_EE/bills.lang b/htdocs/langs/et_EE/bills.lang
index 5d33969c01b..cead2faa754 100644
--- a/htdocs/langs/et_EE/bills.lang
+++ b/htdocs/langs/et_EE/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Arve kaart
 PredefinedInvoices=Eelmääratletud arved
 Invoice=Arve
+PdfInvoiceTitle=Arve
 Invoices=Arved
 InvoiceLine=Arve rida
 InvoiceCustomer=Müügiarve
diff --git a/htdocs/langs/et_EE/compta.lang b/htdocs/langs/et_EE/compta.lang
index f5ca41fd6bb..098f28682aa 100644
--- a/htdocs/langs/et_EE/compta.lang
+++ b/htdocs/langs/et_EE/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/et_EE/errors.lang b/htdocs/langs/et_EE/errors.lang
index fa6e137939d..5031e949385 100644
--- a/htdocs/langs/et_EE/errors.lang
+++ b/htdocs/langs/et_EE/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/et_EE/install.lang b/htdocs/langs/et_EE/install.lang
index 314ab09b0f3..f64b29c5d7f 100644
--- a/htdocs/langs/et_EE/install.lang
+++ b/htdocs/langs/et_EE/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Dolibarri andmebaasi omaniku kasutajanimi.
 PasswordAgain=Korda parooli
 AdminPassword=Dolibarri andmebaasi omaniku parool.
 CreateDatabase=Loo andmebaas
-CreateUser=Loo omanik
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Andmebaasi server - administraatori ligipääs
 CheckToCreateDatabase=Märgista ruut, kui andmebaasi ei ole veel olemas ja see tuleb luua. <br>Sellisel juhul tuleb antud lehe alumises osas täita andmebaasi administraatori kasutajanimi ja parool.
-CheckToCreateUser=Märgista ruut, kui andmebaasi omanikku ei ole veel olemas ja see tuleb luua. <br>Sellisel juhul tuleb talle valida kasutajanimi ja parool ning täita antud lehe alumises osas asuvad andmebaasi administraatori kasutajanime ja parooli väljad. Kui antud ruut on märgistamata, peavad andmebaasi omanik, andmebaas ja parool juba seadistatud olema.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Kui andmebaasi või selle omanikku ei ole olemas, peab siia sisestama sellise kasutaja kasutajanime, kellel on lubatud luua uusi andmebaase või kasutajaid.
 KeepEmptyIfNoPassword=Jäta tühjaks, kui kasutajal pole parooli (väldi seda)
 SaveConfigurationFile=Salvesta väärtused
diff --git a/htdocs/langs/et_EE/main.lang b/htdocs/langs/et_EE/main.lang
index c872796e827..2a5f4b85d36 100644
--- a/htdocs/langs/et_EE/main.lang
+++ b/htdocs/langs/et_EE/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=Fail on edukalt üles laetud
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=Fail on valitud manustamiseks, kuid on veel üles laadimata. Klõpsa &quot;Lisa fail&quot; nupul selle lisamiseks.
 NbOfEntries=Kannete arv
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parameeter
 Parameters=Parameetrid
 Value=Väärtus
 PersonalValue=Isiklik väärtus
+NewObject=New %s
 NewValue=Uus väärtus
 CurrentValue=Praegune väärtus
 Code=Kood
@@ -441,6 +443,7 @@ Reporting=Aruandlus
 Reportings=Aruandlus
 Draft=Mustand
 Drafts=Mustandid
+StatusInterInvoiced=
 Validated=Kinnitatud
 Opened=Ava
 New=Uus
@@ -727,6 +730,7 @@ SetBankAccount=Määratle pangakonto
 AccountCurrency=Konto valuuta
 ViewPrivateNote=Vaata märkmeid
 XMoreLines=%s joon(t) varjatud
+ShowMoreLines=Show more lines
 PublicUrl=Avalik link
 AddBox=Lisa kast
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Mine Kodu - Seadistamine - Ettevõte logo muutmiseks või mine Kodu - Seadistamine - Kuva logo peitmiseks.
 Deny=Lükka tagasi
 Denied=Tagasi lükatud
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gender
 Genderman=Man
diff --git a/htdocs/langs/et_EE/modulebuilder.lang b/htdocs/langs/et_EE/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/et_EE/modulebuilder.lang
+++ b/htdocs/langs/et_EE/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/et_EE/orders.lang b/htdocs/langs/et_EE/orders.lang
index d04b6361c9b..1d6b8579aa0 100644
--- a/htdocs/langs/et_EE/orders.lang
+++ b/htdocs/langs/et_EE/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Ostutellimuste ala
 OrderCard=Tellimuse kaar
 OrderId=Tellimuse ID
 Order=Tellimus
+PdfOrderTitle=Tellimus
 Orders=Tellimused
 OrderLine=Tellimuse rida
 OrderDate=Telllimuse kuupäev
diff --git a/htdocs/langs/et_EE/other.lang b/htdocs/langs/et_EE/other.lang
index a348bf71cab..73e0996752f 100644
--- a/htdocs/langs/et_EE/other.lang
+++ b/htdocs/langs/et_EE/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/et_EE/propal.lang b/htdocs/langs/et_EE/propal.lang
index 49094c66a9a..1b393d898bb 100644
--- a/htdocs/langs/et_EE/propal.lang
+++ b/htdocs/langs/et_EE/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Koosta pakkumiste mustandeid
 ProposalsOpened=Open commercial proposals
 Prop=Pakkumised
 CommercialProposal=Pakkumine
+PdfCommercialProposalTitle=Pakkumine
 ProposalCard=Pakkumise kaart
 NewProp=Uus pakkumine
 NewPropal=Uus pakkumine
diff --git a/htdocs/langs/et_EE/salaries.lang b/htdocs/langs/et_EE/salaries.lang
index 9c3315775c6..0536dd64079 100644
--- a/htdocs/langs/et_EE/salaries.lang
+++ b/htdocs/langs/et_EE/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Palk
 Salaries=Palgad
diff --git a/htdocs/langs/et_EE/website.lang b/htdocs/langs/et_EE/website.lang
index bc746cfb616..ed5596423d5 100644
--- a/htdocs/langs/et_EE/website.lang
+++ b/htdocs/langs/et_EE/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/et_EE/workflow.lang b/htdocs/langs/et_EE/workflow.lang
index d0608b39635..55b75307493 100644
--- a/htdocs/langs/et_EE/workflow.lang
+++ b/htdocs/langs/et_EE/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Töövoo mooduli seaded
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Pärast tellimusega seotud makse laekumist määra tellimusega seotud pakkumise staatuseks 'Arve esitatud'
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Kui müügiarve staatuseks on määratud 'Makstud', siis määra seotud tellimus(t)e staatuseks 'Arve esitatud'
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Kui müügiarve on kinnitatud, siis määra seotud tellimus(t)e staatuseks 'Arve esitatud'
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/eu_ES/accountancy.lang b/htdocs/langs/eu_ES/accountancy.lang
index 5946647eac8..a7176d2e55f 100644
--- a/htdocs/langs/eu_ES/accountancy.lang
+++ b/htdocs/langs/eu_ES/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Kodea
 Nature=Nature
 AccountingJournalType1=Various operation
 AccountingJournalType2=Sales
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exports
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model of export
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/eu_ES/admin.lang b/htdocs/langs/eu_ES/admin.lang
index 7ad6e90e525..ad6c0142a90 100644
--- a/htdocs/langs/eu_ES/admin.lang
+++ b/htdocs/langs/eu_ES/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Sistemaren tresnen gunea
 SystemToolsAreaDesc=Gune honek kudeaketarako aukerak eskaintzen ditu. Bilatzen ari zarena aukeratzeko menua erabili.
 Purge=Garbitu
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory <b>%s</b>. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted.
 PurgeRunNow=Orain garbitu
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> fitxategi edo karpetak ezabatu dira.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Garbitu segurtasuneko gertaera guztiak
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Segurtasun-kopia egin
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr-en uneko bertsioa
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Mantis integration
-Module1400Name=Kontabilitatea
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Module to offer an online payment page by credit card with Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Read discounts
 Permission402=Create/modify discounts
 Permission403=Validate discounts
 Permission404=Delete discounts
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
-PreviousDumpFiles=Available database backup dump files
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=First day of week
 RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user <b>%s</b> or you must add -W option at end of command line to provide <b>%s</b> password.
diff --git a/htdocs/langs/eu_ES/banks.lang b/htdocs/langs/eu_ES/banks.lang
index 6e8ca4df40f..8bb93412cfa 100644
--- a/htdocs/langs/eu_ES/banks.lang
+++ b/htdocs/langs/eu_ES/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/eu_ES/bills.lang b/htdocs/langs/eu_ES/bills.lang
index 73782407f3b..5c398b8ff9e 100644
--- a/htdocs/langs/eu_ES/bills.lang
+++ b/htdocs/langs/eu_ES/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Invoice card
 PredefinedInvoices=Predefined Invoices
 Invoice=Invoice
+PdfInvoiceTitle=Invoice
 Invoices=Fakturak
 InvoiceLine=Invoice line
 InvoiceCustomer=Customer invoice
diff --git a/htdocs/langs/eu_ES/compta.lang b/htdocs/langs/eu_ES/compta.lang
index e12d45ebc22..65b6e95f44c 100644
--- a/htdocs/langs/eu_ES/compta.lang
+++ b/htdocs/langs/eu_ES/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/eu_ES/errors.lang b/htdocs/langs/eu_ES/errors.lang
index feada2d1b5a..853a34b4bb4 100644
--- a/htdocs/langs/eu_ES/errors.lang
+++ b/htdocs/langs/eu_ES/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/eu_ES/install.lang b/htdocs/langs/eu_ES/install.lang
index a3533a31277..5b6ba06e78a 100644
--- a/htdocs/langs/eu_ES/install.lang
+++ b/htdocs/langs/eu_ES/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner.
 PasswordAgain=Retype password a second time
 AdminPassword=Password for Dolibarr database owner.
 CreateDatabase=Create database
-CreateUser=Create owner
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Database server - Superuser access
 CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
-CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
 KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
 SaveConfigurationFile=Save values
diff --git a/htdocs/langs/eu_ES/main.lang b/htdocs/langs/eu_ES/main.lang
index 53867790cd6..b0d931d147c 100644
--- a/htdocs/langs/eu_ES/main.lang
+++ b/htdocs/langs/eu_ES/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=The file was successfully uploaded
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
 NbOfEntries=Nb of entries
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parameter
 Parameters=Parameters
 Value=Balioa
 PersonalValue=Personal value
+NewObject=New %s
 NewValue=Balio berria
 CurrentValue=Current value
 Code=Kodea
@@ -441,6 +443,7 @@ Reporting=Reporting
 Reportings=Reporting
 Draft=Draft
 Drafts=Drafts
+StatusInterInvoiced=
 Validated=Validated
 Opened=Open
 New=New
@@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account
 AccountCurrency=Account Currency
 ViewPrivateNote=View notes
 XMoreLines=%s line(s) hidden
+ShowMoreLines=Show more lines
 PublicUrl=Public URL
 AddBox=Add box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gender
 Genderman=Man
diff --git a/htdocs/langs/eu_ES/modulebuilder.lang b/htdocs/langs/eu_ES/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/eu_ES/modulebuilder.lang
+++ b/htdocs/langs/eu_ES/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/eu_ES/orders.lang b/htdocs/langs/eu_ES/orders.lang
index fc4b781423f..2ee06c5e46a 100644
--- a/htdocs/langs/eu_ES/orders.lang
+++ b/htdocs/langs/eu_ES/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area
 OrderCard=Order card
 OrderId=Order Id
 Order=Order
+PdfOrderTitle=Order
 Orders=Orders
 OrderLine=Order line
 OrderDate=Order date
diff --git a/htdocs/langs/eu_ES/other.lang b/htdocs/langs/eu_ES/other.lang
index 40f0204e1ac..36fc95ff46b 100644
--- a/htdocs/langs/eu_ES/other.lang
+++ b/htdocs/langs/eu_ES/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/eu_ES/propal.lang b/htdocs/langs/eu_ES/propal.lang
index 3fdb379c5a2..271fb44ac40 100644
--- a/htdocs/langs/eu_ES/propal.lang
+++ b/htdocs/langs/eu_ES/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals
 ProposalsOpened=Open commercial proposals
 Prop=Commercial proposals
 CommercialProposal=Commercial proposal
+PdfCommercialProposalTitle=Commercial proposal
 ProposalCard=Proposal card
 NewProp=New commercial proposal
 NewPropal=New proposal
diff --git a/htdocs/langs/eu_ES/salaries.lang b/htdocs/langs/eu_ES/salaries.lang
index 634880bcd4b..a1cfebf53c4 100644
--- a/htdocs/langs/eu_ES/salaries.lang
+++ b/htdocs/langs/eu_ES/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Soldata
 Salaries=Soldatak
diff --git a/htdocs/langs/eu_ES/website.lang b/htdocs/langs/eu_ES/website.lang
index 252396603aa..b41e3bc14d3 100644
--- a/htdocs/langs/eu_ES/website.lang
+++ b/htdocs/langs/eu_ES/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/eu_ES/workflow.lang b/htdocs/langs/eu_ES/workflow.lang
index 54246856e9b..8021fb9b198 100644
--- a/htdocs/langs/eu_ES/workflow.lang
+++ b/htdocs/langs/eu_ES/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Workflow module setup
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/fa_IR/accountancy.lang b/htdocs/langs/fa_IR/accountancy.lang
index cf8fdb077dc..a8fc6df824e 100644
--- a/htdocs/langs/fa_IR/accountancy.lang
+++ b/htdocs/langs/fa_IR/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=جمع میزان تامین کنندۀ خرید قبل از مالیات
 TotalExpenseReport=Total expense report
 InvoiceLines=تعداد سطور صورتحساب برای شامل شدن
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=به دقت به حساب بخش حسابداری شامل شد
 NotVentilatedinAccount=به حساب حسابداری شامل نشد
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=تعداد عناصری که برای شامل شدن در یک صفحه فهرست می شوند (حداکثر پیشنهادی: 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=فهرست حساب های حسابداری
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=کلاس حساب
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=رمز
 Nature=طبیعت
 AccountingJournalType1=Various operation
 AccountingJournalType2=فروش
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=صادرات
-Export=صادرات
 ExportDraftJournal=Export draft journal
 Modelcsv=نوع صادرات
 OptionsDeactivatedForThisExportModel=برای این نوع صادرات، انتخاب ها غیر فعال شده است
diff --git a/htdocs/langs/fa_IR/admin.lang b/htdocs/langs/fa_IR/admin.lang
index 04f0dacc180..cc3c0c6955c 100644
--- a/htdocs/langs/fa_IR/admin.lang
+++ b/htdocs/langs/fa_IR/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=ابزار های سیستم منطقه
 SystemToolsAreaDesc=این منطقه فراهم می کند ویژگی های دولت. با استفاده از منوی را انتخاب کنید از ویژگی های شما دنبال آن هستید.
 Purge=پالایش
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=حذف همه فایل ها در <b>دایرکتوری٪ است.</b> فایل های موقتی، بلکه افسردگی پشتیبان پایگاه داده، فایل های پیوست شده به عناصر (اشخاص ثالث، فاکتورها، ...) و ارسال به ماژول ECM حذف خواهد شد.
 PurgeRunNow=اکنون پاکسازی
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>٪ s فایل</b> یا دایرکتوری حذف شده است.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=پاکسازی تمام حوادث امنیتی
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=ایجاد پشتیبان گیری
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=نسخه فعلی Dolibarr
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=اخوندک
 Module1200Desc=ادغام آخوندک
-Module1400Name=حسابداری
-Module1400Desc=Accounting management (double entries)
 Module1520Name=ساخت سند
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=پی پال
 Module50200Desc=ماژول برای ارائه یک صفحه پرداخت آنلاین از طریق کارت اعتباری با پی پال
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=خوانده شده تخفیف
 Permission402=ایجاد / اصلاح تخفیف
 Permission403=اعتبار تخفیف
 Permission404=حذف تخفیف
-Permission510=خوانده شده حقوق
-Permission512=ایجاد / اصلاح حقوق
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=حذف حقوق
 Permission517=حقوق صادرات
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=واردات خروجی زیر
 ForcedToByAModule= این قانون توسط یک ماژول فعال <b>به٪ s</b> اجباری
-PreviousDumpFiles=فایل روگرفت پایگاه داده پشتیبان گیری می کند
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=اولین روز هفته
 RunningUpdateProcessMayBeRequired=در حال اجرا عملیات ارتقا، به نظر می رسد لازم باشد (برنامه نسخه٪ s از پایگاه داده نسخه٪ s متفاوت است)
 YouMustRunCommandFromCommandLineAfterLoginToUser=شما باید این دستور از خط فرمان پس از ورود به یک پوسته با <b>کاربر٪ s را</b> اجرا کنید و یا شما باید گزینه در پایان خط فرمان افزودنی <b>W٪</b> رمز <b>عبور</b> برای ارائه.
diff --git a/htdocs/langs/fa_IR/banks.lang b/htdocs/langs/fa_IR/banks.lang
index bf584a664bd..d0f2bcfeabd 100644
--- a/htdocs/langs/fa_IR/banks.lang
+++ b/htdocs/langs/fa_IR/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/fa_IR/bills.lang b/htdocs/langs/fa_IR/bills.lang
index aade7bffac1..3d21437a0ef 100644
--- a/htdocs/langs/fa_IR/bills.lang
+++ b/htdocs/langs/fa_IR/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=کارت فاکتور
 PredefinedInvoices=فاکتورها از پیش تعریف شده
 Invoice=صورت حساب
+PdfInvoiceTitle=صورت حساب
 Invoices=صورت حساب
 InvoiceLine=خط فاکتور
 InvoiceCustomer=صورت حساب به مشتری
diff --git a/htdocs/langs/fa_IR/compta.lang b/htdocs/langs/fa_IR/compta.lang
index 5a4510ef659..85736d60ce1 100644
--- a/htdocs/langs/fa_IR/compta.lang
+++ b/htdocs/langs/fa_IR/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/fa_IR/errors.lang b/htdocs/langs/fa_IR/errors.lang
index 276a2e9ec03..effa368eb67 100644
--- a/htdocs/langs/fa_IR/errors.lang
+++ b/htdocs/langs/fa_IR/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/fa_IR/install.lang b/htdocs/langs/fa_IR/install.lang
index 2dc950faccc..317c201950e 100644
--- a/htdocs/langs/fa_IR/install.lang
+++ b/htdocs/langs/fa_IR/install.lang
@@ -53,10 +53,10 @@ AdminLogin=ورود برای صاحب پایگاه داده Dolibarr.
 PasswordAgain=تکرار گذرواژه بار دوم
 AdminPassword=رمز عبور برای صاحب پایگاه داده Dolibarr.
 CreateDatabase=ایجاد پایگاه داده
-CreateUser=ایجاد صاحب
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=بانک اطلاعات سرور - دسترسی به کاربران بالاتر را میدهد
 CheckToCreateDatabase=جعبه چک کنید اگر پایگاه داده وجود ندارد و باید ایجاد شود. <br> در این مورد، شما باید وارد شوید / رمز عبور برای نام کاربر مدیر در پایین این صفحه را پر کنید.
-CheckToCreateUser=جعبه چک کنید اگر صاحب پایگاه داده وجود ندارد و باید ایجاد شود. <br> در این مورد، شما باید نام کاربری و رمز عبور خود را انتخاب کنید و همچنین ورود / رمز عبور در پایین این صفحه را پر کنید برای حساب کاربر مدیر. اگر این جعبه خالی، پایگاه داده مالک و کلمه عبور خود را باید وجود داشته باشد.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=ورود از کاربر مجاز به ایجاد پایگاه داده جدید و یا کاربران جدید، اجباری اگر بانک اطلاعاتی شما و یا صاحب آن می کند در حال حاضر وجود ندارد.
 KeepEmptyIfNoPassword=دیدگاهتان را خالی اگر کاربر هیچ رمز عبور (جلوگیری از این)
 SaveConfigurationFile=صرفه جویی در مقدار
diff --git a/htdocs/langs/fa_IR/main.lang b/htdocs/langs/fa_IR/main.lang
index d68747bc55c..84b71458f68 100644
--- a/htdocs/langs/fa_IR/main.lang
+++ b/htdocs/langs/fa_IR/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=فایل با موفقیت آپلود شد
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=فایل برای پیوست انتخاب شده، اما هنوز ارسال نشده. بر روی "فایل ضمیمه" برای این کلیک کنید.
 NbOfEntries=Nb و از نوشته
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=پارامتر
 Parameters=پارامترها
 Value=ارزش
 PersonalValue=ارزش شخصی
+NewObject=New %s
 NewValue=ارزش های جدید
 CurrentValue=ارزش کنونی
 Code=رمز
@@ -441,6 +443,7 @@ Reporting=گزارش
 Reportings=گزارش
 Draft=پیش نویس
 Drafts=نوعی بازی چکرز
+StatusInterInvoiced=
 Validated=اعتبار
 Opened=باز
 New=جدید
@@ -727,6 +730,7 @@ SetBankAccount=تعریف حساب های بانکی
 AccountCurrency=حساب ارز
 ViewPrivateNote=مشاهده یادداشت
 XMoreLines=٪ خط (بازدید کنندگان) پنهان
+ShowMoreLines=Show more lines
 PublicUrl=URL عمومی
 AddBox=اضافه کردن جعبه
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gender
 Genderman=Man
diff --git a/htdocs/langs/fa_IR/modulebuilder.lang b/htdocs/langs/fa_IR/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/fa_IR/modulebuilder.lang
+++ b/htdocs/langs/fa_IR/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/fa_IR/orders.lang b/htdocs/langs/fa_IR/orders.lang
index 985764a766f..d11a66e5f0e 100644
--- a/htdocs/langs/fa_IR/orders.lang
+++ b/htdocs/langs/fa_IR/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=منطقه سفارشات تولید کنندگان
 OrderCard=کارت منظور
 OrderId=سفارش کد سفارش
 Order=سفارش
+PdfOrderTitle=سفارش
 Orders=سفارشات
 OrderLine=خط منظور
 OrderDate=تاریخ سفارش
diff --git a/htdocs/langs/fa_IR/other.lang b/htdocs/langs/fa_IR/other.lang
index 4c2cd6caefe..073250b6c29 100644
--- a/htdocs/langs/fa_IR/other.lang
+++ b/htdocs/langs/fa_IR/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/fa_IR/propal.lang b/htdocs/langs/fa_IR/propal.lang
index 9aa36a10cec..2810bc388d9 100644
--- a/htdocs/langs/fa_IR/propal.lang
+++ b/htdocs/langs/fa_IR/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=طرح تجاری پیش نویس
 ProposalsOpened=Open commercial proposals
 Prop=طرح های تجاری
 CommercialProposal=پیشنهاد تجاری
+PdfCommercialProposalTitle=پیشنهاد تجاری
 ProposalCard=کارت های پیشنهادی
 NewProp=طرح تجاری جدید
 NewPropal=پیشنهاد جدید
diff --git a/htdocs/langs/fa_IR/salaries.lang b/htdocs/langs/fa_IR/salaries.lang
index eb488d53baf..6641ba267bd 100644
--- a/htdocs/langs/fa_IR/salaries.lang
+++ b/htdocs/langs/fa_IR/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=حقوق
 Salaries=حقوق
diff --git a/htdocs/langs/fa_IR/website.lang b/htdocs/langs/fa_IR/website.lang
index 2dffe244283..094492623b9 100644
--- a/htdocs/langs/fa_IR/website.lang
+++ b/htdocs/langs/fa_IR/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/fa_IR/workflow.lang b/htdocs/langs/fa_IR/workflow.lang
index ee38a5ec4e5..3bb25e63283 100644
--- a/htdocs/langs/fa_IR/workflow.lang
+++ b/htdocs/langs/fa_IR/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=راه اندازی ماژول گردش کار
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=طبقه بندی پیشنهاد منبع مربوط به صورتحساب در هنگام سفارش مشتری به پرداخت مجموعه
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=طبقه بندی مرتبط با سفارش مشتری منبع (بازدید کنندگان) صورتحساب زمانی که صورت حساب مشتری به پرداخت مجموعه
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=طبقه بندی مرتبط با سفارش مشتری منبع (بازدید کنندگان) صورتحساب زمانی که صورت حساب به مشتری اعتبار است
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/fi_FI/accountancy.lang b/htdocs/langs/fi_FI/accountancy.lang
index e0ad50e67e3..c516c20b1c4 100644
--- a/htdocs/langs/fi_FI/accountancy.lang
+++ b/htdocs/langs/fi_FI/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Kirjanpitoalue
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Tilin saldo
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=Kirjanpitotiliä ei ole valittu
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=ALV tiliä ei ole määritelty
 ThirdpartyAccountNotDefined=Sidosryhmän tiliä ei ole määritetty
 ProductAccountNotDefined=Tuotteen tiliä ei ole määritetty
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Koodi
 Nature=Luonto
 AccountingJournalType1=Various operation
 AccountingJournalType2=Myynti
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exports
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model of export
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/fi_FI/admin.lang b/htdocs/langs/fi_FI/admin.lang
index 6e19845dd24..76bfde351fa 100644
--- a/htdocs/langs/fi_FI/admin.lang
+++ b/htdocs/langs/fi_FI/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Kehitysresurssit alueella
 SystemToolsAreaDesc=Tämä alue tarjoaa hallinnon ominaisuuksia. Käytä valikosta valita ominaisuus, jota etsit.
 Purge=Siivoa
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Poista Syslog modulin lokitiedosto <b>%s</b> (ei vaaraa tiedon menetyksestä)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Poista kaikki tiedostot <b>hakemistoon %s.</b> Väliaikaiset tiedostot, mutta myös liitetyt tiedostot elementtejä (kolmansien osapuolten, laskut, ...) ja siirretty osaksi ECM moduuli on poistettu.
 PurgeRunNow=Siivoa nyt
 PurgeNothingToDelete=Ei tuhottavia hakemistoja eikä tiedostoja.
 PurgeNDirectoriesDeleted=<b> %s</b> tiedostot tai hakemistot poistetaan.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Purge kaikki tapahtumat
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Luo varmuuskopio
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr nykyinen versio
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Mantis yhdentyminen
-Module1400Name=Kirjanpidon asiantuntija
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Moduuli tarjoaa online-maksu-sivulla luottokortilla PayPal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Lue alennukset
 Permission402=Luoda / muuttaa alennukset
 Permission403=Validate alennukset
 Permission404=Poista alennukset
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= Tämä sääntö on <b>pakko %s</b> on aktivoitu moduuli
-PreviousDumpFiles=Käytettävissä oleva tietokanta taaksepäin dumpata arkistoida
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=Viikon ensimmäinen päivä
 RunningUpdateProcessMayBeRequired=Jatkuva päivitys näyttää olevan tarpeen (Ohjelmat versio %s eroaa versio tietokannasta %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=Sinun on suoritettava tämä komento komentoriviltä jälkeen kirjautua kuori käyttäjän <b>%s.</b>
diff --git a/htdocs/langs/fi_FI/banks.lang b/htdocs/langs/fi_FI/banks.lang
index 2e5de46bb4e..574d813d52c 100644
--- a/htdocs/langs/fi_FI/banks.lang
+++ b/htdocs/langs/fi_FI/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Shekki palautunut ja lasku avautunut uudelleen
 BankAccountModelModule=Pankkitilien dokumenttimallit
 DocumentModelSepaMandate=SEPA valtuuden malli. Käyttökelpoinen vain EEC alueen valtioissa
 DocumentModelBan=BAN tiedon sisältävä tulostusmalli
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/fi_FI/bills.lang b/htdocs/langs/fi_FI/bills.lang
index 62a4bdcf98a..1d97390b8a1 100644
--- a/htdocs/langs/fi_FI/bills.lang
+++ b/htdocs/langs/fi_FI/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Lasku-kortti
 PredefinedInvoices=Ennalta Laskut
 Invoice=Lasku
+PdfInvoiceTitle=Lasku
 Invoices=Laskut
 InvoiceLine=Laskun linja
 InvoiceCustomer=Asiakas lasku
diff --git a/htdocs/langs/fi_FI/compta.lang b/htdocs/langs/fi_FI/compta.lang
index b5757b3ccb9..38f2eda4cc8 100644
--- a/htdocs/langs/fi_FI/compta.lang
+++ b/htdocs/langs/fi_FI/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/fi_FI/errors.lang b/htdocs/langs/fi_FI/errors.lang
index be9b66629fd..f1aae8762e8 100644
--- a/htdocs/langs/fi_FI/errors.lang
+++ b/htdocs/langs/fi_FI/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/fi_FI/install.lang b/htdocs/langs/fi_FI/install.lang
index 786f51a9e15..c75da3c29d5 100644
--- a/htdocs/langs/fi_FI/install.lang
+++ b/htdocs/langs/fi_FI/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Kirjautumistunnuksen Dolibarr tietokannan ylläpitäjä. Pidä tyhjä
 PasswordAgain=Kirjoita salasana uudelleen toisen kerran
 AdminPassword=Salasana Dolibarr tietokannan ylläpitäjä. Pidä tyhjä jos kytket nimettömässä
 CreateDatabase=Luo tietokanta
-CreateUser=Luo käyttäjä
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Tietokanta - SuperUser pääsy
 CheckToCreateDatabase=Valintaruutu, jos tietokanta ei ole olemassa, ja ne on luotu. <br> Tässä tapauksessa sinun täytyy täyttää tunnus / salasana SuperUser huomioon alareunassa tällä sivulla.
-CheckToCreateUser=Valintaruutu, jos kirjautuminen ei ole olemassa, ja ne on luotu. <br> Tässä tapauksessa sinun täytyy täyttää tunnus / salasana SuperUser huomioon alareunassa tällä sivulla.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Kirjaudu että käyttäjä voi luoda uusia tietokantoja tai uusia käyttäjiä, hyödytön, jos tietokanta ja tietokanta on jo olemassa (kuten silloin, kun olet isännöi Web hosting-palvelujen tarjoaja).
 KeepEmptyIfNoPassword=Jätä tyhjä, jos käyttäjä ei ole salasanaa (välttää)
 SaveConfigurationFile=Tallenna arvot
diff --git a/htdocs/langs/fi_FI/main.lang b/htdocs/langs/fi_FI/main.lang
index 6ddbc02b3e5..5df97f55cb6 100644
--- a/htdocs/langs/fi_FI/main.lang
+++ b/htdocs/langs/fi_FI/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=Tiedosto on siirretty onnistuneesti
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=Tiedosto on valittu liite mutta ei ollut vielä ladattu. Klikkaa "Liitä tiedosto" tätä.
 NbOfEntries=Huom Merkintöjen
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parametri
 Parameters=Parametrit
 Value=Arvo
 PersonalValue=Henkilökohtainen arvo
+NewObject=New %s
 NewValue=Uusi arvo
 CurrentValue=Nykyinen arvo
 Code=Koodi
@@ -441,6 +443,7 @@ Reporting=Raportointi
 Reportings=Raportointi
 Draft=Vedos
 Drafts=Vedokset
+StatusInterInvoiced=
 Validated=Vahvistetut
 Opened=Avoinna
 New=Uusi
@@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account
 AccountCurrency=Tilin valuutta
 ViewPrivateNote=Katso huomiot
 XMoreLines=%s rivi(ä) piilossa
+ShowMoreLines=Show more lines
 PublicUrl=Julkinen URL
 AddBox=Lisää laatikko
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Näytä pankkitilin kirjaus
 GoIntoSetupToChangeLogo=Vaihtaaksesi logoa mene Home - Setup - Company tai Home - Setup - Display poistaaksesi
 Deny=Kiellä
 Denied=Kielletty
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Sukupuoli
 Genderman=Mies
diff --git a/htdocs/langs/fi_FI/modulebuilder.lang b/htdocs/langs/fi_FI/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/fi_FI/modulebuilder.lang
+++ b/htdocs/langs/fi_FI/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/fi_FI/orders.lang b/htdocs/langs/fi_FI/orders.lang
index 67f1e9ab961..9e7071fd177 100644
--- a/htdocs/langs/fi_FI/orders.lang
+++ b/htdocs/langs/fi_FI/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Tavarantoimittajien tilausalue
 OrderCard=Tilauskortti
 OrderId=Tilausnumero
 Order=Tilaus
+PdfOrderTitle=Tilaus
 Orders=Tilaukset
 OrderLine=Tilaus linja
 OrderDate=Tilauspäivämäärä
diff --git a/htdocs/langs/fi_FI/other.lang b/htdocs/langs/fi_FI/other.lang
index b7153b0af83..f3e273a75ed 100644
--- a/htdocs/langs/fi_FI/other.lang
+++ b/htdocs/langs/fi_FI/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/fi_FI/propal.lang b/htdocs/langs/fi_FI/propal.lang
index 7838a26e5b6..d91ed638462 100644
--- a/htdocs/langs/fi_FI/propal.lang
+++ b/htdocs/langs/fi_FI/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Tarjousluonnos
 ProposalsOpened=Open commercial proposals
 Prop=Tarjoukset
 CommercialProposal=Tarjous
+PdfCommercialProposalTitle=Tarjous
 ProposalCard=Tarjous kortti
 NewProp=Uusi tarjous
 NewPropal=Uusi tarjous
diff --git a/htdocs/langs/fi_FI/salaries.lang b/htdocs/langs/fi_FI/salaries.lang
index e58fae86173..68cd52ce9ba 100644
--- a/htdocs/langs/fi_FI/salaries.lang
+++ b/htdocs/langs/fi_FI/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Oletus kirjanpitotili henkilöstökuluille
 Salary=Palkka
 Salaries=Palkat
diff --git a/htdocs/langs/fi_FI/website.lang b/htdocs/langs/fi_FI/website.lang
index 5467f426527..74b4a5004a5 100644
--- a/htdocs/langs/fi_FI/website.lang
+++ b/htdocs/langs/fi_FI/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/fi_FI/workflow.lang b/htdocs/langs/fi_FI/workflow.lang
index d84f837e853..a2e45fe20fa 100644
--- a/htdocs/langs/fi_FI/workflow.lang
+++ b/htdocs/langs/fi_FI/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Workflow-moduuli asennus
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/fr_BE/compta.lang b/htdocs/langs/fr_BE/compta.lang
index e2c889c3ed2..985741d0aff 100644
--- a/htdocs/langs/fr_BE/compta.lang
+++ b/htdocs/langs/fr_BE/compta.lang
@@ -1,4 +1,8 @@
 # Dolibarr language file - Source file is en_US - compta
+VATReceived=VAT received
+VATToCollect=VAT purchases
+VATSummary=VAT Balance
+VATPaid=VAT paid
 SalesTurnover=Chiffre d'affaires des ventes
 Dispatched=Envoyé
 ToDispatch=Envoyer
diff --git a/htdocs/langs/fr_CA/accountancy.lang b/htdocs/langs/fr_CA/accountancy.lang
index 045c2f24504..e2c2bef7381 100644
--- a/htdocs/langs/fr_CA/accountancy.lang
+++ b/htdocs/langs/fr_CA/accountancy.lang
@@ -31,7 +31,6 @@ AccountancyAreaDescExpenseReport=STEP %s: définissez les comptes comptables par
 AccountancyAreaDescSal=Étape %s: définissez les comptes comptables par défaut pour le paiement des salaires. Pour cela, utilisez l'entrée de menu %s.
 AccountancyAreaDescContrib=Étape %s: définissez les comptes comptables par défaut pour les dépenses spéciales (taxes diverses). Pour cela, utilisez l'entrée de menu %s.
 AccountancyAreaDescDonation=Étape %s: définissez les comptes comptables par défaut pour le don. Pour cela, utilisez l'entrée de menu %s.
-AccountancyAreaDescMisc=STEP %s: définissez les comptes comptables par défaut pour les transactions diverses. Pour cela, utilisez l'entrée de menu %s.
 AccountancyAreaDescLoan=Étape %s: définissez les comptes comptables par défaut pour les prêts. Pour cela, utilisez l'entrée de menu %s.
 AccountancyAreaDescBank=ÉTAPE %s: définissez les comptes comptables de chaque banque et compte financier. Pour cela, passez la carte de chaque compte financier. Vous pouvez commencer à partir de la page %s.
 AccountancyAreaDescProd=STEP %s: définissez les comptes comptables sur vos produits / services. Pour cela, utilisez l'entrée de menu %s.
@@ -66,7 +65,6 @@ EndProcessing=Processus terminé.
 LineOfExpenseReport=Ligne de rapport de dépenses
 NoAccountSelected=Aucun compte comptable sélectionné
 VentilatedinAccount=Lié avec succès au compte comptable
-XLineSuccessfullyBinded=%s produits / services liés avec succès à un compte comptable
 XLineFailedToBeBinded=%s produits / services n'étaient liés à aucun compte comptable
 ACCOUNTING_LIMIT_LIST_VENTILATION=Nombre d'éléments à lier affichés par page (maximum recommandé: 50)
 ACCOUNTING_LIST_SORT_VENTILATION_TODO=Commencez le tri de la page "Reliure à faire" par les éléments les plus récents
@@ -91,7 +89,6 @@ DelBookKeeping=Supprimer l'enregistrement du Ledger
 FinanceJournal=Journal des finances
 ExpenseReportsJournal=Journal des rapports de dépenses
 DescFinanceJournal=Journal de banque comprenant tous les types de règlements autres que espèce\t
-DescJournalOnlyBindedVisible=Il s'agit d'une vue d'ensemble qui est liée au compte de comptabilité des produits / services et peut être enregistrée dans le Ledger.
 VATAccountNotDefined=Compte pour la TVA non définie
 ThirdpartyAccountNotDefined=Compte pour un tiers non défini
 ProductAccountNotDefined=Compte pour produit non défini
@@ -114,7 +111,6 @@ DescVentilExpenseReport=Consultez ici la liste des lignes de rapport de dépense
 DescVentilExpenseReportMore=Si vous configurez un compte comptable sur le type de lignes de rapport de dépenses, l'application sera en mesure d'établir toute la liaison entre vos lignes de rapport de dépenses et le compte comptable de votre plan comptable, en un clic avec le bouton <strong>"%s"</strong>. Si le compte n'a pas été défini sur le dictionnaire des tarifs ou si vous avez encore certaines lignes qui ne sont liées à aucun compte, vous devrez effectuer une liaison manuelle à partir du menu "<strong>%s</strong>".
 DescVentilDoneExpenseReport=Consultez ici la liste des rapports des lignes de dépenses et de leurs comptes comptables
 AutomaticBindingDone=Liaison automatique effectuée
-MvtNotCorrectlyBalanced=Le mouvement n'est pas correctement équilibré. Crédit = %s. Débit = %s
 FicheVentilation=Carte de reliure
 GeneralLedgerIsWritten=Les transactions sont écrites dans le Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Certaines transactions n'ont pas pu être envoyées. S'il n'y a pas d'autre message d'erreur, c'est probablement parce qu'ils ont déjà été envoyés.
diff --git a/htdocs/langs/fr_CA/admin.lang b/htdocs/langs/fr_CA/admin.lang
index 2bacefb10cd..555b82fa0ca 100644
--- a/htdocs/langs/fr_CA/admin.lang
+++ b/htdocs/langs/fr_CA/admin.lang
@@ -29,7 +29,6 @@ MaxNbOfLinesForBoxes=Nombre maximum de lignes pour les widgets
 MenusDesc=Les gestionnaires de menu définissent le contenu des deux barres de menus (horizontales et verticales).
 MenusEditorDesc=L'éditeur de menu vous permet de définir des entrées de menu personnalisées. Utilisez-le soigneusement pour éviter l'instabilité et les entrées de menu inaccessibles en permanence. <br /> Certains modules ajoutent des entrées de menu (dans le menu <b> Tous </b> principalement). Si vous supprimez certaines de ces entrées par erreur, vous pouvez les restaurer en désactivant et en redéfinissant le module.
 PurgeAreaDesc=Cette page vous permet de supprimer tous les fichiers générés ou stockés par Dolibarr (fichiers temporaires ou tous les fichiers dans le répertoire <b>%s</b>). L'utilisation de cette fonctionnalité n'est pas nécessaire. Il est fourni en tant que solution de contournement pour les utilisateurs dont Dolibarr est hébergé par un fournisseur qui n'offre pas d'autorisations pour supprimer les fichiers générés par le serveur Web.
-PurgeDeleteLogFile=Supprimer le fichier journal <b>%s</b> défini pour le module Syslog (sans risque de perte de données)
 PurgeDeleteTemporaryFiles=Supprimez tous les fichiers temporaires (pas de risque de perte de données)
 PurgeDeleteTemporaryFilesShort=Supprimer les fichiers temporaires
 PurgeNothingToDelete=Pas de répertoire ou de fichiers à supprimer.
@@ -69,7 +68,6 @@ SetupIsReadyForUse=Le déploiement du module est terminé. Vous devez toutefois
 NotExistsDirect=Le répertoire racine alternatif n'est pas défini dans un répertoire existant.
 InfDirAlt=Depuis la version 3, il est possible de définir un autre répertoire racine. Cela vous permet de stocker, dans un répertoire dédié, des plug-ins et des modèles personnalisés. <br> Créez simplement un répertoire à la racine de Dolibarr (par exemple: personnalisé).
 InfDirExample=<br> Puis déclarer dans le fichier <strong> conf.php </ strong> <br> $ dolibarr_main_url_root_alt = 'http: // myserver / custom' <br> $ dolibarr_main_document_root_alt = '/ path / of / dolibarr / htdocs / Custom '<br> Si ces lignes sont commentées avec "#", pour les activer, il suffit de faire un commentaire en supprimant le caractère "#".
-YouCanSubmitFile=Sélectionner le module :
 CallUpdatePage=Accédez à la page qui met à jour la structure et les données de la base de données: %s.
 LastStableVersion=Dernière version stable
 LastActivationDate=Dernière date d'activation
@@ -157,7 +155,6 @@ Module20000Name=Gestion des demandes de congès
 Module20000Desc=Déclaration et suivi des congès des employés
 Module39000Name=Lot/Série du produit
 Module50100Desc=Module de point de vente (POS).
-Module50400Desc=Gestion de la comptabilité (partie double)
 Module55000Name=Sondage, enquête ou vote
 Module55000Desc=Module pour faire des sondages en ligne, des enquêtes ou des votes (comme Doodle , Studs , Rdvz , ... )
 Module63000Desc=Gérer les ressources (imprimantes, voitures, salles, ...) vous pouvez ensuite partager vos événements
diff --git a/htdocs/langs/fr_CA/banks.lang b/htdocs/langs/fr_CA/banks.lang
index 6a3fbaaa9c8..86feb35c9f2 100644
--- a/htdocs/langs/fr_CA/banks.lang
+++ b/htdocs/langs/fr_CA/banks.lang
@@ -51,7 +51,3 @@ CheckRejected=Chèque renvoyé
 CheckRejectedAndInvoicesReopened=Chèques retournés et factures rouvertes
 DocumentModelSepaMandate=Modèle de mandat SEPA. Utile pour les pays européens en CEE seulement.
 DocumentModelBan=Modèle pour imprimer une page avec des informations BAN.
-NewVariousPayment=Nouveau paiement varié
-VariousPayment=Paiement varié
-VariousPayments=Différents paiements
-ShowVariousPayment=Afficher divers paiements
diff --git a/htdocs/langs/fr_CA/compta.lang b/htdocs/langs/fr_CA/compta.lang
index 83c937e8801..21903306a49 100644
--- a/htdocs/langs/fr_CA/compta.lang
+++ b/htdocs/langs/fr_CA/compta.lang
@@ -74,9 +74,7 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Compte comptable par défaut pour la perception de l
 ACCOUNTING_VAT_BUY_ACCOUNT=Compte comptable par défaut pour la TVA récupérée - TVA sur les achats (utilisé si non défini sur la configuration du dictionnaire TVA)
 ACCOUNTING_VAT_PAY_ACCOUNT=Compte comptable par défaut pour payer la TVA
 ACCOUNTING_ACCOUNT_CUSTOMER=Compte comptable utilisé pour les tiers clients
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Le compte comptable dédié défini sur une carte tierce sera utilisé pour la comptabilisation de Subledger, celui-ci pour le grand livre général ou la valeur par défaut de la comptabilité de Sous-compte si le compte dédié d'accoutant au client sur un tiers n'est pas défini
 ACCOUNTING_ACCOUNT_SUPPLIER=Compte comptable utilisé pour les tiers fournisseurs
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Le compte comptable dédié défini sur une carte tierce sera utilisé pour l'affectation de logiciels afférent, celui-ci pour le grand livre général ou la valeur par défaut de la comptabilité de sous-compte si le compte dédié d'accoutant du fournisseur sur un tiers n'est pas défini
 CloneTax=Cloner une charge sociale
 ConfirmCloneTax=Confirmer le clonage de la charge sociale
 AddExtraReport=Rapports supplémentaires (ajouter un rapport client étranger et national)
diff --git a/htdocs/langs/fr_CA/modulebuilder.lang b/htdocs/langs/fr_CA/modulebuilder.lang
index 9914ef82026..a45cae2fbc8 100644
--- a/htdocs/langs/fr_CA/modulebuilder.lang
+++ b/htdocs/langs/fr_CA/modulebuilder.lang
@@ -5,5 +5,6 @@ ModuleBuilderDescpermissions=Cet onglet est dédié à définir les nouvelles au
 ModuleBuilderDeschooks=Cet onglet est dédié aux crochets.
 ModuleBuilderDescwidgets=Cet onglet est dédié à la gestion / création de widgets.
 DangerZone=Zone dangereuse
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=Ce module a été activé. Toute modification peut briser une caractéristique active actuelle.
 DescriptionLong=Longue description
diff --git a/htdocs/langs/fr_CA/multicurrency.lang b/htdocs/langs/fr_CA/multicurrency.lang
index 6082b9b76bb..8ef94fc7350 100644
--- a/htdocs/langs/fr_CA/multicurrency.lang
+++ b/htdocs/langs/fr_CA/multicurrency.lang
@@ -3,7 +3,6 @@ ErrorAddRateFail=Erreur dans le taux ajouté
 ErrorAddCurrencyFail=Erreur dans la monnaie ajoutée
 ErrorDeleteCurrencyFail=Erreur de suppression d'échec
 multicurrency_syncronize_error=Erreur de synchronisation: %s
-multicurrency_useOriginTx=Lorsqu'un objet est créé à partir d'un autre, gardez le taux d'origine de l'objet source (sinon utilisez le nouveau taux connu)
 CurrencyLayerAccount_help_to_synchronize=Vous devriez créer un compte sur leur site Web pour utiliser cette fonctionnalité <br /> Obtenez votre <b> clé API </b><br /> Si vous utilisez un compte gratuit, vous ne pouvez pas modifier la <b> source de devises</b>(USD par défaut) <br /> Mais si votre devise principale n'est pas USD, vous pouvez utiliser la <b> source de devise alternative</b> pour vous forcer la monnaie principale <br /><br /> Vous êtes limité À 1000 synchronisations par mois
 multicurrency_appCurrencySource=Source de devises
 multicurrency_alternateCurrencySource=Autre devise souce
diff --git a/htdocs/langs/fr_CA/stocks.lang b/htdocs/langs/fr_CA/stocks.lang
index e09f4791145..8522f87f48b 100644
--- a/htdocs/langs/fr_CA/stocks.lang
+++ b/htdocs/langs/fr_CA/stocks.lang
@@ -49,7 +49,6 @@ StockLimitShort=Limite d'alerte
 StockLimit=Limite de stock pour l'alerte
 RealStockDesc=Le stock physique ou réel est le stock que vous avez actuellement dans vos entrepôts / emplacements internes.
 RealStockWillAutomaticallyWhen=Le stock réel changera automatiquement en fonction de ces règles (voir la configuration du module stock pour le modifier):
-VirtualStock=Stock virtuel
 VirtualStockDesc=Le stock virtuel est le stock que vous obtiendrez une fois que toutes les actions ouvertes pendantes qui affectent les stocks seront fermées (commande fournisseur reçue, commande client expédiée, ...)
 IdWarehouse=Id entrepôt
 LieuWareHouse=Entrepôt de localisation
@@ -75,7 +74,6 @@ UseVirtualStockByDefault=Utilisez le stock virtuel par défaut, au lieu du stock
 UseVirtualStock=Utiliser un stock virtuel
 UsePhysicalStock=Utiliser un stock physique
 CurentSelectionMode=Mode de sélection actuel
-CurentlyUsingVirtualStock=Stock virtuel
 CurentlyUsingPhysicalStock=Stock physique
 RuleForStockReplenishment=Règle pour la reconstitution des stocks
 AlertOnly=Alertes uniquement
diff --git a/htdocs/langs/fr_CA/website.lang b/htdocs/langs/fr_CA/website.lang
index bfd090806e5..037b01b18f3 100644
--- a/htdocs/langs/fr_CA/website.lang
+++ b/htdocs/langs/fr_CA/website.lang
@@ -6,15 +6,16 @@ WEBSITE_PAGENAME=Nom / alias de la page
 WEBSITE_CSS_URL=URL du fichier CSS externe
 WEBSITE_CSS_INLINE=Contenu CSS
 MediaFiles=Médiathèque
-EditCss=Modifier style / CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Menu Edition
 EditPageMeta=Modifier Meta
 EditPageContent=Modifier le contenu
 Website=Site Internet
-Webpage=page web
+Webpage=Web page/container
+AddPage=Add page/container
 PreviewOfSiteNotYetAvailable=Aperçu de votre site web <strong>%s</strong> n'est pas encore disponible. Vous devez d'abord ajouter une page.
-PageDeleted=Page '%s' du site %s supprimé
-PageAdded=La page '%s' a ajouté
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=Afficher le site dans un nouvel onglet
 ViewPageInNewTab=Afficher la page dans un nouvel onglet
 ViewWebsiteInProduction=Afficher le site Web à l'aide d'URL d'accueil
diff --git a/htdocs/langs/fr_CA/workflow.lang b/htdocs/langs/fr_CA/workflow.lang
index e0f853db9e4..18356f83120 100644
--- a/htdocs/langs/fr_CA/workflow.lang
+++ b/htdocs/langs/fr_CA/workflow.lang
@@ -2,12 +2,4 @@
 WorkflowSetup=Configuration du module de workflow
 WorkflowDesc=Ce module est conçu pour modifier le comportement des actions automatiques en application. Par défaut, le workflow est ouvert (vous pouvez faire les choses dans l'ordre que vous voulez) . Vous pouvez activer les actions automatiques qui vous intéressent .
 ThereIsNoWorkflowToModify=Il n'y a pas de modification de flux de travail disponibles avec les modules activés .
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Créer automatiquement une commande client après une proposition commerciale est signée
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Créer automatiquement une facture client après une proposition commerciale est signée
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Créer automatiquement une facture client après un contrat est validé
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Crée automatiquement une facture client après la fermeture d'une commande client
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classez proposition source liée à bec lors de la commande du client est réglé sur payé
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classez commande client source liée(s) à bec lorsque la facture client est réglé sur payé
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classez ordre lié source de client(s) à bec lorsque la facture client est validée
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classer la proposition de source liée à facturer lorsque la facture du client est validée
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classer l'ordre source lié à l'expédition lorsqu'un envoi est validé et la quantité expédiée est identique à celle de l'ordre
diff --git a/htdocs/langs/fr_FR/accountancy.lang b/htdocs/langs/fr_FR/accountancy.lang
index 7c1738a0ff9..d185ec9b83a 100644
--- a/htdocs/langs/fr_FR/accountancy.lang
+++ b/htdocs/langs/fr_FR/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Vue d'ensemble du nombre de lignes liées à un com
 OtherInfo=Autre information
 DeleteCptCategory=Supprimer le code comptable du groupe
 ConfirmDeleteCptCategory=Êtes-vous sur de vouloir supprimer ce compte comptable du groupe comptable ?
+JournalizationInLedgerStatus=Statut de journalisation
 AlreadyInGeneralLedger=Enregistrement déjà présent dans le grand livre
+NotYetInGeneralLedger=non encore envoyé dans le grand livre
+
+MainAccountForCustomersNotDefined=Compte comptable général pour les clients sans compte dédié
+MainAccountForSuppliersNotDefined=Compte comptable général pour les fournisseurs sans compte dédié
+MainAccountForUsersNotDefined=Compte comptable général pour les utilisateurs sans compte dédié
+MainAccountForVatPaymentNotDefined=Compte comptable général pour les paiements de TVA sans compte dédié
 
 AccountancyArea=Espace comptabilité
 AccountancyAreaDescIntro=L'utilisation du module de comptabilité se fait en plusieurs étapes:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=Étape %s : Définissez les comptes comptables
 AccountancyAreaDescSal=Étape %s : Définissez les comptes comptables de paiements de salaires. Pour cela, suivez le menu suivant %s.
 AccountancyAreaDescContrib=Étape %s : Définissez les comptes comptables des dépenses spéciales (taxes diverses). Pour cela, suivez le menu suivant %s.
 AccountancyAreaDescDonation=Étape %s : Définissez le compte comptable par défaut des dons. Pour cela, suivez le menu suivant %s.
-AccountancyAreaDescMisc=Étape %s : Définissez les comptes comptables par défaut. Pour cela, suivez le menu suivant %s.
+AccountancyAreaDescMisc=ÉTAPE 1%s : définissez le compte par défaut obligatoire et les comptes comptables par défaut pour les transactions diverses. Pour cela, utilisez l'entrée du menu 1%s.
 AccountancyAreaDescLoan=Étape %s : Définissez les comptes comptables par défaut des emprunts. Pour cela, suivez le menu suivant %s.
 AccountancyAreaDescBank=Étape %s : Définissez les comptes comptables de chaque compte bancaire ou financier. Vous pouvez commencer à partir de la page %s.
 AccountancyAreaDescProd=Étape %s : Définissez les comptes comptables sur vos produits/services. Pour cela, suivez le menu suivant %s.
@@ -79,11 +86,11 @@ SuppliersVentilation=Liaison factures fournisseur
 ExpenseReportsVentilation=Liaison notes de frais
 CreateMvts=Créer nouvelle transaction
 UpdateMvts=Modification d'une transaction
-ValidTransaction=Validate transaction
+ValidTransaction=Valider la traduction
 WriteBookKeeping=Inscrire les transactions dans le grand livre
 Bookkeeping=Grand livre
 AccountBalance=Balance des comptes
-
+ObjectsRef=Référence de l'objet source
 CAHTF=Total achat fournisseur HT
 TotalExpenseReport=Total note de frais
 InvoiceLines=Lignes de factures à ventiler
@@ -103,7 +110,7 @@ LineOfExpenseReport=Ligne de note de frais
 NoAccountSelected=Pas de compte comptable sélectionné
 VentilatedinAccount=Liée avec succès sur compte comptable
 NotVentilatedinAccount=Non lié au compte comptable
-XLineSuccessfullyBinded=%s produits/services liés avec succès à un compte comptable
+XLineSuccessfullyBinded=%s produits/service correctement liés à un compte comptable
 XLineFailedToBeBinded=%s produits/services n'ont pu être liés à un compte comptable
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Nombre d'éléments à lier représentés par page (maximum recommandé: 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Supprimer l'enregistrement du grand livre
 FinanceJournal=Journal de trésorerie
 ExpenseReportsJournal=Journal des notes de frais
 DescFinanceJournal=Journal de trésorerie comprenant tous les types de paiements par compte bancaire / caisse
-DescJournalOnlyBindedVisible=Ceci est une vue des enregistrements qui sont liés à un compte comptable produits/services et qui peuvent être enregistrés dans le grand livre.
+DescJournalOnlyBindedVisible=Vue des enregistrements liés à des comptes comptable qui peuvent être enregistrés dans le grand livre.
 VATAccountNotDefined=Compte de la TVA non défini
 ThirdpartyAccountNotDefined=Compte pour le tiers non défini
 ProductAccountNotDefined=Compte pour le produit non défini
@@ -170,6 +177,8 @@ AddCompteFromBK=Ajouter un code comptable au groupe
 ReportThirdParty=Liste des comptes tiers
 DescThirdPartyReport=Consultez ici la liste des tiers clients et fournisseurs et leurs codes comptables
 ListAccounts=Liste des comptes comptables
+UnknownAccountForThirdparty=Compte de tiers inconnu. %s sera utilisé
+UnknownAccountForThirdpartyBlocking=Compte de tiers inconnu. Erreur bloquante.
 
 Pcgtype=Classe de compte
 Pcgsubtype=Sous-classe de compte
@@ -194,7 +203,7 @@ ValidateHistory=Lier automatiquement
 AutomaticBindingDone=Liaison automatique faite
 
 ErrorAccountancyCodeIsAlreadyUse=Erreur, vous ne pouvez pas détruire de compte comptable car il est utilisé
-MvtNotCorrectlyBalanced=Le mouvement n'est pas équilibré. Crédit = %s. Débit = %s
+MvtNotCorrectlyBalanced=Mouvement non équilibré. Crédit = %s. Débit = %s
 FicheVentilation=Fiche lien
 GeneralLedgerIsWritten=Les transactions sont enregistrées dans le grand livre
 GeneralLedgerSomeRecordWasNotRecorded=Certaines des opérations n'ont pu être enregistrées. S'il n'y a pas d'autres messages, c'est probablement car elles sont déjà enregistrées.
@@ -210,7 +219,6 @@ AccountingJournals=Journaux comptables
 AccountingJournal=Journal comptable
 NewAccountingJournal=Nouveau journal comptable
 ShowAccoutingJournal=Afficher le journal
-Code=Code
 Nature=Nature
 AccountingJournalType1=Opérations Diverses
 AccountingJournalType2=Ventes
@@ -221,9 +229,7 @@ AccountingJournalType9=A-nouveaux
 ErrorAccountingJournalIsAlreadyUse=Le journal est déjà utilisé
 
 ## Export
-Exports=Exports
-Export=Exporter
-ExportDraftJournal=Exporter le brouillard
+ExportDraftJournal=Exporter le journal brouillon
 Modelcsv=Modèle d'export
 OptionsDeactivatedForThisExportModel=Pour ce modèle d'export, les options sont désactivées
 Selectmodelcsv=Sélectionner un modèle d'export
diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang
index fb1ac85b8a3..a5338997eb2 100644
--- a/htdocs/langs/fr_FR/admin.lang
+++ b/htdocs/langs/fr_FR/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Espace outils systèmes
 SystemToolsAreaDesc=Cet espace offre des fonctions d'administration diverses. Utilisez le menu pour choisir la fonctionnalité recherchée.
 Purge=Purger
 PurgeAreaDesc=Cette page vous permet d'effacer tous les fichiers construits ou stockés par Dolibarr (fichiers temporaires ou tous les fichiers du répertoire <b>%s</b>). L'utilisation de cette fonction n'est pas nécessaire. Elle est fournie pour les utilisateurs qui hébergent Dolibarr chez un hébergeur qui n'offre pas les permissions de supprimer les fichiers sauvegardés par le serveur Web.
-PurgeDeleteLogFile=Effacer le fichier de traces de debug <b>%s</b> défini pour le module 'Journaux et traces' (pas de risque de perte de données)
+PurgeDeleteLogFile=Effacer les fichiers de traces de debug, incluant <b>%s</b> défini pour le module 'Journaux et traces' (pas de risque de perte de données)
 PurgeDeleteTemporaryFiles=Effacer tous les fichiers temporaires (pas de risque de perte de données)
 PurgeDeleteTemporaryFilesShort=Effacer les fichiers temporaires
 PurgeDeleteAllFilesInDocumentsDir=Effacer tous les fichiers du répertoire <b>%s</b>. Les fichiers temporaires mais aussi les fichiers « dumps » de sauvegarde de base de données, les fichiers joints aux éléments (tiers, factures, ...) ou fichiers stockés dans le module GED seront irrémédiablement effacés.
 PurgeRunNow=Lancer la purge maintenant
 PurgeNothingToDelete=Aucun dossier ou fichier à supprimer.
 PurgeNDirectoriesDeleted=<b>%s</b> fichiers ou répertoires supprimés.
+PurgeNDirectoriesFailed=Echec de la suppression des fichiers ou du répertoire '<b>%s</b>'.
 PurgeAuditEvents=Purger les événements d'audit de sécurité
 ConfirmPurgeAuditEvents=Êtes vous sûr de vouloir purger la liste des événements d'audit de sécurité. Toute la liste sera effacée, mais ceci est sans conséquence sur vos autres données.
 GenerateBackup=Générer sauvegarde
@@ -298,7 +299,7 @@ SetupIsReadyForUse=L"installation du module est terminée. Il est cependant néc
 NotExistsDirect=Le dossier racine alternatif n'est pas défini.<br>
 InfDirAlt=Depuis les versions 3, il est possible de définir un dossier racine alternatif. Cela permet d'installer modules et thèmes additionnels dans un répertoire dédié.<br>Créer un dossier racine alternatif à Dolibarr (ex : custom).<br>
 InfDirExample=<br>Ensuite, déclarer ceci dans le fichier <strong>conf.php</strong><br>$dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>Si ces lignes sont commentées avec un symbole "#" ou "//", activer les en supprimant le caractère "#" ou "//".
-YouCanSubmitFile=Pour cette étape, vous pouvez soumettre votre package en utilisant cet outil: Sélectionner le fichier du module
+YouCanSubmitFile=Pour cette étape, vous pouvez soumettre votre fichier package ici :
 CurrentVersion=Version actuelle de Dolibarr
 CallUpdatePage=Aller à la page de mise à jour de la structure et des données de la base : %s.
 LastStableVersion=Dernière version stable disponible
@@ -535,8 +536,6 @@ Module1120Name=Propositions commerciales fournisseurs
 Module1120Desc=Demander des devis et tarifs aux fournisseurs
 Module1200Name=Mantis
 Module1200Desc=Interface avec le bug tracker Mantis
-Module1400Name=Comptabilité
-Module1400Desc=Comptabilité double partie
 Module1520Name=Génération de document
 Module1520Desc=Génération de documents de publipostages
 Module1780Name=Libellés/Catégories
@@ -585,7 +584,7 @@ Module50100Desc=Module Caisse enregistreuse - Point de vente (POS)
 Module50200Name=Paypal
 Module50200Desc=Module permettant d'offrir en ligne une page de paiement par carte de crédit avec Paypal
 Module50400Name=Comptabilité (avancée)
-Module50400Desc=Comptabilité double partie
+Module50400Desc=Gestion de la comptabilité (double partie, comptes généraux et auxiliaires)
 Module54000Name=PrintIPP
 Module54000Desc=Impression directe (sans ouvrir les documents) en utilisant l'interface Cups IPP (l'imprimante doit être visible depuis le serveur, et CUPS doit être installé sur le serveur).
 Module55000Name=Sondage ou Vote
@@ -751,8 +750,10 @@ Permission401=Consulter les avoirs
 Permission402=Créer/modifier les avoirs
 Permission403=Valider les avoirs
 Permission404=Supprimer les avoirs
-Permission510=Consulter les salaires
-Permission512=Créer/modifier les salaires
+Permission501=Lire les fiches des contrats/salaires
+Permission502=Créer/modifier les contrats/salaires des employés
+Permission511=Lire les règlements de salaires
+Permission512=Créer/modifier les règlements de salaires
 Permission514=Supprimer les salaires
 Permission517=Exporter les salaires
 Permission520=Consulter les emprunts
@@ -971,7 +972,7 @@ CompanyZip=Code postal
 CompanyTown=Ville
 CompanyCountry=Pays
 CompanyCurrency=Devise principale
-CompanyObject=L'objet de la société
+CompanyObject=Objet de la société
 Logo=Logo
 DoNotSuggestPaymentMode=Ne pas suggérer
 NoActiveBankAccountDefined=Aucun compte bancaire actif défini
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restaurez le fichier archive (fichier zip par exemple) du répertoi
 RestoreDesc3=Restaurez les données, depuis le fichier « dump » de sauvegarde, dans  la base de données d'une nouvelle installation de Dolibarr ou de cette instance en cours (<b>%s</b>). Attention, une fois la restauration faite, il faudra utiliser un identifiant/mot de passe administrateur existant à l'époque de la sauvegarde pour se connecter. Pour restaurer la base dans l'installation actuelle, vous pouvez utiliser l'assistant suivant.
 RestoreMySQL=Importation MySQL
 ForcedToByAModule= Cette règle est forcée à <b>%s</b> par un des modules activés
-PreviousDumpFiles=Fichiers de sauvegarde de la base de données disponibles
+PreviousDumpFiles=Fichiers de sauvegarde de la base de données générés
 WeekStartOnDay=Premier jour de la semaine
 RunningUpdateProcessMayBeRequired=Le lancement du processus de mise à jour semble requis (La version des programmes %s diffère de la version de la base %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=Vous devez exécuter la commande sous un terminal après vous être identifié avec le compte <b>%s</b> ou ajouter -W à la fin de la commande pour fournir le mot de passe de <b>%s</b>.
diff --git a/htdocs/langs/fr_FR/agenda.lang b/htdocs/langs/fr_FR/agenda.lang
index 212abf31e25..bf3b567b631 100644
--- a/htdocs/langs/fr_FR/agenda.lang
+++ b/htdocs/langs/fr_FR/agenda.lang
@@ -84,7 +84,7 @@ DateActionStart=Date de début
 DateActionEnd=Date de fin
 AgendaUrlOptions1=Vous pouvez aussi ajouter les paramètres suivants pour filtrer les réponses :
 AgendaUrlOptions3=<b>logina=%s</b> pour limiter l'export aux actions dont l'utilisateur <b>%s</b> est propriétaire.
-AgendaUrlOptionsNotAdmin=<b>logina=!%s</b> to restrict output to actions not owned by user <b>%s</b>.
+AgendaUrlOptionsNotAdmin=<b>logina=!%s</b> pour restreindre l'affichage aux actions non assignées à l'utilisateur <b>%s</b>.
 AgendaUrlOptions4=<b>logint=%s</b>pour limiter l'affichage aux actions assignées à l'utilisateur <b>%s</b> (propriétaire et autres).
 AgendaUrlOptionsProject=<b>project=PROJECT_ID</b> pour restreindre aux événements associés au projet <b>PROJECT_ID</b>.
 AgendaShowBirthdayEvents=Afficher les anniversaires de contacts
diff --git a/htdocs/langs/fr_FR/banks.lang b/htdocs/langs/fr_FR/banks.lang
index c28a15a6e16..eea483b91be 100644
--- a/htdocs/langs/fr_FR/banks.lang
+++ b/htdocs/langs/fr_FR/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Chèque rejeté et factures réouvertes
 BankAccountModelModule=Modèles de documents pour les comptes bancaires
 DocumentModelSepaMandate=Modèle de mandat SEPA. Utile pour les pays européens de la CEE seulement.
 DocumentModelBan=Modèle pour imprimer une page avec des informations du compte bancaire.
-NewVariousPayment=Nouveau paiement divers
-VariousPayment=Paiement divers
-VariousPayments=Paiements divers
-ShowVariousPayment=Afficher les paiements divers
+NewVariousPayment=Nouvelle opération diverse
+VariousPayment=Opérations diverses
+VariousPayments=Opérations diverses
+ShowVariousPayment=Afficher les opérations diverses
diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang
index 40602533bf9..913ff439ecc 100644
--- a/htdocs/langs/fr_FR/bills.lang
+++ b/htdocs/langs/fr_FR/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Cette facture a déjà fait l'objet d'un ou plusieurs avoirs.
 CardBill=Fiche facture
 PredefinedInvoices=Facture modèles
 Invoice=Facture
+PdfInvoiceTitle=Facture
 Invoices=Factures
 InvoiceLine=Ligne de facture
 InvoiceCustomer=Facture client
diff --git a/htdocs/langs/fr_FR/commercial.lang b/htdocs/langs/fr_FR/commercial.lang
index bef770d044f..01e9e885569 100644
--- a/htdocs/langs/fr_FR/commercial.lang
+++ b/htdocs/langs/fr_FR/commercial.lang
@@ -19,7 +19,7 @@ ShowTask=Afficher tâche
 ShowAction=Afficher événement
 ActionsReport=Rapport des événements
 ThirdPartiesOfSaleRepresentative=Tiers ayant pour commercial
-SaleRepresentativesOfThirdParty=Commerciaux d'un tiers
+SaleRepresentativesOfThirdParty=Commerciaux du tiers
 SalesRepresentative=Commercial
 SalesRepresentatives=Commerciaux
 SalesRepresentativeFollowUp=Commercial (suivi)
diff --git a/htdocs/langs/fr_FR/compta.lang b/htdocs/langs/fr_FR/compta.lang
index ae51312a5f7..bf89f51d5c7 100644
--- a/htdocs/langs/fr_FR/compta.lang
+++ b/htdocs/langs/fr_FR/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Compte comptable par défaut pour l'encaissement de
 ACCOUNTING_VAT_BUY_ACCOUNT=Compte comptable par défaut pour le paiement de la TVA - TVA sur les achats (utilisé si non défini au niveau de la configuration du dictionnaire de TVA)
 ACCOUNTING_VAT_PAY_ACCOUNT=Compte comptable par défaut pour le paiement de la TVA
 ACCOUNTING_ACCOUNT_CUSTOMER=Compte comptable utilisé pour le tiers client
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Le compte comptable dédié défini sur une carte tierce sera utilisé pour l'affectation de comptes de Subledger, celui-ci pour le grand livre ou comme valeur par défaut de la comptabilité de Sous-compte si le compte dépendant d'un compte sur un tiers n'est pas défini
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Compte comptable utilisé pour le tiers fournisseur
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Le compte comptable dédié défini sur une carte tierce sera utilisé pour la comptabilisation de Subledger, celui-ci pour le grand livre général ou la valeur par défaut de la comptabilité de Sous-compte si le compte dédié d'accoutant du fournisseur sur un tiers n'est pas défini
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Cloner une charge sociale/fiscale
 ConfirmCloneTax=Confirmez le clone du paiement de charge sociale/fiscale
 CloneTaxForNextMonth=Cloner pour le mois suivant
diff --git a/htdocs/langs/fr_FR/cron.lang b/htdocs/langs/fr_FR/cron.lang
index fee4f308444..d2fc39a6860 100644
--- a/htdocs/langs/fr_FR/cron.lang
+++ b/htdocs/langs/fr_FR/cron.lang
@@ -57,7 +57,7 @@ CronStatusActiveBtn=Activer
 CronStatusInactiveBtn=Désactiver
 CronTaskInactive=Cette tâche est désactivée
 CronId=Id
-CronClassFile=Nom de fichier avec classe
+CronClassFile=Nom de fichier intégrant la classe
 CronModuleHelp=Nom du dossier du module dans Dolibarr (fonctionne aussi avec les modules externes). <BR>Par exemple, pour appeler la méthode d'appel des produits Dolibarr /htdocs/<u>product</u>/class/product.class.php, la valeur du module est <i>product</i>.
 CronClassFileHelp=Le chemin relatif et le nom du fichier à charger (le chemin d'accès est relatif au répertoire racine du serveur Web). <BR> Par exemple, appeler la méthode de récupération de Dolibarr Product object htdocs / product / class / <u> product.class.php , la valeur du nom de fichier de classe est <i> product / class / product.class .php
 CronObjectHelp=Le nom de l'objet à charger. <BR> Par exemple, appeler la méthode de récupération de l'objet de produit Dolibarr /htdocs/product/class/product.class.php, la valeur pour le nom de fichier de classe est <i> Produit 
diff --git a/htdocs/langs/fr_FR/errors.lang b/htdocs/langs/fr_FR/errors.lang
index 09a0dac5a34..9c8240cca51 100644
--- a/htdocs/langs/fr_FR/errors.lang
+++ b/htdocs/langs/fr_FR/errors.lang
@@ -98,7 +98,7 @@ ErrorDeleteNotPossibleLineIsConsolidated=Suppression impossible car l'enregistre
 ErrorProdIdAlreadyExist=%s est attribué à un autre tiers
 ErrorFailedToSendPassword=Échec de l'envoi du mot de passe
 ErrorFailedToLoadRSSFile=Echec de la récupération du flux RSS. Ajoutez la constante MAIN_SIMPLEXMLLOAD_DEBUG si le message d'erreur n'est pas assez explicite.
-ErrorForbidden=Accès refusé.<br>Vous essayez d'accéder à une page, région ou fonctionalité d'un module désactivé, ou sans être dans une session authentifiée, ou avec un utilisateur non autorisé.
+ErrorForbidden=Accès refusé.<br>Vous essayez d'accéder à une page, région ou fonctionnalité d'un module désactivé, ou sans être dans une session authentifiée, ou avec un utilisateur non autorisé.
 ErrorForbidden2=Les permissions pour cet identifiant peuvent être attribuées par l'administrateur Dolibarr via le menu %s -> %s.
 ErrorForbidden3=Dolibarr ne semble pas fonctionner au sein d'une session authentifiée. Consultez la documentation d'installation de Dolibarr pour savoir comment gérer les authentifications (htaccess, mod_auth ou autre...).
 ErrorNoImagickReadimage=La classe Imagick n'est pas présente sur cette installation de PHP. L'aperçu n'est donc pas disponible. Les administrateurs peuvent désactiver cet onglet dans le menu Configuration - Affichage.
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Erreur, doublon du trigger nommé %s. Déjà chargé à pa
 ErrorNoWarehouseDefined=Erreur, aucun entrepôts défini.
 ErrorBadLinkSourceSetButBadValueForRef=Le lien que vous utilisez n'est pas valide. Une 'source' pour le paiement est définie, mais la valeur pour 'ref' n'est pas valide.
 ErrorTooManyErrorsProcessStopped=Trop d'erreurs, Le processus a été arrêté.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=La validation de masse n'est pas possible lorsque l'option pour augmenter / diminuer le stock est définie sur cette action (vous devez valider un par un afin que vous puissiez définir l'entrepôt pour augmenter / diminuer)
+ErrorObjectMustHaveStatusDraftToBeValidated=L'objet %s doit être au statut brouillon pour être validé
+ErrorObjectMustHaveLinesToBeValidated=L'objet %s doit contenir des lignes
 
 # 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/install.lang b/htdocs/langs/fr_FR/install.lang
index 4f2b0958b1f..db041c0ad46 100644
--- a/htdocs/langs/fr_FR/install.lang
+++ b/htdocs/langs/fr_FR/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Identifiant du propriétaire de la base de données Dolibarr.
 PasswordAgain=Vérification du mot de passe
 AdminPassword=Mot de passe du propriétaire de la base de données Dolibarr.
 CreateDatabase=Créer la base de données
-CreateUser=Créer le propriétaire
+CreateUser=Créer le propriétaire ou lui affecter les droits à la base
 DatabaseSuperUserAccess=Serveur de base de données - Accès super utilisateur
 CheckToCreateDatabase=Cochez cette option si la base de données n'existe pas et doit être créée.<br>Dans ce cas, il faut renseigner identifiant et mot de passe du super-utilisateur au bas de cette page.
-CheckToCreateUser=Cochez cette option si l'utilisateur propriétaire n'existe pas et doit être créé.<br>Dans ce cas, il faut renseigner l'identifiant et mot de passe du propriétaire à créer ainsi que l'identifiant et mot de passe du super-utilisateur au bas de cette page. Si la case n'est pas cochée, l'identifiant et le mot de passe du propriétaire doivent exister.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Identifiant de l'utilisateur de la base ayant les droits de création de bases de données ou de comptes pour la base, requis si la base ou son propriétaire n'existent pas déjà et doivent être créés.
 KeepEmptyIfNoPassword=Laissez vide si l'administrateur n'a pas de mot de passe
 SaveConfigurationFile=Enregistrement du fichier de configuration
diff --git a/htdocs/langs/fr_FR/modulebuilder.lang b/htdocs/langs/fr_FR/modulebuilder.lang
index d12a7a0fa8a..293766ed765 100644
--- a/htdocs/langs/fr_FR/modulebuilder.lang
+++ b/htdocs/langs/fr_FR/modulebuilder.lang
@@ -1,40 +1,56 @@
 # Dolibarr language file - Source file is en_US - loan
-ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
-EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
-ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
+ModuleBuilderDesc=Cet outil est réservé aux utilisateurs avancés ou développeurs. Il donne accès aux outil de création ou d'édition de modules additionnels (Cliquez <a href="%s" target="_blank">ici</a> pour plus d'information).
+EnterNameOfModuleDesc=saisissez le nom du module (sans espace) pour le créer. Utilisez les majuscules pour identifier les mots (par exemple : MonModule, BoutiqueECommerce,...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
+ModuleBuilderDesc2=Chemin ou les modules sont générés/modifiés ( premier répertoire alternatif défini dans %s):<strong>%s</strong>
 ModuleBuilderDesc3=Modules générés/éditables trouvés <strong>%s</strong> (ils sont détectés comme éditables quand le fichier <strong>%s</strong> existse dans le répertoire racine du module).
 NewModule=Nouveau module
-NewObject=New object
-ModuleKey=Module key
-ObjectKey=Object key
+NewObject=Nouvel objet
+ModuleKey=Clé du module
+ObjectKey=Clé de l'objet
 ModuleInitialized=Module initialisé
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Fichiers pour les nouvel objet '%s' initialisés
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Entrez ici toutes les informations générales qui décrivent votre module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Définissez ici les objets que vous souhaitez gérer avec votre module. Une classe CRUD DAO, des fichiers SQL, une page pour lister l'enregistrement des objets, pour créer / modifier / afficher un enregistrement et une API sera générée.
 ModuleBuilderDescmenus=Cet onglet est dédié à la définition des entrées menu fournies par votre module.
 ModuleBuilderDescpermissions=Cet onglet est dédié à la définition des nouvelles permissions dont vous voulez fournir avec votre module.
-ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
+ModuleBuilderDesctriggers=Vue des triggers ajoutés par votre module. Pour inclure le code exécuté au lancement d'un événement commercial, éditez le fichier.
 ModuleBuilderDeschooks=Cet onglet est dédié aux points d'accroche.
 ModuleBuilderDescwidgets=Cet onglet est dédié à la gestion/construction de widgets.
 ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file.
-EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost !
+EnterNameOfModuleToDeleteDesc=Vous pouvez supprimer votre module. ATTENTION : tous les fichiers et les données seront définitivement perdus !
 EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost !
 DangerZone=Zone de danger
-BuildPackage=Build package/documentation
+BuildPackage=Générer package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=Ce module n' pas encore été activé. Allez page %s pour l'activer ou cliquez ici:
 ModuleIsLive=Ce module a été activé. Tout changement sur lui pourrait casser une fonctionnalité actuellement activée.
 DescriptionLong=Description longue
 EditorName=Nom de l'éditeur
 EditorUrl=URL de l'éditeur
-DescriptorFile=Descriptor file of module
-ClassFile=File for PHP class
-ApiClassFile=File for PHP API class
-PageForList=PHP page for list of record
-PageForCreateEditView=PHP page to create/edit/view a record
-PathToModulePackage=Path to zip of module/application package
-PathToModuleDocumentation=Path to file of module/application documentation
-SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
-FileNotYetGenerated=File not yet generated
+DescriptorFile=Fichier descriptif du module
+ClassFile=Fichier de la classe PHP
+ApiClassFile=Fichier de la classe PHP de l'API
+PageForList=Page PHP pour la liste des enregistrements
+PageForCreateEditView=Page PHP pour créer/modifier/afficher un enregistrement
+PathToModulePackage=Chemin du zip du package du module/application
+PathToModuleDocumentation=Chemin d'accès au fichier de documentation du module
+SpaceOrSpecialCharAreNotAllowed=Les espaces et les caractères spéciaux ne sont pas autorisés.
+FileNotYetGenerated=Fichier non encore généré
+SpecificationFile=Fichier de description des règles métiers
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Non NULL
+SearchAll=Utilisé par la "recherche globale"
+DatabaseIndex=Indexation base
+FileAlreadyExists=Le fichier %s existe déjà
+TriggersFile=Fichier de code des triggers
+HooksFile=Fichier du code des hooks
+WidgetFile=Fichier Widget
+ReadmeFile=Fichier Readme
+ChangeLog=Fichier de log
+SqlFile=Fichier SQL
+SqlFileKey=Fichier Sql pour les clés
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/fr_FR/multicurrency.lang b/htdocs/langs/fr_FR/multicurrency.lang
index 47830225a07..4bc05ae4795 100644
--- a/htdocs/langs/fr_FR/multicurrency.lang
+++ b/htdocs/langs/fr_FR/multicurrency.lang
@@ -4,7 +4,8 @@ ErrorAddRateFail=Erreur lors de l'ajout du taux
 ErrorAddCurrencyFail=Erreur lors de l'ajout de la devise
 ErrorDeleteCurrencyFail=Erreur de suppression
 multicurrency_syncronize_error=Erreur de synchronisation %s
-multicurrency_useOriginTx=Quand un objet est créé à partir d'un autre, gardez le taux original de l'objet source ( ou alors, utilisez le nouveau taux connu )
+MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate
+multicurrency_useOriginTx=Quand un objet est créé à partir d'un autre, garder le taux original de l'objet source (sinon utiliser le dernier taux connu)
 CurrencyLayerAccount=API CurrencyLayer
 CurrencyLayerAccount_help_to_synchronize=Vous devez créer un compte sur leur site web pour pouvoir utiliser cette fonctionnalité.<br />Obtenez votre <b>Clé API</b><br />Si vous utilisez un compte gratuit, vous ne pouvez pas changer la <b>devise source</b>(USD par défaut)<br />Mais si votre devise principale n'est pas USD, vous pouvez utiliser une <b>devise source alternative</b> pour forcer votre devise principale<br /><br /> Vous êtes limité à 1000 synchronisations par mois.
 multicurrency_appId=Clé API
diff --git a/htdocs/langs/fr_FR/orders.lang b/htdocs/langs/fr_FR/orders.lang
index 597370bfc06..d768ea749f6 100644
--- a/htdocs/langs/fr_FR/orders.lang
+++ b/htdocs/langs/fr_FR/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Espace commandes fournisseurs
 OrderCard=Fiche commande
 OrderId=Identifiant commande
 Order=Commande
+PdfOrderTitle=Commande
 Orders=Commandes
 OrderLine=Ligne de commande
 OrderDate=Date de commande
diff --git a/htdocs/langs/fr_FR/other.lang b/htdocs/langs/fr_FR/other.lang
index 5b160082aaf..346fcf42934 100644
--- a/htdocs/langs/fr_FR/other.lang
+++ b/htdocs/langs/fr_FR/other.lang
@@ -16,7 +16,8 @@ PreviousMonthOfInvoice=Mois précédent (numéro 1-12) la date de facturation
 TextPreviousMonthOfInvoice=Mois précédent (texte) de la date de facturation
 NextMonthOfInvoice=Le mois suivant (numéro 1-12) la date de facturation
 TextNextMonthOfInvoice=Le mois suivant (texte)  la date de facturation
-ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+ZipFileGeneratedInto=Fichier zip généré dans <b>%s</b>
+DocFileGeneratedInto=Fichier doc généré dans <b>%s</b>.
 
 YearOfInvoice=Année de la date de facturation
 PreviousYearOfInvoice=Année précédente de la date de facturation
diff --git a/htdocs/langs/fr_FR/products.lang b/htdocs/langs/fr_FR/products.lang
index 410217cc15a..ee4c7c328cf 100644
--- a/htdocs/langs/fr_FR/products.lang
+++ b/htdocs/langs/fr_FR/products.lang
@@ -247,7 +247,7 @@ ComposedProduct=Sous-produits
 MinSupplierPrice=Prix minimum fournisseur
 MinCustomerPrice=Prix client minimum
 DynamicPriceConfiguration=Configuration du prix dynamique
-DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value.
+DynamicPriceDesc=L'activation de ce module ajoute au fiches des produits une fonction d'enregistrement de formules de calcul des prix sur les prix de vente et d'achat. Ces formules supportent tous les opérateurs mathématiques, quelques constantes et variables. Définissez ici les variables que que vous voulez pouvoir utiliser, et si la variable nécessite d'être actualisée, l'URL externe ou Dolibarr ira chercher la nouvelle valeur
 AddVariable=Ajouter une Variable
 AddUpdater=Ajouter URL de mise à jour
 GlobalVariables=Variables globales
@@ -255,10 +255,10 @@ VariableToUpdate=Variable à mettre à jour
 GlobalVariableUpdaters=Mis à jour variable globale
 GlobalVariableUpdaterType0=Données JSON
 GlobalVariableUpdaterHelp0=Analyse les données JSON depuis l'URL spécifiée, VALUE indique l'emplacement de la valeur pertinente,
-GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"}
+GlobalVariableUpdaterHelpFormat0=Le format est {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"}
 GlobalVariableUpdaterType1=Données WebService
 GlobalVariableUpdaterHelp1=Analyse les données de WebService pour l'URL spécifiée, NS spécifie l'espace de noms, VALUE indique l'emplacement de la valeur pertinente, DATA doit contenir les données à envoyer et METHOD est la méthode WS appelée
-GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}}
+GlobalVariableUpdaterHelpFormat1=Le format est {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data, "to": "send"}}
 UpdateInterval=Intervale de mise à jour (minutes)
 LastUpdated=Dernière mise à jour
 CorrectlyUpdated=Mise à jour avec succès
diff --git a/htdocs/langs/fr_FR/projects.lang b/htdocs/langs/fr_FR/projects.lang
index ea54d6f967d..746fbd59c38 100644
--- a/htdocs/langs/fr_FR/projects.lang
+++ b/htdocs/langs/fr_FR/projects.lang
@@ -23,7 +23,7 @@ OnlyOpenedProject=Seuls les projets ouverts sont visibles (les projets à l'éta
 ClosedProjectsAreHidden=Les projets fermés ne sont pas visible.
 TasksPublicDesc=Cette vue présente tous les projets et tâches pour lesquels vous êtes habilité à avoir une visibilité.
 TasksDesc=Cette vue présente tous les projets et tâches (vos habilitations vous offrant une vue exhaustive).
-AllTaskVisibleButEditIfYouAreAssigned=Toutes les tâches d'un tel projet sont visibles mais il n'est possible de saisir du temps passé que sur celles qui vous sont assignées.\nAssignez vous la tache pour pouvoir saisir un temps passé.
+AllTaskVisibleButEditIfYouAreAssigned=Toutes les tâches des projets sont visibles mais il n'est possible de saisir du temps passé que sur celles qui vous sont assignées.\nAssignez vous la tâche pour pouvoir saisir un temps passé.
 OnlyYourTaskAreVisible=Seules les tâches qui vous sont assignées sont visibles. Assignez vous une tâche pour la voir et saisir du temps passé
 ImportDatasetTasks=Tâches des projets
 ProjectCategories=Catégories/tags de projet
diff --git a/htdocs/langs/fr_FR/propal.lang b/htdocs/langs/fr_FR/propal.lang
index f57692e0aa4..01819cfbd74 100644
--- a/htdocs/langs/fr_FR/propal.lang
+++ b/htdocs/langs/fr_FR/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Propositions commerciales brouillons
 ProposalsOpened=Propositions commerciales ouvertes
 Prop=Propositions commerciales
 CommercialProposal=Proposition commerciale
+PdfCommercialProposalTitle=Proposition commerciale
 ProposalCard=Fiche proposition
 NewProp=Nouvelle proposition commerciale
 NewPropal=Nouvelle proposition
diff --git a/htdocs/langs/fr_FR/salaries.lang b/htdocs/langs/fr_FR/salaries.lang
index b029df75429..96ed81a08bb 100644
--- a/htdocs/langs/fr_FR/salaries.lang
+++ b/htdocs/langs/fr_FR/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Compte comptable salaires
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Compte comptable utilisé pour les utilisateurs
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Compte comptable par défaut pour les charges de personnel
 Salary=Salaire
 Salaries=Salaires
diff --git a/htdocs/langs/fr_FR/stocks.lang b/htdocs/langs/fr_FR/stocks.lang
index 5fc0ccedec7..9a79bf2f8bd 100644
--- a/htdocs/langs/fr_FR/stocks.lang
+++ b/htdocs/langs/fr_FR/stocks.lang
@@ -64,7 +64,7 @@ ReStockOnBill=Incrémente les stocks physiques sur validation des factures/avoir
 ReStockOnValidateOrder=Incrémente les stocks physiques sur approbation des commandes fournisseurs
 ReStockOnDispatchOrder=Incrémente les stocks réels sur ventilation manuelle dans les entrepôts, après réception de la marchandise
 OrderStatusNotReadyToDispatch=La commande n'a pas encore ou n'a plus un statut permettant une ventilation en stock.
-StockDiffPhysicTeoric=Explication de l'écart stock physique-théorique
+StockDiffPhysicTeoric=Explication de l'écart stock physique-virtuel
 NoPredefinedProductToDispatch=Pas de produits prédéfinis dans cet objet. Aucune ventilation en stock n'est donc à faire.
 DispatchVerb=Ventiler
 StockLimitShort=Limite pour alerte
@@ -73,7 +73,7 @@ PhysicalStock=Stock physique
 RealStock=Stock réel
 RealStockDesc=Le stock physique ou réel est le stock présent dans les entrepôts.
 RealStockWillAutomaticallyWhen=Le stock réel sera modifié selon ces règles (voir la configuration du module Stock) :
-VirtualStock=Stock théorique
+VirtualStock=Stock virtuel
 VirtualStockDesc=Le stock virtuel est la quantité de produit en stock après que les opération affectant les stock sont terminées (réceptions de commandes fournisseurs, expéditions de commandes clients,...)
 IdWarehouse=Identifiant entrepôt
 DescWareHouse=Description entrepôt
@@ -100,11 +100,11 @@ StockToBuy=À commander
 Replenishment=Réapprovisionnement
 ReplenishmentOrders=Commandes de réapprovisionnement
 VirtualDiffersFromPhysical=Selon les options d'augmentation/décrémentation de stock, le stock physique et le stock virtuel (stock physique + commandes actuelles) peuvent différer
-UseVirtualStockByDefault=Utilisez le stock théorique par défaut, au lieu du stock réel, pour la fonction de réapprovisionnement
-UseVirtualStock=Utilisation du stock théorique
+UseVirtualStockByDefault=Utilisez le stock virtuel par défaut, au lieu du stock réel, pour la fonction de réapprovisionnement
+UseVirtualStock=Utilisation du stock virtuel
 UsePhysicalStock=Utilisation du stock réel
 CurentSelectionMode=Mode de sélection en cours
-CurentlyUsingVirtualStock=Stock théorique
+CurentlyUsingVirtualStock=Stock virtuel
 CurentlyUsingPhysicalStock=Stock réel
 RuleForStockReplenishment=Règle de gestion du réapprovisionnement des stocks
 SelectProductWithNotNullQty=Sélectionnez au moins un produit avec une quantité non nulle et un fournisseur
@@ -119,7 +119,7 @@ NbOfProductBeforePeriod=Quantité du produit <b>%s</b> en stock avant la périod
 NbOfProductAfterPeriod=Quantité du produit <b>%s</b> en stock après la période sélectionnée (> <b>%s</b>)
 MassMovement=Mouvement en masse
 SelectProductInAndOutWareHouse=Sélectionner un produit, une quantité à transférer, un entrepôt source et destination et cliquer sur "%s". Une fois tous les mouvements choisis, cliquer sur "%s".
-RecordMovement=Virement enregistré
+RecordMovement=Enregistrer transfert
 ReceivingForSameOrder=Réceptions pour cette commande
 StockMovementRecorded=Mouvement de stocks enregistré
 RuleForStockAvailability=Règles d'exigence sur les stocks
@@ -176,8 +176,8 @@ INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Le mouvement de stock a une date d'inv
 inventoryChangePMPPermission=Autoriser à changer la valeur PMP d'un produit
 ColumnNewPMP=Nouvelle unité PMP
 OnlyProdsInStock=N'ajoutez pas un produit sans stock
-TheoricalQty=Quantité théorique
-TheoricalValue=Quantité théorique
+TheoricalQty=Quantité virtuelle
+TheoricalValue=Quantité virtuelle
 LastPA=Dernier BP
 CurrentPA=BP actuel
 RealQty=Quantité réelle
diff --git a/htdocs/langs/fr_FR/website.lang b/htdocs/langs/fr_FR/website.lang
index bf6e9fc4bbe..3b8390283e0 100644
--- a/htdocs/langs/fr_FR/website.lang
+++ b/htdocs/langs/fr_FR/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Créer ici autant d'entrée que de nombre différents de sites
 DeleteWebsite=Effacer site web
 ConfirmDeleteWebsite=Êtes-vous sûr de vouloir supprimer ce site web. Toutes les pages et le contenu seront également supprimés.
 WEBSITE_PAGENAME=Nom/alias de la page
+WEBSITE_HTML_HEADER=En-tête HTML
 WEBSITE_CSS_URL=URL du fichier de la feuille de style (CSS) externe
 WEBSITE_CSS_INLINE=Contenu de la feuille de style (CSS)
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Répertoire de médias
-EditCss=Modifier la feuille de style (CSS)
+EditCss=Editer  l'en-tête HTML ou Style/CSS
 EditMenu=Modifier menu
 EditPageMeta=Modifier métadonnées
 EditPageContent=Modifier contenu
 Website=Site web
-Webpage=Page web
-AddPage=Ajouter une page
+Webpage=Page/contenair Web
+AddPage=Ajouter une page/contenair
 HomePage=Page d'accueil
 PreviewOfSiteNotYetAvailable=La prévisualisation de votre site web <strong>%s</strong> n'est pas disponible actuellement. Vous devez créer une première page.
-RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' du site web %s effacée
-PageAdded=Page '%s' ajouté
+RequestedPageHasNoContentYet=La page demandée avec l'id=%s ne présente encore aucun contenu ou le fichier cache .tpl.php a été supprimé. Ajoutez du contenu à la page pour résoudre cela.
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' du site '%s' supprimée
+PageAdded=Page/Contenair '%s' ajoutée
 ViewSiteInNewTab=Pré-visualiser le site dans un nouvel onglet
 ViewPageInNewTab=Pré-visualiser la page dans un nouvel onglet
 SetAsHomePage=Définir comme page d'accueil
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=Pré-visualiser le site web en utilisant l'URL de la pag
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Prévisualiser %s dans un nouvel onglet.<br><br>. Le %s sera servi par un serveur web externe ( comme Apache, Nginx, IIS ). Vous pouvez installer et configurer ce serveur avant de pointer sur le répertoire : <br><strong>%s</strong><br> URL servie par un serveur externe: <br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
-NoPageYet=Aucune page
+VirtualHostUrlNotDefined=URL du virtual host servit par le serveur web externe non défini
+NoPageYet=Pas de page pour l'instant
+SyntaxHelp=Aide sur la syntaxe du code
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Cloner la page/contenair
+CloneSite=Cloner le site
diff --git a/htdocs/langs/fr_FR/withdrawals.lang b/htdocs/langs/fr_FR/withdrawals.lang
index 07c87c60b23..9fd136359f7 100644
--- a/htdocs/langs/fr_FR/withdrawals.lang
+++ b/htdocs/langs/fr_FR/withdrawals.lang
@@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nombre de factures en attente de prélèvement pou
 InvoiceWaitingWithdraw=Factures en attente de prélèvement
 AmountToWithdraw=Somme à prélever
 WithdrawsRefused=Prélèvements rejetés
-NoInvoiceToWithdraw=Aucune facture client avec 'Demande de débit direct' ouverte. Rendez vous sur l'onglet "%s" sur la carte de facture pour faire une demande. 
+NoInvoiceToWithdraw=Aucune facture client ouverte avec des 'Demandes de prélèvement' n'est en attente. Rendez vous sur l'onglet '%s' sur la fiche facture pour faire une demande. 
 ResponsibleUser=Utilisateur responsable des prélèvements
 WithdrawalsSetup=Configuration des prélèvements
 WithdrawStatistics=Statistiques des prélèvements
diff --git a/htdocs/langs/fr_FR/workflow.lang b/htdocs/langs/fr_FR/workflow.lang
index a9eb29c7a8d..e4506c8b69e 100644
--- a/htdocs/langs/fr_FR/workflow.lang
+++ b/htdocs/langs/fr_FR/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Configuration du module workflow
 WorkflowDesc=Ce module est conçu pour modifier le comportement des actions automatiques dans l'application. Par défaut, le workflow est ouvert (vous pouvez faire les choses dans l'ordre que vous voulez). Vous pouvez toutefois activer des actions automatiques qui vous intéressent.
 ThereIsNoWorkflowToModify=Il n'y a pas de modifications de workflow disponibles avec les modules activés.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Créer une commande client automatiquement à la signature d'une proposition commerciale
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Créer une commande client automatiquement lorsqu'une proposition commerciale est signée
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Créer automatiquement une commande client à la signature d'un proposition commerciale (la commande sera du même montant que la proposition commerciale)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Créer automatiquement une facture client à la signature d'une proposition commerciale (la facture sera du même montant que la proposition commerciale source)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Créer une facture client automatiquement à la validation d'un contrat
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Créer une facture client automatiquement à la clôture d'une commande client
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classer facturée la proposition commerciale source quand la commande client dérivée est classée payée
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classer facturée la ou les commandes clients source quand la facture client dérivée est classée payée
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classer facturée la ou les commandes clients source lorsque la facture client dérivée est validée
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=A la validation d'une commande, classer la proposition commerciale source "facturée"
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classez la commande liée à expédiée quand une expédition est validée et que la quantité expédiée totale est la même que dans la commande
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Créer automatiquement une facture client à la cloture d'un commande (la facture sera du même montant que la commande)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classer la/les proposition(s) commerciale(s) source(s) facturée(s) au classement facturé de la commande (et si le montant des deux documents est le même)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classer la/les proposition(s) commerciale(s) facturée(s) à la validation d'une facture client (si la facture est du même montant que la commande)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classer la/les commande(s) client(s) source(s) facturée à la validation de la facture client (et si le montant des deux documents est le même)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classer la/les commande(s) client(s) source(s) facturée au classement payé de la facture client (et si le montant des deux documents est le même)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classer la commande source expédiée à la validation d'une expédition (si les quantité des documents sont les mêmes)
 AutomaticCreation=Création automatique
 AutomaticClassification=Classification automatique
diff --git a/htdocs/langs/he_IL/accountancy.lang b/htdocs/langs/he_IL/accountancy.lang
index d239f259a94..a7176d2e55f 100644
--- a/htdocs/langs/he_IL/accountancy.lang
+++ b/htdocs/langs/he_IL/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Code
 Nature=Nature
 AccountingJournalType1=Various operation
 AccountingJournalType2=Sales
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exports
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model of export
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/he_IL/admin.lang b/htdocs/langs/he_IL/admin.lang
index 3032ace60b8..4fe077529b5 100644
--- a/htdocs/langs/he_IL/admin.lang
+++ b/htdocs/langs/he_IL/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=כלי המערכת באזור
 SystemToolsAreaDesc=אזור זה מספק תכונות ניהול. השתמשו בתפריט כדי לבחור את התכונה שאתה מחפש.
 Purge=Purge
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=מחק את כל הקבצים <b>%s</b> במדריך. קבצים זמניים, אלא גם גיבוי מסד הנתונים משליכה, קבצים המצורפים אלמנטים (צדדים שלישיים, חשבוניות, ...) ורק לאחר מכן להעלות את מודול ECM יימחקו.
 PurgeRunNow=לטהר עכשיו
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> קבצים או ספריות נמחק.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=לטהר את כל אירועי האבטחה
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=ליצור גיבוי
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr הגרסה הנוכחית
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=גמל שלמה
 Module1200Desc=גמל שלמה אינטגרציה
-Module1400Name=חשבונאות
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=מודול להציע בדף התשלום באינטרנט באמצעות כרטיס אשראי עם Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=קרא הנחות
 Permission402=יצירה / שינוי הנחות
 Permission403=אמת הנחות
 Permission404=מחק את הנחות
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= כלל זה הוא נאלץ <b>%s</b> ידי מודול מופעל
-PreviousDumpFiles=גיבוי מסד הנתונים זמינים קובצי dump
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=היום הראשון בשבוע
 RunningUpdateProcessMayBeRequired=הפעלת תהליך השדרוג נראה שיהיה צורך (תוכניות %s גרסה שונה %s גרסה מסד נתונים)
 YouMustRunCommandFromCommandLineAfterLoginToUser=עליך להפעיל את הפקודה משורת הפקודה לאחר ההתחברות להפגיז עם <b>%s</b> משתמש או עליך להוסיף-W אפשרות בסוף של שורת הפקודה כדי לספק את הסיסמה <b>%s.</b>
diff --git a/htdocs/langs/he_IL/banks.lang b/htdocs/langs/he_IL/banks.lang
index ba42f9a4c83..9bce7b9e29a 100644
--- a/htdocs/langs/he_IL/banks.lang
+++ b/htdocs/langs/he_IL/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/he_IL/bills.lang b/htdocs/langs/he_IL/bills.lang
index 39f2206a8c3..03376084dc9 100644
--- a/htdocs/langs/he_IL/bills.lang
+++ b/htdocs/langs/he_IL/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Invoice card
 PredefinedInvoices=Predefined Invoices
 Invoice=Invoice
+PdfInvoiceTitle=Invoice
 Invoices=חשבוניות
 InvoiceLine=Invoice line
 InvoiceCustomer=Customer invoice
diff --git a/htdocs/langs/he_IL/compta.lang b/htdocs/langs/he_IL/compta.lang
index a009e65313f..d5225c43d4f 100644
--- a/htdocs/langs/he_IL/compta.lang
+++ b/htdocs/langs/he_IL/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/he_IL/errors.lang b/htdocs/langs/he_IL/errors.lang
index feada2d1b5a..853a34b4bb4 100644
--- a/htdocs/langs/he_IL/errors.lang
+++ b/htdocs/langs/he_IL/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/he_IL/install.lang b/htdocs/langs/he_IL/install.lang
index a1decca40be..21fc66d6b4f 100644
--- a/htdocs/langs/he_IL/install.lang
+++ b/htdocs/langs/he_IL/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner.
 PasswordAgain=Retype password a second time
 AdminPassword=Password for Dolibarr database owner.
 CreateDatabase=Create database
-CreateUser=Create owner
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Database server - Superuser access
 CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
-CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
 KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
 SaveConfigurationFile=Save values
diff --git a/htdocs/langs/he_IL/main.lang b/htdocs/langs/he_IL/main.lang
index 8639dddc42d..ec964851027 100644
--- a/htdocs/langs/he_IL/main.lang
+++ b/htdocs/langs/he_IL/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=The file was successfully uploaded
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
 NbOfEntries=Nb of entries
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parameter
 Parameters=Parameters
 Value=Value
 PersonalValue=Personal value
+NewObject=New %s
 NewValue=New value
 CurrentValue=Current value
 Code=Code
@@ -441,6 +443,7 @@ Reporting=Reporting
 Reportings=Reporting
 Draft=Draft
 Drafts=Drafts
+StatusInterInvoiced=
 Validated=Validated
 Opened=Open
 New=New
@@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account
 AccountCurrency=Account Currency
 ViewPrivateNote=View notes
 XMoreLines=%s line(s) hidden
+ShowMoreLines=Show more lines
 PublicUrl=Public URL
 AddBox=Add box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gender
 Genderman=Man
diff --git a/htdocs/langs/he_IL/modulebuilder.lang b/htdocs/langs/he_IL/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/he_IL/modulebuilder.lang
+++ b/htdocs/langs/he_IL/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/he_IL/orders.lang b/htdocs/langs/he_IL/orders.lang
index 428229faa13..89ad1f259da 100644
--- a/htdocs/langs/he_IL/orders.lang
+++ b/htdocs/langs/he_IL/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area
 OrderCard=Order card
 OrderId=Order Id
 Order=סדר
+PdfOrderTitle=סדר
 Orders=Orders
 OrderLine=Order line
 OrderDate=Order date
diff --git a/htdocs/langs/he_IL/other.lang b/htdocs/langs/he_IL/other.lang
index be9c293e87a..896d24a7165 100644
--- a/htdocs/langs/he_IL/other.lang
+++ b/htdocs/langs/he_IL/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/he_IL/propal.lang b/htdocs/langs/he_IL/propal.lang
index a89bbe8917d..e4c56cf0719 100644
--- a/htdocs/langs/he_IL/propal.lang
+++ b/htdocs/langs/he_IL/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals
 ProposalsOpened=Open commercial proposals
 Prop=Commercial proposals
 CommercialProposal=Commercial proposal
+PdfCommercialProposalTitle=Commercial proposal
 ProposalCard=Proposal card
 NewProp=New commercial proposal
 NewPropal=New proposal
diff --git a/htdocs/langs/he_IL/salaries.lang b/htdocs/langs/he_IL/salaries.lang
index 522bf0a65d7..7e0c80d3380 100644
--- a/htdocs/langs/he_IL/salaries.lang
+++ b/htdocs/langs/he_IL/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Salary
 Salaries=Salaries
diff --git a/htdocs/langs/he_IL/website.lang b/htdocs/langs/he_IL/website.lang
index b3b05ee6cc9..98577e0de5e 100644
--- a/htdocs/langs/he_IL/website.lang
+++ b/htdocs/langs/he_IL/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/he_IL/workflow.lang b/htdocs/langs/he_IL/workflow.lang
index 54246856e9b..8021fb9b198 100644
--- a/htdocs/langs/he_IL/workflow.lang
+++ b/htdocs/langs/he_IL/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Workflow module setup
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/hr_HR/accountancy.lang b/htdocs/langs/hr_HR/accountancy.lang
index f48e84adf6f..f543e8f0552 100644
--- a/htdocs/langs/hr_HR/accountancy.lang
+++ b/htdocs/langs/hr_HR/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Stanje računa
-
+ObjectsRef=Source object ref
 CAHTF=Ukupna nabava dobavljača prije poreza
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Financijski izvještaj uključujući sve tipove plačanja po bankovnom računom
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=Popis obračunskih računa
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Klasa računa
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Greška, ne možete obrisati obračunski račun jer je u upotrebi
-MvtNotCorrectlyBalanced=Kretanje nije točno balansirano. Potražno = %s. Dugovno = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Kod
 Nature=Vrsta
 AccountingJournalType1=Various operation
 AccountingJournalType2=Prodaja
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exports
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model of export
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/hr_HR/admin.lang b/htdocs/langs/hr_HR/admin.lang
index 273fa4c4e16..81b801cc76e 100644
--- a/htdocs/langs/hr_HR/admin.lang
+++ b/htdocs/langs/hr_HR/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Sučelje sistemskih alata
 SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for.
 Purge=Trajno izbriši
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Obriši dnevnik datoteka <b>%s</b> definiran za Syslog modul ( nema rizika od gubitka podataka)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Obriši sve privremene datotek ( bez rizika od gubitka podataka)
 PurgeDeleteTemporaryFilesShort=Obriši privremene datoteke
 PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory <b>%s</b>. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted.
 PurgeRunNow=Izbriši sada
 PurgeNothingToDelete=Nema mapa i datoteka za brisanje.
 PurgeNDirectoriesDeleted=<b>%s</b> datoteka ili mapa obrisano.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Trajno izbriši sve sigurnosne događaje
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Generiraj backup
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=Ovo je prvi korak, možete poslati paket koristeći ovaj alat: Odaberite datoteke modula
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Trenutna verzija Dolibarr-a
 CallUpdatePage=Idite na stranicu koja nadograđuje strukturu baze i podatke: %s
 LastStableVersion=Zadnja stabilna verzija
@@ -535,8 +536,6 @@ Module1120Name=Ponuda dobavljača
 Module1120Desc=Zahtjev za ponudom dobavljača s cijenama
 Module1200Name=Mantis
 Module1200Desc=Integracija Mantisa
-Module1400Name=Računovodstvo
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Generiranje dokumenta
 Module1520Desc=Mass mail document generation
 Module1780Name=Kategorije
@@ -585,7 +584,7 @@ Module50100Desc=Modul prodajnog mjesta (POS)
 Module50200Name=Paypal
 Module50200Desc=Modul za mogućnost online plaćanja kreditnom karticom putem PayPal-a
 Module50400Name=Računovodstvo (napredno)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Anketa, Upitnik ili Glasanje
@@ -751,8 +750,10 @@ Permission401=Čitaj popuste
 Permission402=Kreiraj/izmjeni popuste
 Permission403=Ovjeri popuste
 Permission404=Obriši popuste
-Permission510=Čitaj plaće
-Permission512=Kreiraj/izmjeni plaće
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Obriši plaće
 Permission517=Izvoz plaća
 Permission520=Čitaj kredite
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL uvoz
 ForcedToByAModule= Ovo pravilo je forsirano na <b>%s</b> od aktiviranog modula
-PreviousDumpFiles=Dostupne datoteke backupa baze podataka
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=Prvi dan tjedna
 RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user <b>%s</b> or you must add -W option at end of command line to provide <b>%s</b> password.
diff --git a/htdocs/langs/hr_HR/banks.lang b/htdocs/langs/hr_HR/banks.lang
index 56e12a1b1e6..5682fdd3115 100644
--- a/htdocs/langs/hr_HR/banks.lang
+++ b/htdocs/langs/hr_HR/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Ček je vračen i računi su ponovo otvoreni
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/hr_HR/bills.lang b/htdocs/langs/hr_HR/bills.lang
index 2b7c423e600..40c0304c6a0 100644
--- a/htdocs/langs/hr_HR/bills.lang
+++ b/htdocs/langs/hr_HR/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Kartica računa
 PredefinedInvoices=Predlošci računa
 Invoice=Račun
+PdfInvoiceTitle=Račun
 Invoices=Računi
 InvoiceLine=Popis računa
 InvoiceCustomer=Račun za kupca
diff --git a/htdocs/langs/hr_HR/compta.lang b/htdocs/langs/hr_HR/compta.lang
index cf920e14dcd..5ccb91fe885 100644
--- a/htdocs/langs/hr_HR/compta.lang
+++ b/htdocs/langs/hr_HR/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Kloniraj društveni/fiskalni porez
 ConfirmCloneTax=Potvrdi kloniranje plaćanja društvenog/fiskalnog poreza
 CloneTaxForNextMonth=Kloniraj za sljedeći mjesec
diff --git a/htdocs/langs/hr_HR/errors.lang b/htdocs/langs/hr_HR/errors.lang
index 14629ea74fa..a6a61d78aa4 100644
--- a/htdocs/langs/hr_HR/errors.lang
+++ b/htdocs/langs/hr_HR/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/hr_HR/install.lang b/htdocs/langs/hr_HR/install.lang
index 66c9a3ad0e1..f268e8f6d8f 100644
--- a/htdocs/langs/hr_HR/install.lang
+++ b/htdocs/langs/hr_HR/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner.
 PasswordAgain=Retype password a second time
 AdminPassword=Password for Dolibarr database owner.
 CreateDatabase=Create database
-CreateUser=Create owner
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Database server - Superuser access
 CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
-CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
 KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
 SaveConfigurationFile=Save values
diff --git a/htdocs/langs/hr_HR/main.lang b/htdocs/langs/hr_HR/main.lang
index e6aa43f8e71..36b57d6332f 100644
--- a/htdocs/langs/hr_HR/main.lang
+++ b/htdocs/langs/hr_HR/main.lang
@@ -75,7 +75,8 @@ FileRenamed=Ime datoteke uspješno promijenjeno
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=Datoteka je uspješno učitana
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=Datoteka je odabrana za prilogu ali nije još učitana. Klikni na "Priloži datoteku".
 NbOfEntries=Br. unosa
 GoToWikiHelpPage=Pročitajte Online pomoć ( potreban pristup Internetu)
@@ -196,6 +197,7 @@ Parameter=Parametar
 Parameters=Parametri
 Value=Vrijednost
 PersonalValue=Osobna vrijednost
+NewObject=New %s
 NewValue=Nova vrijednost
 CurrentValue=Trenutna vrijednost
 Code=Kod
@@ -441,6 +443,7 @@ Reporting=Izvještavanje
 Reportings=Izvještavanje
 Draft=Skica
 Drafts=Skice
+StatusInterInvoiced=
 Validated=Ovjereno
 Opened=Otvori
 New=Novo
@@ -727,6 +730,7 @@ SetBankAccount=Postavi bankovni račun
 AccountCurrency=Valuta računa
 ViewPrivateNote=Vidi napomene
 XMoreLines=%s stavaka(e) skriveno
+ShowMoreLines=Show more lines
 PublicUrl=Javni URL
 AddBox=Dodaj blok
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Idite na Home - Podešavanje - Tvrtka za promjenu logotipa ili idite na Home - Podešavanje - Prikaz za skrivanje.
 Deny=Odbij
 Denied=Odbijeno
+ListOf=List of %s
 ListOfTemplates=Popis predložaka
 Gender=Spol
 Genderman=Muško
diff --git a/htdocs/langs/hr_HR/modulebuilder.lang b/htdocs/langs/hr_HR/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/hr_HR/modulebuilder.lang
+++ b/htdocs/langs/hr_HR/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/hr_HR/orders.lang b/htdocs/langs/hr_HR/orders.lang
index 914f9795a6d..71bdce0a288 100644
--- a/htdocs/langs/hr_HR/orders.lang
+++ b/htdocs/langs/hr_HR/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Sučelje narudžba dobavljačima
 OrderCard=Kartica nardžbi
 OrderId=Broj narudžbe
 Order=Narudžba
+PdfOrderTitle=Narudžba
 Orders=Narudžbe
 OrderLine=Stavka narudžbe
 OrderDate=Datum narudžbe
diff --git a/htdocs/langs/hr_HR/other.lang b/htdocs/langs/hr_HR/other.lang
index ae97363f5af..eed37d5ff16 100644
--- a/htdocs/langs/hr_HR/other.lang
+++ b/htdocs/langs/hr_HR/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/hr_HR/propal.lang b/htdocs/langs/hr_HR/propal.lang
index 480dfcf74ac..9592dcf9ce3 100644
--- a/htdocs/langs/hr_HR/propal.lang
+++ b/htdocs/langs/hr_HR/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Skice ponuda
 ProposalsOpened=Otvori ponude
 Prop=Ponude
 CommercialProposal=Ponuda
+PdfCommercialProposalTitle=Ponuda
 ProposalCard=Kartica ponude
 NewProp=Nova ponuda
 NewPropal=Nova ponuda
diff --git a/htdocs/langs/hr_HR/salaries.lang b/htdocs/langs/hr_HR/salaries.lang
index 068b6b0c7a7..d39faa96e4b 100644
--- a/htdocs/langs/hr_HR/salaries.lang
+++ b/htdocs/langs/hr_HR/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Plaća
 Salaries=Plaće
diff --git a/htdocs/langs/hr_HR/website.lang b/htdocs/langs/hr_HR/website.lang
index 3f9e3fb04cf..82ce8697a27 100644
--- a/htdocs/langs/hr_HR/website.lang
+++ b/htdocs/langs/hr_HR/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Kreirajte različitih unosa koliko god to želite ovisno koliko
 DeleteWebsite=Obriši Web mjesto
 ConfirmDeleteWebsite=Jeste li sigurni da želite obrisati ovo web mjesto. Sve stranice i sadržaj biti će isto obrisan.
 WEBSITE_PAGENAME=Naziv stranice/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL vanjske CSS datoteke
 WEBSITE_CSS_INLINE=CSS sadržaj
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Mediji
-EditCss=Uredi stil/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Uredi izbornik
 EditPageMeta=Uredi meta
 EditPageContent=Uredi sadržaj
 Website=Website
-Webpage=Web page
-AddPage=Dodaj stranicu
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Pregled vašeg web mjesta <strong>%s</strong> nije još dostupan. Prvo morate dodati stranicu.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Stranica %s od web lokacije %s je obrisana
-PageAdded=Stranica '%s' je dodana
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=Pogledaj lokaciju u novom tabu
 ViewPageInNewTab=Pogledaj stranicu u novom tabu
 SetAsHomePage=Postavi kao početnu stranicu
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=Pogledaj web lokaciju koristeći URL naslovnice
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/hr_HR/workflow.lang b/htdocs/langs/hr_HR/workflow.lang
index 07dfd7e1707..1289c328c4b 100644
--- a/htdocs/langs/hr_HR/workflow.lang
+++ b/htdocs/langs/hr_HR/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Podešavanje modula radnog procesa
 WorkflowDesc=Ovaj modul je dizajniran da mijenja ponašanje automatskih akcija u aplikaciji. Prema predefiniranom, radni proces je otvoren (možete raditi stvari po redu kako želite). Možete uključiti automatske akcije za koje ste zainteresirani.
 ThereIsNoWorkflowToModify=Nema dostupnih promjena radnog procesa za aktivirane module.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatski kreiraj narudžbu kupca kada je ponuda ovjerena potpisom
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatski kreiraj račun kupca nakon što je ponuda ovjerena potpisom
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatski kreiraj račun kupca nakon što je ugovor ovjeren
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatski kreiraj račun kupca nakon što je narudžba kupca zatvorena
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Označi povezanu ponudu kao naplaćeno kada je narudžba kupca postavljena kao plaćena
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Označi vezanu narudžbu(e) kupca naplaćeno kada je račun kupca postavljen kao plaćeno
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Označi vezanu narudžbu(e) kupca naplaćeno kada je račun kupca postavljen kao ovjereno
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Označi povezanu ponudu kao naplaćeno kada je račun kupca ovjeren
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/hu_HU/accountancy.lang b/htdocs/langs/hu_HU/accountancy.lang
index 26d9bc44c53..fbd915772dd 100644
--- a/htdocs/langs/hu_HU/accountancy.lang
+++ b/htdocs/langs/hu_HU/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Számlaosztály
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Kód
 Nature=Természet
 AccountingJournalType1=Various operation
 AccountingJournalType2=Eladások
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Export
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model of export
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/hu_HU/admin.lang b/htdocs/langs/hu_HU/admin.lang
index 71fe5fa2d07..10d5a60890b 100644
--- a/htdocs/langs/hu_HU/admin.lang
+++ b/htdocs/langs/hu_HU/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Rendszereszközök területe
 SystemToolsAreaDesc=Ez a terület ad adminisztrációs funkciókat. Használja a menüt a funkciót, amit keresel.
 Purge=Tisztítsd
 PurgeAreaDesc=Ezen az oldalon a Dolibarr által generált fájlokat  törölhet (ideiglenes fájlokat vagy minden fájlt a <b>%s</b> könyvtárban) Ennek a funkciónak a használata nem kötelező. Leginkább hosztolt környezetben lehet hasznos ahol a szolgáltató nem ad jogosultságot a webszerver logfájljainak törlésére.
-PurgeDeleteLogFile=A Syslog modulban definiált <b>%s</b> logfájl törlése (nem vezet adatvesztéshez)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Töröljön minden ideiglenes fájlt (nincs adatvesztés lehetősége)
 PurgeDeleteTemporaryFilesShort=Ideiglenes fájlok törlése
 PurgeDeleteAllFilesInDocumentsDir=Összes fájl törlése <b>%s</b> könyvtárban. Az ideiglenes fájlok, hanem adatbázis mentés guba, csatolt fájlok elemek (harmadik fél, számlák, ...) és feltölteni az ECM modul törlődik.
 PurgeRunNow=Ürítsd ki most
 PurgeNothingToDelete=Nincs törlésre váró fájl vagy könyvtár
 PurgeNDirectoriesDeleted=<b>%s</b> törölt fájlokat vagy könyvtárakat.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Üríts minden biztonsági eseményt
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Biztonsági mentés indítása
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr jelenlegi verziója
 CallUpdatePage=Lépjen az oldalra amiben az adatbázis struktúrát és adatokat frissíti: %s
 LastStableVersion=Utolsó stabil verzió
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Mantis integráció
-Module1400Name=Számvitel
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Címkék/kategóriák
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Modult kínál online fizetési oldalra hitelkártya Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Olvassa kedvezmények
 Permission402=Létrehozza / módosítja kedvezmények
 Permission403=Kedvezmények érvényesítése
 Permission404=Törlés kedvezmények
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= Ez a szabály arra kényszerül, hogy <b>%s</b> által aktivált modul
-PreviousDumpFiles=Elérhető adatbázis mentés fájlok kiírása
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=A hét első napja
 RunningUpdateProcessMayBeRequired=Futás a frissítési folyamat úgy tűnik, hogy szükség (Programok változat eltér %s %s adatbázis verzió)
 YouMustRunCommandFromCommandLineAfterLoginToUser=Kell futtatni ezt a parancsot a parancssorból bejelentkezés után a shell felhasználói <b>%s</b> vagy hozzá kell-W opció végén parancsot, hogy <b>%s</b> jelszót.
diff --git a/htdocs/langs/hu_HU/banks.lang b/htdocs/langs/hu_HU/banks.lang
index 4d67f6a88ac..d0840c9733f 100644
--- a/htdocs/langs/hu_HU/banks.lang
+++ b/htdocs/langs/hu_HU/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Csekk visszatért és a számla újranyitott
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/hu_HU/bills.lang b/htdocs/langs/hu_HU/bills.lang
index 219bb5b4c3c..5b48ba19995 100644
--- a/htdocs/langs/hu_HU/bills.lang
+++ b/htdocs/langs/hu_HU/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Számla kártya
 PredefinedInvoices=Előre definiált számlák
 Invoice=Számla
+PdfInvoiceTitle=Számla
 Invoices=Számlák
 InvoiceLine=Számla tételsor
 InvoiceCustomer=Vásárlói számla
diff --git a/htdocs/langs/hu_HU/compta.lang b/htdocs/langs/hu_HU/compta.lang
index 8bff007aad1..5847363c48e 100644
--- a/htdocs/langs/hu_HU/compta.lang
+++ b/htdocs/langs/hu_HU/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/hu_HU/errors.lang b/htdocs/langs/hu_HU/errors.lang
index b35d06274d5..0ddbe6f2a10 100644
--- a/htdocs/langs/hu_HU/errors.lang
+++ b/htdocs/langs/hu_HU/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/hu_HU/install.lang b/htdocs/langs/hu_HU/install.lang
index 4080bc69214..7d62ca4fa56 100644
--- a/htdocs/langs/hu_HU/install.lang
+++ b/htdocs/langs/hu_HU/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Adatbázis tulajdonos bejelentkezési neve.
 PasswordAgain=Jelszó mégegyszer
 AdminPassword=Adatbázis tulajdonos jelszava.
 CreateDatabase=Adatbázis lérehozása
-CreateUser=Tulajdonos lérehozása
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Adatbázis szerver - Superuser hozzáférés
 CheckToCreateDatabase=Pipálja ki a dobozt ha szeretné, hogy a rendszer létrehozza az adatbázist.<br>Ebbben az esetben a SuperUser bejelentkezési adatait ki kell tölteni az oldal alján.
-CheckToCreateUser=Pipálja ki a dobozt ha szeretné, hogy a rendszer létrehozza az adatbázis tulajdonos.<br>Ebbben az esetben a SuperUser bejelentkezési adatait ki kell tölteni az oldal alján. A a doboz nincs kipipálva akkor az adatbázisnak és a tulajdonosának léteznie kell.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=A felhasználó jogosúlt új adatbázisok vagy új felhasználók létrehozására, felesleges ha a szolgáltatás hostolt formában veszik igénybe.
 KeepEmptyIfNoPassword=Hagyja üresen ha a felhasználónak nincs jelszava (az ilyet jobb elkerülni)
 SaveConfigurationFile=Értékek mentése
diff --git a/htdocs/langs/hu_HU/main.lang b/htdocs/langs/hu_HU/main.lang
index 224a44673a6..a4d9fd2f936 100644
--- a/htdocs/langs/hu_HU/main.lang
+++ b/htdocs/langs/hu_HU/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=A fájl sikeresen fel lett töltve
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=Egy fájl ki lett választva csatolásra, de még nincs feltöltve. Kattintson a "Fájl Csatolása" gombra.
 NbOfEntries=Bejegyzések száma
 GoToWikiHelpPage=Online súgó olvasása (Internet hozzáférés szükséges)
@@ -196,6 +197,7 @@ Parameter=Paraméter
 Parameters=Paraméterek
 Value=Érték
 PersonalValue=Személyes Érték
+NewObject=New %s
 NewValue=Új Érték
 CurrentValue=Jelenlegi Érték
 Code=Kód
@@ -441,6 +443,7 @@ Reporting=Jelentés
 Reportings=Jelentés
 Draft=Piszkozat
 Drafts=Piszkozatok
+StatusInterInvoiced=
 Validated=Hitelesítve
 Opened=Nyitott
 New=Új
@@ -727,6 +730,7 @@ SetBankAccount=Bankszámla megadása
 AccountCurrency=Számla pénzneme
 ViewPrivateNote=Megjegyzések
 XMoreLines=%s sor rejtve maradt
+ShowMoreLines=Show more lines
 PublicUrl=Nyílvános URL
 AddBox=Add box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=Elutasít
 Denied=Elutasítva
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Nem
 Genderman=Férfi
diff --git a/htdocs/langs/hu_HU/modulebuilder.lang b/htdocs/langs/hu_HU/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/hu_HU/modulebuilder.lang
+++ b/htdocs/langs/hu_HU/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/hu_HU/multicurrency.lang b/htdocs/langs/hu_HU/multicurrency.lang
index b8ed714c199..a529b8b73bb 100644
--- a/htdocs/langs/hu_HU/multicurrency.lang
+++ b/htdocs/langs/hu_HU/multicurrency.lang
@@ -4,7 +4,8 @@ ErrorAddRateFail=Error in added rate
 ErrorAddCurrencyFail=Error in added currency
 ErrorDeleteCurrencyFail=Error delete fail
 multicurrency_syncronize_error=Synchronisation error: %s
-multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate)
+MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate
+multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate)
 CurrencyLayerAccount=CurrencyLayer API
 CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality<br />Get your <b>API key</b><br />If you use a free account you can't change the <b>currency source</b> (USD by default)<br />But if your main currency isn't USD you can use the <b>alternate currency source</b> to force you main currency<br /><br />You are limited at 1000 synchronizations per month
 multicurrency_appId=API key
diff --git a/htdocs/langs/hu_HU/orders.lang b/htdocs/langs/hu_HU/orders.lang
index 10c3129a255..8c71586d3bd 100644
--- a/htdocs/langs/hu_HU/orders.lang
+++ b/htdocs/langs/hu_HU/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Beszállítói rendelések
 OrderCard=Megrendelőlap
 OrderId=Megrendelés azonosító
 Order=Megrendelés
+PdfOrderTitle=Megrendelés
 Orders=Megrendelések
 OrderLine=Rendelés vonal
 OrderDate=Megrendelés dátuma
diff --git a/htdocs/langs/hu_HU/other.lang b/htdocs/langs/hu_HU/other.lang
index f31707938d1..39f6697d47f 100644
--- a/htdocs/langs/hu_HU/other.lang
+++ b/htdocs/langs/hu_HU/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/hu_HU/propal.lang b/htdocs/langs/hu_HU/propal.lang
index 62eadf4b4fd..07f2e39544d 100644
--- a/htdocs/langs/hu_HU/propal.lang
+++ b/htdocs/langs/hu_HU/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Készítsen üzleti ajánlatot
 ProposalsOpened=Open commercial proposals
 Prop=Üzleti ajánlatok
 CommercialProposal=Üzleti ajánlat
+PdfCommercialProposalTitle=Üzleti ajánlat
 ProposalCard=Javaslat kártya
 NewProp=Új kereskedelmi javaslat
 NewPropal=Új javaslat
diff --git a/htdocs/langs/hu_HU/salaries.lang b/htdocs/langs/hu_HU/salaries.lang
index 522bf0a65d7..7e0c80d3380 100644
--- a/htdocs/langs/hu_HU/salaries.lang
+++ b/htdocs/langs/hu_HU/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Salary
 Salaries=Salaries
diff --git a/htdocs/langs/hu_HU/website.lang b/htdocs/langs/hu_HU/website.lang
index a08625214ee..bf9583ace3a 100644
--- a/htdocs/langs/hu_HU/website.lang
+++ b/htdocs/langs/hu_HU/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=A honlap törlése
 ConfirmDeleteWebsite=Biztos benne, hogy le akarja törölni a honlapot? Az összes oldal és tartalom el fog veszni!
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/hu_HU/workflow.lang b/htdocs/langs/hu_HU/workflow.lang
index 66a73578b56..2a858eb89a9 100644
--- a/htdocs/langs/hu_HU/workflow.lang
+++ b/htdocs/langs/hu_HU/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Workflow modul beállítása
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/id_ID/accountancy.lang b/htdocs/langs/id_ID/accountancy.lang
index c39776372ae..1462537a500 100644
--- a/htdocs/langs/id_ID/accountancy.lang
+++ b/htdocs/langs/id_ID/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Saldo akun
-
+ObjectsRef=Source object ref
 CAHTF=Total pembelian pemasok sebelum pajak
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=Daftar akun-akun akunting
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Kesalahan, Anda tidak dapat menghapus akun akuntansi ini karena digunakan
-MvtNotCorrectlyBalanced=Perpindahan tidak benar seimbang . Kredit = %s . Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Code
 Nature=Nature
 AccountingJournalType1=Various operation
 AccountingJournalType2=Sales
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Ekspor
-Export=Ekspor
 ExportDraftJournal=Export draft journal
 Modelcsv=Model Ekspor
 OptionsDeactivatedForThisExportModel=Untuk model ekspor ini , opsi dinonaktifkan
diff --git a/htdocs/langs/id_ID/admin.lang b/htdocs/langs/id_ID/admin.lang
index 6fbbdb0eced..cd226dca547 100644
--- a/htdocs/langs/id_ID/admin.lang
+++ b/htdocs/langs/id_ID/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Daerah Alat-Alat Sistem
 SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for.
 Purge=Perbersihan
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory <b>%s</b>. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted.
 PurgeRunNow=Bersihkan sekarang
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> files or directories deleted.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Purge all security events
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Generate backup
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Versi Dolibarr saat ini
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Mantis integration
-Module1400Name=Akunting
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Module to offer an online payment page by credit card with Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Read discounts
 Permission402=Create/modify discounts
 Permission403=Validate discounts
 Permission404=Delete discounts
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
-PreviousDumpFiles=Available database backup dump files
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=First day of week
 RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user <b>%s</b> or you must add -W option at end of command line to provide <b>%s</b> password.
diff --git a/htdocs/langs/id_ID/banks.lang b/htdocs/langs/id_ID/banks.lang
index 9a9c493bb49..f520bd86643 100644
--- a/htdocs/langs/id_ID/banks.lang
+++ b/htdocs/langs/id_ID/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/id_ID/bills.lang b/htdocs/langs/id_ID/bills.lang
index 90a2cc650e9..d0e821f1973 100644
--- a/htdocs/langs/id_ID/bills.lang
+++ b/htdocs/langs/id_ID/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Kartu tagihan
 PredefinedInvoices=Tagihan tetap sementara
 Invoice=Tagihan
+PdfInvoiceTitle=Tagihan
 Invoices=Tagihan - tagihan
 InvoiceLine=Baris tagihan
 InvoiceCustomer=Tagihan pelanggan
diff --git a/htdocs/langs/id_ID/compta.lang b/htdocs/langs/id_ID/compta.lang
index 65bbb736dc8..aefd4dbb5f5 100644
--- a/htdocs/langs/id_ID/compta.lang
+++ b/htdocs/langs/id_ID/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/id_ID/errors.lang b/htdocs/langs/id_ID/errors.lang
index feada2d1b5a..853a34b4bb4 100644
--- a/htdocs/langs/id_ID/errors.lang
+++ b/htdocs/langs/id_ID/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/id_ID/install.lang b/htdocs/langs/id_ID/install.lang
index 650d19c5c3b..3e848bd60f8 100644
--- a/htdocs/langs/id_ID/install.lang
+++ b/htdocs/langs/id_ID/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner.
 PasswordAgain=Ketikkan ulang kata kunci
 AdminPassword=Password for Dolibarr database owner.
 CreateDatabase=Create database
-CreateUser=Create owner
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Database server - Superuser access
 CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
-CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
 KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
 SaveConfigurationFile=Save values
diff --git a/htdocs/langs/id_ID/main.lang b/htdocs/langs/id_ID/main.lang
index edb07272adb..d3122044f1a 100644
--- a/htdocs/langs/id_ID/main.lang
+++ b/htdocs/langs/id_ID/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=The file was successfully uploaded
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
 NbOfEntries=Nb of entries
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parameter
 Parameters=Parameters
 Value=Value
 PersonalValue=Personal value
+NewObject=New %s
 NewValue=New value
 CurrentValue=Current value
 Code=Code
@@ -441,6 +443,7 @@ Reporting=Reporting
 Reportings=Reporting
 Draft=Konsep
 Drafts=Drafts
+StatusInterInvoiced=
 Validated=Divalidasi
 Opened=Open
 New=New
@@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account
 AccountCurrency=Account Currency
 ViewPrivateNote=View notes
 XMoreLines=%s line(s) hidden
+ShowMoreLines=Show more lines
 PublicUrl=Public URL
 AddBox=Add box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gender
 Genderman=Man
diff --git a/htdocs/langs/id_ID/modulebuilder.lang b/htdocs/langs/id_ID/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/id_ID/modulebuilder.lang
+++ b/htdocs/langs/id_ID/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/id_ID/orders.lang b/htdocs/langs/id_ID/orders.lang
index 2e3c8444a35..aa7aa052cfb 100644
--- a/htdocs/langs/id_ID/orders.lang
+++ b/htdocs/langs/id_ID/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area
 OrderCard=Order card
 OrderId=Order Id
 Order=Order
+PdfOrderTitle=Order
 Orders=Orders
 OrderLine=Order line
 OrderDate=Tanggal Pemesanan
diff --git a/htdocs/langs/id_ID/other.lang b/htdocs/langs/id_ID/other.lang
index 4b742a40a6e..7c0fd283d2b 100644
--- a/htdocs/langs/id_ID/other.lang
+++ b/htdocs/langs/id_ID/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/id_ID/propal.lang b/htdocs/langs/id_ID/propal.lang
index 8502ce5e775..712ae22817f 100644
--- a/htdocs/langs/id_ID/propal.lang
+++ b/htdocs/langs/id_ID/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals
 ProposalsOpened=Open commercial proposals
 Prop=Commercial proposals
 CommercialProposal=Commercial proposal
+PdfCommercialProposalTitle=Commercial proposal
 ProposalCard=Proposal card
 NewProp=New commercial proposal
 NewPropal=New proposal
diff --git a/htdocs/langs/id_ID/salaries.lang b/htdocs/langs/id_ID/salaries.lang
index 1810ca6becf..52d9b4b190b 100644
--- a/htdocs/langs/id_ID/salaries.lang
+++ b/htdocs/langs/id_ID/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Gaji
 Salaries=Gaji
diff --git a/htdocs/langs/id_ID/website.lang b/htdocs/langs/id_ID/website.lang
index b3b05ee6cc9..98577e0de5e 100644
--- a/htdocs/langs/id_ID/website.lang
+++ b/htdocs/langs/id_ID/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/id_ID/workflow.lang b/htdocs/langs/id_ID/workflow.lang
index 54246856e9b..8021fb9b198 100644
--- a/htdocs/langs/id_ID/workflow.lang
+++ b/htdocs/langs/id_ID/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Workflow module setup
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/is_IS/accountancy.lang b/htdocs/langs/is_IS/accountancy.lang
index 1957b97071b..e756d019ed9 100644
--- a/htdocs/langs/is_IS/accountancy.lang
+++ b/htdocs/langs/is_IS/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Code
 Nature=Náttúra
 AccountingJournalType1=Various operation
 AccountingJournalType2=Velta
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exports
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model of export
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/is_IS/admin.lang b/htdocs/langs/is_IS/admin.lang
index 4f86f10e466..5eae95f6ebe 100644
--- a/htdocs/langs/is_IS/admin.lang
+++ b/htdocs/langs/is_IS/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Kerfi verkfæri area
 SystemToolsAreaDesc=Þetta svæði býður upp á gjöf lögun. Notaðu valmyndina til að velja aðgerðina sem þú ert að leita að.
 Purge=Purge
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Eyða öllum skrám í <b>möppunni %s .</b> Tímabundin skrá en einnig skrár sem viðhengi til þættir (þriðja aðila, reikningum, ...) og hlaða inn á ECM mát verður eytt.
 PurgeRunNow=Hreinsa nú
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b> %s </b> skrá eða framkvæmdarstjóra eytt.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Hreinsa alla viðburði
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Búa til öryggisafrit
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr núverandi útgáfa
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Mantis sameining
-Module1400Name=Bókhald
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Module til að bjóða upp á netinu greiðslu síðu með kreditkorti með Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Lesa afsláttur
 Permission402=Búa til / breyta afsláttur
 Permission403=Staðfesta afsláttur
 Permission404=Eyða afsláttur
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= Þessi regla er þvinguð <b>til %s </b> með virkt mát
-PreviousDumpFiles=Laus gagnasafn afrit afrita skrár
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=Fyrsti dagur vikunnar
 RunningUpdateProcessMayBeRequired=Running the uppfærsla aðferð virðist vera krafist (Programs útgáfa %s  er frábrugðið gagnasafn útgáfa %s )
 YouMustRunCommandFromCommandLineAfterLoginToUser=Þú verður að keyra þessa skipun frá stjórn lína eftir innskráningu í skel með <b>notandann %s .</b>
diff --git a/htdocs/langs/is_IS/banks.lang b/htdocs/langs/is_IS/banks.lang
index de9adb84a95..2b4983a642b 100644
--- a/htdocs/langs/is_IS/banks.lang
+++ b/htdocs/langs/is_IS/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/is_IS/bills.lang b/htdocs/langs/is_IS/bills.lang
index 7f4a8b56b1c..fd30bb8da4f 100644
--- a/htdocs/langs/is_IS/bills.lang
+++ b/htdocs/langs/is_IS/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Invoice kort
 PredefinedInvoices=Fyrirfram ákveðnum Reikningar
 Invoice=Invoice
+PdfInvoiceTitle=Invoice
 Invoices=Kvittanir
 InvoiceLine=Invoice línu
 InvoiceCustomer=Viðskiptavinur Reikningar
diff --git a/htdocs/langs/is_IS/compta.lang b/htdocs/langs/is_IS/compta.lang
index 1882883d39c..e117e50e495 100644
--- a/htdocs/langs/is_IS/compta.lang
+++ b/htdocs/langs/is_IS/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/is_IS/errors.lang b/htdocs/langs/is_IS/errors.lang
index 67c301be52a..349e87d8d65 100644
--- a/htdocs/langs/is_IS/errors.lang
+++ b/htdocs/langs/is_IS/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/is_IS/install.lang b/htdocs/langs/is_IS/install.lang
index bb5119260d1..9b1373d7d05 100644
--- a/htdocs/langs/is_IS/install.lang
+++ b/htdocs/langs/is_IS/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Innskráning fyrir Dolibarr gagnasafn eigandi.
 PasswordAgain=Sláðu lykilorðið inn aftur í annað sinn
 AdminPassword=Lykilorð fyrir Dolibarr gagnasafn eigandi.
 CreateDatabase=Búa til gagnasafn
-CreateUser=Búa til eiganda
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Gagnasafn framreiðslumaður - Ofurpaur aðgang
 CheckToCreateDatabase=Hakaðu í reitinn ef gagnagrunnur er ekki til og því þarf að skapa. <br> Í þessum tilfellum verður þú að fylla tenging / lykilorð til Ofurpaur reikning neðst á þessari síðu.
-CheckToCreateUser=Hakaðu í reitinn ef gagnasafn eigandi er ekki til og því þarf að skapa. <br> Í þessum tilfellum verður þú að velja notandanafn og lykilorð og einnig fylla tenging / lykilorð til að Ofurpaur reikning neðst á þessari síðu. Ef þessi kassi er valið, eigandi gagnagrunn og lykilorð hans verður að vera til.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Innskráning á notanda leyft að búa til nýja gagnagrunna eða nýr notandi, gagnslaus ef gagnasafninu og gagnasafn innskráningu þegar til (eins og þegar þú ert haldin af vefþjónusta fyrir hendi).
 KeepEmptyIfNoPassword=Leyfi tómur ef notandi hefur ekki aðgangsorð (forðast þetta)
 SaveConfigurationFile=Vista gildi
diff --git a/htdocs/langs/is_IS/main.lang b/htdocs/langs/is_IS/main.lang
index e04359d8154..35498966464 100644
--- a/htdocs/langs/is_IS/main.lang
+++ b/htdocs/langs/is_IS/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=Skráin tókst að hlaða inn
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=A-skrá er valin fyrir viðhengi en var ekki enn upp. Smelltu á "Hengja skrá" fyrir þessu.
 NbOfEntries=ATH færslna
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Viðfang
 Parameters=Breytur
 Value=Gildi
 PersonalValue=Starfsfólk gildi
+NewObject=New %s
 NewValue=Nýtt gildi
 CurrentValue=Núverandi gildi
 Code=Code
@@ -441,6 +443,7 @@ Reporting=Skýrslur
 Reportings=Skýrslur
 Draft=Víxill
 Drafts=Drög
+StatusInterInvoiced=
 Validated=Staðfestar
 Opened=Opnaðu
 New=New
@@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account
 AccountCurrency=Account Currency
 ViewPrivateNote=View notes
 XMoreLines=%s line(s) hidden
+ShowMoreLines=Show more lines
 PublicUrl=Public URL
 AddBox=Add box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gender
 Genderman=Man
diff --git a/htdocs/langs/is_IS/modulebuilder.lang b/htdocs/langs/is_IS/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/is_IS/modulebuilder.lang
+++ b/htdocs/langs/is_IS/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/is_IS/orders.lang b/htdocs/langs/is_IS/orders.lang
index 50ce943e5e1..3768251619f 100644
--- a/htdocs/langs/is_IS/orders.lang
+++ b/htdocs/langs/is_IS/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Birgjar pantanir area
 OrderCard=Panta kort
 OrderId=Order Id
 Order=Panta
+PdfOrderTitle=Panta
 Orders=Pantanir
 OrderLine=Pöntunarlína
 OrderDate=Panta dagsetningu
diff --git a/htdocs/langs/is_IS/other.lang b/htdocs/langs/is_IS/other.lang
index e833def6b78..b566f598687 100644
--- a/htdocs/langs/is_IS/other.lang
+++ b/htdocs/langs/is_IS/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/is_IS/propal.lang b/htdocs/langs/is_IS/propal.lang
index 6c9569b9f13..34bd8edbebd 100644
--- a/htdocs/langs/is_IS/propal.lang
+++ b/htdocs/langs/is_IS/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Drög að auglýsing tillögur
 ProposalsOpened=Open commercial proposals
 Prop=Auglýsing tillögur
 CommercialProposal=Auglýsing tillögu
+PdfCommercialProposalTitle=Auglýsing tillögu
 ProposalCard=Tillaga kort
 NewProp=Ný auglýsing tillögu
 NewPropal=Ný tillaga
diff --git a/htdocs/langs/is_IS/salaries.lang b/htdocs/langs/is_IS/salaries.lang
index 522bf0a65d7..7e0c80d3380 100644
--- a/htdocs/langs/is_IS/salaries.lang
+++ b/htdocs/langs/is_IS/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Salary
 Salaries=Salaries
diff --git a/htdocs/langs/is_IS/website.lang b/htdocs/langs/is_IS/website.lang
index b3b05ee6cc9..98577e0de5e 100644
--- a/htdocs/langs/is_IS/website.lang
+++ b/htdocs/langs/is_IS/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/is_IS/workflow.lang b/htdocs/langs/is_IS/workflow.lang
index 2a3bb2db100..0883dfcc71d 100644
--- a/htdocs/langs/is_IS/workflow.lang
+++ b/htdocs/langs/is_IS/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Vinnuflæði mát skipulag
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/it_IT/accountancy.lang b/htdocs/langs/it_IT/accountancy.lang
index 5a25f74299a..0f08b7a8e13 100644
--- a/htdocs/langs/it_IT/accountancy.lang
+++ b/htdocs/langs/it_IT/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Saldo
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Righe di fatture da vincolare
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Movimento non bilanciato correttamente. Credito =%s. Debito =%s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Codice
 Nature=Natura
 AccountingJournalType1=Various operation
 AccountingJournalType2=Vendite
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Esportazioni
-Export=Esportazione
 ExportDraftJournal=Export draft journal
 Modelcsv=Modello di esportazione
 OptionsDeactivatedForThisExportModel=Per questo modello di esportazione, le opzioni sono disattivate
diff --git a/htdocs/langs/it_IT/admin.lang b/htdocs/langs/it_IT/admin.lang
index 91618398a0e..c4ff725990d 100644
--- a/htdocs/langs/it_IT/admin.lang
+++ b/htdocs/langs/it_IT/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Sezione strumenti di gestione del sistema
 SystemToolsAreaDesc=Questa sezione offre funzioni di gestione. Utilizzare il menu per scegliere la funzione che stai cercando.
 Purge=Pulizia
 PurgeAreaDesc=Questa pagina consente di eliminare tutti i file su disco creati da Dolibarr (file temporanei o tutti i file in <b> %s </b>). L'utilizzo di questa funzione non è strettamente necessario.<br> Viene fornita per gli utenti Dolibarr che utilizzano un servizio di hosting che non offre le autorizzazioni per eliminare i file temporanei dai server web.
-PurgeDeleteLogFile=Eliminia il log file <b>%s</b> definito nel modulo Syslog (nessun rischio di perdita di dati)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Elimina tutti i file temporanei (nessun rischio di perdere dati)
 PurgeDeleteTemporaryFilesShort=Cancella fle temporanei
 PurgeDeleteAllFilesInDocumentsDir=Elimina tutti i file nella directory <b> %s </b>. I file temporanei, ma anche file allegati di elementi (terze parti, fatture, ...) saranno cancellati.
 PurgeRunNow=Procedo all'eliminazione
 PurgeNothingToDelete=Nessuna directory o file da eliminare.
 PurgeNDirectoriesDeleted=<b> %s </b> di file o directory eliminati.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Elimina tutti gli eventi di sicurezza
 ConfirmPurgeAuditEvents=Vuoi davvero eliminare tutti gli eventi di sicurezza? Tutti i log di sicurezza verranno cancellati, nessun altro dato verrà rimosso.
 GenerateBackup=Genera il backup
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Installazione del modulo completata. Devi abilitare e configu
 NotExistsDirect=La directory root alternativa non è stata associata ad una directory esistente.<br>
 InfDirAlt=A partire dalla versione 3 è possibile definire una directory root alternativa. Ciò permette di archiviare plugin e template personalizzati nello stesso posto.<br>Basta creare una directory nella root di Dolibarr (per esempio: custom).<br>
 InfDirExample=<br>Poi dichiaralo nel file  <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>. Se queste righe sono commentate con "#", per abilitarle basta rimuovere il carattere "#".
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Versione attuale di Dolibarr
 CallUpdatePage=Vai alla pagina che aggiorna la struttura del database e dati su %s.
 LastStableVersion=Ultima versione stabile
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Integrazione Mantis
-Module1400Name=Contabilità avanzata
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Generazione dei documenti
 Module1520Desc=Mass mail document generation
 Module1780Name=Tag/categorie
@@ -585,7 +584,7 @@ Module50100Desc=Modulo per la creazione di un punto vendita (POS)
 Module50200Name=Paypal
 Module50200Desc=Modulo per offrire il pagamento online con Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Stampa diretta (senza aprire i documenti) tramite l'interfaccia CUPS IPP (la stampante deve essere visibile dal server, e il server deve avere CUPS installato).
 Module55000Name=Sondaggio, Indagine o Votazione
@@ -751,8 +750,10 @@ Permission401=Vedere sconti
 Permission402=Creare/modificare sconti
 Permission403=Convalidare sconti
 Permission404=Eliminare sconti
-Permission510=Read Salaries
-Permission512=Crea/modifica stipendi
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Esporta stipendi
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Ripristinare da un file di archivio (zip file, ad esempio) della ca
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=Importa MySQL
 ForcedToByAModule= Questa regola è impsotata su <b>%s</b> da un modulo attivo
-PreviousDumpFiles=È disponibile il precedente backup del database (dump)
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=Primo giorno della settimana
 RunningUpdateProcessMayBeRequired=Sembra necessario eseguire l'aggiornamento (Il programma è alla versione %s e differisce dalla versione %s del database)
 YouMustRunCommandFromCommandLineAfterLoginToUser=È necessario eseguire questo comando dal riga di comando dopo il login in una shell con l'utente <b>%s</b>.
diff --git a/htdocs/langs/it_IT/banks.lang b/htdocs/langs/it_IT/banks.lang
index eac03717371..e171ccf3187 100644
--- a/htdocs/langs/it_IT/banks.lang
+++ b/htdocs/langs/it_IT/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Assegno restituito e fatture riaperte
 BankAccountModelModule=Modelli di documento per i conti bancari e le casse
 DocumentModelSepaMandate=Modello di documento per i mandati SEPA. Da utilizzare solamente per i paese appartenenti alla CEE
 DocumentModelBan=Template per la stampa delle informazioni relative al BAN
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/it_IT/bills.lang b/htdocs/langs/it_IT/bills.lang
index 163b0cf937c..37eaa448c90 100644
--- a/htdocs/langs/it_IT/bills.lang
+++ b/htdocs/langs/it_IT/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Rettificata da una o più fatture
 CardBill=Scheda fattura
 PredefinedInvoices=Fatture predefinite
 Invoice=Fattura
+PdfInvoiceTitle=Fattura
 Invoices=Fatture
 InvoiceLine=Riga fattura
 InvoiceCustomer=Fattura attiva
diff --git a/htdocs/langs/it_IT/compta.lang b/htdocs/langs/it_IT/compta.lang
index 7c7e389799e..764d3b9a2a3 100644
--- a/htdocs/langs/it_IT/compta.lang
+++ b/htdocs/langs/it_IT/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Codice contabile predefinito per la riscossione dell
 ACCOUNTING_VAT_BUY_ACCOUNT=Codice contabile predefinito per il recupero dell'IVA sugli acquisti (usato se l'IVA non è definita nel dizionario)
 ACCOUNTING_VAT_PAY_ACCOUNT=Codice contabile predefinito per il pagamento dell'IVA
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clonare tassa/contributo
 ConfirmCloneTax=Conferma la clonazione del pagamento tassa/contributo
 CloneTaxForNextMonth=Clona nel mese successivo
diff --git a/htdocs/langs/it_IT/errors.lang b/htdocs/langs/it_IT/errors.lang
index 7f6d02f4920..bc35e2e510b 100644
--- a/htdocs/langs/it_IT/errors.lang
+++ b/htdocs/langs/it_IT/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/it_IT/install.lang b/htdocs/langs/it_IT/install.lang
index 9df8c739036..747f8040a16 100644
--- a/htdocs/langs/it_IT/install.lang
+++ b/htdocs/langs/it_IT/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Login per amministratore del database. Da lasciare vuoto se ci si col
 PasswordAgain=Conferma la password una seconda volta
 AdminPassword=Password per amministratore del database. Da lasciare vuoto se ci si collega in forma anonima
 CreateDatabase=Crea database
-CreateUser=Crea utente
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Accesso superutente al database
 CheckToCreateDatabase=Seleziona questa opzione se il database non esiste e deve essere creato.<br>Sarà necessario indicare login e password dell'account di root in fondo a questa pagina.
-CheckToCreateUser=Seleziona questa opzione se l'utente non esiste e deve essere creato.<br/>In questo caso, è necessario indicare login e password dell'account di root in fondo a questa pagina.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Login utente con permesso di creare nuovi database o nuovi utenti. Non è necessario se il database esiste già.
 KeepEmptyIfNoPassword=Lasciare vuoto se l'utente non ha alcuna password (da evitare per motivi di sicurezza)
 SaveConfigurationFile=Salva file
diff --git a/htdocs/langs/it_IT/main.lang b/htdocs/langs/it_IT/main.lang
index 510682bf199..1245ddca45a 100644
--- a/htdocs/langs/it_IT/main.lang
+++ b/htdocs/langs/it_IT/main.lang
@@ -75,7 +75,8 @@ FileRenamed=Il file è stato rinominato con successo
 FileGenerated=Il file è stato generato con successo
 FileSaved=The file was successfully saved
 FileUploaded=Il file è stato caricato con successo
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=Il file selezionato per l'upload non è stato ancora caricato. Clicca su <b>Allega file</b> per farlo
 NbOfEntries=Numero di voci
 GoToWikiHelpPage=Leggi l'aiuto online (è richiesto un collegamento internet)
@@ -196,6 +197,7 @@ Parameter=Parametro
 Parameters=Parametri
 Value=Valore
 PersonalValue=Valore personalizzato
+NewObject=New %s
 NewValue=Nuovo valore
 CurrentValue=Valore attuale
 Code=Codice
@@ -441,6 +443,7 @@ Reporting=Reportistica
 Reportings=Reportistiche
 Draft=Bozza
 Drafts=Bozze
+StatusInterInvoiced=
 Validated=Convalidato
 Opened=Aperto
 New=Nuovo
@@ -727,6 +730,7 @@ SetBankAccount=Definisci un numero di Conto Corrente Bancario
 AccountCurrency=Valuta del conto
 ViewPrivateNote=Vedi note
 XMoreLines=%s linea(e) nascoste
+ShowMoreLines=Show more lines
 PublicUrl=URL pubblico
 AddBox=Aggiungi box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Vai in Home -> Impostazioni -> Società per cambiare il logo o  in Home - Setup -> display per nasconderlo.
 Deny=Rifiuta
 Denied=Rifiutata
+ListOf=List of %s
 ListOfTemplates=Elenco dei modelli
 Gender=Genere
 Genderman=Uomo
diff --git a/htdocs/langs/it_IT/modulebuilder.lang b/htdocs/langs/it_IT/modulebuilder.lang
index 395196b55bc..858a33dda37 100644
--- a/htdocs/langs/it_IT/modulebuilder.lang
+++ b/htdocs/langs/it_IT/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Moduli generati/modificabili trovati: <strong>%s</strong> (vengono rilevati come modificabili quando il file <strong> %s</strong>esiste nella directory principale del modulo).
 NewModule=Nuovo modulo
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Modulo inizializzato
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Inserisci qui le informazioni generali che descrivono il modulo
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=Questa scheda è dedicata a definire le voci di menu fornite dal tuo modulo
 ModuleBuilderDescpermissions=Questa scheda è dedicata a definire le nuove autorizzazione che vuoi fornire con il modulo
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=Questo modulo è stato attivato. Qualsiasi sua modifica può interrompere una funzionalità attiva.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/it_IT/multicurrency.lang b/htdocs/langs/it_IT/multicurrency.lang
index b8ed714c199..a529b8b73bb 100644
--- a/htdocs/langs/it_IT/multicurrency.lang
+++ b/htdocs/langs/it_IT/multicurrency.lang
@@ -4,7 +4,8 @@ ErrorAddRateFail=Error in added rate
 ErrorAddCurrencyFail=Error in added currency
 ErrorDeleteCurrencyFail=Error delete fail
 multicurrency_syncronize_error=Synchronisation error: %s
-multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate)
+MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate
+multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate)
 CurrencyLayerAccount=CurrencyLayer API
 CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality<br />Get your <b>API key</b><br />If you use a free account you can't change the <b>currency source</b> (USD by default)<br />But if your main currency isn't USD you can use the <b>alternate currency source</b> to force you main currency<br /><br />You are limited at 1000 synchronizations per month
 multicurrency_appId=API key
diff --git a/htdocs/langs/it_IT/orders.lang b/htdocs/langs/it_IT/orders.lang
index 672c4dfcdf2..da03aea752c 100644
--- a/htdocs/langs/it_IT/orders.lang
+++ b/htdocs/langs/it_IT/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Area ordini dei fornitori
 OrderCard=Scheda ordine
 OrderId=Identificativo ordine
 Order=Ordine
+PdfOrderTitle=Ordine
 Orders=Ordini
 OrderLine=Riga Ordine
 OrderDate=Data ordine
diff --git a/htdocs/langs/it_IT/other.lang b/htdocs/langs/it_IT/other.lang
index 94bc2f70965..8cea90bfbd8 100644
--- a/htdocs/langs/it_IT/other.lang
+++ b/htdocs/langs/it_IT/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/it_IT/propal.lang b/htdocs/langs/it_IT/propal.lang
index d29182243c0..128478e935c 100644
--- a/htdocs/langs/it_IT/propal.lang
+++ b/htdocs/langs/it_IT/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Bozza di proposte commerciali
 ProposalsOpened=Proposte commerciali aperte
 Prop=Preventivi/Prop. commerciali
 CommercialProposal=Preventivo/Proposta commerciale
+PdfCommercialProposalTitle=Preventivo/Proposta commerciale
 ProposalCard=Proposta di carta
 NewProp=Nuova proposta commerciale
 NewPropal=Nuova proposta
diff --git a/htdocs/langs/it_IT/salaries.lang b/htdocs/langs/it_IT/salaries.lang
index a85e06ebc55..97d80db7f10 100644
--- a/htdocs/langs/it_IT/salaries.lang
+++ b/htdocs/langs/it_IT/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Stipendio
 Salaries=Stipendi
diff --git a/htdocs/langs/it_IT/website.lang b/htdocs/langs/it_IT/website.lang
index c352320dfcf..7389678c646 100644
--- a/htdocs/langs/it_IT/website.lang
+++ b/htdocs/langs/it_IT/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Crea qui tante voci quante il numero di siti ti servono. Vai po
 DeleteWebsite=Cancella sito web
 ConfirmDeleteWebsite=Sei sicuro di vole cancellare questo sito web? Anche tutte le pagine e contenuti saranno cancellati.
 WEBSITE_PAGENAME=Titolo/alias della pagina
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=Indirizzo URL del file CSS esterno
 WEBSITE_CSS_INLINE=Codice CSS
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Libreria media
-EditCss=Modifica stile/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Modifica menu
 EditPageMeta=Modifica metadati
 EditPageContent=Modifica contenuti
 Website=Sito web
-Webpage=Web page
-AddPage=Aggiungi pagina
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=L'anteprima del sito <strong>%s</strong> non è ancora disponibile. Devi prima aggiungere almeno una pagina.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Pagina '%s' del sito %s cancellata
-PageAdded=Pagina '%s' aggiunta
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=Visualizza sito in una nuova scheda
 ViewPageInNewTab=Visualizza pagina in una nuova scheda
 SetAsHomePage=Imposta come homepage
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/it_IT/workflow.lang b/htdocs/langs/it_IT/workflow.lang
index 7c461f30e45..186a02fe32b 100644
--- a/htdocs/langs/it_IT/workflow.lang
+++ b/htdocs/langs/it_IT/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Impostazioni flusso di lavoro
 WorkflowDesc=Questo modulo è progettato per modificare il comportamento di azioni automatiche nell'applicazione. Per impostazione predefinita, il flusso di lavoro è aperto (si possono fare cose nell'ordine che volete). È possibile attivare le azioni automatiche che vi interessano.
 ThereIsNoWorkflowToModify=Non ci sono modifiche del flusso di lavoro disponibili con i moduli attivati.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crea automaticamente un ordine del cliente, dopo una proposta commerciale firmata
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Creare automaticamente una fattura attiva alla firma di una proposta commerciale
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Creare automaticamente una fattura attiva alla convalida del contratto
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Creare automaticamente una fattura attiva alla chiusura dell'ordine cliente
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classifica la proposta commerciale collegata come fatturare quando l'ordine cliente è impostato come pagato
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classifica gli ordini dei clienti "fatturati" quando la fattura viene impostata come pagata
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classifica gli ordini dei clienti da fatturare quando la fattura è validata
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classifica il preventivo come pagato quando la relativa fattura cliente è confermata
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classifica l'ordine come spedito quando la spedizione è confermata e la quantità spedita è la stessa dell'ordine
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Creazione automatica
 AutomaticClassification=Classificazione automatica
diff --git a/htdocs/langs/ja_JP/accountancy.lang b/htdocs/langs/ja_JP/accountancy.lang
index be989d84b1e..7d340996dcc 100644
--- a/htdocs/langs/ja_JP/accountancy.lang
+++ b/htdocs/langs/ja_JP/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=コー​​ド
 Nature=自然
 AccountingJournalType1=Various operation
 AccountingJournalType2=販売
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exports
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model of export
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/ja_JP/admin.lang b/htdocs/langs/ja_JP/admin.lang
index 7c9ac4da083..0dcdddba0dd 100644
--- a/htdocs/langs/ja_JP/admin.lang
+++ b/htdocs/langs/ja_JP/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=システムツールエリア
 SystemToolsAreaDesc=この領域は、管理機能を提供します。あなたが探している機能を選択するメニューを使用します。
 Purge=Purge
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=ディレクトリ<b>%s</b>内のすべてのファイルを削除します。一時ファイルだけでなく、要素にアタッチされた(第三者請求、...)とECMモジュールにアップロードされたデータベースのバックアップダンプファイルが削除されます。
 PurgeRunNow=今パージ
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%sファイル</b>またはディレクトリが削除されました。
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=すべてのセキュリティイベントをパージする
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=バックアップを生成
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr現在のバージョン
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=カマキリ
 Module1200Desc=カマキリの統合
-Module1400Name=会計
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=ペイパル
 Module50200Desc=Paypalとクレジットカードによるオンライン決済のページを提供するモジュール
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=割引を読む
 Permission402=割引を作成/変更
 Permission403=割引を検証する
 Permission404=割引を削除します。
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= このルールがアクティブ化モジュールによって<b>%s</b>に強制されます。
-PreviousDumpFiles=使用可能なデータベース·バックアップ·ダンプ·ファイル
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=週の最初の日
 RunningUpdateProcessMayBeRequired=アップグレードプロセスを実行する(プログラムバージョン%sは、データベースのバージョン%sとは異なります)が必要と思われる
 YouMustRunCommandFromCommandLineAfterLoginToUser=あなたは、ユーザ<b>%s、</b>シェルへのログイン後にコマンドラインからこのコマンドを実行する必要がありますか、追加する必要があります-Wオプションをコマンドラインの末尾に<b>%s</b>パスワード<b>を</b>提供します。
diff --git a/htdocs/langs/ja_JP/banks.lang b/htdocs/langs/ja_JP/banks.lang
index 8c3b589249b..c53384ecdde 100644
--- a/htdocs/langs/ja_JP/banks.lang
+++ b/htdocs/langs/ja_JP/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/ja_JP/bills.lang b/htdocs/langs/ja_JP/bills.lang
index 6a8c56531e6..70ec763e7f3 100644
--- a/htdocs/langs/ja_JP/bills.lang
+++ b/htdocs/langs/ja_JP/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=請求書カード
 PredefinedInvoices=事前に定義された請求書
 Invoice=請求書
+PdfInvoiceTitle=請求書
 Invoices=請求書
 InvoiceLine=請求書の行
 InvoiceCustomer=得意先請求書
diff --git a/htdocs/langs/ja_JP/compta.lang b/htdocs/langs/ja_JP/compta.lang
index 4d1d4ae77ac..0d14f8c89f1 100644
--- a/htdocs/langs/ja_JP/compta.lang
+++ b/htdocs/langs/ja_JP/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/ja_JP/errors.lang b/htdocs/langs/ja_JP/errors.lang
index 9f88ac112e1..9a18e016e66 100644
--- a/htdocs/langs/ja_JP/errors.lang
+++ b/htdocs/langs/ja_JP/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/ja_JP/install.lang b/htdocs/langs/ja_JP/install.lang
index 2b7e0da9f7a..631be2fe2b3 100644
--- a/htdocs/langs/ja_JP/install.lang
+++ b/htdocs/langs/ja_JP/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Dolibarrデータベース所有者のログイン。
 PasswordAgain=もう一度パスワードを再入力
 AdminPassword=Dolibarrデータベースの所有者のパスワード。
 CreateDatabase=データベースを作成します。
-CreateUser=所有者を作成します。
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=データベースサーバ - スーパーユーザーのアクセス
 CheckToCreateDatabase=データベースが存在しない場合はチェックボックスをオンにして作成する必要があります。 <br>このケースでは、このページの下部にスーパーユーザアカウントのログイン/パスワードを入力する必要があります。
-CheckToCreateUser=データベースの所有者が存在しない場合はチェックボックスをオンにして作成する必要があります。 <br>このケースでは、そのログイン名とパスワードを選択しても、ログイン/このページの下部にスーパーユーザーアカウント用のパスワードを入力する必要があります。このボックスがチェックされていない場合、所有者のデータベースとそのパスワードが存在する必要があります。
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=あなたのデータベースおよびデータベースのログインが既に存在する場合(あなたがウェブホスティングプロバイダによってホストされているときのように)役に立たない、新しいデータベースまたは新しいユーザを作成することを禁止するユーザのログイン。
 KeepEmptyIfNoPassword=ユーザーがパスワードを持っていない場合(これを避けるため)を空のままに
 SaveConfigurationFile=値を保存
diff --git a/htdocs/langs/ja_JP/main.lang b/htdocs/langs/ja_JP/main.lang
index cec9b26293f..ceebaef98c9 100644
--- a/htdocs/langs/ja_JP/main.lang
+++ b/htdocs/langs/ja_JP/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=ファイルが正常にアップロードされました
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=ファイルが添付ファイルが選択されているが、まだアップロードされませんでした。このために &quot;添付ファイル&quot;をクリックしてください。
 NbOfEntries=エントリのNb
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=パラメーター
 Parameters=パラメータ
 Value=値
 PersonalValue=個人的価値
+NewObject=New %s
 NewValue=新しい値
 CurrentValue=電流値
 Code=コー​​ド
@@ -441,6 +443,7 @@ Reporting=報告
 Reportings=報告
 Draft=ドラフト
 Drafts=ドラフト
+StatusInterInvoiced=
 Validated=検証
 Opened=開く
 New=新しい
@@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account
 AccountCurrency=Account Currency
 ViewPrivateNote=View notes
 XMoreLines=%s line(s) hidden
+ShowMoreLines=Show more lines
 PublicUrl=Public URL
 AddBox=Add box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gender
 Genderman=Man
diff --git a/htdocs/langs/ja_JP/modulebuilder.lang b/htdocs/langs/ja_JP/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/ja_JP/modulebuilder.lang
+++ b/htdocs/langs/ja_JP/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/ja_JP/orders.lang b/htdocs/langs/ja_JP/orders.lang
index 2f94e595440..e1840a8a4c2 100644
--- a/htdocs/langs/ja_JP/orders.lang
+++ b/htdocs/langs/ja_JP/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=仕入先の受注エリア
 OrderCard=注文カード
 OrderId=Order Id
 Order=オーダー
+PdfOrderTitle=オーダー
 Orders=受注
 OrderLine=注文明細行
 OrderDate=注文日
diff --git a/htdocs/langs/ja_JP/other.lang b/htdocs/langs/ja_JP/other.lang
index c850750651f..4047253b30b 100644
--- a/htdocs/langs/ja_JP/other.lang
+++ b/htdocs/langs/ja_JP/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/ja_JP/propal.lang b/htdocs/langs/ja_JP/propal.lang
index fdbfa32a8d3..97c0f37bf01 100644
--- a/htdocs/langs/ja_JP/propal.lang
+++ b/htdocs/langs/ja_JP/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=ドラフト商業の提案
 ProposalsOpened=Open commercial proposals
 Prop=商用の提案
 CommercialProposal=商業的提案
+PdfCommercialProposalTitle=商業的提案
 ProposalCard=提案カード
 NewProp=新しい商業提案
 NewPropal=新たな提案
diff --git a/htdocs/langs/ja_JP/salaries.lang b/htdocs/langs/ja_JP/salaries.lang
index 522bf0a65d7..7e0c80d3380 100644
--- a/htdocs/langs/ja_JP/salaries.lang
+++ b/htdocs/langs/ja_JP/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Salary
 Salaries=Salaries
diff --git a/htdocs/langs/ja_JP/website.lang b/htdocs/langs/ja_JP/website.lang
index 408fce2ec28..3069557f845 100644
--- a/htdocs/langs/ja_JP/website.lang
+++ b/htdocs/langs/ja_JP/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=ウェブサイトを削除
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=ウェブサイト
-Webpage=Web page
-AddPage=ページの追加
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=ホームページに設定する
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/ja_JP/workflow.lang b/htdocs/langs/ja_JP/workflow.lang
index cd30eb6de7a..4ed1b10cc51 100644
--- a/htdocs/langs/ja_JP/workflow.lang
+++ b/htdocs/langs/ja_JP/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=ワークフローモジュールのセットアップ
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/ka_GE/accountancy.lang b/htdocs/langs/ka_GE/accountancy.lang
index d239f259a94..a7176d2e55f 100644
--- a/htdocs/langs/ka_GE/accountancy.lang
+++ b/htdocs/langs/ka_GE/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Code
 Nature=Nature
 AccountingJournalType1=Various operation
 AccountingJournalType2=Sales
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exports
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model of export
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/ka_GE/admin.lang b/htdocs/langs/ka_GE/admin.lang
index a443d04f35d..8dba7af0e0b 100644
--- a/htdocs/langs/ka_GE/admin.lang
+++ b/htdocs/langs/ka_GE/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=System tools area
 SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for.
 Purge=Purge
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory <b>%s</b>. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted.
 PurgeRunNow=Purge now
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> files or directories deleted.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Purge all security events
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Generate backup
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr current version
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Mantis integration
-Module1400Name=Accounting
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Module to offer an online payment page by credit card with Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Read discounts
 Permission402=Create/modify discounts
 Permission403=Validate discounts
 Permission404=Delete discounts
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
-PreviousDumpFiles=Available database backup dump files
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=First day of week
 RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user <b>%s</b> or you must add -W option at end of command line to provide <b>%s</b> password.
diff --git a/htdocs/langs/ka_GE/banks.lang b/htdocs/langs/ka_GE/banks.lang
index ba42f9a4c83..9bce7b9e29a 100644
--- a/htdocs/langs/ka_GE/banks.lang
+++ b/htdocs/langs/ka_GE/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/ka_GE/bills.lang b/htdocs/langs/ka_GE/bills.lang
index 1e83ba9b2d1..6bcd2464c1c 100644
--- a/htdocs/langs/ka_GE/bills.lang
+++ b/htdocs/langs/ka_GE/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Invoice card
 PredefinedInvoices=Predefined Invoices
 Invoice=Invoice
+PdfInvoiceTitle=Invoice
 Invoices=Invoices
 InvoiceLine=Invoice line
 InvoiceCustomer=Customer invoice
diff --git a/htdocs/langs/ka_GE/compta.lang b/htdocs/langs/ka_GE/compta.lang
index 94a3bd671ef..f8b5b683cb8 100644
--- a/htdocs/langs/ka_GE/compta.lang
+++ b/htdocs/langs/ka_GE/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/ka_GE/errors.lang b/htdocs/langs/ka_GE/errors.lang
index feada2d1b5a..853a34b4bb4 100644
--- a/htdocs/langs/ka_GE/errors.lang
+++ b/htdocs/langs/ka_GE/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/ka_GE/install.lang b/htdocs/langs/ka_GE/install.lang
index a3533a31277..5b6ba06e78a 100644
--- a/htdocs/langs/ka_GE/install.lang
+++ b/htdocs/langs/ka_GE/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner.
 PasswordAgain=Retype password a second time
 AdminPassword=Password for Dolibarr database owner.
 CreateDatabase=Create database
-CreateUser=Create owner
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Database server - Superuser access
 CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
-CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
 KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
 SaveConfigurationFile=Save values
diff --git a/htdocs/langs/ka_GE/main.lang b/htdocs/langs/ka_GE/main.lang
index 3401829afa2..ec019cbe3bf 100644
--- a/htdocs/langs/ka_GE/main.lang
+++ b/htdocs/langs/ka_GE/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=The file was successfully uploaded
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
 NbOfEntries=Nb of entries
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parameter
 Parameters=Parameters
 Value=Value
 PersonalValue=Personal value
+NewObject=New %s
 NewValue=New value
 CurrentValue=Current value
 Code=Code
@@ -441,6 +443,7 @@ Reporting=Reporting
 Reportings=Reporting
 Draft=Draft
 Drafts=Drafts
+StatusInterInvoiced=
 Validated=Validated
 Opened=Open
 New=New
@@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account
 AccountCurrency=Account Currency
 ViewPrivateNote=View notes
 XMoreLines=%s line(s) hidden
+ShowMoreLines=Show more lines
 PublicUrl=Public URL
 AddBox=Add box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gender
 Genderman=Man
diff --git a/htdocs/langs/ka_GE/modulebuilder.lang b/htdocs/langs/ka_GE/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/ka_GE/modulebuilder.lang
+++ b/htdocs/langs/ka_GE/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/ka_GE/orders.lang b/htdocs/langs/ka_GE/orders.lang
index 331e3b49d3e..0c59b4f4ada 100644
--- a/htdocs/langs/ka_GE/orders.lang
+++ b/htdocs/langs/ka_GE/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area
 OrderCard=Order card
 OrderId=Order Id
 Order=Order
+PdfOrderTitle=Order
 Orders=Orders
 OrderLine=Order line
 OrderDate=Order date
diff --git a/htdocs/langs/ka_GE/other.lang b/htdocs/langs/ka_GE/other.lang
index e15d490c0f2..e519f7af405 100644
--- a/htdocs/langs/ka_GE/other.lang
+++ b/htdocs/langs/ka_GE/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/ka_GE/propal.lang b/htdocs/langs/ka_GE/propal.lang
index 3fdb379c5a2..271fb44ac40 100644
--- a/htdocs/langs/ka_GE/propal.lang
+++ b/htdocs/langs/ka_GE/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals
 ProposalsOpened=Open commercial proposals
 Prop=Commercial proposals
 CommercialProposal=Commercial proposal
+PdfCommercialProposalTitle=Commercial proposal
 ProposalCard=Proposal card
 NewProp=New commercial proposal
 NewPropal=New proposal
diff --git a/htdocs/langs/ka_GE/salaries.lang b/htdocs/langs/ka_GE/salaries.lang
index 522bf0a65d7..7e0c80d3380 100644
--- a/htdocs/langs/ka_GE/salaries.lang
+++ b/htdocs/langs/ka_GE/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Salary
 Salaries=Salaries
diff --git a/htdocs/langs/ka_GE/website.lang b/htdocs/langs/ka_GE/website.lang
index b3b05ee6cc9..98577e0de5e 100644
--- a/htdocs/langs/ka_GE/website.lang
+++ b/htdocs/langs/ka_GE/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/ka_GE/workflow.lang b/htdocs/langs/ka_GE/workflow.lang
index 54246856e9b..8021fb9b198 100644
--- a/htdocs/langs/ka_GE/workflow.lang
+++ b/htdocs/langs/ka_GE/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Workflow module setup
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/km_KH/accountancy.lang b/htdocs/langs/km_KH/accountancy.lang
index d239f259a94..a7176d2e55f 100644
--- a/htdocs/langs/km_KH/accountancy.lang
+++ b/htdocs/langs/km_KH/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Code
 Nature=Nature
 AccountingJournalType1=Various operation
 AccountingJournalType2=Sales
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exports
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model of export
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/km_KH/admin.lang b/htdocs/langs/km_KH/admin.lang
index a443d04f35d..8dba7af0e0b 100644
--- a/htdocs/langs/km_KH/admin.lang
+++ b/htdocs/langs/km_KH/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=System tools area
 SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for.
 Purge=Purge
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory <b>%s</b>. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted.
 PurgeRunNow=Purge now
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> files or directories deleted.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Purge all security events
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Generate backup
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr current version
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Mantis integration
-Module1400Name=Accounting
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Module to offer an online payment page by credit card with Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Read discounts
 Permission402=Create/modify discounts
 Permission403=Validate discounts
 Permission404=Delete discounts
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
-PreviousDumpFiles=Available database backup dump files
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=First day of week
 RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user <b>%s</b> or you must add -W option at end of command line to provide <b>%s</b> password.
diff --git a/htdocs/langs/km_KH/banks.lang b/htdocs/langs/km_KH/banks.lang
index ba42f9a4c83..9bce7b9e29a 100644
--- a/htdocs/langs/km_KH/banks.lang
+++ b/htdocs/langs/km_KH/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/km_KH/bills.lang b/htdocs/langs/km_KH/bills.lang
index 1e83ba9b2d1..6bcd2464c1c 100644
--- a/htdocs/langs/km_KH/bills.lang
+++ b/htdocs/langs/km_KH/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Invoice card
 PredefinedInvoices=Predefined Invoices
 Invoice=Invoice
+PdfInvoiceTitle=Invoice
 Invoices=Invoices
 InvoiceLine=Invoice line
 InvoiceCustomer=Customer invoice
diff --git a/htdocs/langs/km_KH/compta.lang b/htdocs/langs/km_KH/compta.lang
index 94a3bd671ef..f8b5b683cb8 100644
--- a/htdocs/langs/km_KH/compta.lang
+++ b/htdocs/langs/km_KH/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/km_KH/errors.lang b/htdocs/langs/km_KH/errors.lang
index feada2d1b5a..853a34b4bb4 100644
--- a/htdocs/langs/km_KH/errors.lang
+++ b/htdocs/langs/km_KH/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/km_KH/install.lang b/htdocs/langs/km_KH/install.lang
index a3533a31277..5b6ba06e78a 100644
--- a/htdocs/langs/km_KH/install.lang
+++ b/htdocs/langs/km_KH/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner.
 PasswordAgain=Retype password a second time
 AdminPassword=Password for Dolibarr database owner.
 CreateDatabase=Create database
-CreateUser=Create owner
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Database server - Superuser access
 CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
-CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
 KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
 SaveConfigurationFile=Save values
diff --git a/htdocs/langs/km_KH/main.lang b/htdocs/langs/km_KH/main.lang
index 247568767e1..0bd248e3ef2 100644
--- a/htdocs/langs/km_KH/main.lang
+++ b/htdocs/langs/km_KH/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=The file was successfully uploaded
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
 NbOfEntries=Nb of entries
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parameter
 Parameters=Parameters
 Value=Value
 PersonalValue=Personal value
+NewObject=New %s
 NewValue=New value
 CurrentValue=Current value
 Code=Code
@@ -441,6 +443,7 @@ Reporting=Reporting
 Reportings=Reporting
 Draft=Draft
 Drafts=Drafts
+StatusInterInvoiced=
 Validated=Validated
 Opened=Open
 New=New
@@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account
 AccountCurrency=Account Currency
 ViewPrivateNote=View notes
 XMoreLines=%s line(s) hidden
+ShowMoreLines=Show more lines
 PublicUrl=Public URL
 AddBox=Add box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gender
 Genderman=Man
diff --git a/htdocs/langs/km_KH/modulebuilder.lang b/htdocs/langs/km_KH/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/km_KH/modulebuilder.lang
+++ b/htdocs/langs/km_KH/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/km_KH/orders.lang b/htdocs/langs/km_KH/orders.lang
index 331e3b49d3e..0c59b4f4ada 100644
--- a/htdocs/langs/km_KH/orders.lang
+++ b/htdocs/langs/km_KH/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area
 OrderCard=Order card
 OrderId=Order Id
 Order=Order
+PdfOrderTitle=Order
 Orders=Orders
 OrderLine=Order line
 OrderDate=Order date
diff --git a/htdocs/langs/km_KH/other.lang b/htdocs/langs/km_KH/other.lang
index e15d490c0f2..e519f7af405 100644
--- a/htdocs/langs/km_KH/other.lang
+++ b/htdocs/langs/km_KH/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/km_KH/propal.lang b/htdocs/langs/km_KH/propal.lang
index 3fdb379c5a2..271fb44ac40 100644
--- a/htdocs/langs/km_KH/propal.lang
+++ b/htdocs/langs/km_KH/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals
 ProposalsOpened=Open commercial proposals
 Prop=Commercial proposals
 CommercialProposal=Commercial proposal
+PdfCommercialProposalTitle=Commercial proposal
 ProposalCard=Proposal card
 NewProp=New commercial proposal
 NewPropal=New proposal
diff --git a/htdocs/langs/km_KH/salaries.lang b/htdocs/langs/km_KH/salaries.lang
index 522bf0a65d7..7e0c80d3380 100644
--- a/htdocs/langs/km_KH/salaries.lang
+++ b/htdocs/langs/km_KH/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Salary
 Salaries=Salaries
diff --git a/htdocs/langs/km_KH/website.lang b/htdocs/langs/km_KH/website.lang
index b3b05ee6cc9..98577e0de5e 100644
--- a/htdocs/langs/km_KH/website.lang
+++ b/htdocs/langs/km_KH/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/km_KH/workflow.lang b/htdocs/langs/km_KH/workflow.lang
index 54246856e9b..8021fb9b198 100644
--- a/htdocs/langs/km_KH/workflow.lang
+++ b/htdocs/langs/km_KH/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Workflow module setup
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/kn_IN/accountancy.lang b/htdocs/langs/kn_IN/accountancy.lang
index d239f259a94..a7176d2e55f 100644
--- a/htdocs/langs/kn_IN/accountancy.lang
+++ b/htdocs/langs/kn_IN/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Code
 Nature=Nature
 AccountingJournalType1=Various operation
 AccountingJournalType2=Sales
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exports
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model of export
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/kn_IN/admin.lang b/htdocs/langs/kn_IN/admin.lang
index 517c98b5717..82e187963b4 100644
--- a/htdocs/langs/kn_IN/admin.lang
+++ b/htdocs/langs/kn_IN/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=System tools area
 SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for.
 Purge=Purge
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory <b>%s</b>. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted.
 PurgeRunNow=Purge now
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> files or directories deleted.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Purge all security events
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Generate backup
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr current version
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Mantis integration
-Module1400Name=Accounting
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Module to offer an online payment page by credit card with Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Read discounts
 Permission402=Create/modify discounts
 Permission403=Validate discounts
 Permission404=Delete discounts
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
-PreviousDumpFiles=Available database backup dump files
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=First day of week
 RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user <b>%s</b> or you must add -W option at end of command line to provide <b>%s</b> password.
diff --git a/htdocs/langs/kn_IN/banks.lang b/htdocs/langs/kn_IN/banks.lang
index e0f9cba8719..bb263fb992c 100644
--- a/htdocs/langs/kn_IN/banks.lang
+++ b/htdocs/langs/kn_IN/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/kn_IN/bills.lang b/htdocs/langs/kn_IN/bills.lang
index bb0539153ec..835e6df9dd4 100644
--- a/htdocs/langs/kn_IN/bills.lang
+++ b/htdocs/langs/kn_IN/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Invoice card
 PredefinedInvoices=Predefined Invoices
 Invoice=Invoice
+PdfInvoiceTitle=Invoice
 Invoices=Invoices
 InvoiceLine=Invoice line
 InvoiceCustomer=Customer invoice
diff --git a/htdocs/langs/kn_IN/compta.lang b/htdocs/langs/kn_IN/compta.lang
index 94a3bd671ef..f8b5b683cb8 100644
--- a/htdocs/langs/kn_IN/compta.lang
+++ b/htdocs/langs/kn_IN/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/kn_IN/errors.lang b/htdocs/langs/kn_IN/errors.lang
index feada2d1b5a..853a34b4bb4 100644
--- a/htdocs/langs/kn_IN/errors.lang
+++ b/htdocs/langs/kn_IN/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/kn_IN/install.lang b/htdocs/langs/kn_IN/install.lang
index a3533a31277..5b6ba06e78a 100644
--- a/htdocs/langs/kn_IN/install.lang
+++ b/htdocs/langs/kn_IN/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner.
 PasswordAgain=Retype password a second time
 AdminPassword=Password for Dolibarr database owner.
 CreateDatabase=Create database
-CreateUser=Create owner
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Database server - Superuser access
 CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
-CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
 KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
 SaveConfigurationFile=Save values
diff --git a/htdocs/langs/kn_IN/main.lang b/htdocs/langs/kn_IN/main.lang
index a82fe088a1c..95a9802a5b9 100644
--- a/htdocs/langs/kn_IN/main.lang
+++ b/htdocs/langs/kn_IN/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=The file was successfully uploaded
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
 NbOfEntries=Nb of entries
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parameter
 Parameters=Parameters
 Value=Value
 PersonalValue=Personal value
+NewObject=New %s
 NewValue=New value
 CurrentValue=Current value
 Code=Code
@@ -441,6 +443,7 @@ Reporting=Reporting
 Reportings=Reporting
 Draft=Draft
 Drafts=Drafts
+StatusInterInvoiced=
 Validated=Validated
 Opened=ತೆರೆಯಲಾಗಿದೆ
 New=New
@@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account
 AccountCurrency=Account Currency
 ViewPrivateNote=View notes
 XMoreLines=%s line(s) hidden
+ShowMoreLines=Show more lines
 PublicUrl=Public URL
 AddBox=Add box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gender
 Genderman=Man
diff --git a/htdocs/langs/kn_IN/modulebuilder.lang b/htdocs/langs/kn_IN/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/kn_IN/modulebuilder.lang
+++ b/htdocs/langs/kn_IN/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/kn_IN/orders.lang b/htdocs/langs/kn_IN/orders.lang
index 835e0041229..f3c23442a7b 100644
--- a/htdocs/langs/kn_IN/orders.lang
+++ b/htdocs/langs/kn_IN/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area
 OrderCard=Order card
 OrderId=Order Id
 Order=Order
+PdfOrderTitle=Order
 Orders=Orders
 OrderLine=Order line
 OrderDate=Order date
diff --git a/htdocs/langs/kn_IN/other.lang b/htdocs/langs/kn_IN/other.lang
index 96501a9e5a9..50012afd695 100644
--- a/htdocs/langs/kn_IN/other.lang
+++ b/htdocs/langs/kn_IN/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/kn_IN/propal.lang b/htdocs/langs/kn_IN/propal.lang
index 4c23e93a991..4d98c863b37 100644
--- a/htdocs/langs/kn_IN/propal.lang
+++ b/htdocs/langs/kn_IN/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals
 ProposalsOpened=Open commercial proposals
 Prop=Commercial proposals
 CommercialProposal=Commercial proposal
+PdfCommercialProposalTitle=Commercial proposal
 ProposalCard=Proposal card
 NewProp=New commercial proposal
 NewPropal=New proposal
diff --git a/htdocs/langs/kn_IN/salaries.lang b/htdocs/langs/kn_IN/salaries.lang
index 522bf0a65d7..7e0c80d3380 100644
--- a/htdocs/langs/kn_IN/salaries.lang
+++ b/htdocs/langs/kn_IN/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Salary
 Salaries=Salaries
diff --git a/htdocs/langs/kn_IN/website.lang b/htdocs/langs/kn_IN/website.lang
index b3b05ee6cc9..98577e0de5e 100644
--- a/htdocs/langs/kn_IN/website.lang
+++ b/htdocs/langs/kn_IN/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/kn_IN/workflow.lang b/htdocs/langs/kn_IN/workflow.lang
index 54246856e9b..8021fb9b198 100644
--- a/htdocs/langs/kn_IN/workflow.lang
+++ b/htdocs/langs/kn_IN/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Workflow module setup
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/ko_KR/accountancy.lang b/htdocs/langs/ko_KR/accountancy.lang
index d239f259a94..a7176d2e55f 100644
--- a/htdocs/langs/ko_KR/accountancy.lang
+++ b/htdocs/langs/ko_KR/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Code
 Nature=Nature
 AccountingJournalType1=Various operation
 AccountingJournalType2=Sales
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exports
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model of export
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/ko_KR/admin.lang b/htdocs/langs/ko_KR/admin.lang
index 82d41d46e0c..1056574f5f0 100644
--- a/htdocs/langs/ko_KR/admin.lang
+++ b/htdocs/langs/ko_KR/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=System tools area
 SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for.
 Purge=Purge
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory <b>%s</b>. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted.
 PurgeRunNow=Purge now
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> files or directories deleted.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Purge all security events
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Generate backup
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr current version
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Mantis integration
-Module1400Name=Accounting
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Module to offer an online payment page by credit card with Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Read discounts
 Permission402=Create/modify discounts
 Permission403=Validate discounts
 Permission404=Delete discounts
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
-PreviousDumpFiles=Available database backup dump files
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=First day of week
 RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user <b>%s</b> or you must add -W option at end of command line to provide <b>%s</b> password.
diff --git a/htdocs/langs/ko_KR/banks.lang b/htdocs/langs/ko_KR/banks.lang
index ba42f9a4c83..9bce7b9e29a 100644
--- a/htdocs/langs/ko_KR/banks.lang
+++ b/htdocs/langs/ko_KR/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/ko_KR/bills.lang b/htdocs/langs/ko_KR/bills.lang
index a2054db4162..1e70c698381 100644
--- a/htdocs/langs/ko_KR/bills.lang
+++ b/htdocs/langs/ko_KR/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Invoice card
 PredefinedInvoices=Predefined Invoices
 Invoice=Invoice
+PdfInvoiceTitle=Invoice
 Invoices=Invoices
 InvoiceLine=Invoice line
 InvoiceCustomer=Customer invoice
diff --git a/htdocs/langs/ko_KR/compta.lang b/htdocs/langs/ko_KR/compta.lang
index 1fe127bd3a6..8ec49f04718 100644
--- a/htdocs/langs/ko_KR/compta.lang
+++ b/htdocs/langs/ko_KR/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/ko_KR/errors.lang b/htdocs/langs/ko_KR/errors.lang
index feada2d1b5a..853a34b4bb4 100644
--- a/htdocs/langs/ko_KR/errors.lang
+++ b/htdocs/langs/ko_KR/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/ko_KR/install.lang b/htdocs/langs/ko_KR/install.lang
index da9171dd0c3..3814d95c771 100644
--- a/htdocs/langs/ko_KR/install.lang
+++ b/htdocs/langs/ko_KR/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner.
 PasswordAgain=Retype password a second time
 AdminPassword=Password for Dolibarr database owner.
 CreateDatabase=Create database
-CreateUser=Create owner
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Database server - Superuser access
 CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
-CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
 KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
 SaveConfigurationFile=Save values
diff --git a/htdocs/langs/ko_KR/main.lang b/htdocs/langs/ko_KR/main.lang
index 19047551ce0..474108a77f9 100644
--- a/htdocs/langs/ko_KR/main.lang
+++ b/htdocs/langs/ko_KR/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=The file was successfully uploaded
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=첨부할 파일을 선택했지만 바로 업로드할 수는 없습니다. 업로드하려면 "파일 첨부"를 클릭하십시오.
 NbOfEntries=엔트리 Nb
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parameter
 Parameters=Parameters
 Value=Value
 PersonalValue=Personal value
+NewObject=New %s
 NewValue=New value
 CurrentValue=Current value
 Code=Code
@@ -441,6 +443,7 @@ Reporting=Reporting
 Reportings=Reporting
 Draft=Draft
 Drafts=Drafts
+StatusInterInvoiced=
 Validated=Validated
 Opened=Open
 New=New
@@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account
 AccountCurrency=Account Currency
 ViewPrivateNote=View notes
 XMoreLines=%s line(s) hidden
+ShowMoreLines=Show more lines
 PublicUrl=Public URL
 AddBox=Add box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gender
 Genderman=Man
diff --git a/htdocs/langs/ko_KR/modulebuilder.lang b/htdocs/langs/ko_KR/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/ko_KR/modulebuilder.lang
+++ b/htdocs/langs/ko_KR/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/ko_KR/orders.lang b/htdocs/langs/ko_KR/orders.lang
index 331e3b49d3e..0c59b4f4ada 100644
--- a/htdocs/langs/ko_KR/orders.lang
+++ b/htdocs/langs/ko_KR/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area
 OrderCard=Order card
 OrderId=Order Id
 Order=Order
+PdfOrderTitle=Order
 Orders=Orders
 OrderLine=Order line
 OrderDate=Order date
diff --git a/htdocs/langs/ko_KR/other.lang b/htdocs/langs/ko_KR/other.lang
index e15d490c0f2..e519f7af405 100644
--- a/htdocs/langs/ko_KR/other.lang
+++ b/htdocs/langs/ko_KR/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/ko_KR/propal.lang b/htdocs/langs/ko_KR/propal.lang
index 3fdb379c5a2..271fb44ac40 100644
--- a/htdocs/langs/ko_KR/propal.lang
+++ b/htdocs/langs/ko_KR/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals
 ProposalsOpened=Open commercial proposals
 Prop=Commercial proposals
 CommercialProposal=Commercial proposal
+PdfCommercialProposalTitle=Commercial proposal
 ProposalCard=Proposal card
 NewProp=New commercial proposal
 NewPropal=New proposal
diff --git a/htdocs/langs/ko_KR/salaries.lang b/htdocs/langs/ko_KR/salaries.lang
index 522bf0a65d7..7e0c80d3380 100644
--- a/htdocs/langs/ko_KR/salaries.lang
+++ b/htdocs/langs/ko_KR/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Salary
 Salaries=Salaries
diff --git a/htdocs/langs/ko_KR/website.lang b/htdocs/langs/ko_KR/website.lang
index b3b05ee6cc9..98577e0de5e 100644
--- a/htdocs/langs/ko_KR/website.lang
+++ b/htdocs/langs/ko_KR/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/ko_KR/workflow.lang b/htdocs/langs/ko_KR/workflow.lang
index 54246856e9b..8021fb9b198 100644
--- a/htdocs/langs/ko_KR/workflow.lang
+++ b/htdocs/langs/ko_KR/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Workflow module setup
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/lo_LA/accountancy.lang b/htdocs/langs/lo_LA/accountancy.lang
index 0f8c1607cf7..dec8b7744d2 100644
--- a/htdocs/langs/lo_LA/accountancy.lang
+++ b/htdocs/langs/lo_LA/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Code
 Nature=Nature
 AccountingJournalType1=Various operation
 AccountingJournalType2=Sales
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exports
-Export=ສົ່ງອອກ
 ExportDraftJournal=Export draft journal
 Modelcsv=Model of export
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/lo_LA/admin.lang b/htdocs/langs/lo_LA/admin.lang
index 8e9ac20478d..39e5f0016ce 100644
--- a/htdocs/langs/lo_LA/admin.lang
+++ b/htdocs/langs/lo_LA/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=System tools area
 SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for.
 Purge=Purge
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory <b>%s</b>. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted.
 PurgeRunNow=Purge now
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> files or directories deleted.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Purge all security events
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Generate backup
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr current version
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Mantis integration
-Module1400Name=ບັນ​ຊີ
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Module to offer an online payment page by credit card with Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Read discounts
 Permission402=Create/modify discounts
 Permission403=Validate discounts
 Permission404=Delete discounts
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
-PreviousDumpFiles=Available database backup dump files
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=First day of week
 RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user <b>%s</b> or you must add -W option at end of command line to provide <b>%s</b> password.
diff --git a/htdocs/langs/lo_LA/banks.lang b/htdocs/langs/lo_LA/banks.lang
index 0bf0174048f..14ae185bc8b 100644
--- a/htdocs/langs/lo_LA/banks.lang
+++ b/htdocs/langs/lo_LA/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/lo_LA/bills.lang b/htdocs/langs/lo_LA/bills.lang
index 1e83ba9b2d1..6bcd2464c1c 100644
--- a/htdocs/langs/lo_LA/bills.lang
+++ b/htdocs/langs/lo_LA/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Invoice card
 PredefinedInvoices=Predefined Invoices
 Invoice=Invoice
+PdfInvoiceTitle=Invoice
 Invoices=Invoices
 InvoiceLine=Invoice line
 InvoiceCustomer=Customer invoice
diff --git a/htdocs/langs/lo_LA/compta.lang b/htdocs/langs/lo_LA/compta.lang
index b16ca4f1053..22a8842f202 100644
--- a/htdocs/langs/lo_LA/compta.lang
+++ b/htdocs/langs/lo_LA/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/lo_LA/errors.lang b/htdocs/langs/lo_LA/errors.lang
index feada2d1b5a..853a34b4bb4 100644
--- a/htdocs/langs/lo_LA/errors.lang
+++ b/htdocs/langs/lo_LA/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/lo_LA/install.lang b/htdocs/langs/lo_LA/install.lang
index a3533a31277..5b6ba06e78a 100644
--- a/htdocs/langs/lo_LA/install.lang
+++ b/htdocs/langs/lo_LA/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner.
 PasswordAgain=Retype password a second time
 AdminPassword=Password for Dolibarr database owner.
 CreateDatabase=Create database
-CreateUser=Create owner
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Database server - Superuser access
 CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
-CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
 KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
 SaveConfigurationFile=Save values
diff --git a/htdocs/langs/lo_LA/main.lang b/htdocs/langs/lo_LA/main.lang
index 27c35edadea..2244c5114a0 100644
--- a/htdocs/langs/lo_LA/main.lang
+++ b/htdocs/langs/lo_LA/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=The file was successfully uploaded
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
 NbOfEntries=Nb of entries
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parameter
 Parameters=Parameters
 Value=Value
 PersonalValue=Personal value
+NewObject=New %s
 NewValue=New value
 CurrentValue=Current value
 Code=Code
@@ -441,6 +443,7 @@ Reporting=Reporting
 Reportings=Reporting
 Draft=Draft
 Drafts=Drafts
+StatusInterInvoiced=
 Validated=Validated
 Opened=Open
 New=New
@@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account
 AccountCurrency=Account Currency
 ViewPrivateNote=View notes
 XMoreLines=%s line(s) hidden
+ShowMoreLines=Show more lines
 PublicUrl=Public URL
 AddBox=Add box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gender
 Genderman=Man
diff --git a/htdocs/langs/lo_LA/modulebuilder.lang b/htdocs/langs/lo_LA/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/lo_LA/modulebuilder.lang
+++ b/htdocs/langs/lo_LA/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/lo_LA/orders.lang b/htdocs/langs/lo_LA/orders.lang
index 331e3b49d3e..0c59b4f4ada 100644
--- a/htdocs/langs/lo_LA/orders.lang
+++ b/htdocs/langs/lo_LA/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area
 OrderCard=Order card
 OrderId=Order Id
 Order=Order
+PdfOrderTitle=Order
 Orders=Orders
 OrderLine=Order line
 OrderDate=Order date
diff --git a/htdocs/langs/lo_LA/other.lang b/htdocs/langs/lo_LA/other.lang
index 2463c4d436c..6f6c5c8f764 100644
--- a/htdocs/langs/lo_LA/other.lang
+++ b/htdocs/langs/lo_LA/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/lo_LA/propal.lang b/htdocs/langs/lo_LA/propal.lang
index 3fdb379c5a2..271fb44ac40 100644
--- a/htdocs/langs/lo_LA/propal.lang
+++ b/htdocs/langs/lo_LA/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals
 ProposalsOpened=Open commercial proposals
 Prop=Commercial proposals
 CommercialProposal=Commercial proposal
+PdfCommercialProposalTitle=Commercial proposal
 ProposalCard=Proposal card
 NewProp=New commercial proposal
 NewPropal=New proposal
diff --git a/htdocs/langs/lo_LA/salaries.lang b/htdocs/langs/lo_LA/salaries.lang
index 522bf0a65d7..7e0c80d3380 100644
--- a/htdocs/langs/lo_LA/salaries.lang
+++ b/htdocs/langs/lo_LA/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Salary
 Salaries=Salaries
diff --git a/htdocs/langs/lo_LA/website.lang b/htdocs/langs/lo_LA/website.lang
index b3b05ee6cc9..98577e0de5e 100644
--- a/htdocs/langs/lo_LA/website.lang
+++ b/htdocs/langs/lo_LA/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/lo_LA/workflow.lang b/htdocs/langs/lo_LA/workflow.lang
index 54246856e9b..8021fb9b198 100644
--- a/htdocs/langs/lo_LA/workflow.lang
+++ b/htdocs/langs/lo_LA/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Workflow module setup
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/lt_LT/accountancy.lang b/htdocs/langs/lt_LT/accountancy.lang
index 470d34a045e..f96909c6f48 100644
--- a/htdocs/langs/lt_LT/accountancy.lang
+++ b/htdocs/langs/lt_LT/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=Apskaitos sąskaitų sąrašas
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Sąskaitų klasė
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Kodas
 Nature=Prigimtis
 AccountingJournalType1=Various operation
 AccountingJournalType2=Pardavimai
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Eksportas
-Export=Eksportas
 ExportDraftJournal=Export draft journal
 Modelcsv=Eksporto modelis
 OptionsDeactivatedForThisExportModel=Šiam eksporto modeliui opcijos išjungtos
diff --git a/htdocs/langs/lt_LT/admin.lang b/htdocs/langs/lt_LT/admin.lang
index 3b9efdaa0fb..6e0b41cff93 100644
--- a/htdocs/langs/lt_LT/admin.lang
+++ b/htdocs/langs/lt_LT/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Sistemos įrankių sritis
 SystemToolsAreaDesc=Ši sritis suteikia administravimo funkcijas. Naudokite meniu pasirinkti funkciją jūs ieškote.
 Purge=Išvalyti
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Ištrinti visus failus kataloge <b>%s</b>. Laikinieji failai, taip pat duomenų bazės sen backup-ai, pridėti failai (trečios šalys, sąskaitos...) ir įkelti į ECM moduliai bus ištrinti.
 PurgeRunNow=Išvalyti dabar
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> failai ar katalogai ištrinti
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Išvalyti visus saugumo įvykius
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Sukurti atsarginę kopiją (backup)
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr dabartinė versija
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Tiekėjo komercinis pasiūlymas
 Module1120Desc=Prašyti tiekėjo komercinio pasiūlymo ir kainų
 Module1200Name=Mantis
 Module1200Desc=Mančio integracija
-Module1400Name=Apskaita
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Dokumento generavimas
 Module1520Desc=Masinis pašto dokumentų generavimas
 Module1780Name=Žymės / Kategorijos
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=PayPal
 Module50200Desc=Modulis siūlo internetinio mokėjimo kreditine kortele per PayPal puslapį
 Module50400Name=Apskaita (Išankstinė)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Skaityti nuolaidas
 Permission402=Sukurti/keisti nuolaidas
 Permission403=Patvirtinti nuolaidas
 Permission404=Ištrinti nuolaidas
-Permission510=Skaityti atlyginimus
-Permission512=Sukurti / redaguoti atlyginimus
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Ištrinti atlyginimus
 Permission517=Eksportuoti atlyginimus
 Permission520=Skaityti Paskolas
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL duomenų importas
 ForcedToByAModule= Ši taisyklė yra priverstinė <b>%s</b> pagal aktyvuotą modulį
-PreviousDumpFiles=Yra duomenų bazės atsarginės kopijos failai
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=Pirma savaitės diena
 RunningUpdateProcessMayBeRequired=Reikalingas programos atnaujinimas (Programos versija %s skiriasi nuo duomenų bazės versijos %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=Jūs turite paleisti šią komandą iš komandinės eilutės po vartotojo <b>%s</b> prisijungimo prie apvalkalo arba turite pridėti -W opciją komandinės eilutės pabaigoje slaptažodžio <b>%s</b> pateikimui.
diff --git a/htdocs/langs/lt_LT/banks.lang b/htdocs/langs/lt_LT/banks.lang
index 7c59dc96619..8bab27f623f 100644
--- a/htdocs/langs/lt_LT/banks.lang
+++ b/htdocs/langs/lt_LT/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Čekis grąžintas ir sąskaita iš naujo atida
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/lt_LT/bills.lang b/htdocs/langs/lt_LT/bills.lang
index 3755569a0fb..02415c77ca5 100644
--- a/htdocs/langs/lt_LT/bills.lang
+++ b/htdocs/langs/lt_LT/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Sąskaitos-faktūros kortelė
 PredefinedInvoices=Iš anksto apibrėžtos sąskaitos-faktūros
 Invoice=Sąskaita-faktūra
+PdfInvoiceTitle=Sąskaita-faktūra
 Invoices=Sąskaitos-faktūros
 InvoiceLine=Sąskaitos-faktūros linija
 InvoiceCustomer=Kliento sąskaita-faktūra
diff --git a/htdocs/langs/lt_LT/compta.lang b/htdocs/langs/lt_LT/compta.lang
index 4467e9e42af..45c193a5060 100644
--- a/htdocs/langs/lt_LT/compta.lang
+++ b/htdocs/langs/lt_LT/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/lt_LT/errors.lang b/htdocs/langs/lt_LT/errors.lang
index d2297ca32e5..ba312f99362 100644
--- a/htdocs/langs/lt_LT/errors.lang
+++ b/htdocs/langs/lt_LT/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/lt_LT/install.lang b/htdocs/langs/lt_LT/install.lang
index 179207609b6..e68ba094e5c 100644
--- a/htdocs/langs/lt_LT/install.lang
+++ b/htdocs/langs/lt_LT/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Prisijungimas Dolibarr duomenų bazės savininkui.
 PasswordAgain=Pakartokite slaptažodį antrą kartą
 AdminPassword=Slaptažodis Dolibarr duomenų bazės savininkui.
 CreateDatabase=Sukurti duomenų bazę
-CreateUser=Sukurti savininką
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Duomenų bazės serveris - Superuser prieiga
 CheckToCreateDatabase=Žymėti langelį, jei duomenų bazės nėra ir ji turi būti sukurta. <br>Tokiu atveju, turite užpildyti prisijungimo/slaptažodį superuser sąskaitai šio puslapio apačioje.
-CheckToCreateUser=Žymėti langelį, jei duomenų bazės savininko nėra ir jis turi būti sukurtas. <br>Šiuo atveju, jūs turite pasirinkti jo prisijungimo vardą ir slaptažodį ir užpildyti prisijungimo/slaptažodžio superuser sąskaitai šio puslapio apačioje. Jei šis langelis nepažymėtas, savininko duomenų bazė ir jos slaptažodis jau egzistuoja.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Prisijungimas vartotojui leidžia kurti naujas duomenų bazes arba naujus vartotojus. Tai privaloma, jei Jūsų duomenų bazė ar jos savininkas dar neegzistuoja.
 KeepEmptyIfNoPassword=Palikite tuščią, jei vartotojas neturi slaptažodžio (praleisti)
 SaveConfigurationFile=Išsaugoti reikšmes
diff --git a/htdocs/langs/lt_LT/main.lang b/htdocs/langs/lt_LT/main.lang
index fee452d039b..e57367741a5 100644
--- a/htdocs/langs/lt_LT/main.lang
+++ b/htdocs/langs/lt_LT/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=Failas buvo sėkmingai įkeltas
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=Failas prikabinimui pasirinktas, bet dar nebuvo įkeltas. Paspauskite tam "Pridėti failą".
 NbOfEntries=Įrašų skaičius
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parametras
 Parameters=Parametrai
 Value=Reikšmė
 PersonalValue=Asmeninė reikšmė
+NewObject=New %s
 NewValue=Nauja reikšmė
 CurrentValue=Dabartinė reikšmė
 Code=Kodas
@@ -441,6 +443,7 @@ Reporting=Ataskaitos
 Reportings=Ataskaitos
 Draft=Projektas
 Drafts=Projektai
+StatusInterInvoiced=
 Validated=Pripažinti galiojančiais
 Opened=Atidaryta
 New=Naujas
@@ -727,6 +730,7 @@ SetBankAccount=Nustatykite banko sąskaitą
 AccountCurrency=Sąskaitos valiuta
 ViewPrivateNote=Peržiūrėti pastabas
 XMoreLines=%s paslėptos eilutės
+ShowMoreLines=Show more lines
 PublicUrl=Viešas URL
 AddBox=Pridėti langelį
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Eiti į Pradžia - Nustatymai - Bendrovė, kad pakeisti logotipą arba eikite į Pradžia - Nustatymai - Ekranas, kad paslėpti.
 Deny=Atmesti
 Denied=Atmestas
+ListOf=List of %s
 ListOfTemplates=Šablonų sąrašas
 Gender=Gender
 Genderman=Vyras
diff --git a/htdocs/langs/lt_LT/modulebuilder.lang b/htdocs/langs/lt_LT/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/lt_LT/modulebuilder.lang
+++ b/htdocs/langs/lt_LT/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/lt_LT/orders.lang b/htdocs/langs/lt_LT/orders.lang
index cfd2fc3e47a..00de7b02b7e 100644
--- a/htdocs/langs/lt_LT/orders.lang
+++ b/htdocs/langs/lt_LT/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Tiekėjų užsakymų sritis
 OrderCard=Užsakyti kortelę
 OrderId=Užsakymo ID
 Order=Užsakymas
+PdfOrderTitle=Užsakymas
 Orders=Užsakymai
 OrderLine=Užsakymo eilutė
 OrderDate=Užsakymo data
diff --git a/htdocs/langs/lt_LT/other.lang b/htdocs/langs/lt_LT/other.lang
index 1646697e34c..af555b37827 100644
--- a/htdocs/langs/lt_LT/other.lang
+++ b/htdocs/langs/lt_LT/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/lt_LT/propal.lang b/htdocs/langs/lt_LT/propal.lang
index d9ee04805d0..b6405cfee9d 100644
--- a/htdocs/langs/lt_LT/propal.lang
+++ b/htdocs/langs/lt_LT/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Komercinių pasiūlymų projektai
 ProposalsOpened=Open commercial proposals
 Prop=Komerciniai pasiūlymai
 CommercialProposal=Komercinis pasiūlymas
+PdfCommercialProposalTitle=Komercinis pasiūlymas
 ProposalCard=Pasiūlymo kortelė
 NewProp=Naujas komercinis pasiūlymas
 NewPropal=Naujas pasiūlymas
diff --git a/htdocs/langs/lt_LT/salaries.lang b/htdocs/langs/lt_LT/salaries.lang
index 23c736cc4e7..4062dd49cea 100644
--- a/htdocs/langs/lt_LT/salaries.lang
+++ b/htdocs/langs/lt_LT/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Atlyginimas
 Salaries=Atlyginimai
diff --git a/htdocs/langs/lt_LT/website.lang b/htdocs/langs/lt_LT/website.lang
index 82e2a0f4b54..9d081727860 100644
--- a/htdocs/langs/lt_LT/website.lang
+++ b/htdocs/langs/lt_LT/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/lt_LT/workflow.lang b/htdocs/langs/lt_LT/workflow.lang
index e6f33e13a60..15fac83fab1 100644
--- a/htdocs/langs/lt_LT/workflow.lang
+++ b/htdocs/langs/lt_LT/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Workflow modulio nustatymas
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Priskirti susijusį šaltinio pasiūlymą prie apmokestintų, kai kliento užsakymas nustatomas kaip apmokėtas
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Priskirti susijusį šaltinio kliento užsakymą (-us) prie apmokestinamų, kai kliento sąskaita-faktūra yra nustatoma kaip jau apmokėta
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Priskirti susijusį šaltinio kliento užsakymą (-us) prie apmokestinamų, kai kliento sąskaita-faktūra yra patvirtinama
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/lv_LV/accountancy.lang b/htdocs/langs/lv_LV/accountancy.lang
index 8d1e501c208..67abbf6236b 100644
--- a/htdocs/langs/lv_LV/accountancy.lang
+++ b/htdocs/langs/lv_LV/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Cita informācija
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Konta bilance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=Trešo personu kontu saraksts
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Kods
 Nature=Daba
 AccountingJournalType1=Dažādas darbības
 AccountingJournalType2=Pārdošanas
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Eksports
-Export=Eksportēt
 ExportDraftJournal=Export draft journal
 Modelcsv=Eksporta modulis
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/lv_LV/admin.lang b/htdocs/langs/lv_LV/admin.lang
index 382280d4ebf..182df597376 100644
--- a/htdocs/langs/lv_LV/admin.lang
+++ b/htdocs/langs/lv_LV/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Sistēmas rīku iestatīšana
 SystemToolsAreaDesc=Šī sadaļa piedāvā administrēšanas funkcijas. Lietojiet izvēlni, lai izvēlētos funkciju kuru Jūs meklējat.
 Purge=Tīrīt
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Dzēst pagaidu failus
 PurgeDeleteAllFilesInDocumentsDir=Dzēst visus failus direktorijā <b>%s</b>. Pagaidu failus un arī datu bāzes rezerves dumpus, pievienotie faili pievienoti elementiem (trešās personas, rēķini, ...) un augšupielādēta ECM modulī tiks dzēsti.
 PurgeRunNow=Tīrīt tagad
 PurgeNothingToDelete=Nav mapes vai failu, kurus jādzēš.
 PurgeNDirectoriesDeleted=<b>%s</b> faili vai direktorijas dzēsti.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Tīrīt visus drošības ierakstus
 ConfirmPurgeAuditEvents=Vai jūs tiešām vēlaties, lai iztīrīt visus drošības notikumus? Visi drošības žurnāli tiks dzēsti, nekādi citi dati netiks dzēsti.
 GenerateBackup=Izveidot rezerves kopiju
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Moduļa izvietošana ir pabeigta. Tomēr jums ir jāiespējo
 NotExistsDirect=Alternatīva saknes direktorijs nav definēta.<br>
 InfDirAlt=Kopš 3 versijas, ir iespējams noteikt alternatīvu sakne directory.Tas ļauj jums saglabāt, tajā pašā vietā, papildinājumus un pielāgotas veidnes.<br> Jums tikai jāizveido direktoriju Dolibarr saknē (piemēram: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr pašreizējā versija
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Jaunākā stabilā versija
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Dievlūdzējs
 Module1200Desc=Mantis integrācija
-Module1400Name=Grāmatvedība
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Modulis piedāvā tiešsaistes maksājumu lapā ar kredītkarti ar Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Aptauja vai balsojums
@@ -751,8 +750,10 @@ Permission401=Lasīt atlaides
 Permission402=Izveidot/mainīt atlaides
 Permission403=Apstiprināt atlaides
 Permission404=Dzēst atlaides
-Permission510=Apskatīt algas
-Permission512=Izveidot/labot algas
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Dzēst algas
 Permission517=Eksportēt algas
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Atjaunot dokumentu direktorijas arhīva failu (piemēram zip fails)
 RestoreDesc3=Atjaunot datus no rezerves kopijas faila, datu bāzē jaunā Dolibarr instalācijā vai datu bāzē pašreizējajai instalācijai (<b>%s</b>). Brīdinājums, kad atjaunošana ir pabeigta, jums ir jāizmanto lietotāja vārds / parole, kas bija tad, kad tika veikta rezerves kopija, lai pieslēgtos atkal. Lai atjaunotu rezerves kopiju datubāzei esošajā instalācijā, jūs varat sekot šim palīgam.
 RestoreMySQL=MySQL imports
 ForcedToByAModule= Šis noteikums ir spiests <b>%s</b> ar aktivēto modulis
-PreviousDumpFiles=Pieejamās datu bāzes rezerves kopijas faili
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=Pirmā nedēļas diena
 RunningUpdateProcessMayBeRequired=Running jaunināšanas procesu, šķiet, ir nepieciešams (Programmas versija %s atšķiras no bāzes versijas %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=Jums ir palaist šo komandu no komandrindas pēc pieteikšanās uz apvalks ar lietotāju <b>%s,</b> vai jums ir pievienot-W iespēju beigās komandrindas, lai sniegtu <b>%s</b> paroli.
diff --git a/htdocs/langs/lv_LV/banks.lang b/htdocs/langs/lv_LV/banks.lang
index ec4d9158cdf..063ba6225ed 100644
--- a/htdocs/langs/lv_LV/banks.lang
+++ b/htdocs/langs/lv_LV/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/lv_LV/bills.lang b/htdocs/langs/lv_LV/bills.lang
index 1b272e8dc40..61eeda6a7d4 100644
--- a/htdocs/langs/lv_LV/bills.lang
+++ b/htdocs/langs/lv_LV/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Rēķina kartiņa
 PredefinedInvoices=Iepriekš definēti rēķini
 Invoice=Rēķins
+PdfInvoiceTitle=Rēķins
 Invoices=Rēķini
 InvoiceLine=Rēķina līnija
 InvoiceCustomer=Klienta rēķins
diff --git a/htdocs/langs/lv_LV/compta.lang b/htdocs/langs/lv_LV/compta.lang
index d5cab732627..db41f4feb49 100644
--- a/htdocs/langs/lv_LV/compta.lang
+++ b/htdocs/langs/lv_LV/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Klonēt nākošam mēnesim
diff --git a/htdocs/langs/lv_LV/errors.lang b/htdocs/langs/lv_LV/errors.lang
index d37684bde85..990dd96d5e7 100644
--- a/htdocs/langs/lv_LV/errors.lang
+++ b/htdocs/langs/lv_LV/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/lv_LV/install.lang b/htdocs/langs/lv_LV/install.lang
index dd9baea4794..fe1232c86ef 100644
--- a/htdocs/langs/lv_LV/install.lang
+++ b/htdocs/langs/lv_LV/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Dolibarr datu bāzes īpašnieka lietotājvārds
 PasswordAgain=Atkārtot paroli otrreiz
 AdminPassword=Parole Dolibarr datu bāzes īpašniekam.
 CreateDatabase=Izveidot datubāzi
-CreateUser=Izveidot īpašnieku
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Datu bāzes serveris - superlietotājs piekļuve
 CheckToCreateDatabase=Ieķeksējiet, ja datu bāze neeksistē, un tā ir jāizveido. <br> Tādā gadījumā, jums ir jāaizpilda pieteikšanās / paroli SuperUser kontā šīs lapas apakšā.
-CheckToCreateUser=Ieķeksējiet, ja datu bāzes īpašnieks neeksistē, un ir jāizveidots. <br> Tādā gadījumā, jums ir jāizvēlas savu lietotājvārdu un paroli, kā arī aizpildīt pieteikšanās / paroli superlietotājs kontā šīs lapas apakšā. Ja šī rūtiņa ir neieķeksēta , datubāzes īpašniekam un parolei jau ir jābūt.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Lietotāja vārds, kas var izveidot datubāzes vai jaunos lietotājus. Obligāti jāaizpilda, ja datubāze vai tās īpašnieks jau neeksistē.
 KeepEmptyIfNoPassword=Atstājiet tukšu, ja lietotājam nav vajadzīga parole (izvairieties no bezparoles lietotāja vārda)
 SaveConfigurationFile=Saglabā vērtības
diff --git a/htdocs/langs/lv_LV/main.lang b/htdocs/langs/lv_LV/main.lang
index 1e469c4c447..e251df84142 100644
--- a/htdocs/langs/lv_LV/main.lang
+++ b/htdocs/langs/lv_LV/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=The file was successfully uploaded
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=Fails ir izvēlēts pielikumam,  bet vēl nav augšupielādēti. Noklikšķiniet uz &quot;Pievienot failu&quot;, lai to pievienotu.
 NbOfEntries=Ierakstu sk
 GoToWikiHelpPage=Lasīt tiešsaistes palīdzību (nepieciešams interneta piekļuve)
@@ -196,6 +197,7 @@ Parameter=Parametrs
 Parameters=Parametri
 Value=Vērtība
 PersonalValue=Personīgā vērtība
+NewObject=New %s
 NewValue=Jaunā vērtība
 CurrentValue=Pašreizējā vērtība
 Code=Kods
@@ -441,6 +443,7 @@ Reporting=Pārskata
 Reportings=Pārskati
 Draft=Melnraksts
 Drafts=Melnraksti
+StatusInterInvoiced=
 Validated=Apstiprināts
 Opened=Atvērts
 New=Jauns
@@ -727,6 +730,7 @@ SetBankAccount=Definēt bankas kontu
 AccountCurrency=Konta valūta
 ViewPrivateNote=Apskatīt piezīmes
 XMoreLines=%s līnija(as) slēptas
+ShowMoreLines=Show more lines
 PublicUrl=Publiskā saite
 AddBox=Pievienot info logu
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Dzimums
 Genderman=Vīrietis
diff --git a/htdocs/langs/lv_LV/modulebuilder.lang b/htdocs/langs/lv_LV/modulebuilder.lang
index dafba2e6298..8d9ec89569e 100644
--- a/htdocs/langs/lv_LV/modulebuilder.lang
+++ b/htdocs/langs/lv_LV/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=Jauns modulis
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Modulis inicializēts
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Bīstamā zona
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Apraksts
 EditorName=Redaktora vārds
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/lv_LV/multicurrency.lang b/htdocs/langs/lv_LV/multicurrency.lang
index 72288839de0..d39506af324 100644
--- a/htdocs/langs/lv_LV/multicurrency.lang
+++ b/htdocs/langs/lv_LV/multicurrency.lang
@@ -4,7 +4,8 @@ ErrorAddRateFail=Pievienotās likmes kļūda
 ErrorAddCurrencyFail=Pievienotajā valūtā radusies kļūda
 ErrorDeleteCurrencyFail=Kļūda dzēšot
 multicurrency_syncronize_error=Sinhronizācijas kļūda: %s
-multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate)
+MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate
+multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate)
 CurrencyLayerAccount=CurrencyLayer API
 CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality<br />Get your <b>API key</b><br />If you use a free account you can't change the <b>currency source</b> (USD by default)<br />But if your main currency isn't USD you can use the <b>alternate currency source</b> to force you main currency<br /><br />You are limited at 1000 synchronizations per month
 multicurrency_appId=API atslēga
diff --git a/htdocs/langs/lv_LV/orders.lang b/htdocs/langs/lv_LV/orders.lang
index 3ba7a5616d1..5aff83c3c76 100644
--- a/htdocs/langs/lv_LV/orders.lang
+++ b/htdocs/langs/lv_LV/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Piegādātāji pasūtījumi platība
 OrderCard=Pasūtījumu kartiņa
 OrderId=Pasūtījuma ID
 Order=Rīkojums
+PdfOrderTitle=Pasūtījums
 Orders=Pasūtījumi
 OrderLine=Lai līnija
 OrderDate=Pasūtīt datumu
diff --git a/htdocs/langs/lv_LV/other.lang b/htdocs/langs/lv_LV/other.lang
index 87fc0b60778..d4d3662e709 100644
--- a/htdocs/langs/lv_LV/other.lang
+++ b/htdocs/langs/lv_LV/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Rēķina datums
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/lv_LV/products.lang b/htdocs/langs/lv_LV/products.lang
index 1fcb9a2ed6c..565096643d9 100644
--- a/htdocs/langs/lv_LV/products.lang
+++ b/htdocs/langs/lv_LV/products.lang
@@ -218,7 +218,7 @@ PrintsheetForOneBarCode=Drukāt vairākas svītrkoda uzlīmes
 BuildPageToPrint=Ģenerēt lapu drukāšanai
 FillBarCodeTypeAndValueManually=Aizpildīt svītrukodu veidu un vērtību manuāli.
 FillBarCodeTypeAndValueFromProduct=Fill barcode type and value from barcode of a product.
-FillBarCodeTypeAndValueFromThirdParty=Fill barcode type and value from barcode of a third party.
+FillBarCodeTypeAndValueFromThirdParty=Aizpildīt svītrkodu veidu un vērtību no trešo pušu svītrkoda.
 DefinitionOfBarCodeForProductNotComplete=Definition of type or value of bar code not complete for product %s.
 DefinitionOfBarCodeForThirdpartyNotComplete=Definition of type or value of bar code non complete for third party %s.
 BarCodeDataForProduct=Svītrkoda produkta informācija %s :
diff --git a/htdocs/langs/lv_LV/propal.lang b/htdocs/langs/lv_LV/propal.lang
index fc34a8593e0..5d5d62e6802 100644
--- a/htdocs/langs/lv_LV/propal.lang
+++ b/htdocs/langs/lv_LV/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Sagatave komerciālajiem priekšlikumiem
 ProposalsOpened=Open commercial proposals
 Prop=Komerciālie priekšlikumi
 CommercialProposal=Komerciālais priekšlikums
+PdfCommercialProposalTitle=Komerciālais priekšlikums
 ProposalCard=Priekšlikuma kartiņa
 NewProp=Jaunais komerciālais priekšlikums
 NewPropal=Jaunais priekšlikums
@@ -14,9 +15,9 @@ DeleteProp=Dzēst komerciālo priekšlikumu
 ValidateProp=Apstiprināt komerciālo priekšlikumu
 AddProp=Izveidot piedāvājumu
 ConfirmDeleteProp=Are you sure you want to delete this commercial proposal?
-ConfirmValidateProp=Are you sure you want to validate this commercial proposal under name <b>%s</b>?
+ConfirmValidateProp=Vai jūs tiešām vēlaties apstiprinātu šo komerciālo priekšlikumu saskaņā ar nosaukumu <b>%s</b> ?
 LastPropals=Pēdējie %s priekšlikumi
-LastModifiedProposals=Latest %s modified proposals
+LastModifiedProposals=Pēdējie %s labotie priekšlikumi
 AllPropals=Visi priekšlikumi
 SearchAProposal=Meklēt priekšlikumu
 NoProposal=No proposal
@@ -28,7 +29,7 @@ ShowPropal=Rādīt priekšlikumu
 PropalsDraft=Sagatave
 PropalsOpened=Atvērts
 PropalStatusDraft=Projekts (ir jāapstiprina)
-PropalStatusValidated=Validated (proposal is opened)
+PropalStatusValidated=Apstiprināts (priekšlikums ir atvērts)
 PropalStatusSigned=Parakstīts (vajadzības rēķinu)
 PropalStatusNotSigned=Nav parakstīts (slēgta)
 PropalStatusBilled=Jāmaksā
diff --git a/htdocs/langs/lv_LV/salaries.lang b/htdocs/langs/lv_LV/salaries.lang
index 1b67a696f56..e8a29f994c2 100644
--- a/htdocs/langs/lv_LV/salaries.lang
+++ b/htdocs/langs/lv_LV/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Alga
 Salaries=Algas
diff --git a/htdocs/langs/lv_LV/website.lang b/htdocs/langs/lv_LV/website.lang
index ce462832cae..06edcea1406 100644
--- a/htdocs/langs/lv_LV/website.lang
+++ b/htdocs/langs/lv_LV/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Dzēst mājaslapu
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Labot izvēlni
 EditPageMeta=Edit Meta
 EditPageContent=Labot saturu
 Website=Mājas lapa
-Webpage=Mājas lapa
-AddPage=Pievienot lapu
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Lapa '%s' pievienota
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/lv_LV/workflow.lang b/htdocs/langs/lv_LV/workflow.lang
index 46365804464..9779a90b2c4 100644
--- a/htdocs/langs/lv_LV/workflow.lang
+++ b/htdocs/langs/lv_LV/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Darbplūsmu moduļa iestatīšana
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automātiski izveidot klienta rēķinu pēc līguma apstiprināšanas
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Klasificēt saistīta avota priekšlikumu Jāmaksā, ja klientu rīkojumu ir iestatīts uz apmaksātu
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Klasificēt saistīts avots klienta pasūtījumu (s) Jāmaksā, ja klients rēķins ir iestatīts uz apmaksātu
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Klasificēt saistīta avota klienta pasūtījumu (s) Jāmaksā, ja klients rēķins ir apstiprināts
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automātiskā klasifikācija
diff --git a/htdocs/langs/mk_MK/accountancy.lang b/htdocs/langs/mk_MK/accountancy.lang
index d239f259a94..a7176d2e55f 100644
--- a/htdocs/langs/mk_MK/accountancy.lang
+++ b/htdocs/langs/mk_MK/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Code
 Nature=Nature
 AccountingJournalType1=Various operation
 AccountingJournalType2=Sales
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exports
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model of export
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/mk_MK/admin.lang b/htdocs/langs/mk_MK/admin.lang
index 85d4503b8ae..927096c47ca 100644
--- a/htdocs/langs/mk_MK/admin.lang
+++ b/htdocs/langs/mk_MK/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=System tools area
 SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for.
 Purge=Purge
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory <b>%s</b>. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted.
 PurgeRunNow=Purge now
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> files or directories deleted.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Purge all security events
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Generate backup
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr current version
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Mantis integration
-Module1400Name=Accounting
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Module to offer an online payment page by credit card with Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Read discounts
 Permission402=Create/modify discounts
 Permission403=Validate discounts
 Permission404=Delete discounts
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
-PreviousDumpFiles=Available database backup dump files
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=First day of week
 RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user <b>%s</b> or you must add -W option at end of command line to provide <b>%s</b> password.
diff --git a/htdocs/langs/mk_MK/banks.lang b/htdocs/langs/mk_MK/banks.lang
index ba42f9a4c83..9bce7b9e29a 100644
--- a/htdocs/langs/mk_MK/banks.lang
+++ b/htdocs/langs/mk_MK/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/mk_MK/bills.lang b/htdocs/langs/mk_MK/bills.lang
index 1e83ba9b2d1..6bcd2464c1c 100644
--- a/htdocs/langs/mk_MK/bills.lang
+++ b/htdocs/langs/mk_MK/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Invoice card
 PredefinedInvoices=Predefined Invoices
 Invoice=Invoice
+PdfInvoiceTitle=Invoice
 Invoices=Invoices
 InvoiceLine=Invoice line
 InvoiceCustomer=Customer invoice
diff --git a/htdocs/langs/mk_MK/compta.lang b/htdocs/langs/mk_MK/compta.lang
index 94a3bd671ef..f8b5b683cb8 100644
--- a/htdocs/langs/mk_MK/compta.lang
+++ b/htdocs/langs/mk_MK/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/mk_MK/errors.lang b/htdocs/langs/mk_MK/errors.lang
index feada2d1b5a..853a34b4bb4 100644
--- a/htdocs/langs/mk_MK/errors.lang
+++ b/htdocs/langs/mk_MK/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/mk_MK/install.lang b/htdocs/langs/mk_MK/install.lang
index a3533a31277..5b6ba06e78a 100644
--- a/htdocs/langs/mk_MK/install.lang
+++ b/htdocs/langs/mk_MK/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner.
 PasswordAgain=Retype password a second time
 AdminPassword=Password for Dolibarr database owner.
 CreateDatabase=Create database
-CreateUser=Create owner
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Database server - Superuser access
 CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
-CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
 KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
 SaveConfigurationFile=Save values
diff --git a/htdocs/langs/mk_MK/main.lang b/htdocs/langs/mk_MK/main.lang
index a923ae109a4..fdbbc9d6bc9 100644
--- a/htdocs/langs/mk_MK/main.lang
+++ b/htdocs/langs/mk_MK/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=The file was successfully uploaded
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
 NbOfEntries=Nb of entries
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parameter
 Parameters=Parameters
 Value=Value
 PersonalValue=Personal value
+NewObject=New %s
 NewValue=New value
 CurrentValue=Current value
 Code=Code
@@ -441,6 +443,7 @@ Reporting=Reporting
 Reportings=Reporting
 Draft=Draft
 Drafts=Drafts
+StatusInterInvoiced=
 Validated=Validated
 Opened=Open
 New=New
@@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account
 AccountCurrency=Account Currency
 ViewPrivateNote=View notes
 XMoreLines=%s line(s) hidden
+ShowMoreLines=Show more lines
 PublicUrl=Public URL
 AddBox=Add box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gender
 Genderman=Man
diff --git a/htdocs/langs/mk_MK/modulebuilder.lang b/htdocs/langs/mk_MK/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/mk_MK/modulebuilder.lang
+++ b/htdocs/langs/mk_MK/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/mk_MK/orders.lang b/htdocs/langs/mk_MK/orders.lang
index 331e3b49d3e..0c59b4f4ada 100644
--- a/htdocs/langs/mk_MK/orders.lang
+++ b/htdocs/langs/mk_MK/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area
 OrderCard=Order card
 OrderId=Order Id
 Order=Order
+PdfOrderTitle=Order
 Orders=Orders
 OrderLine=Order line
 OrderDate=Order date
diff --git a/htdocs/langs/mk_MK/other.lang b/htdocs/langs/mk_MK/other.lang
index e15d490c0f2..e519f7af405 100644
--- a/htdocs/langs/mk_MK/other.lang
+++ b/htdocs/langs/mk_MK/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/mk_MK/propal.lang b/htdocs/langs/mk_MK/propal.lang
index 3fdb379c5a2..271fb44ac40 100644
--- a/htdocs/langs/mk_MK/propal.lang
+++ b/htdocs/langs/mk_MK/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals
 ProposalsOpened=Open commercial proposals
 Prop=Commercial proposals
 CommercialProposal=Commercial proposal
+PdfCommercialProposalTitle=Commercial proposal
 ProposalCard=Proposal card
 NewProp=New commercial proposal
 NewPropal=New proposal
diff --git a/htdocs/langs/mk_MK/salaries.lang b/htdocs/langs/mk_MK/salaries.lang
index 08fd2c5a451..ed296e3905f 100644
--- a/htdocs/langs/mk_MK/salaries.lang
+++ b/htdocs/langs/mk_MK/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge
 Salary=Salary
 Salaries=Salaries
diff --git a/htdocs/langs/mk_MK/website.lang b/htdocs/langs/mk_MK/website.lang
index b3b05ee6cc9..98577e0de5e 100644
--- a/htdocs/langs/mk_MK/website.lang
+++ b/htdocs/langs/mk_MK/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/mk_MK/workflow.lang b/htdocs/langs/mk_MK/workflow.lang
index 54246856e9b..8021fb9b198 100644
--- a/htdocs/langs/mk_MK/workflow.lang
+++ b/htdocs/langs/mk_MK/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Workflow module setup
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/mn_MN/accountancy.lang b/htdocs/langs/mn_MN/accountancy.lang
index d239f259a94..a7176d2e55f 100644
--- a/htdocs/langs/mn_MN/accountancy.lang
+++ b/htdocs/langs/mn_MN/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Code
 Nature=Nature
 AccountingJournalType1=Various operation
 AccountingJournalType2=Sales
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exports
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model of export
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/mn_MN/admin.lang b/htdocs/langs/mn_MN/admin.lang
index a443d04f35d..8dba7af0e0b 100644
--- a/htdocs/langs/mn_MN/admin.lang
+++ b/htdocs/langs/mn_MN/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=System tools area
 SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for.
 Purge=Purge
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory <b>%s</b>. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted.
 PurgeRunNow=Purge now
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> files or directories deleted.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Purge all security events
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Generate backup
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr current version
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Mantis integration
-Module1400Name=Accounting
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Module to offer an online payment page by credit card with Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Read discounts
 Permission402=Create/modify discounts
 Permission403=Validate discounts
 Permission404=Delete discounts
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
-PreviousDumpFiles=Available database backup dump files
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=First day of week
 RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user <b>%s</b> or you must add -W option at end of command line to provide <b>%s</b> password.
diff --git a/htdocs/langs/mn_MN/banks.lang b/htdocs/langs/mn_MN/banks.lang
index ba42f9a4c83..9bce7b9e29a 100644
--- a/htdocs/langs/mn_MN/banks.lang
+++ b/htdocs/langs/mn_MN/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/mn_MN/bills.lang b/htdocs/langs/mn_MN/bills.lang
index 1e83ba9b2d1..6bcd2464c1c 100644
--- a/htdocs/langs/mn_MN/bills.lang
+++ b/htdocs/langs/mn_MN/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Invoice card
 PredefinedInvoices=Predefined Invoices
 Invoice=Invoice
+PdfInvoiceTitle=Invoice
 Invoices=Invoices
 InvoiceLine=Invoice line
 InvoiceCustomer=Customer invoice
diff --git a/htdocs/langs/mn_MN/compta.lang b/htdocs/langs/mn_MN/compta.lang
index 94a3bd671ef..f8b5b683cb8 100644
--- a/htdocs/langs/mn_MN/compta.lang
+++ b/htdocs/langs/mn_MN/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/mn_MN/errors.lang b/htdocs/langs/mn_MN/errors.lang
index feada2d1b5a..853a34b4bb4 100644
--- a/htdocs/langs/mn_MN/errors.lang
+++ b/htdocs/langs/mn_MN/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/mn_MN/install.lang b/htdocs/langs/mn_MN/install.lang
index a3533a31277..5b6ba06e78a 100644
--- a/htdocs/langs/mn_MN/install.lang
+++ b/htdocs/langs/mn_MN/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner.
 PasswordAgain=Retype password a second time
 AdminPassword=Password for Dolibarr database owner.
 CreateDatabase=Create database
-CreateUser=Create owner
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Database server - Superuser access
 CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
-CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
 KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
 SaveConfigurationFile=Save values
diff --git a/htdocs/langs/mn_MN/main.lang b/htdocs/langs/mn_MN/main.lang
index 751e9d530c6..3e9d1c35294 100644
--- a/htdocs/langs/mn_MN/main.lang
+++ b/htdocs/langs/mn_MN/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=The file was successfully uploaded
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
 NbOfEntries=Nb of entries
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parameter
 Parameters=Parameters
 Value=Value
 PersonalValue=Personal value
+NewObject=New %s
 NewValue=New value
 CurrentValue=Current value
 Code=Code
@@ -441,6 +443,7 @@ Reporting=Reporting
 Reportings=Reporting
 Draft=Draft
 Drafts=Drafts
+StatusInterInvoiced=
 Validated=Validated
 Opened=Open
 New=New
@@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account
 AccountCurrency=Account Currency
 ViewPrivateNote=View notes
 XMoreLines=%s line(s) hidden
+ShowMoreLines=Show more lines
 PublicUrl=Public URL
 AddBox=Add box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gender
 Genderman=Man
diff --git a/htdocs/langs/mn_MN/modulebuilder.lang b/htdocs/langs/mn_MN/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/mn_MN/modulebuilder.lang
+++ b/htdocs/langs/mn_MN/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/mn_MN/orders.lang b/htdocs/langs/mn_MN/orders.lang
index 331e3b49d3e..0c59b4f4ada 100644
--- a/htdocs/langs/mn_MN/orders.lang
+++ b/htdocs/langs/mn_MN/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area
 OrderCard=Order card
 OrderId=Order Id
 Order=Order
+PdfOrderTitle=Order
 Orders=Orders
 OrderLine=Order line
 OrderDate=Order date
diff --git a/htdocs/langs/mn_MN/other.lang b/htdocs/langs/mn_MN/other.lang
index e15d490c0f2..e519f7af405 100644
--- a/htdocs/langs/mn_MN/other.lang
+++ b/htdocs/langs/mn_MN/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/mn_MN/propal.lang b/htdocs/langs/mn_MN/propal.lang
index 3fdb379c5a2..271fb44ac40 100644
--- a/htdocs/langs/mn_MN/propal.lang
+++ b/htdocs/langs/mn_MN/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals
 ProposalsOpened=Open commercial proposals
 Prop=Commercial proposals
 CommercialProposal=Commercial proposal
+PdfCommercialProposalTitle=Commercial proposal
 ProposalCard=Proposal card
 NewProp=New commercial proposal
 NewPropal=New proposal
diff --git a/htdocs/langs/mn_MN/salaries.lang b/htdocs/langs/mn_MN/salaries.lang
index 522bf0a65d7..7e0c80d3380 100644
--- a/htdocs/langs/mn_MN/salaries.lang
+++ b/htdocs/langs/mn_MN/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Salary
 Salaries=Salaries
diff --git a/htdocs/langs/mn_MN/website.lang b/htdocs/langs/mn_MN/website.lang
index b3b05ee6cc9..98577e0de5e 100644
--- a/htdocs/langs/mn_MN/website.lang
+++ b/htdocs/langs/mn_MN/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/mn_MN/workflow.lang b/htdocs/langs/mn_MN/workflow.lang
index 54246856e9b..8021fb9b198 100644
--- a/htdocs/langs/mn_MN/workflow.lang
+++ b/htdocs/langs/mn_MN/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Workflow module setup
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/nb_NO/accountancy.lang b/htdocs/langs/nb_NO/accountancy.lang
index bca435a960d..1fcdeb05f8b 100644
--- a/htdocs/langs/nb_NO/accountancy.lang
+++ b/htdocs/langs/nb_NO/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Oversikt over antall linjer som allerede er bundet
 OtherInfo=Annen informasjon
 DeleteCptCategory=Fjern regnskapskonto fra gruppe
 ConfirmDeleteCptCategory=Er du sikker på at du vil fjerne denne regnskapskontoen fra gruppen?
+JournalizationInLedgerStatus=Status for journalisering
 AlreadyInGeneralLedger=Allerede journalført i hovedbøker
+NotYetInGeneralLedger=Ikke ennå journalisert i ledgers
+
+MainAccountForCustomersNotDefined=Hoved regnskapskonto for kunder som ikke er definert i oppsettet
+MainAccountForSuppliersNotDefined=Hoved regnskapskonto for leverandører som ikke er definert i oppsettet
+MainAccountForUsersNotDefined=Hoved regnskapskonto for brukere som ikke er definert i oppsettet
+MainAccountForVatPaymentNotDefined=Hoved regnskapskonto for MVA-betaling ikke definert i oppsettet
 
 AccountancyArea=Område for regnskap
 AccountancyAreaDescIntro=Bruk av regnskapsmodulen er gjort i flere skritt:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=TRINN %s: Definer standard regnskapskontoer for
 AccountancyAreaDescSal=TRINN %s: Definer standard regnskapskonto for betaling av lønn. Bruk menyoppføring %s.
 AccountancyAreaDescContrib=TRINN %s: Definer standard regnskapskonto for spesialutgifter (diverse avgifter). Bruk menyoppføringen %s.
 AccountancyAreaDescDonation=TRINN %s: Definer standard regnskapskonto for donasjoner. Bruk menyoppføringen %s.
-AccountancyAreaDescMisc=TRINN %s: Definer standard regnskapskontoer for diverse transaksjoner. Bruk menyoppføringen %s.
+AccountancyAreaDescMisc=TRINN %s: Definer obligatorisk standardkonto og standard regnskapskontoer for diverse transaksjoner. Bruk menyoppføringen %s.
 AccountancyAreaDescLoan=TRINN %s: Definer standard regnskapskonto for lån. Bruk menyoppføringen %s.
 AccountancyAreaDescBank=TRINN %s: Definer regnskapskontoer for hver bank- og finanskonto. Gå til kortet for hver finansiell konto for å gjøre dette. Du kan starte fra side %s.
 AccountancyAreaDescProd=TRINN %s: Definer regnskapskontoer for dine varer/tjenester. Bruk menyoppføringen %s.
@@ -79,11 +86,11 @@ SuppliersVentilation=Binding av leverandørfakturaer
 ExpenseReportsVentilation=Utgiftsrapport-binding
 CreateMvts=Opprett ny transaksjon
 UpdateMvts=Endre en transaksjon
-ValidTransaction=Validate transaction
+ValidTransaction=Valider transaksjonen
 WriteBookKeeping=Før transaksjoner inn i hovedboken
 Bookkeeping=Hovedbok
 AccountBalance=Kontobalanse
-
+ObjectsRef=Kildeobjekt ref
 CAHTF=Totalt leverandørkjøp eks. MVA
 TotalExpenseReport=Total utgiftsrapport
 InvoiceLines=Binding av fakturalinjer
@@ -154,7 +161,7 @@ DelBookKeeping=Slett post fra hovedboken
 FinanceJournal=Finansjournal
 ExpenseReportsJournal=Journal for utgiftsrapporter
 DescFinanceJournal=Finansjournal med alle typer betalinger etter bankkonto
-DescJournalOnlyBindedVisible=Dette er en oversikt over posten som er bundet til varer-/tjenester-regnskapskontoen og kan registreres i regnskapsboken.
+DescJournalOnlyBindedVisible=Dette er en oversikt over postene som er bundet til regnskapskonto og kan registreres i hovedboken.
 VATAccountNotDefined=MVA-konto er ikke definert
 ThirdpartyAccountNotDefined=Konto for tredjepart er ikke definert
 ProductAccountNotDefined=Konto for vare er ikke definert
@@ -170,6 +177,8 @@ AddCompteFromBK=Legg til regnskapskontoer til gruppen
 ReportThirdParty=List tredjepartskonto
 DescThirdPartyReport=Liste over kunder og leverandører og deres regnskapskontoer
 ListAccounts=Liste over regnskapskontoer
+UnknownAccountForThirdparty=Ukjent tredjepartskonto. Vi vil bruke %s
+UnknownAccountForThirdpartyBlocking=Ukjent tredjepartskonto. Blokkeringsfeil
 
 Pcgtype=Kontoklasse
 Pcgsubtype=Subklasse av konto
@@ -194,7 +203,7 @@ ValidateHistory=Bind automatisk
 AutomaticBindingDone=Automatisk binding utført
 
 ErrorAccountancyCodeIsAlreadyUse=Feil, du kan ikke slette denne regnskapskontoen fordi den er i bruk
-MvtNotCorrectlyBalanced=Bevegelse er ikke korrekt balansert. Kredit=%s. Debet=%s
+MvtNotCorrectlyBalanced=Bevegelsen er ikke riktig balansert. Kreditt = %s. Debet = %s
 FicheVentilation=Binding-kort
 GeneralLedgerIsWritten=Transaksjoner blir skrevet inn i hovedboken
 GeneralLedgerSomeRecordWasNotRecorded=Noen av transaksjonene kunne ikke sendes. Hvis det ikke er noen annen feilmelding, er dette trolig fordi de allerede var sendt.
@@ -210,7 +219,6 @@ AccountingJournals=Regnskapsjournaler
 AccountingJournal=Regnskapsjournal
 NewAccountingJournal=Ny regnskapsjourna
 ShowAccoutingJournal=Vis regnskapsjournal
-Code=Kode
 Nature=Natur
 AccountingJournalType1=Ulike operasjoner
 AccountingJournalType2=Salg
@@ -221,8 +229,6 @@ AccountingJournalType9=Har nye
 ErrorAccountingJournalIsAlreadyUse=Denne journalen er allerede i bruk
 
 ## Export
-Exports=Eksporter
-Export=Eksport
 ExportDraftJournal=Eksporter utkastjournal
 Modelcsv=Eksportmodell
 OptionsDeactivatedForThisExportModel=For denne eksportmodellen er opsjoner deaktivert
diff --git a/htdocs/langs/nb_NO/admin.lang b/htdocs/langs/nb_NO/admin.lang
index 484e41f90b7..6e99694db92 100644
--- a/htdocs/langs/nb_NO/admin.lang
+++ b/htdocs/langs/nb_NO/admin.lang
@@ -28,7 +28,7 @@ SessionId=Økt-ID
 SessionSaveHandler=Håndterer for å lagre sesjoner
 SessionSavePath=Sted for lagring av økt 
 PurgeSessions=Utrenskning av øktene
-ConfirmPurgeSessions=Har du virkelig ønsker å rense alle økter? Dette vil frakoble alle brukere (bortsett fra deg selv).
+ConfirmPurgeSessions=Vil du virkelig rense alle økter? Dette vil frakoble alle brukere (bortsett fra deg selv).
 NoSessionListWithThisHandler=Øktlagrings-behandleren i PHP tillater ikke å vise alle kjørende økter.
 LockNewSessions=Lås nye tilkoblinger
 ConfirmLockNewSessions=Er du sikker på at du vil begrense eventuelle nye Dolibarr tilkoblinger til deg selv?. Bare brukeren <b>%s</b> vil kunne koble til etter det.
@@ -140,13 +140,14 @@ SystemToolsArea=Område for systemverktøy
 SystemToolsAreaDesc=Dette området gir tilgang til administrasjonsfunksjonene. Bruk menyen for å velge funksjonen du ønsker.
 Purge=Utrenskning
 PurgeAreaDesc=Denne siden lar deg slette alle filer generert eller lagret av Dolibarr (midlertidige filer eller alle filene i <b>%s</b> katalogen). Det er ikke nødvendig å bruke denne funksjonen. Den er gitt som en midlertidig løsning for brukere som har Dolibarr hos en leverandør som ikke har tilgang til å slette filer generert av webserveren.
-PurgeDeleteLogFile=Slett loggfil <b>%s</b> definert for Syslog-modulen (det er ingen risiko for å miste data)
+PurgeDeleteLogFile=Slett loggfiler, inkludert <b>%s</b> definert for Syslog-modulen (ingen risiko for å miste data)
 PurgeDeleteTemporaryFiles=Slett alle temporære filer (du mister ingen data)
 PurgeDeleteTemporaryFilesShort=Slett temporære filer
 PurgeDeleteAllFilesInDocumentsDir=Slett alle filer i mappen <b>%s</b>. Dette vil slette midlertidige filer, database sikkerhetskopier og filer som er lastet opp som vedlegg til elementer (tredjeparter, fakturaer osv. ). Alle filer lastet opp i ECM-modulen vil bli slettet.
 PurgeRunNow=Start utrenskning
 PurgeNothingToDelete=Ingen mapper eller filer å slette.
 PurgeNDirectoriesDeleted=<b>%s</b> filer eller mapper slettet.
+PurgeNDirectoriesFailed=Kunne ikke slette <b>%s</b> filer eller kataloger.
 PurgeAuditEvents=Fjern alle sikkerhetshendelser
 ConfirmPurgeAuditEvents=Er du sikker på at du vil rense alle sikkerhetshendelser? Alle sikkerhetslogger vil bli slettet, ingen andre data vil bli fjernet.
 GenerateBackup=Opprett sikkerhetskopi
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Moduldistribusjon er ferdig. Du må imidlertid aktivere og se
 NotExistsDirect=Alternativ rotkatalog er ikke definert til en eksisterende katalog.<br>
 InfDirAlt=Fra versjon 3 er det mulig å definere en alternativ rotkatalog. Dette gjør det mulig å lagre plug-ins og egendefinerte maler.<br>Opprett en katalog i roten til Dolibarr (f.eks min katalog).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>Hvis disse linjene er markert med "#", er de deaktivert. For å aktivere dem er det bare å fjerne "#".
-YouCanSubmitFile=I dette trinnet kan du sende pakken med dette verktøyet: Velg modulfil
+YouCanSubmitFile=For dette trinnet kan du sende inn pakkefilen din her:
 CurrentVersion=Gjeldende versjon av Dolibarr 
 CallUpdatePage=Gå til siden som oppdaterer data og databasestruktur: %s.
 LastStableVersion=Siste stabile versjon
@@ -535,8 +536,6 @@ Module1120Name=Leverandørtilbud
 Module1120Desc=Forespør leverandørtilbud og tilbud
 Module1200Name=Mantis
 Module1200Desc=Mantisintegrasjon
-Module1400Name=Regnskap
-Module1400Desc=Regnskapsstyring (dobbeltoppføringer)
 Module1520Name=Dokumentgenerering
 Module1520Desc=Masse-epost dokumentgenerering
 Module1780Name=Merker/kategorier
@@ -585,7 +584,7 @@ Module50100Desc=Salgssted-modul (POS).
 Module50200Name=Paypal
 Module50200Desc=Modul for å tilby onlinebetaling Paypal
 Module50400Name=Regnskap (avansert)
-Module50400Desc=Regnskapsstyring (dobbeltoppføringer)
+Module50400Desc=Regnskapsadministrasjon (dobbeltoppføringer, generell støtte og hjelpeledger)
 Module54000Name=PrintIPP
 Module54000Desc=Direkteutskrift (uten å åpne dokumentet)ved hjelp av CUPS IPP inteface (Skriveren må være synlig for serveren, og CUPS må være installert på serveren)
 Module55000Name=Meningsmåling, undersøkelse eller avstemming
@@ -751,8 +750,10 @@ Permission401=Vis rabatter
 Permission402=Opprett/endre rabatter
 Permission403=Valider rabatter
 Permission404=Slett rabatter
-Permission510=Les Lønn
-Permission512=Opprett/endre lønn
+Permission501=Les arbeidskontrakter/lønn
+Permission502=Opprett/endre arbeidskontrakter/lønn
+Permission511=Les lønnsutbetalinger
+Permission512=Opprett/endre betaling av lønn
 Permission514=Slett lønn
 Permission517=Eksporter lønn
 Permission520=Les lån
@@ -1057,7 +1058,7 @@ RestoreDesc2=Gjenopprett arkivfil (zip-fil for eksempel) av dokumentmappe for å
 RestoreDesc3=Gjenopprett data fra en backup-fil til databasen i den nye Dolibarr-installasjon eller til databasen av gjeldende installasjon (<b>%s</b>). Advarsel! Når gjenopprettingen er ferdig, må du bruke et brukernavn/passord, som fantes da sikkerhetskopien ble laget, for å koble til igjen. For å gjenopprette en sikkerhetskopiert database til gjeldende installasjon, kan du følge denne assistenten:
 RestoreMySQL=MySQL import
 ForcedToByAModule= Denne regelen er tvunget til å <b>%s</b> av en aktivert modul
-PreviousDumpFiles=Tilgjengelige databasebackup dumpfiler
+PreviousDumpFiles=Genererte database backup-filer
 WeekStartOnDay=Første dag i uken
 RunningUpdateProcessMayBeRequired=Kjøring av oppgraderingen ser ut til å være nødvendig (Programversjon %s er forskjellig fra databaseversjon %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=Du må kjøre denne kommandoen fra kommandolinjen etter innlogging til et skall med brukeren <b>%s.</b>
diff --git a/htdocs/langs/nb_NO/banks.lang b/htdocs/langs/nb_NO/banks.lang
index 2caee4fc8b8..f56febfa55a 100644
--- a/htdocs/langs/nb_NO/banks.lang
+++ b/htdocs/langs/nb_NO/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Returnert sjekk og faktura gjenåpnet
 BankAccountModelModule=Dokumentmaler for bankkontoer
 DocumentModelSepaMandate=Mal for SEPA-mandat. Gjelder kun EU.
 DocumentModelBan=Mal for å skrive ut en side med BAN-informasjon
-NewVariousPayment=Ny varierende betaling
-VariousPayment=Varierende betaling
-VariousPayments=Varierende betalinger
-ShowVariousPayment=Vis varierende betaling
+NewVariousPayment=Nye diverse betaling
+VariousPayment=Diverse utbetalinger
+VariousPayments=Diverse utbetalinger
+ShowVariousPayment=Vis diverse betalinger
diff --git a/htdocs/langs/nb_NO/bills.lang b/htdocs/langs/nb_NO/bills.lang
index 6f6766ee038..78392ac541e 100644
--- a/htdocs/langs/nb_NO/bills.lang
+++ b/htdocs/langs/nb_NO/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Var kilde til en eller flere kreditnotaer
 CardBill=Fakturakort
 PredefinedInvoices=Forhåndsdefinerte fakturaer
 Invoice=Faktura
+PdfInvoiceTitle=Faktura
 Invoices=Fakturaer
 InvoiceLine=Fakturalinje
 InvoiceCustomer=Kundefaktura
diff --git a/htdocs/langs/nb_NO/compta.lang b/htdocs/langs/nb_NO/compta.lang
index 888cfd798cd..50a44941544 100644
--- a/htdocs/langs/nb_NO/compta.lang
+++ b/htdocs/langs/nb_NO/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Standard regnskapskonto for å utgående MVA - MVA p
 ACCOUNTING_VAT_BUY_ACCOUNT=Standard regnskapskonto for å inngående MVA - MVA på kjøp (brukes hvis ikke definert i oppsett av MVA-ordboken)
 ACCOUNTING_VAT_PAY_ACCOUNT=Standard regnskapskonto for MVA.betaling
 ACCOUNTING_ACCOUNT_CUSTOMER=Regnskapskonto brukt til kunde-tredjepart
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedikert regnskapskonto definert på tredjepartskort som vil bli brukt til regnskapsføring i sub-hovedbok, denne er for hovedboken eller som standardverdi av sub-hovedboksregnskap hvis dedikert kunde-regnskapskonto på tredjepart ikke er definert
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Den dedikerte regnskapskontoen som er definert på tredjepartskort, vil kun bli brukt til subledger. Denne vil bli brukt til hovedboken og som standardverdi av Subledger-regnskap hvis dedikert kundekonto på tredjepart ikke er definert.
 ACCOUNTING_ACCOUNT_SUPPLIER=Regnskapskonto brukt til leverandør-tredjepart
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedikert regnskapskonto definert på tredjepartskort som vil bli brukt til regnskapsføring i sub-hovedbok, denne er for hovedboken eller som standardverdi av sub-hovedboksregnskap hvis dedikert leverandør-regnskapskonto på tredjepart ikke er definert
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Den dedikerte regnskapskonto som er definert på tredjepartskort, vil kun bli brukt til subledger. Denne vil bli brukt til hovedboken og som standardverdi for Subledger-regnskap hvis dedikert leverandørkonto på tredjepart ikke er definert.
 CloneTax=Klon skatt/avgift
 ConfirmCloneTax=Bekreft kloning av skatt/avgiftsbetaling
 CloneTaxForNextMonth=Klon for neste måned
diff --git a/htdocs/langs/nb_NO/errors.lang b/htdocs/langs/nb_NO/errors.lang
index 3a9bd9b18f9..27e7552a9dd 100644
--- a/htdocs/langs/nb_NO/errors.lang
+++ b/htdocs/langs/nb_NO/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Feil, duplikat utløsernavn %s. Allerede lastet fra %s.
 ErrorNoWarehouseDefined=Feil, ingen lagre definert.
 ErrorBadLinkSourceSetButBadValueForRef=Lenken du bruker er ikke gyldig. En 'kilde' for betaling er definert, men verdien for 'ref' er ikke gyldig.
 ErrorTooManyErrorsProcessStopped=For mange feil. Prosessen ble stoppet.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Massvalidering er ikke mulig når alternativet for å øke/redusere lager er satt til denne handlingen (du må validere en etter en slik at du kan definere varehuset for å øke/redusere)
+ErrorObjectMustHaveStatusDraftToBeValidated=Objekt %s må ha status 'Kladd' for å kunne valideres.
+ErrorObjectMustHaveLinesToBeValidated=Objekt %s må ha linjer for å kunne valideres.
 
 # Warnings
 WarningPasswordSetWithNoAccount=Et passord ble satt for dette medlemmet, men ingen brukerkonto ble opprettet. Det fører til at passordet ikke kan benyttes for å logge inn på Dolibarr. Det kan brukes av en ekstern modul/grensesnitt, men hvis du ikke trenger å definere noen innlogging eller passord for et medlem, kan du deaktivere alternativet "opprett en pålogging for hvert medlem" fra medlemsmodul-oppsettet. Hvis du trenger å administrere en pålogging, men ikke trenger noe passord, kan du holde dette feltet tomt for å unngå denne advarselen. Merk: E-post kan også brukes som en pålogging dersom medlemmet er knyttet til en bruker.
diff --git a/htdocs/langs/nb_NO/install.lang b/htdocs/langs/nb_NO/install.lang
index 3fa40e57b51..27385ed7722 100644
--- a/htdocs/langs/nb_NO/install.lang
+++ b/htdocs/langs/nb_NO/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Logginn for Dolibarr databaseeier.
 PasswordAgain=Skriv inn passordet en gang
 AdminPassword=Passord for Dolibarr databaseeier.
 CreateDatabase=Opprett database
-CreateUser=Lag eier
+CreateUser=Opprett eier eller gi ham tillatelse på databasen
 DatabaseSuperUserAccess=Databaseserver - Superbruker tilgang
 CheckToCreateDatabase=Kryss av i boksen hvis databasen ikke finnes og må opprettes.<br> I dette tilfellet må du fylle brukernavn/passord for superbrukerkontoen nederst på denne siden.
-CheckToCreateUser=Kryss av i boksen hvis databaseeier ikke eksisterer og må opprettes.<br>I dette tilfellet må du velge brukernavn og passord, og også fylle brukernavn/passord for superbrukerkontoen nederst på denne siden. Hvis denne boksen er avkrysset, må databaseeier og passord finnes.
+CheckToCreateUser=Kryssrute hvis databaseeier ikke eksisterer og må opprettes, eller hvis den eksisterer, men databasen ikke, og tillatelser må gis. <br> I dette tilfellet må du velge innlogging og passord og også fylle innloggingen/passordet for Superbrukerkontoen nederst på denne siden. Hvis denne boksen ikke er merket, må eierdatabasen og passordene eksistere.
 DatabaseRootLoginDescription=Pålogging til bruker med tillatelse til å opprette nye databaser eller nye brukere, obligatorisk hvis databasen eller dens eier ikke allerede eksisterer.
 KeepEmptyIfNoPassword=La være tomt hvis bruker ikke har passord (unngå dette)
 SaveConfigurationFile=Lagre verdier
diff --git a/htdocs/langs/nb_NO/main.lang b/htdocs/langs/nb_NO/main.lang
index c408291cbbd..5459e285537 100644
--- a/htdocs/langs/nb_NO/main.lang
+++ b/htdocs/langs/nb_NO/main.lang
@@ -73,9 +73,10 @@ Apply=Legg til
 BackgroundColorByDefault=Standard bakgrunnsfarge
 FileRenamed=Filen har fått nytt navn
 FileGenerated=Filen ble opprettet
-FileSaved=The file was successfully saved
+FileSaved=Filen ble lagret
 FileUploaded=Opplastningen var vellykket
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=Fil(er) ble lastet opp
+FilesDeleted=Fil(er) slettet
 FileWasNotUploaded=En fil er valgt som vedlegg, men er ennå ikke lastet opp. Klikk på "Legg ved fil" for dette.
 NbOfEntries=Antall oppføringer
 GoToWikiHelpPage=Les online-hjelp (Du må være tilknyttet internett)
@@ -196,6 +197,7 @@ Parameter=Parameter
 Parameters=Parametre
 Value=Verdi
 PersonalValue=Personlig verdi
+NewObject=Ny %s
 NewValue=Ny verdi
 CurrentValue=Gjeldende verdi
 Code=Kode
@@ -441,6 +443,7 @@ Reporting=Rapportering
 Reportings=Rapportering
 Draft=Kladd
 Drafts=Kladder
+StatusInterInvoiced=
 Validated=Validert
 Opened=Åpent
 New=Ny
@@ -727,6 +730,7 @@ SetBankAccount=Definer Bankkonto
 AccountCurrency=Konto Valuta
 ViewPrivateNote=Vis notater
 XMoreLines=%s linje(r) skjult
+ShowMoreLines=Vis flere linjer
 PublicUrl=Offentlig URL
 AddBox=Legg til boks
 SelectElementAndClick=Velg et element og klikk %s
@@ -735,6 +739,7 @@ ShowTransaction=Vis oppføring på bankkonto
 GoIntoSetupToChangeLogo=Gå til Hjem - Oppsett - Firma for å skifte logo eller Hjem - Oppsett -  Display for å skjule.
 Deny=Avvis
 Denied=Avvist
+ListOf=Liste over %s
 ListOfTemplates=Liste over maler
 Gender=Kjønn
 Genderman=Mann
diff --git a/htdocs/langs/nb_NO/modulebuilder.lang b/htdocs/langs/nb_NO/modulebuilder.lang
index bb45721bb24..6c12a34f3cb 100644
--- a/htdocs/langs/nb_NO/modulebuilder.lang
+++ b/htdocs/langs/nb_NO/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=Disse verktøyene må kun brukes av erfarne brukere eller utviklere. Det gir deg et verktøy til å bygge eller redigere din egen modul (Dokumentasjon for alternativ <a href="%s" target="_blank"> manuell utvikling er her </a>).
 EnterNameOfModuleDesc=Skriv inn navnet på modulen/applikasjonen du  vil opprette, uten mellomrom. Bruk stor bokstav til å skille ord (For eksempel: MyModule, EcommerceForShop, SyncWithMySystem ...)
-EnterNameOfObjectDesc=Skriv inn navnet på objektet som skal opprettes, uten å bruke mellomrom. Bruk store bokstaver til å skille ord (For eksempel: MittObjeKt, Student, Lærer ...)
+EnterNameOfObjectDesc=Skriv inn navnet på objektet som skal opprettes, uten mellomrom. Bruk stor bokstav til å skille ord (For eksempel: MyObject, Student, Lærer ...). CRUD-klassefilen, men også API-filen, sider for å liste/legge til/redigere/slette objekt og SQL-filer blir generert .
 ModuleBuilderDesc2=Sti hvor moduler genereres/redigeres (første alternative katalog definert i %s): <strong>%s</strong>
 ModuleBuilderDesc3=Genererte / redigerbare moduler funnet: <strong> %s</strong> (de oppdages som redigerbare når filen <strong> %s</strong> eksisterer i roten av modulkatalogen).
 NewModule=Ny modul
@@ -9,13 +9,14 @@ NewObject=Nytt objekt
 ModuleKey=Modulnøkkel
 ObjectKey=Objektnøkkel
 ModuleInitialized=Modul initialisert
-FilesForObjectInitialized=Filer for nytt objekt initialisert
+FilesForObjectInitialized=Filer for nytt objekt '%s' initialisert
+FilesForObjectUpdated=Filer for objektet '%s' oppdatert (.sql-filer og .class.php-fil)
 ModuleBuilderDescdescription=Her skriver du inn all generell informasjon som beskriver modulen din
-ModuleBuilderDescspecifications=Du kan skrive inn en lang tekst for å beskrive spesifikasjonene til modulen din, som ikke allerede er strukturert i andre faner. Da har du plass til utviklingsregler. Også dette tekstinnholdet vil bli inkludert i den genererte dokumentasjonen (se siste faneblad).
-ModuleBuilderDescobjects=Definer de objektene du vil administrere med modulen din her. En sql-fil, en side for å liste dem, en for å opprette/redigere/vise et kort og en API, vil bli generert.
+ModuleBuilderDescspecifications=Du kan skrive inn en lang tekst for å beskrive spesifikasjonene til modulen din, som ikke allerede er strukturert i andre faner. Du har alle reglene som skal utvikles innen rekkevidde. Også dette tekstinnholdet vil bli inkludert i den genererte dokumentasjonen (se siste faneblad). Du kan bruke Markdown-format, men det anbefales at du bruker Asciidoc-formatet (Sammenligning mellom .md og .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Her defineres de objektene du vil administrere med modulen din. En CRUD DAO-klasse, SQL-filer, en side med en oversikt over objekter, å opprette/redigere/vise en post og en API vil bli generert.
 ModuleBuilderDescmenus=Denne fanen er dedikert for å definere menyoppføringer som tilbys av modulen din.
 ModuleBuilderDescpermissions=Denne fanener dedikert til å definere de nye tillatelsene du vil gi med modulen din.
-ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
+ModuleBuilderDesctriggers=Dette er visningen av utløsere som tilbys av modulen din. Hvis du vil inkludere kode kjøres når en utløst forretningsaktivitet er startet, må du redigere denne filen.
 ModuleBuilderDeschooks=Denne fanen er til kroker.
 ModuleBuilderDescwidgets=Denne fanen er for å administrere/bygge widgeter.
 ModuleBuilderDescbuildpackage=Her kan du generere en "klar til å distribuere" pakkefil (en normalisert .zip-fil) av modulen din og en "klar til å distribuere" dokumentasjonsfil. Klikk på knappen for å bygge pakken eller dokumentasjonsfilen.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=Du kan slette et objekt. ADVARSEL: Alle filer rela
 DangerZone=Faresone
 BuildPackage=Bygg pakke/dokumentasjon
 BuildDocumentation=Bygg dokumentasjon
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=Denne modulen er ikke aktivert enda. Gå til %s for å aktivere eller klikk her:
 ModuleIsLive=Denne modulen er blitt aktivert. Enhver endring på den kan ødelegge en gjeldende aktiv funksjon.
 DescriptionLong=Lang beskrivelse
 EditorName=Navn på editor
@@ -38,3 +39,18 @@ PathToModulePackage=Sti til zip-fil av modul/applikasjonspakke
 PathToModuleDocumentation=Sti til fil med modul/applikasjonsdokumentasjon
 SpaceOrSpecialCharAreNotAllowed=Mellomrom eller spesialtegn er ikke tillatt.
 FileNotYetGenerated=Filen er ikke generert ennå
+SpecificationFile=Fil med forretningsregler
+ConfirmDeleteProperty=Er du sikker på at du vil slette egenskapen<strong> %s</strong>? Dette vil endre kode i PHP klassen, og fjerne kolonne fra tabelldefinisjon av objekt.
+NotNull=Ikke NULL
+SearchAll=Brukt for 'søk alle'
+DatabaseIndex=Database indeks
+FileAlreadyExists=Filen %s eksisterer allerede
+TriggersFile=Fil for trigger-koder
+HooksFile=Fil for hooks-koder
+WidgetFile=Widget-fil
+ReadmeFile=Readme-fil
+ChangeLog=ChangeLog-fil
+SqlFile=Sql-fil
+SqlFileKey=Sql-fil for nøkler
+AnObjectAlreadyExistWithThisNameAndDiffCase=Et objekt eksisterer allerede med dette navnet
+UseAsciiDocFormat=Du kan bruke Markdown-format, men det anbefales at du bruker Asciidoc-formatet (Sammenligning mellom .md og .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/nb_NO/multicurrency.lang b/htdocs/langs/nb_NO/multicurrency.lang
index 9f3fc646c57..c9ef198f1cb 100644
--- a/htdocs/langs/nb_NO/multicurrency.lang
+++ b/htdocs/langs/nb_NO/multicurrency.lang
@@ -4,7 +4,8 @@ ErrorAddRateFail=Feil i ny rate
 ErrorAddCurrencyFail=Feil i ny valuta
 ErrorDeleteCurrencyFail=Feil, sletting mislykkes
 multicurrency_syncronize_error=Synkroniseringsfeil: %s
-multicurrency_useOriginTx=Når et objekt er opprettet fra et annet, behold den opprinnelige raten til kildeobjektet (ellers bruk den nye kjente rate)
+MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Bruk dokumentdato for å finne valutakurs, i stedet for å bruke sist kjente kurs
+multicurrency_useOriginTx=Når et objekt opprettes fra et annet, behold den opprinnelige kursen til kildeobjektet (ellers bruk den siste kjente kursen)
 CurrencyLayerAccount=CurrencyLayer API
 CurrencyLayerAccount_help_to_synchronize=Du må opprette en konto på deres nettside for å bruke denne funksjonaliteten. <br /> Få din <b> API-nøkkel </b> <br /> Hvis du bruker en gratis konto, kan du ikke endre <b> valutakilden </b> (USD som standard) <br /> Men hvis hovedvalutaen din ikke er USD, kan du bruke <b> alternativ valutakilde </b> for å tvinge annen hovedvaluta <br /> <br /> Du er begrenset til 1000 synkroniseringer per måned
 multicurrency_appId=API-nøkkel
diff --git a/htdocs/langs/nb_NO/orders.lang b/htdocs/langs/nb_NO/orders.lang
index c22da7525b1..e66608da805 100644
--- a/htdocs/langs/nb_NO/orders.lang
+++ b/htdocs/langs/nb_NO/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Område for leverandørordre
 OrderCard=Ordrekort
 OrderId=Ordre-ID
 Order=Ordre
+PdfOrderTitle=Ordre
 Orders=Ordre
 OrderLine=Ordrelinje
 OrderDate=Ordredato
diff --git a/htdocs/langs/nb_NO/other.lang b/htdocs/langs/nb_NO/other.lang
index 69f73268e4e..1c50951ff74 100644
--- a/htdocs/langs/nb_NO/other.lang
+++ b/htdocs/langs/nb_NO/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Forrige måned (tekst) av fakturadato
 NextMonthOfInvoice=Følgende måned (nummer 1-12) på fakturadato
 TextNextMonthOfInvoice=Følgende måned (tekst) på fakturadato
 ZipFileGeneratedInto=Zip-fil generert til <b> %s</b>.
+DocFileGeneratedInto=Doc-fil generert til <b> %s</b>.
 
 YearOfInvoice=År av fakturadato
 PreviousYearOfInvoice=Forrige års fakturadato
@@ -172,7 +173,7 @@ NumberOfSupplierInvoices=Antall leverandørfakturaer
 NumberOfUnitsProposals=Antall enheter i tilbud
 NumberOfUnitsCustomerOrders=Antall enheter i kundeordre
 NumberOfUnitsCustomerInvoices=Antall enheter i kundefakturaer
-NumberOfUnitsSupplierProposals=Antall enheter på leverandørtilbud
+NumberOfUnitsSupplierProposals=Antall enheter i leverandørtilbud
 NumberOfUnitsSupplierOrders=Antall enheter på leverandørordre
 NumberOfUnitsSupplierInvoices=Antall enheter i leverandørfakturaer
 EMailTextInterventionAddedContact=En ny intervensjon %s er blitt tildelt deg.
diff --git a/htdocs/langs/nb_NO/propal.lang b/htdocs/langs/nb_NO/propal.lang
index 7d25b39d51d..709fa94e737 100644
--- a/htdocs/langs/nb_NO/propal.lang
+++ b/htdocs/langs/nb_NO/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Tilbudskladder
 ProposalsOpened=Åpne tilbud
 Prop=Tilbud
 CommercialProposal=Tilbud
+PdfCommercialProposalTitle=Tilbud
 ProposalCard=Tilbudskort
 NewProp=Nytt tilbud
 NewPropal=Nytt tilbud
diff --git a/htdocs/langs/nb_NO/salaries.lang b/htdocs/langs/nb_NO/salaries.lang
index 1d30a89950f..5a017357ac4 100644
--- a/htdocs/langs/nb_NO/salaries.lang
+++ b/htdocs/langs/nb_NO/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Regnskapskonto brukt til tredjepartsbrukere
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedikert regnskapskonto definert på brukerkort vil bli brukt til Subledger-regnskap, dette for hovedboken eller som standardverdi for Subledger-regnskap hvis dedikert bruker-regnskapskonto på bruker ikke er definert
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Regnskapskontoen som er definert på brukerkort, vil kun bli brukt til bruk av Subledger regnskap. Denne vil bli brukt til hovedboken og som standardverdi for Subledger-regnskap hvis dedikert bruker-regnskapskonto ikke er definert.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Standard regnskapskonto for personalutgifter
 Salary=Lønn
 Salaries=Lønn
diff --git a/htdocs/langs/nb_NO/website.lang b/htdocs/langs/nb_NO/website.lang
index 09df8e16e1d..842e12d5eb2 100644
--- a/htdocs/langs/nb_NO/website.lang
+++ b/htdocs/langs/nb_NO/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Sett inn antall ulike websider du ønsker. Deretter kan du redi
 DeleteWebsite=Slett wedside
 ConfirmDeleteWebsite=Er du sikker på at du vil slette denne websiden? Alle sider og innhold vil bli slettet.
 WEBSITE_PAGENAME=Sidenavn/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL til ekstern CSS-fil
 WEBSITE_CSS_INLINE=CSS-innhold
-PageNameAliasHelp=Navn eller alias på siden. <br> Dette aliaset brukes også til å smi en SEO-URL når nettstedet leses fra en virtuell vert for en webserver (som Apacke, Nginx, ...). Bruk knappen "<strong> %s </strong>" for å redigere dette aliaset.
+PageNameAliasHelp=Navn eller alias på siden. <br> Dette aliaset brukes også til å lage en SEO-URL når nettsiden blir kjørt fra en virtuell vert til en webserver (som Apacke, Nginx, ...). Bruk knappen "<strong>%s</strong>" for å redigere dette aliaset.
 MediaFiles=Mediabibliotek
-EditCss=Endre stil/CSS
+EditCss=Rediger stil/CSS eller HTML-header
 EditMenu=Rediger meny
 EditPageMeta=Rediger Metadata
 EditPageContent=Rediger innhold
 Website=Webside
-Webpage=Webside
-AddPage=Legg til side
+Webpage=Nettsted/container
+AddPage=Legg til side/container
 HomePage=Hjemmeside
 PreviewOfSiteNotYetAvailable=Forhåndsvisning av websiden din <strong>%s</strong> er ikke tilgjengelig enda. Du må først legge til en side.
 RequestedPageHasNoContentYet=Forespurt side med id %s har ikke noe innhold enda, eller cachefilen .tpl.php ble fjernet. Rediger innhold på siden for å løse dette.
-PageDeleted=Siden '%s' på webside %s slettet
-PageAdded=Side '%s' lagt til
+PageContent=Side/Container
+PageDeleted=Side/Container '%s' på nettstedet %s slettet
+PageAdded=Side/Container '%s' lagt til
 ViewSiteInNewTab=Vis webside i ny fane
 ViewPageInNewTab=Vis side i ny fane
 SetAsHomePage=Sett som startside
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=Vis webside ved hjelp av  hjemme-URL
 SetHereVirtualHost=Hvis du kan opprette, på din webserver (Apache, Nginx, ...), en dedikert Virtual Host med PHP aktivert og en Root-katalog på <strong>%s</strong><br>og skriv deretter inn det virtuelle vertsnavnet du har opprettet, slik at forhåndsvisningen kan gjøres også ved hjelp av denne direkte webservertilgangen, og ikke bare ved hjelp av Dolibarr-serveren.
 PreviewSiteServedByWebServer=Forhåndsvis %s i en ny fane. <br> <br> %s vil bli kjørt på en ekstern webserver (som Apache, Nginx, IIS). Du må installere og sette opp denne serveren før du peker på katalogen: <br> <strong>%s</strong>  <br> URL til ekstern server: <br> <strong> %s</strong>
 PreviewSiteServedByDolibarr=Forhåndsvis%s i en ny fane. <br> <br> %s vil bli servet av Dolibarr-serveren, slik at det ikke trengs noen ekstra webserver (som Apache, Nginx, IIS) som skal installeres. <br> Nettadressene til sidene er ikke brukervennlige og starter med banen til Dolibarr. <br> URL servet av Dolibarr:<br><strong>%s</strong><br><br> For å bruke din egen eksterne webserver til å betjene denne websiden , opprett en virtuell vert på webserveren din som peker på katalogen <br><strong>%s</strong><br>og skriv deretter inn navnet på denne virtuelle serveren og klikk på den andre forhåndsvisningsknappen.
+VirtualHostUrlNotDefined=URL til ekstern webserver ikke definert
 NoPageYet=Ingen sider ennå
+SyntaxHelp=Hjelp med kodesyntax
+YouCanEditHtmlSource=Du kan redigere HTML-kildekode ved hjelp av "Kilde" -knappen i redigeringsprogrammet. Du kan også inkludere PHP-kode i denne kilden ved hjelp av tagger <strong> &lt;?php?&gt;</strong>. Følgende globale variabler er tilgjengelige: $conf, $langs, $db, $mysoc, $user, $website. <br> <br> Du kan også inkludere innhold fra en annen side/container med følgende syntaks: <strong> &lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br> Hvis du vil inkludere en lenke for å laste ned en fil som er lagret i document/medias katalogen, bruk syntaks: <br><strong> &lt;a href="/document.php?modulepart=media&file=filnavn.ext"&gt</strong>.
+ClonePage=Klon side/container
+CloneSite=Klon side
diff --git a/htdocs/langs/nb_NO/workflow.lang b/htdocs/langs/nb_NO/workflow.lang
index 5ee55a81c2c..837d5d2a07a 100644
--- a/htdocs/langs/nb_NO/workflow.lang
+++ b/htdocs/langs/nb_NO/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Oppsett av Arbeidsflyt-modulen 
 WorkflowDesc=Denne modulen er laget for å sette opp automatiske hendelser i programmet. Som standard er arbeidsflyt-modulen åpen (du kan gjøre ting i de rekkefølgen du ønsker). Du kan aktivere de automatiske hendelsene du vil.
 ThereIsNoWorkflowToModify=Det er ingen arbeidsflyt-modifikasjoner tilgjengelig med aktiverte moduler.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatisk opprettelse av kundeordre etter at et tilbud er signert
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Opprett automatisk en kundefaktura når et tilbud er signert
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Opprett en kundeordre automatisk etter at et tilbud er signert (ny ordre vil ha samme beløp som tilbud)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Opprett en kundefaktura automatisk etter at et tilbud er signert (ny faktura vil ha samme beløp som tilbud)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Opprett automatisk en kundefaktura når en kontrakt er validert
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Opprett automatisk en kundefaktura når en kundeordre er lukket
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Klassifiser tilbud som fakturert når kundeordre er satt til betalt
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Klassifiser kundeordre(r) som fakturert når faktura er satt til betalt
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Klassifiser kundeordre(r) som fakturert når faktura er satt til validert
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Klassifiser lenket kildetilbud som fakturert når kundefaktura blir validert
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Klassifiser lenket kildeordre til levert når en forsendelse er validert og sendt kvantitet er det samme som i ordre
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Opprett en kundefaktura automatisk etter at en kundeordre er stengt (ny faktura vil ha samme beløp som ordre)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Klassifiser tilknyttede kildetilbud til fakturert(e) når kundeordren er satt til fakturert (og hvis beløpet av bestillingen er det samme som totalbeløpet av signerte koblede tilbud)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Klassifiser koblede kilde-tilbud som fakturert(t) når faktura er validert (og hvis fakturabeløpet er det samme som totalbeløpet av signerte tilbud)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Klassifiser koblede kilde-kundeordre som fakturert(t) når faktura er validert (og hvis fakturabeløpet er det samme som totalbeløpet av koblede ordrer)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Klassifiser koblede kilde-kundeordre som fakturert(t) når faktura er satt til betalt (og hvis fakturabeløpet er det samme som totalbeløpet av koblede ordrer)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Klassifiser koblet kildeordre som sendt når en forsendelse er validert (og hvis kvantitet som sendes i alle forsendelser, er det samme som i bestillingen som skal oppdateres)
 AutomaticCreation=Automatisk opprettelse
 AutomaticClassification=Automatisk klassifisering
diff --git a/htdocs/langs/nl_BE/website.lang b/htdocs/langs/nl_BE/website.lang
index e5a6d431895..d74b98e3517 100644
--- a/htdocs/langs/nl_BE/website.lang
+++ b/htdocs/langs/nl_BE/website.lang
@@ -5,16 +5,11 @@ WEBSITE_PAGENAME=Paginanaam/alias
 WEBSITE_CSS_URL=URL van extern CSS bestand
 WEBSITE_CSS_INLINE=CSS inhoud
 MediaFiles=Mediabibliotheek
-EditCss=Bewerk Stijl/CSS
 EditMenu=Bewerk menu
 EditPageMeta=Meta bewerken
 EditPageContent=Inhoud aanpassen
 Website=Website
-Webpage=Webpagina
-AddPage=Pagina toevoegen
 PreviewOfSiteNotYetAvailable=De voorvertoning van uw website <strong>%s</strong> is nog niet beschikbaar. U moet eerst een pagina toevoegen.
-PageDeleted=Pagina '%s' van website %s werd verwijderd
-PageAdded=Pagina '%s' werd toegevoegd
 ViewSiteInNewTab=Bekijk de site in een nieuwe tab
 ViewPageInNewTab=Bekijk de pagina in een nieuwe tab
 SetAsHomePage=Zet als Homepagina
diff --git a/htdocs/langs/nl_BE/workflow.lang b/htdocs/langs/nl_BE/workflow.lang
index 073abe6e3d2..c8f4db30713 100644
--- a/htdocs/langs/nl_BE/workflow.lang
+++ b/htdocs/langs/nl_BE/workflow.lang
@@ -1,8 +1,4 @@
 # Dolibarr language file - Source file is en_US - workflow
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Maak automatisch een klantenfactuur na tekenen van een offerte
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Maak automatisch een klantenfactuur na validatie van een contract
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Maak automatisch een klantenfactuur na sluiten van een klantenbestelling
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classificeer de gekoppelde offerte als gefactureerd wanneer de klantenfactuur gevalideerd werd
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classificeer de gekoppelde bestelling als verzonden bij validatie van een verzending waarbij de verzonden hoeveelheid gelijk is aan de hoeveelheid van de bestelling
 AutomaticCreation=Automatische aanmaak
 AutomaticClassification=Automatische classificatie
diff --git a/htdocs/langs/nl_NL/accountancy.lang b/htdocs/langs/nl_NL/accountancy.lang
index 3470cc232f5..1e0fcb1582d 100644
--- a/htdocs/langs/nl_NL/accountancy.lang
+++ b/htdocs/langs/nl_NL/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Code
 Nature=Natuur
 AccountingJournalType1=Various operation
 AccountingJournalType2=Verkopen
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exports
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Export model
 OptionsDeactivatedForThisExportModel=Voor dit export model zijn de opties uitgezet
diff --git a/htdocs/langs/nl_NL/admin.lang b/htdocs/langs/nl_NL/admin.lang
index a791cac6924..26b651f029b 100644
--- a/htdocs/langs/nl_NL/admin.lang
+++ b/htdocs/langs/nl_NL/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Systeemwerksetoverzicht
 SystemToolsAreaDesc=Dit gedeelte biedt administratieve functionaliteit. Gebruik het menu om de functionaliteit in te stellen die u nodig heeft.
 Purge=Leegmaken
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Verwijder alle bestanden in de map <b>%s.</b>. Tijdelijke bestanden, maar ook databasebackupbestanden, bijlagen van elementen (derde partijen, facturen, etc) en bestanden geüpload naar de ECM-module zullen verwijderd worden.
 PurgeRunNow=Nu opschonen
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> bestanden of mappen verwijderd.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Verwijder alle gebeurtenisen
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Genereer backup
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=Voor deze stap, kan je het pakket versturen gebruikmakend van dit hulpmiddel: Selecteer module bestand
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Huidige versie van Dolibarr
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Leverancier commerciële voorstel
 Module1120Desc=Leverancier verzoek commerciële voorstel en prijzen
 Module1200Name=Mantis
 Module1200Desc=Mantis integratie
-Module1400Name=Boekhouden
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Documenten genereren
 Module1520Desc=Massa mail document generen
 Module1780Name=Labels/Categorien
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Module om een ​​online betaling pagina te bieden per credit card met Paypal
 Module50400Name=Boekhouding
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (zonder het openen van de documenten) met behulp van Cups IPP-interface (Printer moet zichtbaar zijn vanaf de server zijn, en CUPS moet geinstalleerd zijn op de server).
 Module55000Name=Poll, Onderzoek of Stemmen
@@ -751,8 +750,10 @@ Permission401=Bekijk kortingen
 Permission402=Creëren / wijzigen kortingen
 Permission403=Kortingen valideren
 Permission404=Kortingen verwijderen
-Permission510=Lees Salarissen
-Permission512=Maak / wijzig salarissen
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Verwijder salarissen
 Permission517=Export salarissen
 Permission520=Lees Leningen
@@ -1057,7 +1058,7 @@ RestoreDesc2=- Herstel archiefbestand (zip bestand bijvoorbeeld) van de oude doc
 RestoreDesc3=- Herstel de gegevens van een backup dumpbestand, in de database van de nieuwe Dolibarr installatie of in de database van de huidige installatie. Waarschuwing, zodra een herstel is gedaan, zult u de gebruikersnaam en wachtwoord die bestonden toen de backup werd gemaakt, moeten gebruiken. Om een backupdatabase in de huidige installatie te herstellen, kunt u de assistent (wizard) volgen.
 RestoreMySQL=MySQL import
 ForcedToByAModule= Geforceerd tot <b>%s</b> door een geactiveerde module
-PreviousDumpFiles=Beschikbare databasebackupdumpbestanden
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=Eerste dag van de week
 RunningUpdateProcessMayBeRequired=Update lijkt vereist (Programma versie %s verschilt met de database versie %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=U dient dit commando vanaf de opdrachtregel uit te voeren, na ingelogd te zijn als gebruiker <b>%s</b>. Of u dient het commando uit te breiden door de -W optie mee te geven zodat u het wachtwoord kunt opgeven.
diff --git a/htdocs/langs/nl_NL/banks.lang b/htdocs/langs/nl_NL/banks.lang
index fbd4a48cece..23ef1961987 100644
--- a/htdocs/langs/nl_NL/banks.lang
+++ b/htdocs/langs/nl_NL/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Cheque teruggekeerd en facturen heropend
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/nl_NL/bills.lang b/htdocs/langs/nl_NL/bills.lang
index c645c34eea9..ec307ac19e7 100644
--- a/htdocs/langs/nl_NL/bills.lang
+++ b/htdocs/langs/nl_NL/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Is een factuur van een of meerdere kredietnota's.
 CardBill=Factuurdetails
 PredefinedInvoices=Voorgedefinieerde Facturen
 Invoice=Factuur
+PdfInvoiceTitle=Factuur
 Invoices=Facturen
 InvoiceLine=Factuur online
 InvoiceCustomer=Afnemersfactuur
diff --git a/htdocs/langs/nl_NL/compta.lang b/htdocs/langs/nl_NL/compta.lang
index e0ac09c805b..520aac8fd62 100644
--- a/htdocs/langs/nl_NL/compta.lang
+++ b/htdocs/langs/nl_NL/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Kloon het voor volgende maand
diff --git a/htdocs/langs/nl_NL/errors.lang b/htdocs/langs/nl_NL/errors.lang
index eef726cce6f..d04443e88d1 100644
--- a/htdocs/langs/nl_NL/errors.lang
+++ b/htdocs/langs/nl_NL/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/nl_NL/install.lang b/htdocs/langs/nl_NL/install.lang
index 8bc5d4c5533..0049ac78e57 100644
--- a/htdocs/langs/nl_NL/install.lang
+++ b/htdocs/langs/nl_NL/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Gebruikersnaam voor Dolibarr database eigenaar.
 PasswordAgain=Geef uw wachtwoord opnieuw
 AdminPassword=Wachtwoord voor de database eigenaar.
 CreateDatabase=Creëer database
-CreateUser=Creëer gebruiker
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Databaseserver - Superuser toegang (root toegang)
 CheckToCreateDatabase=Vink deze optie aan wanneer de database nog niet bestaat en gecreëerd moet worden.<br>In dit geval, moet u de velden gebruikersnaam en wachtwoord voor het superuser (root) account onderaan deze pagina ook invullen.
-CheckToCreateUser=Vink deze optie aan wanneer de databasegebruiker nog niet bestaat en gecreëerd moet worden.<br>In dit geval, moet u de velden gebruikersnaam en wachtwoord voor het superuser (root) account onderaan deze pagina ook invullen. Wanneer deze optie niet aangevinkt wordt, moeten de gebruikersnaam, het wachtwoord en de database van de  eigenaar bestaan.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Gebruikersnaam van de gebruiker die gemachtigd is om nieuwe databases of gebruikers aan te maken, nutteloos wanneer uw database en gebruiker al bestaan (zoals het geval wanneer u een webhosting provider gebruikt).
 KeepEmptyIfNoPassword=Laat dit veld leeg wanneer de gebruiker geen wachtwoord heeft (vermijd dit)
 SaveConfigurationFile=Waarden opslaan
diff --git a/htdocs/langs/nl_NL/main.lang b/htdocs/langs/nl_NL/main.lang
index d305994114c..54a9a9a45f9 100644
--- a/htdocs/langs/nl_NL/main.lang
+++ b/htdocs/langs/nl_NL/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=Het bestand is succesvol aangemaakt
 FileSaved=The file was successfully saved
 FileUploaded=Het bestand is geüpload
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=Een bestand is geselecteerd als bijlage, maar is nog niet geüploadet. Klik hiervoor op "Bevestig dit bestand".
 NbOfEntries=Aantal invoeringen
 GoToWikiHelpPage=Lees de online hulptekst (internettoegang vereist)
@@ -196,6 +197,7 @@ Parameter=Instelling
 Parameters=Instellingen
 Value=Waarde
 PersonalValue=Persoonlijke waarde
+NewObject=New %s
 NewValue=Nieuwe waarde
 CurrentValue=Huidige waarde
 Code=Code
@@ -441,6 +443,7 @@ Reporting=Rapportage
 Reportings=Rapportage
 Draft=Concept
 Drafts=Concepten
+StatusInterInvoiced=
 Validated=Gevalideerd
 Opened=Open
 New=Nieuw
@@ -727,6 +730,7 @@ SetBankAccount=Definieer Bank Rekening
 AccountCurrency=Rekening Valuta
 ViewPrivateNote=Notities bekijken
 XMoreLines=%s regel(s) verborgen
+ShowMoreLines=Show more lines
 PublicUrl=Openbare URL
 AddBox=Box toevoegen
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Ga naar Home - Setup - Bedrijf om logo te wijzigen of ga naar Home - Instellingen - Scherm om te verbergen.
 Deny=Wijgeren
 Denied=Gewijgerd
+ListOf=List of %s
 ListOfTemplates=Lijst van templates
 Gender=Geslacht
 Genderman=Man
diff --git a/htdocs/langs/nl_NL/modulebuilder.lang b/htdocs/langs/nl_NL/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/nl_NL/modulebuilder.lang
+++ b/htdocs/langs/nl_NL/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/nl_NL/orders.lang b/htdocs/langs/nl_NL/orders.lang
index aa1a2e8f997..3bc5fc9fe82 100644
--- a/htdocs/langs/nl_NL/orders.lang
+++ b/htdocs/langs/nl_NL/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Leverancierorders overzicht
 OrderCard=Opdrachtenkaart
 OrderId=Ordernr
 Order=Order
+PdfOrderTitle=Order
 Orders=Orders
 OrderLine=Orderregel
 OrderDate=Opdrachtdatum
diff --git a/htdocs/langs/nl_NL/other.lang b/htdocs/langs/nl_NL/other.lang
index 41a57243a4b..3742a22c18c 100644
--- a/htdocs/langs/nl_NL/other.lang
+++ b/htdocs/langs/nl_NL/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/nl_NL/propal.lang b/htdocs/langs/nl_NL/propal.lang
index 50bdf38cfbc..6149791a01e 100644
--- a/htdocs/langs/nl_NL/propal.lang
+++ b/htdocs/langs/nl_NL/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Conceptofferte
 ProposalsOpened=Geen open commerciële voorstellen
 Prop=Offertes
 CommercialProposal=Offerte
+PdfCommercialProposalTitle=Offerte
 ProposalCard=Offertedetailkaart
 NewProp=Nieuwe offerte
 NewPropal=Nieuwe offerte
diff --git a/htdocs/langs/nl_NL/salaries.lang b/htdocs/langs/nl_NL/salaries.lang
index c5d0831b07c..f5d73961361 100644
--- a/htdocs/langs/nl_NL/salaries.lang
+++ b/htdocs/langs/nl_NL/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Salaris
 Salaries=Salarissen
diff --git a/htdocs/langs/nl_NL/website.lang b/htdocs/langs/nl_NL/website.lang
index b3b05ee6cc9..98577e0de5e 100644
--- a/htdocs/langs/nl_NL/website.lang
+++ b/htdocs/langs/nl_NL/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/nl_NL/workflow.lang b/htdocs/langs/nl_NL/workflow.lang
index 6405711430a..b69cb326f05 100644
--- a/htdocs/langs/nl_NL/workflow.lang
+++ b/htdocs/langs/nl_NL/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Workflow module setup
 WorkflowDesc=Deze module is ontworpen om het gedrag van automatische acties aan te passen. Standaard is de workflow open (u kunt dingen doen in de volgorde die u wilt). U kunt automatische acties activeren indien u wenst.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classificeer gekoppelde bron offerte om gefactureerd te worden wanneer bestelling van de klant is ingesteld op betaald
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classificeer gekoppelde bron klant bestelling(en) gefactureerd wanneer de klant factuur is ingesteld op betaald
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classificeer gekoppelde bron klantbestelling(en) gefactureerd wanneer de klantfactuur wordt gevalideerd
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/pl_PL/accountancy.lang b/htdocs/langs/pl_PL/accountancy.lang
index c533b579080..06eb11795f9 100644
--- a/htdocs/langs/pl_PL/accountancy.lang
+++ b/htdocs/langs/pl_PL/accountancy.lang
@@ -8,11 +8,11 @@ ACCOUNTING_EXPORT_AMOUNT=Eksportuj kwoty
 ACCOUNTING_EXPORT_DEVISE=Eksportuj waluty
 Selectformat=Wybierz format dla pliku
 ACCOUNTING_EXPORT_PREFIX_SPEC=Przedrostek w nazwie pliku
-ThisService=This service
-ThisProduct=This product
-DefaultForService=Default for service
-DefaultForProduct=Default for product
-CantSuggest=Can't suggest
+ThisService=Ta usługa
+ThisProduct=Ten produkt
+DefaultForService=Domyślny dla usługi
+DefaultForProduct=Domyślny dla produktu
+CantSuggest=Nie można zaproponować
 AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s
 ConfigAccountingExpert=Konfiguracja modułu eksperta księgowego
 Journalization=Journalization
@@ -22,13 +22,20 @@ BackToChartofaccounts=Powrót planu kont
 Chartofaccounts=Plan kont
 CurrentDedicatedAccountingAccount=Current dedicated account
 AssignDedicatedAccountingAccount=Nowe konto do przypisania
-InvoiceLabel=Invoice label
+InvoiceLabel=Etykieta faktury
 OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account
 OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account
-OtherInfo=Other information
+OtherInfo=Inne informacje
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Obszar księgowości
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -57,33 +64,33 @@ AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and genera
 AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future.
 
 MenuAccountancy=Księgowość
-Selectchartofaccounts=Select active chart of accounts
-ChangeAndLoad=Change and load
+Selectchartofaccounts=Wybierz aktywny wykres kont
+ChangeAndLoad=Zmień i załaduj
 Addanaccount=Dodaj konto księgowe
 AccountAccounting=Konto księgowe
 AccountAccountingShort=Konto
 SubledgerAccount=Subledger Account
 ShowAccountingAccount=Show accounting account
 ShowAccountingJournal=Show accounting journal
-AccountAccountingSuggest=Accounting account suggested
+AccountAccountingSuggest=Zalecane konto rachunkowe
 MenuDefaultAccounts=Default accounts
-MenuVatAccounts=Vat accounts
-MenuTaxAccounts=Tax accounts
+MenuVatAccounts=Konta VAT
+MenuTaxAccounts=Konta podatkowe
 MenuExpenseReportAccounts=Expense report accounts
-MenuLoanAccounts=Loan accounts
+MenuLoanAccounts=Konta kredytu
 MenuProductsAccounts=Product accounts
 ProductsBinding=Konta produktów
-Ventilation=Binding to accounts
+Ventilation=Powiązanie z kontami
 CustomersVentilation=Powiązania do faktury klienta
 SuppliersVentilation=Powiązania do faktury dostawcy
 ExpenseReportsVentilation=Expense report binding
 CreateMvts=Utwórz nową transakcję
-UpdateMvts=Modification of a transaction
-ValidTransaction=Validate transaction
-WriteBookKeeping=Journalize transactions in Ledger
+UpdateMvts=Modyfikacja transakcji
+ValidTransaction=Potwierdź transakcję
+WriteBookKeeping=Zaksięguj transakcje
 Bookkeeping=Ledger
 AccountBalance=Bilans konta
-
+ObjectsRef=Source object ref
 CAHTF=Total sprzedaży dostawcy przed opodatkowaniem
 TotalExpenseReport=Total expense report
 InvoiceLines=Pozycje faktury do powiązania
@@ -96,14 +103,14 @@ IntoAccount=Bind line with the accounting account
 Ventilate=Powiąż
 LineId=Id line
 Processing=Przetwarzanie
-EndProcessing=Process terminated.
+EndProcessing=Proces zakończony.
 SelectedLines=Wybrane linie
 Lineofinvoice=Pozycja faktury
 LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Liczba elementów do powiązania na stronie (rekomendowana maksymalna ilość: 50)
@@ -140,7 +147,7 @@ Labelcompte=Etykieta konta
 Sens=Sens
 Codejournal=Dziennik
 NumPiece=ilość sztuk
-TransactionNumShort=Num. transaction
+TransactionNumShort=Numer transakcji
 AccountingCategory=Accounting account groups
 GroupByAccountAccounting=Group by accounting account
 ByAccounts=By accounts
@@ -154,22 +161,24 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Dziennik finansów
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Dziennik finansów zawiera wszystkie typy płatności wykonane przez konto bankowe
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Konto dla niezdefiniowanego VATu
 ThirdpartyAccountNotDefined=Konto dla niezdefiniowanego kontrahenta
-ProductAccountNotDefined=Account for product not defined
+ProductAccountNotDefined=Konto produktów nie zdefiniowane
 FeeAccountNotDefined=Account for fee not defined
-BankAccountNotDefined=Account for bank not defined
+BankAccountNotDefined=Konto bankowe nie zdefiniowane
 CustomerInvoicePayment=Zapłata faktury klienta
 ThirdPartyAccount=Konto kontrahenta
 NewAccountingMvt=Nowa transakcja
-NumMvts=Numero of transaction
+NumMvts=Ilość transakcji
 ListeMvts=Lista ruchów
 ErrorDebitCredit=Debetowych i kredytowych nie może mieć wartość w tym samym czasie
 AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=Lista kont kontrahentów
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=Lista kont księgowych
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Klasa konta
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Błąd, nie można usunąc tego konta księgowego, ponieważ jest w użyciu
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,20 +219,17 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Kod
 Nature=Natura
 AccountingJournalType1=Various operation
 AccountingJournalType2=Sprzedaż
 AccountingJournalType3=Zakupy
 AccountingJournalType4=Bank
-AccountingJournalType5=Expenses report
+AccountingJournalType5=Raport wydatków
 AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Eksporty
-Export=Eksport
-ExportDraftJournal=Export draft journal
+ExportDraftJournal=Export dziennika projektu
 Modelcsv=Model eksportu
 OptionsDeactivatedForThisExportModel=Dla tego modelu eksportu opcje są wyłączone
 Selectmodelcsv=Wybierz model eksportu
@@ -257,7 +263,7 @@ ValueNotIntoChartOfAccount=This value of accounting account does not exist into
 ## Dictionary
 Range=Range of accounting account
 Calculated=Calculated
-Formula=Formula
+Formula=Formuła
 
 ## Error
 SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them
diff --git a/htdocs/langs/pl_PL/admin.lang b/htdocs/langs/pl_PL/admin.lang
index 9f85b9ae8be..16f0625b86e 100644
--- a/htdocs/langs/pl_PL/admin.lang
+++ b/htdocs/langs/pl_PL/admin.lang
@@ -104,7 +104,7 @@ MenuIdParent=ID Rodzica menu
 DetailMenuIdParent=ID menu rodzica (pusty dla górnego menu)
 DetailPosition=Sortuj numer do zdefiniowania pozycji menu
 AllMenus=Wszyscy
-NotConfigured=Module/Application not configured
+NotConfigured=Moduły/Aplikacje nie skonfigurowane
 Active=Aktywne
 SetupShort=Konfiguracja
 OtherOptions=Inne opcje
@@ -140,13 +140,14 @@ SystemToolsArea=Obszar narzędzi systemowych
 SystemToolsAreaDesc=Obszar ten udostępnia funkcje administracyjne. Użyj menu, aby wybrać tę funkcję, której szukasz.
 Purge=Czyszczenie
 PurgeAreaDesc=Ta strona pozwala Ci na usunięcie wszystkich plików wygenerowanych lub zapisanych przesz Dolibarr (tymczasowe pliki lub wszystkie pliki w folderze <b>%s</b>). Używanie tej opcji nie jest konieczne. Opcja ta jest dostarczana jako obejście dla użytkowników, których Dolibarr jest obsługiwany przez operatora, który nie oferuje możliwości usuwania plików generowanych przez serwer WWW.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Usuń wszystkie pliki tymczasowe (nie utracisz danych)
 PurgeDeleteTemporaryFilesShort=Usuń pliki tymczasowe
 PurgeDeleteAllFilesInDocumentsDir=Usuń wszystkie pliki w <b>katalogu %s.</b> Pliki tymczasowe, jak również kopie zapasowe baz danych oraz pliki dołączone do elementów (kontrahencji, faktury ...) i przesłane do modułu ECM zostaną usunięte.
 PurgeRunNow=Czyść teraz
 PurgeNothingToDelete=Brak katalogu lub plików do usunięcia.
 PurgeNDirectoriesDeleted=<b> %s</b> pliki lub katalogi usunięte.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Czyść wszystkie wydarzenia
 ConfirmPurgeAuditEvents=Czy jesteś pewien, że chcesz usunąć wszystkie zdarzenia związane z bezpieczeństwem? Wszystkie logo związane z bezpieczeństwem zostaną usunięte. Inne dane nie zostaną usunięte. 
 GenerateBackup=Generowanie kopii zapasowej
@@ -190,7 +191,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions
 Rights=Uprawnienia
 BoxesDesc=Widgety są komponentami pokazującymi pewne informacje, które możesz dodać w celu spersonalizowania niektórych stron. Możesz wybrać pomiędzy pokazaniem wigetu lub nie poprzez wybranie docelowej strony i kliknięcie "Aktywacja", lub poprzez kliknięcie na kosz w celu wyłączenia go.
 OnlyActiveElementsAreShown=Tylko elementy z <a href="%s">aktywnych modułów</a> są widoczne.
-ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
+ModulesDesc=Moduły Dolibarr definiują, która aplikacja / funkcja jest włączona w oprogramowaniu. Niektóre aplikacje / moduły wymagają uprawnień, które musisz przyznać użytkownikom po ich aktywacji. Kliknij przycisk ON/OFF, aby włączyć moduł / aplikację.
 ModulesMarketPlaceDesc=Możesz znaleźć więcej modułów do pobrania na zewnętrznych stronach internetowych...
 ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
 ModulesMarketPlaces=Znajdź dodatkowe moduły...
@@ -200,7 +201,7 @@ DoliPartnersDesc=List of companies providing custom developed modules or feature
 WebSiteDesc=Powiązane strony z modułami...
 URL=Łącze
 BoxesAvailable=Dostępne widgety
-BoxesActivated=Widgets activated
+BoxesActivated=Widgety aktywowane
 ActivateOn=Uaktywnij
 ActiveOn=Aktywowany
 SourceFile=Plik źródłowy
@@ -214,7 +215,7 @@ MainDbPasswordFileConfEncrypted=Hasło bazy danych zakodowane w conf.php
 InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
 InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
 ProtectAndEncryptPdfFiles=Ochrona generowanych plików PDF (Aktywowany nie jest zalecany, przerwa masowe generowanie plików pdf)
-ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
+ProtectAndEncryptPdfFilesDesc=Ochrona dokumentu PDF umożliwia jego odczyt i druk w dowolnej przeglądarce PDF. Jednak edytowanie i kopiowanie nie jest już możliwe. Zauważ, że korzystanie z tej funkcji sprawia, że tworzenie globalnie połączonych plików PDF nie działa.
 Feature=Funkcja
 DolibarrLicense=Licencja
 Developpers=Programiści / Współpracownicy
@@ -240,7 +241,7 @@ PaperSize=Paper type
 Orientation=Orientation
 SpaceX=Space X
 SpaceY=Space Y
-FontSize=Font size
+FontSize=Wielkość czcionki
 Content=Content
 NoticePeriod=Okres wypowiedzenia
 NewByMonth=New by month
@@ -264,13 +265,13 @@ MAIN_DISABLE_ALL_SMS=Wyłącz wysyłanie wszystkich SMS (do celów badawczych lu
 MAIN_SMS_SENDMODE=Metoda służy do wysyłania wiadomości SMS
 MAIN_MAIL_SMS_FROM=Nadawca domyślny numer telefonu wysyłaniu SMS-ów
 MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email)
-UserEmail=User email
-CompanyEmail=Company email
+UserEmail=Adres email użytkownika
+CompanyEmail=Adres email firmy
 FeatureNotAvailableOnLinux=Cechy te nie są dostępne w systemach Unix, takich jak. Przetestuj swój program sendmail lokalnie.
 SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
 SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
 ModuleSetup=Moduł konfiguracji
-ModulesSetup=Modules/Application setup
+ModulesSetup=Ustawienia Modułów/Aplikacji
 ModuleFamilyBase=System
 ModuleFamilyCrm=Zarządzanie relacjami z klientem (CRM)
 ModuleFamilySrm=Supplier Relation Management (SRM)
@@ -287,18 +288,18 @@ ModuleFamilyInterface=Współpraca z systemami zewnętrznymi
 MenuHandlers=Menu obsługi
 MenuAdmin=Edytor menu
 DoNotUseInProduction=Nie używaj w produkcji
-ThisIsProcessToFollow=This is steps to process:
+ThisIsProcessToFollow=To jest krok do procesu:
 ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
 StepNb=Krok %s
 FindPackageFromWebSite=Odnajdź pakiet, który zapewnia wybraną przez Ciebię funkcję (np. na oficjalnej stronie internetowej %s).
 DownloadPackageFromWebSite=Download package (for example from official web site %s).
-UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
+UnpackPackageInDolibarrRoot=Rozpakuj spakowane pliki do katalogu serwera poświęconego Dolibarr:<b>%s</b>
 UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
-SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
-NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
+SetupIsReadyForUse=Wdrażanie modułu zostało zakończone. Musisz jednak włączyć i skonfigurować moduł w aplikacji, przechodząc na stronę do konfiguracji modułów: <a href="%s">%s</a>.
+NotExistsDirect=Alternatywny katalog główny nie jest zdefiniowany w istniejącym katalogu.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Aktualna wersja Dolibarr
 CallUpdatePage=Przejdź na stronę, która pomoże w zaktualizować strukturę bazy danych i dane: %s.
 LastStableVersion=Ostatnia stabilna wersja
@@ -313,7 +314,7 @@ GenericMaskCodes3=Wszystkie inne znaki w masce pozostaną nienaruszone. <br> Spa
 GenericMaskCodes4a=<u>Example on the 99th %s of the third party TheCompany, with date 2007-01-31:</u><br>
 GenericMaskCodes4b=<u>Przykład kontrahenta utworzonego w dniu 2007-03-01:</u> <br>
 GenericMaskCodes4c=<u>Przykład produktu utworzony 2007-03-01:</u><br>
-GenericMaskCodes5=<b>ABC{yy}{mm}-{000000}</b> will give <b>ABC0701-000099</b><br><b>{0000+100@1}-ZZZ/{dd}/XXX</b> will give <b>0199-ZZZ/31/XXX</b><br><b>IN{yy}{mm}-{0000}-{t}</b> will give <b>IN0701-0099-A</b> if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI'
+GenericMaskCodes5=<b>ABC{yy}{mm}-{000000}</b> wyświetli jako <b>ABC0701-000099</b><br><b>{0000+100@1}-ZZZ/{dd}/XXX</b> wyświetli jako <b>0199-ZZZ/31/XXX</b><br><b>IN{yy}{mm}-{0000}-{t}</b> wyświetli jako <b>IN0701-0099-A</b> jeśli rodzaj firmy to 'spółka Z O.O.' z kodem dla typu 'A_RI'
 GenericNumRefModelDesc=Zwraca numer wysyłki zgodnie z zdefiniowaną maską
 ServerAvailableOnIPOrPort=Serwer dostępny jest pod <b>adresem %s</b> na <b>porcie %s</b>
 ServerNotAvailableOnIPOrPort=Serwer nie jest dostępna pod <b>adresem %s</b> na <b>porcie %s</b>
@@ -379,7 +380,7 @@ Boolean=Boolean (one checkbox)
 ExtrafieldPhone = Telefon
 ExtrafieldPrice = Cena
 ExtrafieldMail = Adres e-mail
-ExtrafieldUrl = Url
+ExtrafieldUrl = Link
 ExtrafieldSelect = Wybierz listę
 ExtrafieldSelectList = Wybierz z tabeli
 ExtrafieldSeparator=Separator (not a field)
@@ -535,8 +536,6 @@ Module1120Name=Dostawca propozycja handlowa
 Module1120Desc=Dostawca komercyjnych i wniosek propozycja ceny
 Module1200Name=Mantis
 Module1200Desc=Integracja Mantis
-Module1400Name=Księgowość
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Generowanie dokumentu
 Module1520Desc=Dokument poczty masowej generacji
 Module1780Name=Tagi / Kategorie
@@ -585,7 +584,7 @@ Module50100Desc=Punkty sprzedaży (POS)
 Module50200Name=Paypal
 Module50200Desc=Moduł oferujący płatność online za pomocą karty kredytowej z Paypal
 Module50400Name=Rachunkowość (zaawansowane)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Druk bezpośredni (bez otwierania dokumentów) za pomocą interfejsu Puchary IPP (drukarki muszą być widoczne z serwera, a CUPS musi być installé na serwerze).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Odczytaj zniżki
 Permission402=Tworzenie / modyfikacja zniżek
 Permission403=Walidacja zniżek
 Permission404=Usuwanie zniżek
-Permission510=Czytaj Wynagrodzenia
-Permission512=Tworzenie / modyfikacja pensje
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Usuń pensje
 Permission517=Wynagrodzenia eksport
 Permission520=Czytaj Kredyty
@@ -872,7 +873,7 @@ DictionaryAccountancyJournal=Accounting journals
 DictionaryEMailTemplates=Szablony wiadomości e-mail
 DictionaryUnits=Units
 DictionaryProspectStatus=Status możliwości
-DictionaryHolidayTypes=Types of leaves
+DictionaryHolidayTypes=Rodzaje urlopów
 DictionaryOpportunityStatus=Opportunity status for project/lead
 SetupSaved=Konfiguracja zapisana
 SetupNotSaved=Setup not saved
@@ -947,7 +948,7 @@ Host=Serwer
 DriverType=Typ sterownika
 SummarySystem=Podsumowanie informacji systemowych
 SummaryConst=Lista wszystkich parametrów konfiguracji Dolibarr
-MenuCompanySetup=Company/Organisation
+MenuCompanySetup=Firma/Fundacja
 DefaultMenuManager= Menedżer standardowego menu
 DefaultMenuSmartphoneManager=Menedżer menu Smartphona
 Skin=Skórka
@@ -958,12 +959,12 @@ DefaultMaxSizeShortList=Domyślna maksymalna długość dla krótkiej listy (prz
 MessageOfDay=Wiadomość dnia
 MessageLogin=Wiadomość strona logowania
 LoginPage=Login page
-BackgroundImageLogin=Background image
+BackgroundImageLogin=Obrazek tła
 PermanentLeftSearchForm=Stały formularz wyszukiwania w lewym menu
 DefaultLanguage=Domyślny język do użytku (kod języka)
 EnableMultilangInterface=Włącz wielojęzyczny interfejs
 EnableShowLogo=Pokaż logo w menu po lewej stronie
-CompanyInfo=Company/organisation information
+CompanyInfo=Informacje Firmy/Fundacji
 CompanyIds=Company/organisation identities
 CompanyName=Nazwa firmy
 CompanyAddress=Adres
@@ -1019,7 +1020,7 @@ AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
 SystemInfoDesc=System informacji jest różne informacje techniczne można uzyskać w trybie tylko do odczytu i widoczne tylko dla administratorów.
 SystemAreaForAdminOnly=Obszar ten jest dostępny tylko dla użytkowników na prawach administratora. Żadne z uprawnień Dolibarr nie zniesie tego ograniczenia.
 CompanyFundationDesc=Edytuj na tej stronie wszystkie znane Ci informacje na temat firmy lub fundacji (Aby to zrobić, kliknij na przycisk "Modyfikuj" lub "Zapisz" na dole strony)
-DisplayDesc=Możesz wybrać każdego z parametrów związanych z wyglądem i Dolibarr tutaj
+DisplayDesc=Tutaj możesz ustawić każdy z parametrów związanych z wyglądem i zachowaniem Dolibarr
 AvailableModules=Dostępne moduły
 ToActivateModule=Aby uaktywnić modules, przejdź na konfigurację Powierzchnia.
 SessionTimeOut=Limit czasu dla sesji
@@ -1031,8 +1032,8 @@ TriggerDisabledAsModuleDisabled=Wyzwalacze w tym pliku są wyłączone jako <b>m
 TriggerAlwaysActive=Wyzwalacze w tym pliku są zawsze aktywne, niezależnie są aktywowane Dolibarr modułów.
 TriggerActiveAsModuleActive=Wyzwalacze w tym pliku są aktywne jako <b>modułu %s</b> jest aktywny.
 GeneratedPasswordDesc=Określ tutaj reguły, które chcesz użyć do wygenerowania nowego hasła, jeśli zapyta się automatycznie wygenerowane hasło
-DictionaryDesc=Insert all reference data. You can add your values to the default.
-ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
+DictionaryDesc=Wprowadź wszystkie potrzebne dane. Wartości można dodać do ustawień domyślnych.
+ConstDesc=Ta strona pozwoli ci na edycję wszystkich innych parametrów nie dostępnych w poprzednich stronach. Są to głównie parametry zastrzeżone dla programistów lub zaawansowanych użytkowników. Aby uzyskać listę opcji <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">kliknij tutaj</a>.
 MiscellaneousDesc=Inne powiązane parametry bezpieczeństwa są zdefiniowane tutaj
 LimitsSetup=Ograniczenia / Precision konfiguracji
 LimitsDesc=Można określić limity, doprecyzowanie i optymalizacje stosowane przez Dolibarr tutaj
@@ -1057,7 +1058,7 @@ RestoreDesc2=Przywróć pliki archiwalny (np. ZIP) katalogu dokumentów, aby wyo
 RestoreDesc3=Przywróć dane z pliku kopii zapasowej, do bazy danych nowej instalacji Dolibarr lub do bazy danych tej bieżącej instalacji (<b>%s</b>). Uwaga, gdy przywracanie zostanie zakończone, należy użyć loginu i hasła, które istniały, gdy kopia zapasowa została utworzona, aby połączyć się ponownie. Aby przywrócić kopię zapasową bazy danych do bieżącej instalacji, można użyć tego asystenta.
 RestoreMySQL=Import MySQL
 ForcedToByAModule= Ta zasada jest zmuszona <b>do %s</b> przez aktywowany modułu
-PreviousDumpFiles=Dump bazy danych dostępne pliki kopii zapasowej
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=Pierwszy dzień tygodnia
 RunningUpdateProcessMayBeRequired=Uruchomiony proces aktualizacji wydaje się konieczne (programy różni się od wersji %s %s wersja bazy danych)
 YouMustRunCommandFromCommandLineAfterLoginToUser=Należy uruchomić to polecenie z wiersza polecenia po zalogowaniu się do powłoki z <b>%s</b> użytkownika.
@@ -1333,7 +1334,7 @@ LDAPFieldCompanyExample=Przykład: o
 LDAPFieldSid=SID
 LDAPFieldSidExample=Przykład: objectSid
 LDAPFieldEndLastSubscription=Data zakończenia subskrypcji
-LDAPFieldTitle=Job position
+LDAPFieldTitle=Posada
 LDAPFieldTitleExample=Przykład: tytuł
 LDAPSetupNotComplete=LDAP konfiguracji nie są kompletne (przejdź na innych kartach)
 LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Brak administratora lub hasła. Dostęp do LDAP będzie jedynie anonimowy i tylko w trybie do odczytu.
@@ -1629,11 +1630,11 @@ PressF5AfterChangingThis=Naciśnij CTRL+F5 na klawiaturze aby wyczyścić cache
 NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes
 BackgroundColor=Kolor tła
 TopMenuBackgroundColor=Kolor tła górnego menu
-TopMenuDisableImages=Hide images in Top menu
+TopMenuDisableImages=Ukryj obrazki górnego menu
 LeftMenuBackgroundColor=Kolor tła bocznego menu
 BackgroundTableTitleColor=Kolor tła nagłówka tabeli
-BackgroundTableLineOddColor=Background color for odd table lines
-BackgroundTableLineEvenColor=Background color for even table lines
+BackgroundTableLineOddColor=Kolor tła pozostałych lini tabeli
+BackgroundTableLineEvenColor=Kolor tła dla równomiernych lini tabeli
 MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
 NbAddedAutomatically=Number of days added to counters of users (automatically) each month
 EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
@@ -1682,8 +1683,8 @@ AddHooks=Add hooks
 AddTriggers=Add triggers
 AddMenus=Add menus
 AddPermissions=Dodaj uprawnienia
-AddExportProfiles=Add export profiles
-AddImportProfiles=Add import profiles
+AddExportProfiles=Dodaj eksportowane profile
+AddImportProfiles=Dodaj importowane profile
 AddOtherPagesOrServices=Add other pages or services
 AddModels=Add document or numbering templates
 AddSubstitutions=Add keys substitutions
diff --git a/htdocs/langs/pl_PL/banks.lang b/htdocs/langs/pl_PL/banks.lang
index c236438363b..fe6a3cb9ffd 100644
--- a/htdocs/langs/pl_PL/banks.lang
+++ b/htdocs/langs/pl_PL/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Czek zwrócony i faktura ponownie otwarta
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/pl_PL/bills.lang b/htdocs/langs/pl_PL/bills.lang
index f4ba9b429fa..6ebf1c8d054 100644
--- a/htdocs/langs/pl_PL/bills.lang
+++ b/htdocs/langs/pl_PL/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Karta faktury
 PredefinedInvoices=Predefiniowane Faktury
 Invoice=Faktura
+PdfInvoiceTitle=Faktura
 Invoices=Faktury
 InvoiceLine=Pole faktury
 InvoiceCustomer=Faktura klienta
diff --git a/htdocs/langs/pl_PL/boxes.lang b/htdocs/langs/pl_PL/boxes.lang
index ed177a428a8..cadca6616d0 100644
--- a/htdocs/langs/pl_PL/boxes.lang
+++ b/htdocs/langs/pl_PL/boxes.lang
@@ -1,9 +1,9 @@
 # Dolibarr language file - Source file is en_US - boxes
-BoxLoginInformation=Login information
+BoxLoginInformation=Dane logowania
 BoxLastRssInfos=Informacje Rss
 BoxLastProducts=Ostatnie %s produktów/usług
 BoxProductsAlertStock=Alarm zapasu dla artykułów
-BoxLastProductsInContract=Latest %s contracted products/services
+BoxLastProductsInContract=Ostatnie %s zlecone produkty/usługi
 BoxLastSupplierBills=Ostatnie faktury dostawców
 BoxLastCustomerBills=Ostatnie faktury klientów
 BoxOldestUnpaidCustomerBills=Najstarsze niezapłacone faktury klientów
@@ -22,7 +22,7 @@ BoxCurrentAccounts=Otwórz bilans konta
 BoxTitleLastRssInfos=Ostatnie %s wiadomości z %s
 BoxTitleLastProducts=Ostatnich %s modyfikowanych produktów/usług
 BoxTitleProductsAlertStock=Produkty w alercie magazynowym
-BoxTitleLastSuppliers=Latest %s recorded suppliers
+BoxTitleLastSuppliers=Ostani %s zapisani dostawcy
 BoxTitleLastModifiedSuppliers=Ostatnie %s modyfikowanych dostawców
 BoxTitleLastModifiedCustomers=Ostatnie %s modyfikowanych klientów
 BoxTitleLastCustomersOrProspects=Ostatnich %s klientów lub potencjalnych klientów
@@ -30,7 +30,7 @@ BoxTitleLastCustomerBills=Ostatnie %s faktur klienta
 BoxTitleLastSupplierBills=Ostatnie %s faktur dostawcy
 BoxTitleLastModifiedProspects=Ostatnich %s zmodyfikowanych perspektyw
 BoxTitleLastModifiedMembers=Ostatnich %s członków
-BoxTitleLastFicheInter=Latest %s modified interventions
+BoxTitleLastFicheInter=Ostatnie %s zmodyfikowane interwencje
 BoxTitleOldestUnpaidCustomerBills=Najstarszych %s niezapłaconych faktur klienta
 BoxTitleOldestUnpaidSupplierBills=Najstarszych %s niezapłaconych faktur dostawcy
 BoxTitleCurrentAccounts=Bilans otwartych kont
@@ -43,8 +43,8 @@ BoxTitleLastContracts=Ostatnich %s zmodyfikowanych kontaktów
 BoxTitleLastModifiedDonations=Ostatnich %s zmodyfikowanych dotacji
 BoxTitleLastModifiedExpenses=Ostatnich %s zmodyfikowanych raportów kosztów
 BoxGlobalActivity=Globalna aktywność (faktury, wnioski, zamówienia)
-BoxGoodCustomers=Good customers
-BoxTitleGoodCustomers=%s Good customers
+BoxGoodCustomers=Dobrzy klienci
+BoxTitleGoodCustomers=%s dobrych klientów
 FailedToRefreshDataInfoNotUpToDate=Nie udało się odświeżyć kanału RSS. Data ostatniego udanego odświeżenia: %s
 LastRefreshDate=Data ostatniego odświeżenia
 NoRecordedBookmarks=Brak zdefiniowanych zakładek
@@ -52,12 +52,12 @@ ClickToAdd=Kliknij tutaj, aby dodać.
 NoRecordedCustomers=Brak zarejestrowanych klientów
 NoRecordedContacts=Brak zapisanych kontaktów
 NoActionsToDo=Brak działań do wykonania
-NoRecordedOrders=No recorded customer orders
+NoRecordedOrders=Brak zarejestrowanych zamówień klienta
 NoRecordedProposals=Brak zarejestrowanych wniosków
-NoRecordedInvoices=No recorded customer invoices
+NoRecordedInvoices=Brak zarejestrowanych rachunków klienta
 NoUnpaidCustomerBills=Brak niezapłaconych faktur klientów
 NoUnpaidSupplierBills=Brak niezapłaconych faktur dostawców
-NoModifiedSupplierBills=No recorded supplier invoices
+NoModifiedSupplierBills=Brak zarejestrowanych faktur dostawców
 NoRecordedProducts=Brak zarejestrowanych produktów / usług
 NoRecordedProspects=Brak potencjalnyc klientów
 NoContractedProducts=Brak produktów/usług zakontraktowanych
@@ -77,10 +77,10 @@ BoxTitleLastModifiedSupplierBills=Ostatnie %s zmodyfikowanych rachunków dostawc
 BoxTitleLatestModifiedSupplierOrders=Ostatnie %s zmodyfikowanych zamówień dostawców
 BoxTitleLastModifiedCustomerBills=Ostatnie %s zmodyfikowanych rachunków klientów
 BoxTitleLastModifiedCustomerOrders=Ostatnich %s modyfikowanych zamówień klientów
-BoxTitleLastModifiedPropals=Latest %s modified propals
+BoxTitleLastModifiedPropals=Ostatnie %s zmodyfikowane oferty
 ForCustomersInvoices=Faktury Klientów
 ForCustomersOrders=Zamówienia klientów
 ForProposals=Oferty
-LastXMonthRolling=The latest %s month rolling
+LastXMonthRolling=Ostatni %s miesiąc
 ChooseBoxToAdd=Dodaj widget do swojej tablicy...
-BoxAdded=Widget was added in your dashboard
+BoxAdded=Widget został dodany do twojej tablicy
diff --git a/htdocs/langs/pl_PL/categories.lang b/htdocs/langs/pl_PL/categories.lang
index 043287426b8..b1c7e4abe40 100644
--- a/htdocs/langs/pl_PL/categories.lang
+++ b/htdocs/langs/pl_PL/categories.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - categories
 Rubrique=Tag / Kategoria
 Rubriques=Tagi / Kategorie
-RubriquesTransactions=Tags/Categories of transactions
+RubriquesTransactions=Tagi / kategorie transakcji
 categories=tagi/kategorie
 NoCategoryYet=Dla tego typu nie utworzono tagu/kategorii
 In=W
@@ -14,8 +14,8 @@ SuppliersCategoriesArea=Dostawcy tagi / obszar kategorie
 CustomersCategoriesArea=Klienci tagi / obszar kategorie
 MembersCategoriesArea=Użytkownicy tagi / obszar kategorie
 ContactsCategoriesArea=Kontakt tagi / obszar kategorie
-AccountsCategoriesArea=Accounts tags/categories area
-ProjectsCategoriesArea=Projects tags/categories area
+AccountsCategoriesArea=Obsza tagów / kategorii kont
+ProjectsCategoriesArea=Obszar tagów / kategorii projektów
 SubCats=Podkategorie
 CatList=Lista tagów / kategorii
 NewCategory=Nowy tag / kategoria
@@ -26,7 +26,7 @@ CreateThisCat=Utwórz ten tag/kategorię
 NoSubCat=Brak podkategorii.
 SubCatOf=Podkategoria
 FoundCats=Znaleziono tagów / kategorie
-ImpossibleAddCat=Impossible to add the tag/category %s
+ImpossibleAddCat=Nie możliwe jest dodanie tagu/kategorii %s
 WasAddedSuccessfully=<b> %s</b> został dodany pomyślnie.
 ObjectAlreadyLinkedToCategory=Element jest już powiązany z tym tagiem/kategorią.
 ProductIsInCategories=Produkt/usuługa odnosi się do następujących tagów/kategorii
@@ -35,10 +35,10 @@ CompanyIsInSuppliersCategories=Ten kontahent jest skojarzony z następującymi t
 MemberIsInCategories=Ten członek jest skojarzony z następującymi tagami/kategoriami członków
 ContactIsInCategories=Ten kontakt odnosi się do następujących tagów/kategorii kontaktów
 ProductHasNoCategory=Ten produkt/usługa nie jest w żadnym tagu/kategorii
-CompanyHasNoCategory=This third party is not in any tags/categories
+CompanyHasNoCategory=Ten kontrahent nie należy do żadnego tagu/kategorii
 MemberHasNoCategory=Ten członek nie jest w żadnym tagu/kategorii
 ContactHasNoCategory=Ten kontakt nie jest w żadnym z tagów / kategorii
-ProjectHasNoCategory=This project is not in any tags/categories
+ProjectHasNoCategory=Ten projekt nie należy do żadnego tagu / kategorii
 ClassifyInCategory=Dodaj do tagu/kategorii
 NotCategorized=Bez znaczników / kategorii
 CategoryExistsAtSameLevel=Ta kategoria już istnieje w tym samym miejscu
@@ -53,20 +53,20 @@ ProductsCategoryShort=Tag/kategoria produktu
 MembersCategoryShort=Tag/kategoria członków
 SuppliersCategoriesShort=Tagi/kategorie dostawców
 CustomersCategoriesShort=Tagi/kategorie klientów
-ProspectsCategoriesShort=Prospects tags/categories
+ProspectsCategoriesShort=Tagi / kategorie potencjalnych klientów
 CustomersProspectsCategoriesShort=Kat. klient/poten. klient.
 ProductsCategoriesShort=Tagi/kategorie produktów
 MembersCategoriesShort=Użytkownicy tagów / kategorii
 ContactCategoriesShort=Kontakt tagów / kategorii
-AccountsCategoriesShort=Accounts tags/categories
-ProjectsCategoriesShort=Projects tags/categories
+AccountsCategoriesShort=Tagi / kategorie kont
+ProjectsCategoriesShort=Tagi / kategorie projektów
 ThisCategoryHasNoProduct=Ta kategoria nie zawiera żadnych produktów.
 ThisCategoryHasNoSupplier=Ta kategoria nie zawiera żadnego dostawcy.
 ThisCategoryHasNoCustomer=Ta kategoria nie zawiera żadnych klientów.
 ThisCategoryHasNoMember=Ta kategoria nie zawiera żadnych członków.
 ThisCategoryHasNoContact=Ta kategoria nie zawiera żadnego kontaktu.
-ThisCategoryHasNoAccount=This category does not contain any account.
-ThisCategoryHasNoProject=This category does not contain any project.
+ThisCategoryHasNoAccount=Ta kategoria nie zawiera żadnego konta.
+ThisCategoryHasNoProject=Ta kategoria nie zawiera żadnych projektów.
 CategId=Tag / ID kategorii
 CatSupList=Lista tagów/kategorii dostawcy
 CatCusList=Lista klientów / perspektywa tagów / kategorii
@@ -76,7 +76,7 @@ CatContactList=Lista tagów/kategorii kontaktu
 CatSupLinks=Powiązania między dostawcami i tagami/kategoriami
 CatCusLinks=Powiązania między klientami / perspektyw i tagów / kategorii
 CatProdLinks=Powiązania między produktami/usługami i tagami/kategoriami
-CatProJectLinks=Links between projects and tags/categories
+CatProJectLinks=Połączenia pomiędzy projektami a tagami / kategoriami
 DeleteFromCat=Usuń z tagów/kategorii
 ExtraFieldsCategories=Atrybuty uzupełniające
 CategoriesSetup=Tagi / kategorie Konfiguracja
diff --git a/htdocs/langs/pl_PL/commercial.lang b/htdocs/langs/pl_PL/commercial.lang
index f73738a08e4..3d7f2e83a7e 100644
--- a/htdocs/langs/pl_PL/commercial.lang
+++ b/htdocs/langs/pl_PL/commercial.lang
@@ -18,8 +18,8 @@ TaskRDVWith=Spotkanie z %s
 ShowTask=Pokaż zadanie
 ShowAction=Pokaż działania
 ActionsReport=Działania raport
-ThirdPartiesOfSaleRepresentative=Third parties with sales representative
-SaleRepresentativesOfThirdParty=Sales representatives of third party
+ThirdPartiesOfSaleRepresentative=Kontrahenci z przedstawicielami handlowymi
+SaleRepresentativesOfThirdParty=Przedstawiciele handlowi kontrahentów
 SalesRepresentative=Przedstawiciel handlowy
 SalesRepresentatives=Przedstawiciele handlowi
 SalesRepresentativeFollowUp=Przedstawiciel handlowy (kontynuacja)
diff --git a/htdocs/langs/pl_PL/companies.lang b/htdocs/langs/pl_PL/companies.lang
index 642af48f182..b8cbaebed7e 100644
--- a/htdocs/langs/pl_PL/companies.lang
+++ b/htdocs/langs/pl_PL/companies.lang
@@ -48,7 +48,7 @@ CivilityCode=Zwrot grzecznościowy
 RegisteredOffice=Siedziba
 Lastname=Nazwisko
 Firstname=Imię
-PostOrFunction=Job position
+PostOrFunction=Posada
 UserTitle=Tytuł
 Address=Adres
 State=Województwo
@@ -74,7 +74,7 @@ Poste= Stanowisko
 DefaultLang=Domyślny język
 VATIsUsed=Jest płatnikiem VAT
 VATIsNotUsed=Nie jest płatnikiem VAT
-CopyAddressFromSoc=Fill address with third party address
+CopyAddressFromSoc=Uzupełnij adres danymi kontrahenta
 ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects
 PaymentBankAccount=Konto bankowe dla płatności
 OverAllProposals=Propozycje
@@ -356,7 +356,7 @@ TE_PRIVATE=Osoba prywatna
 TE_OTHER=Inny
 StatusProspect-1=Nie kontaktować się
 StatusProspect0=Kontak nie podjęty
-StatusProspect1=To be contacted
+StatusProspect1=Do połączenia
 StatusProspect2=W trakcie kontaktu
 StatusProspect3=Skontaktowano
 ChangeDoNotContact=Zmień status na "Nie kontaktować się"
diff --git a/htdocs/langs/pl_PL/compta.lang b/htdocs/langs/pl_PL/compta.lang
index 3b84c67a289..7cc9c3e13b0 100644
--- a/htdocs/langs/pl_PL/compta.lang
+++ b/htdocs/langs/pl_PL/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Powiel opłatę za ZUS/podatek
 ConfirmCloneTax=Potwierdź powielenie płatności za ZUS/podatek
 CloneTaxForNextMonth=Powiel to na następny miesiąc
diff --git a/htdocs/langs/pl_PL/errors.lang b/htdocs/langs/pl_PL/errors.lang
index e116dcdc611..eb29a521f2d 100644
--- a/htdocs/langs/pl_PL/errors.lang
+++ b/htdocs/langs/pl_PL/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=Hasło zostało ustawione dla tego użytkownika. Jednakże nie Konto użytkownika zostało utworzone. Więc to hasło jest przechowywane, ale nie mogą być używane do logowania do Dolibarr. Może być stosowany przez zewnętrzny moduł / interfejsu, ale jeśli nie trzeba definiować dowolną logowania ani hasła do członka, można wyłączyć opcję "Zarządzaj login dla każdego członka" od konfiguracji modułu użytkownika. Jeśli potrzebujesz zarządzać logowanie, ale nie wymagają hasła, możesz zachować to pole puste, aby uniknąć tego ostrzeżenia. Uwaga: E może być również stosowany jako login, jeśli element jest połączony do użytkownika.
diff --git a/htdocs/langs/pl_PL/help.lang b/htdocs/langs/pl_PL/help.lang
index 0c4f164a0f7..0a06de00ae5 100644
--- a/htdocs/langs/pl_PL/help.lang
+++ b/htdocs/langs/pl_PL/help.lang
@@ -11,7 +11,7 @@ TypeOfSupport=Źródła wsparcia
 TypeSupportCommunauty=Wspólnoty (bezpłatny)
 TypeSupportCommercial=Komercyjny
 TypeOfHelp=Typ
-NeedHelpCenter=Need help or support?
+NeedHelpCenter=Potrzebujesz pomocy lub wsparcia?
 Efficiency=Efektywność
 TypeHelpOnly=Tylko pomoc
 TypeHelpDev=Pomoc+Rozwoj
diff --git a/htdocs/langs/pl_PL/holiday.lang b/htdocs/langs/pl_PL/holiday.lang
index 938cc92e965..edf691bb181 100644
--- a/htdocs/langs/pl_PL/holiday.lang
+++ b/htdocs/langs/pl_PL/holiday.lang
@@ -16,7 +16,7 @@ CancelCP=Odwołany
 RefuseCP=Odmówił
 ValidatorCP=Approbator
 ListeCP=Lista urlopów
-ReviewedByCP=Will be approved by
+ReviewedByCP=Będzie zatwierdzone przez
 DescCP=Opis
 SendRequestCP=Tworzenie wniosku urlopowego
 DelayToRequestCP=Zostawić wnioski muszą być wykonane co <b>​​najmniej% s dzień (dni)</b> przed nimi.
@@ -76,13 +76,13 @@ BoxTitleLastLeaveRequests=Ostatnie %s modyfikowanych wniosków urlopowych
 HolidaysMonthlyUpdate=Miesięczna aktualizacja
 ManualUpdate=Ręczna aktualizacja
 HolidaysCancelation=Anulowanie wniosku urlopowego
-EmployeeLastname=Employee last name
-EmployeeFirstname=Employee first name
-TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
+EmployeeLastname=Nazwisko pracownika
+EmployeeFirstname=Imię pracownika
+TypeWasDisabledOrRemoved=Typ urlopu (id %s) zostało wyłączone lub usunięte
 
 ## Configuration du Module ##
-LastUpdateCP=Latest automatic update of leaves allocation
-MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
+LastUpdateCP=Ostatnia automatyczna aktualizacja alokacji urlopów
+MonthOfLastMonthlyUpdate=Miesiąc ostatniej automatycznej aktualizacji alokacji urlopów
 UpdateConfCPOK=Zaktualizowane.
 Module27130Name= Zarządzanie wnioskami urlopowymi
 Module27130Desc= Zarządzanie wnioskami urlopowymi
@@ -99,6 +99,6 @@ HolidaysRefused=Zapytanie zaprzeczył
 HolidaysRefusedBody=Twoje zapytanie urlopu dla% s do% s została odrzucona z następującego powodu:
 HolidaysCanceled=Anulowane wniosku urlopowego
 HolidaysCanceledBody=Twój wniosek urlopowy od %s do %s został anulowany.
-FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
-NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
+FollowedByACounter=1: Ten typ urlopu musi być prześledzony przez licznik. Licznik jest  zwiększany ręcznie lub automatycznie, a po zwolnieniu żądania urlopu, licznik jest zmniejszany. <br> 0: Nie śłedzone przez licznik.
+NoLeaveWithCounterDefined=Nie ma żadnych zdefiniowanych typów urlopu które  muszą być prześledzone przez licznik
 GoIntoDictionaryHolidayTypes=Idź do <strong>Home - Ustawienia - Słowniki - Rodzaj urlopów</strong> w celu stworzenia różnych typów urlopów.
diff --git a/htdocs/langs/pl_PL/install.lang b/htdocs/langs/pl_PL/install.lang
index 3c4d9236bf1..f249e8c148e 100644
--- a/htdocs/langs/pl_PL/install.lang
+++ b/htdocs/langs/pl_PL/install.lang
@@ -11,14 +11,14 @@ PHPSupportSessions=PHP obsługuje sesje.
 PHPSupportPOSTGETOk=PHP obsługuje zmienne POST i GET.
 PHPSupportPOSTGETKo=Możliwe, że PHP nie obsługuje zmiennych POST i/lub GET. Sprawdź parametr <b>variables_order</b> w php.ini.
 PHPSupportGD=PHP obsługuje graficzne funkcje GD.
-PHPSupportCurl=This PHP support Curl.
+PHPSupportCurl=To wsparcie PHP Curl.
 PHPSupportUTF8=Ta wersja PHP oferuje wsparcie funkcji UTF8.
 PHPMemoryOK=Maksymalna ilość pamięci sesji PHP ustawiona jest na <b>%s</b>. Powinno wystarczyć.
 PHPMemoryTooLow=Maksymalna ilość pamięci sesji PHP <b>%s</b> bajtów. To może nie wystarczyć. Zmień w <b>php.ini</b> parametr <b>memory_limit</b> na przynajmniej <b>%s</b> bajtów.
 Recheck=Potwierdź w celu dokładniejszego testu
 ErrorPHPDoesNotSupportSessions=Instalacja PHP nie obsługuje sesji. Taka funkcjonalność jest wymagana do działania Dolibarra. Sprawdź swoje ustawienia PHP.
 ErrorPHPDoesNotSupportGD=Twoja instalacji PHP nie obsługuje funkcji graficznych GD. wykresy nie będą dostępne.
-ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
+ErrorPHPDoesNotSupportCurl=Twoja instalacja PHP nie wspiera Curl.
 ErrorPHPDoesNotSupportUTF8=Twoja instalacji PHP nie obsługuje funkcji UTF8. Dolibarr może nie działać poprawnie. Rozwiązać ten problem przed instalacją Dolibarr'a.
 ErrorDirDoesNotExists=Katalog %s nie istnieje.
 ErrorGoBackAndCorrectParameters=Cofnij się i popraw złe parametry.
@@ -53,10 +53,10 @@ AdminLogin=Login do administratora bazy danych
 PasswordAgain=Powtórz hasło
 AdminPassword=Hasło do bazy danych
 CreateDatabase=Utwórz bazę danych
-CreateUser=Utwórz użytkownika
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Baza danych z dostępem na prawach superużytkownika
 CheckToCreateDatabase=Zaznacz jeśli baza danych nie istnieje i musi zostać utworzona.<br>W przypadku takim na dole tej strony musisz podać użytkownika/hasło do konta superużytkownika.
-CheckToCreateUser=Zaznacz jeśli użytkownik nie istnieje i musi zostać utworzony.<br>W przypadku takim na dole tej strony musisz podać użytkownika/hasło do konta superużytkownika.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Login użytkownika mogącego tworzyć nowe bazy lub nowych użytkowników, wymagane jeśli baza danych oraz jej właściciel nie istnieją.
 KeepEmptyIfNoPassword=Zostaw puste jeśli użytkownik nie posiada hasła (unikaj takiej sytuacji)
 SaveConfigurationFile=Zapis wartości
@@ -77,7 +77,7 @@ SetupEnd=Koniec ustawień
 SystemIsInstalled=Instalacja zakończona.
 SystemIsUpgraded=Dolibarr został zaktualizowany pomyślnie.
 YouNeedToPersonalizeSetup=Teraz należy ustawić Dolibarra tak by spełniał Twoje wymagania (wygląd, możliwości, ...). Kliknij w poniższy link by przejść do ustawień:
-AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
+AdminLoginCreatedSuccessfuly=Login administratora Dolibarr '<b>%s</b>' utworzony pomyślnie.
 GoToDolibarr=Idź do Dolibarr'a
 GoToSetupArea=Przejdź do ustawień Dolibarra
 MigrationNotFinished=Wersja bazy danych nie jest w pełni aktualna. Musisz uruchomić proces aktualizacji ponownie.
@@ -87,7 +87,7 @@ DirectoryRecommendation=Zalecane jest by umieścić ten katalog poza katalogiem
 LoginAlreadyExists=Już istnieje
 DolibarrAdminLogin=Użytkownik administracyjny Dolibarra
 AdminLoginAlreadyExists=Konto administracyjne Dolibarra '<b>%s</b>' już istnieje. Cofnij się jeśli chcesz utworzyć kolejne.
-FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
+FailedToCreateAdminLogin=Utworzenie konta administratora Dolibarr nie powiodło się.
 WarningRemoveInstallDir=Ostrzeżenie: ze względów bezpieczeństwa by zapobiec nieuprawnionemu użyciu po instalacji lub aktualizacji powinno się usunąć katalog install lub zmienić jego nazwę na <b>install.lock</b>.
 FunctionNotAvailableInThisPHP=Niedostępne w tej wersji PHP
 ChoosedMigrateScript=Wybierz skrypt migracyjny
@@ -132,13 +132,13 @@ MigrationFinished=Migracja zakończona
 LastStepDesc=<strong>Ostatni krok:</strong> Zdefiniuj tutaj nazwę i hasło, które masz zamiar użyć do połączenia z oprogramowaniem. Zapamiętaj je, ponieważ jest to konto do administrowania wszystkimi innymi ustawieniami.
 ActivateModule=Aktywuj moduł %s
 ShowEditTechnicalParameters=Kliknij tutaj, aby pokazać / edytować zaawansowane parametry (tryb ekspert)
-WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
+WarningUpgrade=Uwaga:\nUtworzyłeś najpierw kopię zapasową bazy danych?\nTo jest bardzo rekomendowane: dla przykładu, przez niektóre błędy w bazach danych systemu (np. mysql wersja 5.5.40/41/42/43), niektóre informacje lub tabele mogą zostać utracone podczas tego procesu, więc posiadanie kopii zapasowej bazy danych przed przystąpieniem do procesu migracji jest bardzo rekomendowane.\n\nKliknij OK aby zacząć proces migracji...
 ErrorDatabaseVersionForbiddenForMigration=Twoja wersja bazy danych to %s. Ma krytyczną lukę utraty danych jeśli się zmieni struktury na bazie danych, tak jak jest to wymagane podczas procesu migracji. Z tego powodu migracje nie zostaną dopuszczone dopóki nie ulepszysz bazy danych do wyższej wersji  (lista znanych wersji z lukami: %s)
 KeepDefaultValuesWamp=Używasz kreatora instalacji, więc zaproponowane wartości są zoptymalizowane. Zmieniaj je tylko jeśli wiesz co robisz.
 KeepDefaultValuesDeb=Używasz kreatora instalacji Dolibarr z pakietu Linux (Ubutu, Debian, Fedora..), więc zaproponowane wartości są zoptymalizowane. Musisz stworzyć tylko hasło dla właściciela bazy danych. Inne parametry zmieniaj tylko jeśli wiesz co robisz.
 KeepDefaultValuesMamp=Używasz kreatora instalacji, więc zaproponowane wartości są zoptymalizowane. Zmieniaj je tylko jeśli wiesz co robisz.
 KeepDefaultValuesProxmox=Możesz skorzystać z kreatora konfiguracji Dolibarr z urządzeniem wirtualnym Proxmox, więc wartości zaproponowane tutaj są już zoptymalizowane. Zmieniaj je tylko jeśli wiesz co robisz.
-UpgradeExternalModule=Run dedicated upgrade process of external modules
+UpgradeExternalModule=Uruchom dedykowany proces uaktualniania modułów zewnętrznych
 
 #########
 # upgrade
@@ -148,7 +148,7 @@ MigrationSupplierOrder=Migracja danych zamówień dostawców
 MigrationProposal=Migracja danych dla ofert handlowych
 MigrationInvoice=Migracja dla danych faktur odbiorców
 MigrationContract=Migracja danych kontraktów
-MigrationSuccessfullUpdate=Upgrade successfull
+MigrationSuccessfullUpdate=Aktualizacja zakoczona pomyślnie
 MigrationUpdateFailed=Aktualizacja nie powiodła się
 MigrationRelationshipTables=Migracja dla danych propozycji handlowych (%s)
 MigrationPaymentsUpdate=Korekta danych płatności
@@ -162,7 +162,7 @@ MigrationContractsLineCreation=Utwórz linię kontraktową dla kontraktu %s
 MigrationContractsNothingToUpdate=Nic więcej do zrobienia
 MigrationContractsFieldDontExist=Pole fk_facture już nie istnieje. Nic więcej do zrobienia.
 MigrationContractsEmptyDatesUpdate=Korekta pustych dat kontraktów
-MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
+MigrationContractsEmptyDatesUpdateSuccess=Poprawa pustej daty kontraktu przeprowadzona pomyślnie
 MigrationContractsEmptyDatesNothingToUpdate=Brak pustych dat kontraktów do korekty
 MigrationContractsEmptyCreationDatesNothingToUpdate=Brak dat utworzenia kontraktów do korekty
 MigrationContractsInvalidDatesUpdate=Nieprawidłowa wartość przy korekcie daty kontraktu
@@ -170,13 +170,13 @@ MigrationContractsInvalidDateFix=Korekta kontraktu %s (Data kontraktu=%s, Minima
 MigrationContractsInvalidDatesNumber=%s kontraktów zmodyfikowano
 MigrationContractsInvalidDatesNothingToUpdate=Brak dat z nieprawidłową wartością do korekty
 MigrationContractsIncoherentCreationDateUpdate=Nieprawidłowa wartość daty początkowej kontraktu do korekty
-MigrationContractsIncoherentCreationDateUpdateSuccess=Bad value contract creation date correction done successfully
+MigrationContractsIncoherentCreationDateUpdateSuccess=Poprawa złej wartości w tworzeniu kontraktu przeprowadzona pomyślnie 
 MigrationContractsIncoherentCreationDateNothingToUpdate=Brak nieprawidłowych wartości początkowej daty kontraktu do korekty
 MigrationReopeningContracts=Otwarte kontrakty zamknięte z przyczyny błędu
 MigrationReopenThisContract=Ponownie otwórz kontrakt %s
 MigrationReopenedContractsNumber=%s kontraktów zmodyfikowanych
 MigrationReopeningContractsNothingToUpdate=Brak zamkniętych kontraktów do otwarcia
-MigrationBankTransfertsUpdate=Update links between bank entry and a bank transfer
+MigrationBankTransfertsUpdate=Zaktualizuj linki pomiędzy wpisem banku a przelewem bankowym
 MigrationBankTransfertsNothingToUpdate=Wszystkie połączenia są aktualne
 MigrationShipmentOrderMatching=Aktualizacja rachunków za wysyłki
 MigrationDeliveryOrderMatching=Aktualizacja rachunków za dostawy
@@ -191,9 +191,9 @@ MigrationActioncommElement=Aktualizacja danych na temat działań
 MigrationPaymentMode=Migracji danych w trybie płatności
 MigrationCategorieAssociation=Migracja kategorii
 MigrationEvents=Przenieś wydarzenie by dodać nowego właściciela do przypisanej tabeli.
-MigrationRemiseEntity=Update entity field value of llx_societe_remise
-MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
+MigrationRemiseEntity=Zaktualizuj wartość pola podmiotu llx_societe_remise
+MigrationRemiseExceptEntity=Zaktualizuj wartość pola podmiotu llx_societe_remise_except
 MigrationReloadModule=Odśwież moduł %s
 ShowNotAvailableOptions=Pokaż niedostępne opcje.
 HideNotAvailableOptions=Ukryj niedostępne opcje.
-ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
+ErrorFoundDuringMigration=Wystąpiły błędy podczas procesu migracji więc następny krok jest nie dostępny. Żeby zignorować błędy, możesz <a href="%s">kliknąć tutaj</a>, ale aplikacja bądź jakieś jej funkcje mogą działać niepoprawnie do póki nie zostaną naprawione.
diff --git a/htdocs/langs/pl_PL/interventions.lang b/htdocs/langs/pl_PL/interventions.lang
index 8bff320d9d6..0584cd5c10f 100644
--- a/htdocs/langs/pl_PL/interventions.lang
+++ b/htdocs/langs/pl_PL/interventions.lang
@@ -6,7 +6,7 @@ NewIntervention=Nowa interwencja
 AddIntervention=Tworzenie interwencji
 ListOfInterventions=Wykaz interwencji
 ActionsOnFicheInter=Działania w zakresie interwencji
-LastInterventions=Latest %s interventions
+LastInterventions=Ostatnie %s interwencje
 AllInterventions=Wszystkie interwencje
 CreateDraftIntervention=Tworzenie projektu
 InterventionContact=Interwencja kontakt
@@ -14,19 +14,19 @@ DeleteIntervention=Usuń interwencję
 ValidateIntervention=Zatwierdź interwencję
 ModifyIntervention=Modyfikuj interwencję
 DeleteInterventionLine=Usuń linię interwencji
-CloneIntervention=Clone intervention
-ConfirmDeleteIntervention=Are you sure you want to delete this intervention?
-ConfirmValidateIntervention=Are you sure you want to validate this intervention under name <b>%s</b>?
-ConfirmModifyIntervention=Are you sure you want to modify this intervention?
-ConfirmDeleteInterventionLine=Are you sure you want to delete this intervention line?
-ConfirmCloneIntervention=Are you sure you want to clone this intervention?
+CloneIntervention=Zduplikuj interwencję
+ConfirmDeleteIntervention=Jesteś pewien, że chcesz usunąć tę interwencję?
+ConfirmValidateIntervention=Jesteś pewien, że chcesz potwierdzić tę interwencję pod nazwą <b>%s</b>?
+ConfirmModifyIntervention=Jesteś pewien, że chcesz zmodyfikować tę interwencję?
+ConfirmDeleteInterventionLine=Jesteś pewien, że chcesz usunąć tę linię interwencji?
+ConfirmCloneIntervention=Jesteś pewien, że chcesz zduplikować tę interwencję?
 NameAndSignatureOfInternalContact=Nazwisko i podpis interwencji:
 NameAndSignatureOfExternalContact=Nazwisko i podpis klienta:
 DocumentModelStandard=Standardowy model dokumentu dla interwencji
 InterventionCardsAndInterventionLines=Interwencje i kierunki interwencji
 InterventionClassifyBilled=Sklasyfikować "Rozlicz"
 InterventionClassifyUnBilled=Sklasyfikować "Unbilled"
-InterventionClassifyDone=Classify "Done"
+InterventionClassifyDone=Sklasyfikuj "Gotowe"
 StatusInterInvoiced=Zapowiadane
 ShowIntervention=Pokaż interwencję
 SendInterventionRef=Złożenie interwencyjnego% s
@@ -40,17 +40,17 @@ InterventionSentByEMail=Interwencja %s wysłana emailem
 InterventionDeletedInDolibarr=Interwencja %s usunięta
 InterventionsArea=Obszar interwencji
 DraftFichinter=Szkic interwencji
-LastModifiedInterventions=Latest %s modified interventions
-FichinterToProcess=Interventions to process
+LastModifiedInterventions=Ostatnie %s zmodyfikowane interwencje
+FichinterToProcess=Interwencje do przetworzenia
 ##### Types de contacts #####
 TypeContact_fichinter_external_CUSTOMER=W ślad za kontakt z klientem
 # Modele numérotation
-PrintProductsOnFichinter=Print also lines of type "product" (not only services) on intervention card
+PrintProductsOnFichinter=Wydrukuj również linie typu "produkt" (nie tylko usługi) na karcie interwencji
 PrintProductsOnFichinterDetails=Interwencje generowane z zamówień
-UseServicesDurationOnFichinter=Use services duration for interventions generated from orders
-InterventionStatistics=Statistics of interventions
-NbOfinterventions=Nb of intervention cards
-NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
+UseServicesDurationOnFichinter=Użyj czasu trwania usług dla interwencji generowanych przez zamówienia
+InterventionStatistics=Statystyki interwencji
+NbOfinterventions=Liczba kart interwencji
+NumberOfInterventionsByMonth=Liczba kart interwencji w miesiącu (data potwierdzenia) 
 ##### Exports #####
 InterId=ID interwencji
 InterRef=Numer referencyjny interwencji
diff --git a/htdocs/langs/pl_PL/ldap.lang b/htdocs/langs/pl_PL/ldap.lang
index 3d91e15b691..b146f60c4b1 100644
--- a/htdocs/langs/pl_PL/ldap.lang
+++ b/htdocs/langs/pl_PL/ldap.lang
@@ -14,7 +14,7 @@ LDAPFieldStatus=Stan
 LDAPFieldFirstSubscriptionDate=Pierwsze subskrypcji daty
 LDAPFieldFirstSubscriptionAmount=Pierwsza subskrypcja kwoty
 LDAPFieldLastSubscriptionDate=Data ostatniej subskrypcji
-LDAPFieldLastSubscriptionAmount=Latest subscription amount
+LDAPFieldLastSubscriptionAmount=Ostatnia ilość subskrypcji
 LDAPFieldSkype=ID Skype
 LDAPFieldSkypeExample=Przykład: nazwaSkype
 UserSynchronized=Użytkownik zsynchronizowany
diff --git a/htdocs/langs/pl_PL/main.lang b/htdocs/langs/pl_PL/main.lang
index 59ab6f9a956..9cd98d6e2cd 100644
--- a/htdocs/langs/pl_PL/main.lang
+++ b/htdocs/langs/pl_PL/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=Plik został wygenerowany pomyślnie
 FileSaved=The file was successfully saved
 FileUploaded=Plik został pomyślnie przesłany
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=Wybrano pliku do zamontowaia, ale jeszcze nie wysłano. W tym celu wybierz opcję "dołącz plik".
 NbOfEntries=Liczba wejść
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parametr
 Parameters=Parametry
 Value=Wartość
 PersonalValue=Osobiste wartości
+NewObject=New %s
 NewValue=Nowa wartość
 CurrentValue=Aktualna wartość
 Code=Kod
@@ -394,7 +396,7 @@ ActionRunningNotStarted=By rozpocząć
 ActionRunningShort=In progress
 ActionDoneShort=Zakończone
 ActionUncomplete=Niekompletne
-CompanyFoundation=Company/Organisation
+CompanyFoundation=Firma/Organizacja
 ContactsForCompany=Kontakty dla tego zamówienia
 ContactsAddressesForCompany=Kontakt/adres dla tej części/zamówienia/
 AddressesForCompany=Adressy dla części trzeciej
@@ -441,6 +443,7 @@ Reporting=Raportowanie
 Reportings=Raportowanie
 Draft=Szkic
 Drafts=Robocze
+StatusInterInvoiced=
 Validated=Zatwierdzona
 Opened=Otwarte
 New=Nowy
@@ -727,6 +730,7 @@ SetBankAccount=Przypisz konto bankowe
 AccountCurrency=Waluta konta
 ViewPrivateNote=Wyświetl notatki
 XMoreLines=%s lini(e) ukryte
+ShowMoreLines=Show more lines
 PublicUrl=Publiczny URL
 AddBox=Dodaj skrzynke
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Pokaż wpisy na koncie bankowym
 GoIntoSetupToChangeLogo=Wejdź w Strona główna - Ustawienia- Firma by zmienić logo lub przejdź do Strona główna- Ustawienia - Wyświetl do ukrycia.
 Deny=Zabraniać
 Denied=Zabroniony
+ListOf=List of %s
 ListOfTemplates=Lista szablonów
 Gender=Płeć
 Genderman=Mężczyzna
diff --git a/htdocs/langs/pl_PL/margins.lang b/htdocs/langs/pl_PL/margins.lang
index b8e47920189..64b350fbcdf 100644
--- a/htdocs/langs/pl_PL/margins.lang
+++ b/htdocs/langs/pl_PL/margins.lang
@@ -41,4 +41,4 @@ rateMustBeNumeric=Stawka musi być wartością liczbową
 markRateShouldBeLesserThan100=Stopa znak powinien być niższy niż 100
 ShowMarginInfos=Pokaż informacje o marżę
 CheckMargins=Szczegóły marż
-MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative).
+MarginPerSaleRepresentativeWarning=Raport marży na użytkownika wykorzystuje powiązanie między kontrahentami a przedstawicielami handlowymi w celu obliczenia marży każdego przedstawiciela handlowego. Ze względu na to, że niektórzy kontrahenci mogą nie posiadać przedstawiciela handlowego, a niektórzy mogą być powiązani z kilkoma, niektóre kwoty mogą nie zostać uwzględnione w tym raporcie (jeśli nie ma przedstawiciela sprzedaży), a niektóre mogą pojawić się w różnych wierszach (dla każdego przedstawiciela sprzedaży).
diff --git a/htdocs/langs/pl_PL/members.lang b/htdocs/langs/pl_PL/members.lang
index c0829646949..1c3e96f2e5e 100644
--- a/htdocs/langs/pl_PL/members.lang
+++ b/htdocs/langs/pl_PL/members.lang
@@ -138,7 +138,7 @@ DocForOneMemberCards=Generowanie wizytówki dla danego użytkownika (Format wyj
 DocForLabels=Generowanie arkuszy adres (Format wyjściowy rzeczywiście setup: <b>%s)</b>
 SubscriptionPayment=Zaplanowana płatność
 LastSubscriptionDate=Data ostatniej subskrypcji
-LastSubscriptionAmount=Latest subscription amount
+LastSubscriptionAmount=Ostatnia ilość subskrypcji
 MembersStatisticsByCountries=Użytkownicy statystyki według kraju
 MembersStatisticsByState=Użytkownicy statystyki na State / Province
 MembersStatisticsByTown=Użytkownicy statystyki na miasto
diff --git a/htdocs/langs/pl_PL/modulebuilder.lang b/htdocs/langs/pl_PL/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/pl_PL/modulebuilder.lang
+++ b/htdocs/langs/pl_PL/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/pl_PL/multicurrency.lang b/htdocs/langs/pl_PL/multicurrency.lang
index e8112c3d680..b3ccbb1110c 100644
--- a/htdocs/langs/pl_PL/multicurrency.lang
+++ b/htdocs/langs/pl_PL/multicurrency.lang
@@ -4,7 +4,8 @@ ErrorAddRateFail=Error in added rate
 ErrorAddCurrencyFail=Error in added currency
 ErrorDeleteCurrencyFail=Error delete fail
 multicurrency_syncronize_error=Synchronisation error: %s
-multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate)
+MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate
+multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate)
 CurrencyLayerAccount=CurrencyLayer API
 CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality<br />Get your <b>API key</b><br />If you use a free account you can't change the <b>currency source</b> (USD by default)<br />But if your main currency isn't USD you can use the <b>alternate currency source</b> to force you main currency<br /><br />You are limited at 1000 synchronizations per month
 multicurrency_appId=API key
diff --git a/htdocs/langs/pl_PL/opensurvey.lang b/htdocs/langs/pl_PL/opensurvey.lang
index 1fc27d98057..f69a94c9ed0 100644
--- a/htdocs/langs/pl_PL/opensurvey.lang
+++ b/htdocs/langs/pl_PL/opensurvey.lang
@@ -55,5 +55,5 @@ ErrorOpenSurveyFillFirstSection=Nie zapełnione pierwszą część tworzenia ank
 ErrorOpenSurveyOneChoice=Wprowadź co najmniej jeden wybór
 ErrorInsertingComment=Wystąpił błąd podczas wstawiania komentarz
 MoreChoices=Wprowadź więcej możliwości dla głosujących
-SurveyExpiredInfo=The poll has been closed or voting delay has expired.
+SurveyExpiredInfo=Ankieta została zamknięta lub upłynął termin ważności oddawania głosów.
 EmailSomeoneVoted=% S napełnił linię. Możesz znaleźć ankietę na link:% s
diff --git a/htdocs/langs/pl_PL/orders.lang b/htdocs/langs/pl_PL/orders.lang
index 6ce53415cc6..7fcc1c012c6 100644
--- a/htdocs/langs/pl_PL/orders.lang
+++ b/htdocs/langs/pl_PL/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Obszar zamówień od dostawców
 OrderCard=Karta zamówienia
 OrderId=ID zamówienia
 Order=Zamówienie
+PdfOrderTitle=Zamówienie
 Orders=Zamówienia
 OrderLine=Pozycja w zamówieniu
 OrderDate=Data zamówienia
diff --git a/htdocs/langs/pl_PL/other.lang b/htdocs/langs/pl_PL/other.lang
index 21250e9b65e..831f236dfce 100644
--- a/htdocs/langs/pl_PL/other.lang
+++ b/htdocs/langs/pl_PL/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/pl_PL/printing.lang b/htdocs/langs/pl_PL/printing.lang
index 76dd6a3581a..f4db6781638 100644
--- a/htdocs/langs/pl_PL/printing.lang
+++ b/htdocs/langs/pl_PL/printing.lang
@@ -46,6 +46,6 @@ IPP_Media=Nośnik drukarki
 IPP_Supported=Typ nośnika
 DirectPrintingJobsDesc=Ta strona pokazuje listę zadań wydruku dla dostępnych drukarek.
 GoogleAuthNotConfigured=Ustawienia Google OAuth nie skończone. Włącz moduł OAuth i ustawić Google ID/Secret.
-GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth.
+GoogleAuthConfigured=Google OAuth credentials zostały znalezione w ustawieniach modułu OAuth.
 PrintingDriverDescprintgcp=Zmienne konfiguracyjne dla sterownika drukowania Google Cloud Print.
 PrintTestDescprintgcp=Lista drukarek dla Google Cloud Print.
diff --git a/htdocs/langs/pl_PL/propal.lang b/htdocs/langs/pl_PL/propal.lang
index 68c5625c49d..52ca30b6b98 100644
--- a/htdocs/langs/pl_PL/propal.lang
+++ b/htdocs/langs/pl_PL/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Szkic ofert handlowych
 ProposalsOpened=Otwarte oferty handlowe
 Prop=Oferty handlowe
 CommercialProposal=Oferta handlowa
+PdfCommercialProposalTitle=Oferta handlowa
 ProposalCard=Karta oferty
 NewProp=Nowa oferta handlowa
 NewPropal=Nowa oferta
diff --git a/htdocs/langs/pl_PL/salaries.lang b/htdocs/langs/pl_PL/salaries.lang
index bc93a2efe44..524b72b172d 100644
--- a/htdocs/langs/pl_PL/salaries.lang
+++ b/htdocs/langs/pl_PL/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Wypłata
 Salaries=Wypłaty
diff --git a/htdocs/langs/pl_PL/website.lang b/htdocs/langs/pl_PL/website.lang
index 45c4d486172..2acb883afdf 100644
--- a/htdocs/langs/pl_PL/website.lang
+++ b/htdocs/langs/pl_PL/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Stwórz tyle stron ile potrzebujesz. Następnie przejść do me
 DeleteWebsite=Skasuj stronę
 ConfirmDeleteWebsite=Jesteś pewny że chcesz skasować stronę? Całą jej zawartość zostanie usunięta.
 WEBSITE_PAGENAME=Nazwa strony
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL zewnętrznego pliku CSS
 WEBSITE_CSS_INLINE=Zawartość CSS
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Biblioteka mediów
-EditCss=Edytuj Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edytuj Menu
 EditPageMeta=Edytuj koniec
 EditPageContent=Edytuj zawartość
 Website=Strona WWW
-Webpage=Strona internetowa
-AddPage=Dodaj stronę
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Podgląd twojej strony <strong>%s</strong> nie jest jeszcze dostępny. Musisz najpierw dodać stronę.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Strona %s portalu %s usunięta
-PageAdded=Strona '%s' dodana
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=Zobacz stronę w nowej zakładce
 ViewPageInNewTab=Zobacz stronę w nowej zakładce
 SetAsHomePage=Ustaw jako stronę domową
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/pl_PL/workflow.lang b/htdocs/langs/pl_PL/workflow.lang
index 118ebdd0068..7a6292ab454 100644
--- a/htdocs/langs/pl_PL/workflow.lang
+++ b/htdocs/langs/pl_PL/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Konfiguracja modułu przepływu pracy
 WorkflowDesc=Moduł ten jest przeznaczony do zmiany zachowania automatycznych działań na język aplikacji. Domyślnie pracy jest otwarty (można robić rzeczy w określonej kolejności). Możesz włączyć automatyczne czynności, które są zainteresowane.
 ThereIsNoWorkflowToModify=Nie ma zmiany workflow dostępne z aktywnych modułów.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatycznie twórz zamówienie klienta po podpisaniu oferty handlowej
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatycznie twórz fakturę dla klienta po podpisaniu oferty handlowej
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatycznie stwórz fakturę dla klienta po zatwierdzeniu kontraktu
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatycznie twórz fakturę dla klienta po zamknięciu zamówienia od klienta
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Klasyfikowania związany propozycję źródłowego zapowiadane gdy zamówienie klienta jest ustawiony na płatne
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Klasyfikowania związane Źródło (-a), gdy klienta do faktury klienta naliczana jest ustawiony wypłacane
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Klasyfikowania związany zamówienie klienta źródłowego (s) do grubodzioby, gdy faktura klient jest weryfikowany
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/pt_BR/accountancy.lang b/htdocs/langs/pt_BR/accountancy.lang
index a4765b0f22d..9db6a42667e 100644
--- a/htdocs/langs/pt_BR/accountancy.lang
+++ b/htdocs/langs/pt_BR/accountancy.lang
@@ -39,7 +39,6 @@ EndProcessing=Processo foi finalizado.
 NoAccountSelected=Nenhuma conta da Contabilidade selecionada
 VentilatedinAccount=Vinculado a conta contábil com sucesso
 NotVentilatedinAccount=Não vinculado a conta contábil
-XLineSuccessfullyBinded=%s produtos/serviços vinculados com sucesso a uma conta da Contabilidade
 XLineFailedToBeBinded=%s produtos/serviços não estão vinculados a qualquer conta da Contabilidade
 ACCOUNTING_LIMIT_LIST_VENTILATION=Numero de elementos para vincular, mostrado por página (máximo recomendado: 50)
 ACCOUNTING_LIST_SORT_VENTILATION_TODO=Iniciar a página "Vinculações a fazer" ordenando pelos elementos mais recentes
@@ -82,7 +81,6 @@ DescVentilDoneSupplier=Consulte aqui a lista das linhas de faturas de fornecedor
 ValidateHistory=Vincular Automaticamente
 AutomaticBindingDone=Vinculação automática realizada
 ErrorAccountancyCodeIsAlreadyUse=Erro, você não pode excluir esta conta contábil, pois ela esta em uso
-MvtNotCorrectlyBalanced=Movimento sem o equilíbrio correto. Crédito = %s. Débito = %s
 ListOfProductsWithoutAccountingAccount=Lista de produtos não vinculados a qualquer conta da Contabilidade
 ChangeBinding=Alterar a vinculação
 AccountingJournalType2=De vendas
diff --git a/htdocs/langs/pt_BR/admin.lang b/htdocs/langs/pt_BR/admin.lang
index 20a0659c631..ebb30ae8c96 100644
--- a/htdocs/langs/pt_BR/admin.lang
+++ b/htdocs/langs/pt_BR/admin.lang
@@ -107,7 +107,6 @@ SystemToolsArea=Área de Ferramentas do sistema
 SystemToolsAreaDesc=Essa área dispõe de funções administrativas. Use esse menu para escolher as funções que você está procurando.
 Purge=Purgar (apagar tudo)
 PurgeAreaDesc=Esta página te permite deletar todos os arquivos gerador e armazenados pelo Dolibarr (arquivos temporários ou todos os arquivos no diretório <b>%s</b>). Este recusro é fornecido como uma solução alteranativa aos usuários cujo a instalação esteja hospedado num servidor que impeça o acesso as pastas onde os arquivos gerados pelo Dolibarr são armazenados, para excluí-los.
-PurgeDeleteLogFile=Excluir arquivo de log <b>%s</b> definido pelo módulo Syslog (sem risco de perca de dados)
 PurgeDeleteTemporaryFiles=Excluir todos os arquivos temporários (sem risco de perca de dados)
 PurgeDeleteTemporaryFilesShort=Excluir arquivos temporários
 PurgeDeleteAllFilesInDocumentsDir=Eliminar todos os arquivos do diretório <b>%s</b>. Arquivos temporários, backups, arquivos anexados (terceiros, faturas, etc.) e arquivos anexados dentro dos módulos ECM serão deletados.
@@ -230,7 +229,6 @@ SetupIsReadyForUse=A implantação do módulo está concluída. No entanto, voc
 NotExistsDirect=O diretório root alternativo não está definido para um diretório existente.<br>
 InfDirAlt=Desde a versão 3, é possível definir um diretório-root alternativo. Isso permite que você armazene, em um diretório dedicado, plug-ins e modelos personalizados. <br> Basta criar um diretório na raiz de Dolibarr (por exemplo:custom).<br>
 InfDirExample=<br> Em seguida, declará-lo no arquivo <strong> conf.php </ strong> <br>$dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom' <br> Se essas linhas forem comentadas com "#", para habilitá-las, basta descomentar  removendo o caractere "#".
-YouCanSubmitFile=Selecione o módulo:
 CallUpdatePage=Vá para a página que atualiza a estrutura de banco de dados e os dados:% s.
 UpdateServerOffline=Atualização de servidor off-line
 GenericMaskCodes=Você pode criar suas próprias mascaras para gerar as referências automáticas.<br> Como exemplo inicial a mascara <b>'CLI{000}'</b> vai gerar a ref. <b>CLI001</b>,<b>CLI002</b>,<b>...</b> as mascaras são:<br>Mascara de contagem <b>{0000}</b>, essa mascara vai contar para cada nova ref. ex:<b>0001</b>,<b>0002</b>,<b>0003</b>,<b>...</b><br>Mascara de número inicial ex:<b>{000+100}</b> -> <b>101</b>,<b>102</b>,<b>103</b>,<b>...</b> ex2:<b>{0000+123}</b> -> <b>0124</b>,<b>0125</b>,<b>...</b><br>Mascara da data <b>{dd}</b> dias (01 a 31), <b>{mm}</b> mês (01 a 12), <b>{yy} {yyyy}</b> para anos ex:<b>{dd}/{mm}/{yy}</b> -> <b>28/07/15</b><br>
@@ -588,8 +586,6 @@ Permission401=Ler Descontos
 Permission402=Criar/Modificar Descontos
 Permission403=Validar Descontos
 Permission404=Excluir Descontos
-Permission510=Leia Salários
-Permission512=Criar / modificar salários
 Permission514=Excluir salários
 Permission517=Salários de exportação
 Permission520=Leia Empréstimos
@@ -841,7 +837,6 @@ RestoreDesc2=* Restaurar o arquivo de backup (zipado) no diretório dos document
 RestoreDesc3=* Restaurar os dados de backup do arquivo de despejo, para dentro do banco de dados da nova instalação do Dolibarr ou para dentro da atual instalação. Aviso, uma vez a restauração completa, você deve usar o login/senha, que existia quando o backup foi feito, para conectar denovo. Para restaurar o backup do banco de dados para dentro da atual instalação, você pode seguir esse assistente.
 RestoreMySQL=Importar MySQL
 ForcedToByAModule=Essa Regra é forçada para <b>%s</b> by um módulo ativado
-PreviousDumpFiles=Disponível banco de dados de backup dos arquivos de despejo
 RunningUpdateProcessMayBeRequired=Rodando o processo de upgrade parece ser requerido (Versão dos programas %s é diferente da versão do banco de dados %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=Você deve rodar esse comando na linha de comando (CLI) depois de logar no shell com o usuário <b>%s</b> ou você deve adicionar a opção -W no final da linha de comando para fornecer a senha <b>%s</b>.
 YourPHPDoesNotHaveSSLSupport=Função SSL functions não está disponível no seu PHP
diff --git a/htdocs/langs/pt_BR/banks.lang b/htdocs/langs/pt_BR/banks.lang
index 99cc33f8ca1..5675ffd28f2 100644
--- a/htdocs/langs/pt_BR/banks.lang
+++ b/htdocs/langs/pt_BR/banks.lang
@@ -121,7 +121,3 @@ CheckRejectedAndInvoicesReopened=Cheque devolvido e faturas reabertas
 BankAccountModelModule=Temas de documentos para as contas bancárias.
 DocumentModelSepaMandate=Tema do mandato SEPA. Útil somente para os países europeus na Comunidade Europeia.
 DocumentModelBan=Tema para imprimir a página com a informação BAN.
-NewVariousPayment=Novo pagamento variado
-VariousPayment=Vários pagamentos
-VariousPayments=Vários pagamentos
-ShowVariousPayment=Mostrar vários pagamentos
diff --git a/htdocs/langs/pt_BR/companies.lang b/htdocs/langs/pt_BR/companies.lang
index a1f7459ea0c..43bedf4b3a0 100644
--- a/htdocs/langs/pt_BR/companies.lang
+++ b/htdocs/langs/pt_BR/companies.lang
@@ -230,5 +230,6 @@ MergeOriginThirdparty=Duplicar terceiros (terceiros que deseja excluir)
 MergeThirdparties=Mesclar terceiros
 ThirdpartiesMergeSuccess=Terceiros foram mesclados
 SaleRepresentativeLogin=Login para o representante de vendas
+SaleRepresentativeLastname=Sobrenome do representante de vendas
 ErrorThirdpartiesMerge=Houve um erro ao excluir os terceiros. Por favor, verifique o log. As alterações foram revertidas.
 NewCustomerSupplierCodeProposed=Código sugerido para o novo cliente ou fornecedor está duplicado
diff --git a/htdocs/langs/pt_BR/install.lang b/htdocs/langs/pt_BR/install.lang
index cda864bb22a..f20f11d8118 100644
--- a/htdocs/langs/pt_BR/install.lang
+++ b/htdocs/langs/pt_BR/install.lang
@@ -46,7 +46,6 @@ AdminPassword=Password para o administrador da base de dados Dolibarr. Deixar em
 CreateDatabase=Criar uma base de dados
 DatabaseSuperUserAccess=Base de dados - Acesso Superuser
 CheckToCreateDatabase=Verifique se o banco de dados não existe e deve ser criado. <br> Neste caso, você deve preencher o login / senha para a conta de superuser, na parte inferior desta página.
-CheckToCreateUser=Marque esta opção se o dono do banco de dados não existe e deve ser criado. <br> Neste caso, você deve preencher o login / senha para o superusuário em conta, na parte inferior desta página.
 DatabaseRootLoginDescription=Login do usuário que possui permissão para criar novas bases de dados ou de novos usuários em banco de dados, inútil se o seu banco de dados e seu banco de dados já existe login (como quando você está hospedado por um provedor de hospedagem da web).
 KeepEmptyIfNoPassword=Deixar em branco se o usuário não tiver password
 SaveConfigurationFile=Gravar configuração
diff --git a/htdocs/langs/pt_BR/website.lang b/htdocs/langs/pt_BR/website.lang
index 7d24c29d493..ba589121f3b 100644
--- a/htdocs/langs/pt_BR/website.lang
+++ b/htdocs/langs/pt_BR/website.lang
@@ -6,12 +6,9 @@ WEBSITE_PAGENAME=Nome da Página/Apelido
 WEBSITE_CSS_URL=URL do arquivo CSS externo.
 WEBSITE_CSS_INLINE=Conteúdo CSS
 MediaFiles=Biblioteca de mídias
-EditCss=Editar Estilos/CSS
 EditPageMeta=Editar Meta
 Website=Web Site
-Webpage=Página na web
 PreviewOfSiteNotYetAvailable=A Pré-visualização do seu website <strong>%s</strong> ainda não está disponível. Primeiro você deverá adicionar uma página.
-PageDeleted=Página '%s' do website %s foi deletada
 ViewSiteInNewTab=Visualizar site numa nova aba
 ViewPageInNewTab=Visualizar página numa nova aba
 SetAsHomePage=Definir com Página Inicial
diff --git a/htdocs/langs/pt_BR/workflow.lang b/htdocs/langs/pt_BR/workflow.lang
index 6082a00813b..539d2368b49 100644
--- a/htdocs/langs/pt_BR/workflow.lang
+++ b/htdocs/langs/pt_BR/workflow.lang
@@ -1,11 +1,4 @@
 # Dolibarr language file - Source file is en_US - workflow
 WorkflowDesc=Este módulo é concebido para modificar o comportamento das ações automáticas para aplicação. Por padrão, o fluxo de trabalho está aberto (você pode fazer as coisas na ordem que você quiser). Você pode ativar as ações automáticas que você está interessado.
 ThereIsNoWorkflowToModify=Não há alterações do fluxo de trabalho disponíveis com os módulos ativados.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Criar automaticamente uma ordem de cliente depois de uma proposta comercial é assinado
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Criar automaticamente uma fatura de cliente depois que uma proposta comercial é assinada
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Criar automaticamente uma fatura de cliente depois que um contrato é validado
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Criar automaticamente uma fatura de cliente depois que uma ordem do cliente é fechada
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classificar proposta fonte ligada ao bico quando a ordem do cliente é definido como pago
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classifique os pedido do cliente vinculado as fonte(s) das faturas quando a fatura do cliente ainda não foi paga
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classifique os pedidos do cliente vinculado as fonte(s) das faturas quando a fatura do cliente  for paga.
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classificar proposta fonte ligada a construir quando fatura do cliente é validado
diff --git a/htdocs/langs/pt_PT/accountancy.lang b/htdocs/langs/pt_PT/accountancy.lang
index 6c15becac1f..8e7bc280e36 100644
--- a/htdocs/langs/pt_PT/accountancy.lang
+++ b/htdocs/langs/pt_PT/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Visão geral da quantidade de linhas já vinculadas
 OtherInfo=Outra informação
 DeleteCptCategory=Remover conta contabilistica do grupo
 ConfirmDeleteCptCategory=Tem a certeza que deseja remover esta conta contabilística deste grupo?
-AlreadyInGeneralLedger=Already journalized in ledgers
+JournalizationInLedgerStatus=Status of journalization
+AlreadyInGeneralLedger=Já foi registado nos diários contabilísticos
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Área de contabilidade
 AccountancyAreaDescIntro=O uso do módulo de contabilidade é feito em várias etapas:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=PASSO %s: Defina a conta contabilística para o
 AccountancyAreaDescSal=PASSO %s: Defina a conta contabilística para o pagamento de salários. Para tal pode usar a entrada do menu %s.
 AccountancyAreaDescContrib=PASSO %s: Defina a conta contabilística para despesas especiais (outros impostos). Para tal pode usar a entrada do menu %s.
 AccountancyAreaDescDonation=PASSO %s: Defina a conta contabilística para donativos. Para tal pode usar a entrada do menu %s.
-AccountancyAreaDescMisc=PASSO %s: Defina a conta contabilística para transações diversas. Para tal pode usar a entrada %s do menu.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=PASSO %s: Defina a conta contabilística para empréstimos. Para tal pode usar a entrada do menu %s.
 AccountancyAreaDescBank=PASSO %s: Defina a conta contabilística para cada conta bancária e financeira. Para tal vá à ficha de cada conta bancária ou financeira. Comece na página %s.
 AccountancyAreaDescProd=PASSO %s: Defina a contas contabilística para os seus produtos. Para tal pode usar a entrada %s do menu.
@@ -79,11 +86,11 @@ SuppliersVentilation=Fornecedor de ligação factura
 ExpenseReportsVentilation=Vinculação do relatório de despesas
 CreateMvts=Criar nova transação
 UpdateMvts=Modificação de uma transação
-ValidTransaction=Validate transaction
+ValidTransaction=Validar transação
 WriteBookKeeping=Registar transações no Livro Razão
 Bookkeeping=Livro Razão
 AccountBalance=Saldo da conta
-
+ObjectsRef=Source object ref
 CAHTF=Total de compras em fornecedores sem impostos
 TotalExpenseReport=Relatório da despesa total
 InvoiceLines=Linhas de facturas a vincular
@@ -103,7 +110,7 @@ LineOfExpenseReport=Linha de relatório de despesas
 NoAccountSelected=Nenhuma conta contabilística selecionada
 VentilatedinAccount=Vinculado com sucesso a conta de contabilística
 NotVentilatedinAccount=Não vinculado à conta contabilística
-XLineSuccessfullyBinded=%s produtos/serviços vinculados com sucesso a uma conta contabilística
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s produtos/serviços não foram vinculados a uma conta contabilística
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Número de elementos para vincular, mostrado por página (máximo recomendado: 50)
@@ -143,7 +150,7 @@ NumPiece=Número da peça
 TransactionNumShort=Núm. de transação
 AccountingCategory=Grupos de contas contabilísticas
 GroupByAccountAccounting=Agrupar por conta contabilística
-ByAccounts=By accounts
+ByAccounts=Por contas
 NotMatch=Não configurado
 DeleteMvt=Eliminar as linhas do Livro Razão
 DelYear=Ano a apagar
@@ -154,7 +161,7 @@ DelBookKeeping=Eliminar entrada do Livro Razão
 FinanceJournal=Diário financeiro
 ExpenseReportsJournal=Diário de relatórios de despesas
 DescFinanceJournal=Diário financeiro incluindo todos os tipos de pagamentos por conta bancária
-DescJournalOnlyBindedVisible=Esta é uma visão de registos que estão vinculados a um conta de contabilidade de  produtos/serviços e pode ser registada no Livro Razão.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Conta para efeitos de IVA não definido
 ThirdpartyAccountNotDefined=Conta para terceiros não definido
 ProductAccountNotDefined=Conta para o produto não definido
@@ -170,6 +177,8 @@ AddCompteFromBK=Adicionar contas contabilisticas ao grupo
 ReportThirdParty=Lista de contas de terceiros
 DescThirdPartyReport=Consulte aqui a lista de clientes e fornecedores e as suas contas contabilísticas
 ListAccounts=Lista de contas contabilísticas
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Classe de conta
 Pcgsubtype=Sub-classe de conta
@@ -194,7 +203,7 @@ ValidateHistory=Vincular automaticamente
 AutomaticBindingDone=Vinculação automática efetuada
 
 ErrorAccountancyCodeIsAlreadyUse=Erro, não pode apagar esta conta contabilística porque está a ser utilizada
-MvtNotCorrectlyBalanced=O movimento não foi balanceado corretamente. Crédito = %s. Débito = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Cartão de vinculação
 GeneralLedgerIsWritten=As transações são escritas no Livro Razão
 GeneralLedgerSomeRecordWasNotRecorded=Algumas das transações não puderam ser gravadas. Se não existir outra mensagem de erro, então é provável que as transações já tenham sido gravadas.
@@ -210,20 +219,17 @@ AccountingJournals=Diários contabilisticos
 AccountingJournal=Diário contabilistico
 NewAccountingJournal=Novo diário contabilistico
 ShowAccoutingJournal=Mostrar diário contabilistico
-Code=Código
 Nature=Natureza
 AccountingJournalType1=Várias operações
 AccountingJournalType2=Vendas
 AccountingJournalType3=Compras
 AccountingJournalType4=Banco
-AccountingJournalType5=Expenses report
+AccountingJournalType5=Relatório de despesas
 AccountingJournalType9=Contém novo
 ErrorAccountingJournalIsAlreadyUse=Este diário já está a ser utilizado
 
 ## Export
-Exports=Exportados
-Export=Exportar
-ExportDraftJournal=Export draft journal
+ExportDraftJournal=Exportar o diário rascunho
 Modelcsv=Modelo de exportação
 OptionsDeactivatedForThisExportModel=Para este modelo de exportação, as opções estão desativadas
 Selectmodelcsv=Selecione um modelo de exportação
diff --git a/htdocs/langs/pt_PT/admin.lang b/htdocs/langs/pt_PT/admin.lang
index 94cf0df051f..c711a6cb4d7 100644
--- a/htdocs/langs/pt_PT/admin.lang
+++ b/htdocs/langs/pt_PT/admin.lang
@@ -10,11 +10,11 @@ VersionUnknown=Desconhecida
 VersionRecommanded=Recomendada
 FileCheck=Verificador da integridade dos ficheiros
 FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
-FileIntegrityIsStrictlyConformedWithReference=A integridade dos ficheiros é ajusta-se rigorosamente conforme a referência.
+FileIntegrityIsStrictlyConformedWithReference=A integridade dos ficheiros é ajustada rigorosamente conforme a referência.
 FileIntegrityIsOkButFilesWereAdded=A verificação da integridade dos arquivos passou, no entanto, alguns arquivos novos foram adicionados.
 FileIntegritySomeFilesWereRemovedOrModified=A verificação da integridade dos ficheiros falhou. Alguns ficheiros foram modificados, removidos ou adicionados.
 GlobalChecksum=Checksum global
-MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
+MakeIntegrityAnalysisFrom=Fazer a análise de integridade dos ficheiros de aplicativos a partir de
 LocalSignature=Assinatura local embutida (menos segura)
 RemoteSignature=Assinatura remota (mais segura)
 FilesMissing=Ficheiros em falta
@@ -140,13 +140,14 @@ SystemToolsArea=Área de ferramentas do sistema
 SystemToolsAreaDesc=Esta área oferece funcionalidades de administração. Utilize o menu para escolher a funcionalidade que está à procura.
 Purge=Limpar\n
 PurgeAreaDesc=Esta página permite-lhe eliminar todos os ficheiros gerados ou armazenados pelo Dolibarr (ficheiros temporários ou todos os ficheiros na diretoria <b>%s</b>). Não é necessário utilizar esta funcionalidade. Esta é fornecida como uma alternativa para os utilizadores que têm o Dolibarr alojado num provedor que não oferece permissões para eliminar os ficheiros gerados pelo servidor da Web.
-PurgeDeleteLogFile=Eliminar o ficheiro de registo <b>%s</b> definido para o módulo Syslog (sem risco de perda de dados)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Eliminar todos os ficheiros temporários (sem risco de perder os dados)
 PurgeDeleteTemporaryFilesShort=Eliminar ficheiros temporários
 PurgeDeleteAllFilesInDocumentsDir=Eliminar todos os ficheiros na diretoria <b>%s</b>. Não só os ficheiros temporários mas também as cópias de segurança da base de dados, ficheiros anexados aos elementos (como faturas, terceiros, ...) e enviados para o módulo GCE serão eliminados.
 PurgeRunNow=Limpar agora
 PurgeNothingToDelete=Nenhuma diretoria ou ficheiros para eliminar.
 PurgeNDirectoriesDeleted=<b>%s</b> ficheiros ou diretorias eliminadas.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Limpar todos os eventos de segurança
 ConfirmPurgeAuditEvents=tem a certeza que deseja limpar todos os eventos de segurança? Serão eliminados todos os registos de segurança, e não serão serão removidos outros dados.
 GenerateBackup=Gerar cópia de segurança
@@ -226,8 +227,8 @@ OfficialMarketPlace=Mercado externo oficial para os módulos/addons
 OfficialWebHostingService=Serviços web hosting referenciados (hospedagem na nuvem)
 ReferencedPreferredPartners=Parceiros preferidos
 OtherResources=Outros recursos
-ExternalResources=External resources
-SocialNetworks=Social Networks
+ExternalResources=Recursos externos
+SocialNetworks=Redes sociais
 ForDocumentationSeeWiki=Para a documentação de utilizador, programador ou Perguntas Frequentes (FAQ), consulte o wiki do Dolibarr<br><b><a href="%s" target="_blank">%s</a></b>
 ForAnswersSeeForum=Para outras questões, como efectuar as consultas, pode utilizar o forum do Dolibarr:<br><b><a href="%s" target="_blank">%s</a></b>
 HelpCenterDesc1=Esta área permite ajudá-lo a obter um serviço de suporte para o Dolibarr.
@@ -298,7 +299,7 @@ SetupIsReadyForUse=A instalação do módulo terminou. No entanto você deve ati
 NotExistsDirect=O diretório raiz alternativo não está definido para um diretório existente.<br>
 InfDirAlt=Desde a versão 3 do Dolibarr que é possível definir um diretório raiz alternativo. Isto permite que você consiga armazenar plug-ins e templates, num diretório dedicado.<br>Para tal basta criar um dirétorio na raiz do Dolibarr (ex: dedicado). <br>
 InfDirExample=<br>Depois declare-o no ficheiro <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>Se estas linhas estiverem comentadas com um "#", descomente-as removendo o "#".
-YouCanSubmitFile=Para este passo, pode enviar o pacote utilizando esta ferramenta: Selecione o ficheiro do módulo
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Versão atual do Dolibarr
 CallUpdatePage=Vá à página que atualiza a estrutura e dados da base de dados: %s.
 LastStableVersion=Última versão estável
@@ -431,7 +432,7 @@ UseDoubleApproval=Utilizar uma aprovação de 3 etapas quando o valor (sem impos
 WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
 ClickToShowDescription=Clique para mostrar a descrição
 DependsOn=Este módulo depende do(s) módulo(s)
-RequiredBy=This module is required by module(s)
+RequiredBy=Este módulo é necessário para o(s) módulo(s)
 TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
 PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
 PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>
@@ -535,8 +536,6 @@ Module1120Name=Orçamentos de fornecedores
 Module1120Desc=Pedir orçamentos e preços de fornecedores
 Module1200Name=Mantis
 Module1200Desc=Integração com Mantis
-Module1400Name=Contabilidade
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Criação de documentos
 Module1520Desc=Produção do documento da emails em massa
 Module1780Name=Etiquetas/Categorias
@@ -585,7 +584,7 @@ Module50100Desc=Modúlo de ponto de vendas (POS).
 Module50200Name=Paypal
 Module50200Desc=Módulo que disponibiliza uma página de pagamento online por cartão de crédito com Paypal
 Module50400Name=Contabilidade (avançada)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=impressão direta (sem abrir os documentos) usando a interface Cups IPP (A impressora deve ser visível a partir do servidor, e o CUPS deve estar instalado no servidor).
 Module55000Name=Votação ou Questionário
@@ -751,8 +750,10 @@ Permission401=Consultar descontos
 Permission402=Criar/modificar descontos
 Permission403=Validar descontos
 Permission404=Eliminar descontos
-Permission510=Consultar salários
-Permission512=Criar/modificar salários
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Apagar salários
 Permission517=Exportar salários
 Permission520=Consultar empréstimos
@@ -957,8 +958,8 @@ DefaultMaxSizeList=Tamanho máximo predefinido para listas
 DefaultMaxSizeShortList=Tamanho máximo predefinido para listas curtas (por exemplo, listas na ficha de cliente)
 MessageOfDay=Mensagem do día
 MessageLogin=Mensagem da página de inicio de sessão
-LoginPage=Login page
-BackgroundImageLogin=Background image
+LoginPage=Página de inicio de sessão
+BackgroundImageLogin=Imagem de fundo
 PermanentLeftSearchForm=Zona de pesquisa permanente no menu esquerdo
 DefaultLanguage=Idioma por defeito a utilizar (código idioma)
 EnableMultilangInterface=Ativar interface multi-idioma
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restaurar o ficheiro de arquivo (ficheiro .zip por exemplo) do dire
 RestoreDesc3=Restaurar os dados, a partir de um ficheiro dump backup, na base de dados da nova instalação Dolibarr ou na base de dados da instalação atual (<b>%s</b>). Aviso: uma vez que a restauração esteja concluída, você deve usar um login/palavra passe, que existia quando o backup foi feito, para iniciar a sessão novamente. Para restaurar um backup da base de dados para a instalação atual, pode seguir este assistente.
 RestoreMySQL=Importação MySQL
 ForcedToByAModule= Esta regra é forçada a <b>a %s</b>, por um módulo ativo
-PreviousDumpFiles=Ficheiros de cópias de segurança de base de dados disponíveis
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=Primeiro dia da semana
 RunningUpdateProcessMayBeRequired=Parece ser necessário executar o processo de atualização (a versão do programa %s difere da versão da base de dados %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=Deve executar este comando a partir de uma linha de comandos depois de iniciar a sessão, na linha de comandos, com o utilizador <b>%s</b> ou deve adicionar a opção -W no fim da linha de comando para indicar a palavra-passe <b>%s</b>.
@@ -1158,7 +1159,7 @@ CompanyIdProfChecker=Regras sobre IDs profissionais
 MustBeUnique=Deve ser único?
 MustBeMandatory=Obrigatório para criar terceiros?
 MustBeInvoiceMandatory=Obrigatório para validar faturas?
-TechnicalServicesProvided=Technical services provided
+TechnicalServicesProvided=Serviços técnicos fornecidos
 ##### Webcal setup #####
 WebCalUrlForVCalExport=Uma hiperligação de exportação para o formato <b>%s</b> está disponivel na seguinte hiperligação: %s
 ##### Invoices #####
@@ -1364,8 +1365,8 @@ CompressionOfResources=Compressão das respostas HTTP
 CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
 TestNotPossibleWithCurrentBrowsers=A detecção automática não é possível com os navegadores atuais
 DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
-DefaultCreateForm=Default values for new objects
-DefaultSearchFilters=Default search filters
+DefaultCreateForm=Valores predefinidos para novos objetos
+DefaultSearchFilters=Filtros de pesquisa predefinidos
 DefaultSortOrder=Default sort orders
 DefaultFocus=Campos de foco predefinidos
 ##### Products #####
@@ -1697,9 +1698,9 @@ SamePriceAlsoForSharedCompanies=Se utiliza a opção multi-empresa, com a escolh
 ModuleEnabledAdminMustCheckRights=O módulo foi ativado. As permissões para o(s) módulo(s) ativado(s) foram adicionadas apenas aos utilizadores administradores. Talvez seja necessário conceder permissões para outros utilizadores ou grupos manualmente.
 UserHasNoPermissions=Este utilizador não tem permissões definidas
 TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
-BaseCurrency=Reference currency of the company (go into setup of company to change this)
-WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
-WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
+BaseCurrency=Moeda de referência da empresa (vá à configuração da empresa para alterar)
+WarningNoteModuleInvoiceForFrenchLaw=Este módulo %s está de acordo com as leis francesas (Loi Finance 2016).
+WarningNoteModulePOSForFrenchLaw=Este módulo %s está de acordo com as leis francesas (Loi Finance 2016) porque o módulo Registos Não Reversíveis é ativado automaticamente.
 WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
 ##### Resource ####
 ResourceSetup=Configuração do módulo Recursos
diff --git a/htdocs/langs/pt_PT/agenda.lang b/htdocs/langs/pt_PT/agenda.lang
index ca806a2a61e..0281f782c57 100644
--- a/htdocs/langs/pt_PT/agenda.lang
+++ b/htdocs/langs/pt_PT/agenda.lang
@@ -75,17 +75,17 @@ InterventionSentByEMail=Intervenção %s, enviada por email
 ProposalDeleted=Orçamento eliminado
 OrderDeleted=Encomenda eliminada
 InvoiceDeleted=Fatura eliminada
-PRODUCT_CREATEInDolibarr=Product %s created
-PRODUCT_MODIFYInDolibarr=Product %s modified
-PRODUCT_DELETEInDolibarr=Product %s deleted
+PRODUCT_CREATEInDolibarr=O produto %s foi criado
+PRODUCT_MODIFYInDolibarr=O produto %s foi modificado
+PRODUCT_DELETEInDolibarr=O produto %s foi eliminado
 ##### End agenda events #####
 AgendaModelModule=Modelos de documento para o evento
 DateActionStart=Data de início
 DateActionEnd=Data de fim
 AgendaUrlOptions1=Também pode adicionar os seguintes parâmetros de filtro de saída:
 AgendaUrlOptions3=<b>logina=%s</b> para restringir a produção para as acções criadas pelo utilizador <b>%s</b>.
-AgendaUrlOptionsNotAdmin=<b>logina=!%s</b> to restrict output to actions not owned by user <b>%s</b>.
-AgendaUrlOptions4=<b>logint=%s</b> to restrict output to actions assigned to user <b>%s</b> (owner and others).
+AgendaUrlOptionsNotAdmin=<b>logina =!%s</b> para restringir a saída às ações que não pertencem ao utilizador <b>%s</b>.
+AgendaUrlOptions4=<b>logint =%s</b> para restringir a saída às ações atribuídas ao utilizador <b>%s</b> (proprietário e outros).
 AgendaUrlOptionsProject=<b>project=PROJECT_ID</b> para restringir a produção para as acções associadas ao projeto <b>PROJECT_ID</b>.
 AgendaShowBirthdayEvents=Mostrar aniversários dos contactos
 AgendaHideBirthdayEvents=Ocultar aniversários dos contactos
diff --git a/htdocs/langs/pt_PT/banks.lang b/htdocs/langs/pt_PT/banks.lang
index 7aeaa4c56df..427ba280fdf 100644
--- a/htdocs/langs/pt_PT/banks.lang
+++ b/htdocs/langs/pt_PT/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/pt_PT/bills.lang b/htdocs/langs/pt_PT/bills.lang
index 77cb4e12570..5c970f195eb 100644
--- a/htdocs/langs/pt_PT/bills.lang
+++ b/htdocs/langs/pt_PT/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Ficha da Fatura
 PredefinedInvoices=Factura Predefinida
 Invoice=Factura
+PdfInvoiceTitle=Fatura
 Invoices=Facturas
 InvoiceLine=Linha de Factura
 InvoiceCustomer=Fatura de Cliente
diff --git a/htdocs/langs/pt_PT/compta.lang b/htdocs/langs/pt_PT/compta.lang
index 48bb4322512..fd9fa33ebeb 100644
--- a/htdocs/langs/pt_PT/compta.lang
+++ b/htdocs/langs/pt_PT/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Cloná-la para o mês seguinte
diff --git a/htdocs/langs/pt_PT/errors.lang b/htdocs/langs/pt_PT/errors.lang
index 43c7c31bda7..826c11669b6 100644
--- a/htdocs/langs/pt_PT/errors.lang
+++ b/htdocs/langs/pt_PT/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/pt_PT/install.lang b/htdocs/langs/pt_PT/install.lang
index f21444ba3b9..cf0823ff670 100644
--- a/htdocs/langs/pt_PT/install.lang
+++ b/htdocs/langs/pt_PT/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Início de sessão para o administrador da base de dados Dolibarr. De
 PasswordAgain=Contrassenha
 AdminPassword=A senha para o utilizador da base de dados Dolibarr.
 CreateDatabase=Criar base de dados
-CreateUser=Criar administrador
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Servidor da Base de Dados - Acesso de Administrador
 CheckToCreateDatabase=Marque a caixa se a base de dados não existir e se deverá ser criada. <br> Neste caso, deve preencher o nome/senha para a conta de administrador, no fim desta página.
-CheckToCreateUser=Marque a caixa se o administrador da base de dados não existir e se deverá ser criado. <br> Neste caso, deve escolher o seu nome/senha e preencher também os dados da conta de administrador no fim desta página. Se esta caixa estiver desmarcada, o administrador da base de dados e a sua senha já deverão existir.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Início de sessão do utilizador autorizado para criar as novas bases de dados ou novos utilizadores, obrigatório se a sua base de dados ou o administrador já existirem.
 KeepEmptyIfNoPassword=Deixar em branco se o utilizador não tiver uma senha (evitar isto)
 SaveConfigurationFile=Guardar valores
diff --git a/htdocs/langs/pt_PT/main.lang b/htdocs/langs/pt_PT/main.lang
index b83a36f0fa2..24b4ccce216 100644
--- a/htdocs/langs/pt_PT/main.lang
+++ b/htdocs/langs/pt_PT/main.lang
@@ -75,7 +75,8 @@ FileRenamed=O ficheiro foi renomeado com sucesso
 FileGenerated=O ficheiro foi gerado com sucesso
 FileSaved=The file was successfully saved
 FileUploaded=O ficheiro foi enviado com sucesso
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=Um ficheiro foi seleccionada para ser anexado, mas ainda não foi carregado. Clique em 'Adicionar este Ficheiro' para anexar.
 NbOfEntries=Nº de entradas
 GoToWikiHelpPage=Consultar ajuda online (necessita de acesso à Internet)
@@ -196,6 +197,7 @@ Parameter=Parâmetro
 Parameters=Parâmetros
 Value=Valor
 PersonalValue=Valor pessoal
+NewObject=New %s
 NewValue=Novo valor
 CurrentValue=Valor actual
 Code=Código
@@ -441,6 +443,7 @@ Reporting=Relatório
 Reportings=Relatórios
 Draft=Rascunho
 Drafts=Rascunhos
+StatusInterInvoiced=
 Validated=Validado
 Opened=Abrir
 New=Novo
@@ -727,6 +730,7 @@ SetBankAccount=Definir Conta Bancária
 AccountCurrency=Moeda da conta
 ViewPrivateNote=Ver notas
 XMoreLines=%s linhas(s) ocultas
+ShowMoreLines=Show more lines
 PublicUrl=URL público
 AddBox=Adicionar Caixa
 SelectElementAndClick=Selecione um elemento e clique em %s
@@ -735,6 +739,7 @@ ShowTransaction=Mostrar transação
 GoIntoSetupToChangeLogo=Vá Início - Configurar - Empresa para alterar o logótipo ou vá a Início - Configurar - Exibir para ocultar.
 Deny=Negar
 Denied=Negada
+ListOf=List of %s
 ListOfTemplates=Lista de modelos
 Gender=Género
 Genderman=Homem
diff --git a/htdocs/langs/pt_PT/modulebuilder.lang b/htdocs/langs/pt_PT/modulebuilder.lang
index d13b09b2001..7e2d9b0a3f3 100644
--- a/htdocs/langs/pt_PT/modulebuilder.lang
+++ b/htdocs/langs/pt_PT/modulebuilder.lang
@@ -1,40 +1,56 @@
 # Dolibarr language file - Source file is en_US - loan
-ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
-EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
-ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
+ModuleBuilderDesc=Esta ferramenta deve ser utilizada por utilizadores mais experientes ou desenvolvedores. Esta oferece os utilitários necessários para criar ou editar o seu próprio módulo (A documentação para criar manualmente um novo módulo encontra-se <a href="%s" target="_blank">aqui</a>).
+EnterNameOfModuleDesc=Introduza o nome do módulo/aplicação a criar, sem espaços. Use maiúsculas para separar palavras (Por exemplo: MyModule, EcommerceForShop, SyncWithMySystem ...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
+ModuleBuilderDesc2=Caminho onde são gerados/editados os módulos (primeira diretoria alternativa definida em %s): <strong>%s</strong>
 ModuleBuilderDesc3=Módulos gerados/editáveis ​​encontrados: <strong>%s</strong> (são detectados como editáveis ​​quando o ficheiro <strong>%s</strong> existe na diretoria raiz do módulo).
 NewModule=Novo módulo
-NewObject=New object
-ModuleKey=Module key
-ObjectKey=Object key
+NewObject=Novo objeto
+ModuleKey=Chave do módulo
+ObjectKey=Chave do objeto
 ModuleInitialized=Módulo inicializado
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Introduza aqui todas as informações gerais que descrevem o seu módulo
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=Este separador é dedicado para definir entradas de menu fornecidas pelo seu módulo.
 ModuleBuilderDescpermissions=Este separador é dedicado para definir as novas permissões que deseja fornecer com o seu módulo.
-ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
+ModuleBuilderDesctriggers=Esta é a vista dos acionadores fornecidos pelo seu módulo. Para incluir o código executado quando um evento comercial acionado é iniciado, basta editar este ficheiro.
 ModuleBuilderDeschooks=Este separador é dedicado para hooks.
 ModuleBuilderDescwidgets=Este separador é dedicado para gerir/criar widgets.
-ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file.
-EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost !
-EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost !
+ModuleBuilderDescbuildpackage=Você pode gerar aqui um ficheiro pacote "pronto para distribuir" (um ficheiro .zip normalizado) do seu módulo e um ficheiro de documentação "pronto para distribuir". Basta clicar no botão para criar o ficheiro pacote do módulo e o ficheiro de documentação.
+EnterNameOfModuleToDeleteDesc=Você pode eliminar o seu módulo. AVISO: Todos os ficheiros associados ao módulo, dados estruturados e documentação serão apagados definitivamente!
+EnterNameOfObjectToDeleteDesc=Você pode eliminar um objeto. AVISO: Todos os arquivos relacionados com o objeto serão apagados definitivamente!
 DangerZone=Zona de perigo
-BuildPackage=Build package/documentation
-BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+BuildPackage=Criar pacote/documentação
+BuildDocumentation=Criar documentação
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=Este módulo foi ativado. Qualquer alteração pode causar problemas numa característica ativa atual.
 DescriptionLong=Descrição longa
 EditorName=Nome do editor
 EditorUrl=URL do editor
-DescriptorFile=Descriptor file of module
-ClassFile=File for PHP class
-ApiClassFile=File for PHP API class
-PageForList=PHP page for list of record
-PageForCreateEditView=PHP page to create/edit/view a record
-PathToModulePackage=Path to zip of module/application package
-PathToModuleDocumentation=Path to file of module/application documentation
-SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
-FileNotYetGenerated=File not yet generated
+DescriptorFile=Ficheiro descritor do módulo
+ClassFile=Ficheiro para a classe PHP
+ApiClassFile=Ficheiro para a classe API PHP
+PageForList=Página PHP para a lista de registos
+PageForCreateEditView=Página PHP para criar/editar/visualizar um registo
+PathToModulePackage=Caminho para o ficheiro pacote .zip do módulo/aplicação
+PathToModuleDocumentation=Caminho para o ficheiro de documentação do módulo/aplicação
+SpaceOrSpecialCharAreNotAllowed=Espaços ou caracteres especiais não são permitidos.
+FileNotYetGenerated=O ficheiro ainda não foi gerado
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/pt_PT/multicurrency.lang b/htdocs/langs/pt_PT/multicurrency.lang
index 61993d2ca36..0f0375d8476 100644
--- a/htdocs/langs/pt_PT/multicurrency.lang
+++ b/htdocs/langs/pt_PT/multicurrency.lang
@@ -4,7 +4,8 @@ ErrorAddRateFail=Erro na taxa adicionada
 ErrorAddCurrencyFail=Erro na moeda adicionada
 ErrorDeleteCurrencyFail=Erro na eliminação
 multicurrency_syncronize_error=Erro de sincronização: %s
-multicurrency_useOriginTx=Quando um objeto é criado a partir de outro, mantenha a taxa original do objeto de origem (caso contrário use a nova taxa conhecida)
+MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate
+multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate)
 CurrencyLayerAccount=CurrencyLayer API
 CurrencyLayerAccount_help_to_synchronize=Você deve criar uma conta no site para usar esta funcionalidade <br />Obtenha sua <b> chave da API </b><br /> Se você usar uma conta gratuita, não pode alterar a <b> fonte de moeda</b> (USD por defeito)<br /> Mas se a sua moeda principal não for o USD, você pode usar uma <b>fonte de moeda alternativa</b> para forçar sua moeda principal <br /><br /> Você está limitado a 1000 sincronizações por mês
 multicurrency_appId=Chave da API
diff --git a/htdocs/langs/pt_PT/orders.lang b/htdocs/langs/pt_PT/orders.lang
index c255f5f6df2..dcf00a4af6f 100644
--- a/htdocs/langs/pt_PT/orders.lang
+++ b/htdocs/langs/pt_PT/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Área de encomendas a fornecedores
 OrderCard=Ficha da encomenda
 OrderId=Id da encomenda
 Order=Encomenda
+PdfOrderTitle=Encomenda
 Orders=Encomendas
 OrderLine=Linha da encomenda
 OrderDate=Data da encomenda
diff --git a/htdocs/langs/pt_PT/other.lang b/htdocs/langs/pt_PT/other.lang
index d853565d140..30e1d0f29bf 100644
--- a/htdocs/langs/pt_PT/other.lang
+++ b/htdocs/langs/pt_PT/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/pt_PT/propal.lang b/htdocs/langs/pt_PT/propal.lang
index 44f573f7712..db446d8f552 100644
--- a/htdocs/langs/pt_PT/propal.lang
+++ b/htdocs/langs/pt_PT/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Orçamentos Rascunho
 ProposalsOpened=Orçamentos a clientes abertos
 Prop=Orçamentos
 CommercialProposal=Orçamento
+PdfCommercialProposalTitle=Orçamento
 ProposalCard=Ficha do orçamento
 NewProp=Novo Orçamento
 NewPropal=Novo Orçamento
diff --git a/htdocs/langs/pt_PT/salaries.lang b/htdocs/langs/pt_PT/salaries.lang
index 9ab76143e37..41f71aebb5f 100644
--- a/htdocs/langs/pt_PT/salaries.lang
+++ b/htdocs/langs/pt_PT/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Conta contabilística usada por defeito para despesas de pessoal
 Salary=Salário
 Salaries=Salários
diff --git a/htdocs/langs/pt_PT/website.lang b/htdocs/langs/pt_PT/website.lang
index 8cfea3ca740..f9fe97790f9 100644
--- a/htdocs/langs/pt_PT/website.lang
+++ b/htdocs/langs/pt_PT/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Crie aqui as entradas e o número de diferentes sites da Web qu
 DeleteWebsite=Eliminar site da Web
 ConfirmDeleteWebsite=Tem a certeza que deseja eliminar este site da Web. Também irão ser removidos todas as suas páginas e conteúdo.
 WEBSITE_PAGENAME=Nome/pseudonimo da página
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL do ficheiro CSS externo
 WEBSITE_CSS_INLINE=Conteúdo de CSS
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Bliblioteca de Multimedia
-EditCss=Editar Estilo/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Editar Menu
 EditPageMeta=Editar Metadados
 EditPageContent=Editar Conteúdo
 Website=Site da Web
-Webpage=Página Web
-AddPage=Adicionar página
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=A pré-visualização do seu site da Web <strong>%s</strong> ainda mão está disponível. Deve adicionar primeiro uma página.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Página '%s' do site da Web %s eliminada
-PageAdded=Página '%s' adicionada
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=Ver site no novo separador
 ViewPageInNewTab=Ver página no novo separador
 SetAsHomePage=Definir como página Inicial
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=Ver site no utilizando URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Pré-visualizar %s num separador novo.<br><br>O %s será servido por um servidor web externo (como Apache, Nginx, IIS). Você deve instalar e configurar este servidor antes para apontar para a diretoria:<br><strong>%s</strong><br> URL servido por servidor externo:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/pt_PT/workflow.lang b/htdocs/langs/pt_PT/workflow.lang
index 9e8879670c5..6c199f3eb50 100644
--- a/htdocs/langs/pt_PT/workflow.lang
+++ b/htdocs/langs/pt_PT/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Configuração do módulo de Fluxo de Trabalho
 WorkflowDesc=Este módulo foi projetado para modificar o comportamento das ações automáticas na aplicação. Por defeito, o fluxo de trabalho é aberto (você pode fazer as coisas na ordem que deseja). Você pode ativar as ações automáticas do seu interesse.
 ThereIsNoWorkflowToModify=Não há modificações de fluxo de trabalho disponíveis para os módulos ativados.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Criar automaticamente uma encomenda para o cliente após a assinatura de um orçamento de cliente
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Criar automaticamente uma fatura de cliente após a assinatura de um orçamento de cliente
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Criar automaticamente uma fatura de cliente após a validação de um contrato
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Criar automaticamente uma fatura de cliente após o encerramento de uma encomenda de cliente
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classifique a fonte ligada como proposta a cobrança quando a ordem do cliente for definida como paga
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classifique a fonte ligada como cobrado quando a ordem(s) do cliente for definida como paga
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classifique a fonte ligada a ordem(s) de clientes quando a fatura de cliente for validada
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classificar o orçamento fonte associado como faturado quando a fatura de cliente é validada
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classificar a encomenda fonte associada como enviada quando uma expedição é validada e a quantidade enviada é a mesma que está estipulada na encomenda fonte
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Criação automática
 AutomaticClassification=Classificação automática
diff --git a/htdocs/langs/ro_RO/accountancy.lang b/htdocs/langs/ro_RO/accountancy.lang
index 0a3c0a8f276..3e5844e9939 100644
--- a/htdocs/langs/ro_RO/accountancy.lang
+++ b/htdocs/langs/ro_RO/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Prezentare generală a valorii liniilor deja asocia
 OtherInfo=Alte informații
 DeleteCptCategory=Eliminați contul contabil din grup
 ConfirmDeleteCptCategory=Sigur doriți să eliminați acest cont contabil din grupul de cont contabil?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Contabilitate
 AccountancyAreaDescIntro=Utilizarea modulului de contabilitate se face în mai multe etape:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=PASUL %s: Definiți conturile contabile implici
 AccountancyAreaDescSal=PASUL %s: Definirea conturilor contabile implicite pentru plata salariilor. Pentru aceasta, utilizați intrarea din meniu %s.
 AccountancyAreaDescContrib=PASUL %s: Definiți conturile implicite de contabilitate pentru cheltuieli speciale (taxe diverse). Pentru aceasta, utilizați intrarea din meniu %s.
 AccountancyAreaDescDonation=PASUL %s: Definirea conturilor contabile implicite pentru donații. Pentru aceasta, utilizați intrarea din meniu %s.
-AccountancyAreaDescMisc=PASUL %s: Definirea conturilor contabile implicite pentru diverse tranzacții. Pentru aceasta, utilizați intrarea din meniu %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=PASUL %s: Definiți conturile contabile implicite pentru împrumuturi. Pentru aceasta, utilizați intrarea din meniu %s.
 AccountancyAreaDescBank=PASUL %s: Definirea conturilor contabile pentru fiecare bancă și conturi financiare. Pentru aceasta, mergeți pe cardul fiecărui cont financiar. Puteți începe de la pagina %s.
 AccountancyAreaDescProd=STEP %s: Definirea conturilor contabile pentru produsele / serviciile dvs. Pentru aceasta, utilizați intrarea din meniu %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Introducerea tranzactiilor in Jurnalul Cartea mare
 Bookkeeping=Cartea mare
 AccountBalance=Sold cont
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Raportul total al cheltuielilor
 InvoiceLines=Linii de facturi de asociat
@@ -103,7 +110,7 @@ LineOfExpenseReport=Linia de raport de cheltuieli
 NoAccountSelected=Nu a fost selectat niciun cont contabil
 VentilatedinAccount=Asociat cu succes la contul de contabilitate
 NotVentilatedinAccount=Nu este asociat cu contul contabil
-XLineSuccessfullyBinded=%s produse / servicii asociate cu succes unui cont contabil
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=Produsele / serviciile %s nu au fost asociate niciunui cont contabil
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Numărul de elemente de asociat afișate pe pagină (maxim recomandat: 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Ștergeți înregistrarea Cărții Mari
 FinanceJournal=Jurnal Bancă
 ExpenseReportsJournal=Jurnalul rapoartelor de cheltuieli
 DescFinanceJournal=Jurnal de finanțe, care include toate tipurile de plăți prin cont bancar
-DescJournalOnlyBindedVisible=Aceasta este o vizualizare a înregistrării care este asociata contului contabil de produse / servicii și poate fi înregistrată în Cartea Mare.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Contul de TVA nu a fost definit
 ThirdpartyAccountNotDefined=Contul pentru o terță parte nu este definit
 ProductAccountNotDefined=Contul pentru produs nu este definit
@@ -170,6 +177,8 @@ AddCompteFromBK=Adăugați conturi contabile grupului
 ReportThirdParty=Listează contul terță parte
 DescThirdPartyReport=Consultați aici lista clienților și furnizorilor terță parte și a conturile lor contabile
 ListAccounts=Lista conturilor contabile
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Clasa contului
 Pcgsubtype=Subclasa contului
@@ -194,7 +203,7 @@ ValidateHistory=Asociază automat
 AutomaticBindingDone=Asociere automată făcută
 
 ErrorAccountancyCodeIsAlreadyUse=Eroare, nu puteți șterge acest cont contabil, deoarece este folosit
-MvtNotCorrectlyBalanced=Miscare incorect efectuata   . Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Card asociat
 GeneralLedgerIsWritten=Tranzacțiile sunt scrise în Cartea Mare
 GeneralLedgerSomeRecordWasNotRecorded=Unele tranzacții nu au putut fi expediate. Dacă nu există niciun alt mesaj de eroare, probabil că acestea au fost expediate.
@@ -210,7 +219,6 @@ AccountingJournals=Jurnalele contabile
 AccountingJournal=Jurnalul contabil
 NewAccountingJournal=Jurnal contabil nou
 ShowAccoutingJournal=Arătați jurnalul contabil
-Code=Cod
 Nature=Personalitate juridică
 AccountingJournalType1=Diverse operațiuni
 AccountingJournalType2=Vânzări
@@ -221,8 +229,6 @@ AccountingJournalType9=Are nou
 ErrorAccountingJournalIsAlreadyUse=Acest jurnal este deja folosit
 
 ## Export
-Exports=Exporturi
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model export
 OptionsDeactivatedForThisExportModel=Pentru acest model de export, optiunile sunt dezactivate
diff --git a/htdocs/langs/ro_RO/admin.lang b/htdocs/langs/ro_RO/admin.lang
index cd1e45a44ed..6c2398a8dcd 100644
--- a/htdocs/langs/ro_RO/admin.lang
+++ b/htdocs/langs/ro_RO/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Instrumente Sistem
 SystemToolsAreaDesc=Această zonă oferă funcţionalităţi de administrare. Folositi meniul pentru a alege funcţionalitatea pe care o căutaţi.
 Purge=Curăţenie
 PurgeAreaDesc=Această pagină vă permite să ștergeți toate fișierele generate sau stocate de Dolibarr (fișiere temporare sau toate fișierele din directorul <b> %s </b>). Utilizarea acestei funcții nu este necesară. Este oferit ca soluție pentru utilizatorii al căror Dolibarr este găzduit de un furnizor care nu oferă permisiuni de ștergere a fișierelor generate de serverul web.
-PurgeDeleteLogFile=Ștergeți fișierul de jurnal <b> %s </b> definit pentru modulul Syslog (fără riscul pierderii datelor)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Ştergere toate fişierele temporare (fără riscul de a pierde date)
 PurgeDeleteTemporaryFilesShort=Sterge fisiere temporare
 PurgeDeleteAllFilesInDocumentsDir=Ştergeţi toate fişierele în <b>directorul %s.</b> Fisiere temporare, dar de asemenea, fişierele ataşate la elemente (terţe părţi, facturi, ...) şi a trimis în modul ECM vor fi şterse.
 PurgeRunNow=Elimină acum
 PurgeNothingToDelete=Nici un director sau fișier de șters.
 PurgeNDirectoriesDeleted=<b> %s</b> fişiere sau directoare şterse.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Elimină toate evenimentele de securitate
 ConfirmPurgeAuditEvents=Sigur doriți să eliminați toate evenimentele de securitate? Toate jurnalele de securitate vor fi șterse, nu vor fi eliminate alte date.
 GenerateBackup=Generează backup
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Implementarea modulului a fost terminată. Cu toate acestea,
 NotExistsDirect=Directorul rădăcină alternativ nu este atribuit unui director existent. <br>
 InfDirAlt=De la versiunea 3, este posibil să se definească un director rădăcină alternativ. Acest lucru vă permite să stocați, într-un director dedicat, plug-in-uri și șabloane personalizate. <br> Doar creați un director in rădăcina Dolibarr (de exemplu: personalizat).<br>
 InfDirExample=<br> Apoi declarați în fișierul <strong> conf.php </strong> <br> $dolibarr_main_url_root_alt='http://myserver/personalizat' <br> \n$dolibarr_main_document_root_alt'/path/of/ dolibarr/htdocs/personalizat'<br> Dacă aceste linii sunt comentate cu"#", pentru a le activa, trebuie doar să scoateti comentariul prin eliminarea caracterului "# ".
-YouCanSubmitFile=La acest pas, puteți trimite pachetul utilizand acest instrument: Selectați modulul fișier 
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr versiunea curentă
 CallUpdatePage=Accesați pagina care actualizează structura și datele bazei de date: %s.
 LastStableVersion=Ultima versiune stabilă
@@ -535,8 +536,6 @@ Module1120Name=Ofertă Comercială Furnizor
 Module1120Desc=Cereti oferta comerciala si preturile furnizorului
 Module1200Name=Mantis
 Module1200Desc=Mantis integrare
-Module1400Name=Contabilitate
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Generare Document 
 Module1520Desc=Generarea de documente de poștă electronică in masa
 Module1780Name=Tag-uri / Categorii
@@ -585,7 +584,7 @@ Module50100Desc=Modulul Punct de vânzări (POS)
 Module50200Name=PayPal
 Module50200Desc=Modul de a oferi o pagina de plata online prin card de credit cu Paypal
 Module50400Name=Contabilitate (avansat)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=Print lP IPrinter
 Module54000Desc=Imprimare directă (fără a deschide documentele) folosind interfața CUPS IPP (imprimanta trebuie să fie vizibilă de pe server și CUPS trebuie să fie instalat pe server).
 Module55000Name=Sondaj, supraveghere sau vot
@@ -751,8 +750,10 @@ Permission401=Citiţi cu reduceri
 Permission402=Creare / Modificare reduceri
 Permission403=Validate reduceri
 Permission404=Ştergere reduceri
-Permission510=Citeşte salarii
-Permission512=Creare / Modificare salarii
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Şterge salarii
 Permission517=Export salarii
 Permission520=Citeşte credite
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restaurați fișierul arhivă (de exemplu fișierul zip) din direct
 RestoreDesc3=Restaurați datele, dintr-un fișier de memorie de rezervă, în baza de date a noii instalări Dolibarr sau în baza de date a instalării curente (<b> %s</b>). Avertisment, odată ce restaurarea este terminată, trebuie să utilizați o autentificare/parolă, care a existat atunci când a fost efectuată copia de rezervă, pentru a vă conecta din nou. Pentru a restaura o bază de date de rezervă în această instalare curentă, puteți urmari acest asistent.
 RestoreMySQL=MySQL import
 ForcedToByAModule= Această regulă este obligat <b>la %s</b> către un activat modulul
-PreviousDumpFiles=Disponibil dump de rezervă fişiere de baze de date
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=Prima zi din saptamana
 RunningUpdateProcessMayBeRequired=Rularea procesului de upgrade pare să fie necesară (Programe versiunea %s diferă de %s versiunea bazei de date)
 YouMustRunCommandFromCommandLineAfterLoginToUser=Trebuie să rulaţi această comandă de la linia de comandă, după login la un raft cu <b>%s</b> utilizator.
diff --git a/htdocs/langs/ro_RO/banks.lang b/htdocs/langs/ro_RO/banks.lang
index c773d87f386..fb59104b1a4 100644
--- a/htdocs/langs/ro_RO/banks.lang
+++ b/htdocs/langs/ro_RO/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Cec returnat si facturi redeschise
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/ro_RO/bills.lang b/htdocs/langs/ro_RO/bills.lang
index e87b23754bf..c6fbe43ff5f 100644
--- a/htdocs/langs/ro_RO/bills.lang
+++ b/htdocs/langs/ro_RO/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Fişă Factură
 PredefinedInvoices=Facturi Predefinite
 Invoice=Factură
+PdfInvoiceTitle=Factură
 Invoices=Facturi
 InvoiceLine=Linie Factură
 InvoiceCustomer=Factură Client
diff --git a/htdocs/langs/ro_RO/compta.lang b/htdocs/langs/ro_RO/compta.lang
index 607c95b12da..b11d8563d64 100644
--- a/htdocs/langs/ro_RO/compta.lang
+++ b/htdocs/langs/ro_RO/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Cloneaza o taxa sociala / fiscala
 ConfirmCloneTax= Confirmare duplicare plată taxă. 
 CloneTaxForNextMonth=Clonaţi-o pentru luna următoare
diff --git a/htdocs/langs/ro_RO/errors.lang b/htdocs/langs/ro_RO/errors.lang
index 14acf4124b3..94c1b49d370 100644
--- a/htdocs/langs/ro_RO/errors.lang
+++ b/htdocs/langs/ro_RO/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount= O parolă a fost trimisă către acest membru. Cu toate acestea, nu a fost creat nici un cont de utilizator. Astfel, această parolă este stocată, dar nu poate fi utilizată pentru autentificare. Poate fi utilizată de către un modul / interfată externă, dar dacă nu aveți nevoie să definiți un utilizator sau o parolă pentru un membru, puteți dezactiva opțiunea "Gestionați o conectare pentru fiecare membru" din modul de configurare membri. În cazul în care aveți nevoie să gestionați un utilizator, dar nu este nevoie de parolă, aveți posibilitatea să păstrați acest câmp gol pentru a evita acest avertisment. Notă: Adresa de e-mail poate fi utilizată ca utilizator la autentificare, în cazul în care membrul este legat de un utilizator. 
diff --git a/htdocs/langs/ro_RO/install.lang b/htdocs/langs/ro_RO/install.lang
index c41ed97922b..c1239f035ba 100644
--- a/htdocs/langs/ro_RO/install.lang
+++ b/htdocs/langs/ro_RO/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Autentifica-te pentru proprietarul bazei de date Dolibarr.
 PasswordAgain=Rescrie parola pentru a doua oară
 AdminPassword=Parola pentru proprietarul bazei de date Dolibarr.
 CreateDatabase=Crearea bazei de date
-CreateUser=Crearea proprietar
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Serverul de baze de date - superuser de acces
 CheckToCreateDatabase=Verificaţi dacă în cutia în cazul în care baza de date nu există şi trebuie să fie creat. <br> În acest caz, trebuie să completaţi datele de conectare / parola pentru contul de superuser, la partea de jos a acestei pagini.
-CheckToCreateUser=Verificaţi dacă în cutia în cazul în care proprietarul bazei de date nu există şi trebuie să fie creat. <br> În acest caz, trebuie să alegeţi de conectare şi parola şi umple, de asemenea, conectare / parola pentru contul de superuser, la partea de jos a acestei pagini. Dacă această casetă este debifată bază de date, proprietarul şi parolele sale trebuie să există.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Login utilizatorului posibilitatea de a crea baze de date noi sau de noi utilizatori, inutil în cazul în care baza de date si login-ul bazei de date există deja (ca atunci cand sunt găzduite de către un furnizor de web hosting).
 KeepEmptyIfNoPassword=Lasă un gol în cazul în care utilizatorul nu are nici o parola (a evita acest lucru)
 SaveConfigurationFile=Salvaţi valorile
diff --git a/htdocs/langs/ro_RO/main.lang b/htdocs/langs/ro_RO/main.lang
index 663251bb5e9..816e83f5d26 100644
--- a/htdocs/langs/ro_RO/main.lang
+++ b/htdocs/langs/ro_RO/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=Fişierul a fost încărcat cu succes
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=Un fișier este selectat pentru atașament, dar nu a fost încă încărcat. Clic pe "Ataşează fișier" pentru aceasta.
 NbOfEntries=Nr intrări
 GoToWikiHelpPage=Citeşte ajutorul online (Acces la Internet necesar)
@@ -196,6 +197,7 @@ Parameter=Parametru
 Parameters=Parametri
 Value=Valoare
 PersonalValue=Valoare Personală
+NewObject=New %s
 NewValue=Valoare nouă
 CurrentValue=Valoarea curentă
 Code=Cod
@@ -441,6 +443,7 @@ Reporting=Raportare
 Reportings=Rapoarte
 Draft=Schiţă
 Drafts=Schiţe
+StatusInterInvoiced=
 Validated=Validat
 Opened=Deschis
 New=Nou
@@ -727,6 +730,7 @@ SetBankAccount=Defineste Cont bancar
 AccountCurrency=Moneda Contabilitate
 ViewPrivateNote=Vezi notițe
 XMoreLines=%s linii(e) ascunse
+ShowMoreLines=Show more lines
 PublicUrl=URL Public
 AddBox=Adauga box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Mergi la  Home - Setup - Company pentru a schimba logo - ul sau mergi la  Home - Setup - Display pentru a ascunde.
 Deny=Respinge
 Denied=Respins
+ListOf=List of %s
 ListOfTemplates=Listă  template-uri
 Gender=Gen
 Genderman=Barbat
diff --git a/htdocs/langs/ro_RO/modulebuilder.lang b/htdocs/langs/ro_RO/modulebuilder.lang
index ae8f074fbe1..fca46cd7886 100644
--- a/htdocs/langs/ro_RO/modulebuilder.lang
+++ b/htdocs/langs/ro_RO/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Modele generate / modificate găsite: <strong>%s</strong> (acestea sunt detectate ca fiind editabile atunci când fișierul <strong>%s</strong> există în directorul modulului).
 NewModule=Modul nou
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Modulul a fost inițializat
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Introduceți aici toate informațiile generale care descriu modulul dvs.
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=Această filă este dedicată definirii intrărilor de meniuri furnizate de modulul dvs.
 ModuleBuilderDescpermissions=Această filă este dedicată definirii noilor permisiuni pe care doriți să le furnizați împreună cu modulul.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=Acest modul a fost activat. Orice modificare asupra lui poate denatura o caracteristică activă curentă.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/ro_RO/orders.lang b/htdocs/langs/ro_RO/orders.lang
index 55e7dacadc1..6bbc18bfa91 100644
--- a/htdocs/langs/ro_RO/orders.lang
+++ b/htdocs/langs/ro_RO/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Comenzi Furnizori
 OrderCard=Fişă Comandă
 OrderId=ID Comandă
 Order=Comandă
+PdfOrderTitle=Comanda
 Orders=Comenzi
 OrderLine=Linie Comandă
 OrderDate=Dată Comandă
diff --git a/htdocs/langs/ro_RO/other.lang b/htdocs/langs/ro_RO/other.lang
index cebad68e770..90daede5657 100644
--- a/htdocs/langs/ro_RO/other.lang
+++ b/htdocs/langs/ro_RO/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/ro_RO/propal.lang b/htdocs/langs/ro_RO/propal.lang
index 37549fd5589..e022f8d2239 100644
--- a/htdocs/langs/ro_RO/propal.lang
+++ b/htdocs/langs/ro_RO/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Oferte Comerciale schiţă
 ProposalsOpened=Open commercial proposals
 Prop=Oferte Comerciale
 CommercialProposal=Ofertă Comercială
+PdfCommercialProposalTitle=Ofertă Comercială
 ProposalCard=Fişă Ofertă 
 NewProp=Ofertă Comercială Nouă
 NewPropal=Ofertă  Nouă
diff --git a/htdocs/langs/ro_RO/salaries.lang b/htdocs/langs/ro_RO/salaries.lang
index 677fe77b39a..9fdfff09105 100644
--- a/htdocs/langs/ro_RO/salaries.lang
+++ b/htdocs/langs/ro_RO/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Salariu
 Salaries=Salarii
diff --git a/htdocs/langs/ro_RO/website.lang b/htdocs/langs/ro_RO/website.lang
index d7d1b8ec9bf..9740afc709f 100644
--- a/htdocs/langs/ro_RO/website.lang
+++ b/htdocs/langs/ro_RO/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Şterge website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Pagina nume/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=Conţinutul CSS
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit meniu
 EditPageMeta=Edit Meta
 EditPageContent=Editare continut
 Website=Web site
-Webpage=Web page
-AddPage=Add pagina
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Pagina '%s' adaugata
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Seteaza ca  pagina Home 
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/ro_RO/workflow.lang b/htdocs/langs/ro_RO/workflow.lang
index 42f524b8ca1..f1b7b6715d7 100644
--- a/htdocs/langs/ro_RO/workflow.lang
+++ b/htdocs/langs/ro_RO/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Configurare Modul Flux de Lucru
 WorkflowDesc=Acest modul este proiectat pentru modificarea comportamentului acțiunilor automate în aplicaţie. În mod implicit, fluxul de lucru este deschis (puteţi face ce doriţi în ordinea dorită). Puteți activa acțiunile automate de care sunteti interesat
 ThereIsNoWorkflowToModify=Nu există nicio modificare workflow  diponibila pentru modulele activate.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crează o comandă client automat, după ce o ofertă comercială este semnată
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Crează o factură client automat, după ce o ofertă comercială este semnată
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Crează o factură client automat, după ce un contract este validat
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Crează o factură client automat, după ce o comandă client este închisă
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Clasează propunere comercială legată ca facturată când comanda client este setată ca plătită
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Clasează comenzi(le) client sursă legate ca facturate, atunci când factura clientului este setată ca plătită
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Clasează comenzi(le) client sursă legate ca facturate, atunci când factura clientului este validată
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/ru_RU/accountancy.lang b/htdocs/langs/ru_RU/accountancy.lang
index 92ef9dd4cfb..aab8c179aac 100644
--- a/htdocs/langs/ru_RU/accountancy.lang
+++ b/htdocs/langs/ru_RU/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=Список бухгалтерских счетов
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Класс бухгалтерского счёта
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Код
 Nature=Природа
 AccountingJournalType1=Various operation
 AccountingJournalType2=Продажи
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Экспорт
-Export=Экспорт
 ExportDraftJournal=Export draft journal
 Modelcsv=Модель экспорта
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/ru_RU/admin.lang b/htdocs/langs/ru_RU/admin.lang
index eb17529dffd..698d11244df 100644
--- a/htdocs/langs/ru_RU/admin.lang
+++ b/htdocs/langs/ru_RU/admin.lang
@@ -74,7 +74,7 @@ JavascriptDisabled=JavaScript отключен
 UsePreviewTabs=Использовать вкладки предпросмотра
 ShowPreview=Предварительный просмотр
 PreviewNotAvailable=Предварительный просмотр не доступен
-ThemeCurrentlyActive=Активная тема
+ThemeCurrentlyActive=Текущая тема
 CurrentTimeZone=Текущий часовой пояс в настройках PHP
 MySQLTimeZone=Часовой пояс БД (MySQL)
 TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
@@ -104,7 +104,7 @@ MenuIdParent=ID родительского меню
 DetailMenuIdParent=ID родительского меню (EMPTY для верхнего меню)
 DetailPosition=Порядковый номер меню для определения позиции меню
 AllMenus=Все
-NotConfigured=Module/Application not configured
+NotConfigured=Модуль/Приложение не настроен
 Active=Активная
 SetupShort=Настройка
 OtherOptions=Другие опции
@@ -120,7 +120,7 @@ ClientTZ=Часовой пояс пользователя
 ClientHour=Время клиента (пользователя)
 OSTZ=Часовой пояс сервера
 PHPTZ=Часовой пояс PHP сервера
-DaylingSavingTime=Летнее время (пользователь)
+DaylingSavingTime=Летнее время
 CurrentHour=Время PHP (на PHP-сервере)
 CurrentSessionTimeOut=Тайм-аут текущей сессии
 YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
@@ -140,13 +140,14 @@ SystemToolsArea=Раздел системных настроек
 SystemToolsAreaDesc=Этот раздел предоставляет административные функции. Используйте меню для выбора необходимой функции.
 Purge=Очистить
 PurgeAreaDesc=Эта страница позволяет вам удалить все файлы созданные или хранящиеся в Dolibarr (временные файлы или все файлы в папке <b>%s</b>). Использование этой возможности не является обязательным. Она полезна при размещении Dolibarr на серверах не позволяющих удалять файлы созданные веб-сервером.
-PurgeDeleteLogFile=Удалить файл с логами <b>%s</b> являющегося системным журналом Dolibarr (без риска потери данных)
+PurgeDeleteLogFile=Удаление файлов журналов, включая <b>%s</b> определенный для модуля Syslog (без риска потери данных)
 PurgeDeleteTemporaryFiles=Удалить все временные файлы (без риска потери данных)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Удалить все файлы в директории <b>%s</b>. Временные файлы, резервные копии базы данных, а также файлы, прикрепленные к элементам (контрагенты, счета-фактуры, ...) и загруженные в модуль электронного документооборота ECM будут удалены.
 PurgeRunNow=Очистить сейчас
 PurgeNothingToDelete=Нет директории или файла для удаления.
 PurgeNDirectoriesDeleted=Удалено <b>%s</b> файлов или каталогов.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Очистить все события безопасности
 ConfirmPurgeAuditEvents=Вы хотите очистить все события связанные с безопасностью? Все журналы безопасности будут удалены, другие данные не будут удалены.
 GenerateBackup=Создать резервную копию
@@ -161,7 +162,7 @@ ExportMethod=Метод Экспорта
 ImportMethod=Метод импорта
 ToBuildBackupFileClickHere=Для создания файла резервной копии нажмите <a href="%s">здесь.</a>
 ImportMySqlDesc=Для импорта файла архивной копии, вы должны использовать команду mysql из командной строки:
-ImportPostgreSqlDesc=Для импорта файла резервной копии, вы должны использовать pg_restore команду из командной строки:
+ImportPostgreSqlDesc=Для импорта файла резервной копии, вы должны использовать команду pg_restore из командной строки:
 ImportMySqlCommand=%s %s < mybackupfile.sql
 ImportPostgreSqlCommand=%s %s mybackupfile.sql
 FileNameToGenerate=Имя для создаваемого файла
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Развертывание модуля завершено. 
 NotExistsDirect=Альтернативная корневая директория не задана.<br>
 InfDirAlt=Начиная с 3-ей версии, можно определить альтернативный корневой каталог. Это позволяет вам хранить в специальном каталоге, плагины и настраиваемые шаблоны. <br> Просто создайте каталог в корне Dolibarr (например: custom). <br>
 InfDirExample=<br> Затем укажите его в файле <strong> conf.php </strong> <br> \n$ dolibarr_main_url_root_alt = 'http://myserver/custom' <br> $ dolibarr_main_document_root_alt = '/путь/к/dolibarr/htdocs/Custom'<br> Если эти строки закомментированы с помощью «#», раскомментируйте их, удалив символ «#» чтобы включить их.
-YouCanSubmitFile=На этом шаге вы можете отправить пакет используя этот инструмент: Выберите файл модуля
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Текущая версия Dolibarr
 CallUpdatePage=Перейдите на страницу, где вы сможете обновить структуру базы данных и данные: %s.
 LastStableVersion=Последняя стабильная версия
@@ -535,8 +536,6 @@ Module1120Name=Коммерческое предложение поставщи
 Module1120Desc=Запросить у поставщика коммерческое предложение и цены
 Module1200Name=Mantis
 Module1200Desc=Интеграция с Mantis
-Module1400Name=Бухгалтерия
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Создание документов
 Module1520Desc=Mass mail document generation
 Module1780Name=Теги/Категории
@@ -585,7 +584,7 @@ Module50100Desc=Модуль точки продаж (POS).
 Module50200Name=Paypal
 Module50200Desc=Модуль предлагает страницу онлайн-оплаты кредитной картой с помощью Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=Модуль PrintIPP
 Module54000Desc=Прямая печать (без открытия документа) использует интерфейс Cups IPP  (Принтер должен быть доступен с сервера, и система печати CUPS  должна быть установлена на сервере). 
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Читать скидки
 Permission402=Создать / изменить скидки
 Permission403=Проверить скидки
 Permission404=Удалить скидки
-Permission510=Открыть Зарплаты
-Permission512=Создать/изменить зарплаты
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Удалить зарплаты
 Permission517=Экспорт зарплат
 Permission520=Открыть ссуды
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=Иvпорт MySQL
 ForcedToByAModule= Это правило <b>вынуждены %s</b> на активированный модуль
-PreviousDumpFiles=Наличие резервной копии базы данных дамп файлы
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=Первый день недели
 RunningUpdateProcessMayBeRequired=Запуск процесса обновления, как представляется, требуется (версия программы отличается от %s %s версия базы данных)
 YouMustRunCommandFromCommandLineAfterLoginToUser=Вы должны запустить эту команду из командной строки после Войти в оболочку с пользователем <b>%s.</b>
diff --git a/htdocs/langs/ru_RU/banks.lang b/htdocs/langs/ru_RU/banks.lang
index b247839b57d..c9348e14e2e 100644
--- a/htdocs/langs/ru_RU/banks.lang
+++ b/htdocs/langs/ru_RU/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/ru_RU/bills.lang b/htdocs/langs/ru_RU/bills.lang
index dfd4ef1c77b..1b35ef196d1 100644
--- a/htdocs/langs/ru_RU/bills.lang
+++ b/htdocs/langs/ru_RU/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Карточка счета-фактуры
 PredefinedInvoices=Предопределенные Счета-фактуры
 Invoice=Счёт
+PdfInvoiceTitle=Счёт
 Invoices=Счета-фактуры
 InvoiceLine=Строка счета-фактуры
 InvoiceCustomer=Счёт клиента
diff --git a/htdocs/langs/ru_RU/compta.lang b/htdocs/langs/ru_RU/compta.lang
index f0d4cb004ea..aa8fae8e615 100644
--- a/htdocs/langs/ru_RU/compta.lang
+++ b/htdocs/langs/ru_RU/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Клонировать для следующего месяца
diff --git a/htdocs/langs/ru_RU/errors.lang b/htdocs/langs/ru_RU/errors.lang
index 2e549a57b68..7084f71231c 100644
--- a/htdocs/langs/ru_RU/errors.lang
+++ b/htdocs/langs/ru_RU/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/ru_RU/install.lang b/htdocs/langs/ru_RU/install.lang
index 0b4676019e7..f32ccc53804 100644
--- a/htdocs/langs/ru_RU/install.lang
+++ b/htdocs/langs/ru_RU/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Логин Dolibarr для администратора базы да
 PasswordAgain=Введите пароль еще раз
 AdminPassword=Пароль Dolibarr для администратора базы данных. Держите пустым, если вы подключаетесь в анонимном
 CreateDatabase=Создание базы данных
-CreateUser=Создать пользователя
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=База данных - Superuser доступа
 CheckToCreateDatabase=Флажок, если база данных не существует, и должен быть создан. <br> В этом случае, вы должны заполнить логин и пароль для учетной записи суперпользователя в нижней части этой страницы.
-CheckToCreateUser=Флажок, если логин не существует и должна быть создана. <br> В этом случае, вы должны заполнить логин и пароль для учетной записи суперпользователя в нижней части этой страницы.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Войти на пользователя разрешается создавать новые базы данных и новых пользователей, бесполезны, если ваша база данных, и ваша база данных логин уже существует (например, когда вы Хостинг провайдер веб-хостинга).
 KeepEmptyIfNoPassword=Оставьте пустым, если пользователь не имеет пароля (избежать этого)
 SaveConfigurationFile=Сохранить значения
diff --git a/htdocs/langs/ru_RU/main.lang b/htdocs/langs/ru_RU/main.lang
index 42ea246c7d2..9eba30dd6eb 100644
--- a/htdocs/langs/ru_RU/main.lang
+++ b/htdocs/langs/ru_RU/main.lang
@@ -8,12 +8,12 @@ FONTFORPDF=freemono
 FONTSIZEFORPDF=8
 SeparatorDecimal=,
 SeparatorThousand=None
-FormatDateShort=%d.%m.%Y
-FormatDateShortInput=%d.%m.%Y
-FormatDateShortJava=dd.MM.yyyy
-FormatDateShortJavaInput=dd.MM.yyyy
-FormatDateShortJQuery=dd.mm.yy
-FormatDateShortJQueryInput=dd.mm.yy
+FormatDateShort=%d.%м.%Г
+FormatDateShortInput=%d.%м.%Г
+FormatDateShortJava=ММ/дд/гггг
+FormatDateShortJavaInput=ММ/дд/гггг
+FormatDateShortJQuery=мм/дд/гг
+FormatDateShortJQueryInput=мм/дд/гг
 FormatHourShortJQuery=ЧЧ:ММ
 FormatHourShort=%H:%M
 FormatHourShortDuration=%H:%M
@@ -73,9 +73,10 @@ Apply=Применить
 BackgroundColorByDefault=Цвет фона по умолчанию
 FileRenamed=Файл успешно переименован
 FileGenerated=Файл успешно создан
-FileSaved=The file was successfully saved
+FileSaved=Файл сохранен
 FileUploaded=Файл успешно загружен
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=Файл(ы) успешно загружены
+FilesDeleted=Файл(ы) успешно удалены
 FileWasNotUploaded=Файл выбран как вложение, но пока не загружен. Для этого нажмите "Вложить файл".
 NbOfEntries=Кол-во записей
 GoToWikiHelpPage=Читать интернет-справку (необходим доступ к Интернету)
@@ -196,6 +197,7 @@ Parameter=Параметр
 Parameters=Параметры
 Value=Значение
 PersonalValue=Личное значение
+NewObject=Новый %s
 NewValue=Новое значение
 CurrentValue=Текущее значение
 Code=Код
@@ -360,7 +362,7 @@ TotalLT1ES=Всего RE
 TotalLT2ES=Всего IRPF
 HT=Без налога
 TTC=Вкл-я налог
-INCT=Inc. all taxes
+INCT=включая все налоги
 VAT=НДС
 VATs=Торговые сборы
 LT1ES=RE
@@ -369,8 +371,8 @@ VATRate=Ставка НДС
 Average=Среднее
 Sum=Сумма
 Delta=Разница
-Module=Module/Application
-Modules=Modules/Applications
+Module=Модуль/Приложение
+Modules=Модули/Приложения
 Option=Опция
 List=Список
 FullList=Полный список
@@ -441,6 +443,7 @@ Reporting=Отчет
 Reportings=Отчеты
 Draft=Черновик
 Drafts=Черновики
+StatusInterInvoiced=
 Validated=Подтверждено
 Opened=Открытые
 New=Новый
@@ -614,8 +617,8 @@ PartialWoman=Частичное
 TotalWoman=Всего
 NeverReceived=Никогда не получено
 Canceled=Отменено
-YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
-YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
+YouCanChangeValuesForThisListFromDictionarySetup=Можно изменить содержание этого списка в Главная - Настройка - Словари
+YouCanChangeValuesForThisListFrom=Можно изменить значения этого списка из меню %s
 YouCanSetDefaultValueInModuleSetup=Вы можете настроить значение по-умолчанию используемое при создании новой записи в модуле Настройка
 Color=Цвет
 Documents=Связанные файлы
@@ -651,7 +654,7 @@ FreeLineOfType=Свободная запись типа
 CloneMainAttributes=Клонирование объекта с его основными атрибутами
 PDFMerge=Слияние PDF
 Merge=Слияние
-DocumentModelStandardPDF=Standard PDF template
+DocumentModelStandardPDF=Стандартные PDF-шаблоны
 PrintContentArea=Показать страницу для печати области основного содержимого
 MenuManager=Менеджер меню
 WarningYouAreInMaintenanceMode=Внимание, вы находитесь в режиме обслуживания, так что только пользователю <b>%s</b> разрешено использовать приложение в данный момент.
@@ -718,7 +721,7 @@ from=от
 toward=к
 Access=Доступ
 SelectAction=Выбор действия
-SelectTargetUser=Select target user/employee
+SelectTargetUser=Выберите конечного пользователя/сотрудника
 HelpCopyToClipboard=Для копировани в буфер обмена используйте Ctrl+C
 SaveUploadedFileWithMask=Сохранить файл на сервер под именем "<strong>%s</strong>" (иначе "%s")
 OriginFileName=Изначальное имя файла
@@ -727,14 +730,16 @@ SetBankAccount=Задать счёт в банке
 AccountCurrency=Валюта счёта
 ViewPrivateNote=Посмотреть заметки
 XMoreLines=%s строк(и) скрыто
+ShowMoreLines=Показать больше строк
 PublicUrl=Публичная ссылка
 AddBox=Добавить бокс
-SelectElementAndClick=Select an element and click %s
+SelectElementAndClick=Выберите элемент и нажмите %s
 PrintFile=Печать файл %s
 ShowTransaction=Показать транзакцию на банковском счете
 GoIntoSetupToChangeLogo=Используйте Главная-Настройки-Компании для изменения логотипа или  Главная-Настройки-Отображение для того, чтобы его скрыть.
 Deny=Запретить
 Denied=Запрещено
+ListOf=Список %s
 ListOfTemplates=Список шаблонов
 Gender=Пол
 Genderman=Мужчина
@@ -745,8 +750,8 @@ Hello=Здравствуйте
 Sincerely=С уважением,
 DeleteLine=Удалить строки
 ConfirmDeleteLine=Вы точно хотите удалить эту строку?
-NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
-TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
+NoPDFAvailableForDocGenAmongChecked=PDF не доступен для документов созданных из выбранных записей
+TooManyRecordForMassAction=Выбранно слишком много записей для группового действия. Это действие запрещено для списка состоящего из %s записей.
 NoRecordSelected=Нет выделенных записей
 MassFilesArea=Пространство для массовых действий с файлами
 ShowTempMassFilesArea=Показать область для массовых действий с файлами
@@ -766,20 +771,20 @@ Calendar=Календарь
 GroupBy=Группировка по...
 ViewFlatList=Вид плоским списком
 RemoveString=Удалить строку '%s'
-SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
+SomeTranslationAreUncomplete=Переводы на некоторые языки могут быть выполнены частично или с ошибками. Если вы обнаружите ошибки в переводе, вы можете исправить файлы переводов зарегистрировавшись по ссылке <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
 DirectDownloadLink=Прямая ссылка для загрузки
 Download=Загрузка
 ActualizeCurrency=Обновить текущий курс
 Fiscalyear=Финансовый год
 ModuleBuilder=Создатель Модуля
-SetMultiCurrencyCode=Set currency
+SetMultiCurrencyCode=Настройка валюты
 BulkActions=Массовые действия
-ClickToShowHelp=Click to show tooltip help
-HR=HR
-HRAndBank=HR and Bank
-AutomaticallyCalculated=Automatically calculated
-TitleSetToDraft=Go back to draft
-ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
+ClickToShowHelp=Нажмите для отображения подсказок
+HR=Кадры
+HRAndBank=Кадры и Банк
+AutomaticallyCalculated=Автоматический подсчет
+TitleSetToDraft=Вернуться к черновику
+ConfirmSetToDraft=Вы уверены что хотите вернуть  статус Черновик?
 # Week day
 Monday=Понедельник
 Tuesday=Вторник
diff --git a/htdocs/langs/ru_RU/modulebuilder.lang b/htdocs/langs/ru_RU/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/ru_RU/modulebuilder.lang
+++ b/htdocs/langs/ru_RU/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/ru_RU/multicurrency.lang b/htdocs/langs/ru_RU/multicurrency.lang
index 925764f5e37..2c874380908 100644
--- a/htdocs/langs/ru_RU/multicurrency.lang
+++ b/htdocs/langs/ru_RU/multicurrency.lang
@@ -4,7 +4,8 @@ ErrorAddRateFail=Error in added rate
 ErrorAddCurrencyFail=Error in added currency
 ErrorDeleteCurrencyFail=Error delete fail
 multicurrency_syncronize_error=Synchronisation error: %s
-multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate)
+MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate
+multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate)
 CurrencyLayerAccount=CurrencyLayer API
 CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality<br />Get your <b>API key</b><br />If you use a free account you can't change the <b>currency source</b> (USD by default)<br />But if your main currency isn't USD you can use the <b>alternate currency source</b> to force you main currency<br /><br />You are limited at 1000 synchronizations per month
 multicurrency_appId=API key
diff --git a/htdocs/langs/ru_RU/orders.lang b/htdocs/langs/ru_RU/orders.lang
index 1c62640e54f..a98b3aab15c 100644
--- a/htdocs/langs/ru_RU/orders.lang
+++ b/htdocs/langs/ru_RU/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Раздел заказов поставщиков
 OrderCard=Карточка заказа
 OrderId=Идентификатор заказа
 Order=Заказ
+PdfOrderTitle=Заказ
 Orders=Заказы
 OrderLine=Линия заказа
 OrderDate=Дата заказа
diff --git a/htdocs/langs/ru_RU/other.lang b/htdocs/langs/ru_RU/other.lang
index cdbcdd1d9e3..ff2121b3173 100644
--- a/htdocs/langs/ru_RU/other.lang
+++ b/htdocs/langs/ru_RU/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/ru_RU/propal.lang b/htdocs/langs/ru_RU/propal.lang
index 8dffcce465d..fc913a559fb 100644
--- a/htdocs/langs/ru_RU/propal.lang
+++ b/htdocs/langs/ru_RU/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Проект коммерческого предложения
 ProposalsOpened=Открытые коммерческие предложения
 Prop=Коммерческие предложения
 CommercialProposal=Коммерческое предложение
+PdfCommercialProposalTitle=Коммерческое предложение
 ProposalCard=Карточка предложения
 NewProp=Новое коммерческое предложение
 NewPropal=Новое предложение
diff --git a/htdocs/langs/ru_RU/salaries.lang b/htdocs/langs/ru_RU/salaries.lang
index ccfdece0180..2bf334f2ae4 100644
--- a/htdocs/langs/ru_RU/salaries.lang
+++ b/htdocs/langs/ru_RU/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Зарплата
 Salaries=Зарплаты
diff --git a/htdocs/langs/ru_RU/website.lang b/htdocs/langs/ru_RU/website.lang
index 12f66a3cee3..4cda94f5d7f 100644
--- a/htdocs/langs/ru_RU/website.lang
+++ b/htdocs/langs/ru_RU/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/ru_RU/workflow.lang b/htdocs/langs/ru_RU/workflow.lang
index bad0679e8eb..fb1fdfe5f7f 100644
--- a/htdocs/langs/ru_RU/workflow.lang
+++ b/htdocs/langs/ru_RU/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Установка модуля Рабочих процессов
 WorkflowDesc=Данный модуль предназначен для изменения поведения автоматических действий в приложении. По умолчанию рабочий процесс открыт (вы можете делать вещи в произвольном порядке). Вы можете включить автоматические действия, которые вам необходимы.
 ThereIsNoWorkflowToModify=Для активированных модулей нет доступных изменений рабочего процесса.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Автоматически создавать заказ клиента после подписания коммерческого предложения
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Автоматически создавать счет клиента после подписания коммерческого предложения
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Автоматически создавать счет клиента после проверки договора
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Автоматически создавать счет клиента после закрытия заказа клиента
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Классифицировать связанные коммерческие предложения оплаченными, когда заказ клиента обозначен, как оплаченный
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Классифицировать связанные заказы клиента оплаченными, когда счёт клиента оплачен. 
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Классифицировать связанные заказы клиента оплаченными, когда счёт клиента подтверждён.
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/sk_SK/accountancy.lang b/htdocs/langs/sk_SK/accountancy.lang
index 28b30b5cdb7..fd4570b5720 100644
--- a/htdocs/langs/sk_SK/accountancy.lang
+++ b/htdocs/langs/sk_SK/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Stav účtu
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Riadky faktúry na priradenie
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Úspešne priradené k účtovnému účtu
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Počet na priradenie zobrazený na stránku ( maximálne odporúčané : 50 )
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Priradzovať automaticky
 AutomaticBindingDone=Automatické priradenie dokončené
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Pohyby nie sú vyvážené. Kredit = %S Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Kód
 Nature=Príroda
 AccountingJournalType1=Various operation
 AccountingJournalType2=Predaje
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exports
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model of export
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/sk_SK/admin.lang b/htdocs/langs/sk_SK/admin.lang
index bfdb0d8d480..dd5ebc8cb18 100644
--- a/htdocs/langs/sk_SK/admin.lang
+++ b/htdocs/langs/sk_SK/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Priestor pre systémové nástroje
 SystemToolsAreaDesc=Táto oblasť poskytuje správu funkcií. V menu vyberte funkciu, ktorú hľadáte.
 Purge=Očistiť
 PurgeAreaDesc=Táto stránka vám umožní zmazať všetky súbory vytvorené alebo uložené Dolibarrom (dočasné súbory alebo všetko v priečinku <b>%s</b>) Použitie tejto voľby nie je nutné. Voľba je určená akoobchádzka pre použiváteľov ktorým poskztovateľ hostingu neumožnuje zmazať súbory generované web servrom
-PurgeDeleteLogFile=Zmaztať log file <b>%s</b> definovaný pre Syslog modul ( bez risku straty dát)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Zmazať všetky dočasné súbory (bez risku straty dát)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Odstráňte všetky súbory v adresári <b>%s.</b> Dočasné súbory, ale aj zálohovanie databázy skládky, súbory pripojené k prvkom (tretie strany, faktúry, ...) a vkladajú do modulu ECM, budú vymazané.
 PurgeRunNow=Vyčistiť teraz
 PurgeNothingToDelete=Žiadne súbory alebo priečinky na zmazanie
 PurgeNDirectoriesDeleted=<b>%s</b> súbory alebo adresáre odstránené.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Vyčistiť všetky bezpečnostné udalosti
 ConfirmPurgeAuditEvents=Určite chcete vyčistiť bezpečnostné udalosti ? Iba bezpečnostné logy budú zmazané
 GenerateBackup=Vytvoriť zálohu
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=V tomto kroku, môžete poslať balíček použitím tohto nástroja: Vybrať modul
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr aktuálna verzia
 CallUpdatePage=Choďte na stránku úpravý databázobej štruktúry a dát. %s
 LastStableVersion= Najnovšia stabilná verzia
@@ -535,8 +536,6 @@ Module1120Name=Dodávateľský obchodný návrh
 Module1120Desc=Vyžiadať dodávateľskú obchodnú ponuku a ceny
 Module1200Name=Mantis
 Module1200Desc=Mantis integrácia
-Module1400Name=Účtovníctvo
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Generovanie dokumentov
 Module1520Desc=Masové emailové generovanie dokumentov
 Module1780Name=Štítky / Kategórie
@@ -585,7 +584,7 @@ Module50100Desc=Modul predajné miesta ( POS )
 Module50200Name=Paypal
 Module50200Desc=Modul ponúknuť on-line platby kreditnou kartou stránku s Paypal
 Module50400Name=Učtovníctvo (pokročilé)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Anketa, Dotazník, Hlasovanie
@@ -751,8 +750,10 @@ Permission401=Prečítajte zľavy
 Permission402=Vytvoriť / upraviť zľavy
 Permission403=Overiť zľavy
 Permission404=Odstrániť zľavy
-Permission510=Čítať mzdy
-Permission512=Vytvoriť/Upraviť mzdy
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Zmazať platy
 Permission517=Exportovať platy
 Permission520=Čítať pôžičky
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= Toto pravidlo je nútený <b>%s</b> aktivovaným modulom
-PreviousDumpFiles=Dostupné databázové súbory zálohovanie výpisu
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=Prvý deň v týždni
 RunningUpdateProcessMayBeRequired=Spustenie procesu upgradu sa zdá byť potrebná (programy %s verzia sa líši od verzie databázy %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=Je nutné spustiť tento príkaz z príkazového riadka po prihlásení do shellu s užívateľskými <b>%s</b> alebo musíte pridať parameter-w na konci príkazového riadku, aby <b>%s</b> heslo.
diff --git a/htdocs/langs/sk_SK/banks.lang b/htdocs/langs/sk_SK/banks.lang
index 18a122998b9..04d12c06878 100644
--- a/htdocs/langs/sk_SK/banks.lang
+++ b/htdocs/langs/sk_SK/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Šek vrátený a faktúra znova otvorená
 BankAccountModelModule=Šablóny dokumentov pre bankové účty
 DocumentModelSepaMandate=Šablóny SEPA. Užitočné iba pre krajiny v EEC
 DocumentModelBan=Šablóna pre tlač strany s BAN informáciami
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/sk_SK/bills.lang b/htdocs/langs/sk_SK/bills.lang
index 3c50d388a96..671545e3055 100644
--- a/htdocs/langs/sk_SK/bills.lang
+++ b/htdocs/langs/sk_SK/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Faktúra karty
 PredefinedInvoices=Preddefinované Faktúry
 Invoice=Faktúra
+PdfInvoiceTitle=Faktúra
 Invoices=Faktúry
 InvoiceLine=Faktúra linka
 InvoiceCustomer=Zákazník faktúra
diff --git a/htdocs/langs/sk_SK/compta.lang b/htdocs/langs/sk_SK/compta.lang
index 91c96839bd6..5977f70ba4c 100644
--- a/htdocs/langs/sk_SK/compta.lang
+++ b/htdocs/langs/sk_SK/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/sk_SK/errors.lang b/htdocs/langs/sk_SK/errors.lang
index ff9dadd7021..4ed47c88fa3 100644
--- a/htdocs/langs/sk_SK/errors.lang
+++ b/htdocs/langs/sk_SK/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/sk_SK/install.lang b/htdocs/langs/sk_SK/install.lang
index 18f6746d025..07e1ce5eefa 100644
--- a/htdocs/langs/sk_SK/install.lang
+++ b/htdocs/langs/sk_SK/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Prihlásenie pre vlastníka databázy Dolibarr.
 PasswordAgain=Zadajte heslo ešte raz
 AdminPassword=Heslo pre vlastníka databázy Dolibarr.
 CreateDatabase=Vytvoriť databázu
-CreateUser=Vytvoriť majiteľa
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Databázový server - prístup Superuser
 CheckToCreateDatabase=Zaškrtnite, ak databáza neexistuje a musí byť vytvorená.<br>V tom prípade musíte zadať prihlasovacie meno / heslo pre administrátora v dolnej časti tejto stránky.
-CheckToCreateUser=Zaškrtnite, ak vlastník databázy neexistuje a musí byť vytvorený.<br>V tomto prípade je nutné zvoliť si prihlasovacie meno a heslo a tiež vyplniť login / heslo administrátora v dolnej časti tejto stránky. Ak toto políčko nie je začiarknuté, vlastník databázy a jeho heslá musia existovať.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Prihlásenie užívateľa oprávneného vytvárať nové databázy alebo nových užívateľov - povinné, ak vaša databáza alebo jej majiteľ ešte neexistuje.
 KeepEmptyIfNoPassword=Ponechajte prázdne, ak užívateľ nemá heslo (neodporúčané)
 SaveConfigurationFile=Uložiť hodnoty
diff --git a/htdocs/langs/sk_SK/main.lang b/htdocs/langs/sk_SK/main.lang
index d5ae6bd5a1e..7df00a49af9 100644
--- a/htdocs/langs/sk_SK/main.lang
+++ b/htdocs/langs/sk_SK/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=Súbor sa úspešne nahral
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=Súbor vybraný pre pripojenie, ale ešte nebol nahraný. Kliknite na &quot;Priložiť súbor&quot; za to.
 NbOfEntries=Nb záznamov
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parameter
 Parameters=Parametre
 Value=Hodnota
 PersonalValue=Osobné hodnota
+NewObject=New %s
 NewValue=Nová hodnota
 CurrentValue=Súčasná hodnota
 Code=Kód
@@ -441,6 +443,7 @@ Reporting=Hlásenie
 Reportings=Hlásenie
 Draft=Návrh
 Drafts=Dáma
+StatusInterInvoiced=
 Validated=Overené
 Opened=Otvorení
 New=Nový
@@ -727,6 +730,7 @@ SetBankAccount=Definovať bankový účet
 AccountCurrency=Mena účtu
 ViewPrivateNote=Zobraziť poznámky
 XMoreLines=%s riadk(y/ov) skrytých
+ShowMoreLines=Show more lines
 PublicUrl=Verejné URL
 AddBox=Pridať box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Choďte na Domov - Nastavenie - Spoločnosť pre zmenu loga, alebo na Domov - Nastavenie - Zobrazenie pre skrytie loga.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gender
 Genderman=Man
diff --git a/htdocs/langs/sk_SK/modulebuilder.lang b/htdocs/langs/sk_SK/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/sk_SK/modulebuilder.lang
+++ b/htdocs/langs/sk_SK/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/sk_SK/orders.lang b/htdocs/langs/sk_SK/orders.lang
index 7602a984ec0..ba0bccde91e 100644
--- a/htdocs/langs/sk_SK/orders.lang
+++ b/htdocs/langs/sk_SK/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Dodávateľské objednávky
 OrderCard=Karta objednávky
 OrderId=ID objednávky
 Order=Objednávka
+PdfOrderTitle=Objednávka
 Orders=Objednávky
 OrderLine=Objednať linka
 OrderDate=Dátum objednávky
diff --git a/htdocs/langs/sk_SK/other.lang b/htdocs/langs/sk_SK/other.lang
index 9c989b9df04..aeb4ac2ad4a 100644
--- a/htdocs/langs/sk_SK/other.lang
+++ b/htdocs/langs/sk_SK/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/sk_SK/propal.lang b/htdocs/langs/sk_SK/propal.lang
index 7270e5c3e26..4dae4d9430f 100644
--- a/htdocs/langs/sk_SK/propal.lang
+++ b/htdocs/langs/sk_SK/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Navrhnúť obchodné návrhy
 ProposalsOpened=Otvoriť komerčnú ponuku
 Prop=Komerčné návrhy
 CommercialProposal=Komerčné návrh
+PdfCommercialProposalTitle=Komerčné návrh
 ProposalCard=Návrh karty
 NewProp=Nový obchodný návrh
 NewPropal=Nový návrh
diff --git a/htdocs/langs/sk_SK/salaries.lang b/htdocs/langs/sk_SK/salaries.lang
index ed207112a4a..698984051b4 100644
--- a/htdocs/langs/sk_SK/salaries.lang
+++ b/htdocs/langs/sk_SK/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Základný účtovný účet pre osobný rozvoj
 Salary=Mzda
 Salaries=Mzdy
diff --git a/htdocs/langs/sk_SK/website.lang b/htdocs/langs/sk_SK/website.lang
index 0a4272f5da0..39a0b48a5cd 100644
--- a/htdocs/langs/sk_SK/website.lang
+++ b/htdocs/langs/sk_SK/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Tu vytvorte toľko riadkov kolko rôzných webstránok potrebuj
 DeleteWebsite=Zmazať webstránku
 ConfirmDeleteWebsite=Určite chcete zmazať túto web stránku. Všetky podstránka a obsah budú zmazané tiež.
 WEBSITE_PAGENAME=Meno stránky
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL alebo externý CSS dokument
 WEBSITE_CSS_INLINE=Obsah CSS
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Knižnica médií
-EditCss=Upraviť štýl/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Upraviť menu
 EditPageMeta=Upraviť Meta
 EditPageContent=Upraviť obsah
 Website=Web stránka
-Webpage=Web stránka
-AddPage=Pridať stránku
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Náhľad webstránky <strong>%s</strong> nie je dostupný. Najprv musíte pridať stránk.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Stránka '%s' web stránky %s zmazaná
-PageAdded=Stránka '%s' pridaná
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=Zobraziť web stránku na novej karte
 ViewPageInNewTab=Zobraziť stránku na novej karte
 SetAsHomePage=Nastaviť ako domovskú stránku
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=Zobraziť web stránku použitím domovskej URL
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/sk_SK/workflow.lang b/htdocs/langs/sk_SK/workflow.lang
index 17fcf817dfa..558dfdac548 100644
--- a/htdocs/langs/sk_SK/workflow.lang
+++ b/htdocs/langs/sk_SK/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Workflow modul nastavenia
 WorkflowDesc=Tento modul vám pomôže nastaviť fingovanie automatických akcií v aplikácií. V základe je postup otvorený ( možete robiť úlohy v poradí v akom chcete) Môžete aktivovať automatické akcie aké chcete.
 ThereIsNoWorkflowToModify=Úprava postupu nie je možná pri aktivovanom module.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automaticky vytvoriť zákaznícku objednávku po podpísaní obchodného návrhu
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automaticky vytvoriť zákaznícku faktúru po podpísaní obchodného návrhu
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automaticky vytvoriť zákaznícku faktúru po overení zmluvy
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automaticky vytvoriť zákaznícku faktúru po uzavretí zákazníckej objednávky
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Triediť prepojené zdrojový návrh účtoval keď je objednávka zákazníka nastavený na platenú
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Triediť spojené zdroj objednávka zákazníka (y) účtoval, keď je zákazník faktúry nastavený na platené
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Triediť prepojený zdroj objednávky zákazníka (y) účtoval keď je overený zákazníkmi faktúra
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Označiť zdroj ako vyfakturovaný po overení zákazníckej faktúry
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/sl_SI/accountancy.lang b/htdocs/langs/sl_SI/accountancy.lang
index 25fbdf7bb69..16a9b068702 100644
--- a/htdocs/langs/sl_SI/accountancy.lang
+++ b/htdocs/langs/sl_SI/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=Seznam računovodskih računov
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Razred račun
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Napaka, ne morete izbrisati to računovodsko račun, ker se uporablja
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Koda
 Nature=Narava
 AccountingJournalType1=Various operation
 AccountingJournalType2=Prodaja
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Izvoz
-Export=Izvoz
 ExportDraftJournal=Export draft journal
 Modelcsv=Model izvoza
 OptionsDeactivatedForThisExportModel=Za ta izvozni model so opcije deaktivirane
diff --git a/htdocs/langs/sl_SI/admin.lang b/htdocs/langs/sl_SI/admin.lang
index d237c070f90..11130cd0f88 100644
--- a/htdocs/langs/sl_SI/admin.lang
+++ b/htdocs/langs/sl_SI/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Področje sistemskih orodij
 SystemToolsAreaDesc=To področje omogoča administrativne funkcije. Preko menija izberite funkcijo, ki jo iščete.
 Purge=Počisti
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Izbris vseh datotek v mapi <b>%s</b>. Začasne datoteke, kot tudi datoteke, ki so pripete elementom (partnerji, fakture, ...) in naložene v modul ECM, se bodo izbrisale.
 PurgeRunNow=Počisti zdaj
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=Izbrisane mape ali datoteke <b>%s</b>.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Počisti vse dogodke
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Generiraj varnostno kopijo
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=V tem koraku lahko pošljete paket s pomočjo tega orodja: Izberite datoteko modula
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Trenutna različica Dolibarr
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Komercialna ponudba dobavitelja
 Module1120Desc=Zahteva za komercialno ponudbo in cene dobavitelja
 Module1200Name=Mantis
 Module1200Desc=Mantis integracija
-Module1400Name=Računovodstvo
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Generiranje dokumenta
 Module1520Desc=Generiranje dokumenta za masovno pošto
 Module1780Name=Značke/kategorije
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Modul za omogočanje strani za spletno plačevanje s kreditno kartico - Paypal
 Module50400Name=Računovodstvo (napredno)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=Tiskanje IPP
 Module54000Desc=Direktno tiskanje (brez odpiranja dokumenta) z uporabo Cups IPP vmesnika (tiskalnik mora biti viden na strežniku in nameščen mora biti CUPS ).
 Module55000Name=Izberi, oceni ali glasuj
@@ -751,8 +750,10 @@ Permission401=Branje popustov
 Permission402=Kreiranje/spreminjanje popustov
 Permission403=Potrjevanje popustov
 Permission404=Brisanje popustov
-Permission510=Branje plač
-Permission512=Ustvari/spremeni plače
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Izbris plač
 Permission517=Izvoz plač
 Permission520=Branje posojil
@@ -1057,7 +1058,7 @@ RestoreDesc2=Arhivsko datoteko mape z dokumenti (na primer zip datoteko) razpaki
 RestoreDesc3=Obnovite podatke iz arhivske dump datoteke v bazo podatkov nove Dolibarr instalacije ali v bazo podatkov trenutne instalacije (<b>%s</b>). Pozor, ko je obnova končana, morate za ponovno prijavo uporabiti uporabniško ime/geslo, kakršno je veljalo v trenutku izdelave varnostne kopije. Za obnovitev varnostne kopije baze v trenutno instalacijo, lahko sledite tem napotkom.
 RestoreMySQL=Uvoz MySQL
 ForcedToByAModule= To pravilo je postavljeno v <b>%s</b> z aktivnim modulom
-PreviousDumpFiles=Datoteke z varnostnimi kopijami podatkovnih baz, ki so na voljo.
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=Prvi dan v tednu
 RunningUpdateProcessMayBeRequired=Kaže, da bo potrebno pognati postopek nadgradnje (Različica programa %s je drugačna, kot različica baze podatkov %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=Ta ukaz morate pognati iz ukazne vrstice po prijavi v sistem kot uporabnik <b>%s</b>.
diff --git a/htdocs/langs/sl_SI/banks.lang b/htdocs/langs/sl_SI/banks.lang
index a010eb3befb..71272bb6c9f 100644
--- a/htdocs/langs/sl_SI/banks.lang
+++ b/htdocs/langs/sl_SI/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Vrnjen ček in ponovno odprti računi
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/sl_SI/bills.lang b/htdocs/langs/sl_SI/bills.lang
index 97f147e4da1..cee8a633c17 100644
--- a/htdocs/langs/sl_SI/bills.lang
+++ b/htdocs/langs/sl_SI/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Kartica računa
 PredefinedInvoices=Vnaprej določeni računi
 Invoice=Račun
+PdfInvoiceTitle=Račun
 Invoices=Računi
 InvoiceLine=Vrstica računa
 InvoiceCustomer=Račun za kupca
diff --git a/htdocs/langs/sl_SI/compta.lang b/htdocs/langs/sl_SI/compta.lang
index 58cc2377639..c8da6efd0df 100644
--- a/htdocs/langs/sl_SI/compta.lang
+++ b/htdocs/langs/sl_SI/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/sl_SI/errors.lang b/htdocs/langs/sl_SI/errors.lang
index af30bdb6101..6303290c348 100644
--- a/htdocs/langs/sl_SI/errors.lang
+++ b/htdocs/langs/sl_SI/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/sl_SI/install.lang b/htdocs/langs/sl_SI/install.lang
index 9787eb98bf6..0e1e73701e3 100644
--- a/htdocs/langs/sl_SI/install.lang
+++ b/htdocs/langs/sl_SI/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Uporabniško ime za lastnika Dolibarr baze podatkov.
 PasswordAgain=Ponoven vnos gesla
 AdminPassword=Geslo za lastnika Dolibarr baze podatkov.
 CreateDatabase=Ustvari bazo podatkov
-CreateUser=Ustvari uporabnika
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Strežnik za bazo podatkov – »Super uporabnik« dostop
 CheckToCreateDatabase=Označite kvadratek, če baza podatkov ne obstaja in jo je potrebno ustvariti.<br>V tem primeru morate vnesti uporabniško ime/geslo za račun »Super uporabnik« na dnu te strani.
-CheckToCreateUser=Označite kvadratek, če lastnik ne obstaja in ga je potrebno ustvariti.<br>V tem primeru morate izbrati njegovo uporabniško ime in geslo in vnesti tudi uporabniško ime/geslo za račun »Super uporabnik« na dnu te strani. Če ta kvadratek ni označen, morata obstajati lastnikova baza podatkov in njegovo geslo.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Uporabniško ime uporabnika omogoča kreiranje nove baze podatkov ali novega uporabnika, razen če vaša baza podatkov in vaše uporabniško ime že obstajata (na primer če gostujete pri spletnem ponudniku).
 KeepEmptyIfNoPassword=Pustite prazno, če uporabnik nima gesla (temu se izogibajte)
 SaveConfigurationFile=Shrani vrednosti
diff --git a/htdocs/langs/sl_SI/main.lang b/htdocs/langs/sl_SI/main.lang
index ac156270f24..90042fdb753 100644
--- a/htdocs/langs/sl_SI/main.lang
+++ b/htdocs/langs/sl_SI/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=Datoteka je bila uspešno naložena
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=Izbrana je bila datoteka za prilogo, vendar še ni dodana. Kliknite na "Pripni datoteko".
 NbOfEntries=Število vpisov
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parameter
 Parameters=Parametri
 Value=Vrednost
 PersonalValue=Osebna vrednost
+NewObject=New %s
 NewValue=Nova vrednost
 CurrentValue=Trenutna vrednost
 Code=Koda
@@ -441,6 +443,7 @@ Reporting=Poročilo
 Reportings=Poročila
 Draft=Osnutek
 Drafts=Osnutki
+StatusInterInvoiced=
 Validated=Potrjen
 Opened=Odprt
 New=Nov
@@ -727,6 +730,7 @@ SetBankAccount=Določi bančni račun
 AccountCurrency=Valuta računa
 ViewPrivateNote=Glej opombe
 XMoreLines=%s zasenčena(ih) vrstic
+ShowMoreLines=Show more lines
 PublicUrl=Javni URL
 AddBox=Dodaj okvir
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Pojdite na Domov - Nastavitve - Podjetje za spremembo logotipa oz. na Domov - Nastavitve - Prikaz za njegovo skritje.
 Deny=Zavrni
 Denied=Zavrnjen
+ListOf=List of %s
 ListOfTemplates=Seznam predlog
 Gender=Spol
 Genderman=Moški
diff --git a/htdocs/langs/sl_SI/modulebuilder.lang b/htdocs/langs/sl_SI/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/sl_SI/modulebuilder.lang
+++ b/htdocs/langs/sl_SI/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/sl_SI/orders.lang b/htdocs/langs/sl_SI/orders.lang
index 9855d34cb9d..a4a2f8ee754 100644
--- a/htdocs/langs/sl_SI/orders.lang
+++ b/htdocs/langs/sl_SI/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Področje naročil pri dobaviteljih
 OrderCard=Kartica naročila
 OrderId=ID naročila
 Order=Naročilo
+PdfOrderTitle=Naročilo
 Orders=Naročila
 OrderLine=Vrstica naročila
 OrderDate=Datum naročila
diff --git a/htdocs/langs/sl_SI/other.lang b/htdocs/langs/sl_SI/other.lang
index 75294be8f09..dca606a9648 100644
--- a/htdocs/langs/sl_SI/other.lang
+++ b/htdocs/langs/sl_SI/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/sl_SI/propal.lang b/htdocs/langs/sl_SI/propal.lang
index 4c39e9216aa..739977cc097 100644
--- a/htdocs/langs/sl_SI/propal.lang
+++ b/htdocs/langs/sl_SI/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Osnutek komercialnih ponudb
 ProposalsOpened=Odprte komercialne ponudbe
 Prop=Komercialne ponudbe
 CommercialProposal=Komercialna ponudba
+PdfCommercialProposalTitle=Komercialna ponudba
 ProposalCard=Kartica ponudbe
 NewProp=Nova komercialna ponudba
 NewPropal=Nova ponudba
diff --git a/htdocs/langs/sl_SI/salaries.lang b/htdocs/langs/sl_SI/salaries.lang
index f706435cd09..b376b9e755f 100644
--- a/htdocs/langs/sl_SI/salaries.lang
+++ b/htdocs/langs/sl_SI/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Plača
 Salaries=Plače
diff --git a/htdocs/langs/sl_SI/website.lang b/htdocs/langs/sl_SI/website.lang
index b44e52d459e..f7ab9737ed5 100644
--- a/htdocs/langs/sl_SI/website.lang
+++ b/htdocs/langs/sl_SI/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Vnesite toliko zapisov, kot želite imeti spletnih strani.  Za
 DeleteWebsite=Izbriši spletno stran
 ConfirmDeleteWebsite=Ali ste prepričani, da želite izbrisati to spletno starn. Vse strani in vsebina bodo pobrisani.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/sl_SI/workflow.lang b/htdocs/langs/sl_SI/workflow.lang
index 52363a5ae0a..c3cadeb50ab 100644
--- a/htdocs/langs/sl_SI/workflow.lang
+++ b/htdocs/langs/sl_SI/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Nastavitev modula poteka dela
 WorkflowDesc=Ta modul je namenjen prilagajanju nastavitev samodejnih akcij. Privzeto je, da je modul odprt, kar pomeni, da lahko izvajate akcije v poljubnem vrstnem redu. Z nastavitvami delovnih tokov lahko določate zaporedje aktivnosti.
 ThereIsNoWorkflowToModify=Prilagajanje poteka dela za aktivirane module ni na voljo.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Po potrditvi komercialne ponudbe samodejno ustvari naročilo kupca.
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Samodejno ustvari račun za kupca, po potrditvi komercialne ponudbe .
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Samodejno ustvari račun za kupca, po validaciji pogodbe.
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Samodejno ustvari račun za kupca, ko naročilo kupca dobi status "zaprto".
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Označi povezano izvorno ponudbo kot "zaračunano", ko naročilo kupca dobi status "plačano"
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Označi povezano izvorno naročilo (ali več naročil) kupca kot "zaračunano", ko račun za kupca dobi status "plačano"
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Označi povezano izvorno naročilo (ali več naročil) kupca kot "zaračunano", ko naročilo kupca dobi status "potrjeno"
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Označi povezane ponudbe kot "zaračunano", ko je naročilo kupca "potrjeno".
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Označi povezana naročila kot "odpremljena", ko je odprema potrjena in ko je odpremljena količina enaka naročilu.
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Samodejno generiranje
 AutomaticClassification=Samodejno spreminjanje statusa
diff --git a/htdocs/langs/sq_AL/accountancy.lang b/htdocs/langs/sq_AL/accountancy.lang
index 1e586283ee1..a066395fef5 100644
--- a/htdocs/langs/sq_AL/accountancy.lang
+++ b/htdocs/langs/sq_AL/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Code
 Nature=Nature
 AccountingJournalType1=Various operation
 AccountingJournalType2=Sales
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exports
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model of export
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/sq_AL/admin.lang b/htdocs/langs/sq_AL/admin.lang
index a30a9ce25f2..89596b2474e 100644
--- a/htdocs/langs/sq_AL/admin.lang
+++ b/htdocs/langs/sq_AL/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=System tools area
 SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for.
 Purge=Purge
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory <b>%s</b>. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted.
 PurgeRunNow=Purge now
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> files or directories deleted.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Purge all security events
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Generate backup
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr current version
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Mantis integration
-Module1400Name=Accounting
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Module to offer an online payment page by credit card with Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Read discounts
 Permission402=Create/modify discounts
 Permission403=Validate discounts
 Permission404=Delete discounts
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
-PreviousDumpFiles=Available database backup dump files
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=First day of week
 RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user <b>%s</b> or you must add -W option at end of command line to provide <b>%s</b> password.
diff --git a/htdocs/langs/sq_AL/banks.lang b/htdocs/langs/sq_AL/banks.lang
index 92881fba45a..9e2f7a94d82 100644
--- a/htdocs/langs/sq_AL/banks.lang
+++ b/htdocs/langs/sq_AL/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/sq_AL/bills.lang b/htdocs/langs/sq_AL/bills.lang
index 810686d3c7d..ee793f4c5cf 100644
--- a/htdocs/langs/sq_AL/bills.lang
+++ b/htdocs/langs/sq_AL/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Invoice card
 PredefinedInvoices=Predefined Invoices
 Invoice=Faturë
+PdfInvoiceTitle=Faturë
 Invoices=Faturat
 InvoiceLine=Invoice line
 InvoiceCustomer=Customer invoice
diff --git a/htdocs/langs/sq_AL/compta.lang b/htdocs/langs/sq_AL/compta.lang
index 94a3bd671ef..f8b5b683cb8 100644
--- a/htdocs/langs/sq_AL/compta.lang
+++ b/htdocs/langs/sq_AL/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/sq_AL/errors.lang b/htdocs/langs/sq_AL/errors.lang
index feada2d1b5a..853a34b4bb4 100644
--- a/htdocs/langs/sq_AL/errors.lang
+++ b/htdocs/langs/sq_AL/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/sq_AL/install.lang b/htdocs/langs/sq_AL/install.lang
index a3533a31277..5b6ba06e78a 100644
--- a/htdocs/langs/sq_AL/install.lang
+++ b/htdocs/langs/sq_AL/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner.
 PasswordAgain=Retype password a second time
 AdminPassword=Password for Dolibarr database owner.
 CreateDatabase=Create database
-CreateUser=Create owner
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Database server - Superuser access
 CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
-CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
 KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
 SaveConfigurationFile=Save values
diff --git a/htdocs/langs/sq_AL/main.lang b/htdocs/langs/sq_AL/main.lang
index 5e4a47c8902..81f3eb5fd1d 100644
--- a/htdocs/langs/sq_AL/main.lang
+++ b/htdocs/langs/sq_AL/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=The file was successfully uploaded
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
 NbOfEntries=Nb of entries
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parameter
 Parameters=Parameters
 Value=Value
 PersonalValue=Personal value
+NewObject=New %s
 NewValue=New value
 CurrentValue=Current value
 Code=Code
@@ -441,6 +443,7 @@ Reporting=Reporting
 Reportings=Reporting
 Draft=Draft
 Drafts=Drafts
+StatusInterInvoiced=
 Validated=Validated
 Opened=Hapur
 New=New
@@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account
 AccountCurrency=Account Currency
 ViewPrivateNote=View notes
 XMoreLines=%s line(s) hidden
+ShowMoreLines=Show more lines
 PublicUrl=Public URL
 AddBox=Add box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gjinia
 Genderman=Man
diff --git a/htdocs/langs/sq_AL/modulebuilder.lang b/htdocs/langs/sq_AL/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/sq_AL/modulebuilder.lang
+++ b/htdocs/langs/sq_AL/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/sq_AL/orders.lang b/htdocs/langs/sq_AL/orders.lang
index 851613e7959..f1d1a54f369 100644
--- a/htdocs/langs/sq_AL/orders.lang
+++ b/htdocs/langs/sq_AL/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area
 OrderCard=Order card
 OrderId=Order Id
 Order=Order
+PdfOrderTitle=Order
 Orders=Orders
 OrderLine=Order line
 OrderDate=Order date
diff --git a/htdocs/langs/sq_AL/other.lang b/htdocs/langs/sq_AL/other.lang
index 1b0b6a5894b..ea7d6761c39 100644
--- a/htdocs/langs/sq_AL/other.lang
+++ b/htdocs/langs/sq_AL/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/sq_AL/propal.lang b/htdocs/langs/sq_AL/propal.lang
index 0e3dbc1fb23..4ef5664a40d 100644
--- a/htdocs/langs/sq_AL/propal.lang
+++ b/htdocs/langs/sq_AL/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals
 ProposalsOpened=Open commercial proposals
 Prop=Commercial proposals
 CommercialProposal=Commercial proposal
+PdfCommercialProposalTitle=Commercial proposal
 ProposalCard=Proposal card
 NewProp=New commercial proposal
 NewPropal=New proposal
diff --git a/htdocs/langs/sq_AL/salaries.lang b/htdocs/langs/sq_AL/salaries.lang
index 522bf0a65d7..7e0c80d3380 100644
--- a/htdocs/langs/sq_AL/salaries.lang
+++ b/htdocs/langs/sq_AL/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Salary
 Salaries=Salaries
diff --git a/htdocs/langs/sq_AL/website.lang b/htdocs/langs/sq_AL/website.lang
index b3b05ee6cc9..98577e0de5e 100644
--- a/htdocs/langs/sq_AL/website.lang
+++ b/htdocs/langs/sq_AL/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/sq_AL/workflow.lang b/htdocs/langs/sq_AL/workflow.lang
index 54246856e9b..8021fb9b198 100644
--- a/htdocs/langs/sq_AL/workflow.lang
+++ b/htdocs/langs/sq_AL/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Workflow module setup
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/sr_RS/accountancy.lang b/htdocs/langs/sr_RS/accountancy.lang
index 412d0307859..286cca795ab 100644
--- a/htdocs/langs/sr_RS/accountancy.lang
+++ b/htdocs/langs/sr_RS/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Stanje računa
-
+ObjectsRef=Source object ref
 CAHTF=Ukupna nabavka bez PDV-a
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finansijski izveštaji
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finansijski izveštaji uključujući sve vrste uplata preko bankovnog računa
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=Lista računovodstvenih naloga
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Klasa računa
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Greška, ne možete opbrisati ovaj računovodstveni nalog, jer  je u upotrebi
-MvtNotCorrectlyBalanced=Transakcija nema dobar balans. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Kod
 Nature=Priroda
 AccountingJournalType1=Various operation
 AccountingJournalType2=Prodaje
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Izvozi
-Export=Izvoz
 ExportDraftJournal=Export draft journal
 Modelcsv=Model izvoza
 OptionsDeactivatedForThisExportModel=Za ovaj model izvoza, opcije su deaktivirane
diff --git a/htdocs/langs/sr_RS/admin.lang b/htdocs/langs/sr_RS/admin.lang
index 98d86dc62d9..f7376a979f0 100644
--- a/htdocs/langs/sr_RS/admin.lang
+++ b/htdocs/langs/sr_RS/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=System tools area
 SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for.
 Purge=Purge
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory <b>%s</b>. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted.
 PurgeRunNow=Purge now
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> files or directories deleted.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Purge all security events
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Generate backup
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr current version
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Mantis integration
-Module1400Name=Accounting
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Module to offer an online payment page by credit card with Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Anketa ili Glasanje
@@ -751,8 +750,10 @@ Permission401=Read discounts
 Permission402=Create/modify discounts
 Permission403=Validate discounts
 Permission404=Delete discounts
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
-PreviousDumpFiles=Available database backup dump files
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=First day of week
 RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user <b>%s</b> or you must add -W option at end of command line to provide <b>%s</b> password.
diff --git a/htdocs/langs/sr_RS/banks.lang b/htdocs/langs/sr_RS/banks.lang
index 549c5fa073e..294837d7c2a 100644
--- a/htdocs/langs/sr_RS/banks.lang
+++ b/htdocs/langs/sr_RS/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Ček vraćen i faktura ponovo otvorena
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/sr_RS/bills.lang b/htdocs/langs/sr_RS/bills.lang
index 347f5de446c..8c093340004 100644
--- a/htdocs/langs/sr_RS/bills.lang
+++ b/htdocs/langs/sr_RS/bills.lang
@@ -5,13 +5,13 @@ BillsCustomers=Fakture klijenata
 BillsCustomer=Račun kupca
 BillsSuppliers=Fakture dobavljača
 BillsCustomersUnpaid=Neplaćene fakture klijenta
-BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s
+BillsCustomersUnpaidForCompany=Neplaćene fakture klijenta za %s
 BillsSuppliersUnpaid=Neplaćene fakture dobavljača
-BillsSuppliersUnpaidForCompany=Unpaid supplier invoices for %s
+BillsSuppliersUnpaidForCompany=Neplaćene fakture dobavljača %s
 BillsLate=Zakasnele uplate
 BillsStatistics=Statistika računa kupaca
 BillsStatisticsSuppliers=Statistika računa dobavljača
-DisabledBecauseNotErasable=Disabled because cannot be erased
+DisabledBecauseNotErasable=Onemogućeno jer ne može biti izbrisano
 InvoiceStandard=Standardni račun
 InvoiceStandardAsk=Standardni račun
 InvoiceStandardDesc=Ovaj tip računa je uobičajen
@@ -38,13 +38,14 @@ CorrectInvoice=Ispravan račun %s
 CorrectionInvoice=Ispravka računa
 UsedByInvoice=Koristi se za plaćanje računa %s
 ConsumedBy=Potrošač
-NotConsumed=Ne potrošeno
+NotConsumed=Nije potrošeno
 NoReplacableInvoice=Nema računa koji se mogu zameniti
 NoInvoiceToCorrect=Nema računa za korekciju
 InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Kartica računa
 PredefinedInvoices=Predefinisani računi
 Invoice=Račun
+PdfInvoiceTitle=Račun
 Invoices=Računi
 InvoiceLine=Linija na računu
 InvoiceCustomer=Račun kupca
@@ -62,7 +63,7 @@ PaymentsBack=Refundiranja
 paymentInInvoiceCurrency=in invoices currency
 PaidBack=Refundirano
 DeletePayment=Obriši plaćanje
-ConfirmDeletePayment=Are you sure you want to delete this payment?
+ConfirmDeletePayment=Da li ste sigurni da želite da obrišete ovu uplatu?
 ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
 SupplierPayments=Plaćanja dobavljačima
 ReceivedPayments=Primljene uplate
@@ -103,7 +104,7 @@ SearchACustomerInvoice=Traži račun kupca
 SearchASupplierInvoice=Traži račun dobavljača
 CancelBill=Otkaži račun
 SendRemindByMail=Pošalji podsetnik Emailom
-DoPayment=Enter payment
+DoPayment=Unesite uplatu
 DoPaymentBack=Enter refund
 ConvertToReduc=Konvertuj u budući popust
 ConvertExcessReceivedToReduc=Convert excess received into future discount
@@ -112,27 +113,27 @@ EnterPaymentDueToCustomer=Uplatiti zbog kupca
 DisabledBecauseRemainderToPayIsZero=Onemogući jer je preostali iznos nula
 PriceBase=Osnovna cena
 BillStatus=Status računa
-StatusOfGeneratedInvoices=Status of generated invoices
+StatusOfGeneratedInvoices=Status generisanih računa
 BillStatusDraft=Nacrt (treba da se potvrdi)
 BillStatusPaid=Plaćeno
-BillStatusPaidBackOrConverted=Credit note refund or converted into discount
+BillStatusPaidBackOrConverted=Knjižno odobrenje refundirano ili konvertovano u popust
 BillStatusConverted=Plaćeno (spremno za konačni račun)
 BillStatusCanceled=Napušteno
 BillStatusValidated=Potvrdjeno (potrebno izvršiti plaćanje)
 BillStatusStarted=Započeto
 BillStatusNotPaid=Nije plaćeno
-BillStatusNotRefunded=Not refunded
+BillStatusNotRefunded=Nije refundirano
 BillStatusClosedUnpaid=Zatvoreno (neplaćeno)
 BillStatusClosedPaidPartially=Plaćeno (delimično)
 BillShortStatusDraft=Nacrt
 BillShortStatusPaid=Plaćeno
-BillShortStatusPaidBackOrConverted=Refund or converted
+BillShortStatusPaidBackOrConverted=Refundirano ili konvertovano
 BillShortStatusConverted=Plaćeno
 BillShortStatusCanceled=Napušteno
 BillShortStatusValidated=Potvrdjeno
 BillShortStatusStarted=Započeto
 BillShortStatusNotPaid=Nije plaeno
-BillShortStatusNotRefunded=Not refunded
+BillShortStatusNotRefunded=Nije refundirano
 BillShortStatusClosedUnpaid=Zatvoreno
 BillShortStatusClosedPaidPartially=Plaćeno (delimično)
 PaymentStatusToValidShort=Za potvrdu
@@ -153,8 +154,8 @@ NoQualifiedRecurringInvoiceTemplateFound=No recurring template invoice qualified
 FoundXQualifiedRecurringInvoiceTemplate=Found %s recurring template invoice(s) qualified for generation.
 NotARecurringInvoiceTemplate=Not a recurring template invoice
 NewBill=Novi račun
-LastBills=Latest %s invoices
-LastCustomersBills=Latest %s customer invoices
+LastBills=Najnoviji %s računi
+LastCustomersBills=Najnoviji %s računi klijenta
 LastSuppliersBills=Latest %s supplier invoices
 AllBills=Svi računi
 OtherBills=Drugi računi
@@ -162,14 +163,14 @@ DraftBills=Računi u statusu "nacrt"
 CustomersDraftInvoices=Customer draft invoices
 SuppliersDraftInvoices=Supplier draft invoices
 Unpaid=Neplaćeno
-ConfirmDeleteBill=Are you sure you want to delete this invoice?
-ConfirmValidateBill=Are you sure you want to validate this invoice with reference <b>%s</b>?
+ConfirmDeleteBill=Da li ste sigurni da želite da obrišete ovaj račun?
+ConfirmValidateBill=Da li ste sigurni da želite da potvrdite ovaj račun sa brojem <b>%s</b>?
 ConfirmUnvalidateBill=Are you sure you want to change invoice <b>%s</b> to draft status?
-ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to status paid?
-ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
-ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
-ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
-ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
+ConfirmClassifyPaidBill=Da li ste sigurni da želite da promeni status računa <b>%s</b> u status plaćen?
+ConfirmCancelBill=Da li ste sigurni da želite da otkažete račun <b>%s</b>?
+ConfirmCancelBillQuestion=Zašto želite da klasifikujete ovaj račun kao  'napušten'?
+ConfirmClassifyPaidPartially=Da li ste sigurni da želite da promeni status računa <b>%s</b> u status plaćen?
+ConfirmClassifyPaidPartiallyQuestion=Ovaj račun nije plaćen u celosti. Iz kojih razloga želite da zatvorite ovaj račun?
 ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
 ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
 ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
@@ -186,7 +187,7 @@ ConfirmClassifyAbandonReasonOther=Other
 ConfirmClassifyAbandonReasonOtherDesc=This choice will be used in all other cases. For example because you plan to create a replacing invoice.
 ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
 ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
-ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
+ConfirmValidatePayment=Da li ste sigurni da želite da potvrdite ovu uplatu? Kada je uplata potvrdjena, promene nisu moguće.
 ValidateBill=Validate invoice
 UnvalidateBill=Unvalidate invoice
 NumberOfBills=Nb of invoices
@@ -207,7 +208,7 @@ AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down p
 Abandoned=Abandoned
 RemainderToPay=Remaining unpaid
 RemainderToTake=Remaining amount to take
-RemainderToPayBack=Remaining amount to refund
+RemainderToPayBack=Preostali iznos za refundiranje
 Rest=Pending
 AmountExpected=Amount claimed
 ExcessReceived=Excess received
@@ -282,8 +283,8 @@ NewRelativeDiscount=New relative discount
 NoteReason=Note/Reason
 ReasonDiscount=Reason
 DiscountOfferedBy=Granted by
-DiscountStillRemaining=Discounts available
-DiscountAlreadyCounted=Discounts already consumed
+DiscountStillRemaining=Dostupni popusti
+DiscountAlreadyCounted=Popusti su već iskorišćeni
 BillAddress=Bill address
 HelpEscompte=This discount is a discount granted to customer because its payment was made before term.
 HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loose.
@@ -302,7 +303,7 @@ RemoveDiscount=Remove discount
 WatermarkOnDraftBill=Watermark on draft invoices (nothing if empty)
 InvoiceNotChecked=No invoice selected
 CloneInvoice=Clone invoice
-ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
+ConfirmCloneInvoice=Da li ste sigurni da želite da napravite kopiju ovog računa <b>%s</b>?
 DisabledBecauseReplacedInvoice=Action disabled because invoice has been replaced
 DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
 NbOfPayments=Nb of payments
@@ -310,7 +311,7 @@ SplitDiscount=Split discount in two
 ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
 TypeAmountOfEachNewDiscount=Input amount for each of two parts :
 TotalOfTwoDiscountMustEqualsOriginal=Total of two new discount must be equal to original discount amount.
-ConfirmRemoveDiscount=Are you sure you want to remove this discount?
+ConfirmRemoveDiscount=Da li ste sigurni da želite da uklonite ovaj popust?
 RelatedBill=Related invoice
 RelatedBills=Related invoices
 RelatedCustomerInvoices=Related customer invoices
@@ -323,47 +324,47 @@ PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but
 PaymentNote=Payment note
 ListOfPreviousSituationInvoices=List of previous situation invoices
 ListOfNextSituationInvoices=List of next situation invoices
-FrequencyPer_d=Every %s days
-FrequencyPer_m=Every %s months
-FrequencyPer_y=Every %s years
+FrequencyPer_d=Svakih %s dana
+FrequencyPer_m=Svakih %s meseci
+FrequencyPer_y=Svakih %s godina
 toolTipFrequency=Examples:<br /><b>Set 7, Day</b>: give a new invoice every 7 days<br /><b>Set 3, Month</b>: give a new invoice every 3 month
-NextDateToExecution=Date for next invoice generation
-DateLastGeneration=Date of latest generation
-MaxPeriodNumber=Max nb of invoice generation
-NbOfGenerationDone=Nb of invoice generation already done
+NextDateToExecution=Datum generisanja sledećeg računa
+DateLastGeneration=Datum najskorijeg generisanja
+MaxPeriodNumber=Max br računa za generisanje
+NbOfGenerationDone=Br već generisanih računa
 MaxGenerationReached=Maximum nb of generations reached
-InvoiceAutoValidate=Validate invoices automatically
+InvoiceAutoValidate=Potvrdi račune automatski
 GeneratedFromRecurringInvoice=Generated from template recurring invoice %s
-DateIsNotEnough=Date not reached yet
+DateIsNotEnough=Datum još nije dospeo
 InvoiceGeneratedFromTemplate=Invoice %s generated from recurring template invoice %s
 WarningInvoiceDateInFuture=Warning, the invoice date is higher than current date
 WarningInvoiceDateTooFarInFuture=Warning, the invoice date is too far from current date
 # PaymentConditions
 Statut=Status
-PaymentConditionShortRECEP=Due Upon Receipt
-PaymentConditionRECEP=Due Upon Receipt
+PaymentConditionShortRECEP=Dospeva na plaćanje po prijemu računa
+PaymentConditionRECEP=Dospeva na plaćanje po prijemu računa
 PaymentConditionShort30D=30 days
 PaymentCondition30D=30 days
-PaymentConditionShort30DENDMONTH=30 days of month-end
-PaymentCondition30DENDMONTH=Within 30 days following the end of the month
+PaymentConditionShort30DENDMONTH=30 dana od kraja tekućeg meseca
+PaymentCondition30DENDMONTH=U roku od 30 dana od poslednjeg dana u tekućem mesecu
 PaymentConditionShort60D=60 days
 PaymentCondition60D=60 days
-PaymentConditionShort60DENDMONTH=60 days of month-end
-PaymentCondition60DENDMONTH=Within 60 days following the end of the month
+PaymentConditionShort60DENDMONTH=60 dana od kraja tekućeg meseca
+PaymentCondition60DENDMONTH=U roku od 60 dana od poslednjeg dana u tekućem mesecu
 PaymentConditionShortPT_DELIVERY=Delivery
 PaymentConditionPT_DELIVERY=On delivery
 PaymentConditionShortPT_ORDER=Narudžbina
 PaymentConditionPT_ORDER=On order
 PaymentConditionShortPT_5050=50-50
 PaymentConditionPT_5050=50%% in advance, 50%% on delivery
-PaymentConditionShort10D=10 days
-PaymentCondition10D=10 days
-PaymentConditionShort10DENDMONTH=10 days of month-end
-PaymentCondition10DENDMONTH=Within 10 days following the end of the month
-PaymentConditionShort14D=14 days
-PaymentCondition14D=14 days
-PaymentConditionShort14DENDMONTH=14 days of month-end
-PaymentCondition14DENDMONTH=Within 14 days following the end of the month
+PaymentConditionShort10D=10 dana
+PaymentCondition10D=10 dana
+PaymentConditionShort10DENDMONTH=10 dana od kraja meseca
+PaymentCondition10DENDMONTH=U roku od 10 dana od poslednjeg dana u tekućem mesecu
+PaymentConditionShort14D=14 dana
+PaymentCondition14D=14 dana
+PaymentConditionShort14DENDMONTH=14 dana od kraja meseca
+PaymentCondition14DENDMONTH=U roku od 14 dana od poslednjeg dana u tekućem mesecu
 FixAmount=Fix amount
 VarAmount=Variable amount (%% tot.)
 # PaymentType
@@ -399,7 +400,7 @@ ExtraInfos=Extra infos
 RegulatedOn=Regulated on
 ChequeNumber=Check N°
 ChequeOrTransferNumber=Check/Transfer N°
-ChequeBordereau=Check schedule
+ChequeBordereau=Proveri raspored
 ChequeMaker=Izdavač čeka/transfera
 ChequeBank=Bank of Check
 CheckBank=Check
@@ -433,13 +434,13 @@ ChequeDeposits=Checks deposits
 Cheques=Checks
 DepositId=ID depozita
 NbCheque=Broj čekova
-CreditNoteConvertedIntoDiscount=This %s has been converted into %s
+CreditNoteConvertedIntoDiscount=Ovo %s je konvertovano u %s
 UsBillingContactAsIncoiveRecipientIfExist=Use customer billing contact address instead of third party address as recipient for invoices
 ShowUnpaidAll=Show all unpaid invoices
 ShowUnpaidLateOnly=Show late unpaid invoices only
 PaymentInvoiceRef=Payment invoice %s
 ValidateInvoice=Validate invoice
-ValidateInvoices=Validate invoices
+ValidateInvoices=Potvrdi račune
 Cash=Cash
 Reported=Delayed
 DisabledBecausePayments=Not possible since there are some payments
@@ -503,4 +504,4 @@ ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated au
 DeleteRepeatableInvoice=Delete template invoice
 ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
 CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
-BillCreated=%s bill(s) created
+BillCreated=%s račun(a) kreirano
diff --git a/htdocs/langs/sr_RS/boxes.lang b/htdocs/langs/sr_RS/boxes.lang
index b8ab942f07f..8dfdf2dc0b8 100644
--- a/htdocs/langs/sr_RS/boxes.lang
+++ b/htdocs/langs/sr_RS/boxes.lang
@@ -26,7 +26,7 @@ BoxTitleLastSuppliers=Latest %s recorded suppliers
 BoxTitleLastModifiedSuppliers=Latest %s modified suppliers
 BoxTitleLastModifiedCustomers=Latest %s modified customers
 BoxTitleLastCustomersOrProspects=Latest %s customers or prospects
-BoxTitleLastCustomerBills=Latest %s customer invoices
+BoxTitleLastCustomerBills=Najnoviji %s računi klijenta
 BoxTitleLastSupplierBills=Latest %s supplier invoices
 BoxTitleLastModifiedProspects=Latest %s modified prospects
 BoxTitleLastModifiedMembers=Latest %s members
diff --git a/htdocs/langs/sr_RS/cashdesk.lang b/htdocs/langs/sr_RS/cashdesk.lang
index 183c3c07852..f26d33c3074 100644
--- a/htdocs/langs/sr_RS/cashdesk.lang
+++ b/htdocs/langs/sr_RS/cashdesk.lang
@@ -14,7 +14,7 @@ ShoppingCart=Korpa za kupovinu
 NewSell=Nova prodaja
 AddThisArticle=Dodaj ovaj artikal
 RestartSelling=Vrati se nazad na prodaju
-SellFinished=Sale complete
+SellFinished=Prodaja završena
 PrintTicket=Štampaj kartu
 NoProductFound=Artikal nije pronađen
 ProductFound=proizvod pronađen
@@ -25,7 +25,7 @@ Difference=Razlika
 TotalTicket=Ukupna karta
 NoVAT=Nema PIB za ovu prodaju
 Change=VIšak primljen
-BankToPay=Account for payment
+BankToPay=Račun za plaćanje
 ShowCompany=Prikaži firmu
 ShowStock=Prikaži magacin
 DeleteArticle=Kliknite da uklonite ovaj atikal
diff --git a/htdocs/langs/sr_RS/commercial.lang b/htdocs/langs/sr_RS/commercial.lang
index 7aadda1f61d..5142c8d1edf 100644
--- a/htdocs/langs/sr_RS/commercial.lang
+++ b/htdocs/langs/sr_RS/commercial.lang
@@ -10,16 +10,16 @@ NewAction=Novi događaj
 AddAction=Kreiraj događaj
 AddAnAction=Kreiraj događaj
 AddActionRendezVous=Kreiraj sastanak
-ConfirmDeleteAction=Are you sure you want to delete this event?
+ConfirmDeleteAction=Da li ste sigurni da želite da obrišete ovaj dogadjaj?
 CardAction=Kartica događaja
-ActionOnCompany=Related company
-ActionOnContact=Related contact
+ActionOnCompany=Povezana kompanija
+ActionOnContact=Povezani kontakt
 TaskRDVWith=Sastanak sa %s
 ShowTask=Prikaži zadatak
 ShowAction=Prikaži događaj
 ActionsReport=Izveštaj događaja
-ThirdPartiesOfSaleRepresentative=Third parties with sales representative
-SaleRepresentativesOfThirdParty=Sales representatives of third party
+ThirdPartiesOfSaleRepresentative=Treća lica sa predstavnikom prodaje
+SaleRepresentativesOfThirdParty=Predstavnici prodaje trećih lica
 SalesRepresentative=Predstavnik prodaje
 SalesRepresentatives=Predstavnici prodaje
 SalesRepresentativeFollowUp=Predstavnik prodaja (kratak opis)
@@ -29,8 +29,8 @@ ShowCustomer=Prikaži klijenta
 ShowProspect=Prikaži prospekta
 ListOfProspects=Lista prospekta
 ListOfCustomers=Lista klijenata
-LastDoneTasks=Latest %s completed actions
-LastActionsToDo=Oldest %s not completed actions
+LastDoneTasks=Najnovije %s završene aktivnosti
+LastActionsToDo=Najstarije %s nezavršene aktivnosti
 DoneAndToDoActions=Završeni i događaji na čekanju
 DoneActions=Završeni događaji
 ToDoActions=Nezavršeni događaji
diff --git a/htdocs/langs/sr_RS/compta.lang b/htdocs/langs/sr_RS/compta.lang
index 26887818c87..2f5b348c8c9 100644
--- a/htdocs/langs/sr_RS/compta.lang
+++ b/htdocs/langs/sr_RS/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Dupliraj porez/doprinos
 ConfirmCloneTax=Potvrdi dupliranje uplate poreza/doprinosa
 CloneTaxForNextMonth=Dupliraj za sledeći mesec
diff --git a/htdocs/langs/sr_RS/ecm.lang b/htdocs/langs/sr_RS/ecm.lang
index 92e00865c23..b924667b261 100644
--- a/htdocs/langs/sr_RS/ecm.lang
+++ b/htdocs/langs/sr_RS/ecm.lang
@@ -32,11 +32,11 @@ ECMDocsByProducts=Dokumenti vezani za proizvode
 ECMDocsByProjects=Dokumenti vezani za projekte
 ECMDocsByUsers=Dokumenti vezani za korisnike
 ECMDocsByInterventions=Dokumenti vezani za intervencije
-ECMDocsByExpenseReports=Documents linked to expense reports
+ECMDocsByExpenseReports=Dokumenta povezana za izveštajem o troškovima
 ECMNoDirectoryYet=Folder nije kreiran
 ShowECMSection=Pokaži folder
 DeleteSection=Obriši folder
-ConfirmDeleteSection=Can you confirm you want to delete the directory <b>%s</b>?
+ConfirmDeleteSection=Da li potvrđjujete da želite da obrišete direktorijum <b>%s</b>?
 ECMDirectoryForFiles=Relativni folder za fajlove
 CannotRemoveDirectoryContainsFiles=Brisanje je nemoguće jer folder sadrži fajlove
 ECMFileManager=File manager
diff --git a/htdocs/langs/sr_RS/errors.lang b/htdocs/langs/sr_RS/errors.lang
index bb1752b10b1..a8b188ae77c 100644
--- a/htdocs/langs/sr_RS/errors.lang
+++ b/htdocs/langs/sr_RS/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=Lozinka je podešena za ovog člana, ali korisnik nije kreiran. To znači da je lozinka sačuvana, ali se član ne može ulogovati na Dolibarr. Informaciju može koristiti neka eksterna komponenta, ali ako nemate potrebe da definišete korisnika/lozinku za članove, možete deaktivirati opciju "Upravljanje lozinkama za svakog člana" u podešavanjima modula Članovi. Ukoliko morate da kreirate login, ali Vam nije potrebna lozinka, ostavite ovo polje prazno da se ovo upozorenje ne bi prikazivalo. Napomena: email može biti korišćen kao login ako je član povezan sa korisnikom.
diff --git a/htdocs/langs/sr_RS/help.lang b/htdocs/langs/sr_RS/help.lang
index 2ab77f5b9d9..43b8cc1f621 100644
--- a/htdocs/langs/sr_RS/help.lang
+++ b/htdocs/langs/sr_RS/help.lang
@@ -11,7 +11,7 @@ TypeOfSupport=Izvor podrške
 TypeSupportCommunauty=Community (besplatno)
 TypeSupportCommercial=Komercijalna
 TypeOfHelp=Tip
-NeedHelpCenter=Need help or support?
+NeedHelpCenter=Potrebna vam je pomoć ili podrška?
 Efficiency=Efikasnost
 TypeHelpOnly=Samo pomoć
 TypeHelpDev=Pomoć+Razvoj
diff --git a/htdocs/langs/sr_RS/install.lang b/htdocs/langs/sr_RS/install.lang
index 654f6b84a4e..670c2ba0ae5 100644
--- a/htdocs/langs/sr_RS/install.lang
+++ b/htdocs/langs/sr_RS/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Login za vlasnika Dolibarr baze.
 PasswordAgain=Ponovo unesite password
 AdminPassword=Password za vlasnika Dolibarr baze.
 CreateDatabase=Kreiraj bazu
-CreateUser=Kreiraj vlasnika
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Server baze - superuser access
 CheckToCreateDatabase=Selektirajte ovu opciju ukoliko baza ne postoji i mora biti kreirana.<br> U ovom slučaju, morate ispuniti login/lozinku superuser-a na dnu ove strane.
-CheckToCreateUser=Selektujte ovu opciju ukoliko baza ne postoji i mora biti kreirana.<br> U ovom slučaju, morate ispuniti login/lozinku superuser-a na dnu ove strane. Ako je odčekirano, vlasnik baze i šifra moraju postojati.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Prijava korisnika dozvoljena da kreira novu bazu ili korisnike, obavezno ako Vaša baza nema svog vlasnika ili ne postoji.
 KeepEmptyIfNoPassword=Ostavite prazno ako user nema password (izbegavajte ovo)
 SaveConfigurationFile=Sačuvaj vrednosti
diff --git a/htdocs/langs/sr_RS/languages.lang b/htdocs/langs/sr_RS/languages.lang
index 9bf5a30b443..683f5b2a8f2 100644
--- a/htdocs/langs/sr_RS/languages.lang
+++ b/htdocs/langs/sr_RS/languages.lang
@@ -12,7 +12,7 @@ Language_de_DE=Nemački
 Language_de_AT=Nemački (Austrija)
 Language_de_CH=Nemački (Švajcarska)
 Language_el_GR=Grčki
-Language_el_CY=Greek (Cyprus)
+Language_el_CY=Grčki (Kipar)
 Language_en_AU=Engleski (Australija)
 Language_en_CA=Engleski (Kanada)
 Language_en_GB=Engleski (UK)
@@ -27,10 +27,10 @@ Language_es_BO=Španski (Bolivija)
 Language_es_CL=Špnski (Čile)
 Language_es_CO=Španski (Kolumbija)
 Language_es_DO=Španski (Dominikanska Republika)
-Language_es_EC=Spanish (Ecuador)
+Language_es_EC=Španski (Ecuador)
 Language_es_HN=Španski (Honduras)
 Language_es_MX=Španski (Meksiko)
-Language_es_PA=Spanish (Panama)
+Language_es_PA=Španski  (Panama)
 Language_es_PY=Španski (Paragvaj)
 Language_es_PE=Španski (Peru)
 Language_es_PR=Španski (Porto Riko)
@@ -53,14 +53,14 @@ Language_is_IS=Islanđanski
 Language_it_IT=Italijanski
 Language_ja_JP=Japanski
 Language_ka_GE=Gruzijski
-Language_km_KH=Khmer
+Language_km_KH=Kmerski
 Language_kn_IN=Kannada
 Language_ko_KR=Koreanski
 Language_lo_LA=Lao
 Language_lt_LT=Litvanski
 Language_lv_LV=Litvanski
 Language_mk_MK=Makedonski
-Language_mn_MN=Mongolian
+Language_mn_MN=Mongolski
 Language_nb_NO=Norveški (Bokmal)
 Language_nl_BE=Holandski (Belgija)
 Language_nl_NL=Holandski (Holandija)
diff --git a/htdocs/langs/sr_RS/ldap.lang b/htdocs/langs/sr_RS/ldap.lang
index be096b550f7..03d48a9253a 100644
--- a/htdocs/langs/sr_RS/ldap.lang
+++ b/htdocs/langs/sr_RS/ldap.lang
@@ -13,10 +13,10 @@ LDAPUsers=Korisnici u LDAP bazi
 LDAPFieldStatus=Status
 LDAPFieldFirstSubscriptionDate=Datum prve prijave
 LDAPFieldFirstSubscriptionAmount=Svota prve prijave
-LDAPFieldLastSubscriptionDate=Latest subscription date
-LDAPFieldLastSubscriptionAmount=Latest subscription amount
+LDAPFieldLastSubscriptionDate=Datum najnovije pretplate
+LDAPFieldLastSubscriptionAmount=Iznos najnovije pretplate
 LDAPFieldSkype=Skype id
-LDAPFieldSkypeExample=Example : skypeName
+LDAPFieldSkypeExample=Primer : skypeName
 UserSynchronized=Korisnik sinhronizovan
 GroupSynchronized=Grupa sinhronizovana
 MemberSynchronized=Član sinhronizovan
diff --git a/htdocs/langs/sr_RS/main.lang b/htdocs/langs/sr_RS/main.lang
index bcc5247a078..1ee98fb1764 100644
--- a/htdocs/langs/sr_RS/main.lang
+++ b/htdocs/langs/sr_RS/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=Fajl je uspešno uploadovan
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=Fajl je selektiran za prilog, ali još uvek nije uploadovan. Klikni na "Priloži fajl".
 NbOfEntries=Br linija
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parametar
 Parameters=Parametri
 Value=Vrednost
 PersonalValue=Lična vrednost
+NewObject=New %s
 NewValue=Nova vrednost
 CurrentValue=Trenutna vrednost
 Code=Kod
@@ -441,6 +443,7 @@ Reporting=Izveštavanje
 Reportings=Izveštavanje
 Draft=Draft
 Drafts=Draft
+StatusInterInvoiced=
 Validated=Validirano
 Opened=Otvoreno
 New=Novo
@@ -727,6 +730,7 @@ SetBankAccount=Definiši bankovni nalog
 AccountCurrency=Valuta naloga
 ViewPrivateNote=Pogledaj beleške
 XMoreLines=%s linija skrivena(o)
+ShowMoreLines=Show more lines
 PublicUrl=Javni UR
 AddBox=Dodaj box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Otvori Home - Podešavanja - Kompanija da biste izmenili logo ili Home - Setup - Prikaz da biste ga sakrili.
 Deny=Odbij
 Denied=Odbijeno
+ListOf=List of %s
 ListOfTemplates=Lista templejtova
 Gender=Pol
 Genderman=Muško
diff --git a/htdocs/langs/sr_RS/members.lang b/htdocs/langs/sr_RS/members.lang
index b845e769a34..2f84db9ac0b 100644
--- a/htdocs/langs/sr_RS/members.lang
+++ b/htdocs/langs/sr_RS/members.lang
@@ -137,8 +137,8 @@ DocForAllMembersCards=Generiši vizit karte za sve članove
 DocForOneMemberCards=Generiši vizit kartu za određenog člana
 DocForLabels=Generiši karticu adrese
 SubscriptionPayment=Uplata pretplate
-LastSubscriptionDate=Latest subscription date
-LastSubscriptionAmount=Latest subscription amount
+LastSubscriptionDate=Datum najnovije pretplate
+LastSubscriptionAmount=Iznos najnovije pretplate
 MembersStatisticsByCountries=Statistike članova po zemlji
 MembersStatisticsByState=Statistike članova po regionu
 MembersStatisticsByTown=Statistike članova po gradu
@@ -151,7 +151,7 @@ MembersByTownDesc=Ovaj ekran pokazuje statistike članova po gradu.
 MembersStatisticsDesc=Izaberite statistike koje želite da konsultujete...
 MenuMembersStats=Statistike
 LastMemberDate=Latest member date
-LatestSubscriptionDate=Latest subscription date
+LatestSubscriptionDate=Datum najnovije pretplate
 Nature=Priroda
 Public=Javne informacije
 NewMemberbyWeb=Novi član je dodat. Čeka se odobrenje.
diff --git a/htdocs/langs/sr_RS/orders.lang b/htdocs/langs/sr_RS/orders.lang
index 9b1a9c415d8..b37dba90d80 100644
--- a/htdocs/langs/sr_RS/orders.lang
+++ b/htdocs/langs/sr_RS/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Oblast narudžbina dobavljača
 OrderCard=Kartica narudžbine
 OrderId=Id narudžbine
 Order=Narudžbina
+PdfOrderTitle=Narudžbina
 Orders=Narudžbine
 OrderLine=Linija narudžbine
 OrderDate=Datum narudžbine
diff --git a/htdocs/langs/sr_RS/other.lang b/htdocs/langs/sr_RS/other.lang
index 7d618cde2d9..089fe6ac3e3 100644
--- a/htdocs/langs/sr_RS/other.lang
+++ b/htdocs/langs/sr_RS/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/sr_RS/propal.lang b/htdocs/langs/sr_RS/propal.lang
index a079269e23f..bc7c3ad4c39 100644
--- a/htdocs/langs/sr_RS/propal.lang
+++ b/htdocs/langs/sr_RS/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Nacrt komercijalne ponude
 ProposalsOpened=Otvorene komercijalne ponude
 Prop=Komercijalne ponude
 CommercialProposal=Komercijaln ponuda
+PdfCommercialProposalTitle=Komercijaln ponuda
 ProposalCard=Kartica ponude
 NewProp=Nova komercijalna ponuda
 NewPropal=Nova ponuda
diff --git a/htdocs/langs/sr_RS/resource.lang b/htdocs/langs/sr_RS/resource.lang
index a05554eb1b1..364bbe5b1f0 100644
--- a/htdocs/langs/sr_RS/resource.lang
+++ b/htdocs/langs/sr_RS/resource.lang
@@ -30,7 +30,7 @@ DictionaryResourceType=Tip resursa
 
 SelectResource=Izbor resursa
 
-IdResource=Id resource
-AssetNumber=Serial number
-ResourceTypeCode=Resource type code
+IdResource=ID broj resursa
+AssetNumber=Serijski broj
+ResourceTypeCode=Kod tipa resursa
 ImportDataset_resource_1=Resursi
diff --git a/htdocs/langs/sr_RS/salaries.lang b/htdocs/langs/sr_RS/salaries.lang
index d533d1ae429..141655b70ad 100644
--- a/htdocs/langs/sr_RS/salaries.lang
+++ b/htdocs/langs/sr_RS/salaries.lang
@@ -1,15 +1,15 @@
 # Dolibarr language file - Source file is en_US - salaries
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
-SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Konto koji se koristi za korisnike trećih lica
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
+SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Podrazumevani konto za troškove zaposlenih
 Salary=Plata
 Salaries=Plate
 NewSalaryPayment=Nova isplata zarade
 SalaryPayment=Isplata zarade
 SalariesPayments=Isplate zarada
 ShowSalaryPayment=Prikaži isplatu zarade
-THM=Average hourly rate
-TJM=Average daily rate
+THM=Prosečna cena sata
+TJM=Prosečna cena dana
 CurrentSalary=Trenutna plata
 THMDescription=Ova vrednost može biti korišćena za procenu cene vremena provedenog na projektu koje su korisnici uneli (ukoliko se koristi modul projekti)
 TJMDescription=Ova vrednost se trenutno koristi samo informativno i ne uzima se u obzir ni za koji obračun.
diff --git a/htdocs/langs/sr_RS/sms.lang b/htdocs/langs/sr_RS/sms.lang
index e050ad2e9a8..53fcdfe232c 100644
--- a/htdocs/langs/sr_RS/sms.lang
+++ b/htdocs/langs/sr_RS/sms.lang
@@ -38,7 +38,7 @@ SmsStatusNotSent=Nije poslat
 SmsSuccessfulySent=SMS uspešno poslat (od %s do %s)
 ErrorSmsRecipientIsEmpty=Broj targeta je prazan
 WarningNoSmsAdded=Nema novih brojeva za dodavanje na listu targeta
-ConfirmValidSms=Do you confirm validation of this campain?
+ConfirmValidSms=Da li potvrdjujete ispravnost ove kampanje?
 NbOfUniqueSms=Br. jedinstvenih brojeva telefona
 NbOfSms=Br. brojeva telefona
 ThisIsATestMessage=Ovo je test poruka
diff --git a/htdocs/langs/sr_RS/workflow.lang b/htdocs/langs/sr_RS/workflow.lang
index 57461da3e34..e8b48d5c4ef 100644
--- a/htdocs/langs/sr_RS/workflow.lang
+++ b/htdocs/langs/sr_RS/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Podešavanja modula Workflow
 WorkflowDesc=Ovaj modul je namenjen za izmene automatskih akcija u aplikaciji. Po defaultu, workflow je otvoren (možete vršiti akcije redosledom kojim poželite). Možete aktivirati automatske akcije koje Vas interesuju.
 ThereIsNoWorkflowToModify=Nema mogućih izmena workflow-a u aktiviranim modulima.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatski kreiraj narudžbinu klijenta nakon potpisivanja komercijalne ponude.
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatski kreiraj fakturu klijenta posle potpisivanja komercijalne ponude
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatski kreiraj fakturu klijenta posle potvrde ugovora
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatski kreiraj fakturu klijenta posle posle zatvaranja narudžbine klijenta
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Označi komercijalnu ponudu kao naplaćenu kada se narudžbina klijenta označi kao plaćena.
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Označi komerijalnu(e) ponudu(e) kao naplaćenu(e) kada je račun klijenta označen kao plaćen.
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Označi komerijalnu(e) ponudu(e) kao naplaćenu(e) kada je račun klijenta označen kao potvrđen.
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
-AutomaticCreation=Automatic creation
-AutomaticClassification=Automatic classification
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
+AutomaticCreation=Automatsko kriranje
+AutomaticClassification=Automatsko klasifikovanje
diff --git a/htdocs/langs/sv_SE/accountancy.lang b/htdocs/langs/sv_SE/accountancy.lang
index 75401e85380..4ec3734ce2a 100644
--- a/htdocs/langs/sv_SE/accountancy.lang
+++ b/htdocs/langs/sv_SE/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=Förteckning över redovisningskonton
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Klass konto
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Fel, du kan inte ta bort denna redovisningskonto eftersom den används
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Kod
 Nature=Naturen
 AccountingJournalType1=Various operation
 AccountingJournalType2=Försäljning
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Export
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Modell av export
 OptionsDeactivatedForThisExportModel=För denna exportmodell är tillval inaktiverade
diff --git a/htdocs/langs/sv_SE/admin.lang b/htdocs/langs/sv_SE/admin.lang
index 290488de7ac..dfa625d1f9a 100644
--- a/htdocs/langs/sv_SE/admin.lang
+++ b/htdocs/langs/sv_SE/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Systemverktyg område
 SystemToolsAreaDesc=Detta område ger förvaltningen funktioner. Använd menyn för att välja den funktion du letar efter.
 Purge=Rensa
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Ta bort alla filer i katalogen <b>%s.</b> Temporära filer utan även säkerhetskopiering av databaser soptippar, filer som bifogats till element (tredje part, fakturor ...) och in i det ECM-modulen kommer att raderas.
 PurgeRunNow=Rensa nu
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> filer eller kataloger bort.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Rensa alla evenemang
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Skapa backup
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=För detta steg kan du skicka paket med det här verktyget: Välj modulfil
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr nuvarande version
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Leverantör kommersiell förslag
 Module1120Desc=Begär leverantör kommersiella förslag och priser
 Module1200Name=Mantis
 Module1200Desc=Mantis integration
-Module1400Name=Bokföring
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Dokument Generation
 Module1520Desc=Mass post dokumentgenerering
 Module1780Name=Taggar/Kategorier
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Modul för att erbjuda en online-betalning sidan med kreditkort med Paypal
 Module50400Name=Redovisning (avancerad)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direktutskrift (utan att öppna dokumenten) använder Cups IPP-gränssnitt (skrivare måste vara synlig från servern, och CUPS måste vara installerad på servern).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Läs rabatter
 Permission402=Skapa / ändra rabatter
 Permission403=Validate rabatter
 Permission404=Ta bort rabatter
-Permission510=Läs Löner
-Permission512=Skapa / ändra löner
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Radera löner
 Permission517=Export löner
 Permission520=Läs Lån
@@ -1057,7 +1058,7 @@ RestoreDesc2=Återställa arkivfil (zip-fil till exempel) av dokumentkatalog fö
 RestoreDesc3=Återställa data från en backup dumpfilen, i databasen av den nya Dolibarr installationen eller i databasen av den nuvarande anläggningen <b>(%s).</b> Varning, när återställningen är klar, måste du använda en användarnamn / lösenord, som fanns när säkerhetskopian gjordes, för att ansluta igen. Om du vill återställa en backup databas i detta aktuella installationen, kan du följa den här assistent.
 RestoreMySQL=MySQL import
 ForcedToByAModule= Denna regel tvingas <b>%s</b> av en aktiverad modul
-PreviousDumpFiles=Tillgänglig databas backup dumpfiler
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=Första dagen i veckan
 RunningUpdateProcessMayBeRequired=Kör uppgraderingsprocessen verkar krävas (Program version %s skiljer sig från %s databas version)
 YouMustRunCommandFromCommandLineAfterLoginToUser=Du måste köra det här kommandot från kommandoraden efter login till ett skal med användare <b>%s.</b>
diff --git a/htdocs/langs/sv_SE/banks.lang b/htdocs/langs/sv_SE/banks.lang
index 301a03b89de..012219909fb 100644
--- a/htdocs/langs/sv_SE/banks.lang
+++ b/htdocs/langs/sv_SE/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/sv_SE/bills.lang b/htdocs/langs/sv_SE/bills.lang
index 572b13773f6..09ee99133bc 100644
--- a/htdocs/langs/sv_SE/bills.lang
+++ b/htdocs/langs/sv_SE/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Faktura kort
 PredefinedInvoices=Fördefinierade fakturor
 Invoice=Faktura
+PdfInvoiceTitle=Faktura
 Invoices=Fakturor
 InvoiceLine=Faktura linje
 InvoiceCustomer=Kundfaktura
diff --git a/htdocs/langs/sv_SE/compta.lang b/htdocs/langs/sv_SE/compta.lang
index d06bba823ce..f0f6fe1a2ea 100644
--- a/htdocs/langs/sv_SE/compta.lang
+++ b/htdocs/langs/sv_SE/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Klona det för nästa månad
diff --git a/htdocs/langs/sv_SE/errors.lang b/htdocs/langs/sv_SE/errors.lang
index 530c61834a4..0535a643441 100644
--- a/htdocs/langs/sv_SE/errors.lang
+++ b/htdocs/langs/sv_SE/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/sv_SE/install.lang b/htdocs/langs/sv_SE/install.lang
index 2f908fa6051..c41807607ea 100644
--- a/htdocs/langs/sv_SE/install.lang
+++ b/htdocs/langs/sv_SE/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Logga in för Dolibarr databas ägaren.
 PasswordAgain=Skriv lösenordet en andra gång
 AdminPassword=Lösenord för Dolibarr databas ägaren.
 CreateDatabase=Skapa databas
-CreateUser=Skapa ägare
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Databasserver - superanvändare tillgång
 CheckToCreateDatabase=Kryssrutan om databasen inte existerar och måste skapas. <br> I så fall måste du fylla i login / lösenord för superanvändare konto längst ner på denna sida.
-CheckToCreateUser=Kryssrutan om databas ägaren inte existerar och måste skapas. <br> I så fall måste du välja sin inloggning och lösenord och fylla i användarnamn / lösenord för superanvändaren konto längst ner på denna sida. Om denna ruta är markerad, ägare databas och lösenord måste finns.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Logga in på användaren möjlighet att skapa nya databaser eller nya användare, värdelösa om din databas och databasen inloggning redan finns (som när du är värd ett webbhotell leverantör).
 KeepEmptyIfNoPassword=Lämna tomt om användaren har inget lösenord (undvik detta)
 SaveConfigurationFile=Spara värden
diff --git a/htdocs/langs/sv_SE/main.lang b/htdocs/langs/sv_SE/main.lang
index 8b3e5c261ca..3c5fd70c084 100644
--- a/htdocs/langs/sv_SE/main.lang
+++ b/htdocs/langs/sv_SE/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=Filen har laddats upp
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=En fil är vald att bifogas, men har ännu inte laddats upp. Klicka på 'Bifoga fil' för detta.
 NbOfEntries=Antal värden
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parameter
 Parameters=Parametrar
 Value=Värde
 PersonalValue=Personlig värde
+NewObject=New %s
 NewValue=Nytt värde
 CurrentValue=Aktuellt värde
 Code=Kod
@@ -441,6 +443,7 @@ Reporting=Rapportering
 Reportings=Rapportering
 Draft=Utkast
 Drafts=Utkast
+StatusInterInvoiced=
 Validated=Validerad
 Opened=Öppen
 New=Ny
@@ -727,6 +730,7 @@ SetBankAccount=Definiera bankkonto
 AccountCurrency=Konto valuta
 ViewPrivateNote=Se noter
 XMoreLines=%s rader osynliga
+ShowMoreLines=Show more lines
 PublicUrl=Offentlig webbadress
 AddBox=Lägg till låda
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gender
 Genderman=Man
diff --git a/htdocs/langs/sv_SE/modulebuilder.lang b/htdocs/langs/sv_SE/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/sv_SE/modulebuilder.lang
+++ b/htdocs/langs/sv_SE/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/sv_SE/orders.lang b/htdocs/langs/sv_SE/orders.lang
index 0ac9d32be48..172224a1ffb 100644
--- a/htdocs/langs/sv_SE/orders.lang
+++ b/htdocs/langs/sv_SE/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Leverantörer order område
 OrderCard=Beställ kort
 OrderId=Order Id
 Order=Beställ
+PdfOrderTitle=Beställ
 Orders=Beställningar
 OrderLine=Orderrad
 OrderDate=Beställ datum
diff --git a/htdocs/langs/sv_SE/other.lang b/htdocs/langs/sv_SE/other.lang
index 0f19e535c4a..8ed24e076e7 100644
--- a/htdocs/langs/sv_SE/other.lang
+++ b/htdocs/langs/sv_SE/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/sv_SE/propal.lang b/htdocs/langs/sv_SE/propal.lang
index c5079a8e914..dcfc26254d0 100644
--- a/htdocs/langs/sv_SE/propal.lang
+++ b/htdocs/langs/sv_SE/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Utkast till kommersiella förslag
 ProposalsOpened=Open commercial proposals
 Prop=Kommersiella förslag
 CommercialProposal=Kommersiella förslag
+PdfCommercialProposalTitle=Kommersiella förslag
 ProposalCard=Förslaget kortet
 NewProp=Nya kommersiella förslag
 NewPropal=Nytt förslag
diff --git a/htdocs/langs/sv_SE/salaries.lang b/htdocs/langs/sv_SE/salaries.lang
index bac8110de86..b5bce54de49 100644
--- a/htdocs/langs/sv_SE/salaries.lang
+++ b/htdocs/langs/sv_SE/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Lön
 Salaries=Löner
diff --git a/htdocs/langs/sv_SE/website.lang b/htdocs/langs/sv_SE/website.lang
index c438cb78f6f..eda58a168a6 100644
--- a/htdocs/langs/sv_SE/website.lang
+++ b/htdocs/langs/sv_SE/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/sv_SE/workflow.lang b/htdocs/langs/sv_SE/workflow.lang
index c9b56e71b5c..dd26e6969e7 100644
--- a/htdocs/langs/sv_SE/workflow.lang
+++ b/htdocs/langs/sv_SE/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Arbetsflöde modul konfiguration
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Klassificera länkad förslag källa att faktureras när kundorder är inställd på betald
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Klassificera länkade källa kundorder (s) för att faktureras när kundfaktura är inställd på betald
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Klassificera länkade källa kundorder (s) för att faktureras när kundfaktura valideras
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/sw_SW/accountancy.lang b/htdocs/langs/sw_SW/accountancy.lang
index d239f259a94..a7176d2e55f 100644
--- a/htdocs/langs/sw_SW/accountancy.lang
+++ b/htdocs/langs/sw_SW/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Code
 Nature=Nature
 AccountingJournalType1=Various operation
 AccountingJournalType2=Sales
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exports
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model of export
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/sw_SW/admin.lang b/htdocs/langs/sw_SW/admin.lang
index a443d04f35d..8dba7af0e0b 100644
--- a/htdocs/langs/sw_SW/admin.lang
+++ b/htdocs/langs/sw_SW/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=System tools area
 SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for.
 Purge=Purge
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory <b>%s</b>. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted.
 PurgeRunNow=Purge now
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> files or directories deleted.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Purge all security events
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Generate backup
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr current version
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Mantis integration
-Module1400Name=Accounting
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Module to offer an online payment page by credit card with Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Read discounts
 Permission402=Create/modify discounts
 Permission403=Validate discounts
 Permission404=Delete discounts
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
-PreviousDumpFiles=Available database backup dump files
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=First day of week
 RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user <b>%s</b> or you must add -W option at end of command line to provide <b>%s</b> password.
diff --git a/htdocs/langs/sw_SW/banks.lang b/htdocs/langs/sw_SW/banks.lang
index ba42f9a4c83..9bce7b9e29a 100644
--- a/htdocs/langs/sw_SW/banks.lang
+++ b/htdocs/langs/sw_SW/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/sw_SW/bills.lang b/htdocs/langs/sw_SW/bills.lang
index 1e83ba9b2d1..6bcd2464c1c 100644
--- a/htdocs/langs/sw_SW/bills.lang
+++ b/htdocs/langs/sw_SW/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Invoice card
 PredefinedInvoices=Predefined Invoices
 Invoice=Invoice
+PdfInvoiceTitle=Invoice
 Invoices=Invoices
 InvoiceLine=Invoice line
 InvoiceCustomer=Customer invoice
diff --git a/htdocs/langs/sw_SW/compta.lang b/htdocs/langs/sw_SW/compta.lang
index 94a3bd671ef..f8b5b683cb8 100644
--- a/htdocs/langs/sw_SW/compta.lang
+++ b/htdocs/langs/sw_SW/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/sw_SW/errors.lang b/htdocs/langs/sw_SW/errors.lang
index feada2d1b5a..853a34b4bb4 100644
--- a/htdocs/langs/sw_SW/errors.lang
+++ b/htdocs/langs/sw_SW/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/sw_SW/install.lang b/htdocs/langs/sw_SW/install.lang
index a3533a31277..5b6ba06e78a 100644
--- a/htdocs/langs/sw_SW/install.lang
+++ b/htdocs/langs/sw_SW/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner.
 PasswordAgain=Retype password a second time
 AdminPassword=Password for Dolibarr database owner.
 CreateDatabase=Create database
-CreateUser=Create owner
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Database server - Superuser access
 CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
-CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
 KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
 SaveConfigurationFile=Save values
diff --git a/htdocs/langs/sw_SW/main.lang b/htdocs/langs/sw_SW/main.lang
index 3401829afa2..ec019cbe3bf 100644
--- a/htdocs/langs/sw_SW/main.lang
+++ b/htdocs/langs/sw_SW/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=The file was successfully uploaded
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
 NbOfEntries=Nb of entries
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parameter
 Parameters=Parameters
 Value=Value
 PersonalValue=Personal value
+NewObject=New %s
 NewValue=New value
 CurrentValue=Current value
 Code=Code
@@ -441,6 +443,7 @@ Reporting=Reporting
 Reportings=Reporting
 Draft=Draft
 Drafts=Drafts
+StatusInterInvoiced=
 Validated=Validated
 Opened=Open
 New=New
@@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account
 AccountCurrency=Account Currency
 ViewPrivateNote=View notes
 XMoreLines=%s line(s) hidden
+ShowMoreLines=Show more lines
 PublicUrl=Public URL
 AddBox=Add box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gender
 Genderman=Man
diff --git a/htdocs/langs/sw_SW/orders.lang b/htdocs/langs/sw_SW/orders.lang
index 331e3b49d3e..0c59b4f4ada 100644
--- a/htdocs/langs/sw_SW/orders.lang
+++ b/htdocs/langs/sw_SW/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area
 OrderCard=Order card
 OrderId=Order Id
 Order=Order
+PdfOrderTitle=Order
 Orders=Orders
 OrderLine=Order line
 OrderDate=Order date
diff --git a/htdocs/langs/sw_SW/other.lang b/htdocs/langs/sw_SW/other.lang
index e15d490c0f2..e519f7af405 100644
--- a/htdocs/langs/sw_SW/other.lang
+++ b/htdocs/langs/sw_SW/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/sw_SW/propal.lang b/htdocs/langs/sw_SW/propal.lang
index 3fdb379c5a2..271fb44ac40 100644
--- a/htdocs/langs/sw_SW/propal.lang
+++ b/htdocs/langs/sw_SW/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals
 ProposalsOpened=Open commercial proposals
 Prop=Commercial proposals
 CommercialProposal=Commercial proposal
+PdfCommercialProposalTitle=Commercial proposal
 ProposalCard=Proposal card
 NewProp=New commercial proposal
 NewPropal=New proposal
diff --git a/htdocs/langs/sw_SW/salaries.lang b/htdocs/langs/sw_SW/salaries.lang
index 522bf0a65d7..7e0c80d3380 100644
--- a/htdocs/langs/sw_SW/salaries.lang
+++ b/htdocs/langs/sw_SW/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Salary
 Salaries=Salaries
diff --git a/htdocs/langs/sw_SW/workflow.lang b/htdocs/langs/sw_SW/workflow.lang
index 54246856e9b..8021fb9b198 100644
--- a/htdocs/langs/sw_SW/workflow.lang
+++ b/htdocs/langs/sw_SW/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Workflow module setup
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/th_TH/accountancy.lang b/htdocs/langs/th_TH/accountancy.lang
index 873a6ed9982..bdc3962d4c2 100644
--- a/htdocs/langs/th_TH/accountancy.lang
+++ b/htdocs/langs/th_TH/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=รายการบัญชีที่บัญชี
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=ชั้นบัญชี
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=ข้อผิดพลาดที่คุณไม่สามารถลบบัญชีบัญชีนี้เพราะมันถูกนำมาใช้
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=รหัส
 Nature=ธรรมชาติ
 AccountingJournalType1=Various operation
 AccountingJournalType2=ขาย
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=การส่งออก
-Export=ส่งออก
 ExportDraftJournal=Export draft journal
 Modelcsv=รูปแบบของการส่งออก
 OptionsDeactivatedForThisExportModel=สำหรับรูปแบบการส่งออกนี้ตัวเลือกที่จะปิดการใช้งาน
diff --git a/htdocs/langs/th_TH/admin.lang b/htdocs/langs/th_TH/admin.lang
index 4b9dac420bb..6978ad4abac 100644
--- a/htdocs/langs/th_TH/admin.lang
+++ b/htdocs/langs/th_TH/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=พื้นที่เครื่องมือของร
 SystemToolsAreaDesc=บริเวณนี้มีคุณสมบัติการบริหาร ใช้เมนูเพื่อเลือกคุณลักษณะที่คุณกำลังมองหา
 Purge=ล้าง
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=<b>ลบไฟล์ทั้งหมดในไดเรกทอรี%</b> s แฟ้มชั่วคราว แต่ยังทิ้งการสำรองฐานข้อมูลไฟล์ที่แนบมากับองค์ประกอบ (บุคคลที่สาม, ใบแจ้งหนี้, ... ) และอัปโหลดลงในโมดูล ECM จะถูกลบออก
 PurgeRunNow=ล้างในขณะนี้
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>% ไฟล์หรือไดเรกทอรีลบ</b>
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=ล้างทุกเหตุการณ์การรักษาความปลอดภัย
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=สร้างการสำรองข้อมูล
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=สำหรับขั้นตอนนี้คุณสามารถส่งแพคเกจการใช้เครื่องมือนี้: เลือกไฟล์โมดูล
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=รุ่นปัจจุบัน Dolibarr
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=ข้อเสนอในเชิงพาณิชย์ผ
 Module1120Desc=ขอข้อเสนอในเชิงพาณิชย์ผู้จัดจำหน่ายและราคา
 Module1200Name=ตั๊กแตนตำข้าว
 Module1200Desc=บูรณาการตั๊กแตนตำข้าว
-Module1400Name=การบัญชี
-Module1400Desc=Accounting management (double entries)
 Module1520Name=การสร้างเอกสาร
 Module1520Desc=สร้างเอกสารอีเมล์จำนวนมาก
 Module1780Name=แท็ก / หมวดหมู่
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=โมดูลที่จะนำเสนอหน้าการชำระเงินออนไลน์ผ่านบัตรเครดิตกับ Paypal
 Module50400Name=บัญชี (ขั้นสูง)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=พิมพ์โดยตรง (โดยไม่ต้องเปิดเอกสาร) โดยใช้อินเตอร์เฟซถ้วยไอพีพี (เครื่องพิมพ์จะต้องมองเห็นจากเซิร์ฟเวอร์และ CUPS จะต้อง installe บนเซิร์ฟเวอร์)
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=อ่านส่วนลด
 Permission402=สร้าง / แก้ไขส่วนลด
 Permission403=ตรวจสอบส่วนลด
 Permission404=ลบส่วนลด
-Permission510=อ่านเงินเดือน
-Permission512=สร้าง / แก้ไขเงินเดือน
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=ลบเงินเดือน
 Permission517=เงินเดือนส่งออก
 Permission520=อ่านสินเชื่อ
@@ -1057,7 +1058,7 @@ RestoreDesc2=เรียกคืนไฟล์ที่เก็บถาว
 RestoreDesc3=เรียกคืนข้อมูลจากแฟ้มการถ่ายโอนข้อมูลการสำรองข้อมูลลงในฐานข้อมูลของการติดตั้ง Dolibarr ใหม่หรือลงในฐานข้อมูลของการติดตั้งปัจจุบันนี้ <b>(% s)</b> คำเตือนเมื่อคืนเสร็จแล้วคุณต้องใช้เข้าสู่ระบบ / รหัสผ่านที่มีอยู่เมื่อการสำรองข้อมูลที่ถูกสร้างขึ้นเพื่อเชื่อมต่ออีกครั้ง เพื่อเรียกคืนฐานข้อมูลสำรองลงในนี้ติดตั้งปัจจุบันคุณสามารถทำตามนี้ช่วย
 RestoreMySQL=นำเข้า MySQL
 ForcedToByAModule= <b>กฎนี้ถูกบังคับให้% โดยการเปิดใช้งานโมดูล</b>
-PreviousDumpFiles=แฟ้มการถ่ายโอนการสำรองฐานข้อมูลที่มีจำหน่าย
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=วันแรกของสัปดาห์
 RunningUpdateProcessMayBeRequired=ใช้กระบวนการอัพเกรดน่าจะเป็นที่ต้องการ (รุ่น% s โปรแกรมที่แตกต่างจากเวอร์ชั่นฐานข้อมูล%)
 YouMustRunCommandFromCommandLineAfterLoginToUser=<b>คุณต้องเรียกใช้คำสั่งจากบรรทัดคำสั่งนี้หลังจากที่เข้าสู่ระบบไปยังเปลือกกับผู้ใช้% s</b> หรือคุณต้องเพิ่มตัวเลือก -W <b>ที่ท้ายบรรทัดคำสั่งที่จะให้รหัสผ่าน% s</b>
diff --git a/htdocs/langs/th_TH/banks.lang b/htdocs/langs/th_TH/banks.lang
index a9cac62a41a..a3aaae9e91a 100644
--- a/htdocs/langs/th_TH/banks.lang
+++ b/htdocs/langs/th_TH/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/th_TH/bills.lang b/htdocs/langs/th_TH/bills.lang
index 2fbf362d83f..cb2e61d7f4c 100644
--- a/htdocs/langs/th_TH/bills.lang
+++ b/htdocs/langs/th_TH/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=การ์ดใบแจ้งหนี้
 PredefinedInvoices=ใบแจ้งหนี้ที่กำหนดไว้ล่วงหน้า
 Invoice=ใบกำกับสินค้า
+PdfInvoiceTitle=ใบกำกับสินค้า
 Invoices=ใบแจ้งหนี้
 InvoiceLine=เส้นใบแจ้งหนี้
 InvoiceCustomer=ใบแจ้งหนี้ของลูกค้า
diff --git a/htdocs/langs/th_TH/compta.lang b/htdocs/langs/th_TH/compta.lang
index d25fbd36226..0e39a5ba73e 100644
--- a/htdocs/langs/th_TH/compta.lang
+++ b/htdocs/langs/th_TH/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=โคลนสังคม / ภาษีการคลัง
 ConfirmCloneTax=ยืนยันโคลนของสังคม / ชำระภาษีการคลัง
 CloneTaxForNextMonth=โคลนมันสำหรับเดือนถัดไป
diff --git a/htdocs/langs/th_TH/errors.lang b/htdocs/langs/th_TH/errors.lang
index c7b6db36de1..7692715be7c 100644
--- a/htdocs/langs/th_TH/errors.lang
+++ b/htdocs/langs/th_TH/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/th_TH/install.lang b/htdocs/langs/th_TH/install.lang
index a00733703ff..bc2ed953086 100644
--- a/htdocs/langs/th_TH/install.lang
+++ b/htdocs/langs/th_TH/install.lang
@@ -53,10 +53,10 @@ AdminLogin=เข้าสู่ระบบฐานข้อมูลสำห
 PasswordAgain=พิมพ์รหัสผ่านเป็นครั้งที่สอง
 AdminPassword=รหัสผ่านสำหรับเจ้าของฐานข้อมูล Dolibarr
 CreateDatabase=สร้างฐานข้อมูล
-CreateUser=สร้างเจ้าของ
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=เซิร์ฟเวอร์ฐานข้อมูล - การเข้าถึง Superuser
 CheckToCreateDatabase=กล่องตรวจสอบว่าฐานข้อมูลไม่ได้อยู่และจะต้องสร้างขึ้น <br> ในกรณีนี้คุณต้องกรอกข้อมูลเข้าสู่ระบบ / รหัสผ่านสำหรับบัญชี superuser ที่ด้านล่างของหน้านี้
-CheckToCreateUser=กล่องตรวจสอบว่าเจ้าของฐานข้อมูลไม่ได้อยู่และจะต้องสร้างขึ้น <br> ในกรณีนี้คุณต้องเลือกล็อกอินและรหัสผ่านและยังเติมเต็มการเข้าสู่ระบบ / รหัสผ่านสำหรับบัญชี superuser ที่ด้านล่างของหน้านี้ ถ้ากล่องนี้จะไม่ถูกตรวจสอบฐานข้อมูลเจ้าของและรหัสผ่านที่จะต้องมีอยู่
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=เข้าสู่ระบบของผู้ใช้ที่ได้รับอนุญาตในการสร้างฐานข้อมูลใหม่หรือผู้ใช้ใหม่บังคับถ้าฐานข้อมูลหรือเจ้าของของคุณไม่ได้อยู่แล้ว
 KeepEmptyIfNoPassword=ปล่อยว่างไว้ถ้าผู้ใช้มีรหัสผ่านไม่ (หลีกเลี่ยงปัญหานี้)
 SaveConfigurationFile=ประหยัดค่า
diff --git a/htdocs/langs/th_TH/main.lang b/htdocs/langs/th_TH/main.lang
index 97657f0c292..99aa35f04ae 100644
--- a/htdocs/langs/th_TH/main.lang
+++ b/htdocs/langs/th_TH/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=ไฟล์อัพโหลดประสบความสำเร็จ
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=ไฟล์ที่ถูกเลือกสำหรับสิ่งที่แนบมา แต่ยังไม่ได้อัปโหลดยัง คลิกที่ "แนบไฟล์" สำหรับเรื่องนี้
 NbOfEntries=nb ของรายการ
 GoToWikiHelpPage=อ่านความช่วยเหลือออนไลน์ (อินเทอร์เน็ตจำเป็น)
@@ -196,6 +197,7 @@ Parameter=พารามิเตอร์
 Parameters=พารามิเตอร์
 Value=มูลค่า
 PersonalValue=ค่าส่วนบุคคล
+NewObject=New %s
 NewValue=ค่าใหม่
 CurrentValue=มูลค่าปัจจุบัน
 Code=รหัส
@@ -441,6 +443,7 @@ Reporting=การรายงาน
 Reportings=การรายงาน
 Draft=ร่าง
 Drafts=ร่าง
+StatusInterInvoiced=
 Validated=ผ่านการตรวจสอบ
 Opened=เปิด
 New=ใหม่
@@ -727,6 +730,7 @@ SetBankAccount=กำหนดบัญชีธนาคาร
 AccountCurrency=สกุลเงินในบัญชี
 ViewPrivateNote=ดูบันทึก
 XMoreLines=% s สาย (s) ซ่อน
+ShowMoreLines=Show more lines
 PublicUrl=URL ที่สาธารณะ
 AddBox=เพิ่มกล่อง
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=ไปลงในหน้าหลัก - การติดตั้ง - บริษัท ที่จะเปลี่ยนโลโก้หรือไปลงในหน้าแรก - การติดตั้ง - จอแสดงผลที่จะซ่อน
 Deny=ปฏิเสธ
 Denied=ปฏิเสธ
+ListOf=List of %s
 ListOfTemplates=รายชื่อของแม่แบบ
 Gender=Gender
 Genderman=คน
diff --git a/htdocs/langs/th_TH/modulebuilder.lang b/htdocs/langs/th_TH/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/th_TH/modulebuilder.lang
+++ b/htdocs/langs/th_TH/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/th_TH/multicurrency.lang b/htdocs/langs/th_TH/multicurrency.lang
index b8ed714c199..a529b8b73bb 100644
--- a/htdocs/langs/th_TH/multicurrency.lang
+++ b/htdocs/langs/th_TH/multicurrency.lang
@@ -4,7 +4,8 @@ ErrorAddRateFail=Error in added rate
 ErrorAddCurrencyFail=Error in added currency
 ErrorDeleteCurrencyFail=Error delete fail
 multicurrency_syncronize_error=Synchronisation error: %s
-multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate)
+MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate
+multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate)
 CurrencyLayerAccount=CurrencyLayer API
 CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality<br />Get your <b>API key</b><br />If you use a free account you can't change the <b>currency source</b> (USD by default)<br />But if your main currency isn't USD you can use the <b>alternate currency source</b> to force you main currency<br /><br />You are limited at 1000 synchronizations per month
 multicurrency_appId=API key
diff --git a/htdocs/langs/th_TH/orders.lang b/htdocs/langs/th_TH/orders.lang
index c26ea4f4a7d..5fc83980b9d 100644
--- a/htdocs/langs/th_TH/orders.lang
+++ b/htdocs/langs/th_TH/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=ซัพพลายเออร์ในพื้นที
 OrderCard=สั่งซื้อบัตร
 OrderId=รหัสการสั่งซื้อ
 Order=สั่งซื้อ
+PdfOrderTitle=สั่งซื้อ
 Orders=คำสั่งซื้อ
 OrderLine=สายการสั่งซื้อ
 OrderDate=วันที่สั่งซื้อ
diff --git a/htdocs/langs/th_TH/other.lang b/htdocs/langs/th_TH/other.lang
index 0f68d12f808..92c36d3f7c8 100644
--- a/htdocs/langs/th_TH/other.lang
+++ b/htdocs/langs/th_TH/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/th_TH/propal.lang b/htdocs/langs/th_TH/propal.lang
index cf796f07b15..4a77a0439a6 100644
--- a/htdocs/langs/th_TH/propal.lang
+++ b/htdocs/langs/th_TH/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=ข้อเสนอในเชิงพาณิชย์ร
 ProposalsOpened=ข้อเสนอในเชิงพาณิชย์เปิด
 Prop=ข้อเสนอเชิงพาณิชย์
 CommercialProposal=ข้อเสนอเชิงพาณิชย์
+PdfCommercialProposalTitle=ข้อเสนอเชิงพาณิชย์
 ProposalCard=การ์ดเสนอ
 NewProp=ข้อเสนอในเชิงพาณิชย์ใหม่
 NewPropal=ข้อเสนอใหม่
diff --git a/htdocs/langs/th_TH/salaries.lang b/htdocs/langs/th_TH/salaries.lang
index ee4ab455cdf..59f4f029c49 100644
--- a/htdocs/langs/th_TH/salaries.lang
+++ b/htdocs/langs/th_TH/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=เงินเดือน
 Salaries=เงินเดือน
diff --git a/htdocs/langs/th_TH/website.lang b/htdocs/langs/th_TH/website.lang
index da3d59a2455..75f6e009476 100644
--- a/htdocs/langs/th_TH/website.lang
+++ b/htdocs/langs/th_TH/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/th_TH/workflow.lang b/htdocs/langs/th_TH/workflow.lang
index 7e8d731eab7..707ec4bc5cd 100644
--- a/htdocs/langs/th_TH/workflow.lang
+++ b/htdocs/langs/th_TH/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=เวิร์กโฟลว์การติดตั้งโมดูล
 WorkflowDesc=โมดูลนี้ถูกออกแบบมาเพื่อปรับเปลี่ยนพฤติกรรมของการกระทำโดยอัตโนมัติลงในใบสมัคร โดยค่าเริ่มต้นขั้นตอนการทำงานจะเปิด (คุณสามารถทำสิ่งที่อยู่ในลำดับที่คุณต้องการ) คุณสามารถเปิดใช้การกระทำโดยอัตโนมัติคุณมีความสนใจใน
 ThereIsNoWorkflowToModify=ไม่มีการปรับเปลี่ยนขั้นตอนการทำงานที่มีอยู่กับโมดูลเปิดใช้งานคือ
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=โดยอัตโนมัติสร้างคำสั่งของลูกค้าหลังจากที่ข้อเสนอในเชิงพาณิชย์มีการลงนาม
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=จำแนกข้อเสนอแหล่งที่มาเชื่อมโยงกับการเรียกเก็บเงินเมื่อสั่งซื้อของลูกค้ามีการตั้งค่าที่จะจ่ายเงิน
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=จำแนกแหล่งที่มาสั่งซื้อของลูกค้าที่เชื่อมโยง (s) เพื่อเรียกเก็บเงินเมื่อใบแจ้งหนี้ลูกค้าถูกตั้งค่าให้จ่าย
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=จำแนกแหล่งที่มาสั่งซื้อของลูกค้าที่เชื่อมโยง (s) เพื่อเรียกเก็บเงินเมื่อใบแจ้งหนี้ของลูกค้าจะถูกตรวจสอบ
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/tr_TR/accountancy.lang b/htdocs/langs/tr_TR/accountancy.lang
index 539c7516b9d..13ed5ef1099 100644
--- a/htdocs/langs/tr_TR/accountancy.lang
+++ b/htdocs/langs/tr_TR/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Diğer Bilgiler
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Hesap bakiyesi
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Bağlanacak fatura satırları
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Muhasebe hesabına başarıyla bağlandı
 NotVentilatedinAccount=Muhasebe hesabına bağlı değil
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Her sayfada gösterilen bağlanacak öğe sayısı (ençok önerilen: 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Gider raporları günlüğü
 DescFinanceJournal=Banka hesabından yapılan tüm ödeme türlerini içeren finans günlüğü
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=Üçüncü taraf hesabını listele
 DescThirdPartyReport=Burada üçüncü taraf müşterileri ve tedarikçileri ile onların muhasebe hesaplarının listesine bakın
 ListAccounts=Muhasebe hesapları listesi
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Hesap sınıfı
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Hata, kullanıldığı için bu muhasebe hesabını silemezsiniz
-MvtNotCorrectlyBalanced=Hareket doğru denkleştirilmemiş. Alacak = %s. Borç = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Kod
 Nature=Niteliği
 AccountingJournalType1=Various operation
 AccountingJournalType2=Satışlar
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Dışaaktarımlar
-Export=Dışaaktar
 ExportDraftJournal=Export draft journal
 Modelcsv=Dışaaktarım modeli
 OptionsDeactivatedForThisExportModel=Bu dışaaktarma modeli için seçenekler etkinleştirilmemiş
diff --git a/htdocs/langs/tr_TR/admin.lang b/htdocs/langs/tr_TR/admin.lang
index 88edee8bae9..9cb72f8ac02 100644
--- a/htdocs/langs/tr_TR/admin.lang
+++ b/htdocs/langs/tr_TR/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Sistem araçları alanı
 SystemToolsAreaDesc=Bu alan yönetimsel özellikler sağlar. Aradığınız özelliği seçmek için menüyü kullanın.
 Purge=Temizleme
 PurgeAreaDesc=Bu sayfa Dolibarr tarafından oluşturulan ve saklanan tüm dosyaları (geçici dosyalar ya da <b>%s</b> dizinindeki tüm dosyalar) silmenizi sağlar. Bu özelliği kullanmak gereksizdir. Web sunucusu tarafından oluşturulan dosyaları silme izni vermeyen bir sunucu tarafından barındırılan Dolibarr kullanıcıları için geçici bir çözümdür.
-PurgeDeleteLogFile=Syslog modülü tarafından tanımlanan <b>%s</b> kütük dosyasını silin (bilgi kaybetme riskiniz yoktur)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Tüm geçici dosyaları sil (bilgi kaybetme riskiniz yoktur)
 PurgeDeleteTemporaryFilesShort=Geçici dosyaları sil
 PurgeDeleteAllFilesInDocumentsDir=<b>%s</b> dizinindeki bütün dosyaları sil. Geçici dosyalarla birlikte veritabanı yedek artıkları, belgelere eklenmiş dosyalar (üçüncü partiler, faturalar, v.s.) ECM modülüne yüklenen dosyalar da silinecektir.
 PurgeRunNow=Şimdi temizle
 PurgeNothingToDelete=Silinecek dizin ya da dosya yok.
 PurgeNDirectoriesDeleted=<b>%s</b> dosya veya dizin silindi.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Tüm güvenlik etkinliklerini temizle
 ConfirmPurgeAuditEvents=Tüm güvenlik etkinliklerini temizlemek istediğinizden emin misiniz? Tüm güvenlik günlükleri silinecek olup, başka veriler silinmeyecektir.
 GenerateBackup=Yedekleme oluştur
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Modül yerleşimi tamamlandı. Bununla birlikte, modül ayarl
 NotExistsDirect=Alternatif kök dizin varolan bir dizine tanımlanmamış.<br>
 InfDirAlt=Sürüm 3 ten beri bir alternatif kök dizin tanımlanabiliyor. Bu sizin ayrılmış bir dizine, eklentiler ve özel şablonlar depolamanızı sağlar.<br>Yalnızca Dolibarr kökünde bir dizin oluşturun (örn. özel).<br>
 InfDirExample=<br>Sonra bunu <strong>conf.php</strong> dosyasında belirtin<br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>*Bu satırlar "#" karakteri ile yorumlanır, yorumu kaldırmak için sadece bu karakteri kaldırın.
-YouCanSubmitFile=Bu adımda paketi göndermek için kullanacağınız araç: Modül dosyasını seç
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr geçerli sürümü
 CallUpdatePage=Veritabanı yapısını ve verileri güncelleyen sayfaya git: %s.
 LastStableVersion=Son kararlı sürüm
@@ -535,8 +536,6 @@ Module1120Name=Tedarikçi teklifi
 Module1120Desc=Tedarikçi teklifi ve fiyatlarını iste
 Module1200Name=Mantis
 Module1200Desc=Mantis entegrasyonu
-Module1400Name=Muhasebe
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Belge Oluşturma
 Module1520Desc=Toplu posta belgesi oluşturma
 Module1780Name=Etiketler/Kategoriler
@@ -585,7 +584,7 @@ Module50100Desc=Satış noktası  modülü (POS)
 Module50200Name=Paypal
 Module50200Desc=Kredi kartı ya da Paypal ile ödeme sağlayan çevrimiçi ödeme sayfası modülü
 Module50400Name=Muhasebe (gelişmiş)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=IPP Yazdır
 Module54000Desc=Cups IPP aryüzü kullanılarak doğrudan yazdırma (belgeler açılmadan)  (Yazıcı sunucudan görülmeli ve sunucuda CUPS kurulu olmalı)
 Module55000Name=Anket, Araştırma ya da Oylama
@@ -751,8 +750,10 @@ Permission401=İndirim oku
 Permission402=İndirim oluştur/değiştir
 Permission403=İndirim doğrula
 Permission404=İndirim sil
-Permission510=Ücretleri oku
-Permission512=Ücret oluştur/değiştir
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Ücretleri sil
 Permission517=Ücretleri çıkart
 Permission520=Borçları oku
@@ -1057,7 +1058,7 @@ RestoreDesc2=Belgeler dizinindeki dosya ağacını ayıklamak için arşiv dosya
 RestoreDesc3=Veriyi bir yedekleme döküm dosyasından, yeni Dolibarr kurulumu veritabanına ya da geçerli kurulumun veritabanına geri yükleyin (<b>%s</b>). Uyarı, geri yükleme tamamlandıktan sonra yeniden bağlanabilmek için yedekleme yapıldığı sırada varolan bir kullanıcı adı/parolası kullanmalısınız. Bu geçerli kuruluma yedekleme veritabanını geri yüklemek için aşağıdaki yardımcıyı kullanabilirsiniz.
 RestoreMySQL=MySQL içeaktar
 ForcedToByAModule= Bu kural bir aktif modül tarafından <b>s</b> ye zorlanır
-PreviousDumpFiles=Mevcut veritabanı yedekleme dosyaları dökümü
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=Haftanın ilk günü
 RunningUpdateProcessMayBeRequired=Yükseltme işlemini çalıştırmak gerekli gibi görünüyor (Program sürümü %s veritabanı sürümü %s ten farklı)
 YouMustRunCommandFromCommandLineAfterLoginToUser=Bu komutu <b>%s</b> kullanıcısı ile bir kabuğa giriş yaptıktan sonra komut satırından çalıştırabilir ya da parolayı <b>%s</b> elde etmek için komut satırının sonuna –W seçeneğini ekleyebilirsiniz.
diff --git a/htdocs/langs/tr_TR/banks.lang b/htdocs/langs/tr_TR/banks.lang
index fd18dd3d072..e6ee163e6db 100644
--- a/htdocs/langs/tr_TR/banks.lang
+++ b/htdocs/langs/tr_TR/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Çek döndü ve fatura yeniden açık yapıldı
 BankAccountModelModule=Banka hesapları için belge şablonları
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/tr_TR/bills.lang b/htdocs/langs/tr_TR/bills.lang
index 3642cdd65cc..e159512916a 100644
--- a/htdocs/langs/tr_TR/bills.lang
+++ b/htdocs/langs/tr_TR/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Fatura kartı
 PredefinedInvoices=Öntanımlı faturalar
 Invoice=Fatura
+PdfInvoiceTitle=Fatura
 Invoices=Faturalar
 InvoiceLine=Fatura satırı
 InvoiceCustomer=Müşteri faturası
diff --git a/htdocs/langs/tr_TR/compta.lang b/htdocs/langs/tr_TR/compta.lang
index 98813d4b518..b11499d810b 100644
--- a/htdocs/langs/tr_TR/compta.lang
+++ b/htdocs/langs/tr_TR/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Sosyal/mali vergi kopyala
 ConfirmCloneTax=Sosyal/mali vergi ödemesi kopyalamasını onayla
 CloneTaxForNextMonth=Sonraki aya kopyala
diff --git a/htdocs/langs/tr_TR/errors.lang b/htdocs/langs/tr_TR/errors.lang
index ba98a1ea218..f790a36344d 100644
--- a/htdocs/langs/tr_TR/errors.lang
+++ b/htdocs/langs/tr_TR/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=Bu üye için bir parola ayarlıdır. Ancak, hiçbir kullanıcı hesabı oluşturulmamıştır. Yani bu şifre saklanır ama Dolibarr'a giriş için kullanılamaz. Dış bir modül/arayüz tarafından kullanılıyor olabilir, ama bir üye için ne bir kullanıcı adı ne de parola tanımlamanız gerekmiyorsa "Her üye için bir kullanıcı adı yönet" seçeneğini devre dışı bırakabilirsiniz. Bir kullanıcı adı yönetmeniz gerekiyorsa ama herhangi bir parolaya gereksinim duymuyorsanız bu uyarıyı engellemek için bu alanı boş bırakabilirsiniz. Not: Eğer bir üye bir kullanıcıya bağlıysa kullanıcı adı olarak eposta adresi de kullanılabilir.
diff --git a/htdocs/langs/tr_TR/install.lang b/htdocs/langs/tr_TR/install.lang
index 51c1d02e760..5e2236eb369 100644
--- a/htdocs/langs/tr_TR/install.lang
+++ b/htdocs/langs/tr_TR/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Dolibarr veritabanı kullanıcı adı.
 PasswordAgain=Parolayı ikinci kez yeniden yaz
 AdminPassword=Dolibarr veritabanı sahibi parolası.
 CreateDatabase=Veritabanı oluştur
-CreateUser=Kullanıcı oluştur
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Veritabanı sunucusu - süperkullanıcı erişimi
 CheckToCreateDatabase=Eğer veritabanı yoksa ve oluşturulması gerekiyorsa kutuyu işaretleyin.<br>Bu durumda, bu sayfanın altına süperkullanıcı hesabı için kullanıcı adı/parola girmelisiniz.
-CheckToCreateUser=Veritabanı sahibi yoksa ve oluşturulması gerekiyorsa kutuyu işaretleyin.<br>Bu durumda, kullanıcı adı ve parola seçmelisiniz ve bu sayfanın altına süperkullanıcı hesabı için kullanıcı adı/parola girmelisiniz. Bu kutu işaretlenmemiş ise, veritabanı sahibi ve parolaları vardır.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Yeni veritabanı ve yeni kullanıcı oluşturabilecek kullanıcı girişi, veritabanınız ve veritabanı girişiniz zaten varsa gereksizdir (sanki bir web sağlayıcı tarafından barındırılıyor gibi).
 KeepEmptyIfNoPassword=Eğer kullanıcının herhangi bir parolası yoksa boş bırakın (bundan kaçının)
 SaveConfigurationFile=Değerleri saklayın
diff --git a/htdocs/langs/tr_TR/main.lang b/htdocs/langs/tr_TR/main.lang
index 7285680f9c9..e2486957d92 100644
--- a/htdocs/langs/tr_TR/main.lang
+++ b/htdocs/langs/tr_TR/main.lang
@@ -75,7 +75,8 @@ FileRenamed=Dosya adı değiştirilmesi başarılı
 FileGenerated=Dosya oluşturulması başarılı
 FileSaved=The file was successfully saved
 FileUploaded=Dosya yüklemesi başarılı
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=Bu ekleme için bir dosya seçildi ama henüz gönderilmedi. Bunun için “Dosya ekle” ye tıklayın.
 NbOfEntries=Kayıt sayısı
 GoToWikiHelpPage=Çevrimiçi yardım oku (Internet erişimi gerekir)
@@ -196,6 +197,7 @@ Parameter=Parametre
 Parameters=Parametreler
 Value=Değer
 PersonalValue=Kişisel değer
+NewObject=New %s
 NewValue=Yeni değer
 CurrentValue=Geçerli değer
 Code=Kod
@@ -441,6 +443,7 @@ Reporting=Raporlama
 Reportings=Raporlama
 Draft=Taslak
 Drafts=Taslaklar
+StatusInterInvoiced=
 Validated=Doğrulanmış
 Opened=Açık
 New=Yeni
@@ -727,6 +730,7 @@ SetBankAccount=Banka Hesabı Tanımla
 AccountCurrency=Hesap Para Birimi
 ViewPrivateNote=Notları izle
 XMoreLines=%s gizli satır
+ShowMoreLines=Show more lines
 PublicUrl=Genel URL
 AddBox=Kutu ekle
 SelectElementAndClick=Bir öğe seçin ve %s tıklayın
@@ -735,6 +739,7 @@ ShowTransaction=Girişi banka hesabında göster
 GoIntoSetupToChangeLogo=Logoyu değiştirmek için Giriş - Ayarlar - Firma menüsüne ya da gizlemek için Giriş - Ayarlar - Ekran menüsüne git.
 Deny=Ret
 Denied=Reddedildi
+ListOf=List of %s
 ListOfTemplates=Şablon listesi
 Gender=Cinsiyet
 Genderman=Adam
diff --git a/htdocs/langs/tr_TR/modulebuilder.lang b/htdocs/langs/tr_TR/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/tr_TR/modulebuilder.lang
+++ b/htdocs/langs/tr_TR/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/tr_TR/multicurrency.lang b/htdocs/langs/tr_TR/multicurrency.lang
index aee25c329ea..97d030cc601 100644
--- a/htdocs/langs/tr_TR/multicurrency.lang
+++ b/htdocs/langs/tr_TR/multicurrency.lang
@@ -4,7 +4,8 @@ ErrorAddRateFail=Error in added rate
 ErrorAddCurrencyFail=Error in added currency
 ErrorDeleteCurrencyFail=Error delete fail
 multicurrency_syncronize_error=Synchronisation error: %s
-multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate)
+MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate
+multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate)
 CurrencyLayerAccount=CurrencyLayer API
 CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality<br />Get your <b>API key</b><br />If you use a free account you can't change the <b>currency source</b> (USD by default)<br />But if your main currency isn't USD you can use the <b>alternate currency source</b> to force you main currency<br /><br />You are limited at 1000 synchronizations per month
 multicurrency_appId=API key
diff --git a/htdocs/langs/tr_TR/orders.lang b/htdocs/langs/tr_TR/orders.lang
index bb6170ed5ce..95be258c467 100644
--- a/htdocs/langs/tr_TR/orders.lang
+++ b/htdocs/langs/tr_TR/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Tedarikçi siparişleri alanı
 OrderCard=Sipariş kartı
 OrderId=Sipariş Kimliği
 Order=Sipariş
+PdfOrderTitle=Sipariş
 Orders=Siparişler
 OrderLine=Sipariş kalemi
 OrderDate=Sipariş Tarihi
diff --git a/htdocs/langs/tr_TR/other.lang b/htdocs/langs/tr_TR/other.lang
index 54e189e36fd..c62f8245e75 100644
--- a/htdocs/langs/tr_TR/other.lang
+++ b/htdocs/langs/tr_TR/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/tr_TR/propal.lang b/htdocs/langs/tr_TR/propal.lang
index e0617de22d0..87ee9c4dc76 100644
--- a/htdocs/langs/tr_TR/propal.lang
+++ b/htdocs/langs/tr_TR/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Taslak teklifler
 ProposalsOpened=Açık teklifler
 Prop=Teklifler
 CommercialProposal=Teklif
+PdfCommercialProposalTitle=Teklif
 ProposalCard=Teklif kartı
 NewProp=Yeni teklif
 NewPropal=Yeni teklif
diff --git a/htdocs/langs/tr_TR/salaries.lang b/htdocs/langs/tr_TR/salaries.lang
index 9732d459b8b..b5ce9629949 100644
--- a/htdocs/langs/tr_TR/salaries.lang
+++ b/htdocs/langs/tr_TR/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Personel giderleri için varsayılan muhasebe hesabı
 Salary=Ücret
 Salaries=Ücretler
diff --git a/htdocs/langs/tr_TR/website.lang b/htdocs/langs/tr_TR/website.lang
index bd5124c2000..858d74800f3 100644
--- a/htdocs/langs/tr_TR/website.lang
+++ b/htdocs/langs/tr_TR/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Burada istediğiniz sayıda farklı websitesi oluşturun. Sonra
 DeleteWebsite=Websitesi sil
 ConfirmDeleteWebsite=Bu websitesini silmek istediğinizden emin misiniz? Bütün sayfaları ve içeriği silinecektir.
 WEBSITE_PAGENAME=Sayfa adı/rumuz
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=Dış CSS dosyası URL si
 WEBSITE_CSS_INLINE=CSS içeriği
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Medya kütüphanesi
-EditCss=Stil/CSS düzenle
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Menü düzenle
 EditPageMeta=Meta Düzenle
 EditPageContent=İçerik Düzenle
 Website=Web sitesi
-Webpage=Web sayfası
-AddPage=Sayfa ekle
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Web sitenizin <strong>%s</strong> önizlemesi henüz hazır değil. Önce bir sayfa eklemelisiniz.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Silinen sayfa '%s', websitesi %s e ait
-PageAdded=Eklenen sayfa %s
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=Siteyi yeni sekmede izle
 ViewPageInNewTab=Siteyi yeni sekmede izle
 SetAsHomePage=Giriş Sayfası olarak ayarla
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=Web sitesini giriş URL si kullanarak izle
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/tr_TR/workflow.lang b/htdocs/langs/tr_TR/workflow.lang
index 4da18ad3533..c13c75f8176 100644
--- a/htdocs/langs/tr_TR/workflow.lang
+++ b/htdocs/langs/tr_TR/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=İş Akışı modülü kurulumu
 WorkflowDesc=Bu modül, uygulamadaki otomatik eylemlerin davranışlarını değiştirilmek için tasarlanmıştır. Varsayılan olarak, iş akışı açıktır (işleri istediğiniz sıraya göre yapabilirsiniz). İlgilendiğiniz otomatik eylemleri etkinleştirebilirsiniz.
 ThereIsNoWorkflowToModify=Etkin modüllerde hiç iş akışı değişikliği yok.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Bir teklif imzalandıktan sonra kendiliğinden müşteri siparişi oluşturulsun
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Bir teklif imzalandıktan sonra kendiliğinden bir müşteri faturası oluştur
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Bir sözleşme doğrulandıktan sonra kendiliğinden bir müşteri faturası oluştur
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Bir müşteri siparişi kapatıldıktan sonra kendiliğinden bir müşteri faturası oluştur
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Bir müşteri siparişi ödenmiş olarak güncellendiğinde ilgili kaynak teklif faturalandı olarak dosyalansın
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Müşteri faturası ödendi olarak ayarlandığında bağlantılı kaynak sipariş(ler)ini faturalandı olarak sınıflandır
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Müşteri faturası doğrulandığında bağlantılı kaynak sipariş(ler)ini faturalandı olarak sınıflandır
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Müşteri faturası doğrulandığında  bağlantılı teklif kaynağını faturalandı olarak sınıflandır
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Bir gönderi doğrulandığında ve sevk edilen miktar siparişteki ile aynı ise bağlantılı kaynak siparişini sevk edilecek şekilde sınıflandır.
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Otomatik oluşturma
 AutomaticClassification=Otomatik sınıflandırma
diff --git a/htdocs/langs/uk_UA/accountancy.lang b/htdocs/langs/uk_UA/accountancy.lang
index d239f259a94..a7176d2e55f 100644
--- a/htdocs/langs/uk_UA/accountancy.lang
+++ b/htdocs/langs/uk_UA/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Code
 Nature=Nature
 AccountingJournalType1=Various operation
 AccountingJournalType2=Sales
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exports
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model of export
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/uk_UA/admin.lang b/htdocs/langs/uk_UA/admin.lang
index 92e19112d8a..cc0b3f3822f 100644
--- a/htdocs/langs/uk_UA/admin.lang
+++ b/htdocs/langs/uk_UA/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=System tools area
 SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for.
 Purge=Purge
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory <b>%s</b>. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted.
 PurgeRunNow=Purge now
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> files or directories deleted.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Purge all security events
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Generate backup
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr current version
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Mantis integration
-Module1400Name=Accounting
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Module to offer an online payment page by credit card with Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Read discounts
 Permission402=Create/modify discounts
 Permission403=Validate discounts
 Permission404=Delete discounts
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
-PreviousDumpFiles=Available database backup dump files
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=First day of week
 RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user <b>%s</b> or you must add -W option at end of command line to provide <b>%s</b> password.
diff --git a/htdocs/langs/uk_UA/banks.lang b/htdocs/langs/uk_UA/banks.lang
index 8f59828e6be..db69677f2f0 100644
--- a/htdocs/langs/uk_UA/banks.lang
+++ b/htdocs/langs/uk_UA/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/uk_UA/bills.lang b/htdocs/langs/uk_UA/bills.lang
index a9353cf1bc0..7962186f271 100644
--- a/htdocs/langs/uk_UA/bills.lang
+++ b/htdocs/langs/uk_UA/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Карта рахунка-фактури
 PredefinedInvoices=Predefined Invoices
 Invoice=Рахунок-фактура
+PdfInvoiceTitle=Рахунок-фактура
 Invoices=Рахунки-фактури
 InvoiceLine=Рядок рахунку-фактури
 InvoiceCustomer=Рахунок клієнта
diff --git a/htdocs/langs/uk_UA/compta.lang b/htdocs/langs/uk_UA/compta.lang
index 71427bfd4e7..17fe7cfb471 100644
--- a/htdocs/langs/uk_UA/compta.lang
+++ b/htdocs/langs/uk_UA/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/uk_UA/errors.lang b/htdocs/langs/uk_UA/errors.lang
index feada2d1b5a..853a34b4bb4 100644
--- a/htdocs/langs/uk_UA/errors.lang
+++ b/htdocs/langs/uk_UA/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/uk_UA/install.lang b/htdocs/langs/uk_UA/install.lang
index a3533a31277..5b6ba06e78a 100644
--- a/htdocs/langs/uk_UA/install.lang
+++ b/htdocs/langs/uk_UA/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner.
 PasswordAgain=Retype password a second time
 AdminPassword=Password for Dolibarr database owner.
 CreateDatabase=Create database
-CreateUser=Create owner
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Database server - Superuser access
 CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
-CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
 KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
 SaveConfigurationFile=Save values
diff --git a/htdocs/langs/uk_UA/main.lang b/htdocs/langs/uk_UA/main.lang
index da3a60f39bd..ff38eea8742 100644
--- a/htdocs/langs/uk_UA/main.lang
+++ b/htdocs/langs/uk_UA/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=The file was successfully uploaded
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
 NbOfEntries=Nb of entries
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parameter
 Parameters=Parameters
 Value=Value
 PersonalValue=Personal value
+NewObject=New %s
 NewValue=New value
 CurrentValue=Current value
 Code=Code
@@ -441,6 +443,7 @@ Reporting=Reporting
 Reportings=Reporting
 Draft=Проект
 Drafts=Drafts
+StatusInterInvoiced=
 Validated=Підтверджений
 Opened=Open
 New=New
@@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account
 AccountCurrency=Account Currency
 ViewPrivateNote=View notes
 XMoreLines=%s line(s) hidden
+ShowMoreLines=Show more lines
 PublicUrl=Public URL
 AddBox=Add box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gender
 Genderman=Man
diff --git a/htdocs/langs/uk_UA/modulebuilder.lang b/htdocs/langs/uk_UA/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/uk_UA/modulebuilder.lang
+++ b/htdocs/langs/uk_UA/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/uk_UA/orders.lang b/htdocs/langs/uk_UA/orders.lang
index 493f097fdf4..d067b208afe 100644
--- a/htdocs/langs/uk_UA/orders.lang
+++ b/htdocs/langs/uk_UA/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area
 OrderCard=Order card
 OrderId=Order Id
 Order=Order
+PdfOrderTitle=Order
 Orders=Orders
 OrderLine=Order line
 OrderDate=Order date
diff --git a/htdocs/langs/uk_UA/other.lang b/htdocs/langs/uk_UA/other.lang
index e15d490c0f2..e519f7af405 100644
--- a/htdocs/langs/uk_UA/other.lang
+++ b/htdocs/langs/uk_UA/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/uk_UA/propal.lang b/htdocs/langs/uk_UA/propal.lang
index 203612b53df..c3d70292fba 100644
--- a/htdocs/langs/uk_UA/propal.lang
+++ b/htdocs/langs/uk_UA/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals
 ProposalsOpened=Open commercial proposals
 Prop=Commercial proposals
 CommercialProposal=Commercial proposal
+PdfCommercialProposalTitle=Commercial proposal
 ProposalCard=Proposal card
 NewProp=New commercial proposal
 NewPropal=New proposal
diff --git a/htdocs/langs/uk_UA/salaries.lang b/htdocs/langs/uk_UA/salaries.lang
index 522bf0a65d7..7e0c80d3380 100644
--- a/htdocs/langs/uk_UA/salaries.lang
+++ b/htdocs/langs/uk_UA/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Salary
 Salaries=Salaries
diff --git a/htdocs/langs/uk_UA/website.lang b/htdocs/langs/uk_UA/website.lang
index b3b05ee6cc9..98577e0de5e 100644
--- a/htdocs/langs/uk_UA/website.lang
+++ b/htdocs/langs/uk_UA/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/uk_UA/workflow.lang b/htdocs/langs/uk_UA/workflow.lang
index 54246856e9b..8021fb9b198 100644
--- a/htdocs/langs/uk_UA/workflow.lang
+++ b/htdocs/langs/uk_UA/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Workflow module setup
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/uz_UZ/accountancy.lang b/htdocs/langs/uz_UZ/accountancy.lang
index d239f259a94..a7176d2e55f 100644
--- a/htdocs/langs/uz_UZ/accountancy.lang
+++ b/htdocs/langs/uz_UZ/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Code
 Nature=Nature
 AccountingJournalType1=Various operation
 AccountingJournalType2=Sales
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exports
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model of export
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/uz_UZ/admin.lang b/htdocs/langs/uz_UZ/admin.lang
index a443d04f35d..8dba7af0e0b 100644
--- a/htdocs/langs/uz_UZ/admin.lang
+++ b/htdocs/langs/uz_UZ/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=System tools area
 SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for.
 Purge=Purge
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory <b>%s</b>. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted.
 PurgeRunNow=Purge now
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s</b> files or directories deleted.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Purge all security events
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Generate backup
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr current version
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=Mantis
 Module1200Desc=Mantis integration
-Module1400Name=Accounting
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Module to offer an online payment page by credit card with Paypal
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Read discounts
 Permission402=Create/modify discounts
 Permission403=Validate discounts
 Permission404=Delete discounts
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
-PreviousDumpFiles=Available database backup dump files
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=First day of week
 RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user <b>%s</b> or you must add -W option at end of command line to provide <b>%s</b> password.
diff --git a/htdocs/langs/uz_UZ/banks.lang b/htdocs/langs/uz_UZ/banks.lang
index ba42f9a4c83..9bce7b9e29a 100644
--- a/htdocs/langs/uz_UZ/banks.lang
+++ b/htdocs/langs/uz_UZ/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/uz_UZ/bills.lang b/htdocs/langs/uz_UZ/bills.lang
index 1e83ba9b2d1..6bcd2464c1c 100644
--- a/htdocs/langs/uz_UZ/bills.lang
+++ b/htdocs/langs/uz_UZ/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Invoice card
 PredefinedInvoices=Predefined Invoices
 Invoice=Invoice
+PdfInvoiceTitle=Invoice
 Invoices=Invoices
 InvoiceLine=Invoice line
 InvoiceCustomer=Customer invoice
diff --git a/htdocs/langs/uz_UZ/compta.lang b/htdocs/langs/uz_UZ/compta.lang
index 94a3bd671ef..f8b5b683cb8 100644
--- a/htdocs/langs/uz_UZ/compta.lang
+++ b/htdocs/langs/uz_UZ/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/uz_UZ/errors.lang b/htdocs/langs/uz_UZ/errors.lang
index feada2d1b5a..853a34b4bb4 100644
--- a/htdocs/langs/uz_UZ/errors.lang
+++ b/htdocs/langs/uz_UZ/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/uz_UZ/install.lang b/htdocs/langs/uz_UZ/install.lang
index a3533a31277..5b6ba06e78a 100644
--- a/htdocs/langs/uz_UZ/install.lang
+++ b/htdocs/langs/uz_UZ/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner.
 PasswordAgain=Retype password a second time
 AdminPassword=Password for Dolibarr database owner.
 CreateDatabase=Create database
-CreateUser=Create owner
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Database server - Superuser access
 CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
-CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
 KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
 SaveConfigurationFile=Save values
diff --git a/htdocs/langs/uz_UZ/main.lang b/htdocs/langs/uz_UZ/main.lang
index 16b9968bd32..a7f196826ce 100644
--- a/htdocs/langs/uz_UZ/main.lang
+++ b/htdocs/langs/uz_UZ/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=The file was successfully uploaded
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
 NbOfEntries=Nb of entries
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Parameter
 Parameters=Parameters
 Value=Value
 PersonalValue=Personal value
+NewObject=New %s
 NewValue=New value
 CurrentValue=Current value
 Code=Code
@@ -441,6 +443,7 @@ Reporting=Reporting
 Reportings=Reporting
 Draft=Draft
 Drafts=Drafts
+StatusInterInvoiced=
 Validated=Validated
 Opened=Open
 New=New
@@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account
 AccountCurrency=Account Currency
 ViewPrivateNote=View notes
 XMoreLines=%s line(s) hidden
+ShowMoreLines=Show more lines
 PublicUrl=Public URL
 AddBox=Add box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gender
 Genderman=Man
diff --git a/htdocs/langs/uz_UZ/orders.lang b/htdocs/langs/uz_UZ/orders.lang
index 331e3b49d3e..0c59b4f4ada 100644
--- a/htdocs/langs/uz_UZ/orders.lang
+++ b/htdocs/langs/uz_UZ/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area
 OrderCard=Order card
 OrderId=Order Id
 Order=Order
+PdfOrderTitle=Order
 Orders=Orders
 OrderLine=Order line
 OrderDate=Order date
diff --git a/htdocs/langs/uz_UZ/other.lang b/htdocs/langs/uz_UZ/other.lang
index e15d490c0f2..e519f7af405 100644
--- a/htdocs/langs/uz_UZ/other.lang
+++ b/htdocs/langs/uz_UZ/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/uz_UZ/propal.lang b/htdocs/langs/uz_UZ/propal.lang
index 3fdb379c5a2..271fb44ac40 100644
--- a/htdocs/langs/uz_UZ/propal.lang
+++ b/htdocs/langs/uz_UZ/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals
 ProposalsOpened=Open commercial proposals
 Prop=Commercial proposals
 CommercialProposal=Commercial proposal
+PdfCommercialProposalTitle=Commercial proposal
 ProposalCard=Proposal card
 NewProp=New commercial proposal
 NewPropal=New proposal
diff --git a/htdocs/langs/uz_UZ/salaries.lang b/htdocs/langs/uz_UZ/salaries.lang
index 522bf0a65d7..7e0c80d3380 100644
--- a/htdocs/langs/uz_UZ/salaries.lang
+++ b/htdocs/langs/uz_UZ/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Salary
 Salaries=Salaries
diff --git a/htdocs/langs/uz_UZ/workflow.lang b/htdocs/langs/uz_UZ/workflow.lang
index 54246856e9b..8021fb9b198 100644
--- a/htdocs/langs/uz_UZ/workflow.lang
+++ b/htdocs/langs/uz_UZ/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Workflow module setup
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/vi_VN/accountancy.lang b/htdocs/langs/vi_VN/accountancy.lang
index 45e801c5fda..b15ed05b14c 100644
--- a/htdocs/langs/vi_VN/accountancy.lang
+++ b/htdocs/langs/vi_VN/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=Danh sách các tài khoản kế toán
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Lớp tài khoản
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Lỗi, bạn không thể xóa tài khoản kế toán này bởi vì nó được sử dụng
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=Mã
 Nature=Tự nhiên
 AccountingJournalType1=Various operation
 AccountingJournalType2=Bán
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Xuất khẩu
-Export=Xuất dữ liệu
 ExportDraftJournal=Export draft journal
 Modelcsv=Mô hình xuất khẩu
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/vi_VN/admin.lang b/htdocs/langs/vi_VN/admin.lang
index 0df2bc9c284..43e1c742528 100644
--- a/htdocs/langs/vi_VN/admin.lang
+++ b/htdocs/langs/vi_VN/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=Khu vực công cụ hệ thống
 SystemToolsAreaDesc=Khu vực này cung cấp các tính năng quản trị. Sử dụng menu để chọn tính năng mà bạn đang muốn thao tác.
 Purge=Thanh lọc
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=Xóa tất cả các file trong thư mục <b>%s</b>. Tập tin tạm thời mà còn sao lưu cơ sở dữ liệu bãi, tập tin đính kèm với các yếu tố (các bên thứ ba, hóa đơn, ...) và tải lên vào module ECM sẽ bị xóa.
 PurgeRunNow=Thanh lọc bây giờ
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%</b> các tập tin hoặc thư mục bị xóa.
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=Thanh lọc tất cả các sự kiện bảo mật
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=Tạo sao lưu
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Phiên bản hiện tại Dolibarr
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Đơn hàng đề xuất nhà cung cấp
 Module1120Desc=Yêu cầu giá và đơn hàng đề xuất nhà cung cấp
 Module1200Name=Mantis
 Module1200Desc=Tích hợp Mantis
-Module1400Name=Kế toán
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Xuất chứng từ
 Module1520Desc=Xuất chứng từ Mass mail
 Module1780Name=Gán thẻ/phân nhóm
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=Paypal
 Module50200Desc=Module để cung cấp một trang thanh toán trực tuyến bằng thẻ tín dụng với Paypal
 Module50400Name=Kế toán (nâng cao)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=Xem giảm giá
 Permission402=Tạo/chỉnh sửa giảm giá
 Permission403=Xác nhận giảm giá
 Permission404=Xóa giảm giá
-Permission510=Xem lương
-Permission512=Tạo/chỉnh sửa lương
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Xóa lương
 Permission517=Xuất dữ liệu lương
 Permission520=Xem cho vay
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL nhập dữ liệu
 ForcedToByAModule= Quy luật này buộc <b>%s</b> bởi một mô-đun được kích hoạt
-PreviousDumpFiles=Available database backup dump files
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=Ngày đầu tiên của tuần
 RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s)
 YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user <b>%s</b> or you must add -W option at end of command line to provide <b>%s</b> password.
diff --git a/htdocs/langs/vi_VN/banks.lang b/htdocs/langs/vi_VN/banks.lang
index d37efc853ea..4d27b3dc479 100644
--- a/htdocs/langs/vi_VN/banks.lang
+++ b/htdocs/langs/vi_VN/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Séc bị trả lại và hóa đơn bị mở
 BankAccountModelModule=Mẫu tài liệu dàng cho tài khoản ngân hàng
 DocumentModelSepaMandate=Mẫu lệnh SEPA. Chỉ dùng cho các nước trong khối EEC
 DocumentModelBan=Mẫu để in 1 trang với thông tin BAN
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/vi_VN/bills.lang b/htdocs/langs/vi_VN/bills.lang
index c88dc3f0ba0..1babe15991e 100644
--- a/htdocs/langs/vi_VN/bills.lang
+++ b/htdocs/langs/vi_VN/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=Thẻ hóa đơn
 PredefinedInvoices=Hoá đơn định sẵn
 Invoice=Hoá đơn
+PdfInvoiceTitle=Hoá đơn
 Invoices=Hoá đơn
 InvoiceLine=Dòng hóa đơn
 InvoiceCustomer=Hóa đơn khách hàng
diff --git a/htdocs/langs/vi_VN/compta.lang b/htdocs/langs/vi_VN/compta.lang
index 41d427301b1..700a2d75be7 100644
--- a/htdocs/langs/vi_VN/compta.lang
+++ b/htdocs/langs/vi_VN/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Sao chép nó vào tháng tới
diff --git a/htdocs/langs/vi_VN/errors.lang b/htdocs/langs/vi_VN/errors.lang
index 5cb5d29384c..f1a133f461e 100644
--- a/htdocs/langs/vi_VN/errors.lang
+++ b/htdocs/langs/vi_VN/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/vi_VN/install.lang b/htdocs/langs/vi_VN/install.lang
index 0655145e4d6..6d638802bde 100644
--- a/htdocs/langs/vi_VN/install.lang
+++ b/htdocs/langs/vi_VN/install.lang
@@ -53,10 +53,10 @@ AdminLogin=Đăng nhập cho chủ sở hữu cơ sở dữ liệu Dolibarr.
 PasswordAgain=Nhập lại mật khẩu một lần thứ hai
 AdminPassword=Mật khẩu cho chủ sở hữu cơ sở dữ liệu Dolibarr.
 CreateDatabase=Tạo cơ sở dữ liệu
-CreateUser=Tạo chủ sở hữu
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=Máy chủ cơ sở dữ liệu - truy cập superuser
 CheckToCreateDatabase=Kiểm tra hộp nếu cơ sở dữ liệu không tồn tại và phải được tạo ra. <br> Trong trường hợp này, bạn phải điền tên đăng nhập / mật khẩu cho tài khoản superuser ở dưới cùng của trang này.
-CheckToCreateUser=Kiểm tra hộp nếu chủ sở hữu cơ sở dữ liệu không tồn tại và phải được tạo ra. <br> Trong trường hợp này, bạn phải chọn tên đăng nhập và mật khẩu của mình và cũng có thể điền tên đăng nhập / mật khẩu cho tài khoản superuser ở dưới cùng của trang này. Nếu hộp này được đánh dấu, cơ sở dữ liệu và mật khẩu chủ sở hữu của nó phải tồn tại.
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=Đăng nhập của người dùng được phép để tạo ra cơ sở dữ liệu mới hoặc người dùng mới, bắt buộc nếu cơ sở dữ liệu của bạn hoặc chủ sở hữu của nó không đã tồn tại.
 KeepEmptyIfNoPassword=Để trống nếu người dùng không có mật khẩu (tránh điều này)
 SaveConfigurationFile=Lưu giá trị
diff --git a/htdocs/langs/vi_VN/main.lang b/htdocs/langs/vi_VN/main.lang
index ff953aeb5e8..162e728bbc5 100644
--- a/htdocs/langs/vi_VN/main.lang
+++ b/htdocs/langs/vi_VN/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=Các tập tin được tải lên thành công
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=Một tập tin được chọn để đính kèm nhưng vẫn chưa được tải lên. Bấm vào nút "Đính kèm tập tin" cho việc này.
 NbOfEntries=Nb of entries
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=Thông số
 Parameters=Các thông số
 Value=Giá trị
 PersonalValue=Giá trị cá nhân
+NewObject=New %s
 NewValue=Giá trị mới
 CurrentValue=Giá trị hiện tại
 Code=Mã
@@ -441,6 +443,7 @@ Reporting=Việc báo cáo
 Reportings=Việc báo cáo
 Draft=Dự thảo
 Drafts=Dự thảo
+StatusInterInvoiced=
 Validated=Đã xác nhận
 Opened=Mở
 New=Mới
@@ -727,6 +730,7 @@ SetBankAccount=Xác định tài khoản ngân hàng
 AccountCurrency=Tài khoản Tiền tệ
 ViewPrivateNote=Xem ghi chú
 XMoreLines=%s dòng ẩn
+ShowMoreLines=Show more lines
 PublicUrl=URL công khai
 AddBox=Thêm hộp
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Vào Nhà-Thiết lập-Công ty để đổi logo hoặc vào Nhà-Thiết lập-Hiển thị để ẩn.
 Deny=Deny
 Denied=Denied
+ListOf=List of %s
 ListOfTemplates=List of templates
 Gender=Gender
 Genderman=Man
diff --git a/htdocs/langs/vi_VN/modulebuilder.lang b/htdocs/langs/vi_VN/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/vi_VN/modulebuilder.lang
+++ b/htdocs/langs/vi_VN/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/vi_VN/orders.lang b/htdocs/langs/vi_VN/orders.lang
index 2f64030be08..24cf20df6ef 100644
--- a/htdocs/langs/vi_VN/orders.lang
+++ b/htdocs/langs/vi_VN/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=Khu vực đặt hàng của nhà cung cấp
 OrderCard=Thẻ đặt hàng
 OrderId=Mã đặt hàng
 Order=Đơn hàng
+PdfOrderTitle=Đơn hàng
 Orders=Đơn hàng
 OrderLine=Chi tiết đơn hàng
 OrderDate=Ngày đặt hàng
diff --git a/htdocs/langs/vi_VN/other.lang b/htdocs/langs/vi_VN/other.lang
index 30bba6aba30..62c9c0f49e7 100644
--- a/htdocs/langs/vi_VN/other.lang
+++ b/htdocs/langs/vi_VN/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/vi_VN/propal.lang b/htdocs/langs/vi_VN/propal.lang
index 9f00a930015..70e6bccb2cd 100644
--- a/htdocs/langs/vi_VN/propal.lang
+++ b/htdocs/langs/vi_VN/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=Dự thảo đơn hàng đề xuất
 ProposalsOpened=Open commercial proposals
 Prop=Đơn hàng đề xuất
 CommercialProposal=Đơn hàng đề xuất
+PdfCommercialProposalTitle=Đơn hàng đề xuất
 ProposalCard=Thẻ đơn hàng đề xuất
 NewProp=Đơn hàng đề xuất mới
 NewPropal=Đơn hàng đề xuất mới
diff --git a/htdocs/langs/vi_VN/salaries.lang b/htdocs/langs/vi_VN/salaries.lang
index 092bfc6ab02..23904b7ced0 100644
--- a/htdocs/langs/vi_VN/salaries.lang
+++ b/htdocs/langs/vi_VN/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Mức lương
 Salaries=Tiền lương
diff --git a/htdocs/langs/vi_VN/website.lang b/htdocs/langs/vi_VN/website.lang
index 0ef146632dd..11df1380930 100644
--- a/htdocs/langs/vi_VN/website.lang
+++ b/htdocs/langs/vi_VN/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/vi_VN/workflow.lang b/htdocs/langs/vi_VN/workflow.lang
index 40a2a16a796..56defee7da0 100644
--- a/htdocs/langs/vi_VN/workflow.lang
+++ b/htdocs/langs/vi_VN/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=Thiết lập mô-đun quy trình
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=Chưa có sử đổi quy trình nào với những mô đun đang hoạt động
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Tự động tạo đơn đặt hàng cho khách hàng sau một đề xuất thương mại được ký
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Tạo hóa đơn khách hàng tự động sau 1 đề xuất thương mại được ký kết
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Tạo một khóa đơn khách hàng tự động sau khi hợp đồng được thông qua
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Tự động tạo 1 hóa đơn khách hàng sau khi đơn đặt hàng được đóng
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Phân loại đề xuất nguồn liên quan đến hóa đơn khi đơn đặt hàng được thiết lập để trả
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Phân loại đơn đặt hàng nguồn liên kết (s) để tính tiền khi hóa đơn khách hàng được thiết lập để trả
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Phân loại theo thứ tự liên kết nguồn khách hàng (s) để tính tiền khi hóa đơn của khách hàng được xác nhận
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Tạo tự động
 AutomaticClassification=Phân loại tự động
diff --git a/htdocs/langs/zh_CN/accountancy.lang b/htdocs/langs/zh_CN/accountancy.lang
index 52b3658a228..3f434069181 100644
--- a/htdocs/langs/zh_CN/accountancy.lang
+++ b/htdocs/langs/zh_CN/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=账目平衡
-
+ObjectsRef=Source object ref
 CAHTF=税前供应商采购总计
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=财务账
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=财务账包括全部银行账户付款类型
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=会计账目清单
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=账户类
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=错误,你不能删除这个会计帐户,因为它是用来
-MvtNotCorrectlyBalanced=不正确的移转调拨。 Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=编码
 Nature=属性
 AccountingJournalType1=Various operation
 AccountingJournalType2=销售
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=导出
-Export=导出
 ExportDraftJournal=Export draft journal
 Modelcsv=导出型号
 OptionsDeactivatedForThisExportModel=对于这种导出模式,选项被禁用
diff --git a/htdocs/langs/zh_CN/admin.lang b/htdocs/langs/zh_CN/admin.lang
index 98ab103d79b..b30dc2a699a 100644
--- a/htdocs/langs/zh_CN/admin.lang
+++ b/htdocs/langs/zh_CN/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=系统工具区
 SystemToolsAreaDesc=此区域提供管理员功能。请点选菜单来管理你想要的内容。
 Purge=清空
 PurgeAreaDesc=该页面允许您删除所有由Dolibarr自动生成和储存的文件(临时文件和所有在<b>%s</b>目录里的文件)。不必要使用该功能。它是为那些把Dolibarr安装在第三方的服务器并且没有删除文件权限的使用者提供的一个应急操作。
-PurgeDeleteLogFile=删除系统模块日志文件 <b>%s</b>(无数据丢失风险)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=删除临时文件(无数据丢失风险)
 PurgeDeleteTemporaryFilesShort=删除临时文件
 PurgeDeleteAllFilesInDocumentsDir=删除 <b>%s</b> 目录中的所有文件。临时文件、数据库备份转储文件、系统档案条目(第三方、账单)的附件及 电子文档管理 模块中上传的文件。
 PurgeRunNow=立即清空
 PurgeNothingToDelete=未删除目录或文件
 PurgeNDirectoriesDeleted=<b>%s</b> 个文件或目录删除。
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=清空所有安全事件
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=生成备份
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=在这一步中,你可以使用 选择模块文件 来发送包
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=Dolibarr 当前版本
 CallUpdatePage=升级更新数据库和数据请到: %s.
 LastStableVersion=最新稳定版
@@ -535,8 +536,6 @@ Module1120Name=供应商商业报价
 Module1120Desc=要求供应商商业报价和价格
 Module1200Name=Mantis
 Module1200Desc=Mantis 整合
-Module1400Name=会计
-Module1400Desc=Accounting management (double entries)
 Module1520Name=文档生成
 Module1520Desc=生成文档群发邮件
 Module1780Name=标签/分类
@@ -585,7 +584,7 @@ Module50100Desc= (POS)POS模块.
 Module50200Name=Paypal
 Module50200Desc=提供信用卡与Paypal网上支付页面的模块
 Module50400Name=会计(高级)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=IPP打印
 Module54000Desc=不打开文档而使用 Cups IPP 界面直接打印 (打印机必须在服务器可见,Cups 必须安装在服务器上)。
 Module55000Name=问卷, 调查或投票
@@ -751,8 +750,10 @@ Permission401=读取折扣
 Permission402=创建/变更折扣
 Permission403=确认折扣
 Permission404=删除折扣
-Permission510=查看工资
-Permission512=创建/变更工资
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=删除工资
 Permission517=导出工资
 Permission520=读取贷款
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL 导入
 ForcedToByAModule= 此规则被一个启用中的模块强制应用于 <b>%s</b>
-PreviousDumpFiles=可用的数据库备份转储文件
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=每周的第一天
 RunningUpdateProcessMayBeRequired=似乎需要运行升级程序(程序版本 %s 与数据库版本 %s 不符)
 YouMustRunCommandFromCommandLineAfterLoginToUser=您必须以 <b>%s</b> 用户在MySQL控制台登陆后通过命令行运行此命令否则您必须在命令行的末尾使用 -W 选项来提供 <b>%s</b> 的密码。
diff --git a/htdocs/langs/zh_CN/banks.lang b/htdocs/langs/zh_CN/banks.lang
index 286ab4a160b..509496160ff 100644
--- a/htdocs/langs/zh_CN/banks.lang
+++ b/htdocs/langs/zh_CN/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=检查退回发票并重新打开发票
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/zh_CN/bills.lang b/htdocs/langs/zh_CN/bills.lang
index acd51f412b3..e81bf8c1c9c 100644
--- a/htdocs/langs/zh_CN/bills.lang
+++ b/htdocs/langs/zh_CN/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=发票信息
 PredefinedInvoices=预定义的发票
 Invoice=发票
+PdfInvoiceTitle=发票
 Invoices=发票
 InvoiceLine=发票线
 InvoiceCustomer=客户发票
diff --git a/htdocs/langs/zh_CN/compta.lang b/htdocs/langs/zh_CN/compta.lang
index 944091f39c2..09875837fed 100644
--- a/htdocs/langs/zh_CN/compta.lang
+++ b/htdocs/langs/zh_CN/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=复制 social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=复制下一个月
diff --git a/htdocs/langs/zh_CN/errors.lang b/htdocs/langs/zh_CN/errors.lang
index 0abbed95bfb..46964709367 100644
--- a/htdocs/langs/zh_CN/errors.lang
+++ b/htdocs/langs/zh_CN/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/zh_CN/install.lang b/htdocs/langs/zh_CN/install.lang
index 1aae3ad7dde..82463dd0cc4 100644
--- a/htdocs/langs/zh_CN/install.lang
+++ b/htdocs/langs/zh_CN/install.lang
@@ -53,10 +53,10 @@ AdminLogin=这里填写Dolibarr数据库的账号。
 PasswordAgain=确认密码
 AdminPassword=这里填写Dolibarr数据库的密码。
 CreateDatabase=创建数据库
-CreateUser=创建账号
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=数据库服务器 - 超级用户
 CheckToCreateDatabase=勾选此选项则表示如果数据库不存在则创建数据库。<br>在这种情况下, 勾选之后会在页底显示填写超级数据库账号和密码的输入框。
-CheckToCreateUser=如果数据库所有者复选框不存在,必须创建。 <br>在这种情况下,必须选择自己的登录名和密码,并填写在本页面底部的登陆/为超级用户帐户的密码。如果此框未被选中,用户的数据库及其密码必须存在。
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=选中此项表示使用有创建数据库并且可创建数据库登陆账号的权限,前提是假如填写的数据库不存在。
 KeepEmptyIfNoPassword=如果账号无需密码则保留空白不填写(最好避免空密码这种情况不安全呀)
 SaveConfigurationFile=保存参数
diff --git a/htdocs/langs/zh_CN/main.lang b/htdocs/langs/zh_CN/main.lang
index 6bccc043869..78be1f0b83d 100644
--- a/htdocs/langs/zh_CN/main.lang
+++ b/htdocs/langs/zh_CN/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=文件上传成功
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=一个文件被选中的附件,但还没有上传。点击“附加文件”为这一点。
 NbOfEntries=铌条目
 GoToWikiHelpPage=阅读在线帮助文档 (需要访问外网)
@@ -196,6 +197,7 @@ Parameter=参数
 Parameters=参数
 Value=值
 PersonalValue=自定义
+NewObject=New %s
 NewValue=新的价值
 CurrentValue=当前值
 Code=编码
@@ -441,6 +443,7 @@ Reporting=报告
 Reportings=报告
 Draft=草稿
 Drafts=草稿
+StatusInterInvoiced=
 Validated=验证
 Opened=打开
 New=新建
@@ -727,6 +730,7 @@ SetBankAccount=定义银行账户
 AccountCurrency=帐户货币
 ViewPrivateNote=查看备注
 XMoreLines=%s 明细(s) 隐藏
+ShowMoreLines=Show more lines
 PublicUrl=公网URL
 AddBox=添加选项框
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=点击菜单 主页 -> 设置 -> 公司 来修改LOGO或 主页 -> 设置 -> 显示菜单隐藏它。
 Deny=否认
 Denied=否认
+ListOf=List of %s
 ListOfTemplates=模板列表
 Gender=性别
 Genderman=男人
diff --git a/htdocs/langs/zh_CN/modulebuilder.lang b/htdocs/langs/zh_CN/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/zh_CN/modulebuilder.lang
+++ b/htdocs/langs/zh_CN/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/zh_CN/multicurrency.lang b/htdocs/langs/zh_CN/multicurrency.lang
index b8ed714c199..a529b8b73bb 100644
--- a/htdocs/langs/zh_CN/multicurrency.lang
+++ b/htdocs/langs/zh_CN/multicurrency.lang
@@ -4,7 +4,8 @@ ErrorAddRateFail=Error in added rate
 ErrorAddCurrencyFail=Error in added currency
 ErrorDeleteCurrencyFail=Error delete fail
 multicurrency_syncronize_error=Synchronisation error: %s
-multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate)
+MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate
+multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate)
 CurrencyLayerAccount=CurrencyLayer API
 CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality<br />Get your <b>API key</b><br />If you use a free account you can't change the <b>currency source</b> (USD by default)<br />But if your main currency isn't USD you can use the <b>alternate currency source</b> to force you main currency<br /><br />You are limited at 1000 synchronizations per month
 multicurrency_appId=API key
diff --git a/htdocs/langs/zh_CN/orders.lang b/htdocs/langs/zh_CN/orders.lang
index fce57b2d250..6e6020ad9a8 100644
--- a/htdocs/langs/zh_CN/orders.lang
+++ b/htdocs/langs/zh_CN/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=供应商订单区
 OrderCard=订单信息
 OrderId=订单编号
 Order=订单
+PdfOrderTitle=订单
 Orders=订单
 OrderLine=在线订单
 OrderDate=订购日期
diff --git a/htdocs/langs/zh_CN/other.lang b/htdocs/langs/zh_CN/other.lang
index d732e68bfe1..d0e9f6b64bc 100644
--- a/htdocs/langs/zh_CN/other.lang
+++ b/htdocs/langs/zh_CN/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/zh_CN/propal.lang b/htdocs/langs/zh_CN/propal.lang
index 25034b9ec80..21e7f8aa536 100644
--- a/htdocs/langs/zh_CN/propal.lang
+++ b/htdocs/langs/zh_CN/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=起草报价单
 ProposalsOpened=开启商业报价
 Prop=报价单
 CommercialProposal=报价单
+PdfCommercialProposalTitle=报价单
 ProposalCard=报价 信息卡
 NewProp=新建报价单
 NewPropal=新建报价单
diff --git a/htdocs/langs/zh_CN/salaries.lang b/htdocs/langs/zh_CN/salaries.lang
index 0696678782a..2806dc9e6c6 100644
--- a/htdocs/langs/zh_CN/salaries.lang
+++ b/htdocs/langs/zh_CN/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=工资
 Salaries=工资
diff --git a/htdocs/langs/zh_CN/website.lang b/htdocs/langs/zh_CN/website.lang
index 5e31578f533..54725ac5193 100644
--- a/htdocs/langs/zh_CN/website.lang
+++ b/htdocs/langs/zh_CN/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=删除网址
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=页面名字/别名
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=外部CSS文件的URL地址
 WEBSITE_CSS_INLINE=CSS 内容
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=媒体库
-EditCss=编辑 Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=编辑菜单
 EditPageMeta=编辑 Meta
 EditPageContent=编辑内容
 Website=网站
-Webpage=Web page
-AddPage=添加页面
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=网站 '%s' 页面 %s 已删除
-PageAdded=页面 '%s' 已添加
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=在新标签页查看网站
 ViewPageInNewTab=在新标签页查看页面
 SetAsHomePage=设为首页
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=使用主页URL网址查看网页
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/zh_CN/workflow.lang b/htdocs/langs/zh_CN/workflow.lang
index b0286d8c63d..20720b86d33 100644
--- a/htdocs/langs/zh_CN/workflow.lang
+++ b/htdocs/langs/zh_CN/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=工作流模块的设置
 WorkflowDesc=此模块的设计,以修改自动动作到应用程序的行为。默认情况下,工作流是打开的(你可以按你想要的顺序做事情)。你可以激活你感兴趣的自动动作。
 ThereIsNoWorkflowToModify=没有工作流程,您可以修改你已激活的模块。
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=商业提案签署后自动创建一个客户订单
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=当商业建议签署后自动创建客户发票
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=在合同确认后自动创建客户发票
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=当客户订单关闭后自动创建客户发票
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=分类链接来源建议,创建客户订单时设置支付
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=当客户发票标记为已开票时将账单归类到客户订单(s)资源
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=当客户发票标记为已确认时将账单归类到客户订单(s)资源
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=当客户发票生效时分类链接报价源到账单
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
diff --git a/htdocs/langs/zh_TW/accountancy.lang b/htdocs/langs/zh_TW/accountancy.lang
index 9f121aa2734..2fb30c87ca6 100644
--- a/htdocs/langs/zh_TW/accountancy.lang
+++ b/htdocs/langs/zh_TW/accountancy.lang
@@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun
 OtherInfo=Other information
 DeleteCptCategory=Remove accounting account from group
 ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
+JournalizationInLedgerStatus=Status of journalization
 AlreadyInGeneralLedger=Already journalized in ledgers
+NotYetInGeneralLedger=Not yet journalized in ledgers
+
+MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
+MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup
+MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
+MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
 
 AccountancyArea=Accountancy area
 AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
@@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for
 AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
 AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
 AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
-AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
+AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
 AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
 AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s.
 AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
@@ -83,7 +90,7 @@ ValidTransaction=Validate transaction
 WriteBookKeeping=Journalize transactions in Ledger
 Bookkeeping=Ledger
 AccountBalance=Account balance
-
+ObjectsRef=Source object ref
 CAHTF=Total purchase supplier before tax
 TotalExpenseReport=Total expense report
 InvoiceLines=Lines of invoices to bind
@@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report
 NoAccountSelected=No accounting account selected
 VentilatedinAccount=Binded successfully to the accounting account
 NotVentilatedinAccount=Not bound to the accounting account
-XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
+XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
 XLineFailedToBeBinded=%s products/services were not bound to any accounting account
 
 ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
@@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger
 FinanceJournal=Finance journal
 ExpenseReportsJournal=Expense reports journal
 DescFinanceJournal=Finance journal including all the types of payments by bank account
-DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger.
+DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger.
 VATAccountNotDefined=Account for VAT not defined
 ThirdpartyAccountNotDefined=Account for third party not defined
 ProductAccountNotDefined=Account for product not defined
@@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group
 ReportThirdParty=List third party account
 DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
 ListAccounts=List of the accounting accounts
+UnknownAccountForThirdparty=Unknown third party account. We will use %s
+UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
 
 Pcgtype=Class of account
 Pcgsubtype=Subclass of account
@@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically
 AutomaticBindingDone=Automatic binding done
 
 ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
-MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
+MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s
 FicheVentilation=Binding card
 GeneralLedgerIsWritten=Transactions are written in the Ledger
 GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched.
@@ -210,7 +219,6 @@ AccountingJournals=Accounting journals
 AccountingJournal=Accounting journal
 NewAccountingJournal=New accounting journal
 ShowAccoutingJournal=Show accounting journal
-Code=碼
 Nature=類型
 AccountingJournalType1=Various operation
 AccountingJournalType2=可否銷售
@@ -221,8 +229,6 @@ AccountingJournalType9=Has-new
 ErrorAccountingJournalIsAlreadyUse=This journal is already use
 
 ## Export
-Exports=Exports
-Export=Export
 ExportDraftJournal=Export draft journal
 Modelcsv=Model of export
 OptionsDeactivatedForThisExportModel=For this export model, options are deactivated
diff --git a/htdocs/langs/zh_TW/admin.lang b/htdocs/langs/zh_TW/admin.lang
index b3662996060..eeae03e712f 100644
--- a/htdocs/langs/zh_TW/admin.lang
+++ b/htdocs/langs/zh_TW/admin.lang
@@ -140,13 +140,14 @@ SystemToolsArea=系統工具區
 SystemToolsAreaDesc=此區提供了管理功能,請點選選單來管理你想要的內容。
 Purge=Purge
 PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
-PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module (no risk of losing data)
+PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
 PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
 PurgeDeleteTemporaryFilesShort=Delete temporary files
 PurgeDeleteAllFilesInDocumentsDir=刪除所有文件目錄<b>%s。</b>臨時文件,而且文件附加到元素(第三方發票,...),進入流腦模組上傳將被刪除。
 PurgeRunNow=現在清除
 PurgeNothingToDelete=No directory or files to delete.
 PurgeNDirectoriesDeleted=<b>%s的</b>文件或目錄刪除。
+PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
 PurgeAuditEvents=清除所有事件
 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
 GenerateBackup=生成的備份
@@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se
 NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
 InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
 InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
-YouCanSubmitFile=For this step, you can send package using this tool: Select module file
+YouCanSubmitFile=For this step, you can submit your package file here :
 CurrentVersion=此系統軟體(Dolibarr)目前版本
 CallUpdatePage=Go to the page that updates the database structure and data: %s.
 LastStableVersion=Latest stable version
@@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal
 Module1120Desc=Request supplier commercial proposal and prices
 Module1200Name=螂
 Module1200Desc=螳螂一體化
-Module1400Name=會計
-Module1400Desc=Accounting management (double entries)
 Module1520Name=Document Generation
 Module1520Desc=Mass mail document generation
 Module1780Name=Tags/Categories
@@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS).
 Module50200Name=貝寶
 Module50200Desc=模組提供信用卡與Paypal網上支付頁面
 Module50400Name=Accounting (advanced)
-Module50400Desc=Accounting management (double entries)
+Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers)
 Module54000Name=PrintIPP
 Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
 Module55000Name=Poll, Survey or Vote
@@ -751,8 +750,10 @@ Permission401=閲讀折扣
 Permission402=建立/修改折扣
 Permission403=驗證折扣
 Permission404=刪除折扣
-Permission510=Read Salaries
-Permission512=Create/modify salaries
+Permission501=Read employee contracts/salaries
+Permission502=Create/modify employee contracts/salaries
+Permission511=Read payment of salaries
+Permission512=Create/modify payment of salaries
 Permission514=Delete salaries
 Permission517=Export salaries
 Permission520=Read Loans
@@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory
 RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
 RestoreMySQL=MySQL import
 ForcedToByAModule= 這項規則是被迫到<b>%s</b>的一個激活的模組
-PreviousDumpFiles=可用的數據庫備份轉儲文件
+PreviousDumpFiles=Generated database backup files
 WeekStartOnDay=每週的第一天
 RunningUpdateProcessMayBeRequired=運行升級進程似乎需要(程序版本%s版本%s從數據庫不同)
 YouMustRunCommandFromCommandLineAfterLoginToUser=您必須運行此命令從命令行殻用戶登錄後<b>進入%s。</b>
diff --git a/htdocs/langs/zh_TW/banks.lang b/htdocs/langs/zh_TW/banks.lang
index 7ba0be71a05..9255f85c8b4 100644
--- a/htdocs/langs/zh_TW/banks.lang
+++ b/htdocs/langs/zh_TW/banks.lang
@@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
 BankAccountModelModule=Document templates for bank accounts
 DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
 DocumentModelBan=Template to print a page with BAN information.
-NewVariousPayment=New various payment
-VariousPayment=Various payment
-VariousPayments=Various payments
-ShowVariousPayment=Show various payment
+NewVariousPayment=New miscellaneous payments
+VariousPayment=Miscellaneous payments
+VariousPayments=Miscellaneous payments
+ShowVariousPayment=Show miscellaneous payments
diff --git a/htdocs/langs/zh_TW/bills.lang b/htdocs/langs/zh_TW/bills.lang
index 81c1029f289..5ea35a6bddc 100644
--- a/htdocs/langs/zh_TW/bills.lang
+++ b/htdocs/langs/zh_TW/bills.lang
@@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes
 CardBill=發票卡
 PredefinedInvoices=預定義的發票
 Invoice=發票
+PdfInvoiceTitle=發票
 Invoices=發票
 InvoiceLine=發票線
 InvoiceCustomer=客戶發票
diff --git a/htdocs/langs/zh_TW/compta.lang b/htdocs/langs/zh_TW/compta.lang
index 8505bf63968..6285e1ff5c5 100644
--- a/htdocs/langs/zh_TW/compta.lang
+++ b/htdocs/langs/zh_TW/compta.lang
@@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V
 ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup)
 ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
 ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
-ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
 ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties
-ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined
+ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
 CloneTax=Clone a social/fiscal tax
 ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
 CloneTaxForNextMonth=Clone it for next month
diff --git a/htdocs/langs/zh_TW/errors.lang b/htdocs/langs/zh_TW/errors.lang
index 4fe69b16b2f..8b438c2db77 100644
--- a/htdocs/langs/zh_TW/errors.lang
+++ b/htdocs/langs/zh_TW/errors.lang
@@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
 ErrorNoWarehouseDefined=Error, no warehouses defined.
 ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
 ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
+ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
+ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
+ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
 
 # Warnings
 WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
diff --git a/htdocs/langs/zh_TW/install.lang b/htdocs/langs/zh_TW/install.lang
index 4eaf1122060..416f906de50 100644
--- a/htdocs/langs/zh_TW/install.lang
+++ b/htdocs/langs/zh_TW/install.lang
@@ -53,10 +53,10 @@ AdminLogin=登錄為Dolibarr數據庫所有者。
 PasswordAgain=第二次再次輸入密碼
 AdminPassword=密碼Dolibarr數據庫所有者。
 CreateDatabase=創建數據庫
-CreateUser=創建所有者
+CreateUser=Create owner or grant him permission on database
 DatabaseSuperUserAccess=數據庫服務器 - 超級用戶
 CheckToCreateDatabase=檢查中,如果數據庫不存在,必須創建。 <br>在這種情況下,必須填寫登錄/密碼為超級用戶帳戶在本頁面底部。
-CheckToCreateUser=如果數據庫所有者復選框不存在,必須創建。 <br>在這種情況下,必須選擇自己的登錄名和密碼,並填寫在本頁面底部的登錄/為超級用戶帳戶的密碼。如果此框未被選中,業主數據庫及其密碼必須存在。
+CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
 DatabaseRootLoginDescription=允許創建新的數據庫或新用戶,無用的,如果你的數據庫和數據庫登錄已經存在就像當你在一個網站舉辦的托管服務提供商是(用戶登錄)。
 KeepEmptyIfNoPassword=給空如果用戶沒有密碼(避免這種情況)
 SaveConfigurationFile=保存價值
diff --git a/htdocs/langs/zh_TW/main.lang b/htdocs/langs/zh_TW/main.lang
index d3783d05db8..2b684e945d2 100644
--- a/htdocs/langs/zh_TW/main.lang
+++ b/htdocs/langs/zh_TW/main.lang
@@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed
 FileGenerated=The file was successfully generated
 FileSaved=The file was successfully saved
 FileUploaded=檔案已上傳
-FileTransferComplete=File(s) was uploaded successfuly
+FileTransferComplete=File(s) was uploaded successfully
+FilesDeleted=File(s) successfully deleted
 FileWasNotUploaded=附件尚未上傳
 NbOfEntries=鈮條目
 GoToWikiHelpPage=Read online help (Internet access needed)
@@ -196,6 +197,7 @@ Parameter=參數名稱
 Parameters=參數清單
 Value=值
 PersonalValue=個人設定值
+NewObject=New %s
 NewValue=新值
 CurrentValue=當前值
 Code=碼
@@ -441,6 +443,7 @@ Reporting=報告
 Reportings=報表
 Draft=草案
 Drafts=草稿
+StatusInterInvoiced=
 Validated=驗證
 Opened=開放
 New=新
@@ -727,6 +730,7 @@ SetBankAccount=定義銀行帳號
 AccountCurrency=帳戶幣別
 ViewPrivateNote=View notes
 XMoreLines=%s line(s) hidden
+ShowMoreLines=Show more lines
 PublicUrl=公開網址
 AddBox=Add box
 SelectElementAndClick=Select an element and click %s
@@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account
 GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
 Deny=拒絕
 Denied=拒絕
+ListOf=List of %s
 ListOfTemplates=範本列表
 Gender=性別
 Genderman=男
diff --git a/htdocs/langs/zh_TW/modulebuilder.lang b/htdocs/langs/zh_TW/modulebuilder.lang
index e4812fa4e79..966b3117453 100644
--- a/htdocs/langs/zh_TW/modulebuilder.lang
+++ b/htdocs/langs/zh_TW/modulebuilder.lang
@@ -1,7 +1,7 @@
 # Dolibarr language file - Source file is en_US - loan
 ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
 EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
-EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...)
+EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
 ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
 ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong> (they are detected as editable when the file <strong>%s</strong> exists in root of module directory).
 NewModule=New module
@@ -9,10 +9,11 @@ NewObject=New object
 ModuleKey=Module key
 ObjectKey=Object key
 ModuleInitialized=Module initialized
-FilesForObjectInitialized=Files for new object initialized
+FilesForObjectInitialized=Files for new object '%s' initialized
+FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
 ModuleBuilderDescdescription=Enter here all general information that describe your module
-ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab).
-ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated.
+ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
+ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
 ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
 ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
 ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file.
@@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat
 DangerZone=Danger zone
 BuildPackage=Build package/documentation
 BuildDocumentation=Build documentation
-ModuleIsNotActive=This module was not activated yet (go into %s to make it live)
+ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here:
 ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
 DescriptionLong=Long description
 EditorName=Name of editor
@@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package
 PathToModuleDocumentation=Path to file of module/application documentation
 SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed.
 FileNotYetGenerated=File not yet generated
+SpecificationFile=File with business rules
+ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
+NotNull=Not NULL
+SearchAll=Used for 'search all'
+DatabaseIndex=Database index
+FileAlreadyExists=File %s already exists
+TriggersFile=File for triggers code
+HooksFile=File for hooks code
+WidgetFile=Widget file
+ReadmeFile=Readme file
+ChangeLog=ChangeLog file
+SqlFile=Sql file
+SqlFileKey=Sql file for keys
+AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
+UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
diff --git a/htdocs/langs/zh_TW/orders.lang b/htdocs/langs/zh_TW/orders.lang
index d66dcf2b3a2..8dda4af0a15 100644
--- a/htdocs/langs/zh_TW/orders.lang
+++ b/htdocs/langs/zh_TW/orders.lang
@@ -4,6 +4,7 @@ SuppliersOrdersArea=供應商的訂單面積
 OrderCard=訂單資訊
 OrderId=訂單編號
 Order=訂單
+PdfOrderTitle=訂單
 Orders=訂單
 OrderLine=在線訂單
 OrderDate=訂購日期
diff --git a/htdocs/langs/zh_TW/other.lang b/htdocs/langs/zh_TW/other.lang
index a6415dd7ac3..ef6761c7ee4 100644
--- a/htdocs/langs/zh_TW/other.lang
+++ b/htdocs/langs/zh_TW/other.lang
@@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date
 NextMonthOfInvoice=Following month (number 1-12) of invoice date
 TextNextMonthOfInvoice=Following month (text) of invoice date
 ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
+DocFileGeneratedInto=Doc file generated into <b>%s</b>.
 
 YearOfInvoice=Year of invoice date
 PreviousYearOfInvoice=Previous year of invoice date
diff --git a/htdocs/langs/zh_TW/propal.lang b/htdocs/langs/zh_TW/propal.lang
index 77d4f965056..28903c0ade3 100644
--- a/htdocs/langs/zh_TW/propal.lang
+++ b/htdocs/langs/zh_TW/propal.lang
@@ -6,6 +6,7 @@ ProposalsDraft=商業建議草案
 ProposalsOpened=Open commercial proposals
 Prop=商業建議
 CommercialProposal=商業建議
+PdfCommercialProposalTitle=商業建議
 ProposalCard=建議卡
 NewProp=新的商業建議
 NewPropal=新建議
diff --git a/htdocs/langs/zh_TW/salaries.lang b/htdocs/langs/zh_TW/salaries.lang
index 522bf0a65d7..7e0c80d3380 100644
--- a/htdocs/langs/zh_TW/salaries.lang
+++ b/htdocs/langs/zh_TW/salaries.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - Source file is en_US - salaries
 SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
-SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined
+SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
 SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses
 Salary=Salary
 Salaries=Salaries
diff --git a/htdocs/langs/zh_TW/website.lang b/htdocs/langs/zh_TW/website.lang
index 865bd3dc93d..d7063287f2d 100644
--- a/htdocs/langs/zh_TW/website.lang
+++ b/htdocs/langs/zh_TW/website.lang
@@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n
 DeleteWebsite=Delete website
 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
 WEBSITE_PAGENAME=Page name/alias
+WEBSITE_HTML_HEADER=HTML Header
 WEBSITE_CSS_URL=URL of external CSS file
 WEBSITE_CSS_INLINE=CSS content
-PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
+PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
 MediaFiles=Media library
-EditCss=Edit Style/CSS
+EditCss=Edit Style/CSS or HTML header
 EditMenu=Edit menu
 EditPageMeta=Edit Meta
 EditPageContent=Edit Content
 Website=Web site
-Webpage=Web page
-AddPage=Add page
+Webpage=Web page/container
+AddPage=Add page/container
 HomePage=Home Page
 PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
 RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
-PageDeleted=Page '%s' of website %s deleted
-PageAdded=Page '%s' added
+PageContent=Page/Contenair
+PageDeleted=Page/Contenair '%s' of website %s deleted
+PageAdded=Page/Contenair '%s' added
 ViewSiteInNewTab=View site in new tab
 ViewPageInNewTab=View page in new tab
 SetAsHomePage=Set as Home page
@@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs
 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on <strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server.
 PreviewSiteServedByWebServer=Preview %s in a new tab.<br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
 PreviewSiteServedByDolibarr=Preview %s in a new tab.<br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
+VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
 NoPageYet=No pages yet
+SyntaxHelp=Help on code syntax
+YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax: <strong>&lt;?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?&gt;</strong><br><br>To include a link to download a file stored into the documents/medias directory, use syntax:<br><strong>&lt;a href="/document.php?modulepart=medias&file=filename.ext"&gt;</strong>.
+ClonePage=Clone page/container
+CloneSite=Clone site
diff --git a/htdocs/langs/zh_TW/workflow.lang b/htdocs/langs/zh_TW/workflow.lang
index 35fda4766ef..5e28accfaa2 100644
--- a/htdocs/langs/zh_TW/workflow.lang
+++ b/htdocs/langs/zh_TW/workflow.lang
@@ -2,14 +2,16 @@
 WorkflowSetup=工作流模塊的設置
 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
 ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
-descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed
-descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed
+# Autocreate
+descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
+descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
 descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
-descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed
-descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
-descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
-descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
-descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
+descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
+# Autoclassify
+descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
+descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
+descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
 AutomaticCreation=Automatic creation
 AutomaticClassification=Automatic classification
-- 
GitLab


From cc78a666a09b64368888d994995287fd0cc6b947 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Wed, 2 Aug 2017 17:15:51 +0200
Subject: [PATCH 17/27] Fix missing status billed when
 WORKFLOW_BILL_ON_SHIPMENT is on

---
 htdocs/expedition/list.php | 76 +++++++++++++++++++++++---------------
 1 file changed, 47 insertions(+), 29 deletions(-)

diff --git a/htdocs/expedition/list.php b/htdocs/expedition/list.php
index 68f3add0229..7b842e3168b 100644
--- a/htdocs/expedition/list.php
+++ b/htdocs/expedition/list.php
@@ -50,6 +50,7 @@ $search_zip=GETPOST('search_zip','alpha');
 $search_state=trim(GETPOST("search_state"));
 $search_country=GETPOST("search_country",'int');
 $search_type_thirdparty=GETPOST("search_type_thirdparty",'int');
+$search_billed=GETPOST("search_billed",'int');
 $sall = GETPOST('sall', 'alphanohtml');
 $optioncss = GETPOST('optioncss','alpha');
 
@@ -100,7 +101,8 @@ $arrayfields=array(
     'e.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500),
     'e.fk_statut'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000),
     'l.ref'=>array('label'=>$langs->trans("DeliveryRef"), 'checked'=>1, 'enabled'=>$conf->livraison_bon->enabled),
-    'l.date_delivery'=>array('label'=>$langs->trans("DateReceived"), 'checked'=>1, 'enabled'=>$conf->livraison_bon->enabled)
+    'l.date_delivery'=>array('label'=>$langs->trans("DateReceived"), 'checked'=>1, 'enabled'=>$conf->livraison_bon->enabled),
+    'e.billed'=>array('label'=>$langs->trans("Billed"), 'checked'=>1, 'position'=>1000, 'enabled'=>(!empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT)))
 );
 
 // Extra fields
@@ -138,6 +140,7 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETP
 	$search_type='';
 	$search_country='';
 	$search_type_thirdparty='';
+	$search_billed='';
     $viewstatut='';
     $search_array_options=array();
 }
@@ -158,9 +161,9 @@ if (empty($reshook))
     }
 
 }
-    
-    
-    
+
+
+
 
 /*
  * View
@@ -174,7 +177,7 @@ $formcompany=new FormCompany($db);
 $helpurl='EN:Module_Shipments|FR:Module_Exp&eacute;ditions|ES:M&oacute;dulo_Expediciones';
 llxHeader('',$langs->trans('ListOfSendings'),$helpurl);
 
-$sql = "SELECT e.rowid, e.ref, e.ref_customer, e.date_expedition as date_expedition, e.date_delivery as date_livraison, l.date_delivery as date_reception, e.fk_statut,";
+$sql = "SELECT e.rowid, e.ref, e.ref_customer, e.date_expedition as date_expedition, e.date_delivery as date_livraison, l.date_delivery as date_reception, e.fk_statut, e.billed,";
 $sql.= ' s.rowid as socid, s.nom as name, s.town, s.zip, s.fk_pays, s.client, s.code_client, ';
 $sql.= " typent.code as typent_code,";
 $sql.= " state.code_departement as state_code, state.nom as state_name,";
@@ -210,6 +213,7 @@ if ($socid)
 if ($viewstatut <> '' && $viewstatut >= 0) {
 	$sql.= " AND e.fk_statut = ".$viewstatut;
 }
+if ($search_billed != '' && $search_billed >= 0) $sql.=' AND e.billed = '.$search_billed;
 if ($search_town)  $sql.= natural_search('s.town', $search_town);
 if ($search_zip)   $sql.= natural_search("s.zip",$search_zip);
 if ($search_state) $sql.= natural_search("state.nom",$search_state);
@@ -271,9 +275,9 @@ if ($resql)
 	    $tmpkey=preg_replace('/search_options_/','',$key);
 	    if ($val != '') $param.='&search_options_'.$tmpkey.'='.urlencode($val);
 	}
-	
+
 	//$massactionbutton=$form->selectMassAction('', $massaction == 'presend' ? array() : array('presend'=>$langs->trans("SendByMail"), 'builddoc'=>$langs->trans("PDFMerge")));
-	
+
 	$i = 0;
     print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">'."\n";
     if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
@@ -282,7 +286,7 @@ if ($resql)
     print '<input type="hidden" name="action" value="list">';
     print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
     print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
-    
+
 	print_barre_liste($langs->trans('ListOfSendings'), $page, $_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num, $nbtotalofrecords, '', 0, '', '', $limit);
 
     if ($sall)
@@ -290,7 +294,7 @@ if ($resql)
         foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
         print $langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall);
     }
-    
+
     $moreforfilter='';
     if (! empty($moreforfilter))
     {
@@ -304,7 +308,7 @@ if ($resql)
 
     $varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
     $selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage);	// This also change content of $arrayfields
-	
+
     print '<div class="div-table-responsive">';
     print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
 
@@ -324,9 +328,9 @@ if ($resql)
 	// Extra fields
 	if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
 	{
-	   foreach($extrafields->attribute_label as $key => $val) 
+	   foreach($extrafields->attribute_label as $key => $val)
 	   {
-           if (! empty($arrayfields["ef.".$key]['checked'])) 
+           if (! empty($arrayfields["ef.".$key]['checked']))
            {
 				$align=$extrafields->getAlignFlag($key);
 				print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
@@ -340,28 +344,28 @@ if ($resql)
 	if (! empty($arrayfields['e.datec']['checked']))  print_liste_field_titre($arrayfields['e.datec']['label'],$_SERVER["PHP_SELF"],"e.date_creation","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
 	if (! empty($arrayfields['e.tms']['checked']))    print_liste_field_titre($arrayfields['e.tms']['label'],$_SERVER["PHP_SELF"],"e.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
 	if (! empty($arrayfields['e.fk_statut']['checked'])) print_liste_field_titre($arrayfields['e.fk_statut']['label'],$_SERVER["PHP_SELF"],"e.fk_statut","",$param,'align="right"',$sortfield,$sortorder);
-	if (! empty($arrayfields['l.fk_statut']['checked'])) print_liste_field_titre($arrayfields['l.fk_statut']['label'], $_SERVER["PHP_SELF"],"l.fk_statut","",$param,'align="right"',$sortfield,$sortorder);
+	if (! empty($arrayfields['e.billed']['checked'])) print_liste_field_titre($arrayfields['e.billed']['label'],$_SERVER["PHP_SELF"],"e.billed","",$param,'align="center"',$sortfield,$sortorder);
 	print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="right"',$sortfield,$sortorder,'maxwidthsearch ');
 	print "</tr>\n";
 
 	// Lignes des champs de filtre
 	print '<tr class="liste_titre">';
 	// Ref
-	if (! empty($arrayfields['e.ref']['checked']))            
+	if (! empty($arrayfields['e.ref']['checked']))
 	{
 	    print '<td class="liste_titre">';
     	print '<input class="flat" size="6" type="text" name="search_ref_exp" value="'.$search_ref_exp.'">';
         print '</td>';
 	}
 	// Ref customer
-	if (! empty($arrayfields['e.ref_customer']['checked']))            
+	if (! empty($arrayfields['e.ref_customer']['checked']))
 	{
 	    print '<td class="liste_titre">';
     	print '<input class="flat" size="6" type="text" name="search_ref_customer" value="'.$search_ref_customer.'">';
         print '</td>';
 	}
 	// Thirdparty
-	if (! empty($arrayfields['s.nom']['checked']))            
+	if (! empty($arrayfields['s.nom']['checked']))
 	{
     	print '<td class="liste_titre" align="left">';
     	print '<input class="flat" type="text" size="8" name="search_company" value="'.dol_escape_htmltag($search_company).'">';
@@ -393,18 +397,18 @@ if ($resql)
     	print '</td>';
     }
 	// Date delivery planned
-	if (! empty($arrayfields['e.date_delivery']['checked']))            
+	if (! empty($arrayfields['e.date_delivery']['checked']))
 	{
     	print '<td class="liste_titre">&nbsp;</td>';
 	}
-	if (! empty($arrayfields['l.ref']['checked']))            
+	if (! empty($arrayfields['l.ref']['checked']))
 	{
     	// Delivery ref
 		print '<td class="liste_titre">';
 		print '<input class="flat" size="10" type="text" name="search_ref_liv" value="'.$search_ref_liv.'"';
 		print '</td>';
 	}
-	if (! empty($arrayfields['l.date_delivery']['checked']))            
+	if (! empty($arrayfields['l.date_delivery']['checked']))
 	{
 	    // Date received
 		print '<td class="liste_titre">&nbsp;</td>';
@@ -455,6 +459,13 @@ if ($resql)
 	    print $form->selectarray('viewstatut', array('0'=>$langs->trans('StatusSendingDraftShort'),'1'=>$langs->trans('StatusSendingValidatedShort'),'2'=>$langs->trans('StatusSendingProcessedShort')),$viewstatut,1);
 	    print '</td>';
 	}
+	// Status billed
+	if (! empty($arrayfields['e.billed']['checked']))
+	{
+	    print '<td class="liste_titre maxwidthonsmartphone" align="center">';
+	    print $form->selectyesno('search_billed', $search_billed, 1, 0, 1);
+	    print '</td>';
+	}
 	// Action column
 	print '<td class="liste_titre" align="middle">';
 	$searchpitco=$form->showFilterAndCheckAddButtons(0);
@@ -471,15 +482,15 @@ if ($resql)
 
     	$shipment->id=$obj->rowid;
     	$shipment->ref=$obj->ref;
-    	
+
     	$companystatic->id=$obj->socid;
     	$companystatic->ref=$obj->name;
     	$companystatic->name=$obj->name;
-		
+
 		$var=!$var;
 
     	print "<tr ".$bc[$var].">";
-    	 
+
 		// Ref
 		if (! empty($arrayfields['e.ref']['checked']))
 		{
@@ -488,7 +499,7 @@ if ($resql)
     		print "</td>\n";
     		if (! $i) $totalarray['nbfield']++;
 		}
-		
+
 		// Ref customer
 		if (! empty($arrayfields['e.ref_customer']['checked']))
 		{
@@ -496,8 +507,8 @@ if ($resql)
 		    print $obj->ref_customer;
 		    print "</td>\n";
 		    if (! $i) $totalarray['nbfield']++;
-		}		
-		
+		}
+
 		// Third party
 		if (! empty($arrayfields['s.nom']['checked']))
 		{
@@ -546,7 +557,7 @@ if ($resql)
 		    print '</td>';
 		    if (! $i) $totalarray['nbfield']++;
 		}
-		
+
 		// Date delivery planed
 		if (! empty($arrayfields['e.date_delivery']['checked']))
 		{
@@ -558,7 +569,7 @@ if ($resql)
     		}*/
     		print "</td>\n";
 		}
-		
+
 		if (! empty($arrayfields['l.ref']['checked']) || ! empty($arrayfields['l.date_delivery']['checked']))
         {
 		    $shipment->fetchObjectLinked($shipment->id,$shipment->element);
@@ -572,7 +583,7 @@ if ($resql)
                 print !empty($receiving) ? $receiving->getNomUrl($db) : '';
                 print '</td>';
             }
-            
+
     		if (! empty($arrayfields['l.date_delivery']['checked']))
             {
                 // Date received
@@ -626,10 +637,17 @@ if ($resql)
 		    print '<td align="right" class="nowrap">'.$shipment->LibStatut($obj->fk_statut,5).'</td>';
 		    if (! $i) $totalarray['nbfield']++;
 		}
+		// Billed
+		if (! empty($arrayfields['e.billed']['checked']))
+		{
+			print '<td align="center">'.yn($obj->billed).'</td>';
+			if (! $i) $totalarray['nbfield']++;
+		}
+
 		// Action column
 		print '<td></td>';
 		if (! $i) $totalarray['nbfield']++;
-		
+
 		print "</tr>\n";
 
 		$i++;
-- 
GitLab


From 52d39d9d5a16a0b1d63717a3565572ac381b3f82 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Wed, 2 Aug 2017 17:45:35 +0200
Subject: [PATCH 18/27] Code comment

---
 htdocs/expedition/card.php | 220 +++++++++++++++++++------------------
 1 file changed, 111 insertions(+), 109 deletions(-)

diff --git a/htdocs/expedition/card.php b/htdocs/expedition/card.php
index a7f4043fcd1..f0aaad677d6 100644
--- a/htdocs/expedition/card.php
+++ b/htdocs/expedition/card.php
@@ -120,12 +120,12 @@ if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'e
 
 if (empty($reshook))
 {
-    if ($cancel) 
-	{ 
-		$action = ''; 
+    if ($cancel)
+	{
+		$action = '';
 		$object->fetch($id); // show shipment also after canceling modification
 	}
-    
+
 	include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php';		// Must be include, not include_once
 
 	// Set incoterm
@@ -134,13 +134,13 @@ if (empty($reshook))
 	    $object->fetch($id);
 	    $result = $object->reOpen();
 	}
-	
+
 	// Set incoterm
 	if ($action == 'set_incoterms' && !empty($conf->incoterm->enabled))
 	{
 	    $result = $object->setIncoterms(GETPOST('incoterm_id', 'int'), GETPOST('location_incoterms', 'alpha'));
 	}
-	
+
 	if ($action == 'setref_customer')
 	{
         $result = $object->fetch($id);
@@ -157,14 +157,14 @@ if (empty($reshook))
             exit;
         }
 	}
-	
+
 	if ($action == 'update_extras')
 	{
 	    // Fill array 'array_options' with data from update form
 	    $extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
 	    $ret = $extrafields->setOptionalsFromPost($extralabels, $object, GETPOST('attribute'));
 	    if ($ret < 0) $error++;
-	
+
 	    if (! $error)
 	    {
 	        // Actions on extra fields (by external module or standard code)
@@ -180,11 +180,11 @@ if (empty($reshook))
 	        } else if ($reshook < 0)
 	            $error++;
 	    }
-	
+
 	    if ($error)
 	        $action = 'edit_extras';
 	}
-	
+
 	// Create shipment
 	if ($action == 'add' && $user->rights->expedition->creer)
 	{
@@ -255,18 +255,18 @@ if (empty($reshook))
     				    $sub_qty[$j]['q']=GETPOST($qty,'int');				// the qty we want to move for this stock record
     				    $sub_qty[$j]['id_batch']=GETPOST($batch,'int');		// the id into llx_product_batch of stock record to move
     					$subtotalqty+=$sub_qty[$j]['q'];
-    				
+
     					//var_dump($qty);var_dump($batch);var_dump($sub_qty[$j]['q']);var_dump($sub_qty[$j]['id_batch']);
-    					
+
     					$j++;
     					$batch="batchl".$i."_".$j;
     					$qty = "qtyl".$i.'_'.$j;
     				}
-    
+
     				$batch_line[$i]['detail']=$sub_qty;		// array of details
     				$batch_line[$i]['qty']=$subtotalqty;
     				$batch_line[$i]['ix_l']=GETPOST($idl,'int');
-    
+
     				$totalqty+=$subtotalqty;
 			    }
 			    else
@@ -293,11 +293,11 @@ if (empty($reshook))
 			        $stockLine[$i][$j]['ix_l']=GETPOST($idl,'int');
 
 			        $totalqty+=GETPOST($qty,'int');
-			        
+
 			        $j++;
 			        $stockLocation="ent1".$i."_".$j;
 			        $qty = "qtyl".$i.'_'.$j;
-			    }			    
+			    }
 			}
 			else
 			{
@@ -305,7 +305,7 @@ if (empty($reshook))
 				//shipment line for product with no batch management and no multiple stock location
 				if (GETPOST($qty,'int') > 0) $totalqty+=GETPOST($qty,'int');
 			}
-				
+
 			// Extrafields
 			$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
             $array_options[$i] = $extrafieldsline->getOptionalsFromPost($extralabelsline, $i);
@@ -316,9 +316,9 @@ if (empty($reshook))
 					unset($_POST["options_" . $key]);
 				}
 			}
-			
+
 	    }
-	
+
 	    //var_dump($batch_line[2]);
 
 	    if ($totalqty > 0)		// There is at least one thing to ship
@@ -328,7 +328,7 @@ if (empty($reshook))
 	        {
 	            $qty = "qtyl".$i;
 				if (! isset($batch_line[$i]))
-				{	
+				{
 					// not batch mode
 					if (isset($stockLine[$i]))
 					{
@@ -356,7 +356,7 @@ if (empty($reshook))
 							$entrepot_id = is_numeric(GETPOST($ent,'int'))?GETPOST($ent,'int'):GETPOST('entrepot_id','int');
 							if ($entrepot_id < 0) $entrepot_id='';
 							if (! ($objectsrc->lines[$i]->fk_product > 0)) $entrepot_id = 0;
-						
+
 							$ret=$object->addline($entrepot_id, GETPOST($idl,'int'), GETPOST($qty,'int'), $array_options[$i]);
 							if ($ret < 0)
 							{
@@ -367,7 +367,7 @@ if (empty($reshook))
 					}
 				}
 				else
-				{	
+				{
 					// batch mode
 					if ($batch_line[$i]['qty']>0)
 					{
@@ -379,11 +379,11 @@ if (empty($reshook))
 						}
 					}
 				}
-	        }	        
+	        }
 	        // Fill array 'array_options' with data from add form
 	        $ret = $extrafields->setOptionalsFromPost($extralabels, $object);
 	        if ($ret < 0) $error++;
-	        
+
 	        if (! $error)
 	        {
 	            $ret=$object->create($user);		// This create shipment (like Odoo picking) and line of shipments. Stock movement will when validating shipment.
@@ -437,9 +437,9 @@ if (empty($reshook))
 	)
 	{
 	    $object->fetch_thirdparty();
-	    
+
 	    $result = $object->valid($user);
-	    
+
 	    if ($result < 0)
 	    {
 			$langs->load("errors");
@@ -632,7 +632,7 @@ if ($action == 'create2')
     $action=''; $id=''; $ref='';
 }
 
-// Mode creation. 
+// Mode creation.
 if ($action == 'create')
 {
     $expe = new Expedition($db);
@@ -756,15 +756,15 @@ if ($action == 'create')
             print '<td colspan="3">';
             print '<input name="tracking_number" size="20" value="'.GETPOST('tracking_number','alpha').'">';
             print "</td></tr>\n";
-            
+
             // Other attributes
             $parameters = array('objectsrc' => $objectsrc, 'colspan' => ' colspan="3"', 'socid'=>$socid);
             $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$expe,$action);    // Note that $action and $object may have been modified by hook
-            
+
             if (empty($reshook) && ! empty($extrafields->attribute_label)) {
             	print $expe->showOptionals($extrafields, 'edit');
             }
-            
+
 
             // Incoterms
 			if (!empty($conf->incoterm->enabled))
@@ -786,12 +786,12 @@ if ($action == 'create')
     			print $form->selectarray('model', $liste, $conf->global->EXPEDITION_ADDON_PDF);
                 print "</td></tr>\n";
 			}
-			
+
             print "</table>";
 
             dol_fiche_end();
 
-            
+
             // Shipment lines
 
             $numAsked = count($object->lines);
@@ -819,14 +819,14 @@ if ($action == 'create')
 
 
             print '<br>';
-            
-            
+
+
             print '<table class="noborder" width="100%">';
 
 
             // Load shipments already done for same order
             $object->loadExpeditions();
-            
+
             if ($numAsked)
             {
                 print '<tr class="liste_titre">';
@@ -834,7 +834,7 @@ if ($action == 'create')
                 print '<td align="center">'.$langs->trans("QtyOrdered").'</td>';
                 print '<td align="center">'.$langs->trans("QtyShipped").'</td>';
                 print '<td align="center">'.$langs->trans("QtyToShip");
-				if (empty($conf->productbatch->enabled)) 
+				if (empty($conf->productbatch->enabled))
 				{
 	                print ' <br>(<a href="#" id="autofill">'.$langs->trans("Fill").'</a>';
 	                print ' / <a href="#" id="autoreset">'.$langs->trans("Reset").'</a>)';
@@ -871,7 +871,7 @@ if ($action == 'create')
                 if (! empty($line->date_end)) $type=1;
 
                 print "<tr ".$bc[$var].">\n";
-                
+
                 // Product label
                 if ($line->fk_product > 0)  // If predefined product
                 {
@@ -899,7 +899,7 @@ if ($action == 'create')
                     {
                         print ($line->desc && $line->desc!=$line->product_label)?'<br>'.dol_htmlentitiesbr($line->desc):'';
                     }
-                    
+
                     print '</td>';
                 }
                 else
@@ -944,7 +944,7 @@ if ($action == 'create')
 					$quantityToBeDelivered = $quantityAsked - $quantityDelivered;
 				}
                 $warehouse_id = GETPOST('entrepot_id','int');
-			
+
 				$warehouseObject = null;
 				if ($warehouse_id > 0 || ! ($line->fk_product > 0) || empty($conf->stock->enabled))     // If warehouse was already selected or if product is not a predefined, we go into this part with no multiwarehouse selection
 				{
@@ -1026,10 +1026,10 @@ if ($action == 'create')
 					{
 					    // Product need lot
 						print '<td></td><td></td></tr>';	// end line and start a new one for lot/serial
-						
+
 						$staticwarehouse=new Entrepot($db);
 						if ($warehouse_id > 0) $staticwarehouse->fetch($warehouse_id);
-						
+
 						$subj=0;
 						// Define nb of lines suggested for this order line
 						$nbofsuggested=0;
@@ -1052,11 +1052,11 @@ if ($action == 'create')
 								print '<td colspan="3" ></td><td align="center">';
 								print '<input name="qtyl'.$indiceAsked.'_'.$subj.'" id="qtyl'.$indiceAsked.'_'.$subj.'" type="text" size="4" value="'.$deliverableQty.'">';
 								print '</td>';
-		
+
 								print '<td align="left">';
-		
+
 								print $staticwarehouse->getNomUrl(0).' / ';
-		
+
 								print '<!-- Show details of lot -->';
 								print '<input name="batchl'.$indiceAsked.'_'.$subj.'" type="hidden" value="'.$dbatch->id.'">';
 								print $langs->trans("DetailBatchFormat", $dbatch->batch, dol_print_date($dbatch->eatby,"day"), dol_print_date($dbatch->sellby,"day"), $dbatch->qty);
@@ -1075,28 +1075,28 @@ if ($action == 'create')
 						    print '<tr '.$bc[$var].'><td colspan="3"></td><td align="center">';
 							print '<input name="qtyl'.$indiceAsked.'_'.$subj.'" id="qtyl'.$indiceAsked.'_'.$subj.'" type="text" size="4" value="0" disabled="disabled"> ';
 							print '</td>';
-							
+
 							print '<td align="left">';
 							print img_warning().' '.$langs->trans("NoProductToShipFoundIntoStock", $staticwarehouse->libelle);
 							print '</td></tr>';
 						}
 					}
 				}
-				else 
+				else
 				{
 					// ship from multiple locations
 					if (empty($conf->productbatch->enabled) || ! $product->hasbatch())
 					{
 					    print '<td></td><td></td></tr>';	// end line and start a new one for each warehouse
 					    print '<!-- Case warehouse not already known and product does not need lot -->';
-					    	
+
 						print '<input name="idl'.$indiceAsked.'" type="hidden" value="'.$line->id.'">';
 						$subj=0;
     					// Define nb of lines suggested for this order line
 						$nbofsuggested=0;
 						foreach ($product->stock_warehouse as $warehouse_id=>$stock_warehouse)
 						{
-							if ($stock_warehouse->real > 0) 
+							if ($stock_warehouse->real > 0)
 							{
                                 $nbofsuggested++;
 						    }
@@ -1105,7 +1105,7 @@ if ($action == 'create')
 						{
 							$warehouseObject=new Entrepot($db);
 							$warehouseObject->fetch($warehouse_id);
-							if ($stock_warehouse->real > 0) 
+							if ($stock_warehouse->real > 0)
 							{
 								$stock = + $stock_warehouse->real; // Convert it to number
 								$deliverableQty = min($quantityToBeDelivered,$stock);
@@ -1120,7 +1120,7 @@ if ($action == 'create')
 								}
 								else print $langs->trans("NA");
 								print '</td>';
-								
+
 								// Stock
 								if (! empty($conf->stock->enabled))
 								{
@@ -1128,10 +1128,10 @@ if ($action == 'create')
 									if ($line->product_type == 0 || ! empty($conf->global->STOCK_SUPPORTS_SERVICES))
 									{
 										print $warehouseObject->getNomUrl(0).' ';
-										 
+
 										print '<!-- Show details of stock -->';
 										print '('.$stock.')';
-									   
+
 									}
 									else
 									{
@@ -1179,7 +1179,7 @@ if ($action == 'create')
 
 						$subj=0;
 						print '<input name="idl'.$indiceAsked.'" type="hidden" value="'.$line->id.'">';
-						
+
 						$warehouseObject=new Entrepot($db);
 						$productlotObject=new Productlot($db);
 						// Define nb of lines suggested for this order line
@@ -1193,7 +1193,7 @@ if ($action == 'create')
 								}
 						    }
 						}
-						foreach ($product->stock_warehouse as $warehouse_id=>$stock_warehouse) 
+						foreach ($product->stock_warehouse as $warehouse_id=>$stock_warehouse)
 						{
 							$warehouseObject->fetch($warehouse_id);
 							if (($stock_warehouse->real > 0) && (count($stock_warehouse->detail_batch))) {
@@ -1205,11 +1205,11 @@ if ($action == 'create')
 									print '<!-- subj='.$subj.'/'.$nbofsuggested.' --><tr '.((($subj + 1) == $nbofsuggested)?$bc[$var]:'').'><td colspan="3"></td><td align="center">';
 									print '<input name="qtyl'.$indiceAsked.'_'.$subj.'" id="qtyl'.$indiceAsked.'_'.$subj.'" type="text" size="4" value="'.$deliverableQty.'">';
 									print '</td>';
-									 
+
 									print '<td align="left">';
-									 
+
 									print $warehouseObject->getNomUrl(0).' / ';
-									 
+
 									print '<!-- Show details of lot -->';
 									print '<input name="batchl'.$indiceAsked.'_'.$subj.'" type="hidden" value="'.$dbatch->id.'">';
 									//print $langs->trans("DetailBatchFormat", $dbatch->batch, dol_print_date($dbatch->eatby,"day"), dol_print_date($dbatch->sellby,"day"), $dbatch->qty);
@@ -1247,12 +1247,12 @@ if ($action == 'create')
 						    print $langs->trans("NA");
 						}
 						print '</td>';
-						
+
 						print '<td align="left">';
 						if ($line->product_type == 0 || ! empty($conf->global->STOCK_SUPPORTS_SERVICES))
 						{
-							$warehouse_selected_id = GETPOST('entrepot_id','int');							
-    						if ($warehouse_selected_id > 0) 
+							$warehouse_selected_id = GETPOST('entrepot_id','int');
+    						if ($warehouse_selected_id > 0)
     						{
     							$warehouseObject=new Entrepot($db);
     							$warehouseObject->fetch($warehouse_selected_id);
@@ -1272,10 +1272,10 @@ if ($action == 'create')
 						print '</tr>';
 					}
 				}
-				
-				
+
+
 				//Display lines extrafields
-				if (is_array($extralabelslines) && count($extralabelslines)>0) 
+				if (is_array($extralabelslines) && count($extralabelslines)>0)
 				{
 					$colspan=5;
 					$line = new ExpeditionLigne($db);
@@ -1325,14 +1325,14 @@ else if ($id || $ref)
 
 		$soc = new Societe($db);
 		$soc->fetch($object->socid);
-		
+
 		$res = $object->fetch_optionals($object->id, $extralabels);
 
 		$head=shipping_prepare_head($object);
 		dol_fiche_head($head, 'shipping', $langs->trans("Shipment"), 0, 'sending');
 
 		$formconfirm='';
-		
+
 		// Confirm deleteion
 		if ($action == 'delete')
 		{
@@ -1378,18 +1378,18 @@ else if ($id || $ref)
 		    if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
 		    elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
 		}
-		
+
 		// Print form confirm
 		print $formconfirm;
-		
-		
+
+
 		// Calculate totalWeight and totalVolume for all products
 		// by adding weight and volume of each product line.
 		$tmparray=$object->getTotalWeightVolume();
 		$totalWeight=$tmparray['weight'];
 		$totalVolume=$tmparray['volume'];
-		
-		
+
+
 		if ($typeobject == 'commande' && $object->$typeobject->id && ! empty($conf->commande->enabled))
 		{
 		    $objectsrc=new Commande($db);
@@ -1444,15 +1444,15 @@ else if ($id || $ref)
             }
         }
 		$morehtmlref.='</div>';
-		
+
 
     	dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
-    	
-    	
+
+
     	print '<div class="fichecenter">';
     	print '<div class="fichehalfleft">';
     	print '<div class="underbanner clearboth"></div>';
-    	
+
         print '<table class="border" width="100%">';
 
 		// Linked documents
@@ -1535,7 +1535,7 @@ else if ($id || $ref)
 			if (!empty($object->trueWeight)) print ' ('.$langs->trans("SumOfProductWeights").': ';
 			//print $totalWeight.' '.measuring_units_string(0,"weight");
 			print showDimensionInBestUnit($totalWeight, 0, "weight", $langs, isset($conf->global->MAIN_WEIGHT_DEFAULT_ROUND)?$conf->global->MAIN_WEIGHT_DEFAULT_ROUND:-1, isset($conf->global->MAIN_WEIGHT_DEFAULT_UNIT)?$conf->global->MAIN_WEIGHT_DEFAULT_UNIT:'no');
-			//if (empty($object->trueWeight)) print ' ('.$langs->trans("Calculated").')'; 
+			//if (empty($object->trueWeight)) print ' ('.$langs->trans("Calculated").')';
 			if (!empty($object->trueWeight)) print ')';
 		}
 		print '</td></tr>';
@@ -1582,7 +1582,7 @@ else if ($id || $ref)
 		print '<td colspan="3">';
 		$calculatedVolume=0;
 		$volumeUnit=0;
-		if ($object->trueWidth && $object->trueHeight && $object->trueDepth) 
+		if ($object->trueWidth && $object->trueHeight && $object->trueDepth)
 		{
 		    $calculatedVolume=($object->trueWidth * $object->trueHeight * $object->trueDepth);
 		    $volumeUnit=$object->size_units * 3;
@@ -1590,7 +1590,7 @@ else if ($id || $ref)
 		// If sending volume not defined we use sum of products
 		if ($calculatedVolume > 0)
 		{
-			if ($volumeUnit < 50) 
+			if ($volumeUnit < 50)
 			{
 			    //print $calculatedVolume.' '.measuring_units_string($volumeUnit,"volume");
 			    print showDimensionInBestUnit($calculatedVolume, $volumeUnit, "volume", $langs, isset($conf->global->MAIN_VOLUME_DEFAULT_ROUND)?$conf->global->MAIN_VOLUME_DEFAULT_ROUND:-1, isset($conf->global->MAIN_VOLUME_DEFAULT_UNIT)?$conf->global->MAIN_VOLUME_DEFAULT_UNIT:'no');
@@ -1611,14 +1611,14 @@ else if ($id || $ref)
 		// Other attributes
 		$cols = 2;
 		include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php';
-		
+
 		print '</table>';
-		
+
 		print '</div>';
 		print '<div class="fichehalfright">';
 		print '<div class="ficheaddleft">';
 		print '<div class="underbanner clearboth"></div>';
-		
+
 		print '<table class="border centpercent">';
 
 		// Sending method
@@ -1652,7 +1652,7 @@ else if ($id || $ref)
 		}
 		print '</td>';
 		print '</tr>';
-		
+
 		// Tracking Number
 		print '<tr><td class="titlefield">'.$form->editfieldkey("TrackingNumber",'trackingnumber',$object->tracking_number,$object,$user->rights->expedition->creer).'</td><td colspan="3">';
 		print $form->editfieldval("TrackingNumber",'trackingnumber',$object->tracking_url,$object,$user->rights->expedition->creer,'string',$object->tracking_number);
@@ -1682,19 +1682,19 @@ else if ($id || $ref)
 		}
 
 		print "</table>";
-		
+
 		print '</div>';
 		print '</div>';
 		print '</div>';
-			
+
 		print '<div class="clearboth"></div>';
-			
+
 
 		/*
 		 * Lines of products
 		 */
 		print '<br>';
-		
+
         print '<div class="div-table-responsive-no-min">';
 		print '<table class="noborder" width="100%">';
 		print '<tr class="liste_titre">';
@@ -1717,7 +1717,7 @@ else if ($id || $ref)
 		{
             print '<td align="center">'.$langs->trans("QtyInOtherShipments").'</td>';
 		}
-		
+
 		print '<td align="center">'.$langs->trans("CalculatedWeight").'</td>';
 		print '<td align="center">'.$langs->trans("CalculatedVolume").'</td>';
 		//print '<td align="center">'.$langs->trans("Size").'</td>';
@@ -1778,7 +1778,7 @@ else if ($id || $ref)
     		{
     		    $num = $db->num_rows($resql);
     		    $i = 0;
-    		
+
     		    while($i < $num)
     		    {
         		    $obj = $db->fetch_object($resql);
@@ -1885,7 +1885,7 @@ else if ($id || $ref)
     			        }
     			    }
     			}
-    		}			
+    		}
 			print '</td>';
 
 			// Weight
@@ -1945,7 +1945,7 @@ else if ($id || $ref)
 						}
 						print $form->textwithtooltip(img_picto('', 'object_barcode').' '.$langs->trans("DetailBatchNumber"),$detail);
 					}
-					else 
+					else
 					{
 						print $langs->trans("NA");
 					}
@@ -1955,7 +1955,7 @@ else if ($id || $ref)
 				}
 			}
 			print "</tr>";
-			
+
 			// Display lines extrafields
 			if (is_array($extralabelslines) && count($extralabelslines)>0) {
 				$colspan= empty($conf->productbatch->enabled) ? 5 : 6;
@@ -1968,9 +1968,9 @@ else if ($id || $ref)
 
 			$var=!$var;
 		}
-		
+
 		// TODO Show also lines ordered but not delivered
-		
+
 		print "</table>\n";
 		print '</div>';
 	}
@@ -1981,7 +1981,7 @@ else if ($id || $ref)
 
 	$object->fetchObjectLinked($object->id,$object->element);
 
-	
+
 	/*
 	 *    Boutons actions
 	 */
@@ -2008,14 +2008,14 @@ else if ($id || $ref)
 					print '<a class="butActionRefused" href="#" title="'.$langs->trans("NotAllowed").'">'.$langs->trans("Validate").'</a>';
 				}
 			}
-	
+
 			// TODO add alternative status
 			// 0=draft, 1=validated, 2=billed, we miss a status "delivered" (only available on order)
 			if ($object->statut == 2 && $object->billed && $user->rights->expedition->creer)
 			{
 			    print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=reopen">'.$langs->trans("ReOpen").'</a>';
 			}
-			
+
 			// Send
 			if ($object->statut > 0)
 			{
@@ -2025,16 +2025,18 @@ else if ($id || $ref)
 				}
 				else print '<a class="butActionRefused" href="#">'.$langs->trans('SendByMail').'</a>';
 			}
-	
-			// Create bill and Close shipment
+
+			// Create bill
 			if (! empty($conf->facture->enabled) && $object->statut > 0)
 			{
 				if ($user->rights->facture->creer)
 				{
+					// TODO show button only   if (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))
+					// If we do that, we must also make this option official.
 					print '<a class="butAction" href="'.DOL_URL_ROOT.'/compta/facture.php?action=create&amp;origin='.$object->element.'&amp;originid='.$object->id.'&amp;socid='.$object->socid.'">'.$langs->trans("CreateBill").'</a>';
 				}
 			}
-	
+
 			// This is just to generate a delivery receipt
 			//var_dump($object->linkedObjectsIds['delivery']);
 			if ($conf->livraison_bon->enabled && ($object->statut == 1 || $object->statut == 2) && $user->rights->expedition->livraison->creer && count($object->linkedObjectsIds['delivery']) == 0)
@@ -2056,14 +2058,14 @@ else if ($id || $ref)
 					print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action='.$paramaction.'">'.$langs->trans($label).'</a>';
 				}
 			}
-	
+
 			if ($user->rights->expedition->supprimer)
 			{
 				print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=delete">'.$langs->trans("Delete").'</a>';
 			}
-			
+
 		}
-		
+
 		print '</div>';
 	}
 
@@ -2071,11 +2073,11 @@ else if ($id || $ref)
 	/*
 	 * Documents generated
 	 */
-	
+
 	if ($action != 'presend')
 	{
         print '<div class="fichecenter"><div class="fichehalfleft">';
-	    
+
         $objectref = dol_sanitizeFileName($object->ref);
 		$filedir = $conf->expedition->dir_output . "/sending/" .$objectref;
 
@@ -2086,12 +2088,12 @@ else if ($id || $ref)
 
 		print $formfile->showdocuments('expedition',$objectref,$filedir,$urlsource,$genallowed,$delallowed,$object->modelpdf,1,0,0,28,0,'','','',$soc->default_lang);
 
-		
+
 		// Show links to link elements
 		//$linktoelem = $form->showLinkToObjectBlock($object, null, array('order'));
 		$somethingshown = $form->showLinkedObjectBlock($object, '');
 
-		
+
 		print '</div><div class="fichehalfright"><div class="ficheaddleft">';
 
 		// List of actions on element
@@ -2102,11 +2104,11 @@ else if ($id || $ref)
 		print '</div></div></div>';
 	}
 
-	
+
 	/*
 	 * Action presend
 	 */
-	
+
 	//Select mail models is same action as presend
 	if (GETPOST('modelselected')) {
 		$action = 'presend';
@@ -2167,7 +2169,7 @@ else if ($id || $ref)
 		{
 			include DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
 			$formmail->frommail=dolAddEmailTrackId($formmail->frommail, 'shi'.$object->id);
-		}		
+		}
 		$formmail->withfrom=1;
 		$liste=array();
 		foreach ($object->thirdparty->thirdparty_and_contact_email_array(1) as $key=>$value)	$liste[$key]=$value;
@@ -2200,7 +2202,7 @@ else if ($id || $ref)
 		{
     		$contactarr=$objectsrc->liste_contact(-1,'external');
 		}
-		
+
 		if (is_array($contactarr) && count($contactarr)>0) {
 			foreach($contactarr as $contact) {
 
-- 
GitLab


From c38d59a4b65c63c3e379e5fb526145aa89c2c2cf Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Wed, 2 Aug 2017 22:26:01 +0200
Subject: [PATCH 19/27] Fix regression

---
 htdocs/langs/ru_RU/main.lang | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/htdocs/langs/ru_RU/main.lang b/htdocs/langs/ru_RU/main.lang
index 9eba30dd6eb..4878b1a1be1 100644
--- a/htdocs/langs/ru_RU/main.lang
+++ b/htdocs/langs/ru_RU/main.lang
@@ -8,19 +8,19 @@ FONTFORPDF=freemono
 FONTSIZEFORPDF=8
 SeparatorDecimal=,
 SeparatorThousand=None
-FormatDateShort=%d.%м.%Г
-FormatDateShortInput=%d.%м.%Г
-FormatDateShortJava=ММ/дд/гггг
-FormatDateShortJavaInput=ММ/дд/гггг
-FormatDateShortJQuery=мм/дд/гг
-FormatDateShortJQueryInput=мм/дд/гг
+FormatDateShort=%d.%m.%Y
+FormatDateShortInput=%d.%m.%Y
+FormatDateShortJava=dd.MM.yyyy
+FormatDateShortJavaInput=dd.MM.yyyy
+FormatDateShortJQuery=dd.mm.yy
+FormatDateShortJQueryInput=dd.mm.yy
 FormatHourShortJQuery=ЧЧ:ММ
 FormatHourShort=%H:%M
 FormatHourShortDuration=%H:%M
 FormatDateTextShort=%d %b %Y
 FormatDateText=%d %B %Y
 FormatDateHourShort=%d.%m.%Y %H:%M
-FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p
+FormatDateHourSecShort=%d.%m.%Y %I:%M:%S %p
 FormatDateHourTextShort=%d %b %Y %H:%M
 FormatDateHourText=%d %B %Y %H:%M
 DatabaseConnection=Подключение к базе данных
-- 
GitLab


From a8e2f95c39d17f8ad7d4eb1dc5a39f8b0ee6d94f Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Thu, 3 Aug 2017 10:45:52 +0200
Subject: [PATCH 20/27] Better help

---
 htdocs/core/modules/modCron.class.php | 2 +-
 htdocs/langs/en_US/cron.lang          | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/htdocs/core/modules/modCron.class.php b/htdocs/core/modules/modCron.class.php
index 7f949501023..731bcaf02f9 100644
--- a/htdocs/core/modules/modCron.class.php
+++ b/htdocs/core/modules/modCron.class.php
@@ -105,7 +105,7 @@ class modCron extends DolibarrModules
 			1=>array('label'=>'MakeLocalDatabaseDumpShort', 'jobtype'=>'method', 'class'=>'core/class/utils.class.php', 'objectname'=>'Utils', 'method'=>'dumpDatabase', 'parameters'=>'none,auto,1,auto,10', 'comment'=>'MakeLocalDatabaseDump', 'frequency'=>1, 'unitfrequency'=>3600 * 24 * 7, 'priority'=>20, 'status'=>0, 'test'=>in_array($db->type, array('mysql','mysqli'))),
 		    // 1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600*24)
 		);
-		
+
 		$this->rights[$r][0] = 23001;
 		$this->rights[$r][1] = 'Read cron jobs';
 		$this->rights[$r][3] = 0;
diff --git a/htdocs/langs/en_US/cron.lang b/htdocs/langs/en_US/cron.lang
index 8eb03114c64..9d440ddbd7f 100644
--- a/htdocs/langs/en_US/cron.lang
+++ b/htdocs/langs/en_US/cron.lang
@@ -10,7 +10,7 @@ CronSetup= Scheduled job management setup
 URLToLaunchCronJobs=URL to check and launch qualified cron jobs
 OrToLaunchASpecificJob=Or to check and launch a specific job
 KeyForCronAccess=Security key for URL to launch cron jobs
-FileToLaunchCronJobs=Command line to launch cron jobs
+FileToLaunchCronJobs=Command line to check and launch qualified cron jobs
 CronExplainHowToRunUnix=On Unix environment you should use the following crontab entry to run the command line each 5 minutes 
 CronExplainHowToRunWin=On Microsoft(tm) Windows environement you can use Scheduled task tools to run the command line each 5 minutes
 CronMethodDoesNotExists=Class %s does not contains any method %s
-- 
GitLab


From 68b19462c3603f2980de4ca4574f7b293c5e6881 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Thu, 3 Aug 2017 11:01:43 +0200
Subject: [PATCH 21/27] Fix list of cron jobs

---
 htdocs/cron/list.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/cron/list.php b/htdocs/cron/list.php
index 6a0b794c607..b62091d1c95 100644
--- a/htdocs/cron/list.php
+++ b/htdocs/cron/list.php
@@ -353,7 +353,7 @@ if ($num > 0)
 	{
 		$obj = $db->fetch_object($result);
 
-
+		if (empty($obj)) break;
 		if (! verifCond($obj->test)) continue;        // Discard line with test = false
 
 		// title profil
-- 
GitLab


From ddd60d1cd2dead65759f3bcecf19d6fe91f6bdb0 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Thu, 3 Aug 2017 11:22:37 +0200
Subject: [PATCH 22/27] Fix error counting in cron

---
 htdocs/cron/class/cronjob.class.php  |  2 --
 htdocs/public/cron/cron_run_jobs.php | 24 ++++++++++++-------
 scripts/cron/cron_run_jobs.php       | 35 ++++++++++++++++++++--------
 3 files changed, 40 insertions(+), 21 deletions(-)

diff --git a/htdocs/cron/class/cronjob.class.php b/htdocs/cron/class/cronjob.class.php
index 64c2d026ab4..00f8d5d6ae0 100644
--- a/htdocs/cron/class/cronjob.class.php
+++ b/htdocs/cron/class/cronjob.class.php
@@ -439,7 +439,6 @@ class Cronjob extends CommonObject
     		{
 	    		while ($i < $num)
 	    		{
-
 	    			$line = new Cronjobline();
 
 	    			$obj = $this->db->fetch_object($resql);
@@ -480,7 +479,6 @@ class Cronjob extends CommonObject
 	    			$this->lines[]=$line;
 
 	    			$i++;
-
 	    		}
     		}
     		$this->db->free($resql);
diff --git a/htdocs/public/cron/cron_run_jobs.php b/htdocs/public/cron/cron_run_jobs.php
index 725aea8825d..36b21c514e9 100644
--- a/htdocs/public/cron/cron_run_jobs.php
+++ b/htdocs/public/cron/cron_run_jobs.php
@@ -125,19 +125,25 @@ if ($result<0)
 	exit;
 }
 
+$qualifiedjobs = array();
+foreach($object->lines as $val)
+{
+	if (! verifCond($val->test)) continue;
+	$qualifiedjobs[] = $val;
+}
 
 // TODO Duplicate code. This sequence of code must be shared with code into cron_run_jobs.php script.
 
 // current date
 $now=dol_now();
-$nbofjobs=count($object->lines);
+$nbofjobs=count($qualifiedjobs);
 $nbofjobslaunchedok=0;
 $nbofjobslaunchedko=0;
 
-if (is_array($object->lines) && (count($object->lines)>0))
+if (is_array($qualifiedjobs) && (count($qualifiedjobs)>0))
 {
 	// Loop over job
-	foreach($object->lines as $line)
+	foreach($qualifiedjobs as $line)
 	{
 		dol_syslog("cron_run_jobs.php cronjobid: ".$line->id, LOG_WARNING);
 
@@ -150,16 +156,16 @@ if (is_array($object->lines) && (count($object->lines)>0))
 			$result=$cronjob->fetch($line->id);
 			if ($result<0)
 			{
-				echo "Error:".$cronjob->error."<br>\n";
-				dol_syslog("cron_run_jobs.php:: fetch Error".$cronjob->error, LOG_ERR);
+				echo "Error cronjob->fetch: ".$cronjob->error."<br>\n";
+				dol_syslog("cron_run_jobs.php::fetch Error".$cronjob->error, LOG_ERR);
 				exit;
 			}
 			// Execut job
 			$result=$cronjob->run_jobs($userlogin);
 			if ($result < 0)
 			{
-				echo "Error:".$cronjob->error."<br>\n";
-				dol_syslog("cron_run_jobs.php:: run_jobs Error".$cronjob->error, LOG_ERR);
+				echo "Error cronjob->run_job: ".$cronjob->error."<br>\n";
+				dol_syslog("cron_run_jobs.php::run_jobs Error".$cronjob->error, LOG_ERR);
 				$nbofjobslaunchedko++;
 			}
 			else
@@ -171,8 +177,8 @@ if (is_array($object->lines) && (count($object->lines)>0))
 			$result=$cronjob->reprogram_jobs($userlogin, $now);
 			if ($result<0)
 			{
-				echo "Error:".$cronjob->error."<br>\n";
-				dol_syslog("cron_run_jobs.php:: reprogram_jobs Error".$cronjob->error, LOG_ERR);
+				echo "Error cronjob->reprogram_job: ".$cronjob->error."<br>\n";
+				dol_syslog("cron_run_jobs.php::reprogram_jobs Error".$cronjob->error, LOG_ERR);
 				exit;
 			}
 
diff --git a/scripts/cron/cron_run_jobs.php b/scripts/cron/cron_run_jobs.php
index 841e85e1443..6ec317cdc70 100755
--- a/scripts/cron/cron_run_jobs.php
+++ b/scripts/cron/cron_run_jobs.php
@@ -79,7 +79,7 @@ if ($key != $conf->global->CRON_KEY)
 	exit(-1);
 }
 
-// If param userlogin is reserved word 'firstadmin' 
+// If param userlogin is reserved word 'firstadmin'
 if ($userlogin == 'firstadmin')
 {
     $sql='SELECT login from '.MAIN_DB_PREFIX.'user WHERE admin = 1 and statut = 1 ORDER BY entity LIMIT 1';
@@ -87,7 +87,7 @@ if ($userlogin == 'firstadmin')
     if ($resql)
     {
         $obj=$db->fetch_object($resql);
-        if ($obj) 
+        if ($obj)
         {
             $userlogin = $obj->login;
             echo "First admin user found is login '".$userlogin."'\n";
@@ -136,27 +136,37 @@ if ($result<0)
 	exit(-1);
 }
 
+$qualifiedjobs = array();
+foreach($object->lines as $val)
+{
+	if (! verifCond($val->test)) continue;
+	$qualifiedjobs[] = $val;
+}
+
 // TODO This sequence of code must be shared with code into public/cron/cron_run_jobs.php php page.
 
 // current date
 $now=dol_now();
+$nbofjobs=count($qualifiedjobs);
+$nbofjobslaunchedok=0;
+$nbofjobslaunchedko=0;
 
-if(is_array($object->lines) && (count($object->lines)>0))
+if(is_array($qualifiedjobs) && (count($qualifiedjobs)>0))
 {
 	// Loop over job
-	foreach($object->lines as $line)
+	foreach($qualifiedjobs as $line)
 	{
 	    dol_syslog("cron_run_jobs.php cronjobid: ".$line->id, LOG_DEBUG);
 	    echo "cron_run_jobs.php cronjobid: ".$line->id."\n";
-	    
+
 		//If date_next_jobs is less of current date, execute the program, and store the execution time of the next execution in database
 		if (($line->datenextrun < $now) && (empty($line->datestart) || $line->datestart <= $now) && (empty($line->dateend) || $line->dateend >= $now))
 		{
 			dol_syslog("cron_run_jobs.php:: to run line->datenextrun:".dol_print_date($line->datenextrun,'dayhourrfc')." line->datestart:".dol_print_date($line->datestart,'dayhourrfc')." line->dateend:".dol_print_date($line->dateend,'dayhourrfc')." now:".dol_print_date($now,'dayhourrfc'));
-		    
+
 			$cronjob=new Cronjob($db);
 			$result=$cronjob->fetch($line->id);
-			if ($result<0) 
+			if ($result < 0)
 			{
 				echo "Error cronjob->fetch: ".$cronjob->error."\n";
 				echo "Failed to fetch job ".$line->id."\n";
@@ -165,18 +175,22 @@ if(is_array($object->lines) && (count($object->lines)>0))
 			}
 			// Execute job
 			$result=$cronjob->run_jobs($userlogin);
-			if ($result<0) 
+			if ($result < 0)
 			{
 				echo "Error cronjob->run_job: ".$cronjob->error."\n";
 				echo "At least one job failed. Go on menu Home-Setup-Admin tools to see result for each job.\n";
 				echo "You can also enable module Log if not yet enabled, run again and take a look into dolibarr.log file\n";
 				dol_syslog("cron_run_jobs.php::run_jobs Error ".$cronjob->error, LOG_ERR);
-				exit(-1);
+				$nbofjobslaunchedko++;
+			}
+			else
+			{
+				$nbofjobslaunchedok++;
 			}
 
 			// we re-program the next execution and stores the last execution time for this job
 			$result=$cronjob->reprogram_jobs($userlogin, $now);
-			if ($result<0) 
+			if ($result<0)
 			{
 				echo "Error cronjob->reprogram_job: ".$cronjob->error."\n";
 				echo "Enable module Log if not yet enabled, run again and take a look into dolibarr.log file\n";
@@ -194,6 +208,7 @@ if(is_array($object->lines) && (count($object->lines)>0))
 
 $db->close();
 
+if ($nbofjobslaunchedko) exit(1);
 exit(0);
 
 
-- 
GitLab


From d1398887e6d26b8cfd267074e25a5242d7a01b07 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Thu, 3 Aug 2017 12:02:42 +0200
Subject: [PATCH 23/27] Missing picto

---
 htdocs/theme/eldy/img/object_stripe.png | Bin 0 -> 819 bytes
 htdocs/theme/md/img/object_stripe.png   | Bin 0 -> 819 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 htdocs/theme/eldy/img/object_stripe.png
 create mode 100644 htdocs/theme/md/img/object_stripe.png

diff --git a/htdocs/theme/eldy/img/object_stripe.png b/htdocs/theme/eldy/img/object_stripe.png
new file mode 100644
index 0000000000000000000000000000000000000000..287bd24910cb0fc86f886d02789f29b993bad530
GIT binary patch
literal 819
zcmV-31I+x1P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004XF*Lt006O%
z3;baP00009a7bBm000ie000ie0hKEb8vp<RFLXs%bVG7wVRUJ4ZXi@?ZDjy$WpXYc
zF)<)!>2`81ATls8IUq4NIxsmpFgGA8FflMNTjFhO00007bV*G`2iXD;69^O^U!ddw
z00M_eL_t(IPfb%#NK`=_{$}2L`}XbI#Y*sBfuXLJQs|+mbEhCG$e>Q)sY3?|JV=3r
zhax(3=~@s$cInbJItE!FL?o7(MUj}TmTjx<zJ1g8o3}3;_?X={^Zoh#W=4JbuwowF
zS;YKo8C7FoTm?59LTL>+8d^I5p&UgdzdheUcQK3M;T)V+b@tl3*XuCg;3mUOj+e2U
zwd2~^!rh)@rLp?c;M;Nxy)ah+d=Dn@;pB4g0=lOp!u2Uak~o9^C6#iSj#&I^pe~$z
zZfsma*{F=ym&cj&?dT~oB2$&ib-bP3z`gq=t}DA&glvh4leoChL`!>sv8!F^+ZS50
zjC|g~!2>z&ON_)lfdVBcKuEJB$)Te=k;!n8WBSE!Je(@w>9cjLl%fWyQA$I^CfNSy
z!flXcWU?A_^ILfQ<QHz-UP)rpRbWVtML?5i-EAojreFTS=4NaKh6Y1SPIO>wv=yCu
zeJfyS7UeW*Ay6%_B1;q{E1>aXwT|mIm+)$)f+(_wi=M6wE?;a$bBkx)qpU*gQ_M?C
zNI~@=^zgkD<L-ksj886O=FO%R@iPj81HL86WfQ<n6IcN`MvcQq3YfUkhEpe+Fwh@x
zEjbAp5lEzf?E$~X<Y?PKBE1|+DRi`XIDRaTk#kKL>Syg78(Ri53(-IKB!LKsGm#2?
zUaH~!$0};Ir2eRGFuPd8t*J8BC;~4PkRAZ)(&!gcV>BC8ggDEh#0=Q&O4M+(L?J0u
zn;4&$3p;rEx_Z2A@_*4}b0y|Y<6Cg^d?(GkiF-nrVjk$^ygQ5TcCHVf&Z4*1;}ez=
xl0Jw_8nqA>;D-U6fJV|l@gnx;>KNIzfxiXLt)E)oqyhi{002ovPDHLkV1kvqX=wle

literal 0
HcmV?d00001

diff --git a/htdocs/theme/md/img/object_stripe.png b/htdocs/theme/md/img/object_stripe.png
new file mode 100644
index 0000000000000000000000000000000000000000..287bd24910cb0fc86f886d02789f29b993bad530
GIT binary patch
literal 819
zcmV-31I+x1P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004XF*Lt006O%
z3;baP00009a7bBm000ie000ie0hKEb8vp<RFLXs%bVG7wVRUJ4ZXi@?ZDjy$WpXYc
zF)<)!>2`81ATls8IUq4NIxsmpFgGA8FflMNTjFhO00007bV*G`2iXD;69^O^U!ddw
z00M_eL_t(IPfb%#NK`=_{$}2L`}XbI#Y*sBfuXLJQs|+mbEhCG$e>Q)sY3?|JV=3r
zhax(3=~@s$cInbJItE!FL?o7(MUj}TmTjx<zJ1g8o3}3;_?X={^Zoh#W=4JbuwowF
zS;YKo8C7FoTm?59LTL>+8d^I5p&UgdzdheUcQK3M;T)V+b@tl3*XuCg;3mUOj+e2U
zwd2~^!rh)@rLp?c;M;Nxy)ah+d=Dn@;pB4g0=lOp!u2Uak~o9^C6#iSj#&I^pe~$z
zZfsma*{F=ym&cj&?dT~oB2$&ib-bP3z`gq=t}DA&glvh4leoChL`!>sv8!F^+ZS50
zjC|g~!2>z&ON_)lfdVBcKuEJB$)Te=k;!n8WBSE!Je(@w>9cjLl%fWyQA$I^CfNSy
z!flXcWU?A_^ILfQ<QHz-UP)rpRbWVtML?5i-EAojreFTS=4NaKh6Y1SPIO>wv=yCu
zeJfyS7UeW*Ay6%_B1;q{E1>aXwT|mIm+)$)f+(_wi=M6wE?;a$bBkx)qpU*gQ_M?C
zNI~@=^zgkD<L-ksj886O=FO%R@iPj81HL86WfQ<n6IcN`MvcQq3YfUkhEpe+Fwh@x
zEjbAp5lEzf?E$~X<Y?PKBE1|+DRi`XIDRaTk#kKL>Syg78(Ri53(-IKB!LKsGm#2?
zUaH~!$0};Ir2eRGFuPd8t*J8BC;~4PkRAZ)(&!gcV>BC8ggDEh#0=Q&O4M+(L?J0u
zn;4&$3p;rEx_Z2A@_*4}b0y|Y<6Cg^d?(GkiF-nrVjk$^ygQ5TcCHVf&Z4*1;}ez=
xl0Jw_8nqA>;D-U6fJV|l@gnx;>KNIzfxiXLt)E)oqyhi{002ovPDHLkV1kvqX=wle

literal 0
HcmV?d00001

-- 
GitLab


From 3a098ca0477f3b392ddb3a856062ad9fb520c931 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Fri, 4 Aug 2017 11:50:30 +0200
Subject: [PATCH 24/27] Reduce verbosity

---
 htdocs/core/class/interfaces.class.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/core/class/interfaces.class.php b/htdocs/core/class/interfaces.class.php
index ef64ac8d8e5..f8400cb963a 100644
--- a/htdocs/core/class/interfaces.class.php
+++ b/htdocs/core/class/interfaces.class.php
@@ -120,7 +120,7 @@ class Interfaces
 
                         if (! $qualified)
                         {
-                            dol_syslog(get_class($this)."::run_triggers action=".$action." Triggers for file '".$file."' need module to be enabled", LOG_DEBUG);
+                            //dol_syslog(get_class($this)."::run_triggers action=".$action." Triggers for file '".$file."' need module to be enabled", LOG_DEBUG);
                             continue;
                         }
 
-- 
GitLab


From da831d2c8e1bab6f331bc56ad8045c2a63168291 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Fri, 4 Aug 2017 13:45:20 +0200
Subject: [PATCH 25/27] FIX Bad link in ECM

---
 htdocs/core/class/html.formfile.class.php | 39 ++++++++++++-----------
 1 file changed, 21 insertions(+), 18 deletions(-)

diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php
index 0db46e416cb..824b13fd62f 100644
--- a/htdocs/core/class/html.formfile.class.php
+++ b/htdocs/core/class/html.formfile.class.php
@@ -835,9 +835,9 @@ class FormFile
     	$out='';
     	$this->infofiles=array('nboffiles'=>0,'extensions'=>array(),'files'=>array());
 
-    	//if (! empty($conf->dol_use_jmobile)) return '';
+    	$filterforfilesearch = preg_quote(basename($modulesubdir),'/').'[^\-]+';
 
-		$file_list=dol_dir_list($filedir, 'files', 0, preg_quote(basename($modulesubdir),'/').'[^\-]+', '\.meta$|\.png$');	// Get list of files starting with name of ref (but not followed by "-" to discard uploaded files)
+    	$file_list=dol_dir_list($filedir, 'files', 0, $filterforfilesearch, '\.meta$|\.png$');	// Get list of files starting with name of ref (but not followed by "-" to discard uploaded files)
 
     	// For ajax treatment
 		$out.= '<!-- html.formfile::getDocumentsLink -->'."\n";
@@ -1404,20 +1404,20 @@ class FormFile
                 $id=0; $ref=''; $label='';
 
                 // To show ref or specific information according to view to show (defined by $module)
-                if ($modulepart == 'company')          { preg_match('/(\d+)\/[^\/]+$/',$relativefile,$reg); $id=(isset($reg[1])?$reg[1]:''); }
-                if ($modulepart == 'invoice')          { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg);  $ref=(isset($reg[1])?$reg[1]:''); }
-                if ($modulepart == 'invoice_supplier') { preg_match('/([^\/]+)\/[^\/]+$/',$relativefile,$reg); $ref=(isset($reg[1])?$reg[1]:''); if (is_numeric($ref)) { $id=$ref; $ref=''; } }	// $ref may be also id with old supplier invoices
-                if ($modulepart == 'propal')           { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg);  $ref=(isset($reg[1])?$reg[1]:''); }
+                if ($modulepart == 'company')           { preg_match('/(\d+)\/[^\/]+$/',$relativefile,$reg); $id=(isset($reg[1])?$reg[1]:''); }
+                if ($modulepart == 'invoice')           { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg);  $ref=(isset($reg[1])?$reg[1]:''); }
+                if ($modulepart == 'invoice_supplier')  { preg_match('/([^\/]+)\/[^\/]+$/',$relativefile,$reg); $ref=(isset($reg[1])?$reg[1]:''); if (is_numeric($ref)) { $id=$ref; $ref=''; } }	// $ref may be also id with old supplier invoices
+                if ($modulepart == 'propal')            { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg);  $ref=(isset($reg[1])?$reg[1]:''); }
 				if ($modulepart == 'supplier_proposal') { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg);  $ref=(isset($reg[1])?$reg[1]:''); }
-                if ($modulepart == 'order')            { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg);  $ref=(isset($reg[1])?$reg[1]:''); }
-                if ($modulepart == 'order_supplier')   { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg);  $ref=(isset($reg[1])?$reg[1]:''); }
-                if ($modulepart == 'contract')         { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg);  $ref=(isset($reg[1])?$reg[1]:''); }
-                if ($modulepart == 'product')          { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg);  $ref=(isset($reg[1])?$reg[1]:''); }
-                if ($modulepart == 'tax')              { preg_match('/(\d+)\/[^\/]+$/',$relativefile,$reg); $id=(isset($reg[1])?$reg[1]:''); }
-                if ($modulepart == 'project')          { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg);  $ref=(isset($reg[1])?$reg[1]:'');}
-                if ($modulepart == 'fichinter')        { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg);  $ref=(isset($reg[1])?$reg[1]:'');}
-                if ($modulepart == 'user')             { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg);  $id=(isset($reg[1])?$reg[1]:'');}
-                if ($modulepart == 'expensereport')    { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg);  $id=(isset($reg[1])?$reg[1]:'');}
+                if ($modulepart == 'order')             { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg);  $ref=(isset($reg[1])?$reg[1]:''); }
+                if ($modulepart == 'order_supplier')    { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg);  $ref=(isset($reg[1])?$reg[1]:''); }
+                if ($modulepart == 'contract')          { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg);  $ref=(isset($reg[1])?$reg[1]:''); }
+                if ($modulepart == 'product')           { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg);  $ref=(isset($reg[1])?$reg[1]:''); }
+                if ($modulepart == 'tax')               { preg_match('/(\d+)\/[^\/]+$/',$relativefile,$reg); $id=(isset($reg[1])?$reg[1]:''); }
+                if ($modulepart == 'project')           { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg);  $ref=(isset($reg[1])?$reg[1]:'');}
+                if ($modulepart == 'fichinter')         { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg);  $ref=(isset($reg[1])?$reg[1]:'');}
+                if ($modulepart == 'user')              { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg);  $id=(isset($reg[1])?$reg[1]:'');}
+                if ($modulepart == 'expensereport')     { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg);  $id=(isset($reg[1])?$reg[1]:'');}
 
                 if (! $id && ! $ref) continue;
                 $found=0;
@@ -1449,20 +1449,23 @@ class FormFile
 
                 if (! $found > 0 || ! is_object($this->cache_objects[$modulepart.'_'.$id.'_'.$ref])) continue;    // We do not show orphelins files
 
-
                 print '<!-- Line list_of_autoecmfiles '.$key.' -->'."\n";
                 print '<tr class="oddeven">';
                 print '<td>';
                 if ($found > 0 && is_object($this->cache_objects[$modulepart.'_'.$id.'_'.$ref])) print $this->cache_objects[$modulepart.'_'.$id.'_'.$ref]->getNomUrl(1,'document');
                 else print $langs->trans("ObjectDeleted",($id?$id:$ref));
 
-                $filename=dol_sanitizeFileName($ref);
+                //$modulesubdir=dol_sanitizeFileName($ref);
+                $modulesubdir=dirname($relativefile);
+
                 //$filedir=$conf->$modulepart->dir_output . '/' . dol_sanitizeFileName($obj->ref);
                 $filedir=$file['path'];
                 //$urlsource=$_SERVER['PHP_SELF'].'?id='.$obj->rowid;
                 //print $formfile->getDocumentsLink($modulepart, $filename, $filedir);
 
                 print '</td>';
+
+                // File
                 print '<td>';
                 //print "XX".$file['name']; //$file['name'] must be utf8
                 print '<a data-ajax="false" href="'.DOL_URL_ROOT.'/document.php?modulepart='.$modulepart;
@@ -1472,7 +1475,7 @@ class FormFile
                 print dol_trunc($file['name'],$maxlength,'middle');
                 print '</a>';
 
-                print $this->getDocumentsLink($modulepart, $filename, $filedir);
+                print $this->getDocumentsLink($modulepart, $modulesubdir, $filedir, '^'.preg_quote($file['name'],'/').'$');
 
                 print "</td>\n";
                 print '<td align="right">'.dol_print_size($file['size'],1,1).'</td>';
-- 
GitLab


From 8a71b9e95e09f66cde96f645cccebb7dd4d485c6 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Fri, 4 Aug 2017 13:51:25 +0200
Subject: [PATCH 26/27] Avoid creation of dir that is not indexed

---
 htdocs/core/modules/modECM.class.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/core/modules/modECM.class.php b/htdocs/core/modules/modECM.class.php
index bfe0e45e02c..b263b16e29e 100644
--- a/htdocs/core/modules/modECM.class.php
+++ b/htdocs/core/modules/modECM.class.php
@@ -63,7 +63,7 @@ class modECM extends DolibarrModules
 		$this->picto='dir';
 
 		// Data directories to create when module is enabled
-		$this->dirs = array("/ecm/My_First_Directory","/ecm/temp");
+		$this->dirs = array("/ecm/temp");
 
 		// Config pages. Put here list of php page names stored in admmin directory used to setup module
 		$this->config_page_url = array('ecm.php');
-- 
GitLab


From 4cb2a0bce27e6e559ed5ddedaf9142cf6b1086bb Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Fri, 4 Aug 2017 15:17:30 +0200
Subject: [PATCH 27/27] Update list.php

---
 htdocs/compta/paiement/list.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/compta/paiement/list.php b/htdocs/compta/paiement/list.php
index 04dbaf8fc11..8344ed08095 100644
--- a/htdocs/compta/paiement/list.php
+++ b/htdocs/compta/paiement/list.php
@@ -334,7 +334,7 @@ if ($resql)
             
 				$accountingjournal = new AccountingJournal($db);
 				$accountingjournal->fetch($objp->accountancy_journal);
-				$accountstatic->accountancy_journal = $accountingjournal->getNomUrl(0,1,1,'',1);
+				$accountstatic->accountancy_journal = $accountingjournal->code;
 
 	            print $accountstatic->getNomUrl(1);
 	        }
-- 
GitLab