MediaWiki/Многоязычность
Поддержка нескольких языков на сайте MediaWiki поддерживается в двух направлениях:
- Системные сообщения и элементы оформления (локализация движка, интерфейса)
- Содержимое или наполнение (собственно статьи)
Локализация МедиаВики
Первое направление реализовано разработчиками движка (и сообществом), предоставляющими переводы на более 380 языков (см. каталог languages\i18n\
в дистрибутиве).
Перевод статей
Второе направление более трудоёмко и воплощается администраторами и редакторами сайта. Существует несколько способов:
Отдельное вики для каждого языка
Это может быть как вики семейство (т.е. сайты имеющие некоторые общие таблицы, такие как таблица пользователей, интервики и т.д.), так и полностью независимые по структуре сайта, объединённые только общей идеей. Пример этого подхода - Википедия.
Автоматический (машинный) перевод
Это осуществляется налету такими Интернет службами как Гугл и Микрософт. Эта возможность встраивается в некоторые обозреватели, а также её можно подключить с помощью расширения Live Translate (по состоянию на 2018.04.12 у него нет разработчиков).
Отдельный частичный перевод каждой страницы
Такой подход использует, например, сайт самого движка МедиаВики. Для этого достаточно расширения Translate и UniversalLanguageSelector , но можно установить собирательное расширение MediaWiki Language Extension Bundle, объединяющее в себе несколько полезных расширений, связанных с облегчением работы на многоязычных сайтах: Babel (Вавилон) , CLDR , CleanChanges , LocalisationUpdate , UniversalLanguageSelector , Translate .
Инструменты (расширения) перевода
Babel
Сведения о языках участников (Вавилон) | ||
---|---|---|
| ||
Участники по языкам |
Расширение Вавилон предоставляет тэг #babel
, с помощью которого можно указать какими языками и в какой степени владеет участник. Языки перечисляются через вертикальную линию | и указываются в формате: XX-N, где
- XX - буквенный код языка в МедиаВики (ISO 639-1, двух буквенные или ISO 639-3, трёх буквенные), посмотреть можно, например, в каталоге МедиаВики
\languages\i18n\
. - N - степень владения языком: от 0 - не владею, до 5 - владею на профессиональном уровне
Пример:
{{#babel: ru-5| en-3}}
Расширение призвано помогать разным участникам-переводчикам находить друг друга и налаживать сотрудничество. Логично размещать такую информацию на странице участника
CLDR
Это расширение предоставляет различные функции языковой адаптации данных (локализации): вид валюты, формат даты и времени и т.п.
CleanChanges
Это расширение настраивает страницу последних изменений (свежих правок), отражая там в том числе, информацию о языковых правках
LocalisationUpdate
Это расширение входит в базовый набор движка с версии 1.21. Оно позволяет обновлять файлы переводов самого движка (т.е. элементов оформления и служебные сообщения) независимо от обновления движка. Запускать обновление нужно вручную:
либо прописать запуск в планировщик задач (crontab, например).
UniversalLanguageSelector
Это расширение помещает "Универсальный переключатель языка" (англ. ULS) в строку инструментов участника (в самом верху справа в теме Вектор) и позволяет выбирать язык интерфейса, шрифты и методы ввода (раскладки клавиатуры).
Translate
Расширение Перевод -- основной инструмент переводчика. Позволяет переводить текст (см. далее).
Использование расширения Перевод (Translate)
1) Установить и настроить все расширения, перечисленные выше.
2) В месте расположения тэга <languages/> выводится таблица языков, на которые есть переводы на этой странице (хотя бы частичные). Логично расположить этот тэг в начале статьи.
3) Фрагменты текста, нуждающиеся в переводе необходимо заключить в тэговые скобки <translate> </translate>. Фрагмент может содержать одно слово, абзац или всю страницу.
4) Пометить страницу для перевода, т.е. включить в список статей, нуждающихся в переводе (Служебная:Перевод страниц). Система обработает помеченный для перевода текст и разобьёт на блоки с нумерованными метками вида <!--T:1-->.
5) Под заголовком страницы нажать на ссылку "Перевести эту страницу" и выбрать язык перевода.
6) Обновление перевода. После изменения уже переведённой страницы её нужно заново пометить для перевода. Для этого:
- Под заголовком страницы нажимаем на ссылку "Эта страница была изменена с момента последней отметки о переводе".
Блоки серого цвета означают фрагменты не нуждающиеся в переводе, блоки чёрного цвета показывают фрагменты для перевода. - Нажимаем на кнопку "Отметить эту версию для перевода" внизу страницы.
- Под заголовком страницы нажимаем на ссылку "Эта страница была изменена с момента последней отметки о переводе".
Вспомогательные страницы
- Служебная:Перевод страниц (Special:PageTranslation) -- список всех страниц помеченных для перевода
- Пример страницы для перевода -- подробная пошаговая инструкция