Головна/Рецепти/Додати мову ENУКРРУС API-довідник (ReDoc) ↗

Додати мову

Прийшов код, якого ми не знаємо. Вирішіть, це нова мова чи новий аліас.

Мета: інтеграція надіслала gsw (швейцарська німецька) або регіональний варіант, якого в нас немає і отримала language_not_found.

Спершу: це нова мова чи написання наявної?

Це і є все рішення, і помилка в ньому створює дублікат, який тихо розщепить ваші дані.

curl ".../v1/normalize?language=gsw"       # known: false — не збігається взагалі нічого
curl ".../v1/normalize?language=de-LI"     # known: true, але language.code = "de"
curl ".../v1/languages?q=german"           # які варіанти німецької вже є?

Warning

known: true не означає, що ми маємо саме цей варіант Регіональний код, якого в нас немає, деградує до мови, яку він уточнює: de-LI відповідає known: true з language.code: "de". Це навмисно — викликач отримує придатну відповідь замість 404, — але це означає, що перевірка «чи є в нас цей варіант?» — це language.code, що дорівнює тому, що ви спитали, а не known.

  • Інший варіант зі своєю поведінкою перекладу → нова мова.
  • Інше написання того, що вже є (por-br для pt-BR, cmn для zh) → новий аліас. Мову не створювати.

Коли сумніваєтесь — обирайте аліас. Злити дві мови потім — ручна робота; видалити зайвий аліас — один клік.

Додати аліас

Admin → Languages → мова → Inbound aliases, введіть, Add.

Аліаси зберігаються нормалізованими, тож POR_BR і por-br — той самий рядок; достатньо одного.

Якщо ключ зайнятий, ви отримаєте зрозумілий конфлікт із назвою поточного власника. Це правило глобальної унікальності з Aliases and Normalisation робить свою роботу: аліас, що резолвиться у дві мови, перетворив би вхідний резолвінг на підкидання монетки.

Додати мову

Admin → Languages → Add a language: код і назва.

Решта виводиться з коду. de-LI стає:

code:  de-LI        kind:  regional
script: —           region: LI
base_language_code: de

Регістр на вводі не має значення — zh_hant_hk збережеться як zh-Hant-HK.

Використовуйте канонічну форму BCP-47

Спершу мова, потім скрипт (з великої), потім регіон (великими): sr-Latn-RS, а не sr-RS-Latn. Сервіс однаково переставить, але збіг зі збереженою формою тримає ваші власні записи охайними.

Далі перевірте, що надсилатимуть провайдери

Сторінка нової мови перелічує всіх провайдерів і те, що кожен отримає. Свіжа регіональна мова зазвичай показує base_language скрізь — de-LIde.

Це розумний дефолт. Закріпіть ті, яким це потрібно: див. Закріпити код провайдера.

Видалення

Мову з мапінгами провайдерів видалити не можна — ви отримаєте конфлікт із їхньою кількістю. Спершу приберіть мапінги. Видалення через каскад тихо втратило б конфігурацію, якої ніхто не збирався позбуватись.

Щоб вивести мову з обігу без видалення, зніміть Active. Вона зникне з вибірок ?active=true, але й далі резолвитиметься, тож наявні записи лишаться читабельними.

Далі