How to localize an app title for Windows Phone 8

[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]

The title of an app can be localized based on the Windows Phone 8 supported culture and languages. The app title appears in both the app list and on the app Tile as shown below. Both of these locations are outside of the app itself. Localizing the app title is optional. Some developers won’t want to localize the app title for branding reasons.

To localize the app title that is displayed in the app list or app Tile, you must create a resource-only DLL, as well as separate Multilingual User Interface (MUI) files for each display language that your app targets. For a full list of display languages that Windows Phone supports, see Culture and language support for Windows Phone. The resource-only DLL must contain the language-neutral (default language) resource strings for the app title and Tile title supported by your app. Each MUI file needs to include the resource strings used to localize the app title in the app list and on the Tile.

The following screen shots show where a title is used in the context of an app list and an app Tile.

The title in the app list:

The title on the app Tile pinned to the Start screen:

This topic contains the following sections.

Prerequisites

Before you start, make sure that you have the following software installed on your computer:

  • Visual Studio or Microsoft Visual Studio Express 2012 for Windows Phone. The .NET Framework is installed automatically.

To complete the procedures in this topic, you need a Windows Phone project. You can use an existing project, or you can create an empty Windows Phone project to use for testing these procedures. For more info about creating a project, see How to create your first app for Windows Phone 8.

Downloading the language-neutral resource project

As an alternative to creating a language-neutral resource project by using Visual Studio, you can download the language-neutral resource project. This project can be modified in Visual Studio Express 2012 for Windows Phone or Visual Studio.

Download: Language-Neutral Resource Project

Creating a language-neutral resource DLL using Visual Studio

In this set of procedures, you use Visual Studio to create a language resource DLL project, create language-neutral resource strings, and update the DLL project to create the resource DLL. Later, you use this DLL project to create more localized resources.

Important Note:

Microsoft Visual Studio Express 2012 for Windows Phone doesn’t support the creation of language resource DLL projects. You must use Visual Studio to add language-neutral resource strings to a project and to create a resource DLL. If you don’t have Visual Studio, you can download the language-neutral resource project that you can modify using Visual Studio Express 2012 for Windows Phone. See the Downloading the language-neutral resource project section for download details.

Each resource contains the localized strings that are displayed as the app title and as the app Tile title. Visual Studio allows you to create a project that can be used to create a language-neutral resource DLL. If you don’t have Visual Studio, you can download a prebuilt language resource DLL project and use Visual Studio Express 2012 for Windows Phone to modify the project and create resource DLLs and MUI files.

Creating a language resource DLL project

Before you create language-neutral resource strings for the app title, you must create a DLL project using Visual Studio.

To create a language resource DLL project

  1. On the File menu, select New Project.

    The New Project dialog box appears.

  2. In the left pane, expand Installed, expand Templates, expand Visual C++, and then click Win32.

  3. In the list of project types, click Win32 Project.

  4. In the Name box, type AppResLib.

  5. Click OK.

    The Win32 Application Wizard appears.

  6. Click Next.

  7. Under Application type, select DLL.

  8. Under Additional options, select Empty project.

  9. Also under Additional options, clear the Security Development Lifecycle (SDL) checks check box.

  10. Click Finish.

    The new DLL project is created and opens in Visual Studio.

  11. On the Build menu, select Build Solution.

Creating language-neutral resource strings

In Visual Studio, you add a resource string table to the DLL project that contains the language-neutral name of your app. The language-neutral resource strings are used as the default strings for your Windows Phone app. Also, these resource strings will be used as the template for your localized app title strings.

To create the language-neutral resource strings for your app

  1. In Solution Explorer, select the DLL project named AppResLib.

  2. On the Project menu, click Add Resource.

    The Add Resource dialog box appears.

  3. In the Resource type list of the Add Resource dialog box, select String Table, and then click New.

    The resource string table opens.

  4. Create two resource strings with the following properties.

ID

Value

Caption

AppTitle

100

Lang-Neutral App Title

AppTileTitle

200

Lang-Neutral Tile Title

The AppTitle string contains the language-neutral name of your app to be displayed in the app list. The AppTileTitle string contains the language-neutral name of your app to be displayed in the app **Tile** when it’s pinned to **Start**.

Updating the DLL project

In Visual Studio, you must update the AppResLib DLL project so that it is built as a resource-only DLL.

To update the DLL project

  1. On the Standard toolbar, choose Release from the Solution Configurations list box.

  2. In Solution Explorer, right-click the AppResLib DLL project and then click Properties.

    The Property Pages dialog box appears.

  3. In the left pane of the Property Pages dialog box, expand Configuration Properties, expand Linker, and then click Advanced.

  4. Select the No Entry Point property, click the drop-down arrow to the right of the property value, and then click Yes (/NOENTRY).

Note

/NOENTRY prevents the linker from linking a reference to _main into the DLL; this option is required to create a resource-only DLL.

  1. Click OK.

  2. On the Build menu, select Build Solution.

  3. In Solution Explorer, right-click the solution (Solution 'AppResLib') and then click Open Folder in File Explorer.

    File Explorer displays the project files.

  4. In File Explorer, open the Release folder, and locate the AppResLib.dll file that you built.

Note

The project folder and the solution folder both contain a Release folder. The AppResLib.dll file is contained in the Release folder at the root of the solution.

  1. Rename the file AppResLib.dll file to AppResLibLangNeutral.dll.

    Later, you use this file in your localized Windows Phone app.

Creating language resource strings for your app

In this set of procedures, you use Visual Studio or Visual Studio Express 2012 for Windows Phone to edit the language-neutral resource string table to contain localized resource title strings. Then, you rebuild the DLL that contains the new localized title strings and rename the DLL file.

Creating the first specific language resource strings

In this procedure, you create localized title strings for English (United States). You must use the existing DLL project that you either created with Visual Studio in the previous set of procedures (see Creating a language-neutral resource DLL using Visual Studio), or downloaded (see Downloading the language-neutral resource project).

To create the first specific language resource strings for your app

  1. Open the DLL project in Visual Studio or Visual Studio Express 2012 for Windows Phone if it’s not already open.

  2. In Solution Explorer, expand the Resource Files folder.

  3. Right-click the AppResLib.rc resource and then click View Code.

  4. Modify the AppResLib.rc file by changing the resource string values as follows:

ID

Value

AppTitle

enus App Title

AppTileTitle

enus Tile Title

The AppTitle string contains the English (United States) name of your app to be displayed in the app list. The AppTileTitle string contains the English (United States) name of your app to be displayed in the app Tile when pinned to **Start**.
  1. On the Build menu, select Build Solution.

  2. In Solution Explorer, right-click Solution 'AppResLib' and then click Open Folder in File Explorer.

    File Explorer displays the project files.

  3. In File Explorer, open the Release folder, and locate the latest AppResLib.dll file that you built.

Note

The project folder and the solution folder both contain a Release folder. The AppResLib.dll file is contained in the Release folder at the root of the solution. The solution folder is easy to recognize because it contains the AppResLib.sln solution file.

  1. Rename the file AppResLib.dll file to AppResLib.dll.0409.mui.

The DLL file that you created and renamed contains the English (en-US) app title and the app Tile title. Later, you use this file in your Windows Phone app. Your Windows Phone app recognizes this file based on the 0409 LCID value that represents English (enus).

Creating additional language resource strings

You can create more language resource strings and the DLL that contains those resources by following the preceding procedure. For each localized set of resource strings, you create a new DLL and rename it with the LCID and .mui extension.

To create additional language resource strings for your app

  • Repeat the preceding procedure, however, you must provide a localized AppTitle string value and AppTileTitle string value for each locale. You must also rename the DLL file using the info in the following table for each locale. Each DLL file name has the format AppResLib.dll.[locale ID].mui.

Note

For a full list of supported display languages based on Windows Phone version, see Culture and language support for Windows Phone.

**Windows Phone 8 supported display languages**

Culture name

Culture code

DLL file name

