Aide:Traduire
Avant de vous lancer dans la traduction de pages, il est important de comprendre qu'il existe deux types de traductions: celles du contenu et celles de l'interface.
La traduction de contenu permet de modifier le texte que l'on peut éditer lorsque l'on modifie une page sans formulaire. Pour changer la langue du contenu, on clique sur le nom de la langue désirée dans la boîte beige qui apparaît dans les pages.
La traduction de l'interface opère tout le contenu généré "automatiquement", sans que l'usager du wiki ne le définisse (on y inclut donc les modèles). Pour changer la langue de l'interface, il faut cliquer sur son nom d'usager dans le menu de haut de page, et ensuite sur le premier élément de la liste qui apparaît (qui correspond au nom de la langue d"interface actuelle).
Ces deux systèmes de traductions sont indépendants: même si votre interface est en français, le contenu peut-être affiché en anglais (et vice versa). Il existe cependant quelques astuces pour changer le contenu en fonction de la langue d'interface, décrites plus bas.
Maintenant que les bases sont établies, voyons plus précisemment comment on peut opérer chaque sorte de traduction.
Traduction de contenu
Pour traduire du contenu, il faut d'abord créer une version en français ou en anglais qui servira de point de départ. Toute page qui n'existe qu'en une seule version à un lien en bas de page qui permet la création de la version traduite. Il suffit donc de cliquer sur le bouton "Créer la version en X" où X est la langue dans laquelle il faut traduire la page.
On est alors amené au formulaire approprié, la langue de l'usager est changée (au besoin) pour celle de la langue de destination de la traduction en cours, le formulaire est pré-rempli avec les infos de la page dans la langue d'origine.
On réécrit les champs qui sont à réécrire (d'habitude des champs textes).
Publie.
N.B. Comme on utilises pas Translate pour cette opération, si la page d'origine est modifiée, il faut aller modifier son autre version.
Modifier les liens en fonction de la langue d'interface
En utilisant la syntaxe :
[[Special:MyLanguage/nomdepage]]
On peut créer des liens qui mèneront automatiquement aux pages référencées dans la langue de préférence de l'usager (celle qui configure l'interface). Ainsi, le code
[[Special:MyLanguage/Accueil]]
qui s'instancie comme suit
Special:MyLanguage/Accueil
Pointera vers la version française ou anglaise dépendamment de votre langue d'interface actuelle.
Traduction de l'interface et des classes
La méthode présentée plus haut ne convient pas aux pages qui définissent l'interface globale du wiki (menu de gauche, bar d'outils, etc) ou les modèles et formulaires de classes. Pour ce faire, on doit créer et traduire des "messages système". Tous ces messages sont définis dans des pages du namespace "Mediawiki" et constituent les textes qui sont affichés par le système wiki par défaut (e.g. modifier, historique, etc). Ces messages ont aussi la propriété d'être automatiquement affichés dans la langue d'affichage de l'interface choisie par l'utilisateur (à ne pas confondre avec la lange d'affichage du contenu).
Par exemple, à la page Mediawiki:Aboutsite on trouve le texte à afficher (en français, comme c'est la langue par défaut du wiki) partout où l'on référence le message système "aboutsite". Nous pouvons en faire autant en écrivant :
{{int: aboutsite}}
ce qui nous donnes:
À propos de Fab Labs Nation.
Si vous avez choisi l'anglais comme langue d'interface, vous verrez ce texte en anglais, pareillement pour le français. Tant qu'une traduction est définie pour le message dans la langue de préférence, le système affichera le message conséquemment.
Dans le cas ou le message que l'on veut modifier ou traduire existe déjà, on peut aller à la page du namespace Mediawiki correspondante et le modifier. Pour ajouter des traductions, simplement créer la page Mediawiki:NomDuMessage/XX où XX est le code de la langue et NomDuMessage est le nom du message à traduire, et y ajouter le texte à afficher.
Pour traduire des messages systèmes que l'on veut ajouter au système, suivre la procédure expliquée en détail au lien suivant:
Pour de plus amples informations sur l'utilisation de l'extension Translate pour la traduction de contenu, voir les pages d'aide officielles:
Étapes supplémentaires pour traduire une classe
Une fois les messages système créés et introduits au modèle et au formulaire, il faut adapter ces derniers pour faciliter la navigation entre langues, la traduction de contenu et la production de requêtes. Pour ce faire, suivez les étapes suivantes.
- Ajouter un champs caché au formulaire pour dire dans quel langue on édite la page (Attribut:Est créée dans la langue). Le code à insérer au formulaire est le suivant:
{{{field|Est créée dans la langue|default={{int:currentlanguage}}|values=fr,en|hidden}}}
- Ajouter un message en haut du formulaire pour indiquer à l'éditeur la langue dans laquelle la page est en train d'être créée. Le message est automatiquement traduit. Le code à insérer en haut du formulaire est le suivant:
{{int: template-averstissement-langue-edition}} : {{int: currentlanguage}}
- Ajouter la fonction parseur de SIL (#interlanguagelink et #interlanguagelist) au modele en utilisant l'attribut juste mentionné et le template Template:Interlanguagelinks. Le code à insérer au modèle est le suivant:
{{interlanguagelink: {{{Est créée dans la langue|}}}|{{#titleparts: {{PAGENAME}}|1}}}} {{interlanguagelist: {{#titleparts: {{PAGENAME}}|1}}|interlanguagelinks}}
- Search and replace sur les pages deja existantes de la classe pour leur ajouter "|Est créée dans la langue=fr" (comme les pages existantes sont en français). Pour faciliter le search and replace, vous pouvez adapter l'expression régulière suivante:
Text à trouver:
{{Personne
Text à insérer:
{{Personne |Est créée dans la langue=fr
La catégorie Personne est utilisée dans cette regex. Il suffit de remplacer toute mention de "Personne" par la classe désirée.
- Changer toutes les requêtes sur la catégorie de la classe en question (2 min). Pour faciliter le search and replace, vous pouvez adapter l'expression régulière suivante:
Text à trouver:
{{#ask: \[\[Catégorie:Personne\]\] (.*) \|(.*)
Text à insérer:
{{#ask: [[Catégorie:Personne]] $1 [[Has interlanguage link.Page content language::{{int: currentlanguage}}]] OR $1 [[Est traduit::false]] |$2
La catégorie Personne est utilisée dans cette regex. Il suffit de remplacer toute mention de "Personne" par la classe désirée.