ISO 639-3 Downloads
This page offers links to downloadable versions of the complete ISO 639-3 code set, a language names index, the mapping of macrolanguages to individual languages, and the mapping of retired code elements to current code elements. The Code Set table and the Language Names Index table are formatted as tab-delimited, UTF-8 text files. These tables are also offered as ISO/IEC 8859-1 encoded text files, though these simplified encodings should not be considered normative. The remaining two files map between identifiers; they are presently encoded in ISO/IEC 8859-1, as currently all data in these tables can be correctly encoded in the more limited character set. The first line of each file contains the column names rather than the first row of data.
The ISO 639-3 code set may be downloaded and incorporated into software products, web-based systems, digital devices, etc., either commercial or non-commercial, provided that:
- attribution is given www.sil.org/iso639-3/ as the source of the codes;
- the identifiers of the code set are not modified or extended except as may be privately agreed using the Private Use Area (range qaa to qtz), and then such extensions shall not be distributed publicly;
- the product, system, or device does not provide a means to redistribute the code set.
Expansions to the information provided by the standard (e.g., population data, names in other languages, geographic coordinates, etc.) may be made and distributed as long as such added information is clearly identified as not being part of the standard itself. The ISO 639-3 website is the only authorized distribution site for the ISO 639-3 code tables.
Complete Code Tables Set
A complete set of all current code tables, containing the main ISO 639-3 table, the Language Names Index Table, the Macrolanguage Mappings, and the Retired Code Element Mappings, is available here:
ISO 639-3 Code Set
NOTE: The "Ref_Name" column in this table contains a reference name by which this language is identified in the standard. The Reference Name is employed for ease of use of the code set, and does not imply it is to be preferred in any application to any other name that may be associated with the particular code element as given in the Language Names Index. However, we do wish to avoid use of any pejorative name as the Reference Name. If you are aware of any instance in which a code element uses a pejorative or derogatory name as the Reference Name, please bring this to our attention at the contact email address below.
The complete code table of active code elements may be downloaded by clicking the following link.
- Download ISO 639-3 code set UTF-8
For users with systems unable to utilize Unicode character encoding, the code set table is also offered in a simplified version in Latin-1 (ISO/IEC 8859-1).
The following declaration is a sample formal definition for a SQL database table into which the tab-delimited file can be loaded (Comment column added 18 Oct 2007):
CREATE TABLE [ISO_639-3] ( Id char(3) NOT NULL, -- The three-letter 639-3 identifier Part2B char(3) NULL, -- Equivalent 639-2 identifier of the bibliographic applications -- code set, if there is one Part2T char(3) NULL, -- Equivalent 639-2 identifier of the terminology applications code -- set, if there is one Part1 char(2) NULL, -- Equivalent 639-1 identifier, if there is one Scope char(1) NOT NULL, -- I(ndividual), M(acrolanguage), S(pecial) Type char(1) NOT NULL, -- A(ncient), C(onstructed), -- E(xtinct), H(istorical), L(iving), S(pecial) Ref_Name varchar(150) NOT NULL, -- Reference language name Comment varchar(150) NULL) -- Comment relating to one or more of the columns
In ISO 639-2, there are multiple name forms for some identified languages. The ISO 639-3 code tables now include a language name index with multiple names associated many code elements (primarily in English forms or variant anglicized spellings of indigenous names). The reference name from the Ref_Name field of the main table is included as an entry in this table, thus every code element has at least one row occurrence in the Language Names Index table. The name appears in two forms, a "print" form used in most contexts, and an inverted form which fronts a language name root, e.g., "Isthmus Zapotec" and "Zapotec, Isthmus". Where there is no root part to the name, the Print_Name and the Inverted_Name contain identical strings. The Language Names Index may be downloaded by clicking the following link
- Download ISO 639-3 Language Names Index UTF-8
For users with systems unable to utilize Unicode character encoding, the Language Names Index table is also offered in a simplified version in Latin-1 (ISO/IEC 8859-1).
The following declaration is a sample formal definition for a SQL database table into which the tab-delimited file can be loaded:
CREATE TABLE [ISO_639-3_Names] ( Id char(3) NOT NULL, -- The three-letter 639-3 identifier Print_Name varchar(75) NOT NULL, -- One of the names associated with this identifier Inverted_Name varchar(75) NOT NULL) -- The inverted form of this Print_Name form
The complete set of mappings from macrolanguages to the individual languages that comprise them may be downloaded by clicking the following link.
- Download ISO 639-3 macrolanguage mappings
The table has three columns (this is a change from previous versions of this table). The first identifies a macrolanguage and the second identifies one of its members. The third specifies the status of the individual member language, as being Active or Retired. (This last column is actually redundant, but indicates to the user which table will contain the identifier as primary key: the main code set table for active code elements, or the retirement mappings table for retired code elements.) Thus a given macrolanguage has as many rows as it has individual languages that are its members. The following declaration is a sample formal definition for a SQL database table into which the tab-delimited file can be loaded:
CREATE TABLE [ISO_639-3_Macrolanguages] ( M_Id char(3) NOT NULL, -- The identifier for a macrolanguage I_Id char(3) NOT NULL, -- The identifier for an individual language -- that is a member of the macrolanguage I_Status char(1) NOT NULL) -- A (active) or R (retired) indicating the -- status of the individual code element
The annual update to the 639-3 code set will include a complete listing of the code elements that have been retired with instructions on how to update existing data. Since the initial release of ISO/FDIS 639-3 and prior to the release of ISO 639-3, there was one retirement, a correction to the alignment between ISO 639-3 and ISO 639-2. It is included in the Retired Code Element Mappings because it has been a source of confusion for users. The Retired Code Element Mappings table may be downloaded by clicking the following link.
- Download ISO 639-3 code retirement mappings UTF-8
For users with systems unable to utilize Unicode character encoding, the retired code mappings table is also offered in a simplified version in Latin-1 (ISO/IEC 8859-1).
The table has five columns; the first has the affected identifier, the second has a coded value for the reason the retirement was necessary, the third contains a single identifier if the retired identifier maps unambiguously to another identifier, the fourth contains a prose statement about what should be done to update a code element split, and the fifth gives the date the change was made effective. The following declaration is a sample formal definition for a SQL database table into which the tab-delimited file can be loaded:
CREATE TABLE [ISO_639-3_Retirements] ( Id char(3) NOT NULL, -- The three-letter 639-3 identifier Ref_Name varchar(150) NOT NULL, -- reference name of language Ret_Reason char(1) NOT NULL, -- code for retirement: C (change), D (duplicate), -- N (non-existent), S (split), M (merge) Change_To char(3) NULL, -- in the cases of C, D, and M, the identifier -- to which all instances of this Id should be changed Ret_Remedy varchar(300) NULL, -- The instructions for updating an instance -- of the retired (split) identifier Effective date NOT NULL) -- The date the retirement became effective