Files
davide 33b49c5dbb Add hand-rolled English support (/en/*) alongside the Italian site
PocketBase gains optional, manually-authored English fields on articles
and categories (same record, same slug), and the frontend serves an /en
counterpart of every dynamic route via thin page wrappers around shared
view components — no i18n library, consistent with the project's existing
minimalism stance for a two-locale site with ~20 UI strings.

An article/category with no translation 404s cleanly on its own /en
detail page and is filtered out of /en listings, and the header's
language-switch link falls back to the English blog index rather than a
dead link; resolving that requires a global route middleware, since the
layout's header renders before the page content in document order and so
can't react to state a page component sets during its own async setup.
2026-09-11 13:53:17 +02:00

54 lines
1.5 KiB
TypeScript

/** Shared seed data for integration and e2e tests against a real ephemeral PocketBase. */
export interface FixtureCategory {
name: string
slug: string
nameEn?: string
}
export interface FixtureArticle {
title: string
slug: string
content: string
category: string
/** `null` = draft (never returned by the public API). */
publishedAt: string | null
authorName?: string
titleEn?: string
contentEn?: string
}
export const FIXTURE_CATEGORIES: FixtureCategory[] = [
{ name: 'Economia', slug: 'economia', nameEn: 'Economy' },
{ name: 'Attualità', slug: 'attualita' },
]
export const FIXTURE_ARTICLES: FixtureArticle[] = [
{
title: 'Articolo pubblicato',
slug: 'articolo-pubblicato',
content: '# Titolo\n\nCorpo **markdown** di prova con [un link](https://example.com).',
category: 'economia',
publishedAt: '2025-01-15 10:00:00',
authorName: 'Redazione',
titleEn: 'Published article',
contentEn: '# Title\n\nTest **markdown** body with [a link](https://example.com).',
},
{
title: 'Articolo in bozza',
slug: 'articolo-bozza',
content: 'Contenuto non ancora pubblicato.',
category: 'economia',
publishedAt: null,
},
{
title: 'Secondo articolo pubblicato',
slug: 'secondo-articolo',
content: 'Un altro articolo pubblicato, in un\'altra categoria.',
category: 'attualita',
publishedAt: '2025-02-01 08:00:00',
authorName: 'Redazione',
// Deliberately no English translation: exercises the untranslated path.
},
]