Help:Extension:Translate/Page translation administration/ru

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

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

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

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

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

Тегирование. Когда текст так или иначе готов для перевода, кто-нибудь может пометить переводимые части, заключив их в теги  и добавить на страницу панель со списком языков. Эта плашка отображает все переводы данной страницы с актуальными процентами завершённости. Другой индикации наличия переводов нет. Смотрите далее о том, как выполнять тегирование. Система заметит появление этих тегов и добавит ссылку, помечающую страницу для перевода. Также она позаботится о том, чтобы вы, к примеру, не сохранили страницу с незакрытыми тегами. Переводимая страница появится на странице Special:PageTranslation как ready for marking.

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

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

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

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

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

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

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

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

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

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

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

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


 * (исходная страница)
 * (переводимые страницы, плюс копия исходной страницы без разметки)
 * (все страницы модуля перевода)

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

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

Если вам нужна копия исходной страницы без разметки, например, чтобы вставить в другую вики без Перевода текст будет отображен или сохранен.
 * укажите исходный код языка (для английского - en ) и откройте ;
 * кликните "" чтобы получить адрес, такой как этот и замените   на   в адресной строке, и нажмите enter:

Сегментация
Основные принципы:


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

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

Порядок разбора. Осторожно, теги  работают не так, как другие тэги, потому что они не проходят через парсер. Обычно это не вызывает проблем, но может, если вы примените некоторую фантазию. Если детально, то они парсятся перед любыми другими тэгеми, такими как &lt;pre> или &lt;source>, за исключением &lt;nowiki>, который распознается расширением Перевод в некоторых обстоятельствах (таких как отображение страницы), а в некоторых - не распознается (таких как генерация списка на странице Special:PageTranslation или страниц, содержащих &lt;translate>). если вы хотите именть выражение "&lt;translate>" в исходном тексте, вы должны экранировать его например так "&amp;lt;translate>".

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

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

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

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

