Dodatki

Add-ons provide ways to customize and automate the translation workflow. Admins can add and manage add-ons from the ManageAdd-ons menu of each respective translation project or component. Add-ons can be also installed site-wide in Interfejs zarządzania.

Podpowiedź

Możesz także skonfigurować dodatki używając API, DEFAULT_ADDONS lub install_addon.

../_images/addons.webp

Events that trigger add-ons

Add-on installation

Triggered when add-on is being installed.

Component update

Triggered whenever a change happens in a component such as:

  • Strings are changed in the repository.

  • A string is added.

  • A new translation is added.

Daily

Triggered daily, but add-ons usually split the daily load between components depending on BACKGROUND_TASKS.

Event change

Triggered after a Change event is created.

Repository post-add

Triggered just after the new translation is added and committed.

Repository post-commit

Triggered just after the changes are committed.

Repository post-push

Triggered just after the repository is pushed upstream.

Repository post-update

Triggered whenever new changes are pulled from the upstream repository.

Repository pre-commit

Triggered just before the changes are committed.

Repository pre-push

Triggered just before the repository is pushed upstream.

Repository pre-update

Triggered just before the repository update is attempted.

Storage post-load

Triggered when file is parsed by Weblate.

Unit post-save

Triggered just after the string is saved.

Unit pre-create

Triggered just after the newly created string is saved.

Wbudowane dodatki

Tłumaczenie automatyczne

ID dodatku:

weblate.autotranslate.autotranslate

Konfiguracja:

mode

Tryb automatycznego tłumaczenia

Dostępne opcje:

suggest – Dodaj jako sugestię

translate – Dodaj jako tłumaczenie

fuzzy – Dodaj jako „Wymagające edycji”

filter_type

Filtr wyszukiwania

Pamiętaj, że tłumaczenie wszystkich ciągów spowoduje odrzucenie wszystkich istniejących tłumaczeń.

Dostępne opcje:

all – Wszystkie ciągi

nottranslated – Nieprzetłumaczone ciągi

todo – Niedokończone ciągi

fuzzy – Ciągi oznaczone do edycji

check:inconsistent – Nieudany test: Niespójny

check:translated – Failing check: Has been translated

auto_source

Źródło tłumaczeń automatycznych

Dostępne opcje:

others – Inne komponenty tłumaczenia

mt – Tłumaczenie maszynowe

component

Komponent

Wprowadź końcówkę adresu komponentu do użycia jako źródła; pozostaw puste, aby użyć wszystkich komponentów w bieżącym projekcie.

engines

Silniki tłumaczenia maszynowego

threshold

Ocena wyniku

Wyzwalacze:

Add-on installation, Component update, Daily

Automatycznie tłumaczy ciągi przy użyciu tłumaczenia maszynowego lub innych komponentów.

Lokalizacja JavaScript CDN

Dodane w wersji 4.2.

ID dodatku:

weblate.cdn.cdnjs

Konfiguracja:

threshold

Próg tłumaczenia

Procent przetłumaczonych ciągów, które muszą być obecne w celu uwzględnienia tłumaczenia.

css_selector

Selektor CSS

Selektor CSS do wykrywania lokalizowalnych elementów.

cookie_name

Nazwa pliku cookie języka

Nazwa pliku cookie przechowującego preferencje językowe.

files

Wyodrębnianie ciągów z plików HTML

Lista nazw plików w bieżącym repozytorium lub zdalnych adresów URL do przeanalizowania w celu przetłumaczenia ciągów.

Wyzwalacze:

Add-on installation, Daily, Repository post-commit, Repository post-update

Publikuje tłumaczenia w content delivery network dla lokalizacji JavaScript lub HTML.

Może zostać użyte do lokalizowania statycznych stron HTML, lub do załadowania lokalizacji w kodzie JavaScript.

Generuje unikalny URL dla twojego komponentu, który możesz umieścić na stronach HTML, aby je zlokalizować. Po więcej szczegółów patrz Tłumaczenie HTML i JavaScript za pomocą Weblate CDN.

Informacja

Ten dodatek wymaga dodatkowej konfiguracji na serwerze Weblate. LOCALIZE_CDN_PATH konfiguruje miejsce zapisywania wygenerowanych plików (w systemie plików), a LOCALIZE_CDN_URL określa miejsce, w którym będą one udostępniane (URL). Udostępnianie plików nie jest realizowane przez Weblate i musi zostać skonfigurowane zewnętrznie (zwykle przy użyciu usługi CDN).

Ten dodatek jest skonfigurowany na Hosted Weblate i udostępnia pliki poprzez https://weblate-cdn.com/.

Usuń puste ciągi

Dodane w wersji 4.4.

ID dodatku:

weblate.cleanup.blank

Konfiguracja:

Ten dodatek nie ma konfiguracji.

Wyzwalacze:

Add-on installation, Repository post-commit, Repository post-update

