Jump to content

Довідка:Розширення:Translate/Переклад неструктурованих елементів

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

На цій сторінці пояснюється, як зробити переклад налаштованих повідомлень вікі-інтерфейсу трохи більш керованим за допомогою розширення Translate. Це стосується будь-якої частини вікі, яку ви хочете автоматично надати мовою інтерфейсу користувача. Найтиповішим прикладом є бічна панель, оскільки може бути тільки одна, але той самий метод можна використовувати для головної сторінки, якщо ви хочете мати всі її переклади під одним заголовком або навіть для шаблонів.

Цей метод застосовний також до вмісту вікі, де повний переклад сторінки просто не підходить, як-от сторінки з великою кількістю розмітки або шаблони, розмітку яких ви не хочете надавати перекладачам. Все це обертається навколо повідомлень інтерфейсу, або чарівного слова {{int:}}, яке дозволяє включати повідомлення інтерфейсу будь-де, де ви можете писати вікітекст. Це чарівне слово дозволяє автоматично замінювати повідомлення інтерфейсу, будь то стандартне, налаштовано або нове, мовою інтерфейсу користувача.

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

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

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

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

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

Цей крок повинен зробити адміністратор сервера. До $man-localsettings треба додати такий фрагмент:

$wgHooks['TranslatePostInitGroups'][] = function ( &$list, &$deps, &$autoload ) {
	$id = 'wiki-sidebar';
	$mg = new WikiMessageGroup( $id, 'sidebar-messages' );
	$mg->setLabel( 'Сайдбар' );
	$mg->setDescription( 'Повідомлення, які використовуються на бічній панелі цієї вікі.' );
	$list[$id] = $mg;
	return true;
};

Ідентифікатор групи повідомлень, wiki-sidebar, має бути унікальним, тому не використовуйте той самий ідентифікатор повторно для кількох груп. Другий параметр конструктора WikiMessageGroup, sidebar-messages, відноситься до сторінки [[MediaWiki:Sidebar-messages]]. Мітка відображається в спадних меню та інших місцях, де можна вибрати групу повідомлень. Опис показано в Special:Translate. Це значення, які ви можете і повинні змінити на те, що підходить для вашої вікі, додаючи нову групу користувацьких повідомлень.

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

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

* 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, тільки адміністратор інтерфейсу може редагувати список повідомлень і, власне, перекладати їх.

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

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

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

  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}} – це спільнота для кухарів і пекарів, які люблять шоколад.''
</div>
Зараз у нас є сторінки, повні шоколаду.

Далі замініть це на:

<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}} – це спільнота для кухарів і пекарів, які люблять шоколад.

Створіть [[MediaWiki:Mainpage-pagecount]] із вмістом:

Зараз у нас є {{NUMBEROFPAGES}} сторінки, повні шоколаду.

Створіть [[MediaWiki:Mainpage-messages]] із вмістом:

mainpage-slogan mainpage-pagecount

І готово! Ви можете додавати і видаляти нові повідомлення будь-коли.

Перемикач мови

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

На щастя, є рішення. За допомогою розширення UniversalLanguageSelector можна вгадати бажану мову користувача, а також дозволити користувачеві вручну вибрати іншу мову та зберегти вибір у файлі cookie, без потреби в хитрощах, таких як параметр uselang, який підходить переважно лише для налагодження.