Agregar japonés y español a una app de Next.js
Devin instala next-i18next, extrae cadenas codificadas directamente a archivos JSON de locales, añade traducciones en japonés y español, y verifica el cambio de idioma en el navegador.(Opcional) Delimita el alcance de la base de código con Ask Devin
Si no tienes claro cómo está estructurada tu app de Next.js o qué componentes contienen cadenas hardcodeadas, usa Ask Devin para investigarlo primero:También puedes iniciar una sesión de Devin directamente desde Ask Devin, y se conservará todo lo que haya aprendido como contexto.
Inicia la configuración de i18n
Agregar internacionalización a una app de Next.js implica configurar el enrutamiento por idioma/locales, definir el middleware, extraer cada cadena codificada de forma estática y crear archivos de traducción, todo antes de poder probar un solo cambio de idioma. Devin se encarga de todo el pipeline: instalar
next-i18next, configurar el enrutamiento de locales de Next.js, extraer cadenas de docenas de componentes y verificar el resultado en el navegador.Usa el comando slash /plan al inicio de la sesión para que Devin analice primero tu codebase: determinará si estás usando el Pages Router o el App Router, identificará la librería de i18n adecuada y esbozará su enfoque antes de escribir cualquier código. Revisa el plan y sugiere cambios antes de que empiece.Cómo gestiona Devin el proceso de configuración
Devin trabaja de forma metódica en tu base de código de Next.js: configura el pipeline de i18n, extrae cadenas y crea archivos de locales. Así es como funciona:
- Instala dependencias — Ejecuta
npm install next-i18next i18next react-i18nexty crea los archivos de configuración:
-
Analiza cada componente — Lee cada archivo en
components/ypages/, identificando texto incrustado (hardcoded) en JSX, atributos comoplaceholderyaria-label, literales de plantilla y cadenas de error -
Genera archivos de idioma — Crea JSON estructurado en
public/locales/:
-
Reemplaza las cadenas directamente — Envuelve cada componente con
useTranslation('common')y sustituye el texto hardcodeado por llamadas at(), gestionando la interpolación para valores dinámicos comot('dashboard.welcome', { name: user.name }) -
Configura la carga del lado del servidor — Añade
serverSideTranslationsa cada página para que las traducciones estén disponibles en el momento del renderizado:
- Agrega el selector de idioma — Crea un menú desplegable en la barra de navegación que usa la conmutación de
localedel router de Next.js:
Prueba e itera
Devin ejecuta
npm run dev, abre la app en su navegador integrado y navega entre las rutas /en, /es y /ja para verificar que todo funcione. Si algo falla — una traducción faltante, un diseño que se desborda, una ruta que arroja un 404 — Devin lo corrige y vuelve a hacer las pruebas automáticamente.Usa el comando slash /test en cualquier momento para decirle a Devin que vuelva a ejecutar todas las pruebas y vuelva a verificar en el navegador. Usa /review antes de la PR final (pull request) para que Devin revise su propio código en busca de cadenas omitidas, nombres de claves inconsistentes o llamadas faltantes a serverSideTranslations.Devin verifica:- Todo el texto visible está traducido (no quedan cadenas en inglés en el modo español/japonés)
- Los diseños no se rompen con cadenas más largas en español o caracteres japoneses más anchos
- El selector de idioma permite alternar entre los tres locales
- Los valores interpolados (nombres de usuario, cantidades) se muestran correctamente en cada locale
- Las reglas de pluralización funcionan (por ejemplo, “1 item” → “1 件” en japonés, “1 elemento” en español)
- El enrutamiento de locales de Next.js funciona —
/ja/dashboardmuestra la versión en japonés
Actualiza la configuración de tu repositorio
Esta tarea instala nuevas dependencias (
next-i18next, i18next, react-i18next). Después de que se haga merge del PR, actualiza la configuración de tu repo para que la instantánea del entorno de Devin incluya estos paquetes en futuras sesiones:- Ve a Settings > Devin’s Environment > Repositories
- Selecciona tu repo y haz clic en Configure
- En Upkeep > Maintain dependencies, asegúrate de que tu comando de instalación (por ejemplo,
npm ci) esté configurado - Haz clic en Save para actualizar la instantánea
package.json evoluciona, de modo que las futuras sesiones no pierdan tiempo instalando paquetes al inicio.Revisa la PR con Devin Review
Una vez que Devin abra el PR, utiliza Devin Review para revisar los cambios de i18n. Devin Review puede detectar cadenas codificadas de forma fija que se hayan pasado por alto, nombres incoherentes de claves de traducción y llamadas que falten a
serverSideTranslations en las distintas páginas.