i1n
i1n
Tu aplicación en todos los idiomas. Un solo comando.

Localización como código. Envía tus claves de traducción, la IA las traduce a 182 idiomas y obtén definiciones de TypeScript con seguridad de tipos. Creado para desarrolladores, agentes de IA y equipos de producto.
Gratis para siempre · Sin tarjeta de crédito · i1n.ai
¿Por qué i1n?
La internacionalización (i18n) tradicional implica docenas de archivos JSON, cero seguridad de tipos, horas de copiar y pegar, y despliegues que fallan a las 2 de la mañana. Las herramientas existentes cobran más de 120 $/mes y requieren flujos de trabajo basados en navegador.
i1n es diferente:
Un solo comando —
i1n push --translate es,fr,jay listo.Seguridad de tipos —
i1n.d.tsautogenerado con autocompletado completo en el IDE.Nativo de IA — Servidor MCP para Cursor, Claude Code, Windsurf. Tu agente se encarga de la i18n por ti.
Cero migración — El modo Bridge envuelve tu i18next/next-intl/vue-i18n existente.
6 veces más barato — Plan gratuito incluido. Pro a 19 $/mes frente a los 120 $/mes de Lokalise.
Related MCP server: i18n Agent
📦 Instalación
# 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 i1nCompatible con npm, pnpm, yarn y bun.
🏁 Inicio rápido
# 1. Initialize (auth + auto-detect setup)
i1n init
# 2. Push your translation keys
i1n push
# 3. Pull translations + auto-generated TypeScript types
i1n pull✨ Características y comandos clave
🛠️ i1n init
Configuración interactiva que prepara tu espacio de trabajo.
Autenticación mediante clave API.
¿Eres nuevo? Si aún no tienes una clave, la CLI te ofrece una guía clara sobre cómo empezar.
Detección automática de frameworks (Next.js, Vite, Expo, Flutter, Rails, etc.).
Guarda la configuración en
i1n.config.json(ignorado automáticamente mediante.gitignore).Orquestación de IA: Opcionalmente configura reglas para tus herramientas de codificación con IA.
⬆️ i1n push
Sincroniza tus traducciones locales con i1n.
Detecta nuevas claves y cambios en el origen.
Traducción inteligente: Ofrece traducir las claves faltantes con una estimación de coste antes de proceder.
Capa de caché eficiente: las traducciones repetidas cuestan una fracción de las nuevas.
⬇️ i1n pull
Descarga traducciones y genera IDs con seguridad de tipos.
Actualiza los archivos locales de idioma en el formato configurado.
Genera
i1n.d.tspara un autocompletado completo en el IDE.
📊 i1n limits
Seguimiento de uso en tiempo real.
Consulta tu plan actual y el uso de créditos.
Monitoriza los espacios de idioma activos y la capacidad disponible.
🧠 i1n setup-ai
Convierte tu IDE en un experto en localización.
Genera reglas específicas del proyecto para Cursor (
.mdc), Claude Code (CLAUDE.md), Windsurf y más.Asegura que los agentes de IA sigan tus convenciones de nomenclatura, estructura de archivos y voz de marca.
🔌 i1n mcp
Servidor MCP para asistentes de codificación con IA.
Inicia un servidor del Protocolo de Contexto de Modelo (MCP) que permite a Cursor, Claude Code, Windsurf y otros asistentes de IA ejecutar comandos de i1n directamente desde tu 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 herramientas disponibles:
Herramienta | Descripción |
| Obtener estado del proyecto, plan, límites e idiomas activos |
| Enviar archivos de traducción locales con detección automática de diferencias |
| Obtener traducciones y generar definiciones de TypeScript con seguridad de tipos |
| Traducir claves a idiomas especificados usando IA |
| Añadir nuevos idiomas con traducción automática opcional |
| Extraer cadenas del código, enviarlas como claves y traducirlas a todos los idiomas |
| Buscar claves de traducción existentes por nombre o valor |
| Detectar tu librería de i18n (i18next, vue-i18n, next-intl, etc.) y conectar el modo bridge de i1n de extremo a extremo |
El flujo de trabajo definitivo: dile a tu agente de IA "internacionaliza este componente":
El agente lee tu archivo e identifica las cadenas codificadas de forma rígida.
Llama a
i1n_extract_and_translatecon las cadenas extraídas.i1n envía las claves, traduce a todos los idiomas activos y genera los tipos.
El agente reescribe tu componente con llamadas
t('key').
Una tarea de 60 minutos en 30 segundos.
📁 Formatos compatibles
Formato | Frameworks | Ejemplo de archivo |
JSON anidado | i18next, next-intl, vue-i18n |
|
JSON plano | React Native, Genérico |
|
ARB | Flutter / Dart |
|
YAML | Ruby on Rails |
|
Android XML | Android nativo |
|
Apple Strings | iOS / macOS |
|
TypeScript | JSON con seguridad de tipos |
|
🧩 Uso del SDK
El paquete i1n incluye un SDK en tiempo de ejecución para proyectos JS/TS web y móviles. Puedes usarlo de dos maneras:
Modo autónomo — Reemplaza tu librería de i18n
Usa el motor nativo de i1n directamente. No se necesitan dependencias externas.
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"La resolución de claves funciona automáticamente tanto con estructuras anidadas como planas: usa el formato que prefiera tu proyecto.
Modo Bridge — Mantén tu librería, añade seguridad de tipos
¿Ya usas i18next, vue-i18n o react-intl? Conéctalo a i1n con una línea y obtén autocompletado completo.
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 i1nFunciona con cualquier librería:
vue-i18n:
registerI1n((key, params) => i18n.global.t(key, params))react-intl:
registerI1n((key, params) => intl.formatMessage({ id: key }, params))Personalizado:
registerI1n((key) => myLookup(key))
Pluralización
Define variantes plurales con los sufijos _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"Interpolación
Tres sintaxis soportadas universalmente: {var}, {{var}}, %{var}
JavaScript (sin TypeScript)
El SDK funciona en JS plano; simplemente no obtendrás autocompletado:
import { init, t } from "i1n";
init({ locale: "en_us", resources: { en_us: { greeting: "Hello {name}" } } });
t("greeting", { name: "World" }); // "Hello World"⚛️ Integración con React / Preact
Para una experiencia "conectar y usar", utiliza este patrón de proveedor minimalista.
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) });Uso:
const { t, setLocale } = useI1n();
return (
<div>
<h1>{t("auth.title", { user: "Fran" })}</h1>
<button onClick={() => setLocale("es_es")}>Español</button>
</div>
);Plataformas no JS
Los proyectos de Flutter, Android e iOS no utilizan el SDK. Utilizan los archivos de traducción (.arb, .xml, .strings) generados por i1n pull con sus sistemas de localización nativos.
🛡️ Experiencia del desarrollador
🔒 Privacidad y seguridad
Auto-ignorar:
i1n initañade automáticamente los archivos de configuración sensibles a tu.gitignore.Gestión de secretos: Las claves API solo se almacenan localmente y nunca se envían al control de versiones.
Transmisión cifrada: Todas las operaciones de sincronización se realizan a través de canales HTTPS seguros.
🔒 Seguridad de tipos sin configuración (TypeScript)
La CLI genera un archivo de declaración ligero (i1n.d.ts) que aumenta automáticamente el paquete i1n con las claves específicas de tu proyecto.
Pull: Ejecuta
i1n pull. La CLI generalocales/i1n.d.tsy actualiza automáticamente tutsconfig.jsonpara que tu IDE los encuentre inmediatamente.Uso: Importa
tdesdei1ny obtén autocompletado completo + comprobación en tiempo de compilación. No se requiere mapeo manual de rutas.
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);La comprobación estricta de literales llegó en la versión
1.3.0: pasar una cadena codificada que no está enI1nKeysahora es un error de TypeScript (se acabaron las advertencias silenciosas de[i1n] Missing translationen tiempo de ejecución). Las variables tipadas comostringsiguen funcionando sin necesidad de conversiones.
💳 Precios
Plan | Precio | Claves | Idiomas | Traducciones IA/mes |
Starter | 0 $ | 600 | 2 | 2.000 |
Pro | 19 $/mes | 5.000 | 5 | 10.000 |
Business | 49 $/mes | 15.000 | 12 | 20.000 |
Enterprise | Personalizado | Personalizado | 182 | Personalizado |
La CLI, el SDK y el servidor MCP son gratuitos en todos los planes. No se requiere tarjeta de crédito para el plan Starter.
Pro de por vida desde 99 $ — solo para los primeros 200 usuarios.
📄 Licencia
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