Axıs
技能目录

T4 · 字符串表 Schema(可迭代 / 可本地化)

T4 · 字符串表 Schema(可迭代 / 可本地化)

CSV 表头(最小可用集)

id,tier,speaker,emotion,source_zh,context,condition,chars,translator_note,status

字段规范

字段 说明 示例
id 见 P7.2 规范,全局唯一,永不复用 dlg.q07.03
tier core / plot / flavor / debug core
speaker 角色 ID,空表示旁白/系统 cui_tie
emotion 语气标记(给配音/动画/字体) 低声·回避
source_zh 中文源文本 炉子灭了三天了。
context 场景与前置(给翻译的情境) 首次进入铁匠铺,玩家未接任务
condition 触发条件(逻辑侧读取) flag.hammer_sold==false
chars 中文字符数(自动计算) 8
translator_note 译注:双关/俚语/称谓/不可直译处 "没抬头"是动作不是台词,可译为语气
status draft / reviewed / locked / deprecated reviewed

多语言扩展

id,tier,speaker,emotion,source_zh,en,ja,context,condition,chars,chars_en,translator_note,status
  • 源语言列与译文列并列,翻译时对照 context 与 translator_note。
  • chars_en 用于 UI 溢出测试(膨胀 30–50%)。
  • 新语言只加列,不动代码、不动 ID。

状态流转

draft → reviewed(过反AI味+朗读) → locked(定稿/已配音/已翻译)
                                    ↓
                              deprecated(废弃保留,不删除)
  • locked 后改动必须走变更记录:改了哪些 ID、为什么、影响哪些语言。
  • deprecated 行保留到项目结束,避免旧存档与旧分支引用断裂。

变量字典(独立一张表)

var_name,type,meaning,written_by,read_by,default
flag.hammer_sold,bool,玩家得知锤子被卖,dlg.q07.03,dlg.q11.02 / bark.well.*,false
num.trust_cui,int,崔铁的信任度(-3..3),opt.q07.*,dlg.q09.*,0
q07_hammer,quest,赎锤任务状态,dlg.q07.04,HUD,q07_hammer

规则:同一事件全项目只有一种命名;任何新变量先登记再使用。

与引擎集成的注意事项

引擎/工具 做法
Unity CSV → ScriptableObject 或 I2 Localization;禁止在 Prefab 里写死文本
Godot CSV → Translation 资源;tr("id") 引用
Ink 文本写在 .ink 里,ID 用 // id: dlg.q07.03 注释标记,导出时用脚本抽表
Yarn Spinner 节点名即 ID;变量在 Yarn 里声明,与变量字典同步
自研 启动时加载 CSV 到字典,UI 只按 ID 取值

自检

  • 全项目 grep 不到硬编码的中文台词
  • 每个 ID 唯一且符合规范
  • 每条有 tier 与 status
  • 有双关/俚语/称谓的行都填了 translator_note
  • 变量字典与实际使用一致(脚本可自动比对)
  • debug 状态行数为 0(上线前)