AI翻译进度图

我昨天在我的自托管 Discourse 服务器上启用了 AI 翻译功能。一切进展顺利……或者说,勉强算顺利。

翻译进度图要么没有刷新,要么数据不准确。以下是我看到的界面:

这显示自 2026 年 2 月 23 日以来,所有帖子的翻译进度都达到了 99%。

这并不准确。在这个时间段内,我大约有 3,000 个帖子。根据翻译日志,目前它正在处理大约 6 天前的帖子。

所以,有人知道吗:

  • 这个图表的刷新频率是多少?
  • 等待翻译的帖子的数据探索器(Data Explorer)查询语句是什么?
  • 已翻译帖子的数据探索器查询语句是什么?
  • 尝试翻译但失败(由于某种错误或原因)的帖子的数据探索器查询语句是什么?

提前感谢。

由于该页面在大型网站上会出现超时,我们不得不对其进行缓存。

翻译基本上分为两个步骤:

  1. 检测帖子的原始语言
  2. 翻译成其他所有语言

在初期,您的站点将主要停留在第一步,我们最初在这个翻译进度页面中展示了这一步,但后来因为反馈称其“信息量过大”而将其移除。

话虽如此,这是一个很好的反馈。进度页面的缓存以及缺乏语言环境检测信息,使得该过程初期的体验非常糟糕。

最后一点,我们设置的回填速率非常保守,您可能需要根据您的预算进行调整。

我建议考虑采用更简单的报告方式。

根据我的理解,翻译流程分为两个阶段:

  1. 翻译符合条件的主题数据。
  2. 翻译符合条件的帖子数据。

从管理和报告的角度来看,我对当前正在处理的内容不太感兴趣,更关心的是相对于符合条件的总工作量的整体进度。我希望看到的报告应基于配置的翻译资格规则。

例如:

状态

回填设置已配置为翻译2026年2月23日之后创建的所有内容。

区域 总数 符合条件 已翻译 已完成
主题 25,000 540 450 83%
帖子 400,000 3,700 800 22%

翻译失败

帖子 ID 原因
34543 第 xxxx 行存在格式错误的字符

当前的图表似乎显示的是操作活动,这确实很有用。然而,我真正想了解的是符合条件的已完成工作量有多少。

就我个人而言,我对按语言划分的完成百分比并不太感兴趣。一个主题或帖子要么已翻译,要么未翻译。对我来说,关键问题是已成功处理了多少配置的积压工作。

这种方法似乎对数据库也更友好,因为它侧重于聚合计数,而不是跟踪每种语言组合的进度。

如果特定语言的报告仍然有价值,也许可以通过过滤器来展示。管理员可以选择一种语言,仅查看该语言的相同进度表。

仅是一些想法。

附注:

当前的缓存时间范围是多少?

我一直在编写用于生成上述报表的数据探索器 SQL 查询。虽然我不是 SQL 专家,但这些查询目前都能正常运行。下面的查询语句可以提供这一层级的信息。

翻译状态报告

区域 符合条件 已翻译 待翻译
话题 540 450 90
帖子 3,700 800 2900

话题:

-- 设置:
-- 更新 SQL 中的翻译设置
-- 回填天数 - Interval 'xxx'
-- 忽略的类别 - Category_id NOT IN ()
-- 话题类型 - Regular 或 private_message
--
-- 翻译状态:
--  待翻译的总话题数:注释掉两个 'and topics.locale' 的 where 语句
--  未翻译的话题:仅取消注释 - topics.locale is null
--  已翻译的话题:仅取消注释 - topics.local = 'en'

SELECT count(distinct topics.id)
     FROM topics
     JOIN posts  ON topics.id  = posts.topic_id
    WHERE posts.created_at >= NOW() - INTERVAL '100 days' 
     AND  posts.user_id > 0
     AND  topics.category_id NOT IN (22,3)
     AND  topics.archetype = 'regular'
--   AND  topics.locale = 'en'
--   AND  topics.locale is null

帖子:

-- 设置:
-- 更新 SQL 中的翻译设置
-- 回填天数 - Interval 'xxx'
-- 忽略的类别 - Category_id NOT IN ()
-- 话题类型 - Regular 或 private_message
--
-- 翻译状态:
--  待翻译的总帖子数:注释掉两个 'and posts.locale' 的 where 语句
--  未翻译的帖子:仅取消注释 - posts.locale is null
--  已翻译的帖子:仅取消注释 - posts.locale = 'en'

SELECT count(*)
     FROM posts
     JOIN topics  ON topics.id  = posts.topic_id
    WHERE posts.created_at >= NOW() - INTERVAL '100 days' 
     AND  posts.user_id > 0
     AND  topics.category_id NOT IN (22,3)
     AND  topics.archetype = 'regular'
--     AND  posts.locale = 'en'
--     AND  posts.locale is null

非常感谢你的反馈 @LotusJeff

我会记下你提到的几点,并尽快做出改进™(大概是在七月)。

关于德语查询,我明天再给你更精确的答复。

明天花了一点时间……

我曾考虑过只是用另一个数据浏览器查询来回复你,但我同意翻译进度图确实需要改进,现在正是时候。

以下是我们已完成工作的简要更新:

加载中 :skull:

虽然只是外观上的改进,但总是令人愉悦

按内容类型缓存时间和进度

由于帖子较多,此页面的加载时间将会很长。我们已有缓存(2小时),并会加以说明。由于我们现在处理的不仅仅是帖子和主题,因此还会显示它们的进度。

以下是未完成时的预览示例

每种内容类型的按语言环境细分

查询此级别的详细信息实际上非常耗时,而且这些细节并非总是需要查看,因此仅当管理员希望查看时才会显示。


该功能现已可用,因此只需更新您的站点即可。

过去几天我一直在出差,直到今晚才有机会进行更新。

这个功能确实更有用,也更直观易懂。它提供了翻译内容的清晰概览。能够按主题和帖子深入查看详细信息也非常有帮助。

唯一看起来有点不对劲的是主题/帖子中“符合条件”帮助图标的内容。它显示的是“已排除此语言中已有的内容”。这里应该显示的是等待翻译的内容总量。这是一个小调整。

干得漂亮,感谢您对翻译状态页面进行的改进。

现在,如果我们能将翻译设置为特定日期,而不是过去的天数,以消除主题/帖子翻译的不匹配,那该多好。这样我就不必手动调整翻译设置,以保持帖子和主题的日期同步了。

同意。我会在该话题中发表意见。