Traducir

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.

Archivo fuentemessages.xlf
<?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

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.

Resultado en alemánde/messages.xlf
<?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 checkexit code 0
$ kaeris check --source messages.xlf --langs de
✓ de: complete & placeholder-safe
✓ all locales complete & placeholder-safe

Lo que KAERIS hace con él

Ejecuta en tres pasos

  1. Instala el CLI

    Ejecuta pip install kaeris.

  2. Traducir el archivo

    Ejecute kaeris translate src/locale/messages.xlf --langs de,ja.

  3. 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.

¿Sobreviven las etiquetas en línea?

Se mantienen como marcado en bruto y se comparan con la fuente tras la traducción. En la ejecución real arriba, las etiquetas <x/> y <g> regresaron con los mismos IDs y la comprobación no reportó nada; una etiqueta perdida sería reportada.

¿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