Dodatki¶
Add-ons provide ways to customize and automate the translation workflow. Admins can add and manage add-ons from the Operations ↓ Add-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.
Add-ons that opt in to manual triggering can be run from add-on management or using the API. Results are recorded in the add-on activity log.
Events that trigger add-ons¶
Add-on installation¶
Triggered when add-on is being installed.
Component update¶
Wywoływane za każdym razem, gdy nastąpi zmiana w komponencie, takim jak:
Strings are changed in the repository.
A string is added.
A new translation is added.
Codziennie¶
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.
Manual trigger¶
Triggered when an add-on is run manually from add-on management or the API.
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-remove¶
Triggered just after a translation is removed.
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.
Unit post-save¶
Triggered just after the string is saved.
Unit post-sync¶
Triggered after the string is synchronized with the VCS.
Unit pre-create¶
Triggered just after the newly created string is saved.
Wbudowane dodatki¶
Tłumaczenie automatyczne¶
- ID dodatku:
weblate.autotranslate.autotranslate- Konfiguracja:
modeTryb automatycznego tłumaczenia
Dostępne opcje:¶ suggestDodaj jako sugestię
translateDodaj jako tłumaczenie
fuzzyDodaj jako „Wymaga edycji”
qZapytanie
Pamiętaj, że tłumaczenie wszystkich ciągów spowoduje odrzucenie wszystkich istniejących tłumaczeń.
auto_sourceŹródło tłumaczeń automatycznych
Dostępne opcje:¶ othersInne komponenty tłumaczenia
mtTłumaczenie maszynowe
componentKomponent
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.
enginesSilniki tłumaczenia maszynowego
thresholdOcena wyniku
- Wyzwalacze:
Add-on installation, Component update, Codziennie, Event change
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:
thresholdPróg tłumaczenia
Procent przetłumaczonych ciągów, które muszą być obecne w celu uwzględnienia tłumaczenia.
css_selectorSelektor CSS
Selektor CSS do wykrywania lokalizowalnych elementów.
cookie_nameNazwa pliku cookie języka
Nazwa pliku cookie przechowującego preferencje językowe.
filesWyodrę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, Codziennie, 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:
Zapewnia, że dla wszystkich komponentów w projekcie używany jest spójny zestaw języków.
Informacja
The components shared from other projects are not considered in this.
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:
matchWyrażenie regularne dopasowujące pliki tłumaczeń
The regular expression must define named groups for component and language.
file_formatFormat pliku
name_templateDostosuj nazwę komponentu
Use Django template syntax. This template must include {{ component }}.
base_file_templateZdefiniuj jednojęzyczną bazową nazwę pliku
Leave empty for bilingual translation files. When set, this template must include {{ component }}.
new_base_templateZdefiniuj plik bazowy dla nowych tłumaczeń
Filename of file used for creating new translations. For gettext choose .pot file. This template must include {{ component }}.
intermediate_templatePlik języka pośredniego
Filename of intermediate translation file. In most cases this is a translation file provided by developers and is used when creating actual source strings. This template must include {{ component }}.
language_regexFiltr języka
Wyrażenie regularne do filtrowania plików tłumaczeń podczas skanowania w poszukiwaniu maski pliku.
copy_addonsKlonuj dodatki z głównego komponentu do nowo utworzonych
removeUsuń komponenty dla nieistniejących plików
- Wyzwalacze:
Automatycznie dodaje lub usuwa komponenty projektu na podstawie zmian plików w systemie kontroli wersji.
The matching is done using regular expressions enabling complex configuration, but some knowledge is required to do so. The regular expression to match translation files has to contain two named groups to match component and language. All named groups in the regular expression can be used as variables in the template fields.
Discovery requirements¶
To discover a component successfully, the configuration has to do all of the following:
The regular expression must define
componentandlanguagenamed groups.Template fields used to name or locate per-component files must include
{{ component }}, so the rendered value actually changes for each discovered component.For monolingual formats, the component must contain a file matching
base_file_templateand at least one translation file matchingmatch.
Worked example: news_<lang>.md¶
This is a common filename-based language variant layout:
docs/news_en.mddocs/news_cs.mddocs/guide_en.md
Use the Filename-based language variants preset for a starting point, then choose the matching file format and review the populated values.
- Wyrażenie regularne:
(?:(?P<path>.*/))?(?P<component>.+?)_(?P<language>[A-Za-z]{2,3}(?:[_-][A-Za-z0-9]+)*)\.(?P<extension>[^/.]+)- Nazwa komponentu:
{{ component }}- Discovered file masks:
docs/news_*.mddocs/guide_*.md
In this example, {{ component }} resolves to the basename before the language
suffix, so docs/news_en.md, docs/news_pt_BR.md, and
docs/news_pt-BR.md all become the news component.
Możesz używać znaczników szablonów Django zarówno w nazwie pliku, jak i treści, na przykład:
{{ component }}Component name parsed from the
componentmatch group{{ 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:
Przykłady wykrycia komponentów¶
The worked example above covers the most common filename-based variant layout. The following examples show other repository structures you can match.
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.pocs/website.pode/application.pode/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.polocale/cs/LC_MESSAGES/website.polocale/de/LC_MESSAGES/application.polocale/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.posrc/locale/website.cs.posrc/locale/application.de.posrc/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.polocale/cs/website/cs.polocale/de/application/de.polocale/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.xmlres/values-cs/strings-help.xmlres/values-de/strings-about.xmlres/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.propertiesparent/module1/submodule/src/main/resources/ApplicationResource_es.propertiesparent/module2/src/main/resources/ApplicationResource_de.propertiesparent/module2/src/main/resources/ApplicationResource_ro.properties
Podpowiedź
Component discovery add-on uses Wewnętrzne adresy URL Weblate. It’s a convenient way to share
VCS setup between multiple components. Linked components use the local repository of
the main component set up by filling weblate://project/main-component
into the Repozytorium kodu źródłowego field (in Operations ↓ Settings ↓
Version control system) of each respective component.
This saves time with configuration and system resources too.
Podpowiedź
Ensure the new component contains the full set of translatable languages with Dodaj brakujące języki.
Zobacz także
Wiadomości Fedory¶
Dodane w wersji 5.15.
- ID dodatku:
weblate.fedora_messaging.publish- Konfiguracja:
eventsZmień zdarzenia
amqp_hostHost brokera AMQP
Broker AMQP, z którym chcesz się połączyć.
amqp_sslUżyj protokołu SSL do połączenia AMQP
ca_certCertyfikaty CA
Pakiet certyfikatów CA zakodowanych w formacie PEM używanych do sprawdzania poprawności certyfikatu prezentowanego przez serwer.
client_keyKlucz SSL klienta
Prywatny klucz SSL klienta zakodowany w formacie PEM.
client_certCertyfikaty SSL klienta
Certyfikat SSL klienta zakodowany w formacie PEM.
- Wyzwalacze:
Wysyła powiadomienia do wymiany AMQP kompatybilnej z wiadomościami Fedory.
Fedora Messaging is AMQP-based publisher for all changes happening in Weblate. You can hook additional services on changes happening in Weblate using this.
Message topic¶
All messages have topic
weblate.<action>.<project>.<component>.<translation>. The action is
lowercase textual representation of action with underscores instead of space,
for example resource_update, all other parts are optional and represent
slug of the object or a language code.
Message body¶
The body consists of following fields (given that they are available for the event):
change_idNumerical ID of change
actionVerbose name of the change.
timestampISO formatted timestamp
targetNew value of the change (eg. new translation of the string)
oldOld value of the change (eg. previous translation of the string)
sourceSource string.
urlAbsolute URL to view the related object.
authorAuthor username (this can be different from user for example when accepting suggestions)
userActing username
projectKońcówka adresu URL projektu
componentKońcówka adresu URL komponentu
translationKod języka tłumaczenia
Message headers¶
There are additional headers which you might utilize for routing as well:
actionVerbose name of the change.
projectKońcówka adresu URL projektu
componentKońcówka adresu URL komponentu
Example messages¶
Zdarzenie scalania repozytorium:
{
"id": 1,
"action": "Merged repository",
"timestamp": "2017-06-15T11:30:47.325000+00:00",
"url": "http://example.com/projects/test/test/",
"component": "test"
}
Nowe zdarzenie ciągu źródłowego:
{
"id": 2,
"action": "New source string",
"timestamp": "2017-06-15T11:30:47.372000+00:00",
"url": "http://example.com/translate/test/test/cs/?checksum=6412684aaf018e8e",
"component": "test",
"translation": "cs",
"source": ["Hello, world!\n"]
}
Zaktualizowano zasób:
{
"id": 6,
"action": "Resource update",
"timestamp": "2017-06-15T11:30:47.410000+00:00",
"url": "http://example.com/projects/test/test/cs/",
"project": "test",
"component": "test",
"translation": "cs"
}
{
"id": 7,
"action": "Resource update",
"timestamp": "2017-06-15T11:30:47.510000+00:00",
"url": "http://example.com/projects/test/test/de/",
"project": "test",
"component": "test",
"translation": "de"
}
{
"id": 8,
"action": "Resource update",
"timestamp": "2017-06-15T11:30:47.595000+00:00",
"url": "http://example.com/projects/test/test/it/",
"project": "test",
"component": "test",
"translation": "it"
}
Zdarzenie usunięcia projektu:
{
"id": 9,
"action": "Removed project",
"timestamp": "2019-10-17T15:57:08.559420+00:00",
"target": "test",
"user": "testuser"
}
Nowe wydarzenie dla współtwórców:
{
"id": 11,
"action": "New contributor",
"timestamp": "2019-10-17T15:57:08.759960+00:00",
"url": "http://example.com/translate/test/test/cs/?checksum=6412684aaf018e8e",
"author": "testuser",
"user": "testuser",
"project": "test",
"component": "test",
"translation": "cs",
"source": ["Hello, world!\n"]
}
Nowe wydarzenie tłumaczeniowe:
{
"id": 12,
"action": "New translation",
"timestamp": "2019-10-17T15:57:08.772591+00:00",
"url": "http://example.com/translate/test/test/cs/?checksum=6412684aaf018e8e",
"target": ["Ahoj svete!\n"],
"author": "testuser",
"user": "testuser",
"project": "test",
"component": "test",
"translation": "cs",
"source": ["Hello, world!\n"]
}
Zobacz także
Edycja zbiorcza¶
- ID dodatku:
weblate.flags.bulk- Konfiguracja:
qZapytanie
stateStan do ustawienia
Dostępne opcje:¶ -1Nie zmieniaj
10Wymaga edycji
11Wymaga edycji (Wymaga przeredagowania)
12Wymaga edycji (Wymaga sprawdzenia)
20Przetłumaczone
30Zatwierdzone
add_flagsFlagi tłumaczeń do dodania
remove_flagsFlagi tłumaczeń do usunięcia
add_labelsEtykiety do dodania
remove_labelsEtykiety do usunięcia
- Wyzwalacze:
Zbiorcza edycja flag, etykiet lub stanów ciągów.
Przykłady:
Zapytanie wyszukiwania |
|
|---|---|
Etykiety do dodania |
ostatnie |
Zapytanie wyszukiwania |
|
|---|---|
Flagi tłumaczeń do dodania |
|
Zapytanie wyszukiwania |
|
|---|---|
Flagi tłumaczeń do dodania |
|
Oznacz niezmienione tłumaczenia jako „Wymaga przeredagowania”¶
- ID dodatku:
weblate.flags.same_edit- Konfiguracja:
Ten dodatek nie ma konfiguracji.
- Wyzwalacze:
Za każdym razem, gdy nowy przetłumaczalny ciąg zostaje zaimportowany z VCS i pasuje do ciągu źródłowego, jest oznaczany jako wymagający przeredagowania w Weblate. Jest to 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
Oznacz nowe ciągi źródłowe jako „Wymaga sprawdzenia”¶
- ID dodatku:
weblate.flags.source_edit- Konfiguracja:
Ten dodatek nie ma konfiguracji.
- Wyzwalacze:
Za każdym razem, gdy nowy ciąg źródłowy zostaje zaimportowany z VCS, jest oznaczany jako wymagający sprawdzenia w Weblate. W ten sposób możesz łatwo filtrować i edytować ciągi źródłowe napisane przez programistów.
Zobacz także
Oznacz nowe tłumaczenia jako „Wymaga przeredagowania”¶
- ID dodatku:
weblate.flags.target_edit- Konfiguracja:
Ten dodatek nie ma konfiguracji.
- Wyzwalacze:
Za każdym razem, gdy nowy przetłumaczalny ciąg zostaje zaimportowany z VCS, jest oznaczany jako wymagający przeredagowania w Weblate. W ten sposób możesz łatwo filtrować i edytować tłumaczenia stworzone przez programistów.
Zobacz także
Oznacz zaktualizowane tłumaczenia z repozytorium jako „Wymaga przeredagowania”¶
- ID dodatku:
weblate.flags.target_repo_update- Konfiguracja:
Ten dodatek nie ma konfiguracji.
- Wyzwalacze:
Za każdym razem, gdy tłumaczenie ciągu zostaje zmienione w VCS, jest oznaczane jako wymagające przeredagowania w Weblate. Jest to szczególnie przydatne, jeśli pliki tłumaczeń są często aktualizowane ręcznie lub przez zewnętrzną usługę.
Zobacz także
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:
Wypełnia ciągi tłumaczeń tylko do odczytu ciągami źródłowymi.
Generator statystyk¶
- ID dodatku:
weblate.generate.generate- Konfiguracja:
filenameNazwa wygenerowanego pliku
templateZawartość wygenerowanego pliku
- Wyzwalacze:
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
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:
Wypełnia ciągi tłumaczeń ciągami źródłowymi.
All untranslated strings in the component will be filled with the source string, and marked as needing edit. Use this when you can not have empty strings in the translation files. .. AUTOGENERATED START: weblate.generate.pseudolocale .. This section is automatically generated by ./manage.py list_addons. Do not edit manually.
Generowanie pseudolokalizacji¶
Dodane w wersji 4.5.
- ID dodatku:
weblate.generate.pseudolocale- Konfiguracja:
sourceCiągi źródłowe
targetTłumaczenie docelowe
Wszystkie ciągi w tym tłumaczeniu zostaną nadpisane
prefixPrzedrostkowy tekst stały
var_prefixPrzedrostkowy tekst zmienny
suffixPrzyrostkowy tekst stały
var_suffixPrzyrostkowy tekst zmienny
var_multiplierMnożnik tekstu zmiennego
Ile razy powtórzyć tekst zmienny w zależności od długości ciągu źródłowego.
include_readonlyUwzględnij ciągi tylko do odczytu
- Wyzwalacze:
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:
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ř <[email protected]>, 2012, 2018, 2019, 2020.
# Pavel Borecki <[email protected]>, 2018, 2019.
# Filip Hron <[email protected]>, 2018, 2019.
# anonymous <[email protected]>, 2019.
Zaktualizuj zmienną ALL_LINGUAS w pliku „konfiguracyjnym”¶
- ID dodatku:
weblate.gettext.configure- Konfiguracja:
Ten dodatek nie ma konfiguracji.
- Wyzwalacze:
Add-on installation, Codziennie, Repository post-add, Repository post-remove
Updates the ALL_LINGUAS variable in „configure”, „configure.in” or „configure.ac” files, when a translation is added or removed.
Updates the ALL_LINGUAS variable in configure, configure.in or any
configure.ac files, when a translation is added or removed.
Dostosuj wyjście gettext¶
Removed in version 5.13: Replaced by Parametry formatu pliku.
Zaktualizuj plik POT (Django)¶
Dodane w wersji 5.17.
- ID dodatku:
weblate.gettext.django- Konfiguracja:
intervalCzęstotliwość aktualizacji
Jak często dodatek powinien aktualizować plik POT po odświeżeniu komponentu.
Dostępne opcje:¶ dailyCodziennie
weeklyCotygodniowo
monthlyMiesięcznie
normalize_headerNormalizuj nagłówek POT
Aktualizuje nagłówki gettext i zastępuje zastępcze komentarze POT.
- Wyzwalacze:
Aktualizuje szablon gettext za pomocą wbudowanego polecenia makemessages Django.
Aktualizuj plik LINGUAS¶
- ID dodatku:
weblate.gettext.linguas- Konfiguracja:
Ten dodatek nie ma konfiguracji.
- Wyzwalacze:
Add-on installation, Codziennie, Repository post-add, Repository post-remove
Updates the LINGUAS file when a translation is added or removed.
Zaktualizuj plik POT (Meson)¶
Dodane w wersji 5.17.
- ID dodatku:
weblate.gettext.meson- Konfiguracja:
intervalCzęstotliwość aktualizacji
Jak często dodatek powinien aktualizować plik POT po odświeżeniu komponentu.
Dostępne opcje:¶ dailyCodziennie
weeklyCotygodniowo
monthlyMiesięcznie
normalize_headerNormalizuj nagłówek POT
Aktualizuje nagłówki gettext i zastępuje zastępcze komentarze POT.
comment_modeKomentarze w kodzie
Wybierz, czy xgettext powinien nie wyodrębnić komentarzy, wyodrębnić wszystkie komentarze, czy wyodrębnić tylko komentarze oznaczone określonym tagiem.
Dostępne opcje:¶ offNie wyodrębniaj komentarzy
allWyodrębnij wszystkie komentarze
taggedWyodrębnij komentarze z tagiem
comment_tagTag komentarza
Tag przekazywany do xgettext w celu wyodrębnienia komentarzy podczas używania trybu komentarzy z tagami.
checksKontrole xgettext
Dodatkowe walidacje xgettext do włączenia dla wyodrębnionych wiadomości.
Dostępne opcje:¶ ellipsis-unicodeellipsis-unicode
space-ellipsisspace-ellipsis
quote-unicodequote-unicode
bullet-unicodebullet-unicode
keywordDodatkowe słowo kluczowe
Opcjonalne dodatkowe słowo kluczowe przekazywane do xgettext z użyciem –keyword.
presetPredefiniowany Meson
Wbudowane ustawienie dopasowywania argumentów xgettext dla integracji gettext w Meson. Predefiniowany parametr GLib dodaje opcje słów kluczowych i flag formatu używane przez pomocnika gettext Meson.
Dostępne opcje:¶ glibGLib
- Wyzwalacze:
Aktualizuje szablon gettext za pomocą konwencji gettext Meson.
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.
fuzzyDołącz ciągi wymagające edycji
Ciągi wymagające edycji (rozmyte) zazwyczaj nie są gotowe do użycia jako tłumaczenia.
- Wyzwalacze:
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)¶
Zmienione w wersji 5.13: Settings configuration has been moved to Parametry formatu pliku.
- ID dodatku:
weblate.gettext.msgmerge- Konfiguracja:
Ten dodatek nie ma konfiguracji.
- Wyzwalacze:
Aktualizuje wszystkie pliki PO (skonfigurowane przez „File mask”), aby pasowały do pliku POT (zgodnie z konfiguracją „Szablon dla nowych tłumaczeń”) przy użyciu msgmerge.
This add-on is essential when working with gettext PO files where the POT (template) file is updated with new strings or changes to existing strings. When the POT file is updated in the repository, this add-on automatically merges those changes into all language PO files, ensuring that:
New translatable strings appear in all languages
Removed strings are marked as obsolete
Modified strings are marked as needing review (fuzzy)
Most msgmerge command-line options can be set up through file format parameters configuration.
Zaktualizuj plik POT (Sphinx)¶
Dodane w wersji 5.17.
- ID dodatku:
weblate.gettext.sphinx- Konfiguracja:
intervalCzęstotliwość aktualizacji
Jak często dodatek powinien aktualizować plik POT po odświeżeniu komponentu.
Dostępne opcje:¶ dailyCodziennie
weeklyCotygodniowo
monthlyMiesięcznie
normalize_headerNormalizuj nagłówek POT
Aktualizuje nagłówki gettext i zastępuje zastępcze komentarze POT.
filter_modeFiltrowanie
Opcjonalnie usuń ciągi, których nie da się przetłumaczyć po wyodrębnieniu przez Sphinx.
Dostępne opcje:¶ noneŻaden
weblate_docsDokumentacja Weblate
- Wyzwalacze:
Aktualizuje szablon gettext za pomocą kompilatora gettext Sphinx bez ładowania konfiguracji projektu.
Zaktualizuj plik POT (xgettext)¶
Dodane w wersji 5.17.
- ID dodatku:
weblate.gettext.xgettext- Konfiguracja:
intervalCzęstotliwość aktualizacji
Jak często dodatek powinien aktualizować plik POT po odświeżeniu komponentu.
Dostępne opcje:¶ dailyCodziennie
weeklyCotygodniowo
monthlyMiesięcznie
normalize_headerNormalizuj nagłówek POT
Aktualizuje nagłówki gettext i zastępuje zastępcze komentarze POT.
comment_modeKomentarze w kodzie
Wybierz, czy xgettext powinien nie wyodrębnić komentarzy, wyodrębnić wszystkie komentarze, czy wyodrębnić tylko komentarze oznaczone określonym tagiem.
Dostępne opcje:¶ offNie wyodrębniaj komentarzy
allWyodrębnij wszystkie komentarze
taggedWyodrębnij komentarze z tagiem
comment_tagTag komentarza
Tag przekazywany do xgettext w celu wyodrębnienia komentarzy podczas używania trybu komentarzy z tagami.
checksKontrole xgettext
Dodatkowe walidacje xgettext do włączenia dla wyodrębnionych wiadomości.
Dostępne opcje:¶ ellipsis-unicodeellipsis-unicode
space-ellipsisspace-ellipsis
quote-unicodequote-unicode
bullet-unicodebullet-unicode
keywordDodatkowe słowo kluczowe
Opcjonalne dodatkowe słowo kluczowe przekazywane do xgettext z użyciem –keyword.
input_modeŹródło danych wejściowych
Wybierz, czy xgettext powinien odczytywać pliki źródłowe ze wzorców glob, czy z manifestu POTFILES/POTFILES.in.
Dostępne opcje:¶ patternsWzorce plików źródłowych
potfilesManifest POTFILES
languageJęzyk xgettext
Język programowania przekazywany do xgettext, na przykład Python lub C.
source_patternsWzorce plików źródłowych
Rozdzielone nowymi wierszami wzorce glob dla repozytorium dla plików do wyodrębnienia przez xgettext.
potfiles_pathŚcieżka POTFILES
Ścieżka względna w repozytorium do POTFILES lub POTFILES.in. Wpisy są rozstrzygane względem katalogu głównego repozytorium. Jeśli występuje obok manifestu, POTFILES.skip wyklucza wymienione pliki z ekstrakcji.
- Wyzwalacze:
Aktualizuje szablon gettext za pomocą xgettext w wybranych plikach źródłowych.
Zesquashowane commity na Git¶
- ID dodatku:
weblate.git.squash- Konfiguracja:
squashSquashowanie commitów
Dostępne opcje:¶ allWszystkie commity w jeden
languageWedług języka
fileWedług pliku
authorWedług autora
append_trailersDołą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_messageOpis commita
Ten opis commita będzie użyty zamiast połączonych opisów commitów z zesquashowanych commitów.
- Wyzwalacze:
Zesquashuj commity na Git przed wysłaniem zmian.
Podpowiedź
To avoid unnecessary conflicts, it is recommended to configure automatic receiving of upstream changes by webhooks or API, see Aktualizacja repozytoriów.
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.
Trailers (commit lines like Co-authored-by: …) can optionally be removed
from the original commit messages and appended to the end of the squashed
commit message. This also generates proper Co-authored-by: credit for every
translator.
Dostosuj wyjście JSON¶
Zmienione w wersji 5.12: Avoid spaces after separators option added.
Removed in version 5.13: Replaced by Parametry formatu pliku.
Zresetuj repozytorium do nadrzędnego¶
Dodane w wersji 5.17.
- ID dodatku:
weblate.hosted.reset- Konfiguracja:
Ten dodatek nie ma konfiguracji.
- Wyzwalacze:
Każdej nocy odrzuca wszystkie zmiany w repozytorium Weblate.
Sformatuj plik właściwości Java¶
- ID dodatku:
weblate.properties.sort- Konfiguracja:
case_sensitiveWłącz sortowanie kluczy z uwzględnieniem wielkości liter
- Wyzwalacze:
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:
ageDni do zachowania
- Wyzwalacze:
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:
ageDni do zachowania
votesPróg głosowania
Próg do usunięcia. To pole nie ma wpływu na wyłączone głosowanie.
- Wyzwalacze:
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:
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ń.
Webhooki Slack¶
Dodane w wersji 5.12.
- ID dodatku:
weblate.webhook.slack- Konfiguracja:
webhook_urlAdres URL webhooka
eventsZmień zdarzenia
- Wyzwalacze:
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.
Zmienione w wersji 5.15: Compliance of the secret length with the specification is now validated.
- ID dodatku:
weblate.webhook.webhook- Konfiguracja:
webhook_urlAdres URL webhooka
secretTajny klucz webhooka
Tajny klucz standardowych webhooków to ciąg zakodowany w standardzie base64.
eventsZmień zdarzenia
- Wyzwalacze:
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"
]
}
Przykładowe nagłówki żądań:
{
"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.
The provided secret is a base64 encoded string between 24 bytes (192 bits)
and 64 bytes (512 bits). It can be prefixed with whsec_ for easy
identification.
To verify a request, you can use the Webhook.verify method from the standardwebhooks library
or an implementation of the „Standard Webhooks Specification”.
Obsolete add-ons¶
Dostosuj wyjście XML¶
Dodane w wersji 4.15.
Removed in version 5.13: Replaced by Parametry formatu pliku.
Dostosuj wyjście YAML¶
Removed in version 5.13: Replaced by Parametry formatu pliku.
Common add-on parameters¶
Silniki tłumaczenia maszynowego¶
|
Alibaba |
|
Amazon Translate |
|
Anthropic |
|
Apertium APy |
|
Azure AI Translator |
|
Azure OpenAI |
|
Baidu |
|
CyrTranslit |
|
DeepL |
|
Glosbe |
|
Google Cloud Translation Advanced |
|
Google Cloud Translation Basic |
|
LibreTranslate |
|
ModernMT |
|
MyMemory |
|
Netease Sight |
|
Ollama |
|
OpenAI |
|
SAP Translation Hub |
|
Systran |
|
Weblate |
|
Pamięć tłumaczeniowa Weblate |
|
Yandex |
|
Yandex v2 |
|
Youdao Zhiyun |
|
tmserver |
Format pliku¶
|
XLIFF 1.2 z rozszerzeniami Apple’a |
|
Pliki metadanych sklepu z aplikacjami |
|
Plik ARB |
|
Zasób ciągów Android |
|
Plik AsciiDoc |
|
Plik napisów Advanced SubStation Alpha |
|
Haiku catkeys |
|
Zasób Compose Multiplatform |
|
Plik CSV |
|
Wielowartościowy plik CSV |
|
Zwykły plik CSV |
|
Plik tekstowy DokuWiki |
|
Plik DTD |
|
Jednolity plik XML |
|
Plik Fluent |
|
Plik JSON Format.JS |
|
Plik JSON go-i18n v1 |
|
Plik JSON go-i18n v2 |
|
Plik TOML go-i18n |
|
Plik gotext JSON |
|
Właściwości GWT |
|
Plik HTML |
|
Plik JSON i18next v3 |
|
Plik JSON i18next v4 |
|
Plik IDML |
|
Plik INI |
|
Plik Inno Setup INI |
|
Plik języka Joomla |
|
Plik JSON |
|
Plik o zagnieżdżonej strukturze JSON |
|
Ciągi znaków Laravel PHP |
|
Plik Markdown |
|
Plik tekstowy MediaWiki |
|
Plik językowy @draggable/i18n |
|
Mobile Kotlin Resource |
|
Plik JSON Nextcloud |
|
Plik typu OpenDocument |
|
Ciągi PHP |
|
Plik tłumaczenia XLIFF 1.2 |
|
Plik gettext PO |
|
Plik gettext PO (jednojęzyczny) |
|
XLIFF 1.2 z rozszerzeniami gettext |
|
Właściwości Java |
|
Plik RC |
|
Plik RESJSON |
|
Plik ResourceDictionary |
|
Plik zasobów .Net |
|
Plik Ruby YAML |
|
Plik napisów SubRip |
|
Plik napisów SubStation Alpha |
|
Ciągi iOS |
|
Plik Stringsdict |
|
Plik napisów MicroDVD |
|
Plik TermBase eXchange |
|
Plik TOML |
|
Plik tłumaczenia Qt Linguist |
|
Zwykły plik tekstowy |
|
Plik JSON WebExtension |
|
Plik WixLocalization |
|
XLIFF 1.2 z obsługą obiektów do umieszczania |
|
Plik tłumaczenia XLIFF 2.0 |
|
Plik tłumaczenia XLIFF 2.0 z obsługą obiektów do umieszczania |
|
Excel Open XML |
|
XWiki Full Page |
|
XWiki Java Properties |
|
XWiki Page Properties |
|
Plik YAML |
Zmień zdarzenia¶
|
Zaktualizowano zasób |
|
Zakończono tłumaczenie |
|
Zmieniono tłumaczenie |
|
Dodano komentarz |
|
Dodano sugestię |
|
Dodano tłumaczenie |
|
Przetłumaczono automatycznie |
|
Zaakceptowano sugestię |
|
Przywrócono tłumaczenie |
|
Wysłano tłumaczenie |
|
Dodano ciąg źródłowy |
|
Zablokowano komponent |
|
Odblokowano komponent |
|
Scommitowano zmiany |
|
Wypchnięto zmiany |
|
Zresetowano repozytorium |
|
Scalono repozytorium |
|
Wykonano rebase repozytorium |
|
Nie udało się scalić repozytorium |
|
Nie udało się wykonać rebase repozytorium |
|
Nie udało się przetworzyć |
|
Usunięto tłumaczenie |
|
Usunięto sugestię |
|
Zastąpiono tłumaczenie |
|
Nie udało się wypchnąć repozytorium |
|
Usunięto sugestię podczas czyszczenia |
|
Zmieniono ciąg źródłowy |
|
Dodano ciąg |
|
Zmieniono zbiorczy status |
|
Zmieniono widoczność |
|
Dodano użytkownika |
|
Usunięto użytkownika |
|
Tłumaczenie zatwierdzone |
|
Oznaczono do edycji |
|
Usunięto komponent |
|
Usunięto projekt |
|
Zmieniono nazwę projektu |
|
Zmieniono nazwę komponentu |
|
Przeniesiono komponent |
|
Dołączył współtwórca |
|
Opublikowano ogłoszenie |
|
Wyzwolono alert |
|
Dodano język |
|
Zażądano języka |
|
Utworzono projekt |
|
Utworzono komponent |
|
Zaproszono użytkownika |
|
Otrzymano powiadomienie o repozytorium |
|
Zastąpiono tłumaczenie przesłanym plikiem |
|
Zmieniono licencję |
|
Zmieniono umowę licencyjną dla współtwórców |
|
Dodano zrzutu ekranu |
|
Przesłano zrzut ekranu |
|
Zaktualizowano ciąg w repozytorium |
|
Zainstalowano dodatek |
|
Zmieniono konfigurację dodatku |
|
Odinstalowano dodatek |
|
Usunięto ciąg |
|
Usunięto komentarz |
|
Rozwiązano komentarz |
|
Zaktualizowane wyjaśnienie |
|
Usunięto kategorię |
|
Zmieniono nazwę kategorii |
|
Przeniesiono kategorię |
|
Zapisywanie ciągu nie powiodło się |
|
Dodano ciąg w repozytorium |
|
Zaktualizowano ciąg w przesłanym pliku |
|
Dodano ciąg w przesłanym pliku |
|
Zaktualizowano tłumaczenie przez przesłanie źródło |
|
Zakończono tłumaczenie komponentu |
|
Zastosowano wymuszoną kontrolę |
|
Propagowana zmiana |
|
Przesłano plik |
|
Zaktualizowano dodatkowe flagi |
|
Przesłano czcionkę |
|
Zmieniono czcionkę |
|
Usunięto czcionkę |
|
Wymuszono synchronizację tłumaczeń |
|
Wymuszono ponowne skanowanie tłumaczeń |
|
Usunięto zrzut ekranu |
|
Dodano etykietę |
|
Usunięto etykietę |
|
Czyszczenie repozytorium |
|
Dodano ciąg źródłowy w przesłanym pliku |
|
Dodano ciąg źródłowy do repozytorium |
|
Project backed up |
|
Project restored |
|
Component restored |
|
User edit reverted |
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
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ř <[email protected]>
#
# SPDX-License-Identifier: GPL-3.0-or-later
"""Example pre commit script."""
from __future__ import annotations
from typing import ClassVar
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: ClassVar[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, automatic suggestions 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
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.