From 11b319788fda42f74df423620bf95f44bb696ab7 Mon Sep 17 00:00:00 2001 From: PiEgg Date: Sat, 20 Aug 2022 20:29:39 +0800 Subject: [PATCH] :sparkles: Feature: finish i18n text --- .vscode/settings.json | 2 +- package.json | 2 ++ src/core/PicGo.ts | 1 - src/i18n/en.ts | 24 ++++++++++++++++++++ src/i18n/index.ts | 40 +++++++++++++++++++++++++++++++--- src/i18n/zh-CN.ts | 24 ++++++++++++++++++++ src/plugins/uploader/aliyun.ts | 24 ++++++++++++-------- src/plugins/uploader/github.ts | 18 +++++++++------ src/plugins/uploader/imgur.ts | 7 +++--- src/plugins/uploader/qiniu.ts | 22 +++++++++++-------- src/plugins/uploader/smms.ts | 6 ++--- src/plugins/uploader/tcyun.ts | 40 +++++++++++++++++++--------------- src/plugins/uploader/upyun.ts | 19 ++++++++++------ src/types/index.ts | 1 + yarn.lock | 17 +++++++++++++++ 15 files changed, 187 insertions(+), 60 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index a058702..95175e1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -29,5 +29,5 @@ "upyun", "weibo" ], - "typescript.tsdk": "node_modules\\typescript\\lib" + "typescript.tsdk": "node_modules/typescript/lib" } diff --git a/package.json b/package.json index 8c845fc..ac13629 100644 --- a/package.json +++ b/package.json @@ -60,6 +60,7 @@ "@types/fs-extra": "^5.0.4", "@types/image-size": "^0.0.29", "@types/inquirer": "^0.0.42", + "@types/js-yaml": "^4.0.5", "@types/lodash": "^4.14.175", "@types/md5": "^2.1.32", "@types/mime-types": "^2.1.0", @@ -106,6 +107,7 @@ "image-size": "^0.8.3", "inquirer": "^6.0.0", "is-wsl": "^2.2.0", + "js-yaml": "^4.1.0", "lodash": "^4.17.21", "md5": "^2.2.1", "mime-types": "2.1.33", diff --git a/src/core/PicGo.ts b/src/core/PicGo.ts index 8956551..e54a16c 100644 --- a/src/core/PicGo.ts +++ b/src/core/PicGo.ts @@ -118,7 +118,6 @@ export class PicGo extends EventEmitter implements IPicGo { getConfig (name?: string): T { if (!name) { - console.log(this._config) return this._config as unknown as T } else { return get(this._config, name) diff --git a/src/i18n/en.ts b/src/i18n/en.ts index 9acbb11..7cc55ad 100644 --- a/src/i18n/en.ts +++ b/src/i18n/en.ts @@ -22,6 +22,10 @@ export const EN: ILocales = { PICBED_ALICLOUD_PATH: 'Set Path', PICBED_ALICLOUD_CUSTOMURL: 'Set Custom URL', PICBED_ALICLOUD_OPTIONS: 'Set URL Suffix', + PICBED_ALICLOUD_MESSAGE_AREA: 'Ex. oss-cn-beijing', + PICBED_ALICLOUD_MESSAGE_PATH: 'Ex. test/', + PICBED_ALICLOUD_MESSAGE_OPTIONS: 'Ex. ?x-oss-process=xxx', + PICBED_ALICLOUD_MESSAGE_CUSTOMURL: 'Ex. https://test.com', // Tencent-cloud PICBED_TENCENTCLOUD: 'Tencent Cloud', @@ -32,7 +36,13 @@ export const EN: ILocales = { PICBED_TENCENTCLOUD_BUCKET: 'Set Bucket', PICBED_TENCENTCLOUD_AREA: 'Set Area', PICBED_TENCENTCLOUD_PATH: 'Set Path', + PICBED_TENCENTCLOUD_OPTIONS: 'Set URL Suffix', PICBED_TENCENTCLOUD_CUSTOMURL: 'Set Custom URL', + PICBED_TENCENTCLOUD_MESSAGE_APPID: 'Ex. 1234567890', + PICBED_TENCENTCLOUD_MESSAGE_AREA: 'Ex. ap-beijing', + PICBED_TENCENTCLOUD_MESSAGE_PATH: 'Ex. test/', + PICBED_TENCENTCLOUD_MESSAGE_CUSTOMURL: 'Ex. http://test.com', + PICBED_TENCENTCLOUD_MESSAGE_OPTIONS: 'Ex. ?imageMogr2', // GitHub PICBED_GITHUB: 'GitHub', @@ -41,6 +51,10 @@ export const EN: ILocales = { PICBED_GITHUB_PATH: 'Set Path', PICBED_GITHUB_BRANCH: 'Set Branch', PICBED_GITHUB_CUSTOMURL: 'Set Custom URL', + PICBED_GITHUB_MESSAGE_REPO: 'Ex. username/repo', + PICBED_GITHUB_MESSAGE_BRANCH: 'Ex. main', + PICBED_GITHUB_MESSAGE_PATH: 'Ex. test/', + PICBED_GITHUB_MESSAGE_CUSTOMURL: 'Ex. https://test.com', // qiniu PICBED_QINIU: 'Qiniu', @@ -51,11 +65,16 @@ export const EN: ILocales = { PICBED_QINIU_URL: 'Set URL', PICBED_QINIU_OPTIONS: 'Set URL Suffix', PICBED_QINIU_AREA: 'Set Area', + PICBED_QINIU_MESSAGE_PATH: 'Ex. test/', + PICBED_QINIU_MESSAGE_AREA: 'Ex. z0', + PICBED_QINIU_MESSAGE_OPTIONS: 'Ex. ?imageslim', + PICBED_QINIU_MESSAGE_URL: 'Ex. https://xxx.yyy.glb.clouddn.com', // imgur PICBED_IMGUR: 'Imgur', PICBED_IMGUR_CLIENTID: 'Set ClientId', PICBED_IMGUR_PROXY: 'Set Proxy', + PICBED_IMGUR_MESSAGE_PROXY: 'Ex. http://127.0.0.1:1080', // upyun PICBED_UPYUN: 'Upyun', @@ -65,6 +84,11 @@ export const EN: ILocales = { PICBED_UPYUN_PATH: 'Set Path', PICBED_UPYUN_URL: 'Set URL', PICBED_UPYUN_OPTIONS: 'Set URL Suffix', + PICBED_UPYUN_MESSAGE_OPERATOR: 'Ex. me', + PICBED_UPYUN_MESSAGE_PASSWORD: 'Please type the operator password', + PICBED_UPYUN_MESSAGE_URL: 'Ex. http://xxx.test.upcdn.net', + PICBED_UPYUN_MESSAGE_OPTIONS: 'Ex. !imgslim', + PICBED_UPYUN_MESSAGE_PATH: 'Ex. test/', // Plugin Handler PLUGIN_HANDLER_PLUGIN_INSTALL_SUCCESS: 'Plugin installed successfully', diff --git a/src/i18n/index.ts b/src/i18n/index.ts index f81941f..0a16efd 100644 --- a/src/i18n/index.ts +++ b/src/i18n/index.ts @@ -1,6 +1,9 @@ -import { ZH_CN, ILocalesKey } from './zh-CN' +import { ZH_CN, ILocalesKey, ILocales } from './zh-CN' import { merge } from 'lodash' import { IPicGo } from '../types' +import path from 'path' +import fs from 'fs-extra' +import yaml from 'js-yaml' import { ObjectAdapter, I18n } from '@picgo/i18n' import { IStringKeyMap, II18nManager } from '../types/index' @@ -19,15 +22,46 @@ class I18nManager implements II18nManager { constructor (ctx: IPicGo) { this.ctx = ctx this.objectAdapter = new ObjectAdapter(languageList) - const language = this.ctx.getConfig('settings.language') || 'zh-CN' + let language = this.ctx.getConfig('settings.language') || 'zh-CN' + if (!languageList[language]) { + language = 'zh-CN' // use default + } this.i18n = new I18n({ adapter: this.objectAdapter, defaultLanguage: language }) + this.loadOutterI18n() + } + + private loadOutterI18n (): void { + const i18nFolder = this.getOutterI18nFolder() + const files = fs.readdirSync(i18nFolder, { + withFileTypes: true + }) + files.forEach(file => { + if (file.isFile() && file.name.endsWith('.yml')) { + const i18nFilePath = path.join(i18nFolder, file.name) + const i18nFile = fs.readFileSync(i18nFilePath, 'utf8') + try { + const i18nFileObj = yaml.load(i18nFile) as ILocales + languageList[file.name.replace(/\.yml$/, '')] = i18nFileObj + } catch (e) { + console.error(e) + } + } + }) + } + + private getOutterI18nFolder (): string { + const i18nFolder = path.join(this.ctx.baseDir, 'i18n-cli') + if (!fs.pathExistsSync(i18nFolder)) { + fs.ensureDirSync(i18nFolder) + } + return i18nFolder } translate(key: ILocalesKey | T, args?: IStringKeyMap): string { - return this.i18n.translate(key, args) || '' + return this.i18n.translate(key, args) || key } setLanguage (language: string): void { diff --git a/src/i18n/zh-CN.ts b/src/i18n/zh-CN.ts index 430ad27..cddfcd6 100644 --- a/src/i18n/zh-CN.ts +++ b/src/i18n/zh-CN.ts @@ -20,6 +20,10 @@ export const ZH_CN = { PICBED_ALICLOUD_PATH: '设定存储路径', PICBED_ALICLOUD_CUSTOMURL: '设定自定义域名', PICBED_ALICLOUD_OPTIONS: '设定网址后缀', + PICBED_ALICLOUD_MESSAGE_AREA: '例如:oss-cn-beijing', + PICBED_ALICLOUD_MESSAGE_PATH: '例如:test/', + PICBED_ALICLOUD_MESSAGE_OPTIONS: '例如:?x-oss-process=xxx', + PICBED_ALICLOUD_MESSAGE_CUSTOMURL: '例如:https://test.com', // Tencent-cloud PICBED_TENCENTCLOUD: '腾讯云COS', @@ -30,7 +34,13 @@ export const ZH_CN = { PICBED_TENCENTCLOUD_BUCKET: '设定Bucket', PICBED_TENCENTCLOUD_AREA: '设定存储区域', PICBED_TENCENTCLOUD_PATH: '设定存储路径', + PICBED_TENCENTCLOUD_OPTIONS: '设定网址后缀', PICBED_TENCENTCLOUD_CUSTOMURL: '设定自定义域名', + PICBED_TENCENTCLOUD_MESSAGE_APPID: '例如:1234567890', + PICBED_TENCENTCLOUD_MESSAGE_AREA: '例如:ap-beijing', + PICBED_TENCENTCLOUD_MESSAGE_PATH: '例如:test/', + PICBED_TENCENTCLOUD_MESSAGE_CUSTOMURL: '例如:https://test.com', + PICBED_TENCENTCLOUD_MESSAGE_OPTIONS: '例如:?imageMogr2', // GitHub PICBED_GITHUB: 'GitHub', @@ -39,6 +49,10 @@ export const ZH_CN = { PICBED_GITHUB_PATH: '设定存储路径', PICBED_GITHUB_BRANCH: '设定分支名', PICBED_GITHUB_CUSTOMURL: '设定自定义域名', + PICBED_GITHUB_MESSAGE_REPO: '格式:username/repo', + PICBED_GITHUB_MESSAGE_BRANCH: '例如:main', + PICBED_GITHUB_MESSAGE_PATH: '例如:test/', + PICBED_GITHUB_MESSAGE_CUSTOMURL: '例如:https://test.com', // qiniu PICBED_QINIU: '七牛云', @@ -49,11 +63,16 @@ export const ZH_CN = { PICBED_QINIU_URL: '设定访问网址', PICBED_QINIU_OPTIONS: '设定网址后缀', PICBED_QINIU_AREA: '设定存储区域', + PICBED_QINIU_MESSAGE_PATH: '例如:test/', + PICBED_QINIU_MESSAGE_AREA: '例如:z0', + PICBED_QINIU_MESSAGE_OPTIONS: '例如:?imageslim', + PICBED_QINIU_MESSAGE_URL: '例如:https://xxx.yyy.glb.clouddn.com', // imgur PICBED_IMGUR: 'Imgur', PICBED_IMGUR_CLIENTID: '设定ClientId', PICBED_IMGUR_PROXY: '设定代理', + PICBED_IMGUR_MESSAGE_PROXY: '例如:http://127.0.0.1:1080', // upyun PICBED_UPYUN: '又拍云', @@ -63,6 +82,11 @@ export const ZH_CN = { PICBED_UPYUN_PATH: '设定存储路径', PICBED_UPYUN_URL: '设定加速域名', PICBED_UPYUN_OPTIONS: '设定网址后缀', + PICBED_UPYUN_MESSAGE_OPERATOR: '例如:me', + PICBED_UPYUN_MESSAGE_PASSWORD: '输入操作员密码', + PICBED_UPYUN_MESSAGE_URL: '例如:http://xxx.test.upcdn.net', + PICBED_UPYUN_MESSAGE_OPTIONS: '例如:!imgslim', + PICBED_UPYUN_MESSAGE_PATH: '例如:test/', // Plugin Handler PLUGIN_HANDLER_PLUGIN_INSTALL_SUCCESS: '插件安装成功', diff --git a/src/plugins/uploader/aliyun.ts b/src/plugins/uploader/aliyun.ts index 733972f..ec247a3 100644 --- a/src/plugins/uploader/aliyun.ts +++ b/src/plugins/uploader/aliyun.ts @@ -80,49 +80,53 @@ const config = (ctx: IPicGo): IPluginConfig[] => { { name: 'accessKeyId', type: 'input', - alias: ctx.i18n.translate('PICBED_ALICLOUD_ACCESSKEYID'), + get alias () { return ctx.i18n.translate('PICBED_ALICLOUD_ACCESSKEYID') }, default: userConfig.accessKeyId || '', required: true }, { name: 'accessKeySecret', - type: 'input', - alias: ctx.i18n.translate('PICBED_ALICLOUD_ACCESSKEYSECRET'), + type: 'password', + get alias () { return ctx.i18n.translate('PICBED_ALICLOUD_ACCESSKEYSECRET') }, default: userConfig.accessKeySecret || '', required: true }, { name: 'bucket', type: 'input', - alias: ctx.i18n.translate('PICBED_ALICLOUD_BUCKET'), + get alias () { return ctx.i18n.translate('PICBED_ALICLOUD_BUCKET') }, default: userConfig.bucket || '', required: true }, { name: 'area', type: 'input', - alias: ctx.i18n.translate('PICBED_ALICLOUD_AREA'), + get alias () { return ctx.i18n.translate('PICBED_ALICLOUD_AREA') }, default: userConfig.area || '', + get message () { return ctx.i18n.translate('PICBED_ALICLOUD_MESSAGE_AREA') }, required: true }, { name: 'path', type: 'input', - alias: ctx.i18n.translate('PICBED_ALICLOUD_PATH'), + get alias () { return ctx.i18n.translate('PICBED_ALICLOUD_PATH') }, + get message () { return ctx.i18n.translate('PICBED_ALICLOUD_MESSAGE_PATH') }, default: userConfig.path || '', required: false }, { name: 'customUrl', type: 'input', - alias: ctx.i18n.translate('PICBED_ALICLOUD_CUSTOMURL'), + get alias () { return ctx.i18n.translate('PICBED_ALICLOUD_CUSTOMURL') }, + get message () { return ctx.i18n.translate('PICBED_ALICLOUD_MESSAGE_CUSTOMURL') }, default: userConfig.customUrl || '', required: false }, { name: 'options', type: 'input', - alias: ctx.i18n.translate('PICBED_ALICLOUD_OPTIONS'), + get alias () { return ctx.i18n.translate('PICBED_ALICLOUD_OPTIONS') }, + get message () { return ctx.i18n.translate('PICBED_ALICLOUD_MESSAGE_OPTIONS') }, default: userConfig.options || '', required: false } @@ -132,7 +136,9 @@ const config = (ctx: IPicGo): IPluginConfig[] => { export default function register (ctx: IPicGo): void { ctx.helper.uploader.register('aliyun', { - name: ctx.i18n.translate('PICBED_ALICLOUD'), + get name () { + return ctx.i18n.translate('PICBED_ALICLOUD') + }, handle, config }) diff --git a/src/plugins/uploader/github.ts b/src/plugins/uploader/github.ts index 8a51e05..2ea8ba8 100644 --- a/src/plugins/uploader/github.ts +++ b/src/plugins/uploader/github.ts @@ -65,35 +65,39 @@ const config = (ctx: IPicGo): IPluginConfig[] => { { name: 'repo', type: 'input', - alias: ctx.i18n.translate('PICBED_GITHUB_REPO'), + get alias () { return ctx.i18n.translate('PICBED_GITHUB_REPO') }, + get message () { return ctx.i18n.translate('PICBED_GITHUB_MESSAGE_REPO') }, default: userConfig.repo || '', required: true }, { name: 'branch', type: 'input', - alias: ctx.i18n.translate('PICBED_GITHUB_BRANCH'), + get alias () { return ctx.i18n.translate('PICBED_GITHUB_BRANCH') }, + get message () { return ctx.i18n.translate('PICBED_GITHUB_MESSAGE_BRANCH') }, default: userConfig.branch || 'master', required: true }, { name: 'token', - type: 'input', - alias: ctx.i18n.translate('PICBED_GITHUB_TOKEN'), + type: 'password', + get alias () { return ctx.i18n.translate('PICBED_GITHUB_TOKEN') }, default: userConfig.token || '', required: true }, { name: 'path', type: 'input', - alias: ctx.i18n.translate('PICBED_GITHUB_PATH'), + get alias () { return ctx.i18n.translate('PICBED_GITHUB_PATH') }, + get message () { return ctx.i18n.translate('PICBED_GITHUB_MESSAGE_PATH') }, default: userConfig.path || '', required: false }, { name: 'customUrl', type: 'input', - alias: ctx.i18n.translate('PICBED_GITHUB_CUSTOMURL'), + get alias () { return ctx.i18n.translate('PICBED_GITHUB_CUSTOMURL') }, + get message () { return ctx.i18n.translate('PICBED_GITHUB_MESSAGE_CUSTOMURL') }, default: userConfig.customUrl || '', required: false } @@ -103,7 +107,7 @@ const config = (ctx: IPicGo): IPluginConfig[] => { export default function register (ctx: IPicGo): void { ctx.helper.uploader.register('github', { - name: ctx.i18n.translate('PICBED_GITHUB'), + get name () { return ctx.i18n.translate('PICBED_GITHUB') }, handle, config }) diff --git a/src/plugins/uploader/imgur.ts b/src/plugins/uploader/imgur.ts index 606ea70..5d3f67c 100644 --- a/src/plugins/uploader/imgur.ts +++ b/src/plugins/uploader/imgur.ts @@ -64,14 +64,15 @@ const config = (ctx: IPicGo): IPluginConfig[] => { { name: 'clientId', type: 'input', - alias: ctx.i18n.translate('PICBED_IMGUR_CLIENTID'), + get alias () { return ctx.i18n.translate('PICBED_IMGUR_CLIENTID') }, default: userConfig.clientId || '', required: true }, { name: 'proxy', type: 'input', - alias: ctx.i18n.translate('PICBED_IMGUR_PROXY'), + get alias () { return ctx.i18n.translate('PICBED_IMGUR_PROXY') }, + get message () { return ctx.i18n.translate('PICBED_IMGUR_MESSAGE_PROXY') }, default: userConfig.proxy || '', required: false } @@ -81,7 +82,7 @@ const config = (ctx: IPicGo): IPluginConfig[] => { export default function register (ctx: IPicGo): void { ctx.helper.uploader.register('imgur', { - name: ctx.i18n.translate('PICBED_IMGUR'), + get name () { return ctx.i18n.translate('PICBED_IMGUR') }, handle, config }) diff --git a/src/plugins/uploader/qiniu.ts b/src/plugins/uploader/qiniu.ts index 53c4902..7df0810 100644 --- a/src/plugins/uploader/qiniu.ts +++ b/src/plugins/uploader/qiniu.ts @@ -84,49 +84,53 @@ const config = (ctx: IPicGo): IPluginConfig[] => { { name: 'accessKey', type: 'input', - alias: ctx.i18n.translate('PICBED_QINIU_ACCESSKEY'), + get alias () { return ctx.i18n.translate('PICBED_QINIU_ACCESSKEY') }, default: userConfig.accessKey || '', required: true }, { name: 'secretKey', - type: 'input', - alias: ctx.i18n.translate('PICBED_QINIU_SECRETKEY'), + type: 'password', + get alias () { return ctx.i18n.translate('PICBED_QINIU_SECRETKEY') }, default: userConfig.secretKey || '', required: true }, { name: 'bucket', type: 'input', - alias: ctx.i18n.translate('PICBED_QINIU_BUCKET'), + get alias () { return ctx.i18n.translate('PICBED_QINIU_BUCKET') }, default: userConfig.bucket || '', required: true }, { name: 'url', type: 'input', - alias: ctx.i18n.translate('PICBED_QINIU_URL'), + get alias () { return ctx.i18n.translate('PICBED_QINIU_URL') }, + get message () { return ctx.i18n.translate('PICBED_QINIU_MESSAGE_URL') }, default: userConfig.url || '', required: true }, { name: 'area', type: 'input', - alias: ctx.i18n.translate('PICBED_QINIU_AREA'), + get alias () { return ctx.i18n.translate('PICBED_QINIU_AREA') }, + get message () { return ctx.i18n.translate('PICBED_QINIU_MESSAGE_AREA') }, default: userConfig.area || '', required: true }, { name: 'options', type: 'input', - alias: ctx.i18n.translate('PICBED_QINIU_OPTIONS'), + get alias () { return ctx.i18n.translate('PICBED_QINIU_OPTIONS') }, + get message () { return ctx.i18n.translate('PICBED_QINIU_MESSAGE_OPTIONS') }, default: userConfig.options || '', required: false }, { name: 'path', type: 'input', - alias: ctx.i18n.translate('PICBED_QINIU_PATH'), + get alias () { return ctx.i18n.translate('PICBED_QINIU_PATH') }, + get message () { return ctx.i18n.translate('PICBED_QINIU_MESSAGE_PATH') }, default: userConfig.path || '', required: false } @@ -136,7 +140,7 @@ const config = (ctx: IPicGo): IPluginConfig[] => { export default function register (ctx: IPicGo): void { ctx.helper.uploader.register('qiniu', { - name: ctx.i18n.translate('PICBED_QINIU'), + get name () { return ctx.i18n.translate('PICBED_QINIU') }, handle, config }) diff --git a/src/plugins/uploader/smms.ts b/src/plugins/uploader/smms.ts index 370081c..e434b8b 100644 --- a/src/plugins/uploader/smms.ts +++ b/src/plugins/uploader/smms.ts @@ -62,8 +62,8 @@ const config = (ctx: IPicGo): IPluginConfig[] => { { name: 'token', message: 'api token', - type: 'input', - alias: ctx.i18n.translate('PICBED_SMMS_TOKEN'), + type: 'password', + get alias () { return ctx.i18n.translate('PICBED_SMMS_TOKEN') }, default: userConfig.token || '', required: true } @@ -73,7 +73,7 @@ const config = (ctx: IPicGo): IPluginConfig[] => { export default function register (ctx: IPicGo): void { ctx.helper.uploader.register('smms', { - name: ctx.i18n.translate('PICBED_SMMS'), + get name () { return ctx.i18n.translate('PICBED_SMMS') }, handle, config }) diff --git a/src/plugins/uploader/tcyun.ts b/src/plugins/uploader/tcyun.ts index 61d94b8..79ec6ca 100644 --- a/src/plugins/uploader/tcyun.ts +++ b/src/plugins/uploader/tcyun.ts @@ -168,67 +168,73 @@ const handle = async (ctx: IPicGo): Promise => { const config = (ctx: IPicGo): IPluginConfig[] => { const userConfig = ctx.getConfig('picBed.tcyun') || {} const config: IPluginConfig[] = [ + { + name: 'version', + type: 'list', + alias: ctx.i18n.translate('PICBED_TENCENTCLOUD_VERSION'), + choices: ['v4', 'v5'], + default: 'v5', + required: false + }, { name: 'secretId', type: 'input', - alias: ctx.i18n.translate('PICBED_TENCENTCLOUD_SECRETID'), + get alias () { return ctx.i18n.translate('PICBED_TENCENTCLOUD_SECRETID') }, default: userConfig.secretId || '', required: true }, { name: 'secretKey', - type: 'input', - alias: ctx.i18n.translate('PICBED_TENCENTCLOUD_SECRETKEY'), + type: 'password', + get alias () { return ctx.i18n.translate('PICBED_TENCENTCLOUD_SECRETKEY') }, default: userConfig.secretKey || '', required: true }, { name: 'bucket', type: 'input', - alias: ctx.i18n.translate('PICBED_TENCENTCLOUD_BUCKET'), + get alias () { return ctx.i18n.translate('PICBED_TENCENTCLOUD_BUCKET') }, default: userConfig.bucket || '', required: true }, { name: 'appId', type: 'input', - alias: ctx.i18n.translate('PICBED_TENCENTCLOUD_APPID'), + get alias () { return ctx.i18n.translate('PICBED_TENCENTCLOUD_APPID') }, default: userConfig.appId || '', + get message () { return ctx.i18n.translate('PICBED_TENCENTCLOUD_MESSAGE_APPID') }, required: true }, { name: 'area', type: 'input', - alias: ctx.i18n.translate('PICBED_TENCENTCLOUD_AREA'), + get alias () { return ctx.i18n.translate('PICBED_TENCENTCLOUD_AREA') }, default: userConfig.area || '', + get message () { return ctx.i18n.translate('PICBED_TENCENTCLOUD_MESSAGE_AREA') }, required: true }, { name: 'path', type: 'input', - alias: ctx.i18n.translate('PICBED_TENCENTCLOUD_PATH'), + get alias () { return ctx.i18n.translate('PICBED_TENCENTCLOUD_PATH') }, default: userConfig.path || '', + get message () { return ctx.i18n.translate('PICBED_TENCENTCLOUD_MESSAGE_PATH') }, required: false }, { name: 'customUrl', type: 'input', - alias: ctx.i18n.translate('PICBED_TENCENTCLOUD_CUSTOMURL'), + get alias () { return ctx.i18n.translate('PICBED_TENCENTCLOUD_CUSTOMURL') }, default: userConfig.customUrl || '', - required: false - }, - { - name: 'version', - type: 'list', - alias: ctx.i18n.translate('PICBED_TENCENTCLOUD_VERSION'), - choices: ['v4', 'v5'], - default: 'v5', + get message () { return ctx.i18n.translate('PICBED_TENCENTCLOUD_MESSAGE_CUSTOMURL') }, required: false }, { name: 'options', type: 'input', default: userConfig.options || '', + get alias () { return ctx.i18n.translate('PICBED_TENCENTCLOUD_OPTIONS') }, + get message () { return ctx.i18n.translate('PICBED_TENCENTCLOUD_MESSAGE_OPTIONS') }, required: false } ] @@ -237,7 +243,7 @@ const config = (ctx: IPicGo): IPluginConfig[] => { export default function register (ctx: IPicGo): void { ctx.helper.uploader.register('tcyun', { - name: ctx.i18n.translate('PICBED_TENCENTCLOUD'), + get name () { return ctx.i18n.translate('PICBED_TENCENTCLOUD') }, handle, config }) diff --git a/src/plugins/uploader/upyun.ts b/src/plugins/uploader/upyun.ts index ff7fe16..7a8a42f 100644 --- a/src/plugins/uploader/upyun.ts +++ b/src/plugins/uploader/upyun.ts @@ -87,42 +87,47 @@ const config = (ctx: IPicGo): IPluginConfig[] => { { name: 'bucket', type: 'input', - alias: ctx.i18n.translate('PICBED_UPYUN'), + get alias () { return ctx.i18n.translate('PICBED_UPYUN_BUCKET') }, default: userConfig.bucket || '', required: true }, { name: 'operator', type: 'input', - alias: ctx.i18n.translate('PICBED_UPYUN_OPERATOR'), + get alias () { return ctx.i18n.translate('PICBED_UPYUN_OPERATOR') }, + get message () { return ctx.i18n.translate('PICBED_UPYUN_MESSAGE_OPERATOR') }, default: userConfig.operator || '', required: true }, { name: 'password', type: 'password', - alias: ctx.i18n.translate('PICBED_UPYUN_PASSWORD'), + get alias () { return ctx.i18n.translate('PICBED_UPYUN_PASSWORD') }, + get message () { return ctx.i18n.translate('PICBED_UPYUN_MESSAGE_PASSWORD') }, default: userConfig.password || '', required: true }, { name: 'url', type: 'input', - alias: ctx.i18n.translate('PICBED_UPYUN_URL'), + get alias () { return ctx.i18n.translate('PICBED_UPYUN_URL') }, + get message () { return ctx.i18n.translate('PICBED_UPYUN_MESSAGE_URL') }, default: userConfig.url || '', required: true }, { name: 'options', type: 'input', - alias: ctx.i18n.translate('PICBED_UPYUN_OPTIONS'), + get alias () { return ctx.i18n.translate('PICBED_UPYUN_OPTIONS') }, + get message () { return ctx.i18n.translate('PICBED_UPYUN_MESSAGE_OPTIONS') }, default: userConfig.options || '', required: true }, { name: 'path', type: 'input', - alias: ctx.i18n.translate('PICBED_UPYUN_PATH'), + get alias () { return ctx.i18n.translate('PICBED_UPYUN_PATH') }, + get message () { return ctx.i18n.translate('PICBED_UPYUN_MESSAGE_PATH') }, default: userConfig.path || '', required: false } @@ -132,7 +137,7 @@ const config = (ctx: IPicGo): IPluginConfig[] => { export default function register (ctx: IPicGo): void { ctx.helper.uploader.register('upyun', { - name: ctx.i18n.translate('PICBED_UPYUN'), + get name () { return ctx.i18n.translate('PICBED_UPYUN') }, handle, config }) diff --git a/src/types/index.ts b/src/types/index.ts index ff2fe02..a5ad257 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -103,6 +103,7 @@ export interface IPluginConfig { required: boolean default?: any alias?: string + message?: string [propName: string]: any } diff --git a/yarn.lock b/yarn.lock index 7c607bd..0bfe3ea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -533,6 +533,11 @@ "@types/rx" "*" "@types/through" "*" +"@types/js-yaml@^4.0.5": + version "4.0.5" + resolved "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138" + integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA== + "@types/json-schema@^7.0.3": version "7.0.9" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" @@ -934,6 +939,11 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" @@ -3558,6 +3568,13 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"