国际化支持
在结构定义文件(.cfg)中,将需要国际化的字段类型从 str 改为 text 即可启用国际化支持。
传统方案 vs cfggen方案
Section titled “传统方案 vs cfggen方案”传统方案:
- 策划人员需要在国际化字段中填写ID
- 所有翻译内容统一索引到一个文件中
- 翻译时只需处理单一文件
传统方案的缺点:
- 增加间接层,需要维护ID对应关系
- 策划人员心智负担较重
- 若初期未考虑国际化需求,后期修改成本高
cfggen 方案:
- 工具自动索引和提取翻译内容
- 对策划人员完全透明,无需额外维护工作
- 支持灵活的国际化策略
国际化策略分类
Section titled “国际化策略分类”根据查找键(key)的不同,提供两种国际化方案:
- ** 方案1 - 以原始文本为键**(本节详细介绍)
- ** 方案2 - 以主键 + 字段链为键**(详见下一节
本节重点介绍方案1的实现和使用方法。
参考示例项目:i18n_method1
假设需要将文本翻译为英文(en)、韩文(kr)、繁体中文(tw)三种语言。
1. 生成或更新翻译文件
Section titled “1. 生成或更新翻译文件”在 i18n_method1 目录下执行以下命令:
# -i18nfile en.csv 参数用于复用已有的翻译结果# 首次运行时可不加此参数,或手动创建空的 en.csv 文件java -jar ../../cfggen.jar -datadir ../config -i18nfile en.csv -gen i18n,file=en.csvjava -jar ../../cfggen.jar -datadir ../config -i18nfile kr.csv -gen i18n,file=kr.csvjava -jar ../../cfggen.jar -datadir ../config -i18nfile tw.csv -gen i18n,file=tw.csv生成文件结构
Section titled “生成文件结构”
生成的CSV文件包含三列:
- 第一列:表格名称
- 第二列:提取的待翻译原始文本
- 第三列:需要人工填写的翻译结果
2. 人工翻译编辑
Section titled “2. 人工翻译编辑”根据图示,在生成的CSV文件中填写翻译内容:
- 将
杀个怪翻译为kill a monster - 将
杀怪翻译为kill monster
3. 生成代码和数据文件
Section titled “3. 生成代码和数据文件”多语言版本生成
Section titled “多语言版本生成”# 使用 -langswitchdir 参数指定多语言目录# -defaultlang 默认为 zh_cn-langswitchdir . -gen ...此命令会遍历 -langswitchdir 目录下的所有 .csv 文件作为多语言版本。
单语言版本生成
Section titled “单语言版本生成”# 使用 -i18nfile 参数指定特定语言文件-i18nfile en.csv -gen ...翻译内容修改
Section titled “翻译内容修改”当需要修改翻译内容时:
- 执行步骤2:编辑翻译文件
- 执行步骤3:重新生成代码和数据文件
当配置表有更新时:
- 执行步骤1:提取新的文本字段到翻译文件中(保留原有翻译)
- 执行步骤2:编辑新增的翻译内容
- 执行步骤3:重新生成代码和数据文件