La traduction d'une application iOS dans différentes langues est un processus en deux étapes. Tout d'abord, vous devez préparer votre application en séparant tous les textes, images et autres ressources destinés à l'utilisateur qui doivent être traduits du reste de votre code et de vos story-boards. Ce processus s'appelle l'internationalisation (I18N).
Une fois que vous avez fini d'internationaliser votre application, vous êtes prêt à la localiser. C'est ici que vous exportez vos ressources et les envoyez à votre traducteur. Lorsque vous récupérez les ressources traduites, il vous suffit de les réimporter dans Xcode et votre application est prête à prendre en charge une autre langue..
Nous utiliserons un exemple d'application simple pour expérimenter des localisations. Créez un nouveau projet Xcode, utilisez Application à vue unique pour le modèle et appelez le projet LocalisationExemple.
Ensuite, nous devons créer une interface utilisateur simple afin de voir nos localisations en action. Dans Tableau principal, ajoutez une étiquette et une vue d'image. Remplacez le texte de l'étiquette par "Bonjour le monde!". Téléchargez ces ressources images, ajoutez en / logo.png à votre projet Xcode (assurez-vous que Copier les éléments si nécessaire est cochée) et l'afficher dans la vue d'image en modifiant sa Image champ à logo.png. Veillez également à ajouter un Centrer horizontalement dans le conteneur contrainte de mise en page pour les deux éléments de l'interface utilisateur.
Vous devez également savoir comment localiser les chaînes codées en dur. Allez-y, ajoutez un message à la console. AppDelegate.m. Ajoutez l'instruction de journal suivante à applicationDidFinishLaunching:
.
- Application (BOOL): application (UIApplication *) didFinishLaunchingWithOptions: (NSDictionary *) launchOptions NSLog (@ "Hello, World!"); retourner OUI;
Cela nous donne trois ressources à localiser, une image, une étiquette et une chaîne codée en dur. Notez que développer une application localisée revient en grande partie à créer une application non localisée. Vous pouvez configurer des vues et définir un comportement personnalisé sans vous soucier de la localisation. La plupart de ces événements surviennent une fois que vos fonctionnalités de base fonctionnent..
Maintenant que nous disposons d'une application de base, nous sommes prêts à internationaliser notre application. C'est ici que nous nous préparons à localiser les ressources en les isolant du reste de notre code. Xcode fournit des fonctionnalités étendues I18N, ce qui facilite beaucoup la localisation d'une application..
Tout d'abord, examinons l'internationalisation de l'interface utilisateur de notre application. La première étape consiste à indiquer à Xcode les régions ou les paramètres régionaux que vous souhaitez prendre en charge. Clique le LocalizationsExample projet dans le Navigateur de projet et sélectionnez l'icône de projet bleue dans la liste déroulante en haut à gauche.
le Les localisations section vous permet d’ajouter des paramètres régionaux à votre application. Nous allons traduire notre exemple de projet en espagnol, cliquez donc sur le signe plus et sélectionnez Espagnol (es). Cela ouvrira une fenêtre de dialogue vous demandant ce que vous voulez faire avec vos ressources existantes. Assure-toi Cordes localisables est sélectionné pour les deux Tableau principal et LaunchScreen.xib comme indiqué dans la capture d'écran suivante. Cliquez sur terminer continuer.
Vous trouverez maintenant deux éléments sous Tableau principal, une base storyboard et un Main.strings fichier. Le premier est votre fichier de storyboard et le dernier est un fichier de chaînes qui contient tout le texte destiné aux utilisateurs dans le storyboard. Ce fichier de chaînes est ce qui sera éventuellement traduit.
le Tableau principal le fichier est maintenant internationalisé et prêt à être localisé.
Les chaînes destinées à l'utilisateur qui sont codées en dur dans vos classes Objective-C / Swift nécessitent un traitement spécial. Cette étape est nécessaire, par exemple, si vous définissez par programme le texte des éléments d'interface utilisateur dans vos storyboards..
Heureusement, l'internationalisation des chaînes codées en dur est un processus simple. Tout ce que vous avez à faire est de les envelopper dans un NSLocalizedString
macro, comme si:
- (BOOL) application: (UIApplication *) application didFinishLaunchingWithOptions: (NSDictionary *) launchOptions NSString * greeting = NSLocalizedString (@ "Hello, World!", @ "Un salut amical"); NSLog (@ "% @", message d'accueil); retourner OUI;
Le premier argument est une clé pointant sur la chaîne que vous recherchez et le second argument (facultatif) est un commentaire qui sera inclus dans le fichier de chaînes exporté. Vous pouvez utiliser des clés abstraites de style dictionnaire (par exemple,., @"salutation"
), mais je trouve que le code est plus lisible si vous utilisez la chaîne à traduire en tant que clé.
Dans la section suivante, tout NSLocalizedString
les appels seront automatiquement extraits de notre code et ajoutés à la liste des chaînes devant être traduites.
Une fois votre application internationalisée, vous êtes prêt à localiser vos ressources. La localisation est un processus assez simple dans lequel vous exportez toutes les chaînes devant être traduites, les transmettez à votre traducteur et les importez dans votre projet. Ce cycle d'exportation / traduction / importation peut continuer à mesure que vous développez votre application, mais il est généralement judicieux de finaliser la majeure partie de votre interface utilisateur avant de lancer le processus de localisation..
Xcode facilite l’exportation de toutes vos chaînes internationalisées vers un seul Fichier d'échange de localisation XML Format (.xliff) document, qui est le format standard pour l'industrie de la localisation.
Pour générer ce fichier, sélectionnez LocalisationExemple dans le Navigateur de projet, choisir Editeur> Exporter pour localisation… dans le menu Xcode, et sélectionnez un chemin de fichier en dehors de votre projet Xcode pour éviter toute confusion éventuelle.
En cliquant sauvegarder va créer un nouveau dossier contenant un es.xliff fichier. Si vous l'ouvrez, vous trouverez une multitude de fichiers XML contenant des informations sur chaque chaîne de votre application devant être localisée..
C'est le fichier que vous devez envoyer à votre traducteur. Ils auront des outils spéciaux pour éditer le XML, mais pour notre exemple, allons-y et éditons-le directement. Ouvrir es.xliff et rechercher le texte "Bonjour le monde!". Vous devriez trouver deux séparés
éléments comme indiqué ci-dessous.
Hola, Mundo! Classe = "IBUILabel"; text = "Bonjour le monde!"; ObjectID = "Cns-Fc-27j"; Hola, Mundo!