Global templates/Proposed specification, short version/ru

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


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

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


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

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

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


 * 1) Создать возможность сделать некоторые шаблоны и модули глобальными, аналогично изображениям на Викискладе, глобальным персональным страницам JS и CSS, глобальным страницам пользователей и т.д. (Гаджеты также должны быть глобальными, но на практике это уже возможно с использованием хаков, например таких которые используются в HotCat. Это не идеально, но гораздо менее проблематично, чем сложности с шаблонами. Поэтому гаджеты не входят в сферу действия этого предложения.)
 * 2) Каждое сообщество редакторов сохранит свою независимость и пономочия поддерживать локальные шаблоны и вносить локальные изменения в функциональность глобальных шаблонов и информацию, которую они представляют читателям.
 * 3) Строки пользовательского интерфейса (сообщения) глобальных шаблонов должны быть переведены в интерфейс, подобный translatewiki, аналогично расширениям.
 * 4) Шаблоны и модули будут по-прежнему доступны для редактирования в виде вики-страниц, и ими можно будет пользоваться сразу же после их публикации.
 * 5) Сообщество редакторов разработает правила разработки, совместного использования, защиты и удаления шаблонов и модулей.

Создание инфраструктуры для глобальных шаблонов и модулей является сложной задачей, однако разработчики базовой платформы неоднократно заявляли, что это возможно, и в основном требуют управление продуктом (product management) и преданности делу. Это должно быть сделано, потому что отсутствие глобальных шаблонов является самой большой проблемой юзабилити для всех заинтересованных сторон: разработчиков, новых редакторов, опытных редакторов и переводчиков на всех языках и во всех вики-проектах.

Более подробное предложение о том, как это будет работать, можно найти на странице Global templates/Draft spec/ru.