# ISO 639

L’ISO 639 (ICS n$^o$ 01.140.20) est une norme internationale de l’Organisation internationale de normalisation (ISO) qui définit des codes pour la représentation des noms de langues.
Les langues sont représentées par un code unique de 2, 3, ou 4 lettres ; par exemple ro, rom et rou sont associés au roumain.

## Structure générale de la norme

Le standard est composé actuellement de six parties, dont la publication s’est déroulée de 1988 à 2010 :
* ISO 639-1 (2002) : Codes pour la représentation des noms de langue - Partie 1 : Code alpha-2 (liste des codes ISO 639-1) ;
* ISO 639-2 (1998) : Codes pour la représentation des noms de langue - Partie 2 : Code alpha-3 (liste des codes ISO 639-2) ;
* ISO 639-3 (2007) : Codes pour la représentation des noms de langues - Partie 3 : Code alpha-3 pour un traitement exhaustif des langues (liste des codes ISO 639-3) ;
* ISO 639-4 (2010) : Codes pour la représentation des noms de langue - Partie 4 : Principes généraux pour le codage de la représentation des noms de langue et d’entités connexes, et lignes directrices pour la mise en œuvre ;
* ISO 639-5 (2008) : Codes pour la représentation des noms de langue - Partie 5 : Code alpha-3 pour les familles de langues et groupes de langues ;
* ISO 639-6 (en) (projet, abandonné en 2014)$^,$ : Codes pour la représentation des noms de langues - Partie 6 : Code alpha-4 pour un traitement exhaustif des variantes linguistiques.

## Parties de la norme
### ISO 639-1

Cette partie, éditée en 2002, s'intitule : Codes pour la représentation des noms de langue - Partie 1 : Code Alpha-2.

### ISO 639-2

Cette partie, éditée en 1998 s'intitule : Codes pour la représentation des noms de langue - Partie 2 : Code Alpha-3.
L’ISO 639-2 définit en plus de l’ISO 639-1 des codes désignant des groupes de langues (arabe, quechua, chinois, etc.), ainsi que des codes spéciaux.
Certaines langues (23 en tout) sont codées dans l’ISO 639-2 par deux codes différents : terminologique (T) et bibliographique (B). Par exemple, le code alpha-3 bibliographique pour le français est fre mais le code alpha-3 terminologique est fra.

### ISO 639-3

Cette partie, éditée en 2007 s'intitule : Codes pour la représentation des noms de langues - Partie 3 : Code Alpha-3 pour un traitement exhaustif des langues.
L’ISO 639-3 vise donc à répertorier le plus grand nombre possible de langues.
Celles-ci peuvent être d’une part des langues individuelles (exemple : arménien, hye), des macrolangues (exemple : albanais, sqi) ou des collections de langues (exemple : langues algonquiennes, alg) ; et d’autre part des langues vivantes (exemple : irlandais, gle), éteintes (récemment, par exemple kato, ktw), anciennes (disparues il y a longtemps, par exemple : vieux norrois, non), historiques (distinctes de langues modernes, mais dont ces dernières descendent de la langue considérée, par exemple moyen anglais, enm) ou construites (exemple : klingon, tlh).
SIL International est le Registration Authority (Organisme d'Enregistrement) de l'ISO 639-3 et son auteur principal, et s’est largement appuyé sur les données en provenance de la base de données Ethnologue, Languages of the World pour codifier des centaines de langues auparavant non codées.

### ISO 639-4

Cette partie, éditée en 2010 s'intitule : Codes pour la représentation des noms de langue - Partie 4 : Principes généraux pour le codage de la représentation des noms de langue et d’entités connexes, et lignes directrices pour la mise en œuvre.

### ISO 639-5

Cette partie, éditée en 2008 s'intitule : Codes pour la représentation des noms de langue - Partie 5 : Code Alpha-3 pour les familles de langues et groupes de langues.
L’ISO 639-5, vise donc à classer l’ensemble des langues individuelles (ou éventuelles macro-langues qui les contiennent) en familles de langues et groupes de langues selon un système plus complet que ce que permet l’ISO 639-3 (qui ne traite que des macro-langues sans possibilité de définir une hiérarchie complète sur plus d’un seul niveau), en attribuant des codes alpha-3 supplémentaires pour ces familles et groupes de langues, ce que ne permet pas l’ISO 639-1 ou 639-2, où des codes collectifs ont été définis (mais non spécifiés précisément) regroupant parfois des langues isolées de différents groupes et non mutuellement intelligibles ou des groupes trop restreints de langues.
Cette nouvelle norme ISO 639-5 vise à préciser les codes collectifs de ISO 639-2 (ou leur équivalent dans la norme ISO 639-1 quand ils existent ; il n’y a aucun nouveau code collectif dans la norme ISO 639-3) et à en définir d’autres selon une classification scientifique la plus sérieuse possible, et les avis des linguistes et bibliothèques du monde entier (elle s’appuie largement sur les données de classification des langues déjà collectées et publiées par Ethnologue.com).
Cette norme vise aussi à faciliter la traduction des logiciels et améliorer globalement le traitement des langues plus rares en les rapprochant de langues plus proches au lieu d’utiliser une langue de repli unique (souvent l’anglais dans une version simplifiée et parfois imprécise).

### ISO 639-6

Cette partie, éditée sous forme projet en 2009, s'intitule : Codes pour la représentation des noms de langues - Partie 6 : Code Alpha-4 pour un traitement exhaustif des variantes linguistiques.

## Codes alphanumériques
### Codes alpha-2

Les codes à 2 caractères latins, utilisés par l’ISO 639-1, donnent la possibilité de coder 26$^2$=676 langues différentes. La norme ISO 639-1 associe chaque code au nom de la langue en français et en anglais.
Ceci est insuffisant pour coder l’ensemble des langues (estimé de 2000 à 9000), ce qui est réalisé par les normes ISO 639-2 et ISO 639-3 qui utilisent des codes à 3 lettres.

### Codes alpha-3

Les codes à 3 caractères latins donnent la possibilité de coder 26$^3$=17 576 langues différentes.
Les codes à 3 lettres sont utilisés par l’ISO 639-2, l’ISO 639-3 et l’ISO 639-5.

### Codes alpha-4 (abandonnés)

Les codes à 4 caractères latins donnent la possibilité de coder 26$^4$=456 976 langues différentes.
Les codes à 4 lettres sont utilisés par l’ISO 639-6 abandonnée.