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.

Abrir emChatGPT (abre em uma nova aba)Claude (abre em uma nova aba)Cursor (abre em uma nova aba)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:

  1. Crie ou estenda um namespace JSON em messages/en/
  2. Exporte em messages/en/index.ts
  3. Replique as mesmas keys em messages/es/, messages/de/, messages/fr/ e messages/pt-BR/
  4. Substitua strings hardcoded por useTranslations() ou getTranslations()
  5. 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

ErroCorreção
Inglês hardcoded no JSXMover para namespace JSON
Key faltando em um localeAdicionar nos cinco arquivos
next/link no marketingLink de @/i18n/navigation

Referências

RecursoNamespaceComponente
Chat (dashboard)dashboardsrc/features/dashboard/components/chat/chat-page.tsx
Aparência (settings)settingssrc/features/dashboard/components/settings/appearance-settings-page.tsx
Authauthauth-section-3.tsx

Próximos passos

Internacionalização — Roteamento, locale e SEO.

Estrutura do projeto — Layout de pastas de recursos.