Как локализовать библиотеку классов WP8?

Я пытаюсь использовать файлы ресурсов (.resx) в библиотеке классов. У меня возникают проблемы с использованием этих ресурсов в файлах XAML моей библиотеки, поскольку библиотеки не поставляются с файлом App.xaml. Так что я не могу сделать:

<Application.Resources>
     <local:LocalizedStrings xmlns:local="clr-namespace:WPLocalization" x:Key="LocalizedStrings" />
</Application.Resources>

Как мне локализовать автономную библиотеку/сборку WP8?


person AxiomaticNexus    schedule 13.09.2013    source источник


Ответы (1)


Я нашел способ, но это скорее обходной путь.

Решение состоит не в том, чтобы пытаться локализовать ваши элементы управления из XAML, а в том, чтобы локализовать ваш программный код.

Например, вы определяете Button в XAML следующим образом:

<Button Name="MyButton" />

И затем в вашем частичном class вы программно устанавливаете содержимое кнопки следующим образом:

MyButton.Content = MyLocalizedStrings.Hello;

Конечно, в этом примере у вас будет файл ресурсов с именем «MyLocalizedStrings.resx» в вашем проекте со строкой с именем «Hello».

Такой подход решает проблему. Единственным недостатком является то, что вы не сможете просмотреть локализованный XAML в окне Visual Studio XAML.

person AxiomaticNexus    schedule 23.09.2013