statusas docs
Guides

How to translate your status page

Enable multiple languages on your status page and contribute new translations.

statusas status pages support multiple languages. You can configure which locales are available per page and set a default language. Visitors can switch between languages using a built-in locale switcher.

Note

Translations are available on paid plans only.

Supported locales

Currently supported languages:

CodeLanguage
ltLietuvių
enEnglish
frFrançais
deDeutsch
trTürkçe
hiहिंदी
ko한국어
ja日本語

Enable translations on your status page

  1. Go to your dashboard and open the status page settings.
  2. Under Locales, select a default locale for your page.
  3. Check Enable locale switcher to allow visitors to switch languages.
  4. Select which languages you want to offer.
  5. Click Submit.

When the locale switcher is enabled, visitors will see a language dropdown on your status page. The default locale is omitted from the URL for cleaner paths (e.g., /status instead of /status/en), while non-default locales are included (e.g., /status/fr).

Translate your own text

Enabling a locale translates the page's own furniture — buttons, headings, "Operational", the dates. It cannot translate what you wrote: the name of a service, the title of an incident, the paragraph explaining a maintenance window. Those live next to the thing they describe, and you fill them in where you already edit it:

WhatWhere
Page title and descriptionStatus page → Edit → General → Translations
Component and group namesStatus page → Components — the language button on each row
Monitor name and descriptionMonitor → General → Translations (used when a page has no override)
Status report titlethe report sheet, under Translations
Status report update messagethe update card, under Translations
Maintenance title and messagethe maintenance sheet, under Translations

A blank field is not a translation — it is the absence of one, and the visitor reads the original. So a half-finished page is never half-broken: it falls back sentence by sentence.

Which language a visitor gets is decided by the page, not by the browser. A reader who asks for German on a page that publishes only Lithuanian and English gets the page's default locale rather than a mixture.

Note

A page component's translation wins over the monitor's. Adding a monitor to a status page copies the monitor's translations across, and you can edit them per page afterwards — the same rule the public name already follows.

How routing works

statusas supports two routing modes for locales:

  • Pathname routing (subdomains like status.statusas.lt): the locale appears after the slug, e.g., /status/fr/events.
  • Hostname routing (custom domains like status.example.com): the locale is the first path segment, e.g., /fr/events.

In both cases, the default locale is omitted from the URL (as-needed prefix strategy).

Contributing a new locale

Translations are open source. To add a new language:

1. Extend the locale registry

Add your locale to packages/locales/index.ts:

import type { Locale as DateFnsLocale } from "date-fns/locale";
import { de, enUS, fr, hi, ja, ko, lt, tr } from "date-fns/locale";

export const locales = ["lt", "en", "fr", "de", "tr", "hi", "ko", "ja"] as const;
// ...
export const localeDetails: Record<Locale, { name: string; flag: string }> = {
  lt: { name: "Lietuvių", flag: "🇱🇹" },
  en: { name: "English", flag: "🇺🇸" },
  fr: { name: "Français", flag: "🇫🇷" },
  de: { name: "Deutsch", flag: "🇩🇪" },
  tr: { name: "Türkçe", flag: "🇹🇷" },
  hi: { name: "हिंदी", flag: "🇮🇳" },
  ko: { name: "한국어", flag: "🇰🇷" },
  ja: { name: "日本語", flag: "🇯🇵" },
};

export const dateFnsLocales: Record<Locale, DateFnsLocale> = {
  lt,
  en: enUS,
  fr,
  de,
  tr,
  hi,
  ko,
  ja,
};

2. Generate the translation file

Run the status page dev server:

pnpm dev:status-page

The next-intl extraction plugin will automatically create a new apps/status-page/messages/<locale>.json file with all translation keys pre-populated from the source locale. You can then fill in the translations.

3. Send them to us

Once your translations are complete, send them to pagalba@statusas.lt. The locale becomes available to every status page after the next deployment.

Šiame puslapyje