Shtesa

Add-ons provide ways to customize and automate the translation workflow. Admins can add and manage add-ons from the OperationsAdd-ons menu of each respective translation project or component. Add-ons can be also installed site-wide in Ndërfaqe administrimi.

Ndihmëz

You can also configure add-ons using API, DEFAULT_ADDONS, or 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.

../_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.

Përditë

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.

Built-in add-ons

Përkthim i automatizuar

Add-on ID:

weblate.autotranslate.autotranslate

Formësim:

mode

Mënyrë përkthim i automatizuar

Available choices:

suggest

Shtoje si sugjerim

translate

Shtoje si përkthim

fuzzy

Shtoje si “Lyp përpunim”

q

Kërkesë

Ju lutemi, kini parasysh se përkthimi i krejt vargjeve do të hedhë tej krejt përkthimet ekzistuese.

auto_source

Burim përkthimesh të automatizuar

Available choices:

others

Përbërës të tjerë përkthimi

mt

Përkthim nga makina

component

Përbërës

Jepni identifikuesin e një përbërësi për t’u përdorur si burim, mbajeni të zbrazët për të përdorur krejt përbërësit në projektin aktual.

engines

Motorë përkthimi nga makina

Motorë përkthimi nga makina

threshold

Prag vlerësimi

Triggers:

Add-on installation, Component update, Përditë, Event change

Përkthen automatikisht vargje duke përdorur përkthim nga makina ose nga përbërës të tjerë.

CDN përkthimesh JavaScript

Shtuar në versionin 4.2.

Add-on ID:

weblate.cdn.cdnjs

Formësim:

threshold

Prag përkthimi

Përqindja e vargjeve të përkthyer që duhen paraqitur që të përfshihet përkthimi.

css_selector

Përzgjedhës CSS

Përzgjedhës CSS për të pikasur elementë të përkthyeshëm.

cookie_name

Emër për cookie-n e gjuhës

Emër për cookie-n e cila depoziton parapëlqim gjuhe.

files

Përfto vargje prej kartelash HTML

Listë e emrave të kartelave në depon e tanishme ose URL-ra të largëta që duhen kontrolluar për vargje të përkthyeshëm.

Triggers:

Add-on installation, Përditë, Repository post-commit, Repository post-remove, Repository post-update

Boton përkthime te një rrjet shpërndarjeje lënde për përdorim në përkthime JavaScript-i ose HTML-je.

Can be used to localize static HTML pages, or to load localization in the JavaScript code.

Generates a unique URL for your component you can include in HTML pages to localize them. See Translating HTML and JavaScript using Weblate CDN for more details.

Shënim

This add-on requires additional configuration on the Weblate server. LOCALIZE_CDN_PATH configures where generated files will be written (on a filesystem), and LOCALIZE_CDN_URL defines where they will be served (URL). Serving of the files is not done by Weblate and has to be set up externally (typically using a CDN service).

This add-on is configured on Hosted Weblate and serves the files via https://weblate-cdn.com/.

Translation files CDN

Shtuar në versionin 2026.5.

Add-on ID:

weblate.cdn.files

Formësim:

This add-on has no configuration.

Triggers:

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

Publishes translation files into a content delivery network.

Publishes translation files without converting them to another format. Files are written below the add-on specific CDN directory and served from LOCALIZE_CDN_URL/<add-on UUID>/. Single-file translations use the language code and original file extension, for example cs.json or de.po. Multi-file translations are served below the language code using paths relative to the translation directory. Monolingual components include the source language file, while bilingual components publish only target-language files. See CDN përkthimesh for secure serving guidance.

Hiqni vargje të zbrazët

Shtuar në versionin 4.4.

Add-on ID:

weblate.cleanup.blank

Formësim:

This add-on has no configuration.

Triggers:

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

Heq nga kartelat e përkthimit vargje pa përkthim.

Use this to not have any empty strings in translation files (for example if your localization library displays them as missing instead of falling back to the source string).

Spastro kartela përkthimi

Add-on ID:

weblate.cleanup.generic

Formësim:

This add-on has no configuration.

Triggers:

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

Përditësoni krejt kartelat e përkthimit që të përputhen me kartelën bazë njëgjuhëshe. Për shumicën e formateve të kartelave, kjo do të thotë heqje zërash të ndenjur përkthimi, që s’janë më të pranishëm te kartela bazë.

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

Shtoni gjuhë që mungojnë

Add-on ID:

weblate.consistency.languages

Formësim:

This add-on has no configuration.

Triggers:

Add-on installation, Përditë, Repository post-add

Siguron përdorimin e një grupi të qëndrueshëm gjuhë për krejt përbërësit brenda një projekti.

Shënim

The components shared from other projects are not considered in this.

Missing languages are checked once every 24 hours, and when new languages are added in Weblate.

Unlike most others, this add-on affects the whole project.

Ndihmëz

Auto-translate the newly added strings with Përkthim i automatizuar.

Pikasje përbërësish

Add-on ID:

weblate.discovery.discovery

Formësim:

match

Shprehje e rregullt kundrejt të cilës duhen kërkuar përputhje te kartela përkthimi

