ForHosting KIT · Traducción y localización

Traducir un archivo JSON

Un archivo de idioma es un contrato: las claves son el vocabulario del código y los valores son lo que lee una persona. Este endpoint respeta ese contrato: recorre el objeto, traduce las cadenas y devuelve un archivo que su aplicación puede usar de inmediato, con las mismas claves, la misma jerarquía, en otro idioma.

● EstablePor solicitud + por clave$0.003
Úselo desde WebAPIEmailApp prontoTelegram pronto

Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.

Por qué los archivos de idioma se rompen tan fácil

Un desarrollador exporta en.json, se lo entrega a un traductor y tres días después recibe un archivo donde alguien, con buena intención, renombró una clave anidada o reordenó un arreglo porque así sonaba más natural. La aplicación falla por una clave faltante y nadie lo nota hasta que una pantalla aparece en blanco en producción. translate.json evita eso por completo tratando las claves como identificadores inmutables y los valores como lo único elegible para traducir: la estructura que usted envía es exactamente la que recibe de vuelta.

Cómo decide qué traducir

Los valores de tipo cadena se traducen. Los números, los booleanos, los valores null y los arreglos de valores que no son cadenas pasan sin cambios, porque un timeout de 3000 milisegundos significa lo mismo en cualquier idioma. Los objetos anidados se recorren de forma recursiva, así que un archivo de idioma con secciones para botones, errores y textos de bienvenida recibe traducción en cada rama sin aplanar la estructura que su aplicación necesita para buscar las cadenas.

Los marcadores de posición quedan intactos

La mayoría de los frameworks de i18n incrustan variables dentro de las cadenas, cosas como {{username}} o %s, y una traducción que las altera rompe la aplicación al momento de mostrarla, no al momento de traducirla, lo que hace el error mucho más difícil de rastrear. El endpoint reconoce la sintaxis de interpolación más común y la conserva en su lugar, moviendo solo el idioma que la rodea y dejando los marcadores de variable exactamente donde el framework los espera.

Cómo encaja en un flujo de lanzamiento

Internacionalizar solía significar entregar una hoja de cálculo entre ingeniería y un proveedor de traducción, con una reimportación manual y una revisión de control de calidad para atrapar lo que quedara descuadrado en el camino. Un paso de integración continua que envía el archivo de idioma base en cada fusión a main y reescribe cada idioma traducido automáticamente cierra ese ciclo, porque la respuesta refleja exactamente la estructura de claves de entrada, así que un validador de esquema JSON puede confirmar que nada se movió antes de que el archivo llegue a una compilación. Cobrar por clave en lugar de por archivo hace que un proyecto con un archivo de idioma modesto de 40 claves pague una fracción de lo que paga un panel de administración con 2000 claves, manteniendo el costo proporcional al trabajo real de traducción en lugar de un cargo plano por archivo.

Localización de app móvil

Un equipo móvil envía su en.json base y recibe fr.json, de.json y ja.json con estructuras de clave idénticas, listos para el siguiente lanzamiento.

Localización continua en integración continua

Una aplicación web traduce su archivo de idioma automáticamente en cada pull request que toca el idioma base, manteniendo todos los idiomas sincronizados sin entregas manuales.

Textos de un panel de administración

Una plataforma B2B traduce un archivo de idioma grande y profundamente anidado de su panel de configuración, donde las convenciones de nombres de clave deben mantenerse idénticas en cada idioma.

Catálogos de mensajes de error

Un servicio de backend traduce su catálogo de mensajes de error en JSON para que los consumidores de la API en distintas regiones reciban errores legibles en su propio idioma.

¿Cómo traduzco un archivo de idioma JSON con la API?

Envíe el archivo JSON y el idioma de destino por POST a /translate/json, guarde el task_id devuelto y obtenga el archivo traducido por webhook o mediante un enlace firmado válido por 24 horas.

¿Es gratis la API para traducir archivos i18n?

No, no hay plan gratuito ni prueba; cuesta $0.003 por solicitud más $0.0135 por clave, y una tarea fallida nunca se cobra.

¿Se cambian o reordenan mis claves?

No, las claves y su jerarquía se mantienen exactamente como se enviaron; solo se traducen los valores de tipo cadena.

¿Maneja objetos y arreglos anidados?

Sí, recorre objetos anidados y traduce los valores de cadena dentro de arreglos, dejando intactos los números, booleanos y valores null.

¿Qué pasa con marcadores como {{name}} dentro de las cadenas?

La sintaxis de interpolación más común se reconoce y se conserva en su lugar, así que los marcadores de variable quedan exactamente donde su framework de i18n los espera.

¿Puedo traducir muchos archivos de idioma a la vez?

Sí, envíe una tarea asíncrona por archivo de idioma y reciba cada resultado por separado, lo cual encaja bien con canales de lanzamiento multilingüe.

¿Ya está disponible este endpoint?

Sí, /translate/json está disponible y aceptando solicitudes en este momento.

¿Se conserva mi archivo de idioma después de traducirlo?

No, los archivos de origen y los traducidos se eliminan después del período de retención y nunca se usan para entrenamiento.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

POSThttps://api.kit.forhosting.com/translate/json

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.

curl -X POST https://api.kit.forhosting.com/translate/json \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":"…"}'
{
  "input": "…"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "translate.json",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.003
Por clave$0.0135

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

max_tokens20000
HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.
422task_failedLa tarea falló tras 3 reintentos. No se cobra.

Ver la documentación completa del KIT →