Локализация Windows Phone 8 приложений. Часть 2.
Во второй части статьи о локализации приложений для Windows Phone 8 я расскажу о том, как локализовать название приложения, которое отображается в списке всех установленных на телефоне приложений, и заголовок тайла приложения. Дело в том, для того, чтобы добиться подобного эффекта недостаточно проделать манипуляции, описанные в первой части статьи. Необходимо создать специальную ресурсную библиотеку (.dll) для нейтрального языка и файлы.mui для каждой поддерживаемой локали.
Для того, чтобы создать библиотеку ресурсов, потребуется Visual Studio с установленным пакетом для языка Visual C++. Последовательность действий по созданию библиотеки ресурсов для нейтрального языка выглядит следующим образом:
- Создать в Visual Studio новый проект из шаблона Installed — Templates — Visual C++ — Win32 — Win32 Project.
- Назвать проект AppResLib
- Нажать OK. Появится мастер проекта приложения Win32
- Нажать Next (Далее)
- В поле Application Type выбрать DLL
- В секции Additional Options выбрать Empty project
- Там же снять галочку Security Development Lifecycle (SDL)
- Нажать Finish. Проект будет создан и открыт в студии.
- В меню Build выбрать Build Solution
Далее необходимо создать строковые ресурсы для нейтрального языка приложения:
- Добавьте ресурс в проект AppResLib (правой кнопкой по проекту в дереве проектов — Add Resource). Откроется диалоговое окно
- В выпадающем списке Resource type выберите String Table и нажмите New. Откроется таблица строковых ресурсов.
- Создайте два ресурса со следующими значениями:
| ID | Value | Caption |
|---|---|---|
| AppTitle | 100 | Lang-Neutral App Title |
| AppTileTitle | 200 | Lang-Neutral Tile Title |
- Затем необходимо настроить проект AppResLib таким образом, чтобы он собирался как resource-only DLL.
- На панели инструментов Standart выбрать тип сборки Release.
- Открыть свойства проекта AppResLib
- В окне свойств в разделе Configuration Properties раскройте раздел Linker и затем нажмите Advanced.

- Выберите вариант YES (/NOENTRY) в поле No Entry Point.
- Нажмите OK и выполните сборку проекта (Build).
- Откройте в проводнике папку с проектом AppResLib и в папке Release найдите файл AppResLib.dll
- Переименуйте файл AppResLib.dll в AppResLibLangNeutral.dll. Позднее он понадобится в проекте локализуемого приложения Windows Phone.
После этого приступим к созданию локализованных версий библиотеки в виде файлов *.mui. Для этого будем использовать все тот же проект AppResLib. 
- Откройте файл ресурсов AppResLib.rc в редакторе ресурсов или редакторе кода
- Замените значения для строк ресурсов AppTitle и AppTileTitle в соответствии с выбранной локалью, например русской (ru-RU)
- Сохраните файл и соберите проект (Build)
- Получившийся файл AppResLib.dll переименуйте в AppResLib.dll.####.mui, где #### — код локали из таблицы (для русского языка получится файл AppResLib.dll.0419.mui)
- Повторить описанные выше действия для всех локализуемых языков
После того как все *.mui файлы готовы, необходимо их вместе с файлом AppResLibLangNeutral.dll добавить в проект локализуемого приложения для Windows Phone.
Файл AppResLibLangNeutral.dll надо переименовать обратно в AppResLib.dll (собственно все действия по переименовыванию этого файла были нужны для того, чтобы при сборке локализованных версий библиотек, они не перетирали первоначальную нейтральную библиотеку). Для импортированных файлов AppResLib.dll и AppResLib.dll.*.mui установить свойство Build Action в значение Content.
Итак, финальные шаги. Открываем файл манифеста WMAppManifest.xml. На вкладке Application UI устанавливаем значение поля Display Name равным @AppResLib.dll,-100, а поля Tile Title равным @AppResLib.dll,-200. Сохраняем и билдим наше Windows Phone приложение.
Для того, чтобы проверить, как все локализовалось, можно в эмуляторе телефона изменить языковые настройки на нужные — в списке приложений наше приложение будет с локализованным названием.