c#:在dotnet类中是否有一个属性声明;“当前”;实际区域性是默认区域性吗?

c#:在dotnet类中是否有一个属性声明;“当前”;实际区域性是默认区域性吗?,c#,localization,resx,culture,cultureinfo,C#,Localization,Resx,Culture,Cultureinfo,在某个类中是否有一个属性可以告诉我当前区域性是否实际上是默认区域性 类似于winforms的本地化工作方式。它在一个表单中声明语言是否为默认语言 假设我在en-US中-如何通过代码判断en.US是否为实际默认值 我需要对一些.net不支持的XML文件进行一些本地化,因此我想实现我自己的 并按照winforms的工作方式进行操作,即 nameofxml.default.xml (this is the default local) nameofXml.de-de.xml (this is germ

在某个类中是否有一个属性可以告诉我当前区域性是否实际上是默认区域性

类似于winforms的本地化工作方式。它在一个表单中声明语言是否为默认语言

假设我在en-US中-如何通过代码判断en.US是否为实际默认值

我需要对一些.net不支持的XML文件进行一些本地化,因此我想实现我自己的

并按照winforms的工作方式进行操作,即

nameofxml.default.xml (this is the default local) nameofXml.de-de.xml (this is german) nameofxml.default.xml(这是默认的本地名称) name of xml.de-de.xml(这是德语) 等


属性是否存在?

您可以使用在程序集级别声明嵌入的资源具有特定的区域性

IIRC,这样,如果所需的区域性是嵌入到程序集中的区域性,则资源管理器可以优化资源加载过程


由于您正在推出自己的本地化实现,我不知道这会有什么帮助,但是,如果发现程序集中声明的区域性与正在查找的所需区域性不匹配,则可以使用该属性指示直接嵌入到程序集中的XML本地化信息的区域性属于特定区域性,并默认为搜索附属程序集或其他自定义后台存储对于.

CultureInfo.CurrentCulture
是一个静态成员,它“获取表示当前线程使用的区域性的CultureInfo”。如果只包含
系统.Globalization
命名空间,则可以从任何类访问它


文档:

System.Globalization.CultureInfo.CurrentCulture
表示系统的控制面板区域设置,而
System.Globalization.CultureInfo.CurrentUICulture
对应于系统的输入UI语言设置(除非安装了多语言用户界面,否则无法更改)

因此,您可以使用以下代码段来确定“默认”区域性:

using System.Globalization;
// N.B. execute the following line *before* you programmatically change the CurrentCulture
// (if you ever do this, of course)

// Gets the CultureInfo that represents the culture used by the current thread
CultureInfo culture = CultureInfo.CurrentCulture;
string code = culture.IetfLanguageTag; // e.g. "en-US", "de-DE", etc.
然后您可以使用
code
来定位.xml文件。

默认为“不变区域性”或默认为“系统区域设置”?