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 Operations ↓ Add-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.
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.
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.
Manual trigger¶
Triggered when an add-on is run manually from add-on management or the API.
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 post-remove¶
Triggered just after a translation is removed.
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:
modeAutomatiskt översättningsläge
Tillgängliga alternativ:¶ suggestLägg till som förslag
translateLägg till som översättning
fuzzyLägg till som ”Behöver redigeras”
qSökning
Observera att om du översätter alla strängar kommer alla befintliga översättningar att slängas.
auto_sourceKälla för automatiserade översättningar
Tillgängliga alternativ:¶ othersAndra översättningskomponenter
mtMaskinöversättning
componentKomponent
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
thresholdPoä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_selectorCSS-väljare
CSS-väljare för att upptäcka lokaliserbara element.
cookie_nameNamn på språkcookie
Namn på cookie som lagrar språkinställningar.
filesExtrahera 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:
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:
matchReguljärt uttryck för att matcha översättningsfiler mot
The regular expression must define named groups for component and language.
file_formatFilformat
name_templateAnpassa komponentnamnet
Use Django template syntax. This template must include {{ component }}.
base_file_templateDefiniera den enspråkiga basspråkfilen
Leave empty for bilingual translation files. When set, this template must include {{ component }}.
new_base_templateDefiniera basfil för nya översättningar
Filename of file used for creating new translations. For gettext choose .pot file. This template must include {{ component }}.
intermediate_templateMellanliggande språkfil
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_regexSpråkfilter
Reguljärt uttryck för att filtrera översättningsfiler vid sökning efter filmask.
copy_addonsKlona tillägg från huvudkomponenten till de nyligen skapade
removeTa bort komponenter för icke-befintliga filer
- Utlösare:
Lägger till och tar bort projektkomponenter automatiskt baserat på filändringar i versionskontrollsystemet.
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.
- Reguljärt uttryck:
(?:(?P<path>.*/))?(?P<component>.+?)_(?P<language>[A-Za-z]{2,3}(?:[_-][A-Za-z0-9]+)*)\.(?P<extension>[^/.]+)- Komponentnamn:
{{ 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.
Du kan använda Django-mallmarkeringar i alla filnamnsfält, till exempel:
{{ component }}Component name parsed from the
componentmatch group{{ 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:
Exempel på komponentupptäckt¶
The worked example above covers the most common filename-based variant layout. The following examples show other repository structures you can match.
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.pocs/website.pode/application.pode/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.polocale/cs/LC_MESSAGES/website.polocale/de/LC_MESSAGES/application.polocale/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.posrc/locale/website.cs.posrc/locale/application.de.posrc/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.polocale/cs/website/cs.polocale/de/application/de.polocale/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.xmlres/values-cs/strings-help.xmlres/values-de/strings-about.xmlres/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.propertiesparent/module1/submodule/src/main/resources/ApplicationResource_es.propertiesparent/module2/src/main/resources/ApplicationResource_de.propertiesparent/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 Operations ↓ Settings ↓ Version 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.
Se även
Fedora Messaging¶
Added in version 5.15.
- Tilläggs-ID:
weblate.fedora_messaging.publish- Konfiguration:
eventsÄndringshändelser
amqp_hostAMQP-brokervärd
AMQP-brokern som ska anslutas till.
amqp_sslAnvänd SSL för AMQP-anslutning
ca_certCA-certifikat
Paket med PEM-kodade CA-certifikat som används för att validera det certifikat som presenteras av servern.
client_keyKlient-SSL-nyckel
PEM-kodad privat SSL-nyckel för klient.
client_certSSL-certifikat för klienten
PEM-kodat SSL-certifikat för klient.
- Utlösare:
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_idNumeriskt ID för ändring
actionDetaljerat namn på ändringen.
timestampTidsstämpel i ISO-format
targetNytt värde för ändringen (t.ex. ny översättning av strängen)
oldGammalt värde för ändringen (t.ex. tidigare översättning av strängen)
sourceKällsträng.
urlAbsolut URL för att visa det relaterade objektet.
authorFörfattarens användarnamn (detta kan skilja sig från användarnamnet, till exempel när förslag accepteras)
userTillfälligt användarnamn
projectProjektslugg
componentKomponent slug
translationÖversättningsspråkkod
Meddelandehuvuden¶
Det finns ytterligare rubriker som du också kan använda för routning:
actionDetaljerat namn på ändringen.
projectProjektslugg
componentKomponent 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:
qSökning
stateTillstånd som ska sättas
Tillgängliga alternativ:¶ -1Ändra inte
10Behöver redigeras
11Behöver redigeras (Behöver skrivas om)
12Behöver redigeras (Behöver kontrolleras)
20Översatt
30Godkänd
add_flagsÖversättningsflaggor att lägga till
remove_flagsÖversättningsflaggor att ta bort
add_labelsEtiketter att lägga till
remove_labelsEtiketter att ta bort
- Utlösare:
Massredigering av flaggor, etiketter eller strängstatus.
Exempel:
Sökfråga |
|
|---|---|
Etiketter att lägga till |
senaste |
Sökfråga |
|
|---|---|
Översättningsflaggor att lägga till |
|
Sökfråga |
|
|---|---|
Översättningsflaggor att lägga till |
|
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:
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.
Se även
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:
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.
Se även
Markera nya översättningar som ”Behöver skrivas om”¶
- Tilläggs-ID:
weblate.flags.target_edit- Konfiguration:
Detta tillägg har ingen konfiguration.
- Utlösare:
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.
Se även
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:
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.
Se även
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:
Fyller i översättningen av skrivskyddade strängar med källsträngen.
Statistikgenerator¶
- Tilläggs-ID:
weblate.generate.generate- Konfiguration:
filenameNamn på genererad fil
templateInnehåll för genererad fil
- Utlösare:
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
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:
Fyller i översättningssträngar med källsträng.
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.
Pseudolocale-generering¶
Added in version 4.5.
- Tilläggs-ID:
weblate.generate.pseudolocale- Konfiguration:
sourceKällsträngar
targetMålöversättning
Alla strängar i denna översättning kommer att skrivas över
prefixStatisk text i början
var_prefixVariabel text i början
suffixStatisk text i slutet
var_suffixVariabel text i slutet
var_multiplierVariabel textmultiplikator
Hur många gånger variabeltexten ska upprepas beroende på längden på källsträngen.
include_readonlyInkludera skrivskyddade strängar
- Utlösare:
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:
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, 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.
Anpassa gettext-utmatning¶
Removed in version 5.13: Ersatt av Filformatsparametrar.
Uppdatera POT-fil (Django)¶
Added in version 5.17.
- Tilläggs-ID:
weblate.gettext.django- Konfiguration:
intervalUpdate frequency
How often the add-on should update the POT file when the component is refreshed.
Tillgängliga alternativ:¶ dailyDagligen
weeklyWeekly
monthlyMånatlig
normalize_headerNormalize POT header
Updates gettext headers and replaces placeholder POT comments.
- Utlösare:
Tilläggsinstallation, Manual trigger, Repository efter uppdatering
Updates the gettext template using Django’s built-in makemessages command.
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, Repository post-remove
Updates the LINGUAS file when a translation is added or removed.
Update POT file (Meson)¶
Added in version 5.17.
- Tilläggs-ID:
weblate.gettext.meson- Konfiguration:
intervalUpdate frequency
How often the add-on should update the POT file when the component is refreshed.
Tillgängliga alternativ:¶ dailyDagligen
weeklyWeekly
monthlyMånatlig
normalize_headerNormalize POT header
Updates gettext headers and replaces placeholder POT comments.
comment_modeCode comments
Choose whether xgettext should extract no comments, all comments, or only comments marked with a specific tag.
Tillgängliga alternativ:¶ offDo not extract comments
allExtract all comments
taggedExtrahera kommentarer med tagg
comment_tagComment tag
Tag passed to xgettext for comment extraction when using tagged comment mode.
checksxgettext checks
Additional xgettext validation checks to enable for extracted messages.
Tillgängliga alternativ:¶ ellipsis-unicodeellipsis-unicode
space-ellipsisspace-ellipsis
quote-unicodequote-unicode
bullet-unicodebullet-unicode
keywordAdditional keyword
Optional extra keyword passed to xgettext using –keyword.
presetMeson preset
Built-in xgettext argument preset matching Meson gettext integration. The GLib preset adds the keyword and format-flag options used by Meson’s gettext helper.
Tillgängliga alternativ:¶ glibGLib
- Utlösare:
Tilläggsinstallation, Manual trigger, Repository efter uppdatering
Updates the gettext template using Meson gettext conventions.
Generera MO-filer¶
- Tilläggs-ID:
weblate.gettext.mo- Konfiguration:
pathSökväg till genererad MO-fil
Om inte angiven så kommer platsen för PO-filen att användas.
fuzzyInkludera strängar som behöver redigeras
Strängar som behöver redigeras (luddiga) är vanligtvis inte redo att användas som översättningar.
- Utlösare:
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:
Uppdaterar alla PO-filer (som konfigurerats av ”filmask”) för att matcha POT-filen (som konfigurerad av ”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.
Uppdatera POT-fil (Sphinx)¶
Added in version 5.17.
- Tilläggs-ID:
weblate.gettext.sphinx- Konfiguration:
intervalUpdate frequency
How often the add-on should update the POT file when the component is refreshed.
Tillgängliga alternativ:¶ dailyDagligen
weeklyWeekly
monthlyMånatlig
normalize_headerNormalize POT header
Updates gettext headers and replaces placeholder POT comments.
filter_modeFiltering
Optionally remove strings that are not useful to translate after Sphinx extraction.
Tillgängliga alternativ:¶ noneIngen
weblate_docsWeblate documentation
- Utlösare:
Tilläggsinstallation, Manual trigger, Repository efter uppdatering
Updates the gettext template using Sphinx’s gettext builder without loading project configuration.
Update POT file (xgettext)¶
Added in version 5.17.
- Tilläggs-ID:
weblate.gettext.xgettext- Konfiguration:
intervalUpdate frequency
How often the add-on should update the POT file when the component is refreshed.
Tillgängliga alternativ:¶ dailyDagligen
weeklyWeekly
monthlyMånatlig
normalize_headerNormalize POT header
Updates gettext headers and replaces placeholder POT comments.
comment_modeCode comments
Choose whether xgettext should extract no comments, all comments, or only comments marked with a specific tag.
Tillgängliga alternativ:¶ offDo not extract comments
allExtract all comments
taggedExtrahera kommentarer med tagg
comment_tagComment tag
Tag passed to xgettext for comment extraction when using tagged comment mode.
checksxgettext checks
Additional xgettext validation checks to enable for extracted messages.
Tillgängliga alternativ:¶ ellipsis-unicodeellipsis-unicode
space-ellipsisspace-ellipsis
quote-unicodequote-unicode
bullet-unicodebullet-unicode
keywordAdditional keyword
Optional extra keyword passed to xgettext using –keyword.
input_modeInput source
Choose whether xgettext should read source files from glob patterns or from a POTFILES/POTFILES.in manifest.
Tillgängliga alternativ:¶ patternsSource file patterns
potfilesPOTFILES manifest
languagexgettext language
Programming language passed to xgettext, for example Python or C.
source_patternsSource file patterns
Newline-separated repository-relative glob patterns for files to extract with xgettext.
potfiles_pathPOTFILES path
Repository-relative path to POTFILES or POTFILES.in. Entries are resolved relative to the repository root. If present next to the manifest, POTFILES.skip excludes listed files from extraction.
- Utlösare:
Tilläggsinstallation, Manual trigger, Repository efter uppdatering
Uppdatera gettext-mallen genom att använda xgettext på utvalda källfiler.
Squasha Git arkiveringar¶
- Tilläggs-ID:
weblate.git.squash- Konfiguration:
squashSquasha arkivering
Tillgängliga alternativ:¶ allAlla arkiveringar till en enda
languagePer språk
filePer fil
authorEfter författare
append_trailersLä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_messageArkiveringsmeddelande
Detta arkiveringsmeddelande kommer att användas istället för det kombinerade arkiveringsmeddelandet från de squashade committerna.
- Utlösare:
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.
Återställ förrådet till uppströms¶
Added in version 5.17.
- Tilläggs-ID:
weblate.hosted.reset- Konfiguration:
Detta tillägg har ingen konfiguration.
- Utlösare:
Kasserar alla ändringar i Weblate-arkivet varje natt.
Formatera Java-properties-filen¶
- Tilläggs-ID:
weblate.properties.sort- Konfiguration:
case_sensitiveAktivera sortering av tangenter med skiftlägeskänslighet
- Utlösare:
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:
ageDagar som sparas
- Utlösare:
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:
ageDagar som sparas
votesTröskelvärde för röstning
Threshold for removal. Leave empty to remove suggestions regardless of votes. This field has no effect with voting turned off.
- Utlösare:
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:
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_urlWebhook-URL
eventsÄndringshändelser
- Utlösare:
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_urlWebhook-URL
secretHemlighet för webhook
Standard Webhooks-hemligheten är en base64-kodad sträng.
eventsÄndringshändelser
- Utlösare:
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”.
Se även
Python-bibliotek för standardwebhooks <https://pypi.org/project/standardwebhooks/>_
Obsolete add-ons¶
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¶
|
Alibaba |
|
Amazon Översätt |
|
Antropisk |
|
Apertium APy |
|
Azure AI Translator |
|
Azure OpenAI |
|
Baidu |
|
CyrTranslit |
|
DeepL |
|
Glosbe |
|
Google Cloud Translation Advanced |
|
Google Cloud Translation Basic |
|
LTEngine |
|
LibreTranslate |
|
ModernMT |
|
MyMemory |
|
Netease Sight |
|
Ollama |
|
OpenAI |
|
SAP Translation Hub |
|
Systran |
|
Weblate |
|
Weblate översättningsminne |
|
Yandex |
|
Yandex v2 |
|
Youdao Zhiyun |
|
tmserver |
Filformat¶
|
XLIFF 1.2 with Apple extensions |
|
Metadata-filer för App store |
|
ARB-fil |
|
Android String-resurs |
|
AsciiDoc-fil |
|
Advanced SubStation Alpha-undertextfil |
|
Haiku catkeys |
|
Compose Multiplatform Resource |
|
CSV-fil |
|
CSV-fil med flera värden |
|
Simple CSV-fil |
|
DokuWiki textfil |
|
DTD-fil |
|
Flat XML-fil |
|
Fluent-fil |
|
Format.JS JSON-fil |
|
go-i18n v1 JSON-fil |
|
go-i18n v2 JSON-fil |
|
go-i18n TOML-fil |
|
gotext JSON-fil |
|
GWT-egenskaper |
|
HTML-fil |
|
i18next JSON-fil v3 |
|
i18next JSON-fil v4 |
|
IDML-fil |
|
INI-fil |
|
Inno Setup INI-fil |
|
Joomla-språkfil |
|
JSON-fil |
|
JSON nested structure-fil |
|
Laravel PHP-strängar |
|
Markdown-fil |
|
MDX file |
|
MediaWiki textfil |
|
@draggable/i18n språkfil |
|
Mobile Kotlin Resource |
|
Nextcloud JSON-fil |
|
OpenDocument-fil |
|
PHP-strängar |
|
XLIFF 1.2 översättningsfil |
|
gettext PO-fil |
|
gettext po-fil (enspråkig) |
|
XLIFF 1.2 med gettext-tillägg |
|
Java Properties |
|
RC-fil |
|
RESJSON-fil |
|
ResourceDictionary-fil |
|
.NET-resursfil |
|
Ruby YAML-fil |
|
SubRip-undertextfil |
|
SubStation Alpha-undertextfil |
|
iOS-strängar |
|
Stringsdict -fil |
|
MicroDVD-undertextfil |
|
TermBase eXchange-fil |
|
TOML-fil |
|
Qt Linguist-översättningsfil |
|
Vanlig textfil |
|
WebExtension JSON-fil |
|
WixLocalization file |
|
XLIFF 1.2 med stöd för placeables |
|
XLIFF 2.0-översättningsfil |
|
XLIFF 2.0-översättningsfil med stöd för placerbara objekt |
|
Excel Open XML |
|
XWiki Hela sidan |
|
XWiki Java-egenskaper |
|
XWiki-sidegenskaper |
|
YAML-fil |
Ändringshändelser¶
|
Resursen uppdaterad |
|
Översättning klar |
|
Översättning ändrad |
|
Kommentar tillagd |
|
Förslag tillagt |
|
Översättning tillagd |
|
Automatiskt översatt |
|
Förslag accepterat |
|
Översättning återställd |
|
Översättning skickad |
|
Källsträng tillagd |
|
Komponent låst |
|
Komponent olåst |
|
Ändringar arkiverade |
|
Ändringar skickade |
|
Arkivåterställning |
|
Arkivet sammanslaget |
|
Arkivet ombaserat |
|
Sammanslagning av arkiv misslyckades |
|
Ombasering av arkiv misslyckades |
|
Tolkning misslyckades |
|
Översättning borttagen |
|
Förslaget borttaget |
|
Översättning ersatt |
|
Skicka arkiv misslyckades |
|
Förslaget borttaget vid rensning |
|
Källsträngen ändrad |
|
Sträng tillagd |
|
Mass-statusändring |
|
Synlighet ändrad |
|
Användare tillagd |
|
Användare borttagen |
|
Översättning godkänd |
|
Flaggad för redigering |
|
Komponent borttagen |
|
Projektet borttaget |
|
Projekt bytte namn |
|
Komponent bytte namn |
|
Komponent flyttad |
|
Bidragsgivare gick med |
|
Meddelande publicerat |
|
Varning utlöst |
|
Språk tillagt |
|
Språk begärt |
|
Projekt skapat |
|
Komponent skapad |
|
Användare inbjuden |
|
Arkivavisering mottaget |
|
Översättning ersatte fil genom uppladdning |
|
Licens ändrad |
|
Ändrat licensavtal för bidragsgivare |
|
Skärmdump tillagd |
|
Skärmdump uppladdad |
|
Sträng uppdaterad i arkivet |
|
Tillägg installerat |
|
Tilläggskonfigurationen har ändrats |
|
Tillägget avinstallerat |
|
Sträng borttagen |
|
Kommentar borttagen |
|
Kommentar löst |
|
Förklaring uppdaterad |
|
Kategori borttagen |
|
Kategori omdöpt |
|
Kategori flyttad |
|
Strängsparning misslyckades |
|
Sträng tillagd i arkivet |
|
Sträng uppdaterad i uppladdningen |
|
Sträng tillagd i uppladdningen |
|
Översättning uppdaterad genom källuppladdning |
|
Komponentöversättning slutförd |
|
Tillämpad tvångskontroll |
|
Propagerad ändring |
|
Fil uppladdad |
|
Extra flaggor uppdaterade |
|
Teckensnitt uppladdat |
|
Teckensnitt ändrat |
|
Teckensnitt borttaget |
|
Tvingad synkronisering av översättningar |
|
Tvingad omskanning av översättningar |
|
Skärmdump togs bort |
|
Etikett tillagd |
|
Etikett togs bort |
|
Arkivrensning |
|
Source string added in the upload |
|
Source string added in the repository |
|
Project backed up |
|
Project restored |
|
Component restored |
|
User edit reverted |
|
Project setting changed |
|
Component setting changed |
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.
Se även
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.
Se även
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.