Usuwa ciągi bez tłumaczenia z plików tłumaczeń.

Użyj tego, aby nie mieć pustych ciągów w plikach tłumaczeń (na przykład, jeśli twoja biblioteka lokalizacji wyświetla je jako brakujące zamiast powracać do ciągu źródłowego).

Wyczyść pliki tłumaczenia

ID dodatku:

weblate.cleanup.generic

Konfiguracja:

Ten dodatek nie ma konfiguracji.

Wyzwalacze:

Add-on installation, Repository post-update, Repository pre-commit

Zaktualizuj wszystkie pliki tłumaczeń tak, aby odpowiadały jednojęzykowemu plikowi podstawowemu. W przypadku większości formatów plików oznacza to usunięcie nieaktualnych kluczy tłumaczeń, których nie ma już w pliku podstawowym.

For formats containing additional content besides translation strings (such as Pliki HTML, Pliki RC systemu Windows, or Format OpenDocument) this also brings the translation file in sync with the base file.

Dodaj brakujące języki

ID dodatku:

weblate.consistency.languages

Konfiguracja:

Ten dodatek nie ma konfiguracji.

Wyzwalacze:

Add-on installation, Daily, Repository post-add

Zapewnia, że dla wszystkich komponentów w projekcie używany jest spójny zestaw języków.

Brakujące języki są sprawdzane raz na 24 godziny oraz gdy nowe języki są dodawane w Weblate.

W przeciwieństwie do większości ten dodatek wpływa na cały projekt.

Podpowiedź

Automatycznie tłumacz nowo dodane ciągi z Tłumaczenie automatyczne.

Wykrycie komponentów

ID dodatku:

weblate.discovery.discovery

Konfiguracja:

match

Wyrażenie regularne dopasowujące pliki tłumaczeń

file_format

Format pliku

name_template

Dostosuj nazwę komponentu

base_file_template

Zdefiniuj jednojęzyczną bazową nazwę pliku

Pozostaw puste dla plików tłumaczeń dwujęzycznych.

new_base_template

Zdefiniuj plik bazowy dla nowych tłumaczeń

Nazwa pliku używanego do tworzenia nowych tłumaczeń. Dla Gettext wybierz plik .pot.

intermediate_template

Plik języka pośredniego

Nazwa pliku tłumaczenia pośredniego. W większości przypadków jest to plik tłumaczenia dostarczony przez deweloperów i jest używany podczas tworzenia faktycznych ciągów źródłowych.

language_regex

Filtr języka

Wyrażenie regularne do filtrowania plików tłumaczeń podczas skanowania w poszukiwaniu maski pliku.

copy_addons

Klonuj dodatki z głównego komponentu do nowo utworzonych

remove

Usuń komponenty dla nieistniejących plików

confirm

Potwierdzam, że powyższe dopasowania wyglądają prawidłowo

Wyzwalacze:

Add-on installation, Repository post-update

Automatycznie dodaje lub usuwa komponenty projektu na podstawie zmian plików w systemie kontroli wersji.

Dopasowanie odbywa się za pomocą wyrażeń regularnych, co umożliwia złożoną konfigurację, ale wymagana jest do tego pewna wiedza. Niektóre przykłady typowych zastosowań można znaleźć w sekcji pomocy dodatku.

Wyrażenie regularne pasujące do plików tłumaczeń musi zawierać dwie nazwane grupy, aby dopasować komponent i język. Wszystkie nazwane grupy w wyrażeniu regularnym mogą być używane jako zmienne w polach szablonu.

Możesz używać znaczników szablonów Django zarówno w nazwie pliku, jak i treści, na przykład:

{{ component }}

Dopasowanie nazwy pliku komponentu

{{ component|title }}

Nazwa pliku rozpoczynająca się od wielkiej litery

{{ path }}: {{ component }}

Niestandardowa grupa dopasowań z wyrażenia regularnego

Po naciśnięciu Save zostanie wyświetlony podgląd pasujących komponentów, skąd będziesz mógł sprawdzić, czy dana konfiguracja odpowiada twoim potrzebom:

../_images/addon-discovery.webp

Przykłady wykrycia komponentów

Jeden folder na język

Jeden folder na język zawierający pliki tłumaczeniowe dla komponentów.

Wyrażenie regularne:

(?P<language>[^/.]*)/(?P<component>[^/]*)\.po

Dopasowane pliki:
  • cs/application.po

  • cs/website.po

  • de/application.po

  • de/website.po

Lokalny układ Gettext

Zwykła struktura do przechowywania plików gettext PO.

Wyrażenie regularne:

locale/(?P<language>[^/.]*)/LC_MESSAGES/(?P<component>[^/]*)\.po

Dopasowane pliki:
  • locale/cs/LC_MESSAGES/application.po

  • locale/cs/LC_MESSAGES/website.po

  • locale/de/LC_MESSAGES/application.po

  • locale/de/LC_MESSAGES/website.po

