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

From mediawiki.org
This page is a translated version of the page Help:Extension:Translate/Page translation administration and the translation is 92% complete.
Outdated translations are marked like this.

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

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

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

Щоб подати заявку на розширені права адміністратора перекладу, перейдіть до Project:Requests. As for requests on Meta, see Meta:Requests. For Commons, Commons:Noticeboard.

Життя перекладабельної сторінки

Ролі. Численні люди задіяні у процесі написання і перекладу вікісторінки: початковий автор створює сторінку, хтось виправляє орфографічні помилки, адміністратор перекладу позначає сторінку на переклад, перекладачі перекладають, хтось вносить зміни на сторінки, адміністратор перекладу позначає ці зміни до перекладу, а перекладачі оновлюють переклади. Ці ролі можуть накладатися більше чи менше, але кінцева відповідальність за безпроблемний переклад лежить на адміністраторі перекладу. Адміністратор вирішує, коли сторінка готова для першого перекладу, перевіряє, щоб поділ на блоки відповідав цілям і підтверджує (або виправляє) зміни.

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

Теґування. Коли текст готовий до перекладу, будь-хто може позначити частини, що можуть бути перекладені, взявши їх у теги ‎<translate> і додавши на сторінку панель ‎<languages />. Остання додає список усіх перекладів сторінки, з відсотками їх завершеності і актуальності. Іншої вказівки на наявні переклади немає. Див. нижче, як, власне, робиться тегування. Система виявить, що на сторінку було додано теги, і на ній з'явиться посилання для позначення її до перекладу. Вона також сповістить і не дозволить зберегти сторінку, якщо Ви, наприклад, забули додати закривальний тег. Перекладабельна сторінка також буде у списку на Special:PageTranslation як готова до позначення.

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

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

Застарівання. Якщо у код перекладабельної сторінки вносяться зміни, адміністратор перекладу бачитиме галочку «Не відмічати переклади як застарілі» для кожного блоку перекладу. Якщо блок позначено як застарілий, то в наявних перекладах цей блок буде на рожевому фоні, а перекладачі в інтерфейсі перекладу бачитимуть іконку годинника. Якщо блок не позначався як застарілий, то ніяких змін на перекладених сторінках читачі не побачать, а перекладачі матимуть переглянути блок в інтерфейсі перекладу, щоб побачити зміни.

Вихідна мова. Також є сторінка перекладу з мовним кодом вихідної мови: вона не містить додаткових тегів та іншої вікірозмітки, що стосується перекладу сторінки, які використані у початковій перекладабельній сторінці. На цю сторінку немає посилань з інтерфейсу, але вона зручна, якщо ви, наприклад, хочете зробити її включення (зазвичай для перекладабельних шаблонів) або експортувати її. Наприклад, сторінка, на якій ви перебуваєте, доступна без націнок за Help:Extension:Translate/Page translation administration/en.

Зміна вихідної мови. У звичайній ситуації це розширення вважатиме, що джерело перекладу — це сторінка мовою, яка у цій вікі за замовчуванням. Адміністратори можуть змінити мовні налаштування конкретної сторінки на сторінці Special:PageLanguage, так щоб вона використовувалася як джерело для перекладу. Див. детальніше на сторінці Page content language.

Мова перекладу. Сторінки перекладу можуть містити текст різними мовами, якщо він не повністю перекладений. На сторінках перекладу неперекладені одиниці перекладу будуть позначені тегами відповідної мови та напрямку тексту, щоб правила CSS застосовувалися правильно. Проте MediaWiki наразі не дозволяє встановлювати мову для розбору, крім як на рівні сторінки. Усі магічні слова та функції парсера використовують цільову мову перекладу, навіть якщо навколишній текст не перекладено. Це може створити небажану невідповідність, наприклад, під час форматування чисел або дат. Деякі магічні функції та теги парсеру дозволяють встановити вихідну мову, і в цьому випадку ви можете використовувати магічне слово {{TRANSLATIONLANGUAGE}}, яке повертає або вихідну мову для неперекладених одиниць, або цільову мову для перекладених одиниць.

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

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

Групування. Є можливість групувати пов'язані між собою сторінки. Ці групи працюють як і всі інші групи повідомлень. Вони мають свою статистику і містять усі повідомлення із підгруп: у цьому випадку — перекладабельних сторінок. Цей функціонал зараз на Special:AggregateGroups. Агреговані групи повідомлень за замовчуванням згорнуті на Special:LanguageStats у виборі груп на Special:Translate.

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

