Delivery

Publish a locale

Freeze one language into a numbered, immutable version and serve it to your app from the CDN.

Publishing takes one language as it stands right now, freezes it into a new numbered version, and makes that version the one the CDN serves. Your translations stay editable in transglot; the published version does not change after the fact. Each language is published on its own, so a finished language never waits for an unfinished one.

Who can publish

Owners and Admins, on a plan that includes runtime delivery (Starter and above). An Admin whose access is limited to some languages can publish those languages only.

Publish from the Releases screen

Open Releases

Open the project and select Releases in the sidebar.

Check the language is ready

In Departures, the language's Status should read ready to publish (or published, to release it again). If it reads in progress, not translated or waiting for approval, use the row's Next action to finish it first. See The Releases screen.

Start the publish

Select publish in the language's row, or the Publish German → button in the page header (it names the language the page suggests).

Confirm

The confirmation, Publish German?, states the version number the language will freeze at and what goes into it. Select Publish German.

A notice confirms the result, for example "de published as version 4." The row's Live column and the Release log update, and your app starts receiving the new version (see how quickly).

If nothing in the language has changed since its live version, no new version is made: the notice reads "de is already live at version 3. Nothing has changed since it was published."

What goes into a version

IncludedNot included
Every string someone wrote, edited, uploaded or approvedStrings with no translation yet. Your app's runtime handles missing keys (see the SDKs).
AI drafts, unless the project holds them back (see below)AI drafts, when the project holds them back
Flagged strings: a review flag does not stop a publish

Two more cases leave strings out:

  • If the project's Message syntax check setting is ICU, a translation that is not valid ICU MessageFormat is left out, and the notice says so: "1 key is left out of the bundle because its translation is not valid ICU MessageFormat." Fix the translation and publish again.
  • Strings the delivery format cannot represent are left out (for example, plural strings in a format with no plural support). See Delivery settings to choose the format.

If a nested format cannot represent your key names (one key is both a value and a parent of another key), the publish is refused with "de was not published." followed by the reason, and the live version stays as it was.

Choose whether AI drafts are published

An AI draft is a translation Glossa wrote that nobody has approved or edited yet. Each project has one rule for them:

  • Yes, publish drafts too: drafts, edits and approved strings all go in. This is the default.
  • No, hold drafts back: approved strings and the text your team wrote or uploaded go in. Drafts wait until someone approves or edits them. While a language still has drafts, its status reads waiting for approval.

The first time someone publishes from Releases, the confirmation asks "Can GLOSSA drafts go to your website before someone approves them?" It is asked once per project. To change the answer later, select Change next to Drafts in the This release card. A change takes effect at each language's next publish; nothing that is live now is removed or rewritten.

Only Owners and Admins with access to every language in the project can set the rule.

Other ways to publish

Settings → Developer → Runtime delivery (CDN) lists every language in the project, including the source language, each with Publish now. This publishes the language as it stands, whatever its status on Releases, so check the language before you use it.

Roll back

Versions are immutable, and transglot keeps the 20 most recent versions of each language. To serve an earlier version, point your app at that version's address instead of the latest one. See Latest and versioned addresses.

If it doesn't work

  • "Not available on this account’s plan.": runtime publishing needs Starter or above. Readiness and the release log still work.
  • "A workspace admin publishes runtime versions.": your role cannot publish. Ask an Owner or Admin.
  • No source strings yet or No target languages yet: there is nothing to publish. Import strings or add a language first.
  • Your app still shows the old text: see Why are my translations not reaching my app?

On this page