Guide d’internationalisation et de localisation iOS + application de démonstration

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éfinitionPréparation de votre code pour la localisationAdaptation de votre application pour des paramètres régionaux spécifiques
QuandAvant votre première versionContinu, par langue
QuiDéveloppeursDéveloppeurs et traducteurs
ExemplesExtraction de chaînes, utilisation de formateurs tenant compte des paramètres régionauxTraduction 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.

Application iOS de démonstration

À 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.

Ajout de langues dans Xcode

Étape 2

Créer un catalogue de chaînes

Ensuite, ajoutez un catalogue de chaînes (String Catalog).

  1. Faites un clic droit sur votre projet et sélectionnez New File from Template.
  2. Recherchez String Catalog et ajoutez-le. Le nom par défaut sera Localizable.xcstrings. Il n’est pas nécessaire de le modifier.
  3. 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.

Compilation du projet

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

  1. Faites glisser et déposez votre fichier Localizable.xcstrings dans 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.
Téléchargement d’un fichier
  1. 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.
Ajout de langues cibles dans PTC
  1. 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.
Ajout du contexte du projet dans PTC
  1. 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.

Signalement de problèmes dans PTC

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
Traductions longues signalées dans PTC

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.

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 :

  1. Assurez-vous que Xcode est fermé
  2. Ouvrez votre dossier de projet dans le Finder
  3. Remplacez le fichier Localizable.xcstrings existant par celui de PTC
  4. Redémarrez Xcode

Vos traductions apparaîtront dans le catalogue de chaînes, avec une coche à côté de chaque langue entièrement traduite.

Traductions importées

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.

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 :

  1. Lancez l’application avec Cmd+R pour ouvrir le Simulator
  2. Appuyez sur Cmd+Home pour aller à l’écran d’accueil
  3. Ouvrez Settings → General → Language & Region
  4. Appuyez sur Add Language, sélectionnez l’arabe et définissez-le comme langue principale
  5. 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 :

Utilisez le système de mise en page flexible de SwiftUI et laissez les étiquettes s’agrandir et revenir à la ligne naturellement
Évitez les contraintes de largeur fixe sur les éléments de texte
Testez votre interface utilisateur dans quelques langues différentes pendant le développement, pas seulement avant la sortie

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

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


Faire défiler vers le haut