internationalisation - francois yergeau - paris web 2008

42
Internationalisation François Yergeau

Upload: association-paris-web

Post on 05-Dec-2014

3.276 views

Category:

Technology


1 download

DESCRIPTION

Comme son nom l'indique, le Web se veut mondial. Mais pour remplir cette promesse, l'internationalisation de toutes ses parties constituantes s'impose. Pas acquise au début, cette internationalisation s'est réalisée petit à petit et est encore en cours. Nous passerons en revue les progrès accomplis, les chantiers d'aujourd'hui et les perspectives d'avenir.

TRANSCRIPT

Page 1: Internationalisation - Francois Yergeau - Paris Web 2008

Internationalisation

François Yergeau

Page 2: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 2

Plan

• Internationalisation et Unicode• Les ancêtres (HTTP, HTML,...)• Quelques camemberts• URL et noms de domaines• Courriel• Sélection de langues• Avenir

Page 3: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 3

Internationalisation (i18n)

Processus consistant à :• Préparer un système pour de multiples localisations

– Internationalisation de base (années 80)– Rendre localisation plus facile, plus économique– Extraction des éléments traduisibles (externalisation)

• Rendre un système multilingue– Internationalisation avancée (années 90)– Généralisation– Rend aussi la localisation plus facile– Briser les silos isolant les langues– Unicode

Page 4: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 4

Mojibake

Page 5: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 5

C'est quoi Unicode ?

Unicode est un standard qui définit un numéro unique pour chaque caractère,

quelle que soit la plate-forme,quel que soit le logiciel,

quelle que soit la langue.

Page 6: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 6

ASCII0 1 2 3 4 5 6 7

0 NUL DLE SP 0 @ P ` p1 SOH DC1 ! 1 A Q a q2 STX DC2 " 2 B R b r3 ETX DC3 # 3 C S c s4 EOT DC4 $ 4 D T d t5 ENQ NAK % 5 E U e u6 ACK SYN & 6 F V f v7 BEL ETB ' 7 G W g w8 BS CAN ( 8 H X h x9 HT EM ) 9 I Y i yA LF SUB * : J Z j zB VT ESC + ; K [ k {C FF FS , < L \ l |D CR GS - = M ] m }E SO RS . > N ^ n ~

0 1 2 3 4 5 6 7

Page 7: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 7

ISO Latin 1 (ISO 8859-1)0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE SP 0 @ P ` p NBSP ° À Ð à ð1 SOH DC1 ! 1 A Q a q ¡ ± Á Ñ á ñ2 STX DC2 " 2 B R b r ¢ ² Â Ò â ò3 ETX DC3 # 3 C S c s £ ³ Ã Ó ã ó4 EOT DC4 $ 4 D T d t ¤ ´ Ä Ô ä ô5 ENQ NAK % 5 E U e u ¥ µ Å Õ å õ6 ACK SYN & 6 F V f v ¦ ¶ Æ Ö æ ö7 BEL ETB ' 7 G W g w § · Ç × ç ÷8 BS CAN ( 8 H X h x ¨ ¸ È Ø è ø9 HT EM ) 9 I Y i y © ¹ É Ù é ùA LF SUB * : J Z j z ª º Ê Ú ê úB VT ESC + ; K [ k { « » Ë Û ë ûC FF FS , < L \ l | ¬ ¼ Ì Ü ì üD CR GS - = M ] m } SHY ½ Í Ý í ýE SO RS . > N ^ n ~ ® ¾ Î Þ î þ

0 1 2 3 4 5 6 7 8 9 A B C D E F

C1

Page 8: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 8

•ÿ•F

•þ•E

•ý•D

•ü•C

•û•B

•ú•A

•ù•9

•ø•8

•÷•7

•ö•6

•õ•5

•ô•4

•ó•3

•ò•2

•ñ•1

•ð•0

•F•E•D•C•B•A•9•8•7•6•5•4•3•2•1•0

•ÿ•F

•þ•E

•ý•D

•ü•C

•û•B

•ú•A

•ù•9

•ø•8

•÷•7

•ö•6

•õ•5

•ô•4

•ó•3

•ò•2

•ñ•1

•ð•0

•F•E•D•C•B•A•9•8•7•6•5•4•3•2•1•0

•ÿ•F

•þ•E

•ý•D

•ü•C

•û•B

•ú•A

•ù•9

•ø•8

•÷•7

•ö•6

•õ•5

•ô•4

•ó•3

•ò•2

•ñ•1

•ð•0

•F•E•D•C•B•A•9•8•7•6•5•4•3•2•1•0

