DelayNoMore/frontend/packages/i18n-master/panel/index.js

60 lines
1.6 KiB
JavaScript
Raw Normal View History

2022-09-20 15:50:01 +00:00
'use strict';
const Fs = require('fs');
const Event = Editor.require('packages://i18n/utils/event');
const Home = Editor.require('packages://i18n/panel/component/home');
Editor.Panel.extend({
style: Fs.readFileSync(Editor.url('packages://i18n/panel/style/home.css')),
template: Home.template,
$: {},
ready () {
if (!window.Vue) {
// todo 错误信息
return;
}
Home.el = this.shadowRoot;
Home.data = Home.data();
delete Home.props;
delete Home.template;
Home.components = {};
this._vm = new Vue(Home);
window.vm = this._vm
let profile = this.profiles.project;
if (profile.data.languages) {
profile.data.languages.forEach((name) => {
this._vm.languages.push(name)
});
}
let current = profile.data['default_language'];
if (this._vm.languages.indexOf(current) === -1) {
this._vm.current = this._vm.languages[0];
Editor.warn(`Language is not found - ${current}`);
} else {
this._vm.current = current;
}
Event.on('language-changed', (name) => {
profile.data['default_language'] = name;
profile.save();
Editor.Scene.callSceneScript('i18n', 'update-default-language', name, function (err, result) {
// console.log(result);
});
});
Event.on('languages-changed', (languages) => {
profile.data.languages = languages.map((name) => {
return name;
});
profile.save();
})
},
});