Features

Releases and Bundles

Releases let you publish a stable snapshot of translations for your app.

How It Works

  1. Import source content.
  2. Translate missing target-language values.
  3. Choose the locales for the release.
  4. Publish the release.
  5. Fetch the bundle from your app or build pipeline.

Publish a Release

POST /v1/i18n/projects/project_123/releases
Authorization: ApiKey lez_...
Content-Type: application/json
{
  "environment": "production",
  "version": "1.0.0",
  "reviewedOnly": true,
  "locales": ["en", "nl", "fr"]
}

Fetch a Bundle

GET /v1/i18n/bundles/project_123/production/nl

Apps can fetch bundles at startup, during a build, or from a server-side rendering layer.

Bundle responses use the same runtime shape as lezu-i18n:

{
  "data": {
    "projectId": "project_123",
    "environment": "production",
    "localeCode": "nl",
    "releaseId": "release_123",
    "artifactKey": "project_123/release_123/nl.json",
    "messages": {
      "home.title": "Welkom"
    },
    "content": {},
    "generatedAt": "2026-04-29T00:00:00.000Z"
  }
}

Short UI translations live in messages. Long-form project content lives in content.

Relevant Endpoints

Method Endpoint Scope
GET /v1/i18n/projects/:projectId/releases releases:read
POST /v1/i18n/projects/:projectId/releases releases:write
GET /v1/i18n/bundles/:projectId/:environment/:localeCode Public bundle route