Tillägg

Tillägg erbjuder möjligheter att anpassa och automatisera översättningsflödet. Administratörer kan lägga till och hantera tillägg från menyn OperationsAdd-ons i respektive översättningsprojekt eller komponent. Tillägg kan också installeras för hela webbplatsen i Hanteringsgränssnitt.

Råd

Du kan också konfigurera tillägg med hjälp av API-, DEFAULT_ADDONS eller install_addon.

../_images/addons.webp

Händelser som utlöser tillägg

Tilläggsinstallation

Aktiveras när tillägget installeras.

Komponentuppdatering

Aktiveras när en förändring sker i en komponent, till exempel:

  • Strängarna ändras i arkivet.

  • En sträng läggs till.

  • En ny översättning har lagts till.

Dagligen

Aktiveras dagligen, men tillägg delar vanligtvis upp den dagliga belastningen mellan komponenter beroende på BACKGROUND_TASKS.

Ändring av evenemang

Aktiveras efter att en ändringshändelse har skapats.

Repository efter tillägg

Aktiveras strax efter att den nya översättningen har lagts till och bekräftats.

Repository efter commit

Aktiveras strax efter att ändringarna har bekräftats.

Repository efter push

Aktiveras strax efter att arkivet har skickats uppströms.

Repository efter uppdatering

Aktiveras varje gång nya ändringar hämtas från uppströmsrepositoriet.

Repository pre-commit

Aktiveras precis innan ändringarna genomförs.

Repository före push

Aktiveras precis innan arkivet skickas uppströms.

Repository före uppdatering

Aktiveras precis innan uppdateringen av arkivet försöks.

Enhet efter sparande

Aktiveras direkt efter att strängen har sparats.

Enhet efter synkronisering

Aktiveras efter att strängen har synkroniserats med VCS.

Enhet förskapas

Aktiveras strax efter att den nyskapade strängen har sparats.

Inbyggda tillägg

Automatisk översättning

Tilläggs-ID:

weblate.autotranslate.autotranslate

Konfiguration:

mode

Automatiskt översättningsläge

Tillgängliga alternativ:

suggest

Lägg till som förslag

translate

Lägg till som översättning

fuzzy

Lägg till som ”Behöver åtgärdas”

q

Sökning

Observera att om du översätter alla strängar kommer alla befintliga översättningar att slängas.

auto_source

Källa för automatiserade översättningar

Tillgängliga alternativ:

others

Andra översättningskomponenter

mt

Maskinöversättning

component

Komponent

Ange URL-slug för den komponent som ska användas som källa, lämna tom för att använda alla komponenter i det aktuella projektet.

engines

Översättningsmotor

Översättningsmotor

threshold

Poänggräns

Utlösare:

Tilläggsinstallation, Komponentuppdatering, Dagligen, Ändring av evenemang

Översätter automatiskt strängar med maskinöversättning eller andra komponenter.

JavaScript-lokalisering CDN

Added in version 4.2.

Tilläggs-ID:

weblate.cdn.cdnjs

Konfiguration:

threshold

Översättningströskel

Den procentandel av översatta strängar som måste finnas för att översättningen ska inkluderas.

css_selector

CSS-väljare

CSS-väljare för att upptäcka lokaliserbara element.

cookie_name

Namn på språkcookie

Namn på cookie som lagrar språkinställningar.

files

Extrahera strängar från HTML-filer

Lista över filnamn i aktuella databas- eller fjärradresser som ska tolkas för översättningsbara strängar.

Utlösare:

Tilläggsinstallation, Dagligen, Repository efter commit, Repository efter uppdatering

Publicerar översättningar till content delivery network för användning i JavaScript eller HTML-lokalisering.

Kan användas för att lokalisera statiska HTML-sidor eller för att ladda lokalisering i JavaScript-koden.

Genererar en unik URL för din komponent som du kan inkludera i HTML-sidor för att lokalisera dem. Se Översättning av HTML och JavaScript med Weblate CDN för mer information.

Observera

Detta tillägg kräver ytterligare konfiguration på Weblate-servern. LOCALIZE_CDN_PATH konfigurerar var genererade filer ska skrivas (på ett filsystem) och LOCALIZE_CDN_URL definierar var de ska serveras (URL). Serveringen av filerna sköts inte av Weblate och måste konfigureras externt (vanligtvis med hjälp av en CDN-tjänst).

Detta tillägg är konfigurerat på Hosted Weblate och levererar filerna via https://weblate-cdn.com/.

Ta bort tomma strängar

Added in version 4.4.

Tilläggs-ID:

weblate.cleanup.blank

Konfiguration:

Detta tillägg har ingen konfiguration.

Utlösare:

Tilläggsinstallation, Repository efter commit, Repository efter uppdatering

Tar bort strängar utan en översättning från översättningsfiler.

Använd detta för att undvika tomma strängar i översättningsfiler (till exempel om ditt lokaliseringsbibliotek visar dem som saknade istället för att återgå till källsträngen).