Albanian (Albania)

sq-AL

AppResLib.dll.041c.mui

Arabic

ar-SA

AppResLib.dll.0401.mui

Azerbaijani (Latin)

az-Latn-AZ

AppResLib.dll.042c.mui

Belarusian

be-BY

AppResLib.dll.0423.mui

Bulgarian

bg-BG

AppResLib.dll.0402.mui

Catalan

ca-ES

AppResLib.dll.0403.mui

Chinese Simplified (PRC)

zh-CN

AppResLib.dll.0804.mui

Chinese Traditional (Taiwan)

zh-TW

AppResLib.dll.0404.mui

Croatian

hr-HR

AppResLib.dll.041a.mui

Czech (Czech Republic)

cs-CZ

AppResLib.dll.0405.mui

Danish (Denmark)

da-DK

AppResLib.dll.0406.mui

Dutch (Netherlands)

nl-NL

AppResLib.dll.0413.mui

English (United Kingdom)

en-GB

AppResLib.dll.0809.mui

English (United States)

en-US

AppResLib.dll.0409.mui

Estonian

et-EE

AppResLib.dll.0425.mui

Filipino

fil-PH

AppResLib.dll.0464.mui

Finnish (Finland)

fi-FI

AppResLib.dll.040b.mui

French (France)

fr-FR

AppResLib.dll.040c.mui

German (Germany)

de-DE

AppResLib.dll.0407.mui

Greek (Greece)

el-GR

AppResLib.dll.0408.mui

Hebrew

he-IL

AppResLib.dll.040d.mui

Hindi

hi-IN

AppResLib.dll.0439.mui

Hungarian (Hungary)

hu-HU

AppResLib.dll.040e.mui

Indonesian (Indonesia)

id-ID

AppResLib.dll.0421.mui

Italian (Italy)

it-IT

AppResLib.dll.0410.mui

Japanese (Japan)

ja-JP

AppResLib.dll.0411.mui

Kazakh

kk-KZ

AppResLib.dll.043f.mui

Korean (Korea)

ko-KR

AppResLib.dll.0412.mui

Latvian

lv-LV

AppResLib.dll.0426.mui

Lithuanian

lt-LT

AppResLib.dll.0427.mui

Macedonian

mk-MK

AppResLib.dll.042f.mui

Malay (Malaysia)

ms-MY

AppResLib.dll.043e.mui

Norwegian (Norway)

nb-NO

AppResLib.dll.0414.mui

Persian

fa-IR

AppResLib.dll.0429.mui

Polish (Poland)

pl-PL

AppResLib.dll.0415.mui

Portuguese (Brazil)

pt-BR

AppResLib.dll.0416.mui

Portuguese (Portugal)

pt-PT

AppResLib.dll.0816.mui

Romanian

ro-RO

AppResLib.dll.0418.mui

Russian (Russia)

ru-RU

AppResLib.dll.0419.mui

Serbian (Latin)

sr-Latn-CS

AppResLib.dll.081a.mui

Slovak

sk-SK

AppResLib.dll.041b.mui

Slovenian

sl-SI

AppResLib.dll.0424.mui

Spanish (Mexico)

es-MX

AppResLib.dll.080a.mui

Spanish (Spain)

es-ES

AppResLib.dll.0c0a.mui

Swedish (Sweden)

sv-SE

AppResLib.dll.041d.mui

Thai

th-TH

AppResLib.dll.041e.mui

Turkish

tr-TR

AppResLib.dll.041f.mui

Ukrainian

uk-UA

AppResLib.dll.0422.mui

Uzbek (Latin)

uz-Latn-UZ

AppResLib.dll.0443.mui

Vietnamese

vi-VN

AppResLib.dll. 42a.mui

**Windows Phone 7.1 supported display languages**

Culture name

Culture code

DLL file name

Chinese Simplified (PRC)

zh-CN

AppResLib.dll.0804.mui

Chinese Traditional (Taiwan)

zh-TW

AppResLib.dll.0404.mui

Czech (Czech Republic)

cs-CZ

