Traduire les fichiers XLIFF 1.2
XLIFF place la source et la traduction côte à côte, avec des balises en ligne entre les deux. Déplacer ou supprimer une balise et le placeholder ou le lien dans l'application est perdu. KAERIS conserve les balises et vous indique si une balise est manquante.
KAERIS a traduit cette page et vérifié chaque ligne en la retraduisant. Un locuteur natif ne l'a pas encore revue. Original anglais
Comment un fichier XLIFF 1.2 est construit
Chaque <trans-unit> contient une <source> et une <target>. À l'intérieur du texte, <x/>, <g> et <ph> représentent des variables et du balisage. Le fichier messages.xlf d'Angular est de ce format.
<?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>
Ce qu'il faut surveiller dans les traductions XLIFF
Les balises en ligne sont les placeholders
<x id="1"/>est une variable,<g>…</g>encapsule un lien ou une emphase. Elles sont conservées comme balisage brut et comparées à la source.Un fichier, deux langues
L'attribut
target-languageet chaque<target>doivent correspondre. La vérification lit le catalogue seul, donc un fichier suffit.Version 1.2 uniquement
XLIFF 2.0 a une structure différente (
<unit><segment>). Il est refusé avec un message au lieu d'être partiellement lu.Ne pas traduire les attributs de balise
Les attributs
ctypeetidsont structurels, pas textuels.
Une vraie exécution : traduite en allemand et vérifiée
Une exécution réelle, le 27 octobre 2026, rien modifié à la main : kaeris translate messages.xlf --langs de avec kaeris 0.2.35, 1,9 secondes, modèle google/gemini-2.5-flash-lite, le défaut du niveau gratuit. Ci-dessous, le fichier allemand qu'il a écrit et ce que kaeris check en dit.
<?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
Ce que KAERIS en fait
Balises conservées
Les balises en ligne sont conservées comme XML brut et une balise manquante est signalée par la vérification gratuite.
États écrits
Chaque
<target>traduit est écrit avecstate="translated".Vérification gratuite pour ce format
La vérification gratuite sur la page /check lit ce format et s'exécute sans clé ni compte. La commande terminal
kaeris checkla lit aussi : elle prend les 13 formats depuis kaeris 0.2.35, avec les mêmes règles et rien n'est envoyé ailleurs.
Exécutez-le en trois étapes
Installer le CLI
Exécutez
pip install kaeris.Traduire le fichier
Exécutez
kaeris translate src/locale/messages.xlf --langs de,ja.Vérifier le résultat
Ouvrez la page de vérification gratuite et chargez le fichier traduit. Un catalogue avec la source et la cible dans un seul fichier est vérifié seul.
pip install kaeris kaeris translate src/locale/messages.xlf --langs de,ja --verify
Questions
XLIFF 2.0 est-il pris en charge ?
Non. La version 1.2 est prise en charge ; un fichier 2.0 est refusé avec un message l'indiquant.
Est-ce gratuit ?
Oui, sans compte : 10 000 caractères par fichier et jusqu'à 8 langues par exécution. Une clé API gratuite augmente la limite de fichiers à 50 000 caractères. La licence à vie est de 79 $ une fois, sur votre propre clé OpenRouter ; les plans mensuels commencent à 19 $. Tarifs
Puis-je l'exécuter depuis le terminal ou en CI ?
Oui. pip install kaeris, puis kaeris translate src/locale/messages.xlf --langs de,ja. Voir aussi Angular. Le GitHub Action exécute la même traduction dans une pull request. Docs CLI · GitHub Action
Continuer
Référence CLI · Référence Check · Traduire dans le navigateur · Vérification gratuite · Convertir les formats · Localisation fictive
Autres formats : JSON · YAML · .po · ARB · .strings · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · XML Android