Справка:Расширение:Перевод/Управление страницами, доступными для перевода

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.

Что это. Функция перевода страниц позволяет организовать управляемый перевод вики-страниц на другие языки. Это означает, что содержание каждого перевода будет, как правило, идентичным содержанию исходной страницы. В этом состоит отличие от, например, версий статей в различных разделах Википедии, которые полностью независимы друг от друга. Предполагается, что страницы переводятся из какого-то одного основного языка на другие, но переводчики могут воспользоваться уже сделанными переводами на другие языки, если они существуют.

Зачем это нужно. Если требуется перевести на другие языки более чем несколько страниц, то, без какой-либо поддержки, это становится в лучшем случае бесполезной тратой времени, а в худшем — приводит к полному беспорядку. С функцией перевода страниц вы можете избежать беспорядка и внести структурированность в процесс перевода. Ключевая идея состоит в том, что исходный текст делится на небольшие фрагменты (элементы), каждый из которых можно переводить отдельно от других. Когда исходный текст сегментирован, все изменения могут быть разграничены и переводчикам просто надо обновить переводы тех частей, в исходном тексте которых произошли изменения. Это также позволяет переводчикам работать с фрагментами разумного размера и делить работу между несколькими людьми или продолжать перевод в другой раз, поскольку им не нужно делать всё и сразу.

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

Чтобы подать заявку на получение расширенных прав администратора перевода на MediaWiki.org, перейдите на сайт Проект:Запросы. As for requests on Meta, see Meta:Requests. For Commons, Commons:Noticeboard.

Жизненный цикл доступных для перевода страниц

Роли. Написанием и переводом вики-страниц занимаются разные люди: один автор создаёт страницу, другой — исправляет на ней ошибки, администратор перевода исправляет разметку и помечает страницу для перевода, переводчики переводят её, кто-то вносит изменения в страницу, администратор перевода снова помечает эти изменения для перевода, и затем переводчики обновляют свои переводы. Роли участников могут в большей или меньшей степени перекрываться, однако конечную ответственность за обеспечение беспроблемного перевода лежит на администраторе перевода. Администратор решает, когда страница готова для первого перевода, убеждается, что сегментация отвечает указанным целям и принимает (или исправляет) изменения.

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

Разметка. Когда текст так или иначе готов для перевода, кто-нибудь может пометить переводимые части, заключив их в теги ‎<translate> и добавить на страницу панель со списком языков ‎<languages />. Эта плашка отображает все переводы данной страницы с актуальными процентами завершённости. Другой индикации наличия переводов нет. Смотрите далее о том, как выполнять разметку. Система заметит появление этих тегов и добавит ссылку, позволяющую пометить страницу для перевода. Также система позаботится о том, чтобы вы, к примеру, не сохранили страницу с незакрытыми тегами. Переводимая страница появится на странице Special:PageTranslation в разделе «страницы, предложенные для перевода».

Маркировка. После расстановки тегов, администратор перевода помечает страницу для перевода. Процесс объясняется в рамках описания примера перевода страницы. Администратор перевода должен позаботиться об адекватной сегментации и наличии необходимых тегов. При необходимости, изменившуюся страницу можно повторно пометить как доступную для перевода. См. ниже о том, как минимизировать дестабилизацию при внесении изменений. Маркировка страницы инициирует фоновый процесс очереди работ MediaWiki. В ходе данного процесса, бот обращается к каждой странице перевода и обновляет её: в шаблоне страницы отображаются все связанные изменения исходной страницы, устаревшие переводы подсвечиваются розовым фоном. В отличие от этого, интерфейс перевода обновляется сразу же.

Изменения. Участники могут продолжать вносить изменения в исходный текст переводимой страницы. Соответствующие изменения будут заметны пользователям, просматривающим страницу на языке оригинала, перевод же строится на основе фрагментов (элементов) перевода, вычленяемых на основе разметки последней версии исходной страницы, отмеченной для перевода — поэтому, если все фрагменты перевода были переведены, у перевода будет статус «переведено 100 % текста» даже в том случае, когда в исходный текст переводимой страницы уже внесены изменения. Наличие немаркированных изменений легко заметно при просмотре исходных версий переводимых страниц: в случае наличия изменений, уведомление вверху страницы, сообщающее о возможности её перевода, отображает соответствующую ссылку.

Инвалидация. В случае изменений, вносимых в исходный код переводимый страницы, администраторам перевода для каждого элемента будет предоставлена возможность проставить отметку «Не помечать переводы как устаревшие». Если фрагмент (элемент) перевода был помечен как устаревший, то у таких фрагментов на странице перевода будет розовый фон, а в интерфейсе перевода переводчики увидят иконку с часами. Если элемент не был помечен как устаревший, то читателям переведенных страниц никакие изменения видны не будут, а переводчики, чтобы увидеть сделанные изменения, должны будут в интерфейсе перевода открыть соответствующий элемент на редактирование.

Исходный язык. Также существует страница перевода с языковым кодом исходного языка: она не содержит экстра-тэгов и другой разметки, соответствующей странице перевода, которая используется в исходном тексте переводимой страницы. Эта страница не связывается с интерфейсом перевода, но удобна, к примеру, когда вы хотите выполнить включение этой страницы (как правило, это актуально для переводимых шаблонов) или для ее экспорта. К примеру, страница, на которой вы находитесь, доступна без разметки как Help:Extension:Translate/Page translation administration/en.

Смена языка оригинала. Расширение обычно предполагает, что переводимая исходная страница находится на языке Вики по умолчанию. Администраторы могут изменить языковые настройки конкретной страницы с помощью страницы Special:PageLanguage, так что его можно использовать в качестве исходной страницы для перевода. Для уточнения деталей см. Page content language.

Язык перевода. Не полностью переведённые страницы могут содержать текст на разных языках. На страницах перевода непереведенные единицы перевода будут помечены соответствующим языком и направлением текста, чтобы правила CSS применялись правильно. Однако MediaWiki в настоящее время не позволяет устанавливать язык для синтаксического анализа, кроме как на уровне страницы. Все волшебные слова и функции парсера используют целевой язык перевода, даже если окружающий текст не переведен. Это может привести к нежелательному несоответствию, например, при форматировании чисел или дат. Некоторые волшебные функции и теги парсера позволяют установить язык вывода, и в этом случае вы можете использовать волшебное слово {{TRANSLATIONLANGUAGE}}, которое возвращает либо исходный язык для непереведенных единиц, либо целевой язык для переведенных единиц.

Закрытые запросы на перевод. Некоторые переводимые страницы содержат материал, имеющий значимость только в течение определённого периода времени. Например объявления и постоянные обновляемые дайджесты, такие как ежемесячные сводки важных новостей движения Викимедиа. Вы можете сохранять переводы этих страниц, но исключить их из интерфейса перевода. Это не предотвратит дальнейший перевод страниц, но существенно уменьшит шанс, что участники начнут их переводить. Исключение (Discouraging) и его отмена производится на странице Special:PageTranslation.

Приоритеты языков. Вы также можете определить для страницы список языков, перевод на которые вы хотели бы получить; пустой список интерпретируется как то, что подходят все языки. Для языков, отсутствующих в списке приоритетных, страница будет вести себя как исключенная из перевода (discouraged; см. предыдущий абзац), и при попытке перевода на эти языки переводчик получит предупреждающее сообщение. Вы также можете предотвратить перевод на другие языки, помимо перечисленных в списке — скажем, если переводы используются в каком-то другом месте и вы не можете воспользоваться там переводами только на некоторые языки.

Группировка. Имеется возможность группировать связанные страницы вместе друг с другом. Эти группы работают как и все другие группы сообщений. Они имеют собственную статистику и содержат все сообщения подгрупп: в данном случае, переводимых страниц. В настоящее время эта функциональность находится на странице Special:AggregateGroups. Агрегированные группы сообщений по умолчанию отображаются в свёрнутом виде на странице Special:LanguageStats и в селекторе групп на странице Special:Translate.

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

Удаление. Как и переименование, удаление доступно так как обычно. Вы также можете удалить всю переводимую страницу или только одну страницу перевода. Удаление также удалит все соответствующие страницы фрагментов перевода. Также как и в переименовании, в течении некоторого времени фоновый процесс будет удалять страницы и по завершении сделает отметку на странице лога перевода. Удаление требует права "delete" и "pagetranslation", но отдельные страницы фрагментов перевода всегда могут быть удалены при стандартном "delete".

