Проекты перевода

Организация переводов

Weblate организует переводимое содержимое VCS проекта/компонентов в древовидную структуру. Вы можете дополнительно организовать компоненты внутри проекта с помощью категорий.

  • Объектом нижнего уровня является Настройки проекта, который должен содержать все переводы, принадлежащие вместе (например, перевод приложения в нескольких версиях и/или сопроводительной документации).

  • Средний уровень дополнительно создаётся с помощью Категория. Категории могут быть вложены в более сложную структуру.

  • На уровне выше, Настройки компонента, который фактически является компонентом для перевода, вы определяете используемый репозиторий СКВ и маску файлов для перевода.

  • Выше Настройки компонента находятся отдельные переводы, которые Weblate обрабатывает автоматически, когда файлы переводов (соответствующие Маска файла, определённой в Настройки компонента) появляются в репозитории системы контроля версий.

Weblate поддерживает широкий набор форматов перевода (как двуязычных, так и одноязычных), поддерживаемых набором инструментов Translate Toolkit, смотрите раздел Форматы файлов локализации.

Примечание

Вы можете использовать клонированные репозитории СКВ совместно с помощью Внутренние URL-адреса Weblate. Использование этой функции настоятельно рекомендуется, когда у вас есть много компонентов, использующих одну и ту же СКВ. Это повышает производительность и уменьшает необходимое дисковое пространство.

Добавление проектов и компонентов перевода

В зависимости от ваших разрешений вы можете создавать новые проекты и компоненты перевода. Для пользователей с разрешением Добавление новых проектов их создание всегда разрешено, а если ваш экземпляр использует тарифные планы (как, например, https://hosted.weblate.org/, смотрите раздел Выставление счетов), вы также можете создавать их на основе разрешений из вашего плана, установленных учётной записью пользователя, управляющего тарификацией.

Подсказка

Чтобы предоставить каждому пользователю разрешение на создание новых проектов, создайте новый Автоматическое назначение команд для команды «Создатели проекта».

Вы можете просмотреть свой текущий тарифный план на отдельной странице:

../_images/user-billing.webp

Создание проекта можно инициировать оттуда или из меню на панели навигации. Чтобы завершить добавление проекта перевода, заполните основную информацию о нем:

../_images/user-add-project.webp

После создания проекта вы попадаете непосредственно на страницу проекта:

../_images/user-add-project-done.webp

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

Из системы контроля версий

Создать компонент из удалённого репозитория системы контроля версий.

Из уже существующего компонента

Создать дополнительный компонент на основе уже существующего, только с другими файлами.

Дополнительная ветка

Создать дополнительный компонент на основе уже существующего, только для другой ветки.

Отправить файлы перевода

Загрузить файлы перевода в Weblate в случае, если у вас нет системы контроля версий или вы не хотите интегрировать её с Weblate. Позже вы сможете обновить содержимое через веб-интерфейс или API REST для Weblate.

Перевести документ

Загрузите отдельный документ или файл перевода и переведите его.

Начать с нуля

Создать пустой проект перевода и добавить строки вручную.

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

Сначала вам нужно указать наименование и расположение репозитория:

../_images/user-add-component-init.webp

На следующей странице вам будет представлен список обнаруженных переводимых ресурсов:

../_images/user-add-component-discovery.webp

На последнем этапе просмотрите информацию о компоненте перевода и укажите дополнительные сведения:

../_images/user-add-component.webp

Настройки проекта

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

Это основные атрибуты для настройки, они предоставляют переводчикам информацию о проекте:

Название проекта

Более подробное наименование проекта для отображения.

См. также

PROJECT_NAME_RESTRICT_RE

URL-плашка

Название проекта, подходящее для указания его в URL-адресе.

Веб-сайт проекта

URL-адрес, по которому переводчики могут найти дополнительную информацию о проекте.

Это обязательный параметр, если он не отключён с помощью WEBSITE_REQUIRED.

Инструкции для переводчиков

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

Использовать совместную память переводов

Использовать ли совместно используемую память переводов, подробнее смотрите в разделе Совместная память переводов.

Значение по умолчанию можно изменить с помощью DEFAULT_SHARED_TM.

Вносить вклад в совместную память переводов

Помещать ли переводы в совместно используемую память переводов, подробнее смотрите в разделе Совместная память переводов.

Это также влияет на то, можно ли использовать проект в качестве источника для Автоматический перевод.

Значение по умолчанию можно изменить с помощью DEFAULT_SHARED_TM.

Примечание

Эта опция недоступна на Hosted Weblate, она включается вместе с Использовать совместную память переводов.

Автоматическая очистка памяти переводов

Добавлено в версии 5.13.

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

Сопоставление основано на одинаковой исходной строке, компоненте, контексте и паре исходный/целевой язык. Загруженные файлы памяти переводов не затрагиваются.

Контроль доступа

Настройка контроля доступа для каждого проекта, подробнее смотрите в разделе Контроль доступа к проекту.

Значение по умолчанию можно изменить с помощью DEFAULT_ACCESS_CONTROL.

Принудительная двухфакторная аутентификация

Добавлено в версии 5.7.

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

Включить рецензии

Включение процесса рецензирования переводов, смотрите раздел Выделенные рецензенты.

Включить рецензии исходных строк

Включение процесса рецензирования исходных строк, смотрите раздел Рецензирование исходных строк.

Фильтр качества перевода

Добавлено в версии 5.13.

Политика фиксации определяет, какие переводы включаются при фиксации изменений в системе контроля версий. Эта настройка доступна на уровне проекта и поддерживает следующие параметры:

  • Фиксировать все переводы независимо от качества: Все переводы будут зафиксированы, включая помеченные как «На правку» или не проверенные.

  • Пропускать переводы, помеченные как требующие правки: Будут зафиксированы только переводы, не имеющие состояния «требует правки», «требует переписывания» или «требует проверки».

  • Включать только утверждённые переводы: Будут зафиксированы только переводы, утверждённые рецензентом. Этот параметр требует, чтобы Включить рецензии был включён.

Включить обработчики

Следует ли использовать неаутентифицированные Обработчики уведомлений для этого репозитория.

Псевдонимы языка

Определяет отображение кодов языков при импорте переводов в Weblate. Используйте этот параметр, если коды языков в ваших репозиториях не согласуются друг с другом, а вы хотите, чтобы в Weblate они были представлены единообразно; или если вы хотите использовать нестандартные имена файлов перевода.

Типовым случаем использования псевдонимов, например, является отображение американского английского языка на английский: en_US:en

Несколько отображений должны разделяться запятой: en_GB:en,en_US:en

Использование нестандартного кода: ru_FOO:ru

Подсказка

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

Вторичный язык

Добавлено в версии 5.11.

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

При желании его можно использовать в качестве источника для машинного перевода.

Флаги перевода

Добавлено в версии 5.11.

Настройка проверок качества и другого поведения Weblate’а, смотрите раздел Настройка поведения с помощью флагов.

Настройки компонента

Компонент — это группировка каких-то сущностей для перевода. Вы вводите расположение репозитория системы контроля версий и маску файлов, определяющую, какие файлы вы хотите переводить, а Weblate автоматически извлекает код из этого репозитория и находит все соответствующие файлы для перевода.

Некоторые примеры типовых конфигураций можно найти в разделе Форматы файлов локализации.

Примечание

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

Weblate легко справляется с переводами с 10000 строк, но с такими объёмами труднее разделять работу между несколькими переводчиками и координировать их действия.

Если определение языка для перевода отсутствует, создаётся пустое определение с именем вида «ru_RU (generated)». Вы должны скорректировать определение и сообщить об этом авторам Weblate, чтобы недостающие языки могли быть включены в следующий выпуск.

Компонент содержит все важные параметры для работы с системой контроля версий, а также для получения из неё переводов:

Название компонента

Подробное наименование компонента, используемое для его отображения.

Плашка компонента

Название компонента, подходящее для указания его в URL-адресе.

Проект компонента

Настройки проекта, которому принадлежит компонент.

Система контроля версий

Используемая система контроля версий, подробнее смотрите в разделе Интеграция с системой контроля версий.

Репозиторий исходного кода

Репозиторий системы контроля версий, из которого извлекаются изменения.

См. также

Для получения более подробной информации о том, как указывать URL-адреса, смотрите раздел Доступ к репозиториям.

Подсказка

Это может быть либо реальный URL-адрес системы контроля версий, либо адрес вида weblate://проект/компонент, указывающий на то, что репозиторий должен совместно использоваться с другим компонентом. Для получения более подробной информации обратитесь к разделу Внутренние URL-адреса Weblate.

URL для отправки в репозиторий

URL-адрес репозитория, используемый для отправки. Поведение этого зависит от Система контроля версий, и это более подробно описано в Отправка изменений из Weblate.

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

См. также

См. Доступ к репозиториям для получения более подробной информации о том, как указывать URL-адрес репозитория, и Отправка изменений из Weblate для получения более подробной информации об отправке изменений из Weblate.

Просмотрщик репозитория

URL-адрес браузера репозитория, используемый для отображения исходных файлов (расположение используемых сообщений). Если пусто, такие ссылки генерироваться не будут. Вы можете использовать Шаблонная разметка.

Например, для ссылок на GitHub, используйте что-то наподобие: https://github.com/WeblateOrg/hello/blob/{{branch}}/{{filename}}#L{{line}}

В случае, если ваши пути указываются относительно другого каталога (путь содержит ..), вы можете удалить ведущий каталог фильтром parentdir (смотрите раздел Шаблонная разметка): https://github.com/WeblateOrg/hello/blob/{{branch}}/{{filename|parentdir}}#L{{line}}

См. также

URL экспортированного репозитория

URL-адрес, по которому экспортируются изменения, сделанные Weblate. Это важно, когда Непрерывный перевод не используется, или когда есть необходимость вручную объединять изменения. Вы можете использовать Экспортер Git для автоматизации этого для Git-репозиториев.

Ветка репозитория

Какую ветку извлекать из системы контроля версий и где искать переводы.

Для связанных репозиториев, использующих Внутренние URL-адреса Weblate, этот параметр контролируется связанным компонентом, которому принадлежит репозиторий. Связанные дочерние компоненты используют значение из этого компонента.

Ветка для отправки

Ветка, в которую отправлять изменения, оставьте пустой для использования параметра Ветка репозитория.

Для связанных репозиториев, использующих Внутренние URL-адреса Weblate, этот параметр контролируется связанным компонентом, которому принадлежит репозиторий. Связанные дочерние компоненты используют значение из этого компонента.

Примечание

Этот параметр игнорируется для Mercurial и Subversion.

For Gerrit, this selects the target branch for the review request. Leave it empty to review against Ветка репозитория. Use the short branch name, not refs/heads/<branch>, refs/for/<branch>, or Gerrit push options such as %submit.

Маска файла

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

Например, po/*.po или locale/*/LC_MESSAGES/django.po.

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

Маска файла снимка экрана

Эта функция позволяет обнаруживать и обновлять снимки экрана с помощью масок файлов снимков экрана, используя пути из репозитория VCS. Это работает на уровне компонента и требует использования звёздочки «*» для замены имени файла снимка экрана.

Разрешённые форматы: WebP, JPEG, PNG, APNG и GIF.

Примечание:

  1. Маска файла и маска файла снимка экрана не связаны между собой. Настройте их отдельно.

  2. Связывание обнаруженного снимка экрана в компоненте с конкретным ключом перевода — это ручная работа.

Например:

Предположим, ваш репозиторий VCS имеет такую структуру:

component_A
└── docs
    ├── image1.png
    └── image2.jpg

Для component_A вы хотите разрешить обнаружение и обновление снимков экрана PNG. Вы должны установить маску файла снимка экрана для component_A как comment_A/docs/*.png. Это означает, что любые изображения PNG в документации component_A можно обнаружить и обновить. Итак, если вы хотите обновить файл image1.png, новый предоставленный вами снимок экрана должен иметь имя image1.png, соответствующее существующему имени файла, и храниться в component_A/docs/.

Одноязычный базовый файл

Базовый файл, содержащий определения строк для Одноязычные компоненты.

Правка базового файла

Разрешать ли редактирование строк в Одноязычный базовый файл.

Файл промежуточного языка

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

Если задано, исходные строки основываются на этом файле, но все остальные языки основываются на Одноязычный базовый файл. Если строка не переведена на исходный язык, перевод на другие языки запрещён. Это обеспечивает Контроль качества исходных строк.

Шаблон для новых переводов

Базовый файл, используемый для создания новых переводов.

  • Оставьте это поле пустым для большинства одноязычных форматов. Обычно они могут начаться с пустого файла.

  • Выберите файл .pot с файлами GNU gettext PO.

  • Выберите пустой файл без переводов, если он у вас есть.

  • Выберите Одноязычный базовый файл для одноязычных форматов, которым требуется полный набор ключей.

  • Для перевода документа выберите Одноязычный базовый файл.

  • Выберите любой файл перевода для других.

  • В большинстве случаев файл шаблона может совпадать с базовым файлом.

Подсказка

Для многих одноязычных форматов Weblate по умолчанию начинает с пустого файла. Используйте это, если вы хотите, чтобы при создании нового перевода все строки были с пустым значением.

Формат файла

Формат файла перевода, см. также Форматы файлов локализации.

Параметры формата файла

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

Адрес для сообщения об ошибке в исходной строке

Адрес электронной почты, используемый для отправки сообщений об ошибках в исходных строках. На этот адрес также будут отсылаться уведомления о любых сделанных в Weblate комментариях к исходной строке.

При использовании формата GNU gettext PO (переносимый объект) этот адрес также сохраняется Weblate в заголовке файла Report-Msgid-Bugs-To.

Не показывать совпадения со словарём

Скрывает панель словаря и её совпадения в редакторе перевода для этого компонента. При включении предложения словаря для этого компонента не вычисляются, а панель Словаря (включая действие «Добавить термин в словарь») скрывается в редакторе.

Примечание

Самоссылки словаря всегда исключаются из совпадений, даже когда этот параметр отключён.

Разрешить распространение перевода

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

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

Значение по умолчанию можно изменить с помощью DEFAULT_TRANSLATION_PROPAGATION.

Включить предложения

Принимать ли предложения по переводу этого компонента.

Голосование по предложению

Включает голосование за предложения, смотрите раздел Голосование по предложению.

Автоматически принимать предложения

Автоматически принимать предложения, за которые проголосовали, смотрите раздел Голосование по предложению.

Флаги перевода

Настройка проверок качества и другого поведения Weblate’а, смотрите раздел Настройка поведения с помощью флагов.

Принудительная проверка

Список проверок, которые не могут быть отклонены.

Лицензия перевода

Лицензия на перевод (не обязательно должна совпадать с лицензией на исходный код).

Лицензионное соглашение участника

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

Markdown можно использовать для форматирования текста или вставки ссылок.

Добавление нового перевода

Как обрабатывать запросы на создание новых языков. Доступные варианты:

Связаться с кураторами

Пользователь может выбрать желаемый язык, а кураторы проекта получат об этом уведомление. Добавление (или не добавление) языка в репозиторий зависит от них.

Указать URL на инструкции по переводу

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

Создать новый язык

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

Запретить добавление новых переводов

У пользователя не будет возможности начать новый перевод.

Подсказка

Администраторы проекта могут добавлять новые переводы, даже если это отключено здесь, когда это возможно (либо Шаблон для новых переводов, или же формат файла поддерживает запуск с пустого файла).

Управление строками

Добавлено в версии 4.5.

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

В двуязычных форматах строки обычно извлекаются из исходного кода (например, с помощью xgettext) и добавление новых строк через Weblate должно быть отключено (они всё равно удалятся, когда вы в следующий раз будете обновлять свои файлы перевода). В Weblate вы можете управлять строками для каждого перевода отдельно, это не будет принудительно поддерживать набор исходных строк для всех языков одинаковым.

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

Подсказка

Возможно, для одноязычных форматов следует включить Правка базового файла вместе с «Управление строками».

Стиль кода языка

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

Примечание

Weblate распознает любой языковой код при анализе файлов перевода, следующие настройки влияют только на создание новых файлов.

Умолчание, основанное на формате файла

Зависит от формата файла, для большинства форматов используется стиль POSIX.

Стиль POSIX, использующий подчёркивание как разделитель

Обычно используется gettext’ом и связанными с ним инструментами, выдаёт коды языков вида pt_BR.

Стиль POSIX, использующий подчёркивание как разделитель, с маленькой буквы

Обычно используется gettext’ом и связанными с ним инструментами, выдаёт коды языков вида pt_BR.

Стиль POSIX, использующий подчеркивание как разделитель и включающий код страны

Код языка в стиле POSIX, включающий код страны, даже если в этом нет необходимости (например, ru_RU).

Стиль POSIX, использующий подчёркивание в качестве разделителя, включая код страны, с маленькой буквы

Код языка в стиле POSIX, включая код страны, даже если он не нужен (нижний регистр) (например, cs_cz).

Стиль BCP, использующий в качестве разделителя дефис

Обычно используется на веб-платформах, выдаёт коды языков вида pt-BR.

Стиль BCP, использующий в качестве разделителя дефис и включающий код страны

Код языка в стиле BCP, включающий код страны, даже если в этом нет необходимости (например, ru-RU).

Стиль BCP с использованием дефиса в качестве разделителя, устаревшие коды языков

Использует устаревшие коды для обозначения китайского языка и стиля BCP.

Стиль BCP с использованием дефиса в качестве разделителя, в нижнем регистре

Обозначение в стиле BCP, все в нижнем регистре (например, cs-cz).

Стиль метаданных App Store от Apple

Стиль подходит для загрузки метаданных в магазине приложений Apple.

Стиль метаданных Google Play

Стиль подходит для загрузки метаданных в магазине Google Play.

Стиль Android

Используется только в приложениях для Android, выдаёт коды языков вида pt-rBR.

Стиль Linux

Локали, используемые в Linux, используют устаревшие коды для обозначения китайского языка и стиля POSIX.

Стиль Linux, в нижнем регистре

Локали, используемые Linux, используют устаревшие коды для китайского языка и нотацию в стиле POSIX. В нижнем регистре.

Стиль слияния

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

Сменить базу

Перебазирует коммиты Weblate поверх вышестоящего репозитория при обновлении. Это обеспечивает чистую историю без дополнительных коммитов слияния.

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

Возможно, вам потребуется включить принудительную отправку, выбрав Git c принудительной отправкой (force push) как Система контроля версий, особенно при отправке в другую ветку.

Объединить

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

Слияние без fast-forward

Изменения исходного репозитория объединяются в репозиторий Weblate с выполнением фиксации слияния каждый раз (даже если возможна быстрая перемотка вперёд). Каждое изменение Weblate будет отображаться как коммит слияния в репозитории Weblate.

Значение по умолчанию можно изменить с помощью DEFAULT_MERGE_STYLE.

Сообщения коммита, добавления, удаления, слияния, дополнения и запроса объединения

Сообщение, используемое при коммите перевода, смотрите раздел Шаблонная разметка.

Значение по умолчанию можно изменить с помощью DEFAULT_ADD_MESSAGE, DEFAULT_ADDON_MESSAGE, DEFAULT_COMMIT_MESSAGE, DEFAULT_DELETE_MESSAGE, DEFAULT_MERGE_MESSAGE, DEFAULT_PULL_MESSAGE.

Отправлять при коммите

Должны ли закоммиченные изменения автоматически отправляться в вышестоящий репозиторий. При включении отправка инициируется после того, как Weblate зафиксирует изменения в своём базовом репозитории (см. Отложенные коммиты). Чтобы фактически включить отправку, Repository push URL также должен быть настроен.

Для связанных репозиториев, использующих Внутренние URL-адреса Weblate, этот параметр контролируется связанным компонентом, которому принадлежит репозиторий. Связанные дочерние компоненты используют значение из этого компонента.

Возраст изменений для коммита

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

Для связанных репозиториев, использующих Внутренние URL-адреса Weblate, этот параметр контролируется связанным компонентом, которому принадлежит репозиторий. Связанные дочерние компоненты используют значение из этого компонента.

Значение по умолчанию можно изменить с помощью COMMIT_PENDING_HOURS.

Подсказка

Существуют и другие ситуации, когда незавершённые изменения могут быть зафиксированы, см Отложенные коммиты.

Блокировать при ошибке

Блокирует компонент (и связанные компоненты, смотреть раздел Внутренние URL-адреса Weblate) при первой неудачной отправке или слиянии в его вышестоящий репозиторий или извлечения из него. Это позволяет избежать добавления новых конфликтов, которые пришлось бы разрешать вручную.

Компонент будет автоматически разблокирован, как только в репозитории не останется ошибок.

Для связанных репозиториев, использующих Внутренние URL-адреса Weblate, этот параметр контролируется связанным компонентом, которому принадлежит репозиторий. Связанные дочерние компоненты используют значение из этого компонента.

Исходный язык

Язык, используемый для исходных строк. Изменяйте этот параметр, если вы переводите не с английского.

Подсказка

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

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

Языковой фильтр

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

Примечание

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

Несколько примеров фильтров:

Описание фильтра

Регулярное выражение

Только выбранные языки

^(cs|de|es)$

Исключить языки

^(?!(it|fr)$).+$

Выбрать только двубуквенные языковые коды

^..$

Исключить неязыковые файлы

^(?!(blank)$).+$

Включить все файлы (по умолчанию)

^[^.]+$

Ключевой фильтр

Добавлено в версии 5.8.

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

Несколько примеров фильтров:

Описание фильтра

Регулярное выражение

Только выбранные ключи

^(one|two|other)$

Исключить журналы изменений магазинов приложений

^(?!changelogs/.*$).+$

Фильтровать строки с префиксами

^translatable

Примечание

Этот фильтр доступен только для компонентов с одноязычными форматами файлов.

Регулярное выражение вариантов

Регулярное выражение, используемое для определения вариантов строки, смотрите раздел Варианты строк.

Примечание

Большинство полей могут отредактировать владельцы или администраторы проекта через интерфейс Weblate.

Вторичный язык

Добавлено в версии 5.11.

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

При желании его можно использовать в качестве источника для машинного перевода.

Подсказка

Если оставить этот параметр пустым, он будет унаследован из проекта.

Приоритет

Переводчикам вначале предлагаются компоненты с большим приоритетом.

Изменено в версии 4.15: Теперь это также влияет на порядок совпадающих терминов словаря.

Ограниченный доступ

Примечание

Эта функция недоступна на Hosted Weblate.

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

Ограничение доступа на уровне компонента или списка компонентов накладывает разрешение на доступ к компоненту, независимо от разрешений на уровне проекта. Вам придётся явно предоставить доступ к нему. Это можно сделать, предоставив доступ новой группе пользователей и включив в неё пользователей, или используя стандартные группы управления доступом настраиваемый или частный.

Значение по умолчанию можно изменить установкой параметра в DEFAULT_RESTRICTED_COMPONENT.

Подсказка

Это также относится и к администраторам проектов — пожалуйста, убедитесь, что после переключения статуса вы не потеряете доступ к компоненту.

Разделяемые компоненты

Вы можете выбрать дополнительные проекты в которых какой-либо компонент будет отображаться. Полезно для разделяемых библиотек, которые используются в нескольких проектах.

Примечание

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

Использовать в качестве словаря

Добавлено в версии 4.5.

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

Словари лучше всего подходят для:

  • Обеспечения согласованного использования терминов (например, надписей в интерфейсе, названий продуктов).

  • Совместное использование предпочтительных переводов в нескольких компонентах или проектах.

  • Поддержка переводчиков определениями и контекстом.

Примечание

Словари не предназначены для обычных переводов — они предназначены только для управления терминами.

Вы можете настроить, как он будет отображаться, с помощью Цвет словаря.

Словарь будет доступен во всех проектах, определённых Разделяемые компоненты.

Рекомендуется включить Управление строками для словарей, чтобы разрешить добавление в них новых слов.

См. также

Словарь

Цвет словаря

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

См. также

Словарь

Категория

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

Шаблонная разметка

Weblate использует простой язык разметки в нескольких местах, где требуется отрисовка текста. Он основан на The Django template language, поэтому может быть довольно мощным.

В настоящее время он используется:

В шаблонах компонентов доступны следующие переменные:

{{ language_code }}

Код языка

{{ language_name }}

Название языка

{{ component_name }}

Название компонента

{{ component_slug }}

Плашка компонента

{{ project_name }}

Название проекта

{{ project_slug }}

Плашка проекта

{{ url }}

URL-адрес перевода

{{ filename }}

Имя файла перевода

{{ stats }}

Статистика перевода, у неё есть дополнительные атрибуты, примеры ниже.

{{ stats.all }}

Общее количество строк

{{ stats.fuzzy }}

Количество строк, требующих рецензирования

{{ stats.fuzzy_percent }}

Процент строк, требующих рецензирования

{{ stats.translated }}

Количество переведённых строк

{{ stats.translated_percent }}

Процент переведённых строк

{{ stats.allchecks }}

Количество строк с неудачными проверками

{{ stats.allchecks_percent }}

Процент строк с неудачными проверками

{{ author }}

Автор текущего коммита, доступна только в области действия коммита.

{{ addon_name }}

Имя исполняемой в данный момент надстройки, доступна только в сообщении о коммите надстройки.

Следующие переменные доступны в шаблонах браузера репозитория или редактора:

{{branch}}

текущая ветка

{{line}}

строка в файле

{{filename}}

имя файла, также с помощью фильтра parentdir вы можете удалить ведущие части, например {{filename|parentdir}}

Подсказка

В некоторых местах могут быть доступны дополнительные переменные, см. Обнаружение компонентов.

Вы можете объединять их с фильтрами:

{{ component|title }}

Можете использовать условия:

{% if stats.translated_percent > 80 %}Well translated!{% endif %}

Для замены символов доступен дополнительный тег:

{% replace component "-" " " %}

Вы можете объединить его с фильтрами:

{% replace component|capfirst "-" " " %}

Также есть дополнительный фильтр для работы с именами файлов:

Directory of a file: {{ filename|dirname }}
File without extension: {{ filename|stripext }}
File in parent dir: {{ filename|parentdir }}
It can be used multiple times: {{ filename|parentdir|parentdir }}

…и другие возможности шаблонов Django.

Скорость импорта

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

Оптимизация настроек

Конфигурация по умолчанию полезна для тестирования и отладки Weblate, в то же время для установки в рабочую среду в неё необходимо внести некоторые коррективы. Многие из параметров довольно сильно влияют на производительность. Для получения более подробной информации обратитесь к разделу Рабочая среда, особенно обратите внимание на следующие темы:

Проверка ограничения по ресурсам

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

  • Проверьте объём свободной памяти, наличие кэшированных операционной системой файлов перевода значительно повысит производительность.

  • Если нужно обработать множество строк, дисковые операции могут стать узким местом — диск насилуется как Weblate’ом, так и базой данных.

  • Улучшить производительность фоновых задач могут помочь дополнительные ядра процессора (смотрите раздел Фоновые задачи с использованием Celery).

Отключение ненужных проверок

Некоторые проверки качества могут быть довольно дорогими, и если в них нет необходимости, при импорте можно сэкономить некоторое время, если их пропустить. Информацию по их настройке смотрите в описании параметра CHECK_LIST.

Автоматическое создание компонентов

Если в вашем проекте есть десятки файлов перевода (например, для разных доменов gettext или частей приложений Android), вы можете импортировать их автоматически. Этого можно добиться либо из командной строки, используя import_project или import_json, либо установив надстройку Обнаружение компонентов.

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

Для команд управления вам необходимо создать проект, который будет содержать все компоненты, а затем запустить import_project или import_json.