Unicode & i18n

проверка языкового тега BCP 47Разобрать субтеги и веса

Одиночный тег и заголовок Accept-Language проверяются по разным правилам.

проверка языкового тега BCP 47

Ввод

Разбор выполняется в браузере: ввод не отправляется и не сохраняется.

Результат

Идёт разбор…

Параметры

Направление текста
مرحبا 123 ABC

Версия реестра IANA: …

Идёт разбор…

В конфигурации локализации легко принять регион за письменность. Проверка языкового тега BCP 47 сохраняет исходное значение и показывает поля отдельно, чтобы различать, например, sr-Cyrl-RS и sr-Latn-RS.

Если нужен идентификатор локали для сайта, сначала проверьте код языка BCP 47 и дату реестра. Языковой тег IETF здесь не смешивается с заголовком: разбор Accept-Language вынесен в отдельный режим.

Зачем нужна проверка языкового тега BCP 47

Отдельные поля и отдельный реестр

Проверка языкового тега BCP 47 выделяет язык, письменность, регион, варианты и расширения, затем сравнивает публичные субтеги с датированной копией IANA. Успешный разбор браузером сам по себе не подтверждает регистрацию.

Разноцветные сегменты тега ведут к полям языка, письменности и региона и к реестру с датой.

Вес заголовка без догадок о сервере

Диапазоны сортируются по q, равные значения остаются в исходном порядке, а q=0 виден как запрет. Направление RTL в образце задаётся отдельно и не вычисляется из языкового тега.

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

Сначала определить тип ввода

01

Тег и заголовок не смешивать

Один тег проверяйте в начальном режиме. Для Accept-Language с ;q= или с именем поля переключитесь в режим заголовка: параметр веса не часть тега.

02

Смотреть на дату реестра

Регистр букв и устаревшие коды меняются только в предложении, исходная строка остаётся. File-Date указывает версию IANA; у частной формы x- нет общедоступного значения.

03

Выбирать момент проверки

Автоматический разбор ждёт 350 мс после правки. Отключите его, чтобы запускать кнопкой или Ctrl/Cmd+Enter. Изменение ввода сразу запрещает экспорт старого результата.

Какие сведения даёт отчёт

Поля без потери частей

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

Снимок IANA с датой

Проверка языкового тега BCP 47 опирается на показанную дату File-Date. Предпочтительные значения устаревших кодов и форма, полученная браузером, разделены: версии ICU и реестра могут отличаться.

Веса и звёздочка

Отсутствующий q равен 1, q=0 значит «не принимать», допускается не более трёх знаков после запятой. * — диапазон в заголовке, а не зарегистрированный тег.

Границы проверки кода

Регистрация не равна поддержке
Наличие субтега в IANA не доказывает, что сайт переведён, есть нужный шрифт или приложение поддерживает язык. Проверяйте возможности продукта отдельно.
POSIX и ICU не исправляются
ru_RU.UTF-8 и строки с @ не превращаются автоматически в BCP 47. Эта страница проверяет теги, а не конвертирует все форматы идентификаторов локали.
Заголовок не выбирает язык сайта
Вес q не позволяет предсказать ответ конкретного сервера. Направление образца RTL также задаётся отдельно, а не извлекается из тега.
Каноническая форма остаётся подсказкой
Исправленный регистр и замены устаревших кодов показаны рядом с исходной строкой. Парсер не переписывает ввод и не создаёт новый заголовок или код приложения.
Частные теги не имеют общего значения
x-... может быть синтаксически допустимым, но IANA не задаёт смысл его частной части. Проверка использует показанную дату реестра и не скачивает обновления.
Одно значение заголовка вместо HTTP-запроса
Режим заголовка читает значение Accept-Language или только эту строку. Полные запросы, cookie и заголовки авторизации не анализируются.

Проверка языкового тега BCP 47: вопросы и ответы

Что такое идентификатор локали?

Это строка для обозначения языка и при необходимости письменности, региона или варианта. BCP 47 — один из стандартных форматов; POSIX и другие системы используют иную запись.

В чём разница между форматами BCP 47 и POSIX?

BCP 47 соединяет субтеги дефисом, например ru-RU. POSIX часто применяет подчёркивание, суффикс кодировки или @; данный инструмент не подменяет один формат другим.

Как инструмент работает без сервера?

Реестр IANA встроен в сборку, а анализ выполняется в браузере. Ввод не отправляется на сервер; у результата показана дата снимка данных, поэтому он воспроизводим.

Почему некоторые локали показывают разные результаты в разных браузерах?

У браузеров могут отличаться версии CLDR или ICU. Поэтому браузерная каноническая форма показана отдельно от проверки по датированной копии IANA; различие не скрывается.

Что означает "разрешённая локаль"?

Это языковой вариант, который API выбрала после сопоставления запроса со своими доступными данными. Здесь нет такого согласования: инструмент разбирает тег и веса заголовка, но не выбирает язык за приложение.

Нашли неверный разбор?

Проверка языкового тега BCP 47 для новой строки

Сравните исходную строку, предлагаемую форму и дату IANA, затем при необходимости оцените веса заголовка или отдельный RTL-образец.