可选的 Weblate 模块

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

Git 导出器

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

安装

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

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

    weblate migrate
    

提示

Git exporter is turned on in our official Docker image. To turn it of, use:

WEBLATE_REMOVE_APPS=weblate.gitexport

用法

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

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

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

对仓库的受限制的访问(使用 Private 访问控制 或在 REQUIRE_LOGIN 处于启用状态时)需要一个 API 令牌,获取位置在你的 用户个人资料:

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

提示

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

账单

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

安装

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

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

weblate migrate

Billing plan creation and assignment

You first need to create a billing plan to activate billing. Navigate to the Administration section (represented by the wrench icon) and open the Tools screen. From there, proceed to the Django admin interface.

In the Django admin interface, locate the BILLING section and add a billing plan. For instance, you can add a Free plan with no cost.

If you wish to assign a billing plan to an existing project, this can also be done within the Django admin interface using the Customer billings option.

Lastly, the Django admin interface provides an Invoice option for logging your customer payments.

用法

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

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

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

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

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

头像

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

当前的 Weblate 支持:

针对垃圾电子邮件的保护

您可以使用 Akismet 服务来免受用户发送的垃圾侵扰。

  1. 安装 akismet Python模块(这已经包含在官方Docker镜像中)。

  2. 获取 Akismet API 密钥。

  3. 在Docker中存储为 AKISMET_API_KEYWEBLATE_AKISMET_API_KEY

以下内容被发送到Akismet进行检查:

  • 来自未经身份验证用户的建议

  • 项目和部件描述及链接

备注

这(除了其它事情以外)依赖于客户端的 IP 地址,适当的配置请参见: 在反向代理之后运行

使用 GnuPG 为 Git 提交签名

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

1. Turn on WEBLATE_GPG_IDENTITY. (Weblate will generate a GnuPG key when needed and will use it to sign all translation commits.)

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

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

../_images/about-gpg.webp

2. Alternatively you can also import existing keys into Weblate, just set HOME=$DATA_DIR/home when invoking gpg.

提示

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

备注

在多个主机间共享 :setting:`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

网站范围的搜索

SEARCH

6

60

60

翻译

TRANSLATE

30

60

600

添加到术语表

GLOSSARY

30

60

600

开始翻译到一种新语言

LANGUAGE

2

300

600

创建新项目

PROJECT

5

600

600

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

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

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

Fedora Messaging 集成

Fedora Messaging 是基于 AMQP 的发布者,用于处理 Weblate 中发生的所有更改。您可以使用它来挂钩 Weblate 中发生的更改的附加服务。

Fedora 消息集成可以作为一个单独的Python模块 weblate-fedora-messaging 使用。请参阅 <https://github.com/WeblateOrg/fedora_messaging/> 了解安装说明。