L’internationalisation, c’est long et dur (et ça racle le fond)


L’internationalisation, abrégé i18n car il y a 18 lettres entre le i et le n, est le processus qui consiste à proposer différentes versions d’un contenu ou d’une interface afin de coller au plus proche des attentes culturelles de différents groupes d’humains.

Quand je discute avec un client et qu’il me dit :

Je veux traduire mon site en Anglais, c’est combien ?

Je tique toujours un peu.

C’est que l’i18n, ce n’est pas juste traduire des mots vers des autres. C’est beaucoup, beaucoup plus compliqué que ça. Et il faut avant tout identifier qui on vise, ce qu’on veut leur apporter, et ce qu’on est prêt à investir comme énergie pour le leur offrir.

En générale, les populations anglophones sont assez proches culturellement de nous, donc c’est plus facile de faire la transition que vers des cultures arabes, russes ou chinoises. Et si c’est imparfait, ce n’est pas trop grave, car l’utilisateur s’adaptera assez bien.

Néanmoins, il ne faut pas croire que prendre le texte et le coller dans Google translate va suffire, loin de là.

Et si le travail vise de gens culturellement plus éloignés de vous, alors le travail peu vite de venir énorme.

Le texte

Bien entendu, on pense tout de suite à la traduction, et c’est déjà un gros boulot.

Mais déjà, il faut s’adapter au contexte culturel que l’on vise. En Japonais, les niveaux de respect ne seront pas les mêmes selon les clients. Vous traduisez vers de l’espagnol, mais visez-vous l’Amérique du Sud et ses ustedes partout, ou l’Espagne et son vosotros ? Vous voulez proposer de louer un cab aux Londoniens ou un taxi aux New-Yorkais ?

Au passage, prenez un bon traducteur, car en plus de devoir traduire le sens du texte (et pas juste les mots), il faut qu’il adapte la ponctuation. Ainsi, on colle “:”, “!” et “!” au mot précédent en anglais, mais pas en français.

On a à peine commencé l’article et c’est déjà la merde, mais attendez !

Il y a le sens de lecture aussi !

De gauche à droite, de droite à gauche, de haut en bas. Et si vous croyez que ce n’est que le texte, lol… Car ça influence également toute la mise en page, avec notamment le placement des éléments importants : titres, boutons, etc. afin qu’ils soient mis en évidence.

Après, il y a l’espacement. Vous savez, on peut se permettre de se la jouer cool sur les espacements en français, parce que’on a plein de ponctuation. Donc un bloc de texte est clair, facile à lire en diagonale. En Thaïlandais par contre, il n’y a pas de virgule, de point, ni même d’espace entre les mots et les phrases. Donc si vous avez un truc à bien séparer du reste, il va falloir trouver une astuce visuelle.

Et puis il y a mon favoris, particulièrement parce que Python est très sévère (mais juste:)) avec : l’encodage.

Car dans le meilleur des mondes, on a de l’UTF8 partout. Mais on est pas dans le meilleur des mondes, et si vous visez certains terminaux, il faudra encoder dans un truc couleur locale. Par exemple, si vous envoyez des SMS sur des vieux 3310 en Afrique.

Les nombres

Ah, les nombres. Qu’est-ce qu’il pourrait être plus simple ? C’est universel pas vrai ?

Pas vrai ?

Et bien disons que comme d’habitude, la donnée est universelle, et la représentation ne l’est pas.

Déjà, il a les bases. On aime beaucoup la base 10, et quand c’est du technique parfois un peu de binaire, d’octal ou d’hexa.

Mais certaines populations ont des manières de compter étonnantes. Par exemple, si vous faites un système à Bamako (ne rigolez pas, c’est un exemple de ma carrière), sachez qu’en Bambara 1000 se dit 2 fois 500.

À cela se rajoutent les séparateurs et devises. Mille dollars et quarante cents pour un américain, c’est $1,000.40 ou $1000.40, alors qu’en français ce sera 1000,40 $ ou 1 000,40 $.

Et chaque format à ses règles de groupages, ses séparateurs, ses positions de préfixes… Les numéros de téléphone, les numéros de sécurité sociale, les codes postaux…

