如果.net支持的iso代码不足以发现语言/地区怎么办?
本文关键字:语言 地区 怎么办 发现 不足以 支持 net iso 代码 如果 | 更新日期: 2023-09-27 18:13:22
我正在做一个翻译应用。
应用程序应该考虑像俄罗斯这样的大国的不同地区。
因此,使用iso639是不够的,因此我额外使用iso3166,它们一起
: ISO639-ISO3166 =>"it-CH"
本机名称将是"italiano",我必须显示给翻译人员。
。. NET框架为我提供了210种语言,考虑使用以下代码的区域:
List<string> list = new List<string>();
CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
foreach (CultureInfo culture in cultures)
{
RegionInfo region = new RegionInfo(culture.LCID);
var text = string.Format("'"{0} - {1}'", '"{2}-{3}'"",
region.EnglishName, culture.Parent.NativeName,
culture.Parent.TwoLetterISOLanguageName,
region.TwoLetterISORegionName);
list.Add(text);
}
如果我们要用。net框架不支持的特定地区的语言翻译文本该怎么办?
当我这样做的时候:
var info = new CultureInfo("tt-RU");
string nativeName = info.Parent.NativeName;
我得到正确的语言。
但是如果我传递一个。net框架不支持的等码组合呢?这样我就不能为翻译人员显示语言了。
你会怎么做?还是你觉得我不应该计划那么远?
不幸的是,事情并没有那么简单:你的代码没有列出。net框架支持的所有文化,因为支持的文化取决于你的操作系统。
下面的文档说明
我想,要回答你的问题,你会怎么做?还是你觉得我不应该计划那么远?Windows版本或服务包可以更改可用的区域性。
如果你需要使用当前操作系统不支持的语言,你必须安装一个支持它的服务包,或决定利用CultureAndRegionInfoBuilder来创建一个全新的文化并安装在需要它的计算机上。
对于这两种情况,底线是:您现在不需要提前计划那么远,因为如果您创建了自己的文化,它将被认为与安装了它的计算机上的任何其他官方文化一样。