kisenon

Languages

The console and docs are available in 8 languages.

The Kisenon console and documentation ship in eight languages. The CLI (keon) is English-only.

Supported languages

TagLanguage
en-USEnglish (US)
jaJapanese (日本語)
deGerman (Deutsch)
frFrench (Français)
esSpanish (Español)
pt-BRPortuguese — Brazil (Português)
koKorean (한국어)
zh-HansChinese — Simplified (简体中文)

en-US is the default and the source catalog; the rest are AI-translated. Right-to-left locales are not shipped yet, though the shell is RTL-ready for the day one is added.

Picking a language in the console

Go to Settings → Language and choose from the dropdown. Each option is labelled with its own endonym (for example, "Japanese (日本語)") so you can always find your way back even from an unfamiliar locale.

Your choice persists per account: the console sends it to the control plane via PATCH /v1/me with a language field, which stores it on your user record. The selection takes effect on the next render — no reload required — and follows you to any browser where you sign in.

Only the eight tags above are accepted; anything else is rejected.

The public site

The landing page and these docs also render in your language — no sign-in required. Each language has its own URL: English lives at the bare paths (/docs), and the other languages are prefixed, as in /ja/docs or /de/docs. Pages you haven't got a translation for fall back to English rather than disappearing.

Two ways to switch:

  • The language selector (globe) in the landing-page header, footer, and docs chrome — pick a language and you stay on the same page under its URL.
  • On a first visit, if your browser prefers one of the other seven languages, a one-line suggestion banner offers that language. It never redirects you by itself; dismiss it once and it stays gone.

The resolved locale is remembered in a NEXT_LOCALE cookie, so once your language is determined it stays consistent across pages and visits. Signed-in users carry their saved account preference; everyone else is matched against their browser settings (see below).

How your language is chosen

Detection runs in this order, first match wins:

  1. An explicit pick. A locale you selected — stored in the NEXT_LOCALE cookie (and, when signed in, on your account).
  2. Your browser. The Accept-Language header your browser sends, negotiated against the eight supported languages. A request for ja matches ja; a request for plain en matches en-US by prefix.
  3. English. If nothing matches, the site falls back to en-US.

The web and control plane share the same negotiation logic, so a given browser resolves to the same language on both surfaces.

API error messages

Control-plane error responses are localized. When you send an Accept-Language header, the API resolves the human-readable message field to your language where a translation exists, falling back to English otherwise.

The machine-readable code field never changes — it stays stable regardless of language, so you can match on it programmatically:

{ "error": { "code": "branch_not_ready", "message": "Branch is not yet ready." } }

Match on code, not message. The envelope shape is identical in every language.

  • Auth — sign-in, API keys, and the CLI flow.
  • FAQ — short answers to the most-asked questions.