与 Weblate 集成

Weblate 基础知识

项目和组件架构

在 Weblate 中, 翻译组织成为项目和组件。每个项目可以包含几个组件,并且组件包含各个语言的翻译。组件相应于一个翻译文件(例如 GNU gettextAndroid string resources)。项目帮助您将组件组织为逻辑的组(例如,将一个应用中使用的所有翻译分组)。

默认情况下,每个项目内都有对跨组件传播的公共字符串的翻译。这减轻了重复和多版本翻译的负担。但假如翻译应当有所不同,可以使用 允许同步翻译 通过 组件配置 禁用翻译传播。

正在将本地化项目导入 Weblate

Weblate 在开发时一直注意将版本管理系统(VCS)作为核心功能。因此,最简单的方法是授予 Weblate 访问存储库的权限。导入过程将指导您将翻译配置进组件。

Alternatively, you can use Weblate to set up a local repository containing all the translations without integration.

正从 Weblate 获取更新的翻译

为了从 Weblate 取回更新的字符串,可以简单地取回基础的Git仓库(要么来自文件系统,要么可以通过 git-exporter`来获得)。在这之前,您会想要提交任何挂起的更改(请参见 :ref:`lazy-commit)。这可以通过(在 Repository maintenance 中)或使用 Weblate 客户端 从命令行来实现。

如果向 Weblate 授予了对您的仓库的推送访问,并配置 组件配置 中的 代码库推送 URL,这会是自动的。

或者,您可以使用 doc:/api 来更新翻译以匹配最新版本。

正获取远程更改到 Webate

为了将仓库中更新的字符串获取到 Weblate,只要从上游仓库拉取就可以了。这可以在用户界面(在 Repository maintenance 中)或使用 Weblate 客户端 从命令行来实现。

这可以通过在你的存储库中设置一个 webhook 来自动实现,每当有新的提交时,webhook 就会触发 Webate。更多细节请参见 更新仓库

如果你没在用一个版本管理系统(VCS)集成,可以使用 UI 或 Weblate 的 REST API 来更新翻译,从而与您的码基匹配。

正在添加新字符串

如您的翻译文件与代码一起存储在一个版本控制系统(VCS)中,您很可能有一个现有的工作流供开发人员引入新的字符串。任何添加字符串的方法都将被采用,但请考虑使用 Quality gateway for the source strings 以避免引入错误。

当翻译文件与代码分离时,可以通过以下方法将新字符串引入 Webate。目前,Webate 只能往单语翻译中引入新的字符串(check 双语和单语格式)。