Мультиязычная архитектура для open-source платформы

Спроектировал i18n-архитектуру open-source проекта с поддержкой 11 языков. Новый язык добавляется за 30 минут без знания кода.

Мультиязычная архитектура для open-source платформы

Задача

NextOrders - open-source платформа доставки, задумывалась для разных стран. Стандартный подход с JSON-файлами переводов быстро превращается в хаос: ключи рассинхронизируются, а контрибьюторы из других стран не могут добавить свой язык без погружения в код. Нужно было сделать так, чтобы перевод мог добавить переводчик, а не программист.

Технические подробности

Решение

Построил i18n на nuxt-i18n: один JSON-файл на язык, плоские ключи с неймспейсами. Все ключи типизированы через TypeScript - IDE подсказывает и ругается на пропущенные переводы. Сделал locale-template.json с комментариями - контрибьютор копирует, переименовывает, переводит. Pluralization через ICU - русский, арабский, любой язык работает из коробки. Роутинг с префиксами, автоопределение языка, hreflang теги и RTL-поддержка через CSS logical properties.

Результат

Платформа поддерживает 11 языков. Контрибьюторы из 5 стран добавили свои языки сами - в среднем 30 минут на 120 ключей. Ни один PR с переводом не потребовал помощи с кодом.

Просмотров: 148

Ищете инженера в команду или для продукта?

Напишите о команде, продукте или задаче, которую нужно решить. Почта и Telegram ведут прямо ко мне.

Для начала хватит короткого описания и ссылки.