i18n & locale routing
The toolbar locale switch now aligns with locale-prefixed routes instead of living beside them.
Direction
URL locale first, message locale second
The route decides the current locale. Text helpers then resolve visible copy from that one property.
current
en
prefixes
/de, /en
fallback
en
Route
Locale is part of the path
Direct URLs, SSR and client navigation now agree on the same prefix semantics.
Toolbar
Switch keeps the current page
Changing locale rewrites the URL but preserves the matched application path.
Catalog
Ready for message-based i18n
The repository already contains a richer i18n model that can replace the lightweight demo copy step by step.
Message-centered I18n
The English source lives in Scala code. The catalog attaches multiple languages to exactly that one message.
Locale: en
Source
i18n"Delete document"
Resolved
Delete document
Source
i18n"User $user invited you to $group"
Resolved
User Mira invited you to Core Team
Source
i18n"Missing translations fall back to English"
Resolved
Missing translations fall back to English
Message-based copy
Messages are resolved from the I18nRuntime supplied to the component tree.
scala
I18nRuntime.provide(runtime) {
text(i18n"Router") {}
}