Search code examples
javascriptlocalizationvbscriptsetlocale

Javascript equivalent of vbscript setlocale


Hopefully a quick answer for someone, but my google-fu has deserted me.

In vbscript I can use "setlocale" to set the locale a script is running in. I need a javascript version.

So for example, say my user is using a browser with french settings, but I want numbers and dates to be in english and worked with as if they are english. Then in vbscript I could do

setlocale 2057 

to set to english locale

and then when I'm finished working with the numbers/ dates I can set back to french

setlocale 1036

Is there a javascript equivalent? How can I accomplish this in javascript?


Solution

  • No, there's no way to choose locales in JavaScript.

    However, doing stuff in the US English locale is not generally a problem since that's what JavaScript does anyway. If you handle Number​s with parseInt, toString and so on you will always be dealing with . for decimal points and there will be no thousands-separator. Date default formatting also uses English weekday and month names, and a browser-specific date format that ignores what your locale's default would be.

    You have to go out of your way to get anything locale-specific in JavaScript, with methods like toLocaleString. The results are typically poor and inconsistent across browsers. If you want reliable localisation in your webapps, you have to do it yourself.