好吧,让我们看看,这里有几种情况:
-
翻译键变更:我们尽量避免这种情况,但有时确实无法避免。如果英文字符串未发生变化,我们可以利用翻译记忆(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 我已从翻译记忆中添加了 缺失的法语译文。它将包含在今天的更新中。
