内容本地化——手动和自动(使用 Discourse AI)

在本主题中,我们将带您了解内容本地化功能以及如何启用它们。这些功能分为两部分:Discourse 默认提供的功能;以及用于自动翻译的 Discourse AI。

:warning: 为了快速访问相关章节,请使用 wiki 标题 :backhand_index_pointing_right:t2:

本地化您的社区内容

Discourse 的更新版本 (3.5.0.beta7-dev) 为您提供了多个本地化功能,您可以在以下位置进行配置:

  • <your-site-url>/admin/site_settings/category/content_localization
站点设置中的新内容本地化 📸

获取用户信息

首先,了解您的社区信息非常重要。以下数据浏览器查询可以帮助您了解有多少用户可能在 /my/preferences/interface 中设置了他们的语言环境。


SELECT locale, count(*) as count

FROM users

WHERE (locale IS NOT null AND locale <> '')

GROUP BY locale

ORDER BY count DESC
数据浏览器示例结果

设置社区支持的语言环境

根据以上信息,我们现在更清楚您的社区应该支持哪些语言环境。

<your-site-url>/admin/site_settings/category/content_localization 中,您可以选择要支持的语言环境。

  • 启用内容本地化 - 启用此功能,将用户编写的原始内容替换为本地化内容。请继续阅读,了解自动和手动本地化模式。

  • 内容本地化支持的语言环境 - 您的网站支持的语言列表

  • 内容本地化语言切换器 - 将在下文介绍

网站设置中的语言环境列表 📸

启用后续设置“内容本地化语言切换器”后,您还可以通过在支持的语言环境列表中显示您选择的语言列表,使未登录用户更容易访问您的社区:

语言切换器位于页面右上角

查看本地化内容

meta.discourse.org 上的本地化欢迎主题

对于本地化内容的查看者(所有网站访问者),他们可以将鼠标悬停在帖子日期旁边的指示器上,以查看帖子的原始语言。此指示器仅在帖子语言不是他们的语言时才会显示。

如果用户只想查看原始内容,他们可以使用主题时间线上方的切换按钮来禁用整个网站的本地化。

使用 Discourse AI 进行自动翻译 :sparkles:

Discourse AI 是本地化功能不可或缺的动力,它免去了手动翻译的需要。

作为管理员,您需要前往我们全新的 AI 功能版块查看翻译功能。

Discourse AI 功能在管理员设置中📸

向下滚动到 /admin/plugins/discourse-ai/ai-features

