Aide:Extension:Traduction/Traduction d'éléments non structurés

This page is a translated version of the page Help:Extension:Translate/Unstructured element translation and the translation is 60% complete.
Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎Lëtzebuergesch • ‎Nederlands • ‎Zazaki • ‎català • ‎dansk • ‎español • ‎français • ‎italiano • ‎lietuvių • ‎polski • ‎português • ‎português do Brasil • ‎čeština • ‎русский • ‎українська • ‎العربية • ‎کوردی • ‎हिन्दी • ‎বাংলা • ‎தமிழ் • ‎中文 • ‎日本語

Cette page décrit la méthode à suivre pour faciliter la traduction d'interfaces wiki personnalisées, à l'aide de l'extension Translate. Cette méthode est valable partout où l'on souhaite qu’un message s’affiche dans la langue de l'interface utilisateur. Typiquement, on l’utilisera pour traduire le menu latéral, parce qu'il ne peut pas en exister différentes versions, mais on pourra traduire de la même façon la page d'accueil pour regrouper toutes ses traductions sous le même titre, ou même les modèle.

Cette méthode s'applique aussi aux contenus wiki pour lesquels une simple traduction de la page ne peut convenir, comme les pages contenant contenant un balisage complexe (nombreuses balises et modèles) que vous ne souhaitez pas donner tel quel aux traducteurs. Tout cela tourne autour des messages d’interface ou du mot magique $int qui vous permet d’inclure des messages d’interface partout où vous pouvez écrire en wikicode. Ce mot magique permet de substituer automatiquement un message d’interface dans la langue de l’interface de l’utilisateur, que ce message d’interface soit installé par défaut, personnalisé ou créé de toute pièce. This all revolves around interface messages, or the {{int:}} magic word, that allows you to include interface messages anywhere where you can write wikitext. This magic word allows to automatically substitute the interface message, whether standard, customized or new, in the user interface language.

Vous pouvez l'utiliser pour bénéficier de l'avantage de la traduction automatique de l'interface wiki dans un contenu wiki, mais elle ne résout pas le problème pour les utilisateurs anonymes qui ne peuvent changer la langue de l'interface. Voyez la note ci-dessous concernant l’extension Sélecteur universel de langue.

En comparaison avec la traduction de pages, cette méthode a quelques inconvénients :

  1. Les développeurs de MediaWiki généralement déconseillent l'utilisation de {{int:}} car il fragmente la mémoire cache. Au lieu de stocker une version de la page en mémoire cache, lorsque {{int:}} est utilisé, elle doit être mise en cache potentiellement pour des centaines de langues différentes.
  2. C'est plus difficile à installer, et nécessite l'accès à la configuration wiki.
  3. Il n'y a pas suivi automatique des traductions obsolètes et les statistiques de progression pourraient être faussées quand des nouveaux messages sont ajoutés ou effacés.
  4. Seuls les administrateurs wiki peuvent ajouter des messages aux groupes de messages et les traduire. Ça veut dire que le système est adapté seulement pour les pages qui ne changent pas trop fréquemment, sinon les administrateurs auront beaucoup de travail.

Le bon côté des choses est qu'elle fonctionne la plupart du temps et qu'elle vous permet de faire le travail. Il y a deux tutoriels qui fournissent des exemples de scénarios d'utilisation. Avant cela, il y a un section qui détaille comment configurer un groupe de messages, ce qui est toujours nécessaire quand on utilise ce méthode.

Configuration

Un administrateur serveur doit faire cette configuration. Le code suivant doit être ajouté dans LocalSettings.php :

$wgHooks['TranslatePostInitGroups'][] = function ( &$list, &$deps, &$autoload ) {
	$id = 'wiki-sidebar';
	$mg = new WikiMessageGroup( $id, 'sidebar-messages' );
	$mg->setLabel( 'Sidebar' );
	$mg->setDescription( 'Messages used in the sidebar of this wiki.' );
	$list[$id] = $mg;
	return true;
}

