| title | How to translate your status page |
|---|---|
| description | Enable multiple languages on your status page and contribute new translations. |
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:
| Code | Language |
|---|---|
en |
English |
fr |
Fran\u00e7ais |
de |
Deutsch |
- Go to your Dashboard and open the status page settings.
- Under Locales, select a Default Locale for your page.
- Check Enable locale switcher to allow visitors to switch languages.
- Select which languages you want to offer.
- 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:
pnpm dev:status-pageThe 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.