Złożone nazwy plików

Używanie nazwy komponentu i języka w nazwie pliku.

Wyrażenie regularne:

src/locale/(?P<component>[^/]*)\.(?P<language>[^/.]*)\.po

Dopasowane pliki:
  • src/locale/application.cs.po

  • src/locale/website.cs.po

  • src/locale/application.de.po

  • src/locale/website.de.po

Powtarzający się kod języka

Używanie języka w ścieżce i nazwie pliku.

Wyrażenie regularne:

locale/(?P<language>[^/.]*)/(?P<component>[^/]*)/(?P=language)\.po

Dopasowane pliki:
  • locale/cs/application/cs.po

  • locale/cs/website/cs.po

  • locale/de/application/de.po

  • locale/de/website/de.po

Rozdziel ciągi Android

Ciągi zasobów Androida podzielone na kilka plików.

Wyrażenie regularne:

res/values-(?P<language>[^/.]*)/strings-(?P<component>[^/]*)\.xml

Dopasowane pliki:
  • res/values-cs/strings-about.xml

  • res/values-cs/strings-help.xml

  • res/values-de/strings-about.xml

  • res/values-de/strings-help.xml

Dopasowywanie wielu ścieżek

Wielomodułowy projekt Maven z tłumaczeniami właściwości Java.

Wyrażenie regularne:

(?P<originalHierarchy>.+/)(?P<component>[^/]*)/src/main/resources/ApplicationResources_(?P<language>[^/.]*)\.properties

Nazwa komponentu:

{{ originalHierarchy }}: {{ component }}

Dopasowane pliki:
  • parent/module1/submodule/src/main/resources/ApplicationResources_fr.properties

  • parent/module1/submodule/src/main/resources/ApplicationResource_es.properties

  • parent/module2/src/main/resources/ApplicationResource_de.properties

  • parent/module2/src/main/resources/ApplicationResource_ro.properties

Podpowiedź

Dodatek odkrywanie komponentów używa Wewnętrzne adresy URL Weblate. Jest to wygodny sposób na udostępnienie ustawienia VCS pomiędzy wieloma komponentami. Połączone komponenty używają lokalnego repozytorium głównego komponentu utworzonego poprzez wypełnienie weblate://project/main-component w polu Repozytorium kodu źródłowego (w Manage`↓ :guilabel:`SettingsVersion control system) dla każdego odpowiedniego komponentu. To zaoszczędza czas konfiguracii i zasoby systemu.

Edycja zbiorcza

ID dodatku:

weblate.flags.bulk

Konfiguracja:

q

Zapytanie

state

Stan do ustawienia

Dostępne opcje:

-1 – Nie zmieniaj

10 – Wymaga edycji

20 – Przetłumaczone

30 – Zatwierdzone

add_flags

Flagi tłumaczeń do dodania

remove_flags

Flagi tłumaczeń do usunięcia

add_labels

Etykiety do dodania

remove_labels

Etykiety do usunięcia

Wyzwalacze:

Add-on installation, Component update

Zbiorcza edycja flag, etykiet lub stanów ciągów.

Przykłady:

Etykietuj nowe ciągi automatycznie

Zapytanie wyszukiwania

NOT has:label

Etykiety do dodania

ostatnie

Marking all Pliki metadanych sklepu z aplikacjami ciągi dziennika zmian tylko do odczytu

Zapytanie wyszukiwania

language:en AND key:changelogs/

Flagi tłumaczeń do dodania

read-only

Marking certain strings read-only

Zapytanie wyszukiwania

source:r"^\`\`[.a-zA-Z0-9_-]*\`\`$" AND language:en

Flagi tłumaczeń do dodania

read-only

Oznacz niezmienione tłumaczenia jako „Wymaga edycji”

ID dodatku:

weblate.flags.same_edit

Konfiguracja:

Ten dodatek nie ma konfiguracji.

Wyzwalacze:

Unit pre-create

Za każdym razem, gdy nowy przetłumaczalny ciąg jest importowany z VCS i pasuje do ciągu źródłowego, jest oznaczany jako wymagający edycji w Weblate. Szczególnie przydatne w przypadku formatów plików zawierających ciągi źródłowe nieprzetłumaczonych ciągów.

Podpowiedź

Możesz także zaostrzyć kontrolę Niezmienione tłumaczenie, dodając flagę strict-same do flagi Flagi tłumaczeń.

Zobacz także

Stan tłumaczenia

Oznacz nowe ciągi źródłowe jako „Wymaga edycji”

ID dodatku:

weblate.flags.source_edit

Konfiguracja:

Ten dodatek nie ma konfiguracji.

Wyzwalacze:

Unit pre-create

Za każdym razem, gdy nowy źródłowy ciąg znaków jest importowany z VCS, jest oznaczany jako wymagający edycji w Weblate. W ten sposób można łatwo filtrować i edytować ciągi źródłowe napisane przez twórców oprogramowania.

