Платформа

Язык браузера и локализация приложения

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

Документация

Нужна структурированная документация по теме Платформа?

Эта статья относится к редакционной библиотеке. Для пошаговой настройки, справки и постоянных обновлений переходите сразу в соответствующий раздел docs.

Языковые предпочтения браузера помогают выбрать первый перевод, но остаются только подсказкой. navigator.language сообщает основной язык, а navigator.languages может вернуть упорядоченный список. Эти значения не доказывают место проживания, национальность или желаемый язык для каждой задачи. Приложение должно согласовать поддерживаемую локаль, показать переключатель и сохранить понятный запасной вариант.

Что означают значения Navigator

Интерфейс Navigator раскрывает настройки пользователя или браузера. MDN Navigator.language описывает основную языковую метку, а WHATWG Navigator.languages описывает упорядоченные предпочтения. fr-CA выражает языковую и региональную настройку содержимого, но не географическое положение.

Список может отсутствовать, содержать один элемент или измениться после настройки браузера. Используйте его как вход для выбора, а не как постоянный профиль. Атрибут lang документа имеет другую роль: он помогает экранным дикторам и должен обновляться при смене видимого языка.

Согласовать поддерживаемые локали

Определите конечный список действительно переведённых локалей. Нормализуйте метки, сначала проверяйте точную региональную форму, затем родительский язык. При поддержке fr-CA, fr и en канадский запрос получает fr-CA, другой французский получает fr, остальные получают en. Нельзя придумывать перевод или считать регионы взаимозаменяемыми.

Надёжный порядок таков: сохранённый явный выбор, первое поддерживаемое значение из navigator.languages, navigator.language при отсутствии списка и стабильный язык по умолчанию. Такой порядок работает и во встроенном окне с меньшим объёмом данных. Язык по умолчанию должен давать полную страницу, а не необработанные ключи.

Интернационализация различает язык, письменность и регион. W3C Internationalization объясняет, почему эти части нельзя смешивать. Если вариант не поддерживается, сообщите о запасном языке и оставьте переключатель доступным.

Сохранить явный выбор

Автоматический выбор удобен при первом посещении, но не должен запирать человека в непонятном языке. Переключатель должен иметь переведённые названия, ясное текущее значение и управление с клавиатуры. Сохраняйте локаль только после явного выбора и восстанавливайте её до чтения новой настройки браузера. Объясните, меняется ли страница, учётная запись или будущие посещения.

Во время загрузки сохраняйте содержимое и фокус. Не удаляйте форму или черновик при смене языка. При ошибке пакета оставьте последнюю читаемую локаль и предложите повтор. Языковая настройка не является согласием на маркетинг, передачу данных или юридическое решение.

Загрузить ресурсы без потери содержания

Версионируйте переводы и проверяйте наличие всех ключей маршрута. При переходе показывайте прежнюю строку, а не внутренний ключ. Не склеивайте фрагменты предложений: порядок слов и формы множественного числа различаются. Для дат, чисел и списков используйте Intl, но храните канонические данные и не выводите налоговую страну из языка.

Обновляйте lang, заголовки, описания, альтернативные ссылки и направление документа. Проверяйте длинные строки, письмо справа налево и сочетания чисел с кодом. Локализованный URL должен сохранять смысл; отсутствующий перевод не должен вести на несвязанную главную страницу.

Проверить предпочтения, резерв и доступность

Проверьте пустой список, неподдерживаемый регион, метку с письменностью и браузер, который предоставляет только navigator.language. Измените настройку после явного выбора и убедитесь, что выбор сохраняется. Сотрите выбор и проверьте предсказуемое новое согласование.

Проверьте медленную сеть, прерванный ответ и устаревший кеш. Сохраняйте ввод, сообщайте о прогрессе и давайте повторить операцию. Пройдите переключатель с клавиатуры, проверьте фокус и новый lang с экранным диктором. Проверьте формы множественного числа, десятичные разделители, расширение текста и масштабирование.

Приватность и границы

Предпочтения могут повысить узнаваемость конфигурации вместе с другими данными. Если нужна только локаль, не отправляйте весь список в аналитику. Не используйте метки для вывода места жительства или чувствительных признаков. Для удалённого перевода сообщите сервис, срок хранения и действие, запускающее передачу. Отсутствие локального ресурса не должно незаметно загружать личный текст.

Документируйте полностью переведённые локали и варианты с резервом. Сохраняйте доступный запасной путь и пересматривайте изменения хранения, синхронизации и упаковки ресурсов.

Для дат и чисел отделяйте выбор локали от хранимых данных согласно руководству по форматированию Intl. Дополнительные настройки приватности браузера помогают проверить границы данных.

То же правило относится к уведомлениям, файлам и поддержке: меняйте подписи, но не данные и разрешения.

Объясните область действия переключателя и покажите понятный резерв, если ресурс отсутствует.

Языковая метка может включать письменность и регион, поэтому эти части нужно сохранять раздельно.

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

Вход и восстановление должны оставаться понятными, если выбранный пакет ещё не загружен.

Серверный и клиентский маршрут должны одинаково учитывать сохранённый явный выбор.

Качество включает заголовки, подписи, предупреждения, альтернативный текст и формы множественного числа.

При отсутствии локали предложите другой язык, вариант по умолчанию или повтор загрузки.

Пересмотрите согласование после изменения приватности, встроенного окна или данных интернационализации.

Язык по умолчанию должен позволять закончить задачу без ожидания новой загрузки.

Смена языка не должна удалять введённые данные или ранее выданные разрешения.

Сообщения об ошибках тоже требуют перевода или понятного резерва.

Смысл сохранённых дат и сумм не должен меняться из-за отображаемой локали.

Направление текста и атрибут lang относятся к доступности.

Настройка браузера не заменяет осознанное решение передать содержимое.

Предпочтения браузера согласуются с доступными ресурсами, а явный выбор имеет приоритет.

Сохраняйте понятный выбор для каждой локали и объясняйте возврат к языку по умолчанию на мобильном устройстве и компьютере.

Те же рекомендации действуют в мобильных и настольных браузерах.

Связь утверждений с источниками

Публичные источники

#Navigator.language#Локализация#Интернационализация#Доступность

Переведите BotBrowser из исследований в продакшн

Используйте эти руководства, чтобы понять модель, а затем перейти к кроссплатформенной валидации, изолированным контекстам и масштабируемому браузерному развертыванию.