在我们之前的一篇文章MDN Web Docs本地化策略更新中,我们解释了我们关于允许在MDN上再次进行翻译编辑的整体策略。MDN本地化社区一直在等待我们关于解冻顶级语言版本的进展消息,现在我们来了。在这篇文章中,我们将看看我们在2021年迄今为止取得的进展,以及未来可以期待什么。
在不同语言版本之间规范化别名
以前在MDN上,我们允许翻译人员不仅本地化文档标题和正文内容,还本地化文档URL别名。从原则上来说,这听起来不错,但它造成了一些问题。它导致了在保持文档结构一致性方面非常困难的情况。
如果你想要改变一组文档的结构或位置,几乎不可能验证你是否已将所有本地化版本与en-US
版本一起移动 - 其中一些版本将在原始和新位置使用不同名称的别名,这意味着你必须花费时间追踪它们,并花费时间使用正确的别名创建新的父页面等。
作为连锁反应,这也导致了一些本地化页面变成孤儿(没有附加到任何父en-US
页面),以及一些en-US
页面被多次翻译(例如,在现有en-US
别名下进行一次翻译,然后又在本地化别名下进行一次翻译)。
例如,下表显示了截至2021年2月1日,en-US
语言版本中的顶级目录与fr
语言版本中的顶级目录的对比。
en-US |
fr |
games glossary learn mdn mozilla plugins related tools web webassembly |
accessibilité adaptation_des_applications_xul_pour_firefox_1.5 améliorations_dom_dans_firefox_3 améliorations_svg_dans_firefox_3 améliorations_xul_dans_firefox_3 apprendre astuces_css bugs_importants_corrigés_dans_firefox_3 changements_dans_gecko_1.9_affectant_les_sites_web chrome comment_créer_un_arbre_dom compilation_et_installation contrôles_dhtml_personnalisés_navigables_au_clavier css dhtml dom développement_web explorer_un_tableau_html_avec_des_interfaces_dom_et_javascript faq_sur_les_transformations_xsl_dans_mozilla fuel games glossaire glossary html inset-block-end inset-block-start inset-inline-end inset-inline-start inspecteur_dom introduction_(alternative) introduction_à_la_cryptographie_à_clef_publique javascript jeux la_sécurité_dans_firefox_2 learn localization mdn mdn_a_dix_ans mise_à_jour_des_applications_web_pour_firefox_3 mise_à_jour_des_extensions_pour_firefox_2 mise_à_jour_des_extensions_pour_firefox_3 mozilla navigatorusermedia.getusermedia npapi outils référence_dom_gecko sgml svg_dans_firefox tosource tostring type_mime_incorrect_pour_les_fichiers_css un_raycaster_basique_avec_canvas utilisation_de_xpath utilisation_du_cache_de_firefox_1.5 web webapi webassembly webrtc xhtml xmlserializer xpcom xslt_dans_gecko xsltprocessor zoom_pleine_page à_propos_du_document_object_model |
为了使非en-US
语言版本保持一致和可管理,我们将转向只使用en-US
别名 - 所有本地化页面都将移动到它们在en-US
树中的等效位置。在无法可靠地确定该位置的情况下 - 例如,文档是孤儿或重复 - 我们将把这些文档放到一个特定的存储目录中,为它们提供一个适当的前缀,并要求每个未冻结语言版本的维护社区解决如何处理它们的问题。
- 每个本地化文档都将保存在与
en-US
内容分开的存储库中,但将有一个具有相同别名(文件夹路径)的对应en-US
文档。 - 最初,这将在部署过程中强制执行 - 我们将移动所有本地化文档,使其位置与它们的
en-US
等效项同步。在部署过程中,任何没有对应en-US
文档的文档都将在其别名之前添加orphaned
前缀。我们计划进一步自动化这一过程,以在对存储库创建PR时进行检查。我们还将从主en-US
内容存储库中回传更改,例如,如果移动了en-US
页面,则本地化等效页面也会自动移动。 - 所有语言版本都将迁移,不幸的是,一些文档将被标记为孤儿,另一些文档将被标记为冲突(例如,在其别名之前添加
conflicting
前缀)。冲突的文档有相应的en-US
文档,在同一语言版本中有多个翻译。 - 我们计划删除、归档或移出孤儿/冲突内容。
- 不会丢失任何内容,因为所有内容都位于git存储库中(即使删除了某些内容,仍然可以从git历史记录中恢复)。
识别未维护内容的过程
我们一直在努力解决的另一个问题是如何识别哪些本地化内容值得保留,哪些不值得保留。由于许多语言版本长时间以来基本上没有维护,因此它们包含了许多过时内容,而且随着时间的推移,这些内容越来越过时。其中许多文档要么已经完全不再相关,要么不完整,要么仅仅是太难更新了(从头开始会更好)。
对于所有相关人员来说,最好只是删除这些未维护的内容,这样我们就可以专注于更高价值的内容。
到目前为止,我们已经确定以下标准来指示未维护的内容
- 应该包含兼容性表,但没有的页面。
- 应该包含交互式示例和/或嵌入式示例,但没有的页面。
- 应该包含侧边栏,但没有的页面。
- KumaScript出现严重错误,导致页面无法正常显示的页面。
这些标准在很大程度上是可衡量的;我们对翻译的页面运行了一些脚本,以计算哪些页面可以被标记为未维护(它们符合上述一个或多个标准)。结果如下所示
如果你查找兼容性、交互式示例、实时示例、孤儿和所有侧边栏
- 未维护:30.3%
- 断开连接(孤儿):3.1%
如果你查找兼容性、交互式示例、实时示例、孤儿,但不查找侧边栏
- 未维护:27.5%
- 断开连接(孤儿): 3.1%
这将使我们能够摆脱大量低质量页面,并使处理本地化变得更容易。
我们创建了一个电子表格,列出了根据上述规则将被列入未维护类别的所有页面,如果你有兴趣检查一下。
停止显示非第一级语言版本
在我们解冻“第一级”语言版本(fr
、ja
、zh-CN
、zh-TW
)之后,我们计划停止显示其他语言版本。如果没有人有时间维护某个语言版本,并且它一直在变得越来越过时,那么与其让可能造成伤害的未维护内容可供误导人们,不如直接不显示它。
考虑到系统当前的工作方式,这样做是合理的。如果某人的浏览器语言设置为fr
,我们将自动为他们提供页面的fr
版本(如果存在),而不是en-US
版本 - 即使fr
版本很旧且确实过时,而en-US
版本质量很高且最新。
今后,我们将显示en-US
以及具有活跃维护社区的第一级语言版本,但我们不会显示其他语言版本。要再次显示某个语言版本,我们需要一个活跃的社区站出来并同意对该语言版本负责(这意味着审查拉取请求、修复针对该语言版本提出的问题,并尽力使内容保持最新,就像在en-US
文档中添加新内容一样)。
如果你有兴趣维护一个未维护的语言版本,我们很乐意与你交谈。我们只需要一个计划。请与我们联系!
注意:不显示非第一级语言版本并不意味着我们将删除所有内容。我们打算将它们保留在我们的存档内容存储库中,以备不时之需。
下一步
下一步是解冻第一级语言版本,这样我们就可以开始让这些社区重新活跃起来,并使这些内容变得更好。我们希望能在3月初完成这项工作。规范化别名工作将作为这项工作的一部分进行。
在那之后,我们将开始考虑停止显示非第一级本地化内容 - 这将很快进行。
识别和删除未维护内容将是一个更长期的游戏 - 我们希望将我们的活跃本地化社区纳入这项工作,为第一级语言版本进行这项工作,因此这将在其他两项工作完成后进行。
关于 Chris Mills
Chris Mills是Mozilla的高级技术作家,他撰写有关开放式 Web 应用程序、HTML/CSS/JavaScript、A11y、WebAssembly等方面的文档和演示文稿。他喜欢用 Web 技术摆弄,并在会议和大学做偶尔的技术演讲。他曾为 Opera 和 W3C 工作,喜欢演奏重金属鼓和喝好酒。他住在英国曼彻斯特附近,与他的妻子和三个美丽的女儿生活在一起。