Документация JavaScript (Vanilla)

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, независимо от фреймворка.

main.js
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"
Bridge Mode — main.js
import { registerI1n } from 'i1n'

// Connect any custom translation function
registerI1n((key, params) => myCustomLookup(key, params))

Связанное