如何实现 .NET 软件的多语言?

Python014

如何实现 .NET 软件的多语言?,第1张

VS好像专门的属性的~~~先Language属性里更改语言,然后傻瓜式的每一个中文改成外语,他会自己生成的资源的文件的,超简单~~

我认为第一种要更好一点~~因为制作简单,读取也方便,只有不到10行代码!

而第二种,貌似代码要用10行来做单位了吧~~

综上,我认为第一种好!

但是这是个人习惯问题!!习惯就是最好的~~

呵呵,要实现跨多语言,除非多语言支持某一特定的规范才行。

许多人往往不太理解规范的意思,我举个例子。

同一条铁路凭什么能够支持彼此不同的火车?是因为所有火车都支持一个特定的规范——左右车轮的间距与轨道的间距相等。

因此,.net的多语言必须支持特定的规范,这个规范就是通用类型系统(CTS)和公共语言规范(CLS),而实现这个规范的就是MSIL代码。

我在我的项目中是这样做的,给你做个参考吧。这个重写的方法你可以直接定义在当前页面的cs文件中。不过我是定义在页面基类中了。网站所有页面继承页面基类,就可以实现统一的多语言控制了。

protected override void InitializeCulture()

{

string strCurrentCulture = Request.QueryString["CurrentCulture"]//获取当前语言参数,你也可以从Session、Cookie、全局变量或是控件获取

if (!String.IsNullOrEmpty(strCurrentCulture))

{

try

{

Thread.CurrentThread.CurrentUICulture = new CultureInfo(strCurrentCulture)

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(strCurrentCulture)

UserStaticValue.CurrentCulture = strCurrentCulture

}

catch//如果当前语言参数不合法则默认显示中文

{

strCurrentCulture = "zh-cn"

//UICulture - 决定了采用哪一种本地化资源,也就是使用哪种语言

//Culture - 决定各种数据类型是如何组织,如数字与日期

Thread.CurrentThread.CurrentUICulture = new CultureInfo(strCurrentCulture)

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(strCurrentCulture)

}

}

else

{

strCurrentCulture = "zh-cn"

//UICulture - 决定了采用哪一种本地化资源,也就是使用哪种语言

//Culture - 决定各种数据类型是如何组织,如数字与日期

Thread.CurrentThread.CurrentUICulture = new CultureInfo(strCurrentCulture)

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(strCurrentCulture)

}

}

希望可以帮到你!