Fix: traduction of country code
This commit is contained in:
parent
65fdbc3696
commit
a1012387cf
@ -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").'</option>';
|
||||
}
|
||||
|
||||
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 '<option value="'.$langs_available[$i].'" selected="true">'.$langs_available[$i].'</option>';
|
||||
print '<option value="'.$key.'">'.$value.'</option>';
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<option value="'.$langs_available[$i].'">'.$langs_available[$i].'</option>';
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
else if ($selected == $key)
|
||||
{
|
||||
print '<option value="'.$key.'" selected="true">'.$value.'</option>';
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<option value="'.$key.'">'.$value.'</option>';
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
print '</select>';
|
||||
}
|
||||
|
||||
25
htdocs/langs/en_US/languages.lang
Normal file
25
htdocs/langs/en_US/languages.lang
Normal file
@ -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
|
||||
25
htdocs/langs/fr_FR/languages.lang
Normal file
25
htdocs/langs/fr_FR/languages.lang
Normal file
@ -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
|
||||
@ -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
|
||||
|
||||
@ -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 <EFBFBD> jour';
|
||||
$mesg = 'Fiche mise a jour';
|
||||
}
|
||||
else
|
||||
{
|
||||
$_GET["action"] = 'add';
|
||||
$mesg = 'Fiche non mise <EFBFBD> jour !' . "<br>" . $product->mesg_error;
|
||||
$mesg = 'Fiche non mise a jour !' . "<br>" . $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 '<div class="error">'.$mesg.'</div>';
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
// Reference
|
||||
@ -156,14 +158,14 @@ print '</table>';
|
||||
|
||||
if ($_GET["action"] == 'edit')
|
||||
{
|
||||
print '<form action="" method="post">';
|
||||
print '<form action="" method="POST">';
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
print '<input type="hidden" name="action" value="vedit">';
|
||||
print '<input type="hidden" name="id" value="'.$_GET["id"].'">';
|
||||
|
||||
foreach ( $product->multilangs as $key => $value)
|
||||
{
|
||||
print "<br /><b><u>$key :</u></b><br />";
|
||||
print "<br /><b><u>".$langs->trans('Language_'.$key)." :</u></b><br />";
|
||||
print '<table class="border" width="100%">';
|
||||
print '<tr><td valign="top" width="15%">'.$langs->trans('Label').'</td><td><input name="libelle-'.$key.'" size="40" value="'.$product->multilangs[$key]["libelle"].'"></td></tr>';
|
||||
print '<tr><td valign="top" width="15%">'.$langs->trans('Description').'</td><td>';
|
||||
@ -207,7 +209,7 @@ else
|
||||
foreach ( $product->multilangs as $key => $value)
|
||||
{
|
||||
$cnt_trans++;
|
||||
print "<br /><b><u>$key :</u></b><br />";
|
||||
print "<br /><b><u>".$langs->trans('Language_'.$key)." :</u></b><br />";
|
||||
print '<table class="border" width="100%">';
|
||||
print '<tr><td width="15%">'.$langs->trans('Label').'</td><td>'.$product->multilangs[$key]["libelle"].'</td></tr>';
|
||||
print '<tr><td width="15%">'.$langs->trans('Description').'</td><td>'.$product->multilangs[$key]["description"].'</td></tr>';
|
||||
@ -240,19 +242,8 @@ print "\n</div>\n";
|
||||
/*
|
||||
* Formulaire d'ajout de traduction
|
||||
*/
|
||||
if ($_GET["action"] == 'add' || ($user->rights->produit->creer || $user->rights->service->creer))
|
||||
if ($_GET["action"] == 'add' && ($user->rights->produit->creer || $user->rights->service->creer))
|
||||
{
|
||||
$langs_available = $langs->get_available_languages();
|
||||
$current_lang = $langs->getDefaultLang();
|
||||
|
||||
|
||||
// on construit la liste des traduction qui n'existe pas deja
|
||||
$select = '<select class="flat" name="lang">';
|
||||
foreach ($langs_available as $value)
|
||||
if ( !array_key_exists($value, $product->multilangs) ) // si la traduction n'existe pas
|
||||
$select.= "<option value='$value'>$value</option>";
|
||||
$select.='</select>';
|
||||
|
||||
print '<br>';
|
||||
print '<form action="" method="post">';
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
@ -260,7 +251,7 @@ if ($_GET["action"] == 'add' || ($user->rights->produit->creer || $user->rights-
|
||||
print '<input type="hidden" name="id" value="'.$_GET["id"].'">';
|
||||
print '<table class="border" width="100%">';
|
||||
print '<tr><td valign="top" width="15%">'.$langs->trans('Translation').'</td><td>';
|
||||
$formadmin->select_lang($fuser->conf->MAIN_LANG_DEFAULT,'lang',0);
|
||||
$formadmin->select_lang('','lang',0,$product->multilangs);
|
||||
print '</td></tr>';
|
||||
print '<tr><td valign="top" width="15%">'.$langs->trans('Label').'</td><td><input name="libelle" size="40"></td></tr>';
|
||||
print '<tr><td valign="top" width="15%">'.$langs->trans('Description').'</td><td><textarea name="desc" rows="3" cols="80"></textarea></td></tr>';
|
||||
|
||||
@ -521,13 +521,15 @@ class Translate {
|
||||
function get_available_languages($langdir=DOL_DOCUMENT_ROOT)
|
||||
{
|
||||
// We scan directory langs to detect available languages
|
||||
$handle=opendir($langdir ."/langs");
|
||||
$handle=opendir($langdir."/langs");
|
||||
$langs_available=array();
|
||||
while ($file = trim(readdir($handle)))
|
||||
while ($dir = trim(readdir($handle)))
|
||||
{
|
||||
if (preg_match('/^[a-z]+_[A-Z]+/i',$file))
|
||||
if (preg_match('/^[a-z]+_[A-Z]+/i',$dir))
|
||||
{
|
||||
array_push($langs_available,$file);
|
||||
$this->load("languages");
|
||||
|
||||
$langs_available[$dir] = $this->trans('Language_'.$dir);
|
||||
}
|
||||
}
|
||||
return $langs_available;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user