Comment l'internationalisation de travail en JavaScript?
Je me demandais comment faire face à l'internationalisation en JavaScript. J'ai cherché sur google mais je n'obtiens pas de réponses convaincantes pour:
- N'JavaScript prise en charge native de l'internationalisation?
- Qu'est-ce que i18n en JavaScript?
- La façon de traiter avec des calendriers, des monnaies, des dates, etc.?
J'ai déjà lu L'internationalisation à l'intérieur de JavaScript.
- Microsoft a récemment publié un jquery mondialisation plugin. Les détails sont ici
Vous devez vous connecter pour publier un commentaire.
Localisation de soutien dans les anciens navigateurs est pauvre. À l'origine, c'était en raison de phrases dans le langage ECMAScript spec qui ressemblent à ceci:
Chaque localisation de la méthode définie dans la spécification est définie comme "la mise en œuvre-dépendante", qui se traduit dans un grand nombre d'incohérences. Dans ce cas, Chrome, Opera et Safari serait de retour la même chose que
.toString()
. Firefox et IE sera de retour régionaux formaté cordes, et c'est à dire même comprend un séparateur de milliers (parfait pour les chaînes de devise). Google Chrome a été mis à jour récemment, pour le retour des milliers de chaîne séparée, bien que sans décimale fixe.Pour les environnements modernes, le ECMAScript l'Internationalisation de l'API spec, une nouvelle norme qui complète le Langage ECMAScript spec, fournit un soutien beaucoup mieux pour la comparaison de chaînes, mise en forme des nombres, et la date et l'heure de mise en forme; il fixe également les fonctions correspondantes dans la Langue Spec. Une introduction peut être trouvé ici. Les implémentations sont disponibles dans:
Il y a aussi une compatibilité mise en œuvre, Intl.js, qui permettra de fournir de l'API dans les environnements où il n'existe pas déjà.
Déterminer la langue du visiteur reste un problème, car il n'y a pas de spécification pour l'obtention de la langue actuelle. Chaque navigateur implémente une méthode pour obtenir une chaîne de langue, mais cela pourrait être basée sur l'utilisateur de la langue du système d'exploitation ou tout simplement la langue du navigateur:
Une bonne solution pour cela est de faire un dump de la-tête Accept-Language du serveur vers le client. Si formaté en JavaScript, il peut être passé à l'Internationalisation de l'API constructeurs, qui va automatiquement choisir la meilleure (ou la première prise en charge) paramètres régionaux.
En bref, vous devez les mettre dans une grande partie du travail vous-même, ou utiliser un cadre/bibliothèque, parce que vous ne pouvez pas compter sur le navigateur pour le faire pour vous.
Diverses bibliothèques et plug-ins pour la localisation:
Maintenue par un ouvert à la communauté (sans ordre):
N'hésitez pas à ajouter/modifier.
Mozilla a récemment publié le génial L20n ou la localisation 2.0. Dans leurs propres mots L20n est
Leur js mise en œuvre est sur le github L20n référentiel.
Certains de il est originaire, le reste est à la disposition par les bibliothèques.
Par exemple Datejs est une bonne internationale de la date de la bibliothèque.
Pour le reste, c'est juste à propos de la langue de traduction, et JavaScript est nativement compatible Unicode (ainsi que tous les principaux navigateurs).
Vous pouvez également essayer une autre bibliothèque - https://github.com/wikimedia/jquery.i18n .
En plus de paramètre de remplacement et de multiples formes de pluriel, il a un support pour le sexe plutôt une caractéristique unique de la coutume, des règles de grammaire que certaines langues ont besoin.