RE: [spip-dev] Dates dans plusieurs langues

Merci pour les explications, Fil!

J’ai enfin réussi à installer le squelette multilingue de spip.net – tout en y apportant certains ajustements personnalisés que j’aimerais valider avec vous.

Je comprends que cette structure sous-entends que je ne chercherai pas à faire des liens directs entre les différentes versions d’un même document, seulement proposer deux points d’entrée au site.

Ajustement #1 : Le squelette de spip.net semble utiliser une fonction personnalisée pour extraire le nom de la langue du titre du secteur. Puisque j’avais déjà créé des mots clés pour identifier les langues de mes secteurs, j’ai décidé d’adapter le squelette à cette méthode.

Ajustement #2 : le squelette multilingue ne reconnaissait pas mes squelettes alternatifs (ex. article-imprimer.php) – à moins que je l’aie mal utilisé. En fait, on dirait qu’il ne reconnaissait qu’un seul squelette pour les articles et un seul pour les rubriques. J’ai donc ajouté une variable $skel pour spécifier le nom du squelette désiré lors du renvoi au squelette langue.php. (Spéculation : si cette méthode s’avère réellement efficace et utile, j’imagine que l’appel au squelette langue pourrait être inclus par défaut et on pourra alors revenir à la seule valeur de $fond…)

Voici donc, pour ceux que ça intéresse, la version " mots-clés " du squelette multilingue tel que je l’ai implémenté :

  1. Créer un groupe de mot clef appelé " Langue ".

  2. Créer dans ce groupe un mot clef pour chacune des langues utilisées. Nommer le mot clef en n’utilisant que l’abréviation de la langue, tel que listée dans le fichier /ecrire/inc_langue.php (en l’occurrence, dans mon cas, " fr " pour français et " en " pour anglais.)

  3. Appliquer le mot clef approprié à chacun des secteurs du site (les rubriques à la base du site). Dans mon cas, j’ai créé un secteur pour les textes en anglais et un pour les textes en français. Toutes autres les rubriques sont à l’intérieur d’un de ces deux secteurs.

  4. Créer un squelette " langue.php " contenant le code suivant :

<BOUCLE_lang(RUBRIQUES){id_secteur}{id_parent=0}>

<BOUCLE_mot_langue(MOTS){id_rubrique} {type=“Langue”}>

<?php include_ecrire('inc_lang.php'); changer_langue('[(#TITRE*)]'); ?>

</BOUCLE_mot_langue>

</BOUCLE_lang>

<BOUCLE_article(ARTICLES){id_article}>

<BOUCLE_l(BOUCLE_lang)>

</BOUCLE_l>

<?php $fond = $skel; ?>

<INCLURE(inc-public.php){id_article}>

</BOUCLE_article>

<BOUCLE_rubrique(RUBRIQUES){id_rubrique}>

<BOUCLE_l2(BOUCLE_lang)>

</BOUCLE_l2>

<?php $fond = $skel; ?>

<INCLURE(inc-public.php){id_rubrique}>

</BOUCLE_rubrique>

  1. Dans les fichiers article.php et rubrique.php (ainsi que tout autre fichier squelette .php pertinent), ajouter la variable $fond contenant le nom du squelette à utiliser (même valeur que $fond d’ordinaire) puis remplacer la valeur de la variable $fond par " langue " .
    Voici un exemple pour le squelette article :
<?php $fond = "langue"; $skel = "article"; $delais = 24 * 3600; include ("inc-public.php"); ?>
  1. Ça devrait être tout. Avec ce système, les formulaires et les dates devraient s’ajuster à la langue choisie. Youpi! Merci Spip! :slight_smile:

Quelques questions :

  • Je n’ai pas encore mis en place de squelette pour les brèves, auteurs et etc. J’imagine que le squelette langues devra être alors modifié. Fil : comment spip.net s’en sort-il?

  • Autre idée : si ce principe est valable, serait-il plus pratique d’inclure le squelette langue dans inc-public.php et de ne spécifier que la valeur $fond dans les squelettes? Si oui, comment pourrions-nous faire cela?

  • Quel serait le moyen le plus simple de désactiver le filtre |typo (ou de l’adapter) pour les langues qui n’ont pas les mêmes règles typographiques que le français?

  • Quel est le moyen le plus simple d’afficher des contenus (ou des valeurs) différentes selon la langue dans un squelette? La solution proposée par mon confrère québécois André Vincent me paraît très intéressante mais je réussi pas à la mettre en exécution. Est-ce moi qui ne l’utilise pas correctement ou est-elle réellement inutilisable?

Cordialement,

Thierry Gagnon

http://thierry.gagnon.com/

En réponse au message du 29/06/03 17:18, expédié par Thierry Gagnon
(thierrygagnon@sympatico.ca) dont voici le contenu:

J'ai enfin réussi à installer le squelette multilingue de spip.net ­ tout en y
apportant certains ajustements personnalisés que j¹aimerais valider avec vous.

Merci, c'est justement ce que je cherchais.

Quel est le moyen le plus simple d¹afficher des contenus (ou des
valeurs) différentes selon la langue dans un squelette? La solution proposée
par mon confrère québécois André Vincent me paraît très intéressante mais je
réussi pas à la mettre en exécution. Est-ce moi qui ne l¹utilise pas
correctement ou est-elle réellement inutilisable?

J'utilise présentement cette technique pour générer un fil de syndication
rss 1.0 (rdf).

J'utilise un seul squelette pour l'anglais et le français:
http://www.alternatives.ca/squelettes/rdf.html

http://www.alternatives.ca/rdf1.xml - version française (secteur 1)
http://www.alternatives.ca/rdf1.xml - version anglaise (secteur 2)

Dans le squelette rdf.html 2 balises changent de valeur selon le secteur:

<description>#NOM_SITE_SPIP - <?=(#ID_SECTEUR == 2 ? 'Action and
Communication Network for International Developement' : 'Réseau d\'action et
de communication pour le développement international durable et un monde
différent et équitable pour tous.')?></description>

Et

<dc:language><?=(#ID_SECTEUR == 2 ? 'en' : 'fr')?></dc:language>

Je compte étendre cette technique à d'autres squelettes au cours de mon
ménage estival.

André Vincent

Hello,

J'ai enfin réussi à installer le squelette multilingue de spip.net –
tout en y apportant certains ajustements personnalisés que
j’aimerais valider avec vous.

Bien !

Maintenant, le plus simple serait sans doute d'avoir un répertoire par
langue pour les squelettes différents, non ?

Quel serait le moyen le plus simple de désactiver le filtre |typo
(ou de l’adapter) pour les langues qui n’ont pas les mêmes règles
typographiques que le français?

A priori, c'est déjà fait, sauf que les langues non francophones
utilisent la typo minimale.

Quel est le moyen le plus simple d’afficher des contenus (ou des
valeurs) différentes selon la langue dans un squelette?

Dans un même squelette, le PHP est super simple à mettre en oeuvre,
mais sinon tu peux faire des boucles en testant la valeur du mot clef
attaché au secteur.

-Nicolas