Shprehja e rregullt duhet të përkufizojë grupe të emërtuar për përbërë dhe gjuhë.

file_format

Format kartelash

Format kartelash

name_template

Përshtatni emrin e përbërësit

Use Django template syntax. This template must include {{ component }}.

base_file_template

Përcaktoni emër kartele bazë njëgjuhëshe

Për kartela përkthimi dygjuhëshe, lëreni të zbrazët. Kur ujdiset, kjo gjedhe duhet të përfshijë {{ component }}.

new_base_template

Përcaktoni kartelën bazë për përkthime të reja

Emër kartele i kartelës së përdorur për krijim përkthimesh të reja. Për gettext zgjidhni kartelë .pot. Kjo gjedhe duhet të përfshijë {{ component }}.

intermediate_template

Kartelë gjuhe ndërmjetëse

Emër kartele për kartelë ndërmjetëse përkthimi. Në më të shumtën e rasteve kjo është kartela përkthim e furnizuar nga zhvilluesit dhe përdoret gjatë krijimit të vargjeve faktike burim. Kjo gjedhe duhet të përfshijë {{ component }}.

language_regex

Filtër gjuhësh

Shprehje e rregullt kundrejt së cilës të filtrohen kartela përkthimi, kur skanohet për maskë kartelash.

copy_addons

Klono shtesa prej përbërësit kryesor te të reja të sapokrijuara

remove

Hiq përbërës për kartela që s’ekzistojnë

Triggers:

Add-on installation, Repository post-update

Shton ose heq automatikisht përbërës projekti, bazuar te ndryshime kartelash nën sistem kontrolli versionesh.

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 component and language named 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_template and at least one translation file matching match.

Worked example: news_<lang>.md

This is a common filename-based language variant layout:

  • docs/news_en.md

  • docs/news_cs.md

  • docs/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.

Shprehje e rregullt:

(?:(?P<path>.*/))?(?P<component>.+?)_(?P<language>[A-Za-z]{2,3}(?:[_-][A-Za-z0-9]+)*)\.(?P<extension>[^/.]+)

Emër përbërësi:

{{ component }}

Discovered file masks:
  • docs/news_*.md

  • docs/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.

You can use Django template markup in all filename fields, for example:

{{ component }}

Component name parsed from the component match group

{{ component|title }}

Emër kartele përbërësi me shkronjën e parë të madhe

{{ path }}: {{ component }}

Custom match group from the regular expression

Once you hit Save, a preview of matching components will be presented, from where you can check whether the configuration actually matches your needs:

../_images/addon-discovery.webp

Component discovery examples

The worked example above covers the most common filename-based variant layout. The following examples show other repository structures you can match.

Një dosje për gjuhë

Një dosje për gjuhë, që përmban kartela përkthimi për përbërësit.

Shprehje e rregullt:

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

Kartela me përputhje:
  • cs/application.po

  • cs/website.po

  • de/application.po

  • de/website.po

Skemë vendoresh gettext

Strukturë e zakonshme për depozitim kartelash PO gettext.

Shprehje e rregullt:

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

Kartela me përputhje:
  • locale/cs/LC_MESSAGES/application.po

  • locale/cs/LC_MESSAGES/website.po

  • locale/de/LC_MESSAGES/application.po

  • locale/de/LC_MESSAGES/website.po

Emra kompleksë kartelash

Përdorim si i emrit të përbërësit, ashtu edhe i gjuhës, brenda emri kartele.

Shprehje e rregullt:

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

Kartela me përputhje:
  • src/locale/application.cs.po

  • src/locale/website.cs.po

  • src/locale/application.de.po

  • src/locale/website.de.po

Kod gjuhe i përsëritur

Përdorim gjuhe si në shteg, ashtu edhe në emër kartele.

Shprehje e rregullt:

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

Kartela me përputhje:
  • locale/cs/application/cs.po

  • locale/cs/website/cs.po

  • locale/de/application/de.po

  • locale/de/website/de.po

Nda vargje Android

Vargje burimesh Android, ndarë në disa kartela.

Shprehje e rregullt:

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

Kartela me përputhje:
  • res/values-cs/strings-about.xml

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

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

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

Përkon me shtigje të shumtë

Projekt Maven me shumë module, me përkthime vetish Java.

Shprehje e rregullt:

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

Emër përbërësi:

{{ originalHierarchy }}: {{ component }}

Kartela me përputhje:
  • 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

Ndihmëz

Component discovery add-on uses URL të brendshme 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 Depo kodi burim field (in OperationsSettingsVersion control system) of each respective component. This saves time with configuration and system resources too.

Ndihmëz

Ensure the new component contains the full set of translatable languages with Shtoni gjuhë që mungojnë.

Fedora Messaging

Shtuar në versionin 5.15.

Add-on ID:

weblate.fedora_messaging.publish

Formësim:

events

Ndryshoni veprimtari

Ndryshoni veprimtari

amqp_host

AMQP broker host

The AMQP broker to connect to.

amqp_ssl

Përdor SSL për lidhje AMQP

ca_cert

Dëshmi AD

