JavaScript (Vanilla)
Используйте i1n в любом проекте JavaScript или TypeScript без фреймворка.
Настройка
Установите i1n как зависимость (npm install i1n) и выполните команду i1n init для настройки вашего проекта. CLI настраивает вложенный формат JSON в каталоге locales/.
i1n SDK работает в любой среде JavaScript или TypeScript — Node.js, браузере, Deno или Bun. Зависимости от фреймворков или инструментов сборки не требуются.
Использование
Импортируйте init и t из i1n. Вызовите init() с вашим локальным кодом и ресурсами перевода, затем используйте t() для получения переведенных строк. Переменные интерполируются с использованием синтаксиса {var}, {{var}} или %{var}.
Используйте setLocale() для смены языков во время выполнения. Множественное число поддерживается с помощью суффиксов ключей _zero, _one и _other. Сгенерированный файл i1n.d.ts обеспечивает полную автозавершение, если вы используете TypeScript.
Режим моста
Если ваш проект уже использует пользовательскую функцию перевода или систему поиска, подключите ее с помощью registerI1n((key, params) => yourFunction(key, params)). Это добавит типобезопасное автодополнение i1n к любой существующей настройке.
Режим моста работает с любой функцией, которая принимает ключ и необязательные параметры и возвращает строку. Это делает i1n совместимым с любым пользовательским решением i18n, независимо от фреймворка.
import { init, t } from 'i1n'
init({
locale: 'en_us',
resources: {
en_us: { greeting: 'Hello {name}' },
es_es: { greeting: 'Hola {name}' }
}
})
t('greeting', { name: 'World' }) // "Hello World" import { registerI1n } from 'i1n'
// Connect any custom translation function
registerI1n((key, params) => myCustomLookup(key, params))