Städa upp i översättningsfiler

Tilläggs-ID:

weblate.cleanup.generic

Konfiguration:

Detta tillägg har ingen konfiguration.

Utlösare:

Tilläggsinstallation, Repository efter uppdatering, Repository pre-commit

Uppdatera alla översättningsfiler så att de stämmer överens med den enspråkiga basfilen. För de flesta filformat betyder det att översättningsposter som inte finns kvar i basfilen kommer att raderas.

För format som innehåller ytterligare innehåll utöver översättningssträngar (såsom HTML-filer, Windows RC-filer eller OpenDocument-format) synkroniseras även översättningsfilen med basfilen.

Lägg till saknade språk

Tilläggs-ID:

weblate.consistency.languages

Konfiguration:

Detta tillägg har ingen konfiguration.

Utlösare:

Tilläggsinstallation, Dagligen, Repository efter tillägg

Säkerställer att en enhetlig uppsättning språk används för alla komponenter i ett projekt.

Observera

Komponenter som delas från andra projekt beaktas inte i detta.

Saknade språk kontrolleras en gång var 24:e timme, och när nya språk läggs till i Weblate.

Till skillnad från de flesta andra påverkar detta tillägg hela projektet.

Råd

Översätt automatiskt de nyligen tillagda strängarna med Automatisk översättning.

Komponentupptäckt

Tilläggs-ID:

weblate.discovery.discovery

Konfiguration:

match

Reguljärt uttryck för att matcha översättningsfiler mot

file_format

Filformat

Filformat

name_template

Anpassa komponentnamnet

base_file_template

Definiera den enspråkiga basspråkfilen

Lämna tom för tvåspråkiga översättningsfiler.

new_base_template

Definiera basfil för nya översättningar

Filnamn på fil som används för att skapa nya översättningar. Välj .pot-fil för gettext.

intermediate_template

Mellanliggande språkfil

Filnamn för mellanliggande översättningsfil. I de flesta fall är detta en översättningsfil som tillhandahålls av utvecklare och som används vid skapandet av faktiska källsträngar.

language_regex

Språkfilter

Reguljärt uttryck för att filtrera översättningsfiler vid sökning efter filmask.

copy_addons

Klona tillägg från huvudkomponenten till de nyligen skapade

remove

Ta bort komponenter för icke-befintliga filer

confirm

Jag bekräftar att ovanstående matchningar ser ut att vara korrekta

Utlösare:

Tilläggsinstallation, Repository efter uppdatering

Lägger till och tar bort projektkomponenter automatiskt baserat på filändringar i versionskontrollsystemet.

Matchningen görs med hjälp av reguljära uttryck som möjliggör komplex konfiguration, men det krävs viss kunskap för att göra detta. Några exempel på vanliga användningsfall finns i hjälpavsnittet för tillägget.

Det reguljära uttrycket som matchar översättningsfiler måste innehålla två namngivna grupper för att matcha komponent och språk. Alla namngivna grupper i det reguljära uttrycket kan användas som variabler i mallfälten.

Du kan använda Django-mallmarkeringar i alla filnamnsfält, till exempel:

{{ component }}

Komponent filnamn match

{{ component|title }}

Komponentfilnamn med stor begynnelsebokstav

{{ path }}: {{ component }}

Anpassad matchningsgrupp från det reguljära uttrycket

När du klickar på Spara visas en förhandsgranskning av matchande komponenter, där du kan kontrollera om konfigurationen verkligen motsvarar dina behov:

../_images/addon-discovery.webp

Exempel på komponentupptäckt

En mapp per språk

En katalog per språk som innehåller översättningsfiler för komponeter.

Reguljärt uttryck:

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

Filer som matchar:
  • cs/application.po

  • cs/website.po

  • de/application.po

  • de/website.po

Gettext-lokaliseringens layout

Vanlig struktur för att lagra gettext PO-filer.

Reguljärt uttryck:

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

Filer som matchar:
  • locale/cs/LC_MESSAGES/application.po

  • locale/cs/LC_MESSAGES/website.po

  • locale/de/LC_MESSAGES/application.po

  • locale/de/LC_MESSAGES/website.po

Komplexa filnamn

Använder både komponent- och språknamn i filnamn.

Reguljärt uttryck:

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

Filer som matchar:
  • src/locale/application.cs.po

  • src/locale/website.cs.po

  • src/locale/application.de.po

  • src/locale/website.de.po

Upprepad språkkod

Använder språk i både sökväg och filnamn.

Reguljärt uttryck:

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

Filer som matchar:
  • locale/cs/application/cs.po

  • locale/cs/website/cs.po

  • locale/de/application/de.po

  • locale/de/website/de.po

Dela Android-strängar

Android resurssträngar, dela i flera filer.

Reguljärt uttryck:

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

Filer som matchar:
  • res/values-cs/strings-about.xml

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

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

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