Вилучення. Як і перейменування, вилучення здійснюється у звичному місці. Ви можете вилучити або усю перекладабельну сторінку, або лише одну сторінку перекладу, натиснувши кнопку вилучення на такій сторінці. Вилучення сторінки також спричиниться до вилучення усіх пов'язаних блоків перекладу. Як і з перейменуванням, фоновий процес вилучить сторінки з часом, а завершення цього процесу буде відмічене в журналі перекладу сторінки. Вилучення потребує прав «delete» та «pagetranslation», однак окремі сторінки блоків перекладу можна видалити, використовуючи стандартну кнопку «вилучити».

Відкидання. Аналогічно, відкидання некоректних редагувань працює, як звичайно (включно з кнопкою відкоту): Вам треба тільки відредагувати відповідний блок перекладу, а сторінка з перекладом також оновиться. Щоб знайти редагування блоку перекладу з історії редагувань сторінки перекладу, просто клацніть на посилання «внесок» редактора, і знайдіть редагування, виконане в той же час.

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

Припинення перекладу. Також можна зняти позначення сторінки на переклад. Ви можете використовувати Special:PageTranslation або перейти за посиланням у верхній частині перекладної сторінки, щоб видалити його з перекладу. Це вилучить усі структури, пов'язані з перекладом сторінки, але залишить на місці усі існуючі сторінки, доступні для редагування. Цю дію виконувати не рекомендується.

Перекладення, усвідомлене мовою. Можна перекласти перекладну сторінку на іншу сторінку як шаблон. У такому разі сторінка для перекладу буде завантажена мовою цільової сторінки, якщо вона була перекладена цією мовою. Якщо такого перекладу немає, сторінка для перекладу буде завантажена мовою оригіналу. Таку поведінку сторінки, яку можна перекладати, контролює параметр Увімкнути трансляцію з урахуванням перекладу для цієї сторінки, коли позначається сторінка для перекладу. Для нових перекладених сторінок ця поведінка буде ввімкнено за замовчуванням.

Анатомія перекладабельної сторінки

Переклад перекладабельної сторінки продукуватиме багато сторінок, які усі разом складають перекладабельну сторінку latu sensu: їхня назва визначається назвою перекладабельної Page:

  • Сторінка - вихідна сторінка
  • Сторінка/<коди мови> - сторінки перекладу, плюс копія вихідної сторінки без вікірозмітки
  • Translations:Сторінка/<ідентифікатор блоку перекладу>/<коди мови> - усі сторінки блоків перекладу

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

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

Якщо Вам потрібна копія вихідної сторінки без вікірозмітки, скажімо, для того, аби вставити її текст у іншу вікі без тегів розширення Translate,

  • визначте вихідний код мови (для англійської це буде en), та перейдіть на сторінку Page/<language code>;
  • клацніть кнопку «Переглянути історію», аби дістатися до адреси на кшталт цієї, та замініть action=history на action=raw в адресному рядку браузера, після чого натисніть кнопку Enter:
  • текст відобразиться або збережеться.

Сегментування

Загальні принципи:

  1. Увесь текст, призначений для перекладу, повинен бути взятий у теґи ‎<translate>. На одній сторінці може бути багато пар тегів.
  2. Усе, що поза цими тегами, не зміниться на жодній сторінці перекладу. Цей статичний текст, разом із заповнювачами, які позначають місце, де будуть замінені переклади кожного блоку перекладу, називається шаблоном перекладабельної сторінки.
  3. Надмір вікірозмітки у тексті робить його складним для перекладу перекладачами. Якщо вікірозмітки багато, ставте теги ‎<translate> частіше.
  4. Текст всередині теґів ‎<translate> розбивається на блоки перекладу там, де є один чи кілька порожніх рядків.

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

Порядок розбору. Обережно, теги ‎<translate> працюють інакше, ніж інші теги, оскільки вони не проходять через парсер. Зазвичай це не повинно викликати проблем, але може, якщо ви спробуєте щось вишукане. Більш детально, вони аналізуються перед будь-якими іншими тегами, як-от ‎<pre> або ‎<source>, за винятком ‎<nowiki>, який розпізнається розширенням Translate.

До версії Translate 2020.10 ‎<nowiki> не оброблявся послідовно, і сторінки все одно відображалися в Special:PageTranslation. Використовуйте його як «&lt;translate>...&lt;/translate>» як обхідний шлях.

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

