# Conteúdo e voz

Fonte de estratégia: `Plataforma de Branding Troca Pontos.docx`, P7–P12. Referência de expressão: guia HTML §02. Os exemplos operacionais abaixo são extensões de conteúdo desta tarefa, sujeitos à revisão de contexto.

## Voz constante, tom por contexto

Preservar a personalidade **Inovadora, Visionária, Criativa, Personalizada e Inspiradora**. Clareza corporativa, confiabilidade e objetividade ajudam a expressá-la. Escrever “Troca Pontos” em texto corrido; o logotipo é sempre um asset, nunca esse texto estilizado.

| Contexto | Tom | Exemplo |
| --- | --- | --- |
| Aquisição B2B | Consultivo e inspirador | “Encontre uma forma de reconhecimento adequada ao seu programa.” / “Falar com especialista” |
| ERP | Objetivo, preciso e econômico | “Revise os dados antes de salvar.” |
| Atendimento | Acolhedor e resolutivo | “Recebi sua solicitação. Informe o código do pedido para continuarmos.” |
| Relatórios | Institucional e factual | “Dados demonstrativos do período selecionado.” |
| Conquista confirmada | Motivador, proporcional ao fato | “Etapa concluída. Veja o resumo.” |
| Segurança e operações sensíveis | Direto, sem promoção | “Sua sessão expirou. Entre novamente para continuar.” |

## Convenções de escrita

- Voz ativa, verbos concretos, uma ação principal por mensagem. Títulos em sentence case.
- Moeda `R$ 1.000,00`, número `1.234,56`, percentual `10%`, data `15/09/2026`. Preferir `Intl.NumberFormat('pt-BR')` e `Intl.DateTimeFormat('pt-BR')` no adaptador; explicitar fuso quando o horário afetar a operação.
- Identificadores de programação e chaves i18n permanecem estáveis. Traduzir valores visíveis e rótulos, preservando a infraestrutura multilíngue.
- “Premiação” organiza a categoria; incentivo, reconhecimento, fidelização e relacionamento expressam objetivos. “Participante” e “empresa” dependem do contexto; não trocar automaticamente todos os usuários por participantes.
- Estrangeirismos só quando necessários; explicar na primeira ocorrência quando ambíguos. Exemplo do guia: “back office (gestão operacional)”.
- O guia permite 1–2 emojis por bloco informal em WhatsApp/redes; usar com parcimônia. Omitir em propostas, imprensa, contratos, relatórios e situações sensíveis.
- Exclamações são exceção. Evitar hipérbole, culpabilização e promessas de prazo sem confirmação.
- Placeholders ilustram formato; labels continuam visíveis. Indicar campos obrigatórios por texto e sem depender de cor.
- Dados fictícios devem ser identificados como demonstração. Placeholders usam nomes como `[Nome]`, `[Empresa]`, `[Código]`, `[URL configurável]`.

## Biblioteca reutilizável de mensagens

As chaves abaixo são identificadores de conteúdo estáveis, não alegação de que todos os fluxos foram implementados. Usar apenas quando a interface oferecer de fato a próxima ação indicada. Para protótipos, conservar o qualificador “na demonstração” em confirmações.

| Chave | Situação | Mensagem e ação |
| --- | --- | --- |
| `action.save` | Salvar | “Salvar alterações” |
| `action.cancel` | Abandonar edição | “Cancelar” |
| `action.back` | Voltar etapa | “Voltar” |
| `action.review` | Revisar antes de confirmar | “Revisar dados” |
| `action.clearFilters` | Limpar filtros | “Limpar filtros” |
| `field.email.help` | Ajuda de campo | “Informe seu e-mail corporativo.” |
| `field.required` | Campo obrigatório | “Preencha este campo para continuar.” |
| `field.email.invalid` | E-mail inválido | “Informe um e-mail no formato nome@empresa.com.” |
| `form.invalid` | Resumo da validação | “Revise os campos indicados antes de continuar.” |
| `form.saved` | Salvamento local demonstrativo | “Alterações salvas nesta demonstração. Você pode revisar os dados.” |
| `error.recoverable` | Falha recuperável | “Não foi possível concluir a ação. Tente novamente.” |
| `error.connection` | Conexão indisponível | “Não foi possível conectar. Verifique sua conexão e tente novamente.” |
| `session.expired` | Sessão expirada | “Sua sessão expirou. Entre novamente para continuar.” |
| `access.denied` | Permissão insuficiente | “Seu perfil não tem acesso a esta área. Fale com a pessoa responsável pela administração.” |
| `empty.initial` | Vazio inicial | “Ainda não há registros. Crie o primeiro registro para começar.” |
| `search.empty` | Busca sem resultados | “Nenhum resultado encontrado. Altere a busca ou limpe os filtros.” |
| `loading.records` | Carregamento | “Carregando registros. Aguarde a conclusão para continuar.” |
| `delete.confirm.title` | Título de confirmação | “Excluir este registro?” |
| `delete.confirm.body` | Consequência destrutiva | “O registro será removido desta demonstração. Revise sua escolha antes de confirmar.” |
| `delete.confirm.action` | Ação explícita | “Excluir registro” |
| `delete.cancel` | Saída segura | “Manter registro” |
| `notification.updated` | Atualização operacional | “O status do registro foi atualizado. Abra os detalhes para revisar.” |
| `support.received` | Acolhimento | “Recebi sua solicitação sobre [Assunto]. Informe [Dado essencial] para continuarmos.” |
| `support.nextStep` | Orientação | “Para continuar, [Ação necessária]. Assim que houver uma atualização confirmada, ela será registrada neste atendimento.” |
| `support.complete` | Conclusão confirmada | “Concluímos [Ação confirmada]. Confira [Local de consulta] e responda se ainda precisar de ajuda.” |
| `demo.noSend` | Formulário demonstrativo | “Demonstração local. Os dados não são enviados.” |

