工作原理
TownSquare Labs 本地化系统由几个关键部分组成。本章将概述该程序的运行方式,帮助您了解其工作原理以及如何有效地使用它。
在这个系统中,我们整合了多个应用程序,使其作为一个统一的整体无缝运行:
- GitHub:托管文档,同步上游版本库中的文档,并将翻译同步到特定分支。
- Crowdin:管理翻译流程,包括翻译、校对和设置语言首选项。
- 人工智能系统:利用先进的人工智能协助翻译员,确保工作流程顺畅。
- 自定义词汇表:为翻译员提供指导,同时确保人工智能根据项目上下文生成准确的译文。此外用户还可根据需要上传自己的词汇表。
本指南不会详细介绍整个流程,但会重点介绍使 TownSquare Labs 本地化系统独一无二的关键组成部分。您可以自行进一步了解该计划。
通过GitHub实现文档和翻译同步
我们的版本库使用多个分支来管理文件和翻译。下面将详细解释每个特殊分支的目的和功能:
分支概览
-
dev
dev
分支运行 GitHub Actions 来处理同步任务,你可以在.github/workflows
目录中找到工作流配置。sync-fork.yml
:此工作流程从上游版本库同步文档。每天 00:00 运行。sync-translations.yml
:此工作流程将更新的翻译同步到相应的语言分支,以便在相应的语言网站上进行预览。
-
main
这个分支通过在dev
分支上运行的 GitHub Actions 与上游仓库保持同步。它也用于更新我们的打算提交给原始仓库的某些代码。 -
l10n_main
这个分支包括了来自main
分支的所有更改和 Crowdin 的翻译,这个分支中的所有修改都会定期通过使用名为l10n_main_[some data]
的新子分支提交到上游仓库。 -
**
l10n_feat
或者l10n_feat_[特定函数]** 这个分支将包含与翻译系统相关的代码或文档的更改。 一旦所有内容完成后,此分支中的更改将合并为
l10_main`。 -
[lang]_preview
这些分支被指定用于特定语言的预览,例如ko_preview
用于韩语ja_preview
用于日语。它们允许我们在不同语言中预览网站。
dev
分支运行 GitHub Actions 来处理同步任务。你可以在 .github/workflows
目录中找到工作流配置:
如何创建新的 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 分支的频率。其他配置可保留默认设置,然后点击保存启用集成。
- 单击
该分支通过在 dev
分支上运行的 GitHub Actions 与上游版本库保持同步。它还用于更新我们打算提交到原始版本库的某些代码。
- 此外,你可以点击 "立即同步 "按钮,在需要时同步版本库和翻译。
术语表
4.[lang]_localization
这些分支指定用于特定语言的预览,如 "ko_localization "用于韩语,"ja_localization "用于日语。通过它们,我们可以预览不同语言的网站。
通过维护这些分支和使用 GitHub Actions,我们有效地管理了文档和翻译更新的同步,确保我们的多语言内容始终是最新的。
您可以查看我们的 ton-i18n-glossary 作为参考。
如何为新语言设置词汇表?
详情请参考 GitHub 集成文档。
在 DeepL 中,只需上传您的词汇表,它就会在人工智能翻译过程中自动使用。
我们创建了词汇表程序,可自动上传更新内容。
在术语表中添加术语:
-
如果词汇表中已有英文术语,请找到要翻译的语言的相应行和列,输入译文并上传。
-
要上传新的词汇表,请克隆项目并运行:
npm i
npm run generate --<glossary name you want>
通过术语表,您可以在一个地方创建、存储和管理项目特定术语,确保术语翻译的正确性和一致性。
您可以查看我们的 ton-i18n-glossary 作为参考。
如何为新语言设置词汇表?
大多数翻译平台都支持词汇表。在 Crowdin 中,设置词汇表后,每个术语都会在编辑器中显示为下划线词。将鼠标悬停在术语上,即可查看其翻译、语篇和定义(如果已在词汇表中提供)。
- 增强一致性:人工智能翻译以最新信息为基础,提供最准确和最新的翻译。
- 速度与效率