Перейти до вмісту

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

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

  • Dictionary, words, grammar
    Фото: PDPics / Pixabay
  • Book, pages, chapters
    Фото: Pexels / Pixabay

12,027 повідомлень на локаль — англійською та данською

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

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

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

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

Одна частина довшого переліку — і він увесь на цьому сайті.

Кожен запис написано однаково: ситуація, завдання, що ми зробили і що змінилося.

Переглянути весь перелік