Open main menu

Справка:Расширение:Перевод/Перевод неструктурированных элементов

This page is a translated version of the page Help:Extension:Translate/Unstructured element translation and the translation is 90% complete.

Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎Lëtzebuergesch • ‎Nederlands • ‎Zazaki • ‎català • ‎dansk • ‎español • ‎français • ‎italiano • ‎lietuvių • ‎polski • ‎português • ‎português do Brasil • ‎čeština • ‎русский • ‎українська • ‎العربية • ‎کوردی • ‎हिन्दी • ‎বাংলা • ‎தமிழ் • ‎中文 • ‎日本語

Эта страница объясняет, как с помощью расширения перевода сделать перевод кастомизированных сообщений интерфейса вики немного более управляемым. Это касается любой части вики-сайта, которую вы хотите автоматически отображать на языке интерфейса пользователя. Наиболее типичный пример — боковая навигационная панель, потому что там может быть только какой-то один язык, но тот же метод может быть использован для заглавной страницы, если вы хотите, чтобы все её переводы отображались с тем же самым заголовком, или даже для шаблонов.

Также этот метод подходит для вики-содержимого, где перевод всей страницы просто не подходит. Например страницы со сложной разметкой или шаблоны, разметку которых вы не хотите показывать переводчикам. Это все крутится вокруг сообщений интерфейса, или магического слова {{int:}}, которое позволяет вам вставлять сообщения интерфейса везде, где вы можете написать вики-текст. Магическое слово позволяет автоматически подставлять сообщение интерфейса в зависимости от того, стандартное, кастомизированное или новое в языке пользовательского интерфейса.

Вы можете использовать это для автоматической локализации вики-интерфейса с содержимым вики, но это не решает проблему для анонимных пользователей, которые не могут изменить пользовательский язык по умолчанию. См. ниже заметки о расширении Universal Language Selector.

По сравнению с переводом страницы этот метод имеет некоторые недостатки:

  1. MediaWiki developers usually discourage the usage of {{int:}} because it fragments the cache. Instead of storing one cached rendered version of a page, when {{int:}} is used it needs to be cached potentially in hundreds of different languages.
  2. It is harder to setup, requiring access to wiki configuration.
  3. There is no automatic tracking of outdated translations and completion statistics might be off when new messages are added or deleted.
  4. Only wiki administrators can add messages to the message groups and translate them. This means that the system is suitable only for pages which don't change often, or administrators will have a lot of work.

The good thing is that it works most of the time and you can still get the job done. There are two tutorials that provide examples of the common use cases. Before that there is section which details how to set up a message group, something which is always needed when using this method.

Contents

Установка

Для правильной работы администратор сервера должен добавить строки в файл LocalSettings.php:

$wgTranslateCC['wiki-sidebar'] = function( $id ) {
        $mg = new WikiMessageGroup( $id, 'sidebar-messages' );
        $mg->setLabel( 'Sidebar' );
        $mg->setDescription( 'Messages used in the sidebar of this wiki' );
        return $mg;
};

Идентификатор группы сообщений wiki-sidebar должен быть уникальными, нельзя использовать этот же самый идентификатор в других местах. Второй параметр конструктора WikiMessageGroup, sidebar-messages, относится к странице [[MediaWiki:Sidebar-messages]]. Это идентификаторы разделов меню и т.д., для которых нужно добавить локализацию. Эти названия появятся на странице Special:Translate вашего проекта, где вы сможете сделать перевод названий на нужные вам языки. Приведённые здесь значения можно и нужно изменить на те, что подходит для вашего вики-проекта, а также добавить новые, объединив их в специальную пользовательскую группу сообщений.

Инструкция по созданию локализованной навигационной панели

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

* sidebar-commonpages
** FAQ|sidebar-faq

Создайте (если её нет) страницу $sidebar-commonpges и запишите в неё Common pages, а в [[MediaWiki:Sidebar-faq]] — Frequently asked questions.

Теперь всё, что нам остаётся сделать, это перейти в [[MediaWiki:Sidebar-messages]] (или другой раздел, определённый на предыдущем шаге) и записать в него:

sidebar-commonpages sidebar-faq

То есть, имена системных сообщений без префиксов, разделенные пробелами.

Затем перейдите к [[Special:Translate/wiki-sidebar]] (или другому разделу, определённому на предыдущем шаге, см. [[Special:Translate]] для получения списка определённых групп). Теперь можно переводить сообщения на другие языки. Поскольку все сообщения находятся в пространстве имен MediaWiki, только администратор вики-проекта может редактировать список сообщений и переводить их.

Инструкция по созданию локализуемой заглавной страницы

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

Реализуется так же, как и в предыдущем руководстве:

  1. Настраивается новая группа сообщений.
  2. Берётся вики-страница.
  3. В каждой переводимой части текст заменяется на {{int:Mainpage-messagename}} и переносится в [[MediaWiki:Mainpage-messagename]].
  4. Переходим на страницу [[MediaWiki:Mainpage-messages]] (или другую опредёленную в настройках страницу) и добавляем в ней новые имена, разделяя их пробелами.
  5. Всё готово. Переходим на [[Special:Translate]], чтобы начать переводить заглавную страницу.

Предположим, например, что [[Main Page]] содержит:

<div style="max-width:20em;font-size:200%;line-height:1.4;text-align:center;color:green">
''{{SITENAME}} is a community for chefs and bakers that love chocolate.''
</div>
We currently have {{NUMBEROFPAGES}} full of chocolate.

Меняем содержимое на:

<div style="max-width:20em;font-size:200%;line-height:1.4;text-align:center;color:green">
''{{int:mainpage-slogan}}''
</div>
{{int:mainpage-pagecount}}

Создаем страницу [[MediaWiki:Mainpage-slogan]], с текстом:

{{SITENAME}} is a community for chefs and bakers that love chocolate.

Создаём страницу [[MediaWiki:Mainpage-pagecount]], с текстом:

We currently have {{NUMBEROFPAGES}} pages full of chocolate.

Создаём страницу [[MediaWiki:Mainpage-messages]] с текстом:

mainpage-slogan mainpage-pagecount

Всё готово! Вы можете добавлять и удалять новые элементы, когда захотите.

Переключатель языков

Помимо того, что пользователь не может выбрать локализованную версию страницы для чтения, если не меняет свои настройки, анонимные пользователи не могут выбирать язык пользовательского интерфейса, всегда используя язык, установленный в вики по умолчанию. Страница, переведенная при помощи этой системы, будет отображаться на языке системы по умолчанию, если вы не предоставите анонимным пользователям возможности выбрать свой ​​язык.

По счастью, решение есть. С расширением UniversalLanguageSelector можно подставить предпочтительный язык пользователя, или предоставить пользователю возможность вручную выбрать другой язык и сохранить выбор в кукисах, не используя приёмы, такие как параметр uselang, который подходит в большинстве случаев только для отладки.