Я работаю над WPF-приложением, которое должно быть многоязычным. Итак, я выполнил шаги в этом article и добавил некоторые ресурсные словари к моему проекту. Тогда я добавить один из этих dictionarioes к окну следующим способом, который я звоню - для целей тестирования - в конструкторе окна:Как отображать многоязычный текст ресурсов во время разработки в WPF
private void SetLanguageDictionary()
{
ResourceDictionary dict = new ResourceDictionary();
switch (Thread.CurrentThread.CurrentCulture.ToString())
{
case "en-US":
case "en-GB":
dict.Source = new Uri("Resources\\StringResources_en-US.xaml",
UriKind.Relative);
break;
case "de-DE":
dict.Source = new Uri("Resources\\StringResources_de-DE.xaml",
UriKind.Relative);
break;
default:
dict.Source = new Uri("Resources\\StringResources_de-DE.xaml",
UriKind.Relative);
break;
}
Resources.MergedDictionaries.Add(dict);
}
Наконец я реализовал ресурсы в ярлыках на моем Окно:
<Label Grid.Row="0"
Grid.Column="0"
Margin="5"
Content="{DynamicResource firstname}"></Label>
Если текущая культура на моем компьютере «en-US», контент будет «Имя». Или в случае «de-DE» (немецкий) «Vorname».
Во время работы он отлично работает, но во время разработки я не вижу тексты.
Что мне делать?
Я думаю, что вы могли бы делать это трудный путь, я использую Content = "{Binding CommonDate, Source = {StaticResource ресурсы }} "где Resources is Resources.resx – 0x4f3759df
Это звучит как работа для инъекции зависимостей. Я использую набор инструментов MVVM Light от NuGet - по умолчанию данные, к которым вы привязываетесь, будут поступать из одного из двух хранилищ данных (хранилищ) - у вас есть проект dataservice, который обрабатывает фиктивные данные для проектирования и ваш производственный сервисный центр, который используется в во время выполнения. В вашей модели просмотра вы извлекаете объекты, с которыми вы привязываетесь, от службы данных, но вы будете получать разные объекты в зависимости от того, какой dataservice используется (что, в свою очередь, зависит от того, находитесь ли вы в режиме разработки). Вы можете найти дополнительную информацию по адресу https://mvvmlight.codeplex.com/ –