# Створила англо‑данську систему i18n

Створила систему інтернаціоналізації для англійської та данської мов, що містить 12 027 повідомлень на локаль у 458 файлах namespace, зі словником, дотримання якого забезпечував лінтер, та бюджетом у 400 рядків на файл.

2025

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

**Завдання.** Інтернаціоналізація мала масштабуватися — тримати обидві мови узгодженими й коректними, а файли такими, щоб людина й через рік могла їх супроводжувати.

**Дія.** Її побудовано на next‑intl із правилами, дотримання яких справді забезпечує інструментарій. Для данської зафіксовано словник і стиль — справжні літери æøå, неформальне звертання «du», правильні знаки наголосу в наказовому способі та смислові відповідники для складних іменників, щоб їх перекладали за змістом, а не дослівно, — і лінтер стежить, щоб так і було. Діє жорсткий ліміт у 400 рядків на файл простору імен, а підхід «розділити й злити» дає змогу поділити велику область на вкладені файли, які потім без проблем зливаються назад, замість того щоб один файл ріс нескінченно; саме через цей ліміт 12 027 повідомлень кожної локалі розміщено в 458 файлах, а не в кількох величезних. Перевірка лінтера звіряє ключі між локалями, тож нічого не протікає і не губиться. А збережені перевизначення зливаються за каталогом, а не через крихкі резервні значення верхнього рівня — та сама ідея глибокого злиття, що й для налаштувань.

**Результат.** Обидві локалі, у яких разом 24 054 повідомлення, лишаються коректними й узгодженими, а файли — придатними до супроводу, хоч кількість рядків і зростає. Якість мови тепер гарантує інструментарій на кожному коміті, і вона вже не псується непомітно щоразу, коли хтось поспіхом додає рядок. Несна конструкція тут — саме ліміт: без обмеження на файл замість 458 файлів було б дванадцять, і ніхто б їх не відкривав.

---

- Роль: Full‑Stack‑інженер
- Категорії: [Frontend‑розробка](https://engineer.company/uk/categories/frontend/), [Full‑Stack‑розробка](https://engineer.company/uk/categories/full-stack/), [Автоматизація та CI/CD](https://engineer.company/uk/categories/automation/), [Інтернаціоналізація](https://engineer.company/uk/categories/i18n/), [Документація](https://engineer.company/uk/categories/documentation/)
- Послуги: [Frontend‑розробка](https://engineer.company/uk/services/frontend-development/), [Інтернаціоналізація та локалізація](https://engineer.company/uk/services/i18n-localization/)

<https://engineer.company/uk/portfolio/built-an-english-danish-i18n-system/>
