Что/где языковой стандарт хранится в браузере Chrome?

#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 вместо изменения языкового стандарта вашего браузера