2010-01-15 4 views
1

Надеюсь, быстрый ответ для кого-то, но мой google-fu покинул меня.Javascript эквивалент vbscript setlocale

В vbscript я могу использовать «setlocale», чтобы установить локаль, в которой запущен скрипт. Мне нужна версия javascript.

Так, например, скажем, мой пользователь использует браузер с французскими настройками, но я хочу, чтобы числа и даты были на английском и работали, как если бы они были английскими. Тогда в VBScript я мог бы сделать

setlocale 2057 

установить на английскую локаль

, а затем, когда я закончил работать с числами/даты можно установить обратно на французский

setlocale 1036 

Есть эквивалент javascript? Как я могу выполнить это в javascript?

ответ

2

Нет, в JavaScript не существует возможности выбора мест.

Однако делать что-то в англоязычной языковой среде США, как правило, не является проблемой, поскольку это то, что делает JavaScript в любом случае. Если вы обрабатываете Number с параметрами parseInt, toString и т. Д., Вы всегда будете иметь дело с . для десятичных точек, и не будет тысяч-разделителей. Date Форматирование по умолчанию также использует английские дни недели и месяца, а также формат даты, определенный браузером, который игнорирует то, что было бы по умолчанию вашего языка.

Вы должны уйти с вашего пути, чтобы получить что-то специфичное для языка в JavaScript, с помощью методов, таких как toLocaleString. Результаты, как правило, являются плохими и непоследовательными в разных браузерах. Если вам нужна надежная локализация в вашем веб-приложении, вы должны сделать это сами.

+0

Спасибо за ваш ответ. Я задал вопрос, не проверяя проблему должным образом - теперь у меня есть, и это соответствует тому, что вы говорите, поэтому мне не нужно беспокоиться об этом, что идеально! Спасибо – DannykPowell

1

Насколько я знаю, JavaScript не предлагает аналогичные функции языка. Для определенных задач у вас есть определенные функции, поддерживающие язык. Например, вы можете сортировать строку с localeCompare(), вы можете загладить ее с помощью toLocaleUpperCase(), и вы можете распечатать дату с помощью функции toLocaleString(). И вы не указываете локаль, они работают с любыми языковыми настройками, которые, по мнению переводчика, подходят. И, конечно же, все зависит от наличия этих функций во всех целевых браузерах.

Вы можете скачать official specs на сайте ECMAScript и посмотреть на Mozilla implementation (реализация IE, вероятно, находится где-то на сайте MSDN).

+0

Спасибо за ваш ответ. Я решил выбрать другой ответ как правильный, поскольку он был более окончательным, - но если бы я мог выбрать это как правильно, я бы тоже пожалел об этом – DannykPowell