Home

Tutorial AppleScript Studio

Partie 10 - Localisation - US & FR -

Etape 1 - Le fichier "Localizable.strings" pour les dialogues

Sous Léopard - xCode 3.0

Le fichier Localizable.strings (avec un "Z" pas un "S", xCode ne connaissant que l'anglais US) sert à faire une localisation de tout ce que l'on veut, en particulier les dialogues.


Prenons un exemple minimum d'une application anglaise avec cette commande :


display dialog "Give the file name"


Si vous voulez localiser votre application en français, espagnol, italien, etc, vous n'allez pas faire N versions de la commande display dialog avec des IF imbriqués de test, mais une seul pointant sur ce fichier Localizable.strings. La commande commune sera :


set messageUn to localized string "Message1" from table "Localizable"


display dialog messageUn



Et le fichier Localizable.strings de la localisation anglaise contiendra :

"Message1" = "Please, Give the file name";



Et le fichier Localizable.strings de la localisation française contiendra :

"Message1" = "Veuillez, donner le nom du fichier";



Plusieurs remarques :

  1. Il y a un fichier Localizable.strings dans chaque dossier bundle xxx.lproj, tel que : English.lproj, French.lproj, etc
  2. Le nom Localizable est un nom réservé, implicitement reconnu. Si vous changez le nom de fichier, il faudra explicitement le désigner.
  3. Apple recommande de créer le fichier au format UTF-16. Je l'ai créé, par erreur en UTF-8 par l'option implicite de BBEdit, et c'était bon pour localiser en français, sûrement pas pour localiser en japonais.
  4. N'oublier pas le séparateur point-virgule entre chaque couple de clefs.


Exemple complet de display dialog

Incluant les boutons "Cancel" et "OK". "Cancel" devant être traduit par "Annuler" en français.


set monMessage to localized string "GiveTheFileName" from table "Localizable"

set Cancel to localized string "Cancel" from table "Localizable"

set OK to localized string "OK" from table "Localizable"


display dialog monMessage buttons {Cancel , OK } default button 1



Et le fichier Localizable.strings de la localisation anglaise contiendra :

"GiveTheFileName" = "Please, Give the file name";

"Cancel" = "Cancel";

"OK" = "OK";


Et le fichier Localizable.strings de la localisation française contiendra :

"GiveTheFileName" = "Veuillez donner le nom du fichier";

"Cancel" = "Annuler";

"OK" = "OK";


Astuce : Si il y a une erreure dans le fichier Localizable.strings pour retrouver la clef "GiveTheFileName", c'est la clef elle-même qui est affichée, d'ou mon choix de son nom "GiveTheFileName" nom significatif du dialogue.


Notez, mon exemple est un peu académique, dans la pratique et suivant le contexte, xCode parfois traduit tout seul. Par exemple, il mettra "Annuler" pour une commande simple comme [display dialog "toto"], mais ne traduira pas si il y a les boutons comme dans [display dialog "toto2" buttons {"Cancel", "OK"}].

Pour mon usage, la commande display dialog se trouvant à de nombreuses places de mon script, j'ai mis les variables Cancel et OK en GLOBAL. Ce qui me permet de n'avoir que deux lignes de code, soit :


set monMessage to localized string "GiveTheFileName" from table "Localizable"

display dialog monMessage buttons {Cancel , OK } default button 1






Création du fichier Localizable.strings

Il n'y a pas de possibilité directe de créer le fichier Localizable.strings dans xCode, comme cela ce fait pour InfoPlist.strings. Il faut soi :

  1. Créer dans xCode un fichier "Empty file in project" avec comme nom Localizable.strings.
  2. Créer votre fichier Localizable.strings avec un traitement de texte classique.


Méthode 1 - Empty file in project xCode

C'est le cas normal de création pour une nouvelle application xCode. Problème, il n'y a pas de possibilité directe dans xCode comme pour infoplist. Il faut créer un fichier "Empty file in project" avec comme nom Localizable.strings. Ensuite Inspecteur Cd+I, "Make File Localisable" (placement virtuel dans English.lproj, il ne le sera réellement qu'après la compilation dans l'application finale), puis "add Localization".


En images cela donne :


Dans xCode sélectionnez "New File..."



Menu xCode Léopard - Photo 30



Sélectionnez "Empty file in project" car il n'y a pas de ".strings" file dans la liste.



Menu xCode Léopard - Photo 32



Taper le nom du fichier "Localizable.strings"



Menu xCode Léopard - Photo 34



Votre fichier apparaît dans la liste des Resources.



Menu xCode Léopard - Photo 36



Sélectionnez votre fichier Localizable.strings et faites Cd+I pour appeler l'inspecteur d'information.

Notez, il est du type text.plist.strings. Passez-le en UTF-16.

Enfin, cliquer sur "Make File Localizable".



Menu xCode Léopard - Photo 38



Pendant que nous y sommes, créons la localisation française. A faire uniquement si vous localisez à la main. Si vous utilisez le logiciel iLocalize, ce que nous allons faire dans la partie qui suit, ce logiciel le fera pour vous.

Pour information, voici comment :




Menu xCode Léopard - Photo 40



Voilà, nos deux fichiers sont prêts. Reste à introduire les données dedans.



Menu xCode Léopard - Photo 42


Méthode 2 - Création via un traitement de texte

Je donne cette méthode pour information au cas ou un ami vous donne un fichier tout fait, car je recommande d'utiliser la méthode 1 directement dans xCode.

Dans cet exemple j'ai utilisé BBEdit, et sauvé par erreur le fichier en format UTF-8, car c'est l'option implicite de BBEdit. Apple recommande en UTF-16. Faites-le si-non, problème pour une localisation en Japonais.

Pour placer le fichier Localizable.strings dans votre projet. Commencer par le placer dans le bon dossier xxx.lproj. Soit : English.lproj, French.lproj, etc



Menu xCode Léopard - Photo 20


Puis, comme d'habitude glisser/déposer sur le group Ressources de votre projet xCode, le message ci-dessous s'affiche. N'oubliez pas de cocher "Copy items....", et de passer en UTF-16.



Menu xCode Léopard - Photo 24

Pour obtenir ceci :


Menu xCode Léopard - Photo 26

Faites la même chose avec le fichier Localizable.strings du bundle français.





Téléchargement

Un exemple complet et indépendant en téléchargement Localisation.zip



Pour MonLogiciel le fichier est dans English.Iproj depuis le début.






La suite - localisation avec iLocalize


Page précédente

Page suivante


Merci de votre visite


UP