Почему в Google Chrome отображаются даты в американском формате, если для моего языка Chrome и локали ОС заданы не американские значения? - PullRequest
0 голосов
/ 05 ноября 2019

Я использую Fedora 31 (но у Fedora 29 была та же проблема) и Google Chrome (78.0.3904.87, официальная сборка, 64-разрядная версия). Когда-то в последние 6 месяцев я заметил, что даты появляются в формате США (мм / дд / гггг), а не в формате дд / мм / гггг, который я ожидаю увидеть.

Поиск похожих проблемв Интернете ответом всегда казалось изменение языка в настройках Google, и, действительно, когда я проверял, по умолчанию был английский (США). Однако, когда я выбрал английский (Великобритания) в качестве единственного языка в Chrome, это не решило проблему. Даже выбор только немецкого (Германия) в качестве языка не устранил проблему.

Из http://www.localeplanet.com/support/browser.html я мог видеть, что язык моего браузера был установлен правильно (navigator.language: en-GB), но могТакже на той же странице видно, что date.toLocaleDateString () по-прежнему возвращает даты в американском формате.

Я также проверил вывод localectl в терминале, и это вернуло en_IE.utf-8, как и ожидалось.

Итак, и моя ОС, и мой браузер определенно настроены на неамериканские локали, но я все еще получаю американские форматы дат. Я потратил слишком много времени, стуча головой об стену, которая кажется чем-то таким маленьким. Есть идеи?

1 Ответ

1 голос
/ 05 ноября 2019

При поиске ответа я заметил здесь, по крайней мере, еще одного пользователя (karora в Как / Где JavaScript определяет локаль по умолчанию? - возможно, кто-то с достаточной репутацией может сообщить ему об этом)та же самая проблема, с которой я столкнулся и щелкнув по его профилю, показала, что он тоже живет в Ирландии. Это заставило меня задуматься о том, что я прочитал в одном из отчетов об ошибках Chromium о поддерживаемых локалях Chrome.

Итак, я обнаружил, что, когда я изменил локаль ОС с en_IE на en_GB, моя проблема былаисправлено, и Google Chrome смог отобразить даты в формате, который я ожидаю. Кажется, что происходит, если ваша ОС настроена на локаль, которой нет в списке официально поддерживаемых языков в Google Chrome, тогда несоответствие между браузером и языком / локалью ОС либо заставляет браузер игнорировать свои собственные настройки языка / локали, либо вызываетнекоторая проблема с движком javascript в нем и делает его по умолчанию обратно форматированием en_US для дат, времени и т. д.

Я подниму это как ошибку в проекте Chromium, но, надеюсь, этот пост сэкономит некоторое время для людейкоторые оказываются в похожей ситуации.

...