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

Локализация как код. Отправляйте ключи перевода, ИИ переводит их на 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
Related MCP server: i18n Agent
📦 Установка
# 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"]
}
}
}Доступно 8 инструментов:
Инструмент | Описание |
| Получить статус проекта, тариф, лимиты и активные языки |
| Отправить локальные файлы переводов с автоматическим обнаружением diff |
| Получить переводы и сгенерировать типобезопасные определения TypeScript |
| Перевести ключи на указанные языки с помощью ИИ |
| Добавить новые языки с опциональным автопереводом |
| Извлечь строки из кода, отправить как ключи, перевести на все языки |
| Поиск существующих ключей перевода по имени или значению |
| Обнаружить вашу библиотеку i18n (i18next, vue-i18n, next-intl и др.) и настроить режим моста i1n |
Убийственный рабочий процесс — скажите своему ИИ-агенту «интернационализируй этот компонент»:
Агент читает ваш файл и определяет жестко закодированные строки
Он вызывает
i1n_extract_and_translateс извлеченными строкамиi1n отправляет ключи, переводит на все активные языки, генерирует типы
Агент переписывает ваш компонент с вызовами
t('key')
Задача на 60 минут за 30 секунд.
📁 Поддерживаемые форматы
Формат | Фреймворки | Пример файла |
Вложенный JSON | i18next, next-intl, vue-i18n |
|
Плоский JSON | React Native, Generic |
|
ARB | Flutter / Dart |
|
YAML | Ruby on Rails |
|
Android XML | Native Android |
|
Apple Strings | iOS / macOS |
|
TypeScript | Типобезопасный JSON |
|
🧩 Использование 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"Разрешение ключей работает как с вложенными, так и с плоскими структурами автоматически — используйте любой формат, который предпочитает ваш проект.
Режим моста — Сохраните свою библиотеку, добавьте типобезопасность
Уже используете i18next, 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 специфичными для вашего проекта ключами.
Pull: Запустите
i1n pull. CLI сгенерируетlocales/i1n.d.tsи автоматически обновит вашtsconfig.json, чтобы ваша IDE сразу их нашла.Использование: Импортируйте
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");
// Dynamic strings still pass through — useful for `t(item.name)`,
// runtime-built keys, etc.
declare const dynamicKey: string;
t(dynamicKey);Строгая проверка литералов появилась в
1.3.0: передача жестко закодированной строки, которой нет вI1nKeys, теперь вызывает ошибку TypeScript (больше никаких молчаливых предупреждений[i1n] Missing translationво время выполнения). Переменные с типомstringпродолжают работать без приведения типов.
💳 Тарифы
Тариф | Цена | Ключи | Языки | ИИ-переводов/мес |
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
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
AI-native git hosting — repos, PRs, issues, CI gates, and AI code review over MCP (60 tools).
8 AI services via MCP: content, code, image, docs, data extraction, translation, SEO, email.
One MCP endpoint for Claude, GPT & Gemini: 100+ tools + no-code connectors + agent workers.
Build, validate, deploy — HTTP APIs, cron jobs, webhooks and MCP tools — from your AI client.
Related MCP Servers
AlicenseAqualityCmaintenanceAI-powered localization platform. Translate text, search translation memory, and access style guides from any MCP-compatible AI tool.81MIT- AlicenseNot gradedqualityDmaintenanceAI-powered translation management built for AI agents. Automate localization with regional sensitivity and zero TMS overhead. Works with Claude Code, Cursor, VS Code via MCP protocol. Supports JSON, YAML, Markdown, PO and more.13MIT
- AlicenseAqualityBmaintenanceMCP server for AI-powered translation management in i18n projects, enabling automated locale detection, translation status checks, and sync via LangAPI.4391MIT
- AlicenseAqualityAmaintenanceMCP server for managing i18n translation files — gives your AI agent full control over your app's translations without dumping entire locale files into context.1825111MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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