Paketë dëshmish AD të koduara si PEM, e përdorur për të vlerësuar dëshminë e paraqitur nga shërbyesi.

client_key

Kyç SSL klienti

Kyç SSL privat klienti, i koduar si PEM.

client_cert

Dëshmi SSL klienti

Dëshmi SSL klienti e koduar si PEM.

Triggers:

Event change

Sends notifications to a Fedora Messaging compatible AMQP exchange.

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_id

Numerical ID of change

action

Verbose name of the change.

timestamp

ISO formatted timestamp

target

New value of the change (eg. new translation of the string)

old

Old value of the change (eg. previous translation of the string)

source

Source string.

url

Absolute URL to view the related object.

author

Author username (this can be different from user for example when accepting suggestions)

user

Acting username

project

Project slug

component

Component slug

translation

Kod gjuhe përkthimi

Message headers

There are additional headers which you might utilize for routing as well:

action

Verbose name of the change.

project

Project slug

component

Component slug

Example messages

Repository merge event:

{
  "id": 1,
  "action": "Merged repository",
  "timestamp": "2017-06-15T11:30:47.325000+00:00",
  "url": "http://example.com/projects/test/test/",
  "component": "test"
}

New source string event:

{
  "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"]
}

Resource update event:

{
  "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"
}

Project removal event:

{
  "id": 9,
  "action": "Removed project",
  "timestamp": "2019-10-17T15:57:08.559420+00:00",
  "target": "test",
  "user": "testuser"
}

New contributor event:

{
  "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"]
}

New translation event:

{
  "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"]
}

Përpunim në masë

Add-on ID:

weblate.flags.bulk

Formësim:

q

Kërkesë

state

Gjendje për t’u caktuar

Available choices:

-1

Mos e ndryshoni

10

Lyp përpunim

11

Lyp përpunim (Lyp rishkrim)

12

Lyp përpunim (Lyp kontroll)

20

Të përkthyer

30

Të miratuar

add_flags

Flamurka përkthimi për shtim

remove_flags

Flamurka përkthimi për heqje

add_labels

Etiketa për shtim

remove_labels

Etiketa për heqje

Triggers:

Add-on installation, Component update

Përpunim në masë vargjesh shenjash, etiketash ose gjendjesh.

Shembuj:

Label new strings automatically

Search query

NOT has:label

Etiketa për shtim

recent

Marking all Kartela tejtëdhënash shitoreje aplikacionesh changelog strings read-only

Search query

language:en AND key:changelogs/

Flamurka përkthimi për shtim

read-only

Marking certain strings read-only

Search query

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

Flamurka përkthimi për shtim

read-only

Vëru shenjë përkthimeve të pandryshuara si “Lyp rishkrim”

Add-on ID:

weblate.flags.same_edit

Formësim:

This add-on has no configuration.

Triggers:

Unit pre-create

Kurdo që importohet një varg i ri i përkthyeshëm nga VCS-ja dhe përputhet me vargun burim, në Weblate i vihet shenjë si një që ka nevojë të rishkruhet. Kjo është veçanërisht e dobishme për formate kartelash që përfshijnë vargje burim për vargjet e papërkthyer.

Ndihmëz

You might also want to tighthen the Përkthim i pandryshuar check by adding strict-same flag to Flamurka përkthimi.

Shihni edhe

Translation states

Vëru shenjë vargjeve të reja burim si “Lyp kontroll”

Add-on ID:

weblate.flags.source_edit

Formësim:

This add-on has no configuration.

Triggers:

Unit pre-create

Kurdo që importohet një varg i ri burim nga VCS-ja, në Weblate i vihet shenjë si “Lyp kontroll”. Në këtë mënyrë mund të filtroni lehtësisht dhe përpunoni vargje burim shkruar nga zhvilluesit.

Shihni edhe

Translation states

Vëru shenjë përkthimeve të reja si “Lyp rishkrim”

Add-on ID:

weblate.flags.target_edit

Formësim:

This add-on has no configuration.

Triggers:

Unit pre-create

Kurdo që importohet një varg i ri i përkthyeshëm nga VCS-ja, në Weblate i vihet shenjë si “Lyp rishkrim”. Në këtë mënyrë mund të filtroni lehtësisht dhe përpunoni vargje të përkthyeshëm krijuar nga zhvilluesit.

Shihni edhe

Translation states

Vëru shenjë përkthimeve të përditësuara nga depoja si “Lyp rishkrim”

Add-on ID:

weblate.flags.target_repo_update

Formësim:

This add-on has no configuration.

Triggers:

Unit post-sync

Kurdo që ndryshohet nga VCS-ja një përkthim vargu, në Weblate i vihet shenjë si një që lyp rishkrim. Veçanërisht e posaçme nëse kartelat e përkthimeve përditësohen shpesh.

Shihni edhe

Translation states

Plotëso vargje vetëm për lexim me burimin

Shtuar në versionin 4.18.

Add-on ID:

weblate.generate.fill_read_only

Formësim:

This add-on has no configuration.

Triggers:

Add-on installation, Component update, Përditë

Plotëson përkthimin e vargjeve “vetëm për lexim” me vargun burim.

Prodhues statistikash

