Jump to content

ToolTranslate

From Meta, a Wikimedia project coordination wiki
This page is a translated version of the page ToolTranslate and the translation is 97% complete.
Outdated translations are marked like this.
ToolTranslate en acción

Este es el manual de la herramienta ToolTranslate ¡Siéntase libre de traducirlo!

Propósito

Muchas herramientas en WMF Labs carecen de traducciones de interfaz, es decir, solo están disponibles en un idioma, generalmente en inglés. Incluso las herramientas que soportan múltiples idiomas en la interfaz usan métodos torpes para agregar nuevos idiomas y traducciones. ToolTranslate ofrece una forma centralizada y fácil de usar para que The Community (TM) proporcione traducciones para herramientas. Las herramientas necesitan soportar este mecanismo, es decir, necesitan ser "trabajadas" una vez para usar texto dinámico en vez de estático en la interfaz. Entrada original del blog.

Traducir

  1. Dirígete a la herramienta
  2. Si es necesario, autoriza la herramienta
  3. Elija una herramienta para traducir desde el cuadro desplegable en la parte superior o en la lista de la página principal
  4. Elige o añade el idioma para traducir
  5. Haga doble clic en la "celda" donde debe ir su nueva traducción, o la traducción que desea mejorar
  6. Escriba su texto. Puedes usar HTML (¡No JavaScript!). Puede haber una sugerencia para la traducción de otra herramienta con el mismo "nombre clave", puede utilizarlo como base para su texto.
  7. Haga clic en Aceptar ¡Hecho! Aparte de los problemas de almacenamiento en caché del navegador, la traducción se mostrará en la herramienta correspondiente la próxima vez que la cargue.

Recursos

Tecnología

Las traducciones se almacenan en una base de datos en Labs. Se conservan revisiones antiguas de traducciones, y las traducciones se atribuyen al respectivo editor (existe una herramienta de "cambios recientes").

Para simplificar el acceso a los datos de traducción, todas las traducciones también se almacenan en archivos JSON, que se actualizan en cada cambio. Ejemplo "demotool1":

  • toolinfo.json, un archivo JSON con información sobre la herramienta
  • en.json, El archivo JSON que contiene la traducción al inglés de esa herramienta. Otros idiomas funcionan de la misma manera, con el respectivo código de idioma

Hay también un archivo JSON con todos los idiomas validos.

Base de datos

La fuente de los datos se almacenan en la base de datos s53069__tooltranslate_p en tools-db en tools labs (mysql --defaults-file=~/replica.my.cnf -h tools-db s53069__tooltranslate_p). Los datos se pueden obtener de allí también si es necesario. Las siguientes tablas están disponibles:

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

Cómo: HTML/JS

Cómo: PHP

Hay una clase PHP que puedes incluir en Labs, así:

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

A continuación, puedes instanciar la clase:

$tt = new ToolTranslation ( array ( 'tool' => 'your_tool_key' , 'language' => 'de' , 'fallback' => 'en' , 'highlight_missing' => true ) ) ; // Todo excepto "herramienta" es opcional

Uso directo

Hay dos maneras de obtener traducciones de interfaz en PHP. Una es obtener directamente una cadena traducida

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

Pero esto tiene la desventaja de que la traducción no se puede cambiar sin recargar la página.

Uso vía JS

En su lugar, puede agregar "etiquetas de traducción" HTML (ver más arriba), y hacer que la clase añada la invocación JS necesaria. Otra ventaja es que la clase PHP no necesita cargar ningún archivo de traducción si nunca usa la traducción "directa" anterior. Para utilizar la traducción HTML/JS, la sección <head> de las páginas HTML deben contener

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

(También necesitará jQuery.) Al generar la página, en lugar de lo anterior, escriba:

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

En algún lugar de la salida (tal vez hacia el final), tendrá que agregar el código de invocación:

print $tt->getJS() ;

Esto inicializará el JS requerido, reproduciendo los parámetros usados en la instancia de PHP (lenguaje de fallback, etc.). Si desea una "lista desplegable de traducción", agregue un elemento de contenedor en su código HTML

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

A continuación, dé el jQuery accessor como un parámetro a la llamada al método getJS:

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

Ver esta herramienta para un ejemplo de trabajo.