zh locale: translate skill names and descriptions

skilldesc.txt takes Longju's name, description and condition columns
and its affect texts where their format arguments match 40250's; a
reviewed overlay fills the gaps and renames the empire languages.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
shenlei
2026-09-30 08:56:03 +09:00
co-authored by Claude Opus 5.5
parent f8bbfc7fb3
commit 34c6049199
4 changed files with 86 additions and 0 deletions
+17
View File
@@ -82,6 +82,23 @@ class LocaleBuildTest(unittest.TestCase):
self.assertEqual((root / "out.txt").read_bytes().decode("gbk"), "1\t金币\n2\t剑\n")
self.assertEqual(result["overlaid"], 1)
def test_skilldesc_keeps_format_arguments(self):
with tempfile.TemporaryDirectory() as directory:
root = Path(directory)
blank = [""] * 22
en_row = ["20", "WARRIOR", "Sword Strike", "Bolt", "Hurl", "Attack.", "Long-Range", "Multi", "Faint"] + blank
en_row[17], en_row[20] = "Attack Power %.0f-%.0f", "Faint Chance %.0f%%"
zh_row = ["20", "WARRIOR", "剑风", "斩气决", "剑气冲霄", "快速挥动 |打击敌人", "远程攻击", "", "击晕"] + blank
zh_row[17] = "攻击力 %.0f-%.0f"
(root / "en.txt").write_bytes(("\t".join(en_row) + "\n").encode("cp1252"))
(root / "zh.txt").write_bytes(("\t".join(zh_row) + "\n").encode("gbk"))
(root / "overlay.txt").write_text("VNUM\tCOLUMN\tTEXT\n20\t7\t多目标攻击\n20\t20\t气绝 %.0f\n")
result = MODULE.merge_skilldesc(root / "en.txt", root / "zh.txt", root / "out.txt", root / "overlay.txt")
row = (root / "out.txt").read_bytes().decode("gbk").rstrip("\n").split("\t")
self.assertEqual(row[2:9], ["剑风", "斩气决", "剑气冲霄", "快速挥动 |打击敌人", "远程攻击", "多目标攻击", "击晕"])
self.assertEqual((row[17], row[20]), ("攻击力 %.0f-%.0f", "Faint Chance %.0f%%"))
self.assertEqual(result["incompatible_format_cells"], ["20:20"])
if __name__ == "__main__":
unittest.main()