Zobacz także

Stan tłumaczenia

Oznacz nowe tłumaczenia jako „Wymaga edycji”

ID dodatku:

weblate.flags.target_edit

Konfiguracja:

Ten dodatek nie ma konfiguracji.

Wyzwalacze:

Unit pre-create

Za każdym razem, gdy zaimportowany zostanie nowy łańcuch do przetłumaczenia z VCS, zostanie oznaczony jako wymagający edycji w Weblate. W ten sposób możesz łatwo filtrować i edytować tłumaczenia stworzone przez programistów.

Zobacz także

Stan tłumaczenia

Wypełnij ciągi tylko do odczytu źródłem

Dodane w wersji 4.18.

ID dodatku:

weblate.generate.fill_read_only

Konfiguracja:

Ten dodatek nie ma konfiguracji.

Wyzwalacze:

Add-on installation, Component update, Daily

Wypełnia ciągi tłumaczeń tylko do odczytu ciągami źródłowymi.

Generator statystyk

ID dodatku:

weblate.generate.generate

Konfiguracja:

filename

Nazwa wygenerowanego pliku

template

Zawartość wygenerowanego pliku

Wyzwalacze:

Repository pre-commit

Generuje plik zawierający szczegółowe informacje o stanie tłumaczenia.

Możesz używać szablonów Django zarówno w nazwie pliku, jak i treści, sprawdź Znaczniki szablonu żeby poznać szczegóły szablonów.

Na przykład wygenerowanie pliku podsumowania dla każdego tłumaczenia:

Nazwa wygenerowanego pliku

locale/{{ language_code }}.json

Zawartość
{
   "language": "{{ language_code }}",
   "strings": "{{ stats.all }}",
   "translated": "{{ stats.translated }}",
   "last_changed": "{{ stats.last_changed }}",
   "last_author": "{{ stats.last_author }}",
}

Zobacz także

Znaczniki szablonu

Wypełnij wstępnie tłumaczenie źródłem

Dodane w wersji 4.11.

ID dodatku:

weblate.generate.prefill

Konfiguracja:

Ten dodatek nie ma konfiguracji.

Wyzwalacze:

Add-on installation, Component update, Daily

Wypełnia ciągi tłumaczeń ciągami źródłowymi.

Wszystkie nieprzetłumaczone ciągi w komponencie zostaną wypełnione ciągiem źródłowym i oznaczone jako wymagające edycji. Użyj tej opcji, jeśli nie możesz mieć pustych ciągów w plikach tłumaczeń.

Generowanie pseudolokalizacji

Dodane w wersji 4.5.

ID dodatku:

weblate.generate.pseudolocale

Konfiguracja:

source

Ciągi źródłowe

target

Tłumaczenie docelowe

Wszystkie ciągi w tym tłumaczeniu zostaną nadpisane

prefix

Przedrostkowy tekst stały

var_prefix

Przedrostkowy tekst zmienny

suffix

Przyrostkowy tekst stały

var_suffix

Przyrostkowy tekst zmienny

var_multiplier

Mnożnik tekstu zmiennego

Ile razy powtórzyć tekst zmienny w zależności od długości ciągu źródłowego.

include_readonly

Uwzględnij ciągi tylko do odczytu

Wyzwalacze:

Add-on installation, Component update, Daily

Generuje tłumaczenie poprzez automatyczne dodanie prefiksu i sufiksu do ciągów źródłowych.

Pseudolokale są przydatne do wyszukiwania ciągów znaków, które nie są przygotowane do lokalizacji. Odbywa się to poprzez zmianę wszystkich możliwych do przetłumaczenia ciągów źródłowych, aby ułatwić wykrycie niezmienionych ciągów podczas uruchamiania aplikacji w języku pseudolokalnym.

Możliwe jest również znalezienie ciągów znaków, których zlokalizowane odpowiedniki mogą nie pasować do układu.

Using the variable parts makes it possible to look for strings which might not fit into the user interface after the localization - it extends the text based on the source string length. The variable texts are repeated by length of the text multiplied by the multiplier. For example Hello world with variable text _ and variable multiplier of 1 becomes Hello world___________ - the text is repeated once for each character in the source string.

Ciągi zostaną wygenerowane według następującego wzorca:

Prepended static text Prepended variable text Source string Appended variable text Appended static text

Podpowiedź

Do testowania możesz używać prawdziwych języków, ale w Weblate dostępne są dedykowane pseudolokale - en_XA i ar_XB.

Podpowiedź

Możesz użyć tego dodatku, aby rozpocząć tłumaczenie na nowe ustawienia regionalne istniejącego języka lub języka podobnego. Po dodaniu tłumaczenia do komponentu przejdź do dodatku. Przykład: Jeśli masz fr i chcesz rozpocząć tłumaczenie fr_CA, po prostu ustaw fr jako źródło, fr_CA jako cel i pozostaw przedrostek i sufiks puste.

