我认为第一种要更好一点~~因为制作简单,读取也方便,只有不到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)
}
}
希望可以帮到你!