Ajouter le japonais et l'espagnol à une application Next.js
Devin installe next-i18next, extrait les chaînes codées en dur vers des fichiers JSON de locale, ajoute les traductions en japonais et en espagnol, et vérifie le basculement de langue dans le navigateur.(Facultatif) Définir la portée de la base de code avec Ask Devin
Si vous ne savez pas comment votre application Next.js est structurée ou quels composants contiennent des chaînes codées en dur, utilisez Ask Devin pour commencer par analyser la situation :Vous pouvez aussi démarrer une session Devin directement depuis Ask Devin, et tout ce qu’il aura appris sera conservé dans le contexte.
Démarrer la configuration de l’i18n
L’ajout de l’internationalisation à une app Next.js implique de configurer le routage par locale, de paramétrer le middleware, d’extraire chaque chaîne codée en dur et de créer des fichiers de traduction — tout cela avant même de pouvoir tester un simple changement de langue. Devin prend en charge l’ensemble du pipeline : installation de
next-i18next, configuration du routage par locale dans Next.js, extraction des chaînes depuis des dizaines de composants et vérification du résultat dans le navigateur.Utilise la commande slash /plan au début de la session pour que Devin analyse d’abord ta base de code — il déterminera si tu utilises le Pages Router ou l’App Router, identifiera la bonne bibliothèque i18n et décrira son approche avant d’écrire la moindre ligne de code. Passe le plan en revue et suggère des modifications avant qu’il ne commence.Comment Devin gère la mise en place
Devin parcourt méthodiquement le code de votre projet Next.js : il configure le pipeline i18n, extrait les chaînes et crée les fichiers de langue. Voici à quoi cela ressemble :
- Installe les dépendances — Exécute
npm install next-i18next i18next react-i18nextet crée les fichiers de configuration :
-
Analyse chaque composant — Lit chaque fichier dans
components/etpages/, en identifiant le texte en dur dans le JSX, les attributs commeplaceholderetaria-label, les template literals et les messages d’erreur -
Construit les fichiers de langue — Crée des fichiers JSON structurés sous
public/locales/:
-
Remplace les chaînes directement dans le code — Encapsule chaque composant avec
useTranslation('common')et remplace le texte en dur par des appels àt(), en gérant l’interpolation pour les valeurs dynamiques commet('dashboard.welcome', { name: user.name }) -
Met en place le chargement côté serveur — Ajoute
serverSideTranslationsà chaque page pour que les traductions soient disponibles au moment du rendu :
- Ajoute le sélecteur de langue — Crée un menu déroulant dans la barre de navigation qui utilise la fonction de changement de langue (locale) du routeur Next.js :
Testez et itérez
Devin exécute
npm run dev, ouvre l’app dans son navigateur intégré et navigue entre les routes /en, /es et /ja pour vérifier que tout fonctionne. Si quelque chose ne va pas — une traduction manquante, une mise en page qui déborde, une route qui renvoie une 404 — Devin le corrige et refait les tests automatiquement.Utilisez la commande slash /test à tout moment pour demander à Devin de relancer tous les tests et de revérifier dans le navigateur. Utilisez /review avant la PR finale pour demander à Devin de relire son propre code afin de repérer les chaînes manquantes, les noms de clés incohérents ou les appels serverSideTranslations manquants.Devin vérifie :- Tout le texte visible est traduit (aucune chaîne en anglais restante en mode espagnol/japonais)
- Les mises en page ne se cassent pas avec des chaînes espagnoles plus longues ou des caractères japonais plus larges
- Le sélecteur de langue bascule entre les trois locales
- Les valeurs interpolées (noms d’utilisateur, nombres) s’affichent correctement dans chaque langue
- Les règles de pluralisation fonctionnent (par ex. : “1 item” → “1 件” en japonais, “1 elemento” en espagnol)
- Le routage Next.js par locale fonctionne —
/ja/dashboardaffiche la version japonaise
Continuer l’itération à partir d’ici
Une fois la configuration i18n de base en place, poursuivez pour l’étendre.
Mettre à jour la configuration de votre dépôt
Cette tâche installe de nouvelles dépendances (
next-i18next, i18next, react-i18next). Après la fusion de la pull request (PR), mettez à jour la configuration de votre dépôt afin que l’instantané d’environnement de Devin contienne ces packages pour les futures sessions :- Allez dans Settings > Devin’s Environment > Repositories
- Sélectionnez votre dépôt et cliquez sur Configure
- Sous Upkeep > Maintain dependencies, vérifiez que votre commande d’installation (par exemple,
npm ci) est définie - Cliquez sur Save pour mettre à jour l’instantané
package.json évolue, afin que les futures sessions ne perdent pas de temps à installer les dépendances au démarrage.Passez en revue la PR avec Devin Review
Une fois que Devin a ouvert la PR, utilisez Devin Review pour examiner les modifications i18n. Devin Review peut détecter les chaînes codées en dur oubliées, les incohérences dans le nommage des clés de traduction et les appels
serverSideTranslations manquants sur l’ensemble des pages.