Odinstaluj dodatek po wypełnieniu nowego tłumaczenia, aby uniemożliwić Weblate zmianę tłumaczeń wykonanych po skopiowaniu.

Komentarz współautora

ID dodatku:

weblate.gettext.authors

Konfiguracja:

Ten dodatek nie ma konfiguracji.

Wyzwalacze:

Repository pre-commit

Zaktualizuj część komentarz w nagłówku pliku PO, aby zawierał nazwę autora i lata wkładu.

Nagłówek pliku PO będzie wyglądał następująco:

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

Zaktualizuj zmienną ALL_LINGUAS w pliku „konfiguracyjnym”

ID dodatku:

weblate.gettext.configure

Konfiguracja:

Ten dodatek nie ma konfiguracji.

Wyzwalacze:

Add-on installation, Daily, Repository post-add

Aktualizuje zmienną ALL_LINGUAS w plikach configure, configure.in lub dowolnych plikach configure.ac, gdy dodawane jest nowe tłumaczenie.

Dostosuj wyjście gettext

ID dodatku:

weblate.gettext.customize

Konfiguracja:

width

Zawijanie długich linii

Domyślnie gettext zawija linie przy 77 znakach i nowych liniach. Z parametrem –no-wrap, zawija jest wykonywane tylko przy przejściu do nowych linii.

Dostępne opcje:

77 –Zawijaj linie przy 77 znakach i przy nowych liniach (domyślnie xgettext)

65535 – Zawijaj linie tylko przy nowych liniach (jak „xgettext –no-wrap”)

-1 – Bez zawijania linii

Wyzwalacze:

Storage post-load

Umożliwia dostosowanie zachowania wyjścia gettext, na przykład zawijanie wierszy.

Oferuje następujące opcje:

  • Zawijaj linie przy 77 znakach i przy nowych liniach

  • Zawijaj linie tylko przy nowych liniach

  • Bez zawijania linii

Informacja

Domyślnie gettext zawija linie przy 77 znakach i nowych liniach. Z parametrem --no-wrap zawijanie jest wykonywane tylko przy przejściu do nowych linii.

Aktualizuj plik LINGUAS

ID dodatku:

weblate.gettext.linguas

Konfiguracja:

Ten dodatek nie ma konfiguracji.

Wyzwalacze:

Add-on installation, Daily, Repository post-add

Aktualizuje plik LINGUAS, gdy dodawane jest nowe tłumaczenie.

Generuj pliki MO

ID dodatku:

weblate.gettext.mo

Konfiguracja:

path

Ścieżka wygenerowanego pliku MO

Jeśli nie zostanie określony, zostanie użyta lokalizacja pliku PO.

fuzzy

Dołącz ciągi wymagające edycji

Ciągi wymagające edycji (rozmyte) zazwyczaj nie są gotowe do użycia jako tłumaczenia.

Wyzwalacze:

Repository pre-commit

Automatycznie generuje plik MO dla każdego zmienionego pliku PO.

Lokalizację wygenerowanego pliku MO można dostosować, a jego pole używa Znaczniki szablonu.

Informacja

Jeśli tłumaczenie zostanie usunięte, jego plik PO zostanie usunięty z repozytorium, ale plik MO wygenerowany przez ten dodatek nie zostanie usunięty. Plik MO należy usunąć ręcznie z pliku źródłowego.

Zaktualizuj pliki PO, aby dopasować POT (msgmerge)

ID dodatku:

weblate.gettext.msgmerge

Konfiguracja:

previous

Zachowaj poprzednie msgids przetłumaczonych ciągów

no_location

Usuwanie lokalizacji przetłumaczonych ciągów

fuzzy

Użyj dopasowania rozmytego

Wyzwalacze:

Add-on installation, Repository post-update

Aktualizuje wszystkie pliki PO (zgodnie z konfiguracją Maska pliku) tak, aby pasowały do pliku POT (zgodnie z konfiguracją Szablon dla nowych tłumaczeń) przy użyciu msgmerge.

Most msgmerge command-line options can be set up through the add-on configuration.

Zesquashowane commity na Git

ID dodatku:

weblate.git.squash

Konfiguracja:

squash

Squashowanie commitów

Dostępne opcje:

all – Wszystkie commity w jeden

language – Według języka

file – Na plik

author – Autor

append_trailers

Dołącz zakończenia do opisu zesquashowanego commita

Linie końcowe to linie, które wyglądają podobnie do nagłówków wiadomości e-mail RFC 822, na końcu części opisu commita, takie jak „Współtworzone przez: …”.

commit_message

Opis commita

Ten opis commita będzie użyty zamiast połączonych opisów commitów z zesquashowanych commitów.

Wyzwalacze:

Add-on installation, Repository post-commit