Matchning av flera sökvägar

Flermoduls Maven-projekt med översättningar av Java-egenskaper.

Reguljärt uttryck:

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

Komponentnamn:

{{ originalHierarchy }}: {{ component }}

Filer som matchar:
  • 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

Råd

Komponentupptäcktstillägget använder Weblates interna URL:er. Det är ett bekvämt sätt att dela VCS-inställningar mellan flera komponenter. Länkade komponenter använder det lokala arkivet för huvudkomponenten som konfigurerats genom att fylla i weblate://project/main-component i fältet Källkodsarkiv (i OperationsSettingsVersion control system) för respektive komponent. Detta sparar tid vid konfigurationen och även systemresurser.

Råd

Se till att den nya komponenten innehåller alla översättningsbara språk med Lägg till saknade språk.

Varning

För att upptäckas måste en ny komponent innehålla en fil som matchar base_file_template och minst en fil med ett namn som matchar match – dvs. komponenten måste innehålla en basspråkfil och minst en befintlig översättning. Annars kommer den att ignoreras.

Fedora Messaging

Added in version 5.15.

Tilläggs-ID:

weblate.fedora_messaging.publish

Konfiguration:

events

Ändringshändelser

Ändringshändelser

amqp_host

AMQP-brokervärd

AMQP-brokern som ska anslutas till.

amqp_ssl

Använd SSL för AMQP-anslutning

ca_cert

CA-certifikat

Paket med PEM-kodade CA-certifikat som används för att validera det certifikat som presenteras av servern.

client_key

Klient-SSL-nyckel

PEM-kodad privat SSL-nyckel för klient.

client_cert

SSL-certifikat för klienten

PEM-kodat SSL-certifikat för klient.

Utlösare:

Ändring av evenemang

Skickar aviseringar till en Fedora Messaging-kompatibel AMQP-växel.

Fedora Messaging är en AMQP-baserad publiceringsplattform för alla ändringar som sker i Weblate. Med hjälp av denna kan du koppla ytterligare tjänster till ändringar som sker i Weblate.

Meddelandeämne

Alla meddelanden har ämnet weblate.<action>.<project>.<component>.<translation>. Åtgärden är en textrepresentation i gemener av åtgärden med understreck istället för mellanslag, till exempel resource_update. Alla andra delar är valfria och representerar objektets slug eller en språkkod.

Meddelande

Kroppen består av följande fält (förutsatt att de är tillgängliga för evenemanget):

change_id

Numeriskt ID för ändring

action

Detaljerat namn på ändringen.

timestamp

Tidsstämpel i ISO-format

target

Nytt värde för ändringen (t.ex. ny översättning av strängen)

old

Gammalt värde för ändringen (t.ex. tidigare översättning av strängen)

source

Källsträng.

url

Absolut URL för att visa det relaterade objektet.

author

Författarens användarnamn (detta kan skilja sig från användarnamnet, till exempel när förslag accepteras)

user

Tillfälligt användarnamn

project

Projektslugg

component

Komponent slug

translation

Översättningsspråkkod

Meddelandehuvuden

Det finns ytterligare rubriker som du också kan använda för routning:

action

Detaljerat namn på ändringen.

project

Projektslugg

component

Komponent slug

Exempel på meddelanden

Händelse för sammanslagning av arkiv:

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

Ny källsträngshändelse:

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

Resursuppdateringsevenemang:

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

Projektborttagningsevenemang:

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

Nytt evenemang för bidragsgivare:

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

Nytt översättningsarrangemang:

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

Massredigering

Tilläggs-ID:

weblate.flags.bulk

Konfiguration:

q

Sökning

state

Tillstånd som ska sättas

Tillgängliga alternativ:

-1

Ändra inte

10

Behöver åtgärdas

11

Behöver redigeras (Behöver skrivas om)

12

Behöver redigeras (Behöver kontrolleras)

20

Översatt

30

Godkänd

add_flags

Översättningsflaggor att lägga till

remove_flags

Översättningsflaggor att ta bort

add_labels

Etiketter att lägga till

remove_labels

Etiketter att ta bort

Utlösare:

Tilläggsinstallation, Komponentuppdatering

Massredigering av flaggor, etiketter eller strängstatus.

Exempel:

Märk nya strängar automatiskt

Sökfråga

NOT has:label

Etiketter att lägga till

senaste

Markera alla Metadata-filer för App store-ändringsloggsträngar som skrivskyddade

Sökfråga

language:en AND key:changelogs/

Översättningsflaggor att lägga till

read-only

Markera vissa strängar som skrivskyddade

Sökfråga

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

Översättningsflaggor att lägga till

read-only

Markera oförändrade översättningar som ”Behöver skrivas om”

Tilläggs-ID:

weblate.flags.same_edit

Konfiguration:

Detta tillägg har ingen konfiguration.

Utlösare:

Enhet förskapas

