﻿---
title: Internationalization settings in Kibana
description: Kibana ships translation files for English, French, Japanese, Simplified Chinese, and German. Plugins and admin-installed translation files can add additional...
url: https://www.elastic.co/elastic/docs-builder/docs/3466/reference/kibana/configuration-reference/internationalization-settings
products:
  - Kibana
applies_to:
  - Elastic Cloud Hosted: Generally available
  - Self-managed Elastic deployments: Generally available
---

# Internationalization settings in Kibana
You do not need to configure any settings to run Kibana in English.

## General settings
<definitions>
  <definition term="i18n.defaultLocale">
    <stack-availability>Elastic Stack: Planned</stack-availability>
    <supported-on>Elastic Cloud Hosted: Generally available, Self-managed Elastic deployments: Generally available</supported-on>

The locale used for server-rendered strings and as the default for users
who haven't picked a preferred language. Must be one of the values listed
in `i18n.locales` when that setting is non-empty.
Datatype: `string`
Default: `'en'`
  </definition>
  <definition term="i18n.locales">
    <stack-availability>Elastic Stack: Planned</stack-availability>
    <supported-on>Elastic Cloud Hosted: Generally available, Self-managed Elastic deployments: Generally available</supported-on>

The list of locales that Kibana offers in the per-user language picker.
Locales not in this list are not available to users, even if translation
files for them are installed. Set to `[]` to disable the language picker
entirely.
Datatype: `list`
Default: `["en", "fr-FR", "ja-JP", "zh-CN", "de-DE"]`
  </definition>
  <definition term="i18n.allowLocaleCookie">
    <stack-availability>Elastic Stack: Planned</stack-availability>
    <supported-on>Elastic Cloud Hosted: Generally available, Self-managed Elastic deployments: Generally available</supported-on>

When `true` (the default), Kibana writes a `KBN_LOCALE` cookie on every
rendered response so the browser remembers the resolved locale across
page loads, anonymous pages, and post-logout browsing. Set to `false`
to disable the cookie.
Datatype: `boolean`
Default: `true`
  </definition>
  <definition term="i18n.locale">
    <stack-availability>Elastic Stack: Planned for deprecation</stack-availability>
    <supported-on>Elastic Cloud Hosted: Generally available, Self-managed Elastic deployments: Generally available</supported-on>

Set the Kibana interface language.
Datatype: `enum`
Default: `en`
Options:
- `en`: English
- `zh-CN`: Chinese
- `ja-JP`: Japanese
- `fr-FR`: French
- `de-DE`: German

<admonition title="Deprecation details">
  Replaced by `i18n.defaultLocale`. Kibana continues to honor `i18n.locale` if set, logging a deprecation warning at startup.
</admonition>

  </definition>
</definitions>


## Built-in and custom locales

Kibana ships translation files for English, French, Japanese, Simplified Chinese, and German. Plugins and admin-installed translation files can add additional locales. Any locale listed in `i18n.locales` for which a translation file exists will be served; locales without translation files fall back to English.

## Per-user language selection

When `i18n.locales` is not empty, individual users can choose their preferred display language:
- <applies-to>Self-managed Elastic deployments: Generally available</applies-to> **User Profile page** — Users can select a language from the **Language** section on their profile page (*User icon → Profile*).
- <applies-to>Elastic Cloud Serverless: Generally available</applies-to> <applies-to>Elastic Cloud Hosted: Generally available</applies-to> **User menu** — Users can select a language from the **Language** option in the user menu available from the application header.

When a user sets a preferred language, it is stored in their user profile and takes effect after a page reload.

### Resolution priority

Kibana resolves the display language using the following priority chain:
1. **User profile setting** — The language selected by the user in their
   profile or the user menu (must be one of `i18n.locales`).
2. **`KBN_LOCALE` cookie** — The most recently rendered locale on this
   browser. Kibana writes this cookie on every rendered response, so it
   tracks profile changes automatically. The cookie is the fallback used
   on surfaces where the profile isn't available — login pages, error
   pages, and any browsing the user does after signing out. Only used
   when the cookie value matches a locale Kibana can serve.
3. **`Accept-Language` header** <applies-to>Elastic Cloud Serverless: Generally available</applies-to> — On
   serverless deployments, Kibana consults the browser's
   `Accept-Language` preferences when neither the profile setting nor
   the cookie produces a match. The first weighted preference that's an
   exact match (region included) for an entry in `i18n.locales` wins.
   This step is skipped on traditional/self-managed deployments to keep
   existing users' language stable across upgrades.
4. **`i18n.defaultLocale` config** — The server-wide default set in `kibana.yml`.


#### About the `KBN_LOCALE` cookie

Kibana sets a `KBN_LOCALE` cookie on every rendered response containing
the resolved locale id (for example, `KBN_LOCALE=ja-JP`). Attributes:
- Path scoped to the Kibana `serverBasePath`.
- `SameSite=Lax`, `Max-Age` of one year, and `Secure` when the response is over HTTPS.
- `HttpOnly`. The value is a preference, not a secret, but Kibana does not need browser-side JavaScript to read it.

Privacy posture: `KBN_LOCALE` is a strictly-necessary preference cookie.
It does not track the user, store identity, or enable cross-site activity.
To disable the cookie entirely, set `i18n.allowLocaleCookie: false` in
`kibana.yml`. When disabled, the per-user language selection still works via
user profiles; however, anonymous pages and pages visited after signing out
will always fall back to `i18n.defaultLocale` (or `Accept-Language` on
serverless deployments) rather than remembering the previously resolved locale.

## Example configurations

```yaml
# 1. Default behavior — picker shows the five bundled locales, server defaults
#    to English. Equivalent to omitting all i18n.* keys.

# 2. Curate the picker to a subset:
i18n.locales: ["en", "ja-JP"]
i18n.defaultLocale: "en"

# 3. Disable the per-user picker entirely (server still serves defaultLocale).
#    The flow-style empty array (square brackets) is the supported way to
#    express "no locales"; the block-list form has no syntax for an empty list.
i18n.locales: []
i18n.defaultLocale: "en"

# 4. Legacy form — still works, logs a deprecation warning at startup:
i18n.locale: "ja-JP"

# 5. Disable the KBN_LOCALE cookie:
i18n.allowLocaleCookie: false
```