Translate your UI without redeploying it

Keep UI text as keys, translate it with AI and your glossary, and publish changes to the running app.

From one English string to every language you support

AI translation with context

Translate one key or every untranslated key in a module. Add a context note to a key so the model knows whether “Save” is a button or a discount.

A glossary the AI follows

Mark terms to keep as they are or to translate one fixed way, for all modules, one module or one key.

Publish without a redeploy

Your app reads the published dictionaries at runtime, so new text reaches users without a new build.

Edit text on the page itself

The SELISE Blocks Assistant extension for Chrome shows the key behind any text on your site. Alt-click the text and edit its translation in place.

Import and export

Bring existing translations in from XLSX, CSV or JSON files up to 50 MB, or XLF when you migrate, and export them the same way.

History you can roll back

See each key's change and publish history, and revert a key to an earlier value.

Your dictionaries live in git

Write keys as JSON next to your code, push them with the CLI, and load them in your app with the SDK.

  1. Write the keys

    Add strings to blocks/localization/<module>.<language>.json, flat or nested, and check the file with blocks localization validate.

  2. Push and translate

    Push each language file after a dry run, then let AI fill in the languages you haven't written.

  3. Load them at runtime

    Your app loads a module's dictionary for the current language and looks keys up with t(), with a fallback when a key is missing.

# Check the file, preview the push, then push
blocks localization validate --module login --language de-DE --json
blocks localization push --module login --language de-DE --dry-run --json
blocks localization push --module login --language de-DE --yes --json

# Bring the published dictionary back down
blocks localization pull --module login --language de-DE --out blocks/localization/login.de-DE.json --json

Questions about Localization

Is this site translated with Blocks?

Yes. The copy on seliseblocks.com comes from Blocks Localization in English, German, French, Italian and Bengali, and the language menu switches between them.

Can I add any language?

Add a language with its culture code, such as de-DE or bn-BD, and set one as the default. The list goes beyond the usual set, with languages such as Sinhala, Dzongkha, Sylheti and Chittagonian.

Can translators work without touching code?

Yes. They can edit keys in the console, import spreadsheets, or use the browser extension to change text directly on your site.

How soon does a published change show up?

No redeploy is needed. Publishing regenerates the dictionary file in the background, and your app gets the new text the next time it loads the dictionary.

Start with a free project

Sign up at os.seliseblocks.com and create a project, or paste one prompt into Claude Code, Codex or Cursor and let your agent set it up through the Blocks CLI.