Traduzir

Traduzir arquivos XLIFF 1.2

XLIFF coloca a origem e a tradução lado a lado, com tags inline entre elas. Mover ou soltar uma tag faz com que o placeholder ou link no aplicativo desapareça. O KAERIS mantém as tags e informa se uma está faltando.

KAERIS traduziu esta página e verificou cada linha traduzindo-a de volta. Um falante nativo ainda não revisou. Original em inglês

Como um arquivo XLIFF 1.2 é construído

Cada <trans-unit> contém uma <source> e um <target>. Dentro do texto, <x/>, <g> e <ph> representam variáveis e marcação. O messages.xlf do Angular é este formato.

Arquivo de origemmessages.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>

O que observar nas traduções XLIFF

Uma execução real: traduzido para Alemão e verificado

Uma execução real, 27 de outubro de 2026, nada editado manualmente: kaeris translate messages.xlf --langs de com kaeris 0.2.35, 1,9 segundos, modelo google/gemini-2.5-flash-lite, o padrão do nível gratuito. Abaixo, o arquivo alemão que ele escreveu e o que kaeris check diz sobre ele.

Resultado em Alemãode/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

O que o KAERIS faz com isso

Execute em três etapas

  1. Instale o CLI

    Execute pip install kaeris.

  2. Traduzir o arquivo

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

  3. Verificar o resultado

    Abra a página de verificação gratuita e faça o upload do arquivo traduzido. Um catálogo com origem e destino em um único arquivo é verificado isoladamente.

pip install kaeris
kaeris translate src/locale/messages.xlf --langs de,ja --verify

Perguntas

O XLIFF 2.0 é suportado?

Não. A versão 1.2 é suportada; um arquivo 2.0 é recusado com uma mensagem que informa isso.

As tags inline sobreviverão?

Elas são mantidas como marcação bruta e comparadas com a origem após a tradução. Na execução real acima, as tags <x/> e <g> voltaram com os mesmos IDs e a verificação não teve nada a relatar; uma tag perdida seria relatada.

É gratuito?

Sim, sem conta: 10.000 caracteres por arquivo e até 8 idiomas por execução. Uma chave API gratuita eleva o limite para 50.000 caracteres. A licença vitalícia custa $79 uma vez, usando sua própria chave OpenRouter; planos mensais começam em $19. Preços

Posso rodar pelo terminal ou em CI?

Sim. pip install kaeris, depois kaeris translate src/locale/messages.xlf --langs de,ja. Veja também Angular. O GitHub Action executa a mesma tradução em um pull request. Docs da CLI · GitHub Action

Continue

Referência do CLI · Referência de verificação · Traduzir no navegador · Verificação gratuita · Converter formatos · Pseudo-localização

Outros formatos: JSON · YAML · .po · ARB · .strings · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · Android XML