From 95236800025ceb7ce69159b4691059d350b48941 Mon Sep 17 00:00:00 2001 From: Antoine Pitrou <pitrou@free.fr> Date: Sun, 7 Sep 2003 16:47:12 +0000 Subject: [PATCH] bugs langues --- ecrire/articles.php3 | 9 ++++----- ecrire/inc_lang.php3 | 33 ++++++++++----------------------- ecrire/inc_rubriques.php3 | 23 +++++------------------ ecrire/lang/spip_fr.php3 | 4 ++-- ecrire/naviguer.php3 | 18 +++++++++++------- inc-calcul.php3 | 2 +- 6 files changed, 33 insertions(+), 56 deletions(-) diff --git a/ecrire/articles.php3 b/ecrire/articles.php3 index 5e3edf2caf..a569255fef 100644 --- a/ecrire/articles.php3 +++ b/ecrire/articles.php3 @@ -219,8 +219,6 @@ if ($titre && !$ajout_forum && $flag_editable) { } } - - // afficher le nouveau titre dans la barre de fenetre $titre_article = stripslashes($titre); @@ -1165,12 +1163,13 @@ if ((lire_meta('multi_articles') == 'oui') // Choix langue article if (lire_meta('multi_articles') == 'oui' AND $flag_editable) { + $row = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_rubrique")); + $langue_parent = $row['lang']; + if ($changer_lang) { if ($changer_lang != "herit") spip_query("UPDATE spip_articles SET lang='".addslashes($changer_lang)."', langue_choisie='oui' WHERE id_article=$id_article"); else { - $row = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_rubrique")); - $langue_parent = $row['lang']; spip_query("UPDATE spip_articles SET lang='".addslashes($langue_parent)."', langue_choisie='non' WHERE id_article=$id_article"); } } @@ -1184,7 +1183,7 @@ if ((lire_meta('multi_articles') == 'oui') debut_cadre_enfonce(); echo "<center><font face='Verdana,Arial,Helvetica,sans-serif' size='2'>"; - echo menu_langues('changer_lang', $langue_article, _T('info_multi_cet_article').' ', $herit); + echo menu_langues('changer_lang', $langue_article, _T('info_multi_cet_article').' ', $langue_parent); echo "</font></center>\n"; fin_cadre_enfonce(); } diff --git a/ecrire/inc_lang.php3 b/ecrire/inc_lang.php3 index efa943c4a7..32af9e5b54 100644 --- a/ecrire/inc_lang.php3 +++ b/ecrire/inc_lang.php3 @@ -333,18 +333,10 @@ function lang_dselect ($rien='') { } -// traduire un machin : [(#LANG|traduire{"module:code"}|sinon{"texte non traduit"})] -/*function traduire($lang, $code) { - lang_select($lang); - $texte = _T($code); - lang_dselect(); - return $texte; -}*/ - // // Afficher un menu de selection de langue // -function menu_langues($nom_select = 'var_lang', $default = '', $texte = '', $herit=false) { +function menu_langues($nom_select = 'var_lang', $default = '', $texte = '', $herit = '') { global $couleur_foncee; if ($default == '') @@ -369,21 +361,16 @@ function menu_langues($nom_select = 'var_lang', $default = '', $texte = '', $her $ret .= $texte; if ($nom_select == 'var_lang') $ret .= "\n<select name='$nom_select' class='verdana1' style='background-color: $couleur_foncee; color: white;' onChange=\"document.location.href='". $lien . $amp."$nom_select='+this.options[this.selectedIndex].value\">\n"; else $ret .= "\n<select name='$nom_select' class='fondl'>\n"; - $ret .= $premier_option; - - if ((lire_meta('multi_rubriques') == 'oui') AND ($nom_select == 'changer_lang')) { - if ($herit) - $ret .= "<option value='herit' selected>"._T('info_multi_herit')." ($default)</option>\n"; - else - $ret .= "<option value='herit'>"._T('info_multi_herit')." ($default)</option>\n"; - $default = ''; - } - while (list(,$l) = each ($langues)) { - if ($l == $default) - $ret .= "<option value='$l' selected>$parenthese_o".traduire_nom_langue($l)."$parenthese_f</option>\n"; - else - $ret .= "<option value='$l'>".traduire_nom_langue($l)."</option>\n"; + while (list(, $l) = each ($langues)) { + $selected = ($l == $default) ? ' selected' : ''; + if ($l == $herit) { + $selected = ($herit == $default) ? ' selected' : ''; + $ret .= "<option style='font-style:italic' value='herit'$selected>" + .traduire_nom_langue($herit)." ("._T('info_multi_herit').")</option>\n"; + if ($selected) $default = ''; + } + else $ret .= "<option value='$l'$selected>".traduire_nom_langue($l)."</option>\n"; } $ret .= "</select>\n"; if ($nom_select == 'var_lang') $ret .= "<noscript><INPUT TYPE='submit' NAME='Valider' VALUE='>>' class='verdana1' style='background-color: $couleur_foncee; color: white; height: 19px;'></noscript>"; diff --git a/ecrire/inc_rubriques.php3 b/ecrire/inc_rubriques.php3 index ca19d95f64..a10b6fd6af 100644 --- a/ecrire/inc_rubriques.php3 +++ b/ecrire/inc_rubriques.php3 @@ -60,18 +60,6 @@ function calculer_dates_rubriques($id_rubrique = 0, $date_parent = "0000-00-00") if ($date_sites > $date_rubrique) $date_rubrique = $date_sites; } -/* // recuperer l'article le plus recent syndique dans un site reference dans cette rubrique (ouf) - $result = spip_query("SELECT id_syndic FROM spip_syndic WHERE id_rubrique=$id_rubrique AND statut='publie'"); - $syndic = ''; - while ($row = spip_fetch_array($result)) - $syndic[] = $row['id_syndic']; - if ($syndic) { - $row = spip_fetch_array (spip_query ("SELECT MAX(date) AS date_h FROM spip_syndic_articles WHERE id_syndic IN(".join(',',$syndic).") AND statut='publie'")); - $date_syndic_article = $row['date_h']; - if ($date_syndic_article > $date_rubrique) $date_rubrique = $date_syndic_article; - } -*/ - // articles post-dates $post_dates = lire_meta("post_dates"); if ($post_dates != "non") { @@ -178,11 +166,10 @@ function calculer_langues_rubriques_etape() { function calculer_langues_rubriques() { // rubriques (recursivite) - + $langue_site = addslashes(lire_meta('langue_site')); spip_query ("UPDATE spip_rubriques SET lang='$langue_site', langue_choisie='non' WHERE id_parent='0' AND langue_choisie != 'oui'"); - - + while (calculer_langues_rubriques_etape()); // articles @@ -197,7 +184,7 @@ function calculer_langues_rubriques() { spip_debug ("article $id_article = .$lang"); spip_query ("UPDATE spip_articles SET lang='$lang', langue_choisie='non' WHERE id_article=$id_article"); } - + // breves $s = spip_query ("SELECT fils.id_breve AS id_breve, mere.lang AS lang FROM spip_breves AS fils, spip_rubriques AS mere @@ -210,7 +197,7 @@ function calculer_langues_rubriques() { spip_debug ("breve $id_breve = .$lang"); spip_query ("UPDATE spip_breves SET lang='$lang', langue_choisie='non' WHERE id_breve=$id_breve"); } - + if (lire_meta('multi_rubriques') == 'oui') { // Ecrire meta liste langues utilisees dans rubriques $s = spip_query ("SELECT lang FROM spip_rubriques WHERE lang != '' GROUP BY lang"); @@ -238,4 +225,4 @@ function calculer_rubriques() { calculer_dates_rubriques(); } -?> \ No newline at end of file +?> diff --git a/ecrire/lang/spip_fr.php3 b/ecrire/lang/spip_fr.php3 index ceca86f673..af17009bf8 100644 --- a/ecrire/lang/spip_fr.php3 +++ b/ecrire/lang/spip_fr.php3 @@ -705,9 +705,9 @@ exige d\'avoir un accès FTP au site Web.', 'info_moyenne' => 'moyenne :', 'info_multilinguisme' => 'Multilinguisme', 'info_multi_articles' => 'Activer le menu de langue sur les articles ?', -'info_multi_cet_article' => 'Langue utilisée dans cet article :', +'info_multi_cet_article' => 'Langue de cet article :', 'info_multi_cette_rubrique' => 'Langue utilisée dans cette rubrique :', -'info_multi_herit' => 'langue de la rubrique supérieure', +'info_multi_herit' => 'Langue par défaut', 'info_multi_langues_choisies' => 'Veuillez sélectionner ci-après les langues à disposition des rédacteurs de votre site. Les langues déjà utilisées dans votre site (affichées en premier) ne peuvent pas être désactivées.', 'info_multi_rubriques' => 'Activer le menu de langue sur les rubriques ?', diff --git a/ecrire/naviguer.php3 b/ecrire/naviguer.php3 index f3663b40b5..b4f4058694 100644 --- a/ecrire/naviguer.php3 +++ b/ecrire/naviguer.php3 @@ -376,7 +376,7 @@ if (strlen($texte) > 1) { // // Langue de la rubrique // -if ($coll>0 AND (lire_meta('multi_rubriques') == 'oui') AND (lire_meta('multi_secteurs' == 'non') OR ($id_parent == 0)) AND $flag_editable) { +if ($coll>0 AND lire_meta('multi_rubriques') == 'oui' AND (lire_meta('multi_secteurs') == 'non' OR $id_parent == 0) AND $flag_editable) { if ($changer_lang) { if ($changer_lang != "herit") { spip_query("UPDATE spip_rubriques SET lang='".addslashes($changer_lang)."', langue_choisie='oui' WHERE id_rubrique=$coll"); @@ -395,14 +395,18 @@ if ($coll>0 AND (lire_meta('multi_rubriques') == 'oui') AND (lire_meta('multi_se $row = spip_fetch_array(spip_query("SELECT lang, langue_choisie FROM spip_rubriques WHERE id_rubrique=$coll")); $langue_rubrique = $row['lang']; $langue_choisie_rubrique = $row['langue_choisie']; - - $herit = ($langue_choisie_rubrique != 'oui'); + if ($id_parent) { + $row = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_parent")); + $langue_parent = $row[0]; + } + else $langue_parent = lire_meta('langue_site'); debut_cadre_enfonce("langues-24.gif"); - echo "<center><font face='Verdana,Arial,Helvetica,sans-serif' size='2'>"; - echo menu_langues('changer_lang', $langue_rubrique, _T('info_multi_cette_rubrique').' ', $herit); - echo "</font></center>\n"; - fin_cadre_enfonce();} + echo "<center><font face='Verdana,Arial,Helvetica,sans-serif' size='2'>"; + echo menu_langues('changer_lang', $langue_rubrique, _T('info_multi_cette_rubrique').' ', $langue_parent); + echo "</font></center>\n"; + fin_cadre_enfonce(); +} fin_cadre_relief(); diff --git a/inc-calcul.php3 b/inc-calcul.php3 index 23f7bd06e0..9b89e2fbb1 100644 --- a/inc-calcul.php3 +++ b/inc-calcul.php3 @@ -519,7 +519,7 @@ function calculer_page_globale($fond) { $fond = chercher_squelette($fond, $id_rubrique_fond); // selectionner la langue & affiner le squelette - lang_select($lang); + $GLOBALS['spip_lang'] = $lang; $lang = ereg_replace('^\.', '', $lang); if (@file_exists("$fond.$lang.html")) $fond = "$fond.$lang"; -- GitLab