Tovább a tartalomhoz

Kiadások és OTA

Az export egy fájl, amit commitol. A kiadás egy pillanatkép, amit az alkalmazása letölt. A kiadásokkal úgy módosíthat egy fordítást, hogy nem ad ki új buildet.

A projekt Kiadások lapjáról, vagy a GraphQL createRelease mutációval. A kiadás a projekt jóváhagyott fordításait az adott pillanatban érvényes állapotukban fagyasztja be.

MezőJelentés
versionAutomatikusan kap értéket, projektenként növekszik
name, descriptionAz Öné, hogy elmondja, mi változott
splitByFilesFájlonként csoportosított-e a csomag — lásd lent
languagesMely nyelvek kerültek a csomagba
segmentCountHány kulcsot hordoz a legteljesebb nyelv

Csak approved állapotú fordítások kerülnek bele. Az a nyelv, amelyet senki sem fejezett be, a kész kulcsokkal jelenik meg és semmi mással, így egy befejezetlen nyelv nem akadályozza a kiadást — de érdemes megnézni a haladást, mielőtt kiadja.

Alapból a csomag kulcs–érték lapos térkép, nyelvenként egy, ahol a forrásnyelv a forrásszövegeket hordozza:

json
{
"en": { "home.title": "Hello" },
"hu": { "home.title": "Szia" }
}

splitByFiles esetén a kulcsok aszerint csoportosulnak, melyik fájlból származnak:

json
{
"en": { "5f1c…": { "home.title": "Hello" } },
"hu": { "5f1c…": { "home.title": "Szia" } }
}

A lapos alakot akkor használja, ha az alkalmazás nyelvenként egy szótárat tölt be, a felosztottat akkor, ha egyszerre egy névteret.

A többes számú alakokat hordozó szegmens a teljes alaktérképét adja értékként, így a többes szám érintetlenül éli túl a kiadást.

A kulcs a saját fájlján belül egyedi, nem a projekten belül, így két fájlban is lehet title. Lapos csomagban az ilyen kulcs csak egyszer jelenhet meg, ezért abból a fájlból kerül be, amely útvonal és név szerinti sorrendben az utolsó, és minden nyelv ugyanabból a fájlból jön: ha abban a fájlban nincs jóváhagyott fordítás egy nyelvre, a kulcs abból a nyelvből hiányzik, akkor is, ha egy másik fájlban van ilyen fordítás. A kiadás ezt a duplicateKeys listában rögzíti: a kulcsot, a fájlokat, amelyekben szerepel, és a usedFrom mezőt, vagyis az utolsó fájlt, amelyből az érték származik. A lista a kiadással együtt tér vissza, és a felületen is látszik.

Ezt a jelentést érdemes elolvasni, amikor először ad ki egy sok fájlra bontott projektet. Vagy nevezze át az ütköző kulcsokat, vagy váltson a kiadásnál splitByFiles módra: a fájlonként felosztott csomagban minden fájl megtartja a saját értékét, és a duplicateKeys üres.

Minden projektnek egy terjesztése van: egy állandó hozzáférési kulcs, amely a kiadásait HTTP-n, hitelesítés nélkül szolgálja ki.

A Kiadások → Terjesztés alatt találja, vagy a GraphQL releaseDistribution lekérdezéssel. Ha a kulcs kiszivárog, generálja újra — a régi azonnal megszűnik működni, és minden kliensnek az újra lesz szüksége.

GET https://api.ownlate.com/public/v1/ota/{accessKey}/manifest
GET https://api.ownlate.com/public/v1/ota/{accessKey}/bundles
GET https://api.ownlate.com/public/v1/ota/{accessKey}/bundles/{language}

A manifest kicsi, olcsó lekérdezni:

json
{ "version": 7, "languages": ["en", "hu", "de"], "publishedAt": "2026-08-20T09:31:00Z" }

A csomagvégpontok a fordításokat adják vissza, minden nyelvre vagy egyre:

json
{
"version": 7,
"language": "hu",
"splitByFiles": false,
"publishedAt": "2026-08-20T09:31:00Z",
"translations": { "home.title": "Szia" }
}

Mindhárom alapból a legutóbbi kiadást szolgálja ki. Adja hozzá a ?version=5 paramétert, ha egy régebbihez akar rögzülni — hasznos, ha egy régi alkalmazásbuild olyan kulcsokat vár, amelyek a mostani kiadásban már nincsenek.

A válaszok ETag fejlécet hordoznak, amely a verzióból és a közzététel idejéből származik. Küldjön If-None-Match fejlécet, és a változatlan csomag 304 Not Modified választ ad törzs nélkül. A csomagokat tömörítjük, ha a kliens jelzi, hogy elfogadja, és a tömörített alak is a gyorsítótárba kerül.

Egy értelmes kliens indításkor lekéri a manifestet, összeveti a verziót a tárolttal, és csak eltérés esetén tölti le a csomagot.