一、支持登陆时,指定语言,或登陆后进行语言切换(param_lang=en)javascript
二、支持 Cookie 存储语言设置,没有 Cookie 的状况使用 Session 存储,支持移动端html
三、支持 properties 文件、数据库存储译文,方便译文数据进行管理。前端
四、可翻译:固定数据(如:页面标题、标签、消息提示)、动态数据(如:菜单数据、字典数据等)java
五、中文免写 zh_CN 译文,如:text(‘你好’),找不到对应 key 直接原样输出 “你好”数据库
六、支持 kay 和译文参数,如:text(‘今天第{0}天’, 3),输出 “今天第3天”后端
不会变化的文字翻译,如:某个提示信息,字段 label,列表标题,按钮文字等,这些译文须要放到 properties 里。模块化
文件目录结构,支持模块化分类语言文件结构,以下:编码
/src/main/resources/messages/模块编码/i18n_语言编码.properties
例如:msg 模块 en 译文配置:翻译
/src/main/resources/messages/msg/i18n_en.properties
文件内容:code
在系统字典中维护新增长的语言:sys_lang_type,字典编码为语言编码;
业务或管理员可经过数据库进行修改或配置的一些文字译文,如菜单名称,字典名称,字典值等。
这些可经过 system 帐号登陆,进入菜单 “系统管理 -> 系统设置 -> 国际化管理” 添加译文。
根据需求本身扩展语言文件,例如:
<script src="${ctxStatic}/modules/i18n/i18n_${lang()}.js" ></script>
举例内容以下:
window.jeesiteMessage = $.extend({}, window.jeesiteMessage, { '你好' : 'Hello', '今天第 {0} 天' : ' Today is the {0} day.' });
一、获取语言名称:Global.getLang()
返回:en、zh_CN
二、获取语言编码译文:Global.getText(code)
例如:Global.getText("你好")
三、获取语言编码译文,支持参数:Global.getText(code, params...)
例如:Global.getText("今天第{0}天", 3)
四、在集成 BaseController 和 BaseService 的类里可直接经过
例如:text(code) 或 text(code, params...)
一、获取语言名称:${lang()}
返回:en、zh_CN
二、获取语言编码译文:${text(code)}
例如:${text("你好")}
三、获取语言编码译文,支持参数:${text(code, params...)}
例如:${text("今天第{0}天", 3)}
一、获取语言名称:window.lang || 'zh_CN'
返回:en、zh_CN
二、获取语言编码译文:text(code)
例如:text("你好")
三、获取语言编码译文,支持参数: text(code, params...)
例如:text("今天第{0}天", 3)
java.util.Locale :
public static final Locale ENGLISH = createConstant("en", ""); public static final Locale FRENCH = createConstant("fr", ""); public static final Locale GERMAN = createConstant("de", ""); public static final Locale ITALIAN = createConstant("it", ""); public static final Locale JAPANESE = createConstant("ja", ""); public static final Locale KOREAN = createConstant("ko", ""); public static final Locale CHINESE = createConstant("zh", ""); public static final Locale SIMPLIFIED_CHINESE = createConstant("zh", "CN"); public static final Locale TRADITIONAL_CHINESE = createConstant("zh", "TW"); public static final Locale FRANCE = createConstant("fr", "FR"); public static final Locale GERMANY = createConstant("de", "DE"); public static final Locale ITALY = createConstant("it", "IT"); public static final Locale JAPAN = createConstant("ja", "JP"); public static final Locale KOREA = createConstant("ko", "KR"); public static final Locale CHINA = SIMPLIFIED_CHINESE; public static final Locale PRC = SIMPLIFIED_CHINESE; public static final Locale TAIWAN = TRADITIONAL_CHINESE; public static final Locale UK = createConstant("en", "GB"); public static final Locale US = createConstant("en", "US"); public static final Locale CANADA = createConstant("en", "CA"); public static final Locale CANADA_FRENCH = createConstant("fr", "CA");