如何简化Weblate中多路径翻译文件的组件配置流程?
Weblate 多翻译文件批量配置方案
项目结构需求
初始结构
├─kubejs/ │ ├─assets/ │ │ ├─society_tips/ │ │ │ └─lang/ │ │ │ └─en_us.json │ │ │ │ │ ├─society/ │ │ │ ├─lang/ │ │ │ │ └─en_us.json │ │ │ └─sounds.json(not translation related file) ...
期望生成多语言文件后的结构
├─kubejs/ │ ├─assets/ │ │ ├─society_tips/ │ │ │ └─lang/ │ │ │ ├─en_us.json │ │ │ └─zh_cn.json │ │ │ │ │ ├─society/ │ │ │ ├─lang/ │ │ │ │ ├─en_us.json │ │ │ │ └─zh_cn.json │ │ │ │ │ │ │ └─sounds.json(not translation related file) ...
Crowdin 对比配置
在基于文件系统的Crowdin中,可通过通配符批量配置:
files: - source: /*/en_us.json translation: /%original_path%/%language%.json
Weblate 简化配置方案
无需为每个翻译文件创建独立组件,通过单个组件的通配符配置即可实现批量处理:
创建单个翻译组件,配置核心参数:
- 文件格式:JSON
- 语言代码风格:Linux 小写格式(确保生成
zh_cn这类命名的文件)
关键路径配置:
- 源文件掩码:
kubejs/assets/**/lang/en_us.json - 翻译文件掩码:
kubejs/assets/**/lang/%language%.json
- 源文件掩码:
配置说明
**是多级通配符,可匹配任意层级的目录结构,自动识别所有lang目录下的en_us.json作为源翻译文件%language%会自动替换为目标语言的小写代码(如zh_cn),翻译后的文件将生成在对应源文件的同目录下- 非翻译文件(如
sounds.json)会被自动排除,因为文件掩码仅匹配lang目录下的文件
可选优化
如果需要在组件内区分不同模块的翻译(如society_tips和society),可启用组件内的分块功能,按目录拆分翻译内容,无需创建多个独立组件。
内容的提问来源于stack exchange,提问作者yizhouuu
相关产品推荐
相关产品推荐

