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.

  1. Á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.

  2. 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.

  3. 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.

  1. Hozzon létre egy tárolót a fordítási fájlok számára.

  2. Adja ezt hozzá almodulként a kódjához:

    git submodule add git@example.com:project-translations.git path/to/translations
    
  3. 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.

  4. 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.

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:

  1. Zárja le az érintett összetevőt a Weblate-ben.

  2. Véglegesítse az összes függőben lévő módosítást, és egyesítse ezeket a forrás tárolóval.

  3. Tiltsa le a webhookokat a projekt beállításainál – ez megakadályozza, hogy a Weblate azonnal érzékelje a változásokat.

  4. 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.

  5. 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.

  6. 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.

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.

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

Nyelvi definíciók

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:

  1. Zárja le a fordítási összetevőt a A helyi VCS-tároló kezelése felületen.

  2. Véglegesítse az összes függőben lévő módosítást a A helyi VCS-tároló kezelése felületen.

  3. Vonja össze a Weblate módosításait a forrás tárolóba.

  4. Tiltsa le a frissítések fogadását a hookokon keresztül a Hookok engedélyezése segítségével.

  5. Végezze el a fájlok átnevezését a tárolóban.

  6. Frissítse az összetevő beállításait, hogy azok megfeleljenek az új fájlneveknek.

  7. 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

DATA_DIR

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"]

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.

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.