Extensiones de archivo |
.xlf, .xliff |
Extensión API |
xlf |
Importación |
Sí |
Exportación |
Sí |
Compatibilidad con formularios plurales |
Sí |
Compatibilidad con descripción |
Sí |
Opciones de formato |
enclose_in_cdata include_translation_state indent_size indent_style ignore_source_translations ignore_target_translations export_key_id_as_resname export_key_name_hash_as_extradata override_file_language strip_placeholder_delimiters delimit_placeholders |
El formato de archivo más utilizado en la industria de la traducción. Se puede ver como el espejo del archivo fuente que descompone el contenido fuente en varios segmentos almacenados en etiquetas (por ejemplo, <trans-unit>
, <seg-source>
).
XLIFF está basado en XML y sujeto a las convenciones básicas de XML como validez y estar bien formado. Siempre complete una verificación de cordura antes de la traducción cambiando la extensión del archivo de .xliff (.xlf) a .xml y abriéndolo en un navegador web. Si el archivo es válido, se presenta una estructura de documento bien organizada y si no, será inrenderizable o mostrará un mensaje de error.
XLIFF fue actualizado a XLIFF 2.0. Es similar al XLIFF más utilizado, pero es un formato de archivo diferente, generalmente incompatible con XLIFF.
Xcode puede empaquetar cadenas localizables en el formato XLIFF estándar de la industria para ser enviadas para localización con Phrase.
Opciones de formato
Identificador |
enclose_in_cdata |
Tipo |
Booleano |
Carga |
No |
Descarga |
Sí |
Por defecto |
false |
Descripción |
Encierra traducciones que contienen etiquetas html en CDATA. Si está deshabilitado, las entidades HTML no soportadas se reemplazan con sus valores decodificados. Por ejemplo:
|
Identificador |
include_translation_state |
Tipo |
Booleano |
Carga |
No |
Descarga |
Sí |
Por defecto |
false |
Descripción |
Incluir el estado de las traducciones en la localización objetivo. Cada |
Identificador |
indent_size |
Tipo |
entero |
Carga |
No |
Descarga |
Sí |
Por defecto |
4 |
Descripción |
Especifica el número de caracteres de sangría |
Identificador |
indent_style |
Tipo |
cadena |
Carga |
No |
Descarga |
Sí |
Por defecto |
espacio |
Descripción |
Especifica el carácter de sangría. Los valores permitidos son |
Identificador |
ignore_source_translations |
Tipo |
Booleano |
Carga |
Sí |
Descarga |
No |
Por defecto |
false |
Descripción |
Ignora las traducciones de origen en el archivo durante la carga (para evitar actualizaciones accidentales del idioma de origen) |
Identificador |
ignore_target_translations |
Tipo |
Booleano |
Carga |
Sí |
Descarga |
No |
Por defecto |
false |
Descripción |
Ignora las traducciones de destino en el archivo durante la carga (para evitar actualizaciones accidentales del idioma de origen) |
Identificador |
export_key_id_as_resname |
Tipo |
Booleano |
Carga |
No |
Descarga |
Sí |
Por defecto |
false |
Descripción |
Exporta el ID de la clave como el atributo resname. |
Identificador |
export_key_name_hash_as_extradata |
Tipo |
Booleano |
Carga |
No |
Descarga |
Sí |
Por defecto |
false |
Descripción |
Exporta el hash del nombre de la clave como el atributo extradata. |
Identificador |
override_file_language |
Tipo |
Booleano |
Carga |
Sí |
Descarga |
No |
Por defecto |
false |
Descripción |
Este formato de archivo típicamente contiene información del idioma en el propio archivo. Usa esta opción para anular el idioma con uno que especifiques. |
Identificador |
strip_placeholder_delimiters |
Tipo |
Booleano |
Carga |
Sí |
Descarga |
No |
Por defecto |
false |
Descripción |
Elimina las etiquetas |
Identificador |
delimit_placeholders |
Tipo |
Booleano |
Carga |
No |
Descarga |
Sí |
Por defecto |
false |
Descripción |
Envuelve los marcadores de posición de traducción en etiquetas |
Ejemplo de código
<?xml version="1.0" encoding="UTF-8"?> <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2"> <file original="global" datatype="plaintext" source-language="de-DE" target-language="en-GB"> <body> <trans-unit id="boolean_key"> <source xml:lang="de-DE">--- true </source> <target xml:lang="en-GB">--- true </target> </trans-unit> <trans-unit id="empty_string_translation"> <source xml:lang="de-DE"/> <target xml:lang="en-GB"/> </trans-unit> <trans-unit id="key_with_description"> <fuente xml:lang="de-DE">¡Mira esto! ¡Esta clave tiene una descripción!</fuente> <meta xml:lang="es-ES">¡Échale un vistazo! This key has a description! (Al menos en algunos formatos)</meta> <nota>¡Esta es la increíble descripción para esta clave!</nota> </trans-unit> <trans-unit id="key_with_line-break"> <fuente xml:lang="de-DE">Esta traducción tiene einen Zeilenumbruch.</source> <meta xml:lang="es-ES">Esta traducción contiene un salto de línea.</meta> </trans-unit> <trans-unit id="nested.deeply.key"> <source xml:lang="de-DE">Ich bin ein tief verschachtelter Schlüssel.</source> <meta xml:lang="es-ES">Soy una clave profundamente anidada.</meta> </trans-unit> <trans-unit id="nested.key"> <source xml:lang="de-DE">Esta clave está anidada dentro de un espacio de nombres.</source> <target xml:lang="en-GB">Esta clave está anidada dentro de un espacio de nombres.</target> </trans-unit> <trans-unit id="null_translation"> <source xml:lang="de-DE"/> <target xml:lang="en-GB"/> </trans-unit> <trans-unit id="sample_collection"> <source xml:lang="de-DE">--- - primer elemento - segundo elemento </source> <target xml:lang="en-GB">--- - primer elemento - segundo elemento - tercer elemento </target> </trans-unit> <trans-unit id="simple_key"> <source xml:lang="de-DE">Clave simple, mensaje simple, tan simple</source> <target xml:lang="en-GB">Clave simple, mensaje simple, tan simple.</target> </trans-unit> <trans-unit id="unverified_key"> <source xml:lang="de-DE">Esta traducción aún no está verificada y está esperando por ello!</source> <target xml:lang="en-GB">Esta traducción aún no está verificada y está esperando por ello. (En algunos formatos también exportamos este estado)</target> </trans-unit> </body> </file> </xliff>
Formularios plurales
Las claves pluralizadas se exportan utilizando la siguiente sintaxis:
<trans-unit id="plural_key"> <source xml:lang="es">{"one":"una silla","other":"{nrOfChairs} sillas","zero":"ninguna silla"}</source> <target xml:lang="es">{"one":"una meta","other":"{nrOfChairs} metas","zero":"ninguna meta"}</target> </trans-unit>