Guide de localisation iOS pour les applications iPhone et iPad multilingues. Guide de localisation iOS pour les applications iPhone et iPad multilingues gérant les chaînes en double

Nous traduisons en langues étrangères logiciels d'ordinateur, jeux et applications en ligne.

En plus des ressources de chaîne d'interface, nous effectuerons la traduction système d'aide, textes marketing, site internet. Si nécessaire, nous revoilons qualitativement ou reprenons le clip vidéo, redessinons les graphiques, réécrivons les textes dans la langue souhaitée.

Toutes les traductions sont réalisées par des traducteurs professionnels de langue maternelle. Nous traduisons vers 68 langues, ainsi que vers d’autres paires de langues.

Localisation de jeux de bureau, de navigateur et mobiles

Nous travaillons avec des éditeurs et des développeurs de projets mobiles et de jeux, contribuant ainsi à faire applications disponibles pour iOS, Android, HTML5 dans plus de 60 langues. En plus de traduire les ressources de chaînes des applications elles-mêmes, nous rédigeons et traduisons également des descriptions pour Magasin d'applications Et jeu de Google.

Tests linguistiques

Une fois la version localisée de l'application assemblée, il est nécessaire que le traducteur/localisateur la teste sur la version nationale de l'OS. Au cours de ces tests linguistiques, le localisateur prendra des captures d'écran des zones problématiques (lignes non traduites, trop longues, encodage ou sens du texte incorrect, contexte incorrect) et, en collaboration avec le développeur, apportera les modifications nécessaires aux fichiers de ressources.

Si vous avez traduit l'application vous-même ou par un tiers, vous pouvez nous commander des tests de localisation linguistique.

Calcul des coûts

Le coût de localisation et de traduction est calculé en fonction du volume du texte (nombre de caractères avec espaces). Consultez les tarifs de traduction. Les balises, les clés et le balisage ne sont pas pris en compte lors du calcul.

Cet article est une tentative de systématiser tout ce qui est disponible sur ce moment J'ai des informations concernant la localisation des applications.

Même si nous écrivons des programmes « pour nous-mêmes », nous ne pensons pas à la localisation, à l’internationalisation et à d’autres problèmes. Pourquoi? Il est peu probable qu’une personne sensée se demande : « Ne devrais-je pas traduire mon utilitaire en hébreu pour pouvoir ensuite travailler avec un tel programme ? Il en va tout autrement lorsque le programme « naît à partir de pantalons courts » et qu’il existe une demande dans d’autres pays. Ensuite, si la demande est suffisamment importante, vous pouvez (et devez) vous lancer dans la localisation - trouvez un outil approprié, engagez des traducteurs (ou traduisez vous-même) et travaillez, travaillez, travaillez. Une solution comme « Je vais créer un fichier INI » peut très bien convenir aux petits programmes, mais pas aux projets sérieux avec une interface développée, un grand nombre de formulaires, de ressources, etc. - dans ce cas, il vaut la peine de trouver une solution toute faite appropriée. En fait, les principaux objectifs qui m'étaient fixés pour trouver une solution de localisation étaient de trouver une solution qui permettrait :

  1. effectuer la localisation par des non-programmeurs
  2. travaillez avec vos propres dictionnaires pour la traduction
  3. Prise en charge de XE2

Eh bien, et comme d'habitude, la solution doit être facile à utiliser, bon marché, si possible, facile à apprendre, etc. et ainsi de suite. Et comme j'ai quand même décidé de tous les parcourir dans ma recherche options possibles(ou plutôt, selon le maximum d'options possible), j'ai décidé de systématiser tout le matériel trouvé et de le formaliser dans ce même post. Ici, vous pouvez en apprendre davantage sur les composants, bibliothèques et programmes Delphi existants - en général, sur tout ce que votre cœur désire. En général, si vous cherchez également à trouver celle qui vous convient parmi toutes les nombreuses offres de localisation, alors lisez la suite :)

Suite de composants TSILang

  • Développeur: Composants Si
  • Site officiel:
  • Prix ​​à partir 259 $ à 399 $. Le forfait de 259 $ n'inclut pas les sources (DCU et OBJ uniquement)
  • disponible .
  • Date de dernière sortie : 05 mai 2012
  • Prise en charge de Delphi XE2 : disponible

Suite de composants TsiLang® vous permet d'ajouter prise en charge de langues illimitées, et également créer des versions entièrement localisées de produits basées sur version de base projet. Tous les éléments nécessaires de l'interface utilisateur sont automatiquement trouvés et ajoutés à la liste pour traduction, à condition moyens pratiques la sauvegarde et la gestion des traductions et bien sûr le changement de langue de l'interface sont effectués « à la volée », à la fois pendant l'exécution de l'application et en mode concepteur, qui vous permet de tester l'interface même sans compiler et exécuter l'application.

Mon test.

Pour tester, j'ai téléchargé et installé dernière version composants (6.5.4.7) et créé une application simple sur laquelle j'ai placé Button, Label, OpenDialog, ajouté des chaînes de ressources et des constantes. Le gestionnaire « courbe » suivant a été créé spécifiquement pour le bouton OnClick :

procédure TForm19. Button1Click (Expéditeur : TObject ); start ShowMessage("Bonjour tout le monde !" ) ; fin ;

La localisation avec TsiLang s'effectue de la manière suivante :

1. Lancez TsiLang expert depuis le menu Delphi : Outils ->TsiExpert

Tous les formulaires de projet sont affichés ici, ainsi que les composants situés sur ces formulaires. Maintenant, sélectionnez dans le menu Fichier->Langues et modifiez la liste des langues pour notre application. Par défaut, toutes les langues ont des noms comme Langue1, Langue2 etc. Je les ai renommés ainsi :

Après avoir appuyé sur le bouton « Ok », le composant TsiLang est apparu sur le formulaire principal (et unique) de l'application :

Nous trouvons maintenant le bouton « Enregistrer le projet » dans l'expert et sauvegardons notre projet. TsiLang utilise deux types de fichiers de projet :

  1. *.sib - fichier binaire avec des traductions. Les développeurs recommandent d'utiliser ce type de fichier car... le chargement de ces fichiers est beaucoup plus rapide que lors de l'utilisation du deuxième type de fichiers
  2. *.sil - fichiers texte. L’avantage de ce type de fichier est que l’on peut transférer ce fichier avec le « Éditeur SIL» à une autre personne pour traduction.

J'ai enregistré mon projet dans un fichier test.sil.

Maintenant, dans l'expert, double-cliquez sur le nom du formulaire dans la liste - la fenêtre de l'éditeur de traduction s'ouvrira :

Le côté gauche de la fenêtre de l'éditeur (arborescence) contient des groupes de propriétés traduisibles de composants et de chaînes et, par conséquent, le côté droit contient un tableau de traduction. TsiLang peut localiser non seulement les propriétés des composants de type Légende, Indice, Texte etc., mais aussi des lignes de dialogues, par exemple, la figure ci-dessous montre toutes les lignes à traduire de divers Boîtes de dialogue, qui peut être utilisé dans l'application :

Nous commençons à traduire toutes les lignes du russe vers l'anglais. Lors de la traduction de chaque ligne, l'éditeur dans une fenêtre séparée nous montre la longueur de la ligne originale (en pixels) et la longueur de la ligne traduite :

En principe, le but de cette fenêtre d'informations est clair : vous pouvez contrôler les situations dans lesquelles le texte traduit ne rentre pas dans les limites du composant. Bien que, pour moi, il serait pratique d'ajouter la largeur du composant lui-même à cette fenêtre - afin qu'il y ait quelque chose avec lequel comparer les largeurs des lignes.

