La documentation de SPIP dit :
http://www.spip.net/fr_article2128.html
sauf pour quelques exceptions, il faut utiliser ici les codes de
langues à deux lettres normalisés par l'ISO, comme « es ». On en
trouvera notamment la liste sur le site de la Bibliothèque du
Congrès des Etats-Unis (eh oui !). Pour s'assurer d'un maximum de
compatibilité, il faut utiliser en priorité les codes ISO à deux
lettres (« iso 639-1 »), quand ils existent, et pour une désignation
plus spécialisée d'une langue dans sa famille linguistique les codes
ISO à trois lettres (« iso 639-2 T »). Par exemple, l'allemand sera
désigné comme « de ». Mais l'ISO ne prend en compte que 182 langues
sur les 5 000 à 7 000 langues parlées dans le monde ; pour les
langues non encore répertoriées, on peut s'inspirer du répertoire
proposé par le site ethnologue.com ; pour en savoir plus,
rendez-vous sur la liste spip-trad
Ce texte me semble à la fois peu à jour et trop limité.
Peu à jour car ISO 639-3 est sorti en février et liste plus de sept
mille langues (on peut y accéder en ISO 639-3 |).
Même pour l'ancien ISO 639-2, l'affirmation « l'ISO ne prend en compte
que 182 langues » était fausse, il y en avait cinq cents...
D'autre part, ce système de désignation des langues est limité car il
ne prend pas en compte des questions comme l'écriture (plusieurs
langues ont plusieurs écritures possibles, comme l'azeri qui s'écrit
couramment en arabe, en cyrillique et en latin) ou comme les variantes
régionales (au cas où on veuille faire deux sites francophones, un
pour la France et un pour le Canada).
Ne serait-ce pas une bonne idée que de conseiller plutôt l'utilisation
des étiquettes de langue, normalisées dans le RFC 4646 ? Ces
étiquettes sont décrites, par exemple, en http://www.langtag.net/. Ce
sont elles qui sont utilisées dans XML et HTML
(cf. Language tags in HTML and XML).
Elles permettraient d'exprimer les nuances ci-dessus.