Skip to main content
Glama

i1n

Ваше приложение на любом языке. Одной командой.

npm license MCP

demo

Локализация как код. Отправляйте ключи перевода, ИИ переводит их на 182 языка, получайте типобезопасные определения TypeScript. Создано для разработчиков, ИИ-агентов и продуктовых команд.

Бесплатно навсегда · Без кредитной карты · i1n.ai


Почему i1n?

Традиционная интернационализация (i18n) — это десятки JSON-файлов, отсутствие типобезопасности, часы копирования и вставки, а также деплои, которые ломаются в 2 часа ночи. Существующие инструменты стоят от $120/мес и требуют работы через браузер.

i1n — это другое:

  • Одна командаi1n push --translate es,fr,ja и готово

  • Типобезопасность — автоматически генерируемый i1n.d.ts с полной поддержкой автодополнения в IDE

  • ИИ-ориентированность — MCP-сервер для Cursor, Claude Code, Windsurf. Ваш агент берет интернационализацию на себя

  • Нулевая миграция — режим Bridge Mode работает поверх вашего существующего i18next/next-intl/vue-i18n

  • В 6 раз дешевле — есть бесплатный тариф. Pro за $19/мес против $120/мес у Lokalise


📦 Установка

# To use the CLI (global)
npm install -g i1n

# To use the SDK + types (in your app)
npm install i1n

# Local CLI usage (optional)
npm install -D i1n

Поддерживает npm, pnpm, yarn и bun.


🏁 Быстрый старт

# 1. Initialize (auth + auto-detect setup)
i1n init

# 2. Push your translation keys
i1n push

# 3. Pull translations + auto-generated TypeScript types
i1n pull

✨ Основные возможности и команды

🛠️ i1n init

Интерактивная настройка, которая подготавливает ваше рабочее пространство.

  • Аутентификация через API-ключ.

  • Новичок? Если у вас еще нет ключа, CLI даст четкие инструкции, как начать.

  • Автоматическое определение фреймворков (Next.js, Vite, Expo, Flutter, Rails и др.).

  • Сохранение конфигурации в i1n.config.json (автоматически игнорируется через .gitignore).

  • ИИ-оркестрация: Опциональная настройка правил для ваших ИИ-инструментов разработки.

⬆️ i1n push

Синхронизирует ваши локальные переводы с i1n.

  • Обнаруживает новые ключи и изменения в исходниках.

  • Умный перевод: Предлагает перевести недостающие ключи с оценкой стоимости перед началом.

  • Эффективный уровень кэширования — повторные переводы стоят значительно дешевле новых.

⬇️ i1n pull

Загружает переводы и генерирует типобезопасные ID.

  • Обновляет локальные файлы локализации в настроенном вами формате.

  • Генерирует i1n.d.ts для полноценного автодополнения в IDE.

📊 i1n limits

Отслеживание использования в реальном времени.

  • Просмотр текущего тарифа и использования кредитов.

  • Мониторинг активных языковых слотов и доступной емкости.

🧠 i1n setup-ai

Превращает вашу IDE в эксперта по локализации.

  • Генерирует специфичные для проекта правила для Cursor (.mdc), Claude Code (CLAUDE.md), Windsurf и других.

  • Гарантирует, что ИИ-агенты следуют вашим соглашениям об именовании, структуре файлов и голосу бренда.

🔌 i1n mcp

MCP-сервер для ИИ-ассистентов программирования.

Запускает сервер Model Context Protocol, который позволяет Cursor, Claude Code, Windsurf и другим ИИ-ассистентам выполнять команды i1n прямо из вашей IDE.

# Add to Claude Code
claude mcp add i1n -- npx i1n mcp

# Or add to .mcp.json / cursor config
{
  "mcpServers": {
    "i1n": {
      "command": "npx",
      "args": ["i1n", "mcp"]
    }
  }
}

Доступно 7 инструментов:

Инструмент

Описание

i1n_status

Получить статус проекта, тариф, лимиты и активные языки

