Для целей тестирования я пытаюсь локализовать фиктивное приложение, чтобы узнать, что соответствует лучшим нашим потребностям.Проблема локализации WPF
Я хотел попробовать WPF Localization Extension.
Я:
- создал совершенно новое приложение WPF, создал основные окна.
- Добавлены ссылки на расширение локализации WPF через самородок.
- создал один Resx имени
Localization.resx
и одинLocalization.fr.resx
- Я Добавлено в обоих Resx текст для ключа «WelcomeText».
В главном окне, я поставил:
xmlns:lex="http://wpflocalizeextension.codeplex.com" lex:LocalizeDictionary.DesignCulture="en" lex:ResxLocalizationProvider.DefaultAssembly="LocalizedApplication" lex:ResxLocalizationProvider.DefaultDictionary="Localization"
В декларации окна
я добавил один
TextBlock
внутри сетки:<TextBlock Text="{lex:Loc WelcomeText}" />
Если я запустить приложение, У меня есть текст, отображаемый на английском языке.
Теперь добавьте следующий код в конструктор App.cs:
public App():base()
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr");
Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture;
CultureInfo.DefaultThreadCurrentCulture = Thread.CurrentThread.CurrentUICulture;
CultureInfo.DefaultThreadCurrentUICulture = Thread.CurrentThread.CurrentUICulture;
}
Чтобы проверить приложение в FR. Я перестраиваю и перезапускаю, но я все еще получаю сообщение на английском языке.
Итак, во-первых: что я сделал не так? Затем: Как мне изменить текущую культуру во время выполнения?