Attendez, ne fuyez pas, on n’en est pas encore à la moitié !

Les unités

Même la NASA a niqué une mission parce qu’ils se sont embrouillés entre les unités impériales et le système métrique.

Alors vous allez me dire, tant qu’on n’utilise pas des unités pifométriques, il suffit de convertir. Oui, mais encore faut-il savoir de quoi on parle. Il faut donc toujours demander à l’utilisateur en quoi il saisit ses données, et être très précis.

Très précis parce que figurez-vous que:

  • Le Gallon est utilisé aux UK, en Ireland, au Canada, aux Iles caïman, A la Dominique et Myanmar.
  • Les Émirats Arabes Unis, Panama et la Guyane utilisaient le Gallon jusqu’en 2013.
  • Mais le Gallon américain et le Gallon britannique ne sont pas équivalent. L’un fait 3.785l, l’autre 4.54609l, ce qui a causé la mort de quelques pilotes en Mediterranée qui on fait un plein pas assez Charlie.

Les dates

Je ne vous apprends rien en vous disant que gérer les fuseaux horaires c’est chiant. Mettez tout en UTC, et utiliser une bonne lib parce que le temps c’est relou : des zones géographiques alignées n’ont pas les mêmes heures (France et UK), des pays très grands ont plusieurs fuseaux (USA) ou un seul malgré leur gigantisme (Chine), et certains on les heures d’été/hiver, mais pas tous. Et il y a les années bissextiles, et la fameuse leap second. Et le fait que certains pays décident de changer de fuseau horaire comme ça, pouf, parce que ça les arrange.

Du coup il faut bien demander aux utilisateurs où ils sont pour récupérer la date dans le bon fuseau (l’ordinateur peut être réglé pour envoyer la mauvaise info, il peut sortir de l’avion, il peut ne pas vouloir utiliser la timezone actuelle, etc), convertir tout en UTC, et l’afficher dans le bon.

Après, hop, on a le formage des dates. Mais si, vous savez, ce truc qui a 40 000 règles qui changent d’un pays à l’autre, d’un standard à l’autre. 02/03/2015: dd/mm/yyyy ou mm/dd/yyyy ? Timestamp en seconde ou en millisecondes ?

Allez, vous croyez que vous vous en sortirez comme ça ?

N’oubliez pas, tout le monde n’a pas le même calendrier…

Nous utilisons un calendrier basé sur le chrétien, mais vous avez des calendriers bouddhistes, musulmans, des trucs basés sur les phases de la lune, et même il y a quelque temps en France le très rigolo calendrier républicain. Donc maintenant, il faut se soucier de pour où, de pour qui, mais aussi de pour quand on formate. Je plains les gens qui font des apps pour les musées.

Je plains aussi tous les gens qui font des plannings internationaux, qui doivent décider si lundi ou dimanche est le premier jour à afficher et traduire les notations naturelles comme “il y a 3 minutes(s)”.

La loi

Oh, si, oh si !

La loi change d’un pays à l’autre ! Nudité, le copyright, l’accessibilité…

Le DMCA aux USA, la censure en Chine, l’Hadopi en France. Nan pour le dernier je déconne hein, ils ont condamné 5 personnes depuis le début du programme.

Et allez prendre en compte les lecteurs d’écran, mettre du ARIA comme il faut, tester le bouzin pour les personnes en déficience visuelle (problèmes de couleur, aveugles, malvoyants…) ou motrice.

Bon alors là je ne vais pas rentrer dans les détails, car c’est trop, trop compliqué pour ma petite tête.

La culture

Le symbolisme diffère d’un groupe culturel à l’autre.

Vous allez faire un site pour le mariage, en beau blanc !

Mais en Chine, il faut du rouge.

Et dans certaines cultures, c’est la couleur du deuil.

Ce qui rend crédible commercialement aussi est différent. Un beau site bien épuré, avec plein d’espace négatif, c’est classe non ? Mais en Asie, avoir une page saturée est la norme.

En fait toute l’infrastructure, et même le système entier change la manière de voir les choses.

Quand on écrit du contenu pour un pays, il faut se rappeler des choses comme le climat, la monnaie différente, conduite à droite ou à gauche, voltage du courant, jours chômés, situation politique…