När en ny översättningsbar sträng importeras från VCS och den matchar en källsträng, markeras den som att den behöver skrivas om i Weblate. Detta är särskilt användbart för filformat som innehåller källsträngar för oöversatta strängar.

Råd

Du kanske också vill skärpa kontrollen Oförändrad översättning genom att lägga till flaggan strict-same till Översättningsflaggor.

Markera nya källsträngar som ”Behöver kontrolleras”

Tilläggs-ID:

weblate.flags.source_edit

Konfiguration:

Detta tillägg har ingen konfiguration.

Utlösare:

Enhet förskapas

När en ny källsträng importeras från VCS markeras den som att den behöver kontrolleras i Weblate. På så sätt kan du enkelt filtrera och redigera källsträngar som skrivits av utvecklarna.

Markera nya översättningar som ”Behöver omskrivning”

Tilläggs-ID:

weblate.flags.target_edit

Konfiguration:

Detta tillägg har ingen konfiguration.

Utlösare:

Enhet förskapas

När en ny översättningsbar sträng importeras från VCS markeras den som omskrivningsbar i Weblate. På så sätt kan du enkelt filtrera och redigera översättningar som skapats av utvecklarna.

Markera uppdaterade översättningar från arkivet som ”Behöver skrivas om”

Tilläggs-ID:

weblate.flags.target_repo_update

Konfiguration:

Detta tillägg har ingen konfiguration.

Utlösare:

Enhet efter synkronisering

När en strängöversättning ändras från VCS markeras den som behöver skrivas om i Weblate. Detta är särskilt användbart om översättningsfiler ofta uppdateras manuellt eller av en extern tjänst.

Fyll skrivskyddade strängar med källsträngen

Added in version 4.18.

Tilläggs-ID:

weblate.generate.fill_read_only

Konfiguration:

Detta tillägg har ingen konfiguration.

Utlösare:

Tilläggsinstallation, Komponentuppdatering, Dagligen

Fyller i översättningen av skrivskyddade strängar med källsträngen.

Statistikgenerator

Tilläggs-ID:

weblate.generate.generate

Konfiguration:

filename

Namn på genererad fil

template

Innehåll för genererad fil

Utlösare:

Tilläggsinstallation, Repository pre-commit

Genererar en fil med detaljerad information om översättningsstatusen.

Du kan använda en Django-mall både i filnamn och innehåll. Se Mallmarkering för en detaljerad beskrivning av markeringen.

Till exempel skapa en sammanfattningsfil för varje översättning:

Namn på genererad fil

locale/{{ language_code }}.json

Innehåll
{
   "language": "{{ language_code }}",
   "strings": "{{ stats.all }}",
   "translated": "{{ stats.translated }}",
   "last_changed": "{{ stats.last_changed }}",
   "last_author": "{{ stats.last_author }}",
}

Se även

Mallmarkering

Förfyll översättning med källa

Added in version 4.11.

Tilläggs-ID:

weblate.generate.prefill

Konfiguration:

Detta tillägg har ingen konfiguration.

Utlösare:

Tilläggsinstallation, Komponentuppdatering, Dagligen

Fyller i översättningssträngar med källsträng.

Alla icke översatta strängar i komponenten kommer att fyllas med källsträngen och markeras som redigeringsbara. Använd detta när du inte kan ha tomma strängar i översättningsfilerna.

Pseudolocale-generering

Added in version 4.5.

Tilläggs-ID:

weblate.generate.pseudolocale

Konfiguration:

source

Källsträngar

target

Målöversättning

Alla strängar i denna översättning kommer att skrivas över

prefix

Statisk text i början

var_prefix

Variabel text i början

suffix

Statisk text i slutet

var_suffix

Variabel text i slutet

var_multiplier

Variabel textmultiplikator

Hur många gånger variabeltexten ska upprepas beroende på längden på källsträngen.

include_readonly

Inkludera skrivskyddade strängar

Utlösare:

Tilläggsinstallation, Komponentuppdatering, Dagligen

Skapar en översättning genom att automatiskt lägga till prefix och suffix till källsträngarna.

Pseudolokaler är användbara för att hitta strängar som inte är förberedda för lokalisering. Detta görs genom att ändra alla översättningsbara källsträngar så att det blir lätt att upptäcka oförändrade strängar när applikationen körs på pseudolokalens språk.

Det är också möjligt att hitta strängar vars lokaliserade motsvarigheter kanske inte passar in i layouten.

Genom att använda variablerna kan man söka efter strängar som kanske inte passar in i användargränssnittet efter lokaliseringen – det förlänger texten baserat på källsträngens längd. De variabla texterna upprepas med textens längd multiplicerad med multiplikatorn. Till exempel blir Hello world med variabeltext _ och variabel multiplikator 1 Hello world___________ – texten upprepas en gång för varje tecken i källsträngen.

Strängarna genereras enligt följande mönster:

Förinställd statisk text Förinställd variabel text Källsträng Tillagd variabel text Tillagd statisk text

Råd

Du kan använda riktiga språk för testning, men det finns särskilda pseudolokaler tillgängliga i Weblate – en_XA och ar_XB.

Råd

Du kan använda detta tillägg för att starta översättning till en ny lokal av ett befintligt språk eller ett liknande språk. När du har lagt till översättningen till komponenten följer du tillägget. Exempel: Om du har fr och vill starta översättningen av fr_CA, anger du helt enkelt fr som källa, fr_CA som mål och lämnar prefixet och suffixet tomma.

Avinstallera tillägget när du har fyllt i den nya översättningen för att förhindra att Weblate ändrar översättningarna som gjorts efter kopieringen.

Bidragsgivare i kommentar

Tilläggs-ID:

weblate.gettext.authors

Konfiguration:

Detta tillägg har ingen konfiguration.

Utlösare:

Repository pre-commit

Uppdaterar kommentarsdelen i PO-filens huvud så att deltagarnamn och år av bidrag inkluderas.

PO-filens rubrik kommer att se ut så här:

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

Uppdatera ALL_LINGUAS-variabeln i ”configure”-filen

Tilläggs-ID:

weblate.gettext.configure

Konfiguration:

Detta tillägg har ingen konfiguration.

Utlösare:

Tilläggsinstallation, Dagligen, Repository efter tillägg

Uppdaterar variabeln ALL_LINGUAS i configure, configure.in eller alla configure.ac-filer när en ny översättning läggs till.

Anpassa gettext-utmatning

Removed in version 5.13: Ersatt av Filformatsparametrar.

Uppdatera LINGUAS-fil

Tilläggs-ID:

weblate.gettext.linguas

Konfiguration:

Detta tillägg har ingen konfiguration.

Utlösare:

Tilläggsinstallation, Dagligen, Repository efter tillägg

Uppdaterar LINGUAS-filen när en ny översättning adderas.

Generera MO-filer

Tilläggs-ID:

weblate.gettext.mo

Konfiguration:

path

Sökväg till genererad MO-fil

Om inte angiven så kommer platsen för PO-filen att användas.

fuzzy

Inkludera strängar som behöver åtgärdas

Strängar som behöver åtgärdas (fuzzy) är vanligtvis inte redo att användas som översättningar.

Utlösare:

Repository pre-commit

Genererar automatiskt en MO-fil för varje ändrad PO-fil.

Platsen för den genererade MO-filen kan anpassas och fältet för den använder Mallmarkering.

Observera

Om en översättning tas bort kommer dess PO-fil att raderas från arkivet, men inte MO-filen som genererats av detta tillägg. MO-filen måste tas bort manuellt från uppströms.

Uppdatera PO-filerna till att matcha POT (msgmerge)

Förändrat i version 5.13: Inställningar-konfigurationen har flyttats till Filformatsparametrar.

Tilläggs-ID:

weblate.gettext.msgmerge

Konfiguration:

Detta tillägg har ingen konfiguration.

Utlösare:

Tilläggsinstallation, Repository efter uppdatering

Uppdaterar alla PO-filer (enligt konfigurationen i Filmask) så att de matchar POT-filen (enligt konfigurationen i Mall för nya översättningar) med hjälp av msgmerge.

Detta tillägg är viktigt när du arbetar med gettext PO-filer där POT-filen (mallen) uppdateras med nya strängar eller ändringar av befintliga strängar. När POT-filen uppdateras i arkivet sammanfogar detta tillägg automatiskt dessa ändringar i alla språk-PO-filer, vilket säkerställer att:

  • Nya översättningsbara strängar visas på alla språk

  • Borttagna strängar markeras som föråldrade

  • Modifierade strängar markeras som behöver granskas (fuzzy)

De flesta kommandoradsalternativ för msgmerge kan konfigureras genom att ställa in parametrar för filformat.

Squasha Git arkiveringar

Tilläggs-ID:

weblate.git.squash

Konfiguration:

squash

Squasha arkivering

Tillgängliga alternativ:

all

Alla arkiveringar till en enda

language

Per språk

file

Per fil

author

Efter författare

append_trailers

Lägg till git-trailers till squashade commit meddelande

Trailer-rader är rader som liknar RFC 822 e-posthuvuden i slutet på den i övrigt fria delen av ett arkiveringsmeddelande, t.ex. ’Co-authored-by: …’.

commit_message

Arkiveringsmeddelande

Detta arkiveringsmeddelande kommer att användas istället för det kombinerade arkiveringsmeddelandet från de squashade committerna.

Utlösare:

Tilläggsinstallation, Repository efter commit

Squasha Git-arkiveringar innan de pushas.

Råd

För att undvika onödiga konflikter rekommenderas det att konfigurera automatisk mottagning av uppströmsändringar via webhooks eller API, se Uppdatering av filförråden.

