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

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

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

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

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

Чтобы подать заявку на получение расширенных прав администратора перевода для сайта «MediaWiki.org», перейдите на страницу Проект:Запросы. Что касается заявок в Мета-вики, см. тамошнюю страницу запросов. На Викискладе для этого используется Доска объявлений.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Сегментация

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

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

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

Tag placement

There are some specific bizarre requirements from ‎<translate> tag for it to function properly, mentioned below.

Размещение тэгов. Если возможно, старайтесь размещать тэги в отдельных строках, не допуская пустых строк между содержанием и тэгами. Иногда это может быть невозможно - к примеру, когда вы хотите перевести контент, окруженный разметкой, не влияя на разметку. Это тоже возможно, например:

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

Чтобы это работало, расширение имеет простую обработку пробелов: пробелы сохраняются, если открывающих или закрывающих тегов ‎<translate>‎</translate> больше одного на строке. В противном случае перевод строки после открывающего тега или перед закрывающим съедается. Это значит, что они не вызывают дополнительных пробелов в отображаемой версии страницы.

If you insert a tag inside a parameter value of a template call, ensure the parameter is named (else add a numeric name, like 1=).

If you insert a tag inside a table cell, ensure there is no excess whitespace between the tags and the table markup , as this will disrupt the HTML output.

  Заметка: Make sure there is a space between the content and the leader tag or unit marker. Otherwise, the editor will display an error message: "Translation unit markers in unexpected position," and you will not be able to publish. For example:

Correct<translate><!--T:1--> Hello, world.</translate>
Wrong:   <translate><!--T:1-->Hello, world.</translate>

Variables

To hide non-translatable elements from translator, or make sure content that is in the middle of a translation unit is not put through the translation process, such as link targets and file names, use variable markup as described below as an escape.

