In this post I am going to guide you through the localization of the WP7 application name and tile. While localizing within the application itself might be quite straight forward but in this scenario there are some more steps. First of all you need to make sure you have the C++ support for your Visual Studio installed. Yes you are reading it correctly, you will need to create a C++ satellite DLL inorder to localize the application name and tile.
I am using a application i am currently working on as a hobby project inorder to gain more knowledge about some of the features that WP7 and it´s toolkits can provide. In this example we will make two DLL-resource files one for the default language (en-US) and and the last one for Swedish (sv-SE) .
Ok here we go!
Step 1.
First we need to create the C++ Language resource DLL project.
Select new project and expand the Visual C++ project templates (if you have them installed, otherwise do so). Select a Win32 project and name it AppResLib. It doesn’t actually matter where you create your project but I have chosen to create it in a solution folder in the solution im currently localizing.
Now we need to make a important change in the project properties. Select the project and click the project properties. Expand the Configuration properties and select the No Entry Point setting and set it to Yes /NOENTRY. This makes the DLL a resource-only assembly.
Step 2.
The first DLL we need to make is language neutral. This DLL will be used as the fallback resource for the languages not having a specific AppResLib. Lets begin with adding a new resource to our AppResLib project. Select the resource type “String table” and create two resource strings as shown in the picture below.
The Caption is where the localized text needs to be defined, in this case the en-US fallback language.
Now all we need to do is compile the AppResLib project and copy the AppResLib.dll to the root of the WP7 application project. Do not forget to check the build type for the AppResLib.dll file so that its set as Content. You can easily do this by selecting the file in Visual Studio and using the properties window.
When the AppResLib.dll is added to the WP7 project we need to do some adjustments in the WP7 project. More on that in step 3.
Step 3.
First we need to modify the WMAppManifest.xml file, you can find it in the Properties folder in the root of the application.
<App xmlns=""
ProductID="{99c92c72-8be9-4eb4-bd0f-eadaed1dc7ac}"
Title="@AppResLib.dll, -100"
RuntimeType="Silverlight"
Version="1.0.0.0"
Genre="apps.normal"
Author="author"
Description="description"
Publisher="publisher">
<PrimaryToken TokenID="WeatherPanoramaToken" TaskName="_default"> <TemplateType5> <BackgroundImageURI IsRelative="true" IsResource="false">Background.png</BackgroundImageURI> <Count>0</Count> <Title>@AppResLib.dll, -200</Title> </TemplateType5> </PrimaryToken>
Now the WMAppManifest.xml will make use of the AppResLib.dll resource DLL and show the localized text for the application.
Step 4.
Creating the localized resource DLL for Swedish. This step will be very simple now that we have got all other things in place. All we need to do is go back to the AppResLib project that we created in Step 1 and localize the two strings. Build the project and rename the AppResLib.dll to AppResLib.dll.041d.mui, where 041d points to sv-SE.
Add the file to the project just as with the AppResLib.dll and we are done.
Note:
Don´t forget to check that the languages you want localized are specified in your project file. I usually unload the WP7 project and chose edit <projectname>.csproj.
Search for the SupportedCultures element and add all the supported languages separated with “;”. For ex. en-US;sv-SE; and so on. Save and close the csproj file and reload the project.




