Help:Extension:Translate/Переклад неструктурованих елементів

This page is a translated version of the page Help:Extension:Translate/Unstructured element translation and the translation is 47% complete.
Outdated translations are marked like this.

На цій сторінці пояснюється, як з допомогою розширення Translate зробити переклад повідомлень налаштовуваного інтерфейсу вікі трохи легшим. Це стосується будь-якої частини вікі, яку Ви хочете надати мовою інтерфейсу користувача. Найбільш типовим прикладом є бічна панель, оскільки вона одна, але цей же метод можна застосувати до головної, якщо Ви хочете, щоб усі її переклади були під однією назвою, або навіть і для шаблонів. It applies to any part of the wiki which you want to automatically provide in the user's interface language. The most typical example is the sidebar, because there can be only one, but the same method can be used for the main page, if you want to have all translations of it under the same title, or even for templates.

Цей метод можна застосовувати також до вмісту вікі, коли переклад цілої сторінки не підходить, як у випадку зі сторінками, переобтяженими розміткою чи шаблонами, розмітку яких Ви не хочете розкривати перекладачам. Все це крутиться навколо повідомлень інтерфейсу або магічного слова $int, яке дає можливість включати повідомлення інтерфейсу будь-де, де можна писати вікітекст. Це магічне слово дозволяє автоматично підставляти повідомлення інтерфейсу, стандартне, налаштовуване чи нове, мовою інтерфейсу користувача. This all revolves around interface messages, or the {{int:}} magic word, that allows you to include interface messages anywhere where you can write wikitext. This magic word allows to automatically substitute the interface message, whether standard, customized or new, in the user interface language.

Ви можете використовувати його, щоб привнести силу автоматичної локалізації інтерфейсу вікі у її контент, але це не вирішує проблеми для анонімних користувачів, які не можуть змінити мову інтерфейсу за замовчуванням. Див. розділ про розширення Universal Language Selector нижче.

У порівнянні з перекладом сторінок, цей метод має деякі недоліки:

  1. Розробники MediaWiki зазвичай недолюблюють використання {{int:}}, бо воно фрагментує кеш. Замість зберігання однієї кешованої інтерпретованої версії сторінки, {{int:}} вимагає кешування потенційно сотнями різних мов.
  2. Його важче встановлювати, зважаючи на необхідність доступу до конфігурації вікі.
  3. Нема автоматичного відслідковування застарілих перекладів і статистика завершеності може не відповідати дійсності, коли додаються чи видаляються нові повідомлення.
  4. Тільки адміністратори вікі можуть додавати повідомлення до груп повідомлень і перекладати їх. Це означає, що система годиться тільки для сторінок, які не змінюються часто, інакше в адміністраторів буде багато роботи.

Позитивним моментом є те, що він працює майже весь час, тож Ви ще можете це зробити. Є два посібник з прикладами загальних випадків використання. Перед ними є розділ з деталями створення групи повідомлень, що зазвичай треба при використанні цього методу.

Встановлення

Цей крок повинен зробити адміністратор сервера. До LocalSettings.php треба додати такий фрагмент:

$wgHooks['TranslatePostInitGroups'][] = function ( &$list, &$deps, &$autoload ) {
	$id = 'wiki-sidebar';
	$mg = new WikiMessageGroup( $id, 'sidebar-messages' );
	$mg->setLabel( 'Sidebar' );
	$mg->setDescription( 'Messages used in the sidebar of this wiki.' );
	$list[$id] = $mg;
	return true;
};

ID групи повідомлень, wiki-sidebar, повинен бути унікальним, тому не використовуйте той самий ID для кількох груп. Другий параметр конструктора $wiki-msg-group, $sidebar-msg-param, стосується сторінки $sidebar-msg-page. Мітка показується у випадному меню та інших місцях, де можна обирати групу повідомлень. Опис показується на сторінці $spec-translate. Це значення, які можна і треба змінювати так, як зручно Вашій вікі, при додаванні нової групи повідомлень. The second parameter to the WikiMessageGroup constructor, sidebar-messages, refers to the [[MediaWiki:Sidebar-messages]] page. The label is shown in dropdowns and other places where you can select a message group. The description is shown in Special:Translate. Those are the values you can and should change to what suits your wiki when adding a new custom message group.

Посібник з локалізованої бічної панелі

Припустимо, що крок встановлення, уже зроблено. Далі Вам треба уважно слідувати інструкції налаштування бічної панелі. Скажімо, було створено таку просту панель:

* sidebar-commonpages
** FAQ|sidebar-faq

І сторінка [[MediaWiki:Sidebar-commonpages]] містить Common pages, а [[MediaWiki:Sidebar-faq]] містить Frequently asked questions.

Тоді усе, що нам треба, це перейти на [[MediaWiki:Sidebar-messages]] (або що там було вказано у попередньому кроці) і написати там:

sidebar-commonpages sidebar-faq

Тобто назви системних повідомлень, без префікса прстору назв "MediaWiki:", розділені пробілом.

Далі ідемо на [[Special:Translate/wiki-sidebar]] (або що там було вказано у попередньому кроці; див. список вказаних груп на [[Special:Translate]]). Тепер можна перекладати повідомлення іншими мовами. Оскільки усі повідомлення знаходяться у просторі назв MediaWiki, тільки адміністратор вікі може редагувати список повідомлень і, власне, перекладати їх.

Посібник з локалізованої головної сторінки

Іншим випадком використання є сторінка з купою розмітки або шаблонів. Див. для прикладу головну сторінку translatewiki.net. Перевагою цього методу є те, що вона автоматично з'являється мовою інтерфейсу користувача. Недолік — для того, щоб змінити мову відображення цієї сторінки, треба змінити мову інтерфейсу.

Втілення таке ж, як і у попередньому випадку:

  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}} pages 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, який годиться здебільшого тільки для відлагодження.