Отмена. Аналогично, отмена некорректных правок работает как обычно (включая кнопку отката (rollback)): вы редактируете только затронутый фрагмент перевода и переведенная страница будет обновлена. Чтобы найти правку фрагмента перевода из правки переведённой страницы, просто кликните на ссылку «вклад» в редакторе и ищите правку в это же время.

Защита. Можно защитить переводимую страницу. Страницы переводов не могут быть защищены, и защита исходной страницы на них не распространяется. Чтобы предотвратить дальнейшие правки переводов, вы должны установить в качестве приоритетного только исходный язык и выключить переводы на другие языки, см. выше раздел о приоритетах языков. Вместе эти два действия предотвращают изменения и на исходной странице и на страницах её переводов, а также на страницах с элементами переводов. Можно защитить отдельные страницы с элементами переводов, но это нежелательно.

Отключение перевода. Также можно убрать со страницы пометки о переводе. Вы можете использовать служебную страницу Special:PageTranslation или проследовать по ссылке в верхней части переводимой страницы, чтобы удалить ее из перевода. Это удалит все структуры, относящиеся к переводу страницы, но оставит все существующие страницы на месте, в виде свободно редактируемых. Так делать не рекомендуется.

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

Анатомия переводимых страниц

Перевод доступной для перевода страницы создает много страниц, которые вместе составляют переводимую страницу в широком смысле: заголовки этих страниц определяются заголовком исходной Page:

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

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

Каждый раз при обновлении страницы элемента перевода система генерирует соответствующую переведённую страницу. Это результат двух правок. Правка страницы фрагмента перевода по умолчанию скрыта в последних изменениях и может быть показана если выбрать show translations в фильтре перевода. Любое действие кроме редактирования (такое как удаление или переименование) страниц фрагмента перевода не вызовет регенерацию соответствующих переведённых страниц.

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

  • укажите исходный код языка (для английского - en) и откройте Page/<код языка>;
  • кликните "История" чтобы получить адрес, такой как этот и замените action=history на action=raw в адресной строке, и нажмите enter:
  • текст будет отображён или сохранён.

Сегментация

Основные принципы:

  1. Весь текст, требующий перевода, должен быть «обёрнут» в теги ‎<translate>. На одной странице может использоваться более одной пары таких тэгов.
  2. Всё, находящееся вне данных тэгов, на переведённых страницах будет отображаться как в оригинале. Данный неизменный текст, а также блоки-заполнители, в которые будет размещен перевод соответствующих элементов, называются шаблоном переведённой страницы.
  3. Большое количество разметки в тексте усложняет работу переводчиков. В подобных случаях, размещайте теги ‎<translate> аккуратнее.
  4. Текст внутри тегов ‎<translate> разбивается на фрагменты перевода в тех местах, где имеется одна или более пустых строк.

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

Порядок парсинга. Осторожно, теги ‎<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). Данный синтаксис всё ещё поддерживается, но считается устаревшим.

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

Значения в виде обычного текста. Чтобы предотвратить любое изменение значения перевода, используйте атрибут 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>Culture</translate> ==

Неправильно: (без новой строки)

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

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

<translate>
== Culture == 

Какой-то текст про что-то интересное.
</translate>
Изображения Изображения с языкозависимым содержанием, таким как текст, должны включать весь синтаксис изображения во фрагмент. Другие изображения могут содержать под тегом только описание с дополнительной подсказкой в сообщении документации к странице после того как она будет размечена.
<translate>
[[File:Europe.png|thumb|Карта Европы с показом столиц]]
</translate>
[[File:Ball.png|50px|<translate>Иконка с изображением шара</translate>]]
Ссылки Ссылки могут быть добавлены в абзац, в котором они находятся. Это позволяет изменять название ссылки, но также изменять и назначение ссылки в локализованных версиях страницы.

Если целевая страница является или должна быть переведенной, вы должны ссылаться на нее подготовив Special:MyLanguage/. Теперь только метка ссылки требует перевода, т.к. это автоматически переместит пользователя на страницу перевода на языке их интерфейса, который можно выбрать через UniversalLanguageSelector. Тем не менее, чтобы получить постоянное поведение, такой синтаксис должен использоваться во всех ссылках.

