Локализация Windows Phone 8 приложений. Часть 2.
Во второй части статьи о локализации приложений для Windows Phone 8 я расскажу о том, как локализовать название приложения, которое отображается в списке всех установленных на телефоне приложений, и заголовок тайла приложения. Дело в том, для того, чтобы добиться подобного эффекта недостаточно проделать манипуляции, описанные в первой части статьи. Необходимо создать специальную ресурсную библиотеку (.dll) для нейтрального языка и файлы.mui для каждой поддерживаемой локали.
Для того, чтобы создать библиотеку ресурсов, потребуется Visual Studio с установленным пакетом для языка Visual
- Создать в 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 TitleAppTileTitle 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 приложение.
Для того, чтобы проверить, как все локализовалось, можно в эмуляторе телефона изменить языковые настройки на нужные — в списке приложений наше приложение будет с локализованным названием.
Вт, 26.02.2013