uni-app vue-i18n多语言,使用zh-Hans、zh-Hant、ja、vi语言问题
uni-app vue-i18n多语言,使用zh-Hans、zh-Hant、ja、vi语言问题
项目信息 | 详情 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Mac |
PC开发环境版本 | 版本15.4.1 |
HBuilderX类型 | 正式 |
HBuilderX版本 | 4.65 |
手机系统 | iOS |
手机系统版本 | iOS 18 |
手机厂商 | 苹果 |
手机机型 | iPhone 13 Pro Max |
页面类型 | vue |
vue版本 | vue3 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
示例代码:
locale: uni.getStorageSync(I18N_CACHE_NAME) || 'en', // 获取已设置的语言
globalInjection: true, // 全局注册$t方法
fallbackLocale: 'en',
legacy: false, // 使用Composition API,这里必须设置为false
messages: {
'zh-Hans': zhHans, //中文-简体
'zh-Hant': zhHant, //中文-繁体
'en': en, //英文
'ko-KR': koKr, //韩语
'th-TH': thTh, //泰语
'ja': ja, //日语
'ms-MY': msMy, //马来西亚
'vi': vi //越南
},
操作步骤:
云打包每次都是
预期结果:
iOS包语言cn.lproj、jp.lproj、vn.lproj为zh-Hant.lproj、ja.lproj、vi.lproj
实际结果:
cn.lproj、jp.lproj、vn.lproj
bug描述:
vue-i18n多语言,使用zh-Hans、zh-Hant、ja、vi语言, iOS打包后包里面的语言文件为cn.lproj、jp.lproj、vn.lproj, 上传苹果版本报:Unrecognized Locale - The locale names used in localization directories at ( “Payload/HBuilder.app/cn.lproj”, “Payload/HBuilder.app/jp.lproj”, “Payload/HBuilder.app/vn.lproj” ) are invalid. iTunes supports BCP47 but not the UN M.49 specification. Refer to the Language and Locale Designations guide at https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPInternational/LanguageandLocaleIDs/LanguageandLocaleIDs.html for more information on naming your language-specific directories. (90176)
更多关于uni-app vue-i18n多语言,使用zh-Hans、zh-Hant、ja、vi语言问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于uni-app vue-i18n多语言,使用zh-Hans、zh-Hant、ja、vi语言问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
根据你描述的问题,iOS打包后语言文件夹命名不符合Apple的BCP47规范。建议修改语言配置如下:
- 将语言代码调整为符合BCP47标准的格式:
messages: {
'zh-Hans': zhHans, // 简体中文
'zh-Hant': zhHant, // 繁体中文
'en': en, // 英文
'ko': koKr, // 韩语(去掉-KR)
'th': thTh, // 泰语(去掉-TH)
'ja': ja, // 日语(保持ja)
'ms': msMy, // 马来语(去掉-MY)
'vi': vi // 越南语(保持vi)
}
- 在manifest.json中配置iOS语言目录:
"app-plus": {
"distribute": {
"ios": {
"locales": {
"zh-Hans": "zh-Hans.lproj",
"zh-Hant": "zh-Hant.lproj",
"ja": "ja.lproj",
"vi": "vi.lproj"
}
}
}
}