identifiants de langue de SPIP et RFC 5646
Il a été signalé à plusieurs reprises que les identifiants de langue de SPIP ne sont pas tous conformes au format majoritairement utilisé (en informatique et dans le web web). Celui-ci est déinifi par la norme RFC 4646
- "texte d'origine en anglais":http://tools.ietf.org/html/rfc4646
- "article de présentation en français":http://www.bortzmeyer.org/4646.html
- "site web non officiel, en anglais":http://www.langtag.net/
Parmi les identifiants livrés de base avec SPIP source:spip/ecrire/inc/lang_liste.php ceux qui ont des subdivisions les relient par des « _ », alors que la rfc 4646 (et ses prédéécesseurs) utilise le tiret « - ». Donc si SPIP envoi l'identifiant de langue d'une page web dans les données http ou html, et qu'un logiciel (par exemple une règlke CSS) fait un test dessus, il est possible qu'elle ne reconnaisse pas.
Exemple : pt-BR sera reconnut comme pt et comme pt-BR, alors qu'il n'y a aucune garantie que pt_BR le soit l'un ou l'autre.
Il faudrait donc remplacer les occurences de ce caractère par des tirets. Une mise à jours des identifiants existants est préférable (voir "spip-dev 25976":http://article.gmane.org/gmane.comp.web.spip.devel/25976).
De plus, il faudrait remplacer « zh_tw » par « zh-hant-tw » pour préciser explicitement dans l'identifiant qu'il s'agit de chinois en écriture traditionnelle.
Plus généralement, et sur le plan de la norme de SPIP, il faudrait modifier la le texte de la politique officielle d'identification des langues, qui se trouve actuellement dans le paragraphe « Note : sauf pour quelques exceptions [...] rendez-vous sur la liste spip-trad. » dans l'article "Internationaliser les squelettes":http://www.spip.net/fr_article2128.html.
Je propose de faire simplement références à l'ISO 639-1 et à la RFC 4646, supprimer le superflu, et renvoyer à spip-trad (en faisant un lien interne vers la fiche spip.net « La liste de discussion spip-trad » qui est actuellement "dans la rubrique 4":http://www.spip.net/fr_rubrique4.html, mais dont je ne trouve pas l'adresse exacte). Le "site web officieux est aussi utile":http://www.langtag.net/registries/registry-html/language/de.html. Penser à l'accent dans « États-Unis ». La rfc 4646 bis utilisant "la liste ISO 639-3":http://tools.ietf.org/wg/ltru/draft-ietf-ltru-4645bis/ et ses milliers d'identifiants, la référence à ethnologue.com n'est plus nécessaire.
Essai : avant Note : 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.
après : Note : il faut utiliser ici les codes de langues à deux lettres normalisés par l’ISO, comme « "es":http://www.langtag.net/registries/registry-html/language/es.html », soit les codes plus complexes de "la RFC 4646":http://www.bortzmeyer.org/4646.html. On en trouvera notamment la liste sur "le site de la Bibliothèque du Congrès des États-Unis":http://www.loc.gov/standards/iso639-2/php/code_list.php (eh oui !) pour les uns, et "un site web d'explication":http://www.langtag.net/ (en anglais), pour les autres. Pour les langues non encore répertoriées, ou non trouvée, et pour en savoir plus, rendez-vous sur "la liste spip-trad":http://www.spip.net/site123.html.