settings.read permission to view and settings.write to save changes.
Supported locales
Kener ships with translations for 21 locales. Each locale is a JSON file undersrc/lib/locales/ that provides the locale’s human-readable name and a mappings object of translated strings.
| Code | Language |
|---|---|
cs | Čeština |
de | Deutsch |
dk | Dansk |
en | English |
es | Español |
fa | Persian |
fr | Français |
hi | हिन्दी |
it | Italiano |
ja | Japanese |
ko | Korean |
nb-NO | Norsk Bokmål |
nl | Nederlands |
pl | Polski |
pt-BR | Português (Brasil) |
ru | Русский |
sk | Slovenčina |
tr | Türkçe |
vi | Tiếng Việt |
zh-CN | 简体中文 |
zh-TW | 繁體中文(台灣) |
Configuring available languages
Select available languages
In the Languages card, check each language you want to make available to status page visitors. Users will be able to switch between all checked languages using the language selector on the public page.
Set the default language
In the Default Language dropdown, select which language is shown when a visitor first arrives. Only languages you have checked in the previous step appear in this dropdown.The default language is always checked and cannot be unchecked — to change the default, first select a different default language, then uncheck the old one.
Language preferences are persisted per-visitor in
localStorage under the key kener_preferred_locale. If a visitor has previously selected a language and it is still in your enabled list, their preference takes priority over the configured default.Timezone settings
Kener automatically detects each visitor’s local timezone and displays all times accordingly. You can additionally allow visitors to manually switch between timezones using the toggle in the Timezone Settings card. When the toggle is off, times are always shown in the visitor’s detected local timezone with no UI to change it.Date & time format
The Date & Time Format card lets you control how dates and times appear across the status page. Formats use date-fns format tokens. There are three separate format strings:| Setting | Default | Description |
|---|---|---|
| Date + Time | PPpp | Used when both a date and time are shown together |
| Date Only | PP | Used when only a date is needed |
| Time Only | pp | Used when only a time is needed |
Preset suggestions
The dashboard provides preset badges for each field. Click a badge to apply it and see a live preview of how the current date and time would render with that format. Date + Time presets| Format | Label |
|---|---|
PPp | Locale (AM/PM) |
PP HH:mm | Locale date + 24h |
yyyy-MM-dd HH:mm | ISO-like 24h |
dd MMM yyyy h:mm a | Day month year AM/PM |
MMM dd, yyyy HH:mm | Month day year 24h |
| Format | Label |
|---|---|
PP | Locale |
yyyy-MM-dd | ISO |
dd/MM/yyyy | Day-first |
MMM dd, yyyy | Month day year |
dd MMM yyyy | Day month year |
| Format | Label |
|---|---|
p | Locale (AM/PM) |
HH:mm | 24h |
H:mm | 24h short |
h:mm a | 12h AM/PM |
hh:mm | 12h no period |
Invalid format.
Click Save Format to apply your changes.
Translation coverage
Translation coverage varies by locale. Untranslated keys fall back first to English and then to the raw key string. The fallback logic insrc/lib/server/i18n.ts follows this order:
- Look up the key in the requested locale’s
mappings. - If not found and the locale is not
en, look up the key in the English mappings. - If still not found, return the key itself as the display string.