Zesquashuj commity na Git przed wysłaniem zmian.

Zatwierdzenia Git można zmiażdżyć przed wypchnięciem zmian w jednym z następujących trybów:

  • Wszystkie commity w jeden

  • Według języka

  • Według pliku

  • Według autora

Oryginalne opisy commitów są zachowywane, ale autorstwo zostaje utracone, chyba że wybrano dla autora opcję Na autora lub dostosowano opis commita, aby go uwzględnić.

Oryginalne opisy commitów można opcjonalnie zastąpić niestandardowym opisem commita.

Zwiastuny (wiersze zatwierdzeń, takie jak Współautor: ) można opcjonalnie usunąć z oryginalnych komunikatów zatwierdzeń i dołączyć na końcu zgniecionego komunikatu zatwierdzenia. Generuje to również odpowiednie uznanie „Współautorstwo:” dla każdego tłumacza.

Dostosuj wyjście JSON

Zmienione w wersji 5.12: Avoid spaces after separators option added.

ID dodatku:

weblate.json.customize

Konfiguracja:

sort_keys

Sortuj klucze JSON

use_compact_separators

Unikaj spacji po separatorach

indent

Wcięcie JSON

style

Styl wcięć JSON

Dostępne opcje:

spaces – Spacje

tabs – Wcięcia

Wyzwalacze:

Storage post-load

Pozwala na dostosowanie zachowania wyjścia JSON, na przykład wcięcia, sortowania lub kompaktowego formatowania przy użyciu minimalnej liczby odstępów.

Sformatuj plik właściwości Java

ID dodatku:

weblate.properties.sort

Konfiguracja:

case_sensitive

Włącz sortowanie kluczy z uwzględnieniem wielkości liter

Wyzwalacze:

Repository pre-commit

Formatuje i sortuje plik właściwości Java.

  • Zamienia nowe linie do formatu Unix.

  • Formatowanie wielkich liter sekwencji ucieczki Unicode (jeśli są obecne).

  • Usuwa puste linie i komentarze.

  • Sortuje ciągi znaków według kluczy.

  • Usuwa zduplikowane ciągi znaków.

Usuwanie skasowanych komentarzy

ID dodatku:

weblate.removal.comments

Konfiguracja:

age

Dni do zachowania

Wyzwalacze:

Add-on installation, Daily

Ustaw przedział czasowy na usunięcie komentarzy.

Może to być przydatne do usuwania starych komentarzy, które mogły stać się nieaktualne. Używaj z rozwagą, ponieważ starzenie się komentarzy nie oznacza, że straciły one na znaczeniu.

Usuwanie nieaktualnych sugestii

ID dodatku:

weblate.removal.suggestions

Konfiguracja:

age

Dni do zachowania

votes

Próg głosowania

Próg do usunięcia. To pole nie ma wpływu na wyłączone głosowanie.

Wyzwalacze:

Add-on installation, Daily

Ustaw przedział czasowy na usunięcie sugestii.

Can be very useful in connection with suggestion voting (see Ocena koleżeńska) to remove suggestions which don’t receive enough positive votes in a given timeframe.

Zaktualizuj pliki RESX

ID dodatku:

weblate.resx.update

Konfiguracja:

Ten dodatek nie ma konfiguracji.

Wyzwalacze:

Add-on installation, Repository post-update

Zaktualizuj wszystkie pliki tłumaczeń, aby pasowały do jednojęzycznego pliku podstawowego. Nieużywane ciągi są usuwane, a nowe są dodawane jako kopie ciągu źródłowego.

Podpowiedź

Użyj Wyczyść pliki tłumaczenia jeśli chcesz usunąć tylko nieaktualne klucze tłumaczeń.

Slack Webhooks

Dodane w wersji 5.12.

ID dodatku:

weblate.webhook.slack

Konfiguracja:

webhook_url

Adres URL webhooka

events

Zmień zdarzenia

Dostępne opcje:

0 – Resource updated

1 – Translation completed

2 – Translation changed

3 – Comment added

4 – Suggestion added

5 – Translation added

6 – Automatically translated

7 – Suggestion accepted

8 – Translation reverted

9 – Translation uploaded

13 – Source string added

14 – Component locked

15 – Component unlocked

17 – Changes committed

18 – Changes pushed

19 – Repository reset

20 – Repository merged

21 – Repository rebased

22 – Repository merge failed

23 – Repository rebase failed

24 – Parsing failed

25 – Translation removed

26 – Suggestion removed

27 – Translation replaced

28 – Repository push failed

29 – Suggestion removed during cleanup

30 – Source string changed

31 – String added

32 – Bulk status changed

33 – Visibility changed

34 – User added

35 – User removed

36 – Translation approved

37 – Marked for edit

38 – Component removed

39 – Project removed

41 – Project renamed

42 – Component renamed

43 – Moved component

45 – Contributor joined

46 – Announcement posted

47 – Alert triggered

