Languages

Shared and custom languages, and how they attach to namespaces.

Not verified yet

LangSync supports two kinds of languages:

  • Shared languages are global – every customer can use them. They use IETF BCP 47 codes: en-US, pt-BR, zh-TW, de-DE, and ~100 others. Norcube maintains the list.
  • Custom languages are scoped to your organization. Use them when you need a dialect, an internal variant, or a pseudo-locale for testing.

Custom languages

A custom language has a code (lowercase letters, digits, underscores, hyphens – must start with a letter, up to 32 characters) and a display name that appears in the dashboard. Custom codes don't have to follow BCP 47, but staying close to it (e.g. en-pirate, en-US-formal) helps when integrating with i18n libraries that recognise the standard.

Languages and namespaces

A language doesn't translate anything on its own – you attach it to a namespace. A namespace has:

  • One default language, set when you create the namespace.
  • Any number of target languages, added later from the namespace's Languages page.

Translations always go from the default language to a target.

When to use a custom language

  • Brand voice variants. en-US-formal and en-US-casual if your product needs two registers.
  • Pseudo-locales for QA. A custom qa-zz with prefixed values makes missing-translation bugs obvious in screenshots.
  • Regional rollouts. Use a custom code while in beta; switch to the standard code on launch.

For everything else, prefer shared languages – they're zero-config and universally understood by translation tools.

Behaviour and edge cases

  • Deleting a custom language also deletes every translation stored in that language across every namespace it was attached to. Attached namespaces lose that language from their language list.
  • Shared languages cannot be deleted – they're managed by Norcube. Detach them from a namespace if you no longer need them.
  • Renaming a custom language changes only the display name. The code is immutable once created; if you need a new code, create a new language and migrate translations.

On this page