Klient Weblate¶
Inštalácia¶
Klient Weblate je dodávaný samostatne a obsahuje Python modul. Zdrojový kód je udržiavaný v repozitári WeblateOrg/wlc. Na použitie nižšie uvedených príkazov musíte nainštalovať wlc pomocou pip:
pip install wlc
Môžete ho tiež spustiť priamo pomocou uvx:
uvx wlc --help
Rada
Tento wlc môžete tiež použiť ako Python modul, pozri wlc.
Použitie Docker¶
Klient Weblate je tiež dostupný ako Docker obraz.
Obrazy sú publikované na Docker Hub a v GitHub Container Registry. Nižšie uvedené príklady používajú názov obrazu Docker Hub.
Inštalácia:
docker pull weblate/wlc
Dostupné sú nasledujúce značky:
latestNajnovšie stabilné vydanie.
- Úplná verzia, napríklad
2.2.0 Konkrétne stabilné vydanie.
- Hlavná verzia, napríklad
2 Najnovšie stabilné vydanie v danej hlavnej sérii.
edgeAktuálna vývojová verzia z hlavnej vetvy.
edge-YYYY-MM-DD-COMMITKonkrétna vývojová snímka.
Na zostavenie obrazu zo zdrojového checkoutu:
docker build -t weblate/wlc .
Docker kontajner používa predvolené nastavenia klienta Weblate a pripája sa k API nasadenému na localhoste. Nakonfigurujte URL API a kľúč API pomocou bežných argumentov wlc alebo premenných prostredia, napríklad --url, --key, WLC_URL a WLC_KEY. Kľúče API sú predvolene odmietané cez nelokálne URL http://; použite HTTPS, loopback HTTP pre lokálny vývoj alebo explicitne povoľte nezabezpečené HTTP.
Príkaz na spustenie kontajnera používa nasledujúcu syntax:
docker run --rm weblate/wlc [WLC_ARGS]
Príklad:
docker run --rm weblate/wlc --url https://hosted.weblate.org/api/ list-projects
Môžete chcieť odovzdať vašu Konfiguračné súbory Docker kontajneru. Keď váš repozitár obsahuje konfiguráciu projektu, ako je .weblate, najjednoduchší prístup je pridať váš aktuálny adresár ako zväzok /home/weblate:
docker run --volume $PWD:/home/weblate --rm weblate/wlc show
Keď namontovaný repozitár poskytuje URL API v konfigurácii projektu a odovzdáte kontajneru neobmedzený kľúč API, explicitne pripnite aj URL: WLC_KEY vyžaduje WLC_URL a --key vyžaduje --url. Rovnaké párovanie sa vyžaduje pre prepisy --allow-insecure-http a --allow-insecure-ssl.
Ak nakonfigurovaná URL API používa nelokálne http:// a je poskytnutý kľúč API, kontajner odmietne odoslať kľúč, pokiaľ nie je explicitne povolené nezabezpečené HTTP. Uprednostnite HTTPS; pre staršie nasadenia odovzdajte --allow-insecure-http alebo nastavte WLC_ALLOW_INSECURE_HTTP. Certifikáty TLS sú predvolene vždy overované, vrátane loopback URL. Použite --allow-insecure-ssl alebo WLC_ALLOW_INSECURE_SSL iba vtedy, keď overenie certifikátov nemožno povoliť.
Začíname¶
Najjednoduchší spôsob, ako začať, je vytvoriť osobnú konfiguráciu wlc v ~/.config/weblate (pozri Konfiguračné súbory pre úplné pravidlá objavovania a iné umiestnenia):
[weblate]
url = https://hosted.weblate.org/api/
[keys]
https://hosted.weblate.org/api/ = APIKEY
Potom môžete vyvolať príkazy na predvolenom serveri:
wlc ls
wlc commit sandbox/hello-world
Viď aj
Staršia konfigurácia¶
Zmenené vo verzii 1.17: Zastaraná konfigurácia používajúca nerozsahový key už nie je podporovaná.
Zmenené vo verzii 2.2.0: Globálna konfigurácia allow_insecure_http už nie je podporovaná. Nakonfigurujte namiesto toho pôvod v sekcii [insecure_http].
Migrácia starej konfigurácie:
[weblate]
url = https://hosted.weblate.org/api/
key = YOUR_KEY_HERE
Na konfiguráciu s kľúčom obmedzeným na URL API:
[weblate]
url = https://hosted.weblate.org/api/
[keys]
https://hosted.weblate.org/api/ = YOUR_KEY_HERE
Prehľad¶
wlc [arguments] <command> [options]
Príkazy skutočne indikujú, ktorá operácia sa má vykonať.
Popis¶
Klient Weblate je Python knižnica a utilita príkazového riadku na diaľkovú správu Weblate pomocou REST API Weblate. Vyvolajte utilitu príkazového riadku ako wlc; Python API nájdete v wlc.
Argumenty¶
Program akceptuje nasledujúce argumenty, ktoré definujú formát výstupu alebo ktorú inštanciu Weblate použiť. Tieto sa musia zadať pred akýmkoľvek príkazom.
- --format {csv,json,text,html}¶
Špecifikujte formát výstupu. Predvolený je
text.Listing commands write results incrementally in all formats as API pages are fetched, reducing memory use for large listings. Normal output buffering still applies. Empty listings produce no output, including in JSON format.
If a later request fails, already written results remain on standard output, and the command reports the error on standard error and exits with a nonzero status. JSON and HTML output can be incomplete in this case. Check the exit status before treating an export as complete.
- --version¶
Vytlačte verziu programu a ukončite. Príkaz
versionpodporuje formátovanie výstupu a môže vytlačiť iba číslo verzie.
- --debug¶
Vytlačte podrobnú komunikáciu HTTP. Hodnoty hlavičky autorizácie sú redigované a telá požiadaviek nie sú logované, ale parametre dotazu áno; nedávajte tajomstvá do parametrov dotazu.
- --url URL¶
Špecifikujte URL API. Prepíše akúkoľvek hodnotu nájdenú v konfiguračnom súbore, pozri Konfiguračné súbory. URL by mala končiť na
/api/, napríkladhttps://hosted.weblate.org/api/.
- --key KEY¶
Špecifikujte kľúč používateľa API, ktorý sa má použiť. Prepíše akúkoľvek hodnotu nájdenú v konfiguračnom súbore, pozri Konfiguračné súbory. Svoj kľúč nájdete vo svojom profile na Weblate. Keď sa URL API načíta z automaticky objavenej konfigurácie projektu,
--keysa musí použiť spolu s--url. Kľúče API sú predvolene odmietané cez nelokálne URLhttp://.
- --allow-insecure-http¶
Povoliť odosielanie kľúčov API cez nelokálne URL
http://. Namiesto toho uprednostnite HTTPS alebo loopback HTTP; táto možnosť je určená iba pre staršie nasadenia, kde HTTPS nie je dostupné. Táto možnosť povoluje nezabezpečené HTTP iba pre aktuálne spustenie. Keď URL API pochádza z automaticky objavenej konfigurácie projektu, táto možnosť vyžaduje--url.
- --allow-insecure-ssl¶
Zakázať overovanie certifikátov TLS pre aktuálne spustenie. Certifikáty sú predvolene overované pre každú URL HTTPS, vrátane loopback URL. Keď URL API pochádza z automaticky objavenej konfigurácie projektu, táto možnosť vyžaduje
--url.
- --config PATH¶
Načítať konfiguráciu iba z
PATHnamiesto objavených globálnych a projektových konfiguračných súborov, pozri Konfiguračné súbory.
- --config-section SECTION¶
Vyberá sekciu konfiguračného súboru na použitie namiesto
[weblate], pozri Konfiguračné súbory.
Cesty objektov¶
Príkazy pracujúce s objektom akceptujú jednu z týchto ciest:
PROJECTSlug projektu.
PROJECT/COMPONENTSlug komponentu vrátane jeho projektu.
PROJECT/COMPONENT/LANGUAGEJazyk prekladu vrátane jeho projektu a komponentu.
UNIT_IDNumerické ID prekladovej jednotky. Tento formulár akceptujú iba príkazy, ktoré explicitne podporujú jednotky.
Príkazy vyžadujúce objekt používajú nastavenie translation z Konfiguračné súbory, keď je cesta vynechaná. Príkazy ls a download tiež používajú toto nastavenie pred návratom k svojmu správaniu bez objektu. Pre list-components a list-translations vynechaný objekt vždy požaduje zoznam celej inštancie.
Príkazy¶
Dostupné sú nasledujúce príkazy:
- list-languages¶
Vypíše všetky jazyky vo Weblate.
- list-projects¶
Vypíše všetky projekty vo Weblate.
- list-components¶
Vypíše všetky komponenty vo Weblate alebo komponenty v špecifikovanom projekte.
- list-translations¶
Vypíše všetky preklady vo Weblate alebo preklady v špecifikovanom komponente.
- list-units¶
Vypíše jednotky v špecifikovanom preklade.
- --query QUERY¶
Filtruje jednotky pomocou syntaxe vyhľadávacieho dotazu.
- show¶
Zobrazí projekt, komponent, preklad alebo jednotku.
- delete¶
Odstráni projekt, komponent, preklad alebo jednotku bez výzvy na potvrdenie.
- ls¶
Vypíše všetky projekty, keď nie je špecifikovaný objekt, komponenty v projekte alebo preklady v komponente.
- commit¶
Zapíše zmeny vykonané v objekte Weblate (preklad, komponent alebo projekt).
- pull¶
Stiahne zmeny zo vzdialeného repozitára do objektu Weblate (preklad, komponent alebo projekt).
- push¶
Odošle zmeny objektu Weblate do vzdialeného repozitára (preklad, komponent alebo projekt).
- reset¶
Resetuje zmeny v objekte Weblate, aby zodpovedali vzdialenému repozitáru (preklad, komponent alebo projekt).
- cleanup¶
Odstráni všetky nesledované zmeny v objekte Weblate, aby zodpovedali vzdialenému repozitáru (preklad, komponent alebo projekt).
- repo¶
Zobrazí stav repozitára pre daný objekt Weblate (preklad, komponent alebo projekt).
- stats¶
Zobrazí podrobné štatistiky pre daný objekt Weblate (preklad, komponent alebo projekt).
- lock-status¶
Zobrazí stav uzamknutia komponentu.
- lock¶
Uzamkne komponent pred ďalším prekladom vo Weblate.
- unlock¶
Odomkne preklad komponentu Weblate.
- changes¶
Zobrazí zmeny pre projekt, komponent alebo preklad.
- download¶
Stiahne prekladové súbory. Pre preklad wlc zapíše súbor do
--outputalebo do presmerovaného štandardného výstupu. Odmieta písať surový obsah súboru do interaktívneho terminálu.Pre komponent alebo projekt je
--outputpovinný a je považovaný za adresár. wlc zapíše jeden archív ZIP na komponent. Bez objektu stiahne každý komponent v inštancii Weblate rovnakým spôsobom.- --convert FORMAT¶
Požaduje konverziu na
FORMATna serveri. Ak nie je špecifikované, nedôjde k žiadnej konverzii.
- --output PATH¶
Špecifikuje výstupný súbor pre preklad alebo výstupný adresár pre komponent, projekt alebo sťahovanie celej inštancie. Na zápis prekladu do štandardného výstupu použite
-.
- --no-glossary¶
Vylúči komponenty slovníka zo sťahovania komponentov, projektov a celej inštancie.
- upload¶
Nahrá prekladový súbor.
- --overwrite¶
Prepíše existujúce preložené reťazce. Toto je ekvivalentné
--conflicts replace-translated.
- --conflicts {ignore,replace-translated,replace-approved}¶
Vyberá, ako sa riešia konflikty s existujúcimi prekladmi.
- --input PATH¶
Číta obsah z
PATH. Ak nie je špecifikované alebo-, obsah sa číta zo štandardného vstupu.
- --method {translate,approve,suggest,fuzzy,replace,source,add}¶
Metóda nahrávania na použitie, pozri Metódy importu. Predvolená je
translate.
- --fuzzy {process,approve}¶
Vyberá spracovanie fuzzy reťazcov (označených na úpravu).
- --author-name NAME¶
Meno autora, na prepísanie aktuálne autentifikovaného používateľa
- --author-email EMAIL¶
E-mail autora, na prepísanie aktuálne autentifikovaného používateľa
- edit-unit¶
Aktualizuje prekladovú jednotku. Vyžaduje sa aspoň jedna možnosť aktualizácie.
- --target TARGET [TARGET ...]¶
Nastaví jeden alebo viac preložených reťazcov.
- --state STATE¶
Nastaví stav jednotky:
0pre prázdne,10pre fuzzy,20pre preložené alebo30pre schválené.
- --explanation EXPLANATION¶
Nastaví vysvetlenie reťazca.
- --extra-flags FLAGS¶
Nastaví ďalšie príznaky reťazca.
Rada
Podrobnejšie informácie o vyvolávaní jednotlivých príkazov získate zadaním --help, napríklad: wlc ls --help.
Konfiguračné súbory¶
Keď je poskytnutý --config, wlc načíta iba tento súbor.
Bez --config, wlc najprv načíta objavený globálny konfiguračný súbor zo štandardných umiestnení špecifických pre platformu:
C:\Users\NAME\AppData\Roaming\weblate.iniGlobálny konfiguračný súbor na Windows v roamingovom profile.
C:\Users\NAME\AppData\Local\weblate.iniGlobálny konfiguračný súbor na Windows v lokálnom profile.
~/.config/weblateGlobálny konfiguračný súbor na systémoch typu Unix.
~/.config/weblate.iniAlternatívny názov súboru globálnej konfigurácie v systémoch podobných Unixu.
/etc/xdg/weblateSystémový záložný konfiguračný súbor.
/etc/xdg/weblate.iniAlternatívny názov systémového záložného konfiguračného súboru.
Program dodržiava špecifikáciu XDG, takže umiestnenie konfiguračných súborov môžete upraviť pomocou premenných prostredia XDG_CONFIG_HOME alebo XDG_CONFIG_DIRS.
Na Windows sú adresáre APPDATA a LOCALAPPDATA preferovanými umiestneniami pre konfiguračný súbor.
Po načítaní globálnej konfigurácie wlc načíta najbližší projektový konfiguračný súbor z aktuálneho adresára alebo jeho rodičov:
.weblate,.weblate.ini,weblate.iniProjektový konfiguračný súbor umiestnený v repozitári.
Konfigurácia projektu sa načíta po globálnej konfigurácii a prepisuje zodpovedajúce nastavenia. Môže vybrať URL API, predvolený objekt, nastavenia požiadavky a zodpovedajúci kľúč API obmedzený URL, čím umožní klonovanému repozitáru automaticky vybrať jeho server Weblate a preklad.
Načíta sa iba najbližší projektový konfiguračný súbor. Konfiguračné súbory vo vzdialenejších rodičovských adresároch sa ignorujú.
Nasledujúce nastavenia možno nakonfigurovať v sekcii [weblate] (môžete toto prispôsobiť pomocou --config-section):
- key
Removed in version 1.17: Použite sekciu
[keys]na špecifikáciu kľúčov obmedzených na jednotlivé URL API, pozri Staršia konfigurácia.
- url
URL servera API, predvolene
http://127.0.0.1:8000/api/.
- translation
Predvolená cesta objektu pre príkazy, ktoré jeden akceptujú: projekt, komponent, preklad alebo numerické ID jednotky.
- retries, timeout, allowed_methods, backoff_factor, status_forcelist
Nastavenia opakovaných pokusov a časového limitu požiadaviek HTTP.
retriesje predvolene0abackoff_factor0.status_forcelistje zoznam stavových kódov HTTP oddelených čiarkami, ktoré spúšťajú opakované pokusy, a predvolene je prázdny.allowed_methodsvypisuje metódy, ktoré sa môžu opakovať, oddelené čiarkami alebo bielymi znakmi. Predvolene súHEAD,DELETE,OPTIONS,PUTaGET. Tieto nastavenia opakovaných pokusov sa odovzdávajú dourllib3.util.Retry.timeoutje časový limit požiadavky v sekundách a predvolene je300. Aktuálne vydania wlc používajúallowed_methodsnamiesto staršej možnostimethod_whitelist.
Konfiguračný súbor je súbor INI, napríklad:
[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
Kľúče API sú uložené v sekcii [keys]:
[keys]
https://hosted.weblate.org/api/ = APIKEY
Toto vám umožňuje ukladať kľúče vo vašich osobných nastaveniach, zatiaľ čo používate konfiguráciu .weblate vo VCS repozitári, takže wlc vie, s ktorým serverom má komunikovať. Vyhľadávanie [keys] je obmedzené na úplnú nakonfigurovanú URL API, nie len na jej sieťový pôvod.
Konfigurácia projektu môže tiež dodať alebo nahradiť zodpovedajúcu položku v [keys]. Neukladajte cenné kľúče API do správy verzií; zvyčajne uchovávajte kľúče v osobnej konfigurácii a v konfigurácii projektu iba URL API a predvolený objekt.
Výnimky nezabezpečeného prenosu sú uložené v sekciách obmedzených pôvodom v dôveryhodnej konfigurácii používateľa:
[insecure_http]
http://legacy.example.com:80 = true
[insecure_ssl]
https://legacy.example.com:443 = true
Pôvod pozostáva zo schémy, normalizovaného názvu hostiteľa a efektívneho portu. Cesta API je ignorovaná, zatiaľ čo rôzne schémy a porty zostávajú izolované. Sekcia [insecure_http] povoľuje kľúče API cez nelokálne HTTP pre zodpovedajúce pôvody. Sekcia [insecure_ssl] zakazuje overovanie certifikátov TLS pre zodpovedajúce pôvody.
Zmenené vo verzii 2.2.0: Certifikáty TLS sú predvolene overované pre všetkých hostiteľov. Konfigurácia nezabezpečeného HTTP a TLS je obmedzená na pôvody. Automaticky objavená konfigurácia projektu nemôže pridávať položky do týchto sekcií ani povoliť odstránené globálne nastavenia. Konfigurácia používateľa a explicitne vybrané súbory --config sú dôveryhodné.
V CI musia neobmedzené kľúče explicitne pripnúť URL API: nastavte oba WLC_URL a WLC_KEY, alebo použite --url spolu s --key.
Premenné prostredia¶
Added in version 1.18.0.
Zmenené vo verzii 2.0.1: Neobmedzené kľúče API vyžadujú explicitnú URL API, keď sa konfigurácia projektu objaví automaticky. Kľúče API sú odmietané cez nelokálne URL http://, pokiaľ nie je explicitne povolené nezabezpečené HTTP.
Zmenené vo verzii 2.2.0: Prepisy prostredia pre nezabezpečené HTTP a TLS vyžadujú WLC_URL, keď by URL API inak pochádzala z automaticky objavenej konfigurácie projektu.
URL API a kľúč možno nakonfigurovať aj pomocou premenných prostredia. Toto je obzvlášť užitočné pre pracovné postupy CI, kde WLC_URL pripína cieľ a WLC_KEY sa vstrekuje ako tajomstvo:
- WLC_URL¶
URL API
- WLC_KEY¶
Kľúč API. Keď by URL API inak pochádzala z automaticky objavenej konfigurácie projektu,
WLC_KEYsa prijíma iba spolu sWLC_URL. Kľúče API sú predvolene odmietané cez nelokálne URLhttp://.
- WLC_ALLOW_INSECURE_HTTP¶
Nastavte na
1,true,yesaleboon, aby ste povolili kľúče API cez nelokálne URLhttp://. Namiesto toho uprednostnite HTTPS alebo loopback HTTP. Ostatné hodnoty, ako0alebofalse, sa považujú za nenastavené. Keď by URL API inak pochádzala z automaticky objavenej konfigurácie projektu, táto premenná sa prijíma iba spolu sWLC_URL.
- WLC_ALLOW_INSECURE_SSL¶
Nastavte na
1,true,yesaleboon, aby ste zakázali overovanie certifikátov TLS. Ostatné hodnoty, ako0alebofalse, sa považujú za nenastavené. Keď by URL API inak pochádzala z automaticky objavenej konfigurácie projektu, táto premenná sa prijíma iba spolu sWLC_URL.
Rovnaká ochrana platí pre argumenty príkazového riadku: --key, --allow-insecure-http a --allow-insecure-ssl sa akceptujú s automaticky objavenou konfiguráciou projektu iba vtedy, keď je poskytnutý --url.
Priorita konfigurácie URL API a kľúča (od najvyššej po najnižšiu) je:
Konfigurácia načítaná z
--config, alebo z objavenej globálnej konfigurácie plus najbližšej projektovej konfigurácie, keď sa--confignepoužíva.
Povolenia nezabezpečeného prenosu sú iba na povolenie, nie sú to bežné nastavenia priority. Sú povolené prepisom z príkazového riadku alebo prostredia, alebo zodpovedajúcim pôvodom v dôveryhodnej sekcii [insecure_http] alebo [insecure_ssl]. Automaticky objavená konfigurácia projektu nemôže pridávať dôveryhodné pôvody.
Bezpečnostný model¶
Konfigurácia projektu je súčasťou pracovného postupu repozitára a je zámerne dôveryhodná na výber koncového bodu API, predvoleného objektu, nastavení požiadavky a zodpovedajúceho kľúča API obmedzeného URL. Spustenie wlc vnútri repozitára autorizuje jeho najbližšiu projektovú konfiguráciu vybrať server, ktorý prijíma príkazy a nahrávania a poskytuje zobrazovaný alebo stiahnutý obsah. Keď toto nie je žiaduce, použite explicitný dôveryhodný súbor --config.
Klient príkazového riadku akceptuje kľúče API z --key, WLC_KEY alebo zo sekcie [keys]. Nenačíta HTTP autentifikáciu z .netrc alebo súboru pomenovaného NETRC. Poverenia vložené do URL API sú odmietnuté; namiesto toho použite kľúč API. Ostatná integrácia prostredia Requests, vrátane premenných proxy a balíka CA, zostáva povolená.
Model hrozieb wlc dokumentuje úplné hranice dôvery, bezpečnostné vlastnosti, nególy a zodpovednosti downstream. Kópia zodpovedajúca verzii je zahrnutá v zdrojových a wheel distribúciách. Bezpečnostné problémy hláste pomocou procesu hlásenia zraniteľností Weblate.
Príklady¶
Vypísať aktuálnu verziu programu:
$ wlc version
Vypísať všetky projekty:
$ 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/
Nahrať prekladový súbor:
$ wlc upload project/component/language --input /tmp/hello.po
Môžete tiež určiť, na ktorom projekte má wlc pracovať:
$ 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/
S týmto nastavením je ľahké zapísať čakajúce zmeny v aktuálnom projekte:
$ wlc commit