Add-on ID:

weblate.generate.generate

Formësim:

filename

Emër i kartelës së prodhuar

template

Lëndë e kartelës së prodhuar

Triggers:

Add-on installation, Repository pre-commit

Prodhon një kartelë që përmban të dhëna të hollësishme rreth gjendjes së përkthimit.

Mund të përdorni gjedhe Django si për emër përbërësi, ashtu edhe për lëndë, për një përshkrim të hollësishëm të sintaksës Markup, shihni Template markup.

For example generating a summary file for each translation:

Emër i kartelës së prodhuar

locale/{{ language_code }}.json

Lëndë
{
   "language": "{{ language_code }}",
   "strings": "{{ stats.all }}",
   "translated": "{{ stats.translated }}",
   "last_changed": "{{ stats.last_changed }}",
   "last_author": "{{ stats.last_author }}",
}

Shihni edhe

Template markup

Plotëso paraprakisht përkthimin me burimin

Shtuar në versionin 4.11.

Add-on ID:

weblate.generate.prefill

Formësim:

This add-on has no configuration.

Triggers:

Add-on installation, Component update, Përditë

Mbush vargjet e përkthimit me vargun burim.

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.

Prodhim pseudovendoreje

Shtuar në versionin 4.5.

Add-on ID:

weblate.generate.pseudolocale

Formësim:

source

Vargjet e burimit

target

Përkthimi i synuar

Krejt vargjet në këtë përkthim do të mbishkruhen

prefix

Paravendosni tekst statik

var_prefix

Paravendosni tekst të ndryshueshëm

suffix

U shtua tekst statik në fund

var_suffix

U shtua tekst i ndryshueshëm në fund

var_multiplier

Shumëfishues teksti të ndryshueshëm

Sa herë të përsëritet pjesa e ndryshores, në varësi të gjatësisë së vargut burim.

include_readonly

Përfshi vargje vetëm për lexim

Triggers:

Add-on installation, Component update, Përditë

Prodhon një përkthim duke shtuar automatikisht parashtesë dhe prapashtesë te vargjet burim.

Pseudolocales are useful to find strings that are not prepared for localization. This is done by altering all translatable source strings to make it easy to spot unaltered strings when running the application in the pseudolocale language.

Finding strings whose localized counterparts might not fit the layout is also possible.

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.

Vargjet do të prodhohen duke përkthyer rregullsinë vijuese:

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

Ndihmëz

You can use real languages for testing, but there are dedicated pseudolocales available in Weblate - en_XA and ar_XB.

Ndihmëz

You can use this add-on to start translation to a new locale of an existing language or similar language. Once you add the translation to the component, follow to the add-on. Example: If you have fr and want to start fr_CA translation, simply set fr as the source, fr_CA as the target, and leave the prefix and suffix blank.

Uninstall the add-on once you have the new translation filled to prevent Weblate from changing the translations made after the copying.

Kontribues në koment

Add-on ID:

weblate.gettext.authors

Formësim:

This add-on has no configuration.

Triggers:

Repository pre-commit

Përditëson pjesën e komentit te kryet e kartelës PO, për të përfshirë emrat e kontribuesve dhe vite kontributi.

The PO file header will look like this:

# 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.

Përditësoni ndryshoren ALL_LINGUAS te kartela «configure»

Add-on ID:

weblate.gettext.configure

Formësim:

This add-on has no configuration.

Triggers:

Add-on installation, Përditë, Repository post-add, Repository post-remove

Përditëson ndryshoren ALL_LINGUAS te kartelat «configure», «configure.in» ose «configure.ac», kur shtohet ose hiqet një përkthim.

Updates the ALL_LINGUAS variable in configure, configure.in or any configure.ac files, when a translation is added or removed.

Përshtatni përfundimin e gettext-it

Hequr në versionin 5.13: Replaced by Parametra formati kartelash.

Update gettext template (Django)

Shtuar në versionin 5.17.

Add-on ID:

weblate.gettext.django

Formësim:

interval

Shpeshti përditësimesh

Sa shpesh duhet të përditësojë shtesa kartelën POT, kur rifreskohet përbërësi.

Available choices:

daily

Përditë

weekly

Javore

monthly

Mujore

normalize_header

Normalizo krye POT

Përditëson krye gettext dhe zëvendëson komente për vendmbajtëse në POT.

Triggers:

Add-on installation, Manual trigger, Repository post-update

Përditëson gjedhen gettext duke përdorur urdhrin e brendshëm të Django-s makemessages.

Përditëso kartelën LINGUAS

Add-on ID:

weblate.gettext.linguas

Formësim:

This add-on has no configuration.

Triggers:

Add-on installation, Përditë, Repository post-add, Repository post-remove

Përditëson kartelën LINGUAS kur shtohet ose hiqet një përkthim.

Përditëso kartelë POT (Meson)

Shtuar në versionin 5.17.

Add-on ID:

weblate.gettext.meson

Formësim:

interval

Shpeshti përditësimesh

Sa shpesh duhet të përditësojë shtesa kartelën POT, kur rifreskohet përbërësi.

Available choices:

daily

Përditë

weekly

Javore