Une fois toutes les lignes traduites, nous sauvegardons à nouveau notre projet. Maintenant fichier sil devrait contenir quelque chose comme ceci :

séquence de caractères #$ est un séparateur que nous pouvons définir nous-mêmes lors de la sauvegarde du fichier. Lors du processus de traduction des lignes dans l'éditeur, vous pouvez remarquer que TsiLang n'a en aucun cas pris en compte le fait que le fichier pas du formulaire contient à la fois une section resourcestring et const, et même une ligne de texte dans le gestionnaire OnClick. Pour ajouter ces lignes à la traduction, vous devez sélectionner l'expert TsiLang dans le menu :

  • Fichier -> Source -> Avec Formulaire - de sélectionner des lignes dans la section implémentation du module,
  • Fichier -> Source -> Avec Formulaire- pour sélectionner toutes les constantes de chaîne et les chaînes de ressources

En conséquence, une fenêtre avec les résultats de la recherche s'ouvrira dans laquelle vous pourrez ajouter une ligne à la liste des exceptions ou la remplacer par un appel à la fonction TsiLang :

Cliquez sur le bouton « Modifier la source » dans cette fenêtre et recevez le message suivant :

Nous ouvrons le fichier pas et voyons l'image étrange suivante :

Il m'a semblé étrange que TsiLang définisse parfaitement les constantes de chaîne dans le fichier pas et modifie même le code source tout seul, mais pour une raison quelconque, il est trop paresseux pour définir var lui-même - eh bien, ils auraient dû créer une option supplémentaire dans le projet de traduction des paramètres tels que « Définir VAR pour les constantes avec des chaînes » » et « Modifier les paramètres du compilateur ». Mais ce n'est pas grave : il y a une fenêtre avec un message et c'est du pain. Ce que je ne comprends vraiment pas, c'est où TsiLang a trouvé dans mon projet hiéroglyphes incompréhensibles? Je pensais que cela pouvait être dû au fait que le fichier pas était enregistré en ANSI, mais non - je l'ai changé en UTF8, mais le problème avec les hiéroglyphes est resté... En général, c'est étrange.

Une fois les lignes placées dans la traduction, vous pouvez ouvrir à nouveau l'éditeur de traduction et effectuer la traduction du groupe Cordes(heureusement, les lignes passent dans l'éditeur sans distorsion) :

Une fois que toutes les chaînes ont été traduites et que le fichier sil a été enregistré, vous pouvez changer de langue dans votre programme. En TsiLang, chaque langue possède son propre identifiant de type entier. Par exemple, dans mon cas, les identifiants ressemblaient à ceci :

  • Russe = 1
  • Anglais = 2

Maintenant, pour que l'interface de mon programme passe à langue anglaise Tout ce que vous avez à faire est d'insérer ce code quelque part :

siLang_Form19. LangueActive : = 2

Cela amènera TsiLang à charger les lignes dans la langue requise à partir du fichier sil.
Quant à l'utilisation du dictionnaire de traduction, il ne peut transférer que des chaînes (pré-créées) vers le dictionnaire qui ont déjà été traduites. Pour ce faire, vous pouvez utiliser le même éditeur de traduction - cliquez sur le bouton « Ajouter tout » dans l'éditeur, conçu pour transférer toutes les traductions vers le dictionnaire et obtenez cette fenêtre pour sélectionner les options de transfert nécessaires :

sélectionnez le fichier du dictionnaire ici, cliquez sur « Ok » et récupérez toutes les chaînes traduites dans votre dictionnaire, qui ressemble d'ailleurs à ceci :

Par la suite, ce dictionnaire peut être utilisé pour traductions automatiques lignes dans vos programmes. Eh bien, comme je l'ai dit plus haut, pour travailler avec des fichiers SIL, il existe utilitaire séparé appelé SIL Editor, destiné aux traducteurs. Pour la pureté de l'expérience, j'ai copié le dossier de SIL Editor sur une clé USB et lancé le programme depuis la machine virtuelle « Windows XP Mode » :

Éditeur SIL vous permet de traduire à l'aide de dictionnaires et manuellement, et également, si nécessaire, d'ajouter de nouvelles langues à la traduction.

Autres fonctionnalités de TsiLang :

  1. Importation de dictionnaires à partir de fichiers doc, html, xls, csv, po
  2. Importation de chaînes de ressources à partir de fichiers exécutables
  3. Disponibilité de ses propres composants - boîtes de dialogue d'ouverture de fichiers, étiquettes, listes, etc.
  4. Maintenir des statistiques de traduction

L'examen s'est avéré assez long, mais l'outil en vaut la peine. Résumons :

Avantages :

  1. Se connecte simplement au projet - déposez le composant sur le formulaire, appelez 1 méthode et l'interface est traduite
  2. Éditeur de traduction pratique - toutes les lignes sont disposées, comme on dit, "sur des étagères", vous pouvez naviguer rapidement dans l'arborescence dans la recherche les lignes requises pour traduire
  3. Prend en charge les fichiers binaires et texte avec traductions. Nous avons créé un fichier sil, l'avons donné au traducteur, puis l'avons enregistré dans sib et tout est prêt - et le programme fonctionnera plus rapidement et personne d'autre n'interférera avec la traduction.
  4. Disponibilité d'outils pour les traducteurs (éditeur SIL, dictionnaires)

Défauts:

  1. « Corrompt » les lignes russes dans un fichier pas. Même s'ils sont contenus dans les commentaires, le fait est néanmoins évident.
  2. Au cours du travail, d'étranges erreurs ont été découvertes lors de l'utilisation de dictionnaires. Par exemple, lors du transfert de chaînes traduites vers le dictionnaire, une erreur hors plage apparaissait de temps en temps.
  3. Problèmes mineurs avec Windows. Bien sûr, ils n'interfèrent pas avec votre vie, mais néanmoins, ce n'est pas bien lorsque vous appelez le dictionnaire, et il disparaît d'une manière ou d'une autre dans le panneau de configuration.

En principe, les inconvénients ci-dessus (à l'exception du second) ne sont pas si critiques.

Package de localisation DKLang

  • Développeur: DKLogiciel
  • Site officiel : www.dk-soft.org
  • Prix: gratuitement
  • Date de dernière sortie : 25.12.2008
  • Prise en charge de Delphi XE2 : Non

Je ne peux rien dire sur cette solution de localisation sauf qu'elle existe tout simplement, car... Je n'ai même pas pris la peine de télécharger l'archive, malgré le fait que les composants sont gratuits.

Premièrement, la date de la dernière version est alarmante - 2008- ce n'est pas un fait que les composants fonctionneront sans problème dans XE2.

Deuxièmement, le package nécessite installation supplémentaire Composants Contrôles TNT Unicode 2.3.0, qui en 2012 sont déjà superflus - Unicode est déjà pris en charge.

Par conséquent, si vous avez quelque chose à dire sur cette décision - bonne ou mauvaise - écrivez-le dans les commentaires et j'ajouterai vos commentaires à l'examen.

MISE À JOUR: à propos du package de localisation DKLang. Bref et clair.

MISE À JOUR 2: DKLang dans XE2

Localisateur avancé EMS

  • Développeur: SME
  • Site officiel : www.sqlmanager.net
  • Prix: 2 900,00 RUB
  • Disponibilité de la version d'essai : disponible
  • Date de dernière sortie : 13 janvier 2012
  • Prise en charge de Delphi XE2 : disponible

Ce que disent les développeurs de leur produit :

Localisateur avancé™ est un package essentiel de composants pour Borland® Delphi® qui vous permet d'ajouter la prise en charge du langage à vos applications Delphi®. Large gamme d'options de forfaits Localisateur avancé vous permettent de localiser rapidement et facilement les propriétés des composants de chaque formulaire, de créer des fichiers de langue avec les valeurs actuelles des propriétés des composants, de gérer les fichiers de localisation, et également d'attribuer des composants et leurs propriétés à localiser. Langue des applications utilisant Localisateur avancé, peut être commuté sur un autre directement pendant le fonctionnement sans redémarrer ensuite l'application. Advanced Localizer offre également la possibilité d'écrire des applications descendantes qui utilisent des fichiers de langue spécifiés par l'utilisateur.

Comme nous n’en avons pas d’« irremplaçables », j’ai effectué mon petit test de ces composants sur le même petite application sous 1 forme.
Mon test
J'ai téléchargé et installé le package de composants dans Delphi XE2 et ouvert le projet. Delphi est apparu dans la palette des composants nouvel encart- Localisateur avancé EMS. Depuis cet onglet, je dépose les composants sur le formulaire :

  1. TQLangageSource
  2. TQFormLocalizer

U TQFormLocalizer dans la propriété Source nous indiquons TQLangageSource et mettons-nous au travail.

Tout d'abord, nous créons des fichiers pour les chaînes localisées - nous créons deux fichiers vides avec des extensions *.lng (l'extension par défaut pour EMS Localizer) et les appelons simplement - rus et eng.

