Type to search. Arrow keys to move, Enter to open, Esc to close.

All technologies

Bilingual content model

Every text in every language lives side by side in one source with the same structure, and the language is part of the URL.

Project requirement

One portfolio in English and Hungarian without the two versions drifting apart.

Technical question

How can two language versions stay structurally identical and both be found by search engines?

Validation

Each entry has shared fields and equal en and hu blocks; interface strings have one dictionary per language with a key-parity check that also compares list lengths. URLs use the root for English and /hu/ for Hungarian, with hreflang pairs.

Decision

Language pairs in one source, a helper for every localized path, and a language suggestion banner instead of automatic redirects.

A value can be plain text, such as a name or a source title, or a language pair.

No automatic redirect: crawlers and visitors always get the URL they asked for.

Implementations by language

TypeScript

One view per page with a lang prop and two thin route wrappers; localePath and switchPath build the paths, loc resolves plain or paired values, and a Node script checks key parity.

  • Internal paths end with a slash to match canonical URLs; GitHub Pages redirects the other form.

Used by projects

Related research