Как локализовать отображаемое имя приложения для Магазина Windows?

Я зарегистрировал немецкое и английское имя для своего приложения для Windows 8 на панели инструментов Магазина Windows.

После этого я создал два файла в своем решении:

Strings/de/Resources.resw with name "AppName" and value "German Title"
Strings/en/Resources.resw with name "AppName" and value "English Title"

Затем я нажал Редактировать манифест приложения. В поле отображаемое имя я ввел «ms-resource:/AppName», но когда я хочу создать свое приложение, я получаю сообщение об ошибке, в котором говорится, что «NamedResource» не может быть найден.

Что я делаю неправильно?

В документации написано только: "Отображаемое имя: Указывает понятное имя приложения, которое отображается для пользователей. Эта строка может быть локализована». Но у меня есть только одно поле (называемое Отображаемое имя) в манифесте приложения для указания имени моего приложения.


person Benny Neugebauer    schedule 06.10.2012    source источник


Ответы (2)


Ok. Я нашел это! Для «Отображаемого имени» в «Package.appxmanifest» мне нужно ввести «ms-resource: AppName». Также следует ввести «ms-resource: AppName» в поле «Отображаемое имя пакета» (на вкладке «Упаковка»).

person Benny Neugebauer    schedule 06.10.2012
comment
То же самое работает для проектов Xamarin. Хотя ресурсы хранятся в проекте PCL, вы можете добавить эти файлы ресурсов (.resw) в проект UWP с той же структурой папок, которая указана здесь, и она будет работать для имени приложения. - person Dpedrinha; 29.03.2017
comment
И еще: убедитесь, что имя ресурса простое, без специальных символов. Я использовал App.Name вместо AppName, и хотя сборка прошла успешно, проверка магазина приложений завершилась неудачей. Использование простого имени приложения без точки делает проверку пройденной. - person Stefan; 03.02.2018

Я хотел бы добавить дополнение к ответу Бенни Нойгебауэра. Если ваш файл .resw хранится в другой сборке (как у меня), вам, возможно, придется указать полный путь к имени вашего ресурса.

Например, если ваша строка AppName находится в проекте с именем OtherProject и файле с именем AppResources и имеет ключ AppName, вы должны использовать следующий синтаксис:

ms-resource:OtherProject/AppResources/AppName

person PingZing    schedule 19.05.2017
comment
У меня есть строки в другом подмодуле, и, кстати, выдает ошибку NamedResource Not Found. Убедитесь, что строковый ресурс определен и в файле resource.pri, содержащемся в этом пакете, определен хотя бы один экземпляр. - person hellodear; 04.10.2017
comment
Хм. Использует ли ваш .appxmanifest токен x-generate для объявления поддерживаемых языков или вы делаете это вручную? Кажется, я припоминаю, что x-generate не может объединить ресурсы в другие сборки, если вы не объявите языки вручную. - person PingZing; 05.10.2017
comment
Я не использую x-generate, я объявил языки, используемые вручную, в файле appxmanifest, но все равно получаю ту же ошибку @hellodear. - person Tommaso Scalici; 05.08.2018