Saltar al contenido principal

Inicio rápido

Traduzca su primer archivo de localización en 60 segundos.

1. Configure sus archivos de localización

Cree un archivo de localización de origen. Rosetta es compatible con JSON, TOML y YAML:

locales/en.json
{
"hero": {
"title": "Welcome to our platform",
"subtitle": "Build something amazing"
},
"nav": {
"home": "Home",
"about": "About",
"contact": "Contact"
}
}

2. Configure su clave de API

Elija un proveedor y configure la clave:

# Option A: OpenRouter (200+ models, recommended)
export OPENROUTER_API_KEY=sk-or-v1-...

# Option B: Gemini (free tier — zero cost to start)
export GEMINI_API_KEY=AI...

Obtenga una clave gratuita de Gemini en aistudio.google.com/apikey. Obtenga una clave de OpenRouter en openrouter.ai.

3. Ejecute la sincronización

npx i18n-rosetta sync

:::tip ¿Utiliza Gemini? Si eligió la Opción B (Gemini), agregue --method gemini:

npx i18n-rosetta sync --method gemini

:::

Rosetta hará lo siguiente:

  1. Detectará automáticamente locales/en.json como origen
  2. Encontrará (o solicitará) los idiomas de destino
  3. Traducirá todas las claves
  4. Escribirá locales/fr.json, locales/ja.json, etc.
  5. Creará .i18n-rosetta.lock para realizar un seguimiento de lo que se ha traducido

4. Revise los resultados

cat locales/fr.json
{
"hero": {
"title": "Bienvenue sur notre plateforme",
"subtitle": "Construisez quelque chose d'incroyable"
},
"nav": {
"home": "Accueil",
"about": "À propos",
"contact": "Contact"
}
}

¿Qué sucede después?

Cuando cambia una cadena de origen, rosetta detecta el cambio mediante el seguimiento de hash SHA-256 y vuelve a traducir solo esa clave en la siguiente sincronización:

locales/en.json (updated)
{
"hero": {
"title": "Welcome to Acme Platform", // ← changed
"subtitle": "Build something amazing" // ← unchanged, skipped
}
}
npx i18n-rosetta sync
# Only "hero.title" is re-translated across all locales

La clave sin cambios (hero.subtitle) se sirve desde la caché de la Translation Memory de rosetta — sin llamadas a la API, sin costo. La caché se genera automáticamente durante cada sincronización y se almacena en .rosetta/tm.json.

Opcional: Cree un archivo de configuración

Para tener más control, genere un archivo de configuración:

npx i18n-rosetta init # guided wizard
npx i18n-rosetta init --yes --langs fr,de,ja # quick setup with specific targets

El asistente guiado lo guía a través de los register presets de cada idioma: instrucciones predefinidas de tono/formalidad adaptadas a su sistema lingüístico. El francés tiene ajustes preestablecidos T-V (vouvoiement vs tutoiement), el coreano tiene niveles de habla (해요체 vs 합쇼체 vs 해체) y el japonés tiene opciones de keigo (です/ます vs 丁寧語).

O cree una configuración manualmente con claves preestablecidas:

i18n-rosetta.config.json
{
"version": 3,
"inputLocale": "en",
"localesDir": "./locales",
"languages": {
"fr": "casual-tu",
"ko": "polite-haeyo",
"ja": "polite"
},
"model": "google/gemini-2.5-flash"
}

Ejecute npx i18n-rosetta init para explorar los ajustes preestablecidos disponibles para cada idioma.

Opcional: Watch Mode

Traduzca automáticamente cuando cambie su archivo de origen:

npx i18n-rosetta watch

Próximos pasos