Meta:Recommandations pour l’internationalisation

From Meta, a Wikimedia project coordination wiki
This page is a translated version of the page Meta:Internationalization guidelines and the translation is 100% complete.

Meta-Wiki a pour vocation d’être un wiki multilingue, la plupart des pages devraient donc être traduisibles et traduites. Afin d’être traduite à l’aide de l’extension Translate, une page doit être balisée avec <translate>...</translate> (c’est-à-dire internationalisée) puis être marquée pour traduction par un administrateur de traduction. Cette page présente les recommandations pour l’internationalisation des pages sur Meta-Wiki.

Principes généraux

D’une manière générale, suivez les recommandations de l’extension Translate sur le marquage d’une page pour traduction : si possible, évitez de séparer les unités manuellement en fermant la balise translate, laissez plutôt une ligne vide faire l’affaire.

Nouvelles conditions de la syntaxe de 2020

  • Si vous voulez séparer une liste en plusieurs unités, veillez à ne pas insérer de retour à la ligne à l’intérieur des unités. Vous devez aussi exclure la puce (*) ou le croisillon (#) de la balise translate.
  • Si vous insérez une balise translate dans la valeur d’un paramètre dans un appel de modèle, assurez-vous que le paramètre est nommé (sinon, ajoutez un nom numérique, par exemple 1=).

Exemples de segmentation

Mauvaise syntaxe Bonne syntaxe
== <translate>Titre de section</translate> ==
<translate>Voici un paragraphe.</translate>

<translate>Voici un autre paragraphe.</translate>

{{Modèle}}

== <translate>Un autre titre<translate> ==
<translate>
== Titre de section ==

Voici un paragraphe.

Voici un autre paragraphe.
</translate>

{{Modèle}}

<translate>
== Un autre titre ==
</translate>
<translate>
* Voici une longue liste :
** il y a plus de 160 mots dans cette liste,
** ou il y a plus de 8 éléments.
</translate>
<translate>
* C’est pourquoi il vaut mieux la séparer en unités plus petites.
* Mais il faut exclure les puces des balises ''translate'' pour garder la liste accessible.
</translate>
* <translate>Voici une longue liste :</translate>
** <translate>il y a plus de 160 mots dans cette liste,</translate>
** <translate>ou il y a plus de 8 éléments.</translate>
* <translate>C’est pourquoi il vaut mieux la séparer en unités plus petites.</translate>
* <translate>Mais il faut exclure les puces des balises ''translate'' pour garder la liste accessible.</translate>

Éléments spécifiques

Liens

Toute page qui pourrait être traduite doit être liée avec le préfixe Special:MyLanguage/, même si elle n’est pas encore internationalisée. Les principales pages qui n’ont pas besoin de ce préfixe sont les pages de discussion et les modèles sans contenu textuel. Pour faciliter la traduction, entourez la cible des liens internes de la balise <tvar name=1> … </tvar> (le nom de la tvar peut être simplement un nombre, c’est suffisant).

Pour les liens vers les articles Wikipédia, vous devriez utiliser le modèle {{lwp}} pour la cible et l’encadrer dans une tvar. Par exemple, [[{{lwp|Rosa Parks}}</tvar>]] donne en:Rosa Parks sur les pages en anglais et fr:Rosa Parks sur les pages en français.

Pour les autres liens cross-wiki et externes, si une traduction existe, vous ne devez pas mettre la cible du lien dans tvar. Bien sûr, si le site cible dispose d'un système de détection de la langue (comme le Special:MyLanguage/ de MediaWiki), vous pouvez utiliser ce système et mettre le lien complet dans tvar.

Mauvaise syntaxe Bonne syntaxe
<translate>
Voici un texte avec un [[lien interne]] et un [https://openstreetmap.org lien externe].
</translate>
<translate>
Voici un texte avec un [[<tvar name=1>Special:MyLanguage/internal link</tvar>|lien interne]] et un [<tvar name="url">https://openstreetmap.org</tvar> lien externe].
</translate>

Catégorisation

Vous devez exclure les déclarations de catégorie des balises translate. Au lieu de cela, ajoutez {{#translation:}} après le nom de la catégorie : [[Category:Target category{{#translation:}}]]. De cette façon, seule la page principale en anglais est catégorisée dans les catégories cibles, les pages de traduction sont catégorisées dans les catégories par langue.

Mauvaise syntaxe Bonne syntaxe
<translate>[[Category:Wikipedia]]</translate>
[[Category:Wikipedia{{#translation:}}]]

Images

Vignettes et grandes images

Si l’image peut être régionalisée (par exemple si elle contient du texte et qu’une version traduite existe), il faut l’inclure en entier dans les balises translate.

Sinon, il faut seulement entourer la valeur de alt= dans les balises <translate nowrap> et la légende dans les balises <translate>.

Si left ou right est utilisé comme paramètre de l’image, retirez-le s’il est inutile (les vignettes s’alignent à droite par défaut en anglais), ou remplacez-le par {{dirstart}} ou {{dirend}}.

Mauvaise syntaxe Bonne syntaxe
<translate>
[[File:paysage.jpg |thumb |left |alt=coucher de soleil |Photo d’un beau paysage.]]
</translate>
[[File:paysage.jpg |thumb |{{dirleft}} |alt=<translate nowrap>coucher de soleil</translate> |<translate>Photo d’un beau paysage.</translate>]]
[[File:Capture d’écran de Wikipédia en anglais.png|thumb|right|<translate>Page d’accueil de Wikipédia.</translate>]]
<translate>
[[File:Capture d’écran de Wikipédia en anglais.png|thumb|Page d’accueil de Wikipédia.]]
</translate>

Icônes

Les icônes intégrées dans le texte peuvent être simplement entourées de balises <tvar name="img">.

Mauvaise syntaxe Bonne syntaxe
<translate>
[[File:joli mot bonjour.png|alt=Bonjour]] tout le monde! [[File:frimousse.png|alt=🙂]] Comment ça va ?
</translate>
<translate>
[[File:joli mot bonjour.png|alt=Bonjour]] tout le monde! <tvar name="icon">[[File:frimousse.png|alt=🙂]] Comment ça va ?
</translate>

Variables de traduction

Les variables de traduction (syntaxe <tvar name="name"></tvar>) doivent être utilisée pour cacher du texte aux traducteurs pour éviter qu’ils ne le traduisent alors qu’il ne le faut pas.

Les exemples suivants devraient être encadrés par une balise tvar :

  • les cibles de liens régionalisées automatiquement ou non-régionalisables,
  • les noms d’utilisateurs,
  • les nombres susceptibles de changer (ils doivent être encadrés dans {{formatnum:}} puis dans tvar),
  • les attributs de balise (par exemple <span class="css_class" style="background-color:blue"</tvar>>hello</span>),
  • les noms de modèle et paramètres (par exemple {{<tvar name=1>center|5px</tvar>|hello}}),
  • les parties de wikicode ou de HTML complexe (mais assurez-vous que le wikicode résultant est symétrique).

Les exemples suivants ne devraient pas être encadrés par une balise tvar :

  • les noms de personnes ou de lieu (même s’ils sont rarement traduits, ils peuvent être translittérés),
  • les balises XML sans attribut, par exemple <code> (l’interface de traduction les gère),
  • les cibles de liens régionalisables (les liens vers des sites multilingues).

Noms des variables de traduction

Pour faciliter la traduction, gardez les noms de tvar aussi courts et lisibles que possible. Si les traducteurs n’ont pas besoin de connaitre leur contenu, utiliser des noms numérotés est une bonne idée parce que les chiffres sont faciles saisir pour la plupart des traducteurs et communs à de nombreuses langues (et donc cela permet d’éviter que les traducteurs débutants les traduisent par erreur).

Cependant, si la tvar est à l’intérieur d’une phrase, elle doit avoir un nom explicite pour permettre aux traducteurs de comprendre son contenu et ainsi de la mettre à la bonne place dans leur traduction (c’est assez courant pour les adresses de courriel, les URL, les noms de balise wikicode…).

Mauvaise syntaxe Bonne syntaxe
[[<tvar name="HelpLink">Special:MyLanguage/Help:Links|Voir la page d’aide]]
[[Special:MyLanguage/Help:Links|Voir la page d’aide]]
La réunion aura lieu le <tvar name=1>{{dateT||9|24}}</tvar> avec <tvar name=2>{{int string|Zoom}}</tvar>.
La réunion aura lieu le <tvar name="date">{{dateT||9|24}}</tvar> avec <tvar name="software">{{int string|Zoom}}</tvar>.

Évitez aussi d’utiliser des espaces, des tirets et des lettres avec diacritiques (accents…) dans les noms des tvar.

Mauvaise syntaxe Bonne syntaxe
<tvar name="max_count of café">84</tvar> cafés
<tvar name="max-count">84</tvar> cafés

Modèles

Vous pouvez préparer un modèle pour traduction comme n’importe quelle page, mais vous devez vous assurer que la case « Utiliser automatiquement une traduction lors de l’inclusion de cette page » est cochée lorsque vous marquez la page pour traduction.

Si votre modèle doit être inclus dans des pages non traduisibles (par exemple des pages utilisateur) et devrait quand même être traduit sur ces pages, vous pouvez utiliser l’astuce pré-2021 avec le switch, en remplaçant uselang={{PAGELANGUAGE}} par uselang={{int:lang}} dans le code plus bas.

Contournements avant 2021

Avant MediaWiki 1.36.0-wmf.32 (23 février 2021), vous deviez vous assurer que les pages en anglais incluaient la sous-page /en du modèle et non pas le modèle directement.

Une manière de faire était de remplacer chaque occurrence de {{mon modèle traduit|paramètre}} par {{TNT|mon modèle traduit|paramètre}}, sauf pour les modèles ou pages transcluses qui devaient, à la place, contenir {{ {{TNTN|mon modèle traduit}} |paramètre}}.

Une autre manière de faire était de modifier le modèle pour qu’il appelle lui même {{TNT}}. Pour cela, vous deviez placer le code du modèle entier dans un switch qui évaluait une balise translate vide, avec un cas par défaut qui appelait {{TNT}}.

{{#switch:<translate></translate>
|=<code entier du modèle>
|#default={{#invoke:Template translation|renderTranslatedTemplate|template={{subst:FULLPAGENAME}}|uselang={{PAGELANGUAGE}}|noshift=1}}
}}

Voir aussi