{{Template|1=<translate>Деякий локалізований параметр</translate>}}

Щоб це працювало, розширення просто працює з пробілами: пробіл зберігається, тільки якщо відкриваючий чи закриваючий теґ ‎<translate>‎</translate> — не єдине, що є у рядку. У такому разі новий рядок після відкриваючого теґу або перед закриваючим з'їдається. Це означає, що вони не спричиняють додаткового рядка у відображеній версії сторінки.

Змінні. Є можливість використання змінних, подібних до змінних у шаблонах. Синтаксис цього такий: ‎<tvar name="name">вміст‎</tvar> (лапки необов'язкові, якщо значення не містить пробілів чи будь-якого символу із " ' ` = < >). Для перекладачів це відобразиться лише як $name, і на сторінках перекладу буде автоматично замінене значенням, вказаним на перекладабельній сторінці (таким чином воно є глобальною «константою» на всіх сторінках перекладу). Змінні можна використовувати, щоб приховати неперекладабельний вміст всередині блоку перекладу. Це також працює для таких речей, як числа, які треба часто оновлювати. Ви можете оновити число у всіх перекладах, змінивши його у вихідному тексті перекладабельної сторінки і позначивши її знову. Вам не треба позначати переклади застарілими, бо число не є частиною сторінок блоків перекладу.

До версії Translate 2021.04 синтаксис був <tvar|name>вмістом</> (T274881). Цей синтаксис все ще підтримується, але він не підтримується.

Значення, розділені комою (CSV). Для вмісту на зразок даних Graph, які мають аналізуватися програмним забезпеченням, як значення, розділені комою, вам треба розділяти блоки перекладу між кожною комою, щоб перекладачі не використовували локалізовані коми, що заплутає програмне забезпечення.

Звичайні текстові значення. Щоб запобігти будь-яким змінам значення перекладу, використовуйте атрибут nowrap, наприклад: <translate nowrap>...</translate>. За замовчуванням застарілі та неперекладені значення змінюються, щоб підтримувати виділення та позначення мови.

Приклади розмітки

Нижче перераховані деякі альтернативи і пропоновані шляхи поводження з різними видами вікірозмітки.

Категорії Категорії можна додати двома способами: у шаблоні сторінки перекладу або в одному з блоків перекладу.

Якщо у вас є категорії в шаблоні сторінки перекладу, усі переклади будуть в одній категорії.

Якщо у вас є категорії всередині одиниць перекладу, ви повинні навчити користувачів схемі іменування.

Праворуч ми показуємо дві можливі схеми, які не залежать від технічних засобів їх застосування.

Переклад з додаванням мовного суфікса: Category:Cars/fi (рекомендується)

[...]
</translate>

[[Category:MediaWiki{{#translation:}}]]
  • Назва категорії не перекладається (так само, як назви сторінок).
  • Одна категорія для кожної мови.
  • Переклад сторінок можна використовувати і для самої категорії: категорії будуть пов'язані між собою і заголовки будуть перекладені (але не назва категорії у посиланнях і под.).

Без перекладу: Category:Cars

  • Усі переклади в тій самій категорії (годиться, якщо мов мало, незручно, якщо їх багато).
  • Назва категорії не перекладається (можна залишити як є у шаблоні перекладу).
Заголовки Заголовки в принципі можна прив’язати до наступного абзацу, але краще розділяти їх порожнім рядком. Таким чином, хтось може швидко перекласти зміст, перш ніж перейти до змісту.

Додаючи теги заголовків, важливо включити розмітку заголовка всередину тегів і вставити новий рядок між початковим тегом перекладу та розміткою заголовка, інакше MediaWiki більше не ідентифікуватиме їх належним чином. Наприклад, редагування розділів працює лише з рекомендованою розміткою, наведеною в прикладі. Розмітка також відразу дає перекладачам контекст: вони перекладають заголовок. Additionally, it ensures that linkable anchors are generated for the heading.

Неправильно: (без нового рядка після тегу ‎<translate>, заголовок з тегів перекладу)

== <translate>Культура</translate> ==

Неправильно: (без нового рядка)

<translate>== Culture ==</translate>

Рекомендоване сегментування:

<translate>
== Culture == 

Lorem ipsum dolor.
</translate>
Зображення Для зображень, вміст яких залежить від мови, наприклад, текст, блок перекладу має містити повний синтаксис зображення. Для інших зображень можна тегувати тільки опис із необов'язковою підказкою у документації повідомлення сторінки після її позначення.
<translate>
[[File:Europe.png|thumb|Мапа Європи зі столицями]]
</translate>
[[File:Ball.png|50px|<translate>Іконка кулі</translate>]]
Посилання Посилання можна включати в абзац, у якому вони є. Це дозволить змінити мітку посилання, і також призначення посилання на локалізовану версію, якщо така існує.

Якщо цільова сторінка є (або повинна бути) доступною для перекладу, Вам треба дати посилання на неї, додавши Special:MyLanguage/ на початку її назви. Перекласти треба буди лише текст посилання, оскільки отаке оформлення посилання автоматично перенаправлятиме користувачів на перекладену сторінку їхньою мовою інтерфейсу, яка могла бути обрана, скажімо, через Універсальний мовний селектор. Проте, аби досягти стабільної поведінки посилань, цей синтаксис має використовуватися в усіх посиланнях.

Внутрішні посилання:

<translate>
Гельсінкі — столиця [[Фінляндія (країна)|Фінляндії]].
</translate>

Посилання на сторінки, доступні для перекладу:

<translate>
Тут є чудові пляжі з великою кількістю [[Special:MyLanguage/Мартин|мартинів]].
</translate>

Зовнішні посилання:

<translate>
PHP ([http://php.net вебсайт]) — це мова програмування.
</translate>
Списки Списки можуть бути довгими, тому можна розділити їх на кілька частин з, наприклад, п'ятьма чи менше пунктами в кожній.

Робіть так, тільки якщо пункти повністю не залежні, щоб перекладатись окремо усіма мовами, не створюйте «повідомлень легко»: наприклад, вам треба уникати поділу одного речення на кілька шматків, поділу логічно залежних частин, що можуть впливати одна на одну (залежно від пунктуації чи стилю списку, наприклад). Щоб розділити список, використовуйте ‎<translate>-теги для кожного елемента, не включаючи зірочки/хеші/крапки з комою. Не вставляйте порожні рядки, оскільки це порушить вихід HTML.

* <translate>Загальні принципи</translate>
* <translate>Заголовки</translate>
* <translate>Зображення</translate>
* <translate>Таблиці</translate>

або

<translate>
Будь ласка, відвідайте:
* нашу головну сторінку
* потім сторінку із поширеними запитаннями.
</translate>
Числа У ситуації з числами та іншими нелінгвістичними елементами можна виносити самі числа поза переклад і позначати їх змінними. Це має декілька переваг:
  • Ви можете оновлювати число без позначення перекладів застарілими.
  • Пам'ять перекладів може працювати краще, якщо змінне число ігноруватиметься.
<translate>
Дохід цього місяця: <tvar name=income>{{FORMATNUM:3567800}}</tvar> EUR
</translate>

Майте на увазі, що це не дасть перекладачам локалізувати число, зробивши конвертацію валют. Викликання FORMATNUM упевнює, що число відформатовано коректно кінцевою мовою.

Шаблони Шаблони мають різні функції і цілі, тому найкраще рішення залежить від призначення шаблону. Якщо шаблон не є частиною більшого абзацу, його варто залишити поза перекладом, якщо тільки його параметри не потребують перекладу. Якщо шаблон не має ніякого лінгвістичного вмісту, Вам не треба робити щось із самим шаблоном. Приклади шаблонів, що перекладаються перекладом сторінок, див. Шаблон:Extension-Translate . Щоб використати цей шаблон, Вам треба мати інший шаблон, подібний до {{Translatable navigation template }}, оскільки Ви більше не зможете просто включити шаблон як {{TemplateName}} Це поки що не передбачено самим розширенням Translate, але є у планах.

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

Атрибути За замовчуванням розширення Translate може обернути застарілі одиниці перекладу, щоб виділити їх, і неперекладені одиниці для встановлення належних мовних метаданих.

За деяких обставин додаткова розмітка, додана цією обгорткою, не підходить.

<abbr title="<translate nowrap>Frequently asked questions</translate>"><translate>FAQ</translate></abbr>
Мова перекладу (introduced in 5e8106cdc353) Коли текст використовує залежні від мови методи форматування, для неперекладених розділів може з’явитися невідповідність.

Щоб уникнути цього, можна використати {{TRANSLATIONLANGUAGE}}.

2020-09-15 is {{#time:l|2020-09-15|uk}}

Наведений вище вхід може відображатися як:

  • англійська: 2020-09-15 is Tuesday.
  • фінська: 2020-09-15 on tiistai.

Без чарівного слова неперекладений текст на сторінці перекладу фінською мовою відображався б так:

  • 2020-09-15 is tiistai
Translated page language (introduced in 98b6958a2471) Translated templates may want to set the language they are actually in (e.g. on a wrapper HTML element). When used outside of ‎<translate> tags, {{TRANSLATIONLANGUAGE}} returns the language of the page it’s directly in (as opposed to the language of the page on which the reader sees it). Suppose {{1/en}} is transcluded in the page titled 2/de.
  • If {{PAGELANGUAGE}} is used in the text of {{1/en}}, it returns de.
  • If {{TRANSLATIONLANGUAGE}} is used in the text of {{1/en}} (outside of ‎<translate> tags), it returns en.
Translatable page (introduced in a582f3ad21bd) It can be used in templates that are transcluded on both translatable and non-translatable pages, and should behave differently depending on whether the page is translatable (e.g. use user language on non-translatable pages). It returns the title of the translation page (the page other languages are translated from) if a page is translatable (including translated pages), and nothing if the page is not translatable. Similarly to the ‎<languages> parser tag, it returns nothing if the page contains translation markup but hasn’t been marked for translation yet.
{{#if:{{TRANSLATABLEPAGE}}|{{Some template}}|{{Some template/{{int:lang}}}}}}

Assuming Template:Some template is a translatable template with language-aware transclusion (see above) enabled, and MediaWiki:lang and its translations are set up on the given wiki similarly to mediawiki.org, the above code transcludes it in the page language on translatable pages, and in the UI language on other pages.

Зміна вихідного тексту

Загальні принципи:

  • Уникати змін
  • Робити зміни за можливості ізольованими
  • Не додавати маркери блоків перекладу самостійно

Маркери блоків. Коли сторінка позначена для перекладу, система оновлює вихідний код перекладабельної сторінки і додає унікальні ідентифікатори, які називають «маркерами блоків», до кожного блоку перекладу. Див. приклад нижче. Приклад маркера блоку — <!--T:1-->. Ці маркери блоків є ключовими для системи, яка використовує їх для відслідковування змін у кожному блоці перекладу. Вам не слід ніколи додавати маркери блоків самостійно. Маркери блоків завжди розміщені у рядку перед блоком; або, якщо він починається заголовком, після першого заголовка у тому ж рядку. Інакше розміщення у випадку із заголовками необхідне для того, щоб нормально працювало редагування розділів.

<translate>
== Birds == <!--T:1-->
Birds are animals which....

<!--T:2-->
Birds can fly and...
</translate>

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

Додавання нового тексту. Ви можете вільно додавати новий текст усередині тегів ‎<translate>. Переконайтесь, щоб між сусідніми блоками був пустий рядок, так щоб система розпізнала новий блок. Ви можете також додати теги ‎<translate> навколо нового тексту, якщо він знаходиться не всередині існуючих теґів ‎<translate>. Знову ж таки, не додавайте маркери блоків самостійно, система сама це зробить.

Вилучення тексту. Ви можете вилучати цілі блоки. Якщо Ви це зробите, вилучіть також і маркер блоку.

Поділ блоків. Ви можете розбити існуючі блоки, додавши пустий рядок всередині блоку чи вставивши теги ‎<translate> так, щоб вони розбили блок. Ви можете або залишити маркер біля першого блоку, або вилучити його зовсім. У першому випадку, перекладачі побачать старий текст, коли оновлюватимуть переклад. Якщо Ви вилучите маркер блоку, після перепризначення сторінки на переклад обидва блоки поводитимуться, як ніби перекладу ніколи не існувало.

Початковий вигляд Збереження маркера Вилучення маркера
<!--T:1-->
Cat purrs. Dog barks.
<!--T:1-->
Cat purrs.

<!--T:2--> (Додано після перепризначення)
Dog barks.
<!--T:2--> (Додано після перепризначення)
Cat purrs.

<!--T:3--> (Додано після перепризначення)
Dog barks.
Kissa kehrää. Koira haukkuu. Kissa kehrää. Koira haukkuu.

Dog barks.

Cat purrs.

Dog barks.

Об'єднання блоків. Якщо Ви об'єднуєте блоки, Вам треба вилучити всі маркери, крім одного.

Переміщення блоків. Ви можете переміщувати блоки без впливу на переклади: просто перемістіть маркер блоку разом з рештою блоку.

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

Невикористовувані переклади не вилучаються автоматично, але це не має спричинити проблем.

Міграція на систему перекладу сторінок

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

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

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

Як використовувати?

Знімок, що демонструє приклад використання сторінки Special:PageMigration, де «Help:Special pages» — назва сторінки, і «fr» — код мови.
  1. Перейдіть на Special:PageMigration
  2. Введіть назву сторінки та код мови. Наприклад, «Help:Special pages» та «fr»
  3. Вихідний текст був розділений на блоки розширенням Translate, а імпортовані переклади будуть відображені поряд один з одним із тим же початковим вирівнюванням.
  4. Використайте доступні дії для кожного блоку, аби виконати решту вирівнювання вручну
  5. Оскільки перекладені блоки можна редагувати, виконайте одразу всі необхідні ручні виправлення (додайте змінні перекладу, виправте посилання та розмітку тощо)
  6. Клацніть кнопку «Зберегти». Цим Ви створите сторінки у просторі назв Translations, що матимуть вигляд Translations:Page/<ідентифікатор блоку перекладу>/<код мови>. Таким чином, старі переклади будуть імпортовані у розширення Translate.
  7. Також, якщо Ви бажаєте скасувати імпортування, клацніть кнопку «Скасувати».

Доступні дії

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

  1. Додати: клацання на цій іконці дії додасть новий порожній блок нижче поточного. Використовуйте цю функцію, якщо Ви хочете розділити поточний блок, і потребуєте ще одного блоку нижче.
  2. Поміняти: клацання на цю іконку дії поміняє місцями вміст поточного блоку із блоком нижче нього. Ви можете використати цю функцію, коли вирівнювання блоків є невідповідним внаслідок відмінного порядку розділів. Або ж коли Вам треба перемістити блок нижче або вище. В будь-якому з цих випадків, пам'ятайте, що поточний блок завжди міняється місцями із блоком внизу, і не створює ніяких додаткових блоків.
  3. Вилучити: клацання на цю іконку дії цілковито усуне відповідний цільовий блок тексту зі сторінки, і змістить всі інші цільові блоки на один блок вгору. Використовуйте це для вилучення небажаного контенту на кшталт коду чи імпортованих перекладів, які повністю містяться у вихідному тексті, і не мають перекладатися. Примітка: це — невідворотна дія (у поточній сесії).

Виправлення проблем

  1. Якщо Ви позначите сторінку до перекладу, і одразу ж перейдете на спеціальну сторінку та спробуєте імпортувати переклади, Ви можете отримати повідомлення про помилку на кшталт «<page-name>/<language-name> не містить старих перекладів». Це спричинено тим, що FuzzyBot ще не оновив («fuzzy») відповідні повідомлення на старій сторінці: інструмент не зможе відшукати редагування бота FuzzyBot на сторінці перекладу. У цьому випадку, просто почекайте, поки FuzzyBot виконає свою роботу. Як тільки Ви побачите його редагування, можна буде продовжити роботу з імпортуванням.
  2. Будь ласка, почекайте трохи після натискання кнопки «Зберегти». Поки фон кнопки залишається сірим, триває процес імпортування непорожніх блоків. Як тільки кнопка відновить свій колір, імпортування завершиться.
  3. Within the translation system, you can mark an existing translation as outdated by adding !!FUZZY!! at the start of the translation unit's translated message box.

Поради

  1. Міграція буде простішою, якщо Ви спершу (перед тим, як позначати сторінку до перекладу) перевірите, чи існуючі переклади відповідають оригінальному англомовному текстові, і вручну відредагуєте структуру сторінок: розіб'єте параграфи та списки, додасте відсутні заголовки (навіть якщо вони порожні).
  2. Було б корисно перевірити результат у базовому інтерфейсі перекладу — деякі блоки можуть бути миттєво позначені як застарілі через помилки у розмітці, або ж якщо не всі змінні перекладу були додані.
  3. Переклад назви сторінки потрібно буде додати вручну. Якщо ви не дуже добре знаєте мову імпортованої сторінки, можете спробувати знайти переклад заголовка сторінки серед «посилань тут» або іноді в перенаправленнях.