Vous n'êtes pas obligé de créer ces fichiers - ils seront créés automatiquement lors de la traduction

Double-cliquez maintenant sur le composant TQLanguageSource pour appeler le gestionnaire de fichiers de langue :

Cliquez sur le seul bouton actif et ajoutez des fichiers :

Maintenant, selon l'idée des développeurs, une nouvelle entrée devrait apparaître dans la liste du manager... mais ce n'est pas le cas. Voici les valeurs contenues dans la propriété Languages ​​du composant :

Cependant, la liste éditeur visuel impeccablement propre. Eh bien, que Dieu le bénisse avec la liste - nous essayons de traduire notre candidature. Double-cliquez sur le deuxième composant (TQFormLocalizer) pour appeler l'éditeur de traduction :

Dans l'éditeur, en plus de traduire des chaînes, nous pouvons également ajouter un nouveau fichier de langue, modifier une langue existante ou sélectionner la langue par défaut. Comme vous pouvez le voir sur la figure, seules les lignes contenues dans les propriétés des composants entrent dans l'éditeur, tandis que les lignes de ressources et les constantes passent inaperçues, ce qui peut être considéré comme un inconvénient de ces composants.

Après avoir traduit toutes les chaînes, vous pouvez ajouter une option au programme pour changer la langue de l'interface. Cela se fait à peu près de la même manière qu'en TsiLang - en indiquant l'index de la langue active :

QLanguageSource1. LangueActive : = 1 ;

Dans le même temps, si la langue par défaut est utilisée (marquée comme « Original »), alors son indice est -1, et pour le reste il part de zéro et augmente dans l'ordre dans la liste Langues.

Autres fonctionnalités d'EMS Advanced Localizer :

Résumer.

Avantages :

  1. Les composants sont faciles à utiliser - il a fallu environ 5 minutes pour comprendre quoi et comment cela fonctionne.
  2. Pas cher du tout
  3. Il est possible de stocker les traductions dans une base de données

Défauts:

  1. Il n'y a pas de support pour les dictionnaires et, par conséquent, les traductions automatiques
  2. Problèmes dans un gestionnaire de langue simple
  3. La traduction des constantes et des chaînes de ressources n'est pas prise en charge
  4. Aucun outil pour les traducteurs tiers

En général, mon avis sur Localisateur avancé EMS- des composants assez pratiques pour travailler sur des petits projets, mais pour des projets plus ou moins grands qui nécessitent la prise en charge de nombreuses langues, le travail de plusieurs personnes sur la traduction, etc. Malheureusement, cet ensemble de composants est plutôt faible.

Localisateur Korzh

  • Développeur: Outils de développement KORZH
  • Site officiel : devtools.korzh.com
  • Prix ​​à partir 149,0 EUR à 649,0 EUR
  • Disponibilité de la version d'essai : disponible
  • Date de dernière sortie : 23 juillet 2012
  • Prise en charge de Delphi XE2 : disponible .

Ce que disent les développeurs de leur produit :

Un fichier EXE peut prendre en charge plusieurs langues. Des langues supplémentaires peuvent être ajoutées sans recompilation. Pas besoin de créer de nombreux fichiers exe
Les données de chaîne peuvent être stockées à la fois dans des DLL de ressources standard et dans des fichiers de langage spéciaux
Pendant la localisation, le code du programme change très peu (littéralement quelques lignes) ou ne change pas du tout. Localizer ne modifie pas le projet d'application, car aucun composant supplémentaire n'est utilisé
Un projet localisé peut être démarré pour compilation sans que Localizer soit installé
Localizer traduit à la fois les ressources de la VCL et toutes les autres ressources
Prend en charge le stockage des traductions en standard Référentiel de traduction et leur réutilisation dans le futur
Prend en charge tous les composants et packages tiers (par exemple DevExpress, TurboPower, ElPack, RX, etc.)
Le processus de traduction peut être effectué à l'aide de l'utilitaire intégré Gestionnaire de langues, disponible gratuitement en téléchargement par les traducteurs
Migration facile depuis Borland ITE (Integrated Translation Environment)

Mon test

J'ai téléchargé la version d'essai, qui diffère de version complète est que Localizer ne traduit que les 30 premières lignes de chaque formulaire/fichier. Installé Après quoi un nouvel élément est apparu dans le menu principal de Delphi XE2 :

J'ai sélectionné « Démarrer la localisation du projet » dans le menu, et par conséquent, on m'a demandé de sélectionner la langue principale du projet et de spécifier le dossier dans lequel stocker le fichier de langue :

Après avoir cliqué sur « Localiser le projet mu ! » la recompilation du projet a été lancée et les modules et appels nécessaires aux méthodes Korzh Localizer ont été ajoutés au fichier dpr du projet :

utilise (...) , LocOnFly, (Form18) ; ($R Project16.KLR) ($R *.res) démarrez LocalizerOnFly. InitReg ; (...) fin .

De plus, immédiatement après le message d'information indiquant que mon projet a été localisé, Language Manager a lancé :

Dans la boîte de dialogue de sélection d'une nouvelle langue pour la localisation, il existe une option intéressante : "Essayez de traduire automatiquement via Google". Cependant, cette option ne fonctionne pas actuellement :

Cela n’est pas dû au fait que les développeurs ont fait quelque chose de mal. La raison réside dans le fait que Google a transféré l’API Translate sur une base commerciale et, si je ne me trompe pas, ils n’y ont accédé que via OAuth 2.0. Ainsi, apparemment, dans les prochaines éditions de Korzh Localizer, cette option disparaîtra ou sera utilisée pour des API plus accessibles, par exemple pour l'API Bing Translator.

Après avoir ajouté une langue pour la localisation, un tableau apparaît dans Language Manager pour traduire les chaînes trouvées dans le projet. En plus de ce qui se trouve directement dans le projet, Korzh Localizer vous permet également de localiser les chaînes contenues dans d'autres modules Delphi :

Après la traduction, Localizer peut vous montrer des statistiques - combien de lignes ont été traduites, le pourcentage de traduction, etc., cependant, même ici, une erreur a été trouvée lors du passage à l'onglet « Éléments externes » :

L'assistant (appelons-le ainsi) propose de sélectionner des modules pour rechercher des chaînes, et propose également deux options pour stocker les chaînes - dans un fichier de ressources ou dans un fichier pas :

