Skip to content

How to translate your status page

OpenStatus 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.

Currently supported languages:

CodeLanguage
enEnglish
frFran\u00e7ais
deDeutsch
  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).

OpenStatus supports two routing modes for locales:

  • Pathname routing (subdomains like status.openstatus.dev): 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).

Translations are open source. To add a new language:

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

export const locales = ["en", "fr", "de", "es"] as const;
// ...
export const localeDetails: Record<Locale, { name: string; flag: string }> = {
en: { name: "English", flag: "\ud83c\uddfa\ud83c\uddf8" },
fr: { name: "Fran\u00e7ais", flag: "\ud83c\uddeb\ud83c\uddf7" },
de: { name: "Deutsch", flag: "\ud83c\udde9\ud83c\uddea" },
es: { name: "Espa\u00f1ol", flag: "\ud83c\uddea\ud83c\uddf8" },
};

Run the status page dev server:

Terminal window
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.

Once your translations are complete, submit a PR to the OpenStatus repository. The locale will become available to all status pages after the next deployment.