ISO 639 explained

ISO 639 is a standard by the International Organization for Standardization (ISO) concerned with representation of languages and language groups.It currently consists of four sets (1-3, 5) of code, named after each part which formerly described respective set (part 4 was guidelines without its own coding system); a part 6 was published but withdrawn.It was first approved in 1967 as a single-part ISO Recommendation, ISO/R 639,[1] superseded in 2002 by part 1 of the new series, ISO 639-1,[2] followed by additional parts. All existing parts of the series were consolidated into a single standard in 2023,[3] largely based on the text of ISO 639-4.

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.

History

The early form of ISO's language coding system was manifested by ISO/R 639:1967 titled Symbols for Languages, Countries and Authorities, which aimed chiefly to regulate vocabularies signifying languages, countries, and standardization agencies of ISO member bodies. Its "language symbols" consisted of one- or two-letter variable-length identifiers in capitalized Latin alphabets, e.g. E or En for English; S, Sp, or Es for Spanish; and In for Indonesian. It was also allowed to use (the pre-1993 version of) UDC numeral auxiliaries to indicate languages.

List of language symbols in ISO/R 639:1967
Name (English) 1-letter 2-letter UDC (1988) (Current Set 1)
Afrikaans Af =393.6 af af
Arabic Ar =927 ar ar
Bulgarian Bg =867 bg bg
Chinese C Ch =951 zh zh
Czech Cs =850 cs cs
German D De =30 de de
Danish Da =398 da da
English E En =20 en en
Esperanto Eo =089.2 eo eo
Spanish S Es Sp =60 es es
French F Fr =40 fr fr
Finnish Fi =945.41 fi fi
Greek G Gr =75 el el
Hebrew He =924 iw he
Hindi Hi =914.3 hi hi
Hungarian Hu =945.11 hu hu
Italian I It =50 it it
Interlingua Ia =089.7 ia ia
Interlingue Ie =089.6 ie ie
Indonesian In =992.21 in id
Japanese J Ja =956 ja ja
Korean Ko =957 ko ko
Latin L La =71 la la
Dutch Nl =393.1 nl nl
Norwegian No =396 no no
Polish Pl =84 pl pl
Portuguese Pt =690 pt pt
Russian R Ru =82 ru ru
Romanian Ro =590 ro ro
Sanskrit Sa =912.3 sa sa
Serbo-Croat Sh =861/862 sh
Slovak Sk =854 sk sk
Slovenian Sn =863 sl sl
Swedish Sv =397 sv sv
Turkish Tr =943.5 tr tr
Ukrainian Uk =83 uk uk
Urdu Ur =914.31 ur ur

After decoupling the country code into ISO 3166 in 1974, the first edition of the standard ISO 639:1988 Code for the representation of names of languages was published with a framework of uniformly two-letter identifiers in lowercase Latin alphabets, mostly identical in format and vocabulary to that of the current ISO 639 Set 1.

Since then, the standard has been adopted as a fundamental technology of the rapidly expanding computer industry (RFC 1766), leading to development of more expressive three-letter framework, published as ISO 639-2:1998, largely based on MARC codes for languages. The original two-letter system was redefined as ISO 639-1 in 2001.

Seeking for more extensive support of languages for widening applications, separate supersets of the ISO 639-2 namespace that cover individual languages and groups were established as ISO 639-3 and ISO 639-5, respectively. There was also an attempt to code more precise language variants using four-letter identifiers as ISO 639-6, which was later withdrawn and to be reorganized under another framework, ISO 21636.

Relatively constant updates in parts of ISO 639 had been handled by each own authority in charge until the publication of ISO 639:2023, which harmonized and reunified the body text of former standards and brought about organizational change with a joint maintenance agency supervising all sets and issuing newslettershttps://www.iso.org/committee/48124.html?t=VLMvDIOnzlNh6XnuSiBeTQfcl5zTJeO5Iq3La17-pq4-IvCIsy_BZZiFEYEcpwpz&view=documents.

Current sets and historical parts of the standard

