// Base catalog — the source of truth for this app's UI strings. Every key here // MUST be mirrored in `de.ts` (and any other locale); `defineLocale()` // enforces that parity at build time, so a missing translation fails typecheck // rather than silently falling back. // // Messages use ICU syntax: `{name}` placeholders, `{n, plural, …}`, and rich // tags like `` (rendered by passing a matching function to // ` {c} }} />`). import { defineCatalog } from '@voltro/i18n' export default defineCatalog({ // Browser tab titles + description — locale-aware via each page's `meta({ locale })`. 'meta.landing.title': 'Welcome', 'meta.landing.description': 'A Voltro dashboard starter — public marketing pages + an auth-gated app shell.', 'meta.login.title': 'Sign in', 'meta.overview.title': 'Overview', 'meta.settings.title': 'Settings', // ---- Marketing header ((marketing)/layout.tsx) ---- 'nav.dashboard': 'Dashboard', 'nav.signIn': 'Sign in', 'lang.label': 'Language', // ---- Public landing ((marketing)/index.tsx) ---- 'landing.heading': 'Your app, with the boring parts done.', 'landing.body': 'This template ships a public marketing area (a silent (marketing) route group) and a /dashboard area gated by a layout loader — try opening /dashboard while signed out and you’ll be redirected to /login.', 'landing.cta': 'Sign in to continue →', // ---- Public sign-in ((marketing)/login.tsx) ---- 'login.heading': 'Sign in', 'login.body': 'No real auth here — this button just sets a demo session cookie so you can see the dashboard gate let you through.', 'login.cta': 'Continue as Demo User →', // ---- Dashboard shell (dashboard/layout.tsx) ---- 'dash.planSuffix': '· {plan} plan', 'dash.nav.overview': 'Overview', 'dash.nav.settings': 'Settings', 'dash.nav.backToSite': '← Back to site', // ---- Dashboard overview (dashboard/index.tsx) ---- 'overview.heading': 'Overview', 'overview.intro': 'You’re past the gate — this page only renders for a signed-in visitor.', 'overview.stat.projects': 'Projects', 'overview.stat.members': 'Members', 'overview.stat.issues': 'Open issues', 'overview.stat.uptime': 'Uptime', // ---- Settings (dashboard/settings.tsx) ---- 'settings.heading': 'Settings', 'settings.intro': 'Per-account settings would live here.', 'settings.signOut': 'Sign out', // ---- Scoped fallbacks (dashboard/error.tsx, not-found.tsx) ---- 'error.heading': 'Something went wrong', 'error.retry': 'Try again', 'notFound.heading': 'Not found', 'notFound.body': 'That dashboard page doesn’t exist.', 'notFound.back': '← Back to overview', } as const)