WPF本地化问题

本文关键字:问题 本地化 WPF | 更新日期: 2023-09-27 18:09:56

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

我想尝试WPF本地化扩展。

所以I:

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

  2. 添加了WPF本地化扩展的参考。

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

  4. 我在两个文本框中都添加了"WelcomeText"关键。

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

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

    在窗口声明

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

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

WPF本地化问题

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

它似乎不使用CurrentCulture,你必须设置它:

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

不好意思