J'ai laissé tous les paramètres par défaut. Il y avait trois lignes dans le module - une dans la section resourcestring, la deuxième dans const et la troisième dans le gestionnaire OnClick du bouton. En conséquence, Korzh Localizer a déterminé ce qui suit :

Après avoir cliqué sur « Suivant », l'EDI a affiché le message suivant :

Après avoir cliqué sur « Oui », les utilisations ont été ajoutées nouveau module, contenant la section resourcestring dans laquelle se trouve une chaîne trouvée. Le gestionnaire OnClick du bouton a également changé et ressemble désormais à ceci :

procédure TForm19. Button1Click (Expéditeur : TObject ); commencer ShowMessage(SIgeaaoIeg) ; fin ;

La ligne n'est pas apparue dans le gestionnaire de langue - on suppose peut-être que de telles lignes seront traduites sans gestionnaire, ou peut-être qu'elles sont astucieusement ajoutées au gestionnaire - je n'ai pas examiné cela en détail. Je dois juste vérifier comment se déroule la localisation. Pour que le projet « parle » dans une autre langue, il suffisait de sélectionner la langue souhaitée dans le menu principal :

Après quoi, l'EDI a de nouveau signalé que le fichier avait été modifié et a demandé de le recharger. J'ai redémarré, assemblé le projet et reçu la candidature en anglais :

Autres fonctionnalités de Korzh Localizer :

  1. Création/import/export de référentiels. L'import et l'export s'effectuent aux formats XML ou TMX.
  2. Prend en charge plusieurs langues pour la localisation - un fichier distinct est créé pour chaque langue
  3. Peut fonctionner avec des fichiers EXE et DLL.

Avantages :

  1. Ne nécessite aucun composant sur le formulaire - tout ce qui est nécessaire Localisateur Korzh se connecte lui-même à dpr .
  2. Il existe un outil pour les traducteurs
  3. Il est possible de créer/importer/exporter des référentiels

Défauts:

  1. En travaillant avec les outils, j'ai découvert divers types de défauts tels que des erreurs (voir captures d'écran ci-dessus), des défauts dans l'interface, la présence d'options qui ne fonctionnent pas (alors que Google a fermé l'accès à l'API il y a longtemps, et le la sortie du localizer était relativement récente). Tout cela crée un sentiment d’abandon du projet.
  2. Les chaînes de ressources ne se retrouvent pas dans le gestionnaire de langues ou, d'une manière ou d'une autre, c'est si délicat que vous ne pouvez pas savoir immédiatement où cliquer ou quoi ajouter où.

Dans l'ensemble, je le laisserais pour l'instant Localisateur Korzh comme option de sauvegarde au cas où il n'y aurait rien de plus approprié . En plus des inconvénients décrits ci-dessus , Ô L'une des raisons de cette conclusion était le temps qu'il a fallu pour s'habituer à travailler avec l'outil - de tous les outils discutés ci-dessus, Korzh Localizer a pris le plus de temps.

GNU gettext pour la boîte à outils Delphi et C++ Builder

  • Développeur: dxgettext.po.dk
  • Site officiel : dxgettext.po.dk
  • Prix: gratuitement
  • Date de dernière sortie : inconnue
  • Prise en charge de Delphi XE2 : Non

Malgré le fait qu'il n'y ait pas de support pour Delphi XE2, j'ai quand même décidé de télécharger et d'essayer cette bibliothèque. Malheureusement, après avoir connecté dxgettext.pas au projet, des erreurs ont commencé à apparaître - quelque part au lieu de ansiString, ils ont spécifié une chaîne, ils ont utilisé des méthodes marquées comme obsolètes, ils ont utilisé des paramètres de méthode incorrects (peut-être dans Delphi 2009, un tel code a été compilé, mais dans XE2 - pas ). En général, beaucoup de choses sont sorties... C'est dommage. J'ai utilisé cette bibliothèque à plusieurs reprises dans Lazarus et, je dois dire, je l'ai aimée. Bien sûr, pour les projets existants, il sera assez problématique d'implémenter DXGetText, mais pour les nouveaux, il s'agit d'une bibliothèque tout à fait tolérable et pratique. Il existe plusieurs utilitaires pour les traducteurs, la mémoire de traduction, etc. En général, si vous envisagez de démarrer un projet en utilisant la version Delphi avant 2009 et que vous avez besoin d'une bibliothèque pour la localisation et l'internationalisation du projet, essayez-la DXGetText.

Forfait i18n

  • Développeur: Kambiz R. Khojasteh
  • Site officiel : www.delphiarea.com
  • Prix: gratuitement
  • Date de dernière sortie : 19 août 2012
  • Prise en charge de Delphi XE2 : Non (selon les informations sur le site officiel)

Package i18n v1.10 pour Delph i est toute une bibliothèque de composants conçus pour la localisation et l'internationalisation de projets. Malgré le fait que le support de Delphi XE2 ne soit pas officiellement déclaré, cette bibliothèque a été installée dans Delphi XE2 sans aucun problème, j'ai donc décidé de la tester un peu.

Le package comprend plus de 30 composants différents prenant en charge la localisation, mais, comme vous le comprenez, un autre point m'intéresse : cette bibliothèque peut-elle être utilisée pour localiser un projet existant avec un tas de formulaires, de boîtes de dialogue, de chaînes de ressources, etc.

Ainsi, le travail de localisation à l'aide du package i18n se déroule comme suit :

  1. Déposez le composant TLocalizer sur le formulaire principal
  2. Sur tous les autres formulaires (y compris le principal), nous ajoutons un composant pour la traduction - TTranslator
  3. Pour localiser les boîtes de dialogue, vous devez également placer le composant TMessageBox sur le formulaire principal et y spécifier les en-têtes, icônes, etc.

Nous devons maintenant créer un fichier avec des sauts de ligne. Pour ce faire, double-cliquez sur le composant TTranslator - un éditeur s'ouvrira dans lequel vous devrez sélectionner les propriétés et les chaînes que nous traduirons :

Si vous avez besoin d'internationaliser le projet, ne touchez à rien dans le champ « Valeur de la propriété », car l'ajout de nouvelles langues et la traduction des chaînes se font dans un utilitaire séparé

Une fois les éléments nécessaires sélectionnés, allez dans l'onglet Exporter, indiquez la langue dans laquelle nos lignes sont écrites (c'est-à-dire le russe) et exportez les lignes vers un fichier *.i18n :

Le fichier a été créé - vous pouvez commencer à traduire. Dans le dossier Bin de la bibliothèque il y a utilitaire spécial appelé i18n Editor, destiné aux traductions.

Le programme est assez simple à utiliser et je pense que vous vous y habituerez très rapidement. Je dirai juste ça Éditeur i18n est capable « d'apprendre » - pour cela, le programme doit spécifier le dossier dans lequel se trouvent les fichiers *.i18n prêts à l'emploi et le programme les analysera automatiquement et en extraira de nouvelles phrases.

