Skip to main content
Glama

i1n

모든 언어로 제공되는 앱. 단 하나의 명령어.

npm license MCP Listed on MCP Servers Security: DeepSec

demo

코드 기반 로컬라이제이션. 번역 키를 푸시하면 AI가 182개 언어로 번역하며, 타입 안전한 TypeScript 정의를 풀(pull)할 수 있습니다. 개발자, AI 에이전트 및 제품 팀을 위해 구축되었습니다.

평생 무료 · 신용카드 불필요 · i1n.ai


왜 i1n인가요?

기존의 i18n 방식은 수십 개의 JSON 파일, 타입 안전성 부재, 반복적인 복사-붙여넣기 작업, 그리고 새벽 2시에 발생하는 배포 오류를 의미합니다. 기존 도구들은 월 $120 이상의 비용을 청구하며 브라우저 기반 워크플로우를 요구합니다.

i1n은 다릅니다:

  • 단 하나의 명령어i1n push --translate es,fr,ja로 완료

  • 타입 안전 — IDE 자동 완성을 완벽하게 지원하는 i1n.d.ts 자동 생성

  • AI 네이티브 — Cursor, Claude Code, Windsurf용 MCP 서버 제공. 에이전트가 알아서 i18n을 처리합니다.

  • 제로 마이그레이션 — 브리지 모드를 통해 기존 i18next/next-intl/vue-i18n을 그대로 사용 가능

  • 6배 저렴 — 무료 티어 포함. Pro 버전은 월 $19로 Lokalise의 월 $120 대비 저렴


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에 추가됨).

  • AI 오케스트레이션: AI 코딩 도구를 위한 규칙을 선택적으로 설정합니다.

⬆️ i1n push

로컬 번역을 i1n으로 동기화합니다.

  • 새로운 키와 소스 변경 사항을 감지합니다.

  • 스마트 번역: 누락된 키에 대해 번역을 제안하며, 진행 전 비용을 추정합니다.

  • 효율적인 캐싱 계층 — 반복되는 번역은 새로운 번역보다 훨씬 저렴합니다.

⬇️ i1n pull

번역을 다운로드하고 타입 안전한 ID를 생성합니다.

  • 설정된 형식으로 로컬 로케일 파일을 업데이트합니다.

  • IDE 자동 완성을 위해 i1n.d.ts를 생성합니다.

📊 i1n limits

실시간 사용량 추적.

  • 현재 플랜과 크레딧 사용량을 확인합니다.

  • 활성 언어 슬롯과 사용 가능한 용량을 모니터링합니다.

🧠 i1n setup-ai

IDE를 로컬라이제이션 전문가로 변신시킵니다.

  • Cursor (.mdc), Claude Code (CLAUDE.md), Windsurf 등을 위한 프로젝트별 규칙을 생성합니다.

  • AI 에이전트가 명명 규칙, 파일 구조 및 브랜드 보이스를 준수하도록 보장합니다.

🔌 i1n mcp

AI 코딩 어시스턴트를 위한 MCP 서버.

Model Context Protocol 서버를 시작하여 Cursor, Claude Code, Windsurf 및 기타 AI 어시스턴트가 IDE에서 직접 i1n 명령어를 실행할 수 있게 합니다.

# 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가지 도구 제공:

도구

설명

i1n_status

프로젝트 상태, 플랜, 제한 및 활성 언어 확인

i1n_push

자동 diff 감지를 통해 로컬 번역 파일 푸시

i1n_pull

번역을 풀(pull)하고 타입 안전한 TypeScript 정의 생성

i1n_translate

AI를 사용하여 지정된 언어로 키 번역

i1n_add_language

자동 번역 옵션과 함께 새 언어 추가

i1n_extract_and_translate

코드에서 문자열을 추출하여 키로 푸시하고 모든 언어로 번역

i1n_search

이름이나 값으로 기존 번역 키 검색

i1n_setup_bridge

i18n 라이브러리(i18next, vue-i18n, next-intl 등)를 감지하고 i1n 브리지 모드 연결

킬러 워크플로우 — AI 에이전트에게 "이 컴포넌트를 다국어화해줘"라고 말하세요:

  1. 에이전트가 파일을 읽고 하드코딩된 문자열을 식별합니다.

  2. 추출된 문자열로 i1n_extract_and_translate를 호출합니다.

  3. i1n이 키를 푸시하고, 모든 활성 언어로 번역하며, 타입을 생성합니다.

  4. 에이전트가 t('key') 호출을 사용하여 컴포넌트를 다시 작성합니다.

60분 걸릴 작업을 30초 만에 완료합니다.


📁 지원 형식

형식

프레임워크

파일 샘플

Nested JSON

i18next, next-intl, vue-i18n

en/common.json

Flat 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

Type-safe JSON

locales/en.ts


🧩 SDK 사용법

i1n 패키지에는 웹 및 모바일 JS/TS 프로젝트를 위한 런타임 SDK가 포함되어 있습니다. 두 가지 방식으로 사용할 수 있습니다:

독립형 모드 — 기존 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"

보간(Interpolation)

세 가지 구문을 범용적으로 지원합니다: {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를 사용하지 않습니다. 대신 i1n pull로 생성된 번역 파일(.arb, .xml, .strings)을 각 플랫폼의 네이티브 로컬라이제이션 시스템과 함께 사용합니다.


🛡️ 개발자 경험

🔒 개인정보 보호 및 보안

  • 자동 무시: i1n init은 민감한 설정 파일을 자동으로 .gitignore에 추가합니다.

  • 비밀 관리: API 키는 로컬에만 저장되며 버전 관리 시스템에 커밋되지 않습니다.

  • 암호화된 전송: 모든 동기화 작업은 안전한 HTTPS 채널을 통해 이루어집니다.

🔒 제로 설정 타입 안전성 (TypeScript)

CLI는 프로젝트의 특정 키로 i1n 패키지를 자동으로 보강하는 경량 선언 파일(i1n.d.ts)을 생성합니다.

  1. Pull: i1n pull을 실행합니다. CLI가 locales/i1n.d.ts를 생성하고 tsconfig.json자동으로 업데이트하여 IDE가 즉시 인식하도록 합니다.

  2. 사용: i1n에서 t를 가져와 완벽한 자동 완성 및 컴파일 타임 검사를 받으세요. 수동 경로 매핑이 필요 없습니다.

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으로 타입이 지정된 변수는 캐스팅 없이 계속 작동합니다.


💳 요금제

플랜

가격

언어

월간 AI 번역

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

Maintenance

ActivityMaintained
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    AI-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.
    13
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for managing i18n translation files — gives your AI agent full control over your app's translations without dumping entire locale files into context.
    18
    251
    11
    MIT

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