Определить локаль
const url = 'https://example.com/wp-json/wp2tutor-forms/i18n/v1/locale?locale=ru';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://example.com/wp-json/wp2tutor-forms/i18n/v1/locale?locale=ru'Публично (permission_callback = true) выбирает пакет локали раннера из Locale/locales/{locale}.json. Это не перевод UI формы (/translation) и не meta l10n записи.
Query locale необязателен. Если нет — PHP берёт заголовок Accept-Language, иначе get_locale(). Из значения вырезается хвост после ; и , (как в Accept-Language), _ заменяется на -. Ищется файл локали, затем префикс до -; если нет — fallback en.json. Нет файла (в т.ч. нет en.json) — HTTP 404, тело null, не WP_Error.
Тело 200 — содержимое JSON-файла: код локали, направление письма, названия языка/страны, словари месяцев/дней и форматы даты/чисел.
Parameters
Заголовок раздела «Parameters»Query Parameters
Заголовок раздела «Query Parameters»Запрошенный тег локали (ru, ru_RU, ru-RU). Необязательно. PHP: fallback Accept-Language, затем get_locale(). Из Accept-Language берётся первый тег (до ; и ,).
Example
ruResponses
Заголовок раздела «Responses»Пакет локали из locales/{locale}.json (например ru.json).
object
Код пакета из JSON-файла (для ru.json — ru).
Домен локали в файле (для ru — ru).
Направление письма (ltr / rtl).
Код страны, если есть в файле. В ru.json — пустая строка.
Название страны. В ru.json — пустая строка.
Название страны на языке локали. В ru.json — пустая строка.
Английское имя языка (Russian в ru.json).
Имя языка на этом языке (русский в ru.json).
Словари раннера из файла: months (formatted/nominative × abbreviated/narrow/wide), days (+ short), time (AM/PM).
object
Паттерны из файла: date, time, dateTime, numbers (decimals/grouping/minus).
object
Example
{ "locale": "ru", "domain": "ru", "direction": "ltr", "countryCode": "", "country": "", "countryNative": "", "language": "Russian", "languageNative": "русский", "translations": { "time": { "AM": "AM", "PM": "PM" } }, "formats": { "numbers": { "decimals": ",", "grouping": " ", "minus": "-" } }}Locale::process вернул null — нет locales/{locale}.json и нет fallback en.json. PHP отдаёт WP_REST_Response(null, 404), не WP_Error.
Тело null.
Examplegenerated
example