From d2acbc35ecb310727d25ad82e551dbbca3c28fe7 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@users.sourceforge.net>
Date: Fri, 9 Jul 2010 23:49:41 +0000
Subject: [PATCH] Fix: Fix a lot of bugs (missing translations, sql error,
 country flag not shown, region management, W3C, ajax too slow...)

---
 htdocs/categories/categorie.php               |  11 +-
 htdocs/comm/fiche.php                         |   5 +-
 htdocs/comm/propal.php                        |  27 +++--
 htdocs/comm/propal/class/propal.class.php     |  31 ++---
 htdocs/comm/prospect/fiche.php                |  13 +-
 htdocs/compta/bank/bankid_fr.php              |  18 ++-
 htdocs/compta/bank/fiche.php                  |  15 ++-
 htdocs/compta/fiche.php                       |   5 +-
 htdocs/contact/class/contact.class.php        |   4 +-
 htdocs/contact/fiche.php                      |   2 +
 htdocs/core/class/conf.class.php              |   1 +
 htdocs/core/class/html.form.class.php         | 113 ++++++++++--------
 htdocs/core/class/translate.class.php         |   9 +-
 htdocs/fichinter/index.php                    |   2 +-
 htdocs/fourn/fiche.php                        |   5 +-
 htdocs/ftp/admin/ftpclient.php                |   2 +-
 htdocs/ftp/index.php                          |   2 +-
 htdocs/ftp/langs/ca_ES/ftp.lang               |  12 --
 htdocs/ftp/langs/en_US/ftp.lang               |  12 --
 htdocs/ftp/langs/es_ES/ftp.lang               |  12 --
 htdocs/ftp/langs/fr_FR/ftp.lang               |  12 --
 htdocs/ftp/langs/nl_NL/ftp.lang               |  12 --
 htdocs/ftp/langs/tr_TR/ftp.lang               |  21 ----
 htdocs/ftp/pre.inc.php                        |   2 +-
 htdocs/includes/modules/modFTP.class.php      |   4 +-
 htdocs/includes/modules/modPaybox.class.php   |   2 +-
 htdocs/lib/admin.lib.php                      |  39 +++---
 htdocs/lib/company.lib.php                    |   1 +
 htdocs/lib/date.lib.php                       |   4 +-
 htdocs/lib/functions.lib.php                  |   9 +-
 htdocs/paybox/admin/paybox.php                |   2 +-
 htdocs/paybox/langs/ar_AR/paybox.lang         |  34 ------
 htdocs/paybox/langs/ca_ES/paybox.lang         |  24 ----
 htdocs/paybox/langs/da_DA/paybox.lang         |  32 -----
 htdocs/paybox/langs/de_DE/paybox.lang         |  32 -----
 htdocs/paybox/langs/en_US/paybox.lang         |  24 ----
 htdocs/paybox/langs/es_ES/paybox.lang         |  24 ----
 htdocs/paybox/langs/fi_FI/paybox.lang         |  32 -----
 htdocs/paybox/langs/fr_FR/paybox.lang         |  25 ----
 htdocs/paybox/langs/it_IT/paybox.lang         |  32 -----
 htdocs/paybox/langs/nl_BE/paybox.lang         |  32 -----
 htdocs/paybox/langs/nl_NL/paybox.lang         |  24 ----
 htdocs/paybox/langs/pl_PL/paybox.lang         |  32 -----
 htdocs/paybox/langs/pt_BR/paybox.lang         |  26 ----
 htdocs/paybox/langs/pt_PT/paybox.lang         |  28 -----
 htdocs/paybox/langs/ro_RO/paybox.lang         |  32 -----
 htdocs/paybox/langs/ru_RU/paybox.lang         |  32 -----
 htdocs/paybox/langs/tr_TR/paybox.lang         |  33 -----
 htdocs/product/ajaxproducts.php               |  10 +-
 htdocs/product/index.php                      |   2 +-
 htdocs/product/stock/class/entrepot.class.php |   3 +-
 htdocs/product/stock/fiche.php                |   2 +
 htdocs/product/stock/mouvement.php            |   2 +
 htdocs/soc.php                                |  11 +-
 htdocs/societe/agenda.php                     |   9 +-
 htdocs/societe/class/societe.class.php        |   4 +-
 56 files changed, 227 insertions(+), 723 deletions(-)
 delete mode 100644 htdocs/ftp/langs/ca_ES/ftp.lang
 delete mode 100644 htdocs/ftp/langs/en_US/ftp.lang
 delete mode 100644 htdocs/ftp/langs/es_ES/ftp.lang
 delete mode 100644 htdocs/ftp/langs/fr_FR/ftp.lang
 delete mode 100644 htdocs/ftp/langs/nl_NL/ftp.lang
 delete mode 100644 htdocs/ftp/langs/tr_TR/ftp.lang
 delete mode 100644 htdocs/paybox/langs/ar_AR/paybox.lang
 delete mode 100644 htdocs/paybox/langs/ca_ES/paybox.lang
 delete mode 100644 htdocs/paybox/langs/da_DA/paybox.lang
 delete mode 100644 htdocs/paybox/langs/de_DE/paybox.lang
 delete mode 100644 htdocs/paybox/langs/en_US/paybox.lang
 delete mode 100644 htdocs/paybox/langs/es_ES/paybox.lang
 delete mode 100644 htdocs/paybox/langs/fi_FI/paybox.lang
 delete mode 100644 htdocs/paybox/langs/fr_FR/paybox.lang
 delete mode 100644 htdocs/paybox/langs/it_IT/paybox.lang
 delete mode 100644 htdocs/paybox/langs/nl_BE/paybox.lang
 delete mode 100644 htdocs/paybox/langs/nl_NL/paybox.lang
 delete mode 100644 htdocs/paybox/langs/pl_PL/paybox.lang
 delete mode 100644 htdocs/paybox/langs/pt_BR/paybox.lang
 delete mode 100644 htdocs/paybox/langs/pt_PT/paybox.lang
 delete mode 100644 htdocs/paybox/langs/ro_RO/paybox.lang
 delete mode 100644 htdocs/paybox/langs/ru_RU/paybox.lang
 delete mode 100644 htdocs/paybox/langs/tr_TR/paybox.lang

diff --git a/htdocs/categories/categorie.php b/htdocs/categories/categorie.php
index 0114f00fa04..9ee320203a1 100644
--- a/htdocs/categories/categorie.php
+++ b/htdocs/categories/categorie.php
@@ -231,14 +231,23 @@ if ($_GET["socid"])
 		print '<tr><td>'.$langs->trans('Gencod').'</td><td colspan="3">'.$soc->gencod.'</td></tr>';
 	}
 
+	// Address
 	print "<tr><td valign=\"top\">".$langs->trans('Address')."</td><td colspan=\"3\">".nl2br($soc->address)."</td></tr>";
 
+	// Zip / Town
 	print '<tr><td width="25%">'.$langs->trans('Zip').'</td><td width="25%">'.$soc->cp."</td>";
 	print '<td width="25%">'.$langs->trans('Town').'</td><td width="25%">'.$soc->ville."</td></tr>";
+
+	// Country
 	if ($soc->pays) {
-		print '<tr><td>'.$langs->trans('Country').'</td><td colspan="3">'.$soc->pays.'</td></tr>';
+		print '<tr><td>'.$langs->trans('Country').'</td><td colspan="3">';
+		$img=picto_from_langcode($soc->pays_code);
+		print ($img?$img.' ':'');
+		print $soc->pays;
+		print '</td></tr>';
 	}
 
+	// Phone
 	print '<tr><td>'.$langs->trans('Phone').'</td><td>'.dol_print_phone($soc->tel,$soc->pays_code,0,$soc->id,'AC_TEL').'</td>';
 	print '<td>'.$langs->trans('Fax').'</td><td>'.dol_print_phone($soc->fax,$soc->pays_code,0,$soc->id,'AC_FAX').'</td></tr>';
 
diff --git a/htdocs/comm/fiche.php b/htdocs/comm/fiche.php
index 0af21fe42b3..114936b9668 100644
--- a/htdocs/comm/fiche.php
+++ b/htdocs/comm/fiche.php
@@ -187,8 +187,9 @@ if ($socid > 0)
 
 	// Country
 	print '<tr><td>'.$langs->trans("Country").'</td><td colspan="3">';
-	if ($objsoc->isInEEC()) print $form->textwithpicto($objsoc->pays,$langs->trans("CountryIsInEEC"),1,0);
-	else print $objsoc->pays;
+	$img=picto_from_langcode($objsoc->pays_code);
+	if ($objsoc->isInEEC()) print $form->textwithpicto(($img?$img.' ':'').$objsoc->pays,$langs->trans("CountryIsInEEC"),1,0);
+	else print ($img?$img.' ':'').$objsoc->pays;
 	print '</td></tr>';
 
 	// Phone
diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php
index d0ce7f0b2d3..337625c8b59 100644
--- a/htdocs/comm/propal.php
+++ b/htdocs/comm/propal.php
@@ -249,9 +249,9 @@ if ($_POST['action'] == 'addmilestone')
 		$milestone->description = $_POST['milestone_desc'];
 		$milestone->elementtype = $propal->element;
 		$milestone->elementid	= $propal->id;
-		
+
 		$ret = $milestone->create($user);
