提交 f59ebc83 编写于 作者: S sushuang

Support multi lang (en) for default options. See #2321.

上级 0206e352
/**
* Export echarts as CommonJS module
*/
module.exports = require('./lib/echarts');
require('./lib/lang/en');
require('./index/part.common');
/**
* Export echarts as CommonJS module
*/
module.exports = require('./lib/echarts');
require('./lib/lang/en');
require('./index/part');
\ No newline at end of file
/**
* Export echarts as CommonJS module
*/
module.exports = require('./lib/echarts');
require('./lib/lang/en');
require('./index/part.simple');
\ No newline at end of file
......@@ -3,22 +3,4 @@
*/
module.exports = require('./lib/echarts');
require('./lib/chart/line');
require('./lib/chart/bar');
require('./lib/chart/pie');
require('./lib/chart/scatter');
require('./lib/component/graphic');
require('./lib/component/tooltip');
require('./lib/component/axisPointer');
require('./lib/component/legendScroll');
require('./lib/component/grid');
require('./lib/component/title');
require('./lib/component/markPoint');
require('./lib/component/markLine');
require('./lib/component/markArea');
require('./lib/component/dataZoom');
require('./lib/component/toolbox');
require('zrender/lib/vml/vml');
\ No newline at end of file
require('./index/part.common');
\ No newline at end of file
......@@ -3,51 +3,4 @@
*/
module.exports = require('./lib/echarts');
// Import all charts and components
require('./lib/chart/line');
require('./lib/chart/bar');
require('./lib/chart/pie');
require('./lib/chart/scatter');
require('./lib/chart/radar');
require('./lib/chart/map');
require('./lib/chart/treemap');
require('./lib/chart/graph');
require('./lib/chart/gauge');
require('./lib/chart/funnel');
require('./lib/chart/parallel');
require('./lib/chart/sankey');
require('./lib/chart/boxplot');
require('./lib/chart/candlestick');
require('./lib/chart/effectScatter');
require('./lib/chart/lines');
require('./lib/chart/heatmap');
require('./lib/chart/pictorialBar');
require('./lib/chart/themeRiver');
require('./lib/chart/custom');
require('./lib/component/graphic');
require('./lib/component/grid');
require('./lib/component/legendScroll');
require('./lib/component/tooltip');
require('./lib/component/axisPointer');
require('./lib/component/polar');
require('./lib/component/geo');
require('./lib/component/parallel');
require('./lib/component/singleAxis');
require('./lib/component/brush');
require('./lib/component/calendar');
require('./lib/component/title');
require('./lib/component/dataZoom');
require('./lib/component/visualMap');
require('./lib/component/markPoint');
require('./lib/component/markLine');
require('./lib/component/markArea');
require('./lib/component/timeline');
require('./lib/component/toolbox');
require('zrender/lib/vml/vml');
require('./index/part');
\ No newline at end of file
......@@ -3,7 +3,4 @@
*/
module.exports = require('./lib/echarts');
require('./lib/chart/line');
require('./lib/chart/bar');
require('./lib/chart/pie');
require('./lib/component/gridSimple');
\ No newline at end of file
require('./index/part.simple');
\ No newline at end of file
require('./lib/chart/line');
require('./lib/chart/bar');
require('./lib/chart/pie');
require('./lib/chart/scatter');
require('./lib/component/graphic');
require('./lib/component/tooltip');
require('./lib/component/axisPointer');
require('./lib/component/legendScroll');
require('./lib/component/grid');
require('./lib/component/title');
require('./lib/component/markPoint');
require('./lib/component/markLine');
require('./lib/component/markArea');
require('./lib/component/dataZoom');
require('./lib/component/toolbox');
require('zrender/lib/vml/vml');
\ No newline at end of file
// Import all charts and components
require('./lib/chart/line');
require('./lib/chart/bar');
require('./lib/chart/pie');
require('./lib/chart/scatter');
require('./lib/chart/radar');
require('./lib/chart/map');
require('./lib/chart/treemap');
require('./lib/chart/graph');
require('./lib/chart/gauge');
require('./lib/chart/funnel');
require('./lib/chart/parallel');
require('./lib/chart/sankey');
require('./lib/chart/boxplot');
require('./lib/chart/candlestick');
require('./lib/chart/effectScatter');
require('./lib/chart/lines');
require('./lib/chart/heatmap');
require('./lib/chart/pictorialBar');
require('./lib/chart/themeRiver');
require('./lib/chart/custom');
require('./lib/component/graphic');
require('./lib/component/grid');
require('./lib/component/legendScroll');
require('./lib/component/tooltip');
require('./lib/component/axisPointer');
require('./lib/component/polar');
require('./lib/component/geo');
require('./lib/component/parallel');
require('./lib/component/singleAxis');
require('./lib/component/brush');
require('./lib/component/calendar');
require('./lib/component/title');
require('./lib/component/dataZoom');
require('./lib/component/visualMap');
require('./lib/component/markPoint');
require('./lib/component/markLine');
require('./lib/component/markArea');
require('./lib/component/timeline');
require('./lib/component/toolbox');
require('zrender/lib/vml/vml');
require('./lib/chart/line');
require('./lib/chart/bar');
require('./lib/chart/pie');
require('./lib/component/gridSimple');
\ No newline at end of file
......@@ -58,10 +58,10 @@ define(function(require) {
// }
// },
itemStyle: {
normal: {
// normal: {
// color: '各异'
},
emphasis: {}
// },
// emphasis: {}
}
}
});
......
......@@ -3,6 +3,7 @@ define(function(require) {
var featureManager = require('../featureManager');
var zrUtil = require('zrender/core/util');
var lang = require('../../../echarts').getLang().toolbox.brush;
function Brush(model, ecModel, api) {
this.model = model;
......@@ -33,14 +34,8 @@ define(function(require) {
keep: 'M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z', // jshint ignore:line
clear: 'M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2' // jshint ignore:line
},
title: {
rect: '矩形选择',
polygon: '圈选',
lineX: '横向选择',
lineY: '纵向选择',
keep: '保持选择',
clear: '清除选择'
}
// `rect`, `polygon`, `lineX`, `lineY`, `keep`, `clear`
title: zrUtil.clone(lang.title)
};
var proto = Brush.prototype;
......
......@@ -6,7 +6,7 @@ define(function (require) {
var zrUtil = require('zrender/core/util');
var eventTool = require('zrender/core/event');
var lang = require('../../../echarts').getLang().toolbox.dataView;
var BLOCK_SPLITER = new Array(60).join('-');
var ITEM_SPLITER = '\t';
......@@ -277,8 +277,8 @@ define(function (require) {
contentToOption: null,
icon: 'M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28',
title: '数据视图',
lang: ['数据视图', '关闭', '刷新'],
title: zrUtil.clone(lang.title),
lang: zrUtil.clone(lang.lang),
backgroundColor: '#fff',
textColor: '#000',
textareaColor: '#fff',
......
......@@ -6,6 +6,7 @@ define(function(require) {
var BrushTargetManager = require('../../helper/BrushTargetManager');
var history = require('../../dataZoom/history');
var sliderMove = require('../../helper/sliderMove');
var lang = require('../../../echarts').getLang().toolbox.dataZoom;
var each = zrUtil.each;
......@@ -39,10 +40,8 @@ define(function(require) {
zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1',
back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26'
},
title: {
zoom: '区域缩放',
back: '区域缩放还原'
}
// `zoom`, `back`
title: zrUtil.clone(lang.title)
};
var proto = DataZoom.prototype;
......
......@@ -2,6 +2,7 @@ define(function(require) {
'use strict';
var zrUtil = require('zrender/core/util');
var lang = require('../../../echarts').getLang().toolbox.magicType;
function MagicType(model) {
this.model = model;
......@@ -17,12 +18,8 @@ define(function(require) {
stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z', // jshint ignore:line
tiled: 'M2.3,2.2h22.8V25H2.3V2.2z M35,2.2h22.8V25H35V2.2zM2.3,35h22.8v22.8H2.3V35z M35,35h22.8v22.8H35V35z'
},
title: {
line: '切换为折线图',
bar: '切换为柱状图',
stack: '切换为堆叠',
tiled: '切换为平铺'
},
// `line`, `bar`, `stack`, `tiled`
title: zrUtil.clone(lang.title),
option: {},
seriesIndex: {}
};
......
......@@ -2,6 +2,7 @@ define(function(require) {
'use strict';
var history = require('../../dataZoom/history');
var lang = require('../../../echarts').getLang().toolbox.restore;
function Restore(model) {
this.model = model;
......@@ -10,7 +11,7 @@ define(function(require) {
Restore.defaultOption = {
show: true,
icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5',
title: '还原'
title: lang.title
};
var proto = Restore.prototype;
......
define(function (require) {
var env = require('zrender/core/env');
var lang = require('../../../echarts').getLang().toolbox.saveAsImage;
function SaveAsImage (model) {
this.model = model;
......@@ -9,14 +10,14 @@ define(function (require) {
SaveAsImage.defaultOption = {
show: true,
icon: 'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0',
title: '保存为图片',
title: lang.title,
type: 'png',
// Default use option.backgroundColor
// backgroundColor: '#fff',
name: '',
excludeComponents: ['toolbox'],
pixelRatio: 1,
lang: ['右键另存为图片']
lang: lang.lang.slice()
};
SaveAsImage.prototype.unusable = !env.canvasSupported;
......
......@@ -43,6 +43,7 @@ define(function (require) {
var graphic = require('./util/graphic');
var modelUtil = require('./util/model');
var throttle = require('./util/throttle');
var langDefault = require('./lang/default');
var zrender = require('zrender');
var zrUtil = require('zrender/core/util');
......@@ -50,6 +51,7 @@ define(function (require) {
var Eventful = require('zrender/mixin/Eventful');
var timsort = require('zrender/core/timsort');
var each = zrUtil.each;
var parseClassType = ComponentModel.parseClassType;
......@@ -75,6 +77,8 @@ define(function (require) {
var OPTION_UPDATED = '__optionUpdated';
var ACTION_REG = /^[a-zA-Z0-9_]+$/;
var langSet = zrUtil.clone(langDefault);
function createRegisterEventWithLowercaseName(method) {
return function (eventName, handler, context) {
// Event name is all lowercase
......@@ -1942,6 +1946,21 @@ define(function (require) {
zrUtil.createCanvas = creator;
};
/**
* @param {Object} langObj
*/
echarts.setLang = function (langObj) {
langSet = langSet || {};
zrUtil.merge(langSet, langObj, true);
};
/**
* @return {Ojbect} Lang set.
*/
echarts.getLang = function () {
return langSet;
};
echarts.registerVisual(PRIORITY_VISUAL_GLOBAL, require('./visual/seriesColor'));
echarts.registerPreprocessor(backwardCompat);
echarts.registerLoading('default', require('./loading/default'));
......@@ -1958,7 +1977,6 @@ define(function (require) {
update: 'downplay'
}, zrUtil.noop);
// --------
// Exports
// --------
......
define(function(require) {
require('../echarts').setLang(require('./default'));
});
\ No newline at end of file
define(function(require) {
return {
toolbox: {
brush: {
title: {
rect: '矩形选择',
polygon: '圈选',
lineX: '横向选择',
lineY: '纵向选择',
keep: '保持选择',
clear: '清除选择'
}
},
dataView: {
title: '数据视图',
lang: ['数据视图', '关闭', '刷新']
},
dataZoom: {
title: {
zoom: '区域缩放',
back: '区域缩放还原'
}
},
magicType: {
title: {
line: '切换为折线图',
bar: '切换为柱状图',
stack: '切换为堆叠',
tiled: '切换为平铺'
}
},
restore: {
title: '还原'
},
saveAsImage: {
title: '保存为图片',
lang: ['右键另存为图片']
}
}
};
});
\ No newline at end of file
define(function(require) {
require('../echarts').setLang({
toolbox: {
brush: {
title: {
rect: 'Box Select',
polygon: 'Lasso Select',
lineX: 'Horizontally Select',
lineY: 'Vertically Select',
keep: 'Keep Selections',
clear: 'Clear Selections'
}
},
dataView: {
title: 'Data View',
lang: ['Data View', 'Close', 'Refresh']
},
dataZoom: {
title: {
zoom: 'Zoom',
back: 'Zoom Reset'
}
},
magicType: {
title: {
line: 'Switch to Line Chart',
bar: 'Switch to Bar Chart',
stack: 'Stack',
tiled: 'Tile'
}
},
restore: {
title: 'Restore'
},
saveAsImage: {
title: 'Save as Image',
lang: ['Right Click to Save Image']
}
}
});
});
\ No newline at end of file
......@@ -3,34 +3,59 @@
<meta charset="utf-8">
<script src="esl.js"></script>
<script src="config.js"></script>
<script src="lib/jquery.min.js"></script>
<script src="lib/facePrint.js"></script>
<script src="lib/testHelper.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<style>
html, body, #main {
width: 100%;
height: 100%;
margin: 0;
h1 {
line-height: 60px;
height: 60px;
background: #146402;
text-align: center;
font-weight: bold;
color: #eee;
font-size: 14px;
}
#main {
background: #fff;
.chart {
height: 600px;
}
</style>
<div id="main"></div>
<h1>
<input type="button" onclick="testHelper.setURLParam(['cn', 'en'], 'cn')" value="CN"/>
<input type="button" onclick="testHelper.setURLParam(['cn', 'en'], 'en')" value="EN"/>
</h1>
<div id="main" class="chart"></div>
<script>
require([
'echarts',
'echarts/chart/bar',
'echarts/chart/line',
'echarts/component/legend',
'echarts/component/graphic',
'echarts/component/grid',
'echarts/component/tooltip',
'echarts/component/toolbox',
'echarts/component/title',
'zrender/vml/vml'
], function (echarts) {
require(
(testHelper.hasURLParam('en')
? [
'echarts',
'echarts/lang/en',
]
: [
'echarts'
]
).concat(
[
'echarts/chart/bar',
'echarts/chart/line',
'echarts/component/legend',
'echarts/component/graphic',
'echarts/component/grid',
'echarts/component/tooltip',
'echarts/component/brush',
'echarts/component/toolbox',
'echarts/component/title',
'zrender/vml/vml'
]
),
function (echarts) {
var chart = echarts.init(document.getElementById('main'));
......@@ -76,6 +101,7 @@
padding: 20
},
legend: {
left: 150,
inactiveColor: '#abc',
borderWidth: 1,
data: [{
......@@ -93,6 +119,9 @@
show: true
}
},
brush: {
xAxisIndex: 0
},
toolbox: {
top: 25,
// right: 20,
......@@ -104,6 +133,11 @@
saveAsImage: {
pixelRatio: 2
},
brush: {
type: ['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear']
},
restore: {},
dataZoom: {},
myTool1: {
show: true,
title: '自定义扩展方法1',
......@@ -217,7 +251,8 @@
});
window.onresize = chart.resize;
});
}
);
</script>
</body>
</html>
\ No newline at end of file
......@@ -38,9 +38,41 @@
} else if (window.addEventListener) {
window.addEventListener('resize', chart.resize, false);
}
},
// Clean params specified by `cleanList` and seed a param specifid by `newVal` in URL.
setURLParam: function (cleanList, newVal) {
var params = getParamListFromURL();
for (var i = params.length - 1; i >= 0; i--) {
for (var j = 0; j < cleanList.length; j++) {
if (params[i] === cleanList[j]) {
params.splice(i, 1);
}
}
}
newVal && params.push(newVal);
params.sort();
location.search = params.join('&');
},
// Whether has param `val` in URL.
hasURLParam: function (val) {
var params = getParamListFromURL();
for (var i = params.length - 1; i >= 0; i--) {
if (params[i] === val) {
return true;
}
}
return false;
}
};
function getParamListFromURL() {
var params = location.search.replace('?', '');
return params ? params.split('&') : [];
}
context.testHelper = testHelper;
})(window);
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册