Preguntas frecuentes
Todo lo que necesitas saber sobre i18n-keyless antes de empezar.
¿Necesito gestionar los archivos de traducción?
No. No hay archivos JSON, ni paso de extracción de claves, ni plugin de compilación. Escribes tus frases en tu idioma de origen, el SDK las envía a la API en la primera solicitud, la API las traduce con IA, y cada solicitud posterior se sirve desde la caché. Tu código es la única fuente de verdad.
¿Qué ocurre cuando cambio el texto de origen?
El texto de origen es la clave. Si lo cambias, obtendrás una nueva clave con una traducción de IA fresca. La clave antigua simplemente deja de ser solicitada y el panel de control la limpia después de 30 días sin uso. Corregir una errata funciona igual: corrígela en el código, despliégala y el nuevo texto se traducirá en la primera solicitud.
¿Cuánto cuesta?
Autoalojado: completamente gratuito, proyectos ilimitados, sin suscripción y sin límite de uso — instala la imagen de Docker, usa tu propia clave de IA. ¿Te gusta? ¡Dame una propina! Alojado: un precio fijo por proyecto al mes, según usuarios activos mensuales — 4 € hasta 1.000, 9 € hasta 5.000, 29 € hasta 50.000, 99 € hasta 500.000 — facturado mensualmente, cancelable en cualquier momento. No hay precios por asiento, por palabra ni por cadena en ninguno de los casos.
¿Puedo exportar mis traducciones?
Sí. El panel de control tiene un botón "Exportar JSON" que descarga todas las traducciones de tu proyecto como un solo archivo JSON. La exportación incluye todas las filas, no solo las utilizadas en los últimos 30 días, por lo que es una copia de seguridad completa. No hay bloqueo: tus datos siempre están a un clic de distancia.
¿Qué frameworks soporta?
React, React Native, Vue, Svelte, Vanilla JS, Node.js, Ruby on Rails, Python, Go, Swift y Kotlin. Cada SDK funciona de la misma manera: envuelve tu texto en una llamada de traducción, y la API devuelve la traducción para el idioma actual. Los SDK del servidor son seguros para hilos y almacenan las traducciones en caché en memoria.
¿Cuántos idiomas son compatibles?
48 idiomas, incluyendo variantes regionales como zh-Hans / zh-Hant, en / en-GB, fr / fr-CA, pt / pt-BR y es / es-MX. El árabe, el hebreo y el urdu también están en la lista, por lo que los idiomas de derecha a izquierda también funcionan. Agregar un nuevo idioma a tu proyecto es solo un clic en el panel de control.
¿Funciona con renderizado del lado del servidor?
Sí. El SDK de Node.js utiliza AsyncLocalStorage para que tus loaders, funciones head y componentes del servidor puedan traducir sin necesidad de un proveedor de React. En el lado del cliente, el proveedor de React hidrata a partir del HTML renderizado en el servidor. En la documentación hay guías paso a paso para Next.js, Nuxt y TanStack Start.
¿Esto ralentiza mi aplicación?
La primera vez que se solicita una nueva cadena, la API llama al modelo de IA — unos medio segundo para una cadena corta de interfaz de usuario, más para un párrafo. Cada solicitud posterior se sirve desde la base de datos, que es un acierto de caché habitual. El SDK también almacena las traducciones localmente, por lo que los usuarios recurrentes no experimentan ningún retraso en la red. Si diez usuarios solicitan la misma cadena al mismo tiempo, solo se realiza una llamada a la IA.
¿Qué pasa si el servicio se cae?
Cada SDK almacena las traducciones localmente — en localStorage en la web, en AsyncStorage en móviles y en memoria en el servidor. Si la API no es accesible, el SDK proporciona las traducciones almacenadas en caché. Tus usuarios ven la última traducción conocida, nunca una cadena vacía. Cuando la API vuelve, el SDK se actualiza silenciosamente.
¿Qué proveedor de IA utiliza?
Se admiten cinco proveedores: Mistral, OpenAI, Anthropic, Google y cualquier punto final compatible con OpenAI como Ollama, Groq o Together. El operador selecciona el proveedor y el modelo desde el panel de control o desde el entorno. La opción predeterminada en i18n-keyless.com es Mistral. Los usuarios autoalojados pueden ejecutar Ollama localmente y no enviar nada a un tercero.
¿Puedo anular una traducción de IA?
Sí. Haz clic en cualquier celda del panel de control, escribe el texto correcto y guarda. La corrección es permanente: la API nunca sobrescribe un valor establecido manualmente. También puedes sobrescribir las traducciones a través de la API o del servidor MCP, por lo que un agente de codificación de IA puede corregir una traducción para ti.
¿Puedo migrar desde i18next o desde otra biblioteca?
Sí. En la documentación hay una guía de migración paso a paso para i18next, react-intl y Lokalise. La API tiene un punto final de migración que importa tus traducciones existentes una por una, sin llamadas a IA ni cargos. El servidor MCP tiene la misma herramienta, por lo que un agente de IA puede realizar la migración por ti.
¿Hay algún plan gratuito?
La edición autoalojada es completamente gratuita con proyectos ilimitados: instala la imagen de Docker, usa tu propia clave de IA y guarda tus datos en tu propio servidor. Sin límite de tiempo, sin restricciones de funciones. El plan alojado comienza en 4 euros al mes por proyecto si prefieres no ejecutar un servidor.
¿Está disponible el código fuente?
El servidor, el panel de control y la imagen de Docker se publican en GitHub bajo la licencia Elastic 2.0. Puede leer cada línea, ejecutar el código y modificarlo. Los SDK — React, Vue, Node, Rails y otros — están licenciados bajo MIT. La única restricción: no puede ofrecer el software como un servicio alojado a terceros.
Un mantenedor: ¿qué pasa si el proyecto se detiene?
Los SDK están bajo licencia MIT y permanecen disponibles en npm, PyPI, RubyGems y otros registros. El servidor es público bajo la Elastic License 2.0 y el protocolo entre ellos está documentado, por lo que cualquiera puede ejecutarlo, hacerle un fork o escribir un servidor contra él. Tus traducciones permanecen en un único export JSON en cualquier momento. Si el servicio alojado se detiene: las aplicaciones instaladas siguen sirviendo sus traducciones en caché, un cliente nuevo vuelve al idioma de origen, y al apuntar el SDK a tu propia instancia con API_URL se restaura todo. Lo que perderías es la traducción por IA de nuevas cadenas en i18n-keyless.com — no tus datos ni tu aplicación.
Lee la respuesta completa, con el código¿El contexto no es solo una clave disfrazada?
No. Una clave es obligatoria en cada cadena, debe ser única y reside en un espacio de nombres global que usted mantiene manualmente. Un contexto es opcional, adjunto a las pocas cadenas cuyo significado es ambiguo — "Close" para cerrar la ventana o "close" por distancia — y describe el significado, no nombra la cadena. La mayoría de las cadenas no llevan contexto. El texto original sigue siendo la referencia de búsqueda, con o sin contexto; dos textos idénticos con dos contextos son simplemente dos filas.
Lee la respuesta completa, con el código¿Puedo revisar la copia en una pull request?
Sí. La cadena de origen está en el código, por lo que cada cambio en la redacción es una diferencia que el revisor lee en la solicitud de extracción, en lenguaje claro en lugar de un nombre de clave. Lo que no está en git es la traducción a los otros idiomas: reside en la base de datos, como en cualquier otra plataforma de traducción, y lo revisas en el panel de control, donde una marca "revisado" por celda separa lo que una persona verificó de lo que escribió la IA, o en la exportación JSON.
Lee la respuesta completa, con el código¿Por qué no Tolgee, que también es de código abierto?
Tolgee es una plataforma de traducción basada en claves bajo la licencia Apache 2.0, con edición en contexto, contexto de capturas de pantalla y memoria de traducción; si deseas estas funciones o traductores en el proceso, es una buena opción. i18n-keyless no tiene claves, no tiene archivos de localización, la traducción con IA está activada por defecto con una sobrescritura manual que la IA nunca reescribe, un servidor bajo la licencia Elastic 2.0 con SDKs MIT, y una imagen autoalojada que funciona en SQLite en un solo contenedor. Para una corrección en contexto, toma una captura de pantalla y entrégasela a un agente de IA conectado al servidor MCP: este encuentra la cadena y sobrescribe la traducción. La página de comparación en la documentación muestra los precios uno al lado del otro.
Lee la respuesta completa, con el código¿Autoalojado o suscripción: cuál?
Autoalojado: la misma imagen de Docker en tu propio servidor, completamente gratis con proyectos ilimitados, con tu propia clave de IA y tus datos en casa. ¿Te gusta? ¡Déjame una propina! Suscripción: nosotros lo gestionamos, las actualizaciones son automáticas, un precio fijo desde 4 € al mes por proyecto. Toma la suscripción si prefieres no gestionar un servidor.
Lee la respuesta completa, con el código¿Cómo manejo valores dinámicos como nombres o conteos?
Usa la opción de reemplazo. Escribe la oración con un marcador — "Hola {name}, tienes {count} elementos" — y pasa los valores en el momento de renderizado con replace: { "{name}": userName, "{count}": String(n) }. La IA ve el marcador y lo mantiene en cada traducción. El SDK sustituye el valor en tiempo de ejecución.
¿Cómo manejo los plurales?
Escribe una forma con {count} donde se inserta el número y pasa el número como count. La API almacena un mensaje de plural ICU por idioma con exactamente las formas que necesita el idioma — dos en francés, cuatro en ruso, seis en árabe — verificadas con Intl.PluralRules, y el SDK elige la correcta. Añade ordinales para rangos (1st, 2nd). Nunca escribes las ramas tú mismo.
Lee la respuesta completa, con el código¿Cómo manejo los géneros?
Pase el valor en select — select={{ gender: "femenino" }} — y el modelo escribe una variante por valor, en cada idioma, teniendo en cuenta las necesidades del idioma. Los valores son identificadores de un conjunto cerrado, como máximo 10 por variable y 2 variables por frase; se puede combinar un select y un count. Los valores abiertos como un nombre siguen siendo un reemplazo.
Lee la respuesta completa, con el código¿Cómo formateo fechas, números y monedas?
El SDK no los formatea, lo hace tu runtime. Usa Intl.DateTimeFormat e Intl.NumberFormat con el idioma actual del SDK y luego coloca el resultado en la oración con replace. Una oración, una traducción, el formato correcto en cada idioma.
Lee la respuesta completa, con el código¿Puedo personalizar el mensaje de traducción?
No, y no necesitas hacerlo. El prompt lee tu contexto para cada clave: ahí es donde se define el tono, el público y el significado, y es lo que hace que la misma palabra se traduzca de manera diferente en dos lugares. Y cualquier traducción puede ser sobrescrita manualmente en el panel de control; la API nunca sobrescribe lo que escribiste.
Lee la respuesta completa, con el código¿Tiene un servidor MCP para agentes de codificación de IA?
Sí. La API también es un servidor MCP con autenticación OAuth 2.1. Un agente de IA puede listar traducciones, traducir cadenas, sobrescribir valores, importar traducciones existentes y gestionar miembros del proyecto: las mismas operaciones que realiza un humano en el panel de control. Conéctalo desde Claude Code, Cursor, Windsurf o cualquier cliente compatible con MCP.
¿Puedo usarlo para cadenas de backend y correos electrónicos?
Sí. Los SDK de Node.js, Ruby on Rails, Python y Go se ejecutan en el servidor. Traduce un asunto de correo electrónico, un mensaje de error o una notificación push de la misma manera que traduces una cadena de interfaz de usuario. Los SDK del servidor almacenan en caché las traducciones en memoria y las actualizan en segundo plano, por lo que no añaden latencia a tu solicitud.
¿Puede todo mi equipo trabajar en las traducciones?
Sí. Agrega miembros del equipo a un proyecto desde el panel de control o a través de la API. Cada miembro puede ver todas las traducciones, sobrescribir cualquier valor y agregar idiomas. Los administradores crean proyectos y gestionan miembros. No hay precios por asiento: agrega tantas personas como necesites.
¿Cómo puedo corregir una errata?
El texto de origen es la clave. Si corriges una errata en el texto de origen, obtendrás una nueva clave con una nueva traducción; la cadena antigua simplemente deja de pedirse y el panel de control la limpia automáticamente después de 30 días sin uso. Una errata en una traducción: edita la celda en el panel de control y la corrección es permanente.
Lee la respuesta completa, con el código