Découvrez comment préparer votre application iOS pour la localisation, la traduire avec l’IA et réintégrer les traductions dans Xcode, le tout à l’aide d’une application de démonstration SwiftUI.
La localisation iOS est le processus d’adaptation du texte, du formatage et des ressources de votre application pour prendre en charge plusieurs langues et paramètres régionaux.
Ce guide utilise une application de démonstration pour vous accompagner tout au long du processus, des préparatifs dans Xcode à la création et à l’intégration des traductions dans votre projet. Notre application de démonstration, Bookshelf, est une application simple de suivi de livres qui couvre les scénarios de localisation que vous êtes le plus susceptible de rencontrer : chaînes d’interface utilisateur, pluralisation et test des paramètres régionaux.
Nous travaillerons avec SwiftUI et Xcode 15+, en utilisant les catalogues de chaînes (String Catalogs) comme format de localisation principal.
Partie 1 : Comprendre la localisation iOS
Avant de vous lancer dans Xcode, il est utile de comprendre ce que la localisation implique réellement et ce qui la différencie de l’internationalisation.
Internationalisation vs Localisation dans iOS — Quelle est la différence ?
L’internationalisation (i18n) et la localisation (l10n) sont deux étapes distinctes, et elles doivent se dérouler dans cet ordre.
L’internationalisation est le socle technique. Cela consiste à structurer votre code de manière à ce que le texte, les images et le formatage puissent varier selon les paramètres régionaux sans nécessiter de modifications du code. Vous le faites une seule fois, idéalement avant votre première version.
La localisation est le travail continu qui suit : rédaction des traductions, ajustement des mises en page et fourniture de ressources spécifiques à chaque langue que vous souhaitez prendre en charge.
| Internationalisation (i18n) | Localisation (l10n) | |
| Définition | Préparation de votre code pour la localisation | Adaptation de votre application pour des paramètres régionaux spécifiques |
| Quand | Avant votre première version | Continu, par langue |
| Qui | Développeurs | Développeurs et traducteurs |
| Exemples | Extraction de chaînes, utilisation de formateurs tenant compte des paramètres régionaux | Traduction de chaînes, localisation de captures d’écran |
L’erreur la plus courante est de traiter la localisation comme une tâche post-lancement, pour s’apercevoir ensuite que la base de code n’est pas prête. Revenir en arrière pour corriger les chaînes codées en dur, les mises en page à direction fixe et les formateurs ignorant les paramètres régionaux dans une application existante prend beaucoup plus de temps que de construire en pensant à la localisation dès le départ.
Partie 2 : Configuration de votre projet Xcode
Nous travaillerons avec Bookshelf, une application de démonstration simple qui permet aux utilisateurs de suivre le nombre de livres qu’ils ont lus. Elle est construite avec SwiftUI et est minimaliste par conception.

À la fin de ce guide, BookShelf fonctionnera en anglais, en espagnol et en arabe, gérera correctement les chaînes au pluriel dans ces trois langues et adaptera automatiquement sa mise en page en miroir pour les lecteurs arabes.
Étape 1
Activer la localisation
Ouvrez BookShelf dans Xcode et sélectionnez le fichier de projet dans le Navigator. Sous l’onglet Info, faites défiler jusqu’à la section Localizations. L’anglais est déjà répertorié comme langue de base. Cliquez sur le bouton + pour ajouter votre première langue. Nous ajouterons l’espagnol et l’arabe pour cette démonstration.

Étape 2
Créer un catalogue de chaînes
Ensuite, ajoutez un catalogue de chaînes (String Catalog).
- Faites un clic droit sur votre projet et sélectionnez New File from Template.
- Recherchez String Catalog et ajoutez-le. Le nom par défaut sera Localizable.xcstrings. Il n’est pas nécessaire de le modifier.
- Compilez le projet une fois avec Cmd+B. Xcode analysera votre code, trouvera chaque chaîne localisable et remplira automatiquement le catalogue.
Étape 3
Marquer les chaînes pour la localisation
Après avoir compilé le projet, ouvrez Localizable.xcstrings et vous verrez que Xcode a déjà extrait chaque chaîne littérale de vos vues SwiftUI et les a ajoutées au catalogue avec leurs valeurs anglaises renseignées. Pour la plupart des chaînes, c’est tout ce que vous avez à faire.

