Я пытаюсь установить WPF для нескольких языков.
Я использовал ResourceDictionary, как и в других сообщениях, но просто напомню:
1 - Создание файлов ResourceDictionary: \ Resources \ StringResources.xaml для default (en) и \ Resources \ FR \ StringResources.xaml для французского (fr)
2 - вызовите метод ниже при запуске приложения, я поместил его в свой app.xaml.cs
private void SetLanguageDictionary()
{
ResourceDictionary dict = new ResourceDictionary();
switch (Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName)
{
case "en":
dict.Source = new Uri("..\\Resources\\StringResources.xaml", UriKind.Relative);
break;
case "fr":
dict.Source = new Uri("..\\Resources\\FR\\StringResources.xaml", UriKind.Relative);
break;
default:
dict.Source = new Uri("..\\Resources\\StringResources.xaml", UriKind.Relative);
break;
}
this.Resources.MergedDictionaries.Add(dict);
}
3 - вызовите его из ваших файлов xaml, например:
<button Text="{DynamicResource settings}" />
4 - в файле ResourceDictionary:
xmlns:system="clr-namespace:System;assembly=mscorlib"
<system:String x:Key="settings">Settings</system:String>
Это очень просто, но сначала проблема заключается в следующем: как вы установите его в коде позади? Я просматривал другие посты, и они, кажется, упоминают такие вещи, как: (Однако у меня не работает ..)
string str = Resources.ResourceManager.GetString(settings);
Есть ли что-то особенное?
Теперь, если это работает очень хорошо, как насчет использования файлов .resx? Кажется, ими гораздо легче управлять и даже можно автоматически переводить. Но предпочтительнее ли это go?
Будут ли они также использовать 1 файл на язык? Где бы мы установили файл для выбора при запуске приложения? Я, кажется, изо всех сил пытаюсь найти какую-то помощь по этому вопросу, к сожалению ...