Глобальные шаблоны: предлагаемая спецификация, короткая версия
На сайтах Викимедиа есть проблема. Код программного обеспечения на них происходит из двух источников:
- Установленное программное обеспечение (deployed software): ядро и расширения MediaWiki, которые разрабатываются, устанавливаются и переводятся через Gerrit, translatewiki, и относящиеся к ним инструменты.
- Местные модификации (local customizations): Большая коллекция инструментов, разрабатывающихся на каждом вики-сайте: шаблоны, модули на языке Луа, и гаджеты.
Для редакторов и читателей сайтов, разные технологии смешиваются вместе и выглядят как один продукт, однако различия в процессе разработки представляют определённые сложности:
- Локальные модификации часто могут быть полезны на многих языках, но портирование их между вики-сайтами и языками чрезвычайно сложно и отнимает много времени.
- Программные функции, такие как Visual Editor и Content Translation, не могут знать о таких локальных модификациях. Например, карточки (инфобоксы) являются заметной функцией многих вики-сайтов, но они реализованы в каждом из них отдельно, поэтому в Визуальном редакторе не может быть кнопки «Вставить карточку», а есть только кнопка «Вставить → Шаблон», и каждый редактор должен знать название шаблона и печатать его вручную.
- Вики-сайты с небольшими сообществами находятся в особенно невыгодном положении, потому что у них нет опыта разработки шаблонов и гаджетов, и нет возможности легко их портировать. В частности, новые вики начинаются с очень простой установки MediaWiki и расширений, тогда как большая часть функциональности более старых и крупных сайтов фактически обеспечивается шаблонами и модулями, которые не могут быть быстро установлены и должны быть импортированы вручную.
- Несовместимость между установленным программным обеспечением и локальными настройками приводит к ошибкам, которые трудно предвидеть и обнаруживать. Их исправление должно быть сделано на каждом вики-сайте отдельно. Это может даже привести к отказу от некоторых функций со стороны сообщества, что приведет к пустой трате ресурсов на разработку и конфликтам между разработчиками программного обеспечения и редакторами. Всего этого можно избежать.
- Различия между локальными настройками затрудняют перевод статей. Решение этой проблемы значительно увеличит скорость, с которой содержание статей переводится и становится доступным для большей части человечества.
Несмотря на то, что эти проблемы очень велики, они почти всегда игнорируются. Программное обеспечение из разных групп часто легко вписывается в пользовательский интерфейс каждого сайта. Люди, которые в основном редактируют на одном языке или проекте, могут не осознавать, что определённая функция доступна только в этом проекте, и думать, что она доступна везде. Даже опытные дизайнеры и разработчики программного обеспечения часто делают эту ошибку.
Предлагаемое решение:
- Создать возможность сделать некоторые шаблоны и модули глобальными, аналогично изображениям на Викискладе, глобальным персональным страницам JS и CSS, глобальным страницам пользователей и т.д. (Гаджеты также должны быть глобальными, но на практике это уже возможно с использованием хаков, например таких которые используются в HotCat. Это неидеально, но гораздо менее проблематично, чем сложности с шаблонами. Поэтому гаджеты не входят в сферу действия этого предложения.) (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.)
- Каждое сообщество редакторов сохранит свою независимость и полномочия поддерживать локальные шаблоны и вносить локальные изменения в функциональность глобальных шаблонов и информацию, которую они представляют читателям.
- Строки пользовательского интерфейса (сообщения) глобальных шаблонов должны быть переведены в интерфейс, подобный translatewiki, аналогично расширениям.
- Шаблоны и модули будут по-прежнему доступны для редактирования в виде вики-страниц, и ими можно будет пользоваться во всех вики-сайтах сразу же после их публикации.
- Сообщество редакторов разработает правила разработки, совместного использования, защиты и удаления шаблонов и модулей.
Создание инфраструктуры для глобальных шаблонов и модулей является сложной задачей, однако разработчики базовой платформы неоднократно заявляли, что это возможно, и в основном требуют управление продуктом (product management) и преданности делу. Это должно быть сделано, потому что отсутствие глобальных шаблонов является самой большой проблемой юзабилити для всех заинтересованных сторон: разработчиков, новых редакторов, опытных редакторов и переводчиков на всех языках и во всех вики-проектах.
Если это звучит интересно, и вы хотите узнать ещё, пожалуйста почтите Полное предложение спецификации.
Для обсуждения этого предложения см. страницу мнений и обсуждений и страницу обсуждения полного предложения.