NIZU

i18nTranslator

i18nTranslator turns the pile of JSON language files a multilingual application produces into a tracked, reviewable, placeholder-safe workflow. Import, translate with AI assistance, and export to JSON, .po or PHP — or commit straight to a GitHub branch.

Decorative gradient background
NIZU i18nTranslator translation editor in light mode

Features

Every package lives inside a NIZU project, so the source files, the file history and the permissions are the ones you already use. Nothing is emailed around, and nothing leaves your workspace.

Packages, not spreadsheets

One package is one application: a source language, its target languages and the JSON files it was built from. Nested keys are flattened into dotted keys and re-nested identically on export.

A fast translation grid

One row per key, with the source text beside the translation field. Filter by status, search keys and text at once, and save and jump to the next incomplete row with a single shortcut.

AI assistance you stay in control of

Translate a whole filter or a handful of selected rows with your workspace AI provider. Every AI result is saved as a draft, and a person confirms it before it counts as translated.

Placeholders that cannot break

Every save, every AI write and every import is checked against the source string. A translation that loses a %1$s, a {count} or a <b> tag is rejected instead of shipped.

Progress and drift, visible

Every language shows a completion percentage and a breakdown by status. When the source text of a key changes, every existing translation of that key is flagged outdated automatically.

Three export formats

JSON for the round trip, gettext .po for translation toolchains, and PHP language files. Untranslated keys are left out by default, so your application falls back to the source language.

GitHub in both directions

Pull the language files from a repository and branch, or push every changed language as a single commit. If the repository moved first, the push stops and asks before anything is overwritten.

From JSON file to translated release

Four steps, and the same loop every time you ship a new string.

1

Import

Upload the .json language files to the project's Files tab, then import the source language. The preview shows exactly what will change before anything is written.

2

Translate

Add your target languages and work through the grid. Start on the Untranslated tab, or let the AI fill in a first draft for you.

3

Review

A second person marks rows Reviewed. The change history shows the old value, the new value, who wrote it, and whether it came from a person, the AI, an import or GitHub.

4

Export

Download JSON, .po or PHP for the languages you need, or push the whole set to your GitHub branch in a single commit.

NIZU

Connected Apps

Projects

How is connected: Every package belongs to a project. The source files live in the project's Files tab, and whoever cannot reach the project cannot reach its translations.

app

AI providers

How is connected: Translation runs through the shared workspace AI stack, so OpenAI, Claude, Gemini, DeepSeek, Grok or Ollama all work with no extra setup — and the cost is measured on its own.

app

No App works alone

Here is what i18nTranslator plugs into:

Diagram of the NIZU i18nTranslator workflow in light mode
  • Project Files as the single source of truth

  • GitHub pull and push with fine-grained tokens

  • Shared AI providers from your workspace settings

  • NizuEvents webhooks for publication events

  • No changes to your workspace's own language files

Roles and permissions

How is connected: Four permissions in the standard role editor: view, translate, review and manage. Give a freelance translator the right to translate and nothing else.

Team members

How is connected: Every translation, status change, import, export and push is attributed to the person who made it, in the history and in the activity feed.