7bf10b6a12
- project.inlang/settings.json with locales [de, en], baseLocale de.
- messages/{de,en}.json hold the strings (tagline, blog labels, etc.).
- vite.config.ts: paraglideVitePlugin compiles to src/paraglide/
(gitignored) on dev/build. Strategy: url → cookie →
preferredLanguage → baseLocale. URL pattern keeps German at /:path
(unprefixed) and English at /en/:path so existing URLs stay valid.
- server.tsx wraps the handler in paraglideMiddleware so AsyncLocalStorage
carries the per-request locale into SSR.
- router.tsx adds rewrite { input: deLocalizeUrl, output: localizeUrl }
so route matching stays locale-agnostic — the router sees /blog while
URLs show /en/blog.
- cms.ts narrows getLocale()'s union back to the de|en pair the CMS
supports, used as the default for find/findGlobal calls.
- Components/routes switch to m.foo() for user-visible strings; date
formatting picks de-DE / en-GB from getLocale().
- Root html lang reads getLocale() so the document language flips per
request.
Known minor: TanStack Start's { title } meta entry still serves the base
locale value (og:title and the description meta are localized correctly).
Will track separately.
35 lines
390 B
Plaintext
35 lines
390 B
Plaintext
# build output
|
|
dist/
|
|
.output/
|
|
.nitro/
|
|
.tanstack/
|
|
|
|
# generated router types
|
|
src/routeTree.gen.ts
|
|
|
|
# paraglide compiled output
|
|
src/paraglide/
|
|
|
|
# dependencies
|
|
node_modules/
|
|
|
|
# logs
|
|
npm-debug.log*
|
|
yarn-debug.log*
|
|
yarn-error.log*
|
|
pnpm-debug.log*
|
|
bun-debug.log*
|
|
|
|
# environment variables
|
|
.env
|
|
.env.production
|
|
|
|
# macOS-specific files
|
|
.DS_Store
|
|
|
|
# jetbrains setting folder
|
|
.idea/
|
|
|
|
# editor
|
|
.vscode/
|