1

出于测试目的,我正在尝试本地化一个虚拟应用程序,以便查看最符合我们需求的应用程序。

我想尝试WPF Localization Extension

所以我 :

  1. 创建了一个全新的 WPF 应用程序,创建了一个主窗口。

  2. 通过 nugget 添加了对 WPF 本地化扩展的引用。

  3. 创建了一个名为 resxLocalization.resx和一个Localization.fr.resx

  4. 我在两个 resx 中添加了“WelcomeText”键的文本。

  5. 在主窗口中,我输入:

    xmlns:lex="http://wpflocalizeextension.codeplex.com"
    lex:LocalizeDictionary.DesignCulture="en"
    lex:ResxLocalizationProvider.DefaultAssembly="LocalizedApplication"
    lex:ResxLocalizationProvider.DefaultDictionary="Localization"
    

    在 Window 声明中

  6. 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 中测试应用程序。我重建并重新启动,但我仍然收到英文消息。

所以首先:我做错了什么?然后:我应该如何在运行时改变当前的文化?

4

1 回答 1

3

事实上,我想我刚刚找到了答案。

似乎它不使用 CurrentCulture 并且您必须将其设置为:

LocalizeDictionary.Instance.Culture = new CultureInfo("fr");

抱歉这个问题

于 2015-08-26T09:30:29.183 回答