Integráció a Weblate-tel

Weblate alapok

Projekt- és összetevőstruktúra

A Weblate-ben a fordítások projektekbe és összetevőkbe vannak rendezve. Egy projekt több összetevőt tartalmazhat, ezek pedig különböző nyelvekre történő fordításokat. Egy összetevő egy fordítható fájlnak felel meg (például: GNU gettext PO (Portable Object) vagy Android szövegerőforrások). A projektek segítenek az összetevők logikus egységekbe rendezésében (például egy alkalmazás összes fordításának csoportosításához).

A projekten belüli összetevők kategóriák alapján is strukturálhatók. Az összetevők tartozhatnak egy kategóriához, a kategóriák pedig egymásba ágyazhatók.

A rendszerben minden projekt automatikusan megosztja a gyakori szövegek fordításait a projekt többi összetevője között. Ez csökkenti az ismétlődő és több verzióban előforduló szövegek fordításának terhét. A fordítások automatikus terjesztése összetevőnként letiltható az összetevő esetében a Fordítások terjesztésének engedélyezése beállítással, ha a fordítások eltérhetnek egymástól.

Tárolóintegráció

A Weblate úgy lett kialakítva, hogy integrálódjon a forrás (upstream) verziókezelő rendszerrel. A Folyamatos lokalizáció leírja az alapvető elemeket és a változások áramlását közöttük.

Lásd még

Az Rendszer-architektúra áttekintése bemutatja, hogyan működik a Weblate belsőleg.

Felhasználó hozzárendelése

A Weblate a fordítók által készített fordításokat a megfelelő szerzői adatokkal tárolja a verziókezelő tárolóban, név és e-mail-cím megadásával. A valós e-mail-cím használata összhangban van az elosztott verziókezelés szemléletével, és lehetővé teszi, hogy olyan szolgáltatások, mint a GitHub, a Weblate-ben végzett hozzájárulásait összekapcsolják a GitHub-profiljával.

Ez a funkció ugyanakkor kockázatot is hordozhat, mivel a verziókezelő véglegesítéseiben szereplő e-mail címekkel vissza lehet élni. Ráadásul, ha egy ilyen véglegesítés nyilvános tárhelyre (például GitHubra) kerül, onnan gyakorlatilag nem lehet eltávolítani. A Weblate lehetőséget biztosít arra, hogy Fiók alatt privát véglegesítési e-mail címet válasszon, így ezt elkerülheti.

Ezért az adminisztrátoroknak érdemes figyelembe venniük a következőket a Weblate beállításakor:

  • Az e-mail ilyen jellegű felhasználását egyértelműen ismertetni kell a szolgáltatási feltételekben, amennyiben ilyen dokumentumra szükség van. Ebben segítséget nyújthat a Jogi modul rész.

  • A PRIVATE_COMMIT_EMAIL_OPT_IN beállítás alapértelmezetté teheti a privát e-mail használatot.

Fordítási projekt importálása a Weblate-be

A Weblate fejlesztése során a VCS-integráció központi szerepet kapott, ezért a legegyszerűbb megoldás az, ha Weblate hozzáférést kap a tárolójához. Az importálási folyamat végigvezeti a fordítások Weblate-összetevőkké történő beállításán.

Alternatív megoldásként létrehozhat helyi, csak olvasható tárolót is, amely kizárólag a fordításokat tartalmazza, integráció nélkül.

Frissített fordítások lekérése a Weblate-ből

A Weblate az új szövegeket adatbázisban tárolja, majd véglegesíti azokat egy helyi verziókezelő tárolóban. A Weblate tároló (ha a Git exportáló engedélyezve van) további távoli tárolóként is hozzáadható, és a fordítási frissítések onnan letölthetők.

Mielőtt ezt megtenné, érdemes lehet véglegesíteni az esetlegesen függőben lévő változtatásokat a Weblate-en belül (lásd: Késleltetett véglegesítések (Lazy commits)). Ezt megteheti a felhasználói felületen (a Tároló karbantartása résznél) vagy parancssorból a Weblate kliens segítségével.

A változások feltöltése automatizálható, ha a Weblate hozzáférést kap a tárolóhoz, és az összetevő alatt be van állítva a Tároló feltöltési URL, lásd: Változások feltöltése Weblate-ből.

Alternatív megoldásként REST API segítségével is frissítheti a fordításokat, hogy azok megfeleljenek a távoli forrástároló legújabb verziójának.

Távoli változások lekérése a Weblate-be

Ha friss szövegek kerültek a távoli VCS tárolóba, és ezeket be szeretné hozni a Weblate-be, engedélyezni kell, hogy a Weblate letölthesse a változásokat a forrás tárolóból. Ez megtörténhet a felhasználói felületen (a Tároló karbantartása résznél) vagy parancssorból a Weblate kliens használatával.

Ez automatizálható webhook beállításával, amely minden új véglegesítésnél aktiválja a Weblate-et. További részletek: Tárolók frissítése.

