guns/src/main/webapp/assets/expand/module/i18n/i18n.js

76 lines
2.6 KiB
JavaScript

/**
* 多语言相关方法的封装
*
* @author fengshuonan
* @date 2021/1/29 21:49
*/
layui.define(['HttpRequest'], function (exports) {
var HttpRequest = layui.HttpRequest;
var i18n = {
/**
* 获取多语言的种类
*/
getLanguageTypes: function () {
var results = null;
var languageRequest = new HttpRequest(Feng.ctxPath + "/i18n/getAllLanguages", 'get', function (data) {
results = data.data;
}, function (data) {
layer.msg("获取语言列表失败!" + data.message, {icon: 5, anim: 6});
});
languageRequest.start();
return results;
},
/**
* 改变当前用户显示的语言种类
*
* @param code 多语言种类的编码
*/
changeUserTranslation: function (code) {
var changeLanguageRequest = new HttpRequest(Feng.ctxPath + "/i18n/changeUserTranslation", 'post', function (data) {
window.location.href = Feng.ctxPath + "/";
}, function (data) {
layer.msg("切换多语言失败!" + data.message, {icon: 5, anim: 6});
});
changeLanguageRequest.set("tranLanguageCode", code);
changeLanguageRequest.start(true);
},
/**
* 加载当前语言字典,并加入到缓存
*/
loadAndCacheTranslation: function () {
var request = new HttpRequest(Feng.ctxPath + "/i18n/getUserTranslation", 'get', function (data) {
layui.data('system', {
key: "translationBook",
value: data.data
});
}, function (data) {
layer.msg("加载语言字典失败!" + data.message, {icon: 5, anim: 6});
});
request.start();
},
/**
* 通过翻译项编码,翻译某个值
*/
translate: function (tranCode, defaultValue) {
var translationBook = layui.data('system').translationBook;
if (typeof translationBook === 'undefined' || translationBook == null || translationBook === '') {
return defaultValue;
} else {
if (typeof translationBook[tranCode] === 'undefined' || translationBook[tranCode] == null || translationBook[tranCode] === '') {
return defaultValue;
} else {
return translationBook[tranCode];
}
}
}
};
exports('i18n', i18n);
});