ISO 639

Short description: Standard for representation of names for language and language groups

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

It was also the name of the original standard, approved in 1967 (as ISO 639/R)[1] and withdrawn in 2002.[2] The ISO 639 set consists of five 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.

Current and historical parts of the standard

Standard Name (Codes for the representation of names of languages – ...) Registration Authority First edition Current No. in list ((As of February 2021))
ISO 639-1 Part 1: Alpha-2 code Infoterm 1967 (as ISO 639) 2002 184
ISO 639-2 Part 2: Alpha-3 code Library of Congress 1998 1998 482 + 20 B-only + 4 special + 520 for local use[3][4]
ISO 639-3 Part 3: Alpha-3 code for comprehensive coverage of languages SIL International 2007 2007 7,893 + 4 special + 520 for local use[5]
ISO 639-4 Part 4: Implementation guidelines and general principles for language coding ISO/TC 37/SC 2 2010-07-16 2010-07-16 (not a list)
ISO 639-5 Part 5: Alpha-3 code for language families and groups Library of Congress 2008-05-15 2013-02-11[6] 115 (including 36 remainder + 29 regular groups from ISO 632-2)[7]
ISO 639-6 Part 6: Alpha-4 representation for comprehensive coverage of language variants (withdrawn) Geolang 2009-11-17 withdrawn 21,000+

Each part of the standard is maintained by a maintenance agency, which adds codes and changes the status of codes when needed. ISO 639-6 was withdrawn in 2014.[8]

Characteristics of individual codes

Scopes:

• Individual languages
• Macrolanguages (Part 3)
• Collections of languages (Parts 1, 2, 5). Part 1 contains only one collection (bh), some collections were already in Part 2, and others were added only in Part 5:
• Remainder groups: 36 collections in both Part 2 and 5 are of this kind (including one that was also coded in Part 1) — for compatibility with Part 2 when Part 5 was still not published, the remainder groups do not contain any language and collection that was already coded in Part 2 (however new applications compatible with Part 5 may treat these groups inclusively, as long they respect the containment hierarchy published in Part 5 and they use the most specific collection when grouping languages);
• Regular groups: 29 collections in both Parts 2 and 5 are of this kind — for compatibility with Part 2, they can't contain other groups;
• Families: 50 new collections coded only in Part 5 (including one containing a regular group already coded in Part 2) — for compatibility with Part 2, they may contain other collections except remainder groups.
• Dialects: they were intended to be covered by Part 6 (proposed but now withdrawn).
• Special situations (Parts 2, 3).
• Reserved for local use (Parts 2, 3). Also used sometimes in applications needing an alpha-2 code like standard codes in Parts 1 and 2 (where the special code mis is not suitable), or an alpha-3 code for collections like standard codes in Part 5.

Types (for individual languages):

• Living languages (Parts 2, 3) (all macrolanguages are living languages)[9]
• Extinct languages (Parts 2, 3) (608,[10] 5 of them are in Part 2: chb, chg, cop, lui, sam; none are in Part 1)
• Ancient languages (Parts 1, 2, 3) (124,[11] 19 of them 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)
• Historical languages (Parts 2, 3) (83,[12] 16 of them are in Part 2; none are in Part 1)
• Constructed languages (Parts 1, 2, 3) (23,[13] 9 of them in Part 2: afh, epo, ido, ile, ina, jbo, tlh, vol, zbl; 5 of them in Part 1: eo, ia, ie, io, vo)

Individual languages and macrolanguages with two distinct alpha-3 codes in Part 2:

• Bibliographic (some of them were deprecated, none were defined in Part 3): these are legacy codes (based on language names in English).
• Terminologic (also defined in Part 3): these are the preferred codes (based on native language names, romanized if needed).
• All others (including collections of languages and special/reserved codes) only have a single alpha-3 code for both uses.

Relations between the parts

The different parts of ISO 639 are designed to work together, in such a way that no code means one thing in one part and something else in another. However, not all languages are in all parts, and there is a variety of different ways that specific languages and other elements are treated in the different parts. This depends, for example, whether a language is listed in Parts 1 or 2, whether it has separate B/T codes in Part 2, or is classified as a macrolanguage in Part 3, and so forth.

These various treatments are detailed in the following chart. In each group of rows (one for each scope of ISO 639-3), the last four columns contain codes for a representative language that exemplifies a specific type of relation between the parts of ISO 639, the second column provides an explanation of the relationship, and the first column indicates the number of elements that have that type of relationship. For example, there are four elements that have a code in Part 1, have a B/T code, and are classified as macrolanguages in Part 3. One representative of these four elements is "Persian" fa/per/fas.

