-
this.localize
是一个对象 - 方法
getLocalize
通过传入的参数key
返回this.localize
中的值
求助这个报错怎么解决?
完整代码如下:
import * as path from 'path'
import * as fs from 'fs'
class Localize {
locale: String
localize: Object
constructor() {
this.init(JSON.parse(process.env.VSCODE_NLS_CONFIG || ''))
this.locale = ''
this.localize = {}
}
init({ locale }: { locale: String }) {
this.locale = locale
const localName = (!locale || locale === 'en') ? '' : '.' + locale
const localePackagePath = path.resolve(__dirname, `../../package.nls${localName}.json`)
if (fs.existsSync(localePackagePath)) {
this.localize = require(localePackagePath)
} else {
this.localize = require(path.resolve(__dirname, '../../package.nls.json'))
}
}
getLocalize(key: String) {
let res = this.localize[key] || key
if (arguments.length > 1) {
const params = Object.assign([], arguments)
params.forEach((val, i) => {
if (i > 0) res = res.replace(`{${i}}`, val)
})
}
return res
}
}
const localize = new Localize()
export default localize
不要用String对象,用string类型,具体定义你的localise:
多说两句,代码略显粗糙,require貌似没有必要