Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.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程序';App.config中的文化_C#_.net_Wpf_Localization_App Config - Fatal编程技术网

C# 设置WPF程序';App.config中的文化

C# 设置WPF程序';App.config中的文化,c#,.net,wpf,localization,app-config,C#,.net,Wpf,Localization,App Config,我有一个WPF应用程序,我正在修改它以支持本地化。我的计划是我公司提供的一套产品的一部分。我们已经创建了一个资源DLL,其中包含所有产品需要翻译的字符串。我已经在我的程序中添加了对这个DLL的引用,添加了字符串资源,并修改了我的代码以使用字符串资源而不是硬编码字符串。当我用英语运行程序时,一切正常 我们已经将字符串资源翻译成西班牙语。我已经创建了一个包含西班牙语翻译的resx文件。我已经重新构建了我的应用程序。现在我想看到西班牙语文本出现在我的程序中,而不必更改计算机的区域设置 程序无需动态更改

我有一个WPF应用程序,我正在修改它以支持本地化。我的计划是我公司提供的一套产品的一部分。我们已经创建了一个资源DLL,其中包含所有产品需要翻译的字符串。我已经在我的程序中添加了对这个DLL的引用,添加了字符串资源,并修改了我的代码以使用字符串资源而不是硬编码字符串。当我用英语运行程序时,一切正常

我们已经将字符串资源翻译成西班牙语。我已经创建了一个包含西班牙语翻译的resx文件。我已经重新构建了我的应用程序。现在我想看到西班牙语文本出现在我的程序中,而不必更改计算机的区域设置

程序无需动态更改区域性设置。对于特定安装,该程序将仅以一种语言运行


该程序有一个App.config文件。除了添加包含区域性信息的自定义设置外,我如何告诉我的程序以西班牙语运行?

您可以像这样在App.config中定义一个键

<configuration>
    <appSettings>
        <add key="DefaultCulture" value="es-CO" />
    </appSettings>
</configuration>
在配置示例中,我将其设置为西班牙语哥伦比亚


这是一个

的列表,我决定添加这个答案,因为如果您想在安装了多个语言包的机器上始终显示特定语言,@MauricioGarcia的答案是有效的,那么无论机器上当前的区域设置是什么,我们都没有以这种方式实现它

相反,我们只使用当前
Thread.CurrentThread.CurrentCulture
Thread.CurrentThread.CurrentUICulture
属性中设置的
CultureInfo
对象。将计算机上的区域设置设置为特定位置和语言时,这些属性将自动更改。所以他们总是对的&我们不必添加任何代码来更改任何内容


有趣的是,
CurrentUICulture
属性中的对象用于确定要显示的语言字符串,
CurrentCulture
属性中的对象用于格式化数字和日期时间。

好的,我有一个问题:当创建新线程时,他们是继承这个区域性设置,还是我必须为代码中的每个新线程都设置它?尝试它是无可替代的。我在程序中设置了一个断点,在这里它创建了第一个子线程&该线程的区域性设置为默认区域性。我想我是在添加代码来更改每个新线程的区域性。@Tony Vitabile,所以你问如何在开发人员社区中设置区域性,并最终选择使用windows设置的自己的答案??
CultureInfo culture = new CultureInfo(ConfigurationManager.AppSettings["DefaultCulture"]);
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;