Додатки

Нове в версії 2.19.

Додатки надають змогу налаштувати і автоматизувати процедуру перекладу. Адміністратори можуть додавати додатки і керувати ними за допомогою меню КеруватиДодатки для кожного відповідного складника перекладу для адміністраторів.

Підказка

Ви також можете налаштувати додатки за допомогою настанов з розділів API, DEFAULT_ADDONS або install_addon.

../_images/addons.png

Вбудовані додатки

Автоматичний переклад

Нове в версії 3.9.

Ідентифікатор додатка

weblate.autotranslate.autotranslate

Налаштування

mode

Режим автоматичного перекладу

Доступні варіанти:

suggest — додати пропозицію

translate — додати як переклад

fuzzy — додати як такий, що потребує редагування

filter_type

Фільтр пошуку

Доступні варіанти:

all — усі рядки

nottranslated — неперекладені рядки

todo — рядки, які потребують дій

fuzzy — рядки, які позначено для редагування

check:inconsistent — не пройдено перевірку: різні переклади одного рядка

auto_source

Джерело автоматичного перекладу

Доступні варіанти:

others — іншиі складники перекладу

mt — комп’ютерний переклад

component

Складники

Щоб отримати доступ до додаткових складників, увімкніть спільний внесок у пам’ять перекладів для проєкту.

engines

Рушії комп’ютерного перекладу

threshold

Поріг оцінки

Перемикачі

оновлення складників, щоденно

Автоматично перекладає рядки за допомогою машинного перекладу або інших складників.

Причини вмикання:

  • У складнику з’явилися нові рядки.

  • Автоматичне щомісячне вмикання для усіх складників. Можна налаштувати за допомогою BACKGROUND_TASKS.

CDN локалізації JavaScript

Нове в версії 4.2.

Ідентифікатор додатка

weblate.cdn.cdnjs

Налаштування

threshold

Порогове значення перекладу

Порогове значення для включення перекладів.

css_selector

Вибір CSS

Засіб вибору CSS для виявлення придатних до локалізації елементів.

cookie_name

Назва куки мови

Назва куки, яка зберігатиме налаштування мови.

files

Видобути рядки з файлів HTML

Список назв файлів у поточному репозиторії або віддалених адрес, які слід обробити для отримання придатних до перекладу рядків.

Перемикачі

щоденна обробка, обробка репозиторію після внеску, обробка репозиторію після оновлення

Оприлюднює переклади у мережах надання даних для використання у локалізації JavaScript або HTML.

Можна скористатися для локалізації статичних сторінок HTML або завантаження локалізації у коді JavaScript.

Створює унікальну адресу для вашого складника, яку ви можете включати до сторінок HTML для їхньої локалізації. Див. Переклад HTML і JavaScript за допомогою CDN Weblate, щоб дізнатися більше.

Вилучити порожні рядки

Нове в версії 4.4.

Ідентифікатор додатка

weblate.cleanup.blank

Налаштування

Цей додаток не має налаштувань.

Перемикачі

обробка репозиторію після внеску, обробка репозиторію після оновлення

Вилучає рядки без перекладу з файлів перекладу.

Використовуйте це, якщо не хочете, щоб порожні рядки з’являлись у файлах перекладу (наприклад, коли у бібліотеці локалізації їх показано як пропущені рядки, а не повернено до початкового рядка).

Очищення файлів перекладу

Ідентифікатор додатка

weblate.cleanup.generic

Налаштування

Цей додаток не має налаштувань.

Перемикачі

обробка репозиторію до оновлення, обробка репозиторію після оновлення

Оновіть всі файли перекладу, щоб вони відповідали одномовному основному файлу. Для більшості форматів файлів це означає видалення застарілих перекладацьких ключів, які вже відсутні у основному файлі.

Додавання нових мов

Ідентифікатор додатка

weblate.consistency.languages

Налаштування

Цей додаток не має налаштувань.

Перемикачі

щоденна обробка, обробка репозиторію після додавання

Забезпечує використання однорідного набору мов для усіх складників проєкту.

Пошук пропущених мов відбувається кожні 24 години і при додаванні нових мов у Weblate.

На відміну від інших, цей додаток стосується усього проєкту.

Підказка

Автоматичний переклад нових доданих рядків за допомогою Автоматичний переклад.

Виявлення складників

Ідентифікатор додатка

weblate.discovery.discovery

Налаштування

match

Регулярний вираз для зіставлення файлів перекладу

file_format

Формат файлу

name_template

Налаштувати назву складника

base_file_template

Визначити назву основного файлу для одномовного перекладу

Лишіть порожнім для двомовних файлів перекладу.

new_base_template

Визначити основний файл для нового перекладу

Ім’я файлу, використане для створення нових перекладів. Для gettext виберіть pot-файл.

language_regex

Фільтр мов

Регулярний вираз для фільтрування файлів перекладу під час сканування за маскою файлів.

copy_addons

Клонувати додатки з основного складника до нових

remove

Видалити складники для неіснуючих файлів

confirm

Я підтверджую, що всі вище наведені збіги виглядають правильними

Перемикачі

обробка репозиторію після оновлення

Автоматично додає або вилучає складники до проєкту на основі змін файла у системі керування версіями.

Вмикається під час кожного оновлення у системі керування версіями. Загалом, подібне до команди керування import_project. Один зі способів стежити за декількома складниками перекладу у одній системі керування версіями.

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

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

../_images/addon-discovery.png

Підказка

Додаток виявлення складників використовує внутрішні адреси. Це зручний спосіб використовувати однакові налаштування системи керування версіями для кількох складників одночасно. Пов’язані складники використовують локальний репозиторій головного складника шляхом вписування weblate://проєкт/основний-складник до поля Репозиторій з джереламиКеруванняПараметриСистема керування версіями) кожного відповідного складника. Це також надає змогу заощадити час на налаштування та ресурси системи.

Дивись також

Розмітка шаблонів

Масове редагування

Нове в версії 3.11.

Ідентифікатор додатка

weblate.flags.bulk

Налаштування

q

Запит

state

Стан для встановлення

Доступні варіанти:

-1 — не змінювати

10 — потребує редагування

20 — перекладено

30 — затверджено

add_flags

Додати наступні прапорці перекладу

remove_flags

Вилучити наступні прапорці перекладу

add_labels

Мітки для додавання

remove_labels

Мітки для видалення

Перемикачі

оновлення складника

Надає можливість пакетного редагування прапорців, міток або стану рядків.

Автоматизуйте встановлення міток для нових рядків — почніть з пошукового запиту NOT has:label і додавайте мітки, аж доки для усіх рядків буде встановлено потрібні мітки. Ви також можете виконувати будь-які інші автоматизовані дії для метаданих Weblate.

Приклади:

Автоматичне встановлення міток нових рядків

Запит щодо пошуку

NOT has:label

Мітки для додавання

recent

Позначення усіх записів журналу змін Файли метаданих крамниці застосунків як придатних лише для читання

Запит щодо пошуку

language:en AND key:changelogs/

Додати наступні прапорці перекладу

read-only

Позначити незмінені переклади як такі, що потребують редагування

Нове в версії 3.1.

Ідентифікатор додатка

weblate.flags.same_edit

Налаштування

Цей додаток не має налаштувань.

Перемикачі

обробка модуля після створення

Кожного разу, коли новий перекладний рядок імпортується з VCS, і він збігається із початковим рядком, його буде позначено як такий, що потребує редагування у Weblate. Це особливо корисно для форматів файлів, які включають початкові рядки, навіть ті, які не перекладено.

Підказка

Можливо, ви також захочете зробити строгішою перевірку Переклад не змінено, додавши до Прапорці перекладу прапорець strict-same.

Дивись також

Стани перекладу

Позначити нові джерельні рядки як „потребують редагування“

Ідентифікатор додатка

weblate.flags.source_edit

Налаштування

Цей додаток не має налаштувань.

Перемикачі

обробка модуля після створення

Щоразу, коли новий джерельний рядок імпортується з VCS, він позначається, що потребує редагування в Weblate. Таким чином, ви можете легко фільтрувати та редагувати початкові рядки, написані розробниками.

Дивись також

Стани перекладу

Позначити нові переклади як такі, що потребують редагування

Ідентифікатор додатка

weblate.flags.target_edit

Налаштування

Цей додаток не має налаштувань.

Перемикачі

обробка модуля після створення

Кожного разу, коли новий перекладний рядок імпортується з VCS, він позначається як такий, що потребує редагування в Weblate. Таким чином, ви можете легко фільтрувати та редагувати джерельні рядки, створені розробниками.

Дивись також

Стани перекладу

Генератор статистики

Ідентифікатор додатка

weblate.generate.generate

Налаштування

filename

Назва створеного файла

template

Вміст створеного файлу

Перемикачі

обробка репозиторію до внеску

Створює файл з докладними відомостями щодо стану перекладу.

Ви можете скористатися шаблоном Django одразу для назви файла і вмісту. Докладний опис розмітки можна знайти у розділі Розмітка шаблонів.

Наприклад, створення файла резюме для кожного перекладу:

Назва створеного файла

locale/{{ language_code }}.json

Вміст
{
   "language": "{{ language_code }}",
   "strings": "{{ stats.all }}",
   "translated": "{{ stats.translated }}",
   "last_changed": "{{ stats.last_changed }}",
   "last_author": "{{ stats.last_author }}",
}

Дивись також

Розмітка шаблонів

Створення псевдолокалей

Ідентифікатор додатка

weblate.generate.pseudolocale

Налаштування

source

Джерельні рядки

target

Цільовий переклад

prefix

Префікс рядка

suffix

Суфікс рядка

Перемикачі

оновлення складників, щоденно

Автоматично створює переклад додаванням префікса і суфікса до початкових рядків.

Псевдолокалі корисні для пошуку рядків, які не приготовано до локалізації. Результат досягається зміною усіх придатних до перекладу початкових рядків таким чином, щоб рядок, який не змінено, було просто виявити під час запуску програми із відповідними рядками псевдолокалі.

Також можна виконати пошук рядків, локалізовані відповідники яких можуть не вписуватися у компонування вікна програми.

Підказка

Ви можете використовувати справжні мови для перевірки, але у Weblate доступні виділені псевдолокалі — en_XA and ar_XB.

Підказка

Ви можете скористатися цим додатком для того, щоб почати переклад новою локаллю наявної мови або подібною до іншої мовою. Щойно ви додасте переклад до складника, перейдіть до цього додатка. Приклад: якщо у вас вже є локаль fr, і ви хочете започаткувати переклад локаллю fr_CA, просто встановіть fr як джерело, fr_CA як ціль і лишіть поля префікса і суфікса порожніми.

Вилучте додаток після заповнення параметрів перекладу, щоб запобігти зміні перекладів після копіювання з боку Weblate.

Перекладачі в коментарі

Ідентифікатор додатка

weblate.gettext.authors

Налаштування

Цей додаток не має налаштувань.

Перемикачі

обробка репозиторію до внеску

Оновлює коментар у заголовку файла PO так, щоб до нього було включено імена перекладачів та роки перекладу.

Заголовок файла PO виглядатиме якось так:

# Michal Čihař <michal@cihar.com>, 2012, 2018, 2019, 2020.
# Pavel Borecki <pavel@example.com>, 2018, 2019.
# Filip Hron <filip@example.com>, 2018, 2019.
# anonymous <noreply@weblate.org>, 2019.

Оновити змінну ALL_LINGUAS у файлі «configure»

Ідентифікатор додатка

weblate.gettext.configure

Налаштування

Цей додаток не має налаштувань.

Перемикачі

обробка репозиторію після додавання, щоденна обробка

Оновлює змінну ALL_LINGUAS у configure, configure.in або будь-яких файлах configure.ac при додаванні нового перекладу.

Налаштувати виведення gettext

Ідентифікатор додатка

weblate.gettext.customize

Налаштування

width

Обтікання довгих рядків

Типово gettext переносить рядки на 77-у символі та на символах перенесення рядків, з параметром –no-wrap перенесення виконується лише на символах перенесення рядків.

Доступні варіанти:

77 — Перенесення рядків на 77 символах на символах перенесення рядків

65535 — переносити рядки на символах розриву рядків

-1 — без перенесення рядків

Перемикачі

обробка після завантаження збережених даних

Уможливлює налаштовування виведення gettext, наприклад, перенесення рядків.

Пропонує такі варіанти дій:

  • Перенесення рядків на 77 символах на символах перенесення рядків

  • Перенесення рядків лише після символу нового рядку

  • Без перенесення рядків

Примітка

Типово gettext переносить рядки на 77-у символі та на символах перенесення рядків, з параметром --no-wrap перенесення виконується лише на символах перенесення рядків.

Оновити файл LINGUAS

Ідентифікатор додатка

weblate.gettext.linguas

Налаштування

Цей додаток не має налаштувань.

Перемикачі

обробка репозиторію після додавання, щоденна обробка

Оновлює файл LINGUAS, коли додано новий переклад.

Генерувати mo-файли

Ідентифікатор додатка

weblate.gettext.mo

Налаштування

path

Шлях до згенерованого MO-файлу

Якщо не вказано, використовуватиметься розташування PO-файлу.

Перемикачі

обробка репозиторію до внеску

Автоматично створює mo-файл для кожного зміненого po-файла.

Розташування створеного файла MO можна налаштувати. У полі для нього використовується мова розмітки.

Оновити файли po, порівнявши із pot (msgmerge)

Ідентифікатор додатка

weblate.gettext.msgmerge

Налаштування

previous

Зберігати попередні msgid перекладених рядків

no_location

Видаліть місця перекладених рядків

fuzzy

Використовувати нечіткий збіг

Перемикачі

обробка репозиторію після оновлення

Оновлює усі файли PO (які налаштовано у Маска файлів) так, щоб вони відповідали файлу POT (який налаштовано у Шаблон для нових перекладів), за допомогою msgmerge.

Спрацьовує щоразу, коли нові зміни витягуються із основного репозиторію даних, щоб вони відповідали ref:component-new_base. Ви можете налаштувати більшість параметрів командного рядка msgmerge за допомогою налаштувань додатка.

Сполучити Git подання

Ідентифікатор додатка

weblate.git.squash

Налаштування

squash

Сполучення подань

Доступні варіанти:

all — усі внески в один

language — окремо для кожної мови

file — окремо для кожного файла

author — окремо для кожного автора

append_trailers

Дописати кінцевики для об’єднаного повідомлення про внесок

Рядки-кінцевики подібні до заголовків повідомлень електронної пошти за RFC 822. Їх дописують в кінці повідомлення про внесок у довільній формі, наприклад, «Co-authored-by: …».

commit_message

Повідомлення щодо подання

Це повідомлення про внесок буде використано замість поєднаних повідомлень про внески із об’єднаних внесків.

Перемикачі

обробка репозиторію після внеску

Об’єднати Git подання перед відправленням змін.

Внески Git можна об’єднувати до запису змін з використанням одного з таких режимів:

Нове в версії 3.4.

  • Всі подання в одне

  • Для мови

  • Для файлу

Нове в версії 3.5.

  • Для кожного автора

Початкові повідомлення про внесок зберігаються, але авторство втрачається, якщо не позначено пункт За автором або повідомлення про внесок не налаштовано на його включення.

Нове в версії 4.1.

Початкові повідомлення про внески можна, якщо хочеться, перевизначити нетиповим повідомленням про внесок.

Трейлери (рядки внеску, подібні до Co-authored-by: ...) можна, якщо хочеться, вилучити з початкових повідомлень про внесок і дописати наприкінці об’єднаного повідомлення про внесок. Це також створює належний запис авторських прав Co-authored-by: для кожного перекладача.

Налагодити виведення JSON

Ідентифікатор додатка

weblate.json.customize

Налаштування

sort_keys

Сортувати ключі JSON

indent

Відступи JSON

style

Стиль відступів JSON

Доступні варіанти:

spaces — пробіли

tabs — табуляції

Перемикачі

обробка після завантаження збережених даних

Дозволяє налагодити виведення JSON, наприклад відступи та упорядкування.

Форматує файл властивостей Java

Ідентифікатор додатка

weblate.properties.sort

Налаштування

Цей додаток не має налаштувань.

Перемикачі

обробка репозиторію до внеску

Впорядковує файл властивостей Java.

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

Нове в версії 3.7.

Ідентифікатор додатка

weblate.removal.comments

Налаштування

age

Дні для збереження

Перемикачі

щоденно

Вказати термін вилучення застарілих коментарів.

Це може бути корисним для вилучення застарілих коментарів, які могли перестати бути актуальними. Користайтеся цією можливістю обережно, оскільки те, що коментар застарів, не означає, що він перестав бути важливим.

Видалити застарілу пропозицію

Нове в версії 3.7.

Ідентифікатор додатка

weblate.removal.suggestions

Налаштування

age

Дні для збереження

votes

Поріг голосування

Поріг для видалення. Це поле не впливає при вимкненні голосування.

Перемикачі

щоденно

Встановити строк вилучення пропозицій.

Це може бути дуже корисним у поєднанні із голосуванням за пропозиції (див. Експертне рецензування) для вилучення пропозицій, які не отримують достатньої кількості позитивних голосів протягом вказаного часового проміжку.

Оновити файли RESX

Нове в версії 3.9.

Ідентифікатор додатка

weblate.resx.update

Налаштування

Цей додаток не має налаштувань.

Перемикачі

обробка репозиторію після оновлення

Оновити усі файли перекладу, щоб вони відповідали одномовному основному файлу. Невикористані рядки вилучаються, а нові додаються як копії початкового рядка.

Підказка

Скористайтеся Очищення файлів перекладу, якщо ви хочете лише вилучити застарілі переклади.

Налагодити виведення YAML

Нове в версії 3.10.2.

Ідентифікатор додатка

weblate.yaml.customize

Налаштування

indent

Відступи YAML

width

Обтікання довгих рядків

Доступні варіанти:

80 — переносити рядок після 80 знаків

100 — перенесення рядків після 100 знаків

120 — перенесення рядків після 120 знаків

180 — перенесення рядків після 180 знаків

65535 — без перенесення рядків

line_break

Розриви рядків

Доступні варіанти:

dos — DOS (\r\n)

unix — UNIX (\n)

mac — MAC (\r)

Перемикачі

обробка після завантаження збережених даних

Дозволяє налаштовувати поведінку виводу YAML, наприклад, довжину рядка або нові рядки.

Налаштовування списку додатків

Список додатків налаштовується WEBLATE_ADDONS. Щоб додати додаток, просто до цього параметра включіть абсолютну назву класу.

Написання додатка

Ви також можете написати власні додатки — створіть підклас від weblate.addons.base.BaseAddon, щоб визначити метадані додатка і реалізувати зворотний виклик, який виконуватиме обробку.

Дивись також

Розробка додатків

Виконання скриптів з додатка

Додатками також можна скористатися для виконання зовнішніх скриптів. Цю можливість інтегровано до Weblate, але тепер вам потрібно написати певний код обгортки вашого скрипту до стану додатка.

#
# Copyright © 2012 - 2021 Michal Čihař <michal@cihar.com>
#
# This file is part of Weblate <https://weblate.org/>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.
#
"""Example pre commit script."""


from django.utils.translation import gettext_lazy as _

from weblate.addons.events import EVENT_PRE_COMMIT
from weblate.addons.scripts import BaseScriptAddon


class ExamplePreAddon(BaseScriptAddon):
    # Event used to trigger the script
    events = (EVENT_PRE_COMMIT,)
    # Name of the addon, has to be unique
    name = "weblate.example.pre"
    # Verbose name and long descrption
    verbose = _("Execute script before commit")
    description = _("This addon executes a script.")

    # Script to execute
    script = "/bin/true"
    # File to add in commit (for pre commit event)
    # does not have to be set
    add_file = "po/{{ language_code }}.po"

Настанови щодо встановлення наведено у розділі Нетипові перевірки якості, додатки та автоматичні виправлення.

Скрипт виконується у поточному каталозі, яким є кореневий каталог репозиторію системи керування версіями для будь-якого заданого складника.

Крім того, можна скористатися такими змінними середовища:

WL_VCS

Використана система керування версіями.

WL_REPO

Адреса основного репозиторію із кодом.

WL_PATH

Абсолютний шлях до репозиторію системи керування версіями.

WL_BRANCH

Нове в версії 2.11.

Гілка репозиторію, яку налаштовано у поточному складнику.

WL_FILEMASK

Маска файлів для поточного складника.

WL_TEMPLATE

Назва файла шаблона для одномовного перекладу (може бути порожньою).

WL_NEW_BASE

Нове в версії 2.14.

Назва файла, який використовується для створення перекладів (може бути порожньою).

WL_FILE_FORMAT

Формат файла у поточному складнику.

WL_LANGUAGE

Мова поточного оброблюваного перекладу (недоступна для скриптів керування на рівні складника).

WL_PREVIOUS_HEAD

Попередній HEAD при оновленні (доступно, лише якщо запускається скрипт обробки після оновлення).

WL_COMPONENT_SLUG

Нове в версії 3.9.

Ідентифікатор складника, який використовується для побудови адреси.

WL_PROJECT_SLUG

Нове в версії 3.9.

Ідентифікатор проєкту, який використовується для побудови адреси.

WL_COMPONENT_NAME

Нове в версії 3.9.

Назва складника.

WL_PROJECT_NAME

Нове в версії 3.9.

Назва проєкту.

WL_COMPONENT_URL

Нове в версії 3.9.

Адреса складника.

WL_ENGAGE_URL

Нове в версії 3.9.

Адреса роботи з проєктом.

Обробка репозиторію після оновлення

Можна скористатися для оновлення файлів перекладу, коли міняється джерело у основному репозиторії системи керування версіями. Слід пам’ятати, що Weblate «бачить» лише файли, які внесено до системи керування версіями, тому вам доведеться внести зміни до репозиторію у самому скрипті.

Наприклад, з Gulp ви можете зробити це за допомогою такого коду:

#! /bin/sh
gulp --gulpfile gulp-i18n-extract.js
git commit -m 'Update source strings' src/languages/en.lang.json

Обробка перекладів перед внесенням до репозиторію

Скористайтеся скриптом подання даних (commit) для автоматичного внесення змін до перекладу перед тим, як його буде внесено до репозиторію.

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