Gyakran Ismételt Kérdések¶
Beállítások¶
Hogyan hozhatok létre automatizált munkafolyamatot?¶
A Weblate képes az összes fordítási feladatot félautomatikusan kezelni. Ha feltöltési (push) hozzáférést biztosít a tárolóhoz, a fordítások beavatkozás nélkül megtörténhetnek, kivéve ha ütközés (merge conflict) lép fel.
Állítsa be a Git tárolóját úgy, hogy értesítse a Weblate-et minden változásról – lásd: Értesítési hookok, hogyan teheti ezt meg.
Adjon meg egy feltöltési URL-t a Weblate-ben az adott összetevő számára, így a Weblate képes lesz feltölteni a módosításokat a tárolóba.
Kapcsolja be a Feltöltés véglegesítéskor (Push on commit) lehetőséget az adott összetevő beállításainál a Weblate-ben – így a Weblate automatikusan feltölti a módosításokat, amikor azok megtörténnek.
Hogyan férhetek hozzá a tárolókhoz SSH-n keresztül?¶
Lásd a Tárolók elérése részt az SSH-kulcsok beállításáról.
Hogyan javíthatók a fordítási ütközések (merge conflict)?¶
Ütközések időnként előfordulhatnak, ha a fordítási fájl egyszerre módosul a Weblate-ben és a forrás (upstream) tárolóban. Ez általában elkerülhető, ha a fordítási fájlok módosítása előtt véglegesíti a Weblate-ben lévő fordításokat (például mielőtt lefuttatja a msgmerge parancsot). Ehhez egyszerűen utasítsa a Weblate-et az összes függőben lévő fordítás véglegesítésére – ezt a Tároló-karbantartás menüpontban teheti meg, a Kezelés menün belül –, majd végezze el a tároló összevonását (merge) (ha az automatikus feltöltés nincs bekapcsolva).
Ha már ütközés történt az összevonás során, a legegyszerűbb módja a konfliktusok helyi feloldásának, ha a Weblate-et hozzáadja távoli tárolóként, beolvassa azt az forrástároló ágba, majd megoldja a konfliktusokat. Amint visszatölti a módosításokat, a Weblate már a feloldott verziót fogja használni, további beavatkozás nélkül.
Megjegyzés
Beállítástól függően a Weblate tárolóhoz való hozzáférés hitelesítést igényelhet. Ha a Weblate beépített Git exportáló funkcióját használja, a felhasználónevével és API kulcsával tud hitelesíteni.
# Open an existing 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
Ha több ágat használ a Weblate-ben, ugyanezt megteheti mindegyikkel:
# 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
Gettext PO-fájlok esetén, van mód félautomatikus összevonásra:
Töltse le és tartsa meg helyben a Weblate Git tároló egy példányát. Emellett szüksége lesz egy második, friss helyi másolatra a forrás Git tárolóból (azaz két példányra: egy érintetlen és egy munkapéldányra):
# 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
Hogyan fordíthatok egyszerre több ágat?¶
A Weblate támogatja a fordítási változások feltöltését egyetlen projekt keretében. Minden olyan összetevő esetén, ahol ez be van kapcsolva (ez az alapértelmezett viselkedés), a végrehajtott módosítás automatikusan átvitelre kerül a többi összetevőbe is. Így a fordítások szinkronban maradnak még akkor is, ha az ágak már jelentősen eltértek, és a fordítási módosítások közvetlen összevonása nem lehetséges.
Miután összevonta a Weblate-ből származó módosításokat, előfordulhat, hogy az ágakat is egyesítenie kell (a fejlesztési munkafolyamattól függően), figyelmen kívül hagyva az eltéréseket:
git merge -s ours origin/maintenance
Hogyan fordíthatók többplatformos projektek?¶
A Weblate számos fájlformátumot támogat (lásd: Fordítási fájlformátumok), és a legegyszerűbb megközelítés, ha minden platform esetében annak saját natív formátumát használja.
Miután az összes platform fordítási fájlját hozzáadta egy projekthez összetevőként (lásd: Fordítási projektek és összetevők hozzáadása), kihasználhatja a fordítási terjesztés funkciót (alapértelmezetten be van kapcsolva, de kikapcsolható az összetevő beállításainál), így egyszerre fordíthat szövegeket minden platformra.
Hogyan exportálható a Git tároló, amit a Weblate használ?¶
A tároló nem tartalmaz semmi különöset, a DATA_DIR könyvtárban található, és a neve: vcs/<project>/<component>/. Ha SSH hozzáférése van az adott géphez, közvetlenül is használhatja ezt a tárolót.
Anonim hozzáféréshez futtathat egy Git szervert, amely külső elérésre szolgál.
Alternatív megoldásként a Weblate beépített Git exportáló funkcióját is használhatja az automatizáláshoz.
Milyen lehetőségek vannak a módosítások visszatöltésére a forrás tárolóba?¶
Ez nagymértékben a beállításaitól függ – a Weblate ezen a téren igen rugalmas. Íme néhány példa a Weblate-tel használható munkafolyamatokra:
A Weblate automatikusan feltölti (push) és egyesíti (merge) a módosításokat (lásd: Hogyan hozhatok létre automatizált munkafolyamatot?).
Manuálisan utasíthatja a Weblate-et a feltöltésre (ehhez a Weblate-nek feltöltési (push) hozzáférésre van szüksége a forrás tárolóhoz).
Valaki manuálisan egyesíti a Weblate Git tárolójából származó módosításokat a forrás tárolóval.
Valaki átírja a Weblate által generált előzményeket (pl. összevonási véglegesítések eltávolításával), egyesíti a módosításokat, majd utasítja a Weblate-et, hogy állítsa vissza a tartalmat a forrás tárolóban.
Természetesen ezeket a módszereket tetszés szerint kombinálhatja is.
Hogyan korlátozható a Weblate hozzáférése kizárólag a fordításokra, anélkül hogy hozzáférne a forráskódhoz?¶
A git submodule használatával elkülönítheti a fordításokat a forráskódtól, miközben továbbra is verziókövetés alatt tarthatja azokat.
Hozzon létre egy tárolót a fordítási fájlok számára.
Adja ezt hozzá almodulként a kódjához:
git submodule add git@example.com:project-translations.git path/to/translations
Csatlakoztassa a Weblate-et ehhez a tárolóhoz – így már nem lesz szüksége a forráskódot tartalmazó tároló elérésére.
A fő tárolót frissítheti a Weblate-ből származó fordításokkal a megszokott módon:
git submodule update --remote path/to/translations
További részletekért lásd a git submodule dokumentációját.
Hogyan ellenőrizhetem, hogy a Weblate megfelelően van-e beállítva?¶
A Weblate tartalmaz egy sor beállítás-ellenőrzést, amelyek az adminisztrációs felületen érhetők el – csak kattintson az adminisztrációs felületen a Teljesítményjelentés hivatkozásra vagy nyissa meg közvetlenül a /manage/performance/ URL-t.
Miért történik minden véglegesítés (commit) a Weblate <noreply@weblate.org> nevében?¶
Ez az alapértelmezett véglegesítő név, amely a DEFAULT_COMMITER_EMAIL és a DEFAULT_COMMITER_NAME beállításokkal van konfigurálva.
Minden véglegesítés szerzője (ha az adott VCS támogatja) továbbra is helyesen rögzítésre kerül – az a felhasználó, aki a fordítást végezte.
Azoknál a véglegesítéseknél, ahol a szerző nem ismert (például névtelen javaslatok vagy gépi fordítás esetén), a szerzőséget az anonim felhasználónak tulajdonítja a rendszer (lásd: ANONYMOUS_USER_NAME). A név és e-mail cím módosítható a kezelőfelületen.
Lásd még
Hogyan mozgathatok fájlokat a tárolóban anélkül, hogy elveszíteném az előzményeket a Weblate-ben?¶
Ahhoz, hogy a fájlok áthelyezése után is megmaradjanak az előzmények, megjegyzések vagy képernyőképek, biztosítani kell, hogy ezek a szövegek ne törlődjenek a Weblate-ben. A törlés akkor következhet be, ha a Weblate tárolója frissül, de az összetevő beállításai még mindig a régi fájlokra mutatnak – így a Weblate azt feltételezi, hogy minden fordítást törölni kell.
A megoldás az, hogy a műveletet összehangoltan kell végrehajtani a Weblate-tel:
Zárja le az érintett összetevőt a Weblate-ben.
Véglegesítse az összes függőben lévő módosítást, és egyesítse ezeket a forrás tárolóval.
Tiltsa le a webhookokat a projekt beállításainál – ez megakadályozza, hogy a Weblate azonnal érzékelje a változásokat.
Végezze el a szükséges módosításokat a tárolóban (például: git mv használatával), majd töltse fel őket a forrás tárolóba.
Módosítsa az adott összetevő beállításait, hogy azok megfeleljenek az új struktúrának – ekkor a Weblate letölti a frissített tárolót, és felismeri a fájlok új helyét, miközben megtartja a meglévő szövegeket.
Oldja fel az összetevő zárolását, és kapcsolja vissza a webhookokat a projekt beállításaiban.
Tipp
A Projektszintű biztonsági mentések hasznos lehet az ilyen kockázatos változtatások előtt.
Használat¶
Hogyan tudom mások fordításait felülvizsgálni?¶
A Weblate többféle ellenőrzés-alapú munkafolyamatot támogat, lásd: Fordítási munkafolyamatok.
Feliratkozhat bármely változásra az Értesítések segítségével, így e-mailben értesülhet mások hozzájárulásairól.
A felülvizsgáló eszköz a fordítási nézet alján található – ott beállíthatja, hogy csak a megadott dátum után történt fordításokat böngéssze más felhasználóktól.
Lásd még
Hogyan adhatok visszajelzést egy forrásszöveghez?¶
A fordításhoz tartozó kontextusfülek alatt a Megjegyzések fülön keresztül adhat visszajelzést egy forrásszöveghez vagy meg is vitathatja azt más fordítókkal.
Hogyan használhatom a meglévő fordításokat fordítás közben?¶
A Weblate-en belül minden fordítás elérhető a közös fordítási memória révén.
Importálhat meglévő fordítási memóriafájlokat is a Weblate-be.
Az importálási funkcióval betölthet szójegyzékeket fordításként, javaslatként vagy szerkesztést igénylő fordításként. Ez a legjobb módszer, ha egyszeri fordítást végez egy szójegyzék vagy hasonló fordítási adatbázis alapján.
Beállíthatja a tmserver használatát az összes adatbázissal, és engedélyezheti, hogy a Weblate azokat használja – ez akkor hasznos, ha többször is szeretné ezeket alkalmazni fordítás során.
Egy másik lehetőség, ha minden kapcsolódó projektet egyetlen Weblate példányban fordít – ekkor a Weblate automatikusan felhasználja a többi projekt fordításait is.
Frissíti a Weblate a fordítási fájlokat más módon is, nemcsak a fordításokkal?¶
A Weblate igyekszik a fordítási fájlokon végzett módosításokat minimálisra korlátozni. Bizonyos fájlformátumoknál ez sajnos újraformázáshoz vezethet. Ha szeretné megőrizni a fájl saját formázását, javasolt véglegesítés előtti (pre-commit) hookot használni erre.
Lásd még
Honnan származnak a nyelvi definíciók, és hogyan adhatok hozzá sajátot?¶
Az alapértelmezett nyelvi definíciókat a Weblate és a Translate-toolkit tartalmazza. Ez több mint 150 nyelvet fed le, és információt biztosít a többes szám formákról vagy a szövegirányról.
Szabadon definiálhat saját nyelveket az adminisztrációs felületen – csak néhány alapadatot kell megadnia hozzá.
Lásd még
Kitudja emelni a változásokat a Weblate egy szerkesztést igénylő (zavaros) szövegben?¶
A Weblate támogatja ezt, de ehhez szükség van a megfelelő adatokra is a különbségek megjelenítéséhez.
Gettext PO-fájlok esetén az --previous paramétert kell megadni a msgmerge futtatásakor a PO-fájlok frissítésekor, például:
msgmerge --previous -U po/cs.po po/phpmyadmin.pot
Egynyelvű fordítások esetén a Weblate képes azonosító alapján megtalálni az előző szöveget, így automatikusan meg tudja jeleníteni a különbségeket.
Miért jeleníti meg a Weblate még mindig a régi fordításokat, amikor már frissítettem a sablont?¶
A Weblate semmilyen módon nem módosítja a fordítási fájlokat azon kívül, hogy lehetővé teszi a fordítók számára a fordítást. Ezért nem frissíti a fordítható fájlokat akkor sem, ha a sablon vagy a forráskód megváltozott. Ezt manuálisan kell elvégeznie, és feltöltenie a módosításokat a tárolóba – a Weblate ezután automatikusan érzékeli az új tartalmat.
Megjegyzés
Általában jó ötlet a Weblate-ben végzett módosítások összevonása, mielőtt frissíti a fordítási fájlokat, különben jellemzően egyesítési ütközések léphetnek fel.
Hogyan kezelhető a fordítási fájlok átnevezése?¶
Ha a tárolóban átnevezi a fájlokat, előfordulhat, hogy a Weblate ezt törlésként és új fájl hozzáadásaként értelmezi. Ez a szövegek előzményeinek, megjegyzéseinek és javaslatainak elvesztéséhez vezethet.
Ennek elkerüléséhez kövesse az alábbi lépéseket:
Zárja le a fordítási összetevőt a A helyi VCS-tároló kezelése felületen.
Véglegesítse az összes függőben lévő módosítást a A helyi VCS-tároló kezelése felületen.
Vonja össze a Weblate módosításait a forrás tárolóba.
Tiltsa le a frissítések fogadását a hookokon keresztül a Hookok engedélyezése segítségével.
Végezze el a fájlok átnevezését a tárolóban.
Frissítse az összetevő beállításait, hogy azok megfeleljenek az új fájlneveknek.
Kapcsolja vissza a frissítési hookokat, és oldja fel az összetevő zárolását.
Tipp
A Projektszintű biztonsági mentések hasznos lehet az ilyen kockázatos változtatások előtt.
Hibaelhárítás¶
A kérések néha „túl sok megnyitott fájl” hibával meghiúsulnak¶
Ez akkor fordulhat elő, ha a Git tárolók túl nagyra nőnek, és túl sok van belőlük. A tárolók tömörítése javítja a helyzetet.
A legegyszerűbb megoldás ennek futtatása:
# Go to DATA_DIR directory
cd data/vcs
# Compress all Git repositories
for d in */* ; do
pushd $d
git gc
popd
done
Lásd még
Az oldal elérésekor „Bad Request (400)” hibaüzenetet kapok¶
Ennek leggyakoribb oka, hogy az ALLOWED_HOSTS beállítás nincs megfelelően konfigurálva. Ebben szerepelnie kell minden olyan hosztnévnek, amelyen keresztül el kívánja érni a Weblate-et. Például:
ALLOWED_HOSTS = ["weblate.example.com", "weblate", "localhost"]
Lásd még
Mit jelent az, hogy „There are more files for the single language (en)” (Több fájl van az egyetlen nyelvhez.)?¶
Ez általában akkor fordul elő, ha létezik fordítási fájl a forrásnyelvhez. A Weblate nyomon követi a forrásszövegeket, és ehhez lefoglalja a forrásnyelvet. A forrásnyelvhez tartozó további fájlt ezért nem dolgozza fel.
Ha a forrásnyelvre is szeretne fordítást, módosítsa az adott összetevő beállításainál a Forrásnyelv értékét. Ilyenkor célszerű lehet az English (fejlesztői) nyelvet használni forrásnyelvként vagy beállítani a Minőségbiztosítás a forrásszövegekre ellenőrzéseket.
Ha a forrásnyelvhez tartozó fordítási fájlra nincs szükség, távolítsa el a tárolóból.
Ha a fájlra szükség van, de azt a Weblate-nek figyelmen kívül kell hagynia, módosítsa a Nyelvi szűrő beállítást úgy, hogy kizárja ezt a fájlt.
Tipp
Más nyelvek esetén is előfordulhat hasonló hibaüzenet. Ilyenkor a legvalószínűbb ok az, hogy több fájl is ugyanahhoz a nyelvhez van rendelve a Weblate-ben.
Ez történhet elavult és új nyelvkódok együttes használata esetén (például ja és jp a japánhoz) vagy ha az adott nyelvhez egyszerre szerepel általános és ország-specifikus kód is (például fr és fr_FR). Részletekért lásd: Nyelvi kódok feldolgozása.
Funkciók¶
Támogat-e a Weblate a Git-en és Mercurialon kívül más VCS-t (verziókezelő rendszert) is?¶
A Weblate jelenleg nem rendelkezik natív támogatással más rendszerekhez, csak a Git (kiterjesztett támogatással a GitHub módosítási kérelmek (pull request), Gerrit és Subversion rendszerekhez) és a Mercurial esetén. Ugyanakkor lehetőség van más VCS-ekhez háttérrendszert (backendet) írni.
Git esetén használhatók a Git távoli segédprogramok (remote helper) segédeszközök más VCS-ek eléréséhez.
A Weblate támogatja a VCS nélküli működést is, lásd: Helyi fájlok.
Megjegyzés
Más rendszerek natív támogatásához a Weblate elosztott VCS-t igényel – elvileg bármely rendszerhez hozzáigazítható, de ennek implementálását valakinek el kell végeznie.
Lásd még
Hogyan ismeri el a Weblate a fordítók munkáját?¶
Minden módosítás, amit a Weblate-ben végeznek, a fordító nevében kerül véglegesítésre a verziókezelő rendszerben. Így minden egyes változtatásnak megvan a szerzője, és ez a szokásos VCS-eszközökkel visszakövethető.
Emellett, ha a fordítási fájl formátuma támogatja, a fájl fejlécébe is bekerül a fordító neve.
Miért jeleníti meg a Weblate az összes PO-fájlt egyetlen fa struktúrában?¶
A Weblate felépítése szerint minden PO-fájl egy önálló összetevőként szerepel. Ez segíti a fordítókat, hogy pontosan lássák, mit fordítanak.
A 4.2 verzióban változott: A fordítók így egy projekt összes összetevőjét le tudják fordítani egy adott nyelvre egységesen.
Miért használ a Weblate olyan nyelvkódokat, mint például sr_Latn vagy zh_Hant?¶
Ezek a nyelvkódok az RFC 5646 szabvány szerint vannak meghatározva, hogy pontosabban jelezzék a valóban eltérő nyelvváltozatokat, amelyeket korábban helytelenül módosítókkal (például @latin) vagy országkódokkal (például a kínainál) jelöltek.
A Weblate továbbra is felismeri a régi nyelvkódokat, és automatikusan a megfelelő modern kódokra térképezi őket – például a sr@latin kódot sr_Latn-ként vagy a zh@CN kódot zh_Hans-ként kezeli.
Megjegyzés
Alapértelmezetten a POSIX-stílusú, aláhúzásos nyelvkódokat használja, lásd: Nyelvi definíciók a részletekért.