LocaleCatalog
type alias in meocord/common Since 4.1.0
type LocaleCatalog<C> = {
readonly [K in keyof C]?: C[K] extends string
? string
: IsPlural<C[K]> extends true
? PluralMessage
: LocaleCatalog<C[K]>
}What a locale other than the default provides: any part of the default catalog, in its own wording.
Its messages may use only the {params} the default's take: createTranslator checks that for a catalog that keeps
its text, and expectCompleteCatalog for any.
A message it leaves out falls back to a related locale, then to the default.