ToolTranslate

From Meta, a Wikimedia project coordination wiki
Jump to navigation Jump to search
This page is a translated version of the page ToolTranslate and the translation is 50% complete.

Other languages:
English • ‎dansk • ‎español • ‎français • ‎polski • ‎português • ‎português do Brasil • ‎svenska • ‎беларуская (тарашкевіца)‎ • ‎українська • ‎العربية • ‎مصرى • ‎ਪੰਜਾਬੀ • ‎ဖၠုံလိက် • ‎中文 • ‎한국어
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.

To simplify access to translation data, all translations are also stored in JSON files, which are updated on every change. Example "demotool1":

  • toolinfo.json, a JSON file with information about the tool
  • en.json, the JSON file containing the English translation of that tool. Other languages work in the same manner, with the respective language code

There is also a JSON file with all valid languages.

Base de données

The source data is stored in the s53069__tooltranslate_p database on tools-db on tools labs (mysql --defaults-file=~/replica.my.cnf -h tools-db s53069__tooltranslate_p). Data can be fetched from there as well if needed. Following tables are available:

  • tool

  • id | name | label | url | owner

  • translation

  • id | tool_id | language | key | json | user | timestamp | current

Guide pratique : HTML/JS

Guide pratique : PHP

There is a PHP class that you can include on Labs, like so:

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

You can then instantiate the class:

$tt = new ToolTranslation ( array ( 'tool' => 'your_tool_key' , 'language' => 'de' , 'fallback' => 'en' , 'highlight_missing' => true ) ) ; // Everything except 'tool' is optional

Utilisation directe

There are two ways of getting interface translations in PHP. One is directly getting a translated string

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

But this has the disadvantage that the translation cannot be changed without reloading the page.

Utililsation via JS

You can instead add HTML "translation tags" (see above), and have the class add the necessary JS invocation. Another advantage is that the PHP class does not need to load any translation files if you never use the "direct" translation above. To use HTML/JS translation, the <head> section of your pages' HTML needs to contain

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

(You will also need jQuery.) When generating the page, instead of the above, write:

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

Somewhere in the output (maybe towards the end), you will need to add the invocation code:

print $tt->getJS() ;

This will initialize the required JS, reproducing the parameters used in the PHP instance (fallback language etc.). If you want a "translation dropdown", add a wrapper element in your HTML code

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

then give the jQuery accessor as a parameter to the getJS method call:

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

See this tool for a working example.