0
Mon cher journalounet,Je ne suis en aucun cas un expert en matière d'i18n ou de localization, j'ai même été parfois pris en flagrant délit d'anti utf8isme primaire. Néanmoins je m'interroge très fortement sur la santé mentale des gens qui ont trouvé que c'était une bonne idée de localiser le séparateur décimal (cad virgule pour les français et point pour le reste du monde). Encore plus pour les quelques guignols qui ont jugé utile de rendre toutes les fonctions de "base" (atof, scanf etc) de la libc "locale-aware" alors qu'elles n'ont pas été conçues pour ça. Ainsi que le côté "global" de la locale: quand on fait un appel à setlocale ça s'applique à tout le monde dans l'appli: le programme comme les libs, et toutes les threads.
Alors à quoi on abouti, mon journalounet ? j'ai mon module python qui lit des fichiers de données. Ces fichiers sont en texte (pour la portabilité et la facilité d'édition), c'est de l'ascii tout gentil. Ils contiennent entre autres plein de nombres en virgule flottante. C'est du C à l'ancienne, sans fioritures ni headers exotiques. C'est du costaud, du robuste, ça a voyagé et vu plein d'Unix et de compilateurs différents. Tout marche bien, c'est super. Et là tout à coup je charge un autre module python, qui en charge un autre etc et dans le paquet y'en a un qui se dit "et si je faisais un setlocale pour bien causer la langue de l'autochtone?" . Et il le fait ce con. Et du coup, ben au lieu de lire des nombres à virgule flottante mon module ne lit plus que la partie à gauche du point décimal, parce qu'après il attend une virgule. Et qu'est-ce qui se passe ? ben ça bugge, le moteur gauche de la fusée demarre avec 0.5 seconde d'avance, elle part en vrille et va s'abattre sur la maison blanche, En représaille le président des Etats Unis d'Amerique appuie sur son bouton rouge et 3000 missiles vont s'abattre sur la russie et la corée du nord. Qui répliquent. Game over.
voilà pourquoi je hais les locales (et particulierement LC_NUMERIC)
> Lire le journal (50 commentaires, moyenne: 3,4).
Vous avez demandé le commentaire #794977.



D'autant plus que...
... http://www.bipm.fr/jsp/fr/ViewCGPMResolution.jsp?CGPM=22&(...)
[^]Re: D'autant plus que...
Encore une norme inachevée. Personne n'aura les couilles de spécifier clairement et en toutes lettres :
- le séparateur décimal est le point "."
- le séparateur par tranche de trois ne pourra être que l'espace " "
Parce qu'avec leur résolution inachevée à la noix on peut penser qu'on peut écrire :
15@000.00 + 8#071#042,36 = 8"086"042.36
Avec des bras cassés comme eux on en serait encore à mesurer en pouces ! Qui ? Quoi ? Les anquois ?
[^]Re: D'autant plus que...
tout ca ne vaut pas les applis qui pour sortir un csv utilisent ',' pour séparer les décimales, et ',' pour séparer les champs, saufs qu'ils mettent des '"' autour de certains champs pour qu'on puisse faire la différence entre les ',' et les ',' quand on a besoin des ',' pour écrire un réel...