monthly

Mujore

normalize_header

Normalizo krye POT

Përditëson krye gettext dhe zëvendëson komente për vendmbajtëse në POT.

comment_mode

Komente kodi

Zgjidhni nëse xgettext s’duhet të përftojë fare komente, krejt komentet apo vetëm komente të shënuar me një etiketë specifike.

Available choices:

off

Mos i përfto komentet

all

Përftoji krejt komentet

tagged

Përfto komente me etiketë

comment_tag

Etiketë komenti

Etiketë dhënë xgettext-it për përftim komentesh, kur përdoret mënyra “komente me etiketë”.

checks

Kontrolle xgettext

Kontrolle të tjerë vleftësimi xgettext që duhen aktivizuar për mesazhet e përftuar.

Available choices:

ellipsis-unicode

ellipsis-unicode

space-ellipsis

space-ellipsis

quote-unicode

quote-unicode

bullet-unicode

bullet-unicode

keyword

Fjalëkyç shtesë

Fjalëkyç ekstra opsional dhënë xgettext-it duke përdorur –keyword.

preset

Paracaktim Meson

Paracaktim i brendshëm argumentesh xgettext-i që përkojnë me integrimin Meson të gettext-it. Paracaktimi GLib shton fjalëkyçin dhe mundësi “format-flag” të përdorura në ndihmësi gettext i Meson-it.

Available choices:

glib

GLib

Triggers:

Add-on installation, Manual trigger, Repository post-update

Përditëson gjedhen gettext duke përdorur konvencione Meson gettext-i.

Prodho kartela MO

Add-on ID:

weblate.gettext.mo

Formësim:

path

Shteg për te kartela MO e prodhuar

Nëse s’është përcaktuar, do të përdoret vendndodhja e kartelës PO.

fuzzy

Përfshi vargje që lypin përpunim

Vargjet që lypin përpunim (të turbullt) zakonisht s’janë gati për t’u përdorur si përkthime.

Triggers:

Repository pre-commit

Prodhon automatikisht një kartelë MO për çdo kartelë PO të ndryshuar.

The location of the generated MO file can be customized and the field for it uses Template markup.

Shënim

If a translation is removed, its PO file will be deleted from the repository, but the MO file generated by this add-on will not. The MO file must be removed from the upstream manually.

Përditësoni kartela PO, që të përputhen me POT (msgmerge)

Ndryshuar në versionin 5.13: Settings configuration has been moved to Parametra formati kartelash.

Add-on ID:

weblate.gettext.msgmerge

Formësim:

This add-on has no configuration.

Triggers:

Add-on installation, Repository post-update

Përditëson krejt kartelat PO (siç formësohen nga “File mask”) për përputhje me kartelën POT (siç formësohet nga “Gjedhe për përkthime të reja”) duke përdorur funksionin “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.

Përditëso kartelë POT (Sphinx)

Shtuar në versionin 5.17.

Add-on ID:

weblate.gettext.sphinx

Formësim:

interval

Shpeshti përditësimesh

Sa shpesh duhet të përditësojë shtesa kartelën POT, kur rifreskohet përbërësi.

Available choices:

daily

Përditë

weekly

Javore

monthly

Mujore

normalize_header

Normalizo krye POT

Përditëson krye gettext dhe zëvendëson komente për vendmbajtëse në POT.

filter_mode

Filtrim

Në u dashtë, hiq vargje që s’janë të dobishëm të përkthehen pas përftimi Sphinx.

Available choices:

none

Asnjë

weblate_docs

Dokumentin Weblate-i

Triggers:

Add-on installation, Manual trigger, Repository post-update

Përditëson gjedhen gettext duke përdorur ndërtuesin gettext të Sphinx-it, pa ngarkuar formësim projekti.

Përditëso kartelën POT (xgettext)

Shtuar në versionin 5.17.

Add-on ID:

weblate.gettext.xgettext

Formësim:

interval

Shpeshti përditësimesh

Sa shpesh duhet të përditësojë shtesa kartelën POT, kur rifreskohet përbërësi.

Available choices:

daily

Përditë

weekly

Javore

monthly

Mujore

normalize_header

Normalizo krye POT

Përditëson krye gettext dhe zëvendëson komente për vendmbajtëse në POT.

comment_mode

Komente kodi

Zgjidhni nëse xgettext s’duhet të përftojë fare komente, krejt komentet apo vetëm komente të shënuar me një etiketë specifike.

Available choices:

off

Mos i përfto komentet

all

Përftoji krejt komentet

tagged

Përfto komente me etiketë

comment_tag

Etiketë komenti

Etiketë dhënë xgettext-it për përftim komentesh, kur përdoret mënyra “komente me etiketë”.

checks

Kontrolle xgettext

Kontrolle të tjerë vleftësimi xgettext që duhen aktivizuar për mesazhet e përftuar.

Available choices:

ellipsis-unicode

ellipsis-unicode

space-ellipsis

space-ellipsis

quote-unicode

quote-unicode

bullet-unicode

bullet-unicode

keyword

Fjalëkyç shtesë

Fjalëkyç ekstra opsional dhënë xgettext-it duke përdorur –keyword.

