ISO 639

ISO 639 is a set of standards by the International Organization for Standardization that is concerned with representation of names for language and language groups.

It was also the name of the original standard, approved in 1967 (as ISO 639/R) and withdrawn in 2002. The ISO 639 set consists of six different parts.

Use of ISO 639 codes
The language codes defined in the several sections of ISO 639 are used for bibliographic purposes and, in computing and internet environments, as a key element of locale data. The codes also find use in various applications, such as Wikipedia URLs for its different language editions.

Delimiting languages
A multilingual page is contained by the CSS class “multilingual”, with text in every language contained within the class “lang-xx”, where xx is a lowercase ISO 639 two-letter or three-letter language code and the lang attribute. The lang attribute is contextually more correct, but the CSS required to hook into it is not supported by all browsers. If there is no two-letter code, the lowercase three-letter code is used. For text in an unknown language “und”, (undetermined) is used.

The six parts of the standard
Each part of the standard is maintained by a maintenance agency, which adds codes and changes the status of codes when needed.

Characteristics of individual codes
Scopes:
 * Individual languages
 * Macrolanguages (part 3)
 * Collections of languages (part 1, 2, 5) (part 1 contains only 1 collection: bh; most collections are in part 2, and a few were added in part 5)
 * Group
 * Rest group
 * Dialects
 * Reserved for local use (part 2, 3)
 * Special situations (part 2, 3)

Types (for individual languages):
 * Living languages (part 2, 3) (all macrolanguages are living languages)
 * Extinct languages (part 2, 3) (437, four in part 2 chb, chg, cop, sam; none in part 1)
 * Ancient languages (part 1, 2, 3) (112, 19 are in part 2; and 5 of them, namely ave, chu, lat, pli and san, also have a code in part 1: ae, cu, la, pi, sa)
 * Historic languages (part 2, 3) (63, 16 of them are in part 2, none has part 1 code)
 * Constructed languages (part 2, 3) (19, 9 in part 2: epo, ina, ile, ido, vol, afh, jbo, tlh, zbl; five in part 1: eo, ia, ie, io, vo)

Bibliographic and terminology codes
 * Bibliographic (part 2)
 * Terminology (part 2)

Relations between the parts
The first four columns contain codes for a representative of a specific type of relation between the parts of ISO 639. E.g. there are four elements that have a code in part 1, have a B/T code, and are macrolanguages per part 3. One representative of these four elements is "Persian" [fas].


 * codes in Part 1 have one or two codes (B/T codes) in Part 2, every language that has two codes in Part 2 has one code in Part 1
 * one code: en -> eng
 * two codes (#~23): de <-> ger/deu
 * Part 2 has reserved codes and three special codes
 * qaa ... qtz, mul, und, zxx
 * individual languages in Part 2 have a code in Part 3 and have one or no code in Part 1
 * one code: eng -> eng -> en
 * no code: ast -> ast -> (empty)
 * collective codes in Part 2 have a code in Part 5
 * cover different languages: afa != afa
 * cover same languages: aus = aus
 * one collective code in Part 2 has a code in Part 1
 * bih -> bh
 * some codes in Part 5 have no code in Part 2
 * sqj
 * some codes (#~56) in Part 3 are macrolanguages, they may have
 * no Part 2 code but a Part 1 codes and their containing languages have codes in Part 2 and Part 1 (#1): hbs <-> sh (deprecated) ; bos, hrv/scr, srp/scc -> bs, hr, sr
 * a Part 2 code and a Part 1 code(#1), while their containing languages also have codes in Part 1 and Part 2: nor -> nor -> no ; non, nob -> non, nob -> nn, nb
 * no Part 1 code (#several):
 * two Part 2 codes (B/T) (#4): fas, msa, sqi, zho -> per/fas, may/msa, alb/sqi, chi/zho

Alpha-2 code space
“Alpha-2” codes (for codes composed of 2 letters of the ISO basic Latin alphabet) are used in ISO 639-1. When codes for a wider range of languages were desired, more than 2 letter combinations could cover (a maximum of $$26^2=676$$), ISO 639-2 was developed using Alpha-3 codes (though the latter was formally published first).

Alpha-3 code space
“Alpha-3” codes (for codes composed of 3 letters of the ISO basic Latin alphabet) are used in ISO 639-2, ISO 639-3, and ISO 639-5. Mathematically, the upper limit for the number of languages and language collections that can be so represented is $$26^3=17,576$$.

The common use of Alpha-3 codes by three parts of ISO 639 requires some coordination within a larger system.

Part 2 defines four special codes,  ,  ,  , a reserved range   (20 × 26 = 520 codes) and has 23 double entries (the B/T codes). This sums up to 520 + 23 + 4 = 547 codes that cannot be used in part 3 to represent languages or in part 5 to represent language families or groups. The remainder is 17,576 – 547 = 17,029.

There are somewhere around six or seven thousand languages on Earth today. So those 17,029 codes are adequate to assign a unique code to each language, although some languages may end up with arbitrary codes that sound nothing like the traditional name(s) of that language.

Alpha-4 code space
“Alpha-4” codes (for codes composed of 4 letters of the ISO basic Latin alphabet) is proposed to be used in ISO 639-6. The upper limit for the number of languages and dialects that can be represented is $$26^4=456,976$$.

=Resources=