Traducción para desarrolladores
Además del propio trabajo de traducción, el código fuente de Kiwix necesita sincronizarse con Translatewiki.
Esta sincronización con Translatewiki necesita tres tipos de operaciones:
- Agregar una cadena a Kiwix y Translatewiki, es decir. la introducción de una cadena dinámica que será sustituido por la correspondiente traducción en tiempo de ejecución.
- Actualización de las cadenas de kiwix con las traducciones procedentes de Translatewiki.
- Añadir un nuevo, y completamente traducido, lenguaje Translatewiki a Kiwix .
Requerimientos
Necesitarás un Sistema Operativo GNU/Linux Sistema. Es posible hacerlo con otro sistema operativo, pero es más complicado obtener un entorno de trabajo.
Deberas tener algunas cosas en mente:
- Los archivos de traducción de kiwix están todos en el directorio "kiwix/chrome/locale".
- Hay dos tipos de archivos de traducción para traducir la interfaz de usuario (Echa un vistazo a los * .js y archivos * .xul en kiwix/chrome/content/main para entender cómo funciona):
- "Main.dtd", ofrece traducciones de todos los archivos * .xul
- "Main.properties", que proporciona traducciones para todos * .js.
- Las traducciones Translatewiki se importan por separado en el repositorio de código Kiwix una vez por semana y siempre se deben sincronizar los archivos con el código Kiwix en ambas direcciones (KW-> TW y TW -> KW).
ADVERTENCIA: Antes de que cualquier modificación del código fuente Kiwix, actualiza los repositorios de código locales con "git pull origin master" en cada uno de ellos.
Obtenga el código y empieza con Kiwix
Antes de comenzar a trabajar en la integración de nuevas cadenas en el código Kiwix, es preferible lograr compilar Kiwix:
- Copiar el código inestable
- Compilarlo
- Ejecutar yendo al subdirectorio kiwix y el lanzador de kiwix .
Nota: Si no eres capaz de compilar Kiwix, o no tienes xulrunner disponible (si es el caso, por ejemplo, en Ubuntu oniric y superior) todavía podrás iniciar kiwix y obtener una interfaz aunque la aplicación no funcionará correctamente, sin embargo, con esto es suficiente, por ejemplo, para manipular los archivos XUL. En este caso, tendrás que hacer algunos pasos adicionales como agregar una línea nueva con "maxVersion = 42.*" en kiwix/application.ini y lanzar Kiwix usando este comando en el directorio "kiwix" "firefox -app application.ini" .
Añadir una cadena para las traducciones
Encuentra una cadena para localizar
Ve a los * .xul y * .js para encontrar cadenas harcodeadas (en Inglés).
Si encuentras una que tu necesitas para encontrar un identificador de cadena (foobar por ejemplo), echa un vistazo a la cadena ya localizada para ver cómo debería ser. Lo más importante que hay que saber es que en los archivos *.xul, deberían verse como "&foobar"; y en los *.js como "getProperty('foobar')".
Traducir en el idioma Inglés master
Tendrás que hacer eso en dos lugares. En primer lugar en los archivos "kiwix/chrome/locale/en/main/" main.dtd o main.properties. De esa manera la aplicación Kiwix reconoce que mostrar si el idioma de la interfaz de usuario es el Inglés.
Archivos de actualización Translatewiki
Pero también hay que decirle a Translatewiki para agregar esta cadena en la lista de cadena que tiene que proveer (para los traductores de Translatewiki) para traducir. Para eso necesitas comprobar otra parte del repositorio de código Kiwix. Por favor, ejecuta fuera de tu directorio de código kiwix el siguiente comando local de la consola:
git pull origin master
Ahora tienes en tu ordenador las traducciones de translatewiki. Lo que necesitas solamente es actualizar el archivo "es" que es el archivo de idioma maestro para Translatewiki. Entonces deberás solamente añadir tu nueva cadena siguiendo el ejemplo de otras cadenas ya insertadas y hacer un commit de tu archivo "es".
Alguien de Translatewiki comprueba cada semana el archivo "es" para nuevas cadenas y sincronizado de Translatewiki con este archivo si es necesario.
Crea un pedazo de traducción de tu cadena para todos los idiomas
Lo último que necesitas hacer es crear un pedazo de traducción de tu nueva cadena localizada para todos los idiomas de interfaz de usuario soportados en Kiwix. Si no haces eso, Kiwix no será capaz de funcionar correctamente en un idioma distinto del Inglés.
Para ello, es necesario utilizar el script TW2PL.pl (este es un script en perl, por consiguiente, perl necesita ser instalado) como a continuación (ir en el directorio de archivos translatewiki):
./TW2KW.pl --path=/full/path/to/the/kiwix/code/directory --allLanguages=kw
Confirma los nuevos archivos de traducción kiwix
Ahora, todo el archivo de entorno local en kiwix/chrome/locale debe actualizarse y debes tener una gran cantidad de archivos (modificados) listados, escribiendo:
git status kiwix/chrome/locale
Después de comprobar que todo está bien, puede hacer commit de tus modificaciones: es decir, en el directorio kiwix/chrome/locale y *.xul y/o *.js que tu has modificado.
Actualización de traducciones de Kiwix
Otra tarea es la de actualizar idiomas kiwix ya soportados con las últimas cadenas actualizadas procedentes de Translatewiki. Lo primero que debes saber, es que en el repositorio de subversion remoto, el archivo Translatewiki (en maintenance/translatewiki) se actualiza cada dos semanas a partir de unos contribuyentes de Translatewiki. Eso significa, que sólo tendrás que actualizar tu repositorio local y actualizar y hacer un commit de los archivos de traducción de código kiwix como por ejemplo:
cd /full/path/to/the/kiwix/maintenance_tools/translatewiki
./TW2KW.pl --path=/full/path/to/the/kiwix/code/directory --allLanguages=kw
git commit /full/path/to/the/kiwix/code/directory/kiwix/chrome/locale
git push origin master
La ruta completa debe ser el directorio de moulinkiwix, no el directorio kiwix dentro.
Añadir un nuevo idioma soportado a Kiwix
Kiwix tries to add only 100% translated languages coming from Translatewiki. So it happens often that there are more languages in the "maintenance_tools/translatewiki" directory than in the "kiwix/kiwix/chrome/locale" directory. In such a case, that simply means the Translatewiki language was still not integrated in Kiwix code base. We explain now how to do that.
First of all you need to create the translation files in a new directory at "kiwix/kiwix/chrome/locale/your_language_iso_code" like this:
./TW2KW.pl --path=/full/path/to/your/kiwix/code/base/directory/ --language=your_language_iso_code
After that, you need go to the Kiwix source code directory in "kiwix/chrome" and edit with your preferred text editor the "chrome.manifest" and "chrome.manifest.prod" files. No explanation here, just do like for the already supported languages.
Next edit chrome/content/main/js/languages.js and here also add the new languages.
Now update CHANGELOG and make a notice about the addition of the new supported languages.
Add the new language directory and commit like this:
git add kiwix/chrome/locale/language_iso_code
git commit CHANGELOG kiwix/chrome/chrome.manifest kiwix/chrome/chrome.manifest.prod kiwix/chrome/locale/ kiwix/chrome/content/main/js/gui.js
git push origin master