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