跳到正文
文档
本页内容

翻译

各语言版本如何相互对应,没有译文时网站显示什么,以及如何让每种语言保持完整

镜像路径

每个页面在每个语言文件夹中都位于相同的路径,使用相同的文件名:

en/docs/2_editor/4_craft/3_difficulty-curve.md
ru/docs/2_editor/4_craft/3_difficulty-curve.md
zh/docs/2_editor/4_craft/3_difficulty-curve.md

要翻译缺失的页面,把英文文件复制到你的语言文件夹下的相同路径,然后翻译文本

保持不变的内容:

  • 文件名和所有文件夹名,包括前缀
  • frontmatter中的date和tags(title要翻译)
  • [[wiki-links]]:它们的目标是文件名,在所有语言中都相同
  • 外部链接、图片名、代码块和行内代码:文件、字段、按键、数值、命令
  • 结构:相同的标题、相同的顺序,相同的列表、表格和标注框

标注框的标题要翻译成页面所属的语言。更多:风格指南

英文是后备语言

某种语言缺少某个页面时,网站会显示英文页面并附上提示。反过来则不行:只存在于ru/中的页面,会让英文读者看到404

注意

在页面出现在en/之前,永远不要把它添加到其他语言中。所有其他语言的读者都会遇到失效的链接

每种语言都包含每一条事实

英文只在地址上起主导作用,内容上不是。一条事实可以先加到任何一种语言中,然后再同步到其他所有语言。修改之后,每个版本都应包含所有版本所知道的全部内容

  • 只添加,不删除。缺失的信息要写进每一种缺少它的语言
  • 不靠猜测解决矛盾。两个版本给出不同的数字或相反的说法?请核对来源(游戏、SDK),并在pull request中提出
  • 未经询问不删除任何内容,包括看起来已经过时的文本

措辞上的差异不是问题。读者从中了解到的内容有差异才是问题

比较版本

仓库附带一个用于Claude Code的技能compare-translations(位于.claude/skills/)。它负责做这种比较。没有它的话,请手动完成同样的两轮检查

结构检查逐个元素比较各版本:frontmatter、H1、第一段、标题、段落数量、列表项、表格行和标注框、链接目标、图片、代码

含义检查把各章节并排阅读,寻找一个版本有而另一个版本没有的事实:数字和单位,字段、按钮和按键的名称,条件和例外,警告,操作步骤及其顺序,示例

添加新语言

新语言完全在这个仓库中添加,网站代码不需要改动:

  1. 把frontend/en.yaml复制为frontend/<code>.yaml,例如frontend/de.yaml,然后翻译其中的值。这些是网站自己的字符串:菜单、按钮、搜索、Cookie横幅。键和每个{name}都保持原样
  2. 在en/、ru/和zh/旁边创建<code>/文件夹,把页面翻译到其中。还没有翻译的页面会以英文显示并附上提示

带有one/few/many/other形式的键取决于数量。给它你的语言所需的每一种形式,构建会指出缺少哪些。还没有翻译的键会以英文显示。构建会把这些键列为警告

在进行大规模翻译之前,先在bullet-hero/docs中开一个issue,以免两个人翻译同样的内容