Initial commit.

This commit is contained in:
genxium
2022-09-20 23:50:01 +08:00
commit e90a335c56
432 changed files with 101884 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
'use strict';
const Events = require('events');
module.exports = new Events.EventEmitter;

View 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;

View 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;

View 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;

View 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
};