Weblate Client

Installatie

De Weblate Client wordt afzonderlijk geleverd en bevat de module voor Python. U moet met pip wlc installeren om de opdrachten hieronder te kunnen gebruiken:

pip install wlc

U kunt het ook direct uitvoeren met uvx:

uvx wlc --help

Hint

U kunt ook dit wlc als een module voor Python gebruiken, bekijk wlc.

Docker gebruiken

De Weblate Client is ook beschikbaar als een Docker image.

De image wordt gepubliceerd op Docker Hub: https://hub.docker.com/r/weblate/wlc

Installeren:

docker pull weblate/wlc

De Docker container gebruikt Weblate’s standaardinstellingen en verbindt met de API die is uitgerold op localhost. De URL voor de API en API_KEY kunnen worden geconfigureerd met de argumenten die worden geaccepteerd door Weblate.

De opdracht om de container te starten gebruikt de volgende syntaxis:

docker run --rm weblate/wlc [WLC_ARGS]

Voorbeeld:

docker run --rm weblate/wlc --url https://hosted.weblate.org/api/ list-projects

U wilt misschien uw Configuratiebestanden doorgeven aan de Docker container. Wanneer uw opslagruimte een projectconfiguratie bevat zoals .weblate, de gemakkelijkste benadering is om uw huidige map toe te voegen als het volume /home/weblate:

docker run --volume $PWD:/home/weblate --rm weblate/wlc show

Beginnen

De gemakkelijkste manier om te beginnen is om een persoonlijke configuratie van wlc te maken in ~/.config/weblate (bekijk Configuratiebestanden voor de volledige regels voor het ontdekken en andere locaties):

[weblate]
url = https://hosted.weblate.org/api/

[keys]
https://hosted.weblate.org/api/ = APIKEY

U kunt dan opdrachten aanroepen op de standaard server:

wlc ls
wlc commit sandbox/hello-world

Verouderde configuratie

Veranderd in versie 1.17: De verouderde configuratie die key zonder bereik gebruikte, wordt niet langer ondersteund.

Verouderde configuratie migreren:

[weblate]
url = https://hosted.weblate.org/api
key = YOUR_KEY_HERE

Naar een configuratie met sleutel die een API URL als bereik heeft:

[weblate]
url = https://hosted.weblate.org/api

[keys]
https://hosted.weblate.org/api = YOUR_KEY_HERE

Synopsis

wlc [arguments] <command> [options]

Opdrachten geven feitelijk aan welke bewerking zou moeten worden uitgevoerd.

Omschrijving

Weblate Client is een bibliotheek van Python en een hulpprogramma om Weblate op afstand te beheren met de Weblate REST API. Het hulpprogramma voor de opdrachtregel kan worden aangeroepen als wlc en is ingebouwd in wlc.

Argumenten

Het programma accepteert de volgende argumenten die de indeling voor de uitvoer definiëren of welke instantie van Weblate te gebruiken. Deze moeten worden ingevoerd voor een opdracht.

--format {csv,json,text,html}

Specificeren van de indeling van de uitvoer.

--url URL

Specificeer de URL van de API. Overschrijft elke waarde die wordt gevonden in het configuratiebestand, bekijk Configuratiebestanden. De URL zou moeten eindigen met /api/, bijvoorbeeld https://hosted.weblate.org/api/.

--key KEY

Specificeer de te gebruiken gebruikerssleutel voor de API. Overschrijft elke gevonden waarde in het configuratiebestand, bekijk Configuratiebestanden. U kunt uw sleutel vinden in uw profiel in Weblate.

--config PATH

Laad configuratie alleen vanuit PATH in plaats van de gevonden globale en projectconfiguratiebestanden, bekijk Configuratiebestanden.

--config-section SECTION

Overschrijft het in gebruik zijnde gedeelte van het configuratiebestand, bekijk Configuratiebestanden.

Opdrachten

De volgende opdrachten zijn beschikbaar:

version

Drukt de huidige versie af.

list-languages

Somt de gebruikte talen in Weblate op.

list-projects

Somt projecten in Weblate op.

list-components

Somt onderdelen in Weblate op.

list-translations

Somt vertalingen in Weblate op.

show

Geeft object van Weblate weer (vertaling, onderdeel of project).

ls

Somt object van Weblate op (vertaling, component of project).

commit

Dient wijzigingen in die zijn gemaakt in een object van Weblate (vertaling, onderdeel of project).

pull

Haalt wijzigingen vanuit de opslagruimte op afstand op naar een object van Weblate (vertaling, onderdeel of project).

push

Pusht wijzigingen in een object van Weblate naar de opslagruimte op afstand (vertaling, onderdeel of project).

reset

Herstelt wijzigingen in object van Weblate om overeen te komen met de opslagruimte op afstand (vertaling, onderdeel of project).

cleanup

Verwijdert niet bijgehouden wijzigingen in een object van Weblate om overeen te komen met de opslagruimte op afstand (vertaling, onderdeel of project).

repo

Geeft de status van de opslagruimte weer voor een bepaald object van Weblate (vertaling, onderdeel of project).

stats

Geeft gedetailleerde statistieken weer voor een bepaald object van Weblate (vertaling, onderdeel of project).

lock-status

Geeft de status van de vergrendeling weer.

lock

Vergrendelt onderdeel tegen verdere vertaling in Weblate.

unlock

Heft de vergrendeling tegen de vertaling van het onderdeel van Weblate op.

changes

Geeft wijzigingen weer voor een bepaald object.

download

Downloadt een vertaalbestand.

--convert

Converteert bestandsindeling, indien niet gespecificeerd wordt er geen conversie uitgevoerd op de server en het bestand wordt, zoals het is, gedownload naar de opslagruimte.

--output

Specificeert het bestand waarin de uitvoer moet worden opgeslagen, indien niet gespecificeerd wordt het afgedrukt naar stdout.

upload

Uploadt een vertaalbestand.

--overwrite

Overschrijf bestaande vertalingen bij uploaden.

--input

Bestand waaruit inhoud wordt gelezen, indien niet gespecificeerd wordt het gelezen vanuit stdin.

--method

Te gebruiken methode voor uploaden, bekijk Methoden voor importeren.

--fuzzy

Verwerken fuzzy tekenreeksen (gemarkeerd om te bewerken) (empty, process, approve)

--author-name

Naam van de auteur, om de momenteel geauthenticeerde gebruiker te overschrijven

--author-email

E-mail van de auteur, om de momenteel geauthenticeerde gebruiker te overschrijven

Hint

U kunt meer gedetailleerde informatie over het aanroepen van individuele opdrachten krijgen door in te voeren --help, bijvoorbeeld: wlc ls --help.

Configuratiebestanden

Wanneer --config wordt opgegeven, laadt wlc alleen dat bestand.

Zonder --config, laad wlc eerst het gevonden globale configuratiebestand vanaf de standaard platform-specifieke locaties:

C:\Users\NAME\AppData\Roaming\weblate.ini

Globaal configuratiebestand op Windows in het geroamde profiel.

C:\Users\NAME\AppData\Local\weblate.ini

Globaal configuratiebestand op Windows in het lokale profiel.

~/.config/weblate

Globaal configuratiebestand op Unix-achtige systemen.

/etc/xdg/weblate

Systeembreed configuratiebestand om op terug te vallen.

Het programma volgt de specificatie XDG, dus kunt u de plaatsing van configuratiebestanden aanpassen met de omgevingsvariabelen XDG_CONFIG_HOME of XDG_CONFIG_DIRS.

Op Windows zijn de mappen APPDATA en LOCALAPPDATA de voorkeurslocaties voor het configuratiebestand.

Na het laden van de globale configuratie, laad wlc het dichtstbij gelegen projectconfiguratiebestand vanuit de huidige map of diens ouders:

.weblate, .weblate.ini, weblate.ini

Project configuratiebestand geplaatst in de projectmap.

Alleen het dichtstbijzijnde projectconfiguratiebestand wordt geladen. Configuratiebestanden in verder weg gelegen oudermappen worden genegeerd.

De volgende instellingen kunnen worden geconfigureerd in het gedeelte [weblate] (u kunt dit aanpassen met --config-section):

key

Removed in version 1.17: Gebruik het gedeelte [keys] om sleutels te specificeren die als bereik individuele API URL’s hebben, bekijk Verouderde configuratie.

url

API server URL, standaard is http://127.0.0.1:8000/api/.

translation

Pad naar de standaard vertaling - onderdeel of project.

retries, timeout, allowed_methods, backoff_factor, status_forcelist

Optionele instelling voor HTTP opnieuw proberen en time-out doorgegeven aan urllib3. Gebruik allowed_methods om de methoden voor verzoekn te vermelden die opnieuw mogen worden geprobeerd. Momenteel geeft wlc deze instellingsnaam weer in plaats van de oudere optie method_whitelist.

Het configuratiebestand is een INI-bestand, bijvoorbeeld:

[weblate]
url = https://hosted.weblate.org/api/
translation = weblate/application
retries = 3
allowed_methods = PUT,POST,GET
backoff_factor = 0.2
status_forcelist = 429,500,502,503,504
timeout = 30

De sleutels voor de API worden opgeslagen in het gedeelte [keys]:

[keys]
https://hosted.weblate.org/api/ = APIKEY

Dit stelt u in staat sleutels op te slaan in uw persoonlijke instellingen, bij het gebruiken van de configuratie .weblate in de opslagruimte van het VCS zodat wlc weet met welke server het zou moeten praten. In CI, behoud alleen de configuratie voor de opslagruimte in versiebeheer en injecteer de API-sleutel met WLC_KEY.

Omgevingsvariabelen

Added in version 1.18.0.

De API URL en sleutel kunnen ook worden geconfigureerd met omgevingsvariabelen. Dat is speciaal handig voor CI werkstromen waar de opslagruimte de projectconfiguratie verschaft en WLC_KEY als geheim wordt geïnjecteerd:

WLC_URL

URL API

WLC_KEY

Api-sleutel

Voorrang voor configuratie (van hoog naar laag) is:

  1. Argumenten opdrachtregel (--url, --key).

  2. Omgevingsvariabelen (WLC_URL, WLC_KEY).

  3. Configuration geladen uit --config, of vanuit de gevonden globale configuratie plus de dichtstbij gelegen projectconfiguratie, wanneer --config niet wordt gebruikt.

Voorbeelden

Huidige programmaversie afdrukken:

$ wlc version
version: 0.1

Alle projecten opsommen:

$ wlc list-projects
name: Hello
slug: hello
url: http://example.com/api/projects/hello/
web: https://weblate.org/
web_url: http://example.com/projects/hello/

Vertaalbestand uploaden:

$ wlc upload project/component/language --input /tmp/hello.po

U kunt ook bepalen met welk project wlc zou moeten werken:

$ cat .weblate
[weblate]
url = https://hosted.weblate.org/api/
translation = weblate/application

$ wlc show
branch: main
file_format: po
source_language: en
filemask: weblate/locale/*/LC_MESSAGES/django.po
git_export: https://hosted.weblate.org/git/weblate/application/
license: GPL-3.0+
license_url: https://spdx.org/licenses/GPL-3.0+
name: Application
new_base: weblate/locale/django.pot
project: weblate
repo: git://github.com/WeblateOrg/weblate.git
slug: application
template:
url: https://hosted.weblate.org/api/components/weblate/application/
vcs: git
web_url: https://hosted.weblate.org/projects/weblate/application/

Met deze opstelling is het gemakkelijk om openstaande wijzigingen in te dienen in het huidige project:

$ wlc commit