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 :
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 :
Dans la fenêtre de l’assistant, choisir comme type d’application “dll” et comme option supplémentaire “projet vide” :
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)”.
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 :
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 :
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 :
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 :
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 :
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) :
Maintenant, il faut modifier le fichier WMAppManifest.xml dans le projet (clique droit sur Propriétés, le fichier est là) :
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 !