Internationalization settings in Kibana
You do not need to configure any settings to run Kibana in English.
General settings
- i18n.defaultLocale
-
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.localeswhen that setting is non-empty.Datatype:
stringDefault:
'en' - i18n.locales
-
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:
listDefault:
["en", "fr-FR", "ja-JP", "zh-CN", "de-DE"] -
When
true(the default), Kibana writes aKBN_LOCALEcookie on every rendered response so the browser remembers the resolved locale across page loads, anonymous pages, and post-logout browsing. Set tofalseto disable the cookie.Datatype:
booleanDefault:
true - i18n.locale
-
Set the Kibana interface language.
Datatype:
enumDefault:
enOptions:
-
en- English -
zh-CN- Chinese -
ja-JP- Japanese -
fr-FR- French -
de-DE- German
Deprecation detailsReplaced by
i18n.defaultLocale. Kibana continues to honori18n.localeif set, logging a deprecation warning at startup. -
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.
When i18n.locales is not empty, individual users can choose their preferred display language:
-
User Profile page — Users can select a language from the Language section on their profile page (User icon → Profile). -
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.
Kibana resolves the display language using the following priority chain:
- User profile setting — The language selected by the user in their
profile or the user menu (must be one of
i18n.locales). KBN_LOCALEcookie — 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.Accept-Languageheader— On serverless deployments, Kibana consults the browser's Accept-Languagepreferences 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 ini18n.localeswins. This step is skipped on traditional/self-managed deployments to keep existing users' language stable across upgrades.i18n.defaultLocaleconfig — The server-wide default set inkibana.yml.
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-Ageof one year, andSecurewhen 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.
# 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