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.i18n.defaultLocaleconfig (when explicitly set) — When an admin setsi18n.defaultLocaleto a value other than the built-inendefault, that server-wide choice takes precedence over browser detection. Per-user signals (profile, cookie) above still win over it.Accept-Languageheader — When the steps above produce no match andi18n.defaultLocaleis left at itsendefault, Kibana consults the browser'sAccept-Languagepreferences. The first weighted preference matching an entry ini18n.locales, exactly or by language (fr-CHor barefrcan resolve to a configuredfr-FR), wins.i18n.defaultLocaleconfig — The server-wide default (enunless overridden) set inkibana.yml, used when nothing above matches.
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
resolve their locale from i18n.defaultLocale when it is explicitly set, and
otherwise from the browser's Accept-Language preferences (falling back to the
en default when no preference matches), 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