Status Blocks i18n Provider
openstatus/status-i18nFreeBlock
React context for supplying translated labels and locale-aware date formatters to status blocks. Optional — blocks fall back to defaultStatusBlocksLabels (en-US) when no provider is mounted.
Install it
npx shadcn@latest add https://openstatus.dev/r/status-i18n.jsonSource
1"use client";23import type {4 StatusReportImpact,5 StatusReportUpdateType,6 StatusType,7 ThemeValue,8} from "@/components/blocks/status.types";9import { defaultStatusBlocksLabels } from "@/components/blocks/status.utils";10import { createContext, useContext } from "react";1112/**13 * Labels and locale-aware formatters consumed by block components.14 *15 * Blocks read this via `useStatusBlocksLabels()`. When no provider is mounted,16 * the hook returns `defaultStatusBlocksLabels` (English, "en-US" formatting).17 * Apps wanting localized copy should mount `StatusBlocksI18nProvider` and18 * supply translated strings + locale-aware formatters.19 */20export type StatusBlocksLabels = {21 systemStatus: Record<StatusType, { long: string; short: string }>;22 incidentStatus: Record<StatusReportUpdateType, string>;23 requestStatus: Record<StatusType, string>;24 componentImpact: Record<StatusReportImpact, string>;2526 today: string;27 ongoing: string;28 reportResolved: string;29 noRecentNotifications: string;30 noRecentNotificationsDescription: string;31 noReports: string;32 noReportsDescription: string;33 noPublicMonitors: string;34 noPublicMonitorsDescription: string;3536 themeNames: Record<ThemeValue, string>;37 ariaToggleTheme: string;3839 subscribe: string;40 subscribeRssDescription: string;41 subscribeAtomDescription: string;42 subscribeJsonDescription: string;43 subscribeSlackDescription: string;44 subscribeSshDescription: string;45 linkCopiedToClipboard: string;46 ariaCopyLink: string;4748 poweredBy: string;49 getInTouch: string;5051 ariaStatusTracker: string;52 ariaDayStatus: (n: number) => string;53 clickAgainToUnpin: string;5455 /** Heading shown on the status-calendar block. */56 calendarTitle: string;5758 durationIn: (s: string) => string;59 durationEarlier: (s: string) => string;60 durationFor: (s: string) => string;61 durationAcross: (s: string) => string;6263 formatDate: (d: Date) => string;64 formatDateShort: (d: Date) => string;65 formatDateTime: (d: Date) => string;66 formatDateRange: (from?: Date, to?: Date) => string;67 /**68 * Returns the start/end of a closed range as separate strings, so callers69 * can render each side independently (e.g. wrap each in a hovercard)70 * without re-parsing the joined output of `formatDateRange`.71 *72 * Implementations should collapse same-day ranges (date on `from`, time73 * only on `to`) the same way `formatDateRange` does.74 *75 * Closed ranges only — both `from` and `to` are required. For open-ended76// … truncated
What it pulls in
Other registry items
Files it writes
More from openstatus
All 26 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Status Bannerstatus-banner | openstatus | Blocks | Free | no deps | |
| Status Barstatus-bar | openstatus | Blocks | Free | 1 dep | |
| Status Blank Statesstatus-blank | openstatus | Blocks | Free | no deps | |
| Status Calendarstatus-calendar | openstatus | Blocks | Free | 3 deps | |
| Status Page Chromestatus-chrome | openstatus | Blocks | Free | no deps | |
| Status Page (Complete)status-complete | openstatus | Blocks | Free | no deps | |
| Status Componentstatus-component | openstatus | Blocks | Free | 2 deps | |
| Status Component Groupstatus-component-group | openstatus | Blocks | Free | no deps |
