Как использовать нейтральный язык в Windows Phone - PullRequest
2 голосов
/ 18 декабря 2011

У меня возникла следующая проблема:

  • Я перевел свое приложение на разные языки, используя файлы resx.Я хочу использовать те же файлы resx и в других приложениях.
  • Для разных приложений я смогу изменить язык по умолчанию (некоторые приложения будут доступны только на испанском языке, другие - только на английском и другие).многоязычный)

Я подумал, что могу просто назвать ресурсы LanguageStrings.es.resx и LanguageStrings.en.resx и использовать NeutralResourcesLanguageAttribute для установки языка приложения по умолчанию.

Однакоесли в приложении нет LanguageStrings.resx (инвариантный файл), приложение, кажется, перестает работать (MissingManifestResourceException).Я подумал, что Resource Manager должен использовать настройку в NeutralResourcesLanguageAttribute, чтобы найти правильный ресурс (например, использовать испанский) вместо поиска нейтрального файла.

Верно ли мое предположение и я работаю на платформеошибка?Я заметил, что ResourceManager.GetNeutralResourcesLanguage не возвращает язык, определенный с помощью NeutralResourcesLanguageAttribute, но вместо этого инвариантная культура

Ответы [ 2 ]

2 голосов
/ 18 декабря 2011

Без инвариантного файла ресурсов (LanguageStrings.resx) компилятор не подберет его.Вы должны позволить английскому файлу ресурсов (в настоящее время LanguageStrings.en.resx) быть инвариантным файлом, т.е.без .en в имени файла, а затем установите

[assembly: NeutralResourcesLanguage("en")]

Все приложения .NET работают таким образом.Это не единственная проблема для Windows Phone.

0 голосов
/ 18 декабря 2011

Полагаю, если вы указываете свой язык как поддерживаемый в элементе вашего csproj - вам нужен рекс, который вы пытаетесь использовать в поддерживаемой культуре. Если вы используете язык, который предположительно поддерживается, а resx отсутствует, вы получите исключение MissingManifestResourceException. Нейтральный язык будет выбран, если текущий язык не поддерживается.

...