Fixed unreviewed commit, which might lead to hard-to-spot errors
The last change assumed that "nls_language" can be hard-wired to contain most 5 characters. While this not backed by the OpenACS data model, the standard (RFC 5646) explicitly states that there is no upper limit on the size of language tags. The tree letter language codes have been standard since 2001 (RFC 4646).
The change accepts now all defined locales. When the specified locale is not enabled, it provides a log notice, when the locale is not defined at all, it provides a warning and falls back to "en_US".
Validate as a token also the default coming from _nls_language, ensure the resulting language key is at most 5 chars long (many thanks to Markus Moser for this)