可选的 Weblate 模块

可以获得几个可选的模块来配置您的设置。

Git 导出器

使用 HTTP(S) 为您提供对底层 Git 仓库的只读访问。

安装

  1. weblate.gitexport 添加到 settings.py 中安装的 apps 中:

    INSTALLED_APPS += ("weblate.gitexport",)
    
  2. 通过安装后迁移数据库,将现有的仓库导出:

    weblate migrate
    

提示

Git 导出器在我们的官方 Docker 映像中处于开启状态。要关闭它,使用:

WEBLATE_REMOVE_APPS=weblate.gitexport

用法

模块自动钩入 Weblate,并且在 部件配置 中设置导出仓库 URL。仓库在 Weblate URL的 /git/ 部分下是可以访问的,例如 https://example.org/git/weblate/main/

公共可用项目的仓库可以被克隆而无需认证:

git clone 'https://example.org/git/weblate/main/'

受限浏览仓库的权限(对于 私密 访问控制 项目或者当开启 REQUIRE_LOGIN 时)需要可在 用户个人资料 获得的 API 令牌:

git clone 'https://user:KEY@example.org/git/weblate/main/'

备注

Weblate serves the Git repository itself, but it does not serve Git LFS objects. For repositories using Git LFS, clone from the upstream repository and add Weblate as another remote. If you only need Git-tracked files, you can clone from Weblate with GIT_LFS_SKIP_SMUDGE=1 to skip downloading Git LFS objects.

提示

成员或 用户 群组与匿名用户默认通过 访问仓库高级用户 角色访问公开项目。

账单

这在 Hosted Weblate 上用于确定付费套餐、跟踪发票和使用限制。

安装

1. Add weblate.billing to installed apps in settings.py:

INSTALLED_APPS += ("weblate.billing",)
  1. 运行数据库迁移,来可选地为模块安装另外的数据库结构:

weblate migrate

付费套餐创建和分配

首先,你需要创建一个付费套餐来激活账单。导航至 管理 部分(扳手图标),并打开 工具 屏。从这里,继续转到 Django 管理界面

在 Django 管理界面中,定位 账单 部分并添加付费套餐。比如,你可以零成本地添加 免费 套餐。

如果你希望将一个付费套餐分配到一个现有项目,也可以使用 定制付费 选项在 Django 管理界面 内实现它。

最后,Django 管理界面 提供 发票 选项用于记录你的客户付款。

用法

安装后您可以在管理界面控制账单。启用了账单模块的用户将在他们的 用户个人资料 中看到新的 账单 选项卡。

账单模块额外允许项目管理员不是超级用户的情况下去新建新的项目和部件(请参见 添加翻译项目和部件)。当后面的条件满足是这是可能的:

  • 账单在其配置的限制下(任何过度的使用都会阻止新建项目/部件),并且被支付(如果价格为非零值的话)

  • 用户是现有的带有账单项目的管理员,或者用户是账单的所有者(当为用户新建新的账单,而允许导入新的项目时,后者是必要的)。

在新建项目时,用户在访问多个账单的情况下,能够选择将项目记在哪个账单上。

头像

头像在服务器端下载并缓存,来减少对默认服务的网站的泄露。通过为其配置的电子邮箱地址来取回头像的内建支持,可以使用 ENABLE_AVATARS 来关闭。

当前的 Weblate 支持:

使用 GnuPG 为 Git 提交签名

所有的提交均可由 Weblate 实例的 GnuPG 密钥为其签名。

  • 开启 WEBLATE_GPG_IDENTITY。(Weblate 将在需要时生成一个 GnuPG 密钥,并使用它为所有的翻译提交签名。)

    此功能需要安装 GnuPG 2.1 或更新版本。

    您可以在 DATA_DIR 中找到密钥,公钥显示在“关于”页面上:

    ../_images/about-gpg.webp
  • 另外您还可以将现有的密钥导入 Weblate 中,当调用 pgp 时只设置 HOME=$DATA_DIR/home

提示

Weblate 会将关键材料缓存很长一段时间。如果你通过 WEBLATE_GPG_IDENTITY 让 Weblate 生成一个密钥,接着用相同身份导入密钥来使用现有密钥的话,建议清空 redis 缓存来查看此类更改的效果。

备注

在多个主机间共享 DATA_DIR 时,请遵照 https://wiki.gnupg.org/NFS 指示让 GnuPG 签名可靠地工作。

频次限制

在 4.6 版本发生变更: 速率限制不再适用于已登录的超级用户。

Weblate 的一些操作受到频次限制。在 RATELIMIT_WINDOW 的秒数内最多允许 RATELIMIT_ATTEMPTS 次数的尝试。然后阻止用户 RATELIMIT_LOCKOUT 时间。还有指定范围的设置,例如 RATELIMIT_CONTACT_ATTEMPTSRATELIMIT_TRANSLATE_ATTEMPTS。下面的表格是可用范围的完整列表。

后面的操作受到频次限制:

名称

范围

允许的尝试

频次限制窗口

锁定时间

注册

REGISTRATION

5

300

600

将消息发送给管理员

MESSAGE

2

300

600

登录时的密码验证

LOGIN

5

300

600

第二因素身份认证

SECOND_FACTOR

5

300

600

网站范围的搜索

SEARCH

6

60

60

翻译

TRANSLATE

30

60

600

添加到术语表

GLOSSARY

30

60

600

开始翻译到一种新语言

LANGUAGE

2

300

600

创建新项目

PROJECT

5

600

600

速率限制的依据在用户登录时为会话,在未登录时为 IP 地址。

如果用户没能在 AUTH_LOCK_ATTEMPTS 的次数内登录,那么账户的密码验证将关闭,直到完成了重置密码过程为止。

这些设置也可以在 Docker 容器中应用,在设置名称中添加 WEBLATE_ 前缀 例如 RATELIMIT_ATTEMPTS 变成 WEBLATE_RATELIMIT_ATTEMPTS

API 具有另外的速率限制设置,请参见 API 频次限制