AppResLib.dll.0405.mui

Danish (Denmark)

da-DK

AppResLib.dll.0406.mui

Dutch (Netherlands)

nl-NL

AppResLib.dll.0413.mui

English (United Kingdom)

en-GB

AppResLib.dll.0809.mui

English (United States)

en-US

AppResLib.dll.0409.mui

Finnish (Finland)

fi-FI

AppResLib.dll.040b.mui

French (France)

fr-FR

AppResLib.dll.040c.mui

German (Germany)

de-DE

AppResLib.dll.0407.mui

Greek (Greece)

el-GR

AppResLib.dll.0408.mui

Hungarian (Hungary)

hu-HU

AppResLib.dll.040e.mui

Indonesian (Indonesia)

id-ID

AppResLib.dll.0421.mui

Italian (Italy)

it-IT

AppResLib.dll.0410.mui

Japanese (Japan)

ja-JP

AppResLib.dll.0411.mui

Korean (Korea)

ko-KR

AppResLib.dll.0412.mui

Malay (Malaysia)

ms-MY

AppResLib.dll.043e.mui

Norwegian (Norway)

nb-NO

AppResLib.dll.0414.mui

Polish (Poland)

pl-PL

AppResLib.dll.0415.mui

Portuguese (Brazil)

pt-BR

AppResLib.dll.0416.mui

Portuguese (Portugal)

pt-PT

AppResLib.dll.0816.mui

Russian (Russia)

ru-RU

AppResLib.dll.0419.mui

Spanish (Spain)

es-ES

AppResLib.dll.0c0a.mui

Swedish (Sweden)

sv-SE

AppResLib.dll.041d.mui

In the next procedure, you copy the MUI files and language-neutral DLL file to the root directory of your Windows Phone app.

Using the localized resource strings in your Windows Phone app

By adding the localized MUI files and the language-neutral DLL file to your Windows Phone app, app users see the localized app title and the localized app Tile title based on the selected Windows Phone language that they choose for their Windows Phone.

To use the localized resource strings in your Windows Phone app

  1. Open your existing Windows Phone 8 app or create a Windows Phone 8 app in either Visual Studio or Visual Studio Express 2012 for Windows Phone.

  2. In Solution Explorer, select your Windows Phone 8 project.

  3. On the Project menu, click Add, and then click Existing Item.

    The Add Existing Item dialog box appears.

  4. Find and select the AppResLibLangNeutral.dll file and all the AppResLib.dll.*.mui files that you created in the previous procedures, and then click Add.

    The files are added to the root your Windows Phone project.

  5. In Solution Explorer, right-click the AppResLibLangNeutral.dll file and rename it to the following:

    AppResLib.dll

  6. In Solution Explorer, select the imported files (AppResLib.dll and AppResLib.dll.*.mui).

    In the Properties window, set the Build Action property to Content.

Note

If the Properties window is not displayed, select Properties Window from the View menu.

  1. In Solution Explorer, move the AppResLib.dll.*.mui files into the Resources folder.

  2. In Solution Explorer, expand Properties and then open the WMAppManifest.xml file.

    The Windows Phone app manifest designer is displayed.

  3. Select the Application UI tab if it’s not already selected.

  4. Set the Display Name to the following:

    @AppResLib.dll,-100

  5. Set the Tile Title to the following:

    @AppResLib.dll,-200

  6. Save and build the Windows Phone app.

The Windows Phone 8 app displays the localized app title and the app Tile title based on the language and country settings of the user's Windows Phone 8 phone. The AppTitle string and AppTileTitle string contained in the .mui files correspond to the language and country setting of the user's Windows Phone 8 phone. If you don’t include a matching .mui file for a specific supported locale, your Windows Phone 8 app uses the language-neutral AppTitle string and AppTileTitle string contained in the AppResLib.dll file.

Testing the localized title

To test your localized app title, follow the steps listed at How to test a localized app for Windows Phone 8.

See Also

Other Resources

Localization best practices for Windows Phone 8

How to build a localized app for Windows Phone 8