Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF本地化问题_C#_Wpf_Localization_Culture_Wpflocalizationextension - Fatal编程技术网

C# WPF本地化问题

C# WPF本地化问题,c#,wpf,localization,culture,wpflocalizationextension,C#,Wpf,Localization,Culture,Wpflocalizationextension,出于测试目的,我正在尝试本地化一个虚拟应用程序,以查看什么最符合我们的需要 我想试试 因此,我: 创建了一个全新的WPF应用程序,创建了一个主窗口 通过nugget添加了对WPF本地化扩展的引用 创建了一个名为Localization.resx和一个Localization.fr.resx 我在两个resx中都为“WelcomeText”键添加了一个文本 在主窗口中,我放置: xmlns:lex="http://wpflocalizeextension.codeplex.com

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

我想试试

因此,我:

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

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

  • 创建了一个名为
    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

  • 如果我运行这个应用程序,我会用英语显示文本

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

    首先,我做错了什么?
    然后:我应该如何在运行时更改当前区域性?

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

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

    LocalizeDictionary.Instance.Culture = new CultureInfo("fr");
    
    很抱歉这个问题