---
title: "Comment traduire les fichiers de langue de votre application avec l’IA"
description: "JSON, YAML, XLIFF, PO, Android, iOS, Flutter et bien plus. Traduisez les fichiers de langue de votre application avec l’IA, depuis la ligne de commande, votre agent ou l’application."
date: 2026-10-04
language: fr
canonical: https://ai-glot.com/fr/blog/how-to-translate-app-language-files-with-ai
source: AI Glot blog
---
**Les fichiers de langue d’une application, c’est une seule tâche et treize extensions de fichier.** Vous avez un fichier JSON, un `strings.xml`, un fichier PO ou un String Catalog, et vous voulez retrouver les mêmes chaînes dans cinq langues supplémentaires sans casser la compilation.

Le format change. Pas la tâche : conserver les clés et les espaces réservés, traduire les valeurs, puis recommencer à la prochaine version.

## Quelle option choisir ?

| | Idéal pour | Limites |
|---|---|---|
| **AI Glot** | Tous les formats ci-dessous, plusieurs langues en une seule tâche, un glossaire à respecter, chaque version | Inutile pour dix chaînes |
| **Une plateforme de gestion de traduction** (Crowdin, Lokalise, Phrase) | Une équipe avec un processus continu, des réviseurs et une connexion au dépôt | Vous devez créer un projet et connecter votre dépôt avant de traiter la première chaîne |
| **DeepL** | [Fichiers XLIFF jusqu’à 10 MB](https://developers.deepl.com/docs/best-practices/document-translations) | Accepte le XLIFF, mais pas les autres formats présentés ici. Son glossaire remplace les termes sans comprendre pourquoi ils sont imposés |
| **ChatGPT, Claude ou un autre assistant** | Quelques chaînes | Vous rédigez le prompt et devez ajouter votre glossaire à chaque conversation. Un long fichier est généré lentement, jeton par jeton, et consomme votre quota. Chaque exécution risque de modifier une clé ou d’altérer un espace réservé |
| **Un freelance ou une agence** | La page App Store, votre parcours d’accueil | Lent, facturé au mot, et vous devez quand même préparer les fichiers |

**Confiez à une personne les cinq chaînes qui vendent votre application** : la fiche de la boutique et le premier écran. Faites traiter les milliers de chaînes qui se trouvent derrière par un moteur de traduction.

## Choisissez votre fichier

Chaque format a sa propre page, avec un outil gratuit et les informations détaillées. Voici ce qu’il faut savoir pour chacun.

| Fichier | Emplacement | À savoir |
|---|---|---|
| [**JSON**](/fr/file-formats/json-translation) | `locales/en.json` | Les clés sont renvoyées dans le même ordre. Les espaces réservés comme `{count}` sont protégés par vos instructions |
| [**ARB** (Flutter)](/fr/file-formats/arb-translation) | `lib/l10n/app_en.arb` | Les entrées de métadonnées `@` sont recopiées. Définissez `@@locale` sur la langue cible |
| [**YAML**](/fr/file-formats/yaml-translation) | `config/locales/en.yml` | Les espaces réservés de type Rails `%{name}` sont détectés. Les commentaires sont supprimés lors de la réécriture du fichier |
| [**TOML**](/fr/file-formats/toml-translation) | `i18n/en.toml` (Hugo) | Seules les valeurs textuelles changent. En principe, les commentaires sont conservés |
| [**XLIFF**](/fr/file-formats/xliff-translation) | Exports de vos outils | Versions 1.2 et 2.0. Les balises intégrées sont reconstituées à partir de la source |
| [**PO et POT**](/fr/file-formats/po-translation) | `locale/fr/LC_MESSAGES/app.po` | Les entrées au pluriel reçoivent les formes de la langue cible, et l’en-tête `Plural-Forms` est réécrit |
| [**Qt Linguist**](/fr/file-formats/qt-translation) | `app_fr.ts` | Les messages au pluriel (numerus) ne sont pas encore traduits. Exécutez `lrelease` ensuite |
| [**String Catalog**](/fr/file-formats/xcstrings-translation) | `Localizable.xcstrings` | Toutes les langues sont réunies dans un seul fichier. Les substitutions et les variantes d’appareil restent intactes |
| [**iOS .strings**](/fr/file-formats/ios-strings-translation) | `fr.lproj/Localizable.strings` | Le fichier est renvoyé en UTF-8, avec les blocs de commentaires conservés. Les pluriels `.stringsdict` sont également pris en charge |
| [**Android XML**](/fr/file-formats/android-xml-translation) | `res/values-fr/strings.xml` | Les pluriels et les tableaux de chaînes sont pris en charge. `translatable="false"` est respecté |
| [**RESX et RESW**](/fr/file-formats/resx-translation) | `Resources.fr.resx` | Vous obtenez un fichier par langue. Les commentaires destinés aux développeurs restent en anglais |
| [**Java .properties**](/fr/file-formats/properties-translation) | `messages_fr.properties` | UTF-8 uniquement. Si une valeur se poursuit sur la ligne suivante, placez-la d’abord sur une seule ligne |

Les formats ne gèrent pas tous les langues de la même façon. Un **String Catalog** regroupe toutes les langues dans un seul fichier. La plupart des autres formats, notamment JSON, Android et iOS, contiennent **une langue par fichier** : chaque langue cible a donc son propre fichier.

## À quoi ressemble un fichier traduit

Seules les valeurs changent.

*Illustration: Un fichier de langue avant et après traduction. Les clés et les espaces réservés restent tels quels ; seules les valeurs sont traduites.*

## Le parcours d’un fichier

*Illustration: Les cinq étapes de la traduction d’un fichier de langue. Tout est gratuit jusqu’à la validation : si le plan est incorrect, vous pouvez le corriger sans frais.*

Vous ne dépensez rien avant la quatrième étape, et corriger un plan inadapté ne vous coûte rien.

## Comment procéder, étape par étape

**1. Testez gratuitement un fichier.** Chaque [page de format](/fr/file-formats) propose un outil gratuit, sans création de compte.

**2. Importez le fichier** dans [l’application](https://app.ai-glot.com/signup), ou envoyez-le depuis la ligne de commande, comme expliqué plus bas.

**3. Indiquez en une phrase ce dont vous avez besoin.**

```
Translate this file into French.
Skip every key that starts with "internal.".
```

*Illustration: Décrivez la tâche en anglais simple. AI Glot la transforme en un plan que vous pouvez lire et corriger avant l'exécution.*

Cette phrase détermine ce qui sera traduit dans l’ensemble du fichier. Les règles de formulation, comme « conservez chaque `{placeholder}` exactement tel quel » ou « utilisez le registre informel », sont à saisir dans le deuxième champ au moment de la validation, car elles s’appliquent à chaque chaîne au moment de sa rédaction.

**4. Ajoutez un glossaire** avec le nom du produit, les noms des fonctionnalités et les mots que votre application utilise toujours de la même manière. [Comment en créer un](/fr/blog/build-translation-glossary-brand).

*Illustration: Un glossaire fixe les termes qui ne doivent pas varier et applique la même décision à chaque fichier.*

**5. Choisissez un niveau de qualité.**

*Illustration: Deux niveaux de qualité, choisissables par fichier. Le mode Lite traite environ trois fois plus de mots pour le même crédit.*

**Lite** permet de traduire environ trois fois plus de mots par crédit et va plus vite : idéal pour les nombreux paramètres et textes d’aide secondaires. **Standard** convient aux chaînes que les utilisateurs lisent en premier. Un crédit correspond à un mot en Standard.

**6. Validez et téléchargez.**

*Illustration: Un seul fichier est retourné, dans son format d'origine.*

## Un fichier, plusieurs langues

*Illustration: Un fichier source donne un fichier traduit par langue, tous avec les mêmes clés et le même glossaire.*

Les noms de fichiers ne sont qu’un exemple. Pour traiter tout un dossier de fichiers de langue, regroupez-les dans un ZIP : jusqu’à 200 fichiers et 20 MB sont traités en une seule tâche.

## Trois façons de lancer le traitement

*Illustration: Trois façons de traduire vos fichiers de langue. Le résultat est toujours le même ensemble de fichiers traduits.*

**La ligne de commande** est la méthode que les développeurs gardent. Les mêmes quatre étapes, dans un script :

```bash
# 1. Create the job. Free. Returns a plan and an id.
id=$(aiglot batches create locales/en.json \
      --instruction "Translate into French. Skip every key that starts with internal." \
      --json | jq -r '.data.id')

# 2. Read the plan for free, then commit.
aiglot batches get "$id" --json | jq '.data.plan'
aiglot batches approve "$id" --quality lite \
  --instructions "Keep every {placeholder} exactly as written."

# 3. When the status is completed, bring the file back.
aiglot batches download "$id" --output locales/fr.json
```

**Avec votre agent IA :** connectez AI Glot en tant que [serveur MCP](https://ai-glot.com/docs/mcp/overview). L’agent peut lire votre dépôt, proposer les termes de glossaire qu’il y trouve, les ajouter à votre espace de travail, lancer le traitement et remettre les fichiers à leur place.

**Dans l’application :** importez, cliquez, téléchargez. Idéal pour un traitement ponctuel.

Pour intégrer l’API, consultez la [documentation de l’API](https://ai-glot.com/docs/api/overview).

## Vérifiez le résultat

Créez l’application dans une langue traduite et ouvrez les trois écrans qui contiennent les chaînes les plus longues. Lancez ensuite votre vérification habituelle avec le linter ou un outil de détection des clés manquantes : une clé modifiée apparaît comme une chaîne manquante. Les textes traduits sont souvent plus longs qu’en anglais ; vérifiez donc que les boutons et les libellés ne débordent pas.

La page [Tarifs](/fr/pricing) indique le coût pour un volume plus important. Un [compte gratuit](https://app.ai-glot.com/signup) inclut des crédits pour traiter un vrai fichier.

---

*Les limites indiquées ici sont celles en vigueur au moment de la rédaction : 200 fichiers et 20 MB par ZIP. La limite de DeepL provient de sa propre documentation. Les noms de fichiers et le nombre de chaînes dans les schémas sont des exemples. Votre forfait indique les chiffres réels pour vos propres fichiers, et sa consultation est gratuite.*