随着信息技术的快速发展,企业的国际化也越来越突出,做为宣传企业的网站也需要多语言。本文主要阐述不是怎样去实现网站的多语言,而是简单阐述一下我对网站开发多言语功能的策略。
总体方案也是使用“i18next组件“,对网站中涉及标题字符进行翻译。“i18next组件”如何使用不在本文编写之内,具体的操作请参照 http://i18next.com/
下面我对网站多语言策略做一下阐述,这是我近期工作项目的总结,如果有不对,或者有缺陷,望博友多多指出,谢谢!
我总体设计策略是在切换语言时,动态加载不同语言的”.js“和”.css“文件。在动态加载之前先加入一份语言数据的”.js“文件,该文件主要以json数据形式定义多语言对应的一些数据。
一、json数据
格式例如:
//ocx控件语言列表
var JQGRID_LANGUE_LIST = {
"zh-CN": XXX,<span style="white-space:pre"> </span>//xxx表示你所定义字符
"en-US": XXX<span style="white-space:pre"> </span>//同上
};
前面”zh-CN“与"en-US"是多言语方案”i18next组件“设定关键词。本列就是对ocx多语言方案就像设置。
二、动态加载”.js“文件。
列如:要加入”validate组件”
var g_strPluginLangue = "cn"; //加入(用于网页列表插件多语言版本)
//DEFAULT_LANGUAGE参数为默认的语言
i18n.setLng(DEFAULT_LANGUAGE,{
getAsync: false,
});
g_strPluginLangue = JQGRID_LANGUE_LIST[DEFAULT_LANGUAGE];
document.writeln("<script type='text\/javascript' src='lib\/i18n\/validate_" + g_strPluginLangue + ".js'><\/script>");
综上,这样就可以保证一份代码,这样方案便于维护。
对于网页多语言方案,还有比较重要的就是布局。因为每一种语言对应字符数不同。而大部分布局采用css样子来实现,这样可以利用上面的方案进行实现,但是有些像“dialog组件”中设定窗口的大小,就无法使用css样来实现,基于上面json数据的方案对这样的布局也采用上面的方案。加入一个“.js”文件专门负责对于无法使用css样式来设置布局,而多语言中又无法使用相同布局的组件或者特定布局都存在这里。动态加载这些数据。从而实现多语言多布局。