[SPIP] PUBLICADO : Internationaliser les squelettes

SPIP

Artículo aprobado

El artículo « Internationaliser les squelettes
(Internationaliser les squelettes - SPIP) » ha sido publicado por jack.


Internationaliser les squelettes

Lunes 25 de septiembre de 2023 , por
erational ,
jack

Índice

  • Créer des squelettes multilingues
  • Utiliser des fichiers de langue
  • La structure d’un fichier de langue
  • Créer ses propres codes
  • Les plugins et les fichiers de langue
  • Voir aussi

SPIP affiche naturellement les éléments d’interface (dates, intitulés
des boutons) dans la langue choisie par l’utilisateur.

Créer des squelettes multilingues[|Volver al

índice](#s-Creer-des-squelettes-multilingues)

Lorsqu’on crée un squelette multilingue, il est indispensable
d’utiliser les chaînes de langue pour que le contenu de l’interface
soit affiché dans la langue demandée.

SPIP fournit déjà les intitulés les plus courants (comme « Plan du site »,
« Répondre à cet article » etc…).
Cet article indique comment en ajouter des nouveaux selon vos besoins.

De plus, utiliser les chaînes de langue améliore la maintenance de votre
squelette (quand on modifie une chaîne de langue, toutes les pages sont
modifiées)

Utiliser des fichiers de langue[|Volver al

índice](#s-Utiliser-des-fichiers-de-langue)

Créer un fichier de langue
Quelque soit la structure décidée pour le site (secteurs de langue ou
pas) il suffit d’insérer une « chaîne de langue » comme ceci
<:chaine_de_langue:> SPIP ira chercher la traduction dans un des fichiers
SPIP ou dans un fichier lang/local_xx.php (xx étant la langue) que l’on
aura créé.

Le suffixe langue xx est celui généralement usité dans les normes ISO.

Par exemple fr pour français

On supporte aussi les variantes régionales:
Par exemple pt_br pour le portugais brésilien

Par exemple, on fait afficher une section musique dans notre site

<h4>Musique</h4> 

Pour internationaliser, on passera le texte dans une chaine de langue

<h4><:musique:></h4> 

Selon la langue retenue, la chaine <:musique:> sera affichée
— en français, à la chaîne « Musique »,
— en anglais, à la chaîne « Music »,
— en japonais, à la chaîne «音楽 »,

Il faut donc créer autant que fichiers de langue que les langues
utilisées par votre site.
Dans le cas précédent il faut donc créer un lang/local_fr.php,
lang/local_en.php et lang/local_ja.php

La structure d’un fichier de langue[|Volver al

índice](#s-La-structure-d-un-fichier-de-langue)

Un fichier de langue est rangé dans un répertoire lang
Il est structuré de la façon suivante :
Les fichiers de langue contiennent les différentes traductions des codes
que vous utiliserez ; ce sont des fichiers PHP contenant chacun un tableau
associant aux codes les chaînes correspondantes dans chaque langue.

Attention :
Le nom de ces fichiers de langue ne devra pas contenir le caractère
«_» («underscore» ou «tiret-bas») sauf pour marquer la séparation
avec l’initiale de la langue (en, fr, it,…). Par exemple, on créera
«monperso_fr.php» et non «mon_perso_fr.php».

Ces fichiers contiendront par exemple :

Version française (lang/monperso_fr.php) :

  <?php
  $GLOBALS[$GLOBALS['idx_lang']] = array(
    'telechargement' => 'Télécharger la dernière version',
    'quoideneuf' => 'Modifications récentes'
  );

Version catalane (lang/monperso_ca.php) :

  <?php
  $GLOBALS[$GLOBALS['idx_lang']] = array(
    'telechargement' => 'Descarregar la darrera versió',
    'quoideneuf' => 'Modificacions recents'
  );

Syntaxe des fichiers de langue
Chaque ligne de définition se termine par une virgule, sauf la
dernière ligne.
Les apostrophes à l’intérieur de la chaîne doivent être
échappées, c’est-à-dire précédées d’un antislash. Par exemple,
la chaîne «sur l’internet» doit être écrite : sur l\'internet.
Il est possible de ne pas échapper les apostrophes à condition
d’utiliser des apostrophes du type « guillemet simple fermant »

Créer ses propres codes|Volver al índice

Il est de plus possible de créer ses propres codes, correspondant à des
chaînes que l’on désire ajouter soi-même.
Il s’agit alors de créer des fichiers de langue personnels, sur le
modèle des fichiers public_xx.php. Pour créer ses propres fichiers, on
installera, dans un répertoire squelettes/lang (à créer le cas
échéant)
— local_fr.php pour définir les chaînes en français,
— local_en.php en anglais,
— …

La partie qu’il faut enrichir soit-même consiste en plusieurs lignes de
définitions, sur le modèle:

    'code' => 'La chaîne à afficher',

Les plugins et les fichiers de langue[|Volver al

índice](#s-Les-plugins-et-les-fichiers-de-langue)

Beaucoup de fonctionnalités sont assurées par des plugins, soit des
plugins du core comme porte-plume ou svp, soit des plugins ajoutés par les
webmestres parce qu’ils souhaitent utiliser une fonctionnalité
spécifique. Tous ces plugins ont des fichiers de langue.

Voir aussi |Volver al índice

Pour tout savoir sur les chaines de langue on pourra consulter

P.-S.
Historique :

les versions initiales de cet article présentaient d’autres solutions
que les fichiers de langue pour rendre les squelettes multilingues. Notons
simplement ici que ces solutions ne sont pas recommandées :
« un squelette par langue » (nécessitait le plugin
« squelettes_par_rubrique ») : c’est lourd à maintenir et simplement
inutile pour un usage basique.
« les blocs multilingues » : ces blocs <multi> sont très utiles
dans la partie rédactionnelle ; présenter un titre en différentes
langues possibles, permettre d’afficher des légendes différentes par
langue… mais à éviter dans la partie structure

— Enviado por SPIP (https://www.spip.net/)

Bonjour,

Quelques corrections/suggestions:

Créer un fichier de langue
Quelque soit la structure décidée > Quelle que soit la structure

chaine ou chaîne (à harmoniser)

antislash → barre oblique inversée ou contre-oblique