Si on fait une application avec beaucoup de carto, on ne mettra pas les mêmes choses en avant. Dans certains pays, les pistes sont importantes, dans d’autres les autoroutes le sont. Le truc le plus marquant qui me vient à l’esprit, c’est le fait que les cartes japonaises définissent un adresse en labélisant les blocs entre les rues, tandis que nous labélisons les rues entre les blocs.

Et je ne parle même pas du markéting

Qui est bien entendu radicalement différent selon la population visée, et non juste en termes d’i18n, mais aussi selon l’appartenance ethnique, sociale, culturelle, démographique, les handicape…

Il serait vraiment intéressant d’avoir un espèce de wiki open source qui, pour chaque groupe visé, liste les choses auxquelles il faut penser.

Finalement tout ça est trop chiant, z’ont qu’à se démerder ces estrangers de merde !

Arg, putain, on est 70 millions seulement, c’est nous les estrangers.

Après, ça ne veut pas dire qu’il faut tout faire, et trouver l’équilibre entre les ressources disponibles et le résultat qu’on vise. Mais il est bon de savoir ce qu’on décide de ne pas faire.

25 thoughts on “L’internationalisation, c’est long et dur (et ça racle le fond)

  • Lucky Luke, moi les ombres, je les enfile copieux

    Salut les mecs,

    J’aime beaucoup ce que vous faites, un jour j’aimerais etre grand et fort, comme vous.

    En passant, voila encore un article a la fois marrant, interessant et pas trop technique, il faut y aller doucement avec un chercheur en reconvertion comme moi, qui veux faire du developpement apres avoir fait de la modelisation, c’est pas du tout facile, et pourtant je bosse sur un PC toute la journee, je plains les pauvres biologistes, sociologues et autres litteraires en fin de these…

    Par contre, dans la derniere phrase du paragraphe ‘Le texte’ je dirais qu’il faut soit ecrire ‘couleur locale’ soit preciser la couleur du local… Pardon.

    Allez a tout’

  • ketchupenz

    @Sam

    “Arg, putain, on est 70 millions seulement, c’est nous les estrangers.”

    Renseigne-toi un peu, dans 15 – 20 ans, le français sera la deuxième langue la plus parlée au monde (raisons démographiques).

    Alors si tu veux de l’audimat, commence dès aujourd’hui à bien rédiger le français ;), parce-que des codeurs qui me donnent des leçons sur un langage informatique mais qui ne savent pas rédiger dans leur langue maternelle, ça me fait doucement rigoler. La rigueur et l’excellence c’est valable pour tous les langages et pas seulement pour le Python.

  • Sam Post author

    Non, dans l’ordre : Chinois, Espagnol, Anglais. Le français, très, très loin derrière.

    • Sam Post author

      C’est pas passé loin ceci dit, on a juste vendu un peut trop top nos bouts d’amérique.

  • projetmbc

    Bonjour, un petit erratum : le lien pour ” certains pays décident de changer de fuseau horaire” ne fonctionne pas.

    PS @ ketchupenz : pour les fautes faites, je pense au contraire que Sam est dans l’air du temps. Cf. la réforme récente sur “l’ôrthôgrâphe”, (je sais je suis un fou de mettre des accents circonflexes de partout). :-)

  • 418

    En rapport avec le sujet, deux video sympas de Tom Scott qui fait un tour rapide de la question sur la chaine de Computerphile.

    (D’ailleurs toutes ses videos valent le temps passées a les regarder)

  • Brice

    Et tous les pays ne considèrent pas les mêmes jours comme étant le week-end, en plus de ne pas avoir les mêmes jours fériés.

    Et il faut aussi s’adapter au matériel : quand tu fais un site pour des régions rurales d’Afrique centrale, notamment, tu dois alléger ton site autant que possible parce que les 3/4 des visiteurs se connecteront avec leur téléphone sur une connexion très lente.

    Et il y a aussi le mode de saisie : si tu mets des captchas avec des lettres latines dedans, tu risques d’avoir des problèmes avec des visiteurs qui ont un clavier avec un autre alphabet.

  • Atrament

    Pour la question des unités, j’aime beaucoup le module pint.

    Quelques typos:

    Je veux tradure > traduire<

    comme énergie pour leur offrir. > pour le leur offrir

    cool sur les espacements en français, > Français

    5 personnes depuis le début du programme > programme. (oui, il ne manque que le point)

    trop chiant, z’ont cas se démerder > z’ont qu’à se démerder (mais là c’est sûrement exprès)

  • Atrament

    Anecdote rigolote à ce sujet.

    J’ai donné un cours de prog très récemment, dans un groupe avec une poignée de Chinois. Quand j’ai demandé explicitement qu’on utiliserait python3 pour avoir le support de l’utf-8, J’ai eu le sentiment qu’ils avaient un vrai soulagement. C’est con aussi, mais les langages de programmation ont été pensés et conçus par des anglophones pour des anglophones. Enfin j’ai une pensée pour les codeurs aux alphabets non-latins. Ça doit être infernal de changer de keymap sans arrêt.

  • ultra

    En Chine, 40% des internautes sont sur IE6.

    Non, je ne lance pas un troll sur javascript.

  • Philippe

    Le meilleur résumé des gags de l’intermachinchose depuis 35 ans !

    T’as de l’avenir tu sais.

  • Centrois

    Le Gallon est utilisé par aux UK, –> Le Gallon est utilisé aux UK

    au mot précédent en Anglais, mais pas en français. –>

    au mot précédent en anglais, mais pas en français

    parceque’on a plein de ponctuation –> parce qu’on a plein de ponctuation

    qu’en français se sera –> qu’en français ce sera

    Comme toujours, merci beaucoup pour l’article, toujours très enrichissant de lire ce blog, autant pour soi que pour le boulot :).

  • k3c

    Vous voulez proposer de louer un cab aux Londoniens ou un taxi aux New-Yorkais ?

    Dans le même genre, que veut dire, pour un anglais ou un américain, “we do not like surprises”

    http://gestion-des-risques-interculturels.com/risques/communication-indirecte-et-securite-%E2%80%93-le-cas-de-bp/

    Comment totalement foirer le lancement d’une voiture, par Renault en Inde

    http://gestion-des-risques-interculturels.com/risques/pourquoi-renault-a-echoue-en-inde-avec-la-logan/

    et en prime, le nom Logan, en Inde, rappelle un ancient impôt style gabelle, payé par les paysans indiens aux colons anglais!

  • Recher

    En même temps, je trouve ça beau que ce genre de problème se pose. C’est une occasion supplémentaire donnée aux humains de se comprendre et se découvrir entre eux. C’est un challenge magique, même s’il provoque énormément de cafouillages.

    Pour chaque site foireux et mal traduit de créé, une guerre est évitée.

    Alors, au passage on perd un satellite et quelques aviateurs, mais c’est pas si grave.

    Sinon il y a aussi tous les systèmes de projections géodésiques. Y’a moyen de bien se marrer. Même en se cantonnant à la France (Lambert 2, Lambert 2 étendu, Lambert 93, …)

  • Réchèr

    Sans oublier les noms de personnages connus (c’est juste du texte, mais faut y penser)

    Olive et Tom ? Vous voulez dire Captain Tsubasa

    Mickey Mouse ? Ah oui… Topolino

    Balrog ? Vous voulez dire M. Bison. M. Bison ? Vous voulez dire Vega. Vega ? Vous voulez dire Balrog.

  • e-jambon

    Un exemple vécu, pour qu’on comprenne bien à quel point cette problématique est sous estimée.

    En Afrique (francophone), en déployant mon application dans une dizaine de pays, j’ai découvert qu’on devait faire des interfaces en 2D.

    Pas de ‘relief’ dans l’interface, autrement dit pas de “bevels” pour les boutons. Pas de notion de profondeur dans l’image.

    J’ai pu le vérifier un peu partout en Afrique Francophone : mes utilisateurs l’ont confirmé. Une partie des utilisateurs ne voyaient pas le “relief” sur les “boutons”, et du coup ne comprenaient pas du tout qu’il s’agissait d’un bouton.

    Voilà qui nuit à la compréhension de l’interface.

    On a tenté de me donner une explication : leur perception aurait été mauvaise (je vous passe le détail).

    J’avance que c’est peut-être le contraire.. Leur cerveau refuse de se tromper en voyant de la 3D là ou il n’y en a pas.

    Note : J’ai mis 10 ans à l’envisager, et encore : on me l’a plus ou moins soufflé. Je ne suis pas aussi malin que j’aime à croire. ;-p

    Toujours est-il : pour que mes interfaces soient bien perçues et pour le confort de mes utilisateurs, j’ai tout adapté. J’ai été chaleureusement remercié après la mise à jour (on m’a pas viré, on m’a dit ‘MERCI, on utilisera’ ). Les utilisateurs m’ont clairement exprimé à quel point ça leur était plus agréable… C’est plus d’actualité : on utilise presque plus de relief pour les interfaces depuis un bon moment…

  • Mazenko

    Hello !

    Voici une illustration de ce problème dans un post de Blizzard qui a dev une feature pour Diablo 3.

    Dans ce cas ce sont les nombres qui ont gêné.

  • SeaBee

    À propos des dates: le cauchemar des TimeZone. Quand on indique une date et une heure, c’est toujours dans un fuseau horaire donné, même si on y pense pas. Parce que le 22/02/2016 à 08:00:00, dans un autre fuseau horaire, ça pourrait être le 21/02/2016 à 23:00:00. Ou le 23/02/2016 à 01:00:00. Bon, d’accord, alors c’est simple finalement, il faut juste penser où on est en plus de l’heure ? Ben non, raté, parce que entre le 26 et le 27 mars 2016, on change d’heure, il va y avoir une journée de seulement 23h. Et une de 25h en octobre. Et ça dépend du pays. Et de l’année, parce que tout ça à changé plusieurs fois à différents moments dans différents pays (quand j’étais petit, on ne changeait pas d’heure, ensuite, on a changé en mars et septembre, maintenant, mars et octobre, et avant ma naissance, ça a changé plusieurs fois). Donc un calendrier continu, il y a des sursaut bizarres dedans, ce n’est pas une ligne bien droite, il y a des interruptions. Ah oui, et aussi, l’heure qui existe en double fin octobre, on parle de la première ou de la seconde ?

  • duke

    « […] qui on fait un plein pas assez Charlie. »

    Voilà une utilisation de l’expression qui n’est pas très Charlie. :)

    Sinon c’est bien le bordel ces problèmes de traduction… Bon courage à tous avec ça !

    Je suis encore bien que content que ça existe même si pour l’info comme les sciences, il faut pouvoir avoir un terrain commun. Ça implique toujours des sacrifices au niveau des spécificités locales.

    Je suis très UTF-8 aussi :D.

    !/usr/bin/python

    -- coding: utf-8 --

    Et ça part de la. o/

  • lollo

    Bonjour,

    Pour rouvrir le sujet de la traduction d’un site (la langue).

    D’apres les recherches de ma learning machine bistoufly, la langue la plus “locuté” est le “Autres”. En effet 78% de la population mondiale parlait le “Autres” en 2015. Google a référence 52% de site en langue “Autres”.

    Je compte faire un site de commerce local aveyronnais et j’aimerai le faire en “Autres”, mais je m’aperçois que mon système n’a pas la locale “Autres”. Je ne trouve pas d’info sur cette langue.

    J’ai fait une maquette en francais pour le site, je l’ai présenté a des aveyronnais. Apres leur avoir posé quelque questions, je n’ai pas compris leurs réponses. Je pense qu’il font parti des locuteurs “Autres”.

    Ce qui me montre que mon idée est la bonne..

    PS: cette fiction ressemble étrangement aux discussion avec les marketeux…

  • Ailothaen

    Un autre exemple, c’est les noms des utilisateurs : les façons “d’appeler” les utilisateurs ne seront pas les mêmes selon la culture. Si le type s’appelle “Emmanuel Macron”, écrire “M. Macron” dans un mail n’est pas universel.

    Le W3C explique ça ici (et galère un petit peu d’ailleurs :) )
    https://www.w3.org/International/questions/qa-personal-names.fr

Comments are closed.

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.