Documentation
Ajouter des traductions
Guide pas à pas pour traduire le copy UI dans les features Motoko Base avec les catalogues de messages next-intl.
Ce guide explique comment ajouter ou mettre à jour des chaînes traduites dans Motoko Base. Lisez Internationalisation d'abord pour le routage et la résolution de locale.
Checklist rapide
Lors de l'ajout de copy UI à une feature :
- Créez ou étendez un namespace JSON sous
messages/en/ - Exportez-le depuis
messages/en/index.ts - Reproduisez les mêmes clés dans
messages/es/,messages/de/,messages/fr/etmessages/pt-BR/ - Remplacez les chaînes en dur par
useTranslations()ougetTranslations() - Utilisez
formatDate()/formatNumber()depuis@/lib/i18n/format
1. Définir les messages anglais
// messages/en/my-feature.json
{
"page": {
"title": "My Feature",
"description": "Manage your items."
},
"empty": "No items yet."
}Enregistrez le namespace dans l'index :
import myFeature from "./my-feature.json";
const messages = { /* … */ myFeature };
export default messages;Utilisez camelCase pour la clé d'export — namespace de useTranslations("myFeature").
2. Reproduire les clés dans chaque locale
Chaque dossier de locale doit exposer la même structure de clés.
3. Client
"use client";
import { useTranslations } from "next-intl";
export function MyFeaturePage() {
const t = useTranslations("myFeature");
return <h1>{t("page.title")}</h1>;
}4. Serveur
import { getTranslations } from "next-intl/server";Les routes dashboard résolvent la locale via AppIntlProvider — pas de segment [locale] dans l'URL.
5. Formater dates et nombres
import { formatDate } from "@/lib/i18n/format";6. Nav dashboard
Labels dans messages/{locale}/dashboard.json, utilisés dans src/features/dashboard/components/sidebar/sidebar.tsx.
7. Marketing
Structure dans marketing-structure.ts, copy dans messages/{locale}/marketing.json.
8. Pages docs
Fichiers MDX avec suffixe dot par locale. Chrome docs dans messages/{locale}/docs.json.
Erreurs courantes
| Erreur | Correction |
|---|---|
| Anglais en dur dans JSX | Déplacer vers namespace JSON |
| Clé manquante dans une locale | Ajouter dans les cinq fichiers |
next/link sur marketing | Link depuis @/i18n/navigation |
Références
| Feature | Namespace | Composant |
|---|---|---|
| Chat (dashboard) | dashboard | src/features/dashboard/components/chat/chat-page.tsx |
| Apparence (paramètres) | settings | src/features/dashboard/components/settings/appearance-settings-page.tsx |
| Auth | auth | auth-section-3.tsx |
Prochaines étapes
Internationalisation — Routage, locale et SEO.
Structure du projet — Layout des features.