Global templates/Proposed specification, short version/ru

На сайтах Викимедиа есть проблема. Код программного обеспечения на них происходит из двух источников:


 * 1) Установленное программное обеспечение (deployed software): ядро и расширения МедиаВики, которые разрабатываются, устанавливаются и переводятся через Gerrit, translatewiki, и относящиеся к ним инструменты.
 * 2) Местные модификации (local customizations): Большая коллекция инструментов, разрабатывающихся на каждом вики-сайте: шаблоны, модули на языке Луа, и гаджеты.

Для редакторов и читателей сайтов, разные технологии смешиваются вместе и выглядят как один продукт, однако различия в процессе разработки представляют определённые сложности:


 * Локальные модификации часто могут быть полезны на разных языках, но портирование их между вики-сайтами и языками чрезвычайно сложно и отнимает много времени.
 * Программные функции, такие как Visual Editor и Content Translation, не могут знать о таких локальных модификациях. Например, карточки (инфобоксы) являются заметной функцией многих вики-сайтов, но они реализованы в каждом из них отдельно, поэтому в Визуальном редакторе не может быть кнопки «Вставить карточку», а есть только кнопка «Вставить шаблон», и каждый редактор должен знать название шаблона и печатать его вручную.
 * Вики-сайты с небольшими сообществами находятся в особенно невыгодном положении, потому что у них нет опыта разработки шаблонов и гаджетов, и нет возможности легко их портировать. В частности, новые вики начинаются с очень простой установки МедиаВики и расширений, тогда как большая часть функциональности более старых и крупных сайтов фактически обеспечивается шаблонами и модулями, которые не могут быть быстро установлены и должны быть импортированы вручную.
 * Несовместимость между установленным программным обеспечением и локальными настройками приводит к ошибкам, которые трудно предвидеть и обнаруживать. Их исправление должно быть сделано на каждом вики-сайте отдельно. Это может даже привести к отказу от некоторых функций со стороны сообщества, что приведет к пустой трате ресурсов на разработку и конфликтам между разработчиками программного обеспечения и сообществом редакторов. Всего этого можно избежать.
 * Различия между локальными настройками затрудняют перевод статей. Решение этой проблемы значительно увеличит скорость, с которой содержание статей переводится и становится доступным для большей части человечества.

Несмотря на то, что эти проблемы очень велики, они почти всегда игнорируются. Программное обеспечение из разных групп часто легко вписывается в пользовательский интерфейс каждого сайта. Люди, которые в основном редактируют на одном языке или проекте, могут не осознавать, что определённая функция доступна только в этом проекте, и думать, что она доступна везде. Даже опытные дизайнеры и разработчики программного обеспечения часто делают эту ошибку.

Предлагаемое решение:


 * 1) Allow making some templates and modules global, similarly to images on Commons, global personal JS and CSS pages, global user pages, etc. (Gadgets should be global as well, but this is already possible in practice using hacks such as those used by HotCat. It’s not perfect, but it’s much less problematic than the issue with templates. Gadgets are therefore not in the scope of this proposal.)
 * 2) Each editors community will keep its independence to maintain local templates and to make local changes to global templates’ functionality and the information they present to readers.
 * 3) The user interface strings of the global templates must be translatable in a translatewiki-like interface, similarly to extensions.
 * 4) The templates and modules will still be editable as wiki pages and immediately usable after publishing.
 * 5) Policies about maintenance, sharing, protection, and deletion of templates and modules will be developed by the editors community.

Building the infrastructure for global templates and modules is challenging, however the core platform developers have said multiple times that it’s possible, and mostly requires product management and dedication. It has to be done, because the lack of global templates is the biggest usability challenge for all stakeholders: developers, new editors, veteran editors, and translators, in all languages and in all wiki projects.

A much more detailed proposal for how this will work is at Global templates/Draft spec.