c# - 本地化:如何将文化信息映射到脚本名称或 Unicode 字符范围?

标签 c# localization .net-2.0 globalization culture

我需要一些关于本地化的信息。我将 .net 2.0 与 C# 2.0 一起使用,它处理了大部分与本地化相关的问题。但是,我需要在一个特定的屏幕上手动绘制与屏幕上当前文化相对应的字母。

这类似于 Microsoft Outlook 中的联系人屏幕(地址卡 View 或联系人下的详细地址卡 View ),因此它需要在右端有一列按钮,每个字母一个。

我正在尝试模仿它,但我不想让用户选择脚本。如果当前的文化是中文,我想画中文字母。当用户将文化信息更改为英文时(以及当他重新启动应用程序时),我想改为绘制英文字母。希望您了解我要处理此查询的位置。

我可以确定当前用户的文化(Application.CurrentCulture 或 System.Globalization.CultureInfo.CurrentCulture 将提供与文化相关的信息)。我也有渲染字母表的所有脚本。但是,问题是我不知道如何将文化信息映射到脚本的名称。

也就是说,有没有办法确定一个文化对应的文字名称?或者是否可以确定与文化对应的 Unicode 字符值范围?它们中的任何一个都可以让我在按钮上正确呈现字母。

非常感谢有关此的任何建议或指导。如果我的方法(或我试图实现的目标)存在根本性错误,也请指出。谢谢你的时间。

PS:我知道最简单的解决方案是将脚本名称配置为用户首选项的一部分,或者显示一个语言列表供用户选择(如 Outlook 2007 中的联系人)。但我只是想看看我是否可以在用户无需执行任何操作的情况下呈现与文化相对应的字母表。

最佳答案

在 native 代码中,有一个用于 GetLocaleInfoEx()(Vista 及更高版本)的 LOCALE_SSCRIPTS,它向您显示语言环境需要哪些脚本。目前 .Net 没有类似的概念。

关于c# - 本地化:如何将文化信息映射到脚本名称或 Unicode 字符范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/252662/

相关文章:

c# - 在 ASP.NET Core 中通过 DI 从初始化对象初始化对象

android - Android 中 settext 上的 textview 不支持不同的语言字符串?

unicode - ICU/CLDR/UCA 支持哪些日语排序/整理顺序?

c# - ArrayList 到 C# 中的 int[]

c# - 在 C# 中修剪 String 数组的内容

c# - 将 CheckBox IsChecked 属性绑定(bind)到 ListView 的 SelectedItems 属性

c# - 找到匹配的单词

c# - 如何配置 WCF 以将 HTTP 与客户端证书一起使用?

python - 使用 SoftBank 库的胡椒制图和导航

asp.net - ASP.NET 2.0 的最佳免费富文本框?