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. Állítson be feltöltési URL-t az összetevőjénél a Weblate-ben, ez lehetővé teszi a Weblate számára, hogy feltöltse 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 a tárolóba, 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)?

Merge conflicts happen from time to time when the translation file is changed in both Weblate and the upstream repository concurrently. You can usually avoid this by merging Weblate translations prior to making changes in the translation files (e.g. before running msgmerge). Just tell Weblate to commit all pending translations (you can do it in Repository maintenance in the Operations menu) and merge the repository (if automatic push is not on).

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

Weblate uses shallow clones by default to reduce cloning time and disk usage. Because of this, the workflow below works best when you start from an up-to-date checkout of the upstream repository. If you clone directly from the exported Weblate repository, or if your upstream checkout is missing recent commits, git remote update weblate can fail with errors such as warning: no common commits, bad revision, or missing objects. This does not necessarily mean that Weblate and the upstream repository have conflicting changes. Administrators who want to make this workflow more reliable can adjust VCS_CLONE_DEPTH.

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.

Megjegyzés

Weblate serves the Git repository itself, but it does not serve Git LFS objects. For repositories using Git LFS, clone 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.

The workflow usually looks like this when you start from an up-to-date checkout of the upstream repository:

# 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

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 módosítások feltöltését egy projekten belül. Minden olyan összetevő esetében, ahol ez be van kapcsolva (alapértelmezett viselkedés), a végrehajtott módosítás automatikusan továbbítódik a többihez. Így a fordítások szinkronizálva maradnak, még akkor is, ha maguk az ágak már jelentősen szétváltak, és a fordítási módosítások egyszerű összefésülése 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 hozzáadta az összes platform fordítási fájlját egy projekt összetevőiként (lásd: Fordítási projektek és összetevők hozzáadása), kihasználhatja a fordítási terjesztés funkcióját (alapértelmezetten be van kapcsolva, de kikapcsolható az összetevőben) hogy egyszerre fordítsa le a 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?

Weblate uses Weblate <noreply@weblate.org> as the default committer for all commits, which is configured by DEFAULT_COMMITER_EMAIL and DEFAULT_COMMITER_NAME. This is a technical identifier showing that the commit was processed through Weblate.

However, the author of each commit is correctly recorded as the individual user who made the translation (when using Git). This means you can see who actually translated each string by examining the commit author field. The same applies to Mercurial; only Subversion does not have this capability.

Megjegyzés

In Git, there is a distinction between the committer (who created the commit object) and the author (who made the changes). Weblate acts as the committer while preserving individual translator attribution as authors.

For commits where authorship cannot be determined (such as automated changes from anonymous suggestions or machine translation results), the author is set to the anonymous user. You can configure the anonymous user’s name and e-mail in ANONYMOUS_USER_NAME.

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 webhookok fogadását a projekt esetében; ez megakadályozza, hogy a Weblate azonnal észlelje a tároló változásait.

  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. Változtassa meg az összetevő beállításait az új felépítésnek megfelelően; a konfiguráció módosításakor a Weblate letölti a frissített tárolót és felismeri a megváltozott helyeket, 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.

  • You can subscribe to any changes made in Értesítések and then check others contributions as they come in by e-mail.

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

How do I merge updated POT file with PO translations?

See Célnyelvi fájlok frissítése for information on updating PO files when the POT template changes.

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?

Weblate currently does not have native support for anything other than Git (with extended support for GitHub módosítási kérelmek (pull request), Gerrit review requests, and Subversion) and Mercurial, but it is possible to write backends for other VCSes.

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.