[spip-dev] direction du texte

----Message d'origine----

De: Nicolas Krebs <nicolas1.krebs2@netcourrier.com>
A: spip-dev@rezo.net
Date: Sat, 13 May 2006 00:01:25 +0200
Sujet: [spip-dev] direction du texte et attribut dir Re: [spip-trad] FW:

« User agents must not use the lang attribute to determine text
directionality. »
(HTML 4.01 Specification, W3C Recommendation 24
December 1999, section 8.2, Specifying the direction of text and tables:
the dir attribute, Language information and text direction )
traduction française :
« Les agents utilisateurs ne doivent pas utiliser l'attribut lang pour déterminer
la direction du texte. »
(La spécification HTML 4.01, Recommandation du W3C du 24 décembre
1999, section 8.2, La spécification de la direction du texte et des tables :
l'attribut dir, Les indications de langue et la direction du texte )

Mais c'est pourtant ce que fait spip :
« Si votre site contient des langues s'écrivant de gauche à droite (la plupart
des langues) mais aussi des langues s'écrivant de droite à gauche
(notamment l'arabe, l'hébreu ou le farsi), il faudra de petits compléments au
code HTML pour que l'affichage se fasse sans accroc [3].

SPIP offre à cet effet une balise spécifique : #LANG_DIR, qui définit le sens
d'écriture de la langue courante. Cette balise est utilisable comme valeur de
l'attribut dir dans la plupart des tags HTML (cela donne donc « ltr » pour les
langues s'écrivant de gauche à droite, et « rtl » pour les autres [4]). »
(« Réaliser un site multilingue », section 5.2 Le sens de l'écriture,
Réaliser un site multilingue - SPIP )

Et la suite de la def html 4 elle-même :
« L'exemple qui suit illustre le comportement attendu de l'algorithme bi-directionnel. Il met en jeu du français, une langue écrite de gauche à droite, et de l'hébreu, une langue écrite de droite à gauche. »
(La spécification HTML 4.01, section 8.2.1 ,
Les indications de langue et la direction du texte )

Peuvent exister des textes écrits en
- français, alphabet latin, gauche à droite
- grec ancien, alphabet grec, gauche à droite
- grec ancien, alphabet grec, droite à gauche
- kurde, alphabet arabe, droite à gauche

Des explications :
Richard Ishida et autres, Authoring Techniques for XHTML & HTML
Internationalization: Specifying the language of content 1.0, W3C Working
Draft 24 February 2005, section 3.3 Relationships with character encoding
and directionality,
Authoring Techniques for XHTML & HTML Internationalization: Specifying the language of content 1.0

«In some scripts, such as Arabic and Hebrew, text runs predominantly from
right to left. [...] It is important to adequately specify the intended
'directionality' of text in a document.
[...]
there is not always a one-to-one mapping between language and script, and
therefore directionality. For example, Azerbaijani can be written using both
right-to-left and left-to-right scripts.

There are separate mechanisms for declaring character encoding and
directionality in HTML and XHTML, and these ideas should not be confused
with mechanisms for declaring language.»

L'article de Tex Texin, FAQ: Script direction and languages,
Languages using right-to-left scripts contient
« Languages don't have a direction. Scripts have a writing direction, and so
languages written in a particular script, will be written with the direction of that
script. » ( Languages using right-to-left scripts )

et une liste indicative (et fiables ?) d'alphabets écrits de droite à gauche
( Languages using right-to-left scripts ).

Le projet de remplaçante de la rfc 3066 ( Language Tag Registry Update (ltru) , dernière
version draft-ietf-ltru-registry-14 ) introduit l'indication «Suppress-Script:»,
qui signale qu'une langue est à priori écrite avec l'alphabet indiqué.

Dans http://www.iana.org/assignments/language-subtag-registry d'aujourdh'ui
codes de langue ayant l'indication
Suppress-Script: Latn
85 codes
Suppress-Script: Hebr
he hébreu
yi yiddish
Suppress-Script: Arab
ar arabe
fa persan
ps pachto
ur ourdou

Voir aussi
- Richard Ishida et autres, Authoring Techniques for XHTML & HTML
Internationalization: Handling Bidirectional Text 1.0, W3C Working Draft 9
May 2004, Authoring Techniques for XHTML & HTML Internationalization: Handling Bidirectional Text 1.0
- http://www.w3.org/International/resource-index.html#bidi

Conclusion

Ces textes conseillent de séparer la langue et le sens (la direction) d'écriture,
mais contienent des exemples dans lesquels il y a corélation.

En conséquence, la fonctionnement actuel (spip 1.8.3 à spip 1.9b1) de SPIP (déduire #LANG_DIR de #LANG) n'est pas complètement faux.

Améliorations de spip possibles :
- considérer que les langues suivantes (ayant comme valeurs Suppress-Script: Hebr ou Suppress-Script: Arab dans l'annexe de la rfc 3066 bis http://www.iana.org/assignments/language-subtag-registry ) sont à priori écrites de droite à gauche : hébreu (code he), yiddish (code yi), arabe (code ar), persan (code fa), pachto (code ps), ourdou (code ur);
- considérer que les textes dont le code de langue indique qu'ils sont écrit dans un alphabet écrit de droite à gauche (alphabet arabe, alphabet hébreu, quels autres ?) sont à priori écrits de droite à gauche, par exemple az-arab, tg-arab, fa-arab, ku-arab (cf. Language Tags - OBSOLETE et http://tools.ietf.org/wg/ltru/draft-ietf-ltru-registry/ );
- permettre au auteurs d'article d'indiquer la direction du texte (#LANG_DIR) en plus de la langue du texte (#LANG).

Autre amélioration possible concernant les langues :
pour les squelettes qui publient du contenu dans unseule langue, qui est
connue au début de la boucle (dist/article.html ?),
envoyer l'en-tête http Content-Language défini dans la rfc 3282.

[#HTTP_HEADER{Content-Language: (#LANG)}] ?

voir
http://www.ietf.org/rfc/rfc3282.txt