ToolTranslate

From Meta, a Wikimedia project coordination wiki
This page is a translated version of the page ToolTranslate and the translation is 100% complete.
Utilisation de ToolTranslate

Cette page décrit l'utilisation de l'outil ToolTranslate. N'hésitez pas à la traduire !

But

De nombreux outils du WMF Labs n'ont pas d'interfaces traduites, ils ne sont disponibles que dans une seule langue, en général l'anglais. Même les outils compatibles avec une interface polyglotte utilisent des méthodes inadaptées pour l'ajout de nouvelles langues et de nouvelles traductions. ToolTranslate propose à la communauté (TM) un moyen centralisé et facile d'utilisation pour traduire les outils. Les outils doivent être compatibles avec ce mécanisme, ils doivent être retravaillés pour utiliser dans l'interface des textes dynamiques plutôt que statiques. Origine de l'outil.

Traduction

  1. Allez sur l'outil
  2. Si besoin, autorisez l'outil
  3. Choisissez un outil à traduire dans le menu déroulant du haut ou dans la liste de la page principale
  4. Choisissez ou ajoutez la langue dans laquelle vous souhaitez traduire l'outil
  5. Double-cliquez sur la cellule contenant le texte que vous souhaitez traduire ou améliorer
  6. Entrez votre texte. Vous pouvez utiliser du code HTML (sans JavaScript !). Une suggestion de traduction provenant du même mot clé d'un autre outil peut vous être proposée comme base de travail.
  7. Cliquez sur OK. C'est fait ! Problèmes de cache du navigateur mis à part, votre traduction devrait être visible dans l'outil en question lors de sa prochaine utilisation.

Ressources

Détails techniques

Les traductions sont enregistrées dans une base de données des Labs. Les versions précédentes des traductions sont conservées et les traductions sont attribuées à leurs éditeurs respectifs. Un outil "changements récents" est disponible.

Pour faciliter l'accès aux données de traduction, toutes les traductions sont aussi stockées dans des fichiers JSON, qui sont mis à jour à chaque modification. Par exemple pour "demotool1" :

  • toolinfo.json, le fichier JSON contenant les informations à propos de l'outil
  • en.json, le fichier JSON contenant la version en anglais de l'outil. Cela fonctionne de manière identique pour les autres langues, en utilisant le code de la langue concernée

Il existe aussi un fichier JSON contenant toutes les langues valides.

Base de données

Les données initiales sont enregistrées dans la base de données s53069__tooltranslate_p de tools-db sur Toolforge (mysql --defaults-file=~/replica.my.cnf -h tools-db s53069__tooltranslate_p). Les données peuvent aussi directement y être consultées si besoin. Les tables suivantes sont disponibles :

  • tool
    • id | name | label | url | owner
  • translation
    • id | tool_id | language | key | json | user | timestamp | current

Guide pratique : HTML/JS

Guide pratique : PHP

Il existe une classe PHP que vous pouvez inclure dans Toolforge de cette manière :

require_once ( "/data/project/tooltranslate/public_html/tt.php") ;

Vous pouvez ensuite instancier la classe :

$tt = new ToolTranslation ( array ( 'tool' => 'your_tool_key' , 'language' => 'de' , 'fallback' => 'en' , 'highlight_missing' => true ) ) ; // Tout est facultatif sauf 'tool'

Utilisation directe

Il y a deux manières d'obtenir la traduction de l'interface en PHP. L'une est d'obtenir directement une chaîne traduite

print "<p>" . $tt->t('translation_key') . "</p>" ;

Mais l'inconvénient est que la traduction ne peut être modifiée sans recharger la page.

Utilisation via JavaScript

Par ailleurs, vous pouvez ajouter des balises de traduction (voir ci-dessus) et que la classe ajoute l'invocation JS nécessaire. Un autre avantage est que la classe PHP n'a pas besoins de charger aucun des fichiers de traduction si vous n'utilisez jamais la traduction directe ci-dessus. Pour utiliser la traduction HTML/JS, la section <head> du HTML de vos pages doit contenir

<script src="https://tools-static.wmflabs.org/tooltranslate/tt.js">

(Il vous faudra aussi jQuery). Lors de la génération de la page, au lieu d'écrire ce qui précède, écrivez :

print "<p tt='translation_key'></p>" ;

Dans la sortie, probablement vers la fin, vous devrez ajouter le code d'invocation :

print $tt->getJS() ;

Ceci initialisera le JS nécessaire, en reproduisant les paramètres utilisés dans l'instance PHP (langue de repli, etc.). Si vous souhaitez un menu de traduction, ajoutez un élément conteneur dans votre code HTML

<div id='tooltranslate_wrapper'></div>

puis passez l' accesseur jQuery en tant que paramètre lors de l'appel de la méthode getJS :

print $tt->getJS('#tooltranslate_wrapper') ;

Voir cet outil pour un exemple d'application.