专名本土化(信达雅):冻结译名表 + 渲染层,并修掉校验器的正则盲点
- 新增 dfannals/glossary.py(译名表)与 dfannals/localize.py(渲染层) 人名=音译+绰号意译(Ral Fastenhatchets→拉尔·缚斧、朗古德·商熊「剖胎之寒」), 地名整体意译(Fordedwinds→涉风渡、The Volcano Of Ravens→渡鸦火山) - 生成链路本土化:素材渲染、人物表、扩写白名单全部走译名;已有产物做确定性替换 - 修复 factcheck 的 \b 盲点:Unicode 下汉字也算词字符,紧贴汉字的英文名不被检查 (曾因此漏掉编造专名)。修好后抓出并定点修掉长版第 1 集的 2 处编造 - 修正 title_form 大小写(YETI→Yeti),此前 Yeti/Goblin 一直漏译 - 新增 tests/test_localize.py(13 项回归)
This commit is contained in:
+4
-3
@@ -12,7 +12,7 @@ from dataclasses import dataclass, replace
|
||||
from pathlib import Path
|
||||
|
||||
from dfannals import episodes as ep_mod
|
||||
from dfannals import gate
|
||||
from dfannals import gate, localize
|
||||
from dfannals.cast import collect_rows
|
||||
from dfannals.chronicle import cjk_length
|
||||
from dfannals.config import (
|
||||
@@ -194,12 +194,13 @@ def render_material(
|
||||
"",
|
||||
"### 写作要求",
|
||||
"",
|
||||
f"- 本集 {CHAPTER_MIN_CHARS}–{CHAPTER_MAX_CHARS} 字,中文正文,专名保留英文。",
|
||||
f"- 本集 {CHAPTER_MIN_CHARS}–{CHAPTER_MAX_CHARS} 字,中文正文,人名地名用上面给出的中文译名。",
|
||||
"- 贴着主角写:他们的目标、算计、得失做主语;对手要是个具体的人。",
|
||||
"- 性别按上面卡片写,不要默认“他”;史料未载性别时用名字或身份称呼。",
|
||||
"- 史料之外的世界大事不要写;只有影响到主角时才提一句。",
|
||||
]
|
||||
return "\n".join(lines)
|
||||
# 专名本土化:素材里的英文原名换成中文译名,让模型直接用中文写
|
||||
return localize.for_world(world).render("\n".join(lines))
|
||||
|
||||
|
||||
def build_messages(
|
||||
|
||||
Reference in New Issue
Block a user