内容本地化——手动和自动(使用 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 个赞
Content Localization and Automatic Translations for Your Community
I can't find discourse AI as a provider in the discourse translator plugin
Machine-translate messages so users can read without knowing sender's language
Update or Replace Header Locale Selector for New Discourse Header (widgets-end-of-life) – Is Built-in Support Available?
Übersetzung wie hier auf Meta
2 language site
Anonymous user language selector for Discourse
Single post/header only partially translated -issue
The usage problem after using AI translation
AI translation backfill not working after all settings configured
AI translation backfill not working after all settings configured
Single post/header only partially translated -issue
Language Switcher Problem, Not Translating Posts
配置好 ai 翻译后,帖子已经被自动翻译,但是在帖子顶部和右侧没有显示语言切换按钮
Feature Request: Allow Users to Localize Only Their Own Topics
How to configure ai translate of `Ai translation backfill hourly rate`?
I need help to configure LLM DeepSeek R1 0528 - free for Automatic translations with Discourse AI
I need help to configure LLM DeepSeek R1 0528 - free for Automatic translations with Discourse AI
Not sure how to juggle languages while setting up my francophone community
3.6.0.beta2: Built-in palette editing, live AI translation progress, and better wiki tracking
Header Locale Selector
Content Localization and Automatic Translations for Your Community
Images break when the page is auto-translated by a browser translation extension (S3/R2 + CDN is configured correctly)
Bearbeitung von Übersetzen Beiträgen verbessern
Why Is the Discourse AI Translation Icon Not Appearing?
Why are posts in Swedish un-translated to Finnish, default locale?
Discourse AI Translator, Planet Icon Missing
Language switcher and language content
Multilingual user feedback on Automatic Translations
Sharing approaches to using automation to send messages to members
Translate Discourse automatically (without a button)
Help which plugin is in the screenshot
About auto translation
Auto Country Translation
How to Add Automatic Multilingual Translation Interface in Discourse?