Локализация не работает в моем приложении UWP

У меня есть приложение UWP в Магазине Windows. Я настроил несколько языков, используя инструментарий для многоязычного приложения, но локализация почему-то не работает. Я пытался несколько раз, устанавливая язык отображения на один из поддерживаемых языков, но это просто не работает.

Я также создал пример проекта, чтобы любой мог мне помочь. Вот ссылка-https://1drv.ms/u/s!Ar2Oon4jkTNAqdkRe4R6gpr6DOXRDw


person B.Shah    schedule 20.01.2017    source источник
comment
Вы пробовали, работает ли он на эмуляторе? Пробовали ли вы изменить язык на своем телефоне, а затем установить приложение (не после установки)?   -  person Romasz    schedule 20.01.2017


Ответы (1)


Если вы используете «новую» систему локализации, основанную на x:Uid, представленной в приложениях Windows 8.1, ознакомьтесь со следующим учебным пособием, в котором приведен подробный пример: https://www.codeproject.com/Articles/862152/Localization-in-Windows-Universal-Apps

Ваша ошибка в основном заключается в имени в resw-файле. У вас есть TextBlock в вашем проекте следующим образом:

<TextBlock x:Uid="Hi" />

Затем в вашем resw-файле ваша переведенная строка должна иметь:

  • Имя Hi.Text (потому что вы хотите локализовать TextProperty блока)
  • Значение, которое вы хотите отобразить (например, Привет на английском, Привет на немецком и т. д.)

Эта система позволяет вам изменять свой пользовательский интерфейс в зависимости от языка, например. вы можете добавить в немецкий файл resw только вторую строку с именем Hi.Foreground и значением Green, и строка будет зеленой, но только на немецком языке.

В вашем проекте он всегда показывает Привет, потому что он у вас есть как статическое значение:

<TextBlock x:Uid="Hi" Text="Hi"></TextBlock>

Если вы удалите Text="Hi", то в вашем текущем проекте ничего не будет отображаться из-за того, что я объяснил выше.

person DevAttendant    schedule 20.01.2017
comment
почему вы должны использовать Hi.Text? если вы хотите использовать где-то еще в другом инструменте не как свойство текста? Например, стоит ли добавить еще один Hi.Content? - person Emil; 12.02.2019
comment
@batmaci Да, если вы хотите обратиться к локальному значению для ContentProperty, в этом случае вам нужно будет установить Hi.Content. - person DevAttendant; 26.03.2019