提交 87962762 编写于 作者: Q qiang

fix: cli-i18n fallbacks

上级 f277e338
describe('env', () => {
it('CLI', () => {
process.env.LANG = 'fr'
const i18n = require('../lib/index')
expect(i18n.getLocale()).toBe('fr')
process.env.LANG = 'es'
const { getLocale } = require('../lib/locale')
expect(getLocale()).toBe('es')
})
it('HBuilderX', () => {
process.env.UNI_HBUILDERX_LANGID = 'fr'
const i18n = require('../lib/index')
expect(i18n.getLocale()).toBe('fr')
const { getLocale } = require('../lib/locale')
expect(getLocale()).toBe('fr')
})
})
describe('locales', () => {
it('default', () => {
const i18n = require('../lib/index')
expect(i18n.setLocale('fr')).toBe('en')
})
it('fallbacks', () => {
const i18n = require('../lib/index')
expect(i18n.setLocale('zh')).toBe('zh_CN')
expect(i18n.setLocale('zh_SG')).toBe('zh_CN')
})
})
\ No newline at end of file
const { I18n } = require('i18n')
const { osLocale } = require('os-locale-s/cjs')
const { format } = require('./lang')
const { getLocale } = require('./locale')
const defaultLocale = format(process.env.UNI_HBUILDERX_LANGID || osLocale.sync({ spawn: false, cache: false }) || 'en')
const defaultLocale = 'en'
const locale = getLocale()
const i18n = new I18n()
......@@ -24,7 +25,15 @@ locales.forEach(item => {
i18n.configure({
staticCatalog,
defaultLocale
defaultLocale,
retryInDefaultLocale: true,
fallbacks: {
'en_*': 'en',
'zh': 'zh_CN',
'zh_*': 'zh_CN',
}
})
i18n.setLocale(locale)
module.exports = i18n
const { format } = require('./lang')
const { osLocale } = require('os-locale-s/cjs')
function getLocale () {
return format(process.env.UNI_HBUILDERX_LANGID || osLocale.sync({ spawn: false, cache: false }) || defaultLocale)
}
module.exports = {
getLocale
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册