Los archivos de localización son archivos de texto que pueden abrirse y editarse en un editor de texto como Notepad o TextEdit, o en una de las innumerables Herramientas de edición de texto mejoradas que usan los programadores. Estos archivos generalmente siguen el principio de clave-valor. Esto significa que contienen una lista de fragmentos de texto (cadena) que están asociados con identificadores únicos (clave). Cada cadena es, por tanto, un valor de una clave (este sencillo ejemplo es el formato de los archivos de localización usados en la programación Java):
-
key1 = value1
-
key2 = value2
-
...
-
keyN = valueN
Crear de archivos de localización
Los archivos de localización son archivos de texto plano con una estructura sencilla. Pueden crearse manualmente, pero normalmente se generan de forma automática mediante utilidades o scripts de internacionalización disponibles para diferentes entornos de desarrollo. La Crear automática de archivos de localización garantiza que las estructuras de los archivos sean válidas.
Para Crear un archivo de localización, todos los fragmentos de texto visualizables se reemplazan por claves únicas en los archivos de código. Las cadenas de texto se añaden entonces al archivo de localización con sus claves.
Usar de archivos de localización
En lugar de las cadenas de texto reales, el código ahora solo contiene claves. Cuando el software genera una vista para el usuario, estas claves se usan para buscar las Strings asociadas en el archivo de localización.
Si una aplicación tiene una configuración para ser usada en inglés y español, todo el texto en inglés puede mantenerse en un archivo llamado English.txt y es la ubicación de texto predeterminada. Si un usuario no Seleccionar un idioma, todo el texto se extraerá de este archivo para generar cualquier visualización. Si el usuario Seleccionar español, el software se redirige a Spanish.txt. Se pueden utilizar muchos idiomas con un sistema como este.
La ventaja es que la elección del idioma para la visualización no afecta al código. Si el software necesita mostrar un botón de inicio de sesión, puede requerir la cadena asociada con la clave login_button y solo necesita saber en qué archivo buscar para recuperar la cadena adecuada para el idioma dado.
Gestión de cadena
Como plataforma de traducción basada en clave, Phrase admite muchos tipos diferentes de archivos de recursos. Después de que los archivos se cargan, se extraen las claves keys y sus valores de cadena asociados. Las claves y las Strings se presentan entonces al traductor en un formato estandarizado. Los traductores se centran en su tarea sin tener que preocuparse por el formato exacto del archivo de localización. Pueden inspeccionar las claves, porque la clave en sí puede proporcionar un contexto crucial y guiarlos hacia las elecciones de palabras correctas.
Cuando todas las Strings están traducidas, los archivos se descargan. En el proceso, se crea el formato de archivo de localización necesario que coincide con el archivo fuente original.
Formatos de archivo de recursos file formats
Se admiten cuatro tipos generales de recursos, todos ellos esencialmente basados en texto y que pueden abrirse e inspeccionarse en un editor de texto.
Hojas de cálculo
Se admiten archivos .XLSX y .CSV. Estos formatos son equivalentes para fines de localización y contienen filas de pares clave-valor. Las claves están en una fila, mientras que los valores correspondientes están en una fila adyacente. Qué columna exacta se utiliza para qué propósito depende de la aplicación, y un localizador necesita configurar Phrase para interpretar las columnas correctamente. Los archivos .CSV de Zendesk tienen una estructura fija, por lo que este tipo de archivo no requiere ajustes adicionales:
"Título","Idioma predeterminado","Texto predeterminado","Texto en inglés","Estado de la variante" "simple_key","German","Einfacher Schlüssel.","Simple key.","Current"
XML
XML es un formato que ofrece meta información en forma de <etiquetas>. La estructura de etiqueta se usar para determinar dónde están las claves y sus valores correspondientes, como se muestra aquí desde un archivo XML de Android:
<string name="simple_key">Just a key with a message.</string>
Dos formatos de traducción XML estándar son .TMX y .XLIFF. Estos no solo contienen claves y valores en un idioma, sino que también asocian pares de valores de un idioma fuente con los valores correspondientes de un idioma meta. Dichos archivos son típicamente bilingües, como muestra esta unidad de traducción en un archivo Xliff de Symfony:
<trans-unit id="simple_key" resname="simple_key"> <source xml:lang="de-DE">Nur ein einfacher Schlüssel mit einer einfachen Nachricht.</source> <target xml:lang="en-GB">Just a simple key with a simple message.</target> </trans-unit>
Los programas QT usar archivos de recursos con una estructura que es muy similar a estos formatos estandarizados, pero por razones históricas tienen un diseño diferente.
Listas de clave-valor simples
Existen archivos de recursos que contienen solo listados simples de claves y valores, como muestra este fragmento de un YAML de Ruby on Rails:
simple_key: Just a simple key with a simple message.
Muchos lenguajes de programación o plataformas diferentes usar tales formatos con Menor diferencias de diseño.
Dado que estos son archivos monolingües, un programa de localización necesita mantener versiones paralelas de tales archivos: una para el idioma fuente y otras para los idiomas meta.
Gettext produce archivos de clave-valor que contienen información adicional, como comentarios descriptivos o variantes plurales:
# ¡Esta es la increíble descripción para esta clave! msgid "key_with_description" msgid_plural "" msgstr[0] "¡Échale un vistazo!" This key has a description! (At least in some formats)" msgstr[1] "¡Échale un vistazo!" ¡Esta clave tiene %s descripciones! (At least in some formats)"
Existen formatos competidores con funcionalidad y diseños similares que varían de formas relativamente Menor.
Matrices asociativas
Mientras que otros formatos requieren código Personalizar (analizadores) para leerlos, algunos formatos son más fáciles para los desarrolladores y localizadores. Los formatos basados en .JSON (JavaScript) y matrices .PHP se pueden leer y asignar directamente a estructuras de código comunes (matrices) que son fáciles de manipular. Las matrices pueden ser complejas y diferentes aplicaciones generan estructuras de matriz Personalizar.
Por ejemplo, go-i18n JSON se refiere a las claves como ID:
{
"id": "simple_key",
"translation": "simple key, simple message, so simple."
},
Angular utiliza las claves mismas como clave en sus matrices:
"simple_key": "I am a simple key with a simple message.".
Dado que existen estas diferencias Menor pero cruciales, se admiten las estructuras de matriz .JSON y .PHP ampliamente utilizadas.