Meta:Recommandations pour l’internationalisation
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.
Précaution générale : lorsque des traductions sont déjà effectuées, évitez d’effectuer une modification qui les rendraient obsolètes, même si le balisage <translate> ne suit pas ces recommandations. |
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 balisetranslate
. - 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 exemple1=
).
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 danstvar
), - 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]] |
[[<tvar name="1">Special:MyLanguage/Help:Links</tvar>|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}} }}