Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni

11.10.2022

📚🚲🌎 Для інтернаціоналізації в Javascript добре відома бібліотека i18next. Але вона буде корисна, навіть якщо ви поки не плануєте перекладати додаток.

Сьогодні піднялося питання — досить типове — як варіювати деяке повідомлення для однини та множини, тобто зробити плюралізацію.

Класичне інженерне рішення — просто змінити текст так, щоб плюралізація на нього не впливала. Наприклад, замість “5 повідомлень” - “повідомлень: 5”. Швидко, просто, зовсім не якісно.

Наступний рівень — винайти власний “ровер”, ну, наприклад, функцію, що приймає кількість та варіанти тексту. Або, для англійської, додає закінчення “s” та, якщо здогадається, обробляє винятки. Підходів багато, але спільне в них те, що якісний плюралізатор вийде доволі складним. (Тому я і раджу почати з функції, що приймає текст для однини та множини — це рішення просте та надійне, хоч і не “елегантне”.)

Так от, якісний та довершений плюралізатор вже є в i18next. Як і інші засоби роботи з текстами:

Взагалі, я дивлюсь на i18next як на “шар людської мови” - тобто єдине місце для всіх рядків, що призначені для читання користувачами. В іншому коді мають вживатись тільки ключі до словника i18next.

Можна почати з використання i18next для плюралізації та йменування статусів, а потім, коли буде потрібен переклад, у вас вже буде готова основа.