你好,在法语版的 Discourse 安装中,越来越多的英文字符串未被翻译成法语,您知道原因吗?谢谢。
嗨,Patrick
我想这还没有翻译。如果你想贡献并自行翻译,请在此处了解如何为 Discourse 贡献翻译:here。
实际上,这个字符串像许多其他字符串一样,在之前的 Discourse 版本中是法语,但自从我升级到最新版本后就不再是了。
我运营着一个巴西葡萄牙语实例,也有同样的感受。最近有一个相关话题,我提到了自己的猜测。
https://meta.discourse.org/t/2-7-0-beta4-translation/181023/2?u=renato
我刚找到了一个示例:
请注意,在 2021 年 2 月 12 日,机器人移除了旧的翻译,因为英文原文中的"these"被改成了"this"。
我认为理想情况下,如果变更不显著,我们应该保留旧翻译,就像 gettext 那样。一个错误的复数形式总比整句显示为英文要好。
我进一步查看了您截图中该字符串的情况,其键名因代码重构而被重命名。我假设这是一个特例,我认为大多数之前存在的缺失翻译情况都是由原文变更引起的。
@gerhard 这个选项是否已经过调查?我知道有些键位使用旧翻译可能会造成灾难性后果(例如电子邮件模板),但总体而言,从旧翻译开始可能比完全没有要好。我不太确定……这里的细微差别太多了。
好吧,让我们看看,这里有几种情况:
-
翻译键变更:我们尽量避免这种情况,但有时确实无法避免。如果英文字符串未发生变化,我们可以利用翻译记忆(Translation Memory)自动复用现有译文。Crowdin 有一个“TM 预翻译”工作流步骤,正是为此设计的。
使用翻译记忆(TM)预翻译文件,以加快相同或相似字符串的翻译速度……
遗憾的是,这会阻止译者在之后对译文进行任何修改,因为由翻译记忆生成的字符串无法通过“众包”工作流步骤。我很久以前就报告过这个问题,但看起来尚未修复。因此,我们目前不使用“TM 预翻译”。cc @Andriy_Crowdin
-
修改后的英文字符串:什么样的改动算作“微小变更”?这是一个难以做出的决定,甚至可能因语言而异。让我们退一步看。当我们在英文中修改现有字符串时会发生什么?
- 我们将修改后的字符串推送到 GitHub
- 翻译机器人会捕获它并将其推送到 Crowdin
- 这会使 Crowdin 上该字符串的所有译文失效,但不会影响 Discourse 中现有的译文
- 每周二,我们会从 Crowdin 拉取最新译文并推送到 GitHub。
- 缺失的译文将被移除
- 新增的译文将被添加
因此,除非我们在周二之前立即修改了字符串,否则通常会有足够的时间在 Crowdin 上提供新译文。Crowdin 上的建议功能通常能让我们轻松翻译修改后的字符串。
-
不应影响现有译文的修改:当我们对英文字符串进行不重要的批量修改时,通常会尽量保留现有译文。例如,过去我们将
{{count}}占位符更改为%{count},或在 重命名英文语言包 时,我们就这样做了。我们可以在提交信息中添加特殊命令:@discourse-translator-bot keep_translations_and_approvals @discourse-translator-bot keep_translations
我很乐意实施可行工作流程的改进。然而,Crowdin 中并没有“模糊译文”的概念。译文要么已翻译,要么未翻译。我认为这很好,否则只会让事情变得过于复杂。作为译者,你会收到关于新增和修改字符串的通知,这应该能帮助译者及时掌握情况。
@patrickemin 我已从翻译记忆中添加了 缺失的法语译文。它将包含在今天的更新中。
我曾看到过,gettext 在计算用于衡量相似度的 Jaro 距离时,默认阈值为 0.85。我明白没有完美的解决方案,这只是一个建议,因为很难跟进这些变更。我并非专业翻译人员,只是在我发现实例中有缺失文本时提供帮助,但由于缺乏贡献,我竟成了我所在语言在 Crowdin 上的“顶级”翻译者。
遗憾的是,大多数语言都缺乏活跃的贡献者,我认为一周的时间不太可能足够完成新的翻译。每当收到 Crowdin 的邮件时,我都会尽力查看,但我负责的语言已经缺失了约 11,000 个单词,很难跟上进度。
使用翻译记忆™预翻译文件,以加快对相同或相似字符串的翻译速度…
如果提到的修复方案能在某个时候落地,确实可能会显著改善工作流程,而且看起来它也解决了模糊字符串的场景。
如果用户正在本地自定义字符串,会发生什么情况?这种情况下这本身不就已经是个问题了吗?
另一个可能的替代方案是默认不使翻译失效,并在整个含义发生变化时采用不同的工作流程。例如,可以更改翻译键,或者在提交信息中包含 @discourse-translator-bot invalidate_translations。这假设——虽然可能完全错误——更改翻译键的含义属于例外情况。
话虽如此,Crowdin 确实非常容易上手。如果有更多人参与贡献,这些问题本都不会存在。我相信许多人正在将文本自定义功能用作翻译资源。
我们对此情况已知悉。我们可能会在不久的将来聘请专业翻译人员协助部分语言的翻译工作,我认为巴西葡萄牙语也在名单之中。![]()
此外,我考虑在管理员界面的“自定义文本”和默认语言设置中添加指向 Crowdin 的链接。这或许也能帮助社区中的翻译人员找到正确的方向。
是的,确实如此。



