mirror of https://github.com/layui/layui
wip(i18n): layer 国际化
parent
1803b7089d
commit
b3e664718d
27
src/layui.js
27
src/layui.js
|
@ -97,6 +97,31 @@
|
||||||
day: '天'
|
day: '天'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
layer: {
|
||||||
|
confirm: '确定',
|
||||||
|
cancel: '取消',
|
||||||
|
defaultTitle: '信息',
|
||||||
|
prompt: {
|
||||||
|
InputLengthPrompt: '最多输入 {length} 个字符',
|
||||||
|
},
|
||||||
|
photos: {
|
||||||
|
noData: '没有图片',
|
||||||
|
tools:{
|
||||||
|
rotate: '旋转',
|
||||||
|
scaleX: '水平变换',
|
||||||
|
zoomIn: '放大',
|
||||||
|
zoomOut: '缩小',
|
||||||
|
reset: '还原',
|
||||||
|
close: '关闭'
|
||||||
|
},
|
||||||
|
viewOriginal: '查看原图',
|
||||||
|
urlError: {
|
||||||
|
Prompt: '当前图片地址异常,<br>是否继续查看下一张?',
|
||||||
|
confirm: '下一张',
|
||||||
|
cancel: '不看了'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
laypage: {
|
laypage: {
|
||||||
prev: '上一页',
|
prev: '上一页',
|
||||||
next: '下一页',
|
next: '下一页',
|
||||||
|
@ -1194,6 +1219,8 @@
|
||||||
Class.prototype.i18nTranslation = function(key){
|
Class.prototype.i18nTranslation = function(key){
|
||||||
var that = this;
|
var that = this;
|
||||||
var args = arguments;
|
var args = arguments;
|
||||||
|
console.log(that);
|
||||||
|
|
||||||
var i18n = that.cache.i18n;
|
var i18n = that.cache.i18n;
|
||||||
var i18nMessage = i18n.messages[i18n.locale];
|
var i18nMessage = i18n.messages[i18n.locale];
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
var isLayui = window.layui && layui.define;
|
var isLayui = window.layui && layui.define;
|
||||||
var $;
|
var $;
|
||||||
var win;
|
var win;
|
||||||
|
|
||||||
var ready = {
|
var ready = {
|
||||||
getPath: function(){
|
getPath: function(){
|
||||||
var jsPath = (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') ? document.currentScript.src : function(){
|
var jsPath = (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') ? document.currentScript.src : function(){
|
||||||
|
@ -27,15 +28,38 @@ var ready = {
|
||||||
return GLOBAL.layer_dir || jsPath.substring(0, jsPath.lastIndexOf('/') + 1);
|
return GLOBAL.layer_dir || jsPath.substring(0, jsPath.lastIndexOf('/') + 1);
|
||||||
}(),
|
}(),
|
||||||
config: {
|
config: {
|
||||||
removeFocus: true
|
removeFocus: true,
|
||||||
|
lang: {
|
||||||
|
confirm: '确定',
|
||||||
|
cancel: '取消',
|
||||||
|
defaultTitle: '信息',
|
||||||
|
prompt: {
|
||||||
|
InputLengthPrompt: '最多输入 {length} 个字符'
|
||||||
|
},
|
||||||
|
photos: {
|
||||||
|
noData: '没有图片',
|
||||||
|
tools: {
|
||||||
|
rotate: '旋转',
|
||||||
|
scaleX: '水平变换',
|
||||||
|
zoomIn: '放大',
|
||||||
|
zoomOut: '缩小',
|
||||||
|
reset: '还原',
|
||||||
|
close: '关闭'
|
||||||
|
},
|
||||||
|
viewOriginal: '查看原图',
|
||||||
|
urlError: {
|
||||||
|
Prompt: '当前图片地址异常,<br>是否继续查看下一张?',
|
||||||
|
confirm: '下一张',
|
||||||
|
cancel: '不看了'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
end: {},
|
end: {},
|
||||||
beforeEnd: {},
|
beforeEnd: {},
|
||||||
events: {resize: {}},
|
events: {resize: {}},
|
||||||
minStackIndex: 0,
|
minStackIndex: 0,
|
||||||
minStackArr: [],
|
minStackArr: [],
|
||||||
btn: [layui.$t('确定'), layui.$t('取消')],
|
|
||||||
|
|
||||||
// 五种原始层模式
|
// 五种原始层模式
|
||||||
type: ['dialog', 'page', 'iframe', 'loading', 'tips'],
|
type: ['dialog', 'page', 'iframe', 'loading', 'tips'],
|
||||||
|
|
||||||
|
@ -99,6 +123,48 @@ var ready = {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取对象中的值,lodash _.get 简易版
|
||||||
|
* @param {Record<string, any>} obj
|
||||||
|
* @param {string} path
|
||||||
|
* @param {any} defaultValue
|
||||||
|
*/
|
||||||
|
var get = function (obj, path, defaultValue) {
|
||||||
|
// 'a[0].b.c' ==> ['a', '0', 'b', 'c']
|
||||||
|
var casePath = path.replace(/\[(\d+)\]/g, '.$1').split('.');
|
||||||
|
var result = obj;
|
||||||
|
|
||||||
|
for (var i = 0; i < casePath.length; i++) {
|
||||||
|
result = result && result[casePath[i]];
|
||||||
|
if (result === null || result === undefined) {
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据给定的键从国际化消息中获取翻译后的内容
|
||||||
|
var $t = false
|
||||||
|
? layui.$t.bind(layui)
|
||||||
|
: function(key){
|
||||||
|
// 非 layui 环境去除命名空间前缀,从 config.lang 中取值
|
||||||
|
// TODO 简化版,暂不文档化,不支持配置多个 locale
|
||||||
|
key = key.replace(/^lay\.layer\./, '');
|
||||||
|
var result = get(ready.config.lang, key, key);
|
||||||
|
if(typeof result === 'string' && arguments.length > 1) {
|
||||||
|
var opts = arguments[1];
|
||||||
|
return result.replace(/\{(\w+)\}/g, function(match, key) {
|
||||||
|
return opts[key] !== undefined ? opts[key] : match;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
|
||||||
|
// default btnText 需要在 $t 之后初始化
|
||||||
|
ready.btn = [$t('lay.layer.confirm'), $t('lay.layer.cancel')];
|
||||||
|
|
||||||
|
|
||||||
// 默认内置方法。
|
// 默认内置方法。
|
||||||
var layer = {
|
var layer = {
|
||||||
v: '3.7.0',
|
v: '3.7.0',
|
||||||
|
@ -268,7 +334,7 @@ Class.pt.config = {
|
||||||
shade: 0.3,
|
shade: 0.3,
|
||||||
fixed: true,
|
fixed: true,
|
||||||
move: doms[1],
|
move: doms[1],
|
||||||
title: layui.$t('信息'),
|
title: $t('lay.layer.defaultTitle'),
|
||||||
offset: 'auto',
|
offset: 'auto',
|
||||||
area: 'auto',
|
area: 'auto',
|
||||||
closeBtn: 1,
|
closeBtn: 1,
|
||||||
|
@ -1444,7 +1510,7 @@ layer.prompt = function(options, yes){
|
||||||
|
|
||||||
return layer.open($.extend({
|
return layer.open($.extend({
|
||||||
type: 1,
|
type: 1,
|
||||||
btn: [layui.$t('确定'),layui.$t('取消')],
|
btn: [$t('lay.layer.confirm'),$t('lay.layer.cancel')],
|
||||||
content: content,
|
content: content,
|
||||||
skin: 'layui-layer-prompt' + skin('prompt'),
|
skin: 'layui-layer-prompt' + skin('prompt'),
|
||||||
maxWidth: win.width(),
|
maxWidth: win.width(),
|
||||||
|
@ -1457,7 +1523,7 @@ layer.prompt = function(options, yes){
|
||||||
yes: function(index){
|
yes: function(index){
|
||||||
var value = prompt.val();
|
var value = prompt.val();
|
||||||
if(value.length > (options.maxlength||500)) {
|
if(value.length > (options.maxlength||500)) {
|
||||||
layer.tips(layui.$t('最多输入')+ (options.maxlength || 500) +layui.$t('个字符'), prompt, {tips: 1});
|
layer.tips($t('lay.layer.prompt.InputLengthPrompt', {length: (options.maxlength || 500)}), prompt, {tips: 1});
|
||||||
} else {
|
} else {
|
||||||
yes && yes(value, index, prompt);
|
yes && yes(value, index, prompt);
|
||||||
}
|
}
|
||||||
|
@ -1571,7 +1637,7 @@ layer.photos = function(options, loop, key){
|
||||||
// 不直接弹出
|
// 不直接弹出
|
||||||
if (!loop) return;
|
if (!loop) return;
|
||||||
} else if (data.length === 0){
|
} else if (data.length === 0){
|
||||||
return layer.msg(layui.$t('没有图片'));
|
return layer.msg($t('lay.layer.photos.noData'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 上一张
|
// 上一张
|
||||||
|
@ -1716,7 +1782,7 @@ layer.photos = function(options, loop, key){
|
||||||
});
|
});
|
||||||
|
|
||||||
// 滑动切换图片事件,仅限 layui 中
|
// 滑动切换图片事件,仅限 layui 中
|
||||||
if(window.layui || window.lay){
|
if(isLayui || (window.lay && typeof window.lay === 'function')){
|
||||||
var lay = window.layui.lay || window.lay;
|
var lay = window.layui.lay || window.lay;
|
||||||
var touchEndCallback = function(e, state){
|
var touchEndCallback = function(e, state){
|
||||||
var duration = Date.now() - state.timeStart;
|
var duration = Date.now() - state.timeStart;
|
||||||
|
@ -1819,12 +1885,12 @@ layer.photos = function(options, loop, key){
|
||||||
if (options.toolbar) {
|
if (options.toolbar) {
|
||||||
arr.push([
|
arr.push([
|
||||||
'<div class="layui-layer-photos-toolbar layui-layer-photos-header">',
|
'<div class="layui-layer-photos-toolbar layui-layer-photos-header">',
|
||||||
layui.$t('<span toolbar-event="rotate" data-option="90" title="旋转"><i class="layui-icon layui-icon-refresh"></i></span>'),
|
'<span toolbar-event="rotate" data-option="90" title="'+ $t('lay.layer.photos.tools.rotate') +'"><i class="layui-icon layui-icon-refresh"></i></span>',
|
||||||
layui.$t('<span toolbar-event="scalex" title="变换"><i class="layui-icon layui-icon-slider"></i></span>'),
|
'<span toolbar-event="scalex" title="'+ $t('lay.layer.photos.tools.scaleX') +'"><i class="layui-icon layui-icon-slider"></i></span>',
|
||||||
layui.$t('<span toolbar-event="zoom" data-option="0.1" title="放大"><i class="layui-icon layui-icon-add-circle"></i></span>'),
|
'<span toolbar-event="zoom" data-option="0.1" title="'+ $t('lay.layer.photos.tools.zoomIn') +'"><i class="layui-icon layui-icon-add-circle"></i></span>',
|
||||||
layui.$t('<span toolbar-event="zoom" data-option="-0.1" title="缩小"><i class="layui-icon layui-icon-reduce-circle"></i></span>'),
|
'<span toolbar-event="zoom" data-option="-0.1" title="'+ $t('lay.layer.photos.tools.zoomOut') +'"><i class="layui-icon layui-icon-reduce-circle"></i></span>',
|
||||||
layui.$t('<span toolbar-event="reset" title="还原"><i class="layui-icon layui-icon-refresh-1"></i></span>'),
|
'<span toolbar-event="reset" title="'+ $t('lay.layer.photos.tools.reset') +'"><i class="layui-icon layui-icon-refresh-1"></i></span>',
|
||||||
layui.$t('<span toolbar-event="close" title="关闭"><i class="layui-icon layui-icon-close"></i></span>'),
|
'<span toolbar-event="close" title="'+ $t('lay.layer.photos.tools.close') +'"><i class="layui-icon layui-icon-close"></i></span>',
|
||||||
'</div>'
|
'</div>'
|
||||||
].join(''));
|
].join(''));
|
||||||
}
|
}
|
||||||
|
@ -1834,7 +1900,7 @@ layer.photos = function(options, loop, key){
|
||||||
arr.push(['<div class="layui-layer-photos-toolbar layui-layer-photos-footer">',
|
arr.push(['<div class="layui-layer-photos-toolbar layui-layer-photos-footer">',
|
||||||
'<h3>'+ alt +'</h3>',
|
'<h3>'+ alt +'</h3>',
|
||||||
'<em>'+ dict.imgIndex +' / '+ data.length +'</em>',
|
'<em>'+ dict.imgIndex +' / '+ data.length +'</em>',
|
||||||
'<a href="'+ data[start].src +layui.$t('" target="_blank">查看原图</a>'),
|
'<a href="'+ data[start].src + '" target="_blank">'+ $t('lay.layer.photos.viewOriginal') +'</a>',
|
||||||
'</div>'].join(''));
|
'</div>'].join(''));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1856,9 +1922,9 @@ layer.photos = function(options, loop, key){
|
||||||
}, options));
|
}, options));
|
||||||
}, function(){
|
}, function(){
|
||||||
layer.close(dict.loadi);
|
layer.close(dict.loadi);
|
||||||
layer.msg(layui.$t('当前图片地址异常,<br>是否继续查看下一张?'), {
|
layer.msg($t('lay.layer.photos.urlError.prompt'), {
|
||||||
time: 30000,
|
time: 30000,
|
||||||
btn: [layui.$t('下一张'), layui.$t('不看了')],
|
btn: [$t('lay.layer.photos.urlError.confirm'), $t('lay.layer.photos.urlError.cancel')],
|
||||||
yes: function(){
|
yes: function(){
|
||||||
data.length > 1 && dict.imgnext(true,true);
|
data.length > 1 && dict.imgnext(true,true);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue