Доповнення

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

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

../_images/addons.png

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

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

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

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

Цей додаток автоматично вмикається, коли у складнику з’являються нові рядки.

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

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

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

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

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

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

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

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

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

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

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

Мовна однорідність

Гарантує, що всі складники в межах одного проєкту містять однаковий переклад однакових рядків.

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

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

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

Підказка

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

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

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

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

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

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

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

../_images/addon-discovery.png

Дивись також

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

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

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

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

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

Приклади:

Автоматично додавати мітку до нових рядків

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

NOT has:label

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

recent

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

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

language:en AND key:changelogs/

Прапорці перекладу для додавання

read-only

Дивись також

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

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

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

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

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

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

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

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

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

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

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

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

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

locale/{{ language_code }}.json

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

Дивись також

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

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

Оновлює коментар у заголовку файла 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»

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

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

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

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

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

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

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

Примітка

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

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

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

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

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

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

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

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

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

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

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

Ви можете вибрати один з таких режимів:

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

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

  • Для мови

  • Для файлу

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Підказка

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

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

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

Дозволяє налаштовувати поведінку виводу 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

Обробка перекладів перед внесенням до сховища

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

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