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_INbeá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.
Lásd még
Ú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.