// Web app for the {{projectName}} project — a BILINGUAL static site. // // Strategy B (URL-prefix i18n): the default locale lives at the bare path // (`/`, `/about`) and every other locale is prefixed (`/de`, `/de/about`). // Each translated page is its own crawlable URL — better SEO + shareable // language-specific links. The other strategy (cookie-only, same URL for // every locale) is what product dashboards use; see AGENTS.md › i18n. // // `locales` here is load-bearing: it tells `voltro build` to pre-render a // per-locale HTML variant for every `[locale]/…` mirror page, each wrapped // in the right catalog's . Every code listed MUST have a // matching `src/locales/.ts` or boot fails. import { defineEnv, envVar } from '@voltro/env' // Public, build-time env (baked into the bundle; read via `publicEnv`). // Never a secret here — a static site has no server to hide one. export const env = defineEnv({ VOLTRO_PUBLIC_SITE_NAME: envVar.string({ access: 'public', default: '{{capProjectName}}' }), }) export default { type: 'web' as const, name: '{{capProjectName}}{{capAppName}}', port: {{port}}, // Follow the visitor's OS theme, set before first paint (no flash). theme: 'system' as const, // The shipped catalogs. `defaultLocale` MUST be one of `locales`. // Keep this in sync with SUPPORTED_LOCALES / DEFAULT_LOCALE in // src/lib/locale.ts — that file drives the [locale] mirror routing. locales: ['en', 'de'] as const, defaultLocale: 'en' as const, env, }