Что использовал для интернационализации

Ответ

Для интернационализации (i18n) чаще всего использую библиотеки:

  1. i18next – мощное решение с поддержкой плагинов (кеширование, детектор языка). Пример:
import i18n from 'i18next';
i18n.init({ lng: 'en', resources: { en: { translation: { key: 'value' }}});
  1. React-Intl (FormatJS) – популярен в React-экосистеме, поддерживает форматирование дат/чисел:
import { IntlProvider, FormattedMessage } from 'react-intl';
<IntlProvider locale="en" messages={messages}>
  <FormattedMessage id="greeting" defaultMessage="Hello" />
</IntlProvider>
  1. LinguiJS – простой API с поддержкой ICU-сообщений и извлечением ключей.

Для небольших проектов можно обойтись JSON-файлами с переводами и контекстом. Важно учитывать:

  • Динамическую загрузку переводов
  • Плюрализацию (1 cat vs 2 cats)
  • Форматирование дат/валют
  • RTL-поддержку для арабского/иврита