input_mode

Jepni burim

Zgjidhni nëse xgettext-i duhet të lexojë kartela burim nga shprehje të rregullta globale apo nga një manifest POTFILES/POTFILES.in.

Available choices:

patterns

Rregullsi kartele burim

potfiles

Manifest POTFILES

language

Gjuhë xgettext

Gjuhë programimi kaluar xgettext-it, për shembull, Python, ose C.

source_patterns

Rregullsi kartele burim

Newline-separated repository-relative glob patterns for files to extract with xgettext.

potfiles_path

Shteg KARTELASHPOT

Shteg kundrejt depos, për te POTFILES apo POTFILES.in. Zërat ftillohen kundrejt rrënjës së depos. Në qoftë i pranishëm pas manifestit, POTFILES.skip përjashton nga përftimi kartelat e radhitura në të.

Triggers:

Add-on installation, Manual trigger, Repository post-update

Përditëson gjedhen gettext duke përdorur xgettext mbi kartelat burim të përzgjedhura.

Kryej «squash» për depozitime Git

Add-on ID:

weblate.git.squash

Formësim:

squash

Ngjeshje parashtrimesh

Available choices:

all

Krejt depozitimet në një të tilli

language

Për gjuhë

file

Për kartelë

author

Për autor

append_trailers

Append trailers to squashed commit message

Rreshtat mbyllës janë rreshta që duken të ngjashëm me krye RFC 822 email-esh, në fund të pjesës që ndryshe do të ishte në formë të lirë, te një mesazh depozitimi, bie fjala, “Me bashkëautorësinë e: …”.

commit_message

Mesazh depozitimi

Do të përdoret ky mesazh parashtrimi, në vend se mesazhet e kombinuar të parashtrimit prej parashtrimesh të ngjeshur.

Triggers:

Add-on installation, Repository post-commit

Kryej «squash» për depozitime Git, përpara kryerjes së push-it për ndryshimet.

Ndihmëz

To avoid unnecessary conflicts, it is recommended to configure automatic receiving of upstream changes by webhooks or API, see Përditësim deposh.

Git commits can be squashed prior to pushing changes in one of the following modes:

  • Krejt depozitimet në një të tilli

  • Për gjuhë

  • Për kartelë

  • Për autor

Mesazhet origjinale të depozitimeve mbahen, por autorësia humb, veç në qoftë përzgjedhur Për autor, ose mesazhi i depozitimit është përshtatur për ta përmbajtur atë.

The original commit messages can optionally be overridden with a custom commit message.

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.

Përshtatni përfundim JSON-i

Ndryshuar në versionin 5.12: Avoid spaces after separators option added.

Hequr në versionin 5.13: Replaced by Parametra formati kartelash.

Ktheje depon te gjendja e burimit

Shtuar në versionin 5.17.

Add-on ID:

weblate.hosted.reset

Formësim:

This add-on has no configuration.

Triggers:

Add-on installation, Përditë

Bën hedhjen tej përnatë të krejt ndryshimeve te depoja Weblate.

Formaton kartelën e vetive Java

Add-on ID:

weblate.properties.sort

Formësim:

case_sensitive

Aktivizo renditje kyçesh që merr parasysh shkrimin me të madhe a me të vogël

Triggers:

Repository pre-commit

Formaton dhe rendit kartelën e vetive Java.

  • Consolidates newlines to Unix ones.

  • Uppercase formatting of Unicode escape sequences (in case they are present).

  • Strips blank lines and comments.

  • Sorts the strings by the keys.

  • Drops duplicate strings.

Heqje komentesh të vjetruar

Add-on ID:

weblate.removal.comments

Formësim:

age

Ditë për t’u mbajtur

Triggers:

Add-on installation, Përditë

Caktoni kohë për heqje komentesh.

This can be useful to remove old comments which might have become outdated. Use with care as comments getting old does not mean they have lost their importance.

Heqje sugjerimesh të vjetruar

Add-on ID:

weblate.removal.suggestions

Formësim:

age

Ditë për t’u mbajtur

votes

Prag votimi

Threshold for removal. Leave empty to remove suggestions regardless of votes. This field has no effect with voting turned off.

Triggers:

Add-on installation, Përditë

Caktoni kohë për heqje sugjerimesh.

Can be very useful in connection with suggestion voting (see Peer review) to remove suggestions which don’t receive enough positive votes in a given timeframe.

Përditësoni kartela RESX

Add-on ID:

weblate.resx.update

Formësim:

This add-on has no configuration.

Triggers:

Add-on installation, Repository post-update

Përditëso krejt kartelat e përkthimit për t’i përputhur me kartelën bazë njëgjuhëshe të upstream-it. Kartelat e papërdorura hiqen, dhe të rejat shtohen si kopje të vargjeve burim.

Ndihmëz

Use Spastro kartela përkthimi if you only want to remove stale translation keys.

Webhook-ë Slack-u

Shtuar në versionin 5.12.

Add-on ID:

weblate.webhook.slack

Formësim:

webhook_url

URL Webhook-u

events

Ndryshoni veprimtari

Ndryshoni veprimtari

Triggers:

Event change

Dërgon njoftim te një kanal Slack, bazuar në veprimtaritë e përzgjedhura.

Sinjalizim

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.

Ndihmëz

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

Webhook

Shtuar në versionin 5.11.

Ndryshuar në versionin 5.15: Compliance of the secret length with the specification is now validated.

Add-on ID:

weblate.webhook.webhook

Formësim:

webhook_url

URL Webhook-u

secret

E fshehtë webhook-u

E fshehta Standarde për Webhook-e është një varg i koduar si base64.

events

Ndryshoni veprimtari

Ndryshoni veprimtari

Triggers:

Event change

Dërgon njoftime shërbimeve të jashtëm bazuar në veprimtaritë e përzgjedhura, duke zbatuar specifikimet 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.

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

Përshtatni përfundim XML

Shtuar në versionin 4.15.

Hequr në versionin 5.13: Replaced by Parametra formati kartelash.

Përshtatni përfundim YAML

Hequr në versionin 5.13: Replaced by Parametra formati kartelash.

Common add-on parameters

Motorë përkthimi nga makina

Available choices:

alibaba

Alibaba

aws

Amazon Translate

anthropic

Anthropic

apertium-apy

Apertium APy

microsoft-translator

Azure AI Translator

azure-openai

Azure OpenAI

baidu

Baidu

cyrtranslit

CyrTranslit

deepl

DeepL

glosbe

Glosbe

google-translate-api-v3

Google Cloud Translation Advanced

google-translate

Google Cloud Translation Basic

ltengine

LTEngine

libretranslate

LibreTranslate

modernmt

ModernMT

mymemory

MyMemory

netease-sight

Netease Sight

ollama

Ollama

openai

OpenAI

sap-translation-hub

SAP Translation Hub

systran

Systran

weblate

Weblate

weblate-translation-memory

Weblate Translation Memory

yandex

Yandex

yandex-v2

Yandex v2

youdao-zhiyun

Youdao Zhiyun

tmserver

tmserver

Format kartelash

Available choices:

apple-xliff

XLIFF 1.2 me zgjerime Apple

appstore

Kartela tejtëdhënash shitoreje aplikacionesh

arb

Kartelë ARB

aresource

Varg Burimi Android

asciidoc

Kartelë AsciiDoc

ass

Kartelë titrash Advanced SubStation Alpha

catkeys

Haiku catkeys

cmp-resource

Compose Multiplatform Resource

csv

Kartelë CSV

csv-multi

Kartelë CSV shumëvlerëshe

csv-simple

Kartelë CSV e thjeshtë

dokuwiki

Kartelë tekst DokuWiki

dtd

Kartelë DTD

flatxml

Kartelë XML e sheshtë

fluent

Kartelë Fluent

formatjs

Kartelë JSON Format.JS

go-i18n-json

Kartelë JSON go-i18n v1

go-i18n-json-v2

Kartelë JSON go-i18n v2

go-i18n-toml

Kartelë TOML go-i18n

gotext

Kartelë JSON gotext

gwt

Veti GWT

html

Kartelë HTML

i18next

kartelë JSON i18next v3

i18nextv4

kartelë JSON i18next v4

idml

Kartelë IDML

ini

Kartelë INI

islu

Kartelë INI Setup Inno

joomla

Kartelë gjuhe Joomla

json

Kartelë JSON

json-nested

Kartelë strukture JSON të folezëzuar

laravel

Vargje PHP Lavarel

markdown

Kartelë Markdown

mdx

Kartelë MDX

mediawiki

Kartelë tekst MediaWiki

mi18n-lang

@draggable/kartelë gjuhësore i18n

moko-resource

Burim Mobile Kotlin

nextcloud-json

Kartelë JSON Nextcloud

odf

Kartelë OpenDocument

php

Vargje PHP

plainxliff

Kartelë përkthimi XLIFF 1.2

po

Kartelë PO gettext

po-mono

Kartelë PO gettext (njëgjuhëshe)

poxliff

XLIFF 1.2 me zgjerime gettext

properties

Java Properties

rc

Kartelë RC

resjson

Kartelë RESJSON

resourcedictionary

Kartelë ResourceDictionary

resx

Kartela burimesh .NET

ruby-yaml

Kartelë Ruby YAML

srt

Kartelë titrash SubRip

ssa

Kartelë titrash SubStation Alpha

strings

Vargje iOS

stringsdict

Kartelë Stringsdict

sub

Kartelë titrash DVD

tbx

Kartelë TermBase eXchange

toml

Kartelë TOML

ts

Kartelë përkthimi Qt Linguist

txt

Kartelë tekst i thjeshtë

webextension

Kartelë WebExtension JSON

wxl

Kartelë WixLocalization

xliff

XLIFF 1.2 me mbulim parametrash

xliff2

Kartelë përkthimi XLIFF 2.0

xliff2-placeables

Kartelë përkthimi XLIFF 1.2 me mbulim parametrash

xlsx

Excel Open XML

xwiki-fullpage

XWiki Full Page

xwiki-java-properties

XWiki Java Properties

xwiki-page-properties

XWiki Page Properties

yaml