i1n_push

Отправить локальные файлы перевода с автоматическим обнаружением diff

i1n_pull

Получить переводы и сгенерировать типобезопасные определения TypeScript

i1n_translate

Перевести ключи на указанные языки с помощью ИИ

i1n_add_language

Добавить новые языки с опциональным автопереводом

i1n_extract_and_translate

Извлечь строки из кода, отправить как ключи, перевести на все языки

i1n_search

Поиск существующих ключей перевода по имени или значению

Убийственный рабочий процесс — скажите своему ИИ-агенту «интернационализируй этот компонент»:

  1. Агент читает ваш файл и определяет жестко закодированные строки

  2. Он вызывает i1n_extract_and_translate с извлеченными строками

  3. i1n отправляет ключи, переводит на все активные языки, генерирует типы

  4. Агент переписывает ваш компонент с вызовами t('key')

60-минутная задача за 30 секунд.


📁 Поддерживаемые форматы

Формат

Фреймворки

Пример файла

Вложенный JSON

i1next, next-intl, vue-i18n

en/common.json

Плоский JSON

React Native, Generic

locales/en.json

ARB

Flutter / Dart

app_en.arb

YAML

Ruby on Rails

en.yml

Android XML

Native Android

strings.xml

Apple Strings

iOS / macOS

Localizable.strings

TypeScript

Типобезопасный JSON

locales/en.ts


🧩 Использование SDK

Пакет i1n включает SDK времени выполнения для JS/TS проектов в вебе и на мобильных устройствах. Вы можете использовать его двумя способами:

Автономный режим — Замените свою библиотеку i18n

Используйте нативный движок i1n напрямую. Никаких внешних зависимостей не требуется.

import { init, t, setLocale } from "i1n";

// Load your translation resources
init({
  locale: "en_us",
  resources: {
    en_us: {
      auth: { login: "Login", title: "Welcome back, {user}" },
      items_one: "One item",
      items_other: "{count} items",
    },
    es_es: {
      auth: { login: "Entrar", title: "Bienvenido de nuevo, {user}" },
      items_one: "Un elemento",
      items_other: "{count} elementos",
    },
  },
});

// Autocomplete and type-safety work out of the box after 'i1n pull'
t("auth.login"); // "Login"

// Support for default values (useful during development)
t("new.key", { defaultValue: "Coming soon..." }); // "Coming soon..."

// Variables & Plurals
t("auth.title", { user: "Fran" }); // "Welcome back, Fran"
t("items", { count: 5 }); // "5 items"

// Switch language at runtime
setLocale("es_es");
t("auth.login"); // "Entrar"

Разрешение ключей работает автоматически как с вложенными, так и с плоскими структурами — используйте любой формат, который предпочитает ваш проект.

Режим Bridge — Сохраните свою библиотеку, добавьте типобезопасность

Уже используете i1next, vue-i18n или react-intl? Подключите его к i1n одной строкой и получите полное автодополнение.

import i18next from "i18next";
import { registerI1n, t } from "i1n";

// Set up i18next as usual
await i18next.init({
  lng: "en",
  resources: {
    /* ... */
  },
});

// Connect to i1n — one line
registerI1n((key, params) => i18next.t(key, params));

// Now t() uses i18next under the hood, but with strict type checking
t("common.greeting", { name: "World" }); // Powered by i18next, typed by i1n

Работает с любой библиотекой:

  • vue-i18n: registerI1n((key, params) => i18n.global.t(key, params))

  • react-intl: registerI1n((key, params) => intl.formatMessage({ id: key }, params))

  • Custom: registerI1n((key) => myLookup(key))

Плюрализация

Определяйте варианты множественного числа с суффиксами _zero, _one, _other:

// In your translation files:
// "items_zero": "No items"
// "items_one": "One item"
// "items_other": "{count} items"

t("items", { count: 0 }); // "No items"
t("items", { count: 1 }); // "One item"
t("items", { count: 5 }); // "5 items"

