Converse.js设置ug(维吾尔语)locale失败,提示模块缺失
问题:Converse.js自定义维吾尔语(ug)语言包无法加载,报错找不到模块
我按照Converse.js快速入门的选项3步骤构建了项目,生成的JS和CSS文件放在根目录的Dist文件夹中,页面集成后功能正常。切换/dist/locale下的39种官方语言都能正常生效,但自定义添加的维吾尔语(ug)语言包无法加载:设置i18n: 'ug'后,界面仍显示英文,控制台报错:
FATAL: Cannot find module './ug.js'
报错栈:
log log.js:68 fatal log.js:93 initialize index.js:121 initialize core.js:574 initialize converse.js:53 initialize entry.js:31 <anonymous> index.html:57
解决方案
以下是排查和修复的关键步骤:
1. 确认语言包文件结构与命名
- 确保
/dist/locale目录下存在全小写的ug.js文件,文件名必须和配置的i18n值完全匹配(不能是UG.js或Uygur.js这类变体)。 - 检查
ug.js的内容格式是否符合规范,必须用ES模块导出翻译键值对象,示例结构:
export default { "Hello": "سلام", // 其他翻译键值对... };
2. 构建时需纳入自定义语言包
由于你是通过自定义构建(选项3)生成的Dist文件,默认构建脚本不会自动识别新增的语言包,需要:
- 检查项目构建配置(如
webpack.config.js或构建入口文件),确认已将ug.js加入语言包的打包范围。 - 重新执行构建命令,确保
ug.js被正确打包到/dist/locale目录中。
3. 验证模块导出方式
Converse.js的语言包仅支持ES模块的export default导出,不要使用CommonJS的module.exports,否则会导致加载识别失败。
4. 检查初始化配置的拼写
确认初始化代码中i18n配置项没有拼写错误:
converse.initialize({ i18n: 'ug', // 其他配置项... });
5. 清除浏览器缓存
浏览器可能缓存了旧的构建文件,导致新添加的ug.js未被加载,按Ctrl+Shift+R(Windows/Linux)或Cmd+Shift+R(Mac)强制刷新页面,清除缓存后重试。
内容的提问来源于stack exchange,提问作者Keram Yasin
相关产品推荐
相关产品推荐

