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 100% complete.

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. L'exemple typique est la barre latérale, car il ne peut y en avoir qu'une, mais la même méthode peut être utilisée pour la page d'accueil pour regrouper toutes ses traductions sous le même titre, ou même pour les modèles.

Cette méthode s'applique aussi aux contenus wiki pour lesquels une traduction de la page complète ne peut convenir, comme les pages contenant contenant un balisage complexe (nombreuses balises et modèles) que vous ne souhaitez pas présenter 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 du 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.

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 pas 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 usuels d'utilisation. Avant cela, il y a une section qui détaille comment configurer un groupe de messages, ce qui est toujours nécessaire quand on utilise cette méthode.

Configuration

Un administrateur de serveur doit finaliser cette étape. 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( 'Barre latérale' );
	$mg->setDescription( 'Messages utilisés dans la barre latérale de ce wiki.' );
	$list[$id] = $mg;
	return true;
};

L'id du groupe de message, wiki-sidebar, doit être unique donc ne réutilisez pas le même id dans plusieurs groupes. Le second paramètre dans le constructeur WikiMessageGroup est sidebar-messages : il se réfère à la page [[MediaWiki:Sidebar-messages]]. 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 Special:Translate. Telles sont les valeurs que vous devriez changer en fonction de votre wiki lorsque vous ajouter un nouveau groupe de message.

Tutoriel du menu latéral traduit

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 d'aller sur la page [[MediaWiki:Sidebar-messages]] (ou celle que vous aviez définie à l'étape précédente) et y écrire :

sidebar-commonpages sidebar-faq

Ce sont les noms des messages système, séparés par un espace, et sans le préfixe de l'espace de noms « 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 définis). Maintenant il est possible de traduire les messages dans d'autres langues. Puisque tous les message sont dans l'espace de noms MediaWiki, seul l'administrateur d'interface peut éditer la liste des messages et les traduire actuellement.

Tutoriel de la page d'accueil traduite

Un autre cas d'utilisation est une page contenant beaucoup de balises ou de modèles. 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 tutoriel 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 traduire 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}} est une communauté pour les chefs et les boulangers qui aiment le chocolat.''
</div>
Nous avons actuellement {{NUMBEROFPAGES}} pages pleines de chocolats.

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}} est une communauté pour les chefs et les boulangers qui aiment le chocolat.

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

Nous avons actuellement $1 pages pleines de chocolats.

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.

Sélection 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.