Olle,
thanks for the *BEAUTIFUL* comments!
I'll probably import most of them by copy-paste!
The reason for using _ instead of - as separator was because
of the POSIX "locale" convention - keeping our distance from this
is probably as good an idea as copying it.
I think the main structure of the tagging should now be:
<Language>-<Variant>
where <Language> may be:
- an ISO 639 language code (of whatever version; make a note that
3-letter languages are expected in a later ISO 639 version)
- The single letter "X" for private extensions
- The four-letter string "IANA" for IANA registered extensions
The <Variant> may be:
- An ISO 3166 2-letter country code
- An IANA-registered variant of 3 or more characters
- A private-use variant starting with "X-".
When the <Language> is "X", the "Variant" is always a private use
one. (Writing X-X-something is too ridiculous)
Thus, the following are all legal, if IANA registrations are done:
en-cockney ("cockney" being IANA registered)
smi-FI (after new 639 registers "smi" only)
no-x-bergensk
iana-klingon (not likely that ISO will register this :-)
x-highelven
Personally, I think that the extension mechanism will be mostly left
unused, as John Klensin experienced in a similar project earlier,
but when you need it, you REALLY need it.
(John, do you want to comment? I don't remember an exact reference)
To Ohta-san: This is the way we always work, I think: Building little
pieces on top of other pieces, so that we can get our work done.
Nothing new in that.
Harald A