Script codes in RFC 3066

John Cowan jcowan at
Wed Apr 9 14:55:40 CEST 2003

Mark Davis scripsit:

> language_code := language_subtags ("-" iso15924_code)?  ("-" iso3166_code)?
> language_code := private_use_and_grandfathered_stuff

In fact "private_use_and_grandfathered_and_IANA_ad_hoc_special_cases".

> iso3166_code := a 2-letter iso 3166 code if available, otherwise a 3-letter
> code.

Thank Mung, there are no countries that lack 2-letter codes, so the
3-letter codes in 3166 can be ignored.  I suspect you meant to make
this comment about 639 codes.  There is a stability problem with 3166
codes, but we are stuck with them anyhow; it would have been better to
use the rock-stable numeric codes, which come from the U.N. rather than
the ISO RA.

> a. x-Y exists in 3066bis, and later ISO introduces a 3 letter language code
> X' that means the same thing.

Indeed.  In this case, x-Y is added to the "explicitly deprecated" list.

> b. x exists in 3066bis, and SIL introduces (or has now!) a code Y where x-Y
> means the same as x.

When SIL already has the code Y, then the 3066bis code is x, and x-Y
is not allowed (e.g. en, not en-ENG).  The other subcase can't occur,
since every extant ISO code is mapped to one or more SIL codes already,
except the ISO codes that are out of scope for SIL: viz. constructed and
ancient languages.  For the former, ad hoc IANA registration is suitable,
as with the existing art-lojban.  For the latter, ad hoc will do unless
and until 639 is appropriately extended.

Getting all the persnickety details right is no easy matter.

What is the sound of Perl?  Is it not the       John Cowan
sound of a [Ww]all that people have stopped     jcowan at
banging their head against?  --Larry  

More information about the Ietf-languages mailing list