Локализация для субкультур на WP7 не собрана - PullRequest
4 голосов
/ 17 августа 2011

Я пытаюсь локализовать свое приложение wp7, и мне нужно иметь разные строки для de-DE и de-AT, потому что между этими двумя культурами есть некоторые языковые различия, хотя основные настройки одинаковы.

Для этого я сделал следующее:

  1. Создан AppResources.resx файл для английского текста по умолчанию
  2. Создан файл AppResources.de-DE.resx для текста на немецком языке
  3. Создан AppResources.de-AT.resx файл для немецкого текста для австрийской субкультуры
  4. в Информация о сборке ... в свойствах проекта Я установил английский как свой Нейтральный язык
  5. Я закрыл решение, открыл свой project.csproj файл и изменил <SupportedCultures/> на следующее: <SupportedCultures>de-AT;de-DE</SupportedCultures>
  6. Я добавил новый класс LocalizedStrings, зарегистрировал его в Application.Resources в App.xaml и соответственно изменил строку вывода.

Оба эмулятора в качестве трубки настроены на австрийский язык, System.Globalization.CultureInfo.CurrentCulture.ToString(); возвращает de-AT , но независимо от того, что используются тексты, определенные в AppResources.de-DE.resx, а не те, которые определены в файле для австрийской культуры.

Есть идеи, как мне решить эту проблему?

1 Ответ

1 голос
/ 16 января 2012

Вы должны проверить CultureInfo.CurrentUICulture , а не CurrentCulture!

Это свойство, которое контролирует, какие ресурсы загружаются для интерфейса!

Значение CurrentUICulture должно соответствовать выбранному в телефоне / эмуляторе. Настройки -> Регион + Язык -> Язык интерфейса .

В идеале вы всегда можете переопределить наложенную системой CurrentUICulture, установив другое значение CultureInfo в Thread.CurrentUICulture .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...