Your SlideShare is downloading. ×
0
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Internationalisation - Francois Yergeau - Paris Web 2008
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Internationalisation - Francois Yergeau - Paris Web 2008

1,530

Published on

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 …

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,530
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Internationalisation François Yergeau
  • 2. Plan • Internationalisation et Unicode • Les ancêtres (HTTP, HTML,...) • Quelques camemberts • URL et noms de domaines • Courriel • Sélection de langues • Avenir Paris-Web 2008 I18n du Web 2
  • 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 Paris-Web 2008 I18n du Web 3
  • 4. Mojibake Paris-Web 2008 I18n du Web 4
  • 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. Paris-Web 2008 I18n du Web 5
  • 6. ASCII 0 1 2 3 4 5 6 7 0 NUL DLE SP 0 @ P ` p 1 SOH DC1 ! 1 A Q a q 2 STX DC2 quot; 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 Paris-Web 2008 I18n du Web 6
  • 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 quot; 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 C1 ¦ ¶ Æ Ö æ ö 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 { « » Ë Û ë û 2008 FS Paris-Web FF , < L I18n du Web l | 7 C ¬ ¼ Ì Ü ì ü
  • 8. Unicode 00• 11• 22• 33• 44• 55• 66• 77• 88• 99• AA• BB• CC• DD• EE• F• • • • • • • • • • • • • • • • • F 0• 1• 2• 3• 4• 5• 6• 7• 8• 9• A• B• C• D• E• F• 00• 1 • 2 • 3 • 4 • 5 • 6 • 7 • 8 • 9 • A • B • C • D • E • F • ðð• 00• 11• 22• 33• 44• 55• 66• 77• 88• 99• AA• BB• CC• DD• EE• F F• •• 0• 0 ð• • 0• 1• 0• 1• ðð• ññ• • • 1• ñ• SP 0 @ P ` p   ° À Ð à ð ñ• òò• C1 0 1•NUL DLE 1• 2• 2• ñ• • 2• ò• 1 2• 3• DC1 ! 2• SOH3• 1 A Q a q ¡ ± Á Ñ á ñ ò• óó• ò• • óó• ô• 3• (default: 2 3•STX DC2 quot; 3• 4• 4• 2 B R b r ¢ ² Â Ò â ò • • ô• ó 4• ô• 4• 4 55• 3 • ETX DC3 # • 3 C S c s ISO 6429) £ ³ Ã Ó ã ó ô• õõ• ô• • õõ• ö• 5• 4 5• 6• 5• EOT DC4 $ 6• 4 D T d t 8 ¤ ´ Ä Ô ä ô • öö• õ • 6• • 6• 7• 6• ENQ NAK % 5 5 77• E U e u 9 ¥ µ Å Õ å õ ÷• öö• ÷÷• • • • 7• 8• ÷÷•øø• • ¦ ¶ Æ Ö æ ö øø• • 7• 8• 6 8• ACK SYN & 6 F V f v 8• 8• 99• • ø• •ùù• • 7 9• BEL ETB ' 7 G W g w § · Ç × ç ÷ ùù• 9• 9• AA• • ù• • úú•• 8 AABS CAN ( • • B• 8 H X h x ¨ ¸ È Ø è ø úú• û• • A• B• ú• û• BHT EM • 9 B• C• B• C• ) 9 I Y i y © ¹ É Ù é ù ûû• ü• û• • ü• C• ü• A C• LF • SUB * C• DD • : J Z j z ª º Ê Ú ê ú ü• ýý•ü• • D• ý• D• VT • ESC + B• E D E• ; K [ k { « » Ë Û ë û ý• þþ• ý• • þþ• ÿ• E• C • • F• • FS E E FF F , < L l | ¬ ¼ Ì Ü ì ü • • ÿ• þ ÿÿ• F• F• D • CR GS F - = M ] m } ­ ½ Í Ý í ÿ • ý• 2008 Paris-Web SO RS . > N ^ I18n du Web n ~ E ® ¾ Î Þ î þ 8
  • 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 Paris-Web 2008 I18n du Web 9
  • 10. ISO/CEI 10646 et Unicode • Même répertoire : – même caractères Noms français officiels – mêmes noms dans la 10646 ! – 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) Paris-Web 2008 I18n du Web 10
  • 11. Un bon livre Paris-Web 2008 I18n du Web 11
  • 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 Paris-Web 2008 I18n du Web 12
  • 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é Paris-Web 2008 I18n du Web 13
  • 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 Paris-Web 2008 I18n du Web 14
  • 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 Paris-Web 2008 I18n du Web 15
  • 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 ? Paris-Web 2008 I18n du Web 16
  • 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 Paris-Web 2008 I18n du Web 17
  • 18. Langues sur le web Chinois Japonais Allemand Espagnol Français Autres Russe Coréen Portugais Chinois (T) Italien Polonais Tchèque Néerlandais Turc Anglais ≈ 40 % Autres Paris-Web 2008 I18n du Web 18
  • 19. Écritures sur le web Paris-Web 2008 I18n du Web 19
  • 20. Écritures sur le web : autres Paris-Web 2008 I18n du Web 20
  • 21. Unicode sur le web Source : Mark Davis, Google http://www.macchiato.com/slides/unicode_at_google.ppt Paris-Web 2008 I18n du Web 21
  • 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 Paris-Web 2008 I18n du Web 22
  • 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 Paris-Web 2008 I18n du Web 23
  • 24. Exemple IDN DNS Conversion à Unicode (si nécessaire) 216.21.239.197 Normalisation Surcodage ASCII xn--wgv71a119e.jp Paris-Web 2008 I18n du Web 24
  • 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 Paris-Web 2008 I18n du Web 25
  • 26. Hameçonnage • Attaque par homographie www.pаypal.com – Existait déjà (I ≈ l ≈ 1) – Fortement aggravé par Unicode LETTRE MINUSCULE CYRILLIQUE A – 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 Paris-Web 2008 I18n du Web 26
  • 27. Politique de registre • Exemple : registre du .CH à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ ÿ œ • françois.ch fonctionne, mais pas avec a cyrillique Paris-Web 2008 I18n du Web 27
  • 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/ Paris-Web 2008 I18n du Web 28
  • 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 – Paris-Web 2008 I18n du Web 29
  • 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 Paris-Web 2008 I18n du Web 30
  • 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 Paris-Web 2008 I18n du Web 31
  • 32. EAI • EAI = Email Address Internationalization Jean.Dupont @ exemple.org Partie locale Nom de domaine Jusqu'à cette année, Depuis 2003, IDNA ASCII-only •mais courriel demande ASCII (punycode) •pas vraiment i18n Paris-Web 2008 I18n du Web 32
  • 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 Paris-Web 2008 I18n du Web 33
  • 34. Une session SMTP S: 220 mail.example.org ESMTP C: EHLO mail.example.com S: 250-mail.example.org 250-ENHANCEDSTATUSCODES 250-8BITMIME Préalable à UTF8SMTP 250-UTF8SMTP 250 DSN C: MAIL FROM:<françois@example.com> ALT-ADDRESS=francois@example.com S: 250 2.1.0 Ok C: RCPT TO: <Cézanne@musée.example.org> S: 250 2.1.5 Ok Paris-Web 2008 I18n du Web 34
  • 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 Paris-Web 2008 I18n du Web 35
  • 36. Sélection de langue • Soit la page d'accueil d'un site multilingue : Allons voir en Chine... Paris-Web 2008 I18n du Web 36
  • 37. • Le sélecteur de langue (pays en fait) est bien en évidence, mais incompréhensible Paris-Web 2008 I18n du Web 37
  • 38. Page de sélection • Bitte? Sprechen Sie Deutsch? Paris-Web 2008 I18n du Web 38
  • 39. Sélecteurs de langue Liste Drapeaux (Unicode) Boutons-images (sites distribués) (ou encore carte) • Il manque une icône « sélecteur de langue » universelle – Reconnaissable par tous – La terre : trop vague ? – Établir une convention ☢☮☠ Paris-Web 2008 I18n du Web 39
  • 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 Paris-Web 2008 I18n du Web 40
  • 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é Paris-Web 2008 I18n du Web 41
  • 42. ⵜⴰⵏⵎⵉⵔⵜ спасибо Ευχαριστώ Grazie Danke Merci Gracias ‫شـكـرا‬ Dank u θæŋk ju: Paris-Web 2008 I18n du Web 42

×