Skip to main content

Idiomas Suportados

CódigoIdioma
ptPortuguês (padrão)
enInglês

Como Funciona

O AssessIQ usa a biblioteca next-intl com roteamento baseado em locale na URL:
https://app.assessiq.digital/pt/home   → Português
https://app.assessiq.digital/en/home   → Inglês
As traduções ficam em arquivos JSON na pasta messages/:
messages/
├── pt.json   ← strings em Português
└── en.json   ← strings em Inglês

Usando Traduções em Componentes

Em Client Components

"use client";
import { useTranslations } from "next-intl";

export function MeuComponente() {
  const t = useTranslations();
  return <h1>{t("home.title")}</h1>;
}

Em Server Components

import { getTranslations } from "next-intl/server";

export default async function Page() {
  const t = await getTranslations();
  return <h1>{t("home.title")}</h1>;
}

Estrutura das Chaves

As chaves seguem a notação de ponto por namespace:
{
  "home.kpiModelsTitle": "Testes Criados",
  "home.kpiStudentsTitle": "Alunos Cadastrados",
  "people.fullName": "Nome Completo",
  "adminNotifications.previewTitle": "Preview"
}
Não use um ponto em um valor que também tem sub-chaves. Por exemplo, "adminNotifications.preview": "Preview" conflita com "adminNotifications.preview.platform". Use um sufixo como previewTitle para valores folha.

Alterando o Idioma

O usuário pode alternar o idioma através do seletor de idioma na navbar. A preferência é salva via cookie e persiste entre sessões.

Adicionando Novas Strings

  1. Adicione a chave com o valor em messages/pt.json
  2. Adicione a tradução correspondente em messages/en.json
  3. Use t("namespace.chave") no componente
Ambos os arquivos devem permanecer sincronizados — mesmas chaves, mesma contagem. O processo de build lança erro se uma chave existir em apenas um dos arquivos.