Kartelë YAML

Ndryshoni veprimtari

Available choices:

0

Burimi u përditësua

1

U plotësua përkthim

2

U ndryshua përkthimi

3

U shtua koment

4

U shtua sugjerim

5

U shtua përkthim

6

Përkthyer në mënyrë të automatizuar

7

U pranua sugjerim

8

Përkthimi u kthye ku qe

9

U përditësua përkthim

13

U shtua varg burim

14

U kyç përbërës

15

U shkyç përbërës

17

U parashtruan ndryshime

18

U depozituan ndryshime

19

Për depon u krye “reset”

20

Depoja u përzje

21

Për depon u krye “rebase”

22

Dështoi përzierja e depos

23

Dështoi “rebase” e depos

24

Përtypja dështoi

25

U hoq përkthim

26

U hoq sugjerim

27

U zëvendësua përkthim

28

Dështoi push-i në depo

29

U hoq sugjerim gjatë pastrimit

30

U ndryshua varg burim

31

U shtua varg

32

Ndryshim masiv gjendjeje

33

U ndryshua dukshmëri

34

U shtua përdorues

35

U hoq përdorues

36

U miratua përkthim

37

Shënuar për përpunim

38

U hoq përbërës

39

U hoq projekt

41

U riemërtua projekt

42

U riemërtua përbërës

43

U lëviz përbërës

45

Erdhi kontribues

46

U postua njoftim

47

U shkaktua sinjalizim

48

U shtua gjuhë

49

U kërkua gjuhë

50

U krijua projekt

51

U krijua përbërës

52

U ftua përdorues

53

U mor njoftim depoje

54

U zëvendësua përkthim nga ngarkim

55

Licenca ndryshoi

56

Ndryshoi marrëveshje licence kontribuesish

57

U shtua foto ekrani

58

U ngarkua foto ekrani

59

Vargu u përditësua te depoja

60

Shtesa u instalua

61

Formësimi i shtesës ndryshoi

62

Shtesa u çinstalua

63

U hoq varg

64

U hoq koment

65

Çështja e komentit u zgjidh

66

U përditësua shpjegim

67

U hoq kategori

68

U riemërtua kategori

69

U hoq kategori

70

Dështoi ruajtje vargu

71

U shtua varg te depoja

72

U përditësua varg prej ngarkimi

73

U shtua varg te ngarkimi

74

U përditësua përkthim nga ngarkim burimi

75

U plotësua përkthim përbërësi

76

U zbatua kontroll me detyrim

77

U përhap ndryshimi

78

Kartela u ngarkua

79

U përditësuan flamurka shtesë

80

Shkronjat u ngarkuan

81

Ndryshuan shkronjat

82

U hoqën shkronja

83

Njëkohësim i detyruar përkthimesh

84

Riskanim i detyruar përkthimesh

85

Fotoja e ekranit u hoq

86

Etiketa u shtua

87

Etiketa u hoq

88

Pastrim depoje

89

U shtua varg burim te ngarkimi

90

U shtua varg burim te depoja

91

U kopjeruajt pprojekt

92

Projekti u rikthye

93

Përbërësi u rikthye

94

Përpunimi nga përdoruesi u rikthye

95

Ndryshuan rregullime projekti

96

Ndryshuan rregullime përbërësi

Customizing list of add-ons

The list of add-ons is configured by WEBLATE_ADDONS. To add another add-on, simply include the absolute class name in this setting.

Writing add-on

You can write your own add-ons too, create a subclass of weblate.addons.base.BaseAddon to define the add-on metadata, and then implement a callback to do the processing.

Shihni edhe

Developing add-ons

Executing scripts from add-on

Add-ons can also be used to execute external scripts. This used to be integrated in Weblate, but now you have to write some code to wrap your script with an add-on.

# Copyright © Michal Čihař <michal@weblate.org>
#
# 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"

For installation instructions see Custom quality checks, add-ons, automatic suggestions and auto-fixes.

The script is executed with the current directory set to the root of the VCS repository for any given component.

Additionally, the following environment variables are available:

WL_VCS

Sistem kontrolli versionesh i përdorur.

WL_REPO

Upstream repository URL.

WL_PATH

Shteg absolut për te depo VCS.

WL_BRANCH

Repository branch configured in the current component.

WL_FILEMASK

File mask for current component.

WL_TEMPLATE

Filename of template for monolingual translations (can be empty).

WL_NEW_BASE

Filename of the file used for creating new translations (can be empty).

WL_FILE_FORMAT

File format used in current component.

WL_LANGUAGE

Language of currently processed translation (not available for component-level hooks).

WL_PREVIOUS_HEAD

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

WL_COMPONENT_SLUG

Identifikues përbërësi i përdorur për të ndërtuar URL-në.

WL_PROJECT_SLUG

Identifikues projekti i përdorur për të ndërtuar URL-në.

WL_COMPONENT_NAME

Emër përbërësi.

WL_PROJECT_NAME

Emër projekti.

WL_COMPONENT_URL

URL përbërësi.

WL_ENGAGE_URL

Project engage URL.

Post-update repository processing

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

Pre-commit processing of translations

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.