Často kladené otázky¶
Konfigurácia¶
Ako vytvoriť automatizovaný workflow?¶
Weblate môže za vás poloautomaticky vybaviť všetky prekladové veci. Ak mu dáte prístup na odoslanie do vášho repozitára, preklady sa môžu diať bez interakcie, pokiaľ nenastane nejaký konflikt pri zlúčení.
Nastavte váš Git repozitár, aby povedal Weblate, keď dôjde k akejkoľvek zmene, pozri Háky notifikácií pre informácie, ako to urobiť.
Nastavte URL na odoslanie vo vašej Konfigurácia komponentu vo Weblate, toto umožňuje Weblate odosielať zmeny do vášho repozitára.
Zapnite Odoslať pri zápise na vašej Konfigurácia komponentu vo Weblate, toto spôsobí, že Weblate odošle zmeny do vášho repozitára vždy, keď sa stanú vo Weblate.
Ako pristupovať k repozitárom cez SSH?¶
Prosím, pozrite Prístup k repozitárom pre informácie o nastavení SSH kľúčov.
Ako opraviť konflikty pri zlúčení v prekladoch?¶
Konflikty pri zlúčení sa občas stávajú, keď je prekladový súbor zmenený súčasne vo Weblate aj v hlavnom repozitári. Zvyčajne sa tomu môžete vyhnúť zlúčením prekladov Weblate pred vykonaním zmien v prekladových súboroch (napr. pred spustením msgmerge). Stačí povedať Weblate, aby zapísal všetky čakajúce preklady (môžete to urobiť v Údržba repozitára v menu Operácie) a zlúčiť repozitár (ak nie je zapnuté automatické odosielanie).
Ak ste už narazili na konflikt pri zlúčení, najjednoduchší spôsob, ako vyriešiť všetky konflikty lokálne na vašom stroji, je pridať Weblate ako vzdialený repozitár, zlúčiť ho do hlavného a opraviť akékoľvek konflikty. Akonáhle odošlete zmeny späť, Weblate bude môcť použiť zlúčenú verziu bez akýchkoľvek iných špeciálnych akcií.
Poznámka
Ak vyriešite konflikt v pull requeste, zlúčte ho bežným merge commitom. Nevykonávajte squash merge. Squash merge vytvára nový commit namiesto zachovania commitov Weblate, takže Weblate nemusí rozpoznať, že jeho lokálne commity sú už zahrnuté v upstreame a môže potrebovať reset repozitára na obnovenie.
Poznámka
Weblate predvolene používa plytké klony na zníženie času klonovania a využitia disku. Kvôli tomu workflow nižšie funguje najlepšie, keď začnete z aktuálneho checkoutu upstream repozitára. Ak klonujete priamo z exportovaného repozitára Weblate alebo ak váš upstream checkout chýba nedávne zápisy, git remote update weblate môže zlyhať s chybami, ako sú warning: no common commits, bad revision alebo chýbajúce objekty. Toto nevyhnutne neznamená, že Weblate a upstream repozitár majú konfliktné zmeny. Administrátori, ktorí chcú urobiť tento workflow spoľahlivejším, môžu upraviť VCS_CLONE_DEPTH.
Poznámka
V závislosti od vášho nastavenia môže prístup k repozitáru Weblate vyžadovať autentifikáciu. Pri používaní vstavaného Git exporter vo Weblate sa autentifikujete pomocou vášho používateľského mena a API kľúča.
Poznámka
Weblate serves the Git repository itself, but it does not serve Git LFS
objects. See Git LFS for supported behavior. Clone repositories using
Git LFS from the upstream repository and add Weblate as another remote. If
you only need Git-tracked files, you can clone from Weblate with
GIT_LFS_SKIP_SMUDGE=1 to skip downloading Git LFS objects.
Pracovný postup zvyčajne vyzerá takto, keď začnete z aktuálneho checkoutu hlavného repozitára:
# Open an existing up-to-date checkout of the upstream repository or perform
# a fresh one:
git clone UPSTREAM_REPOSITORY_URL
cd REPO
# Commit all pending changes in Weblate, you can do this in the UI as well:
wlc commit
# Lock the translation in Weblate, again this can be done in the UI as well:
wlc lock
# Add Weblate as remote:
git remote add weblate https://hosted.weblate.org/git/project/component/
# You might need to include credentials in some cases:
git remote add weblate https://username:APIKEY@hosted.weblate.org/git/project/component/
# Update weblate remote:
git remote update weblate
# Merge Weblate changes:
git merge weblate/main
# Resolve conflicts:
edit …
git add …
…
git commit
# Rebase changes (if Weblate is configured to do rebases)
git rebase origin/main
# Push changes to upstream repository, Weblate will fetch merge from there:
git push
# Open Weblate for translation:
wlc unlock
Ak používate viacero vetiev vo Weblate, môžete to isté urobiť so všetkými nimi:
# Add and update Weblate remotes
git remote add weblate-one https://hosted.weblate.org/git/project/one/
git remote add weblate-second https://hosted.weblate.org/git/project/second/
git remote update weblate-one weblate-second
# Merge QA_4_7 branch:
git checkout QA_4_7
git merge weblate-one/QA_4_7
... # Resolve conflicts
git commit
# Merge main branch:
git checkout main
git merge weblates-second/main
... # Resolve conflicts
git commit
# Push changes to the upstream repository, Weblate will fetch the merge from there:
git push
V prípade súborov gettext PO existuje spôsob, ako zlúčiť konflikty poloautomaticky:
Stiahnite a uchovajte lokálny klon Git repozitára Weblate. Tiež získajte druhý čerstvý lokálny klon hlavného Git repozitára (t. j. potrebujete dve kópie hlavného Git repozitára: Neporušenú a pracovnú kópiu):
# Add remote:
git remote add weblate /path/to/weblate/snapshot/
# Update Weblate remote:
git remote update weblate
# Merge Weblate changes:
git merge weblate/main
# Resolve conflicts in the PO files:
for PO in `find . -name '*.po'` ; do
msgcat --use-first /path/to/weblate/snapshot/$PO\
/path/to/upstream/snapshot/$PO -o $PO.merge
msgmerge --previous --lang=${PO%.po} $PO.merge domain.pot -o $PO
rm $PO.merge
git add $PO
done
git commit
# Push changes to the upstream repository, Weblate will fetch merge from there:
git push
Ako preložiť niekoľko vetiev naraz?¶
Weblate podporuje odosielanie zmien prekladu v rámci jedného Konfigurácia projektu. Pre každú Konfigurácia komponentu, ktorá to má zapnuté (predvolené správanie), sa vykonaná zmena automaticky propaguje do ostatných. Týmto spôsobom sú preklady udržiavané synchronizované, aj keď sa samotné vetvy už dosť rozchádzajú a nie je možné jednoducho zlúčiť zmeny prekladu medzi nimi.
Akonáhle zlúčite zmeny z Weblate, možno budete musieť zlúčiť tieto vetvy (v závislosti od vášho vývojového workflow) zahodením rozdielov:
git merge -s ours origin/maintenance
Ako prekladať multiplatformové projekty?¶
Weblate podporuje širokú škálu formátov súborov (pozri Formáty lokalizačných súborov) a najjednoduchším prístupom je použiť natívny formát pre každú platformu.
Akonáhle pridáte všetky prekladové súbory platforiem ako komponenty v rámci jedného projektu (pozri Pridávanie prekladových projektov a komponentov), môžete využiť funkciu šírenia prekladov (predvolene zapnutú, ktorú možno vypnúť v nastaveniach Konfigurácia komponentu), aby ste preložili reťazce pre všetky platformy naraz.
Ako exportovať Git repozitár, ktorý používa Weblate?¶
Na repozitári nie je nič špeciálne, nachádza sa v adresári DATA_DIR a je pomenovaný vcs/<projekt>/<komponent>/. Ak máte k tomuto stroju prístup cez SSH, môžete repozitár používať priamo.
Pre anonymný prístup môžete spustiť Git server a umožniť mu poskytovať repozitár verejnosti.
Prípadne môžete na automatizáciu tohto procesu použiť Git exporter vo vnútri Weblate.
Aké sú možnosti odosielania zmien späť do upstreamu?¶
To veľmi závisí od vášho nastavenia, Weblate je v tejto oblasti dosť flexibilný. Tu sú príklady niektorých pracovných postupov používaných s Weblate:
Weblate automaticky odosiela a zlučuje zmeny (pozri Ako vytvoriť automatizovaný workflow?).
Manuálne prikážete Weblate odoslať zmeny (potrebuje prístup na odosielanie do hlavného repozitára).
Niekto manuálne zlúči zmeny z Git repozitára Weblate do hlavného repozitára.
Niekto prepíše históriu vytvorenú Weblate (napr. odstránením zlučovacích zápisov), zlúči zmeny a povie Weblate, aby resetoval obsah v hlavnom repozitári.
Samozrejme, môžete ich podľa želania kombinovať.
Ako môžem obmedziť prístup Weblate len na preklady, bez toho, aby som mu sprístupnil zdrojový kód?¶
Na oddelenie prekladov od zdrojového kódu pri zachovaní verziovania môžete použiť git submodule.
Vytvorte repozitár s vašimi prekladovými súbormi.
Pridajte ho ako submodul do vášho kódu:
git submodule add git@example.com:project-translations.git path/to/translations
Prepojte Weblate s týmto repozitárom, už nebude potrebovať prístup k repozitáru obsahujúcemu váš zdrojový kód.
Hlavný repozitár môžete aktualizovať prekladmi z Weblate pomocou:
git submodule update --remote path/to/translations
Podrobnejšie informácie nájdete v dokumentácii git submodule.
Ako môžem skontrolovať, či je môj Weblate správne nastavený?¶
Weblate obsahuje sadu kontrol konfigurácie, ktoré môžete vidieť v administrátorskom rozhraní. Stačí nasledovať odkaz Správa o výkone v administrátorskom rozhraní alebo priamo otvoriť URL /manage/performance/.
Prečo sú všetky zápisy autorizované ako Weblate <noreply@weblate.org>?¶
Weblate používa Weblate <noreply@weblate.org> ako predvoleného commitera pre všetky zápisy, čo je konfigurované pomocou DEFAULT_COMMITER_EMAIL a DEFAULT_COMMITER_NAME. Je to technický identifikátor ukazujúci, že zápis bol spracovaný cez Weblate.
Avšak autor každého zápisu je správne zaznamenaný ako jednotlivý používateľ, ktorý vykonal preklad (pri použití Gitu). To znamená, že preskúmaním poľa autora zápisu môžete zistiť, kto skutočne preložil každý reťazec. To isté platí pre Mercurial; túto schopnosť nemá iba Subversion.
Poznámka
V Gite existuje rozdiel medzi zapisovateľom (ktorý vytvoril objekt zápisu) a autorom (ktorý vykonal zmeny). Weblate vystupuje ako zappisovateľ, pričom zachováva individuálne pripísanie zásluh prekladateľom ako autorom.
Pre zápisy, kde nie je možné určiť autorstvo (ako napríklad automatizované zmeny z anonymných návrhov alebo výsledky strojového prekladu), je autorom nastavený anonymný používateľ. Meno a e-mail anonymného používateľa môžete skonfigurovať v ANONYMOUS_USER_NAME.
Viď aj
Ako presunúť súbory v repozitári bez straty histórie vo Weblate?¶
Aby ste zachovali históriu, komentáre alebo snímky obrazovky prepojené s reťazcami po zmene umiestnenia súborov, musíte zabezpečiť, aby tieto reťazce neboli vo Weblate nikdy odstránené. K takémuto odstráneniu môže dôjsť, ak sa aktualizuje repozitár Weblate, ale konfigurácia komponentu stále ukazuje na staré súbory. To spôsobí, že Weblate predpokladá, že má odstrániť všetky preklady.
Riešením je vykonať operáciu synchronizovane s Weblate:
Uzamknite dotknutý komponent vo Weblate.
Zapíšte (commit) všetky čakajúce zmeny a zlúčte ich do hlavného repozitára.
Zakážte prijímanie webhookov v Konfigurácia projektu; tým zabránite Weblate, aby okamžite videl zmeny v repozitári.
Vykonajte potrebné zmeny v repozitári (napríklad pomocou git mv) a odošlite ich do hlavného repozitára.
Zmeňte Konfigurácia komponentu tak, aby zodpovedal novému nastaveniu; po zmene konfigurácie Weblate stiahne aktualizovaný repozitár a všimne si zmenené umiestnenia, pričom zachová existujúce reťazce.
Odomknite komponent a znova povoľte hooky v konfigurácii projektu.
Rada
Zálohy na úrovni projektu môže byť užitočné vykonať pred takýmito zásadnými zmenami.
Použitie¶
Ako môžem kontrolovať preklady ostatných?¶
Weblate ponúka niekoľko pracovných postupov založených na kontrole, pozri Pracovné postupy prekladu.
Môžete sa prihlásiť na odber všetkých zmien v Notifikácie a potom kontrolovať príspevky ostatných, ako prichádzaj e-mailom.
Na spodku zobrazenia prekladu je dostupný nástroj na kontrolu, kde si môžete vybrať prehliadanie prekladov vytvorených ostatnými od daného dátumu.
Viď aj
Ako môžem poskytnúť spätnú väzbu k zdrojovému reťazcu?¶
Na kartách kontextu pod prekladom môžete použiť kartu Komentáre na poskytnutie spätnej väzby k zdrojovému reťazcu alebo jeho prediskutovanie s ostatnými prekladateľmi.
Ako môžem počas prekladu využívať existujúce preklady?¶
Všetky preklady vo Weblate možno využiť vďaka zdieľanej prekladovej pamäti.
Existujúce súbory prekladovej pamäte môžete importovať do Weblate.
Použite funkciu importu na načítanie kompéndia ako preklady, návrhy alebo preklady vyžadujúce kontrolu. Toto je najlepší prístup pre jednorazový preklad pomocou kompéndia alebo podobnej prekladovej databázy.
Môžete nastaviť tmserver so všetkými databázami, ktoré máte, a nechať Weblate, aby ich používal. Je to vhodné, keď chcete tento nástroj počas prekladu využiť viackrát.
Ďalšou možnosťou je prekladať všetky súvisiace projekty v jednej inštancii Weblate, čo umožní automatické prevzatie prekladov aj z iných projektov.
Aktualizuje Weblate prekladové súbory aj mimo samotných prekladov?¶
Weblate sa snaží obmedziť zmeny v prekladových súboroch na minimum. Pri niektorých formátoch súborov to bohužiaľ môže viesť k preformátovaniu súboru. Ak chcete zachovať vlastné formátovanie súboru, použite na to pre-commit hook.
Ako zlúčim aktualizovaný POT súbor s PO prekladmi?¶
Informácie o aktualizácii PO súborov pri zmene POT šablóny nájdete v Aktualizácia súborov cieľového jazyka.
Odkiaľ pochádzajú definície jazykov a ako môžem pridať vlastné?¶
Základná sada definícií jazykov je zahrnutá vo Weblate a Translate-toolkit. Toto pokrýva viac ako 150 jazykov a obsahuje informácie o tvaroch množného čísla alebo smere textu.
V administrátorskom rozhraní môžete slobodne definovať vlastné jazyky, stačí poskytnúť o nich informácie.
Viď aj
Môže Weblate zvýrazniť zmeny v nejasnom (fuzzy) reťazci?¶
Weblate toto podporuje, avšak potrebuje dáta na zobrazenie rozdielu.
Pre súbory Gettext PO musíte pri aktualizácii PO súborov odovzdať parameter --previous príkazu msgmerge, napríklad:
msgmerge --previous -U po/cs.po po/phpmyadmin.pot
Pre jednojazyčné preklady vie Weblate nájsť predchádzajúci reťazec podľa ID, takže rozdiely zobrazuje automaticky.
Prečo Weblate stále zobrazuje staré prekladové reťazce, keď som aktualizoval šablónu?¶
Weblate sa nesnaží manipulovať s prekladovými súbormi iným spôsobom, než umožnením prekladateľom prekladať. Preto neaktualizuje ani preložiteľné súbory, keď sa zmení šablóna alebo zdrojový kód. Musíte to urobiť manuálne a odoslať zmeny do repozitára, Weblate potom zmeny automaticky prevezme.
Poznámka
Zvyčajne je dobrým nápadom zlúčiť zmeny vykonané vo Weblate pred aktualizáciou prekladových súborov, inak zvyčajne skončíte s konfliktmi, ktoré bude treba zlúčiť.
Ako riešiť premenovanie prekladových súborov?¶
Pri premenovávaní súborov v repozitári sa môže stať, že Weblate to vníma ako odstránenie a pridanie súborov. To môže viesť k strate histórie reťazcov, komentárov a návrhov.
Aby ste tomu predišli, vykonajte premenovanie v nasledujúcich krokoch:
Uzamknite prekladový komponent v Správa lokálneho repozitára VCS.
Zapíšte (commit) čakajúce zmeny v Správa lokálneho repozitára VCS.
Zlúčte zmeny z Weblate do hlavného repozitára.
Zakážte prijímanie aktualizácií cez hooky pomocou Povoliť háky.
Vykonajte premenovanie súborov v repozitári.
Aktualizujte konfiguráciu komponentu tak, aby zodpovedala novým názvom súborov.
Povoľte aktualizačné hooky a odomknite komponent.
Rada
Zálohy na úrovni projektu môže byť užitočné vykonať pred takýmito zásadnými zmenami.
Riešenie problémov¶
Požiadavky niekedy zlyhávajú s chybou „príliš veľa otvorených súborov“¶
Toto sa niekedy stáva, keď váš Git repozitár príliš narastie a máte ich veľa. Komprimácia Git repozitárov túto situáciu zlepší.
Najjednoduchší spôsob, ako to urobiť, je spustiť:
# Go to DATA_DIR directory
cd data/vcs
# Compress all Git repositories
for d in */* ; do
pushd $d
git gc
popd
done
Viď aj
Pri prístupe na stránku dostávam chybu „Bad Request (400)“¶
To je s najväčšou pravdepodobnosťou spôsobené nesprávne nakonfigurovaným ALLOWED_HOSTS. Musí obsahovať všetky názvy hostiteľov, ku ktorým chcete mať prístup na vašom Weblate. Napríklad:
ALLOWED_HOSTS = ["weblate.example.com", "weblate", "localhost"]
Čo znamená „Pre jeden jazyk (en) existuje viacero súborov“?¶
Toto sa zvyčajne stáva, keď máte prekladový súbor pre zdrojový jazyk. Weblate sleduje zdrojové reťazce a rezervuje pre ne zdrojový jazyk. Ďalší súbor pre ten istý jazyk nie je spracovaný.
Ak je želaný preklad do zdrojového jazyka, zmeňte Zdrojový jazyk v nastaveniach komponentu. Ako zdrojový jazyk môžete použiť Angličtina (Vývojár) alebo využiť Brána kvality pre zdrojové reťazce.
Ak prekladový súbor pre zdrojový jazyk nie je potrebný, odstráňte ho z repozitára.
Ak je prekladový súbor pre zdrojový jazyk potrebný, ale Weblate by ho mal ignorovať, upravte Jazykový filter tak, aby ho vylúčil.
Rada
Podobnú chybovú správu môžete dostať aj pre iné jazyky. V takom prípade je najpravdepodobnejším dôvodom, že niekoľko súborov sa mapuje na jeden jazyk vo Weblate.
Môže to byť spôsobené používaním zastaraných kódov jazykov spolu s novými (ja a jp pre japončinu) alebo zahrnutím špecifických kódov krajiny aj všeobecných kódov (fr a fr_FR). Viac podrobností nájdete v Analýza kódov jazykov.
Funkcie¶
Podporuje Weblate iné systémy správy verzií okrem Gitu a Mercurialu?¶
Weblate momentálne nemá natívnu podporu pre nič iné ako Git (s rozšírenou podporou pre GitHub pull requesty, Gerrit recenzné požiadavky a Subversion) a Mercurial, ale je možné napísať backendy pre iné VCS.
Weblate tiež podporuje prevádzku bez systému správy verzií, pozri Lokálne súbory.
Poznámka
Pre natívnu podporu iných systémov správy verzií vyžaduje Weblate použitie distribuovaného VCS a pravdepodobne by sa dal prispôsobiť na prácu s čímkoľvek iným okrem Gitu a Mercurialu, ale niekto musí túto podporu implementovať.
Viď aj
Ako Weblate pripisuje zásluhy prekladateľom?¶
Každá zmena vykonaná vo Weblate je zapísaná do VCS pod menom prekladateľa. Týmto spôsobom má každá jednotlivá zmena správne autorstvo a môžete ju vystopovať pomocou štandardných nástrojov VCS, ktoré používate pre kód.
Navyše, keď to formát prekladového súboru podporuje, hlavičky súborov sú aktualizované tak, aby obsahovali meno prekladateľa.
Prečo Weblate vynucuje zobrazovanie všetkých PO súborov v jednom strome?¶
Weblate bol navrhnutý tak, že každý PO súbor je reprezentovaný ako jeden komponent. Je to výhodné pre prekladateľov, aby vedeli, čo skutočne prekladajú.
Zmenené vo verzii 4.2: Prekladatelia môžu preložiť všetky komponenty projektu do konkrétneho jazyka ako celok.
Prečo Weblate používa jazykové kódy ako sr_Latn alebo zh_Hant?¶
Sú to jazykové kódy definované podľa RFC 5646, ktoré lepšie indikujú, že idú o skutočne odlišné jazyky, namiesto predtým nesprávne používaných modifikátorov (pre varianty @latin) alebo kódov krajín (pre čínštinu).
Weblate stále rozumie starším jazykovým kódom a namapuje ich na aktuálne – napríklad sr@latin bude spracované ako sr_Latn alebo zh@CN ako zh_Hans.
Poznámka
Weblate predvolene používa jazykové kódy v štýle POSIX s podčiarkovníkom, viac podrobností nájdete v Definície jazykov.