# 用于游戏本地化的翻译表，上线前就检查好。

每个键一行，附上下文和给译者的最大长度，每种语言一列。每条译文都带有状态，过长或丢失占位符的文本会在输入时被标出，整张表可以导出为 CSV、JSON、.po 和 XLIFF，供 Unity、Unreal 和 Godot 使用。

![Nodary 中 Saltmarrow 的翻译表：键、上下文和最大长度，旁边是英语、法语、德语、日语和巴西葡萄牙语列，每条译文都有表示状态的彩色条，表格上方是每种语言的进度，以及德语和巴西葡萄牙语中有待修正的文本。](https://nodary.ai/marketing/localisation-table.webp)

_Saltmarrow 是一个示例项目：其中的工作室、团队和游戏都是虚构的。_

## 翻译表就在项目里

把任意电子表格变成翻译表，或者从现成的表开始。Nodary 会根据表头推断各列用途，例如 Key、Context、Max length、English，或 Godot 风格的 keys、en、fr，点一下就能把一种语言加为新列。这张表是一份文档，与它的文本所出自的对话、角色和系统在同一张地图上，也能像其他文档一样与它们链接。

- 输入 / 并选择“翻译表”，或把已有表格变成翻译表
- 根据表头推断各列用途，再由你确认
- 逐单元格协同编辑：两位审阅者编辑不同单元格时绝不会互相覆盖
- 阿拉伯语和希伯来语等从右到左的语言按从右到左书写

它不做什么: 对话台词不会自动进入翻译表：键需要手动输入、粘贴、从表格导入或由智能体添加。一张表最多 50,000 个单元格，所以大型游戏会把文本分到多张表中。

![Saltmarrow 项目在 Nodary 的星图上：文档围绕愿景、世界与故事、角色、系统、制作、本地化、音频和美术指导等中心分组，由层级线相连，有两位队友的光标，以及在线成员列表。](https://nodary.ai/marketing/map-constellation.webp)

_翻译表位于本地化中心之下，与其文本所出自的文档只隔一条链接。_

## 每条译文都有状态，也都经过检查

译文的状态可以是缺失、草稿、已审阅、已定稿；如果写好之后源文本发生变化，就变为源文本已改。源文本变化时不会改写任何内容：每条译文都记得它所对应的文本。输入时，Nodary 会标出超出字符限制（按玩家看到的字符计）的文本、丢失或多出的占位符、仍是源语言的文本，以及首尾多余的空格。

- 每种语言的进度，可筛选出待处理或有问题的文本
- 译者面板：源文本、上下文、字符计数和需保留的占位符
- 把选中的内容标为已审阅或已定稿，或在源文本小改后保留状态
- 识别 ICU、i18next、Unity、Unreal 和 printf 形式的占位符，以及标记标签

它不做什么: 没有翻译记忆库、术语库或内置机器翻译。译文来自你的译者，或来自你委托的 AI 智能体，智能体的成果以草稿形式提交。

![Nodary 中 Saltmarrow 的文本网格，选中了键 ui.menu.start：网格上方是“标为已审阅”“标为已定稿”“退回草稿”和“源文本改动很小”操作，以及每种语言的进度，德语和巴西葡萄牙语为 91%，各有三条文本需要修正。](https://nodary.ai/marketing/localisation-table.webp)

## 给引擎和译者的文件，以及给构建流程的数据源

导出包含所有语言的 CSV 供 Godot 和 Unity 使用，导出 JSON 供 i18next 和引擎使用，导出以键作为上下文的 gettext .po 供 Unreal 和 Godot 使用，导出 XLIFF 1.2 供翻译工具使用，其中带有每条文本的状态、长度限制和上下文。伪本地化语言能在任何译文出现之前，就在你的界面中显示未翻译或被截断的文本。如果构建不该等任何人，它可以用只读数据密钥从固定地址自行拉取这张表。

- 导入 XLIFF 1.2 或 2.0、.po、JSON 或 CSV，按键匹配，并可预览
- 文件中的空译文绝不会清除表中已有的译文
- 单一语言导出为 JSON、.po 或 XLIFF，或全部语言导出为 CSV；final=1 只保留已定稿的文本
- 表格未变化时返回 304，每个密钥每分钟最多 120 次请求

它不做什么: 复数形式以 ICU 消息写在同一个单元格里：导入时会跳过 .po 文件中的复数条目。数据源只读；不会通过它向 Nodary 写回任何内容。

![Nodary 中 Saltmarrow 的翻译表，导出菜单已打开：包含所有语言的 Godot 和 Unity 用 CSV、带伪本地化语言的 CSV，以及针对所选语言的 i18next 和引擎用 JSON、gettext .po 和 XLIFF 1.2。](https://nodary.ai/marketing/localisation-export.webp)

_所有格式都在翻译表的导出菜单中。同一工具栏里的“数据源”按地址把表格提供给构建。_

## 智能体填写翻译表，而不改写整张表

通过 MCP 连接后，智能体用 get_localization 读取翻译表：每种语言的进度和仍需处理的文本，以及它们的上下文、长度限制和问题。set_translations 按键写入，除非你要求它直接批准，否则都以草稿形式写入；它还能添加键或语言列，并报告哪些文本过长或丢失了占位符。同时在编辑这张表的人会保留他们的单元格。

> 把 Saltmarrow 翻译表中缺失的德语文本以草稿形式补齐。保留每个占位符，不超过每条的最大长度，并告诉我哪些还有问题。

它调用的工具: `search_documents`, `get_localization`, `set_translations`

## 常见问题

### 如何把游戏文本导出到 Unity、Unreal 或 Godot？

打开翻译表的“导出”菜单。CSV 包含所有语言，先是一列键，然后每种语言一列，正是 Godot 和 Unity 读取的格式；gettext .po 包含一种语言，以键作为上下文，供 Unreal 和 Godot 使用；JSON 把一种语言输出为扁平的键值文件，供 i18next 和引擎使用。导入本身在你的引擎中完成，使用引擎自带的本地化工具。

### Nodary 会帮我翻译文本吗？

不会。没有翻译记忆库，也没有内置的机器翻译服务。你的译者在表中工作，或通过 XLIFF 在他们自己的工具中工作；你连接的 AI 智能体也可以写译文，这些译文会以草稿形式提交，等人审阅。

### 源文本改变后，译文会怎样？

每条译文都会保存它所对应的源文本的指纹。源文本改变时，它的译文显示为“源文本已改”，不会改写任何内容。如果只是小改，“源文本改动很小”会让它们保持原有状态。

### 我们的构建能自动下载文本吗？

可以。任何成员都可以在个人资料中创建只读数据密钥，作用于整个工作区或一个项目，翻译表的“数据源”按钮会列出它的地址。构建可以拉取 JSON、.po 或 XLIFF 格式的单一语言，或 CSV 格式的全部语言，final=1 会排除尚未定稿的内容。

### 检查能识别哪些占位符和标签？

ICU 消息（包括 plural 和 select）、Unity 和 Unreal 写法的 {name} 和 {0}、i18next 的 {{name}}、printf 形式（例如 %s、%d 和 %1$s），以及 <b> 或 <color=#f00> 这样的标记标签。长度按玩家看到的字符计算：一个带重音的字母或一个 emoji 算一个字符，标签不计入。

### 译者可以把文件发回来吗？

可以。导入 XLIFF 1.2 或 2.0、gettext .po、JSON 或 CSV，最大 8 MB。译文按键匹配，表中没有的键会被列出而不是被添加，应用前的预览会显示每处更改，基于旧源文本完成的译文会以“源文本已改”状态导入。

## 延伸阅读

- [游戏对话](https://nodary.ai/zh/game-dialogue): 写成脚本、可试玩、可检查并可导出到 Yarn Spinner 的分支对话，旁边还有 Fountain 剧本。
- [游戏数值平衡](https://nodary.ai/zh/game-balancing): 带公式、实时图表和掉落概率的数值表，就在设计文档里。
- [游戏设计文档](https://nodary.ai/zh/game-design-document): 把游戏设计文档写成相互关联的页面，由团队和 AI 智能体共同保持更新。

## 把你的文本放到你的游戏旁边。

免费开始，输入 / 并选择“翻译表”，再粘贴你的第一批键。无需绑卡，无需安装。 两名成员、十份文档以内免费。无需绑卡。

本页地址: https://nodary.ai/zh/game-localization
