Traducir archivos XLIFF 1.2
XLIFF pone la fuente y la traducción lado a lado, con etiquetas en línea entre ellas. Mover o eliminar una etiqueta hace que el marcador de posición o enlace en la app desaparezca. KAERIS conserva las etiquetas y te avisa si falta alguna.
KAERIS ha traducido esta página y revisado cada línea traduciéndola de vuelta. Un hablante nativo aún no la ha revisado. Original en inglés
Cómo se construye un archivo XLIFF 1.2
Cada <trans-unit> contiene un <source> y un <target>. Dentro del texto, <x/>, <g> y <ph> representan variables y marcado. messages.xlf de Angular usa este formato.
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="de" datatype="plaintext" original="app">
<body>
<trans-unit id="welcome">
<source>Welcome back, <x id="1" ctype="x-name"/>!</source>
</trans-unit>
<trans-unit id="terms">
<source>I accept the <g id="2" ctype="x-link">terms</g>.</source>
</trans-unit>
</body>
</file>
</xliff>
Qué tener en cuenta en las traducciones XLIFF
Las etiquetas en línea son los marcadores de posición
<x id="1"/>es una variable,<g>…</g>envuelve un enlace o énfasis. Se mantienen como marcado bruto y se comparan con la fuente.Un archivo, dos idiomas
El atributo
target-languagey cada<target>deben coincidir. La comprobación lee solo el catálogo, por lo que un archivo es suficiente.Solo versión 1.2
XLIFF 2.0 tiene una estructura diferente (
<unit><segment>). Se rechaza con un mensaje en lugar de leerse parcialmente.No traduzca los atributos de las etiquetas
Los atributos
ctypeeidson estructura, no texto.
Una ejecución real: traducido al alemán y verificado
Una ejecución real, 27 de octubre de 2026, nada editado a mano: kaeris translate messages.xlf --langs de con kaeris 0.2.35, 1.9 segundos, modelo google/gemini-2.5-flash-lite, el predeterminado de nivel gratuito. Abajo, el archivo alemán que escribió y lo que kaeris check dice sobre él.
<?xml version="1.0" encoding="utf-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file original="app" source-language="en" target-language="de" datatype="plaintext">
<body>
<trans-unit id="welcome">
<source>Welcome back, <x id="1" ctype="x-name" />!</source>
<target state="translated">Willkommen zurück, <x id="1" ctype="x-name" />!</target>
</trans-unit>
<trans-unit id="terms">
<source>I accept the <g id="2" ctype="x-link">terms</g>.</source>
<target state="translated">Ich akzeptiere die <g id="2" ctype="x-link">Nutzungsbedingungen</g>.</target>
</trans-unit>
</body>
</file>
</xliff>
$ kaeris check --source messages.xlf --langs de ✓ de: complete & placeholder-safe ✓ all locales complete & placeholder-safe
Lo que KAERIS hace con él
Etiquetas conservadas
Las etiquetas en línea se mantienen como XML bruto y la comprobación gratuita reporta si falta alguna.
Estados escritos
Cada
<target>traducido se escribe constate="translated".Chequeo gratuito para este formato
El chequeo gratuito en /check lee este formato y funciona sin clave ni cuenta. El comando de terminal
kaeris checktambién lo lee: soporta los 13 formatos desde kaeris 0.2.35, con las mismas reglas y sin enviar nada a ningún lado.
Ejecuta en tres pasos
Instala el CLI
Ejecuta
pip install kaeris.Traducir el archivo
Ejecute
kaeris translate src/locale/messages.xlf --langs de,ja.Comprobar el resultado
Abra la página de comprobación gratuita y suba el archivo traducido. Un catálogo con fuente y destino en un solo archivo se comprueba solo.
pip install kaeris kaeris translate src/locale/messages.xlf --langs de,ja --verify
Preguntas
¿Se admite XLIFF 2.0?
No. Se soporta la versión 1.2; un archivo 2.0 es rechazado con un mensaje que lo indica.
¿Es gratis?
Sí, sin cuenta: 10.000 caracteres por archivo y hasta 8 idiomas por ejecución. Una clave API gratuita eleva el límite de archivos a 50.000 caracteres. La licencia vitalicia cuesta $79 una vez, con tu propia clave OpenRouter; los planes mensuales empiezan en $19. Precios
¿Puedo ejecutarlo desde la terminal o en CI?
Sí. pip install kaeris, luego kaeris translate src/locale/messages.xlf --langs de,ja. Véase también Angular. El GitHub Action ejecuta la misma traducción en un pull request. Documentación CLI · GitHub Action
Seguir adelante
Referencia CLI · Referencia de verificación · Traducir en el navegador · Verificación gratuita · Convertir formatos · Pseudo-localización
Otros formatos: JSON · YAML · .po · ARB · .strings · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · Android XML