L’internationalisation d’une application iOS

Logo - XcodeL’internationalisation, c’est à dire rendre une application disponible dans la langue définie sur le téléphone, est une bonne pratique. Sa pertinence dépend évidemment de la portée de l’application, mais la mettre en place dès le début du projet fait parti des best practices. Il ne s’agit pas directement de traduction, mais plutôt de rendre une application prête à être traduite.

Dans le cadre du développement d’une application iOS, cela se fait grâce à la fonction NSLocalizedString d’une part, et par l’intermédiaire de fichier de langues d’autre part.

NSLocalizedString

Pour faire simple, chaque fois qu’une chaîne de caractères est utilisée, plutôt que de l’afficher telle quelle, il faut passer par cette fonction. Concrètement voici ce que cela donne :

// Non internationalisé
[label setText:@"Hello world"];

// Internationalisé
[label setText:NSLocalizedString(@"Hello world", @"Message de bienvenue")];

Le premier paramètre contient le texte à afficher, le second contient un commentaire permettant d’identifier plus facilement le contexte dans lequel le texte est utilisé.

Le(s) fichier(s) de langue

Une fois que le projet terminé, il est possible de créer un fichier contenant des pairs clef/valeurs, où la clef est la chaîne passé en argument à la fonction NSLocalizedString, et la valeur la chaîne renvoyée par la fonction. Se fichier doit se nomer Localizable.strings. Pour le créer, il suffit d’ajouter un nouveau fichier au projet, en précisant comme type Strings files.

Screenshot - Xcode : New strings file
Une fois le fichier créé, il faut l’ouvrir et à l’aide du File inspector (alt + cmd + 1 s’il est masqué), l’internationaliser en cliquant sur Localize….

Screenshot - Xcode : Localize file

 

Plusieurs fichiers sont alors créés, accessible depuis la liste qui est apparu sur le fichier Localizable.strings dans le Project navigator.

Screenshot - Xcode : Localize file

 

Toutefois, ces « sous-fichiers » n’apparaissent que si le projet est configuré pour supporter plusieurs langues. Pour ajouter une langue, il suffit d’éditer le fichier du projet:

Screenshot - Xcode : Localize file

Genstrings

Pour finir, il existe un outil qui permet de générer directement le contenu du fichier Localizable.strings en parcourant les fichier sources du projet. Cet outil tient compte des commentaires, ce qui permet une meilleur relecture. Voici une vidéo qui présente comment utiliser Genstrings.

Source : YouTube – Create Localizable.strings files with genstrings

Documentation : Dev Center

Publié par

gcko

#iOS developer at @applydia, former #Epitech student, «I'm am currently making your smartphone smarter»