Ha nem használ VCS-integrációt, a felhasználói felületen vagy REST API segítségével is frissítheti a fordításokat, hogy azok megfeleljenek a forráskódban lévő tartalomnak.

Új szövegek hozzáadása

Ha a fordítási fájlokat a forráskóddal együtt egy távoli VCS-ben tárolja, akkor valószínűleg már van egy meglévő munkafolyamata arra, hogyan kerüljenek új szövegek a projektbe. Bármilyen módon is ad hozzá új szövegeket, a Weblate felismeri őket, de érdemes használni a Minőségbiztosítás a forrásszövegekre funkciót, hogy elkerülje a hibás bejegyzések bekerülését.

Ha a fordítási fájlokat külön tárolja a kódtól, az alábbi módszerek egyikével adhat hozzá új szövegeket a Weblate-ben.

  • Kézzel, az Eszközök menüben található Új fordítandó szöveg hozzáadása lehetőséggel, a forrásnyelvnél. A megjelenő űrlapon választhat az Egyes szám és Többes szám gombok közül. Válassza ki a megfelelő alakot az új szöveghez.

  • Programozottan, az API-n keresztül: POST /api/translations/(string:project)/(string:component)/(string:language)/units/.

  • A forrásfájl feltöltésével, a Létező fordítási fájl cseréje (ez felülírja a meglévő szövegeket, ezért ügyeljen rá, hogy a fájl tartalmazza a régi és új szövegeket is) vagy az Új szövegek hozzáadása lehetőséggel, lásd: Importálási módok.

Megjegyzés

A szövegek hozzáadásához a Weblate-ben engedélyezni kell a Szövegek kezelése jogosultságot.

Célnyelvi fájlok frissítése

Egynyelvű fájlok esetén (lásd: Fordítási fájlformátumok) a Weblate hozzáadhat új fordítandó szövegeket, amelyek az Egynyelvű alap nyelvi fájl sablonban szerepelnek, de a tényleges fordításokban még nem. Ugyanakkor nem végez automatikus tisztítást az elavult szövegeken, mivel ez váratlan eredményekhez vezethet. Ha ennek ellenére szeretné eltávolítani ezeket, telepítse a Fordítási fájlok tisztítása kiegészítőt, amely az igényei szerint kezeli a törlést.

A Weblate nem frissíti automatikusan a kétnyelvű fájlokat sem, ha a forrás megváltozik. Ha például a po fájlokat frissítené a pot alapján, tegye meg kézzel a Forrásszövegek frissítése művelettel (lásd: Importálási módok) vagy használja a PO-fájlok frissítése a POT-fájlhoz igazítva (msgmerge) kiegészítőt.

Tipp

A forrásszövegek kinyerésére szolgáló eszközöket, mint például a xgettext vagy a lupdate, a Weblate-en kívül kell futtatni.

Új szövegek bevezetése

Új szövegeket a Weblate-en belül is hozzá lehet adni, ha a Szövegek kezelése engedélyezve van, de jellemzően célszerűbb, ha ezek a kódbeli módosításokkal együtt kerülnek be.

Egynyelvű formátumok esetén be kell állítani, hogy az új szövegek az Egynyelvű alap nyelvi fájl fájlba kerüljenek. Ezt általában a fejlesztők végzik, miközben írják a kódot. Az új szövegek minőségét érdemes átnézetni a Minőségbiztosítás a forrásszövegekre használatával.

Kétnyelvű formátumok esetén a szövegeket jellemzően eszközök segítségével nyerik ki a forráskódból (például: xgettext vagy intltool-update). Ehhez kövesse a lokalizációs keretrendszere dokumentációját. Miután a szövegek kinyerésre kerültek, előfordulhat, hogy a meglévő fordításokat is frissíteni kell, lásd: Célnyelvi fájlok frissítése.

Tipp

A szövegkinyerés automatizálása jelenleg nem tartozik a Weblate hatáskörébe, mivel ez nem megbízható kód futtatását igényelné — ezt célszerűbb általános CI-rendszerbe illeszteni, nem lokalizációs platformba.

Érdemes lehet a szövegkinyerést a CI-folyamatokba integrálni, hogy az új szövegek automatikusan megjelenjenek fordításra. Ez a folyamat a Ütközések (merge conflict) elkerülése elkerülését is segítheti.

A helyi VCS-tároló kezelése

A Weblate az összes fordítást a mögöttes verziókezelő tárolóban tárolja. Célszerű ezt egy távoli tárolóhoz kapcsolni, de belső, csak helyi használatra szánt beállítás is lehetséges. A Tároló karbantartása lehetőséggel kezelheti ezt a tárolót.

Tipp

A Folyamatos lokalizáció esetén minden változás automatikusan feltöltésre kerül a tárolóból, így általában nincs szükség kézi kezelésre.

../_images/component-repository.webp