66 lines
1.8 KiB
JavaScript
66 lines
1.8 KiB
JavaScript
/**
|
|
* 语言设置
|
|
*/
|
|
|
|
const LANG = antSword['language']['settings']['language'];
|
|
const LANG_T = antSword['language']['toastr'];
|
|
|
|
class Language {
|
|
|
|
constructor(sidebar) {
|
|
sidebar.addItem({
|
|
id: 'language',
|
|
text: `<i class="fa fa-language"></i> ${LANG['title']}`
|
|
});
|
|
const cell = sidebar.cells('language');
|
|
|
|
// 工具栏
|
|
const toolbar = cell.attachToolbar();
|
|
toolbar.loadStruct([
|
|
{ id: 'save', type: 'button', text: LANG['toolbar']['save'], icon: 'save' },
|
|
{ type: 'separator' }
|
|
]);
|
|
|
|
// 表单
|
|
const _language = antSword['storage']('language', false, 'en');
|
|
const form = cell.attachForm([
|
|
{ type: 'settings', position: 'label-left', labelWidth: 100, inputWidth: 150 },
|
|
{ type: 'block', inputWidth: 'auto', offsetTop: 12, list: [
|
|
{ type: 'combo', label: LANG['form']['label'], readonly: true, name: 'language',
|
|
options: (() => {
|
|
let _ = [];
|
|
for (let l in antSword['language']['__languages__']) {
|
|
_.push({
|
|
text: antSword['language']['__languages__'][l],
|
|
value: l,
|
|
selected: _language === l
|
|
});
|
|
}
|
|
return _;
|
|
})() }
|
|
]}
|
|
], true);
|
|
|
|
// 工具栏点击事件
|
|
toolbar.attachEvent('onClick', (id) => {
|
|
switch(id) {
|
|
case 'save':
|
|
const language = form.getValues()['language'];
|
|
// 保存设置
|
|
localStorage.setItem('language', language);
|
|
toastr.success(LANG['success'], LANG_T['success']);
|
|
// 重启应用
|
|
layer.confirm(LANG['confirm']['content'], {
|
|
icon: 2, shift: 6,
|
|
title: LANG['confirm']['title']
|
|
}, (_) => {
|
|
location.reload();
|
|
});
|
|
break;
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
module.exports = Language;
|