Il existe quelques cas où Xcode ne peut pas le faire automatiquement, et les deux échouent silencieusement, l’application affichant simplement la chaîne non traduite sans aucun avertissement.
Conseil 1 : Évitez de passer des variables à Text
Lorsque vous passez une variable à une vue Text au lieu d’une chaîne littérale, SwiftUI la traite comme une chaîne simple et ignore complètement la recherche dans le catalogue.
// NOT localized
let title = "welcome_title"
Text(title)
// Localized correctly
Text(LocalizedStringKey(title))
Conseil 2 : Utilisez String(localized:) en dehors des vues
Pour les chaînes que vous devez localiser dans un modèle de vue, une fonction d’assistance ou n’importe où en dehors d’une vue SwiftUI, utilisez String(localized:) plutôt qu’une chaîne simple.
let errorMessage = String(localized: "error_generic")Étape 4
Ajouter des variantes de pluriel et d’appareil
Les chaînes nécessitent parfois différentes versions selon le contexte. Cela inclut les formes plurielles qui changent avec un nombre, ou le texte qui diffère selon l’appareil. Vous pouvez gérer les deux directement dans le catalogue de chaînes.
Pluralisation
BookShelf, notre application de démonstration, affiche un décompte des livres sur l’étagère de l’utilisateur. En anglais, c’est simple : « 1 book » vs « 3 books ». Mais les règles de pluriel varient selon les langues, et se tromper produit un texte peu naturel dans d’autres paramètres régionaux.
Commencez par la chaîne dans votre vue SwiftUI :
Text("\(bookCount) books on your shelf")
Ouvrez le catalogue de chaînes, faites un clic droit sur la clé et choisissez Vary by Plural. Xcode génère automatiquement les catégories de pluriel et les pré-remplit avec la chaîne source.
Pour l’anglais, vous verrez One et Other. Corrigez simplement le champ One pour la forme singulière : « %lld book on your shelf ». La forme Other est déjà correcte telle quelle.
Xcode marque les deux comme Needs Review jusqu’à ce que vous les confirmiez. Une fois que vous avez corrigé la forme One, vous pouvez les marquer comme révisées.
Vous verrez également l’arabe et l’espagnol répertoriés dans la barre latérale à 0 %. Vous n’avez rien à faire pour ces langues pour le moment. Plus tard, lorsque vous exporterez vers PTC pour la traduction, la structure du pluriel voyagera avec le fichier. Pour l’arabe, PTC générera des traductions pour les six catégories de pluriel (zéro, un, deux, peu, beaucoup et autre) car la grammaire arabe exige les six. Pour l’espagnol, il y en a deux, comme en anglais.
Variations selon l’appareil
Certains textes doivent différer selon l’appareil, comme « Touchez pour continuer » sur iPhone contre « Cliquez pour continuer » sur Mac. Pour configurer cela, faites un clic droit sur la clé dans le catalogue et choisissez Vary by Device. Ajoutez les appareils que vous souhaitez personnaliser et saisissez la chaîne appropriée pour chacun. Au moment de l’exécution, iOS sert la version qui correspond à l’appareil actuel.
Les variations selon l’appareil sont moins courantes que les variations de pluriel, mais utiles pour les applications qui s’exécutent à la fois sur iOS et macOS.
Partie 3 : Traduire vos fichiers de localisation iOS avec PTC
Votre catalogue de chaînes est configuré et vos chaînes sont prêtes. Il est maintenant temps d’ajouter des traductions.
Pour un petit projet, vous pourriez le faire manuellement en ouvrant chaque fichier de langue et en remplissant les traductions directement. Mais à mesure que votre application se développe, cela devient rapidement ingérable pour des centaines de clés et des dizaines de langues.
C’est là que PTC intervient — un outil de traduction IA qui gère le téléchargement, la traduction et la synchronisation de vos fichiers de localisation, avec des options pour s’intégrer à votre dépôt ou à votre pipeline CI/CD.
🔗 En savoir plus : Localisation d’applications mobiles basée sur l’IA avec PTC — comment PTC gère les traductions de bout en bout pour les applications iOS et Android.
Ci-dessous, nous vous guiderons pour démarrer.
1
Exporter votre catalogue de chaînes depuis Xcode
Allez dans Product → Export Localizations dans la barre de menus de Xcode. Xcode regroupe votre catalogue de chaînes dans un fichier .xcloc pour chaque langue cible.
Pour ce guide, nous n’avons besoin que du fichier .xcstrings à l’intérieur du paquet .xcloc. Pour y accéder, faites un clic droit sur le fichier .xcloc exporté dans le Finder et sélectionnez Afficher le contenu du paquet. Vous trouverez Localizable.xcstrings à l’intérieur.
💡Voyez-vous une notification « Unable to build project for localization string extraction » ?
Cela se produit lorsque votre projet utilise des API réservées à iOS que Xcode ne peut pas compiler par rapport à son SDK macOS interne lors de l’extraction des chaînes. Pour y remédier, sélectionnez la cible du projet sous TARGETS, allez dans Build Settings, recherchez « Use Compiler to Extract Swift Strings », et réglez-le sur No. Essayez ensuite d’exporter à nouveau.
2
S’inscrire à PTC
Inscrivez-vous pour un essai gratuit de PTC — aucune carte de crédit requise. L’essai gratuit vous permet de traduire 20 000 mots dans deux langues, ce qui, dans la plupart des cas, est suffisant pour localiser une application.
Ajouter d’autres langues ultérieurement est facile. PTC utilise un modèle de paiement à l’utilisation sans frais d’abonnement mensuel. Vous ne payez que ce que vous traduisez.
Après l’inscription, la configuration du projet s’ouvrira automatiquement.
3
Configurez votre projet et traduisez
- Faites glisser et déposez votre fichier
Localizable.xcstringsdans PTC. Une fois ajouté, vous verrez un champ de nom de fichier de sortie. Laissez-le tel quel :Localizable.xcstrings. Xcode attend exactement ce nom lors de la résolution des chaînes localisées.

- Sélectionnez vos langues cibles. L’essai gratuit prend en charge deux langues. Pour notre application de démonstration, nous sélectionnons l’espagnol et l’arabe.

- Décrivez ce que fait votre application et à qui elle s’adresse. C’est ce qui permet à PTC de produire des traductions tenant compte du contexte qui utilisent le ton, la voix et la terminologie appropriés pour votre public.

- Ajoutez des termes à votre glossaire. PTC y ajoute automatiquement le nom de votre application. Vous pouvez également ajouter toute terminologie spécifique à la marque qui doit être traduite d’une manière particulière, ou ne pas être traduite du tout.
Après avoir cliqué sur Start Translation, PTC prendra quelques minutes pour traiter votre fichier.
4
Réviser et télécharger les traductions de l’application iOS
Une fois la traduction terminée, allez dans l’onglet Translations. Vous verrez un tableau listant chaque chaîne source à côté de sa traduction. Vous ou tout membre de l’équipe que vous ajoutez au projet pouvez modifier les traductions manuellement directement dans cette vue.
Si quelque chose semble incorrect, vous pouvez signaler un problème avec une traduction spécifique et demander une retraduction gratuite par IA. PTC apprend des commentaires que vous fournissez et les applique aux futures chaînes du même projet.

Si une chaîne traduite dépasse sa limite de longueur, elle sera mise en évidence dans le tableau. PTC définit ces limites automatiquement en fonction des caractéristiques de chaque langue cible. Vous avez trois options :
- Acceptez la traduction plus longue si votre interface utilisateur peut l’accueillir
- Demandez une retraduction qui respecte la limite actuelle
- Ajustez la limite dans Settings → Translation lengths

Partie 4 : Intégration des traductions dans votre projet Xcode
Vos traductions étant prêtes dans PTC, la dernière étape consiste à les intégrer dans votre projet Xcode. Vous avez trois options.
Option 1
Télécharger manuellement les fichiers depuis PTC
Allez dans l’onglet Resource Files dans PTC et téléchargez le fichier zip. Il contient un seul fichier Localizable.xcstrings incluant vos chaînes sources anglaises et toutes les traductions.
Pour ajouter le fichier à votre projet :
- Assurez-vous que Xcode est fermé
- Ouvrez votre dossier de projet dans le Finder
- Remplacez le fichier
Localizable.xcstringsexistant par celui de PTC - Redémarrez Xcode
Vos traductions apparaîtront dans le catalogue de chaînes, avec une coche à côté de chaque langue entièrement traduite.

Option 2
Intégrer avec Git
Si votre projet est hébergé sur GitHub, GitLab ou Bitbucket, vous pouvez connecter PTC directement à votre dépôt pour une traduction continue.
Dans votre tableau de bord PTC, allez dans Settings → Merge Requests et cliquez sur Add Git Integration. Vous devrez fournir l’URL de votre dépôt, accorder l’accès à PTC et choisir votre branche et vos fichiers sources. PTC enverra une demande de fusion (merge request) avec les traductions, que vous pourrez réviser et accepter comme tout autre changement de code.
Option 3
Utiliser l’API
L’API de PTC vous permet de générer et de télécharger automatiquement des fichiers de localisation dans le cadre de votre propre pipeline de construction ou de déploiement. Cela vaut la peine d’être exploré si vous avez une configuration plus complexe ou si vous voulez un contrôle total sur le moment et la manière dont les traductions sont intégrées à votre projet.
Pour commencer, allez dans Settings → Manage API tokens. Cliquez sur Add access token pour générer un jeton, puis consultez la documentation de l’API pour tous les points de terminaison.
Partie 5 : Tester votre application iOS localisée
Il est maintenant temps de vérifier que vos traductions s’affichent et fonctionnent comme prévu.
Tester avec le paramètre de langue du schéma
Le moyen le plus rapide de tester une langue spécifique est d’utiliser votre schéma Xcode. Allez dans Product → Scheme → Edit Scheme et cliquez sur l’onglet Options. Changez App Language et App Region pour les paramètres régionaux que vous souhaitez tester, puis lancez l’application avec Cmd+R.
Cela fonctionne bien pour la plupart des langues. Vous devriez voir la même mise en page et le même design que la version anglaise, avec tout le texte basculé dans la langue sélectionnée.
Tester l’arabe et les autres langues RTL (de droite à gauche)
Pour l’arabe et les autres langues s’écrivant de droite à gauche, le paramètre de langue du schéma peut être peu fiable dans le simulateur. Utilisez plutôt les paramètres de langue propres au simulateur :
- Lancez l’application avec Cmd+R pour ouvrir le Simulator
- Appuyez sur Cmd+Home pour aller à l’écran d’accueil
- Ouvrez Settings → General → Language & Region
- Appuyez sur Add Language, sélectionnez l’arabe et définissez-le comme langue principale
- Le simulateur va redémarrer. Ouvrez votre application depuis l’écran d’accueil
Vérifiez que le texte apparaît en arabe et que la mise en page s’affiche correctement en miroir, avec le titre de navigation et le contenu alignés à droite.
Meilleures pratiques de localisation iOS
Vérifiez votre interface utilisateur pour les longueurs de texte variables
Claude a répondu : La longueur des mots varie selon les langues.
La longueur des mots varie selon les langues. L’allemand, par exemple, a tendance à être plus long que l’anglais et peut facilement casser une interface utilisateur conçue uniquement pour l’anglais.
Pour éviter cela :
Ne négligez pas les variantes de pluralisation
Les langues n’expriment pas les quantités de la même manière. L’anglais nécessite deux formes de pluriel (un et autre), mais de nombreuses langues en nécessitent davantage. Le russe a cinq catégories de pluriel, l’arabe en a six et le japonais n’en a aucune. Si vous ignorez les variantes de pluralisation pour une langue cible, votre application affichera des chaînes peu naturelles ou grammaticalement incorrectes pour ces paramètres régionaux.
Les catalogues de chaînes gèrent cela automatiquement. Lorsque vous ajoutez une langue, Xcode génère les champs de pluriel corrects pour les règles grammaticales de cette langue. Assurez-vous que tous les champs générés sont remplis avant l’expédition.
Localiser les images et les ressources
Si votre application utilise des images contenant du texte ou des visuels culturellement spécifiques, ceux-ci doivent également être localisés. Une application traduite qui affiche toujours du texte anglais à l’intérieur des images gâche l’expérience des utilisateurs non anglophones.
Pour localiser une image dans Xcode, ouvrez Assets.xcassets, sélectionnez l’image et, dans l’Attributes Inspector, cliquez sur Localize. Choisissez les langues pour lesquelles vous souhaitez fournir des variantes et remplacez chacune par la version appropriée. Xcode sert automatiquement l’image correcte en fonction des paramètres régionaux de l’utilisateur.
Maintenez votre langue de base complète
Votre langue de base (généralement l’anglais) sert de référence pour toutes les autres localisations. Si une traduction manque pour une langue spécifique, iOS se rabat sur la version de la langue de base. Cela signifie qu’une langue de base incomplète peut provoquer des replis inattendus, même dans des langues par ailleurs entièrement traduites.
Avant chaque version, vérifiez que votre catalogue de chaînes ne présente aucune chaîne manquante ou obsolète dans la langue de base. Xcode les signale automatiquement lors de la compilation.
Localisez votre fiche App Store
La fiche App Store est aussi importante que l’application elle-même. Une application localisée avec une fiche uniquement en anglais perd des utilisateurs au moment de la découverte, avant même qu’ils ne l’aient téléchargée.
Dans App Store Connect, vous pouvez localiser le nom de votre application, le sous-titre, la description et le champ de mots-clés pour chaque territoire. Les mots-clés sont particulièrement précieux. Apple indexe les mots-clés de plusieurs langues par territoire, ce qui multiplie efficacement votre budget de caractères de mots-clés au-delà des 100 caractères standard.
Pour traduire le contenu de votre fiche App Store, utilisez la fonction Paste to Translate de PTC. Collez le nom de votre application, le sous-titre, la description ou le champ de mots-clés et PTC le traduira dans vos langues cibles en quelques minutes.
Foire aux questions
Pourquoi la localisation iOS ne fonctionne-t-elle pas ?
La cause la plus fréquente est que le fichier de localisation n’est pas inclus dans la cible de l’application.
Cliquez sur Localizable.xcstrings dans le Navigator, ouvrez le File Inspector sur la droite et vérifiez que la cible de votre application est cochée sous Target Membership. Assurez-vous également que la langue que vous testez est répertoriée dans la section Localizations de votre projet sous l’onglet Info.
Si les deux semblent corrects, essayez de nettoyer le dossier de compilation avec Shift+Cmd+K et de recompiler.
Quels sont les formats de fichiers de localisation iOS ?
Xcode prend en charge plusieurs formats de fichiers pour la localisation :
.xcstrings(String Catalog) est le format par défaut depuis Xcode 15. Il s’agit d’un fichier unique basé sur JSON qui regroupe toutes vos chaînes, règles de pluriel et variantes spécifiques aux appareils. Xcode extrait les chaînes automatiquement au moment de la compilation et signale toute traduction manquante. C’est le format à utiliser pour tout nouveau projet..stringsest l’ancien format, toujours valide et courant dans les bases de code plus anciennes. Il stocke des paires clé-valeur pour une seule langue dans un fichier texte brut. Vous aurez besoin d’un fichier .stringsdict distinct à côté pour gérer les pluriels..stringsdictgère les règles de pluriel dans les projets qui utilisent des fichiers .strings. Les catalogues de chaînes intègrent la prise en charge du pluriel, vous n’en aurez donc pas besoin dans les nouveaux projets..xliffet.xclocsont des formats d’export utilisés lors de la transmission des chaînes à des traducteurs ou à une plateforme de traduction. Ce ne sont pas des formats de stockage. Xcode les génère lorsque vous exportez pour traduction.
Comment localiser le nom de l’application dans Xcode ?
Créez un nouveau fichier de chaînes nommé InfoPlist.strings et localisez-le pour chaque langue prise en charge. Dans chaque version linguistique du fichier, ajoutez la ligne suivante avec le nom de l’application traduit :
CFBundleDisplayName = "Your Translated App Name";
Sélectionnez le fichier dans le Navigator, ouvrez le File Inspector et cliquez sur Localize pour ajouter des variantes linguistiques. iOS affichera le nom correct de l’application en fonction de la langue de l’appareil de l’utilisateur.
Comment changer la langue de l’application par programmation sans redémarrer ?
iOS ne fournit pas d’API native pour changer la langue de l’application au moment de l’exécution sans redémarrer. L’approche standard consiste à définir la clé AppleLanguages dans UserDefaults et à demander à l’utilisateur de redémarrer l’application :
UserDefaults.standard.set(["es"], forKey: "AppleLanguages")
UserDefaults.standard.synchronize()Le changement de langue prend effet au prochain lancement de l’application. Si votre application nécessite un changement de langue en cours de session sans redémarrage, vous devrez gérer la localisation manuellement en chargeant le bundle approprié pour la langue sélectionnée.
Comment changer la langue de mon application sur App Store Connect ?
Dans App Store Connect, allez sur la page de votre application et sélectionnez la langue que vous souhaitez ajouter dans la barre latérale gauche. Vous pouvez localiser le nom de votre application, le sous-titre, le texte promotionnel, la description, les mots-clés et les captures d’écran pour chaque territoire indépendamment.
Les modifications apportées à votre fiche App Store ne nécessitent pas une nouvelle soumission de l’application. Vous pouvez mettre à jour les métadonnées à tout moment.
Pourquoi mon application se rabat-elle sur l’anglais pour les langues non prises en charge ?
iOS utilise votre langue de base comme solution de repli lorsqu’une traduction n’est pas disponible pour la langue préférée de l’utilisateur. Si l’appareil d’un utilisateur est réglé sur une langue que votre application ne prend pas en charge, ou si une chaîne spécifique manque de traduction, iOS sert la version de la langue de base à la place. C’est le comportement attendu. Pour minimiser les replis, assurez-vous que votre catalogue de chaînes ne présente aucune chaîne manquante ou obsolète avant chaque version.
La localisation d’une application iOS aide-t-elle réellement les téléchargements ?
Oui, systématiquement. Les applications localisées dans cinq langues ou plus génèrent en moyenne nettement plus de téléchargements que les applications uniquement en anglais, et les marchés non anglophones représentent plus de la moitié des revenus mondiaux de l’App Store. Le Japon, la Corée du Sud et la Chine figurent parmi les marchés les plus rémunérateurs en dehors des pays anglophones.
Dans quelles langues dois-je localiser mon application iOS en premier ?
Commencez par les langues qui offrent la meilleure combinaison de taille de marché et de coût de traduction. L’espagnol, le français, l’allemand, le japonais et le chinois simplifié sont les points de départ les plus courants pour les applications qui s’étendent au-delà de l’anglais.
Si votre application a déjà des utilisateurs dans une région spécifique, donnez la priorité à leur langue en premier.
Pour un coût d’adaptation minimal, commencez par les langues qui sont géographiquement ou culturellement proches de votre marché de base et progressez à partir de là.
Puis-je vraiment utiliser l’IA pour localiser toute mon application iOS avec précision ?
Oui. La traduction par IA est devenue suffisamment précise pour la plupart des contenus d’applications et est nettement plus rapide et moins coûteuse que la seule traduction humaine.
PTC utilise l’IA pour traduire vos fichiers .xcstrings, .strings et .stringsdict en quelques minutes, en préservant automatiquement les règles de pluriel et les placeholders. 99,8 % des chaînes traduites sont mises en ligne sans aucune modification. Pour de meilleurs résultats, décrivez votre application à PTC lors de la configuration afin que les traductions reflètent le ton et la terminologie appropriés pour votre public.

Commencez à localiser votre application iOS dès aujourd’hui
Vous avez fait le travail technique. PTC s’occupe du reste. Inscrivez-vous pour un essai gratuit et traduisez jusqu’à 20 000 mots dans deux langues. Aucune carte de crédit n’est requise.


Traduisez les fichiers .xcstrings avec PTC
Obtenez des traductions précises en quelques minutes
Téléchargez des fichiers uniques ou automatisez via l’API ou l’intégration Git