Skip to content

Releases & OTA Distribution

A Release is an immutable snapshot of all approved translations in a project at a point in time. Use releases to version your translations independently of your app deploys, or to distribute translations to mobile and web apps at runtime via the OTA API.

Go to Project → Releases and click New Release.

FieldDescription
VersionSemantic version string, e.g. 1.0.0
NameOptional human-readable label
DescriptionOptional release notes
Split by filesGenerate one bundle per source file instead of one bundle per language
Duplicate keysHow to handle segments with the same key across files

Only approved translations are included in a release. Segments that are needs_review, reviewed, or outdated are not included.

After creating a release, Ownlate generates a unique access key for distribution. Use this key to fetch translations at runtime without shipping them inside your app bundle.

GET /ota/manifest/:accessKey

Returns the current release metadata:

{
"version": "1.0.0",
"languages": ["en", "ru", "hu"],
"publishedAt": "2024-01-15T10:00:00Z"
}
GET /ota/bundle/:accessKey/:lang

Returns a flat key → value map for the requested language:

{
"welcome.title": "Welcome to Ownlate",
"welcome.subtitle": "Translation management platform"
}
GET /ota/bundles/:accessKey

Returns all language bundles in a single response, keyed by language code.

If an access key is compromised, go to Project → Releases and click Regenerate key. The old key stops working immediately.

If you don’t need OTA distribution, you can export translations as files:

  • Download — export a single language file in the original format (JSON, YAML, PO)
  • Export all — download a ZIP with all languages

For teams using Git, connect a VCS integration (GitHub, GitLab, Bitbucket) and push approved translations directly to a branch as a pull request. See Integrations for setup details.