Path: blob/main/documentation/content/ru/books/fdp-primer/weblate/_index.adoc
18098 views
---
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` (бразильский португальский) было решено не переводить эти сообщения.