Переменные. Возможно использование переменных примерно таким же образом, как в шаблонах. Для них синтаксис выглядит так: ‎<tvar name="name">содержание‎</tvar> (кавычки необязательны, если значение не содержит пробелов или любого символа из " ' ` = < >).   Заметка: variables must be named, if not it may cause invalid rendering of the page. Для переводчиков это будет выглядеть только как $code3, и в страницах перевода будет автоматически заменяться на значение, определённое в исходной странице (так что такие значения будут глобальными «константами» для всех переводов этой страницы). Это также может быть удобно для числовых значений, которые часто обновляются. Вы можете обновить число во всех переводах, просто изменив его на исходной странице и пометив её для перевода. Вам не требуется при этом дестабилизировать перевод, так как число не является частью элемента перевода.

Обратите внимание, что переменные не являются общими для разных элементов перевода. Если вы хотите использовать одну и ту же переменную в нескольких элементах перевода, вы должны повторить код в каждом элементе. Вы можете использовать одно и то же имя. Переменные могут использоваться, чтобы скрыть не требующий перевода фрагмент, находящийся в середине элемента перевода. For example, this can be used to show a link that’s label should be translated, but not the actual URL:

[[Special:MyLanguage/Help:Extension:Translate|Translation extension]]

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

Значения в виде обычного текста. Чтобы предотвратить любое изменение значения перевода, используйте атрибут nowrap следующим образом: <translate nowrap>...</translate>. По умолчанию устаревшие и непереведенные значения изменяются для поддержки выделения и языковых тегов.

‎<nowiki> handling: До версии Translate 2020.10, ‎<nowiki> не обрабатывался последовательно, и страницы по-прежнему отображались в Special:PageTranslation. В качестве обходного пути использовалось "&lt;translate>...&lt;/translate>".

Previous syntax: До версии расширения Translate 2021.04, синтаксис был <tvar|name>содержимое</> (T274881). Данный синтаксис всё ещё поддерживается, но считается устаревшим.

Примеры разметки

Ниже перечислены некоторые альтернативы и предлагаемые способы обработки различных видов вики-разметки.

Категории Категории могут быть добавлены двумя способами: в шаблон страницы перевода или в один из фрагментов перевода.

Если у вас категории в шаблоне страницы перевода, все переводы попадут в одну категорию.

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

Справа мы показываем две возможные схемы, которые не зависят от технических средств.

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

[...]
</translate>

[[Category:MediaWiki{{#translation:}}]]
  • Названия категорий не переводятся (так же, как и названия страниц).
  • Одна категория для каждого языка.
  • Механизм перевода страниц может использоваться и для страниц категорий как таковых: категории будут ссылаться друг на друга, переведённые названия категорий будут отображаться на их страницах (но переводы не действуют в ссылках и т.п.).

Остаётся без перевода: Category:Cars

  • Все переводы помещются в ту же самую категорию (годится, если языков немного, и очень неудобно, если много).
  • Названия категорий не переводятся (можно оставить их «как есть» в шаблоне перевода).
Заголовки
Recommended markup in translation tagging section headings:
  • Include the markup of headings inside the translation tags, so the translator gets context.
  • Insert a newline between the opening translate tag and the heading, or MediaWiki will not identify it properly as a heading. For example, section editing does not work if the recommended markup is not used.

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

Неправильно: (нет новой строки после маркера ‎<translate>, заголовок выпал из маркеров перевода)

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

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

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

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

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

Какой-то текст про что-то интересное.
</translate>
Media Изображения с языкозависимым содержанием, таким как текст, должны включать весь синтаксис изображения во фрагмент. Другие изображения могут содержать под тегом только описание с дополнительной подсказкой в сообщении документации к странице после того как она будет размечена.
<translate>
[[File:Europe countries map en.png|thumb|Карта Европы с показом столиц]]
</translate>
[[File:Ball.png|50px|<translate>Иконка с изображением шара</translate>]]
Ссылки
If the target page is or should be translatable, then the wikilink must be prepended with Special:MyLanguage/.

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

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

Untranslatable elements of wikilinks can be hidden from the translator using variable syntax.

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

<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
Язык переведённой страницы (введено в 98b6958a2471) В переведенных шаблонах может потребоваться указать язык, на котором они на самом деле написаны (например, в HTML-элементе-оболочке). При использовании вне тегов ‎<translate>, {{TRANSLATIONLANGUAGE}} возвращает язык страницы, на которой он находится непосредственно (в отличие от языка страницы, на которой его видит читатель). Предположим, что {{1/en}} включается в страницу под названием 2/de.
  • Если в тексте {{1/en}} используется значение {{PAGELANGUAGE}}, то возвращается значение de.
  • Если в тексте {{1/en}} используется значение {{TRANSLATIONLANGUAGE}} (за пределами тегов ‎<translate>), то возвращается значение en.
Переводимая страница (введено в a582f3ad21bd) Он может использоваться в шаблонах, которые включаются как в переводимые, так и в не-переводимые страницы, и должен вести себя по-разному в зависимости от того, является ли страница переводимой (например, использовать язык интерфейса пользователя на не-переводимых страницах). Он возвращает заголовок исходной переводимой страницы (страницы, с которой выполняется перевод на другие языки), если страница поддаётся переводу (включая переведенные страницы), и ничего, если страница не помечена как доступная для перевода. Аналогично тегу парсера ‎<languages>, он ничего не возвращает, если страница содержит разметку перевода, но еще не была помечена для перевода.
{{#if:{{TRANSLATABLEPAGE}}|{{Какой-то шаблон}}|{{Пропустить шаблон/{{int:lang}}}}}}

Предполагая, что Template:Какой-то шаблон является переводимым шаблоном с режимом включения с учётом языка (см. выше), а MediaWiki:lang и его переводы настроены в данной вики аналогично mediawiki.org, приведённый выше код на переводимых страницах включает ту версию шаблона, которая соответствует языку страницы перевода, а на всех остальных страницах — на языке интерфейса пользователя.

Изменение исходного текста

Do not add unit markers (<!--T:1-->) yourself, the system will do it automatically.
Основные принципы:
  • Избегайте изменений
  • делайте изменения изолированно, на сколько это возможно
  • Не добавляйте маркеры элементов перевода самостоятельно
  • When editing, unit markers should be left alone and their position in relation to the unit they belong to should not be changed.
  • When moving a unit, move the unit marker too.
  • When deleting a unit, delete the marker too.

Маркеры элементов. Когда страница размечена для перевода, система обновит исходную переводимую страницу и добавит для каждого из элементов перевода свой уникальный идентификатор, называемый "маркером элемента". См. пример ниже. Пример маркера элемента перевода — см. <!--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. В противном случае, если вы хотите отменить импортирование, кликните по кнопке «Отмена».

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

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

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

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

  1. Если вы разметили страницу для перевода и сразу же перешли на служебную страницу и попытались импортировать переводы, вы можете получить сообщение об ошибке наподобие «Страница <page-name>/<language-name> не содержит старые переводы.». Это из-за того, что FuzzyBot ещё не пометил сообщения на старой странице: расширение не нашло правку FuzzyBot-а на странице перевода. В этом случае просто подождите, пока FuzzyBot сделает свою работу. Как только увидите правку, то можете продолжить импорт.
  2. Пожалуйста подождите некоторое время после нажатия кнопки «Сохранить». Пока кнопка остаётся серой, происходит процесс импортирования непустых фрагментов. Импорт завершится, когда кнопка станет цветной.
  3. В системе перевода вы можете пометить существующий перевод как устаревший, добавив !!FUZZY!! в начало текста в окне перевода элемента.

Советы

  1. Миграция будет проще, если вы вначале (до начала разметки маркерами перевода) проверите, похож ли существующий перевод на оригинальный английский текст, и вручную отредактируете структуру страницы: разобьёте абзацы и списки, добавите отсутствующие заголовки (пусть даже пустые).
  2. Полезно проверить перевод в основном интерфейсе перевода — некоторые фрагменты могут быть сразу помечены как устаревшие из-за ошибочной разметки или если были добавлены не все переменные перевода.
  3. Перевод заголовка страницы может быть добавлен вручную. Если вам слабо знаком язык импортируемой страницы, вы можете попробовать найти перевод заголовка страницы с помощью служебной страницы «ссылки сюда» или иногда в перенаправлениях.