Traduire le fichier Info.plist (iOS) en Flutter
Publié le par Edouard Marquez, mis à jour le
Il existe une myriade de manières de traduire des applications Flutter, mais comment traduire le contenu propre à chaque plateforme ? C’est notamment le cas sur iOS avec les fichiers
Info.plist.
Que contient un fichier Info.plist ?
Info.plist sous sa forme visuelle dans Xcode
Les fichiers Info.plist sur iOS et macOS définissent la carte d’identité de l’application : son identifiant, son nom, son numéro de version… Très proches d’un fichier XML sur la forme, ils associent des clés à des valeurs :
<key>CFBundleName</key>
<string>Le nom de mon application</string>
C’est également à cet endroit que l’on définit les messages qui s’affichent dans les popups de demande de permission :
Par exemple, si vous souhaitez accéder à la caméra, vous devrez définir un NSCameraUsageDescription
:
<key>NSCameraUsageDescription</key>
<string>Cette application utilise la caméra pour scanner des codes-barres</string>
Apple ne souhaite pas que ces informations puissent être mises à jour dynamiquement : c’est pour cette raison qu’elles sont stockées à part, dans ce fameux fichier
Info.plist.
Comment traduire le fichier Info.plist ?
Avant toute chose, il est recommandé de passer par Xcode. Sur un projet Flutter, ouvrez le fichier ios/Runner.xcworkspace, faites un clic droit sur
Runner -> Runner et sélectionnez New File…. La popup suivante apparaît :
Depuis cet écran, descendez jusqu’à la partie Resource, sélectionnez Strings File, puis cliquez sur
Next. Indiquez ensuite le nom de fichier InfoPlist.strings.
Pour terminer, validez cet écran. Un fichier de ce type apparaît alors :
/*
InfoPlist.strings
Runner
Created by Edouard Marquez on 13/04/2022.
*/
Pour traduire le NSCameraUsageDescription, il suffit d’ajouter dans ce fichier :
"NSCameraUsageDescription"="My English translation"
Comment ajouter une langue ?
Nous avons certes créé le fichier InfoPlist.strings, mais il ne couvre pour le moment que la langue par défaut.
Pour ajouter des langues, cliquez sur l’icône bleue Runner (à gauche de l’écran), puis allez dans la section Localizations. Vous n’avez plus qu’à cliquer sur le bouton +.
Sélectionnez une langue, puis cochez uniquement InfoPlist.strings en indiquant la langue de base (normalement l’anglais).
InfoPlist.strings
Une nouvelle variante de InfoPlist.strings apparaît alors : c’est elle qui accueille la traduction.
Il ne vous reste plus qu’à traduire InfoPlist.strings (French) de cette manière :
"NSCameraUsageDescription"="Ma traduction française"
Voilà tout ce qu’il y a à faire pour traduire les textes du fichier Info.plist : permissions d’accès à la caméra, au GPS…
Côté fichiers, chaque traduction est désormais hébergée dans un dossier nomdelalangue.lproj, où vous trouverez son
InfoPlist.strings.