Je sais qu'au moment de la rédaction de cet article, seul Opera prend en charge une interface utilisateur de navigateur pour
<input type="date" name="mydate">
et peut-être que mes tentatives pour localiser ce champ ont été frustrées parce que des subtilités comme la localisation n'ont pas encore été incluses dans leur implémentation, mais je ne vois même pas de mention dans la spécification HTML5. Existe-t-il un moyen de spécifier la localisation? Dois-je faire lang = "fr" sur un élément parent?
Quelques notes sur la mise en place du site en question:
D'après ce que je sais, la pensée derrière ce que nous faisons dans Opera (divulgation complète: je travaille pour eux) est que le sélecteur de date est presque une extension du chrome, un contrôle natif du navigateur. En tant que tel, il sera localisé en fonction de la langue du navigateur, plutôt que de la langue de la page consultée.
Je suis d'accord avec lambacck. Actuellement, j'écris du code Javascript pour rendre les nouvelles fonctionnalités du formulaire disponibles sur plusieurs navigateurs, en utilisant jQuery UI pour cela.
Je travaille au Luxembourg qui est un bon endroit pour illustrer le problème de localisation plus en détail.
La plupart des sites Web que nous écrivons sont multilingues de | fr | en. D'après nos statistiques, nous pouvons dire que les gens utilisent le commutateur de langue sur le site pour afficher leur langue préférée, mais ce choix correspond rarement aux paramètres régionaux du navigateur préférés.
Si les paramètres régionaux du calendrier, etc. sont effectués par le système d'exploitation, cela nous ramène à la situation malheureuse <type d'entrée = fichier> où l'étiquette indique Télécharger un fichier et le bouton dit Parcourir. Vous ne pouvez rien faire à propos de ce mélange de langues et j'ai toujours trouvé que c'était une gêne majeure.
Conclusion, je dois écraser le calendrier par défaut avec celui de jQuery pour être sûr qu'il fait ce que je veux.
À mon avis, une API configurable ou au moins un moyen de manipuler les paramètres régionaux au niveau HTML serait formidable. Étant donné que les nouveaux types de champs ne sont pas encore largement adoptés par les autres fabricants de navigateurs, j'imagine que ce problème pourrait toujours être pris en compte.
Merci d'avoir lu ceci.
Pour les mobiles, la meilleure solution que nous avons trouvée est d'utiliser une entrée de texte pour la saisie de la date, avec une icône de calendrier à côté qui a une entrée de date invisible sur l'icône.
Avantages:
input type=date
non pris en charge par l'appareil/le navigateur (par exemple, certains Android ne prennent pas en charge la date ou présentent de graves bogues).HTML est quelque chose comme:
<input type=text>
<span style=position:relative>
<input type=date class=date-input tabIndex=-1>
<div class=date-input-icon>▼</div>
</span>
CSS:
.date-input {
position: relative;
z-index: 1;
webkit-appearance: none;
display: inline-block;
opacity: 0;
width: 1em;
}
.date-input-icon {
position: absolute;
right: 0;
width: 1em;
}