Documentação
Adicionar traduções
Guia passo a passo para traduzir copy de UI em recursos do Motoko Base usando catálogos de mensagens next-intl.
Este guia explica como adicionar ou atualizar strings traduzidas no Motoko Base. Leia Internacionalização primeiro se precisar do panorama de roteamento e resolução de locale.
Checklist rápido
Ao adicionar copy de UI a um recurso:
- Crie ou estenda um namespace JSON em
messages/en/ - Exporte em
messages/en/index.ts - Replique as mesmas keys em
messages/es/,messages/de/,messages/fr/emessages/pt-BR/ - Substitua strings hardcoded por
useTranslations()ougetTranslations() - Use
formatDate()/formatNumber()de@/lib/i18n/format
1. Definir mensagens em inglês
// messages/en/my-feature.json
{
"page": {
"title": "My Feature",
"description": "Manage your items."
},
"empty": "No items yet."
}Registre o namespace no índice do locale:
import myFeature from "./my-feature.json";
const messages = { /* … */ myFeature };
export default messages;Use camelCase na chave de export — namespace de useTranslations("myFeature").
2. Replicar keys em cada locale
Cada pasta de locale deve expor a mesma estrutura de keys.
3. Componente cliente
"use client";
import { useTranslations } from "next-intl";
export function MyFeaturePage() {
const t = useTranslations("myFeature");
return <h1>{t("page.title")}</h1>;
}4. Servidor
import { getTranslations } from "next-intl/server";Rotas do dashboard resolvem locale via AppIntlProvider — sem segmento [locale] na URL.
5. Formatar datas e números
import { formatDate } from "@/lib/i18n/format";6. Nav do dashboard
Labels em messages/{locale}/dashboard.json, usados em src/features/dashboard/components/sidebar/sidebar.tsx.
7. Marketing
Estrutura em marketing-structure.ts, copy em messages/{locale}/marketing.json.
8. Páginas de docs
Arquivos MDX com sufixo dot por locale. Chrome de docs em messages/{locale}/docs.json.
Erros comuns
| Erro | Correção |
|---|---|
| Inglês hardcoded no JSX | Mover para namespace JSON |
| Key faltando em um locale | Adicionar nos cinco arquivos |
next/link no marketing | Link de @/i18n/navigation |
Referências
| Recurso | Namespace | Componente |
|---|---|---|
| Chat (dashboard) | dashboard | src/features/dashboard/components/chat/chat-page.tsx |
| Aparência (settings) | settings | src/features/dashboard/components/settings/appearance-settings-page.tsx |
| Auth | auth | auth-section-3.tsx |
Próximos passos
Internacionalização — Roteamento, locale e SEO.
Estrutura do projeto — Layout de pastas de recursos.