Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni
🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!11.10.2022
Бібліотека i18next як шар людської мови в додатку
📚🚲🌎 Для інтернаціоналізації в Javascript добре відома бібліотека i18next. Але вона буде корисна, навіть якщо ви поки не плануєте перекладати додаток.
Сьогодні піднялося питання — досить типове — як варіювати деяке повідомлення для однини та множини, тобто зробити плюралізацію.
Класичне інженерне рішення — просто змінити текст так, щоб плюралізація на нього не впливала. Наприклад, замість “5 повідомлень” - “повідомлень: 5”. Швидко, просто, зовсім не якісно.
Наступний рівень — винайти власний “ровер”, ну, наприклад, функцію, що приймає кількість та варіанти тексту. Або, для англійської, додає закінчення “s” та, якщо здогадається, обробляє винятки. Підходів багато, але спільне в них те, що якісний плюралізатор вийде доволі складним. (Тому я і раджу почати з функції, що приймає текст для однини та множини — це рішення просте та надійне, хоч і не “елегантне”.)
Так от, якісний та довершений плюралізатор вже є в i18next. Як і інші засоби роботи з текстами:
- форматування дат;
- вибір рядка зі словника (щоб зробити підпис для переліку значень, наприклад,
status
;) - шаблонування або ж будування тексту зі структури.
Взагалі, я дивлюсь на i18next як на “шар людської мови” - тобто єдине місце для всіх рядків, що призначені для читання користувачами. В іншому коді мають вживатись тільки ключі до словника i18next.
Можна почати з використання i18next для плюралізації та йменування статусів, а потім, коли буде потрібен переклад, у вас вже буде готова основа.