Language
Because User::Language is designed to be, in effect, 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 or integrate the calls at build/compile time.