Não usar confirmação de sucesso em erro de rede. Não dizer que um dado foi salvo no servidor em demonstração local. “Não foi possível” é preferível a atribuir culpa ao usuário sem evidência. Não prometer preservação de formulário, reversão ou prazo quando o fluxo não oferecer isso.

## Fazer e evitar

| Fazer | Evitar | Motivo |
| --- | --- | --- |
| “Informe um e-mail válido.” | “Dados incorretos!” | Indicar a correção necessária |
| “Excluir registro” | “Sim, tenho certeza” como único rótulo | A ação deve continuar clara fora do contexto |
| “Falar com especialista” | “Resgatar agora” em página pública B2B | O guia reserva resgates ao catálogo/fluxo adequado |
| “Dados demonstrativos” próximo ao número | Exibir métrica fictícia como prova empresarial | Não transformar exemplo em fato |
| “Integração conforme o projeto, após confirmação técnica” | “Integração pronta” sem verificação | Preservar a condição operacional |
| “Prazo a confirmar pelo atendimento” quando necessário | Inventar “em até 24 horas” | Compromissos precisam de fonte |

## Claims e comprovação

O guia §02 contém “taxa 0% sobre créditos”, “mais de 2 milhões de opções de resgate”, retorno de pontos não resgatados e comparativos `100% / 72% / 78% / 38%`. São mensagens de referência; esta execução não confirma suas condições atuais.

Antes de publicação, o responsável pelo claim deve registrar: texto exato; fonte; data de consulta; período; universo/metodologia; condições; qualificador próximo do dado; aprovador; data de revalidação. Não tratar um percentual comparativo como garantia de economia ou comportamento. Não converter possibilidade em disponibilidade universal. Não prometer integração operacional a partir de marca de terceiro exibida no template.

## Conteúdo acessível

Erros devem estar associados ao campo; resumos indicam o problema sem apagar dados. Mensagens dinâmicas usam anúncio apropriado e não roubam foco sem necessidade. Texto de link comunica destino ou ação. Ícones decorativos não repetem a mensagem ao leitor de tela; controles de ícone recebem nome acessível. Datas, moedas e status longos precisam caber com zoom e expansão de texto.

A sequência de revisão é estratégia → conteúdo → design → QA, conforme guia §14. Revisão textual não substitui validação de comportamento nem homologação institucional.

## Arquivos de conteúdo e internacionalização

- `src/locales/pt-BR/common.json`: tradução integral das 639 chaves do catálogo inglês existente, sem alteração de identificadores ou variáveis de interpolação. Termos como CRM, SaaS, Status e nomes técnicos permanecem quando adequados.
- `src/js/i18n.js`: português do Brasil como idioma inicial/fallback, preservando escolha salva entre idiomas suportados e direção RTL no árabe. Português não recebe bandeira improvisada; o seletor deve ocultar imagem quando `flag` for nulo.
- `src/content/pt-BR.json`: biblioteca de microcopy reutilizável para ações, campos, erros, estados vazios, exclusão e atendimento; seu consumo no projeto de destino depende da ação realmente implementada.
- `scripts/pt-br-content.json`: correspondências exatas para migração do conteúdo legado. Aplicar apenas em texto visível e atributos textuais; não alterar chaves de programação, expressões Alpine, URLs, licenças ou nomes de arquivo por substituição global.

Verificação realizada: igualdade das 639 chaves, preservação de todas as interpolações e sintaxe de `i18n.js`. Um teste isolado de bootstrap passou em sete cenários de idioma/direção, incluindo preferência árabe, português padrão, idioma não suportado e armazenamento indisponível. Esse teste substitui imports por mocks e não comprova renderização nem interação no navegador; essas evidências pertencem à validação da aplicação.
