【问题标题】:WPF localization issueWPF本地化问题
【发布时间】:2015-08-26 08:59:15
【问题描述】:

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

我想试试WPF Localization Extension

所以我:

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

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

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

  4. 我在两个 resx 中都为“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 中测试应用程序。我重建并重新启动,但我仍然收到英文消息。

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

【问题讨论】:

    标签: c# wpf localization culture wpflocalizationextension


    【解决方案1】:

    其实我想我刚刚找到了答案。

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

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

    抱歉这个问题

    【讨论】:

      猜你喜欢
      • 2010-10-05
      • 2010-12-16
      • 2012-03-26
      • 2011-02-18
      • 2011-07-11
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多