Внутренние ссылки:

<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> Евро
</translate>

Обратите внимание, что это не даст переводчикам локализовать форму числа. Вызов FORMATNUM поможет убедится, что число отформатировано правильно в целевом языке.

Шаблоны Шаблоны имеют разные функции и назначения, и от этого зависит лучшее решение для них. Если шаблон не является частью длинного параграфа, он должен быть исключен, если не имеет параметров, требующих перевода. Если сам шаблон не имеет лингвистического содержания, вы не должны ничего делать с самим шаблоном. Примеры шаблонов, переводящихся при помощи средств перевода страниц, см. Template:Extension-Translate . Для использования этого шаблона вам нужен другой шаблон похожий на {{Translatable navigation template }}, так как при помощи обычного вызова {{TemplateName}} вы такой шаблон вставлять больше не можете. Это пока что не поддерживается самим расширением перевода, но стоит в планах.

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

Атрибуты По умолчанию расширение Translate может оборачивать устаревшие единицы перевода, чтобы выделить их, и непереведенные единицы, чтобы установить правильные языковые метаданные.

В некоторых случаях дополнительная разметка, добавляемая этой оберткой, не подходит.

<abbr title="<translate nowrap>Frequently asked questions</translate>"><translate>FAQ</translate></abbr>
Язык перевода (введено в 5e8106cdc353) Если в тексте используются методы форматирования, зависящие от языка, для непереведенных разделов может появиться несоответствие.

Чтобы избежать этого, можно использовать {{TRANSLATIONLANGUAGE}}.

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

Приведенный выше ввод может отображаться как:

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

Без волшебного слова непереведенный текст на странице перевода на финский язык выглядел бы так:

  • 2020-09-15 is tiistai
Translated page language (введено в 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 (введено в 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. Исходный текст, который разделен на фрагменты Переводом и импортируемые переводы будут размещена напротив друг друга с небольшим начальным смещением.
  4. Используйте доступные действия для каждого врагмента для ручного восстановления выравнивания
  5. Т.к. переведенные фрагменты можно редактировать, сделайте ручные улучшения (для переменных перевода, поправьте ссылки и разметку и т.д.)
  6. Кликните кнопку "Сохранить". Это создаст страницы в пространстве имен Translations в виде Translations:Page/<идентификатор фрагмента перевода>/<код языка>. Старые переводы будут импортированы в Translate.
  7. Иначе, если вы хотите отменить импортирование, кликните по кнопке 'Cancel'.

Доступные действия

У каждой строки, содержащей исходный и целевой фрагменты, имеются иконки действий. Они используются следующим образом:

  1. Добавить: Клик по этой иконке добавит новый пустой фрагмент после текущего. Используйте эту возможность, если хотите разделить текущий фрагмент и вам нужен еще один ниже.
  2. Поменять: Клик по иконке этого действия поменяет содержимое текущего и следующего фрагментов. Вы можете использовать эту возможность, если фрагменты выровнены неправильно из-за различного порядка секций. Или когда вам нужно переместить фрагмент выше или ниже. В обоих случаях оно обменяет его с фрагментом ниже и не создаст дополнительных фрагментов.
  3. Удалить: Клик по этой иконке полностью удалит фрагмент назначения и сдвинет оставшиеся фрагменты назначения выше. Используйте это для удаление нежелательного содержимого, такого как код или импортированные переводы, которые полностью присутствуют в исходном языке. Осторожно: это необратимое действие (в текущей сессии).

Поиск и устранение неисправностей

  1. Если вы разметили страницу для перевода и сразу же перешли на служебную страницу и попытались импортировать переводы, вы можете получить сообщение об ошибке наподобие «Страница <page-name>/<language-name> не содержит старые переводы.». Это из-за того, что FuzzyBot ещё не пометил сообщения на старой странице: расширение не нашло правку 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. Перевод заголовка страницы может быть добавлен вручную. Если вам слабо знаком язык импортируемой страницы, вы можете попробовать найти перевод заголовка страницы с помощью служебной страницы «ссылки сюда» или иногда в перенаправлениях.