Après tout lignes requises traduit, nous retournons à Delphi et spécifions notre fichier avec les localisations dans la propriété URI du composant TLocalizer. Nous ajoutons maintenant le composant TCultureBox au formulaire et spécifions Localiwer1 dans sa propriété Localizaer (si le composant n'a pas été renommé).

Vous pouvez maintenant exécuter le programme et vous assurer que la traduction de l'interface est réussie :

Avantages :

  1. Pour son prix - 0,0 $, c'est une qualité assez élevée (fonctionne très bien dans Delphi XE2)

Défauts:

  1. L'analyseur ne détecte pas les constantes de chaîne de ressource et de chaîne, et les chaînes détectées et traduites à partir du code du programme ne sont toujours pas localisées.
  2. Pour chaque formulaire/module, vous devez utiliser votre propre TTranslator, ce qui n'est pas tout à fait pratique. Il serait plus logique de faire un petit scanner de l'ensemble du projet pour la présence de chaînes, comme cela se fait par exemple avec DXGetText

La conclusion générale sur la bibliothèque peut être tirée comme suit : pour le rapport qualité/prix, c'est une excellente bibliothèque qui vous permet de créer un support multilingue dans de petits projets avec pratiquement aucun problème. Le travail de la bibliothèque avec des chaînes ne provenant pas des propriétés des composants gâche un peu l'impression ; je pense que si le projet est vivant (et à en juger par la version, le projet est bien vivant), alors ce problème ennuyeux sera résolu.

Localisateur Delphi de Kryvich

  • Développeur: Kryvitch
  • Site officiel : sites.google.com/site/kryvich/localizer
  • Prix: gratuitement
  • Date de dernière sortie : 7 janvier 2012
  • Prise en charge de Delphi XE2 : disponible

Un autre bibliothèque gratuite pour la localisation et l'internationalisation des applications Delphi. Selon les auteurs du projet, avec cette bibliothèque, la localisation de nos applications devrait se dérouler sans aucun problème. Vérifions si cela est réellement vrai.

Tout d'abord, nous devons modifier les options du projet. Passons à l'EDI : Projet->Options->Lien et installer Fichier de carte = détaillé

Maintenant, nous assemblons le projet et obtenons trois fichiers - *.exe, *.drc et *.map. Nous lançons maintenant l'utilitaire de console kdlscan.exe, qui se trouve dans le dossier contenant la bibliothèque. L'utilitaire se lance avec le paramètre :

kdlscan


où est le nom de notre fichier exe.

L'analyseur parcourt le projet et extrait les chaînes de ressources et les chaînes des propriétés des composants et les place dans un fichier avec l'extension *.lng. Ce fichier est un fichier ini standard, alors n'hésitez pas à l'ouvrir avec n'importe quel éditeur et à traduire toutes les lignes si nécessaire.

Après traduction, nous enregistrons le fichier résultant, par exemple sous le nom anglais.lng.

Commençons maintenant à travailler sur le projet. Pour prendre en charge la localisation, ajoutez-le aux utilisations forme principale uFreeLocalizer.pas, déposez également le module uStringUtils.pas dans le dossier du projet et écrivez à n'importe quel endroit pratique du programme :

Localisateur gratuit. Traduction automatique :=Vrai ; Localisateur gratuit. LanguageDir:=ExtractFilePath(Application.ExeName); Localisateur gratuit. Fichier Langue : = "anglais.lng" ;

Les deux premières lignes peuvent être écrites dans un fichier dpr et le module localisateur peut y être connecté. Tous. Vous pouvez exécuter le programme et vérifier son fonctionnement.

Avantages :

  1. Bibliothèque très simple à utiliser
  2. Compact

Défauts:

  1. Pas de dictionnaires
  2. Le scanner ne détecte pas les chaînes et constantes codées en dur

En général, la bibliothèque est tout à fait adaptée aux projets comportant un petit nombre de lignes à localiser. Néanmoins, travailler sur un fichier ini se fera sentir lorsqu'il y aura une grande quantité de données.

JVCL (Bibliothèque de composants visuels JEDI)

  • Développeur: Projet JEDI
  • Site officiel : jvcl.delphi-jedi.org
  • Prix: gratuitement
  • Date de dernière sortie : 11 avril 2011
  • Prise en charge de Delphi XE2 : disponible

Qui ne connaît pas le projet JEDI ? Cette gigantesque bibliothèque est probablement connue de tous ceux qui ont travaillé au moins un peu à Delphi. Cette bibliothèque comprend le composant TjvTraducteur, qui vous permet de localiser les applications Delphi. À en juger par les critiques sur divers forums et blogs, le composant est assez pratique et populaire, mais installer l'ensemble JCL + JVCL juste pour regarder le travail d'un composant miracle ne m'a pas fait sourire. Vous devrez donc rechercher vous-même les avantages et les inconvénients. Et je vais passer à d'autres composants.

Package de composants CnPack (CnVCL)

  • Développeur: CnPack
  • Site officiel : www.cnpack.org
  • Prix: gratuitement
  • Date de dernière sortie : 5 novembre 2011
  • Prise en charge de Delphi XE2 : disponible

Un autre développeur assez mérité, qui a acquis une popularité bien méritée grâce à son produit appelé cnWizards, nous a fourni un ensemble de composants pour la localisation d'applications. Ces composants font partie d'un package distinct - cnVCL et sont distribués gratuitement.

Permettez-moi de noter immédiatement qu'à l'heure actuelle, la dernière version des composants disponibles en téléchargement est marquée comme Alpha, vous ne pouvez donc pas vous attendre à un fonctionnement sans faille de cet ensemble de composants. Mais néanmoins, je vais donner un bref aperçu des composants de localisation.

Ainsi, après avoir installé le package cnVCL, plusieurs nouveaux onglets apparaissent dans la palette des composants :

Sur l'onglet cnMultiLang, il y a 4 composants pour la localisation. Trois d'entre eux: TCnLangManager, TCnLangTraducteur Et TChHashLangFileStorage ou TChIniLangFileStorage doit être inclus dans la demande.

Je dois dire que la version Alpha se fait sentir. Pour comprendre rapidement le fonctionnement de ces composants, j'ai décidé de lancer une petite démo fournie avec le code source des composants... elle s'est bien sûr ouverte dans Delphi XE2, mais quelque chose est complètement étrange :

Eh bien, oui, c'est en principe tolérable - le code source, semble-t-il, n'a pas été grandement "corrigé" et il était plus ou moins possible de comprendre quoi et comment il fonctionne. L'essence du travail est la suivante :

1. Déposez les trois éléments ci-dessus sur le formulaire de candidature (j'ai choisi TCnLangManager, TCnLangTraducteur Et TChIniLangFileStorage)

2. Choisissez maintenant TChIniLangFileStorage et ajouter à la collection Langues de nouvelles langues. Ça devrait ressembler a quelque chose comme ca:

3. Vous TCnLangManager dans la propriété LanguageStorage nous indiquons notre composant CnIniLangFileStorage1

4. Double-cliquez sur TCnLangTraducteur- l'éditeur de traduction de chaînes s'ouvrira :

5. Sélectionnez la langue requise dans l'arborescence et cliquez sur « Gen All » - un tableau avec des chaînes à traduire doit être assemblé. Pour moi, ça s'est passé comme ça :

6. Nous traduisons les lignes nécessaires, supprimons les lignes inutiles et enregistrons le tableau résultant dans un fichier. En conséquence, nous obtenons un fichier ini qui doit être lancé à côté du fichier exe de notre projet.

7. Écrivez une ligne à n’importe quel endroit pratique du programme :

CnLangManager1. IndexLangueActuel : = 0 ;

En conséquence, cette action conduira au fait que le programme sera « traduit » dans une langue qui a l'index 0 dans LangugeStorage, c'est-à-dire dans mon cas - en anglais. Je ne fournirai pas de capture d'écran, je dirai simplement que le composant a fonctionné.

Que peut-on dire des avantages et des inconvénients de ces composants ? Je pense que cela ne vaut pas la peine de tirer des conclusions pour l'instant - après tout, il s'agit d'une version Alpha et toutes sortes de bugs, comportements étranges, etc. sont inévitables. et ainsi de suite. Si le travail sur les composants se poursuit, nous devrions très probablement disposer de composants simples et faciles à utiliser pour la localisation et l'internationalisation des projets. En attendant, il est très, très tôt pour utiliser ces composants dans des applications sérieuses.

Tlang pour FireMonkey

  • Développeur: Embarcadero
  • Site officiel : embarcadero.com
  • Prix: Delphi est inclus dans le prix
  • Date de dernière sortie : 03 septembre 2012
  • Prise en charge de Delphi XE2 : disponible

Je ne parlerai pas en détail de ce composant et de son utilisation, car... Le blog contient déjà un article sur l'utilisation spécifique de Tlang dans FireMonkey. L'article s'appelle "" - vous y trouverez les avantages et les inconvénients de ce composant. Je n'ai pas vérifié le fonctionnement du composant dans Delphi XE3.

Multiliseur

  • Développeur: Entreprise technologique finlandaise
  • Site officiel : www2.multilizer.com
  • Prix: 299 - 2900 euros
  • Date de dernière sortie : inconnu
  • Prise en charge de Delphi XE2 : disponible

Malgré le prix assez élevé du produit, j'ai quand même décidé de voir à quoi ressemblait ce produit. Multilizer est un produit spécialisé qui vous permet de localiser Divers types applications, fichiers, dll, etc. Le package comprend également un ensemble de composants pour Delphi 5 - XE2. Je n'ai pas installé les composants, mais j'ai décidé d'essayer l'application Multilizer elle-même sur mon application.

Tout commence par ce que nous créons nouveau projet pour la localisation :

Nous choisissons la première option. La prochaine étape consiste à choisir un analyseur :

À la troisième étape, Multilizer nous demande de spécifier le fichier à analyser (exe spécifié), effectue l'analyse et affiche le résultat de l'analyse :

L'étape suivante consiste à déterminer la langue maternelle de l'application et à ajouter de nouvelles langues pour la localisation :

Multilizer vous permet également de détecter automatiquement la langue, mais pour une raison quelconque, il vous demande un identifiant et un mot de passe. Compte google 0_O (du moins pas les clés de l'appartement où se trouve l'argent). Je n'ai pas vérifié cette fonction du programme.

Une fois le projet créé, la fenêtre de l'éditeur de traduction s'ouvre et ressemble à ceci :

Le processus de localisation ne se limite souvent pas aux paramètres linguistiques de votre application pour différentes régions. Cela inclut également l'heure, la date et le format d'affichage corrects pour différentes régions. Si vous espérez que votre application a une chance d'atteindre un large public international, vous devez immédiatement penser à la localisation appropriée de l'application, afin de ne pas avoir à fouiller dans le code de l'ensemble du programme et à passer beaucoup de temps le mettre en place pour différentes régions de la planète.

En utilisant SDK Android, la langue des ressources de chaîne localisées utilisées et le format/valeur de l'heure et de la date s'ajusteront automatiquement à la région et à l'environnement linguistique dans lesquels l'appareil fonctionne. La langue est déterminée par la norme ISO 639-1, le pays est la norme ISO 3166-1. Autrement dit, nous pouvons affirmer avec certitude qu'Android est compatible avec la plupart des pays du monde (enfin, peut-être que certaines tribus africaines ne comptent pas :)) et des langues.

Localisation linguistique

Il convient de noter que la seule langue qui sera représentée à 100 % dans n'importe quel Appareil Android est l'anglais américain, désigné par le code fr_US. Pour effectuer la localisation linguistique de votre application, vous devez vous rendre dans son dossier rés/ investissez les ressources supplémentaires que vous jugez nécessaires d’ajouter.

Pour ajouter des langues alternatives à votre application, vous devez créer des dossiers dans le dossier res/root, en leur donnant des noms tels que : res/valeurs-<языковой код> ou res/valeurs-<языковой код>-r<код страны> . Il convient de noter que si vous avez défini des paramètres de langue pour une certaine région, alors lorsqu'ils seront utilisés dans une application dans cette région, ils seront prioritaires, c'est-à-dire qu'ils seront par défaut plus « importants » pour l'application et seront appliqués. avec priorité. Au-dessus de leur priorité ne peut être que ce qu'on appelle indicatif de pays mobile MCC. Indicatif de pays mobile (déterminé à l'aide de code portable Réseaux multinationales de Cartes SIM) détermine les ressources préférentielles pour un pays donné.

Apprenons donc à créer une localisation linguistique. Créez une nouvelle application ou ouvrez une application existante qui n'est pas trop complexe. Nous nous sommes donné pour tâche de localiser notre application pour les régions russophones et anglophones. Pour les paramètres russe langue dans laquelle nous utilisons simplement le dossier existant res/values/strings.xml et créer les ressources de chaînes dont nous avons tant besoin. Pour Anglais même langue, créez un sous-dossier /values-fr dans le dossier rés/ ressources, et créez le fichier suivant avec l'adresse : res/values-fr/strings.xml. Nous ajouterons des ressources de chaînes anglaises à ce fichier que nous avons créé. À quoi devrait ressembler le code :

Pour un fichier avec des ressources en langue russe res/values/strings.xml:

< resources> < string name= "app_name" >Mon application< / string> < string name= "hello_world" >Bonjour le monde!< / string> < string name= "action_settings" >Paramètres< / string> < string name= "word" >Mot< / string> < / resources>

Pour un fichier de localisation en anglaisres/values-fr/strings.xmlles ressources seront les suivantes :

< resources> < string name= "app_name" >Mon application < string name= "hello_world" >Bonjour le monde!< / string> < string name= "action_settings" >Paramètres < string name= "word" >Mot < / resources>

Tout est prêt, désormais lorsqu'il sera lancé dans un pays anglophone, le programme utilisera automatiquement les ressources du dossier res/values-fr/strings.xml et afficher le texte anglais.

Il est à noter que pour que ce mécanisme de localisation linguistique fonctionne correctement dans vos applications, il est nécessaire que les éléments de programme utilisant du texte, par exemple lors de la configuration androïde:text="" pour les objets , attribuez-leur du texte non seulement en écrivant un mot, comme android:text="Bonjour tout le monde !", et un lien vers la ressource de chaîne correspondante créée : android:text="@string/hellow_world".

Si vous souhaitez localiser des chaînes dans le code du programme lui-même, si cela n'a pas été fait dans le fichier mise en page.xml ou d'autres fichiers de balisage d'interface similaires, puis pour localiser ces lignes, vous devez appeler l'objet dans le code android.content.res.Resources, qui contient toutes les ressources du package d'application, et accédez à la ressource requise à partir d'ici en utilisant la méthode obtenir.String. Voici comment localiser notre message « Hello World ! » de cette façon:

// Connectez la ressource requise : android.content.res . Ressources res = contexte. getResources(); Chaîne helloWorld = res. getString(R . string. hello_world); // Lier la chaîne localisée à l'élément TextView bonjourTextView ; helloTextView = (TextView )findViewById(R . id. hello_world_textview); bonjourTextView. setText(bonjourMonde);

Il existe une autre façon de localiser les ressources de chaînes de votre application. C’est assez simple, plus simple que tout ce qui a été et sera discuté ici, mais cela fonctionne quand même. Ainsi, lorsque vous travaillez sur votre application dans des fichiers de balisage comme activité_main.xml, vous pouvez alors configurer la localisation linguistique ici, sans modifier les fichiers de ressources. Peu importe le mode dans lequel vous vous trouvez, Texte ou Design, on retrouve le bouton suivant sur le panneau :

Cliquez dessus, sélectionnez le premier élément - Ajouter une traduction, et une fenêtre apparaît devant nous, nous demandant de sélectionner la langue nécessaire à la localisation. Recherchez la langue souhaitée dans la liste, cliquez dessus et voyez une nouvelle fenêtre :

Comme vous pouvez le constater, le tableau qui apparaît comporte 3 colonnes : Clé, Défwalt, russe (ru) (car j'ai choisi le russe pour la localisation). Le premier affiche les ressources de chaîne que nous avons dans le fichier res/values/strings.xml, dans le second - leur valeur dans le même fichier res/values/strings.xml, eh bien, la 3ème fenêtre nous permettra de saisir ici la traduction de toutes les ressources de chaînes existantes. Saisissez la traduction souhaitée et cliquez sur OK. On voit que le fichier s'est ouvert ru\string.xml, ce qui signifie que le programme lui-même a créé le dossier nécessaire à la localisation en russe. Tout est prêt !

Localisation de l'heure et de la date

De nombreuses applications doivent fonctionner avec l'heure et la date actuelles. Imaginez la déception de vos utilisateurs, qui étaient au départ si satisfaits de la présence de la localisation linguistique qu'ils étaient déjà prêts à acheter version complète programme, et le voici pour vous - votre programme félicite un habitant du Kamtchatka pour la nouvelle année une demi-journée plus tard qu'il n'aurait dû l'être. C'est tout, au revoir utilisateur ! Par conséquent, comme vous pouvez le constater, la localisation de l'heure et de la date est également une question importante, et le SDK Android dispose d'outils permettant de définir la date et l'heure en fonction de l'emplacement de l'appareil.

Localisation des dates

La définition de la localisation de la date peut être effectuée à l'aide de la classe Format de date dans l'espace de noms android.text.format. Le fragment de code suivant montre comment obtenir une chaîne avec une valeur de date formatée pour les paramètres régionaux de l'appareil :

// Récupère l'heure et la date actuelles : Date currentDate = Calendrier . getInstance(). obtenir du temps(); // Obtenir vue générale dates pour la localisation actuelle de l'appareil : java.text . Format de date format de date; dateFormat = android.text.format . Format de date. getDateFormat(ce); //Formate la date actuelle en fonction de l'emplacement de l'appareil : Chaîne formatéeCurrentDate = dateFormat. format(dateactuelle);

Si l'emplacement actuel de l'appareil est, par exemple, les États-Unis, le format de date local s'affichera sous la forme 11/29/2014 . Classe Format de date D'autres formats de date peuvent être configurés. Si au lieu de la commande obtenirFormatDate effectuer, par exemple, getLongDateFormat, nous obtiendrons alors la date sous cette forme : lundi 29 décembre 2014.

Localisation temporelle

Puisque le temps est représenté dans le SDK Android comme Date objets, il est également configuré par la classe Format de date dans l'espace de noms android.text.format. Ici, tout se fait à peu près de la même manière que pour le réglage de la date, en utilisant la même méthode. Regardons le code :

// Configurer l'heure et la date actuelles java.util . Date currentDate = Calendrier . getInstance(). obtenir du temps(); // Configurer affichage correct heure de la localisation actuelle de l'appareil java.text . Format de date format de l'heure; timeFormat = android.text.format . Format de date. getTimeFormat(ce); // Configurer le format de l'heure conformément à la localisation de l'appareil Chaîne formatéeTime = timeFormat. format(dateactuelle);

Si vous voulez que votre application réussisse Utilisateurs Google Jouez depuis le monde entier, vous devez le localiser.

Mots clés

  • Publication
  • Marché mondial
  • Développement
  • Essai

Note. Des informations détaillées Pour plus d’informations sur la manière de commercialiser vos applications sur de nouveaux marchés, lisez le Going Global Playbook.

Étant donné que la localisation affecte l’ensemble du cycle de développement d’applications, une planification adéquate du processus est nécessaire. La liste de contrôle contient les étapes de base pour préparer votre candidature à une publication réussie dans différents pays.

Liste de contrôle

  • Identifiez les pays offrant des conditions favorables pour entrer sur le marché.
  • Utiliser Données Google Jouez pour trouver de nouvelles opportunités. Si votre application est publiée, vous pouvez l'afficher dans la console développeur. Vous y trouverez les pays dont les résidents visitent activement votre page de candidature sur Google Play. En localisant votre application, vous augmenterez certainement le nombre d'installations dans ces pays.
  • Utilisez un ensemble universel de mises en page avec de légères variations. Incluez l'ensemble des ressources dans l'application par défaut, prenez en charge l'écriture de texte de droite à gauche, utilisez le format système pour les dates, les heures, les nombres et les devises.
  • Considérez les caractéristiques des marchés émergents. En savoir plus sur l'optimisation Applications Android pour les appareils et les réseaux à faible coût avec une bande passante minimale.
  • Incluez toutes les chaînes dans le fichier strings.xml, fournissez des informations complètes et précises, suivez les directives de style Material Design et identifiez le contenu qui n'a pas besoin d'être traduit.
  • Traduisez votre application, vos données Google Play et bien plus encore. Pour cela, vous pouvez contacter les utilisateurs de votre application, une agence de traduction ou utiliser le service de traduction d'applications dans Google Play Developer Console ou Android Studio.
  • Assurez-vous de tester l'application sur des appareils standard pour vos marchés cibles. Vérifiez les erreurs dans l'interface et, si nécessaire, demandez de l'aide à des locuteurs natifs.
  • Publiez la version bêta dans les principaux pays pour obtenir les commentaires des vrais utilisateurs.
  • Préparez-vous à progresser à l’échelle mondiale. Planifiez des campagnes d'installation d'applications et d'autres activités similaires pour différents pays. Utilisez le générateur d'icônes Google Play pour créer des icônes localisées que vous pouvez afficher sur des sites Web et dans des supports marketing. Ajoutez des captures d'écran de votre application localisée à votre matériel promotionnel à l'aide de l'outil.
  • Utilisez les conseils d’optimisation. Vérifiez que vos données Google Play sont complètes et recevez d'autres rappels utiles dans la console développeur pour vous aider à publier votre application avec succès.
  • Effectuer un examen final et publier la candidature. Avez-vous effectué toutes les étapes de cette liste ? Vous êtes alors prêt à publier et promouvoir votre candidature dans le pays cible.
  • Assurer le support aux utilisateurs après la publication de l'application. Assurez-vous de suivre les notes et les avis, de télécharger des statistiques afin de connaître les problèmes émergents à temps. Si possible, créez des communautés ou des forums distincts pour différentes langues.

Ce guide vous montrera comment convertir des langues monolingues Application iOS, créé à l'aide de Xcode, en multilingue.

Téléchargez votre fichier de ressources et obtenez un devis final maintenant.

Fichier de ressources iOS :

Format de fichier:
UTF-16 Unicode UTF-8 Unicode

De la langue :

Langue:
— Chinois (simplifié) Chinois (traditionnel) Danois Néerlandais Anglais Français Allemand Italien Japonais Portugais Russe Espagnol — Arabe Basque Catalan Tchèque Finnois Grec Hébreu Hindi Hongrois Latin Macédonien Norvégien Penjabi Persan Polonais Portugais (Portugal) Roumain Suédois Tamoul Thaï Turc Ukrainien Vietnamien

Avez-vous déjà des traducteurs ?

Nous proposons l'utilisation gratuite de notre système de traduction et réduisons le temps nécessaire à la gestion et à la coordination du travail de traduction de votre candidature.

Introduction

Le processus de localisation d'une application iOS comprend les éléments suivants :

  1. Préparation des fichiers de ressources pour la localisation.
  2. Collecte de tous les textes utilisés dans l'application dans des fichiers de ressources.
  3. Traduction de fichiers de ressources.
  4. Réintégration des fichiers de ressources dans l'application.

Étant donné que les applications iOS sont multilingues par conception, l'appareil sait déjà quoi faire si votre application est disponible en plusieurs langues. Il affichera les textes de l'interface graphique dans la langue souhaitée, en fonction des paramètres de langue de l'appareil.

Toutes les applications iOS sont créées à l'aide de textes Unicode codés en UTF-16. Les simulateurs iPhone et iPad prennent en charge ce format et vous permettent de prévisualiser l'application traduite.

1. Créez des ressources localisées dans Xcode

Déplacez le fichier de ressources vers le nouveau répertoire de localisation, puis faites glisser la ressource dans votre projet Xcode. Xcode reconnaît désormais la ressource comme localisée dans langue donnée. Répétez ces étapes pour tous les autres fichiers de ressources qui doivent être localisés.

2. Localisation des fichiers Interface Builder

Extraction de chaînes

Pour extraire des chaînes de fichiers de ressources Constructeur d'interfaces vous devez exécuter un outil comme ibtool, qui est inclus dans installation standard kit de développement.

Pour extraire des fichiers, ouvrez Terminal dans le répertoire du projet et exécutez la commande :
ibtool --generate-strings-file Exemple.strings en.lpoj/Example.xib
Cela créera un fichier Exemple.strings. Ouvrez-le et vous verrez de nombreuses valeurs d'objets de chaîne appariées.

Veuillez lire attentivement ce document et vérifier son contenu. Vous pouvez supprimer les chaînes inutiles qui ne nécessitent pas de traduction.

Gestion des lignes en double

Le fichier de ressources peut contenir des lignes en double, telles que des noms de boutons dans différents états.

Certaines chaînes répétitives ne doivent être traduites qu'une seule fois, tandis que d'autres chaînes répétitives ont des traductions différentes. Le même nom de bouton dans différents états doit avoir la même traduction. Cependant, une chaîne peut être soit un nom, soit un verbe.

Vous pouvez supprimer les chaînes en double supplémentaires (avec la même traduction) du fichier de ressources, ou les laisser dedans et demander au traducteur de les traiter comme des chaînes en double.

Vous êtes presque prêt à sortir, assurez-vous simplement de le vérifier.

Voici quelques éléments auxquels il faut prêter attention :

Erreur de calcul Que peut-il arriver Comment réparer
Les chaînes traduites sont hors limites L'allemand, le français, l'espagnol et les autres langues européennes font généralement entre 120 et 150 % de la taille du texte anglais. Les langues asiatiques représentent généralement 50 à 70 %. Nous recommandons d'adapter Interface graphiqueà des lignes de différentes tailles. Le système de localisation iOS ICanLocalize vérifie la longueur des chaînes et avertit si les chaînes sont trop longues ou trop courtes.
Caractères de formatage manquants De nombreuses lignes contiennent des espaces réservés pour les données, tels que %s pour le texte et %d pour les nombres. D'autres lignes incluent du code HTML. Si la traduction n'inclut pas le même formatage, l'application ne fonctionnera pas. Notre système de traduction vous permet de saisir les séquences « requises ». Cela garantira que les traductions incluent les mêmes séquences que les originaux. Sinon, vous devez parcourir manuellement toutes les lignes et vous assurer que les caractères de formatage correspondent.
Traduction hors contexte Il est toujours possible que le traducteur n’ait pas entièrement compris le sens de la ligne. Cela se produit lorsque les applications contiennent des lignes courtes et non descriptives. Avant de commencer les travaux, envoyez Description complète applications de traduction. Après cela, prenez des captures d'écran de l'application et envoyez-les au traducteur pour vérification finale. L'ajout de commentaires aux chaînes vous aidera à obtenir une excellente traduction.

Dépannage

Si des chaînes Localizing.strings sont présentes dans le fichier traduit mais ne sont pas localisées sur l'appareil, vérifiez le codage des caractères du fichier.

Contrairement au simulateur iPhone, le véritable appareil ne reconnaît que les fichiers de chaînes UTF-16. Vérifiez toujours les localisations sur votre appareil, car le simulateur et l'appareil ne se comportent pas toujours de la même manière.

Fichiers de ressources traduits téléchargés depuis ICanLocaliser, sont codés en UTF-16. Ils sont contenus dans les archives gzip afin que votre navigateur ne les modifie pas lors du chargement.

Mettre à jour la traduction à mesure que l'application iOS évolue

ICanLocaliser facilite la mise à jour de vos traductions. À mesure qu'une application évolue, de nouvelles lignes sont créées et les lignes existantes peuvent changer.

Pour mettre à jour les traductions, réexécutez Genstrings, pour créer un nouveau fichier Chaînes.localisables. Puis redémarrez ibtool pour générer de nouveaux fichiers de chaînes.

Enfin, chargez les nouveaux fichiers de ressources dans le projet existant dans ICanLocaliser. Le système détectera les chaînes nouvelles ou modifiées et traduira uniquement celles-ci. Vous ne devrez payer que pour la mise à jour de la traduction, et non pour la traduction complète à partir de zéro.

Note: lorsque des modifications sont apportées à la chaîne, elle doit être à nouveau entièrement traduite. Afin de réduire le coût de mise à jour des traductions, nous vous recommandons de diviser les grandes chaînes en plusieurs chaînes plus petites. De cette façon, lorsque vous apportez des modifications, la partie à traduire devient plus petite et coûte moins cher. Les lignes doivent être suffisamment grandes pour que vous puissiez les effacer vous-même, mais pas au point que leur mise à jour coûte cher.

Besoin d'une traduction pour votre application iOS ?

ICanLocaliser des offres

« Nous utilisons ICanLocalize depuis 2012 et cela a vraiment simplifié notre flux de travail lorsqu'il s'agit de traduire notre contenu pour différents marchés. Plus besoin de chercher des traducteurs pour différentes langues, de leur apprendre à utiliser des outils de traduction, de créer des factures personnalisées, etc., car ICanLocalize fait tout pour nous ! Nous utilisons les services ICanLocalize pour traduire nos sites Web, applications, newsletters et autres supports marketing, et vous pouvez toujours compter sur travail rapide. Je me rends compte que toute cette déclaration ressemble à une publicité payante ou quelque chose comme ça, mais je n'ai vraiment rien écrit qui ne soit pas factuel ou qui ne soit pas ma véritable opinion ! Je recommanderais ICanLocalize à tout moment ! »

"ICanLocalize est La meilleure décision pour des traductions rapides et de haute qualité de votre candidature. Nous utilisons leurs services pour toutes nos applications avec de bons résultats et des retours positifs de nos utilisateurs. Je recommande d'utiliser ICanLocalize pour localiser vos applications."

« ICanLocalize était incroyablement simple à utiliser. Les traducteurs nous ont beaucoup aidés et le processus de traduction s’est avéré parfaitement simple. ICanLocalize est disponible pour les développeurs de toutes catégories et nous a aidé à toucher beaucoup plus de clients que jamais.

« ICanLocalize m'a permis de gagner beaucoup de temps car il fournit des traducteurs pour n'importe quelle langue, et vous pouvez demander à d'autres traducteurs de vérifier les traductions pour s'assurer qu'elles sont exactes. La plus grande aide fournie par ICanLocalize est la possibilité de charger mes fichiers de chaînes depuis Xcode directement sur le site. Ainsi, lorsque les traductions sont prêtes, je peux simplement remplacer mes fichiers de chaînes dans mon projet et j'ai terminé.

Si vous souhaitez traduire et republier ce guide, veuillez d'abord nous indiquer où vous souhaitez le publier et quelques mots sur vous-même.