Languages and locales
Every project has exactly one source language and any number of target languages, all named with standard BCP-47 tags.
Source and target languages
The source language is the language your strings are written in. You pick it when you create the project. Everything in the project is translated from it, it is the one language you never translate into, and it cannot be removed.
Target languages are the languages you ship. Each one is tracked on its own: its own coverage, its own review work and its own published output. You can add and remove target languages at any time from the project's Languages settings, under Add a language. Adding and removing languages needs a developer, an admin or an Owner of the account.
When you add a language to a project that already has strings, transglot fills it straight away: strings already in translation memory are reused, and the rest are translated by Glossa while the project's Auto-translate setting is on. Removing a language deletes every translation in it; your keys and source strings are untouched.
Language tags
Languages are named with BCP-47 tags, the standard your framework already uses:
| Tag | Language |
|---|---|
de | German |
pt-BR | Portuguese (Brazil) |
fr-CA | French (Canada) |
zh-Hans | Chinese (Simplified) |
sr-Latn | Serbian (Latin script) |
transglot normalises what you type, so differences of case or separator (pt-br, pt_BR) do not create duplicates. It refuses a tag it does not recognise rather than creating a language that would never match your files: "Unknown locale: use a BCP-47 tag like de, pt-BR, or zh-Hans."
Plural rules come from the language too. Each language has its own set of plural categories, such as one and other for English or one, few, many and other for Polish, and a plural key holds one form per category. See Keys and strings.
How many languages you can use
Free accounts can use a limited number of distinct languages across all their projects, counting source languages; paid plans have no language limit. When an account is at its limit you can still add a language it already uses in another project. See pricing.
Translated is not the same as shipped
Whether a language reaches your app is a separate question from whether it exists in the project. A language reaches your app when you pull it into your build, merge the pull request a connected repository opens, or publish it to the CDN. See Publish a locale.