以下是一些重要的设置和建议:

  • “AI 翻译回填每小时速率” - 此设置默认值为“0”。警告:如果此值为 0,则不会开始自动翻译。 假设速率为 50,则您的网站每小时将翻译 50 篇文章、50 个主题和 50 个分类,翻译语言为您在“内容本地化支持的语言”中设置的语言。建议在开始时将此值设置得较低。

  • “AI 翻译回填最大年龄天数” - 默认值为“5”。这意味着超过 5 天的主题和文章将不会被翻译。您可以将其值增加到较大的值以翻译所有主题和文章。

  • “AI 翻译回填限制为公共内容” - 默认值为“true”。此设置可防止将私信和私有分类中的内容发送到本地化管理 (LLM)。设置为“false”时,群组私信和私有分类将包含在翻译中。个人之间的私信将不会被翻译。

  • AI 翻译最大帖子长度 - 默认值为 10000。这是一项安全措施,防止翻译长度超过一定限制的帖子。

  • AI 翻译最大词元数倍增器 - 默认值为 1.0。我们通常会限制每次翻译使用的词元数上限(discourse/plugins/discourse-ai/lib/translation/base_translator.rb at f74a4385a0dc9dcd645e08386c08063d7723b65c · discourse/discourse · GitHub Gemini Pro 3 等思维/推理语言学习模型进行翻译时,您需要将此倍增器增加到大约 3.0

  • AI 翻译帖子原始译者角色(以及其他角色) - 在更正式的社区中,管理员可以选择创建自己的角色。这样,您可以设置更符合您偏好的语言或词汇的提示语。

您可以参考 AI bot - Personas 了解如何配置合适的角色并针对每个功能微调提示语。

翻译进度

您可以在 /admin/plugins/discourse-ai/ai-translations 的“翻译进度”图表中找到更多关于自动翻译进度的信息。

如果满足以下条件,则会显示此图表:

  • 所有译员角色都拥有有效的语言学模型 (LLM)

  • discourse ai enabled :check_mark:

  • ai translation enabled :check_mark:

  • content localization supported locales 已填写

  • ai translation backfill max age days 大于 0

  • ai translation backfill hourly rate 大于 0

手动本地化

由于本地化是 Discourse 的核心功能,我们允许您在自动翻译出现问题时手动填写和编辑本地化内容。 Discourse AI 暂不可用。

默认情况下,管理员和版主拥有编辑本地化的权限。

站点设置中允许本地化的组 📸

内容本地化的管理员站点设置

目前,我们支持文章内容、主题标题、分类名称和分类描述本地化。标签本地化暂不支持,但将在不久的将来推出。以下后续章节将向您展示其工作原理。

分类本地化

本地化分类会在以下区域显示,分类名称和描述均已本地化:

分类本地化位置 📸
  1. 首页、侧边栏和分类下拉菜单
  1. 分类页面
  1. 包含子分类的特定分类

作为管理员,您应该可以像往常一样访问类别设置,并在左侧找到新的“本地化”导航项。

在类别设置中编辑类别本地化 📸

主题和文章本地化

从上方“分类本地化”部分的截图中,您可能已经注意到主题标题和摘要都已本地化。

有一些前提设置:

  • 确保您的用户属于“允许内容本地化的用户组”

  • 在站点设置中为“文章菜单”添加“addTranslation”选项。这样,对于属于“允许内容本地化的用户组”的用户,文章菜单中就会显示“:globe_with_meridians:”图标。

  • “允许作者本地化的内容本地化”选项默认启用,允许文章作者使用与上述相同的文章菜单来本地化自己的内容。

3 网站设置 📸

:backhand_index_pointing_down:t2:

再次强调,可本地化的语言列表位于上面提到的“内容本地化支持的区域设置”中。

编辑本地化文章

如果用户正在查看本地化文章并想要编辑该文章,系统会弹出一个对话框,询问他们想要编辑哪个版本:

选择后,相应的编辑器将会出现。

删除特定语言环境的帖子翻译

如果您已正确按照上述关于“帖子菜单”设置的说明操作,并且您属于“允许内容本地化”组,则应该可以执行以下操作:

以管理员身份删除本地化|视频

常见问题解答

我已经设置好了,但自动翻译仍然无法正常工作

请确认您是否已完成以下设置:

  • “内容本地化支持的区域”至少包含一种语言

  • “内容本地化已启用”已勾选

  • “允许用户区域设置”已勾选

  • “从 Cookie 设置区域设置”已勾选

  • “AI 翻译已启用”已勾选

  • “AI 翻译最大保留天数”不为 0

  • “AI 翻译回填每小时费率”大于 12

  • 您必须为每个翻译角色设置一个可用的本地化语言管理器 (LLM)。

如果以上方法均无效,您可以启用 SiteSetting.ai_translation_verbose_logs

所有帖子都会被翻译吗?

如果 AI 翻译回填限制为公共内容 已勾选,则除机器人(用户 ID < 0)发布的帖子外,所有公共分类下的帖子都将被翻译。

自动翻译是保存的,还是每次有人查看主题时都会发送到 LLM?

翻译会被保存,每个帖子每种语言只发送一次,并且翻译会被重复使用。

如果我的论坛支持英语和日语(通过 内容本地化支持的语言),而有人用西班牙语发帖,他们的帖子会被翻译吗?
是的。所有主题和帖子都会被翻译成英语和日语,无论其写作语言是什么。

如果原始帖子被编辑,是否会被重新翻译?

是的——每天最多两次。当帖子被编辑后,会在 5 分钟后(或 SiteSetting.editing_grace_period 指定的宽限期)自动发送进行重新翻译,以应对用户擅自编辑的情况。已授权加入“允许内容本地化组”的用户可以选择立即发送帖子进行重新翻译。

如果我更改 Persona 或 LLM,翻译会被删除吗?

不会,除非使用帖子菜单项或翻译编辑器明确删除,否则翻译通常会在设置更改后保留。


22 个赞