Integrácia verziovania

Weblate momentálne podporuje Git (s rozšírenou podporou pre GitHub pull requesty, GitLab merge requesty, Gitea pull requesty, Gerrit recenzné požiadavky, Subversion, Bitbucket Cloud pull requesty, Bitbucket Data Center pull requesty a Azure DevOps pull requesty) a Mercurial ako backendy správy verzií.

Pre kroky nastavenia špecifické pre poskytovateľa, ktoré kombinujú prístup k repozitáru, prichádzajúce notifikácie a odosielanie prekladov späť, pozri Integrácie s platformami na hosťovanie kódu.

Prístup k repozitárom

Repozitár VCS, ktorý chcete použiť, musí byť pre Weblate dostupný. Pri verejne dostupnom repozitári stačí zadať správnu URL (napríklad https://github.com/WeblateOrg/weblate.git), ale pre súkromné repozitáre alebo pre URL na odosielanie (push) je nastavenie zložitejšie a vyžaduje autentifikáciu.

Riešenie problémov s URL repozitára

Weblate overuje URL repozitára a odosielania pred pripojením. HTTPS a SSH sú predvolene povolené; administrátori inštancie môžu toto upraviť pomocou VCS_ALLOW_SCHEMES.

Názvy hostiteľov repozitára sa musia prekladať zo servera Weblate. Keď je povolené VCS_RESTRICT_PRIVATE, Weblate tiež odmieta ciele, ktoré sa prekladajú na interné alebo inak neverejné adresy. Používajte verejne dostupnú URL repozitára, kde je to možné. Pre zámerne súkromný repozitár v dôveryhodnej sieti požiadajte administrátora inštancie, aby pridal jeho názov hostiteľa do VCS_ALLOW_HOSTS.

Git cez HTTPS a SSH môže viazať pripojenia na adresy schválené počas overovania. Backendy, ktoré to nedokážu bezpečne urobiť, vrátane Mercurial a Subversion, vyžadujú dôveryhodný názov hostiteľa repozitára v VCS_ALLOW_HOSTS, keď sú povolené obmedzenia súkromných adries.

Konfigurujte konečnú URL repozitára priamo, keď je to možné. Weblate môže automaticky prijať trvalé HTTP presmerovanie iba vtedy, keď zostáva na tom istom hostiteľovi a cieľ je úspešne overený. Presmerovania na iného hostiteľa alebo protokol sa musia nakonfigurovať manuálne.

Prístup k repozitárom z Hosted Weblate

Poznámka

Táto sekcia platí iba pre Hosted Weblate (hosted.weblate.org). Ak prevádzkujete vlastnú inštanciu Weblate, pozrite si namiesto toho nasledujúcu sekciu.

Pre repozitáre GitHub na Hosted Weblate použite aplikáciu Hosted Weblate z postupu Weblate Pripojiť GitHub účet, kedykoľvek je to možné. Aplikácia udeľuje prístup k repozitáru, prijíma prichádzajúce notifikácie, odosiela vetvy prekladov a vytvára pull requesty bez nutnosti pozvať používateľa Hosted Weblate weblate. Úplné nastavenie nájdete v Prístup k repozitáru GitHub.

Pre priamy prístup SSH mimo pracovného postupu aplikácie GitHub a pre repozitáre Bitbucket, Codeberg a GitLab má Hosted Weblate vyhradeného používateľa na odosielanie (s používateľským menom weblate, e-mailom hosted@weblate.org a menom alebo popisom profilu Weblate push user).

Rada

Na platformách môže byť viac používateľov Weblate určených pre iné inštancie Weblate. Na nájdenie správneho používateľa pre Hosted Weblate sa odporúča vyhľadávať podľa e-mailu hosted@weblate.org.

Musíte pridať tohto používateľa ako spolupracovníka a udeliť mu príslušné oprávnenia k vášmu repozitáru (iba na čítanie stačí na klonovanie, na odosielanie je potrebné právo na zápis). V závislosti od služby a nastavení vašej organizácie sa to stane okamžite, alebo to vyžaduje potvrdenie na strane Weblate.

Používateľ weblate na GitHube prijíma pozvánky automaticky do piatich minút, ak tam zámerne použijete priamy prístup cez SSH. Na ostatných službách môže byť potrebné manuálne spracovanie, preto buďte trpezliví.

Pre toto nastavenie priameho SSH používateľa, po pridaní používateľa weblate do vášho repozitára, môžete nakonfigurovať Repozitár zdrojového kódu a URL odoslania repozitára pomocou protokolu SSH, napríklad git@example.com:group/project.git.

Prístup k repozitárom na stránkach na hosťovanie kódu (GitHub, GitLab, Bitbucket, Azure DevOps, …)

Poznámka

Táto sekcia platí pre vlastné inštancie Weblate. Ak používate Hosted Weblate (hosted.weblate.org), pozrite si namiesto toho Prístup k repozitárom z Hosted Weblate.

Pre vlastné inštancie Weblate je jeden súkromný repozitár často najjednoduchšie nastaviť pomocou URL repozitára HTTPS s prístupovým tokenom, pozri Integrácie s platformami na hosťovanie kódu.

Pre viacero repozitárov vytvorte vyhradeného používateľa hosťovania kódu priradeného k SSH kľúču Weblate (pozri SSH kľúč Weblate). Týmto spôsobom priradíte SSH kľúč Weblate jednému používateľovi, pretože platformy často vynucujú jednorazové použitie SSH kľúča. Udeľte tomuto používateľovi prístup k repozitárom a na prístup k nim použite URL SSH (pozri SSH repozitáre).

SSH repozitáre

Jednou z bežných metód prístupu k súkromným repozitárom je SSH. Autorizujte verejný SSH kľúč Weblate (pozri SSH kľúč Weblate) na prístup k nadradenému repozitáru týmto spôsobom.

Varovanie

Na GitHube môže byť každý kľúč použitý iba raz, pozri Prístup k repozitáru GitHub a Prístup k repozitárom z Hosted Weblate.

Weblate tiež ukladá odtlačok kľúča hostiteľa pri prvom pripojení a zlyhá pri pripojení k hostiteľovi, ak sa neskôr zmení (pozri Overovanie SSH kľúčov hostiteľa).

V prípade potreby úpravy ju vykonajte v administrátorskom rozhraní Weblate:

_images/ssh-keys.webp

SSH kľúč Weblate

Zmenené vo verzii 4.17: Weblate teraz generuje both RSA a Ed25519 SSH kľúče. Pre nové nastavenia sa odporúča používať Ed25519.

Verejný kľúč Weblate je viditeľný pre všetkých používateľov prehliadajúcich stránku O nás.

Administrátori môžu generovať alebo zobraziť verejný kľúč, ktorý Weblate aktuálne používa na pripojenie (z SSH kľúče) na úvodnej stránke administrátorského rozhrania.

Poznámka

Zodpovedajúci súkromný SSH kľúč momentálne nemôže mať heslo, preto zabezpečte, aby bol dobre chránený.

Rada

Vytvorte zálohu vygenerovaného súkromného SSH kľúča Weblate.

Overovanie SSH kľúčov hostiteľa

Weblate automaticky ukladá SSH kľúče hostiteľa pri prvom prístupe a pamätá si ich na ďalšie použitie.

Keď je povolené VCS_RESTRICT_PRIVATE, Weblate rozlíši a overí hostiteľa repozitára pred skenovaním jeho kľúča a pripojí ssh-keyscan iba k schváleným adresám. Uložený kľúč zostáva priradený k pôvodnému názvu hostiteľa.

Pre pripojenia Git Weblate tiež aplikuje HostName a Port z DATA_DIR/ssh/config pred overením a uložením efektívneho cieľa. Konfigurácia SSH a SSH_EXTRA_ARGS sú dôveryhodné vstupy kontrolované administrátorom. Môžu zmeniť smerovanie pripojenia a SSH_EXTRA_ARGS môže prepísať ukladanie adries Weblate; za ich účinky zodpovedajú administrátori.

Ak chcete overiť odtlačok kľúča pred pripojením k repozitáru, pridajte SSH kľúče hostiteľov serverov, ku ktorým sa chystáte pristupovať, v Pridať kľúč hostiteľa v tej istej sekcii administrátorského rozhrania. Zadajte názov hostiteľa, ku ktorému sa chystáte pristupovať (napr. gitlab.com), a stlačte Odoslať. Overte, či sa jeho odtlačok zhoduje so serverom, ktorý ste pridali.

Pridané kľúče s odtlačkami sa zobrazujú v potvrdzujúcej správe:

_images/ssh-keys-added.webp

Pripájanie k starším SSH serverom

Weblate potláča varovanie OpenSSH o pripojeniach bez výmeny kľúčov po kvantovej ére, aby nezakrývalo chyby repozitára. Toto nemení vyjednávanie algoritmov: výmena kľúčov po kvantovej ére sa stále používa, keď ju podporuje klient aj server. Ostatné varovania SSH zostávajú povolené. Aktualizujte alebo nakonfigurujte server SSH na podporu výmeny kľúčov po kvantovej ére, aby ste sa chránili pred útokmi typu „ulož teraz, dešifruj neskôr“.

Nedávne vydania OpenSSH (napríklad to, ktoré sa používa v Docker kontajneri Weblate) predvolene deaktivujú RSA podpisy používajúce hashovací algoritmus SHA-1. Táto zmena bola vykonaná, pretože hashovací algoritmus SHA-1 je kryptograficky prelomený a je možné vytvoriť kolízie hashov s vybraným prefixom za menej ako 50 000 USD.

Pre väčšinu používateľov by táto zmena mala byť neviditeľná a nie je potrebné nahradiť kľúče ssh-rsa. OpenSSH podporuje podpisy RFC8332 RSA/SHA-256/512 od verzie 7.2 a existujúce kľúče ssh-rsa budú automaticky používať silnejší algoritmus, kde je to možné.

Nekompatibilita je pravdepodobnejšia pri pripájaní k starším implementáciám SSH, ktoré neboli aktualizované alebo nesledovali vylepšenia protokolu SSH. SSH pripojenie k takému serveru zlyhá s:

no matching host key type found. Their offer: ssh-rsa

V týchto prípadoch môže byť potrebné selektívne znovu povoliť RSA/SHA1, aby sa umožnilo pripojenie a/alebo autentifikácia používateľa prostredníctvom možností HostkeyAlgorithms a PubkeyAcceptedAlgorithms. Napríklad, nasledujúci blok v DATA_DIR/ssh/config povolí RSA/SHA1 pre autentifikáciu hostiteľa a používateľa pre jediný cieľový hostiteľ:

Host legacy-host
   HostkeyAlgorithms +ssh-rsa
   PubkeyAcceptedAlgorithms +ssh-rsa

Odporúčame povoliť RSA/SHA1 iba ako dočasné riešenie, kým nebude možné staršie implementácie aktualizovať alebo rekonfigurovať s iným typom kľúča (ako je ECDSA alebo Ed25519).

GitHub repozitáre

Podrobný prístup k repozitárom GitHub je popísaný v Prístup k repozitáru GitHub.

GitLab repozitáre

Podrobný prístup k repozitárom GitLab je popísaný v Prístup k repozitáru GitLab.

Interné URL Weblate

Zdieľajte jedno nastavenie repozitára medzi rôznymi komponentmi odkazovaním na jeho umiestnenie ako weblate://project/component v iných (prepojených) komponentoch. Týmto spôsobom prepojené komponenty používajú konfiguráciu VCS repozitára hlavného (odkazovaného) komponentu.

Varovanie

Odstránenie hlavného komponentu odstráni aj prepojené komponenty.

Prepojené komponenty zdieľajú kompletný checkout repozitára; prepojenie ich neizoluje na konkrétne súbory alebo adresáre. Používatelia, ktorí majú povolené spravovať prepojený komponent, môžu konfigurovať operácie ovplyvňujúce súbory kdekoľvek v zdieľanom checkoute. Napríklad môžu meniť masky súborov, formáty a šablóny, alebo inštalovať a konfigurovať doplnky, ktoré čítajú, generujú alebo upravujú súbory repozitára. Weblate môže zapísať a odoslať výsledné zmeny pomocou konfigurácie repozitára hlavného komponentu.

Prepojte komponenty iba vtedy, keď vlastník repozitára dôveruje administrátorom každého prepojeného komponentu s kompletným checkoutom. Použite samostatné repozitáre, keď komponenty vyžadujú izoláciu na úrovni súborov.

Weblate automaticky upraví URL repozitára pri vytváraní komponentu, ak nájde komponent s rovnakým nastavením repozitára. Toto môžete prepísať v poslednom kroku konfigurácie komponentu.

Dôvody na použitie tohto:

  • Šetrí miesto na disku na serveri, repozitár je uložený iba raz.

  • Urýchľuje aktualizácie, aktualizuje sa iba jeden repozitár.

  • Existuje iba jeden exportovaný repozitár s prekladmi Weblate (pozri Git exporter).

  • Niektoré doplnky môžu pracovať s viacerými komponentmi zdieľajúcimi jeden repozitár, napríklad Zlúčiť Git zápisy.

HTTPS repozitáre

Na prístup k chráneným HTTPS repozitárom zahrňte používateľské meno a heslo do URL. Nebojte sa, Weblate tieto informácie odstráni, keď sa URL zobrazí používateľom (ak je vôbec povolené vidieť URL repozitára).

Napríklad GitHub URL s pridanou autentifikáciou môže vyzerať takto: https://user:your_access_token@github.com/WeblateOrg/weblate.git.

Ak nezadáte poverenia v URL a repozitár ich vyžaduje, Git zlyhá s chybou:

fatal: could not read Username for 'https://github.com': terminal prompts disabled

Zmenené vo verzii 5.10.2: Weblate používa proaktívnu autentifikáciu s Git 2.46.0 a novším, keď sú poskytnuté HTTP poverenia.

Toto umožňuje prístup k repozitárom Azure DevOps a zrýchľuje prístup k autentifikovaným repozitárom.

Poznámka

Ak vaše používateľské meno alebo heslo obsahuje špeciálne znaky, musia byť kódované pre URL, napríklad https://user%40example.com:%24password%23@bitbucket.org/….

Použitie proxy

Ak potrebujete pristupovať k repozitárom Git cez HTTPS pomocou proxy servera, nakonfigurujte premenné prostredia pre jednotlivé protokoly popísané v HTTP proxy.

Parametre správy verzií

Added in version 2026.9.

Parametre správy verzií ladenia určujú, ako komponent interaguje so svojím repozitárom bez nutnosti vybrať iný systém správy verzií. Konfigurujú sa pre každý komponent v Parametre správy verzií a ponúkajú sa iba parametre platné pre vybraný Systém verziovania.

Zoznam parametrov správy verzií

Názov parametra

Systémy správy verzií

Štítok

Text pomocníka

create_merge_request

  • azure_devops

  • bitbucketcloud

  • bitbucketserver

  • gitea

  • github

  • github-app

  • gitlab

  • pagure

Vytvoriť merge requesty

Otvoriť pull alebo merge request pre zmeny prekladu. Keď je vypnuté, Weblate odosiela priamo do prekladovej vetvy, čo vyžaduje prístup na zápis.

git_force_push

  • git

Vynútiť odoslanie

Prepísať vzdialenú vetvu namiesto odmietnutia odoslať zmeny, ktoré nie sú fast-forward. Používajte toto iba s repozitárom vyhradeným pre preklady, pretože to zahadzuje upstream commity, ktoré nie sú prítomné vo Weblate.

merge_request_automerge

  • github

  • github-app

Automaticky zlúčiť pull requesty

Zapnúť automatické zlúčenie GitHub pre pull requesty vytvorené Weblate, aby sa zlúčili, keď prejdú požadované kontroly. Pull requesty, na ktoré nie je potrebné čakať, sa zlúčia okamžite.

merge_request_merge_method

  • github

  • github-app

Metóda zlúčenia

Metóda použitá pri automatickom zlúčení pull requestov. Repozitár to musí povoliť.

Dostupné voľby:

  • merge – Vytvoriť merge commit

  • squash – Squash a zlúčiť

  • rebase – Rebase a zlúčiť

Git

Rada

Weblate potrebuje Git 2.46 alebo novší.

Poznámka

Weblate overuje trvalé HTTP presmerovania, ktoré zostávajú na názve hostiteľa repozitára, a automaticky ukladá kanonickú URL repozitára. Zmena sa zaznamená v histórii komponentu ako údržba repozitára. Presmerovania na iný názov hostiteľa sa musia nakonfigurovať manuálne.

Viď aj

Pozri Prístup k repozitárom pre informácie o tom, ako pristupovať k rôznym typom repozitárov.

Git LFS

Weblate nepodporuje súbory sledované Git LFS ako prekladové súbory. Nesťahuje ani nenahráva objekty Git LFS. Smudging Git LFS a nahrávania pred odoslaním sú zakázané pre repozitáre spravované Weblate, takže súbory sledované LFS zostávajú ukazovateľovými súbormi. Toto správanie sa vzťahuje na každého poskytovateľa hosťovania Git.

Repozitár môže používať Git LFS pre súbory, ktoré Weblate nepotrebuje čítať ani upravovať. Upstream repozitár zostáva autoritatívnym zdrojom pre tieto objekty LFS. Klonujte z upstreamu, keď potrebujete skutočné súbory namiesto ich ukazovateľov, pretože repozitáre poskytované Weblate nezahŕňajú objekty LFS.

Pre pracovný postup merge requestov GitLab Weblate zakazuje Git LFS vo svojom spravovanom forku. Tým sa zabráni tomu, aby GitLab odmietol vetvy prekladov obsahujúce iba ukazovatele, keď upstream repozitár pridal objekty LFS po vytvorení forku. Existujúce spravované forky sú rekonfigurované pri ich ďalšom odoslaní. Toto nemení konfiguráciu Git LFS upstream projektu.

Git submoduly

Weblate nepopulňuje Git submoduly pri klonovaní repozitárov. Neinicializuje ani neaktualizuje submoduly a nerekurzívně nevstupuje do repozitárov submodulov počas objavovania súborov alebo aktualizácií prekladov. Súbory uložené vo vnútri submodulu preto nie sú dostupné pre masky súborov, keď je Weblate pripojený k rodičovskému repozitáru.

Ak sa prekladové súbory nachádzajú v submodule, pridajte repozitár submodulu do Weblate ako samostatný komponent namiesto dosiahnutia cez rodičovský repozitár. Weblate potom môže klonovať, aktualizovať, commitovať a odosielať do repozitára, ktorý skutočne ukladá prekladové súbory. Rodičovský repozitár zaznamenáva iba ukazovateľ commitu submodulu, takže aktualizácia tohto ukazovateľa sa musí uskutočniť mimo Weblate, napríklad vo vašom bežnom vývojovom pracovnom postupe alebo CI.

Vynútené odosielanie

Zapnite parameter git_force_push parameter správy verzií, aby Weblate vždy vynútil odoslanie. Toto je určené iba v prípade použitia samostatného repozitára pre preklady.

Varovanie

Používajte opatrne, pretože to môže ľahko viesť k strate commitov vo vašom upstream repozitári.

Zmenené vo verzii 2026.9: Toto bol predtým samostatný systém správy verzií Git s vynúteným odoslaním. Existujúce komponenty boli migrované na Git so zapnutým parametrom git_force_push.

Prispôsobenie konfigurácie Git

Weblate vyvoláva všetky príkazy VCS s HOME=$DATA_DIR/home (pozri DATA_DIR), preto úprava používateľskej konfigurácie sa musí vykonať v DATA_DIR/home/.git.

GitHub pull requesty

Podrobné nastavenie pull requestov GitHub je popísané v GitHub pull requesty.

GitLab merge requesty

Podrobné nastavenie merge requestov GitLab je popísané v GitLab merge requesty.

Gitea pull requesty

Podrobné nastavenie pull requestov Gitea je popísané v Gitea pull requesty.

Bitbucket Data Center pull requesty

Podrobné nastavenie pull requestov Bitbucket Data Center je popísané v Bitbucket Data Center pull requesty.

Bitbucket Cloud pull requesty

Podrobné nastavenie pull requestov Bitbucket Cloud je popísané v Bitbucket Cloud pull requesty.

Pagure merge requesty

Podrobné nastavenie merge requestov Pagure je popísané v Pagure merge requesty.

Gerrit

Podrobné nastavenie požiadaviek na kontrolu Gerrit je popísané v Gerrit recenzné požiadavky.

Azure DevOps pull requesty

Podrobné nastavenie pull requestov Azure DevOps je popísané v Azure DevOps pull requesty.

Mercurial

Mercurial je ďalší VCS, ktorý môžete priamo používať vo Weblate.

Poznámka

Malo by to fungovať s akoukoľvek verziou Mercurial, ale niekedy dochádza k nekompatibilným zmenám v rozhraní príkazového riadku, ktoré narúšajú integráciu Weblate.

Viď aj

Pozri Prístup k repozitárom pre informácie o tom, ako pristupovať k rôznym typom repozitárov.

Subversion

Weblate používa git-svn na interakciu s repozitármi subversion. Ide o Perl skript, ktorý umožňuje používať Subversion klientom Git, čo umožňuje používateľom udržiavať úplný klon interného repozitára a zapisovať lokálne.

Poznámka

Weblate sa pokúša automaticky detegovať rozloženie repozitára Subversion - podporuje both priame URL pre vetvu alebo repozitáre so štandardným rozložením (branches/, tags/ a trunk/). Viac informácií o tomto nájdete v dokumentácii git-svn. Ak váš repozitár nemá štandardné rozloženie a narazíte na chyby, skúste zahrnúť názov vetvy do URL repozitára a ponechať vetvu prázdnu.

Poverenia Subversion

Weblate očakáva, že ste certifikát prijali vopred (a vaše poverenia, ak sú potrebné). Pokúsi sa ich vložiť do adresára DATA_DIR. Prijmite certifikát použitím svn raz s nastavenou premennou prostredia $HOME na DATA_DIR:

# Use DATA_DIR as configured in Weblate settings.py, it is /app/data in the Docker
HOME=${DATA_DIR}/home svn co https://svn.example.com/example

Viď aj

DATA_DIR

Lokálne súbory

Rada

V pozadí toto používa Git. Vyžaduje nainštalovaný Git a umožňuje vám prejsť na natívne používanie Gitu s plnou históriou vašich prekladov.

Weblate môže tiež fungovať bez vzdialeného VCS. Počiatočné preklady sa importujú ich nahraním. Neskôr môžete nahradiť jednotlivé súbory nahraním súboru alebo pridať prekladové reťazce priamo z Weblate (momentálne dostupné iba pre jednojazyčné preklady).

V pozadí Weblate vytvorí Git repozitár pre vás a všetky zmeny sa v ňom sledujú. V prípade, že sa neskôr rozhodnete použiť VCS na ukladanie prekladov, už máte repozitár vo Weblate, na ktorom môžete založiť svoju integráciu.