首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有办法为整个应用程序设置文化?所有当前线程和新线程?

有没有办法为整个应用程序设置文化?所有当前线程和新线程?
EN

Stack Overflow用户
提问于 2009-01-22 11:39:58
回答 10查看 172.6K关注 0票数 178

有没有一种为整个应用设置文化的方法?所有当前线程和新线程-

我们有存储在数据库中的区域性的名称,当应用程序启动时,我们这样做

代码语言:javascript
运行
复制
CultureInfo ci = new CultureInfo(theCultureString);
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;

但是,当然,当我们想要在一个新线程中做一些事情时,这就会“丢失”。有没有办法为整个应用程序设置CurrentCultureCurrentUICulture?所以新的线程也会得到这种区域性吗?或者,它是在创建新线程时触发的某个事件,我可以连接到该线程吗?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2011-09-24 08:25:59

在.NET 4.5中,可以使用CultureInfo.DefaultThreadCurrentCulture属性更改AppDomain的区域性。

对于4.5之前的版本,您必须使用反射来操作AppDomain的区域性。在CultureInfo上有一个私有的静态字段( .NET 2.0mcorlib中的m_userDefaultCulture,.NET 4.0mcorlib中的s_userDefaultCulture ),它控制如果线程没有在自身上设置该属性,CurrentCulture将返回什么。

这不会更改本机线程区域设置,而且以这种方式发布更改区域性的代码可能不是一个好主意。不过,它可能对测试很有用。

票数 200
EN

Stack Overflow用户

发布于 2009-01-22 11:43:02

这个问题被问得很多。基本上,没有,不是针对.NET 4.0。您必须在每个新线程(或ThreadPool函数)开始时手动执行此操作。您也许可以将区域性名称(或仅区域性对象)存储在静态字段中,以避免访问DB,但仅此而已。

票数 36
EN

Stack Overflow用户

发布于 2011-11-08 09:01:38

如果您正在使用资源,您可以通过以下方式手动强制执行:

代码语言:javascript
运行
复制
Resource1.Culture = new System.Globalization.CultureInfo("fr"); 

在资源管理器中,有一个自动生成的代码,如下所示:

代码语言:javascript
运行
复制
/// <summary>
///   Overrides the current thread's CurrentUICulture property for all
///   resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
    get {
        return resourceCulture;
    }
    set {
        resourceCulture = value;
    }
}

现在,每次引用此资源中的单个字符串时,它都会用指定的resourceCulture覆盖区域性(线程或进程)。

您可以将语言指定为"fr“、"de”等,或者将语言代码设置为0x0409表示en-US或0x0410表示it-IT。有关语言代码的完整列表,请访问:Language Identifiers and Locales

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/468791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档