Traduce mensajes de next-intl, luego revisa cada línea
Los mensajes de next-intl son JSON anidados con sintaxis ICU: {count, plural, =0 {…} one {# item} other {# items}}. El japonés tiene una forma plural, el ruso tres, y una rama copiada tal cual se lee mal. KAERIS traduce rama por rama messages/en.json y mantiene los namespaces.
KAERIS ha traducido esta página y revisado cada línea traduciéndola de vuelta. Un hablante nativo aún no la ha revisado. Original en inglés
Las ramas ICU siguen el idioma de destino
El japonés no tiene forma singular, por lo que one se incluye en other. {name} y # se mantienen.
{
"HomePage": {
"title": "Welcome, {name}!",
"cartItems": "{count, plural, =0 {Your cart is empty} one {# item} other {# items}}"
}
}
{
"HomePage": {
"title": "ようこそ、{name}さん!",
"cartItems": "{count, plural, =0 {カートは空です} other {#点の商品}}"
}
}
Lo que KAERIS hace con él
Namespaces mantenidos
HomePage,Carty cada objeto anidado se mantienen como en tu fuente, listos para el segmento[locale]del App Router.Variables comprobadas sin IA
Después de la traducción, una simple comprobación por conteo compara cada variable y etiqueta con el original. Una línea que perdió una se marca y se muestra en la parte superior.
Cada línea traducida de vuelta
Un modelo diferente, GPT-4o mini, traduce cada línea de vuelta a tu idioma, y DeepSeek V3.2 en servidores de EE. UU. (DeepInfra, DigitalOcean, Google) juzga si el significado cambió. Lees lo que dice cada línea ahora.
Preguntas
¿select también funciona?
Sí. plural, select y selectordinal mantienen su sintaxis; solo las palabras dentro de las ramas se traducen.
¿Un archivo por locale?
Sí: messages/de.json, messages/ja.json y así sucesivamente, el diseño que espera next-intl.
¿Es gratis?
Sí, sin cuenta: 10.000 caracteres por archivo y hasta 8 idiomas por ejecución. Una clave API gratuita eleva el límite de archivos a 50.000 caracteres. La licencia vitalicia cuesta $79 una vez, con tu propia clave OpenRouter; los planes mensuales empiezan en $19. Precios
¿Cómo lo integro en el repositorio?
kaeris init --preset next-intl escribe la configuración para messages/, y kaeris translate se ejecuta sin flags. Docs