{| class=wikitable Перевод с добавлением языкового суффикса: Category:Cars/fi (рекомендуется)
 * Категории
 * Categories can be added in two ways: in the translation page template or in one of the translation units. If you have the categories in the translation page template, all translations will end up in the same category. If you have categories inside translation units, you should teach the users a naming scheme. On the right we show two possible schemes which are independent of the technical means to adopt them.

[...] &lt;/translate>


 * Названия категорий не переводятся (так же, как и названия страниц).
 * Одна категория для каждого языка.
 * Page translation could be used for the category itself: the categories would be linked together and the headers would be translated (but not the name of the category in links and such).

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

Плохо: == &lt;translate>Culture&lt;/translate> ==
 * Все переводы помещются в ту же самую категорию (годится, если языков немного, и очень неудобно, если много).
 * Названия категорий не переводятся (можно оставить их «как есть» в шаблоне перевода)
 * Заголовки
 * Headers can in principle be tied to the following paragraph, but it is better to have them separated. This way someone can quickly translate the table of contents before going into the contents. When tagging headers, it is important to include the header markup inside the tags, or MediaWiki will no longer identify them properly, for example when trying to edit a specific section of the source page. The markup also immediately gives translators a context: they are translating a header.
 * Headers can in principle be tied to the following paragraph, but it is better to have them separated. This way someone can quickly translate the table of contents before going into the contents. When tagging headers, it is important to include the header markup inside the tags, or MediaWiki will no longer identify them properly, for example when trying to edit a specific section of the source page. The markup also immediately gives translators a context: they are translating a header.

Плохо: &lt;translate>== Culture ==&lt;/translate> Рекомендуемая сегментация: &lt;translate>

Culture
Lorem ipsum dolor. &lt;/translate>

&lt;translate> &lt;/translate>
 * Изображения
 * Images that do contain language specific content like text should include the full image syntax in an unit. Other images can only tag the description with optional hint in message documentation of the page after it has been marked.
 * Images that do contain language specific content like text should include the full image syntax in an unit. Other images can only tag the description with optional hint in message documentation of the page after it has been marked.


 * Ссылки
 * Links can be included in the paragraph they are inside. This allows changing the link label, but also changing the link target to a localized version if one exists.
 * Links can be included in the paragraph they are inside. This allows changing the link label, but also changing the link target to a localized version if one exists.

If the target page is (or should be) also translatable, you should link to it by prepending  to its title. Only the link label will need to be translated, because this automatically redirects users to the translation page in their own interface language, as selected for instance via the UniversalLanguageSelector. However, to achieve a constant behavior the syntax must be used for all links.

Because headers are translated, you cannot rely on the automatically generated id's for headers. You can add your own anchors. To have them outside of the translation template you need to break up the page into multiple  tag pairs around each header you want to have an anchor to. Внутренние ссылки: &lt;translate> Helsinki is capital of Finland. &lt;/translate>

Ссылки на переводимые страницы: &lt;translate> It has marvelous beaches with a lot of seagulls. &lt;/translate> Внешние ссылки: &lt;translate> PHP (website) is a programming language. &lt;/translate> Ссылки в рамках той же страницы: &lt;translate>

Culture
Lorem ipsum dolor.

...

For more about food, see section about culture. &lt;/translate>

&lt;translate> &lt;/translate> &lt;translate> &lt;/translate>
 * Списки
 * Lists can get long, so might want to split them into multiple parts with for example five items or less in each as follows. Do so only if the items are sufficiently independent to be translate separately in all languages, don't create "lego messages": for instance, you must avoid to split a single sentence in multiple units, or to separate logically dependent parts which may affect each other (with regard to punctuation or style of the list, for instance). To split a list, use -tags. Do not insert new lines as this will break the HTML output.
 * Lists can get long, so might want to split them into multiple parts with for example five items or less in each as follows. Do so only if the items are sufficiently independent to be translate separately in all languages, don't create "lego messages": for instance, you must avoid to split a single sentence in multiple units, or to separate logically dependent parts which may affect each other (with regard to punctuation or style of the list, for instance). To split a list, use -tags. Do not insert new lines as this will break the HTML output.
 * General principles
 * Headings
 * Images
 * Tables
 * Categories
 * Links
 * Templates


 * Числа
 * With numbers and other non-linguistic elements you may want to pull the actual number out of translation and make it a variable. This has multiple benefits:
 * With numbers and other non-linguistic elements you may want to pull the actual number out of translation and make it a variable. This has multiple benefits:

&lt;translate> Income this month  EUR &lt;/translate> Note that this prevents the translators from localising the number by doing currency conversion. The  call makes sure the number is formatted correctly in the target language.
 * Вы можете обновлять числовые значения без изменения статуса перевода.
 * Память переводов будет работать лучше, если будет игнорировать изменения чисел.


 * Шаблоны
 * Templates have varying functions and purposes, so the best solution depends on what the template is for. If the template is not a part of longer paragraph, it should be left out, unless it has parameters that need to be translated. If the template has no linguistic content itself, you don't need to do anything for the template itself.
 * For an example of templates translated with page translation, see Template:Extension-Translate. To use this template, you need to have another template similar to Template:Translatable navigation template, because you cannot include the template by anymore. This is not yet provided by the Translate extension itself, but that is in the plans.
 * For an example of templates translated with page translation, see Template:Extension-Translate. To use this template, you need to have another template similar to Template:Translatable navigation template, because you cannot include the template by anymore. This is not yet provided by the Translate extension itself, but that is in the plans.

Another way is to use the unstructured element translation to translate the template, but then the language of the template will follow the user's interface language, not the language of the page he is viewing.
 * }

Изменение исходного текста
Основные принципы:


 * Avoid changes
 * Make the changes as isolated as possible
 * Do not add translation unit markers yourself

Unit markers. When page is marked for translation, the system will update the translatable page source and add unique identifiers for each translation unit. See example below. These markers are crucial for the system, which uses them to track changes to each translation unit. You should never add unit markers yourself. The markers are always on the line before the unit; or, if it starts with a header, after the first header on the same line. The different placement for headers is needed to keep section editing working as expected.

&lt;translate>

