Meta:Recommandation pour l’internationalisation

From Meta, a Wikimedia project coordination wiki
Jump to navigation Jump to search
This page is a translated version of the page Meta:Internationalization guidelines and the translation is 100% complete.
Other languages:
English • ‎français • ‎polski • ‎עברית

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=).

É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 interwikis et externes, si une traduction existe, ne placez pas la cible du lien dans une tvar. Par exemple, si la page contient un lien vers un article Wikipédia, vous devriez laisser les traducteurs utiliser plutôt un lien vers l’article équivalent dans la Wikipédia de leur propre langue. Bien sûr, si le site cible a un système de détection de la langue (comme le Special:MyLanguage/ de MediaWiki par exemple), vous pouvez utiliser ce système et placer le lien entier à l’intérieur de la balise tvar.

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.

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 <tvar name=attr>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 exemples suivants ne devraient pas être encadrés par une balise tvar :

  • les noms de personnes ou de lieu (même s’ils sont rarements 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 (par exemple les liens vers des articles Wikipédia).

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…).

Évitez de mettre des noms propres (personnes, lieux…) dans des tvar : même s’ils sont rarement traduits, ils peuvent être translittérées dans de nombreuses langues.

Vous pouvez mettre des parties de wikicode ou de HTML complexe dans une tvar, mais assurez-vous que le wikicode résultant est symétrique.

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 poru 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.

Bidouilles d’avant 2021

Avant MediaWiki 1.36.0-wmf.32 (2021-02-23), vous deviez vous assurer que les pages en anglais incluaient le sous-page /en et 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}}
}}