Loupe

#WindowsPhone 101 : Internationalisation de vos applications

 

J’ai eu la chance de gagner un concours Nokia (merci encore!) offrant la traduction d’une de mes applications (en l’occurrence ConsoTracker). Ce petit article de blog est l’occasion de rappeler à tous la procédure à suivre pour traduire une application dans plusieurs langues. Vous allez le voir, c’est tout simple !

 

Fichiers de ressources

Le template de Visual Studio ajoute automatiquement pour vous un fichier de ressources nommé “AppResources” dans un dossier “Resources”. Lorsque vous l’ouvrez, vous vous rendrez compte que c’est en réalité un tableau clef/valeur contenant vos traductions.

Si vous souhaitez ajouter une langue, il faut copier-coller ce fichier et le suffixer par la langue ciblée. Par exemple “.fr” pour le “français” ou “.fr-FR” pour le “français de France”. Le fichier sans suffixe sera utilisé si un fichier de ressources n’est pas trouvé pour la langue de l’utilisateur. C’est aussi celui-ci qui sera utilisé pour la langue définie par défaut dans le manifest de l’application (onglet packaging).

01

 

 

Utilisation dans le code / XAML

Une fois une clef présente dans votre fichier de ressources, vous pouvez y accéder dans le code en utilisant le nom du fichier de ressources suivi du nom de la clef. Par exemple si j’ai une clef nommée “InfiniteSquare” je peux faire :

02

Dans mon XAML, le template de projet à créer pour moi une ressource nommée “LocalizedStrings” que je peux utiliser de cette manière via un Binding :

<TextBlock 
      Text="{Binding LocalizedResources.InfiniteSquare,Source={StaticResource LocalizedStrings}}" />

Modification du projet

Finalement, il faut indiquer au niveau de votre projet que vous ajoutez une nouvelle langue. Pour cela, il faut ouvrir les propriétés de votre projet, dans l’onglet “Application” : vous pouvez alors cocher les langues à ajouter.

 

Ce qui est assez génial, c’est que Visual Studio va alors faire tout le travail plusieurs choses pour vous :

  • Ajouter le fichier de ressources correspondant (cela nous évite de rechercher le bon code langue – vous saviez que pour l’Alsacien c’est “gsw-FR” ?).
  • Ajouter la déclaration de la langue dans votre manifest(plus besoin d’éditer l’XML à la main).
  • Ajouter la langue dans votre csproj (plus d’édition à la main non plus – youpi !).

Il ne vous restera plus alors qu’à traduire les valeurs dans la langue ajoutée.

Tester une langue

Pas besoin de changer la langue de son téléphone ou de l’émulateur. Il suffit de changer dans le constructeur de votre application la langue de deux propriétés du Dispatcher : CurrentUICulture et CurrentCulture. Vous pouvez d’ailleurs utiliser ces propriétés pour retrouver la langue de l’utilisateur.

//On teste le Russe
var imposedCulture = new CultureInfo("ru");

Thread.CurrentThread.CurrentUICulture = imposedCulture;
Thread.CurrentThread.CurrentCulture = imposedCulture;

 

Et sur le Store !?!

Une fois votre package généré et uploadé sur le Store, vous verrez apparaitre les différentes langues et il vous faudra rentrer les informations pour chacune : descriptions, mots-clefs, screenshots, etc.

 

À bientôt !

Photo de profil

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus