L'internationalisation(Numéro de mise en forme “num.toLocaleString()”) ne travaille pas pour google chrome
je veux faire de formatage de nombre en Javascript.. et j'ai utiliser la méthode suivante
num.toLocaleString() qui va travailler pour Firefox, IE, mais ne fonctionne pas pour Google Chrome..
Wat-je ajouter pour que ça marche dans le navigateur chrome.
La toLocaleString() méthode est, par définition, dépend de l'implémentation: il utilise la mise en œuvre locale, tels que les paramètres régionaux du navigateur. Donc, si j'étais à la recherche à votre page qui utilise la méthode, je vois des nombres mis en forme selon les finlandais ou les paramètres régionaux anglais, selon le navigateur que j'utilise.
Ce que vous voulez, c'est la localisation par les paramètres régionaux de l' page, et pour cela vous avez besoin de quelque chose d'autre. Dans les cas simples, vous pouvez coder vous-même, mais le numéro de mise en forme est en général compliqué, faire-il raisonnable d'utiliser une bibliothèque, comme Mondialiser. Découvrez la source compacte d'un simple démo. Dans Mondialiser, vous utilisez la norme des codes de langue lors de la spécification des paramètres régionaux.
L'internationalisation est toujours difficile et, malheureusement, il ne semble pas être une constante/pervasive solution. Votre meilleur pari est d'utiliser une 3ème partie de la bibliothèque pour prendre soin des choses pour vous.
Nous comptons beaucoup sur googles fermeture de la bibliothèque, qui a un assez puissant i18n (internationalisation) des outils. Jetez un oeil à http://www.daveoncode.com/2009/11/26/goog-i18n-numberformat-formatting-number-locale-string/ pour un exemple de comment l'utiliser. En fin de compte, c'est aussi simple que:
//define italian number format symbols
goog.i18n.NumberFormatSymbols= goog.i18n.NumberFormatSymbols_it_IT;//create new decimal formatter (PERCENT, CURRENCY, SCIENTIFIC are options)
formatter =new goog.i18n.NumberFormat(goog.i18n.NumberFormat.Format.DECIMAL);//view formatted and localized string
alert(formatter.format(15650.579));
Vous lien parle "en utilisant les paramètres régionaux par défaut", n'fermeture effectivement détecter les utilisateurs de paramètres régionaux, sélectionnez les formats de nombre? Ou est la locale par défaut toujours le même? Google outils d'internationalisation sont statiques. Il n'y a aucun moyen de détecter la langue au moment de l'exécution et de sélectionner la traduction à utiliser. Cela dit, regarder dans "numberformatsymbols.js" et vous verrez: goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en; dans otherwords, la valeur par défaut est l'anglais. Juste après cela, vous trouverez: if (goog.LOCALE == 'aa') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_aa; } Si vous regardez dans 'base.js' goog.LOCALE = 'en'; // default to en c'est au moment de la compilation définir instruction de contrôle de la langue à utiliser Une autre chose. Si vous avez besoin d'dynamique des capacités en matière de langue, il existe d'autres outils qui existent. Découvrez http://jsgettext.berlios.de/ pour effectuer la traduction dynamique et https://github.com/AndyStricker/gettext-javascript pour analyser votre source pour trouver des chaînes traduisibles. Vous devriez vous familiariser avec la façon dont gettext
Le JavaScript support de l'internationalisation est assez pauvre (comme vous l'avez découvert).
Vous pouvez prendre un coup d'oeil à https://github.com/jquery/globalize
Elle gère la mise en forme des nombres, et aussi des dates, des heures, des devises.
jQuery mondialiser semble avoir beaucoup changé depuis que vous avez écrit votre commentaire. Actuellement (2014) uniquement le formatage de la date est prise en charge
Un peu de vaudou pouvez implémenter votre propre numéro de mise en forme. Vous pourrez y construire cette Chaîne.prototype, mais je ne voulais pas que, depuis son localisée.
function reverse(str){return str.split('').reverse().join('');}function num2str(num){var str = num+"";//european//return reverse(reverse(str.replace('.',',')).replace(/\d{3}/g,'$&.').replace(/\.$/,''));//americanreturn reverse(reverse(str).replace(/\d{3}/g,'$&,').replace(/\,$/,''));}
La
toLocaleString()
méthode est, par définition, dépend de l'implémentation: il utilise la mise en œuvre locale, tels que les paramètres régionaux du navigateur. Donc, si j'étais à la recherche à votre page qui utilise la méthode, je vois des nombres mis en forme selon les finlandais ou les paramètres régionaux anglais, selon le navigateur que j'utilise.Ce que vous voulez, c'est la localisation par les paramètres régionaux de l' page, et pour cela vous avez besoin de quelque chose d'autre. Dans les cas simples, vous pouvez coder vous-même, mais le numéro de mise en forme est en général compliqué, faire-il raisonnable d'utiliser une bibliothèque, comme Mondialiser. Découvrez la source compacte d'un simple démo. Dans Mondialiser, vous utilisez la norme des codes de langue lors de la spécification des paramètres régionaux.
OriginalL'auteur Jukka K. Korpela
L'internationalisation est toujours difficile et, malheureusement, il ne semble pas être une constante/pervasive solution. Votre meilleur pari est d'utiliser une 3ème partie de la bibliothèque pour prendre soin des choses pour vous.
Nous comptons beaucoup sur googles fermeture de la bibliothèque, qui a un assez puissant i18n (internationalisation) des outils. Jetez un oeil à http://www.daveoncode.com/2009/11/26/goog-i18n-numberformat-formatting-number-locale-string/ pour un exemple de comment l'utiliser. En fin de compte, c'est aussi simple que:
Si vous êtes nouveau à la fermeture, ne vous inquiétez pas. Il n'est pas difficile à mettre en place et a une multitude d'excellents classes d'aide que vous pourriez trouver utiles.
http://code.google.com/closure/library/docs/gettingstarted.html
Google outils d'internationalisation sont statiques. Il n'y a aucun moyen de détecter la langue au moment de l'exécution et de sélectionner la traduction à utiliser. Cela dit, regarder dans "numberformatsymbols.js" et vous verrez:
goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en;
dans otherwords, la valeur par défaut est l'anglais. Juste après cela, vous trouverez:if (goog.LOCALE == 'aa') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_aa; }
Si vous regardez dans 'base.js'goog.LOCALE = 'en'; // default to en
c'est au moment de la compilation définir instruction de contrôle de la langue à utiliserUne autre chose. Si vous avez besoin d'dynamique des capacités en matière de langue, il existe d'autres outils qui existent. Découvrez http://jsgettext.berlios.de/ pour effectuer la traduction dynamique et https://github.com/AndyStricker/gettext-javascript pour analyser votre source pour trouver des chaînes traduisibles. Vous devriez vous familiariser avec la façon dont gettext
OriginalL'auteur jordancpaul
Le JavaScript support de l'internationalisation est assez pauvre (comme vous l'avez découvert).
Vous pouvez prendre un coup d'oeil à https://github.com/jquery/globalize
Elle gère la mise en forme des nombres, et aussi des dates, des heures, des devises.
OriginalL'auteur Mihai Nita
Un peu de vaudou pouvez implémenter votre propre numéro de mise en forme. Vous pourrez y construire cette Chaîne.prototype, mais je ne voulais pas que, depuis son localisée.
et puis son
OriginalL'auteur commonpike