diff --git a/packages/uni-cli-shared/__tests__/i18n.spec.ts b/packages/uni-cli-shared/__tests__/i18n.spec.ts index 769534c3933405cdd1e61a33bed241720cb2746b..0e915c0f8fcce086acf2f5b2205b692fde3ad1d1 100644 --- a/packages/uni-cli-shared/__tests__/i18n.spec.ts +++ b/packages/uni-cli-shared/__tests__/i18n.spec.ts @@ -1,18 +1,23 @@ -import { normalizeI18nLocale } from '../src/i18n' -describe('normalizeI18nLocale', () => { +import { resolveI18nLocale } from '../src/i18n' +describe('resolveI18nLocale', () => { test('specifying locale', () => { - expect(normalizeI18nLocale({ 'zh-Hans': {}, fr: {} }, 'fr')).toBe('fr') + expect(resolveI18nLocale('app', ['zh-Hans', 'fr'], 'fr')).toBe('fr') }) - test('fallback en', () => { - expect(normalizeI18nLocale({ 'zh-Hans': {}, en: {} }, 'fr')).toBe('en') + test('fallback en(app)', () => { + expect(resolveI18nLocale('app', ['zh-Hans', 'en'], 'fr')).toBe('en') + }) + test('fallback en(mp)', () => { + expect(resolveI18nLocale('mp-weixin', ['zh-Hans', 'en'], 'fr')).toBe( + 'zh-Hans' + ) }) test('fallback zh-Hans', () => { - expect(normalizeI18nLocale({ 'zh-Hans': {}, es: {} })).toBe('zh-Hans') + expect(resolveI18nLocale('app', ['zh-Hans', 'es'])).toBe('zh-Hans') }) test('fallback zh-Hant', () => { - expect(normalizeI18nLocale({ 'zh-Hant': {}, es: {} })).toBe('zh-Hant') + expect(resolveI18nLocale('app', ['zh-Hant', 'es'])).toBe('zh-Hant') }) test('fallback first locale', () => { - expect(normalizeI18nLocale({ fr: {}, es: {} })).toBe('fr') + expect(resolveI18nLocale('app', ['fr', 'es'])).toBe('fr') }) }) diff --git a/packages/uni-cli-shared/src/i18n.ts b/packages/uni-cli-shared/src/i18n.ts index 9f93ead0a02fef45e42e2001d5dd2af9648c7bc3..eb15f290a3af0ba971d0fe631d9de02f7a8f2109 100644 --- a/packages/uni-cli-shared/src/i18n.ts +++ b/packages/uni-cli-shared/src/i18n.ts @@ -55,7 +55,7 @@ export function initLocales(dir: string, withMessages: boolean = true) { }, {} as Record>) } -function resolveI18nLocale( +export function resolveI18nLocale( platfrom: UniApp.PLATFORM, locales: string[], locale?: string