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:
{
"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:
- Detectará automáticamente
locales/en.jsoncomo origen - Encontrará (o solicitará) los idiomas de destino
- Traducirá todas las claves
- Escribirá
locales/fr.json,locales/ja.json, etc. - Creará
.i18n-rosetta.lockpara 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:
{
"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:
{
"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
- Configuración — Referencia completa de configuración
- Métodos de traducción — Elija el método adecuado para cada par
- Translation Memory — Cómo la caché le ahorra dinero en las reejecuciones
- Trabajo con traductores profesionales — Exporte a XLIFF para revisión humana
- Integración de frameworks — Hugo, next-intl, react-i18next
- CI/CD — Automatice las traducciones en su pipeline
- Solución de problemas — Problemas comunes y soluciones