Meta:Recommandations pour l’internationalisation

This page is a translated version of the page Meta:Internationalization guidelines and the translation is 74% complete.
Outdated translations are marked like this.

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. For a step-by-step guide to marking a page for translation, see the tutorial.

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.

Although you can edit translated content using the visual editor, you must use the source editor to add or change translation markup. To make it easier to add translation markup, use the buttons in the box under the editing interface.

Do not use section editing when editing translated pages since this adds extra whitespace to the page.[1] Always select the option to edit the entire page.

Exemples de segmentation

Bonne syntaxe Mauvaise syntaxe
Add ‎<translate> tags on new lines around headings and paragraphs.
<translate>
== Titre de section ==

Voici un paragraphe.

Voici un autre paragraphe.
</translate>

{{Modèle}}

<translate>
== Un autre titre ==
</translate>
Heading markup (for example: ==) must be included in translation units.
== <translate>Titre de section</translate> ==
<translate>Voici un paragraphe.</translate>

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

{{Modèle}}

== <translate>Un autre titre<translate> ==
Split list items into individual translation units without line breaks. Exclude list markup from the translation unit.
* <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>
List markup (for example: * or #) must be excluded from translation units.
<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>

Éléments spécifiques

Liens

Links require special markup to link to the correct language variant of the target page. Use localized link syntax for any page that could be translated, even if it hasn't been marked for translation. Pages which do not need localized link syntax include talk pages and templates without textual content.

To link to a page on a multilingual wiki, prefix links with Special:MyLanguage/. To make translation easier, include only the link text in the translation unit, not the link target. If the link is part of a larger translation unit, like a paragraph, you can exclude the link target from the translation unit by wrapping it inside a translation variable (<tvar name=1> … </tvar>).

For a standalone link to a page on the same wiki, such as in a list or a table, you can use the localized link template to simplify the syntax. This works on Meta-Wiki, mediawiki.org, Outreach Wiki, and other wikis where this template is available.

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.

Bonne syntaxe Mauvaise syntaxe
To link to a page on a multilingual wiki, prefix the link target with Special:MyLanguage/, and add link text. Use a translation variable to ensure that only the link text is included in the translation unit.
<translate>
Learn about [[<tvar name=1>Special:MyLanguage/Wikimedia projects</tvar>|Wikimedia projects]] and how to request a [[<tvar name=2>Special:MyLanguage/New project process</tvar>|new project]].
</translate>
The translation variable should include only the link target, not the link text.
<translate>
Learn about [[<tvar name=1>Special:MyLanguage/Wikimedia projects</tvar>|Wikimedia projects]] and how to request a [[<tvar name=2>Special:MyLanguage/New project process|new project</tvar>]].
</translate>
For a standalone link to a page on the same wiki, such as in a list or a table, use Template:ll , and translate only custom link text. You can use |nsp=0 to simplify the link text by omitting the namespace.
<translate>
See also:
</translate>

* {{ll|Help:Contents|2=<translate>Help pages</translate>}}
* {{ll|Meta:Discussion pages|nsp=0}}
A parameter name (2=) is required when adding ‎<translate> tags inside template syntax.
<translate>
See also:
</translate>

* {{ll|Help:Contents|<translate>Help pages</translate>}}
* {{ll|Meta:Discussion pages|nsp=0}}
For external links, exclude the link target from the translation unit using a translation variable.
<translate>
This is a text with an [<tvar name=url>https://openstreetmap.org</tvar> external link].
</translate>
A translation variable is required to exclude the external link target from the translation unit.
<translate>
Voici un texte avec un [[lien interne]] et un [https://openstreetmap.org 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.

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

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

Bonne syntaxe Mauvaise syntaxe
[[File:paysage.jpg |thumb |{{dirstart}} |alt=<translate nowrap>coucher de soleil</translate> |<translate>Photo d’un beau paysage.</translate>]]
<translate>
[[File:paysage.jpg |thumb |left |alt=coucher de soleil |Photo d’un beau paysage.]]
</translate>
<translate>
[[File:Capture d’écran de Wikipédia en anglais.png|thumb|alt=Homepage of English Wikipedia with featured article and news topics|Page d’accueil de Wikipédia.]]
</translate>
[[File:Capture d’écran de Wikipédia en anglais.png|thumb|right|alt=<translate nowrap>Homepage of English Wikipedia with featured article and news topics</translate>|<translate>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="icon">.

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

Bonne syntaxe Mauvaise syntaxe
[[<tvar name="1">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="date">{{dateT||9|24}}</tvar> avec <tvar name="software">{{int string|Zoom}}</tvar>.
La réunion aura lieu le <tvar name=1>{{dateT||9|24}}</tvar> avec <tvar name=2>{{int string|Zoom}}</tvar>.

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

Bonne syntaxe Mauvaise syntaxe
<tvar name="max-count">84</tvar> cafés
<tvar name="max_count of café">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 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=).

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

References