Un catalogue de chaînes Xcode est un fichier unique qui contient toutes les langues de votre app. Pour ajouter l’allemand, le japonais et le portugais, vous remplissez ce fichier, puis Xcode s’occupe du reste.
Ce guide porte sur Localizable.xcstrings et sur la particularité qui le distingue d’un travail de traduction classique : les pluriels. Pour les autres formats d’app, consultez comment traduire les fichiers de langue de votre app.
Qu’est-ce qu’un catalogue de chaînes ?
Les catalogues de chaînes sont apparus avec Xcode 15. La session WWDC23 d’Apple les présente comme un moyen de gérer toutes vos chaînes au même endroit. Après chaque compilation, Xcode repère les chaînes à localiser et les ajoute au catalogue. Vous pouvez ensuite ajouter une langue avec le bouton plus.
En coulisses, il s’agit d’un fichier JSON nommé Localizable.xcstrings par défaut. Chaque clé contient ses traductions dans toutes les langues, ainsi que le commentaire destiné aux traducteurs.
Quelle option choisir ?
| Idéal pour | Limites | |
|---|---|---|
| AI Glot | Plusieurs langues dans une seule tâche, pluriels traités pour chaque langue, glossaire à respecter | Inutile pour dix chaînes |
| Export Localizations de Xcode | Un catalogue de localisation par langue, à envoyer à un traducteur, puis Import Localizations | Prépare les fichiers, mais ne les traduit pas : vous avez toujours besoin d’un traducteur ou d’un outil |
| Une plateforme de gestion de traduction (Crowdin, Lokalise, Phrase) | Une équipe avec des réviseurs et une connexion à un dépôt | Vous devez d’abord configurer un projet et connecter votre dépôt |
| DeepL | Les fichiers XLIFF, qui figurent dans sa liste | .xcstrings ne figure pas dans cette liste |
| ChatGPT, Claude ou un autre assistant | Quelques chaînes | Un catalogue est un JSON imbriqué avec des variantes de pluriel. Un long fichier prend du temps, consomme votre quota et risque de contenir une clé cassée ou une forme de pluriel manquante |
| Un freelance ou une agence | Votre page App Store et le parcours d’intégration | Lent, facturé au mot |
Confiez à une personne les cinq chaînes qui vendent votre app. Faites traiter les milliers d’autres par un moteur.
Pourquoi AI Glot convient aux catalogues de chaînes
- Les traductions sont placées sous la bonne clé et dans la bonne langue. Le catalogue reste un seul fichier.
- Les pluriels sont traités pour chaque langue. Le russe a besoin de quatre formes et l’arabe de six, chaque forme étant associée à sa catégorie.
- Les spécificateurs de format sont conservés.
%@,%det%1$@restent dans la chaîne traduite. - Les commentaires destinés aux traducteurs restent associés à leurs clés.
- Vous pouvez combler uniquement les lacunes. Les chaînes révisées restent inchangées.
- Un plan avant toute dépense.
Le parcours d’un fichier
- 1ImporterLocalizable.xcstrings tel quelJusqu’à 8 MB
- 2Dites ce dont vous avez besoinLangues à ajouterGratuit
- 3Consultez le forfaitClés manquantes par langue, coûtGratuit
- 4ApprouverLa seule étape payanteConsomme des crédits
- 5TéléchargerLe même catalogue, complétéRemplacer le fichier
Pourquoi les pluriels sont importants
L’anglais a deux formes plurielles. D’autres langues en ont davantage, et un message comme « 3 photos » doit utiliser la forme adéquate dans chaque langue.
- one
- other
- one
- few
- many
- other
- zero
- one
- two
- few
- many
- other
Une catégorie absente de la source, mais utilisée dans la langue cible, est ajoutée. Ainsi, un catalogue russe gagne les formes few et many. Sinon, l’app affiche une forme incorrecte pour certains nombres.
Points à vérifier ensuite
Substitutions et variantes d’appareil. Elles ne sont pas encore traduites et restent telles quelles. Le plan vous indique combien il y en a.
Liste des langues. Ouvrez le catalogue dans Xcode et vérifiez que chaque nouvelle langue y figure et que sa progression est indiquée comme terminée.
Longueur. Lancez l’app dans une nouvelle langue et ouvrez les écrans contenant les chaînes les plus longues pour vérifier que le texte ne déborde pas des boutons.
Comment procéder, étape par étape
1. Essayez un fichier gratuitement. Le traducteur de catalogues String ne nécessite aucun compte et accepte les fichiers jusqu’à 2 MB et 5 000 mots.
2. Importez Localizable.xcstrings dans l’application. Vous le trouverez dans le dossier de votre projet, dans le dossier Resources si vous avez conservé l’emplacement par défaut d’Apple.
3. Indiquez en une phrase ce dont vous avez besoin.
Add German, Japanese and Portuguese.
Translate only the keys that have no translation in each language yet.
La phrase détermine ce qui est traduit dans tout le catalogue. Une consigne de formulation, par exemple « conserver exactement chaque spécificateur de format » ou « utiliser le tutoiement », doit être saisie dans le deuxième champ au moment de la validation, car elle s’applique à chaque chaîne au fur et à mesure de sa rédaction.
4. Ajoutez un glossaire pour le nom de l’application, les noms des fonctionnalités et les mots que votre application emploie toujours de la même façon. Comment en créer un.
5. Consultez les offres et choisissez un niveau de qualité.
Lite offre environ trois fois plus de mots par crédit et est plus rapide : idéal pour une nouvelle langue que vous relirez. Standard convient aux chaînes de votre page App Store. Un crédit correspond à un mot avec Standard.
6. Validez et téléchargez, puis remplacez le catalogue de votre projet.
Un catalogue, plusieurs langues
Les chiffres sont donnés à titre d’exemple. Contrairement à la plupart des formats, un catalogue String contient toutes les langues : vous récupérez donc un seul fichier, et non un fichier par langue.
Trois façons de lancer le traitement
Depuis la ligne de commande, relancez l’opération à chaque mise à jour, quand Xcode a ajouté de nouvelles chaînes au catalogue :
id=$(aiglot batches create Localizable.xcstrings \
--instruction "Add German, Japanese and Portuguese. Translate only the keys with no translation yet." \
--json | jq -r '.data.id')
aiglot batches get "$id" --json | jq '.data.plan'
aiglot batches approve "$id" --quality lite \
--instructions "Keep every format specifier exactly as written."
aiglot batches download "$id" --output Localizable.xcstrings
Avec votre agent IA : connectez AI Glot en tant que serveur MCP. L’agent peut lire votre projet, proposer des termes pour le glossaire, lancer la tâche et remettre le catalogue à sa 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.
La page Tarifs indique le coût pour un volume plus important. Un compte gratuit inclut des crédits pour traiter un vrai fichier.
Les limites indiquées ici sont celles en vigueur au moment de la rédaction : 8 MB par catalogue String, et 2 MB et 5 000 mots pour l’outil gratuit. La description des catalogues String et de l’option Export Localizations provient de la session WWDC23 d’Apple. La liste de DeepL est tirée de sa propre documentation. Les noms de fichiers et le nombre de chaînes dans les schémas sont des exemples. Votre forfait affiche les chiffres réels correspondant à votre fichier, et vous pouvez le consulter gratuitement.
