[WP7] Localisez le titre de votre application

Le 9 août 2011 à 15:45

Nous avons vu récemment la globalisation de son application mais vous aurez surement remarqué qu’il n’était pas possible de localiser le titre de l’application. C’est à dire le Tile de l’application comme illustré ci-dessous :

image

Pour faire cela, il va falloir créer une dll AppResLib qui est en fait une dll ressource Win32 classique. La procédure n’est pas compliqué mais ne ressemble pas à ce qu’on a l’habitude de faire sur WP7 ;).

Donc, il faut ajouter un projet Win32 à notre solution :

image

 

Dans la fenêtre de l’assistant, choisir comme type d’application “dll” et comme option supplémentaire “projet vide” :

image

 

Ensuite, une fois le projet crée, il faut se rendre dans ses propriétés (clique droit, propriétés) puis se rendre dans “Editeur de liens” > “Avancé” et choisir en “Aucun point d’entrée” la valeur “oui (/NOENTRY)”.

image

 

Maintenant il va falloir ajouter un langage “neutre” en ressource à la DLL (par exemple le français, celle qui sera affichée par défaut si la ressource de langue n’est pas disponible), pour cela, il faut ajouter une ressource et dans celle ci une String Table contenant deux valeurs :

 

image

 

image

 

image

Comme indiqué dans l’image ci-dessus, il y aura deux valeurs “AppTitle” qui sera le nom de l’application dans la liste des applications et “AppTileString” qui sera le nom affiché dans la mosaïque des applications sur l’écran d’accueil.

 

Une fois le langage neutre créé, on va compilé la ressource et l’incorporé dans notre projet WP7. Il suffit de localiser la DLL générée et la copier dans la racine du projet WP7 :

image

 

Maintenant on va ajouter une langue supplémentaire, c’est à dire l’anglais, il suffit d’éditer la ressource de la DLL et d’y remplacer les valeurs par celles traduites en anglais :

image

 

Ensuite on va recompiler la dll et la copie la racine de notre projet WP7 mais en la renommant AppResLib.dll.0409.mui (US)

Voici les diférents codes selon les langues :

English (United States) (0x409) (/l 0x0409) / AppResLib.dll.0409.mui

English (United Kingdom) (0x809) (/l 0x0809) / AppResLib.dll.0809.mui

French (France) (0x40c) (/l 0x040c) / AppResLib.dll.040c.mui

German (Germany) (0x407) (/l 0x0407) / AppResLib.dll.0407.mui

Italian (Italy) (0x410) (/l 0x0410) / AppResLib.dll.0410.mui

Spanish (Spain) (0xc0a) (/l 0x0c0a) / AppResLib.dll.0c0a.mui

 

Ce qui donnera à notre racine :

image

 

Voila, nos ressources sont prêtes. Il faut à présent indiquer au téléphone qu’il existe ces ressources.

Tout d’abord on va ajouter ces fichiers au projet :

image

Puis dans les propriétés de ces fichiers, on va définir en action de génération la valeur “contenu” (donc ces Dll seront copiées dans le XAP) :

image

 

Maintenant, il faut modifier le fichier WMAppManifest.xml dans le projet (clique droit sur Propriétés, le fichier est là) :

image

Il faut ensuite recherche dans App le Title de votre application et remplacer par “@AppResLib.dll,-100”, puis dans PrimaryToken, recherche le Title et remplacer par “@AppResLib.dll,-200”

Voici le fichier à quoi il devrait ressembler :

<?xml version="1.0" encoding="utf-8"?>

<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment" 
AppPlatformVersion="7.0">
  <App xmlns="" ProductID="{f12ae759-54b6-49fe-84b9-94a60ac066c2}" 
       Title="@AppResLib.dll,-100" 
       RuntimeType="Silverlight" 
       Version="1.0.0.0" 
       Genre="apps.normal" 
       Author="SampleApp author"
       Description="Sample description"
       Publisher="SampleApp">
    <IconPath IsRelative="true" IsResource="false">ApplicationIcon.jpg</IconPath>
    <Capabilities>
      <Capability Name="ID_CAP_GAMERSERVICES"/>
      <Capability Name="ID_CAP_IDENTITY_DEVICE"/>
      <Capability Name="ID_CAP_IDENTITY_USER"/>
      <Capability Name="ID_CAP_LOCATION"/>
      <Capability Name="ID_CAP_MEDIALIB"/>
      <Capability Name="ID_CAP_MICROPHONE"/>
      <Capability Name="ID_CAP_NETWORKING"/>
      <Capability Name="ID_CAP_PHONEDIALER"/>
      <Capability Name="ID_CAP_PUSH_NOTIFICATION"/>
      <Capability Name="ID_CAP_SENSORS"/>
      <Capability Name="ID_CAP_WEBBROWSERCOMPONENT"/>
    </Capabilities>
    <Tasks>
      <DefaultTask  Name ="_default" NavigationPage="MainPage.xaml"/>
    </Tasks>
    <Tokens>
      <PrimaryToken TokenID="SampleAppToken" TaskName="_default">
        <TemplateType5>
          <BackgroundImageURI IsRelative="true" 
                                        IsResource="false">Background.jpg</BackgroundImageURI>
          <Count>0</Count>
          <Title>@AppResLib.dll,-200</Title>
        </TemplateType5>
      </PrimaryToken>
    </Tokens>
  </App>
</Deployment>

 

Voila c’est terminé, un peu long mais ce n’est pas compliqué :)

A bientôt !

Ajouter un commentaire

biuquote
  • Commentaire
  • Prévisualiser
Loading

A propos de l'auteur

Mathieu Perrein - Software Solutions Manager, Software Architect, Trainer MCT, MSP de 2010 à 2012.

 

MSP

 

MSP

MSP

 MSPD

MCT

 

Facebook

 

Ce blog est strictement personnel et les opinions exprimées ici n'engagent donc que moi, et pas mon employeur.

Tags

Vous avez désactivé JavaScript ou bien vous possédez une ancienne version d'Adobe Flash Player. Téléchargez la dernière version de Flash Player.