diff --git a/ecrire/config-lang.php3 b/ecrire/config-lang.php3 index 8330db63559937326e9cc0ffa490475a6ee17be1..31e4268a8ba3a2bd9d2c195785cb43adf160b390 100644 --- a/ecrire/config-lang.php3 +++ b/ecrire/config-lang.php3 @@ -26,6 +26,24 @@ debut_droite(); lire_metas(); + +/// Recuperer liste des fichiers de langue + $myDir = opendir("lang"); + while($entryName = readdir($myDir)) { + if (is_file("lang/".$entryName)) { + if (ereg("^spip\_([^\.]*)", $entryName, $match)) { + $ext = $match[1]; + $langues_toutes[] = "$ext"; + } + } + } + closedir($myDir); + + $sauver_langues_ok = join ($langues_toutes,","); + ecrire_meta('sauver_langues_ok', $sauver_langues_ok); + + + echo "<form action='config-lang.php3' method='post'>"; echo "<input type='hidden' name='changer_config' value='oui'>"; @@ -34,6 +52,7 @@ echo "<input type='hidden' name='changer_config' value='oui'>"; // Configuration i18n // + debut_cadre_relief("langues-24.gif"); $langues_prop = split(",",lire_meta("langues_proposees")); @@ -51,11 +70,11 @@ echo "</TD></TR>"; echo "<TR><TD ALIGN='left' class='verdana2'>"; echo _T('info_langue_defaut'); echo "\n<select name='langue_site' class='fondl'>\n"; -echo "<option value='$langue_site' style='background-image: url(lang/drap_$langue_site.gif); background-repeat: no-repeat; background-position: 3px 3px; padding-left: 20px;' selected>"._T("langue_".$langue_site)."</option>\n"; +echo "<option value='$langue_site' style='background-image: url(lang/drap_$langue_site.gif); background-repeat: no-repeat; background-position: 3px 3px; padding-left: 20px;' selected>".traduire_nom_langue($langue_site)."</option>\n"; reset ($langues_prop); while (list(,$l) = each ($langues_prop)) { if ($l <> $langue_site) - echo "<option value='$l' style='background-image: url(lang/drap_$l.gif); background-repeat: no-repeat; background-position: 3px 3px; padding-left: 20px;'>"._T("langue_".$l)."</option>\n"; + echo "<option value='$l' style='background-image: url(lang/drap_$l.gif); background-repeat: no-repeat; background-position: 3px 3px; padding-left: 20px;'>".traduire_nom_langue($l)."</option>\n"; } echo "</select><br>\n"; echo "</TD></TR>"; @@ -64,17 +83,17 @@ echo "</TD></TR>"; // langues proposees echo "<TR><TD ALIGN='left' class='verdana2'>"; echo _T('info_langues_proposees'); -$langues_toutes = split(',',$all_langs); +//$langues_toutes = split(',',$all_langs); $langues_proposees = lire_meta('langues_proposees'); $test = (ereg(",$langue_site,", ",$langues_tests,")) ? _T('info_en_test_1') : ""; -echo "<input type='checkbox' name='langues_prop[]' value='$langue_site' checked id='lang_$langue_site'><label for='lang_$langue_site'> <b>"._T("langue_".$langue_site).'</b>'.$test."</label>\n"; +echo "<input type='checkbox' name='langues_prop[]' value='$langue_site' checked id='lang_$langue_site'><label for='lang_$langue_site'> <b>".traduire_nom_langue($langue_site).'</b>'.$test."</label>\n"; while (list(,$l) = each ($langues_toutes)) { if ($l AND ($l <> $langue_site)) { $test = (ereg(",$l,", ",$langues_tests,")) ? _T('info_en_test_2') : ""; if (ereg(",$l,", ",$langues_proposees,")) - echo "<br> <input type='checkbox' name='langues_prop[]' value='$l' checked id='lang_$l'><label for='lang_$l'> <b>"._T("langue_".$l).'</b>'.$test.'</label>'; + echo "<br> <input type='checkbox' name='langues_prop[]' value='$l' checked id='lang_$l'><label for='lang_$l'> <b>".traduire_nom_langue($l).'</b>'.$test.'</label>'; else - echo "<br> <input type='checkbox' name='langues_prop[]' value='$l' id='lang_$l'> <label for='lang_$l'>"._T("langue_".$l).$test.'</label>'; + echo "<br> <input type='checkbox' name='langues_prop[]' value='$l' id='lang_$l'> <label for='lang_$l'>".traduire_nom_langue($l).$test.'</label>'; } } echo "</TD></TR>"; diff --git a/ecrire/inc_lang.php3 b/ecrire/inc_lang.php3 index e8c49760b8d7da2bdff1b77edb0155c651ecb6d5..9c5b5fee02de5defde83c2e9331bbd32a1333856 100644 --- a/ecrire/inc_lang.php3 +++ b/ecrire/inc_lang.php3 @@ -65,12 +65,33 @@ function traduire_chaine($text, $args) { } +function traduire_nom_langue($lang) { + $retour = _T("langue_".$lang); + + if (strlen($retour) == 0) { + include_ecrire("inc_liste_lang.php3"); + $retour = $GLOBALS['codes_langues'][$lang]; + } + + if (strlen($retour) == 0) { + $retour = $lang; + } + + return $retour; +} + + // // Initialisation // $GLOBALS['langues_ok'] = 'fr'; $GLOBALS['langues_tests'] = 'en,ro,eo,es,ar,br'; -$GLOBALS['all_langs'] = $GLOBALS['langues_ok'].",".$GLOBALS['langues_tests']; +//$GLOBALS['all_langs'] = $GLOBALS['langues_ok'].",".$GLOBALS['langues_tests']; + +$GLOBALS['all_langs'] = lire_meta('sauver_langues_ok'); +if (strlen($GLOBALS['all_langs']) == 0) $GLOBALS['all_langs'] = $GLOBALS['langues_ok'].",".$GLOBALS['langues_tests']; + + $GLOBALS['spip_lang'] = 'fr'; if (!regler_langue_navigateur()) @@ -78,4 +99,7 @@ if (!regler_langue_navigateur()) if ($GLOBALS['prefs']['spip_lang']) changer_langue($GLOBALS['prefs']['spip_lang']); + + + ?> diff --git a/ecrire/inc_liste_lang.php3 b/ecrire/inc_liste_lang.php3 new file mode 100644 index 0000000000000000000000000000000000000000..9a70237e8626c2611c07f764d52824f4e48f18d6 --- /dev/null +++ b/ecrire/inc_liste_lang.php3 @@ -0,0 +1,151 @@ +<?php + + +// Ce fichier ne sera execute qu'une fois +if (defined("_ECRIRE_INC__LISTE_LANG")) return; +define("_ECRIRE_INC__LISTE_LANG", "1"); + + + +$GLOBALS['codes_langues'] = array ( +'aa' => 'Afar', +'ab' => 'Abkhazian', +'af' => 'Afrikaans', +'am' => 'Amharic', +'ar' => 'Arabic', +'as' => 'Assamese', +'ay' => 'Aymara', +'az' => 'Azerbaijani', +'ba' => 'Bashkir', +'be' => 'Byelorussian', +'bg' => 'Bulgarian', +'bh' => 'Bihari', +'bi' => 'Bislama', +'bn' => 'Bengali; Bangla', +'bo' => 'Tibetan', +'br' => 'Breton', +'ca' => 'Catalan', +'co' => 'Corsican', +'cs' => 'Czech', +'cy' => 'Welsh', +'da' => 'Danish', +'de' => 'Deutch', +'dz' => 'Bhutani', +'el' => 'Greek', +'en' => 'English', +'eo' => 'Esperanto', +'es' => 'Spanish', +'et' => 'Estonian', +'eu' => 'Basque', +'fa' => 'Persian', +'fi' => 'Finnish', +'fj' => 'Fiji', +'fo' => 'Faroese', +'fr' => 'Français', +'fy' => 'Frisian', +'ga' => 'Irish', +'gd' => 'Scots Gaelic', +'gl' => 'Galician', +'gn' => 'Guarani', +'gu' => 'Gujarati', +'ha' => 'Hausa', +'he' => 'Hebrew', +'hi' => 'Hindi', +'hr' => 'Croatian', +'hu' => 'Hungarian', +'hy' => 'Armenian', +'ia' => 'Interlingua', +'id' => 'Indonesian', +'ie' => 'Interlingue', +'ik' => 'Inupiak', +'is' => 'Icelandic', +'it' => 'Italian', +'iu' => 'Inuktitut', +'ja' => 'Japanese', +'jw' => 'Javanese', +'ka' => 'Georgian', +'kk' => 'Kazakh', +'kl' => 'Greenlandic', +'km' => 'Cambodian', +'kn' => 'Kannada', +'ko' => 'Korean', +'ks' => 'Kashmiri', +'ku' => 'Kurdish', +'ky' => 'Kirghiz', +'la' => 'Latin', +'ln' => 'Lingala', +'lo' => 'Laothian', +'lt' => 'Lithuanian', +'lv' => 'Latvian, Lettish', +'mg' => 'Malagasy', +'mi' => 'Maori', +'mk' => 'Macedonian', +'ml' => 'Malayalam', +'mn' => 'Mongolian', +'mo' => 'Moldavian', +'mr' => 'Marathi', +'ms' => 'Malay', +'mt' => 'Maltese', +'my' => 'Burmese', +'na' => 'Nauru', +'ne' => 'Nepali', +'nl' => 'Dutch', +'no' => 'Norwegian', +'oc' => 'Occitan', +'om' => '(Afan) Oromo', +'or' => 'Oriya', +'pa' => 'Punjabi', +'pl' => 'Polish', +'ps' => 'Pashto, Pushto', +'pt' => 'Portuguese', +'qu' => 'Quechua', +'rm' => 'Rhaeto-Romance', +'rn' => 'Kirundi', +'ro' => 'Romanian', +'ru' => 'Russian', +'rw' => 'Kinyarwanda', +'sa' => 'Sanskrit', +'sd' => 'Sindhi', +'sg' => 'Sangho', +'sh' => 'Serbo-Croatian', +'si' => 'Sinhalese', +'sk' => 'Slovak', +'sl' => 'Slovenian', +'sm' => 'Samoan', +'sn' => 'Shona', +'so' => 'Somali', +'sq' => 'Albanian', +'sr' => 'Serbian', +'ss' => 'Siswati', +'st' => 'Sesotho', +'su' => 'Sundanese', +'sv' => 'Swedish', +'sw' => 'Swahili', +'ta' => 'Tamil', +'te' => 'Telugu', +'tg' => 'Tajik', +'th' => 'Thai', +'ti' => 'Tigrinya', +'tk' => 'Turkmen', +'tl' => 'Tagalog', +'tn' => 'Setswana', +'to' => 'Tonga', +'tr' => 'Turkish', +'ts' => 'Tsonga', +'tt' => 'Tatar', +'tw' => 'Twi', +'ug' => 'Uighur', +'uk' => 'Ukrainian', +'ur' => 'Urdu', +'uz' => 'Uzbek', +'vi' => 'Vietnamese', +'vo' => 'Volapuk', +'wo' => 'Wolof', +'xh' => 'Xhosa', +'yi' => 'Yiddish', +'yo' => 'Yoruba', +'za' => 'Zhuang', +'zh' => 'Chinese', +'zu' => 'Zulu') ; + +?> \ No newline at end of file