Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

formulaires et internationalisation

4 réponses
Avatar
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

4 réponses

Avatar
Guillaume Bouchard
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.

Avatar
Thibaut Allender

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

Avatar
Mathieu Peltier
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


Avatar
Guillaume Bouchard
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.