LangSync
AI-powered localization platform — manage translation strings, auto-translate them with AI, and serve them to your apps over a REST API.
LangSync centralises every translation string in your product, generates translations with AI, and exposes them as i18n-ready JSON over a REST API. It replaces the spreadsheet-and-Slack workflow most teams ship with: one dashboard for your source strings, a glossary that keeps terminology consistent across every AI call, a CLI that syncs your Git repo with the server, and resumable batch jobs that auto-translate everything you haven't filled in by hand.
The mental model
Everything in LangSync hangs off five concepts:
| Concept | What it is | Scope |
|---|---|---|
| Namespace | An isolated translation workspace — one per app, module, or client project. Has a default language, target languages, and terms. | Organization |
| Term | One translation key (welcome.title, button.submit) inside a namespace. Also called a mark. | Namespace |
| Translation | The actual string for one term in one language. | Term × language |
| Language | Either a shared language maintained by Norcube or a custom language you define. Languages do nothing until attached to a namespace. | Platform / organization |
| Glossary | An organization-wide dictionary of brand names and fixed terminology that the AI consults on every translation. One per organization. | Organization |
Translations flow from the namespace's default language into its target languages — either typed by a human, suggested by the AI one cell at a time, or filled in bulk by a background job. Your application then fetches the finished strings through the read-only Public API using an API key.
The dashboard, mapped
Open app.norcube.com, pick your organization, and switch to LangSync. The sidebar has three sections:
- Translations
- Namespaces — the list of your workspaces, each with its languages, term count, and a translation-progress bar. Opening one shows its terms and the translation editors. See Namespaces and Manage terms.
- Glossary — the organization's terminology dictionary. See Glossaries.
- Manual translation — a free-form translate box for text that isn't a term: paste, translate, copy. See Manual translation.
- Access
- Operations
- Audit log — every sensitive action in your organization's LangSync account, filterable by date, action, target, and actor. See Audit log.
There is one more surface that isn't in the dashboard at all: the
LangSync CLI (norcube / nrc), which pins a Git
repository to one or more namespaces and reconciles local JSON
translation files against the server — including AI translation of
anything that's missing.
Where the AI fits
Three flavours of AI translation, all powered by the same engine:
- Batch auto-translate fills every missing translation across a namespace — triggered from the dashboard's Translate missing dialog, by a bulk import, by creating a term with Translate automatically enabled, or by a sync job. Runs in the background; you get an email when it finishes.
- Single-cell suggestion — the sparkle button next to a translation field generates one AI translation for you to review and save. Nothing is stored until you save.
- Manual translation — translate arbitrary text live, optionally with the glossary and a custom prompt applied. Never stored.
Every one of these consults your glossary automatically (manual translation has an on-by-default toggle), so brand names and fixed terminology survive every translation. AI calls are rate-limited per organization and per user — see Limits and errors.
A typical setup
For a product team shipping a web app in five languages:
- Create a namespace
web-appwith default languageen-US, attach the four target languages (Getting started). - Seed it — bulk-import your existing
CSV/XLSX export, or run
nrc langsync initin the repo and push your existing JSON files (CLI). - Set up the glossary with your brand names and fixed terminology before running big AI batches.
- Auto-translate the gaps, review in the side-by-side editor, and fix what needs fixing.
- Wire your app to the Public API,
or keep the JSON files in the repo and run
nrc langsync syncin CI.
Pricing
LangSync bills per non-empty translated string stored — empty translations don't count, and every term × language combination is counted once. AI translation calls don't carry a separate per-call charge, but they are rate-limited. See Platform → Billing for the current rates.