Namespaces

Isolated translation workspaces — what they contain, how to create and configure them, and what happens on every destructive change.

Not verified yet

A namespace is the top-level container in LangSync. Each namespace has its own default language, its own set of target languages, its own terms, and its own translation progress. Namespaces are fully isolated from each other: the same term mark in two namespaces refers to two unrelated keys, and nothing translated in one namespace leaks into another.

Most teams create one namespace per deployable surface — web-app, ios-app, marketing-site — or one per client for agencies managing multiple brands. The glossary is the one thing namespaces share: it's organization-wide and applies to AI translations in every namespace.

What a namespace has

FieldWhat it doesRules
NameThe slug used in API paths, the CLI, and the dashboard URL.Letters, digits, hyphens, underscores (^[a-zA-Z0-9\-_]+$). Case-sensitive. Unique within your organization.
Description (context)Free-text note about what lives in the namespace, shown in the namespace list and pickers.Free text.
Default languageThe language your source strings are written in. Every term has a value in this language; all other languages are translations of it.Set at creation; changeable later.
Target languagesThe languages you want translations in.Attach and detach at any time.
TermsThe translation keys, each with one translation per attached language.See Terms.

The namespace list also shows two computed columns: Total terms and Progress — the percentage of term × language cells that have a translation. Progress is the quickest way to spot a namespace that needs an auto-translate run.

Create a namespace

Open Namespaces

In LangSyncNamespaces, click New namespace (or Create your first namespace if the list is empty).

Fill in the form

  • Name — e.g. web-app. Prefer short, lowercase, hyphen-separated names: they appear in URLs, API paths, and CLI commands, and they're case-sensitive everywhere.
  • Description — e.g. "Product UI strings for the checkout flow".
  • Default language — searchable dropdown of all shared and custom languages.

Create

Click Create item. You land back on the list; open the namespace to attach target languages and add terms.

You can also create namespaces from the CLI (nrc langsync namespace create web --default-language en) — see CLI.

Namespace settings

Open a namespace, then Namespace settings. From here you can:

  • Rename the namespace.
  • Edit the description.
  • Change the default language.
  • Manage languages — current languages appear as badges (with an × to remove each), and a searchable picker adds new ones.

What each change actually does

  • Renaming updates the slug used in API paths immediately. Any deployed application or CLI config still using the old name starts failing until you update it — the Public API returns an authentication error for unknown namespace names, and the CLI reports the namespace as not accessible.
  • Changing the default language keeps every existing translation, including the old default's. It changes what counts as the source: new AI translations use the new default language's value as their source text.
  • Adding a language creates an empty column — no translations exist for it until you write them or run auto-translate.
  • Removing a language deletes every translation stored in that language across every term in the namespace. The terms themselves and their other-language translations are untouched. There is no undo; the removal is recorded in the audit log as namespace.language_removed.

Delete a namespace

From the namespaces list, use the row's delete action. The confirmation dialog states it plainly: "This action cannot be undone."

Deleting a namespace permanently removes:

  • every term and every translation in it,
  • every sync job record targeting it,
  • every bulk import record and its uploaded files.

Two things are not affected, because they're organization-scoped, not namespace-scoped: API keys and the glossary. The deletion is written to the audit log as namespace.deleted.

Naming conventions

  • Group by deployable surface, not by language pair. LangSync already handles multiple languages inside one namespace — you never need web-app-de.
  • Keep names short and lowercase. They show up in API URLs, in .langsync.json, and in every CLI invocation.
  • Names are case-sensitive. Web-App and web-app are two different namespaces. Sticking to lowercase avoids the confusion entirely.

Common errors

SymptomCause
INVALID_NAME when creatingThe name contains characters outside letters, digits, -, _.
Creation rejected with a conflictA namespace with that name already exists in the organization.
CLI: "namespace 'X' is not accessible to the active organization"Wrong organization active, the namespace was renamed/deleted, or the name's casing doesn't match.
402 / "organization blocked" on createYour organization has unpaid invoices — see Platform → Billing.
  • Languages — shared vs. custom languages and how attachment works.
  • Terms — what lives inside a namespace.
  • CLI — managing namespaces from the terminal.

On this page