dolibarr-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Dolibarr-dev] A propos des appels à pric e2num et price et de la lo


From: Eldy
Subject: Re: [Dolibarr-dev] A propos des appels à pric e2num et price et de la locale fr_BE
Date: Sat, 06 Sep 2008 14:30:38 +0200
User-agent: Thunderbird 2.0.0.16 (Windows/20080708)

Antoine Delvaux a écrit :
> Bonjour Eldy,
>
>
> Merci pour ta réponse.
>
>   
>>> Seulement, la solution n'est pas simple, car les appels à price2num() 
>>> colorent
>>> très fort le code.  J'ai pour le moment contourné le problème, en 
>>> commentant le
>>> code récupérant le séparateur des milliers de la locale,  L'autre solution 
>>> est
>>> d'utiliser la locale 'fr_FR' mais aucune des 2 n'est une solution durable.
>>>
>>> Bref, qu'en pensez-vous ?  Si je m'attaque au problème, quel chemin me
>>> préconisez-vous ?  Merci pour vos avis !
>>>   
>>>       
>> Je me suis attaqué au problème.
>> Un gros boulot car le seul moyen de s'en sortir en l'état actuel avec
>> fr_BE et que tout soit en fr_BE (PHP, OS, Mysql), ce qui n'est casiment
>> jamais le cas surtout mysql qui garde quelquesoit la langue, le "."
>> comme séparateur de décimal.
>>     
>
> De mon opinion, le principal problème de price2num est qu'elle est utilisée 
> dans
> 2 contextes assez différents :
> - pour reprendre des prix en provenance de l'I/F web, formatés suivant la 
> locale
> - pour reprendre des prix en provenance de la BD, formatés avec le '.' comme
> séparateur décimal
>
> L'idéal ne serait-il pas de séparer cette fonction en 2, suivant son usage ?  
> Ce
> qui permettrait dès lors de résoudre ce bug de manière plus propre.  Mais le
> gros inconvénient, j'en conviens, est que cela demande un gros refactoring car
> price2num est appelée en bcp d'endroits.
>   

Oui ce serait la solution à terme. En effet. Et en effet aussi cela
nécessite un gros effort.

>   
>> Autre solution, passer tous les code Dolibarr et ne plus permettre la
>> saisie ouverte (droit de saisir un nombre sans le séparateur de milliers
>> qui emmerdent tout le monde et utilisation obligatoire de la virgule).
>> Hors ceci me parait beaucoup trop contraignant juste pour avoir le droit
>> de "voir" des nombres affichées au format Belgique.
>>     
>
> Oui, je suis d'accord avec toi, bcp plus contraignant.
>
>   
>> Il y a une solution beaucoup plus simple.
>> Prendre la version CVS de la branche DOLIBARR_2_4_BRANCH ou la 2.5 dev
>> dans laquelle on a modifié le fichier main.lang de fr_BE et la ligne
>> SeparatorThousand=.
>> par
>> SeparatorThousand=
>>     
>
> Oui, c'est une autre idée qui a l'avantage d'être immédiate.
>
> Je proposerais bien encore une autre solution, qui a l'avantage de pouvoir
> garder le '.' et a juste un petit inconvénient.  C'est dans le patch joint 
> (diff
> contre la 2.4.0).  Le petit inconvénient est que lorsqu'on a un nombre tel que
> "1.001" on ne peut pas trancher entre "mille et un" et "un virgule zéro zéro 
> un".
>   
Oui j'avais conscience de cela c'est pour cela que je ne suis pas parti
la dessus car hélas ce point est a mon sens trop génant, car quand on
ets dans cette situtation, Dolibarr fait un choix et si c'est le
mauvais, l'utilisateur est bloqué.
Donc j'écarte cette solution.
> Cela dit, ce problème est potentiellement plus large que la locale fr_BE, il 
> se
> pose pour toute locale utilisant le '.' comme séparateur de milliers.  D'après
> http://www.unicode.org/cldr/version/1.6.1.html cela en représente tout de même
> 35 hors de 454 (voir liste en annexe également).  Même s'il est peu probable 
> que
> Dolibarr soit traduit dans toutes ces locales prochainement, ça vaut peut-être
> la peine de trouver une solution à long terme ?
>   
Oui tout pays qui a le . en millier pose problème.

A terme, je m'oriente vers 2 fonctions price2num.

Une pour reformater une saisie utilisateur (celle qui n'existe pas) et
qu'on n'appellera
priceinput2num qui répond au besoin que tu cites:

- pour reprendre des prix en provenance de l'I/F web, formatés suivant la locale



Et une autre l'actuel pour reprendre des prix formaté de base mais aussi
de systeme externes qui utilisent une normes us, ou encore pour arrondir
un résultat de calcul. Cela correspond au besoin que tu cites:

- pour reprendre des prix en provenance de la BD, formatés avec le '.' comme


> Antoine.
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> Dolibarr-dev mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/dolibarr-dev


-- 
Laurent Destailleur.
---------------------------------------------------------------
EMail: address@hidden
Web: http://www.destailleur.fr
IM: IRC=Eldy, Jabber=Eldy

AWStats (Author) : http://awstats.sourceforge.net
CVSChangeLogBuilder (Author) : http://cvschangelogb.sourceforge.net
AWBot (Author) : http://awbot.sourceforge.net
Dolibarr (Contributor) : http://www.dolibarr.org





reply via email to

[Prev in Thread] Current Thread [Next in Thread]