The phone had no translation layer at all: every label, empty state and toast was an
English literal in a .svelte file, and a server owner whose community does not speak
English could do nothing about it short of forking every app. This is the smallest
mechanism that fixes that and stays honest about what a phone bundle can afford — a
catalog is a flat object of strings, a namespace is an app id, and there is no runtime
dependency, because every kilobyte here is paid on every phone open in CEF.
Every app registers its own catalog, core or not. That is the design decision that
matters: an add-on installed from the Store is not in this repository, so a central
catalog it cannot add to would leave it permanently English. registerMessages('notes', { en, de }) at module scope is all an app does; $t('notes.saved') is all it reads.
Fallback is English, then the key itself, and a missing key is reported once per key in
development so a half-translated locale shows its gaps without crashing the phone.
Strings, by locale, for one namespace (MICA-61).
The phone had no translation layer at all: every label, empty state and toast was an English literal in a
.sveltefile, and a server owner whose community does not speak English could do nothing about it short of forking every app. This is the smallest mechanism that fixes that and stays honest about what a phone bundle can afford — a catalog is a flat object of strings, a namespace is an app id, and there is no runtime dependency, because every kilobyte here is paid on every phone open in CEF.Every app registers its own catalog, core or not. That is the design decision that matters: an add-on installed from the Store is not in this repository, so a central catalog it cannot add to would leave it permanently English.
registerMessages('notes', { en, de })at module scope is all an app does;$t('notes.saved')is all it reads.Fallback is English, then the key itself, and a missing key is reported once per key in development so a half-translated locale shows its gaps without crashing the phone.