> ## Documentation Index
> Fetch the complete documentation index at: https://docs.air3.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Language support

> Choose AIR Kit languages, customize copy with hosted JSON, and set or change the language with the Web SDK.

AIR Kit includes English (`en`), Japanese (`ja`), Korean (`ko`), Turkish (`tr`), and Vietnamese (`vi`). English is always the fallback for missing translations. To override copy or add languages, host JSON files and register them through `localeUrls` in partner configuration. The SDK selects the language; it does not accept translation strings.

## How language selection works

AIR Kit selects the language in this order:

1. The SDK's `sessionConfig.locale`, if set.
2. The user's browser language preferences, unless detection is disabled.
3. Your `defaultLocale`, or `en` if unset.

Regional tags resolve to available catalogs, such as `ko-KR` to `ko` and `en-US` to `en`, with region fallback. A language must be bundled or have a registered JSON URL, and must pass your `supportedLocales` allowlist. Adding a code to the allowlist does not provide translations.

Browser language changes are followed when detection is enabled and no SDK locale is explicitly set.

## Partner configuration

Set these fields through partner configuration (backend or dashboard), separate from SDK initialization:

| Field | Purpose |
| - | - |
| `localeUrls` | Recommended: locale code → JSON URL, with one combined file per language for all AIR Kit interfaces. |
| `defaultLocale` | Fallback language when no SDK or browser language is selected. Defaults to `en`. |
| `supportedLocales` | Allowed languages. Empty means no restriction, including bundled languages. A non-empty list rejects other locales; use it to opt out of a bundled language. English remains the fallback. |
| `disableBrowserLocaleDetection` | Ignore browser language preferences and use `defaultLocale`, unless the SDK sets a locale. |

## Customize copy or add a language

1. Use the combined English catalog's key structure, which covers all interfaces.
2. Host a JSON file for each locale, such as `en.json` or `es.json`. Include only the keys you want to change; nested objects are merged and missing keys fall back to English.
3. Register the URLs in `localeUrls` in partner configuration. If you use a non-empty `supportedLocales` list, include the new locale.

For example, register one combined Spanish translation across all four interfaces:

```json theme={null}
{
  "defaultLocale": "es",
  "localeUrls": { "es": "https://cdn.example.com/airkit/i18n/es.json" }
}
```

<Note>
  English overrides customize the fallback copy. Bundled translations take precedence over that copy, so also provide a locale-specific override to customize wording for Japanese, Korean, Turkish, or Vietnamese users.
</Note>

### Translate selected interfaces

If you use only a subset of AIR Kit, you can fully translate those interfaces with separate files instead of working from the combined catalog. Each file should follow that interface's composed English catalog.

Use `authLocaleUrls` for login, `walletLocaleUrls` for the wallet, `recoveryLocaleUrls` for recovery, or `credentialLocaleUrls` for credentials. Each maps a locale code to a JSON URL. For example, an integration using only login and credentials can register translations in `authLocaleUrls` and `credentialLocaleUrls`.

If you also use `localeUrls`, interface-specific overrides take precedence for the same locale.

## Set or change the language with the Web SDK

Set `sessionConfig.locale` at [initialization](/get-started/sdks/web#initialize) to override browser detection and the partner default. Omit it to allow automatic selection.

```tsx theme={null}
await airService.init({
  buildEnv: BUILD_ENV.SANDBOX,
  sessionConfig: {
    locale: "ja"
  }
});
```

Change the language after initialization across all loaded AIR Kit interfaces:

```tsx theme={null}
await airService.updateSessionConfig({ locale: "ko" });
```

To set the display currency, see [Other options](/get-started/customization/other-options).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.