diff options
Diffstat (limited to 'documentation/content/ru/books/fdp-primer/weblate/_index.adoc')
-rw-r--r-- | documentation/content/ru/books/fdp-primer/weblate/_index.adoc | 456 |
1 files changed, 456 insertions, 0 deletions
diff --git a/documentation/content/ru/books/fdp-primer/weblate/_index.adoc b/documentation/content/ru/books/fdp-primer/weblate/_index.adoc new file mode 100644 index 0000000000..b3d2bc2392 --- /dev/null +++ b/documentation/content/ru/books/fdp-primer/weblate/_index.adoc @@ -0,0 +1,456 @@ +--- +description: 'Как присоединиться к команде переводчиков FreeBSD и переводить онлайн в Weblate' +next: books/fdp-primer/manual-pages +params: + path: /books/fdp-primer/weblate/ +prev: books/fdp-primer/po-translations +showBookMenu: true +tags: ["weblate", "po", "translations", "tutorial", "quick start"] +title: 'Глава 10. Переводы в Weblate' +weight: 10 +--- + +[[weblate-translations]] += Переводы в Weblate +:doctype: book +:toc: macro +:toclevels: 1 +:icons: font +:sectnums: +:sectnumlevels: 6 +:sectnumoffset: 10 +:partnums: +:source-highlighter: rouge +:experimental: +:images-path: books/fdp-primer/ + +ifdef::env-beastie[] +ifdef::backend-html5[] +:imagesdir: ../../../../images/{images-path} +endif::[] +ifndef::book[] +include::shared/authors.adoc[] +include::shared/mirrors.adoc[] +include::shared/releases.adoc[] +include::shared/attributes/attributes-{{% lang %}}.adoc[] +include::shared/{{% lang %}}/teams.adoc[] +include::shared/{{% lang %}}/mailing-lists.adoc[] +include::shared/{{% lang %}}/urls.adoc[] +toc::[] +endif::[] +ifdef::backend-pdf,backend-epub3[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] +endif::[] + +ifndef::env-beastie[] +toc::[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] + +[[weblate-introduction]] +== Введение + +Эта глава описывает основные шаги для присоединения к команде переводчиков FreeBSD, перевода онлайн в Weblate или офлайн, а также содержит простые рекомендации по переводу, вычитке и тестированию. Основное внимание уделено части, связанной с переводом. + +Исходные документы (статьи и книги) находятся на {main-site}[портале документации]. + +https://weblate.org/en/[Weblate] — это веб-ориентированное программное обеспечение с открытым исходным кодом, специализирующееся на локализации. Проект FreeBSD поддерживает собственный экземпляр. + +[[weblate-become-translator]] +== Как стать переводчиком FreeBSD + +Вот простые шаги для начала перевода статей и книг проекта документации FreeBSD. + +. Создайте учетную запись на https://translate-dev.freebsd.org/[FreeBSD Weblate] с помощью электронной почты или вашего аккаунта GitHub. +. Подписаться на список рассылки {freebsd-translators}. +. Представьтесь и попросите присоединиться к языковой команде. Если языковая команда не существует, попросите создать её. Самопредставление обязательно. Оно увеличивает шансы на одобрение доступа на запись. +. Войдите в https://translate-dev.freebsd.org/[Weblate] с новым аккаунтом. +. Найдите языковую команду и выберите первый документ для перевода. +. Создайте учетную запись в Bugzilla, чтобы отправлять переводы после завершения работы над документом. Проект документации также принимает Pull Requests на GitHub с переводами. + +[WARNING] +==== +Все файлы переводов и документы должны соответствовать https://www.freebsd.org/copyright/freebsd-doc-license/[Лицензии документации FreeBSD]; если это неприемлемо, пожалуйста, не регистрируйтесь и не присылайте никаких исправлений или переводов. +==== + +[[weblate-introduce-yourself]] +== Представьтесь + +Предоставьте краткое самопредставление в рассылке {freebsd-translators}, чтобы начать процесс предоставления доступа. Это позволит координатору языка или администратору выдать необходимые права новому пользователю Weblate для начала перевода. + +Ниже приведен пример того, как может выглядеть такое письмо. + +[.programlisting] +.... +Subject: Self-Introduction: Name and language + +Name: Name (use preferred name) +Location: City, country (optional) +Login: username or email (essential) +Language: Language to translate (essential) +Profession or student status: (optional) +About You: (free format -- info which you feel comfortable sharing with + others: company, school, other affiliation, historical qualifications, other + projects you have worked on, level and type of computer skills, other relevant skills, + etc.) +You and the FreeBSD Project: (free format: other FreeBSD projects of + interest, comments, etc.) +.... + +[[weblate-login]] +== Вход в Weblate + +Откройте https://translate-dev.freebsd.org/[] и `Войдите` (Sign in). + +image::weblate-login.png["Логин в Webleate", 800] + +Используйте имя пользователя, адрес электронной почты или учетную запись GitHub для входа. + +Профиль пользователя содержит ваши предпочтения, имя и адрес электронной почты. Имя и адрес будут использоваться в коммитах; сохраняйте эту информацию актуальной. + +На экземпляре Weblate FreeBSD все переводы будут зафиксированы в https://github.com/freebsd/freebsd-doc-translate[freebsd-doc-translate] (промежуточном репозитории на GitHub), а не напрямую в https://github.com/freebsd/freebsd-doc[freebsd-doc]. Переводчики должны брать файлы PO gettext (`.po`), преобразовывать их в `.adoc` и отправлять через https://bugs.freebsd.org/bugzilla/[Bugzilla] или https://github.com/freebsd/freebsd-doc/pulls[GitHub], чтобы переведённый документ был опубликован или обновлён в портале документации. Подробнее см. в следующих разделах. + +Weblate будет фиксировать изменения ежедневно, как минимум в `freebsd-doc-translate`, если есть новые переведённые строки. + +[[weblate-find-language-team]] +== Найти команду локализации для участия + +Нажмите `Проекты`, выберите `Документация`, затем нажмите `Языки` и увидите все доступные языки. + +image::weblate-languages.png["Языки в Weblate", 500] + +Обратите внимание, что некоторые языки и переведённые документы уже доступны в портале документации и репозиториях. + +Если желаемый язык для перевода недоступен в Weblate, пожалуйста, свяжитесь с https://www.freebsd.org/docproj/translations/[координаторами по языкам], прежде чем запрашивать создание нового языка. Если ответа не последует, обратитесь по адресу: {doceng}. + +[[weblate-translating-online]] +== Перевод онлайн на Weblate + +Перевод документов онлайн оказывается наиболее простым способом перевода документации в FreeBSD, так как позволяет пользователям совместно работать над одним файлом, распределяя нагрузку. + +После того как координатор или администратор предоставит пользователю доступ к определённому языку, кнопка сохранения станет активной, и пользователь сможет начать перевод. + +image::weblate-documents.png["Weblate Документы", 800] +image::weblate-translate.png["Weblate Translate", 800] + +В Weblate есть набор ссылок, ведущих к непосредственному переводу. Перевод далее разделён на отдельные проверки, такие как `Не переведено` или `Требует проверки`. Если весь документ переведён без ошибок, ссылка `Все переводы` всё равно доступна на случай, если потребуется проверка. Также можно воспользоваться полем поиска, чтобы найти конкретную строку или термин. + +В https://docs.weblate.org/en/latest/user/translating.html#translation-projects[документации Weblate] содержится дополнительная информация о переводах, например, сочетания клавиш и другие советы по работе с инструментом перевода. + +[[weblate-translating-offline]] +== Перевод в автономном режиме + +Weblate на FreeBSD использует файлы перевода PO gettext. Пользователи, знакомые с файлами PO gettext, которые хотят переводить офлайн, могут загружать и выгружать переводы на странице документа в Weblate, выбрав пункт в меню `Files`. + +image::weblate-offline.png["Weblate Offline", 800] + +[[weblate-automatic-suggestions]] +== Перевод на основе автоматических предложений + +Языки, использующие Weblate до миграции на Hugo/Asciidoctor, могут использовать эту функцию в Weblate для экономии времени. + +Эта функция Weblate использует память переводов, созданную другими компонентами и проектами на том же сервере. Для этого прежние переводы Weblate сохранены на том же сервере в режиме только для чтения. + +Строки, совпадающие с `100/100` по степени схожести, могут быть скопированы и сохранены напрямую. Остальным строкам потребуется как минимум незначительная корректировка. + +Некоторые примеры: + +image::weblate_automatic_suggestion_01.png["Weblate Автоматические предложения 01", 800] + +С переходом на Hugo/Asciidoctor документы используют UTF-8. Некоторые HTML-сущности следует заменить. Некоторые строки, такие как ссылки, требуют изменений в разметке. + +image::weblate_automatic_suggestion_02.png["Weblate Автоматические предложения 02", 800] + +Ссылки: + +image::weblate_automatic_suggestion_03.png["Weblate Автоматические предложения 03", 800] + +[[weblate-proofreading-qa]] +== Вычитка и проверка качества в Weblate + +Панель документа `Project/Language/Document` отображает статус перевода и состояние строк для этого документа. Эта страница удобна для вычитки и проверки качества. + +image::weblate-revision1.png["Weblate Ревизия 01", 800] + +В этом примере две строки пропустили точку; переход по этой ссылке покажет только те строки, которые нужно пересмотреть/перевести. + +image::weblate-revision2.png["Weblate Ревизия 02", 800] + +Переводчики и рецензенты часто ценят возможность видеть переведённые строки в контексте. + +[[weblate-building]] +== Сборка переведенного документа + +Проект не использует непрерывную интеграцию и непрерывную поставку для сборки переводов. Ведутся исследования по внедрению этой возможности. + +[NOTE] +==== +Следующий пример использует GitHub, так как Weblate также находится на GitHub . Обратите внимание, что этот репозиторий доступен только для чтения, но Pull Requests принимаются. +==== + +Для локальной сборки перевода выполните следующие шаги: + +[[weblate-clone-repositories]] + +[.procedure] +==== +.Процедура: Клонирование необходимых репозиториев +. Клонирование репозитория `freebsd-doc`: ++ +[source, console?prompt=%] +.... +% git clone https://github.com/freebsd/freebsd-doc.git ~/freebsd-doc +.... + +. Клонирование репозитория `freebsd-doc-translate`: ++ +[source, console?prompt=%] +.... +% git clone https://github.com/freebsd/freebsd-doc-translate.git ~/freebsd-doc-translate +.... +==== + +[[weblate-copy-translation]] + +[.procedure] +==== +.Процедура: Копирование файла перевода в `freebsd-doc` + +Имея оба репозитория, скопируйте перевод из `freebsd-doc-translate` в `freebsd-doc`. Пример перевода статьи Руководства для коммиттеров на испанском языке. + +[source, console?prompt=%] +.... +% cp ~/freebsd-doc-translate/documentation/content/es/articles/committers-guide/_index.po \ +~/freebsd-doc/documentation/content/es/articles/committers-guide/ +.... +==== + +[[weblate-translate]] + +[.procedure] +==== +.Процедура: Преобразование файла перевода (`.po`) в `.adoc` + +Перейдите в корень `freebsd-doc`. + +[source, console?prompt=%] +.... +% cd ~/freebsd-doc +.... + +Преобразовать файл `.po` в `.adoc` + +[source, console?prompt=%] +.... +% ./tools/translate.sh documentation es articles/committers-guide +.... + +По умолчанию: только файлы с более чем восьмидесятью процентами переведённых строк будут преобразованы в `.adoc`. + +Чтобы игнорировать это ограничение: + +[source, console?prompt=%] +.... +% KEEP_ENV=0 ./tools/translate.sh documentation es articles/committers-guide +.... + +==== + +Некоторые документы, такие как книги, содержат множество PO-файлов gettext. Всегда копируйте их все при переводе и сборке. Файлы, которые не были переведены, будут преобразованы с исходными (английскими) строками. + +[WARNING] +==== +Структура каталогов является основополагающей. Всегда следуйте структуре каталогов английского документа. +==== + +[[weblate-build]] + +[.procedure] +==== +.Процедура: Сборка переведенного документа + +Наконец, часть сборки. + +Перейдите в каталог документации, так как сборка веб-сайта FreeBSD не требуется. + +[source, console?prompt=%] +.... +% cd documentation +.... + +И соберите документацию. Обратите внимание, что `en` всегда добавляется по умолчанию при сборке любого другого языка. + +[source, console?prompt=%] +.... +% DOC_LANG=es make +.... + +Эта команда соберет только английскую и испанскую документацию портала FreeBSD. Результат будет сохранен в каталоге [.filename]#public#; откройте его в браузере. Обратите внимание, что некоторые индексные файлы могут перенаправлять браузер на онлайн-страницу. + +Еще один хороший вариант — собрать и предоставить контент с помощью встроенного веб-сервера Hugo: + +[source, console?prompt=%] +.... +% DOC_LANG=es make run +.... + +По умолчанию веб-сервер прослушивает `localhost`; чтобы изменить это поведение, укажите нужный IP-адрес в значении параметра `BIND`. + +[source, console?prompt=%] +.... +% DOC_LANG=es make run BIND=192.168.15.10 +.... + +Это собирает и предоставляет содержимое с помощью встроенного веб-сервера Hugo, оставляя его открытым, и при любых изменениях файлов автоматически пересобирает их. +==== + +Чтобы внести необходимые изменения в перевод, выполните следующие шаги для повторной синхронизации всех компонентов: + +- Исправьте строку перевода на https://translate-dev.freebsd.org/[Weblate]. +- Заставьте Weblate зафиксировать изменения в разделе `Document/Manage/Commit`. +- Синхронизируйте локальный репозиторий Weblate `freebsd-doc-translate` с помощью команды `git pull origin main`. +- Скопируйте перевод снова в `freebsd-doc`. +- Преобразуйте перевод в .adoc с помощью скрипта `./tools/translate.sh`. +- Hugo пересоберет файл и не будет собирать весь набор, если использовалась команда `make run`, или повторно выполнит `make`. + +[IMPORTANT] +==== +Повторяйте предыдущие шаги столько раз, сколько необходимо, пока документ не будет готов к публикации. +==== + +Глава crossref:doc-build[doc-build-rendering,Процесс сборки документации] содержит информацию о преобразовании в HTML и PDF. + +[[weblate-submitting-translations]] +== Отправка переводов + +Пример отправки обновления для статьи на бразильском португальском Committer's Guide. + + +[[weblate-git-repo-status]] + +[.procedure] +==== +.Проверка репозитория + +После выполнения шагов из раздела crossref:weblate[weblate-building,Сборка переведенного документа], перейдите в корневую директорию `freebsd-doc` и просмотрите, что будет включено в коммит. Для просмотра списка изменяемых файлов и различий в их содержимом: + +[source, console?prompt=%] +.... +% git status +% git diff +.... + +Просмотрите вывод, и если какие-либо файлы, не связанные с обновлением перевода Руководства коммиттера, были изменены или добавлены, выполните соответствующее действие по их откату или удалению соответственно, прежде чем продолжить. + +Всегда включайте файл PO gettext (`.po`) и переведенный документ в Hugo/Asciidoctor (`.adoc`). +==== + +[[weblate-git-new-branch]] + +[.procedure] +==== +.Создать новую ветку и зафиксировать изменения + +Создайте еще одну ветку для разделения работы, что поможет при будущих обновлениях в локальном репозитории. + +[source, console?prompt=%] +.... +% git checkout -b committers-guide_pt-br +.... + +Зарегистрировать локальный коммит. + +[source, console?prompt=%] +.... +% git add . +% git commit +.... + +Пример сообщений коммитов для переводов: + +[.programlisting] +.... +pt-br/committers-guide: Sync with en XXXXXXX +.... + +Где `XXXXXXX` — это ревизия man:git[1], хранящаяся в репозитории Weblate в файле [.filename]#~/freebsd-doc-translate/revision.txt#. + +Если это первый перевод статьи: + +[.programlisting] +.... +Add Korean translation of Leap Seconds article +.... + +После выполнения коммита будет отображено сообщение, если man:git[1] ранее не был настроен. Следуйте инструкциям и укажите имя и адрес электронной почты, используемые в Weblate. Этот шаг важен для правильного учета вклада участников. + +Затем проверьте весь коммит, просмотрите изменения, а также имя автора и адрес электронной почты. + +[source, console?prompt=%] +.... +% git show +.... +==== + +[[weblate-git-patch-submit]] + +[.procedure] +==== +.Сгенерировать патч + +Далее создайте файл man:git-format-patch[1]. + +[source, console?prompt=%] +.... +% git format-patch main +0001-pt-br-committers-guide-Sync-with-en-XXXXXXX.patch +.... +==== + +Прикрепите патч [.filename]#0001-pt-br-committers-guide-Sync-with-en-XXXXXXX.patch# к отчёту об ошибке в https://bugs.freebsd.org/bugzilla/[FreeBSD Bugzilla]. + +Включите следующую информацию в отчёт: + +[[weblate-bugzilla-fields]] +.Поля Bugzilla +[cols="1,1", frame="none", options="header"] +|=== +| Поле +| Значение + +| *продукт (product)* +| Documentation + +| *Компонент (Component)* +| Books & Articles + +| *Сводка (Summary)* +| Тот же текст, что и в локальном коммите + +| *Описание (Description)* +| Укажите, что инструкции в этом руководстве были выполнены, включая вычитку и другие необходимые шаги. +Включите сведения, которые могут помочь с анализом и продвижением отчёта. + + +| *СС* (Необязательно) +| Если в языке есть координаторы, укажите их адреса электронной почты в поле CC. +|=== + +Для тех, кто знаком с man:git[1] и GitHub: вместо отправки исправления через https://bugs.freebsd.org/bugzilla/[Bugzilla], можно использовать https://github.com/freebsd/freebsd-doc/pulls[запрос на включение изменений (pull request) в GitHub] (укажите имя и адрес, которые вы используете в Weblate). + +https://github.com/freebsd/freebsd-doc/ является вторичным зеркалом. Изменения в дереве `doc` могут вносить только люди, имеющие права на коммит (`doc commit bit`). + +Когда переводчики продолжают присылать качественные исправления, другие коммиттеры могут выдвинуть их для получения прав на запись (extref:{committers-guide}[бит коммита для документации, committer.types] для переводов), учётной записи FreeBSD и сопутствующих привилегий. + +Список extref:{contributors}[дополнительных участников FreeBSD, contrib-additional] включает некоммиттеров, чьи изменения были закоммичены в дерево `doc`. + +Если вы сомневаетесь в каком-либо действии, напишите в {freebsd-translators}. + +[[weblate-faq]] +== FAQ (Часто задаваемые Вопросы) + +[[weblate-copyrights]] +=== Нужно ли переводить все сообщения об авторских правах? + +Каждая языковая команда решает этот вопрос для своего языка; в команде `pt-br` (бразильский португальский) было решено не переводить эти сообщения. |