Chapitre 2 : règles de construction des étiquettes de langue

, par _Eric_

La règle d’or

La règle principale R0 qu’il faut avoir en tête quand on cherche à définir une étiquette de langue est d’utiliser la forme la plus courte possible. Il faut éviter de préciser les sous-étiquettes comme la région, l’écriture ou les autres sous-étiquettes facultatives, sauf si elles apportent une information utile.

Les paragraphes suivants expliquent comment choisir ou pas chacune des sous-étiquettes en respectant la règle d’or.

La langue principale et l’extlang

La règle R0 s’applique d’emblée à la langue principale et à l’extlang. Tout d’abord si un code de langue ISO 639-1 (alpha-2) existe il est recommandé de l’utiliser comme « fr » pour le français au détriment du ou des codes alpha-3 (« fre » ou « fra » pour le français) si ils existent. Si le code alpha-2 n’existe pas alors il faut choisir le code alpha-3 approprié.

En outre, si cela est possible, il est conseiller de se passer de l’extlang surtout depuis l’avènement de la norme ISO 639-3 qui a défini près de 8000 codes alpha-3 en comparaison des presque 200 codes alpha-2 de la norme ISO 639-1. Par exemple, au lieu d’utiliser « zh-yue » pour le cantonais, il est préférable d’utiliser « yue » comme code de langue.

Toujours est-il que la première difficulté est d’identifier la langue parmi l’ensemble des codes disponibles. Pour cela les ressources suivantes sont disponibles :

  • le répertoire IANA qui fournit les sous-étiquettes valides ;
  • le site SIL qui répertorie les codes ISO 639 ;
  • le site Ethnologue dont la consultation des fiches de langue est malheureusement limitée à 5 pour les non inscrits.

Le répertoire IANA joue un rôle particulier car il permet de valider le choix d’un code langue :

  • pour vérifier une langue principale il faut s’assurer que l’attribut subtag vaut le code recherché et que l’attribut type vaut « language ».
  • pour vérifier une extlang il faut s’assurer que l’attribut subtag vaut le code recherché et que l’attribut type vaut « extlang ».

Parfois il est difficile de trouver le code de langue adéquat et on peut avoir tendance à se rabattre soit sur une famille de langues comme les créoles basés sur le français - « cpf » - soit sur des macro-langages comme l’arabe - « ar » - ou le chinois - « zh » :

R1 : il est recommandé d’éviter d’utiliser des familles (attribut type égal à « collection » dans le répertoire IANA) sauf si aucun code plus spécifique n’existe pour la langue recherchée, ce qui est rare.

R2 : pour les macro-langues le problème est presque identique mais le besoin de compatibilité ascendante peut amener à préférer conserver le code de la macro-langue. Cependant, il faut bien s’assurer que celui-ci désigne bien la langue dominante comme le mandarin - « cmn » - pour la macro-langue chinoise - « zh ». Dans ce cas « zh » peut continuer à être utiliser même si « cmn » serait plus opportun et que « zh-cmn » est à éviter.

Enfin, il est fortement conseillé d’éviter les codes dépréciés repérables dans le répertoire IANA par l’attribut deprecated suivi d’une date. Dans ce cas, le répertoire fournit dans l’attribut Preferred-Value un code alternatif à utiliser. C’est la règle R3.

L’écriture

La sous-étiquette écriture ne doit être utiliser que si elle apporte une information de contexte utile ; elle se positionne toujours à la suite de la langue principale ou de l’extlang.

R4 : il est inutile d’ajouter le code de l’écriture à une étiquette de langue si ce code désigne l’écriture par défaut ou dominante de cette langue comme l’écriture latine pour le français ou cyrillique pour le russe. Cette information est parfois inscrite dans le répertoire IANA avec l’attribut Suppress-Script suivi de l’écriture concernée qui indique que cette écriture n’est pas à utiliser avec la langue. Malheureusement, cette information est peu renseignée et il faut donc appliquer la règle R4 en vérifiant dans d’autres ressources.

La région

Comme l’écriture, la sous-étiquette région ne doit être utilisée que si cela permet d’apporter une information de contexte utile. La région peut être un code alpha-2 de l’ISO 3166-1 (« FR » pour la France) ou un code numérique de 3 chiffres (« 419 » pour l’Amérique Latine).

R5 : comme les codes des pays et régions varient fréquemment, il est déconseiller d’utiliser des codes dépréciés. Cette vérification peut être faite dans le répertoire IANA qui contient aussi ces codes de régions. Si le code est déprécié, l’attribut Preferred-Value devrait être renseigné.

La variante, l’extension et l’usage privé

La sous-étiquette variante est utilisée pour préciser un dialecte, identifier une réforme orthographique - dans ce cas c’est souvent une année, celle de la réforme - ou une transcription, etc. Il est possible de préciser plusieurs variantes à la suite.

Le répertoire IANA conserve une liste de variantes autorisées (attribut type égal à « variant »). Une variante fournit en général un attribut prefix qui indique à quel préfixe d’étiquette il faut normalement accoler la variante : par exemple, la variante « pinyin » peut être accolée au préfixe « zh-Latn » ou « bo-Latn ».

La sous-étiquette extension est très peu utilisée aujourd’hui, elle n’est donc pas discutée.

La sous-étiquette usage privé est aussi assez confidentielle. Elle doit être utilisée avec précaution car par définition elle n’est pas enregistrée et reste compréhensible que dans un environnement défini. Elle est composée du préfixe « x- » suivi de sous-étiquettes, autant que nécessaires.

P.-S.

Cet article est fortement inspiré des ressources suivantes :

  • le document « Indiquer la langue, l’écriture, le pays dans des documents informatiques » de Patrick Andries ;
  • la page Choosing a Language Tag du W3C.