工作原理
TownSquare Labs 本地化系统由几个关键部分组成。本章将概述该程序的运行方式,帮助您了解其工作原理以及如何有效地使用它。
在这个系统中,我们整合了多个应用程序,使其作为一个统一的整体无缝运行:
- GitHub:托管文档,同步上游版本库中的文档,并将翻译同步到特定分支。
- Crowdin:管理翻译流程,包括翻译、校对和设置语言首选项。
- 人工智能系统:利用先进的人工智能协助翻译员,确保工作流程顺畅。
- 自定义词汇表:为翻译员提供指导,同时确保人工智能根据项目上下文生成准确的译文。此外用户还可根据需要上传自己的词汇表。
本指南不会详细介绍整个流程,但会重点介绍使 TownSquare Labs 本地化系统独一无二的关键组成部分。您可以自行进一步了解该计划。
通过GitHub实现文档和翻译同步
我们的版本库使用多个分支来管理文件和翻译。下面将详细解释每个特殊分支的目的和功能:
分支概览
1.dev
dev
分支运行 GitHub Actions 来处理同步任务。你可以在 .github/workflows
目录中找到工作流配置:
sync-fork.yml
:此工作流程从上游版本库同步文档。每天 00:00 运行。sync-translations.yml
:此工作流程将更新的翻译同步到相应的语言分支,以便在相应的语言网站上进行预览。
2.localization
该分支通过在 dev
分支上运行的 GitHub Actions 与上游版本库保持同步。它还用于更新我们打算提交到原始版本库的某些代码。
3.l10n_localization
该分支包含来自 localization
分支的所有修改和来自 Crowdin 的翻译。此分支中的所有修改都会提交到上游版本库。
4.[lang]_localization
这些分支指定用于特定语言的预览,如 "ko_localization "用于韩语,"ja_localization "用于日语。通过它们,我们可以预览不同语言的网站。
通过维护这些分支和使用 GitHub Actions,我们有效地管理了文档和翻译更新的同步,确保我们的多语言内容始终是最新的。
如何创建新的 Crowdin 项目
登录您的 Crowdin 帐户。
点击菜单中的
Create new project
。设置项目名称和目标语言。您可以稍后在设置中更改语言。
转到刚刚创建的项目,选择
Integrations
,点击Add Integration
按钮,搜索GitHub
,然后安装。在 Crowdin 上配置 GitHub 集成之前,请先指定要上传到 Crowdin 的文件,以免上传不必要的文件:
- 在你的 GitHub 仓库的根目录下创建一个crowdin.yml文件,输入以下基本配置:
project_id: <Your project id>
preserve_hierarchy: 1
files:
- source: <Path of your original files>
translation: <Path of your translated files>获取正确的配置值:
project_id:在您的 Crowdin 项目中,转到
Tools
选项卡,选择 API,并在其中找到project_id。preserve_hierarchy:是否在 Crowdin 服务器上保持 GitHub 中的目录结构。
source and translation:指定要上传到 Crowdin 的源文件路径(source)和翻译文件(translation)的输出路径。
请参阅我们的官方配置文件了解示例。\ 更多详情,请参阅Crowdin 配置文件。
配置 Crowdin 以连接到你的 GitHub 仓库:
- 单击
Add Repository
并选择Source and translation files mode
。 - 连接 GitHub 账户并搜索要翻译的 repo。
- 选择左侧的分支,这将生成一个新的分支,Crowdin 将在该分支中发布翻译。
- 选择将翻译更新到 GitHub 分支的频率。其他配置可保留默认设置,然后点击保存启用集成。
- 单击
详情请参考 GitHub 集成文档。
- 此外,你可以点击 "立即同步 "按钮,在需要时同步版本库和翻译。
术语表
什么是术语表?
有时,人工智能无法识别不应翻译的特定术语。例如,当提到编程语言时,我们不希望词汇 "Rust" 变成其他意思。为了避免此类错误,我们使用词汇表来指导翻译。
通过术语表,您可以在一个地方创建、存储和管理项目特定术语,确保术语翻译的正确性和一致性。
您可以查看我们的 ton-i18n-glossary 作为参考。
如何为新语言设置词汇表?
大多数翻译平台都支持词汇表。在 Crowdin 中,设置词汇表后,每个术语都会在编辑器中显示为下划线词。将鼠标悬停在术语上,即可查看其翻译、语篇和定义(如果已在词汇表中提供)。
在 DeepL 中,只需上传您的词汇表,它就会在人工智能翻译过程中自动使用。
我们创建了词汇表程序,可自动上传更新内容。
在术语表中添加术语:
如果词汇表中已有英文术语,请找到要翻译的语言的相应行和列,输入译文并上传。
要上传新的词汇表,请克隆项目并运行:
npm i
npm run generate --<glossary name you want>
重复步骤 1 添加新术语。
只需几步我们便完成了所有操作
如何利用人工智能翻译助手?
人工智能翻译具有多种优势:
- 增强一致性:人工智能翻译以最新信息为基础,提供最准确和最新的翻译。
- 速度与效率:人工智能翻译瞬时完成,可实时处理大量内容。
- 强大的可扩展性:人工智能系统会不断学习和改进,随着时间的推移提高翻译质量。借助所提供的词汇表,人工智能翻译可根据不同资源库的具体需求进行定制。
在 Crowdin 中使用人工智能翻译(我们的项目中使用 DeepL):
- 在 Crowdin 菜单中选择
Machine Translation
,然后点击 DeepL 那一行上的edit
。 - 启用 DeepL 支持并输入 DeepL Translator API 密钥。
我们的 DeepL 设置使用定制的词汇表。有关上传词汇表的详细信息,请查阅 ton-i18n-glossary 。
在 repo 中,单击 Pre-translation(预翻译)并选择 via Machine Translation(通过机器翻译)。
选择 DeepL 作为翻译引擎,选择目标语言,并选择要翻译的文件。
就是这样!现在您可以休息一下,等待预翻译完成。