实现这个需要应用到微软提供的本地资源文件Resources,实际上就是一种key value的形式。
语言自动切换原理有两种
- 读取浏览器的语言首选项
- 根据IP网段进行识别。比如有的人通过VPN连接到TW,浏览器会自动切换到繁体模式。可以尝试连到淘宝或者google,你就懂了。
以下写个小Demo:
创建一个aspx页面,拉个Lable控件,Text的value如下:
切换到“设计”:
选择“工具” ->"生成本地资源"
这样再返回看你的项目,会生成一个对应的文件夹App_LocalResources,下面会根据你的页面名称创建一个资源文件test.aspx.resx .resx是资源文件的后缀名
这个时候aspx页面会自动生成这些标识,这些的作用就是用来注册到资源文件,当页面运行时,会去找test.aspx.resx这个资源文件 ,看是否有提供相符合的语言版本。
另外,在这个Lable的Text值,是默认的语言
这时再创建一个resx,我习惯直接复制系统帮我们自动生成的resx文件,这样在开发中就省去了很多麻烦了。这个例子只演示下繁简体的切换,注意下图的资源文件的命名方式。这个是固定的命名规则
即:aaa.aspx.resx 如果是中文的resx :aaa.aspx.zh-CN.resx ,如果需要更多的语言支持,自己谷歌或百度下
看下页面的效果:IE 和Chrome对比 ,为了模拟出效果,chrome为简体 IE(11)为繁体 ,设置浏览器的语言首选项,可以看下图
当然,这边会有更多的拓展,
比如如果是以前的页面已经做了资源文件了,现在需要多加个功能标题,用什么方式去修改呢?
再或者项目中需要把js的提示语也改成有繁简的怎么改了?
aspx页面cs后台,怎么去调用资源文件呢?
这些问题留给大家,有需要帮助的,可以给我留个言~