Git-commits kan squashas innan ändringarna pushas i något av följande lägen:

  • Alla arkiveringar till en enda

  • Per språk

  • Per fil

  • Efter författare

Originalcommit-meddelanden behålls, men upphovsmannaskapet går förlorat om inte Per author är valt eller om commit-meddelandet anpassas så att det inkluderar det.

De ursprungliga commit-meddelandena kan valfritt ersättas med ett anpassat commit-meddelande.

Trailers (commit-rader som Co-authored-by: ) kan valfritt tas bort från de ursprungliga commit-meddelandena och läggas till i slutet av det sammanslagna commit-meddelandet. Detta genererar också korrekt Co-authored-by:-kreditering för varje översättare.

Anpassa JSON-utmatning

Förändrat i version 5.12: Alternativet Undvik mellanslag efter separatorer har lagts till.

Removed in version 5.13: Ersatt av Filformatsparametrar.

Formatera Java-properties-filen

Tilläggs-ID:

weblate.properties.sort

Konfiguration:

case_sensitive

Aktivera sortering av tangenter med skiftlägeskänslighet

Utlösare:

Repository pre-commit

Formaterar och sorterar Java-properties-filen.

  • Konsoliderar radbrytningar till Unix-radbrytningar.

  • Formatering av Unicode-eskapsekvenser med versaler (om sådana förekommer).

  • Tar bort tomma rader och kommentarer.

  • Sorterar strängarna efter nycklarna.

  • Tar bort dubbla strängar.

Borttagning av inaktuella kommentarer

Tilläggs-ID:

weblate.removal.comments

Konfiguration:

age

Dagar som sparas

Utlösare:

Tilläggsinstallation, Dagligen

Ange en tidsram för borttagning av kommentarer.

Detta kan vara användbart för att ta bort gamla kommentarer som kan ha blivit inaktuella. Använd med försiktighet, eftersom gamla kommentarer inte nödvändigtvis har förlorat sin betydelse.

Borttagning av inaktuella förslag

Tilläggs-ID:

weblate.removal.suggestions

Konfiguration:

age

Dagar som sparas

votes

Tröskelvärde för röstning

Tröskelvärde för avlägsnande. Det här fältet har ingen effekt när röstningen är avstängd.

Utlösare:

Tilläggsinstallation, Dagligen

Ange en tidsram för borttagning av förslag.

Kan vara mycket användbart i samband med omröstning om förslag (se Utvärdering av gruppmedlem) för att ta bort förslag som inte får tillräckligt många positiva röster inom en given tidsram.

Uppdatera RESX-filer

Tilläggs-ID:

weblate.resx.update

Konfiguration:

Detta tillägg har ingen konfiguration.

Utlösare:

Tilläggsinstallation, Repository efter uppdatering

Uppdatera alla översättningsfiler så att de matchar den enspråkiga uppströmsbasfilen. Oanvända strängar tas bort och nya läggs till som kopior av källsträngen.

Råd

Använd Städa upp i översättningsfiler om du bara vill ta bort gamla översättningsnycklar.

Slack-webhooks

Added in version 5.12.

Tilläggs-ID:

weblate.webhook.slack

Konfiguration:

webhook_url

Webhook-URL

events

Ändringshändelser

Ändringshändelser

Utlösare:

Ändring av evenemang

Skickar meddelanden till en Slack-kanal baserat på valda händelser.

Varning

Meddelandets innehåll kan innehålla HTML-taggar. Detta är ett känt problem som snart kommer att åtgärdas. Se https://github.com/WeblateOrg/weblate/issues/15056.

Råd

För att få en webhook-URL, följ stegen som beskrivs i dokumentationen för Slack Incoming Webhooks <https://docs.slack.dev/messaging/sending-messages-using-incoming-webhooks>_

Webhook

Added in version 5.11.

Förändrat i version 5.15: Sekretesslängdens överensstämmelse med specifikationen valideras nu.

Tilläggs-ID:

weblate.webhook.webhook

Konfiguration:

webhook_url

Webhook-URL

secret

Hemlighet för webhook

Standard Webhooks-hemligheten är en base64-kodad sträng.

events

Ändringshändelser

Ändringshändelser

Utlösare:

Ändring av evenemang

Skickar aviseringar till externa tjänster baserat på valda händelser, enligt standardspecifikationen för webhooks.

Begäranens nyttolast överensstämmer med Weblate Messaging-schemat. OpenAPI-beskrivningen finns också på /api/docs/. Exempel på begäran:

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

Exempel på begäran med kategorier:

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

Exempel på begäranrubriker:

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

webhook-signature är en lista med HMAC-signaturer separerade med mellanslag som genereras med hjälp av strängen secret, begäranens nyttolast, webhook-timestamp och webhook-id. Detta säkerställer äktheten och integriteten hos webhook-begäran.

Den angivna hemligheten är en base64-kodad sträng mellan 24 byte (192 bitar) och 64 byte (512 bitar). Den kan prefixeras med whsec_ för enkel identifiering.

