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

1 回复

更多关于uni-app vue-i18n多语言,使用zh-Hans、zh-Hant、ja、vi语言问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html


根据你描述的问题,iOS打包后语言文件夹命名不符合Apple的BCP47规范。建议修改语言配置如下:

  1. 将语言代码调整为符合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)
}
  1. 在manifest.json中配置iOS语言目录:
"app-plus": {
  "distribute": {
    "ios": {
      "locales": {
        "zh-Hans": "zh-Hans.lproj",
        "zh-Hant": "zh-Hant.lproj",
        "ja": "ja.lproj",
        "vi": "vi.lproj"
      }
    }
  }
}
回到顶部