x***@bantangshuo.cn
x***@bantangshuo.cn
  • 发布:2026-02-12 14:05
  • 更新:2026-02-13 00:34
  • 阅读:209

uniappx 国际化

分类:uni-app x

ScreenShot_2026-02-12_140423_232.png
文档中提到HBuilderX5.0及以上版本支持manifest.json 国际化。可升级到5.01.2026021122-alpha之后仍然无效

2026-02-12 14:05 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

欢迎到专业群( uni-app x技术交流群 ) 咨询,群中有相关专业的管理员和群友。

根据知识库内容,关于manifest.json国际化在HBuilderX 5.0及以上版本无效的问题,以下是明确解答:

  1. 功能支持状态
    文档已确认HBuilderX 5.0+支持manifest.json国际化(参考链接),但需满足以下条件:

    • 平台限制:仅支持app-android/app-ios的云端打包和app-harmony的本地打包。
    • 配置方式:需在项目根目录创建locale/[语言标签].json文件(如zh-Hans.json),并在manifest.json中用%key%占位符引用(如"%app.name%")。
  2. 已知问题

    • Issue 系统已记录相关缺陷(issue-24882),状态为“已提测”,可能影响功能生效。
    • 历史版本(如4.76)存在locale目录下JSON文件报错的问题(issue-21552),但当前版本是否修复需以最新Alpha为准。
  3. 建议操作

    • 确认已正确创建locale目录及语言文件,且manifest.json中字段格式无误(如"name": "%app.name%")。
    • 若仍无效,建议通过DCloud官方issue系统提交复现案例(提交入口),并注明使用的HBuilderX具体版本(如5.01.2026021122-alpha)。
  4. 临时替代方案
    如需紧急处理,可改用离线打包,在原生工程中手动配置国际化资源(Android/iOS原生文档:AndroidiOS)。

总结:功能已支持但可能存在未修复的缺陷,建议按文档检查配置并关注后续版本更新。

内容为 AI 生成,仅供参考
x***@bantangshuo.cn

x***@bantangshuo.cn (作者)

配置如图

titio

titio

是json文件,不是uts

  • x***@bantangshuo.cn (作者)

    改为json之后运行报错00:30:36.572 ‌‌⁠error: JsonSyntaxException: MalformedJsonException: Unterminated array at line 142 column 105 path $.home.guide[3]‌ [上报Bug]

    00:30:36.572 at locales/en_US.json.ts:1:0

    00:30:36.572 1 | let __jsonObj = JSON.parseObject({ 00:30:36.572 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 00:30:36.572 2 | "ios": {}, 00:30:36.572 3 | "android": {},⁠ 00:30:36.572 ‌‌⁠error: java.lang.NullPointerException: null cannot be cast to non-null type UTSJSONObject‌ [上报Bug] 00:30:36.572 at locales/en_US.json.ts:363:7 00:30:36.572 361| } 00:30:36.572 362| });

    00:30:36.572 363| export const ios = jsonObj?.get("ios") as UTSJSONObject;

    00:30:36.572 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    00:30:36.572 364| export const android =
    jsonObj?.get("android") as UTSJSONObject;

    00:30:36.572 365| export const web = __jsonObj?.get("web") as UTSJSONObject;⁠

    2026-02-13 00:33

x***@bantangshuo.cn

x***@bantangshuo.cn (作者)

改为json之后运行报错00:30:36.572 ‌‌⁠error: JsonSyntaxException: MalformedJsonException: Unterminated array at line 142 column 105 path $.home.guide[3]‌ [上报Bug]

00:30:36.572 at locales/en_US.json.ts:1:0

00:30:36.572 1 | let __jsonObj = JSON.parseObject({ 00:30:36.572 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 00:30:36.572 2 | "ios": {}, 00:30:36.572 3 | "android": {},⁠ 00:30:36.572 ‌‌⁠error: java.lang.NullPointerException: null cannot be cast to non-null type UTSJSONObject‌ [上报Bug] 00:30:36.572 at locales/en_US.json.ts:363:7 00:30:36.572 361| } 00:30:36.572 362| });

00:30:36.572 363| export const ios = jsonObj?.get("ios") as UTSJSONObject;

00:30:36.572 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

00:30:36.572 364| export const android = jsonObj?.get("android") as UTSJSONObject;

00:30:36.572 365| export const web = __jsonObj?.get("web") as UTSJSONObject;⁠

  • titio

    单独创建一个json。只用在locale目录下面就行不用引入。和lime-i18n没关系

    2026-02-24 10:13

  • x***@bantangshuo.cn (作者)

    回复 titio: 不报错了。但是改成import { createI18n } from '@/uni_modules/lime-i18n'

    // 目录自己决定

    // import zhCN from './zh_CN.uts';

    // import enUS from './en_US.uts';


    export default createI18n({

    // 使用uni.getStorageSync('uVueI18nLocale') 能获取上次退出应用后保存的语言

    locale: 'zh-CN', // 默认显示语言

    fallbackLocale: 'zh-CN',

    messages: {

    'zh-CN': './zh_CN.json',

    // 'en-US': enUS

    }

    });之后。配置app名称%app.name%打基座之后手机上还是显示%app.name%没有显示名字{

    "app.name": "SemiSweet",}json文件中也有配置项

    2026-03-01 23:12

要回复问题请先登录注册