# Languages and translations

The languages your app speaks, and how its text is translated and checked.

| Page | What it covers |
|---|---|
| [Locales](/docs/locales.md) | A locale is a language as a place writes it, such as British English (`Locale.en_gb`) or the French of France (`Locale.fr_fr`). |
| [Translations as messages](/docs/translations-as-messages.md) | Translate your app's text does the whole job, start to finish. |
| [Enums with wording](/docs/enums-with-wording.md) | An enum has no label for people of its own (Enums). |
| [Failures for client apps](/docs/failures-for-client-apps.md) | A client app can show a failure to its user in the user's language. |
| [Packages' text in an app](/docs/packages-text-in-an-app.md) | To show a package's or Jadpo's message in a locale, Jadpo looks first in your app's root wording for that locale, then in the owner's own. |
| [Tooling for translations](/docs/tooling-for-translations.md) | The `jadpo translations` commands list what is missing, keep the record of what each translation was made from, and exchange wording with translation services. |
| [Exchanging translations with a service](/docs/exchanging-translations.md) | Most teams send their wording to a translation service, such as Crowdin, Lokalise or any that reads XLIFF or JSON. |

## Details

The exact rules, for when you hit an edge case.

| Page | What it covers |
|---|---|
| [What the compiler checks of translations](/docs/what-the-compiler-checks-of-translations.md) | `jadpo check` checks every language file against the messages, enums, emails and failures it words. |