Scope Number of cases Description Example of matching codes
ISO 639-1 ISO 639-2 ISO 639-3 ISO 639-5
Individual languages
("I")
128 Individual languages not part of a macrolanguage, with code in each Part 1, 2 and 3 (only one code in Part 2).
There are 184 assigned codes in Part 1 for individual languages, macrolanguages or groups; subtract those counted in rows below, this leaves: 184 - (2 "I (former B/T)") ‒ (3+11 "I") ‒ (3+2 "I (B/T)") ‒ (28+4+1+1 "M") ‒ (1 "C") = 128 codes.
en eng
2 Individual languages, with code in each Part 1, 2 and 3, that had separate B/T codes in Part 2, but whose B codes were withdrawn (since 2008-06-28) keeping their T codes for all uses. These are: hr/(scr)/hrv, and sr/(ser)/srp.
Both are part of the same macrolanguage hbs added in Part 3 to include also other newly encoded individual languages, but its code sh in Part 1 was also withdrawn and it had no code defined in Part 2.
hr (scr)/hrv (B/T) hrv
3 Individual languages belonging to a macrolanguage in Part 3, with a single code in Part 2 and also having a code in Part 1. These are: bs/bos (part of macrolanguage hbs), nb/nob and nn/non (both part of macrolanguage no/nor). nb nob
11 Individual languages with separate B/T codes in Part 2, but not in any of the special cases in succeeding lines.
There are 20 pairs of separate B/T codes assigned in Part 2 to individual languages or macrolanguages; subtract the special cases below, this leaves: 20 ‒ (3+2 "M") ‒ (4 "C") = 11 pairs of codes.
de ger/deu (B/T) deu
3 Individual languages with separate B/T codes in Part 2 but the letters from the Part 1 code are not the first two letters of the Part 2 T code. These are: cs/cze/ces, mi/mao/mri, and sk/slo/slk. cs cze/ces (B/T) ces
3 Individual languages in Parts 2 and 3 (do not belong to a macrolanguage), but that were covered in Part 1 by a code whose equivalent in part 2 is a collective. These are: bho, mai, and mag. (bh) bho
few Any other individual language in Parts 2 and 3, without code in Part 1. ast
1 Individual languages added in Part 3 without codes in Parts 1 and 2, but that were covered by a macrolanguage in Parts 2 and 3 also encoded in Part 1. (ar) (ara) arb
1 An individual language in Part 3, without code in Part 2, but was covered in Part 1 by a code whose equivalent in Part 2 is a collective group (see the entry below for this group). (bh) (bih) sck
> 7,000 Any other individual language in Part 3 without any code in Parts 1 and 2 (possibly covered in Part 2 by a collective code, like nic "Niger-Kodofanian (Other)" which is a remainder group). (nic) aaa
Macrolanguages
("M")
28 Macrolanguages in Part 3 that also have codes in Part 1 and 2.
There are 62 codes assigned in Part 3 for macrolanguages; subtract those with special cases below, this leaves: 62 ‒ (4 "B/T") ‒ 1 ‒ (25+1+3 "not in Part 1") = 28 codes.
ar ara
4 Macrolanguages in Part 3 with separate B/T codes in Part 2. These are: fa/per/fas, ms/may/msa, sq/alb/sqi, and zh/chi/zho. fa per/fas (B/T) fas
1 Macrolanguage in Part 3 which contain languages that have codes in Part 1. Only: no/nor (containing: nb/nob, and nn/non). no nor
25 Macrolanguages in Parts 2 and 3, but without code in Part 1. bal
1 Macrolanguage in Part 3, without code in Part 2, and whose code in Part 1 is deprecated. (sh) hbs
3 Macrolanguages in Part 3, without codes in Part 1 or 2. These are: bnc, kln, and luy. bnc
Families and groups (collective)
("C")
1 Bihari is marked as collective and has an ISO 639-2 code and is the only language group also having an ISO 639-1 code (where all other codes are individual languages or reserved). The reason is that three individual Bihari languages (which are different enough that they can't form the same macrolanguage for ISO 639-3) received distinctive ISO 639-2 codes (bho, mai, mag), which made Bihari a remainder group for the purposes of ISO 639-2 (containing languages of the group except these three). bh bih bih
35 Remainder groups in Part 2, i.e. same code but different languages included. In Part 2, afa refers to an Afro-Asiatic language that does not have an individual-language identifier in Part 2, and that does not fall into the three remainder groups: ber "Berber (Other)", cus "Cushitic (Other)", or sem "Semitic (Other)", all of which are Afro-Asiatic language groups. afa afa
29 Regular group in Part 2, same as the language family in Part 5, no code in Part 1. Among them, the regular group ypk in Part 2 was the only one to have been encoded in Part 5 as part of another new regular group in Part 5 that was not coded in Part 2 (see below). aus aus
50 Regular groups added only in Part 5, not previously coded in Parts 1, 2 and 3. Most of these new regular groups may have been previously represented by another collective code in Part 2 as part of a remainder group (for example the remainder group ine for the new regular group sqj), except 7 of them: aav, esx, euq, hmx, jpx, urj, as well as syd (part of the new regular group urj). The regular group ypk (part of the new regular group esx) however was already coded in Part 2. See the hierarchy of language groups in List of ISO 639-5 codes. sqj
Special codes
("S")
1 Available to be used in a monolingual context where an individual language code is required, but the language itself has no standard code. A more precise alternative could be using a remainder group from ISO 639-2 or a language family code from ISO 639-5, unless other languages in such group must be excluded (as they are separated with their own code) or no standard collective code is suitable. Some applications may prefer using a more specific code within those reserved for local use. mis
1 Multilingual content (includes at least two languages in separatable parts). To be used when a single language code is expected for the whole content. The individual languages or macrolanguages for each part of the content may be possibly still unencoded (and representable as mis or more precisely with a collective code). mul
1 Undetermined (content includes zero, one or many languages, in arbitrary combination). und
1 No linguistic information at all (added 2006-01-11). The content (e.g. graphics, photos or audio/video records not including text in a human language, or technical metadata and most programming source code) is usable as is with any language and should not be translated (except for its description possibly associated in separate contents, or for non-essential fragments of the content). zxx
Reserved for local use
("R")
20 Alpha2 codes in Part 1, in range qa .. qt. These codes are not recommended, but left unassigned in Part 1. qa
520 Alpha3 codes in Parts 2 and 3, in range qaa ... qtz. These codes may also be used for collective languages (or other special cases), but no standard language families and groups will be assigned with them in Part 5. qaa

These differences are due to the following factors.

In ISO 639-2, two distinct codes were assigned to 22 individual languages, namely a bibliographic and a terminology code (B/T codes).[14] B codes were included for historical reasons because previous widely used bibliographic systems used language codes based on the English name for the language. In contrast, the ISO 639-1 codes were based on the native name for the language, and there was also a strong desire to have 639-2 codes (T codes) for these languages which were similar to the corresponding 2-character code in ISO 639-1.

• For instance, the German language (Part 1: de) has two codes in Part 2: ger (B code) and deu (T code), whereas there is only one code in Part 2, eng, for the English language.
• 2 former B codes were withdrawn, leaving today only 20 pairs of B/T codes.

Individual languages in Part 2 always have a code in Part 3 (only the Part 2 terminology code is reused there) but may or may not have a code in Part 1, as illustrated by the following examples:

• Part 3 eng corresponds to Part 2 eng and Part 1 en
• Part 3 ast corresponds to Part 2 ast but lacks a code in Part 1.

Some codes (62) in Part 3 are macrolanguages. These are groups containing multiple individual languages that have a good mutual understanding and are commonly mixed or confused. Some macrolanguages developed a default standard form on one of their individual languages (e.g. Mandarin is implied by default for the Chinese macrolanguage, other individual languages may be still distinguished if needed but the specific code cmn for Mandarin is rarely used).

• 1 macrolanguage has a Part 2 code and a Part 1 code, while its member individual languages also have codes in Part 1 and Part 2: nor/no contains non/nn, nob/nb; or
• 4 macrolanguages have two Part 2 codes (B/T) and a Part 1 code: per/fas/fa, may/msa/ms, alb/sqi/sq, and chi/zho/zh;
• 28 macrolanguages have a Part 2 code but no Part 1 code;
• 29 other macrolanguages only have codes in Part 3.

Collective codes in Part 2 have a code in Part 5: e.g. aus in Parts 2 and 5, which stands for Australian languages.

• One collective code in Part 2 also has a code in Part 1: bih/bh.
• Some codes were added in Part 5 but had no code in Part 2: e.g. sqj

Parts 2 and 3 also have a reserved range and four special codes:

• Codes qaa through qtz are reserved for local use.
• There are four special codes: mis for languages that have no code yet assigned, mul for "multiple languages", und for "undefined", and zxx for "no linguistic content, not applicable".

Code space

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 262 = 676), ISO 639-2 was developed using Alpha-3 codes. (However, the latter was formally published first.[15][16])

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. The number of languages and language groups that can be so represented is 263 = 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 mis, mul, und, zxx, a reserved range qaa-qtz (20 × 26 = 520 codes) and has 20 double entries (the B/T codes), plus 2 entries with deprecated B-codes. This sums up to 520 + 22 + 4 = 546 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 – 546 = 17,030.

There are somewhere around six or seven thousand languages on Earth today.[17] So those 17,030 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 (withdrawn)

"Alpha-4" codes (for codes composed of 4 letters of the ISO basic Latin alphabet) were proposed to be used in ISO 639-6, which has been withdrawn. The upper limit for the number of languages and dialects that can be represented is 264 = 456,976.