Flatten a locale's declared inherit into a concrete lookup order, most-specific first.
Two rules, in this order:
the locale itself, then anything it explicitly declares (nn → nb), transitively;
BCP-47 truncation (de-AT → de), applied to each — mechanical, so never declared.
There is deliberately no implicit English tail. English is a language, not a fallback: a
Japanese user seeing scattered English is worse served than one seeing an untranslated key, and a
package that genuinely wants English last can just declare it.
Flatten a locale's declared
inheritinto a concrete lookup order, most-specific first.Two rules, in this order:
nn→nb), transitively;de-AT→de), applied to each — mechanical, so never declared.There is deliberately no implicit English tail. English is a language, not a fallback: a Japanese user seeing scattered English is worse served than one seeing an untranslated key, and a package that genuinely wants English last can just declare it.