Difference between revisions of "Translation for developers/es"

From Kiwix
Jump to navigation Jump to search
(Created page with "== Véase también == * Translation * Compilation")
 
 
(63 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{translations}}
{{translations}}
Beside the pure [[translation]] part of the work, the '''Kiwix source code needs to be synchronized with Translatewiki'''.
Además del propio trabajo de [[{{ll|translation}}|traducción]], el '''código fuente de Kiwix necesita sincronizarse con Translatewiki'''.


This synchronisation with Translatewiki needs three types of operation:
Esta sincronización con Translatewiki necesita tres tipos de operaciones:  
* ''Add a string'' to Kiwix and Translatewiki, ie. introducing a dynamic string which will be replaced by the corresponding translation at the runtime.
* ''Agregar una cadena'' a Kiwix y Translatewiki, es decir, la introducción de una cadena dinámica que se reemplazará por la correspondiente traducción en tiempo de ejecución.  
* ''Update the Kiwix strings'' with the translations coming from Translatewiki.
* ''Actualización de las cadenas de Kiwix'' con las traducciones procedentes de Translatewiki.  
* ''Add a new Translatewiki full translated language to Kiwix''.
* ''Añadir un idioma nuevo completamente traducido, desde Translatewiki a Kiwix''.


== Requirements ==
==Requerimientos==
You need a GNU/Linux Operating System. This is possible to do also that on other operation systems, but this is more complicated to get a working environment.
Necesitarás un sistema operativo GNU/Linux. Es posible hacerlo con otro sistema operativo, pero es más complicado obtener un entorno de trabajo.


You need to have a few things in mind:
Debes tener algunas cosas en mente:
* Kiwix translation files are all in the "kiwix/chrome/locale" directory.
* Todos los archivos de traducción de Kiwix están en el directorio "kiwix/chrome/locale".
* There is two types of translation files to translate the User Interface (Have a look to the *.js and *.xul file in kiwix/chrome/content/main to understand how it works):
* Hay dos tipos de archivos de traducción para traducir la interfaz de usuario (Echa un vistazo a los archivos *.js y *.xul en kiwix/chrome/content/main para entender cómo funciona):
** "main.dtd" which provides translations for all *.xul files
** "main.dtd", que proporciona traducciones de todos los archivos *.xul
** "main.properties" which provides translations for all *.js files.
** "main.properties", que proporciona traducciones para todos los archivos *.js.
* Translatewiki translations are imported separately in the Kiwix code repository on time a week and we always need to synchronize thus files with Kiwix code in both direction (KW->TW and TW -> KW).
* Las traducciones de Translatewiki se importan por separado en el repositorio de código de Kiwix una vez por semana y siempre se deben sincronizar los archivos con el código de Kiwix en ambas direcciones (KW-> TW y TW -> KW).


'''WARNING: Before any modification of Kiwix source code, update your local code repositories with "git pull origin master" in each one of them.'''
'''ADVERTENCIA: Antes de que cualquier modificación del código fuente de Kiwix, actualiza tus repositorios de código locales con "git pull origin master" en cada uno de ellos.'''


== Checkout the code and start Kiwix ==
== Obtén el código y ejecuta Kiwix ==


Before starting to work on the integration of new strings in the Kiwix code, it's preferable to [[compilation|achieve to compile Kiwix]]:
Antes de comenzar a trabajar en la integración de nuevas cadenas en el código de Kiwix, es preferible [[{{ll|compilation}}|lograr compilar Kiwix]]:
* Get the unstable code
* Consigue el código inestable
* Compile it
* Compílalo
* Run it by going to the kiwix subdirectory and launching ''kiwix''.
* En el subdirectorio kiwix, ejecúta ''kiwix''


