@@ -9,18 +9,33 @@ import zhCN from 'vant/es/locale/lang/zh-CN'
99import messages from '@intlify/unplugin-vue-i18n/messages'
1010import { Locale , type PickerColumn } from 'vant'
1111
12- export const i18n = createI18n ( {
13- locale : localStorage . getItem ( 'language' ) || navigator . language ,
14- fallbackLocale : 'zhCN' ,
15- messages,
16- } )
12+ /** 默认语言包名称 */
13+ const FALLBACK_LOCALE = 'zh-CN'
1714
1815/** 多语言 picker columns */
1916export const languageColumns : PickerColumn = [
2017 { text : '简体中文' , value : 'zh-CN' } ,
2118 { text : 'English' , value : 'en-US' } ,
2219]
2320
21+ /** 获取当前语言对应的语言包名称 */
22+ function getI18nLocale ( ) {
23+ const locale = localStorage . getItem ( 'language' ) || navigator . language
24+ for ( const l of languageColumns ) {
25+ const value = l . value as string
26+ if ( value === locale )
27+ return locale // 存在当前语言的语言包
28+ else if ( value . indexOf ( locale ) === 0 )
29+ return value // 存在当前语言的任意地区的语言包
30+ }
31+ return FALLBACK_LOCALE // 使用默认语言包
32+ }
33+
34+ export const i18n = createI18n ( {
35+ locale : getI18nLocale ( ) ,
36+ messages,
37+ } )
38+
2439/** 当前语言 */
2540export const locale = computed ( {
2641 get ( ) {
0 commit comments