scope=col"Set (past Part)scope=col"Former name (Codes for the representation of names of languages – ...)scope=col"Registration Authorityscope=col"First editionscope=col"Currentscope=col" data-sort-type="number"No. in list
Set 1Part 1: Alpha-2 codeInfoterm1967 (original ISO/R 639) 2023183
Set 2Part 2: Alpha-3 codeLibrary of Congress1998 2023482 + 20 B-only + 4 special + 520 for local use[4] [5]
Set 3Part 3: Alpha-3 code for comprehensive coverage of languagesSIL International2007 20237,916 + 4 special + 520 for local use[6]
(ISO 639-4)Part 4: Implementation guidelines and general principles for language codingISO/TC 37/SC 22010-07-16 2023(not a list)
Set 5Part 5: Alpha-3 code for language families and groupsLibrary of Congress2008-05-15 2023115 (including 36 remainder + 29 regular groups from ISO 639-2)[7]
(ISO 639-6)Part 6: Alpha-4 representation for comprehensive coverage of language variants (withdrawn)Geolang2009-11-17 withdrawn21,000+

Each set 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] and not included in ISO 639:2023.

Characteristics of individual codes

Scopes:

Types (for individual languages):

Individual languages and macrolanguages with two distinct three-letter codes in Set 2:

Relations between the sets

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

These various treatments are detailed in the following chart. In each group of rows (one for each scope of Set 3), the last four columns contain codes for a representative language that exemplifies a specific type of relation between the sets 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 Set 1, have a B/T code, and are classified as macrolanguages in Set 3. One representative of these four elements is "Persian" fa/per/fas.

ScopeNumber of casesDescriptionExample of matching codes
ISO 639 Set 1ISO 639 Set 2ISO 639 Set 3ISO 639 Set 5
Individual languages
("I")
128Individual languages not part of a macrolanguage, with code in each Set 1, 2 and 3 (only one code in Set 2).
There are 184 assigned codes in Set 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
2Individual languages, with code in each Set 1, 2 and 3, that had separate B/T codes in Set 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/(scc)/srp.
Both are part of the same macrolanguage hbs added in Set 3 to include also other newly encoded individual languages, but its code sh in Set 1 was also withdrawn and it had no code defined in Set 2.
hr (scr)/hrv (B/T) hrv
3Individual languages belonging to a macrolanguage in Set 3, with a single code in Set 2 and also having a code in Set 1. These are: bs/bos (part of macrolanguage hbs), nb/nob and nn/nno (both part of macrolanguage no/nor).nb nob
11Individual languages with separate B/T codes in Set 2, but not in any of the special cases in succeeding lines.
There are 20 pairs of separate B/T codes assigned in Set 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
3Individual languages with separate B/T codes in Set 2 but the letters from the Set 1 code are not the first two letters of the Set 2T code. These are: cs/cze/ces, mi/mao/mri, and sk/slo/slk.cs cze/ces (B/T) ces
3Individual languages in Sets 2 and 3 (do not belong to a macrolanguage), but that were covered in Set 1 by a code whose equivalent in Set 2 is a collective. These are: bho, mai, and mag.(bh)bho
fewAny other individual language in Sets 2 and 3, without code in Set 1.ast
1Individual languages added in Set 3 without codes in Sets 1 and 2, but that were covered by a macrolanguage in Sets 2 and 3 also encoded in Set 1.(ar) (ara) arb
1An individual language in Set 3, without code in Set 2, but was covered in Set 1 by a code whose equivalent in Set 2 is a collective group (see the entry below for this group).(bh)(bih) sck
> 7,000Any other individual language in Set 3 without any code in Sets 1 and 2 (possibly covered in Set 2 by a collective code, like nic "Niger-Kodofanian (Other)" which is a remainder group).(nic) aaa
Macrolanguages
("M")
28Macrolanguages in Set 3 that also have codes in Set 1 and 2.
There are 62 codes assigned in Set 3 for macrolanguages; subtract those with special cases below, this leaves: 62 ‒ (4 "B/T") ‒ 1 ‒ (25+1+3 "not in Set 1") = 28 codes.
ar ara
4Macrolanguages in Set 3 with separate B/T codes in Set 2. These are: fa/per/fas, ms/may/msa, sq/alb/sqi, and zh/chi/zho.fa per/fas (B/T) fas
1Macrolanguage in Set 3 which contain languages that have codes in Set 1. Only: no/nor (containing: nb/nob, and nn/nno).no nor
25Macrolanguages in Sets 2 and 3, but without code in Set 1.bal
1Macrolanguage in Set 3, without code in Set 2, and whose code in Set 1 is deprecated.(sh)hbs
3Macrolanguages in Set 3, without codes in Set 1 or 2. These are: bnc, kln, and luy.bnc
Families and groups (collective)
("C")
1Bihari is marked as collective and has a Set 2 code. It was having a Set 1 code but deprecated in 2021. The reason was that three individual Bihari languages (which are different enough that they can not form the same macrolanguage for Set 3) received distinctive Set 2 codes (bho, mai, mag), which made Bihari a remainder group for the purposes of Set 2 (containing languages of the group except these three).(bh)bih bih
35Remainder groups in Set 2, i.e. same code but different languages included. In Set 2, afa refers to an Afro-Asiatic language that does not have an individual-language identifier in Set 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
29Regular group in Set 2, same as the language family in Set 5, no code in Set 1. Among them, the regular group ypk in Set 2 was the only one to have been encoded in Set 5 as part of another new regular group in Set 5 that was not coded in Set 2 (see below).aus aus
50Regular groups added only in Set 5, not previously coded in Sets 1, 2 and 3. Most of these new regular groups may have been previously represented by another collective code in Set 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 Set 2. See the hierarchy of language groups in List of ISO 639 Set 5 codes.sqj
Special codes
("S")
1Available 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 Set 2 or a language family code from Set 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
1Multilingual content (includes at least two languages in separatable sets). 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
1Undetermined (content includes zero, one or many languages, in arbitrary combination).und
1No 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")
20Two-letter codes in Set 1, in range qa .. qt. These codes are not recommended, but left unassigned in Set 1.qa
520Three-letter codes in Sets 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 Set 5.qaa