''Remark: If you are not able to compile Kiwix, or do not have xulrunner available (is the case for example on Ubuntu Oneiric and further) you will still be able to be able to start kiwix and get an interface although the application won't work correctly, but that's enough for example to manipulate the XUL files. In this case you will have to make a few additional stuff like add "MaxVersion=42.*" as new line to kiwix/application.ini and launch Kiwix using this command in the "kiwix" directory "firefox -app application.ini"''.
''Nota: Si no puedes compilar Kiwix o no dispones de xulrunner (es el caso, por ejemplo, en Ubuntu Oneiric 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 "maxVersion = 42.*" en una línea nueva en kiwix/application.ini y ejecutar Kiwix desde el directorio "kiwix" usando el comando "firefox -app application.ini"''.


== Add a string to the translations ==
== Añadir una cadena para las traducciones ==


=== Find a string to localize ===
=== Encuentra una cadena para localizar ===


Go through the *.xul and *.js files to find hardcoded strings (in English).
Revisa los archivos * .xul y * .js en busca de cadenas "harcodeadas" (en Inglés).


If you find one you need to find a string identifier (foobar for example), have a look to the already localised string to see how it should looks like. the most important to know is that in the *.xul files, it should looks like "&foobar;" and in the *.js like "getProperty('foobar')".
Si encuentras una, debes encontrar un identificador de cadena (foobar por ejemplo), echa un vistazo a la cadena ya localizada para ver cómo debería verse. 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')".


=== Translate it in the master language English ===
=== Traducirla en el idioma original inglés ===


You will need to do that on two place. First in the "kiwix/chrome/locale/en/main/" main.dtd or main.properties files. In that way the Kiwix application knows what to display if the user interface language is English.
Tendrás que hacer eso en dos lugares. Primero en los archivos  main.dtd o main.properties de "kiwix/chrome/locale/en/main/". De esa manera la aplicación Kiwix reconoce que mostrar si el idioma de la interfaz de usuario es el inglés.


=== Update Translatewiki files ===
=== Actualización de los archivos de Translatewiki ===


But you also need to tell Translatewiki to add this string in the list of string it has to provide (for the Translatewiki translators) to translate. For that you need to checkout an other part of Kiwix code repository. Please run outside of your local kiwix code directory following console command:
Pero también hay que decirle a Translatewiki que agregue esta cadena en la lista de cadenas que tiene que proveer (a los traductores de Translatewiki) para traducir. Para eso necesitas descargar otra parte del repositorio de código de Kiwix. Ejecuta fuera de tu directorio local de código kiwix el siguiente comando en la consola:


<source lang="bash">
<source lang="bash">
Line 48: Line 48:
</source>
</source>


You have now on your computer the translatewiki translations. What you need is only to update the "en" file which is the master language file for Translatewiki. So simply add your new string following the examples of other already inserted strings and commit your "en" file.
Ahora tienes en tu ordenador las traducciones de  translatewiki. Solo debes actualizar el archivo "en" que es el archivo de idioma maestro para Translatewiki. Así que simplemente añade tu cadena nueva siguiendo el ejemplo de otras cadenas ya agregadas y haz un "commit" de tu archivo "en".


Someone from Translatewiki check each week the "en" file for new strings and synchronized Translatewiki with this file if necessary.
Alguien de Translatewiki comprueba cada semana el archivo "en" por si hay cadenas nuevas y sincroniza Translatewiki con este archivo si es necesario.


=== Create stub translation of you new string for all languages ===
=== Crea un pedazo de traducción de tu cadena para todos los idiomas ===


The last thing you need to do is creating stub translation of your new localised string for all supported user interface languages in Kiwix. If you do not that, Kiwix won't be able to work correctly in another language as English.
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.


For that purpose you need to use the script TW2PL.pl (this is a perl script, so perl needs to be installed) like following (go in the translatewiki file directory):
Para ello, es necesario utilizar el script TW2PL.pl (este es un script en perl, por consiguiente, perl debe estar instalado) como a continuación (en el directorio de archivos translatewiki):


<source lang="bash">
<source lang="bash">
Line 62: Line 62:
</source>
</source>


=== Commit the new Kiwix translation files ===
=== Confirma los nuevos archivos de traducción kiwix ===
Now, all the locale file in kiwix/chrome/locale should be update and you should have a lot of (modified) files listed by typing:
Ahora, todo el archivo de entorno local en kiwix/chrome/locale debe actualizarse y debes tener una gran cantidad de archivos (modificados) listados, escribiendo:


<source lang="bash">
<source lang="bash">
Line 69: Line 69:
</source>
</source>


After checking everything is OK, you can commit your modifications: ie. the kiwix/chrome/locale directory and the *.xul and/or *.js files you have modified.
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.


== Update Kiwix translations ==
== Actualización de las traducciones de Kiwix ==


One other task is to update already supported Kiwix languages with the last string updated coming from Translatewiki. The first thing to know about that is that in the remote subversion repository, the Translatewiki file (in maintenance/translatewiki) are each two weeks updated from a Translatewiki contributors. That means, you only need to update your local repository and update and commit the kiwix code translation files like following:
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:


<source lang="bash">
<source lang="bash">
Line 81: Line 81:
git push origin master
git push origin master
</source>
</source>
The full path should be the moulinkiwix directory, not the kiwix directory in it.
La ruta completa debe ser el directorio de moulinkiwix, no el directorio kiwix dentro de él.


== Add a new supported language to Kiwix ==
== Añadir un nuevo idioma soportado a Kiwix ==


Kiwix tries to add only 100% translated languages coming from Translatewiki. So it happens often that they are more languages in the "maintenance_tools/translatewiki" directory than in the "kiwix/kiwix/chrome/locale" directory. In such a case, that simply mean the the Translatewiki language was still not integrated in Kiwix code base. We explain now how to do that.
Kiwix intenta agregar solamente idiomas 100% traducidos procedentes de Translatewiki. Así sucede que a menudo hay más idiomas en el directorio "maintenance_tools/translatewiki" que en el directorio "kiwix/kiwix/chrome/locale". En tal caso, simplemente significa que el idioma Translatewiki todavía no se ha integrado en la base de código Kiwix. Explicamos ahora cómo hacerlo.


First of all you need to create the translation files in a new directory at "kiwix/kiwix/chrome/locale/your_language_iso_code" like following:
En primer lugar necesitas crear los archivos de traducción en un directorio nuevo en "kiwix/kiwix/chrome/locale/codigo_iso_de_tu_idioma" como por ejemplo:


<source lang="bash">
<source lang="bash">
Line 93: Line 93:
</source>
</source>


After that you need go to the kiwix source code directory in "kiwix/chrome" and edit with your prefered text editor the "chrome.manifest" and "chrome.manifest.prod" files. No explanation here, just do like for the already supported languages.
Después, necesitas ir al directorio del código fuente Kiwix en "kiwix/chrome" y editar con tu editor de texto preferido los archivos "chrome.manifest" y "chrome.manifest.prod". Ninguna explicación aquí, solamente hazlo para que los idiomas ya estén compatibles.


Next edit chrome/content/main/js/languages.js and here also add the new languages.
Luego edita chrome/content/main/js/languages.js y aquí también agrega los idiomas nuevos.


Now update CHANGELOG and make a notice about the addition of the new supported languages.
Ahora actualiza el CHANGELOG agregando una nota sobre la incorporación de los nuevos idiomas soportados.


Add the new language directory and commit like following:
Añade el nuevo directorio de idioma y haz un "commit" de esta manera:


<source lang="bash">
<source lang="bash">
Line 108: Line 108:


== Véase también ==
== Véase también ==
* [[Translation]]
* [[{{ll|Translation}}|Traducción]]
* [[Compilation]]
* [[{{ll|Compilation}}|Compilación]]


[[Category:Developer's Guide]]
[[Category:Developer's Guide|Categoría:Guía del desarrollador]]

Latest revision as of 21:24, 25 February 2015

Other languages:
Bahasa Melayu • ‎English • ‎català • ‎español • ‎français • ‎galego • ‎italiano • ‎magyar • ‎português • ‎русский • ‎日本語

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 se reemplazará 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 idioma nuevo completamente traducido, desde Translatewiki a Kiwix.

Requerimientos

Necesitarás un sistema operativo GNU/Linux. Es posible hacerlo con otro sistema operativo, pero es más complicado obtener un entorno de trabajo.

Debes tener algunas cosas en mente:

  • Todos los archivos de traducción de Kiwix están 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 archivos *.js y *.xul en kiwix/chrome/content/main para entender cómo funciona):
    • "main.dtd", que proporciona traducciones de todos los archivos *.xul
    • "main.properties", que proporciona traducciones para todos los archivos *.js.
  • Las traducciones de Translatewiki se importan por separado en el repositorio de código de Kiwix una vez por semana y siempre se deben sincronizar los archivos con el código de Kiwix en ambas direcciones (KW-> TW y TW -> KW).

ADVERTENCIA: Antes de que cualquier modificación del código fuente de Kiwix, actualiza tus repositorios de código locales con "git pull origin master" en cada uno de ellos.

Obtén el código y ejecuta Kiwix

Antes de comenzar a trabajar en la integración de nuevas cadenas en el código de Kiwix, es preferible lograr compilar Kiwix:

  • Consigue el código inestable
  • Compílalo
  • En el subdirectorio kiwix, ejecúta kiwix

Nota: Si no puedes compilar Kiwix o no dispones de xulrunner (es el caso, por ejemplo, en Ubuntu Oneiric 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 "maxVersion = 42.*" en una línea nueva en kiwix/application.ini y ejecutar Kiwix desde el directorio "kiwix" usando el comando "firefox -app application.ini".

Añadir una cadena para las traducciones

Encuentra una cadena para localizar

Revisa los archivos * .xul y * .js en busca de cadenas "harcodeadas" (en Inglés).

Si encuentras una, debes encontrar un identificador de cadena (foobar por ejemplo), echa un vistazo a la cadena ya localizada para ver cómo debería verse. 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')".

Traducirla en el idioma original inglés

Tendrás que hacer eso en dos lugares. Primero en los archivos main.dtd o main.properties de "kiwix/chrome/locale/en/main/". De esa manera la aplicación Kiwix reconoce que mostrar si el idioma de la interfaz de usuario es el inglés.

Actualización de los archivos de Translatewiki

Pero también hay que decirle a Translatewiki que agregue esta cadena en la lista de cadenas que tiene que proveer (a los traductores de Translatewiki) para traducir. Para eso necesitas descargar otra parte del repositorio de código de Kiwix. Ejecuta fuera de tu directorio local de código kiwix el siguiente comando en la consola:

git pull origin master

Ahora tienes en tu ordenador las traducciones de translatewiki. Solo debes actualizar el archivo "en" que es el archivo de idioma maestro para Translatewiki. Así que simplemente añade tu cadena nueva siguiendo el ejemplo de otras cadenas ya agregadas y haz un "commit" de tu archivo "en".

Alguien de Translatewiki comprueba cada semana el archivo "en" por si hay cadenas nuevas y sincroniza 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 debe estar instalado) como a continuación (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 las 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 de él.

Añadir un nuevo idioma soportado a Kiwix

Kiwix intenta agregar solamente idiomas 100% traducidos procedentes de Translatewiki. Así sucede que a menudo hay más idiomas en el directorio "maintenance_tools/translatewiki" que en el directorio "kiwix/kiwix/chrome/locale". En tal caso, simplemente significa que el idioma Translatewiki todavía no se ha integrado en la base de código Kiwix. Explicamos ahora cómo hacerlo.

En primer lugar necesitas crear los archivos de traducción en un directorio nuevo en "kiwix/kiwix/chrome/locale/codigo_iso_de_tu_idioma" como por ejemplo:

./TW2KW.pl --path=/full/path/to/your/kiwix/code/base/directory/ --language=your_language_iso_code

Después, necesitas ir al directorio del código fuente Kiwix en "kiwix/chrome" y editar con tu editor de texto preferido los archivos "chrome.manifest" y "chrome.manifest.prod". Ninguna explicación aquí, solamente hazlo para que los idiomas ya estén compatibles.

Luego edita chrome/content/main/js/languages.js y aquí también agrega los idiomas nuevos.

Ahora actualiza el CHANGELOG agregando una nota sobre la incorporación de los nuevos idiomas soportados.

Añade el nuevo directorio de idioma y haz un "commit" de esta manera:

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

Véase también