•ÿ•F

•þ•E

•ý•D

•ü•C

•û•B

•ú•A

•ù•9

•ø•8

•÷•7

•ö•6

•õ•5

•ô•4

•ó•3

•ò•2

•ñ•1

•ð•0

•F•E•D•C•B•A•9•8•7•6•5•4•3•2•1•0

Unicode

•ÿ•F

•þ•E

•ý•D

•ü•C

•û•B

•ú•A

•ù•9

•ø•8

•÷•7

•ö•6

•õ•5

•ô•4

•ó•3

•ò•2

•ñ•1

•ð•0

•F•E•D•C•B•A•9•8•7•6•5•4•3•2•1•00 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL DLE SP 0 @ P ` p C1(default:

ISO 6429) 89

  ° À Ð à ð1 SOH DC1 ! 1 A Q a q ¡ ± Á Ñ á ñ2 STX DC2 " 2 B R b r ¢ ² Â Ò â ò3 ETX DC3 # 3 C S c s £ ³ Ã Ó ã ó4 EOT DC4 $ 4 D T d t ¤ ´ Ä Ô ä ô5 ENQ NAK % 5 E U e u ¥ µ Å Õ å õ6 ACK SYN & 6 F V f v ¦ ¶ Æ Ö æ ö7 BEL ETB ' 7 G W g w § · Ç × ç ÷8 BS CAN ( 8 H X h x ¨ ¸ È Ø è ø9 HT EM ) 9 I Y i y © ¹ É Ù é ùA LF SUB * : J Z j z ª º Ê Ú ê úB VT ESC + ; K [ k { « » Ë Û ë ûC FF FS , < L \ l | ¬ ¼ Ì Ü ì üD CR GS - = M ] m } ­ ½ Í Ý í ýE SO RS . > N ^ n ~ ® ¾ Î Þ î þ

0 1 2 3 4 5 6 7 A B C D E F

Page 9: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 9

Codages d'Unicode

• Il existe trois codages standardisés d'Unicode– codage = manière de stocker/transmettre les n° de caractères

• UTF-8– Très populaire avec HTML et protocoles Internet car ASCII préservé– Marche avec logiciels avec peu de changements

• UTF-16– Compromis entre accès efficace et place réduite– Java, ICU, Windows (NT 3.1 en 1992!), etc.

• UTF-32– Le plus simple, mais le plus vorace– Utilisé quand espace pas un problème

Page 10: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 10

ISO/CEI 10646 et Unicode

• Même répertoire : – même caractères– mêmes noms– mêmes numéros– mêmes codages– Résultat d’une fusion des deux normes légèrement différentes à

l’origine

• Unicode est un consortium industriel• ISO et CEI des organismes internationaux (les membres

sont des pays)

Noms français officielsdans la 10646 !

Page 11: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 11

Un bon livre

Page 12: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 12

Et ça marche, Unicode ?

• Oui, mais…• Unicode ne garantit pas

– qu'il y a des polices pour mes caractères– qu'il y a un clavier pour ma langue– que les algorithmes sensibles à la langue (coupure de ligne,

correcteur, etc.) sont adaptés

• Si déjà fait ailleurs, Unicode favorise la réutilisation• Beaucoup de ces services sont traditionnellement fournis

par la plate-forme (système d'exploitation)• Parfois, Unicode complique aussi un peu les choses

Page 13: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 13

HTTP

• HTTP internationalisé depuis milieu des 1990– Octets arbitraires permis dès le début

• Contrairement au courriel (ASCII)• Utile pour images ...

– En-têtes à la MIME (Content-Type avec paramètre charset)– Accept-Language

• Un de quatre Accept-*• Le plus utile• Fonctionnel mais sous-utilisé

Page 14: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 14

HTML

• HTML internationalisé depuis 1997– RFC 2070, repris par HTML 4 au W3C– Modèle de référence, pivot Unicode (&#233; → é toujours)– Mécanismes d'identification de codage, attributs LANG, DIR– Éléments <SPAN>, <BDO>– Point noir : soumission de formulaire

• Intersection avec URL

Page 15: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 15

CSS

• CSS bien internationalisé depuis CSS2 (1998)– Modèle de référence Unicode (\00E9 → é)– @charset pour identifier codage– Guillemets, listes numérotées, text-transform, etc.– Sélecteurs de langue– WebFonts– La théorie et la pratique diffèrent beaucoup– CSS 2.1 une reculade

Page 16: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 16

XML, XSL

• XML internationalisé dès le premier jour– Modèle de référence Unicode– Détection de codage– Attribut xml:lang

• XSL-FO (2001) reprend CSS, améliore i18n– Directions d'écriture multiples (lr-tb, tb-rl, etc.)– before/after, start/end au lieu de top/bottom, left/right– Césure sensible à la langue

Mais est-ce bien le web ?

Page 17: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 17

Javascript

• Mi-figue, mi-raisin– Basé sur Unicode (depuis 1999)– Pas de mécanisme de gestion de ressources

• Souvent versions linguistiques distinctes du code– Philosophie est de se fier à la plateforme (navigateur et S/E)

• Pas de formatage de nombres et dates internationalisé– L'évolution de librairies Javascript ± standardisées peut aider

Page 18: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 18

Langues sur le webChinoisJaponaisAllemandEspagnolFrançaisRusseCoréenPortugaisChinois (T)ItalienPolonaisTchèqueNéerlandaisTurcAutres

Autres

Anglais ≈ 40 %

Page 19: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 19

Écritures sur le web

Page 20: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 20

Écritures sur le web : autres

Page 21: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 21

Unicode sur le web

Source : Mark Davis, Googlehttp://www.macchiato.com/slides/unicode_at_google.ppt

Page 22: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 22

URL

• Internationalisation bien plus tardive– RFC 3987 (2005)– Définit les Internationalized Resource Identifiers (IRI)

• Syntaxe identique aux URI, sauf que la classe des caractères non-réservés est étendue à presque tout Unicode

• Opérations (par ex. résolution d'IRI relatifs) identiques– Définit une transformation IRI → URI pour compatibilité arrière

• Exprimer l'IRI en Unicode UTF-8 NFC• Remplacer les octets non-ASCII par %HH• Exprimer chaque octet par caractère ASCII correspondant

– http://www.example.org/Dürst– http://www.example.org/D%C3%BCrst

Page 23: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 23

Noms de domaine

• Avant : sous-ensemble d'ASCII, 37 caractères : a-z, 0-9, -– Normalisation : repli de casse (A→a)

• IDNA (Internationalized Domain Names in Applications), RFC 3490, 2003– Sous-ensemble d'Unicode 3.2– Normalisation plus complexe, filtrage (Nameprep)– Surcodage ASCII (Punycode)– Serveur DNS inchangés, tout se passe dans les applications

Page 24: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 24

Exemple IDN

Conversion à Unicode(si nécessaire)

Normalisation

Surcodage ASCII

xn--wgv71a119e.jp

DNS

216.21.239.197

Page 25: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 25

Nameprep

• RFC 3491, un profil de Stringprep (RFC 3454)• Normalisation et filtrage

– Certains caractères remplacés par d'autres• Repli de casse et quelques autres cas

– Certains caractères enlevés• Par ex. SÉLECTEUR DE VARIANTE, ESPACE SANS CHASSE

– Normalisation Unicode NFKC• K : fi → f + i, カ→カ , ⅓→1+ / + 3, etc.• C : e + ACCENT AIGU → é

– Caractères interdits• Espaces, commandes, privés, déconseillés, etc.• Erreur si présents

Page 26: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 26

Hameçonnage

• Attaque par homographiewww.pаypal.com

– Existait déjà (I ≈ l ≈ 1)– Fortement aggravé par Unicode– Solutions :

• Interdiction de plusieurs écritures dans même étiquette (mais exceptions)• Politiques d'enregistrement (registres)• Conception de polices écran (I ≈ l ≈ 1)• Prudence dans les navigateurs

– Exemple : Firefox» IDN affiché si domaine a une bonne politique» Sinon, affiche punycode

LETTRE MINUSCULECYRILLIQUE A

Page 27: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 27

Politique de registre

• Exemple : registre du .CH

• françois.ch fonctionne, mais pas avec a cyrillique

à á â ã ä å æ çè é ê ë ì í î ïð ñ ò ó ô õ ö øù ú û ü ý þ ÿ œ

Page 28: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 28

Autres problèmes avec les IDN

• Unicode 3.2 → 5.1– Autres versions à venir

• Certains problèmes avec Bidi– Déjà quelques règles dans IDNA2003– Accent final interdit, pas acceptable

• IDNAbis en cours de normalisation– Cf. http://stupid.domain.name/idnabis/

Page 29: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 29

IDN en pratique

• Plus de 40 domaines acceptent d'enregistrer des IDN• Adoption particulièrement forte en Asie

– En Chine, plus de 90 % des sites gouvernementaux ont des IDN

• Infrastructure pas complètement mise à niveau– Navigateurs modernes ont IDN, mais pas IE6 (moderne ?)– Google AdWords n'accepte pas de pointer vers un IDN–

Page 30: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 30

IDN de premier niveau (iTLD)

• Les Japonais préfèrerait . 日本 à .jp• Encore ici, forte inertie, le DNS est crucial• L'ICANN a fait faire des essais avec 11 IDN dans les

serveurs racines– Aucun problème,

cf. http://www.icann.org/en/topics/idn/idn-report-07jan08.pdf • L'ICANN met en place un processus rapide pour définir des équivalents

IDN pour les ccTLD qui le désire• Parallèlement, appel à nouveaux domaines de premier niveau lancé,

incluant IDN

Page 31: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 31

I18n du courriel

• Courriel ⊂ Web ?– Pas stricto sensu, bien sûr– URL mailto:– Hotmal, Yahoo Mail, Gmail et al.– Identifiants de compte, confirmation d'abonnement, etc.

• Le courriel fait partie de l'infrastructure du web

• Courriel i18n depuis MIME (RFC 1341, 1992)• Grosse lacune : adresses de courriel

Page 32: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 32

EAI

• EAI = Email Address Internationalization

Jean.Dupont @ exemple.org

Partie locale Nom de domaine

Jusqu'à cette année, ASCII-only

Depuis 2003, IDNA•mais courriel demande ASCII (punycode)•pas vraiment i18n

Page 33: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 33

Cadre EAI

• RFC 4952 (2007, Informationnel) décrit le cadre :– Nouveau format d'en-têtes de courriel (From:, To: etc.) avec adresses

en UTF-8• RFC 5335 (Septembre 2008, Expérimental)

– Nouvelle extension ESMTP permettant d'utiliser ce format• RFC 5336 (Septembre 2008, Expérimental)

– Internationalisation des messages de notification de livraison• RFC 5337 (Septembre 2008, Expérimental)

– Extensions à POP et IMAP (livraison finale des messages)• RFC à paraître

– Mécanisme de repli vers format ASCII• RFC à paraître

Page 34: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 34

Une session SMTPS: 220 mail.example.org ESMTPC: EHLO mail.example.comS: 250-mail.example.org 250-ENHANCEDSTATUSCODES 250-8BITMIME 250-UTF8SMTP 250 DSNC: MAIL FROM:<franç[email protected]> [email protected]: 250 2.1.0 OkC: RCPT TO: <Cézanne@musée.example.org>S: 250 2.1.5 Ok

Préalable à UTF8SMTP

Page 35: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 35

Conséquences d'EAI

• Ça va marcher ?↓ C'est expérimental↓ Il faut tout changer, clients et serveurs↑ L'Asie pousse très fort→ Ça va être long

• Et si ça marche ?– Mise à niveau des sites utilisant adresses comme identifiant– Mise à niveau des sites utilisant des validateurs d'adresses

• Beaucoup sont déjà mauvais, belle occasion de corriger– Peut être fait tout de suite sans rien casser

Page 36: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 36

Sélection de langue

• Soit la page d'accueil d'un site multilingue :

Allons voir en Chine...

Page 37: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 37

• Le sélecteur de langue (pays en fait) est bien en évidence, mais incompréhensible

Page 38: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 38

Page de sélection

• Bitte? Sprechen Sie Deutsch?

Page 39: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 39

Sélecteurs de langue

Drapeaux(sites distribués)

Liste(Unicode) Boutons-images

• Il manque une icône « sélecteur de langue » universelle– Reconnaissable par tous– La terre : trop vague ?– Établir une convention

(ou encore carte)

☢☮☠

Page 40: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 40

Avenir

• Mise en page japonaise (CSS, XSL)• Retour sur les pertes de CSS 2.1• WebFonts, le retour• Librairies Javascript

– Plus généralement : maturité des plate-formes de développement

Page 41: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 41

Traduction automatique

• La langue est la dernière frontière• Solution technique : traduction automatique

– Aujourd'hui répandue– Gratuite– Lecture seulement, pas de rédaction– Qualité pitoyable, pas d'espoir à court/moyen terme

• Pas d'effet social notable (pas une solution à la tour de Babel)

• Quand même bien utile quand on est coincé

Page 42: Internationalisation - Francois Yergeau - Paris Web 2008

Paris-Web 2008 I18n du Web 42

Dank u

Grazie Danke

Gracias

Merci

спасибо Ευχαριστώ

θæŋk ju:

ⵜⴰⵏⵎⵉⵔⵜ

شـكـرا