Initial commit: Add logistics and order_detail message types
Some checks failed
Lock Threads / action (push) Has been cancelled
Mark stale issues and pull requests / stale (push) Has been cancelled
Publish Chatwoot EE docker images / build (linux/amd64, ubuntu-latest) (push) Has been cancelled
Publish Chatwoot EE docker images / build (linux/arm64, ubuntu-22.04-arm) (push) Has been cancelled
Publish Chatwoot EE docker images / merge (push) Has been cancelled
Publish Chatwoot CE docker images / build (linux/amd64, ubuntu-latest) (push) Has been cancelled
Publish Chatwoot CE docker images / build (linux/arm64, ubuntu-22.04-arm) (push) Has been cancelled
Publish Chatwoot CE docker images / merge (push) Has been cancelled
Run Chatwoot CE spec / lint-backend (push) Has been cancelled
Run Chatwoot CE spec / lint-frontend (push) Has been cancelled
Run Chatwoot CE spec / frontend-tests (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (0, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (1, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (10, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (11, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (12, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (13, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (14, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (15, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (2, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (3, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (4, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (5, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (6, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (7, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (8, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (9, 16) (push) Has been cancelled
Run Linux nightly installer / nightly (push) Has been cancelled

- Add Logistics component with progress tracking
- Add OrderDetail component for order information
- Support data-driven steps and actions
- Add blue color scale to widget SCSS
- Fix node overflow and progress bar rendering issues
- Add English translations for dashboard components

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Liang XJ
2026-01-26 11:16:56 +08:00
commit 092fb2e083
7646 changed files with 975643 additions and 0 deletions

View File

@@ -0,0 +1,582 @@
{
"REPORT": {
"HEADER": "Conversas",
"LOADING_CHART": "A carregar dados...",
"NO_ENOUGH_DATA": "Não recebemos pontos de dados suficientes para gerar o relatório. Por favor, tente novamente mais tarde.",
"DOWNLOAD_AGENT_REPORTS": "Descarregar relatórios de agentes",
"DATA_FETCHING_FAILED": "Não foi possível obter dados. Por favor, tente mais tarde.",
"SUMMARY_FETCHING_FAILED": "Não foi possível obter o resumo. Por favor, tente mais tarde.",
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversas",
"DESC": "( Total )"
},
"INCOMING_MESSAGES": {
"NAME": "Mensagens recebidas",
"DESC": "( Total )"
},
"OUTGOING_MESSAGES": {
"NAME": "Mensagens enviadas",
"DESC": "( Total )"
},
"FIRST_RESPONSE_TIME": {
"NAME": "Primeiro tempo de resposta",
"DESC": "( Média )",
"INFO_TEXT": "Número total de conversas utilizadas para cálculo:",
"TOOLTIP_TEXT": "O tempo da primeira resposta é {metricValue} (com base em {conversationCount} conversas)"
},
"RESOLUTION_TIME": {
"NAME": "Tempo de resolução",
"DESC": "( Média )",
"INFO_TEXT": "Número total de conversas utilizadas para cálculo:",
"TOOLTIP_TEXT": "O tempo da primeira resposta é {metricValue} (com base em {conversationCount} conversas)"
},
"RESOLUTION_COUNT": {
"NAME": "Contagem de resolução",
"DESC": "( Total )"
},
"BOT_RESOLUTION_COUNT": {
"NAME": "Contagem de resolução",
"DESC": "( Total )"
},
"BOT_HANDOFF_COUNT": {
"NAME": "Contagem de transferências",
"DESC": "( Total )"
},
"REPLY_TIME": {
"NAME": "Tempo de espera do cliente",
"TOOLTIP_TEXT": "O tempo de espera é {metricValue} (com base em {conversationCount} conversas)",
"DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Últimos 7 Dias",
"LAST_14_DAYS": "Últimos 14 Dias",
"LAST_30_DAYS": "Últimos 30 Dias",
"THIS_MONTH": "This month",
"LAST_MONTH": "Last month",
"LAST_3_MONTHS": "Últimos 3 meses",
"LAST_6_MONTHS": "Últimos 6 meses",
"LAST_YEAR": "Último ano",
"CUSTOM_DATE_RANGE": "Intervalo de tempo personalizado"
},
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Confirmar",
"PLACEHOLDER": "Selecionar intervalo de tempo"
},
"GROUP_BY_FILTER_DROPDOWN_LABEL": "Agrupar por",
"DURATION_FILTER_LABEL": "Duração",
"GROUPING_OPTIONS": {
"DAY": "Dia",
"WEEK": "Semana",
"MONTH": "Mês",
"YEAR": "Ano"
},
"GROUP_BY_DAY_OPTIONS": [
{
"id": 1,
"groupBy": "Dia"
}
],
"GROUP_BY_WEEK_OPTIONS": [
{
"id": 1,
"groupBy": "Dia"
},
{
"id": 2,
"groupBy": "Semana"
}
],
"GROUP_BY_MONTH_OPTIONS": [
{
"id": 1,
"groupBy": "Dia"
},
{
"id": 2,
"groupBy": "Semana"
},
{
"id": 3,
"groupBy": "Mês"
}
],
"GROUP_BY_YEAR_OPTIONS": [
{
"id": 2,
"groupBy": "Semana"
},
{
"id": 3,
"groupBy": "Mês"
},
{
"id": 4,
"groupBy": "Ano"
}
],
"BUSINESS_HOURS": "Horário comercial",
"FILTER_ACTIONS": {
"CLEAR_FILTER": "Limpar filtros",
"EMPTY_LIST": "Nenhum resultado encontrado"
},
"PAGINATION": {
"RESULTS": "Showing {start} to {end} of {total} results",
"PER_PAGE_TEMPLATE": "{size} / page"
}
},
"AGENT_REPORTS": {
"HEADER": "Visão geral de agentes",
"DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agents name to learn more.",
"LOADING_CHART": "A carregar dados...",
"NO_ENOUGH_DATA": "Não recebemos pontos de dados suficientes para gerar o relatório. Por favor, tente novamente mais tarde.",
"DOWNLOAD_AGENT_REPORTS": "Descarregar relatórios de agentes",
"FILTER_DROPDOWN_LABEL": "Selecionar agente",
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversas",
"DESC": "( Total )"
},
"INCOMING_MESSAGES": {
"NAME": "Mensagens recebidas",
"DESC": "( Total )"
},
"OUTGOING_MESSAGES": {
"NAME": "Mensagens de saída",
"DESC": "( Total )"
},
"FIRST_RESPONSE_TIME": {
"NAME": "Primeiro tempo de resposta",
"DESC": "( Média )",
"INFO_TEXT": "Número total de conversas utilizadas para cálculo:",
"TOOLTIP_TEXT": "O tempo da primeira resposta é {metricValue} (com base em {conversationCount} conversas)"
},
"RESOLUTION_TIME": {
"NAME": "Tempo de resolução",
"DESC": "( Média )",
"INFO_TEXT": "Número total de conversas utilizadas para cálculo:",
"TOOLTIP_TEXT": "O tempo da primeira resposta é {metricValue} (com base em {conversationCount} conversas)"
},
"RESOLUTION_COUNT": {
"NAME": "Contagem de resolução",
"DESC": "( Total )"
}
},
"DATE_RANGE": [
{
"id": 0,
"name": "Últimos 7 Dias"
},
{
"id": 1,
"name": "Últimos 30 Dias"
},
{
"id": 2,
"name": "Últimos 3 meses"
},
{
"id": 3,
"name": "Últimos 6 meses"
},
{
"id": 4,
"name": "Último ano"
},
{
"id": 5,
"name": "Intervalo de tempo personalizado"
}
],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Confirmar",
"PLACEHOLDER": "Selecionar intervalo de tempo"
}
},
"LABEL_REPORTS": {
"HEADER": "Visão geral de etiquetas",
"DESCRIPTION": "Rastreie o desempenho com métricas-chave, incluindo conversas, tempos de resposta, tempos de resolução e casos resolvidos. Clique num nome de rótulo para informações detalhadas.",
"LOADING_CHART": "A carregar dados...",
"NO_ENOUGH_DATA": "Não recebemos pontos de dados suficientes para gerar o relatório. Por favor, tente novamente mais tarde.",
"DOWNLOAD_LABEL_REPORTS": "Descarregar relatórios de etiquetas",
"FILTER_DROPDOWN_LABEL": "Selecionar etiqueta",
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversas",
"DESC": "( Total )"
},
"INCOMING_MESSAGES": {
"NAME": "Mensagens recebidas",
"DESC": "( Total )"
},
"OUTGOING_MESSAGES": {
"NAME": "Mensagens de saída",
"DESC": "( Total )"
},
"FIRST_RESPONSE_TIME": {
"NAME": "Primeiro tempo de resposta",
"DESC": "( Média )",
"INFO_TEXT": "Número total de conversas utilizadas para cálculo:",
"TOOLTIP_TEXT": "O tempo da primeira resposta é {metricValue} (com base em {conversationCount} conversas)"
},
"RESOLUTION_TIME": {
"NAME": "Tempo de resolução",
"DESC": "( Média )",
"INFO_TEXT": "Número total de conversas utilizadas para cálculo:",
"TOOLTIP_TEXT": "O tempo da primeira resposta é {metricValue} (com base em {conversationCount} conversas)"
},
"RESOLUTION_COUNT": {
"NAME": "Contagem de resolução",
"DESC": "( Total )"
}
},
"DATE_RANGE": [
{
"id": 0,
"name": "Últimos 7 Dias"
},
{
"id": 1,
"name": "Últimos 30 Dias"
},
{
"id": 2,
"name": "Últimos 3 meses"
},
{
"id": 3,
"name": "Últimos 6 meses"
},
{
"id": 4,
"name": "Último ano"
},
{
"id": 5,
"name": "Intervalo de tempo personalizado"
}
],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Confirmar",
"PLACEHOLDER": "Selecionar intervalo de tempo"
}
},
"INBOX_REPORTS": {
"HEADER": "Visão geral da caixa de entrada",
"DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"LOADING_CHART": "A carregar dados...",
"NO_ENOUGH_DATA": "Não recebemos pontos de dados suficientes para gerar o relatório. Por favor, tente novamente mais tarde.",
"DOWNLOAD_INBOX_REPORTS": "Descarregar relatórios de caixa de entrada",
"FILTER_DROPDOWN_LABEL": "Escolher caixa de entrada",
"ALL_INBOXES": "All Inboxes",
"SEARCH_INBOX": "Search Inbox",
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversas",
"DESC": "( Total )"
},
"INCOMING_MESSAGES": {
"NAME": "Mensagens recebidas",
"DESC": "( Total )"
},
"OUTGOING_MESSAGES": {
"NAME": "Mensagens de saída",
"DESC": "( Total )"
},
"FIRST_RESPONSE_TIME": {
"NAME": "Primeiro tempo de resposta",
"DESC": "( Média )",
"INFO_TEXT": "Número total de conversas utilizadas para cálculo:",
"TOOLTIP_TEXT": "O tempo da primeira resposta é {metricValue} (com base em {conversationCount} conversas)"
},
"RESOLUTION_TIME": {
"NAME": "Tempo de resolução",
"DESC": "( Média )",
"INFO_TEXT": "Número total de conversas utilizadas para cálculo:",
"TOOLTIP_TEXT": "O tempo da primeira resposta é {metricValue} (com base em {conversationCount} conversas)"
},
"RESOLUTION_COUNT": {
"NAME": "Contagem de resolução",
"DESC": "( Total )"
}
},
"DATE_RANGE": [
{
"id": 0,
"name": "Últimos 7 Dias"
},
{
"id": 1,
"name": "Últimos 30 Dias"
},
{
"id": 2,
"name": "Últimos 3 meses"
},
{
"id": 3,
"name": "Últimos 6 meses"
},
{
"id": 4,
"name": "Último ano"
},
{
"id": 5,
"name": "Intervalo de tempo personalizado"
}
],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Confirmar",
"PLACEHOLDER": "Selecionar intervalo de tempo"
}
},
"TEAM_REPORTS": {
"HEADER": "Visão geral da equipa",
"DESCRIPTION": "Get a snapshot of your teams performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "A carregar dados...",
"NO_ENOUGH_DATA": "Não recebemos pontos de dados suficientes para gerar o relatório. Por favor, tente novamente mais tarde.",
"DOWNLOAD_TEAM_REPORTS": "Descarregar relatórios de equipa",
"FILTER_DROPDOWN_LABEL": "Selecionar equipa",
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversas",
"DESC": "( Total )"
},
"INCOMING_MESSAGES": {
"NAME": "Mensagens recebidas",
"DESC": "( Total )"
},
"OUTGOING_MESSAGES": {
"NAME": "Mensagens de saída",
"DESC": "( Total )"
},
"FIRST_RESPONSE_TIME": {
"NAME": "Primeiro tempo de resposta",
"DESC": "( Média )",
"INFO_TEXT": "Número total de conversas utilizadas para cálculo:",
"TOOLTIP_TEXT": "O tempo da primeira resposta é {metricValue} (com base em {conversationCount} conversas)"
},
"RESOLUTION_TIME": {
"NAME": "Tempo de resolução",
"DESC": "( Média )",
"INFO_TEXT": "Número total de conversas utilizadas para cálculo:",
"TOOLTIP_TEXT": "O tempo da primeira resposta é {metricValue} (com base em {conversationCount} conversas)"
},
"RESOLUTION_COUNT": {
"NAME": "Contagem de resolução",
"DESC": "( Total )"
}
},
"DATE_RANGE": [
{
"id": 0,
"name": "Últimos 7 Dias"
},
{
"id": 1,
"name": "Últimos 30 Dias"
},
{
"id": 2,
"name": "Últimos 3 meses"
},
{
"id": 3,
"name": "Últimos 6 meses"
},
{
"id": 4,
"name": "Último ano"
},
{
"id": 5,
"name": "Intervalo de tempo personalizado"
}
],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Confirmar",
"PLACEHOLDER": "Selecionar intervalo de tempo"
}
},
"CSAT_REPORTS": {
"HEADER": "Relatórios CSAT",
"NO_RECORDS": "Não há respostas de questionários CSAT disponíveis.",
"DOWNLOAD": "Descarregar relatórios CSAT",
"DOWNLOAD_FAILED": "Falha ao descarregar os relatórios CSAT",
"FILTERS": {
"AGENTS": {
"PLACEHOLDER": "Escolher agentes"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contacto",
"AGENT_NAME": "Agente atribuído",
"RATING": "Classificação",
"FEEDBACK_TEXT": "Comentário de feedback"
}
},
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total de respostas",
"TOOLTIP": "Número total de respostas recolhidas"
},
"SATISFACTION_SCORE": {
"LABEL": "Pontuação de satisfação",
"TOOLTIP": "Número total de respostas positivas / Número total de respostas * 100"
},
"RESPONSE_RATE": {
"LABEL": "Taxa de resposta",
"TOOLTIP": "Número total de respostas / Número total de mensagens de questionários CSAT enviadas * 100"
}
}
},
"BOT_REPORTS": {
"HEADER": "Relatórios de bot",
"METRIC": {
"TOTAL_CONVERSATIONS": {
"LABEL": "N.º de conversas",
"TOOLTIP": "Número total de conversas tratadas pelo bot"
},
"TOTAL_RESPONSES": {
"LABEL": "Total de respostas",
"TOOLTIP": "Número total de respostas enviadas pelo bot"
},
"RESOLUTION_RATE": {
"LABEL": "Taxa de resolução",
"TOOLTIP": "Número total de conversas resolvidas pelo bot / Número total de conversas tratadas pelo bot * 100"
},
"HANDOFF_RATE": {
"LABEL": "Taxa de transferência",
"TOOLTIP": "Número total de conversas transferidas para agentes / Número total de conversas tratadas pelo bot * 100"
}
}
},
"OVERVIEW_REPORTS": {
"HEADER": "Visão geral",
"LIVE": "Disponível",
"ACCOUNT_CONVERSATIONS": {
"HEADER": "Conversas abertas",
"LOADING_MESSAGE": "A carregar métricas de conversa...",
"OPEN": "Abertas",
"UNATTENDED": "Por responder",
"UNASSIGNED": "Não atribuída",
"PENDING": "Pendente"
},
"CONVERSATION_HEATMAP": {
"HEADER": "Tráfego de conversa",
"NO_CONVERSATIONS": "Não existem conversas",
"CONVERSATION": "{count} conversa",
"CONVERSATIONS": "{count} conversas",
"DOWNLOAD_REPORT": "Descarregar relatório"
},
"RESOLUTION_HEATMAP": {
"HEADER": "Resolutions",
"NO_CONVERSATIONS": "Não existem conversas",
"CONVERSATION": "{count} conversa",
"CONVERSATIONS": "{count} conversas",
"DOWNLOAD_REPORT": "Descarregar relatório"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Conversas por agentes",
"LOADING_MESSAGE": "A gerar métricas dos agentes...",
"NO_AGENTS": "Não existem conversas por agentes",
"TABLE_HEADER": {
"AGENT": "Agente",
"OPEN": "Abertas",
"UNATTENDED": "Por responder",
"STATUS": "Estado"
}
},
"TEAM_CONVERSATIONS": {
"ALL_TEAMS": "All Teams",
"HEADER": "Conversations by teams",
"LOADING_MESSAGE": "Loading team metrics...",
"NO_TEAMS": "There is no data available",
"TABLE_HEADER": {
"TEAM": "Equipa",
"OPEN": "Abertas",
"UNATTENDED": "Por responder",
"STATUS": "Situação"
}
},
"AGENT_STATUS": {
"HEADER": "Estado do agente",
"ONLINE": "Disponível",
"BUSY": "Ocupado",
"OFFLINE": "Ausente"
}
},
"DAYS_OF_WEEK": {
"SUNDAY": "Domingo",
"MONDAY": "Segunda-feira",
"TUESDAY": "Terça-feira",
"WEDNESDAY": "Quarta-feira",
"THURSDAY": "Quinta-feira",
"FRIDAY": "Sexta-feira",
"SATURDAY": "Sábado"
},
"SLA_REPORTS": {
"HEADER": "Relatórios SLA",
"NO_RECORDS": "Conversas com SLA aplicadas não estão disponíveis.",
"LOADING": "A carregar dados SLA...",
"DOWNLOAD_SLA_REPORTS": "Descarregar relatórios SLA",
"DOWNLOAD_FAILED": "Falha ao efetuar download dos relatórios SLA",
"DROPDOWN": {
"ADD_FIlTER": "Adicionar filtro",
"CLEAR_ALL": "Limpar tudo",
"CLEAR_FILTER": "Limpar filtros",
"EMPTY_LIST": "Nenhum resultado encontrado",
"NO_FILTER": "Sem filtros disponíveis",
"SEARCH": "Procurar filtros",
"INPUT_PLACEHOLDER": {
"SLA": "Nome SLA",
"AGENTS": "Nome do agente",
"INBOXES": "Nome da caixa de entrada",
"LABELS": "Nome da etiqueta",
"TEAMS": "Nome da equipa"
},
"SLA": "Política SLA",
"INBOXES": "Caixa de entrada",
"AGENTS": "Agente",
"LABELS": "Etiqueta",
"TEAMS": "Equipa"
},
"WITH": "com",
"METRICS": {
"HIT_RATE": {
"LABEL": "Taxa de sucesso",
"TOOLTIP": "Percentagem de SLA criadas foi completada com sucesso"
},
"NO_OF_MISSES": {
"LABEL": "Número de perdas",
"TOOLTIP": "Total de SLA perdidas num determinado período"
},
"NO_OF_CONVERSATIONS": {
"LABEL": "Número de conversas",
"TOOLTIP": "Número total de conversas com SLA"
}
},
"TABLE": {
"HEADER": {
"POLICY": "Política",
"CONVERSATION": "Conversa",
"AGENT": "Agente"
},
"VIEW_DETAILS": "Ver detalhes"
}
},
"SUMMARY_REPORTS": {
"INBOX": "Caixa de entrada",
"AGENT": "Agente",
"TEAM": "Equipa",
"LABEL": "Etiqueta",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
"RESOLUTION_COUNT": "Contagem de resolução",
"CONVERSATIONS": "Num de conversas"
}
}