formulaires et internationalisation

Le
Mathieu Peltier
Bonjour,

J'aimerais savoir comment gerer correctement les formulaires dans le cadre
d'une appli "internationalisee". Autrement dit, comment gerer le fait qu'un
anglais saisira par exemple pour un champ numerique "1.1" (ou 2004/03/05
pour une date) et un francais "1,1" (ou 05/03/2004 pour une date), etc.
merci d'avance pour vos exemples/conseils.

--
Mathieu Peltier
mathieu.peltier at laposte.net
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Guillaume Bouchard
Le #545146
Mathieu Peltier wrote:

Bonjour,

J'aimerais savoir comment gerer correctement les formulaires dans le cadre
d'une appli "internationalisee". Autrement dit, comment gerer le fait qu'un
anglais saisira par exemple pour un champ numerique "1.1" (ou 2004/03/05
pour une date) et un francais "1,1" (ou 05/03/2004 pour une date), etc.
merci d'avance pour vos exemples/conseils.



Pour les nombres, en se basant sur le fait que les differences entres
les deux sont simplement au niveau du separateur entre partie entiere et
decimale, je ferais un truc du genre

<?php
$nombre = '10,3';
$nombre = (float) str_replace(',','.',$nombre);

echo $nombre + 1;
?>

Concernant les dates, j'ai pour habitude de proposer 3 select, mais
sinon la difference n'est pas trop cata. Au plus rapide, tester si ce
qui ressemble à l'année ( 4 chiffes) est en fin ou en debut et faire le
decoupage de la chaine en fonction.

Vivement le jour ou on aura normalisé ses conneries de virgule ou de
point...

--
Guillaume.

Thibaut Allender
Le #545142

Vivement le jour ou on aura normalisé ses conneries de virgule ou de
point...


*c'est* normalisé.
le probleme ce qu'il faut prendre en consideration l'humain qui
intervient dans le processus, avec ses habitudes et ses defauts.

--
thibaut allender | freelance | web|system developer|designer
+32 496 26 75 76 | http://capsule.org

Mathieu Peltier
Le #544903
Guillaume Bouchard wrote:

Pour les nombres, en se basant sur le fait que les differences entres
les deux sont simplement au niveau du separateur entre partie entiere et
decimale, je ferais un truc du genre

<?php
$nombre = '10,3';
$nombre = (float) str_replace(',','.',$nombre);

echo $nombre + 1;
?>

Concernant les dates, j'ai pour habitude de proposer 3 select, mais
sinon la difference n'est pas trop cata. Au plus rapide, tester si ce
qui ressemble à l'année ( 4 chiffes) est en fin ou en debut et faire le
decoupage de la chaine en fonction.


Et par exemple pour un montant monetaire: $123,456.1 ou 123 456,1F ?
Il n'existe donc pas de methode qui permette de parser des donnees selon la
locale en cours? Il faut donc toujours le faire soit meme pour les locales
qu'on supporte?

--
Mathieu Peltier


Guillaume Bouchard
Le #544900
Mathieu Peltier wrote:

Et par exemple pour un montant monetaire: $123,456.1 ou 123 456,1F ?
Il n'existe donc pas de methode qui permette de parser des donnees selon la
locale en cours? Il faut donc toujours le faire soit meme pour les locales
qu'on supporte?


On peut jouer sur les locales via setlocale. Mais :

1) je doute qu'il y ai un type dans php(a part la chaine) qui accepte
quelque chose comme 123 456,1F
2) l'on est jamais à l'abris d'un mauvaise utilisation (un français qui
entre ses nombres avec un point et inversement)

Bref, le probleme reste entier, si quelqu'un qui a plus d'infos veux
bien se donner la peine ;o)

--
Guillaume.

Publicité
Poster une réponse
Anonyme