Интерполяция

Универсально поддерживаются три синтаксиса: {var}, {{var}}, %{var}

JavaScript (без TypeScript)

SDK работает на обычном JS — вы просто не получаете автодополнение:

import { init, t } from "i1n";
init({ locale: "en_us", resources: { en_us: { greeting: "Hello {name}" } } });
t("greeting", { name: "World" }); // "Hello World"

⚛️ Интеграция с React / Preact

Для работы по принципу «подключил и работай» используйте этот минималистичный паттерн провайдера.

import { createContext, useContext, useState, useEffect } from "react";
import { init, t, getLocale, setLocale as sdkSetLocale } from "i1n";

// 1. Initialize with wordings
// (In a real app, you'd probably import these from your locales folder)
init({
  locale: "en_us",
  resources: {
    /* ... */
  },
});

const STORAGE_KEY = "i1n-locale";
const I1nContext = createContext({
  locale: "en_us",
  setLocale: (l: string) => {},
});

// 2. Persistent Provider
export function I1nProvider({ children, defaultLocale = "en_us" }) {
  const [locale, setLocaleState] = useState(() => {
    return localStorage.getItem(STORAGE_KEY) || defaultLocale;
  });

  // Keep SDK in sync
  useEffect(() => {
    sdkSetLocale(locale);
  }, [locale]);

  const setLocale = (newLocale: string) => {
    localStorage.setItem(STORAGE_KEY, newLocale);
    setLocaleState(newLocale);
  };

  return (
    <I1nContext.Provider value={{ locale, setLocale }}>
      {children}
    </I1nContext.Provider>
  );
}

// 3. Simple Hook
export const useI1n = () => ({ t, ...useContext(I1nContext) });

Использование:

const { t, setLocale } = useI1n();

return (
  <div>
    <h1>{t("auth.title", { user: "Fran" })}</h1>
    <button onClick={() => setLocale("es_es")}>Español</button>
  </div>
);

Платформы без JS

Проекты на Flutter, Android и iOS не используют SDK. Они используют файлы перевода (.arb, .xml, .strings), сгенерированные i1n pull с помощью своих нативных систем локализации.


🛡️ Опыт разработчика

🔒 Конфиденциальность и безопасность

  • Авто-игнорирование: i1n init автоматически добавляет чувствительные файлы конфигурации в ваш .gitignore.

  • Управление секретами: API-ключи хранятся только локально и никогда не попадают в систему контроля версий.

  • Зашифрованная передача: Все операции синхронизации происходят через защищенные HTTPS-каналы.

🔒 Типобезопасность без настройки (TypeScript)

CLI генерирует легковесный файл деклараций (i1n.d.ts), который автоматически дополняет пакет i1n специфичными для вашего проекта ключами.

  1. Pull: Запустите i1n pull. CLI сгенерирует locales/i1n.d.ts и автоматически обновит ваш tsconfig.json, чтобы ваша IDE сразу их нашла.

  2. Использование: Импортируйте t из i1n и получите полное автодополнение + проверку во время компиляции. Никакого ручного сопоставления путей не требуется.

import { t } from "i1n";

// Full autocomplete & compile-time checking
t("auth.login.title");

// ERROR: Argument of type '"auth.login.titlse"' is not assignable...
t("auth.login.titlse");

💳 Тарифы

Тариф

Цена

Ключи

Языки

ИИ-переводов/мес

Starter

$0

600

2

2,000

Pro

$19/мес

5,000

5

10,000

Business

$49/мес

15,000

12

20,000

Enterprise

Индивид.

Индивид.

182

Индивид.

CLI, SDK и MCP-сервер бесплатны на любом тарифе. Для Starter кредитная карта не требуется.

Пожизненный Pro от $99 — только для первых 200 пользователей.


📄 Лицензия

MIT — © 2026 i1n.ai

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Pakvothe/i1n-cli'

If you have feedback or need assistance with the MCP directory API, please join our Discord server