-		
+
 		if ($ret < 0)
 		{
 			$milestone_error++;
@@ -1408,16 +1408,16 @@ if ($id > 0 || ! empty($ref))
 	 * Lines
 	 */
 	print '<table class="noborder" width="100%">';
-	
-	$lines = $propal->getLinesArray();
-	
+
 	// Milestone module
 	if ($conf->milestone->enabled)
 	{
+		$lines = $propal->getLinesArray(1);
+
 		$milestone = new Milestone($db);
 		$milestone->getObjectMilestones($propal);
-		$sublines = $propal->getLinesArray(false);
-			
+		$sublines = $propal->getLinesArray(2);
+
 		if (! empty($milestone->lines))
 		{
 			print_title_list();
@@ -1429,10 +1429,15 @@ if ($id > 0 || ! empty($ref))
 			print_lines_list($propal, $lines);
 		}
 	}
-	else if (! empty($lines) )
+	else
 	{
-		print_title_list();
-		print_lines_list($propal, $lines);
+		$lines = $propal->getLinesArray(0);
+
+		if (! empty($lines) )
+		{
+			print_title_list();
+			print_lines_list($propal, $lines);
+		}
 	}
 
 	/*
@@ -1443,7 +1448,7 @@ if ($id > 0 || ! empty($ref))
 		$var=true;
 
 		if ($conf->milestone->enabled)
-		{	
+		{
 			formAddMilestone($propal);
 
 			$var=!$var;
diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php
index a9227385c86..56db346c8d2 100644
--- a/htdocs/comm/propal/class/propal.class.php
+++ b/htdocs/comm/propal/class/propal.class.php
@@ -166,7 +166,7 @@ class Propal extends CommonObject
 			// local taxes
 			$localtax1_tx = get_default_localtax($mysoc,$this->client,1,$prod->tva_tx);
 			$localtax2_tx = get_default_localtax($mysoc,$this->client,2,$prod->tva_tx);
-			
+
 			// multiprix
 			if($conf->global->PRODUIT_MULTIPRICES && $this->client->price_level)
 			{
@@ -448,7 +448,7 @@ class Propal extends CommonObject
 			$total_ttc = $tabprice[2];
 			$total_localtax1 = $tabprice[9];
 			$total_localtax2 = $tabprice[10];
-			
+
 
 			// Anciens indicateurs: $price, $remise (a ne plus utiliser)
 			$price = $pu;
@@ -1633,7 +1633,7 @@ class Propal extends CommonObject
 	function delete($user, $notrigger=0)
 	{
 		global $conf,$langs;
-		
+
 		$error=0;
 
 		$this->db->begin();
@@ -1691,7 +1691,7 @@ class Propal extends CommonObject
 					if ($result < 0) { $error++; $this->errors=$interface->errors; }
 					// End call triggers
 				}
-				
+
 				if (!$error)
 				{
 					dol_syslog("Suppression de la proposition $this->id par $user->id", LOG_DEBUG);
@@ -2147,14 +2147,15 @@ class Propal extends CommonObject
 		$result.=$lien.$this->ref.$lienfin;
 		return $result;
 	}
-	
+
 	/**
 	 * 	\brief		Return an array of propal lines
+	 * 	\param		option		0=No filter on rang, 1=filter on rang <> 0, 2=filter on rang=0
 	 */
-	function getLinesArray($order=true)
-	{	
+	function getLinesArray($option=0)
+	{
 		$lines = array();
-		
+
 		$sql = 'SELECT pt.rowid, pt.description, pt.fk_product, pt.fk_remise_except,';
 		$sql.= ' pt.qty, pt.tva_tx, pt.remise_percent, pt.subprice, pt.info_bits,';
 		$sql.= ' pt.total_ht, pt.total_tva, pt.total_ttc, pt.marge_tx, pt.marque_tx, pt.pa_ht, pt.special_code,';
@@ -2164,20 +2165,20 @@ class Propal extends CommonObject
 		$sql.= ' FROM '.MAIN_DB_PREFIX.'propaldet as pt';
 		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON pt.fk_product=p.rowid';
 		$sql.= ' WHERE pt.fk_propal = '.$this->id;
-		if ($order) $sql.= ' AND pt.rang <> 0';
-		if (! $order) $sql.= ' AND pt.rang = 0';
+		if ($option == 1) $sql.= ' AND pt.rang <> 0';
+		if ($option == 2) $sql.= ' AND pt.rang = 0';
 		$sql.= ' ORDER BY pt.rang ASC, pt.rowid';
-		
+
 		$resql = $this->db->query($sql);
 		if ($resql)
 		{
 			$num = $this->db->num_rows($resql);
 			$i = 0;
-			
+
 			while ($i < $num)
 			{
 				$obj = $this->db->fetch_object($resql);
-				
+
 				$lines[$i]->id					= $obj->rowid;
 				$lines[$i]->description 		= $obj->description;
 				$lines[$i]->fk_product			= $obj->fk_product;
@@ -2202,7 +2203,7 @@ class Propal extends CommonObject
 				$lines[$i]->rang				= $obj->rang;
 				$lines[$i]->date_start			= $this->db->jdate($obj->date_start);
 				$lines[$i]->date_end			= $this->db->jdate($obj->date_end);
-				
+
 				$i++;
 			}
 			$this->db->free($resql);
@@ -2211,7 +2212,7 @@ class Propal extends CommonObject
 		{
 			dol_print_error($this->db);
 		}
-		
+
 		return $lines;
 	}
 
diff --git a/htdocs/comm/prospect/fiche.php b/htdocs/comm/prospect/fiche.php
index 1ff352ca30c..b5d0a927efb 100644
--- a/htdocs/comm/prospect/fiche.php
+++ b/htdocs/comm/prospect/fiche.php
@@ -108,11 +108,18 @@ if ($socid > 0)
 
 	// Country
 	print '<tr><td>'.$langs->trans("Country").'</td><td colspan="3">';
-	if ($societe->isInEEC()) print $form->textwithpicto($societe->pays,$langs->trans("CountryIsInEEC"),1,0);
-	else print $societe->pays;
+	$img=picto_from_langcode($societe->pays_code);
+	if ($societe->isInEEC()) print $form->textwithpicto(($img?$img.' ':'').$societe->pays,$langs->trans("CountryIsInEEC"),1,0);
+	else print ($img?$img.' ':'').$societe->pays;
 	print '</td></tr>';
 
-	print '<tr><td>'.$langs->trans("Phone").'</td><td>'.dol_print_phone($societe->tel,$societe->pays_code,0,$societe->id,'AC_TEL').'</td><td>Fax</td><td>'.dol_print_phone($societe->fax,$societe->pays_code).'</td></tr>';
+	// Phone
+	print '<tr><td>'.$langs->trans("Phone").'</td><td>'.dol_print_phone($societe->tel,$societe->pays_code,0,$societe->id,'AC_TEL').'</td><td>'.$langs->trans("Fax").'</td><td>'.dol_print_phone($societe->fax,$societe->pays_code).'</td></tr>';
+
+	// EMail
+	print '<td>'.$langs->trans('EMail').'</td><td colspan="3">'.dol_print_email($societe->email,0,$societe->id,'AC_EMAIL').'</td></tr>';
+
+	// Web
 	print '<tr><td>'.$langs->trans("Web")."</td><td colspan=\"3\"><a href=\"http://$societe->url\">$societe->url</a></td></tr>";
 
 	print '<tr><td>'.$langs->trans('JuridicalStatus').'</td><td colspan="3">'.$societe->forme_juridique.'</td></tr>';
diff --git a/htdocs/compta/bank/bankid_fr.php b/htdocs/compta/bank/bankid_fr.php
index 0a143c1cdb9..4eb83cb5e35 100644
--- a/htdocs/compta/bank/bankid_fr.php
+++ b/htdocs/compta/bank/bankid_fr.php
@@ -63,7 +63,7 @@ if ($_POST["action"] == 'update' && ! $_POST["cancel"])
 	$account->proprio 	      = trim($_POST["proprio"]);
 	$account->adresse_proprio = trim($_POST["adresse_proprio"]);
 	$account->fk_departement  = trim($_POST["fk_departement"]);
-	$account->fk_pays         = trim($_POST["fk_pays"]);
+	//$account->fk_pays         = trim($_POST["fk_pays"]);		// We do not change this.
 
 	if ($account->id)
 	{
@@ -211,7 +211,10 @@ if (($_GET["id"] || $_GET["ref"]) && $_GET["action"] != 'edit')
 		print nl2br($account->domiciliation);
 		print "</td></tr>\n";
 
+		// Country
 		print '<tr><td valign="top">'.$langs->trans("BankAccountCountry").'</td><td colspan="3">';
+		$img=picto_from_langcode($account->pays_code);
+		print $img?$img.' ':'';
 		print getCountry($account->getCountryCode());
 		print "</td></tr>\n";
 
@@ -273,14 +276,25 @@ if ($_GET["id"] && $_GET["action"] == 'edit' && $user->rights->banque->configure
 	print '<td colspan="3">'.$account->ref;
 	print '</td></tr>';
 
+	// Label
 	print '<tr><td valign="top">'.$langs->trans("Label").'</td>';
 	print '<td colspan="3">'.$account->label;
 	print '</td></tr>';
 
+	// Type
 	print '<tr><td valign="top">'.$langs->trans("AccountType").'</td>';
 	print '<td colspan="3">'.$account->type_lib[$account->type];
 	print '</td></tr>';
 
+	// Currency
+	print '<tr><td valign="top">'.$langs->trans("Currency").'</td>';
+	print '<td colspan="3">';
+	$selectedcode=$account->account_currency_code;
+	if (! $selectedcode) $selectedcode=$conf->monnaie;
+	print $langs->trans("Currency".$selectedcode);
+	print '</td></tr>';
+
+	// Status
 	print '<tr><td valign="top">'.$langs->trans("Status").'</td>';
 	print '<td colspan="3">'.$account->getLibStatut(4);
 	print '</td></tr>';
@@ -288,7 +302,7 @@ if ($_GET["id"] && $_GET["action"] == 'edit' && $user->rights->banque->configure
 	if ($account->type == 0 || $account->type == 1)
 	{
 		// If bank account
-		print '<tr><td valign="top">'.$langs->trans("Bank").'</td>';
+		print '<tr><td valign="top">'.$langs->trans("BankName").'</td>';
 		print '<td colspan="3"><input size="30" type="text" class="flat" name="bank" value="'.$account->bank.'"></td>';
 		print '</tr>';
 
diff --git a/htdocs/compta/bank/fiche.php b/htdocs/compta/bank/fiche.php
index 6a433da2fb0..6e1b4f29b1e 100644
--- a/htdocs/compta/bank/fiche.php
+++ b/htdocs/compta/bank/fiche.php
@@ -190,7 +190,7 @@ if ($_REQUEST["action"] == 'create')
 
 	// Ref
 	print '<tr><td valign="top" class="fieldrequired">'.$langs->trans("Ref").'</td>';
-	print '<td colspan="3"><input size="8" type="text" class="flat" name="ref" value="'.$account->ref.'"></td></tr>';
+	print '<td colspan="3"><input size="8" type="text" class="flat" name="ref" value="'.($_POST["ref"]?$_POST["ref"]:$account->ref).'"></td></tr>';
 
 	// Label
 	print '<tr><td valign="top" class="fieldrequired">'.$langs->trans("LabelBankCashAccount").'</td>';
@@ -280,7 +280,7 @@ if ($_REQUEST["action"] == 'create')
 	print '<tr><td colspan="4"><b>'.$langs->trans("InitialBankBalance").'...</b></td></tr>';
 
 	print '<tr><td valign="top">'.$langs->trans("InitialBankBalance").'</td>';
-	print '<td colspan="3"><input size="12" type="text" class="flat" name="solde" value="'.price2num($account->solde).'"></td></tr>';
+	print '<td colspan="3"><input size="12" type="text" class="flat" name="solde" value="'.($_POST["solde"]?$_POST["solde"]:price2num($account->solde)).'"></td></tr>';
 
 	print '<tr><td valign="top">'.$langs->trans("Date").'</td>';
 	print '<td colspan="3">';
@@ -288,10 +288,10 @@ if ($_REQUEST["action"] == 'create')
 	print '</td></tr>';
 
 	print '<tr><td valign="top">'.$langs->trans("BalanceMinimalAllowed").'</td>';
-	print '<td colspan="3"><input size="12" type="text" class="flat" name="account_min_allowed" value="'.$account->account_min_allowed.'"></td></tr>';
+	print '<td colspan="3"><input size="12" type="text" class="flat" name="account_min_allowed" value="'.($_POST["account_min_allowed"]?$_POST["account_min_allowed"]:$account->account_min_allowed).'"></td></tr>';
 
 	print '<tr><td valign="top">'.$langs->trans("BalanceMinimalDesired").'</td>';
-	print '<td colspan="3"><input size="12" type="text" class="flat" name="account_min_desired" value="'.$account->account_min_desired.'"></td></tr>';
+	print '<td colspan="3"><input size="12" type="text" class="flat" name="account_min_desired" value="'.($_POST["account_min_desired"]?$_POST["account_min_desired"]:$account->account_min_desired).'"></td></tr>';
 
 	print '<tr><td align="center" colspan="4"><input value="'.$langs->trans("CreateAccount").'" type="submit" class="button"></td></tr>';
 	print '</form>';
@@ -364,7 +364,12 @@ else
 
 		// Country
 		print '<tr><td>'.$langs->trans("Country").'</td><td>';
-		if ($account->fk_pays > 0) print getCountry($account->fk_pays);
+		if ($account->fk_pays > 0)
+		{
+			$img=picto_from_langcode($account->pays_code);
+			print $img?$img.' ':'';
+			print getCountry($account->getCountryCode());
+		}
 		print '</td></tr>';
 
 		// State
diff --git a/htdocs/compta/fiche.php b/htdocs/compta/fiche.php
index 2f71249337b..af73325636a 100644
--- a/htdocs/compta/fiche.php
+++ b/htdocs/compta/fiche.php
@@ -185,8 +185,9 @@ if ($socid > 0)
 
 	// Country
 	print '<tr><td>'.$langs->trans('Country').'</td><td colspan="3">';
-	if ($societe->isInEEC()) print $form->textwithpicto($societe->pays,$langs->trans("CountryIsInEEC"),1,0);
-	else print $societe->pays;
+	$img=picto_from_langcode($societe->pays_code);
+	if ($societe->isInEEC()) print $form->textwithpicto(($img?$img.' ':'').$societe->pays,$langs->trans("CountryIsInEEC"),1,0);
+	else print ($img?$img.' ':'').$societe->pays;
 	print '</td></tr>';
 
 	// Phone
diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php
index a6db8ba3161..bc662e32117 100644
--- a/htdocs/contact/class/contact.class.php
+++ b/htdocs/contact/class/contact.class.php
@@ -438,8 +438,8 @@ class Contact extends CommonObject
 				$this->ville          = $obj->ville;
 
 				$this->fk_departement = $obj->fk_departement;
-				$this->departement_code = $obj->fk_departement;
-				$this->departement	  = $obj->fk_departement;
+				$this->departement_code = $obj->departement_code;
+				$this->departement	  = $obj->departement;
 
 				$this->fk_pays        = $obj->fk_pays;
 				$this->pays_code      = $obj->fk_pays?$obj->pays_code:'';
diff --git a/htdocs/contact/fiche.php b/htdocs/contact/fiche.php
index 039181c6b3e..884ef089809 100644
--- a/htdocs/contact/fiche.php
+++ b/htdocs/contact/fiche.php
@@ -623,6 +623,8 @@ if ($_REQUEST["id"] && $_REQUEST["action"] != 'edit')
 
 	// Country
 	print '<tr><td>'.$langs->trans("Country").'</td><td colspan="3">';
+	$img=picto_from_langcode($contact->pays_code);
+	if ($img) print $img.' ';
 	print $contact->pays;
 	print '</td></tr>';
 
diff --git a/htdocs/core/class/conf.class.php b/htdocs/core/class/conf.class.php
index 71f83a11d3e..319d55a1b4f 100644
--- a/htdocs/core/class/conf.class.php
+++ b/htdocs/core/class/conf.class.php
@@ -380,6 +380,7 @@ class Conf
 		$this->format_date_short="%d/%m/%Y";			# Format of day with PHP/C tags (strftime functions)
 		$this->format_date_short_java="dd/MM/yyyy";		# Format of day with Java tags
 		$this->format_hour_short="%H:%M";
+		$this->format_hour_short_duration="%H:%M";
 		$this->format_date_text_short="%d %b %Y";
 		$this->format_date_text="%d %B %Y";
 		$this->format_date_hour_short="%d/%m/%Y %H:%M";
diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index 043cf45b191..deffbfc7b0b 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -8,7 +8,7 @@
  * Copyright (C) 2006      Andre Cianfarani      <acianfa@free.fr>
  * Copyright (C) 2006      Marc Barilley/Ocebo   <marc@ocebo.com>
  * Copyright (C) 2007      Franky Van Liedekerke <franky.van.liedekerker@telenet.be>
- * Copyright (C) 2007      Patrick Raguin 		   <patrick.raguin@gmail.com>
+ * Copyright (C) 2007      Patrick Raguin        <patrick.raguin@gmail.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
@@ -27,7 +27,7 @@
 
 /**
  *	\file       htdocs/core/class/html.form.class.php
- *	\brief      Fichier de la classe des fonctions predefinie de composants html
+ *	\brief      File of class with all html predefined components
  *	\version	$Id$
  */
 
@@ -252,10 +252,10 @@ class Form
 
 
 	/**
-	 *    \brief     Retourne la liste deroulante des pays actifs, dans la langue de l'utilisateur
-	 *    \param     selected         Id ou Code pays ou Libelle pays pre-selectionne
-	 *    \param     htmlname         Nom de la liste deroulante
-	 *    \param     htmloption       Options html sur le select
+	 *    \brief     Return combo list of activated countries, into language of user
+	 *    \param     selected         Id or Code or Label of preselected country
+	 *    \param     htmlname         Name of html select object
+	 *    \param     htmloption       Options html on select object
 	 *    \TODO      trier liste sur noms apres traduction plutot que avant
 	 */
 	function select_pays($selected='',$htmlname='pays_id',$htmloption='')
@@ -344,7 +344,8 @@ class Form
 
 
 	/**
-	 *		\brief      Return list of social contributions
+	 *		\brief      Return list of social contributions.
+	 * 		\remarks	Use mysoc->pays_id or mysoc->pays_code
 	 *		\param      selected        Preselected type
 	 *		\param      htmlname        Name of field in form
 	 * 		\param		useempty		Set to 1 if we want an empty value
@@ -355,11 +356,24 @@ class Form
 	{
 		global $db,$langs,$user,$mysoc;
 
-		$sql = "SELECT c.id, c.libelle as type";
-		$sql.= " FROM ".MAIN_DB_PREFIX."c_chargesociales as c";
-		$sql.= " WHERE active = 1";
-		$sql.= " AND fk_pays = ".$mysoc->pays_id;
-		$sql.= " ORDER BY c.libelle ASC";
+		if (empty($mysoc->pays_id) && empty($mysoc->pays_code)) dol_print_error('','ErrorBadParameter');
+
+		if (! empty($mysoc->pays_id))
+		{
+			$sql = "SELECT c.id, c.libelle as type";
+			$sql.= " FROM ".MAIN_DB_PREFIX."c_chargesociales as c";
+			$sql.= " WHERE c.active = 1";
+			$sql.= " AND c.fk_pays = ".$mysoc->pays_id;
+			$sql.= " ORDER BY c.libelle ASC";
+		}
+		else
+		{
+			$sql = "SELECT c.id, c.libelle as type";
+			$sql.= " FROM ".MAIN_DB_PREFIX."c_chargesociales as c, ".MAIN_DB_PREFIX."c_pays as p";
+			$sql.= " WHERE c.active = 1 AND c.fk_pays = p.rowid";
+			$sql.= " AND p.code = '".$mysoc->pays_code."'";
+			$sql.= " ORDER BY c.libelle ASC";
+		}
 
 		dol_syslog("Form::select_type_socialcontrib sql=".$sql, LOG_DEBUG);
 		$resql=$db->query($sql);
@@ -863,11 +877,24 @@ class Form
 
 		$sql = "SELECT ";
 		$sql.= " p.rowid, p.label, p.ref, p.fk_product_type, p.price, p.price_ttc, p.price_base_type, p.duration, p.stock";
-		$sql.= " FROM ".MAIN_DB_PREFIX."product as p ";
+		// Multilang : we add translation
+		if ($conf->global->MAIN_MULTILANGS)
+		{
+			$sql.= ", pl.label as label_translated";
+		}
+		$sql.= " FROM ".MAIN_DB_PREFIX."product as p";
+		// Multilang : we add translation
+		if ($conf->global->MAIN_MULTILANGS)
+		{
+			$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_lang as pl ON pl.fk_product = p.rowid AND pl.lang='". $langs->getDefaultLang() ."'";
+		}
 		$sql.= " WHERE p.entity = ".$conf->entity;
-		if (!$user->rights->produit->hidden) $sql.=' AND (p.hidden=0 OR p.fk_product_type != 0)';
-		if (!$user->rights->service->hidden) $sql.=' AND (p.hidden=0 OR p.fk_product_type != 1)';
-
+		if (empty($user->rights->produit->hidden) && empty($user->rights->service->hidden)) $sql.=' AND p.hidden=0';
+		else
+		{
+			if (empty($user->rights->produit->hidden)) $sql.=' AND (p.hidden=0 OR p.fk_product_type != 0)';
+			if (empty($user->rights->service->hidden)) $sql.=' AND (p.hidden=0 OR p.fk_product_type != 1)';
+		}
 		if($finished == 0)
 		{
 			$sql.= " AND p.finished = ".$finished;
@@ -885,35 +912,29 @@ class Form
 		// Add criteria on ref/label
 		if (empty($conf->global->PRODUCT_SEARCH_ANYWHERE))
 		{
-			if ($ajaxkeysearch && $ajaxkeysearch != '') $sql.=" AND (p.ref like '".$ajaxkeysearch."%' OR p.label like '".$ajaxkeysearch."%')";
+			if ($ajaxkeysearch && $ajaxkeysearch != '')
+			{
+				$sql.=" AND (p.ref like '".$ajaxkeysearch."%' OR p.label like '".$ajaxkeysearch."%'";
+				if ($conf->global->MAIN_MULTILANGS) $sql.=" OR pl.label like '".$ajaxkeysearch."%'";
+				$sql.=")";
+			}
 		}
 		else
 		{
-			if ($ajaxkeysearch && $ajaxkeysearch != '') $sql.=" AND (p.ref like '%".$ajaxkeysearch."%' OR p.label like '%".$ajaxkeysearch."%')";
+			if ($ajaxkeysearch && $ajaxkeysearch != '')
+			{
+				$sql.=" AND (p.ref like '%".$ajaxkeysearch."%' OR p.label like '%".$ajaxkeysearch."%'";
+				if ($conf->global->MAIN_MULTILANGS) $sql.=" OR pl.label like '%".$ajaxkeysearch."%'";
+				$sql.=")";
+			}
 		}
 		$sql.= $db->order("p.ref");
 		$sql.= $db->plimit($limit);
 
-		dol_syslog("Form::select_produits_do sql=".$sql, LOG_DEBUG);
+		dol_syslog("Form::select_produits_do search product sql=".$sql, LOG_DEBUG);
 		$result=$this->db->query($sql);
 		if (! $result) dol_print_error($this->db);
 
-		// Multilang : on construit une liste des traductions des produits listes
-		if ($conf->global->MAIN_MULTILANGS)
-		{
-			$sqld = "SELECT d.fk_product, d.label";
-			$sqld.= " FROM ".MAIN_DB_PREFIX."product as p";
-			$sqld.= ", ".MAIN_DB_PREFIX."product_lang as d";
-			$sqld.= " WHERE d.fk_product = p.rowid";
-			$sqld.= " AND p.entity = ".$conf->entity;
-			$sqld.= " AND p.envente = 1";
-			$sqld.= " AND d.lang='". $langs->getDefaultLang() ."'";
-			$sqld.= " ORDER BY p.ref";
-
-			dol_syslog("Form::select_produits_do sql=".$sql, LOG_DEBUG);
-			$resultd = $this->db->query($sqld);
-		}
-
 		if ($result)
 		{
 			$num = $this->db->num_rows($result);
@@ -944,15 +965,9 @@ class Form
 			{
 				$objp = $this->db->fetch_object($result);
 
-				// Multilangs : modification des donnees si une traduction existe
-				if ($conf->global->MAIN_MULTILANGS)
-				{
-					if ( $resultd ) $objtp = $this->db->fetch_object($resultd);
-					if ( $objp->rowid == $objtp->fk_product ) // si on a une traduction
-					{
-						if ( $objtp->label != '') $objp->label = $objtp->label;
-					}
-				}
+				$label=$objp->label;
+				if (! empty($objp->label_translated)) $label=$objp->label_translated;
+
 				$opt = '<option value="'.$objp->rowid.'"';
 				$opt.= ($objp->rowid == $selected)?' selected="true"':'';
 				if ($conf->stock->enabled && $objp->fk_product_type == 0 && isset($objp->stock))
@@ -967,7 +982,7 @@ class Form
 					}
 				}
 				$opt.= '>'.$objp->ref.' - ';
-				$opt.= dol_trunc($objp->label,32).' - ';
+				$opt.= dol_trunc($label,32).' - ';
 
 				$found=0;
 				$currencytext=$langs->trans("Currency".$conf->monnaie);
@@ -983,7 +998,7 @@ class Form
 					$sql.= " ORDER BY date_price";
 					$sql.= " DESC limit 1";
 
-					dol_syslog("Form::select_produits_do sql=".$sql);
+					dol_syslog("Form::select_produits_do search price for level '.$price_level.' sql=".$sql);
 					$result2 = $this->db->query($sql);
 					if ($result2)
 					{
@@ -1189,9 +1204,9 @@ class Form
 	}
 
 	/**
-		\brief		Retourne la liste des tarifs fournisseurs pour un produit
-		\param		productid   		    Id product
-		*/
+	 *	\brief		Retourn list of suppliers prices for a product
+	 *	\param		productid   		    Id of product
+	 */
 	function select_product_fourn_price($productid,$htmlname='productfournpriceid')
 	{
 		global $langs,$conf;
diff --git a/htdocs/core/class/translate.class.php b/htdocs/core/class/translate.class.php
index ec8d727aafa..9a983e7b03b 100644
--- a/htdocs/core/class/translate.class.php
+++ b/htdocs/core/class/translate.class.php
@@ -309,6 +309,7 @@ class Translate {
 				$conf->format_date_short=empty($this->tab_translate['FormatDateShort'])?"%d/%m/%Y":$this->tab_translate['FormatDateShort'];					# Format of day with PHP/C tags (strftime functions)
 				$conf->format_date_short_java=empty($this->tab_translate['FormatDateShortJava'])?"dd/MM/yyyy":$this->tab_translate['FormatDateShortJava'];	# Format of day with Java tags
 				$conf->format_hour_short=empty($this->tab_translate['FormatHourShort'])?"%H:%M":$this->tab_translate['FormatHourShort'];
+				$conf->format_hour_short_duration=empty($this->tab_translate['FormatHourShortDuration'])?"%H:%M":$this->tab_translate['FormatHourShortDuration'];
 				$conf->format_date_text_short=empty($this->tab_translate['FormatDateTextShort'])?"%d %b %Y":$this->tab_translate['FormatDateTextShort'];
 				$conf->format_date_text=empty($this->tab_translate['FormatDateText'])?"%d %B %Y":$this->tab_translate['FormatDateText'];
 				$conf->format_date_hour_short=empty($this->tab_translate['FormatDateHourShort'])?"%d/%m/%Y %H:%M":$this->tab_translate['FormatDateHourShort'];
@@ -666,14 +667,6 @@ class Translate {
 		}
 	}
 
-	/**
-	 * @deprecated
-	 */
-	function setPhpLang()
-	{
-		return;
-	}
-
 }
 
 ?>
diff --git a/htdocs/fichinter/index.php b/htdocs/fichinter/index.php
index da00914a3a9..b2918779595 100644
--- a/htdocs/fichinter/index.php
+++ b/htdocs/fichinter/index.php
@@ -1,6 +1,6 @@
 <?php
 /* Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
- * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
+ * Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2005-2009 Regis Houssin        <regis@dolibarr.fr>
  *
  * This program is free software; you can redistribute it and/or modify
diff --git a/htdocs/fourn/fiche.php b/htdocs/fourn/fiche.php
index 6d7499fbde3..c3a75075a96 100644
--- a/htdocs/fourn/fiche.php
+++ b/htdocs/fourn/fiche.php
@@ -91,8 +91,9 @@ if ( $societe->fetch($socid) )
 
 	// Country
 	print '<tr><td>'.$langs->trans("Country").'</td><td colspan="3">';
-	if ($societe->isInEEC()) print $form->textwithpicto($societe->pays,$langs->trans("CountryIsInEEC"),1,0);
-	else print $societe->pays;
+	$img=picto_from_langcode($societe->pays_code);
+	if ($societe->isInEEC()) print $form->textwithpicto(($img?$img.' ':'').$societe->pays,$langs->trans("CountryIsInEEC"),1,0);
+	else print ($img?$img.' ':'').$societe->pays;
 	print '</td></tr>';
 
 	// Phone
diff --git a/htdocs/ftp/admin/ftpclient.php b/htdocs/ftp/admin/ftpclient.php
index 7015402230d..7f09d338f83 100644
--- a/htdocs/ftp/admin/ftpclient.php
+++ b/htdocs/ftp/admin/ftpclient.php
@@ -27,7 +27,7 @@ require("../../main.inc.php");
 require_once(DOL_DOCUMENT_ROOT."/lib/admin.lib.php");
 
 $langs->load("admin");
-$langs->load("@ftp");
+$langs->load("ftp");
 
 // Security check
 if (!$user->admin) accessforbidden();
diff --git a/htdocs/ftp/index.php b/htdocs/ftp/index.php
index e8292799c48..cf717e49d03 100644
--- a/htdocs/ftp/index.php
+++ b/htdocs/ftp/index.php
@@ -31,7 +31,7 @@ require_once(DOL_DOCUMENT_ROOT."/lib/files.lib.php");
 require_once(DOL_DOCUMENT_ROOT."/lib/treeview.lib.php");
 
 // Load traductions files
-$langs->load("@ftp");
+$langs->load("ftp");
 $langs->load("companies");
 $langs->load("other");
 
diff --git a/htdocs/ftp/langs/ca_ES/ftp.lang b/htdocs/ftp/langs/ca_ES/ftp.lang
deleted file mode 100644
index d625ba312bc..00000000000
--- a/htdocs/ftp/langs/ca_ES/ftp.lang
+++ /dev/null
@@ -1,12 +0,0 @@
-# Dolibarr language file - ca_ES - ftp
-CHARSET= UTF-8
-FTPClientSetup= Configuració del mòdul client FTP
-NewFTPClient= Nova connexió client FTP
-FTPArea= Àrea FTP
-FTPAreaDesc= Aquesta pantalla presenta una vista de servidor FTP
-SetupOfFTPClientModuleNotComplete= La configuració del mòdul de client FTP sembla incompleta
-FTPFeatureNotSupportedByYourPHP= El seu PHP no suporta les funcions FTP
-FailedToConnectToFTPServer= No s'ha pogut connectar amb el servidor FTP (servidor: %s, port %s)
-FailedToConnectToFTPServerWithCredentials= No s'ha pogut connectar amb el login/contrasenya FTP configurats
-FTPFailedToRemoveFile= No s'ha pogut suprimir el fitxer <b>%s</b>.
-FTPFailedToRemoveDir= No s'ha pogut suprimir la carpeta <b>%s</b> (Comproveu els permisos i que el directori està buit).
diff --git a/htdocs/ftp/langs/en_US/ftp.lang b/htdocs/ftp/langs/en_US/ftp.lang
deleted file mode 100644
index 65b11a7a129..00000000000
--- a/htdocs/ftp/langs/en_US/ftp.lang
+++ /dev/null
@@ -1,12 +0,0 @@
-# Dolibarr language file - en_US - ftp
-CHARSET=UTF-8
-FTPClientSetup=FTP Client module setup
-NewFTPClient=New FTP connection setup
-FTPArea=FTP Area
-FTPAreaDesc=This screen show you content of a FTP server view
-SetupOfFTPClientModuleNotComplete=Setup of FTP client module seems to be not complete
-FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP functions
-FailedToConnectToFTPServer=Failed to connect to FTP server (server %s, port %s)
-FailedToConnectToFTPServerWithCredentials=Failed to login to FTP server with defined login/password
-FTPFailedToRemoveFile=Failed to remove file <b>%s</b>.
-FTPFailedToRemoveDir=Failed to remove directory <b>%s</b> (Check permissions and that directory is empty).
\ No newline at end of file
diff --git a/htdocs/ftp/langs/es_ES/ftp.lang b/htdocs/ftp/langs/es_ES/ftp.lang
deleted file mode 100644
index ffad9738ca8..00000000000
--- a/htdocs/ftp/langs/es_ES/ftp.lang
+++ /dev/null
@@ -1,12 +0,0 @@
-# Dolibarr language file - es_ES - ftp 
-CHARSET= UTF-8
-FTPClientSetup= Configuración del módulo cliente FTP
-NewFTPClient= Nueva conexión cliente FTP
-FTPArea= Área FTP
-FTPAreaDesc= Esta pantalla presenta una vista de servidor FTP
-SetupOfFTPClientModuleNotComplete= La configuración del módulo de cliente FTP parece incompleta
-FTPFeatureNotSupportedByYourPHP= Su PHP no soporta las funciones FTP
-FailedToConnectToFTPServer= No se pudo conectar con el servidor FTP  (servidor: %s, puerto %s)
-FailedToConnectToFTPServerWithCredentials= No se pudo conectar con el login/contraseña FTP configurados
-FTPFailedToRemoveFile= No se pudo eliminar el archivo <b>%s</b>.
-FTPFailedToRemoveDir= No se pudo eliminar el directorio <b>%s</b> (Compruebe los permisos y que el directorio está vacío).
diff --git a/htdocs/ftp/langs/fr_FR/ftp.lang b/htdocs/ftp/langs/fr_FR/ftp.lang
deleted file mode 100644
index 0b29cf1a5fc..00000000000
--- a/htdocs/ftp/langs/fr_FR/ftp.lang
+++ /dev/null
@@ -1,12 +0,0 @@
-# Dolibarr language file - fr_FR - ftp
-CHARSET=UTF-8
-FTPClientSetup=Configuration du module FTP Client
-NewFTPClient=Nouvelle configuration de connexion FTP
-FTPArea=Espace FTP
-FTPAreaDesc=Cet écran vous présente une vue de serveur FTP
-SetupOfFTPClientModuleNotComplete=La configuration du module FTP Client semble incomplète
-FTPFeatureNotSupportedByYourPHP=Votre PHP ne supporte pas les fonctions FTP
-FailedToConnectToFTPServer=Echec de connexion au serveur FTP (serveur: %s, port %s)
-FailedToConnectToFTPServerWithCredentials=Echec de login avec le login/mot de passe FTP configuré
-FTPFailedToRemoveFile=Echec suppression fichier <b>%s</b>.
-FTPFailedToRemoveDir=Echec suppression répertoire <b>%s</b> (Vérifiez les permissions et que le répertoire soit vide).
\ No newline at end of file
diff --git a/htdocs/ftp/langs/nl_NL/ftp.lang b/htdocs/ftp/langs/nl_NL/ftp.lang
deleted file mode 100644
index 29d4ee3681f..00000000000
--- a/htdocs/ftp/langs/nl_NL/ftp.lang
+++ /dev/null
@@ -1,12 +0,0 @@
-# Dolibarr language file - nl_NL - ftp
-CHARSET=UTF-8
-FTPClientSetup=Configuratie van module FTP-client
-NewFTPClient=Nieuwe FTP-client
-FTPArea=FTP gedeelte
-FTPAreaDesc=Dit scherm toont u een overzicht van FTP-servers
-SetupOfFTPClientModuleNotComplete=Configuratie van module FTP-client lijkt onvolledig
-FTPFeatureNotSupportedByYourPHP=Uw PHP ondersteunt niet de juiste FTP-functies
-FailedToConnectToFTPServer=Geen verbinding maken met server (FTP-server: %s, poort: %s)
-FailedToConnectToFTPServerWithCredentials=Inloggen met de geconfigureerde login/wachtwoord FTP mislukt
-FTPFailedToRemoveFile=Bestand <b>%s</b> verwijderen mislukt.
-FTPFailedToRemoveDir=Map <b>%s</b> verwijderen mislukt (Controleer de rechten en of de map leeg is).
\ No newline at end of file
diff --git a/htdocs/ftp/langs/tr_TR/ftp.lang b/htdocs/ftp/langs/tr_TR/ftp.lang
deleted file mode 100644
index 8efe911e54a..00000000000
--- a/htdocs/ftp/langs/tr_TR/ftp.lang
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Language code: tr_TR
- * Automatic generated via autotranslator.php tool
- * Generation date 2010-03-15 19:05:26
- */
-
-
-// START - Lines generated via autotranslator.php tool (2010-03-15 19:05:26).
-// Reference language: en_US
-CHARSET=UTF-8
-FTPClientSetup=FTP İstemcisi modülü kurulumu
-NewFTPClient=Yeni bir FTP bağlantısı kurulumu
-FTPArea=FTP Alanı
-FTPAreaDesc=Bu ekranda bir FTP sunucusu görünümünün içeriği gösterir
-SetupOfFTPClientModuleNotComplete=Kur FTP istemcisi modülünün tam değil gibi görünüyor
-FTPFeatureNotSupportedByYourPHP=PHP FTP fonksiyonları desteklemez
-FailedToConnectToFTPServer=FTP sunucusu, port% s) (% sunucuya bağlanamadı
-FailedToConnectToFTPServerWithCredentials=Tanımlı giriş ile FTP sunucusuna giriş yapılamadı / şifre
-FTPFailedToRemoveFile=<b>Dosya%</b> kaldırılamadı <b>var.</b>
-FTPFailedToRemoveDir=<b>Dizini%</b> kaldırılamadı (izinleri kontrol edin ve dizin boş <b>s).</b>
-// STOP - Lines generated via autotranslator.php tool (2010-03-15 19:05:26).
diff --git a/htdocs/ftp/pre.inc.php b/htdocs/ftp/pre.inc.php
index c296a9bea5a..3a4307d92d9 100644
--- a/htdocs/ftp/pre.inc.php
+++ b/htdocs/ftp/pre.inc.php
@@ -30,7 +30,7 @@ $user->getrights('ecm');
 function llxHeader($head = '', $title='', $help_url='', $morehtml='')
 {
 	global $conf,$langs,$user;
-	$langs->load("@ftp");
+	$langs->load("ftp");
 
 	top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss);	// Show html headers
 	top_menu($head, $title, $target, $disablejs, $disablehead, $arrayofjs, $arrayofcss);	// Show html headers
diff --git a/htdocs/includes/modules/modFTP.class.php b/htdocs/includes/modules/modFTP.class.php
index 02651aa0455..8752c4e877b 100644
--- a/htdocs/includes/modules/modFTP.class.php
+++ b/htdocs/includes/modules/modFTP.class.php
@@ -67,9 +67,9 @@ class modFTP extends DolibarrModules
 
 		// Data directories to create when module is enabled
 		$this->dirs = array("/ftp/temp");
-		
+
 		// Langs file within the module
-		$this->langfiles = array("@ftp");
+		$this->langfiles = array("ftp");
 
 		// Config pages. Put here list of php page names stored in admmin directory used to setup module
 		$this->config_page_url = array('ftpclient.php@ftp');
diff --git a/htdocs/includes/modules/modPaybox.class.php b/htdocs/includes/modules/modPaybox.class.php
index 8723a08c67a..91d4f11d16a 100644
--- a/htdocs/includes/modules/modPaybox.class.php
+++ b/htdocs/includes/modules/modPaybox.class.php
@@ -81,7 +81,7 @@ class modPayBox extends DolibarrModules
 		$this->requiredby = array();	// List of modules id to disable if this one is disabled
 		$this->phpmin = array(4,1);					// Minimum version of PHP required by module
 		$this->need_dolibarr_version = array(2,6);	// Minimum version of Dolibarr required by module
-		$this->langfiles = array("@paybox");
+		$this->langfiles = array("paybox");
 
 		// Constants
 		$this->const = array();			// List of particular constants to add when module is enabled
diff --git a/htdocs/lib/admin.lib.php b/htdocs/lib/admin.lib.php
index f3269ba40b6..027fe77c0de 100644
--- a/htdocs/lib/admin.lib.php
+++ b/htdocs/lib/admin.lib.php
@@ -466,32 +466,35 @@ function listOfSessions()
 	dol_syslog('admin.lib:listOfSessions sessPath='.$sessPath);
 
 	$dh = @opendir($sessPath);
-	while(($file = @readdir($dh)) !== false)
+	if ($dh)
 	{
-		if (preg_match('/^sess_/i',$file) && $file != "." && $file != "..")
+		while(($file = @readdir($dh)) !== false)
 		{
-			$fullpath = $sessPath.$file;
-			if(! @is_dir($fullpath) && is_readable($fullpath))
+			if (preg_match('/^sess_/i',$file) && $file != "." && $file != "..")
 			{
-				$sessValues = file_get_contents($fullpath);	// get raw session data
-
-				if (preg_match('/dol_login/i',$sessValues) && // limit to dolibarr session
-					preg_match('/dol_entity\|s:([0-9]+):"('.$conf->entity.')"/i',$sessValues) && // limit to current entity
-					preg_match('/dol_company\|s:([0-9]+):"('.$conf->global->MAIN_INFO_SOCIETE_NOM.')"/i',$sessValues)) // limit to company name
+				$fullpath = $sessPath.$file;
+				if(! @is_dir($fullpath) && is_readable($fullpath))
 				{
-					$tmp=explode('_', $file);
-					$idsess=$tmp[1];
-					$login = preg_match('/dol_login\|s:[0-9]+:"([A-Za-z0-9]+)"/i',$sessValues,$regs);
-					$arrayofSessions[$idsess]["login"] = $regs[1];
-					$arrayofSessions[$idsess]["age"] = time()-filectime( $fullpath );
-					$arrayofSessions[$idsess]["creation"] = filectime( $fullpath );
-					$arrayofSessions[$idsess]["modification"] = filemtime( $fullpath );
-					$arrayofSessions[$idsess]["raw"] = $sessValues;
+					$sessValues = file_get_contents($fullpath);	// get raw session data
+
+					if (preg_match('/dol_login/i',$sessValues) && // limit to dolibarr session
+						preg_match('/dol_entity\|s:([0-9]+):"('.$conf->entity.')"/i',$sessValues) && // limit to current entity
+						preg_match('/dol_company\|s:([0-9]+):"('.$conf->global->MAIN_INFO_SOCIETE_NOM.')"/i',$sessValues)) // limit to company name
+					{
+						$tmp=explode('_', $file);
+						$idsess=$tmp[1];
+						$login = preg_match('/dol_login\|s:[0-9]+:"([A-Za-z0-9]+)"/i',$sessValues,$regs);
+						$arrayofSessions[$idsess]["login"] = $regs[1];
+						$arrayofSessions[$idsess]["age"] = time()-filectime( $fullpath );
+						$arrayofSessions[$idsess]["creation"] = filectime( $fullpath );
+						$arrayofSessions[$idsess]["modification"] = filemtime( $fullpath );
+						$arrayofSessions[$idsess]["raw"] = $sessValues;
+					}
 				}
 			}
 		}
+		@closedir($dh);
 	}
-	@closedir($dh);
 
 	return $arrayofSessions;
 }
diff --git a/htdocs/lib/company.lib.php b/htdocs/lib/company.lib.php
index d5c68861971..b4f30ff71da 100644
--- a/htdocs/lib/company.lib.php
+++ b/htdocs/lib/company.lib.php
@@ -189,6 +189,7 @@ function getCountry($id,$withcode=0)
 {
 	global $db,$langs;
 
+	// TODO Optimize: Try translate and make SQL request only if it fails
 	$sql = "SELECT rowid, code, libelle FROM ".MAIN_DB_PREFIX."c_pays";
 	if (is_numeric($id)) $sql.= " WHERE rowid=".$id;
 	else $sql.= " WHERE code='".$id."'";
diff --git a/htdocs/lib/date.lib.php b/htdocs/lib/date.lib.php
index 4be3064c133..7d61e8da19e 100644
--- a/htdocs/lib/date.lib.php
+++ b/htdocs/lib/date.lib.php
@@ -54,6 +54,8 @@ function ConvertSecondToTime($iSecond,$format='all',$lengthOfDay=86400)
 
 	if ($format == 'all')
 	{
+		if ($iSecond === 0) return '0';	// This is to avoid having 0 return a 12:00 AM for en_US
+
 		$sDay=0;
 		if ($iSecond >= $lengthOfDay)
 		{
@@ -69,7 +71,7 @@ function ConvertSecondToTime($iSecond,$format='all',$lengthOfDay=86400)
 		if ($sDay) $sTime.=$sDay.' '.$dayTranslate.' ';
 		if ($iSecond || empty($sDay))
 		{
-			$sTime.= dol_print_date($iSecond,'hour',true);
+			$sTime.= dol_print_date($iSecond,'hourduration',true);
 		}
 	}
 	else if ($format == 'hour')
diff --git a/htdocs/lib/functions.lib.php b/htdocs/lib/functions.lib.php
index aa049e7e2dc..6deca3edd55 100644
--- a/htdocs/lib/functions.lib.php
+++ b/htdocs/lib/functions.lib.php
@@ -439,6 +439,7 @@ function dol_print_date($time,$format='',$to_gmt=false,$outputlangs='',$encodeto
 
 	if ($format == 'day')               $format=$conf->format_date_short;
 	if ($format == 'hour')              $format=$conf->format_hour_short;
+	if ($format == 'hourduration')      $format=$conf->format_hour_short_duration;
 	if ($format == 'daytext')           $format=$conf->format_date_text;
 	if ($format == 'daytextshort')      $format=$conf->format_date_text_short;
 	if ($format == 'dayhour')           $format=$conf->format_date_hour_short;
@@ -3433,9 +3434,9 @@ function pattern_match($pattern,$string)
 }
 
 /**
- * 	\brief		Show picto of country for a language code
- * 	\param		codelang	Language code to get picto
- * 	\return		string
+ * 	\brief		Return img flag of country for a language code or country code
+ * 	\param		codelang	Language code (en_IN, fr_CA...) or Country code (IN, FR)
+ * 	\return		string		HTML img string with flag.
  */
 function picto_from_langcode($codelang)
 {
@@ -3451,7 +3452,7 @@ function picto_from_langcode($codelang)
     		else
     		{
     			$tmparray=explode('_',$codelang);
-    			$tmpcode=$tmparray[1];
+    			$tmpcode=empty($tmparray[1])?$tmparray[0]:$tmparray[1];
     		}
     		if ($tmpcode) $ret.=img_picto($codelang,DOL_URL_ROOT.'/theme/common/flags/'.strtolower($tmpcode).'.png','',1);
     	}
diff --git a/htdocs/paybox/admin/paybox.php b/htdocs/paybox/admin/paybox.php
index 91510e1c4ca..a12bab5482c 100644
--- a/htdocs/paybox/admin/paybox.php
+++ b/htdocs/paybox/admin/paybox.php
@@ -29,7 +29,7 @@ require_once(DOL_DOCUMENT_ROOT."/lib/admin.lib.php");
 $servicename='PayBox';
 
 $langs->load("admin");
-$langs->load("@paybox");
+$langs->load("paybox");
 
 if (!$user->admin)
   accessforbidden();
diff --git a/htdocs/paybox/langs/ar_AR/paybox.lang b/htdocs/paybox/langs/ar_AR/paybox.lang
deleted file mode 100644
index 2733d25fa76..00000000000
--- a/htdocs/paybox/langs/ar_AR/paybox.lang
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Language code: ar_AR
- * Automatic generated via autotranslator.php tool
- * Generation date 2009-08-11 13:27:01
- */
-
-
-// Date 2009-08-11 13:27:01
-// START - Lines generated via autotranslator.php tool.
-// Reference language: en_US
-CHARSET=UTF-8
-PayBoxSetup=إعداد وحدة PayBox
-PayBoxDesc=This module offer pages to allow payment on <a href="http://www.paybox.com" target=هذا نموذج للسماح بعرض الصفحات على دفع <a href="http://www.paybox.com" target="_blank">Paybox</a> الواحد. هذه يمكن استخدامها لدفع حر أو لدفع مبلغ معين على وجوه Dolibarr (الفاتورة ، والنظام ،...)
-FollowingUrlAreAvailableToMakePayments=فيما يلي عناوين المواقع المتاحة لعرض هذه الصفحة زبون لتسديد دفعة Dolibarr على الأجسام
-PaymentForm=شكل الدفع
-WelcomeOnPaymentPage=ونحن نرحب على خدمة الدفع عبر الإنترنت
-ThisScreenAllowsYouToPay=تتيح لك هذه الشاشة إجراء الدفع الإلكتروني إلى ٪ s.
-ThisIsInformationOnPayment=هذه هي المعلومات عن الدفع للقيام
-ToComplete=لإكمال
-YourEMail=البريد الالكتروني لتأكيد الدفع
-Creditor=الدائن
-PaymentCode=دفع رمز
-PayBoxDoPayment=على الدفع
-YouWillBeRedirectedOnPayBox=سوف يتم نقلك على تأمين Paybox لك صفحة لإدخال معلومات بطاقة الائتمان
-PleaseBePatient=من فضلك ، والتحلي بالصبر
-Continue=التالي
-ToOfferALinkForOnlinePaymentOnOrder=عنوان لتقديم المستندات ٪ الدفع الإلكتروني واجهة المستخدم للأمر
-ToOfferALinkForOnlinePaymentOnInvoice=عنوان لتقديم المستندات ٪ الدفع الإلكتروني واجهة المستخدم للفاتورة
-ToOfferALinkForOnlinePaymentOnContractLine=عنوان لتقديم المستندات ٪ الدفع الإلكتروني واجهة المستخدم للحصول على عقد خط
-ToOfferALinkForOnlinePaymentOnFreeAmount=عنوان لتقديم المستندات ٪ الدفع الإلكتروني واجهة المستخدم لمبلغ حرة
-YouCanAddTagOnUrl=You can also add url parameter <b>&tag=يمكنك أيضا إضافة رابط المعلم <b>= &amp; علامة</b> على أي من <i><b>قيمة</b></i> تلك عنوان (مطلوب فقط لدفع الحر) الخاصة بك لإضافة تعليق دفع الوسم.
-SetupPayBoxToHavePaymentCreatedAutomatically=الإعداد الخاص بك مع رابط PayBox <b>٪ ق</b> قد تنشأ تلقائيا عند دفع يصادق عليها paybox.
-// Date 2009-08-11 13:27:01
-// STOP - Lines generated via parser
diff --git a/htdocs/paybox/langs/ca_ES/paybox.lang b/htdocs/paybox/langs/ca_ES/paybox.lang
deleted file mode 100644
index e56137a2277..00000000000
--- a/htdocs/paybox/langs/ca_ES/paybox.lang
+++ /dev/null
@@ -1,24 +0,0 @@
-# Dolibarr language file - ca_ES - paybox 
-CHARSET= UTF-8
-PayBoxSetup= Configuració mòdul PayBox
-PayBoxDesc= Aquest mòdul ofereix una pàgina de pagament a través del proveïdor <a href=\"http://www.paybox.com\" target=\"_blank\">Paybox</a> per realitzar qualsevol pagament o un pagament en relació amb un objecte Dolibarr (factures, comandes ...)
-PaymentForm= Formulari de pagament
-FollowingUrlAreAvailableToMakePayments= Les següents URL estan disponibles per a permetre a un client fer un pagament
-WelcomeOnPaymentPage= Benvingut als nostres serveis de pagament en línia
-ThisScreenAllowsYouToPay= Aquesta pantalla li permet fer el seu pagament en línia destinat a %s.
-ThisIsInformationOnPayment= Aquí està la informació sobre el pagament a realitzar
-ToComplete= A completar
-YourEMail= E-mail de confirmació de pagament
-Creditor= Beneficiari
-PaymentCode= Codi de pagament
-PayBoxDoPayment= Continua el pagament amb targeta
-YouWillBeRedirectedOnPayBox= Serà redirigit a la pàgina segura de PayBox per indicar la seva targeta de crèdit
-PleaseBePatient= Espereu uns segons
-Continue= Continuar
-ToOfferALinkForOnlinePaymentOnOrder= URL que ofereix una interfície de pagament en línia %s basada en l'import d'una comanda de client
-ToOfferALinkForOnlinePaymentOnInvoice= URL que ofereix una interfície de pagament en línia %s basada en l'import d'una factura
-ToOfferALinkForOnlinePaymentOnContractLine= URL que ofereix una interfície de pagament en línia %s basada en l'import d'una línia de contracte
-ToOfferALinkForOnlinePaymentOnFreeAmount= URL que ofereix una interfície de pagament en línia %s basada en un impport llíure
-ToOfferALinkForOnlinePaymentOnMemberSubscription= URL que ofereix una interfície de pagament en línia %s basada en la cotització d'un membre
-YouCanAddTagOnUrl= També pot afegir el paràmetre url <b>&tag=<i>value</i></b> per a qualsevol d'aquestes adreces (obligatori només per al pagament lliure) per veure el seu propi \"codi de comentari\" de pagament.
-SetupPayBoxToHavePaymentCreatedAutomatically= Configureu la vostra url Paybox <b>%s</b> per tal que el pagament es creu automàticament al validar.
diff --git a/htdocs/paybox/langs/da_DA/paybox.lang b/htdocs/paybox/langs/da_DA/paybox.lang
deleted file mode 100644
index e2ed15b5bef..00000000000
--- a/htdocs/paybox/langs/da_DA/paybox.lang
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Language code: da_DA
- * Automatic generated via autotranslator.php tool
- * Generation date 2009-08-13 20:39:59
- */
-
-
-// START - Lines generated via autotranslator.php tool (2009-08-13 20:39:59).
-// Reference language: en_US
-CHARSET=UTF-8
-PayBoxSetup=PayBox modul opsætning
-PayBoxDesc=Dette modul tilbyder sider at muliggøre betaling på <a href="http://www.paybox.com" target="_blank">Paybox</a> af kunderne. Dette kan bruges til en gratis betaling eller til en betaling på en bestemt Dolibarr genstand (faktura, ordre, ...)
-FollowingUrlAreAvailableToMakePayments=Følgende webadresser findes til at tilbyde en side til en kunde for at foretage en indbetaling på Dolibarr objekter
-PaymentForm=Betaling form
-WelcomeOnPaymentPage=Velkommen på vores online betalingstjenesten
-ThisScreenAllowsYouToPay=Dette skærmbillede giver dig mulighed for at foretage en online-betaling til %s.
-ThisIsInformationOnPayment=Dette er informationer om betaling for at gøre
-ToComplete=For at fuldføre
-YourEMail=E-mail til bekræftelse af betaling,
-Creditor=Kreditor
-PaymentCode=Betaling kode
-PayBoxDoPayment=Go om betaling
-YouWillBeRedirectedOnPayBox=Du bliver omdirigeret om sikret Paybox siden til input du kreditkort informationer
-PleaseBePatient=Vær tålmodig
-Continue=Næste
-ToOfferALinkForOnlinePaymentOnOrder=URL til at tilbyde en %s online betaling brugergrænseflade til en ordre
-ToOfferALinkForOnlinePaymentOnInvoice=URL til at tilbyde en %s online betaling brugergrænseflade til en faktura
-ToOfferALinkForOnlinePaymentOnContractLine=URL til at tilbyde en %s online betaling brugergrænseflade til en kontrakt linje
-ToOfferALinkForOnlinePaymentOnFreeAmount=URL til at tilbyde en %s online betaling brugergrænseflade til et frit beløb
-YouCanAddTagOnUrl=Du kan også tilføje webadresseparameter <b>&amp; tag= <i>værdi</i></b> til nogen af disse URL (kræves kun for fri betaling) for at tilføje din egen betaling kommentere tag.
-SetupPayBoxToHavePaymentCreatedAutomatically=Opret din PayBox med <b>url %s</b> for at få betaling oprettes automatisk, når valideret af paybox.
-// STOP - Lines generated via autotranslator.php tool (2009-08-13 20:39:59).
diff --git a/htdocs/paybox/langs/de_DE/paybox.lang b/htdocs/paybox/langs/de_DE/paybox.lang
deleted file mode 100644
index 875c5925b8a..00000000000
--- a/htdocs/paybox/langs/de_DE/paybox.lang
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Language code: de_DE
- * Automatic generated via autotranslator.php tool
- * Generation date 2009-08-13 20:42:36
- */
-
-
-// START - Lines generated via autotranslator.php tool (2009-08-13 20:42:36).
-// Reference language: en_US
-CHARSET=UTF-8
-PayBoxSetup=PayBox Modul Setup
-PayBoxDesc=Dieses Modul bietet Seiten die Zahlung über <a href="http://www.paybox.com" target="_blank">Paybox</a> den Kunden. Dies kann verwendet werden, für eine Zahlung oder eine Zahlung zu einem bestimmten Objekt Dolibarr (Rechnung, Bestellung, ...)
-FollowingUrlAreAvailableToMakePayments=Folgenden URLs zur Verfügung stehen, um eine Seite an einen Kunden, um eine Zahlung auf Dolibarr Objekte
-PaymentForm=Zahlungsformular
-WelcomeOnPaymentPage=Willkommen auf unserer Online-Payment-Service
-ThisScreenAllowsYouToPay=In diesem Fenster können Sie eine Online-Zahlung an %s.
-ThisIsInformationOnPayment=Dies ist Informationen über die Zahlung zu tun
-ToComplete=Um
-YourEMail=E-Mail-Bestätigung für die Zahlung
-Creditor=Kreditorenlösungen
-PaymentCode=Zahlung Code
-PayBoxDoPayment=Gehen Sie auf die Zahlung
-YouWillBeRedirectedOnPayBox=Sie werden weitergeleitet auf gesicherten Paybox Seite, um Sie Kreditkarten-Informationen
-PleaseBePatient=Bitte etwas Geduld
-Continue=Nächster
-ToOfferALinkForOnlinePaymentOnOrder=URL, um einen %s Benutzer-Schnittstelle für Online-Zahlungen für einen Auftrag
-ToOfferALinkForOnlinePaymentOnInvoice=URL, um einen %s online Benutzeroberfläche für die Zahlung einer Rechnung
-ToOfferALinkForOnlinePaymentOnContractLine=URL, um einen %s online Benutzeroberfläche für die Zahlung einer Linie
-ToOfferALinkForOnlinePaymentOnFreeAmount=URL, um einen %s Benutzer-Schnittstelle für Online-Zahlungen für eine freie Höhe
-YouCanAddTagOnUrl=Sie können auch URL-Parameter <b>&amp; tag= <i>Wert</i></b> für jede dieser URL (nur für die Zahlung), um Ihren eigenen Kommentar Zahlung Tag.
-SetupPayBoxToHavePaymentCreatedAutomatically=Richten Sie Ihre PayBox mit <b>URL %s,</b> um die Zahlung automatisch erstellt, wenn die von paybox.
-// STOP - Lines generated via autotranslator.php tool (2009-08-13 20:42:36).
diff --git a/htdocs/paybox/langs/en_US/paybox.lang b/htdocs/paybox/langs/en_US/paybox.lang
deleted file mode 100644
index 633181aa77b..00000000000
--- a/htdocs/paybox/langs/en_US/paybox.lang
+++ /dev/null
@@ -1,24 +0,0 @@
-# Dolibarr language file - en_US - paybox
-CHARSET=UTF-8
-PayBoxSetup=PayBox module setup
-PayBoxDesc=This module offer pages to allow payment on <a href="http://www.paybox.com" target="_blank">Paybox</a> by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...)
-FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects
-PaymentForm=Payment form
-WelcomeOnPaymentPage=Welcome on our online payment service
-ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s.
-ThisIsInformationOnPayment=This is information on payment to do
-ToComplete=To complete
-YourEMail=Email for payment confirmation
-Creditor=Creditor
-PaymentCode=Payment code
-PayBoxDoPayment=Go on payment
-YouWillBeRedirectedOnPayBox=You will be redirected on secured Paybox page to input you credit card information
-PleaseBePatient=Please, be patient
-Continue=Next
-ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for an order
-ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user interface for an invoice
-ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line
-ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount
-ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription
-YouCanAddTagOnUrl=You can also add url parameter <b>&tag=<i>value</i></b> to any of those URL (required only for free payment) to add your own payment comment tag.
-SetupPayBoxToHavePaymentCreatedAutomatically=Setup your PayBox with url <b>%s</b> to have payment created automatically when validated by paybox. 
\ No newline at end of file
diff --git a/htdocs/paybox/langs/es_ES/paybox.lang b/htdocs/paybox/langs/es_ES/paybox.lang
deleted file mode 100644
index 0e3859c4a0a..00000000000
--- a/htdocs/paybox/langs/es_ES/paybox.lang
+++ /dev/null
@@ -1,24 +0,0 @@
-# Dolibarr language file - es_ES - paybox 
-CHARSET= UTF-8
-PayBoxSetup= Configuración módulo PayBox
-PayBoxDesc= Este módulo ofrece una página  de pago a través del proveedor <a href=\"http://www.paybox.com\" target=\"_blank\">Paybox</a> para realizar cualquier pago o un pago en relación con un objeto Dolibarr (facturas, pedidos ...)
-PaymentForm= Formulario de pago
-FollowingUrlAreAvailableToMakePayments= Las siguientes URL están disponibles para permitir a un cliente efectuar un pago
-WelcomeOnPaymentPage= Bienvenido a nuestros servicios de pago en línea
-ThisScreenAllowsYouToPay= Esta pantalla le permite hacer su pago en línea destinado a %s.
-ThisIsInformationOnPayment= Aquí está la información sobre el pago a realizar
-ToComplete= A completar
-YourEMail= E-Mail de confirmación de pago
-Creditor= Beneficiario
-PaymentCode= Código de pago
-PayBoxDoPayment= Continuar el pago con tarjeta
-YouWillBeRedirectedOnPayBox= Va a ser redirigido a la página segura de  Paybox para indicar su tarjeta de crédito
-PleaseBePatient= Espere unos segundos
-Continue= Continuar
-ToOfferALinkForOnlinePaymentOnOrder= URL que ofrece una interfaz de pago en línea %s basada en el importe de un pedido de cliente
-ToOfferALinkForOnlinePaymentOnInvoice= URL que ofrece una interfaz de pago en línea %s basada en el importe de una factura
-ToOfferALinkForOnlinePaymentOnContractLine= URL que ofrece una interfaz de pago en línea %s basada en el importe de una línea de contrato
-ToOfferALinkForOnlinePaymentOnFreeAmount= URL que ofrece una interfaz de pago en línea %s basada en un importe libre
-ToOfferALinkForOnlinePaymentOnMemberSubscription= URL que ofrece una interfaz de pago en línea %s basada en la cotización de un miembro
-YouCanAddTagOnUrl= También puede añadir el parámetro url <b>&tag=<i>value</i></b>  para cualquiera de estas direcciones (obligatorio sólamente para el pago libre) para ver su propio \"código de comentario\" de pago.
-SetupPayBoxToHavePaymentCreatedAutomatically= Configure su url PayBox <b>%s</b> para que el pago se cree automáticamente al validar.
diff --git a/htdocs/paybox/langs/fi_FI/paybox.lang b/htdocs/paybox/langs/fi_FI/paybox.lang
deleted file mode 100644
index 537d3c76fbc..00000000000
--- a/htdocs/paybox/langs/fi_FI/paybox.lang
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Language code: fi_FI
- * Automatic generated via autotranslator.php tool
- * Generation date 2009-08-13 20:45:19
- */
-
-
-// START - Lines generated via autotranslator.php tool (2009-08-13 20:45:19).
-// Reference language: en_US
-CHARSET=UTF-8
-PayBoxSetup=PayBox moduulin asetukset
-PayBoxDesc=Tämä moduuli tarjota sivuja, jotta maksua <a href="http://www.paybox.com" target="_blank">Paybox</a> asiakkaat. Tätä voidaan käyttää vapaa-maksun tai maksaa tietyn Dolibarr objektin (lasku-, tilaus-, ...)
-FollowingUrlAreAvailableToMakePayments=Seuraavat URL-osoitteet ovat käytettävissä tarjota sivu asiakas tehdä maksua Dolibarr esineitä
-PaymentForm=Maksu-muodossa
-WelcomeOnPaymentPage=Tervetuloa online maksupalveluntarjoajan
-ThisScreenAllowsYouToPay=Tässä näytössä voit tehdä online-maksu %s.
-ThisIsInformationOnPayment=Tämä on informations maksua tehdä
-ToComplete=Saattamaan
-YourEMail=Sähköposti maksupyyntö vahvistus
-Creditor=Velkoja
-PaymentCode=Maksu-koodi
-PayBoxDoPayment=Mene maksu
-YouWillBeRedirectedOnPayBox=Sinut ohjataan on turvattu Paybox sivu tuloliittimeen voit luottokortin tiedot
-PleaseBePatient=Please, kärsivällinen
-Continue=Seuraava
-ToOfferALinkForOnlinePaymentOnOrder=URL tarjota %s online maksu käyttöliittymän tilauksen
-ToOfferALinkForOnlinePaymentOnInvoice=URL tarjota %s online maksu käyttöliittymän lasku
-ToOfferALinkForOnlinePaymentOnContractLine=URL tarjota %s online maksu käyttöliittymän sopimuksen linjan
-ToOfferALinkForOnlinePaymentOnFreeAmount=URL tarjota %s online maksu käyttöliittymän vapaa määrä
-YouCanAddTagOnUrl=Voit myös lisätä URL-parametrin <b>&amp; tag= <i>arvo</i></b> mille tahansa niistä URL (vaaditaan ainoastaan ilmaiseksi maksu) lisätään oma maksu kommentoida tag.
-SetupPayBoxToHavePaymentCreatedAutomatically=Määritä oman PayBox kanssa <b>url %s</b> on maksu luodaan automaattisesti, kun validoinut paybox.
-// STOP - Lines generated via autotranslator.php tool (2009-08-13 20:45:19).
diff --git a/htdocs/paybox/langs/fr_FR/paybox.lang b/htdocs/paybox/langs/fr_FR/paybox.lang
deleted file mode 100644
index ff8f568e5df..00000000000
--- a/htdocs/paybox/langs/fr_FR/paybox.lang
+++ /dev/null
@@ -1,25 +0,0 @@
-# Dolibarr language file - fr_FR - paybox
-CHARSET=UTF-8
-PayBoxSetup=Configuration module PayBox
-PayBoxDesc=Ce module permet d'offrir une page de paiement via le prestataire <a href="http://www.paybox.com" target="_blank">Paybox</a> pour réaliser un paiement quelconque ou un paiement par rapport à un objet Dolibarr (factures, commande...)
-PaymentForm=Formulaire de paiement
-FollowingUrlAreAvailableToMakePayments=Les URL suivantes sont disponibles pour permettre à un client de faire un paiement
-WelcomeOnPaymentPage=Bienvenu sur notre service de paiement en ligne
-ThisScreenAllowsYouToPay=Cet écran vous permet de réaliser votre paiement en ligne à destination de %s.
-ThisIsInformationOnPayment=Voici les informations sur le paiement à réaliser
-ToComplete=A compléter
-YourEMail=Email de confirmation du paiement
-Creditor=Bénéficiaire
-PaymentCode=Code de paiement
-PayBoxDoPayment=Poursuivre le paiement par carte
-YouWillBeRedirectedOnPayBox=Vous serez redirigé vers la page sécurisée Paybox de saisie de votre carte bancaire
-PleaseBePatient=Merci de patientez quelques secondes
-Continue=Continuer
-ToOfferALinkForOnlinePaymentOnOrder=URL offrant une interface de paiement en ligne %s sur la base du montant d'une commande client
-ToOfferALinkForOnlinePaymentOnInvoice=URL offrant une interface de paiement en ligne %s sur la base du montant d'une facture
-ToOfferALinkForOnlinePaymentOnContractLine=URL offrant une interface de paiement en ligne %s sur la base du montant d'une ligne de contrat
-ToOfferALinkForOnlinePaymentOnFreeAmount=URL offrant une interface de paiement en ligne %s pour un montant libre
-ToOfferALinkForOnlinePaymentOnMemberSubscription=URL offrant une interface de paiement en ligne %s sur la base d'une cotisation d'adhérent
-YouCanAddTagOnUrl=Vous pouvez de plus ajouter le paramètre url <b>&tag=<i>value</i></b> à n'importe quelles de ces URL (obligatoire pour le paiement libre uniquement) pour ajouter votre propre "code commentaire" du paiement.
-SetupPayBoxToHavePaymentCreatedAutomatically=Configurez votre url PayBox à <b>%s</b> pour avoir le paiement créé automatiquement si validé.
- 
\ No newline at end of file
diff --git a/htdocs/paybox/langs/it_IT/paybox.lang b/htdocs/paybox/langs/it_IT/paybox.lang
deleted file mode 100644
index ee001c55a01..00000000000
--- a/htdocs/paybox/langs/it_IT/paybox.lang
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Language code: it_IT
- * Automatic generated via autotranslator.php tool
- * Generation date 2009-08-13 20:49:18
- */
-
-
-// START - Lines generated via autotranslator.php tool (2009-08-13 20:49:18).
-// Reference language: en_US
-CHARSET=UTF-8
-PayBoxSetup=Paybox modulo configurazione
-PayBoxDesc=Questo modulo offre pagine per consentire il pagamento di <a href="http://www.paybox.com" target="_blank">Paybox</a> da parte dei clienti. Questo può essere usato gratuitamente per un pagamento o un pagamento su un particolare oggetto Dolibarr (fattura, ordine, ...)
-FollowingUrlAreAvailableToMakePayments=In seguito sono disponibili gli URL di una pagina di offrire a un cliente per effettuare un pagamento sul Dolibarr oggetti
-PaymentForm=Forma di pagamento
-WelcomeOnPaymentPage=Benvenuti sul nostro servizio di pagamento online
-ThisScreenAllowsYouToPay=Questa schermata consente di effettuare un pagamento online su %s.
-ThisIsInformationOnPayment=Si tratta di informazioni a pagamento per fare
-ToComplete=Per completare
-YourEMail=E-mail per la conferma del pagamento
-Creditor=Creditore
-PaymentCode=Pagamento codice
-PayBoxDoPayment=Vai a pagamento
-YouWillBeRedirectedOnPayBox=Verrai reindirizzato su garantiti Paybox pagina per inserire le informazioni della carta di credito si
-PleaseBePatient=Vi preghiamo di essere paziente
-Continue=Successivo
-ToOfferALinkForOnlinePaymentOnOrder=URL di offrire un pagamento on-line %s interfaccia utente per un ordine
-ToOfferALinkForOnlinePaymentOnInvoice=URL di offrire un pagamento on-line %s interfaccia utente per una fattura
-ToOfferALinkForOnlinePaymentOnContractLine=URL di offrire un pagamento on-line %s interfaccia utente per un contratto di linea
-ToOfferALinkForOnlinePaymentOnFreeAmount=URL di offrire un pagamento on-line %s interfaccia utente per un importo
-YouCanAddTagOnUrl=È inoltre possibile aggiungere <b>tag di</b> parametro <b>&amp;</b> url <b>= <i>valore</i></b> di uno qualsiasi di questi URL (richiesto solo per il pagamento gratuito) per aggiungere il tuo commento pagamento tag.
-SetupPayBoxToHavePaymentCreatedAutomatically=Imposta il tuo Paybox con <b>url %s</b> per il pagamento sono creati automaticamente quando convalidati dal Paybox.
-// STOP - Lines generated via autotranslator.php tool (2009-08-13 20:49:18).
diff --git a/htdocs/paybox/langs/nl_BE/paybox.lang b/htdocs/paybox/langs/nl_BE/paybox.lang
deleted file mode 100644
index ec8998ecac8..00000000000
--- a/htdocs/paybox/langs/nl_BE/paybox.lang
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Language code: nl_BE
- * Automatic generated via autotranslator.php tool
- * Generation date 2009-08-19 20:37:40
- */
-
-
-// START - Lines generated via autotranslator.php tool (2009-08-19 20:37:40).
-// Reference language: en_US
-CHARSET=UTF-8
-PayBoxSetup=PayBox module setup
-PayBoxDesc=Deze module biedt pagina&#39;s om betaling op <a href="http://www.paybox.com" target="_blank">Paybox</a> door de klanten. Dit kan gebruikt worden voor een gratis betaling of een betaling op een bepaalde Dolibarr object (factuur, bestelling, ...)
-FollowingUrlAreAvailableToMakePayments=Volgende URL&#39;s beschikbaar om een pagina naar een klant om een betaling op Dolibarr voorwerpen
-PaymentForm=Betaling vorm
-WelcomeOnPaymentPage=Welkom op onze online betalingsdienstaanbieders
-ThisScreenAllowsYouToPay=Dit scherm kunt u bij het maken van een online betaling aan %s.
-ThisIsInformationOnPayment=Dit is informatie over de betaling te doen
-ToComplete=Te voltooien
-YourEMail=E-mailadres voor de betaling bevestiging
-Creditor=Creditor
-PaymentCode=Betaling code
-PayBoxDoPayment=Ga op de betaling
-YouWillBeRedirectedOnPayBox=U wordt omgeleid over Paybox beveiligde pagina naar input je creditcard informatie
-PleaseBePatient=Gelieve even geduld
-Continue=Volgende
-ToOfferALinkForOnlinePaymentOnOrder=URL om een online betaling %s user interface voor een bestelling
-ToOfferALinkForOnlinePaymentOnInvoice=URL om een online betaling %s user interface voor een factuur
-ToOfferALinkForOnlinePaymentOnContractLine=URL om een online betaling %s user interface voor een contract lijn
-ToOfferALinkForOnlinePaymentOnFreeAmount=URL om een online betaling %s user interface voor een gratis bedrag
-YouCanAddTagOnUrl=U kunt ook url parameter <b>&amp; tag= <i>waarde</i></b> voor een van deze URL (enkel vereist voor de vrije betaling) om uw eigen commentaar betaling tag.
-SetupPayBoxToHavePaymentCreatedAutomatically=Uw PayBox met <b>url %s</b> om de betaling automatisch gemaakt wanneer gevalideerd door paybox.
-// STOP - Lines generated via autotranslator.php tool (2009-08-19 20:37:40).
diff --git a/htdocs/paybox/langs/nl_NL/paybox.lang b/htdocs/paybox/langs/nl_NL/paybox.lang
deleted file mode 100644
index fe05ac99b61..00000000000
--- a/htdocs/paybox/langs/nl_NL/paybox.lang
+++ /dev/null
@@ -1,24 +0,0 @@
-# Dolibarr language file - nl_NL - paybox
-CHARSET=UTF-8
-PayBoxSetup=PayBox module setup
-PayBoxDesc=Deze module bied pagina's om betalingen via <a href="http://www.paybox.com" target="_blank">Paybox</a> te doen door klanten. Dit kan gebruikt worden voor een vrije betaling (donatie) of voor een specifiek Dolibar object (factuur, orde, ...)
-FollowingUrlAreAvailableToMakePayments=De volgende URL's zijn beschikbaar om een pagina te bieden voor het maken van een betaling van een Dolibarr object
-PaymentForm=Betalings formulier
-WelcomeOnPaymentPage=Welkom bij onze online betalingsservice
-ThisScreenAllowsYouToPay=DiT scherm staat u toe om een online betaling te doen voor %s
-ThisIsInformationOnPayment=Dit is informatie over nog uit te voeren betalingen
-ToComplete=Afmaken
-YourEMail=Email voor betalingsbevestiging
-Creditor=Crediteur
-PaymentCode=Betalingscode
-PayBoxDoPayment=Ga naar betaling
-YouWillBeRedirectedOnPayBox=U wordt doorverwezen naar een beveiligde Paybox pagina voor uw credit card informatie gegevens
-PleaseBePatient=Wees alstublieft geduldig
-Continue=Volgende
-ToOfferALinkForOnlinePaymentOnOrder=URL om een %s online betalings gebruikers interface aan te bieden voor een order
-ToOfferALinkForOnlinePaymentOnInvoice=URL om een %s online betalings gebruikers interface aan te bieden voor een factuur
-ToOfferALinkForOnlinePaymentOnContractLine=URL om een %s online betalings gebruikers interface aan te bieden voor een contract lijn
-ToOfferALinkForOnlinePaymentOnFreeAmount=URL om een %s online betalings gebruikers interface aan te bieden voor een donatie
-ToOfferALinkForOnlinePaymentOnMemberSubscription=URL om een %s online betalings gebruikers interface aan te bieden voor een leden abonnement subscription
-YouCanAddTagOnUrl=U kunt ook url parameter <b>&tag=<i>waarde</i></b> toevoegen voor elk van deze URL (enkel nodig voor een donatie) om van uw eigen betalings commentaar te voorzien
-SetupPayBoxToHavePaymentCreatedAutomatically=Setup uw PayBox met url <b>%s</b> om een betalings automatisch te maken zodra de betalings is gevallideerd door paybox.
\ No newline at end of file
diff --git a/htdocs/paybox/langs/pl_PL/paybox.lang b/htdocs/paybox/langs/pl_PL/paybox.lang
deleted file mode 100644
index 05719b3528c..00000000000
--- a/htdocs/paybox/langs/pl_PL/paybox.lang
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Language code: pl_PL
- * Automatic generated via autotranslator.php tool
- * Generation date 2009-08-13 21:07:31
- */
-
-
-// START - Lines generated via autotranslator.php tool (2009-08-13 21:07:31).
-// Reference language: en_US
-CHARSET=UTF-8
-PayBoxSetup=PayBox konfiguracji modułu
-PayBoxDesc=Moduł ten oferują strony, aby umożliwić płatności na <a href="http://www.paybox.com" target="_blank">Paybox</a> przez klientów. Może to być wykorzystane do swobodnego zapłatę lub płatność w szczególności Dolibarr obiektu (faktury, zamówienia, ...)
-FollowingUrlAreAvailableToMakePayments=Po adresy są dostępne na stronie ofertę do klienta, aby dokonać płatności na Dolibarr obiektów
-PaymentForm=Forma płatności
-WelcomeOnPaymentPage=Witamy na naszej usługi płatności online
-ThisScreenAllowsYouToPay=Ten ekran pozwala na dokonanie płatności on-line do %s.
-ThisIsInformationOnPayment=To jest informacja o płatności do
-ToComplete=Aby zakończyć
-YourEMail=E-mail z potwierdzeniem zapłaty
-Creditor=Wierzyciel
-PaymentCode=Płatność kod
-PayBoxDoPayment=Przejdź na płatności
-YouWillBeRedirectedOnPayBox=Zostaniesz przekierowany na zabezpieczone Paybox stronę wejścia ci karty kredytowej informacje
-PleaseBePatient=Proszę, bądź cierpliwy
-Continue=Następny
-ToOfferALinkForOnlinePaymentOnOrder=URL zaoferowania %s płatności online interfejsu użytkownika na zamówienie
-ToOfferALinkForOnlinePaymentOnInvoice=URL zaoferowania %s płatności online interfejsu użytkownika na fakturze
-ToOfferALinkForOnlinePaymentOnContractLine=URL zaoferować płatności online %s interfejs użytkownika do umowy linii
-ToOfferALinkForOnlinePaymentOnFreeAmount=URL zaoferować płatności online %s interfejs użytkownika w celu utworzenia bezpłatnego kwotę
-YouCanAddTagOnUrl=Możesz również dodać parametr <b>&amp;</b> url <b>= <i>wartość</i> tagu</b> do żadnej z tych adresów URL (wymagany tylko za darmo płatności), aby dodać swój komentarz płatności tag.
-SetupPayBoxToHavePaymentCreatedAutomatically=Skonfiguruj PayBox url <b>z %s</b> do zapłaty tworzone automatycznie, gdy zatwierdzone przez paybox.
-// STOP - Lines generated via autotranslator.php tool (2009-08-13 21:07:31).
diff --git a/htdocs/paybox/langs/pt_BR/paybox.lang b/htdocs/paybox/langs/pt_BR/paybox.lang
deleted file mode 100644
index 6a63c235624..00000000000
--- a/htdocs/paybox/langs/pt_BR/paybox.lang
+++ /dev/null
@@ -1,26 +0,0 @@
-# Dolibarr language file - pt_BR rev. 0.0 - paybox
-CHARSET=UTF-8
-PayBoxSetup=Configuração do módulo PayBox
-PayBoxDesc=Este módulo oferece uma página de pagamento atravé do fornecedor <a href
-FollowingUrlAreAvailableToMakePayments=As seguintes URL estão disponíveis para permitir a um cliente efetuar um pagamento
-PaymentForm=Formulário de Pagamento
-WelcomeOnPaymentPage=Bem Vindos a Nossos serviços de pagamento on-line
-ThisScreenAllowsYouToPay=Esta página lhe permite fazer seu pagamento on-line destinado a %s.
-ThisIsInformationOnPayment=Aqui está a informação sobre o pagamento a realizar
-ToComplete=A completar
-YourEMail=E-Mail de confirmação de pagamento
-Creditor=Beneficiário
-PaymentCode=Código de pagamento
-PayBoxDoPayment=Continuar o pagamento com cartão
-YouWillBeRedirectedOnPayBox=Va a ser redirecionado a a página segura de  Paybox para indicar seu cartão de crédito
-PleaseBePatient=Espere uns segundos
-Continue=Continuar
-ToOfferALinkForOnlinePaymentOnOrder=URL que oferece uma interface de pagamento on-line %s baseada no valor de un pedido de cliente
-ToOfferALinkForOnlinePaymentOnInvoice=URL que oferece uma interface de pagamento on-line %s baseada no valor de uma fatura
-ToOfferALinkForOnlinePaymentOnContractLine=URL que oferece uma interface de pagamento on-line %s baseada no valor de uma linha de contrato
-ToOfferALinkForOnlinePaymentOnFreeAmount=URL que oferece uma interface de pagamento on-line %s baseada em um valor livre
-ToOfferALinkForOnlinePaymentOnMemberSubscription=URL fornecido pela interface de pagamento on-line %s em função da adesão encargos
-YouCanAddTagOnUrl=Também pode adicionar 0 parámetro url <b>&tag
-SetupPayBoxToHavePaymentCreatedAutomatically=Configure sua url PayBox <b>%s</b> para que o pagamento se crie automaticamente ao Confirmar.
-
-
diff --git a/htdocs/paybox/langs/pt_PT/paybox.lang b/htdocs/paybox/langs/pt_PT/paybox.lang
deleted file mode 100644
index 77074d9c0ad..00000000000
--- a/htdocs/paybox/langs/pt_PT/paybox.lang
+++ /dev/null
@@ -1,28 +0,0 @@
-# Dolibarr language file - pt_PT - paybox 
-CHARSET=UTF-8
-PayBoxSetup=Configuração do módulo PayBox
-PayBoxDesc=Este módulo oferece uma página de pagagamento através do fornecedor <a href=\"http://www.paybox.com\" target=\"_blank\">Paybox</a> para realizar qualquer pagamento ou um pagamento em relação com um objeto Dolibarr (facturas, pedidos ...)
-FollowingUrlAreAvailableToMakePayments=As seguintes URL estão disponiveis para permitir a um cliente efectuar um pagamento
-WelcomeOnPaymentPage=Bienvenido a nuestros servicios de pago en línea
-ThisScreenAllowsYouToPay=Esta pantalla le permite hacer su pago en línea destinado a %s.
-ThisIsInformationOnPayment=Aquí está la información sobre el pago a realizar
-ToComplete=A completar
-YourEMail=E-Mail de confirmación de pago
-Creditor=Beneficiario
-PaymentCode=Código de pago
-PayBoxDoPayment=Continuar el pago con tarjeta
-YouWillBeRedirectedOnPayBox=Va a ser redirigido a la página segura de  Paybox para indicar su tarjeta de crédito
-PleaseBePatient=Espere unos segundos
-Continue=Continuar
-ToOfferALinkForOnlinePaymentOnOrder=URL que ofrece una interfaz de pago en línea %s basada en el importe de un pedido de cliente
-ToOfferALinkForOnlinePaymentOnInvoice=URL que ofrece una interfaz de pago en línea %s basada en el importe de una factura
-ToOfferALinkForOnlinePaymentOnContractLine=URL que ofrece una interfaz de pago en línea %s basada en el importe de una línea de contrato
-ToOfferALinkForOnlinePaymentOnFreeAmount=URL que ofrece una interfaz de pago en línea %s basada en un importe libre
-YouCanAddTagOnUrl=También puede añadir el parámetro url <b>&tag=<i>value</i></b>  para cualquiera de estas direcciones (obligatorio sólamente para el pago libre) para ver su propio \"código de comentario\" de pago.
-SetupPayBoxToHavePaymentCreatedAutomatically=Configure su url PayBox <b>%s</b> para que el pago se cree automáticamente al Confirmar.
-
-
-// START - Lines generated via autotranslator.php tool (2009-08-13 21:10:10).
-// Reference language: en_US
-PaymentForm=Forma de pagamento
-// STOP - Lines generated via autotranslator.php tool (2009-08-13 21:10:10).
diff --git a/htdocs/paybox/langs/ro_RO/paybox.lang b/htdocs/paybox/langs/ro_RO/paybox.lang
deleted file mode 100644
index 4b82d02933a..00000000000
--- a/htdocs/paybox/langs/ro_RO/paybox.lang
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Language code: ro_RO
- * Automatic generated via autotranslator.php tool
- * Generation date 2009-08-13 21:12:07
- */
-
-
-// START - Lines generated via autotranslator.php tool (2009-08-13 21:12:07).
-// Reference language: en_US
-CHARSET=UTF-8
-PayBoxSetup=PayBox modul de configurare
-PayBoxDesc=Acest modul oferă pagini pentru a permite plata pe <a href="http://www.paybox.com" target="_blank">Paybox</a> de către clienţi. Acest lucru poate fi folosit pentru un cont gratuit sau plată pentru o plată de pe un anumit obiect Dolibarr (factură, pentru, ...)
-FollowingUrlAreAvailableToMakePayments=Ca urmare a URL-uri sunt disponibile pentru a oferi o pagină de la un client pentru a face o plată pe Dolibarr obiecte
-PaymentForm=Formă de plată
-WelcomeOnPaymentPage=Bine ati venit la serviciul de plată online
-ThisScreenAllowsYouToPay=Acest ecran vă permite de a face o plată online pentru %s.
-ThisIsInformationOnPayment=Acest lucru este de informatii cu privire la plata de a face
-ToComplete=Pentru a completa
-YourEMail=E-mail de confirmare de plată
-Creditor=Creditor
-PaymentCode=Plata cod
-PayBoxDoPayment=Du-te la plată
-YouWillBeRedirectedOnPayBox=Veţi fi redirecţionat pe pagina Paybox securizat la intrare ai card de credit Informatii
-PleaseBePatient=Te rog, ai răbdare
-Continue=Următorul
-ToOfferALinkForOnlinePaymentOnOrder=URL-ul pentru a oferi un %s plata online pentru o interfaţă de utilizator pentru
-ToOfferALinkForOnlinePaymentOnInvoice=URL-ul pentru a oferi un %s plata online interfaţă de utilizator pentru o factură
-ToOfferALinkForOnlinePaymentOnContractLine=URL-ul pentru a oferi un %s plata online interfaţă cu utilizatorul pentru un contract de linie
-ToOfferALinkForOnlinePaymentOnFreeAmount=URL-ul pentru a oferi un %s plata online interfaţă de utilizator pentru o suma de liber
-YouCanAddTagOnUrl=Puteţi, de asemenea, să adăugaţi URL-ul parametru <b>&amp; tag= <i>valoarea</i></b> la oricare dintre aceste URL-ul (necesar doar pentru liber de plată) pentru a adăuga propriul plată comentariu tag.
-SetupPayBoxToHavePaymentCreatedAutomatically=Configuraţi-vă PayBox cu <b>URL-ul %s</b> pentru a avea de plată a creat în mod automat atunci când validate de paybox.
-// STOP - Lines generated via autotranslator.php tool (2009-08-13 21:12:07).
diff --git a/htdocs/paybox/langs/ru_RU/paybox.lang b/htdocs/paybox/langs/ru_RU/paybox.lang
deleted file mode 100644
index 1a9ad31569c..00000000000
--- a/htdocs/paybox/langs/ru_RU/paybox.lang
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Language code: ru_RU
- * Automatic generated via autotranslator.php tool
- * Generation date 2009-08-13 21:14:36
- */
-
-
-// START - Lines generated via autotranslator.php tool (2009-08-13 21:14:36).
-// Reference language: en_US
-CHARSET=UTF-8
-PayBoxSetup=PayBox модуль настройки
-PayBoxDesc=Этот модуль предложить страниц, чтобы платеж по <a href="http://www.paybox.com" target="_blank">Paybox</a> клиентами. Это может быть использовано для свободного платежа или за плату по тому или иному объекту Dolibarr (счетов-фактур, порядка, ...)
-FollowingUrlAreAvailableToMakePayments=После URL, можно предложить страницу к клиенту сделать платеж по Dolibarr объектов
-PaymentForm=Форма оплаты
-WelcomeOnPaymentPage=Добро пожаловать на наш интернет-платежей службы
-ThisScreenAllowsYouToPay=На этом экране можно сделать онлайн-платежей для %s.
-ThisIsInformationOnPayment=Это данные по оплате делать
-ToComplete=Для завершения
-YourEMail=Электронная почта для подтверждения оплаты
-Creditor=Кредитор
-PaymentCode=Код платежа
-PayBoxDoPayment=Перейти на оплату
-YouWillBeRedirectedOnPayBox=Вы будете перенаправлены по обеспеченным Paybox страницу для ввода данных кредитной карточки
-PleaseBePatient=Пожалуйста, будьте терпеливы
-Continue=Следующий
-ToOfferALinkForOnlinePaymentOnOrder=URL предложить %s онлайн платежей пользовательский интерфейс для заказа
-ToOfferALinkForOnlinePaymentOnInvoice=URL предложить %s онлайн платежей пользовательский интерфейс для счета
-ToOfferALinkForOnlinePaymentOnContractLine=URL предложить% интернет-платежей с интерфейсом пользователя на контракт линия
-ToOfferALinkForOnlinePaymentOnFreeAmount=URL предложить% интернет-платежей с пользовательским интерфейсом для свободного сумму
-YouCanAddTagOnUrl=Вы также можете добавить URL параметр И <b>тег= <i>значение</i></b> для любой из этих URL (требуется только для свободного платежа), чтобы добавить свой комментарий оплаты метки.
-SetupPayBoxToHavePaymentCreatedAutomatically=Настройте PayBox с <b>URL %s</b> иметь платежей создается автоматически, когда подтверждено paybox.
-// STOP - Lines generated via autotranslator.php tool (2009-08-13 21:14:36).
diff --git a/htdocs/paybox/langs/tr_TR/paybox.lang b/htdocs/paybox/langs/tr_TR/paybox.lang
deleted file mode 100644
index 6d69c29a649..00000000000
--- a/htdocs/paybox/langs/tr_TR/paybox.lang
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Language code: tr_TR
- * Automatic generated via autotranslator.php tool
- * Generation date 2010-03-15 19:05:26
- */
-
-
-// START - Lines generated via autotranslator.php tool (2010-03-15 19:05:26).
-// Reference language: en_US
-CHARSET=UTF-8
-PayBoxSetup=PayBox modülü kurulumu
-PayBoxDesc=Bu modül teklif sayfaları müşterilerimiz tarafından <a href="http://www.paybox.com" target="_blank">Paybox</a> ödeme izin vermek. Bu ücretsiz ödeme için kullanılabilir veya belirli bir Dolibarr nesne üzerinde bir ödeme (fatura, sipariş, ...)
-FollowingUrlAreAvailableToMakePayments=Aşağıdaki URL&#39;ler bir müşteriye Dolibarr nesneler üzerinde bir ödeme yapmak için bir sayfa sunmak için kullanılabilir
-PaymentForm=Ödeme Formu
-WelcomeOnPaymentPage=Online ödeme servisine hoşgeldiniz
-ThisScreenAllowsYouToPay=Bu ekran% s için bir online ödeme yapmak için izin
-ThisIsInformationOnPayment=Bu ödeme hakkında bilgi yapmaktır
-ToComplete=Tamamlamak için
-YourEMail=Ödeme için e-posta onayı
-Creditor=Alacaklı
-PaymentCode=Ödeme kodu
-PayBoxDoPayment=Ödeme git
-YouWillBeRedirectedOnPayBox=Güvenli Paybox sayfada giriş için kredi kartı bilgilerinizi yönlendirileceksiniz
-PleaseBePatient=Lütfen sabırlı olun
-Continue=Sonraki
-ToOfferALinkForOnlinePaymentOnOrder=URL% sunmak için bir sipariş için online ödeme kullanıcı arabirimi var
-ToOfferALinkForOnlinePaymentOnInvoice=URL% sunmak için bir fatura için online ödeme kullanıcı arabirimi var
-ToOfferALinkForOnlinePaymentOnContractLine=URL% sunmak için bir sözleşme hattı için online ödeme kullanıcı arabirimi var
-ToOfferALinkForOnlinePaymentOnFreeAmount=URL% sunan ücretsiz bir miktar için online ödeme kullanıcı arabirimi var
-ToOfferALinkForOnlinePaymentOnMemberSubscription=URL% sunmak için Üye abonelik için online ödeme kullanıcı arabirimi var
-YouCanAddTagOnUrl=De (tek ücretsiz ödeme için) ödeme Yorum etiketi eklemek için gerekli url parametresi <b>&amp; etiketi</b> herhangi bir bu URL için <b>= <i>değer</i></b> ekleyebilirsiniz.
-SetupPayBoxToHavePaymentCreatedAutomatically=Ayarlayın PayBox <b>url%</b> ile ödeme otomatik olarak paybox tarafından doğrulanmış oluşturduğunuz <b>var.</b>
-// STOP - Lines generated via autotranslator.php tool (2010-03-15 19:05:26).
diff --git a/htdocs/product/ajaxproducts.php b/htdocs/product/ajaxproducts.php
index 3b4d5a0c77e..1d33ec7cbb1 100644
--- a/htdocs/product/ajaxproducts.php
+++ b/htdocs/product/ajaxproducts.php
@@ -24,11 +24,17 @@
  *       \version    $Id$
  */
 
+if (! defined('NOREQUIREUSER'))  define('NOREQUIREUSER','1');
+//if (! defined('NOREQUIREDB'))    define('NOREQUIREDB','1');
+if (! defined('NOREQUIRESOC'))   define('NOREQUIRESOC','1');
+//if (! defined('NOREQUIRETRAN'))  define('NOREQUIRETRAN','1');
+if (! defined('NOCSRFCHECK'))    define('NOCSRFCHECK','1');
 if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Disables token renewal
 if (! defined('NOREQUIREMENU'))  define('NOREQUIREMENU','1');
 if (empty($_GET['keysearch']) && ! defined('NOREQUIREHTML'))  define('NOREQUIREHTML','1');
 if (! defined('NOREQUIREAJAX'))  define('NOREQUIREAJAX','1');
-if (! defined('NOREQUIRESOC'))   define('NOREQUIRESOC','1');
+if (! defined("NOLOGIN"))        define("NOLOGIN",'1');
+
 
 require('../main.inc.php');
 
@@ -71,6 +77,8 @@ else if (! empty($_GET['selling']))
 	print '<input size="10" type="text" class="flat" name="cashflow'.$_GET['count'].'" value="'.$_GET['selling'].'">';
 }
 
+$db->close();
+
 print "</body>";
 print "</html>";
 ?>
diff --git a/htdocs/product/index.php b/htdocs/product/index.php
index bdac27aa830..3c4c487404a 100644
--- a/htdocs/product/index.php
+++ b/htdocs/product/index.php
@@ -226,7 +226,7 @@ if ($result)
 			print "</td>\n";
 			print '<td>'.dol_trunc($objp->label,32).'</td>';
 			print "<td>";
-			print dol_print_date($objp->datem,'day');
+			print dol_print_date($db->jdate($objp->datem),'day');
 			print "</td>";
 			print '<td align="right" nowrap="nowrap">';
 			print $product_static->LibStatut($objp->envente,5);
diff --git a/htdocs/product/stock/class/entrepot.class.php b/htdocs/product/stock/class/entrepot.class.php
index 1fcfdb08543..44ea20e9f09 100644
--- a/htdocs/product/stock/class/entrepot.class.php
+++ b/htdocs/product/stock/class/entrepot.class.php
@@ -246,7 +246,7 @@ class Entrepot extends CommonObject
 
 			if ($this->pays_id)
 			{
-				$sqlp = "SELECT libelle from ".MAIN_DB_PREFIX."c_pays where rowid = ".$this->pays_id;
+				$sqlp = "SELECT code,libelle from ".MAIN_DB_PREFIX."c_pays where rowid = ".$this->pays_id;
 				$resql=$this->db->query($sqlp);
 				if ($resql)
 				{
@@ -257,6 +257,7 @@ class Entrepot extends CommonObject
 					dol_print_error($db);
 				}
 				$this->pays=$objp->libelle;
+				$this->pays_code=$objp->code;
 			}
 
 			$this->db->free($result);
diff --git a/htdocs/product/stock/fiche.php b/htdocs/product/stock/fiche.php
index e1ca149b9b7..87b8de2442a 100644
--- a/htdocs/product/stock/fiche.php
+++ b/htdocs/product/stock/fiche.php
@@ -266,6 +266,8 @@ else
 
 			// Country
 			print '<tr><td>'.$langs->trans('Country').'</td><td colspan="3">';
+			$img=picto_from_langcode($entrepot->pays_code);
+			print ($img?$img.' ':'');
 			print $entrepot->pays;
 			print '</td></tr>';
 
diff --git a/htdocs/product/stock/mouvement.php b/htdocs/product/stock/mouvement.php
index 2c52f7b3f2a..1b02d854147 100644
--- a/htdocs/product/stock/mouvement.php
+++ b/htdocs/product/stock/mouvement.php
@@ -188,6 +188,8 @@ if ($resql)
 
 		// Country
 		print '<tr><td>'.$langs->trans('Country').'</td><td colspan="3">';
+		$img=picto_from_langcode($entrepot->pays_code);
+		print ($img?$img.' ':'');
 		print $entrepot->pays;
 		print '</td></tr>';
 
diff --git a/htdocs/soc.php b/htdocs/soc.php
index b057a3695fc..5d4ad21da75 100644
--- a/htdocs/soc.php
+++ b/htdocs/soc.php
@@ -1194,9 +1194,10 @@ else
 	print '<td width="25%">'.$langs->trans('Town').'</td><td width="25%">'.$soc->ville."</td></tr>";
 
 	// Country
-	print '<tr><td>'.$langs->trans("Country").'</td><td colspan="3">';
-	if ($soc->isInEEC()) print $form->textwithpicto($soc->pays,$langs->trans("CountryIsInEEC"),1,0);
-	else print $soc->pays;
+	print '<tr><td>'.$langs->trans("Country").'</td><td colspan="3" nowrap="nowrap">';
+	$img=picto_from_langcode($soc->pays_code);
+	if ($soc->isInEEC()) print $form->textwithpicto(($img?$img.' ':'').$soc->pays,$langs->trans("CountryIsInEEC"),1,0);
+	else print ($img?$img.' ':'').$soc->pays;
 	print '</td></tr>';
 
 	// Department
@@ -1362,8 +1363,8 @@ else
 	{
 		require_once(DOL_DOCUMENT_ROOT."/lib/functions2.lib.php");
 		print '<tr><td>'.$langs->trans("DefaultLang").'</td><td colspan="3">';
-		$s=picto_from_langcode($soc->default_lang);
-		print ($s?$s.' ':'');
+		//$s=picto_from_langcode($soc->default_lang);
+		//print ($s?$s.' ':'');
 		$langs->load("languages");
 		$labellang = ($soc->default_lang?$langs->trans('Language_'.$soc->default_lang):'');
 		print $labellang;
diff --git a/htdocs/societe/agenda.php b/htdocs/societe/agenda.php
index 68f7cb46b1f..50dc2f87d7e 100644
--- a/htdocs/societe/agenda.php
+++ b/htdocs/societe/agenda.php
@@ -111,10 +111,17 @@ if ($_GET["socid"])
 
 	print "<tr><td valign=\"top\">".$langs->trans('Address')."</td><td colspan=\"3\">".nl2br($soc->address)."</td></tr>";
 
+	// Zip / Town
 	print '<tr><td width="25%">'.$langs->trans('Zip').'</td><td width="25%">'.$soc->cp."</td>";
 	print '<td width="25%">'.$langs->trans('Town').'</td><td width="25%">'.$soc->ville."</td></tr>";
+
+	// Country
 	if ($soc->pays) {
-		print '<tr><td>'.$langs->trans('Country').'</td><td colspan="3">'.$soc->pays.'</td></tr>';
+		print '<tr><td>'.$langs->trans('Country').'</td><td colspan="3">';
+		$img=picto_from_langcode($soc->pays_code);
+		print ($img?$img.' ':'');
+		print $soc->pays;
+		print '</td></tr>';
 	}
 
 	print '<tr><td>'.$langs->trans('Phone').'</td><td>'.dol_print_phone($soc->tel,$soc->pays_code,0,$soc->id,'AC_TEL').'</td>';
diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php
index b4079837a09..39d287a0fe3 100644
--- a/htdocs/societe/class/societe.class.php
+++ b/htdocs/societe/class/societe.class.php
@@ -235,7 +235,7 @@ class Societe extends CommonObject
 				}
 				else
 				{
-					dol_syslog("Societe::Create echec update");
+					dol_syslog("Societe::Create echec update ".$this->error);
 					$this->db->rollback();
 					return -3;
 				}
@@ -259,7 +259,7 @@ class Societe extends CommonObject
 		else
 		{
 			$this->db->rollback();
-			dol_syslog("Societe::Create echec verify sql=".$sql);
+			dol_syslog("Societe::Create echec verify ".join(',',$this->errors));
 			return -1;
 		}
 	}
-- 
GitLab