Traduire les champs des rubriques par local_xx.php3 ou Trad-Lang - commentaires Traduire les champs des rubriques par local_xx.php3 ou Trad-Lang 2009-02-21T15:04:57Z https://contrib.spip.net/Traduire-les-champs-des-rubriques#comment413671 2009-02-21T15:04:57Z <p>Bonjour,</p> <p>comme je le signale dans le message précédent, cette contrib ne fonctionne plus telle quelle depuis SPIP 1.9...</p> <p>En revanche, non, il n'est pas nécessaire de recréer toutes tes rubriques. D'ailleurs, quand tu dis « j'ai toujours une trace de la langue que je leur ai attribué précédemment », on ne sait pas de quelle trace tu parles. Mais quoiqu'il arrive, le fait d'activer puis de désactiver le menu langue ne crée pas de problèmes.</p> <p>Mais comme je dis, SPIP 2 a changé beaucoup de choses dans la gestion de ce genre de trucs, et je ne me suis pas encore penché dessus. Je t'engage cependant à regarder le thread suivant et d'enquêter à partir de là :<br class="autobr"> <a href="http://www.mail-archive.com/spip@rezo.net/msg09412.html" class="spip_url spip_out auto" rel="nofollow external">http://www.mail-archive.com/spip@rezo.net/msg09412.html</a></p> <p>Comme je dis, si j'arrive à comprendre comment tout ça a changé dans SPIP 2, je mettrai à jour cette contrib. Mais je ne vois pas ça arriver bientôt. J'ai bien peur qu'il faille que tu fasses davantage de recherches et de tentatives.</p> <p>Ciao.</p> Traduire les champs des rubriques par local_xx.php3 ou Trad-Lang 2009-02-21T14:33:19Z https://contrib.spip.net/Traduire-les-champs-des-rubriques#comment413670 2009-02-21T14:33:19Z <p>Bonjour, je viens de tomber sur la contrib après être tombé ... sur un os.</p> <p>La solution que tu propose corrpspond à ce que je veux utiliser.<br class="autobr"> Je travaille en ce moment sur un site dont l'interface doit appraître dans 2 langues. les artcles et leur traduction sont rangés ensemble dans une seule arborescence de rubriques thématiques qui les concernent (et pas 2 abrorescence parallèles avec un secteur pour chaque langue, chose que tu évoques et que je faisais avant.)<br class="autobr"> J'ai Spip 2.0.3 en local (Debian Lenny et XP) pour tester mes habillages. le site est pas visible encore.</p> <p>J'ai commencé par cocher certains reglages dont « activer le menu de langues pour les rubriques » dans Configuration>Langues du site>Multilinguisme. Et j'ai peur d'avoir fait une connerie.<br class="autobr"> En effet les rubriques se voient dès lors attibuer une langue, ce qui est tout l'inverse de ce qu'on cherche. <br class="autobr"> Je pensais m'en tirer avec une balise comuniqués ne me donne que « comunicats » si j'ai coché occitan, c'est a priori normal.</p> <p>Je suis retourné dans la page de configuration et j'ai coché non pour le menu de langues des rubriques mais <strong>j'ai toujours une trace de la langue que je leur ai attribué précédemment</strong>. Est ce que je dois créer de nouvelles rubriques vierges et recopier mes articles dedans pour pouvoir applique ensuite ta solutin<small class="fine d-inline"> </small>? Est ce que je peux corriger mes rubrique existantes<small class="fine d-inline"> </small>?</p> <p>Merci.</p> ne fonctionne pas et affiche du code sur page d'accueil 2008-01-01T17:26:57Z https://contrib.spip.net/Traduire-les-champs-des-rubriques#comment401762 2008-01-01T17:26:57Z <p>Merci de ta réponse rapide<small class="fine d-inline"> </small>!</p> <p>Du coup, je retourne dans ma panade... je ne comprends pas pourquoi les développeurs de spip n'ont pas permis d'utiliser les même « ruse » <:tutu :> , peut etre dans la prochaine version...?</p> <p>Dommage que l'on a pas une spip fondation riche pour soutenir et aider les développeurs...</p> <p>Bon courage à tous nos developpeurs bénévoles<small class="fine d-inline"> </small>! Et bonne année 2008 à tous<small class="fine d-inline"> </small>!</p> ne fonctionne pas et affiche du code sur page d'accueil 2008-01-01T17:07:25Z https://contrib.spip.net/Traduire-les-champs-des-rubriques#comment401761 2008-01-01T17:07:25Z <p>A la fois ce commentaire et le précédent me laisse croire que la version 1.9 rend cette méthode obsolète.<br class="autobr"> Il me semble comprendre qu'il existe maintenant des plugins qui permettent des actions « pre_typo » et « post_typo ».</p> <p>Je n'ai pas regardé dans le détail car je n'ai pas encore fait d'install SPIP 1.9, donc je ne saurais pas vous le dire. Je vais sans doute bientôt en faire une donc je mettrai cette contrib à jour à ce moment-là lorsque j'aurai compris comment ça marche.</p> <p>De fait, cette solution ne fonctionne que pour 1.8 pour l'instant.</p> ne fonctionne pas et affiche du code sur page d'accueil 2008-01-01T11:41:07Z https://contrib.spip.net/Traduire-les-champs-des-rubriques#comment401753 2008-01-01T11:41:07Z <p>bonjour,</p> <p>J'ai crée le fichier mes_fonctions.php et même php3 au cas où...</p> <p>J'ai mes fichiers lang locals qui fonctionnent bien avec les balises traditionnelles.</p> <p>Mais depuis que j'ai installé mes_fonctions.php dans le répertoire squelette, ça affiche ce code au dessus du logo du site.</p> <p>Visible sur <br class="autobr"> <a href="http://test.colliez.info" class="spip_url spip_out auto" rel="nofollow external">http://test.colliez.info</a><br class="autobr"> (jusqu'à ce que je modifie)</p> <p>J'ai bien entendu vidé le cache.</p> <p>Merci pour votre aide...</p> <p>/* * +----------------------------------+ * Nom du Filtre : TradChamps * +----------------------------------+ * Date : mardi 23 ao�t 2005 * Auteur : Vincent Henderson - vfwh + AT + infomotel.com * +-------------------------------------+ * Fonctions de ce filtre : * Permet d'ins�rer des balises de traduction dans les * champs de saisie de contenu dans Spip (titres de rubriques * notamment). * +-------------------------------------+ * * Pour toute suggestion, remarque, proposition d'ajout * reportez-vous au forum de l'article : * <a href="http://www.spip-contrib.net/article.php3?id_article=1073" class="spip_url spip_out auto" rel="nofollow external">http://www.spip-contrib.net/article.php3?id_article=1073</a> */ // On met la balise de traduction � l'abri avant // traitement de la typo par SPIP function avant_typo($texte) <i> $texte = str_replace(«<small class="fine d-inline"> </small>[ :<small class="fine d-inline"> </small>»,«<small class="fine d-inline"> </small>CHAMP_A_TRADUIRE_G<small class="fine d-inline"> </small>»,$texte)<small class="fine d-inline"> </small>; $texte = str_replace(«<small class="fine d-inline"> </small> :]<small class="fine d-inline"> </small>»,«<small class="fine d-inline"> </small>CHAMP_A_TRADUIRE_D<small class="fine d-inline"> </small>»,$texte)<small class="fine d-inline"> </small>; return $texte<small class="fine d-inline"> </small>; </i> // Apr�s le traitement typo, on peut maintenant mettre // dans notre champ ce qu'on veut function apres_typo($texte) <i> // Si on trouve cette balise, on lance la proc�dure if(strpos($texte,«<small class="fine d-inline"> </small>CHAMP_A_TRADUIRE<small class="fine d-inline"> </small>»)<small class="fine d-inline"> </small>!== false) <i> // je n'ai pas vraiment compris comment acc�der � ce // param�tre par le code. // je le mets donc � la main. C'est le chemin des // entr�es de local_xx.php3, // et �a marche comme �a sur les deux sites o� // j'ai appliqu� �a. $acces_local = « public/spip/ecrire : »<small class="fine d-inline"> </small>; // Bon, ensuite, on remplace en utilisant preg_replace(). // Noter que les balises ne peuvent // contenir que des lettres, des chiffres et des '_'. // On remplace ce qu'il y a entre les balises par // l'entr�e correspondante // dans local_xx.php3, ce qui est possible avec // la fonction _T(). // preg_replace() ne marche qu'avec PHP 3.0.9 et // sup�rieurs, si j'ai bien lu. $texte = preg_replace_callback( // Expression r�guli�re � remplacer : '/(CHAMP_A_TRADUIRE_G) ([A-Za-z0-9_]*) (CHAMP_A_TRADUIRE_D)/', // fonction r�sultats qui extrait la valeur de // balise : create_function( '$matches', '$valeur = _T($acces_local.$matches[2])<small class="fine d-inline"> </small>; return $valeur<small class="fine d-inline"> </small>;'), $texte)<small class="fine d-inline"> </small>; </i> // et zou. return $texte<small class="fine d-inline"> </small>; </i></p> pbm sur mon site en 1.9.2 2007-04-18T14:22:22Z https://contrib.spip.net/Traduire-les-champs-des-rubriques#comment393105 2007-04-18T14:22:22Z <p>Bonjour,<br class="autobr"> merci pour la réponse rapide.</p> <p>Pour le contenu de mes_fonctions.php3 j'ai recopié le code tel que dans cet contrib. La différence et je ne sais pas si le problème vient de là c'est qu'à partir de SPIP 1.9 le fichier s'appelle mes_fonctions.php</p> <p>j'ai d'autres fonctions dans mes_fonctions.php qui..fonctionnent.</p> <p>le texte qui apparait (violon) n'est pas la traduction mais l'original donc effectivement je pense que la fonction n'est pas interprétée.</p> <p>Ma version de PHP est 5.1.6 et les seules fonctions qui ressemblent à preg_replace_callback() sont :<br class="autobr"> assert.callback no value<br class="autobr"> unserialize_callback_func no value</p> <p>Sur un autre site encore mais en 1.9.1 (sur le même serveur local) c'est différent : il n'y a pas de message d'erreur mais les traductions ne s'affichent pas, simplement le titre de la rubrique à traduire [:violon:] tel quel.</p> <p>Voila, en gros je ne vois pas ce qui cloche. en essayant sur un autre site en 1.9.2 j'obtiens le même message d'erreur CHAMP_A_TRADUIRE_GViolonCHAMP_A_TRADUIRE_D</p> <p>PS j'ai ajouté * dans les squelettes [#TITRE*] pour courtcircuiter l'ajout d'un espace insécable devant les « : » mais cela ne change rien.</p> <p>voila, maintenant je ne sais plus trop quoi tester..<br class="autobr"> dd</p> pbm sur mon site en 1.9.2 2007-04-17T17:47:30Z https://contrib.spip.net/Traduire-les-champs-des-rubriques#comment393073 2007-04-17T17:47:30Z <p>Bonjour,</p> <p>le résultat que vous obtenez est exactement le même que celui que vous obtiendriez en n'utilisant que la fonction avant_typo() qui est définie ci-dessus, sans la fonction apres_typo() qui doit venir après.</p> <p>Cela signifie que pour une quelconque raison, tout se passe comme si la fonction apres_typo() n'était pas appelée ou ne fonctionnait pas.</p> <p>Je vois plusieurs pistes d'investigation :</p> <p>1- avez-vous effectivement bien mis la fonction apres_typo() dans mes_fonctions.php3, en utilisant les bonnes règles typographiques pour séparer les fonctions, etc.<small class="fine d-inline"> </small>?</p> <p>2- Si oui, dans ce qui vous est affiché dans votre titre avec les balises CHAMP_A_TRADUIRE, le texte Violon est-il dans la langue que vous attendez (change-t-il de langue lorsque vous changez la langue d'environnement)<small class="fine d-inline"> </small>?</p> <p>3- Si oui, alors c'est incompréhensible, ou cela signifie que votre version de PHP n'est pas compatible et qu'elle a changé la syntaxe de preg_replace_callback() ou quelque chose comme ça (ça me semble improbable)</p> <p>4- Si ce texte ne change pas lorsque vous changez de langue, alors nous sommes revenus à l'option 1, c'est à dire que la fonction apres_typo() n'est pas appelée correctement.</p> <p>En principe, si vous faites un copier-coller du premier au dernier caractère du champ gris dans mes_fonctions.php3 (dont vous aurez au préalable vérifié la syntaxe dans la documentation de SPIP), cela devrait fonctionner. Si cela n'est pas le cas, alors cela peut être dû soit au fait que SPIP 1.9 ne supporte plus cette fonction (je n'en sais rien), ou que vous l'avez mal typographiée.</p> <p>Il n'y a pas d'autre explication à ma connaissance.</p> <p>Sauf peut-être si vous n'avez pas activé correctement la gestion des langues, auquel cas peut-être la fonction _T() ne fonctionne pas correctement et du coup avorte le traitement de apres_typo(). Supposition.</p> <p>Les pistes à privilégier sont à mon avis de d'abord bien vérifier la syntaxe de votre fonction apres_typo() et de mes_fonctions.php3 en général, et vérifier que la fonction apres_typo() est toujours supportée par votre version de SPIP, car c'est clairement apres_typo() qui n'est pas traitée.</p> pbm sur mon site en 1.9.2 2007-04-16T17:41:45Z https://contrib.spip.net/Traduire-les-champs-des-rubriques#comment393031 2007-04-16T17:41:45Z <p>Bonjour,<br class="autobr"> Cette méthode conviendrait bien pour un site en 1.9.2 que je démarre mais je me retrouve avec du texte « parasite » dans la partie publique :<br class="autobr"> par exemple le code source du titre de la rubrique indique :<br class="autobr"> <code class="spip_code spip_code_inline" dir="ltr"><h1 class="titre">CHAMP_A_TRADUIRE_GViolonCHAMP_A_TRADUIRE_D</h1></code></p> <p>j'ai mis comme titre de rubrique de rubrique : [:Violon :]</p> <p>et dans squelettes/local_en.php :<br class="autobr"> // Rubriques<br class="autobr"> 'Galerie'=> 'Gallery',<br class="autobr"> 'Violon' => 'Violin',</p> <p>est-ce j'ai déraillé quelque part<small class="fine d-inline"> </small>?<br class="autobr"> merci<br class="autobr"> dd</p> Comment utiliser apres_typo et avant_typo<small class="fine d-inline"> </small>? 2007-03-22T08:52:15Z https://contrib.spip.net/Traduire-les-champs-des-rubriques#comment392300 2007-03-22T08:52:15Z <p>Bonjour ,</p> <p>avant_typo() et apres_typo() sont des fonctions qui sont exécutées automatiquement par SPIP à partir du moment où elles sont définies dans mes_fonctions.php3. Il y a une fonction typo qui gère les règles typographiques pour l'affichage du texte. Les fonctions avant_typo et apres_typo permettent de faire quelque chose avant et après que cette fonction soit appliquée.</p> <p>Il n'est donc pas nécessaire de faire référence à ces fonctions dans les squelettes. A partir du moment où elles sont définies dans mes_fonctions.php3 elles seront traitées, car ce sont des fonctions standard de SPIP. Ce que font ces fonctions telles que je les ai définies, c'est qu'elles cherchent, dans tout le texte juste avant qu'il soit traité pour l'affichage (donc après tous les autres traitements de SPIP), des balises '[ :' et ' :]' et les remplace par CHAMP_A_TRADUIRE_G et CHAMP_A_TRADUIRE_D pour que les balises ne soient pas altérées par le traitement typo (qui met des espaces ou pas avant les deux-points selon les règles de la langue). Ca c'est ce que fait avant_typo(). La fonction apres_typo() fait le travail le plus important, c'est à dire chercher la valeur de 'toto' dans local_xx.php3 et la remplacer dans le texte juste avant l'affichage.</p> <p>Il n'y a rien d'autre à faire dans les squelettes, si ce n'est évidemment de bien gérer les filtres linguistiques dans les boucles. Et evidemment définir ces valeurs de toto dans local_xx.php3 et utiliser les balises [:toto :] dans le contenu (pas dans les squelettes).</p> <p>Voilà, j'espère que ça clarifie un peu. Cependant, cette contribution suppose déjà une connaissance des fonctions linguistiques de SPIP.</p> Comment utiliser apres_typo et avant_typo<small class="fine d-inline"> </small>? 2007-03-21T15:31:17Z https://contrib.spip.net/Traduire-les-champs-des-rubriques#comment392279 2007-03-21T15:31:17Z <p>Bonjour, <br class="autobr"> Merci pour cette contribution. Je ne comprends pas comment utiliser ces 2 fonctions : je suppose qu'il s'agit de <strong>filtres</strong> que l'on rajoute derriere une balise, par exemple #TITRE|apres_typo. Mais dans ce cas, pourquoi 2 balises<small class="fine d-inline"> </small>? Faut-il les utiliser en même temps<small class="fine d-inline"> </small>?</p> Multilinguisme : attention au code 2005-10-12T08:50:02Z https://contrib.spip.net/Traduire-les-champs-des-rubriques#comment383841 2005-10-12T08:50:02Z <p>Certes. Nénamoins, la façon dont cela est affiché dans cette contrib, avec un retour ligne, fonctionne très bien, en tous cas chez moi.</p> <p>Sinon, merci.</p> Installation : II attention 2005-10-12T08:47:26Z https://contrib.spip.net/Traduire-les-champs-des-rubriques#comment383840 2005-10-12T08:47:26Z <p>La question du forcer_lang n'a pas grand chose à voir avec ce script à proprement parler. Ce script traduit dans la langue de l'environnement du moment les chaînes taguées.</p> <p>Les choix des paramètres de la langue du site n'ont rien à voir avec ce script, qui fonctionne quel que soit le mode linguistique choisi, i.e. forcer_lang=true ou false.</p> Installation : II attention 2005-10-11T23:23:12Z https://contrib.spip.net/Traduire-les-champs-des-rubriques#comment383838 2005-10-11T23:23:12Z <p>Attenion # 2</p> <p>pour que ce scritp marche, il faut bine parametrer dans ecrire/mes_options.php</p> <p>le ligne :</p> <p> $forcer_lang = true<small class="fine d-inline"> </small>;</p> <p>Sinon seul les rubriques associe avec la langues courante s'affichent</p> <p>Grace a forcer_lang, on change la traduction des [:titre :] en ignorant la langue choisie pour cette rubrique dans l'admin</p> Multilinguisme : attention au code 2005-10-11T17:58:17Z https://contrib.spip.net/Traduire-les-champs-des-rubriques#comment383831 2005-10-11T17:58:17Z <p>attention quand vous copier coller cette contrib, il ne doit pas y avoir d'espace dans ce code :</p> <p> '/(CHAMP_A_TRADUIRE_G)<br class="autobr"> ([A-Za-z0-9_]*)<br class="autobr"> (CHAMP_A_TRADUIRE_D)/',</p> <p>utiliser docn plutot cela :</p> <p>'/(CHAMP_A_TRADUIRE_G)([A-Za-z0-9_]*)(CHAMP_A_TRADUIRE_D)/',</p> <p>PAS D'ESPACES</p> <p><small class="fine d-inline"> </small>;)</p> <p>sinon ca marche c'est nickel</p> Multilinguisme : traduire les champs des rubriques par local_xx.php3 ou Trad-Lang 2005-09-28T06:55:33Z https://contrib.spip.net/Traduire-les-champs-des-rubriques#comment383621 2005-09-28T06:55:33Z <p>En effet, les titres ne sont plus accesibles au moteur de recherche, ce qui est un vrai problème de cette méthode.</p> <p>L'idée d'une boîte de dialogue qui permettrait d'entrer chaque traduction et créerait le contenu des champs multi est en effet une très bonne idée. Je ne sais pas faire ça, mais j'imagine que pour un développeur confirmé, ce serait l'affaire d'une heure ou deux de développement.</p> <p>Avis aux amateurs.</p> Multilinguisme : traduire les champs des rubriques par local_xx.php3 ou Trad-Lang 2005-09-27T20:54:16Z https://contrib.spip.net/Traduire-les-champs-des-rubriques#comment383615 2005-09-27T20:54:16Z <p>Bonsoir<small class="fine d-inline"> </small>!</p> <p>D'un côté je suis tenté par ce procédé - surtout s'il peut s'intégrer dans le noyau de Spip.</p> <p>Mais il y a un désavantage. Voici un des titres des mes articles :</p> <p><code class="spip_code spip_code_inline" dir="ltr">050. <multi>[en]By train[ar]بالقطار[de]Mit der Bahn[cs]Vlakem[es]En tren[et]Rongiga[fi]Junalla[fr]Horaires de train[hr]Vlakom[hu]Vonattal[id]Dengan kereta[it]Con il treno[ja]電車で[ko]기차편[lt]Traukiniu[lv]Ar vilcienu[nl]Met de trein[no]Med tog[pl]Pociągiem[pt]De comboio[ro]Cu trenul[ru]Поездом[sk]Vlakom do/z Taizé[sl]Z vlakom[sv]Med tåg[zh]乘火車而至</multi></code></p> <p>— et si un néerlandais cherche « trein » dans la case de recherche du site, il tombe tout-de-suite sur la bonne page.</p> <p>Avec le système proposé dans cet article, les titres (qui se trouvent maintenant dans les fichiers local_xx.php3) ne sont pas indexés.</p> <p>Donc je serais plutôt pour avoir une façon plus simple pour entrer un champ « multi » dans un titre. Par ex. une boîte de dialogue qui présente une ligne par langue, étiquetée avec la langue, pour que les rédacteurs ne doivent plus s'occuper des balises <i>multi</i> et [en], [fr], etc.</p> <p>Paolo</p>