#javascript #google-chrome #locale
Вопрос:
Существует функция Number.toLocaleString
, в которой первый аргумент (языковой стандарт) может быть опущен, чтобы указать текущий языковой стандарт хоста.
Описывается как (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString):
// Use the host default language with options for number formatting
var num = 30000.65;
console.log(num.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}));
// → "30,000.65" where English is the default language, or
// → "30.000,65" where German is the default language, or
// → "30 000,65" where French is the default language
Теперь я изменил в своем браузере языки и выбрал «голландский» вверху (в разделе chrome://настройки/языки). Это заставило navigator.languages
вернуться ["nl", "en-NL", "en-GB", "nl-NL", "en-US", "en"]
Однако, когда я затем использую:
var num = 30000.65;
console.log(num.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}));
Результат 30,000.65
— использование все еще английского языка. Если я использую navigator.languages
вместо неопределенного, результат будет таким, как ожидалось. ( 30.000,65
).
Откуда javascript берет языковой стандарт? Как я могу изменить текущий режим своего браузера? Даже моя ОС (ubuntu) настроена на голландский язык.
Комментарии:
1. Попробуйте эмулировать местоположение и языковой стандарт через
devtools > sensors
вместо изменения языкового стандарта вашего браузера