These differences are due to the following factors.

In ISO 639 Set 2, two distinct codes were assigned to 22 individual languages, namely a bibliographic and a terminology code (B/T codes).[15] 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 Set 1 codes were based on the native name for the language, and there was also a strong desire to have Set 2 codes (T codes) for these languages which were similar to the corresponding 2-character code in Set 1.

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

Some codes (62) in Set 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).

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

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

Code space

Two-letter code space

Two-letter (formerly "Alpha-2") identifiers (for codes composed of 2 letters of the ISO basic Latin alphabet) are used in Set 1. When codes for a wider range of languages were desired, more than 2 letter combinations could cover (a maximum of 262 = 676), Set 2 was developed using three-letter codes. (However, the latter was formally published first.[16] [17])

Three-letter code space

Three-letter (formerly "Alpha-3") identifiers (for codes composed of 3 letters of the ISO basic Latin alphabet) are used in Set 2, Set 3, and Set 5. The number of languages and language groups that can be so represented is 263 = 17,576.

The common use of three-letter codes by three sets of ISO 639 requires some coordination within a larger system.

Set 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 Set 3 to represent languages or in Set 5 to represent language families or groups. The remainder is 17,576 – 546 = 17,030.

There are somewhere around six to seven thousand languages on Earth today.[18] 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.

See also

External links

Notes and References

  1. Web site: ISO/R 639:1967 . International Organization for Standardization . 1988-03-01 . 2012-08-05.
  2. Web site: ISO 639:1988 . International Organization for Standardization . 2012-08-05.
  3. Web site: ISO 639:2023 . International Organization for Standardization . 2023-11-15.
  4. Web site: Codes arranged alphabetically by alpha-3/ISO 639-2 Code . Library of Congress . 2013-07-25 . 2019-01-10.
  5. Web site: ISO-639-2 Codes . Library of Congress . 2019-01-10.
  6. Web site: ISO 639-3 Code Set (UTF-8). SIL International. 2023-07-12.
  7. Web site: ISO 639-5 codes ordered by Identifier. Network Development & MARC Standards Office. Library of Congress. December 12, 2018.
  8. http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=43380 ISO 639-6:2009
  9. Web site: Change to Part 1 Language Code. 2021-06-14. SIL International. ISO 639-3.
  10. Web site: ISO 639 code tables: macrolanguages . Sil.org . 2012-08-05.
  11. Web site: ISO 639 code tables: extinct . Sil.org . 2012-08-05.
  12. Web site: ISO 639 code tables: ancient . Sil.org . 2019-01-10.
  13. Web site: ISO 639 code tables: historical . Sil.org . 2012-08-05.
  14. Web site: ISO 639 code tables: constructed . Sil.org . 2022-02-07.
  15. Web site: ISO 639-2  - Frequently Asked Questions . Library of Congress . 2014-05-05 . 2014-12-12.
  16. Web site: Codes for the representation of names of languages -- Part 2: Alpha-3 code. International Organization for Standards. ISO. 10 January 2019. Publication date : 1998-10.
  17. Web site: Codes for the representation of names of languages -- Part 1: Alpha-2 code. International Organization for Standards. ISO. 15 February 2018. Publication date : 2002-07.
  18. Web site: Statistical Summaries . Ethnologue . 2012-08-05.