48 – Language added

49 – Language requested

50 – Project created

51 – Component created

52 – User invited

53 – Repository notification received

54 – Translation replaced file by upload

55 – License changed

56 – Contributor license agreement changed

57 – Screenshot added

58 – Screenshot uploaded

59 – String updated in the repository

60 – Add-on installed

61 – Add-on configuration changed

62 – Add-on uninstalled

63 – String removed

64 – Comment removed

65 – Comment resolved

66 – Explanation updated

67 – Category removed

68 – Category renamed

69 – Category moved

70 – Saving string failed

71 – String added in the repository

72 – String updated in the upload

73 – String added in the upload

74 – Translation updated by source upload

75 – Component translation completed

76 – Applied enforced check

77 – Propagated change

78 – File uploaded

79 – Extra flags updated

Wyzwalacze:

Event change

Wysyła powiadomienia do kanału Slack na podstawie wybranych zdarzeń.

Ostrzeżenie

The notification content might show HTML tags. This is a known issue that will be soon addressed; see https://github.com/WeblateOrg/weblate/issues/15056.

Podpowiedź

To obtain a webhook URL, follow the steps outlined in the Slack Incoming Webhooks documentation

Webhook

Dodane w wersji 5.11.

ID dodatku:

weblate.webhook.webhook

Konfiguracja:

webhook_url

Adres URL webhooka

secret

Tajny klucz

Ciąg zakodowany w formacie Base64

events

Zmień zdarzenia

Dostępne opcje:

0 – Resource updated

1 – Translation completed

2 – Translation changed

3 – Comment added

4 – Suggestion added

5 – Translation added

6 – Automatically translated

7 – Suggestion accepted

8 – Translation reverted

9 – Translation uploaded

13 – Source string added

14 – Component locked

15 – Component unlocked

17 – Changes committed

18 – Changes pushed

19 – Repository reset

20 – Repository merged

21 – Repository rebased

22 – Repository merge failed

23 – Repository rebase failed

24 – Parsing failed

25 – Translation removed

26 – Suggestion removed

27 – Translation replaced

28 – Repository push failed

29 – Suggestion removed during cleanup

30 – Source string changed

31 – String added

32 – Bulk status changed

33 – Visibility changed

34 – User added

35 – User removed

36 – Translation approved

37 – Marked for edit

38 – Component removed

39 – Project removed

41 – Project renamed

42 – Component renamed

43 – Moved component

45 – Contributor joined

46 – Announcement posted

47 – Alert triggered

48 – Language added

49 – Language requested

50 – Project created

51 – Component created

52 – User invited

53 – Repository notification received

54 – Translation replaced file by upload

55 – License changed

56 – Contributor license agreement changed

57 – Screenshot added

58 – Screenshot uploaded

59 – String updated in the repository

60 – Add-on installed

61 – Add-on configuration changed

62 – Add-on uninstalled

63 – String removed

64 – Comment removed

65 – Comment resolved

66 – Explanation updated

67 – Category removed

68 – Category renamed

69 – Category moved

70 – Saving string failed

71 – String added in the repository

72 – String updated in the upload

73 – String added in the upload

74 – Translation updated by source upload

75 – Component translation completed

76 – Applied enforced check

77 – Propagated change

78 – File uploaded

79 – Extra flags updated

Wyzwalacze:

Event change

Wysyła powiadomienia do usług zewnętrznych na podstawie wybranych zdarzeń, zgodnie ze specyfikacją Standard Webhooks.

The request payload complies with the Weblate Messaging schema. The OpenAPI description can also be found at /api/docs/. Sample request body:

{
   "change_id": 99,
   "action": "Translation changed",
   "timestamp": "2019-08-24T14:15:22Z",
   "target": "Nazdar svete!",
   "old": "Nazdar!",
   "source": "Hello, world",
   "url": "/translate/project-slug/component-slug/cs/?checksum=46add148a53cab6f",
   "author": "author-username",
   "user": "user-username",
   "project": "project-slug",
   "component": "component-slug",
   "translation": "cs"
}

Sample request body with categories:

{
   "change_id": 8910,
   "action": "Component renamed",
   "timestamp": "2025-06-11T07:15:09Z",
   "target": ["new-name"],
   "old": ["component-slug"],
   "url": "/projects/project-slug/parent-category/child-category/sub-category/component-slug/",
   "user": "testuser",
   "project": "project-slug",
   "component": "component-slug",
   "category": [
      "sub-category",
      "child-category",
      "parent-category"
   ]
}

Sample request headers:

{
   "webhook-id": "7f1c5477f6275a69af7b83236c20cb1a",
   "webhook-timestamp": "1748505623.044281",
   "webhook-signature": "v1,Ceo5qEr07ixe2NLpvHk3FH9bwy/WavXrAFQ/9tdO6mc="
}

