全域模板/拟定规格(简短版本)

This page is a translated version of the page Global templates/Proposed specification, short version and the translation is 100% complete.

维基媒体计划存在一个问题。它们的软件混合了来自两个来源的代码:

  1. 已部署的软件:MediaWiki核心及其扩展,它们通过Gerrit translatewiki 和相关工具集中开发、部署和国际化。
  2. 本地自定义:在每个本地维基网站上开发的大量维基工具:模板 Lua模块 小工具

对于站点的编辑和读者来说,不同的技术相互融合并作为一种产品出现,但是不同的软件开发过程也带来了一些挑战:

  • 本地自定义通常在多种语言中有用,但是在维基和语言之间进行移植非常困难且耗时。
  • 诸如Visual Editor 辑器和Content Translation 之类的软件功能无法识别此类本地自定义。例如,信息框是许多维基的显著功能,但它们在每个维基中都是单独实现的,因此可视化编辑器不能具有“插入信息框”按钮,而只能具有“插入 → 模板”按钮,并且每个编辑器都必须知道模板的名称,然后输入。
  • 具有较小社群规模的维基处于不利地位,因为它们不具备开发模板和小工具的专业知识,并且无法轻松移植它们。尤其是新的维基最开始只安装有非常简陋的MediaWiki和扩展,然而许多较旧和较大站点的功能实际上是由模板和模块提供的,无法快速安装且必须手动导入。
  • 部署的软件与本地自定义之间的不兼容性会导致难以预测和检测的错误。必须在每个维基网站上单独进行修复。这甚至可能导致社群拒绝某些功能,以避免浪费开发资源以及软件开发人员和编辑人员之间的摩擦。所有这些都可以避免。
  • 本地自定义之间的差异使条目难以翻译。解决此问题将极大地提高内容翻译速度,并使更多人可以访问。

尽管这些问题非常大,但常常被忽略。不同组的软件通常被无缝地混合到网站的用户界面中。主要在一种语言或项目进行编辑的人们可能没有意识到某项功能仅适用于该项目,并认为该功能随处可见。即使是经验丰富的软件设计师和开发人员也经常犯此错误。

建议的解决方案:

  1. 使得模板和模块全域化:类似于Commons上的图像,全域的个人JS和CSS页面全域用户页面等。(小工具也应该是全域的,但实际上使用一些技术手段已经可以实现 ,例如HotCat所使用的工具。虽然它并不完美,但与模板问题相比,问题少了很多。因此,小工具不在此建议的范围之内。)
  2. 每个编辑社群都将保持其独立性,以维护本地模板,并对全域模板的功能及其提供给读者的信息进行本地更改。
  3. 与扩展类似,全域模板的用户界面字符串必须可以在类似于translatewiki的界面中进行翻译。
  4. 模板和模块仍可作为维基页面进行编辑,并在发布后立即在所有维基中可用。
  5. 编辑者社群将制定有关维护、共享、保护和删除模板和模块的方针。

构建用于全域模板和模块的基础架构具有挑战性,但是核心平台开发人员多次表示可能,而且主要需要产品管理和奉献精神。之所以必须这样做,是因为缺少全域模板是所有利益相关者(所有语言和所有维基项目中的开发人员、新编辑、资深编辑和翻译)面临的最大可用性挑战。

如果这听起来很有趣,并且您想了解更多信息,请阅读完整且详细的全域模板提议页面

对于有关本提案的讨论,请见全域模板/讨论 提案全文的讨论页{{🌎🌍🌏}}