feat: 新增Native插件管理

Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
2020-12-07 11:12:49 +08:00
parent a3cbe455a1
commit ad85c3bc9b
18 changed files with 139 additions and 40 deletions

View File

@ -1,13 +1,13 @@
/// <reference types="@ccms/nashorn" />
import * as yaml from 'js-yaml'
const File = Java.type("java.io.File");
const separatorChar = File.separatorChar;
const File = Java.type("java.io.File")
const separatorChar = File.separatorChar
type TranslateParam = { [key: string]: any }
declare global {
interface Console {
i18n(name: string, param?: TranslateParam);
i18n(name: string, param?: TranslateParam)
}
}
@ -23,20 +23,20 @@ export class Translate {
constructor(root: string | TranslateContent) {
if (typeof root == 'string') {
this.root = root;
this.root = root
} else {
this.langMap = root.langMap;
this.fallbackMap = root.fallbackMap || {};
this.langMap = root.langMap
this.fallbackMap = root.fallbackMap || {}
}
}
translate(name: string, param?: TranslateParam) {
let langText: string = this.langMap[name] || this.fallbackMap[name];
let langText: string = this.langMap[name] || this.fallbackMap[name]
if (!langText) { return '[WARN] @ccms/i18n miss lang translate: ' + name }
for (const key in param) {
langText = langText.replace(new RegExp("{" + key + "}", 'gm'), param[key])
}
return langText;
return langText
}
initialize(lang: string = 'zh_cn', fallback: string = 'zh_cn') {
@ -49,7 +49,7 @@ export class Translate {
}
readYamlFile(dir: string, name: string) {
let langFile = this.concat(dir, 'languages', name + '.yml');
let langFile = this.concat(dir, 'languages', name + '.yml')
return this.exists(langFile) && yaml.safeLoad(base.read(langFile))
}