Birds
&lt;!--T:1--> Birds are animals which....

&lt;!--T:2--> Birds can fly and... &lt;/translate> Changing unit text. Changing is the most common operation for translation units. You can fix spelling mistakes, correct grammar or do other changes to the unit. When re-marking the page for translation, you will see the difference in the unit text. The same difference is also shown to translators when they update their translations. For simple spelling fixes and other cases where you don't want the existing translations to be removed from translation pages, you can avoid invalidating them: translators will still see the difference if they ever update the translation for any reason.

Adding new text. You can freely add new text inside  tags. Make sure that there is one empty line between adjacent units, so that the system will see it as a new unit. You can also add  tags around the new text, if it is not inside existing   tags. Again, do not add unit markers yourself, the system will do it.

Deleting text. You can delete whole units. If you do so, also remove the unit marker.

Splitting units. You can split existing units by adding an empty line in the middle of a unit, or by placing  tags so that they split the unit. You can either keep the unit marker with the first unit or remove it altogether. In the first case, translators see the old text when updating the old translation. If you removed the unit marker, both units will behave as if no translation ever existed, after the page is re-marked for translation.

Merging units. If you merge units, you have to remove at least all but one unit marker.

Moving units. You can move units around without invalidating translations: just move the unit marker together with the rest of the unit.

Before marking the new version of the page for translation, ensure that the best practices are followed, especially that translators get a new translation unit if the content has changed. Also make sure that there are no unnecessary changes to prevent wasting translators time. If the source page is getting many changes, it may be worthwhile to wait for it to stabilize, and push the work for translators only after that.

Unused unit translations are not deleted automatically, but that should not cause trouble.

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

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

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

Как пользоваться?

 * 1) Перейдите на Special:PageMigration
 * 2) Enter the title of the page and the language code. For example, "Help:Special pages" & "fr"
 * 3) The source text which was divided into units by Translate and the imported translations will be shown besides each other with some initial alignment.
 * 4) Use the actions available for each unit to manually do the remaining alignment
 * 5) As translated units are editable, do required manual improvements (for add translation variables, fix links and markup, etc.)
 * 6) Click on the "" button. This will create pages under the Translations namespace of the form  . The old translations have been imported into Translate.
 * 7) Else, if you wish to abort the importing, click on the 'Cancel' button.

Доступные действия
Each row consisting of source and target unit has a set of action icons. They are used as follows:
 * 1) Add: Clicking on this action icon adds a new empty unit below the current one. Use this feature if you want to split the current unit and need a unit below.
 * 2) Swap: Clicking on this action icon swaps the content of the current unit with the unit below it. You can use this feature when the units get aligned improperly due to different ordering of sections. Or when you need to drag a unit below or above. In either case, remember it swaps with the unit below and does not create any additional units.
 * 3) Delete: Clicking on this action icon completely removes the corresponding target unit from the page and shifts the remaining target units up by one unit. Use this to remove unwanted content like code or imported translations which are present completely in the source language. Note: this irrevocable action (in the current session).

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

 * 1) If you mark a page for translation and immediately go to the special page and try to import translations, you may get an error message like "". This is because FuzzyBot didn't fuzzy the messages on the old page yet: the tool won't find an edit by FuzzyBot on the translation page. In this case, simply wait for FuzzyBot to do its job. Once an edit is seen, you can proceed with the imports.
 * 2) Please wait for some time after pressing the "" button. While the button background remains gray, there is an ongoing process of importing non-empty units. Once the button becomes colored again, the import is completed.

Советы

 * 1) Migration will be easier if you first (before the mark to translation) check whether existing translations are similar to the original English text, and manually edit the structure of pages: break paragraphs and lists, add the missing headers (even if empty).
 * 2) Will be useful to check the result in the core translation interface - some of the units may be immediately marked as obsolete because of errors markup or if not all of the translation variables was added.
 * 3) Translation of the page title will have to be added manually. If you do not know very well the language of the imported page, you can try to find the translation of the page title among the "links here" or sometimes in redirects. Note: Please don't translate the namespace, keep it untranslated.