För att verifiera en begäran kan du använda metoden Webhook.verify från biblioteket standardwebhooks eller en implementering av ”Standard Webhooks Specification”.

Anpassa XML-utdata

Added in version 4.15.

Removed in version 5.13: Ersatt av Filformatsparametrar.

Anpassa YAML-utmatning

Removed in version 5.13: Ersatt av Filformatsparametrar.

Vanliga tilläggsparametrar

Översättningsmotor

Tillgängliga alternativ:

aws

Amazon Översätt

deepl

DeepL

google-translate-api-v3

Google Cloud Translation Advanced

google-translate

Google Cloud Translation Basic

microsoft-translator

Azure AI Translator

modernmt

ModernMT

openai

OpenAI

weblate

Weblate

weblate-translation-memory

Weblate översättningsminne

Ändringshändelser

Tillgängliga alternativ:

0

Resursen uppdaterad

1

Översättning klar

2

Översättning ändrad

3

Kommentar tillagd

4

Förslag tillagt

5

Översättning tillagd

6

Automatiskt översatt

7

Förslag accepterat

8

Översättning återställd

9

Översättning skickad

13

Källsträng tillagd

14

Komponent låst

15

Komponent olåst

17

Ändringar arkiverade

18

Ändringar skickade

19

Arkivåterställning

20

Arkivet sammanslaget

21

Arkivet ombaserat

22

Sammanslagning av arkiv misslyckades

23

Ombasering av arkiv misslyckades

24

Tolkning misslyckades

25

Översättning borttagen

26

Förslaget borttaget

27

Översättning ersatt

28

Skicka arkiv misslyckades

29

Förslaget borttaget vid rensning

30

Källsträngen ändrad

31

Sträng tillagd

32

Mass-statusändring

33

Synlighet ändrad

34

Användare tillagd

35

Användare borttagen

36

Översättning godkänd

37

Flaggad för redigering

38

Komponent borttagen

39

Projektet borttaget

41

Projekt bytte namn

42

Komponent bytte namn

43

Komponent flyttad

45

Bidragsgivare gick med

46

Meddelande publicerat

47

Varning utlöst

48

Språk tillagt

49

Språk begärt

50

Projekt skapat

51

Komponent skapad

52

Användare inbjuden

53

Arkivavisering mottaget

54

Översättning ersatte fil genom uppladdning

55

Licens ändrad

56

Ändrat licensavtal för bidragsgivare

57

Skärmdump tillagd

58

Skärmdump uppladdad

59

Sträng uppdaterad i arkivet

60

Tillägg installerat

61

Tilläggskonfigurationen har ändrats

62

Tillägget avinstallerat

63

Sträng borttagen

64

Kommentar borttagen

65

Kommentar löst

66

Förklaring uppdaterad

67

Kategori borttagen

68

Kategori omdöpt

69

Kategori flyttad

70

Strängsparning misslyckades

71

Sträng tillagd i arkivet

72

Sträng uppdaterad i uppladdningen

73

Sträng tillagd i uppladdningen

74

Översättning uppdaterad genom källuppladdning

75

Komponentöversättning slutförd

76

Tillämpad tvångskontroll

77

Propagerad ändring

78

Fil uppladdad

79

Extra flaggor uppdaterade

80

Teckensnitt uppladdat

81

Teckensnitt ändrat

82

Teckensnitt borttaget

83

Tvingad synkronisering av översättningar

84

Tvingad omskanning av översättningar

85

Skärmdump togs bort

86

Etikett tillagd

87

Etikett togs bort

88

Arkivrensning

Filformat

Tillgängliga alternativ:

appstore

Metadata-filer för App store

arb

ARB-fil

aresource

Android String-resurs

ass

Advanced SubStation Alpha-undertextfil

catkeys

Haiku catkeys

cmp-resource

Compose Multiplatform Resource

csv

CSV-fil

csv-multi-utf-8

CSV-fil med flera värden (UTF-8)

csv-simple

Simple CSV-fil

csv-simple-iso

Simple CSV-fil (ISO-8859-1)

csv-simple-utf-8

Enkel CSV-fil (UTF-8)

csv-utf-8

CSV-fil (UTF-8)

dokuwiki

DokuWiki textfil

dtd

DTD-fil

flatxml

Flat XML-fil

fluent

Fluent-fil

formatjs

Format.JS JSON-fil

go-i18n-json

go-i18n v1 JSON-fil

go-i18n-json-v2

go-i18n v2 JSON-fil

go-i18n-toml

go-i18n TOML-fil

gotext

gotext JSON-fil

gwt

GWT-egenskaper (UTF-8)

gwt-iso

GWT-egenskaper (ISO-8859-1)

html

HTML-fil

i18next

i18next JSON-fil v3

i18nextv4

i18next JSON-fil v4

idml

IDML-fil

ini

INI-fil

