Les code de langue et de pays

Il existe des code (généralement mais pas exclusivement en deux lettres) afin de désigner les langues et les pays. Ces derniers sont tout deux très utilisés et relativement intuitifs... mais il existe des pièges.

Les normes de base

Les codes de pays et de langages sont deux choses totalement différents sans aucun rapport entre eux. Pour les codes de pays, on utilise la norme ISO 3166 et pour les langues la norme ISO 639. Rien de complexe, mais il faut bien garder en mémoire que ce sont deux choses bien distinctes.

Les dialectes spécifiques

C'est bien joli de parler de langues, mais une même langue peut avoir plusieurs dialectes différents. Par exemple, le français parlé en France est différent du français parlé qu Québec, le portugais parlé au Portugal est différent du portugais parlé au Brésil, etc. Que faire ? Si on utilise le code de pays, on se retrouverais avec ca pour la français du Canada et br pour la portugais du Portugal. Manque de chance, ca est déjà utilisé pour la catalan et br pour le breton.
Afin de faire la différence, la RFC 1766 (qui définie les tag de langue) nous autorise à ajouter, après le code ISO 639 sur 2 lettres, le code ISO 3166 sur 2 lettres du pays dans lequel la langue est parlée. Ces deux codes sont séparés par un tiret. On obtient donc le résultat suivant :

  • fr: français généraliste ;
  • fr-FR: français de France ;
  • fr-CA: français du Canada (parlé principalement au Québec) ;
  • br: breton ;
  • ca: catalan ;
  • pt: portugais généraliste ;
  • pt-PT: portugais du Portugal ;
  • pt-BR: portugais du Brésil.

On notera que l'on met toujours en minuscule le code de langue et en majuscule le code de pays. Ce n'est pas obligatoire, mais c'est préférable.

Langues non référencées et/ou imaginaires

Quand une langue n'est pas référencée dans l'ISO 639, on pourrait croire qu'elle ne peux pas apparaître dans un tag de langue. Et pourtant, la RFC 1766 nous propose un moyen de le faire. Nous retiendrons ici l'utilisation du x à la place du code de pays afin d'indiquer une langue non reconnue (par exemple x-klingon). Il est également possible d’utiliser, toujours à la place du code de pays, soit le i soit un tag de 3 à 8 lettres afin de faire référence à un code enregistré auprès de l'IANA (cf IANA language-tags et IANA language-subtags.

Pour aller plus loin