Extensiones de archivo |
.xlf, .xliff |
Extensión API |
symfony_xliff |
Importación |
Sí |
Exportación |
Sí |
Compatibilidad con formularios plurales |
No |
Compatibilidad con descripción |
Sí |
Opciones de formato |
enclose_in_cdata include_translation_state |
Symfony es un marco de PHP de alto rendimiento compuesto por varios componentes de PHP predefinidos. La localización para aplicaciones construidas con Symfony puede llevarse a cabo con formatos de archivo como .XLIFF, .YAML y arreglos PHP.
La diferencia entre un Symfony .XLIFF y un estándar .XLIFF radica en cómo localizan lo que cada <trans-unit>
representa. Mientras que los .XLIFF estándar (y también la mayoría de las variaciones de .XLIFF soportadas por otros marcos) utilizan el atributo id
, Symfony .XLIFF utiliza el atributo resname
como identificador.
Para asegurar que las cadenas se suban a la localización correcta, el atributo target-language
en el encabezado del archivo de un Symfony .XLIFF necesita coincidir con el nombre de la localización configurada en el proyecto relevante.
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 estado de traducciones en la localización objetivo. Cada |
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" resname="boolean_key"> <source xml:lang="de-DE">--- true </source> <target xml:lang="en-GB">--- true </target> </trans-unit> <trans-unit id="empty_string_translation" resname="empty_string_translation"> <source xml:lang="de-DE"/> <target xml:lang="en-GB"/> </trans-unit> <trans-unit id="key_with_description" resname="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>¡Soy una descripción muy importante para esta clave!</nota> </trans-unit> <trans-unit id="key_with_line-break" resname="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" resname="nested.deeply.key"> <source xml:lang="de-DE">Ich bin ein tief verschachtelter Schlüssel</source> <target xml:lang="es-ES">Soy una clave profundamente anidada.</target> </trans-unit> <trans-unit id="nested.key" resname="nested.key"> <source xml:lang="es-ES">Esta clave está anidada dentro de un espacio de nombres.</source> <target xml:lang="es-ES">Esta clave está anidada dentro de un espacio de nombres.</target> </trans-unit> <trans-unit id="null_translation" resname="null_translation"> <source xml:lang="de-DE"/> <target xml:lang="en-GB"/> </trans-unit> <trans-unit id="sample_collection" resname="sample_collection"> <source xml:lang="de-DE">--- - primer ítem - segundo ítem </source> <target xml:lang="en-GB">--- - primer ítem - segundo ítem - tercer ítem </target> </trans-unit> <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="es-ES">Solo una clave simple con un mensaje simple.</target> </trans-unit> <trans-unit id="unverified_key" resname="unverified_key"> <source xml:lang="es-ES">¡Esta traducción aún no está verificada y está esperando!</source> <target xml:lang="es-ES">Esta traducción aún no está verificada y está esperando.</target> (En algunos formatos también exportamos este estado)</target> </trans-unit> </body> </file> </xliff>