islu

Inno Setup INI-fil

joomla

Joomla-språkfil

json

JSON-fil

json-nested

JSON nested structure-fil

laravel

Laravel PHP-strängar

markdown

Markdown-fil

mediawiki

MediaWiki textfil

mi18n-lang

@draggable/i18n språkfil

moko-resource

Mobile Kotlin Resource

nextcloud-json

Nextcloud JSON-fil

odf

OpenDocument-fil

php

PHP-strängar

plainxliff

XLIFF 1.2 översättningsfil

po

gettext PO-fil

po-mono

gettext po-fil (enspråkig)

poxliff

XLIFF 1.2 med gettext-tillägg

properties

Java-properties (ISO 8859-1)

properties-utf16

Java-properties (UTF-16)

properties-utf8

Java-properties (UTF-8)

rc

RC-fil

resjson

RESJSON-fil

resourcedictionary

ResourceDictionary-fil

resx

.NET-resursfil

ruby-yaml

Ruby YAML-fil

srt

SubRip-undertextfil

ssa

SubStation Alpha-undertextfil

strings

iOS-strängar (UTF-16)

strings-utf8

iOS-strängar (UTF-8)

stringsdict

Stringsdict -fil

sub

MicroDVD-undertextfil

tbx

TermBase eXchange-fil

toml

TOML-fil

ts

Qt Linguist-översättningsfil

txt

Vanlig textfil

webextension

WebExtension JSON-fil

xliff

XLIFF 1.2 med stöd för placeables

xliff2

XLIFF 2.0-översättningsfil

xliff2-placeables

XLIFF 2.0-översättningsfil med stöd för placerbara objekt

xlsx

Excel Open XML

xwiki-fullpage

XWiki Hela sidan

xwiki-java-properties

XWiki Java-egenskaper

xwiki-page-properties

XWiki-sidegenskaper

yaml

YAML-fil

Anpassa lista över tillägg

Listan över tillägg konfigureras med WEBLATE_ADDONS. För att lägga till ett nytt tillägg, ange bara det absoluta klassnamnet i denna inställning.

Skriv tillägg

Du kan också skriva egna tillägg, skapa en underklass av weblate.addons.base.BaseAddon för att definiera tilläggets metadata och sedan implementera en återanrop för att utföra bearbetningen.

Körning av skript från tillägg

Tillägg kan också användas för att köra externa skript. Detta var tidigare integrerat i Weblate, men nu måste du skriva lite kod för att omsluta ditt skript med ett tillägg.

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

För installationsinstruktioner, se Anpassade kvalitetskontroller, tillägg, automatiska förslag och automatiska korrigeringar.

Skriptet körs med den aktuella katalogen inställd på roten av VCS-arkivet för en given komponent.

Dessutom finns följande miljövariabler tillgängliga:

WL_VCS

Använt versionshanteringssystem.

WL_REPO

Upstream-arkivets URL.

WL_PATH

Absolut sökväg till VCS-arkivet.

WL_BRANCH

Repository-gren konfigurerad i den aktuella komponenten.

WL_FILEMASK

Filmask för aktuell komponent.

WL_TEMPLATE

Filnamn på mall för enspråkiga översättningar (kan vara tomt).

WL_NEW_BASE

Filnamn på filen som används för att skapa nya översättningar (kan vara tom).

WL_FILE_FORMAT

Filformat som används i aktuell komponent.

WL_LANGUAGE

Språk för den översättning som för närvarande bearbetas (inte tillgängligt för komponenthookar).

WL_PREVIOUS_HEAD

Tidigare HEAD efter uppdatering (endast tillgängligt efter att post-update-hooken har körts).

WL_COMPONENT_SLUG

Komponent slug som används för att konstruera URL.

WL_PROJECT_SLUG

Projektnamn som används för att skapa URL.

WL_COMPONENT_NAME

Komponentens namn.

WL_PROJECT_NAME

Projektnamn.

WL_COMPONENT_URL

Komponentens URL.

WL_ENGAGE_URL

Projektets engagemangs-URL.

Bearbetning av arkivet efter uppdatering

Kan användas för att uppdatera översättningsfiler när VCS-uppströms källan ändras. För att uppnå detta, kom ihåg att Weblate endast ser filer som har lagts in i VCS, så du måste lägga in ändringarna som en del av skriptet.

Med Gulp kan du till exempel göra det med följande kod:

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

Förhandsgranskning av översättningar

Använd commit-skriptet för att automatiskt ändra en översättning innan den läggs in i arkivet.

Den skickas som en enda parameter som består av filnamnet på en aktuell översättning.

Loggning av tilläggsaktiviteter

Tilläggsaktivitetsloggen håller reda på tilläggets körning och kan användas för att hålla reda på tilläggsaktiviteten.

Loggarna kan rensas efter ett visst tidsintervall genom att konfigurera ADDON_ACTIVITY_LOG_EXPIRY.