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 ""))