Help:Extension:Translate/Page translation administration/ru

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

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

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

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

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

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

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

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

Source language. There is also a translation page with the language code of the source language: it doesn't contain the extra tags and other markup related to page translation which are used in the translatable page source. This page is not linked from the interface, but it is handy for example when you want to transclude the page (typically for translatable templates) or export it.

Closed translation requests. Some translatable pages have a content that is only interesting for a certain period of time. For example announcements and regular status updates, like the Wikimedia monthly highlights. You can keep those pages around with translations, but hide them from the translation interface. This does not prevent further translations to the pages, but it greatly reduces the chance that a user accidentally starts translating the page. Discouraging and its reversion are done from Special:PageTranslation.

Prioritizing languages. You can also define a list of languages that you specifically want translations into; leaving the language list empty is interpreted as all languages allowed. The page will behave like a discouraged page (see previous paragraph) for the languages not in the priority list and, when translating into them, translators will be given a notice. You can also prevent the translation in other languages, say if translations are actually used elsewhere and you won't be able to use them but in some languages.

Grouping. It is possible to group related pages together. These groups work like all the other message groups. They have their own statistics and contain all the messages of the subgroups: in this case translatable pages. This functionality is currently in Special:AggregateGroups. Aggregate message groups are collapsed by default in Special:LanguageStats in the group selector at Special:Translate.

Moving. You can move translatable pages as you would move any other page. When moving you can choose whether you want to move any non-translation subpages too. The move uses a background job to move the many related pages. While the move is in progress, it is not possible to translate the page. Completion is noted in the page translation log.

Deleting. Like move, deletion is accessed from the normal place. You can delete either the whole translatable page, or just one translation page, from the delete button on it. Deletion will also delete all the related translation unit pages. As in move, a background process will delete the pages over time and completion is noted in the page translation log. Deletion requires "delete" and "pagetranslation" permission, but individual translation unit pages can always be deleted with standard "delete".

Reverting. Similarly, reverting incorrect edits works as usual (including the rollback button): you only have to edit the affected translation unit and the translation page will be updated as well. To find the edit to the translation unit from the edit to the translation page, just click the "" link for the editor and look for an edit at a similar time.

Protecting. It is possible to protect the translatable page. Translation pages cannot be protected, nor does the protection of the translatable page extend to them. To prevent further edits to translations, you should add the source language as only priority language and disable translations to other languages, see prioritizing languages above. Together these two actions effectively prevent changes to both the source page and translation pages with its translation unit pages. It is possible to protect individual translation unit pages, though it is not advisable.

Removal from translation. It is also possible to unmark a page for translation. First you need to remove all  tags from the page. Then you can use Special:PageTranslation or follow the link in the top of translatable page to remove it from translation. This will remove any structure related to page translation, but leave all the existing pages in place, freely editable. This action is not recommended.

Анатомия доступных для перевода страниц
The translation of a translatable page will produce many pages, which all together compose the translatable page in the broadest sense: their title is determined by the title of the translatable :


 * (the source page)
 * (the translation pages, plus a copy of the source page without markup)
 * (all the translation unit pages)

In addition to this, there are the translation page template and the sources of translation units, extracted from the source page and stored in the database. The system keeps track of which versions of the source page contain translation tags and which version of them have been marked for translation.

Every time a translation unit page is updated, the system will also regenerate the corresponding translation page. This will result in two edits. The translation unit page edit is hidden by default in recent changes and can be shown by choosing show translations from the translation filter. Any action other than editing (like deleting and moving) the translation unit pages will not trigger the regeneration of the corresponding translation page.

If you need the copy of the source page without markup, e.g. to be pasted in another wiki without Translate, the text will be displayed or saved.
 * identify the source language code (for English, en ) and visit ;
 * click the "" button to reach an address like this and replace  with   in the address bar, press enter:

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


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

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

Parsing order. Beware, the  tags work differently from other tags, because they do not go through the parser. This should not cause problems usually, but may if you are trying something fancy. In more detail, they are parsed before any other tags like &lt;pre> or &lt;source>, with the exception of &lt;nowiki> which is recognized by the Translate extension in some circumstances (such as rendering a page) but not in others (such as generating the list on Special:PageTranslation of pages containing &lt;translate>). If you want to have the literal expression "&lt;translate>" in the source text, you should escape it like "&amp;lt;translate>".

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

To make this work, the extension has a simple whitespace handling: whitespace is preserved, except if an opening or closing  tag is the only thing on a line. In that case the newline after the opening tag or before the closing tag is eaten. This means that they don't cause extra space in the rendered version of the page.

Variables. It is possible to use variables similar to template variables. The syntax for this is. For translators these will show up only as, and in translation pages will automatically be replaced by the value defined in the translatable page (so they are global "constants" across all its translation pages). Variables can be used to hide untranslatable content in the middle of a translation unit. It also works for things like numbers that need to be updated often. You can update the number in all translations by changing the number in the translatable page source and re-marking the page. You do not need to invalidate translations, because the number is not part of the translation unit pages.

Примеры разметки
Below are listed some alternatives and suggested ways to handle different kinds of wiki markup.

{| 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.

Миграция на систему перевода страниц
If you have been translating pages before using the page translation system, you might want to migrate the pages to the new system, at least the ones you expect to have new translations and want statistics for. You will probably have existing templates for language switching and maybe different page naming conventions.

You can start migration by cleaning up, tagging and marking the source page. You can keep the existing language-switching templates while you migrate the old translations. If your pages follow the language code subpages naming convention, they will be replaced with the source text after marking the source page for translation, but you'll still be able to access translations from history.

This manual task has been partly automated by Special:PageMigration, which shows the source and target units besides each other and allows the user to adjust the units by providing a set of features mentioned later in this page.

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

 * 1) Go to 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.