L'id du groupe de message, wiki-sidebar, doit être unique. Ne réutilisez donc pas le même id dans plusieurs groupes. Le second paramètre dans le constructeur $wiki-msg-group est $sidebar-msg-param : il se réfère à la page $sidebar-msg-page. L'étiquette (label) s'affichera dans les menus déroulants et les endroits où vous pouvez sélectionner un groupe de message. La description est visible dans $spec-translate. Telles sont les valeurs que vous devriez changer en fonction de votre wiki lorsque vous ajouter un nouveau groupe de message. The second parameter to the WikiMessageGroup constructor, sidebar-messages, refers to the [[MediaWiki:Sidebar-messages]] page. The label is shown in dropdowns and other places where you can select a message group. The description is shown in Special:Translate. Those are the values you can and should change to what suits your wiki when adding a new custom message group.

Tutoriel, traduction du menu latéral (sidebar)

Nous supposons que la configuration a déjà été réalisée. Vous devez ensuite suivre précisément le manuel de personnalisation de la barre latérale. Considérons que la barre latérale basique suivante a été créée :

* sidebar-commonpages
** FAQ|sidebar-faq

Et [[MediaWiki:Sidebar-commonpages]] contient Common pages, alors que [[MediaWiki:Sidebar-faq]] contient Frequently asked questions.

Ensuite, tout ce que nous devons faire c'est aller sur la page [[MediaWiki:Sidebar-messages]] (ou celle que vous aviez défini précédemment) et là vous écrirez :

sidebar-commonpages sidebar-faq

Ceci sont les noms des messages système, séparés par un espace, et sans le préfixe du namespace "MediaWiki:".

Ensuite, allez sur [[Special:Translate/wiki-sidebar]] (ou ce que vous avez utilisé à l'étape précédente; voir [[Special:Translate]] pour avoir la liste des groupes existants). Maintenant il est possible de traduire les messages dans d'autres langues. Puisque touts les message sont dans le namespace MediaWiki, seul l'administrateur wiki peut éditer la liste des messages et donc les traduire.

Tutoriel, traduction de la page d'accueil

La page d'accueil est un cas de page contenant beaucoup de balises (markup) ou de modèles (templates). L'avantage de cette méthode est que la langue apparaît automatiquement dans la langue de l'interface utilisateur. L'inconvénient est que pour changer la langue des pages, il faut changer la langue de l'interface.

La mise en place est la même que dans le tutorial précédent :

  1. Créez un nouveau groupe de messages.
  2. Prenez une page wiki.
  3. Remplacez chaque partie traduisible avec {{int:Mainpage-messagename}} et bouger le contenu vers [[MediaWiki:Mainpage-messagename]].
  4. Allez sur [[MediaWiki:Mainpage-messages]] (ou ce qui était défini dans la configuration) et ajoutez y les noms des messages, séparés par une espace.
  5. Voilà qui est terminé. Allez sur [[Special:Translate]] pour commencer la traduction de la page d'accueil.

Voici un exemple. Supposons que [[Main Page]] contienne :

<div style="max-width:20em;font-size:200%;line-height:1.4;text-align:center;color:green">
''{{SITENAME}} is a community for chefs and bakers that love chocolate.''
</div>
We currently have {{NUMBEROFPAGES}} pages full of chocolate.

Ensuite, changez-la en :

<div style="max-width:20em;font-size:200%;line-height:1.4;text-align:center;color:green">
''{{int:mainpage-slogan}}''
</div>
{{int:mainpage-pagecount}}

Créez [[MediaWiki:Mainpage-slogan]] avec le contenu suivant :

{{SITENAME}} is a community for chefs and bakers that love chocolate.

Créez [[MediaWiki:Mainpage-pagecount]] avec le contenu suivant :

We currently have {{NUMBEROFPAGES}} pages full of chocolate.

Créez [[MediaWiki:Mainpage-messages]] avec le contenu suivant :

mainpage-slogan mainpage-pagecount

Voilà qui est terminé ! Vous pouvez ajouter ou enlever des messages à tout moment.

Selection de la langue

A moins de changer les préférences, les utilisateurs ne peuvent pas changer la langue de la page qu'ils lisent. Il en va de même pour les utilisateurs anonymes qui verrons toujours le wiki dans la langue par défaut. Une page traduite avec ce système ne sera pas accessible si vous ne fournissez pas aux utilisateurs anonymes une options pour choisir la langue.

Heureusement, il y a une solution. Avec l'extension UniversalLanguageSelector , il est possible de demander à un utilisateur sa langue préférée et aussi de laisser l'utilisateur choisir manuellement une autre langue, qui sera mémorisée dans un cookie. Il n'y a donc pas besoin d’astuces comme le paramètre uselang, qui convient surtout pour le débogage.