diff --git a/htdocs/html.formadmin.class.php b/htdocs/html.formadmin.class.php
index e5f7673380c..fa930f3d542 100644
--- a/htdocs/html.formadmin.class.php
+++ b/htdocs/html.formadmin.class.php
@@ -52,7 +52,7 @@ class FormAdmin
* \param htmlname Nom de la zone select
* \param showauto Affiche choix auto
*/
- function select_lang($selected='',$htmlname='lang_id',$showauto=0)
+ function select_lang($selected='',$htmlname='lang_id',$showauto=0,$filter=0)
{
global $langs;
@@ -66,23 +66,26 @@ class FormAdmin
print '>'.$langs->trans("AutoDetectLang").'';
}
- sort($langs_available);
- $num = count($langs_available);
- $i = 0;
- if ($num)
+ asort($langs_available);
+
+ foreach ($langs_available as $key => $value)
{
- while ($i < $num)
+ if ($filter && is_array($filter))
{
- if ($selected == $langs_available[$i])
+ if ( ! array_key_exists($key, $filter))
{
- print '';
+ print '';
}
- else
- {
- print '';
- }
- $i++;
}
+ else if ($selected == $key)
+ {
+ print '';
+ }
+ else
+ {
+ print '';
+ }
+ $i++;
}
print '';
}
diff --git a/htdocs/langs/en_US/languages.lang b/htdocs/langs/en_US/languages.lang
new file mode 100644
index 00000000000..57c24d8a8b0
--- /dev/null
+++ b/htdocs/langs/en_US/languages.lang
@@ -0,0 +1,25 @@
+# Dolibarr language file - en_US - languages
+CHARSET=UTF-8
+
+Language_ar_AR=Arabe
+Language_ca_ES=ca_ES ?
+Language_da_DA=Danois
+Language_de_DE=Allemand
+Language_en_AU=English (Australie)
+Language_en_GB=English (Royaume-Uni)
+Language_en_US=English (Etats-Unis)
+Language_es_ES=Espagnol
+Language_fi_FI=Finois
+Language_fr_BE=French (Belgique)
+Language_fr_CA=French (Canada)
+Language_fr_CH=French (Suisse)
+Language_fr_FR=French
+Language_it_IT=Italien
+Language_nb_NO=Norvégien (Bokmal)
+Language_nl_BE=Néerlandais (Belgique)
+Language_nl_NL=Néerlandais (Pays-Bas)
+Language_pl_PL=Polonais
+Language_pt_BR=Portugais (Brésil)
+Language_pt_PT=Portugais
+Language_ro_RO=Roumain
+Language_ru_RU=Russe
\ No newline at end of file
diff --git a/htdocs/langs/fr_FR/languages.lang b/htdocs/langs/fr_FR/languages.lang
new file mode 100644
index 00000000000..28fc5665885
--- /dev/null
+++ b/htdocs/langs/fr_FR/languages.lang
@@ -0,0 +1,25 @@
+# Dolibarr language file - fr_FR - languages
+CHARSET=UTF-8
+
+Language_ar_AR=Arabe
+Language_ca_ES=ca_ES ?
+Language_da_DA=Danois
+Language_de_DE=Allemand
+Language_en_AU=Anglais (Australie)
+Language_en_GB=Anglais (Royaume-Uni)
+Language_en_US=Anglais (Etats-Unis)
+Language_es_ES=Espagnol
+Language_fi_FI=Finois
+Language_fr_BE=Français (Belgique)
+Language_fr_CA=Français (Canada)
+Language_fr_CH=Français (Suisse)
+Language_fr_FR=Français
+Language_it_IT=Italien
+Language_nb_NO=Norvégien (Bokmal)
+Language_nl_BE=Néerlandais (Belgique)
+Language_nl_NL=Néerlandais (Pays-Bas)
+Language_pl_PL=Polonais
+Language_pt_BR=Portugais (Brésil)
+Language_pt_PT=Portugais
+Language_ro_RO=Roumain
+Language_ru_RU=Russe
\ No newline at end of file
diff --git a/htdocs/product.class.php b/htdocs/product.class.php
index ad98b48095e..381a07eb087 100644
--- a/htdocs/product.class.php
+++ b/htdocs/product.class.php
@@ -580,14 +580,16 @@ class Product extends CommonObject
$langs_available = $langs->get_available_languages();
$current_lang = $langs->getDefaultLang();
- foreach ($langs_available as $value)
+ foreach ($langs_available as $key => $value)
{
- $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."product_lang";
- $sql.= " WHERE fk_product=".$this->id." AND lang='".$value."'";
+ $sql = "SELECT rowid";
+ $sql.= " FROM ".MAIN_DB_PREFIX."product_lang";
+ $sql.= " WHERE fk_product=".$this->id;
+ $sql.= " AND lang='".$key."'";
$result = $this->db->query($sql);
- if ($value == $current_lang)
+ if ($key == $current_lang)
{
if ($this->db->num_rows($result)) // si aucune ligne dans la base
{
@@ -595,12 +597,12 @@ class Product extends CommonObject
$sql2.= " SET label='".addslashes($this->libelle)."',";
$sql2.= " description='".addslashes($this->description)."',";
$sql2.= " note='".addslashes($this->note)."'";
- $sql2.= " WHERE fk_product=".$this->id." AND lang='".$value."'";
+ $sql2.= " WHERE fk_product=".$this->id." AND lang='".$key."'";
}
else
{
$sql2 = "INSERT INTO ".MAIN_DB_PREFIX."product_lang (fk_product, lang, label, description, note)";
- $sql2.= " VALUES(".$this->id.",'".$value."','". addslashes($this->libelle);
+ $sql2.= " VALUES(".$this->id.",'".$key."','". addslashes($this->libelle);
$sql2.= "','".addslashes($this->description);
$sql2.= "','".addslashes($this->note)."')";
}
@@ -611,21 +613,21 @@ class Product extends CommonObject
if ($this->db->num_rows($result)) // si aucune ligne dans la base
{
$sql2 = "UPDATE ".MAIN_DB_PREFIX."product_lang";
- $sql2.= " SET label='".addslashes($this->multilangs["$value"]["libelle"])."',";
- $sql2.= " description='".addslashes($this->multilangs["$value"]["description"])."',";
- $sql2.= " note='".addslashes($this->multilangs["$value"]["note"])."'";
- $sql2.= " WHERE fk_product=".$this->id." AND lang='".$value."'";
+ $sql2.= " SET label='".addslashes($this->multilangs["$key"]["libelle"])."',";
+ $sql2.= " description='".addslashes($this->multilangs["$key"]["description"])."',";
+ $sql2.= " note='".addslashes($this->multilangs["$key"]["note"])."'";
+ $sql2.= " WHERE fk_product=".$this->id." AND lang='".$key."'";
}
else
{
$sql2 = "INSERT INTO ".MAIN_DB_PREFIX."product_lang (fk_product, lang, label, description, note)";
- $sql2.= " VALUES(".$this->id.",'".$value."','". addslashes($this->multilangs["$value"]["libelle"]);
- $sql2.= "','".addslashes($this->multilangs["$value"]["description"]);
- $sql2.= "','".addslashes($this->multilangs["$value"]["note"])."')";
+ $sql2.= " VALUES(".$this->id.",'".$key."','". addslashes($this->multilangs["$key"]["libelle"]);
+ $sql2.= "','".addslashes($this->multilangs["$key"]["description"]);
+ $sql2.= "','".addslashes($this->multilangs["$key"]["note"])."')";
}
// on ne sauvegarde pas des champs vides
- if ( $this->multilangs["$value"]["libelle"] || $this->multilangs["$value"]["description"] || $this->multilangs["$value"]["note"] )
+ if ( $this->multilangs["$key"]["libelle"] || $this->multilangs["$key"]["description"] || $this->multilangs["$key"]["note"] )
if (!$this->db->query($sql2)) return -1;
}
}
@@ -642,8 +644,8 @@ class Product extends CommonObject
$langs_available = $langs->get_available_languages();
if ( $langue != '')
- foreach ($langs_available as $value)
- if ( $value == $langue ) $current_lang = $value; // si $langue est une valeur correcte
+ foreach ($langs_available as $key => $value)
+ if ( $key == $langue ) $current_lang = $key; // si $langue est une valeur correcte
if ( !$current_lang )
$current_lang = $langs->getDefaultLang(); // sinon on choisi la langue par defaut
diff --git a/htdocs/product/traduction.php b/htdocs/product/traduction.php
index 7ac362180e9..8ea6a566a92 100644
--- a/htdocs/product/traduction.php
+++ b/htdocs/product/traduction.php
@@ -31,7 +31,7 @@ require_once(DOL_DOCUMENT_ROOT."/product.class.php");
require_once(DOL_DOCUMENT_ROOT."/html.formadmin.class.php");
$langs->load("products");
-$langs->load("bills");
+$langs->load("languages");
// Security check
if (isset($_GET["id"]) || isset($_GET["ref"]))
@@ -80,12 +80,12 @@ $_POST["cancel"] != $langs->trans("Cancel") &&
if ( $product->setMultiLangs() > 0 )
{
$_GET["action"] = '';
- $mesg = 'Fiche mise � jour';
+ $mesg = 'Fiche mise a jour';
}
else
{
$_GET["action"] = 'add';
- $mesg = 'Fiche non mise � jour !' . "
" . $product->mesg_error;
+ $mesg = 'Fiche non mise a jour !' . "
" . $product->mesg_error;
}
}
@@ -144,6 +144,8 @@ $titre=$langs->trans("CardProduct".$product->type);
$picto=($product->type==1?'service':'product');
dol_fiche_head($head, 'translation', $titre, 0, $picto);
+if ($mesg) print '