mirror of
https://github.com/genxium/DelayNoMore
synced 2025-10-09 16:46:38 +00:00
Initial commit.
This commit is contained in:
5
frontend/packages/i18n-master/utils/event.js
Normal file
5
frontend/packages/i18n-master/utils/event.js
Normal file
@@ -0,0 +1,5 @@
|
||||
'use strict';
|
||||
|
||||
const Events = require('events');
|
||||
|
||||
module.exports = new Events.EventEmitter;
|
48
frontend/packages/i18n-master/utils/language.js
Normal file
48
frontend/packages/i18n-master/utils/language.js
Normal file
@@ -0,0 +1,48 @@
|
||||
'use strict';
|
||||
|
||||
const Fs = require('fs');
|
||||
const Path = require('path');
|
||||
|
||||
let template = Fs.readFileSync(Path.join(__dirname, './template.txt'), 'utf-8');
|
||||
|
||||
/**
|
||||
* 创建新的语言包
|
||||
* @param {string} name
|
||||
* @return {Promise}
|
||||
*/
|
||||
let create = function (name) {
|
||||
let js = template.replace('{{name}}', name);
|
||||
let url = `db://assets/resources/i18n/${name}.js`;
|
||||
return new Promise((resolve, reject) => {
|
||||
Editor.assetdb.create(url, js, (error) => {
|
||||
if (error) {
|
||||
Editor.assetdb.error('Failed to create asset %s, %s', url, error.stack);
|
||||
reject();
|
||||
return;
|
||||
}
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 删除语言包
|
||||
* @param {string} name
|
||||
*/
|
||||
let remove = function (name) {
|
||||
let url = `db://assets/resources/i18n/${name}.js`;
|
||||
return new Promise((resolve, reject) => {
|
||||
Editor.assetdb.delete([url], (error, results) => {
|
||||
if (error) {
|
||||
Editor.assetdb.error('Failed to delete asset %s, %s', path, error.stack);
|
||||
reject();
|
||||
return;
|
||||
}
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
exports.create = create;
|
||||
exports.remove = remove;
|
39
frontend/packages/i18n-master/utils/package.js
Normal file
39
frontend/packages/i18n-master/utils/package.js
Normal file
@@ -0,0 +1,39 @@
|
||||
'use strict';
|
||||
|
||||
const Fs = require('fire-fs');
|
||||
const Path = require('path');
|
||||
|
||||
// adapter project path
|
||||
let projectPath = Editor.projectPath;
|
||||
if (!projectPath) {
|
||||
projectPath = Editor.Project.path;
|
||||
}
|
||||
|
||||
let PATH = Path.join(projectPath, './assets/resources/i18n');
|
||||
|
||||
let mount = function () {
|
||||
// 创建目录,保证目录存在
|
||||
Fs.ensureDirSync(PATH);
|
||||
};
|
||||
|
||||
let unmount = function () {
|
||||
// 如果目录为空则删除目录
|
||||
if (!Fs.existsSync(PATH)) {
|
||||
return;
|
||||
}
|
||||
if (Fs.readdirSync(PATH).length === 0) {
|
||||
Fs.unlink(PATH);
|
||||
}
|
||||
};
|
||||
|
||||
let metrics = function () {
|
||||
Editor.Metrics.trackEvent({
|
||||
category: 'Packages',
|
||||
label: 'i18n',
|
||||
action: 'Panel Open'
|
||||
}, null);
|
||||
};
|
||||
|
||||
exports.mount = mount;
|
||||
exports.unmount = unmount;
|
||||
exports.metrics = metrics;
|
20
frontend/packages/i18n-master/utils/scene.js
Normal file
20
frontend/packages/i18n-master/utils/scene.js
Normal file
@@ -0,0 +1,20 @@
|
||||
'use strict';
|
||||
|
||||
let message = {};
|
||||
|
||||
message['update-default-language'] = function (event, language) {
|
||||
let i18n = cc.require('LanguageData');
|
||||
i18n.init(language);
|
||||
i18n.updateSceneRenderers();
|
||||
if (!event.reply) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (language) {
|
||||
event.reply(null, 'successful');
|
||||
} else {
|
||||
event.reply(new Error('language not specified!'));
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = message;
|
13
frontend/packages/i18n-master/utils/template.txt
Normal file
13
frontend/packages/i18n-master/utils/template.txt
Normal file
@@ -0,0 +1,13 @@
|
||||
'use strict';
|
||||
|
||||
if (!window.i18n) {
|
||||
window.i18n = {};
|
||||
}
|
||||
|
||||
if (!window.i18n.languages) {
|
||||
window.i18n.languages = {};
|
||||
}
|
||||
|
||||
window.i18n.languages['{{name}}'] = {
|
||||
// write your key value pairs here
|
||||
};
|
Reference in New Issue
Block a user