The webhook-signature is a space separated list of HMAC signatures generated using the secret string, the request payload, the webhook-timestamp, and the webhook-id. This ensures the authenticity and integrity of the webhook request.

To verify a request, you can use the Webhook.verify method from the standardwebhooks library or an implementation of the „Standard Webhooks Specification”.

Dostosuj wyjście XML

Dodane w wersji 4.15.

ID dodatku:

weblate.xml.customize

Konfiguracja:

closing_tags

Dołącz tag zamykający do pustych tagów XML

Wyzwalacze:

Storage post-load

Umożliwia dostosowanie zachowania wyjściowego XML, na przykład zamykanie tagów.

Dostosuj wyjście YAML

ID dodatku:

weblate.yaml.customize

Konfiguracja:

indent

Wcięcie YAML

width

Zawijanie długich linii

Dostępne opcje:

80 – Zawijaj linie przy 80 znakach

100 – Zawijaj linie przy 100 znakach

120 – Zawijaj linie przy 120 znakach

180 – Zawijaj linie przy 180 znakach

65535 – Bez zawijania linii

line_break

Podział wierszy

Dostępne opcje:

dos – DOS (\r\n)

unix – UNIX (\n)

mac – MAC (\r)

Wyzwalacze:

Storage post-load

Umożliwia dostosowanie zachowania wyjściowego YAML, na przykład długość linii lub nowe linie.

Dostosowywanie listy dodatków

Listę dodatków konfiguruje się poprzez WEBLATE_ADDONS. Aby dodać kolejny dodatek, po prostu podaj w tym ustawieniu bezwzględną nazwę klasy.

Pisanie dodatku

Możesz także napisać własne dodatki, utworzyć podklasę weblate.addons.base.BaseAddon w celu zdefiniowania metadanych dodatku, a następnie zaimplementować wywołanie zwrotne w celu wykonania przetwarzania.

Zobacz także

Tworzenie dodatków

Wykonywanie skryptów z dodatku

Dodatków można także używać do wykonywania zewnętrznych skryptów. Kiedyś było to zintegrowane z Weblate, ale teraz musisz napisać kod, aby go wykonać dodatkiem.

# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later

"""Example pre commit script."""

from django.utils.translation import gettext_lazy

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


class ExamplePreAddon(BaseScriptAddon):
    # Event used to trigger the script
    events: set[AddonEvent] = {
        AddonEvent.EVENT_PRE_COMMIT,
    }
    # Name of the addon, has to be unique
    name = "weblate.example.pre"
    # Verbose name and long description
    verbose = gettext_lazy("Execute script before commit")
    description = gettext_lazy("This add-on 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"

Aby uzyskać instrukcje instalacji, zobacz Custom quality checks, add-ons and auto-fixes.

Skrypt jest wykonywany z bieżącym katalogiem ustawionym na katalog główny repozytorium VCS dla dowolnego komponentu.

Dodatkowo dostępne są następujące zmienne środowiskowe:

WL_VCS

Używany system kontroli wersji.

WL_REPO

Adres URL repozytorium nadrzędnego.

WL_PATH

Ścieżka bezwzględna do repozytorium VCS.

WL_BRANCH

Gałąź repozytorium skonfigurowana w bieżącym komponencie.

WL_FILEMASK

Maska pliku dla bieżącego komponentu.

WL_TEMPLATE

Nazwa pliku szablonu dla tłumaczeń jednojęzycznych (może być pusta).

WL_NEW_BASE

Nazwa pliku użytego do tworzenia nowych tłumaczeń (może być pusta).

WL_FILE_FORMAT

Format pliku używany w bieżącym komponencie.

WL_LANGUAGE

Język aktualnie przetwarzanego tłumaczenia (niedostępny dla komponentów niskiego poziomu).

WL_PREVIOUS_HEAD

Previous HEAD after update (only available after running the post-update hook).

WL_COMPONENT_SLUG

Component slug used to construct URL.

WL_PROJECT_SLUG

Project slug used to construct URL.

WL_COMPONENT_NAME

Nazwa komponentu.

WL_PROJECT_NAME

Nazwa projektu.

WL_COMPONENT_URL

URL komponentu.

WL_ENGAGE_URL

Adres URL zaangażowania projektu.

Zobacz także

Konfiguracja komponentu

Przetwarzanie repozytorium po aktualizacji

Can be used to update translation files when the VCS upstream source changes. To achieve this, please remember Weblate only sees files committed to the VCS, so you need to commit changes as a part of the script.

For example with Gulp you can do it using following code:

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

Przetwarzanie tłumaczeń przed scommitowaniem

Use the commit script to automatically change a translation before it is committed to the repository.

It is passed as a single parameter consisting of the filename of a current translation.

Add-on activity logging

Add-on activity log keeps track of the add-on execution and can be used to keep track of add-on activity.

The logs can be pruned after a certain time interval by configuring the ADDON_ACTIVITY_LOG_EXPIRY.