Mapa de Traducoes (i18n)

Arquivos

  • src/i18n/locales/pt.json — Portugues (principal)
  • src/i18n/locales/en.json — Ingles

Problema recorrente: namespace errado

SINTOMA: A UI mostra atendimentoChatExtra.callWaba em vez do texto. CAUSA: A key existe em outro namespace (ex: ticketDetail) mas nao em atendimentoChatExtra. FIX: Verificar com Python qual namespace tem a key e adicionar no namespace correto.

import json
with open('frontend/src/i18n/locales/pt.json') as f: d = json.load(f)
# Verificar se key esta no namespace certo:
print(d.get('atendimentoChatExtra', {}).get('callWaba', 'FALTANDO'))

Namespaces criticos e suas keys

atendimentoChatExtra (ChatHeader, ChatArea)

Keys obrigatorias que criamos:

  • callWaba, wabaCallPermissionRequest, wabaCallPermissionSent
  • callContact, hangupCall, channelDataUnavailable
  • addTag, tagUpdateError
  • newOpportunityDialogTitle, newOpportunityCreateBtn, defaultOpportunityName

layoutSidebar.item (menu lateral)

Keys criadas por nos:

  • principal → “Inicio”
  • kanbanNovo → “Kanban Novo”
  • templatesWaba → “Criar Template”
  • gruposWhatsapp → “Grupos”

layoutSidebar.cat (categorias do menu)

Keys criadas por nos:

  • gestaoCrm → “Gestao CRM”
  • gestaoEquipe → “Gestao de Equipe”
  • redesSociais → “Redes Sociais”

massaLayout (abas envio em massa)

Keys modificadas:

  • tabCriarTemplate → “Criar Template”
  • tabTemplate → “API Oficial”
  • tabTemplateVariavel → “API com Nome”
  • tabTexto → “Nao Oficial · QR”
  • tabTextoVariavel → “Nao Oficial com Nome”

massaTemplateWabaPage (criar-template)

  • pageTitle, pageDescription, tabCreate, tabMulti, tabAi, tabList

rcsConfigPage (config RCS)

  • title, description, infoTitle, infoDesc, infobipDesc, sinchDesc, zenviaDesc

massaRcsPage (disparo RCS)

  • configuration, provider, selectProvider, delayMin, delayMax…

Regra de verificacao antes de deploy

import json
REQUIRED = {
  'atendimentoChatExtra': ['callWaba','wabaCallPermissionRequest','addTag',
                           'newOpportunityDialogTitle','newOpportunityCreateBtn'],
  'massaLayout': ['tabCriarTemplate','tabTemplate','tabTemplateVariavel',
                  'tabTexto','tabTextoVariavel'],
}
with open('frontend/src/i18n/locales/pt.json') as f: d = json.load(f)
for ns, keys in REQUIRED.items():
    for k in keys:
        v = d.get(ns, {}).get(k)
        print(f"{'OK' if v else 'FALTA'}: {ns}.{k}" + (f" = {v[:30]}" if v else ""))