一、支持登陸時,指定語言,或登陸後進行語言切換(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");