使用.NET 从区域设置字符串获取语言名称?例如:en_us =>英语

发布于 2024-11-03 01:55:03 字数 107 浏览 7 评论 0原文

如何找到给定区域设置的语言?

示例:输入:en_US 输出:英语

使用 .NET 库?我尝试了 CultureInfo 类,但找不到有用的东西。

谢谢!

How can i find the language for a given locale?

Example: input: en_US
output: English

Using the .NET libraries? I tried the CultureInfo class, but i can't find something usefull.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

长梦不多时 2024-11-10 01:55:03

不要使用 CultureInfo 的构造函数。使用静态 GetCultureInfo 方法速度更快,因为该方法已缓存并返回不可变(只读)CultureInfo 对象。

根据 有关本地化的 Facebook SDK 文档,可以安全地假设您可以替换下划线通过破折号以便让 .NET 理解区域设置。

Facebook 区域设置遵循 ISO 语言
和国家代码分别,
用下划线连接。

基本格式是“ll_CC”,其中
''ll'' 是两个字母的语言代码,
''CC'' 是两个字母的国家
代码。例如,“en_US”代表
美国英语。

如果您需要名称以英语显示(无论操作系统的语言如何),请使用

CultureInfo.GetCultureInfo("en-US").EnglishName

如果您需要名称以操作系统的语言显示,请使用:

CultureInfo.GetCultureInfo("en-US").DisplayName

Do not use the constructor of CultureInfo. It is faster to use the static GetCultureInfo method since this method is cached and returns an immutable (readonly) CultureInfo object.

According to the Facebook SDK documentation concerning localization, it is safe to assume that you can replace the underscore by a dash in order to allow .NET to understand the locale.

Facebook locales follow ISO language
and country codes respectively,
concatenated by an underscore.

The basic format is ''ll_CC'', where
''ll'' is a two-letter language code,
and ''CC'' is a two-letter country
code. For instance, 'en_US' represents
US English.

Depending if you need the name to appear in english regardless of the language of the OS, use

CultureInfo.GetCultureInfo("en-US").EnglishName

If you need the name in the language of the OS, use:

CultureInfo.GetCultureInfo("en-US").DisplayName
云巢 2024-11-10 01:55:03

您需要使用 en-US 而不是 en_US ,代码如下:

System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("en-US");
string name = culture.DisplayName;

输出:英语(美国)

You need to use en-US not en_US with code like:

System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("en-US");
string name = culture.DisplayName;

output: English (United States)

泅人 2024-11-10 01:55:03
System.Globalization.CultureInfo.GetCultureInfo("en-US").EnglishName;
System.Globalization.CultureInfo.GetCultureInfo("en-US").EnglishName;
小嗲 2024-11-10 01:55:03

您可以使用以下代码

Dim culture1 As CultureInfo = New CultureInfo("en-US")
Dim t As Thread = Thread.CurrentThread
Dim currentCulture As CultureInfo = t.CurrentCulture
Dim currentUICulture As CultureInfo = t.CurrentUICulture

'*** display cultures in console
Console.WriteLine("Current Culture: " & currentCulture.Name)
Console.WriteLine("Current UI Culture: " & currentUICulture.Name)

You can use following code

Dim culture1 As CultureInfo = New CultureInfo("en-US")
Dim t As Thread = Thread.CurrentThread
Dim currentCulture As CultureInfo = t.CurrentCulture
Dim currentUICulture As CultureInfo = t.CurrentUICulture

'*** display cultures in console
Console.WriteLine("Current Culture: " & currentCulture.Name)
Console.WriteLine("Current UI Culture: " & currentUICulture.Name)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文