mirror of https://gitee.com/stylefeng/guns
新增i18n多语言模块
parent
e766f4313a
commit
6e08dd417e
|
@ -152,7 +152,8 @@ layui.config({
|
|||
func: '../../expand/module/func/func',
|
||||
dict: '../../expand/module/dict/dict',
|
||||
gunsSelect: '../../expand/module/gunsSelect/gunsSelect',
|
||||
ws: '../../expand/module/webSocket/webSocket'
|
||||
ws: '../../expand/module/webSocket/webSocket',
|
||||
i18n: '../../expand/module/i18n/i18n'
|
||||
|
||||
}).use(['layer', 'admin'], function () {
|
||||
var $ = layui.jquery;
|
||||
|
|
|
@ -0,0 +1,75 @@
|
|||
/**
|
||||
* 多语言相关方法的封装
|
||||
*
|
||||
* @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);
|
||||
});
|
|
@ -45,7 +45,7 @@
|
|||
|
||||
<script>
|
||||
var wsInst = null
|
||||
layui.use(['layer', 'element', 'admin', 'index', 'HttpRequest', 'ws', 'notice'], function () {
|
||||
layui.use(['layer', 'element', 'admin', 'index', 'HttpRequest', 'ws', 'notice', 'i18n'], function () {
|
||||
var $ = layui.jquery;
|
||||
var layer = layui.layer;
|
||||
var admin = layui.admin;
|
||||
|
@ -53,31 +53,25 @@
|
|||
var HttpRequest = layui.HttpRequest;
|
||||
var ws = layui.ws;
|
||||
var notice = layui.notice;
|
||||
var i18n = layui.i18n;
|
||||
|
||||
//获取支持的语言列表
|
||||
var languageRequest = new HttpRequest(Feng.ctxPath + "/i18n/getAllLanguages", 'get', function (data) {
|
||||
for (var i = 0; i < data.data.length; i++) {
|
||||
var code = data.data[i].code;
|
||||
var description = data.data[i].name;
|
||||
$("#languageDiv").append('<dd lay-unselect><a id="tran-' + code + '" href="javascript:;">' + description + '</a></dd>');
|
||||
let languageTypes = i18n.getLanguageTypes();
|
||||
for (var i = 0; i < languageTypes.length; i++) {
|
||||
var code = languageTypes[i].code;
|
||||
var description = languageTypes[i].name;
|
||||
$("#languageDiv").append('<dd lay-unselect><a id="tran-' + code + '" href="javascript:;">' + description + '</a></dd>');
|
||||
|
||||
//设置监听事件,设置点击按钮切换当前系统语言
|
||||
(function (code) {
|
||||
$('#tran-' + code).click(function () {
|
||||
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);
|
||||
});
|
||||
})(code);
|
||||
}
|
||||
}, function (data) {
|
||||
layer.msg("获取语言列表失败!" + data.responseJSON.message, {icon: 5, anim: 6});
|
||||
});
|
||||
languageRequest.start();
|
||||
//设置监听事件,设置点击按钮切换当前系统语言
|
||||
(function (code) {
|
||||
$('#tran-' + code).click(function () {
|
||||
i18n.changeUserTranslation(code);
|
||||
});
|
||||
})(code);
|
||||
}
|
||||
|
||||
// 记载并缓存翻译的字典
|
||||
i18n.loadAndCacheTranslation();
|
||||
|
||||
// 默认加载主页
|
||||
index.loadHome({
|
||||
|
@ -126,7 +120,7 @@
|
|||
try {
|
||||
let msg = JSON.parse(data)
|
||||
notice.info({
|
||||
title: '['+msg.businessTypeValue+']'+msg.messageTitle,
|
||||
title: '[' + msg.businessTypeValue + ']' + msg.messageTitle,
|
||||
message: msg.messageContent,
|
||||
timeout: false
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue