Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Escribir código localizable

Escribir código localizable

Esta página explica las buenas prácticas y directrices al tratar con código de interfaces de usuario en relación a la localización. Está dirigido a desarrolladores de Mozilla y de sus extensiones.

Para más detalles técnicos, por favor, revisa el Tutorial de XUL:Localización.

Borrador
Esta página no está completa.

Acerca de los traductores

Un par de apuntes sobre los traductores para desarrolladores que raramente trabajan con ellos.

  • A los traductores les gustan las herramientas, no los editores de texto.
  • Las herramientas de traducción están basadas con frecuencia en pares clave/valor.
  • Al menos algunos traductores dirigen su talento a la habilidad con los idiomas y no son expertos en programación, ni siquiera en la compilación de aplicaciones.

Directrices

Por tanto, hay algunas directrices que se deberían seguir para facilitar la localización de tu código.

Elegir nombres de claves apropiados
Los nombres elegidos para las claves (sin importar que estén en un DTD o en un fichero properties) deberían ser descriptivos. Piensa en ellos como nombres de variable largos. Si la semántica de una cadena traducible cambia, entonces la clave también debería cambiar. Esto mejorará el nombre de la clave y las herramientas podrán detectar que lo que se ha cambiado es algo más que una simple corrección ortográfica o gramatical.
No asumir el uso de gramática en la cadenas compuestas
Si se dividen frases en varias claves se presupone el uso de una gramática, una estructura de frase y tales cadenas compuestas son con frecuencia muy difíciles de traducir. Cuando se necesite una cadena compuesta, es aconsejable darles a los traductores espacio para moverse. Un buen ejemplo de cadena compuesta es la configuración de páginas visitadas en Firefox: el traductor puede (implícitamente) poner el campo de texto como él crea conveniente.
No usar macros de preprocesador
El uso de #if #else #endif o #expand está profundamente desaconsejado. Existen unas pocas excepciones a esta regla, pero en general el fichero traducido debería cumplir los estándares y no debería necesitar herramientas de compilación para ser transformado. Si se quiere añadir procesamiento durante la compilación a ficheros de localización, habría que asegurarse de pedir opinión a l10n@. En la mayoría de los casos, las instrucciones de proceso también se pueden poner en el código de contenido y referenciar diferentes pares clave/valor en l10n.
Utilizar una buena estructura de directorios
Asegúrate de poner los ficheros de localización en el lugar apropiado. La inclusión de nuevos directorios superiores es un compromiso entre la propiedad del módulo en el repositorio cvsroot y la facilidad de la traducción.
Utilizar una buena estructura de directorios chrome
Para un módulo mod en particular, la ruta jar:ab-CD.jar!/locale/ab-CD/mod/foo.dtd ha sido ampliamente probada y es un buen lugar para referenciar los ficheros como chrome://mod/locale/foo.dtd. Utilizar una estructura de directorios como ésta facilita el proceso de traducción sin el código fuente y es especialmente recomendada para desarrolladores de extensiones. JAR Manifests puede hacer esto de forma fácil.

El impacto l10n

En árboles congelados, existe la regla de no aplicar cambios que supongan impacto l10n. ¿Pero qué significa esto? El impacto l10n es

  • cualquier cambio en mozilla/@mod@/locales; los traductores averiguan si hay cambios que deben replicar en su idioma haciendo consultas a bonsai, como haría cualquiera. Ningún cambio significa que el resultado de estas consultas debe estar vacío.
  • Cualquier cambio o nueva utilización de cadenas de localización; lo que sea que dispare un ciclo QA en nuestras más de 40 localizaciones es un impacto l10n.

Etiquetas y colaboradores del documento

Etiquetas: 
 Colaboradores en esta página: RickieesES, Mgjbot, Nukeador, Superruzafa, Jorolo
 Última actualización por: RickieesES,