我正在开发一个.net 4.5应用程序,需要多语言支持多文化等 .
以下是国家/语言的示例列表
-
俄罗斯/俄罗斯
-
比利时/法国
-
比利时/荷兰
对于上述所有内容,可以根据上述文化名称创建CultureInfo对象
-
ru-RU
-
fr-BE
-
nl-BE
当用户进入站点时,我将Thread.CurrentThread.CurrentCulture和Thread.CurrentThread.CurrentUICulture设置为使用上述名称创建的文化,例如 .
Thread.CurrentThread.CurrentCulture = new CultureInfo("nl-BE", false)
Thread.CurrentThread.CurrentUICulture = new CultureInfo("nl-BE", false)
以上所有名称均为有效的文化名称 .
不,但我需要在俄罗斯添加另一种文化名称,英语 . 但问题是代码en-RU无效,所以当我创建 new CultureInfo("en-RU", false)
时,我得到一个CultureNotFoundException,因为en-RU无效 .
有了这种文化,我希望俄罗斯的格式等数字,日期等,但我希望网站上的语言是英语 . 是否可以使用国家/地区(俄罗斯)的行为为无效的文化名称创建自定义CultureInfo对象?
3 回答
是 .
使用CultureAndRegionInfoBuilder来帮助创建自定义
CultureInfo
. (注意:一旦你有了创建文化的代码,执行此操作的设置可以保存到XML,然后加载,例如从资源中加载,在运行时应该需要更少的代码 . )你可能需要混合,混合和匹配 - 有一个英语文化对象,你用于英文文本,但ru-Ru(俄罗斯)的文化对象用于数字格式 .
或者甚至更好地创造一种结合两者的定制文化
Create custom culture in ASP.NET
你应该使用
CultureInfo.InvariantCulture
属性CultureInfo.InvariantCulture Property
这是另一种选择Custom Global Application Culture