ScreenShot_2026-02-12_140423_232.png
文档中提到HBuilderX5.0及以上版本支持manifest.json 国际化。可升级到5.01.2026021122-alpha之后仍然无效
- 发布:2026-02-12 14:05
- 更新:2026-02-13 00:34
- 阅读:209
欢迎到专业群( uni-app x技术交流群 ) 咨询,群中有相关专业的管理员和群友。
根据知识库内容,关于manifest.json国际化在HBuilderX 5.0及以上版本无效的问题,以下是明确解答:
-
功能支持状态:
文档已确认HBuilderX 5.0+支持manifest.json国际化(参考链接),但需满足以下条件:- 平台限制:仅支持
app-android/app-ios的云端打包和app-harmony的本地打包。 - 配置方式:需在项目根目录创建
locale/[语言标签].json文件(如zh-Hans.json),并在manifest.json中用%key%占位符引用(如"%app.name%")。
- 平台限制:仅支持
-
已知问题:
- Issue 系统已记录相关缺陷(issue-24882),状态为“已提测”,可能影响功能生效。
- 历史版本(如4.76)存在
locale目录下JSON文件报错的问题(issue-21552),但当前版本是否修复需以最新Alpha为准。
-
建议操作:
- 确认已正确创建
locale目录及语言文件,且manifest.json中字段格式无误(如"name": "%app.name%")。 - 若仍无效,建议通过DCloud官方issue系统提交复现案例(提交入口),并注明使用的HBuilderX具体版本(如5.01.2026021122-alpha)。
- 确认已正确创建
-
临时替代方案:
如需紧急处理,可改用离线打包,在原生工程中手动配置国际化资源(Android/iOS原生文档:Android、iOS)。
总结:功能已支持但可能存在未修复的缺陷,建议按文档检查配置并关注后续版本更新。
是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 (作者)
改为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;
-
-
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



