UserLanguage
Because UserLanguage is designed to be a core Intl module, it is allowed only *one*
dependency: Intl::LanguageTag
. This means that many operations that would be very
simple elsewhere by, e.g. consulting Intl::CLDR must be 100% self-contained here.
Due to the added complexity of handling potentially complicated lookups, it is
recommended that highly specialized look ups (e.g. major distributions of operating
systems) be farmed out into specialized modules Intl::UserLanguage::OS-Name
.
At the present moment, these are called individually by subs, but as that necessitates
some overhead for each one, a different solution will be devised later that will
load on demand. (This cannot be done at compile-time, as theoretically precompiled
things should be transferable from one system to another).