* feat(whatsapp): show contact typing and recording indicators via baileys presence Subscribe to WhatsApp presence updates via the baileys-api provider to display real-time typing and recording indicators in the dashboard. - Handle presence.update webhook events (composing, recording, paused, available) and broadcast via ActionCable - Add conversation.recording event to ActionCable, webhook, and channel listeners for parity with typing_on/typing_off - Show "typing..." / "recording..." in green text on the chat list, replacing the message preview - Show "X is typing" / "X is recording audio" in the conversation view - Add presence_subscribe provider config option (default off) to gate all subscription calls to the baileys-api - Subscribe to presence on conversation open and periodically (1 min) for the top 10 chat list conversations - Consolidate contact LID from presence.update jidAlt payload - Prevent echo-back of contact typing events to the channel Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: address review feedback - Filter chat list typing indicator to contact-only events - Add dedupe to presence subscribe bulk calls - Use strong parameters for conversation_ids - Remove redundant YAML quotes in swagger webhook enum Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: address review feedback - Extract phone from data[:id] when JID is @s.whatsapp.net (fallback when jidAlt is absent) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: address review feedback - Filter recording users in getTypingUsersText to show correct names - Add 10s timeout to presence_subscribe HTTP request Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: scope typing timer per user instead of per conversation Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: make presence subscribe best-effort with rescue per channel Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: address review feedback - Add messagePreviewClass to typing preview for consistent padding - Fix specs to use WebMock assertions instead of instance spying Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
655 lines
29 KiB
JSON
655 lines
29 KiB
JSON
{
|
|
"CONVERSATION": {
|
|
"SELECT_A_CONVERSATION": "Por favor, selecione uma conversa no painel da esquerda",
|
|
"CSAT_REPLY_MESSAGE": "Por favor, classifique a conversa",
|
|
"404": "Desculpe, não conseguimos encontrar a conversa. Por favor, tente novamente",
|
|
"SWITCH_VIEW_LAYOUT": "Alternar o layout",
|
|
"DASHBOARD_APP_TAB_MESSAGES": "Mensagens",
|
|
"UNVERIFIED_SESSION": "A identidade deste usuário não foi verificada",
|
|
"NO_MESSAGE_1": "Oh oh! Parece que não há mensagens de clientes na sua caixa de entrada.",
|
|
"NO_MESSAGE_2": " para enviar uma mensagem para sua página!",
|
|
"NO_INBOX_1": "Hola! Parece que você não adicionou nenhuma caixa de entrada ainda.",
|
|
"NO_INBOX_2": " para começar",
|
|
"NO_INBOX_AGENT": "Uh Oh! Parece que você não faz parte de nenhuma caixa de entrada. Por favor, contate seu administrador",
|
|
"SEARCH_MESSAGES": "Pesquisar por mensagens nas conversas",
|
|
"VIEW_ORIGINAL": "Ver original",
|
|
"VIEW_TRANSLATED": "Ver traduzido",
|
|
"EMPTY_STATE": {
|
|
"CMD_BAR": "para abrir o menu de comando",
|
|
"KEYBOARD_SHORTCUTS": "para ver os atalhos de teclado"
|
|
},
|
|
"SEARCH": {
|
|
"TITLE": "Pesquisar mensagens",
|
|
"RESULT_TITLE": "Resultados da Pesquisa",
|
|
"LOADING_MESSAGE": "Preparando dados...",
|
|
"PLACEHOLDER": "Digite qualquer texto para pesquisar mensagens",
|
|
"NO_MATCHING_RESULTS": "Nenhum resultado encontrado."
|
|
},
|
|
"UNREAD_MESSAGES": "Mensagens não lidas",
|
|
"UNREAD_MESSAGE": "Mensagem não lida",
|
|
"CLICK_HERE": "Clique aqui",
|
|
"LOADING_INBOXES": "Carregando caixas de entrada",
|
|
"LOADING_CONVERSATIONS": "Carregando conversas",
|
|
"CANNOT_REPLY": "Você não pode responder porque",
|
|
"24_HOURS_WINDOW": "Restrições de janela de mensagem de 24 horas",
|
|
"48_HOURS_WINDOW": "Restrição da janela de mensagens de 48 horas",
|
|
"API_HOURS_WINDOW": "Você só pode responder a esta conversa em {hours} horas",
|
|
"NOT_ASSIGNED_TO_YOU": "Esta conversa não está atribuída a você. Gostaria de atribuir esta conversa a você mesmo?",
|
|
"ASSIGN_TO_ME": "Atribuir a mim",
|
|
"BOT_HANDOFF_MESSAGE": "Você está respondendo a uma conversa que é atualmente tratada por um assistente ou um robô.",
|
|
"BOT_HANDOFF_ACTION": "Marcar como aberta e atribuir a você",
|
|
"BOT_HANDOFF_REOPEN_ACTION": "Marcar conversa como aberta",
|
|
"BOT_HANDOFF_SUCCESS": "Uma conversa foi atribuída a você",
|
|
"BOT_HANDOFF_ERROR": "Falha ao resolver conversas. Por favor, tente novamente.",
|
|
"TWILIO_WHATSAPP_CAN_REPLY": "Você só pode responder a esta conversa usando um modelo de mensagem devido a",
|
|
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "Restrições de janela de mensagem de 24 horas",
|
|
"ANNOUNCEMENT_MODE_BANNER": "Apenas administradores têm permissão para enviar mensagens neste grupo",
|
|
"GROUP_LEFT_BANNER": "Você não faz mais parte deste grupo e não pode enviar mensagens nele",
|
|
"GROUPS_DISABLED_BANNER": "As mensagens de grupo estão desativadas. Ative o suporte completo a grupos (gratuito) para ver e enviar mensagens.",
|
|
"GROUPS_DISABLED_BANNER_NON_ADMIN": "As mensagens de grupo estão desativadas. Entre em contato com o administrador para ativar o suporte completo a grupos.",
|
|
"GROUPS_DISABLED_CTA": "Saiba como ativar (gratuito)",
|
|
"OLD_INSTAGRAM_INBOX_REPLY_BANNER": "Esta conta do Instagram foi migrada para a nova caixa de entrada do canal do Instagram. Todas as novas mensagens serão mostradas lá. Você não poderá mais enviar mensagens desta conversa.",
|
|
"REPLYING_TO": "Você está respondendo a:",
|
|
"REMOVE_SELECTION": "Remover seleção",
|
|
"DOWNLOAD": "Baixar",
|
|
"UNKNOWN_FILE_TYPE": "Arquivo desconhecido",
|
|
"SAVE_CONTACT": "Salvar contato",
|
|
"NO_CONTENT": "Nenhum conteúdo a ser exibido",
|
|
"SHARED_ATTACHMENT": {
|
|
"CONTACT": "{sender} compartilhou um contato",
|
|
"LOCATION": "{sender} compartilhou uma localização",
|
|
"FILE": "{sender} compartilhou um arquivo",
|
|
"MEETING": "{sender} começou a reunião"
|
|
},
|
|
"UPLOADING_ATTACHMENTS": "Enviando anexos...",
|
|
"REPLIED_TO_STORY": "Respondido ao seu story",
|
|
"UNSUPPORTED_MESSAGE": "Esta mensagem não é suportada. Você pode ver esta mensagem no aplicativo.",
|
|
"UNSUPPORTED_MESSAGE_WHATSAPP": "Esta mensagem não é suportada. Você pode ver esta mensagem no aplicativo do WhatsApp.",
|
|
"UNSUPPORTED_MESSAGE_FACEBOOK": "Esta mensagem não é suportada. Você pode ver esta mensagem no aplicativo Facebook Messenger.",
|
|
"UNSUPPORTED_MESSAGE_INSTAGRAM": "Esta mensagem não é suportada. Você pode ver esta mensagem no aplicativo do Instagram.",
|
|
"UNSUPPORTED_MESSAGE_TIKTOK": "Esta mensagem não é compatível. Você pode visualizá-la no aplicativo do TikTok.",
|
|
"SUCCESS_DELETE_MESSAGE": "Mensagem excluída com sucesso",
|
|
"FAIL_DELETE_MESSSAGE": "Não foi possível excluir a mensagem! Tente novamente",
|
|
"NO_RESPONSE": "Sem resposta",
|
|
"RESPONSE": "Resposta",
|
|
"RATING_TITLE": "Classificação",
|
|
"FEEDBACK_TITLE": "Feedback",
|
|
"REPLY_MESSAGE_NOT_FOUND": "Mensagem não disponível",
|
|
"CARD": {
|
|
"SHOW_LABELS": "Mostrar etiquetas",
|
|
"HIDE_LABELS": "Ocultar as etiquetas"
|
|
},
|
|
"VOICE_CALL": {
|
|
"INCOMING_CALL": "Chamada recebida",
|
|
"OUTGOING_CALL": "Chamada realizada",
|
|
"CALL_IN_PROGRESS": "Chamada em andamento",
|
|
"NO_ANSWER": "Sem resposta",
|
|
"MISSED_CALL": "Chamada perdida",
|
|
"CALL_ENDED": "Chamada encerrada",
|
|
"NOT_ANSWERED_YET": "Ainda não respondido",
|
|
"THEY_ANSWERED": "Eles responderam",
|
|
"YOU_ANSWERED": "Você respondeu"
|
|
},
|
|
"HEADER": {
|
|
"RESOLVE_ACTION": "Resolver",
|
|
"REOPEN_ACTION": "Reabrir",
|
|
"OPEN_ACTION": "Abrir",
|
|
"MORE_ACTIONS": "Mais ações",
|
|
"OPEN": "Mais",
|
|
"CLOSE": "Fechar",
|
|
"DETAILS": "detalhes",
|
|
"SNOOZED_UNTIL": "Adiar até",
|
|
"SNOOZED_UNTIL_TOMORROW": "Adiado até amanhã",
|
|
"SNOOZED_UNTIL_NEXT_WEEK": "Adiada até a próxima semana",
|
|
"SNOOZED_UNTIL_NEXT_REPLY": "Adiado até a próxima resposta",
|
|
"SLA_STATUS": {
|
|
"FRT": "FRT {status}",
|
|
"NRT": "NRT {status}",
|
|
"RT": "RT {status}",
|
|
"MISSED": "perdidas",
|
|
"DUE": "venceu"
|
|
}
|
|
},
|
|
"RESOLVE_DROPDOWN": {
|
|
"MARK_PENDING": "Deixar pendente",
|
|
"SNOOZE_UNTIL": "Adiar",
|
|
"SNOOZE": {
|
|
"TITLE": "Suspender até",
|
|
"NEXT_REPLY": "Próxima resposta",
|
|
"TOMORROW": "Amanhã",
|
|
"NEXT_WEEK": "Próxima semana"
|
|
}
|
|
},
|
|
"MENTION": {
|
|
"AGENTS": "Agentes",
|
|
"TEAMS": "Times"
|
|
},
|
|
"CUSTOM_SNOOZE": {
|
|
"TITLE": "Adiar até",
|
|
"APPLY": "Adiar",
|
|
"CANCEL": "Cancelar"
|
|
},
|
|
"PRIORITY": {
|
|
"TITLE": "Prioridade",
|
|
"OPTIONS": {
|
|
"NONE": "Nenhuma",
|
|
"URGENT": "Urgente",
|
|
"HIGH": "Alta",
|
|
"MEDIUM": "Média",
|
|
"LOW": "Baixa"
|
|
},
|
|
"CHANGE_PRIORITY": {
|
|
"SELECT_PLACEHOLDER": "Nenhuma",
|
|
"INPUT_PLACEHOLDER": "Selecionar prioridade",
|
|
"NO_RESULTS": "Nenhum resultado encontrado",
|
|
"SUCCESSFUL": "Alterada a prioridade do ID da conversa {conversationId} para {priority}",
|
|
"FAILED": "Não foi possível alterar a prioridade. Por favor, tente novamente."
|
|
}
|
|
},
|
|
"DELETE_CONVERSATION": {
|
|
"TITLE": "Excluir conversa #{conversationId}",
|
|
"DESCRIPTION": "Tem certeza que deseja excluir esta conversa?",
|
|
"CONFIRM": "Excluir"
|
|
},
|
|
"CARD_CONTEXT_MENU": {
|
|
"PENDING": "Deixar pendente",
|
|
"RESOLVED": "Marcar como resolvida",
|
|
"MARK_AS_UNREAD": "Marcar como não lida",
|
|
"MARK_AS_READ": "Marcar como lida",
|
|
"REOPEN": "Reabrir conversa",
|
|
"SNOOZE": {
|
|
"TITLE": "Adiar",
|
|
"NEXT_REPLY": "Até a próxima resposta",
|
|
"TOMORROW": "Até amanhã",
|
|
"NEXT_WEEK": "Até a próxima semana"
|
|
},
|
|
"ASSIGN_AGENT": "Atribuir Agente",
|
|
"ASSIGN_LABEL": "Atribuir etiqueta",
|
|
"AGENTS_LOADING": "Carregando agentes...",
|
|
"ASSIGN_TEAM": "Atribuir time",
|
|
"DELETE": "Excluir conversa",
|
|
"OPEN_IN_NEW_TAB": "Abrir em nova aba",
|
|
"COPY_LINK": "Copiar link da conversa",
|
|
"COPY_LINK_SUCCESS": "Link da conversa copiado",
|
|
"API": {
|
|
"AGENT_ASSIGNMENT": {
|
|
"SUCCESFUL": "ID da conversa {conversationId} atribuído para \"{agentName}\"",
|
|
"FAILED": "Não foi possível atribuir agente. Por favor, tente novamente."
|
|
},
|
|
"LABEL_ASSIGNMENT": {
|
|
"SUCCESFUL": "Etiqueta #{labelName} atribuída para a conversa {conversationId}",
|
|
"FAILED": "Não foi possível atribuir etiqueta. Por favor, tente novamente."
|
|
},
|
|
"LABEL_REMOVAL": {
|
|
"SUCCESFUL": "Etiqueta #{labelName} removida da conversa com id {conversationId}",
|
|
"FAILED": "Não foi possível remover a etiqueta. Por favor, tente novamente."
|
|
},
|
|
"TEAM_ASSIGNMENT": {
|
|
"SUCCESFUL": "Time {team} atribuído para o id de conversa {conversationId}",
|
|
"FAILED": "Não foi possível atribuir time. Por favor, tente novamente."
|
|
}
|
|
}
|
|
},
|
|
"FOOTER": {
|
|
"MESSAGE_SIGN_TOOLTIP": "Assinatura de mensagem",
|
|
"ENABLE_SIGN_TOOLTIP": "Ativar assinatura",
|
|
"DISABLE_SIGN_TOOLTIP": "Desativar assinatura",
|
|
"SIGNATURE_LABEL_TOP": "↓ Assinatura",
|
|
"SIGNATURE_LABEL_TOP_TOOLTIP": "A assinatura será enviada no início da mensagem",
|
|
"SIGNATURE_LABEL_BOTTOM": "↑ Assinatura",
|
|
"SIGNATURE_LABEL_BOTTOM_TOOLTIP": "A assinatura será enviada no final da mensagem",
|
|
"MSG_INPUT": "Shift + enter para nova linha. Digite '/' para selecionar uma Resposta Pronta.",
|
|
"PRIVATE_MSG_INPUT": "A mensagem será visível apenas para agentes",
|
|
"MESSAGING_RESTRICTED": "Você não pode responder esta conversa",
|
|
"MESSAGING_RESTRICTED_WHATSAPP": "Você só pode responder usando uma mensagem de modelo devido à restrição da janela de 24 horas",
|
|
"MESSAGING_RESTRICTED_API": "Você só pode responder usando uma mensagem de template devido à restrição da janela de mensagens",
|
|
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "A assinatura da mensagem não está configurada. Por favor, configure-a nas configurações do perfil.",
|
|
"COPILOT_MSG_INPUT": "Forneça instruções adicionais ao Copiloto ou pergunte algo mais... Pressione Enter para enviar",
|
|
"CLICK_HERE": "Clique aqui para atualizar",
|
|
"WHATSAPP_TEMPLATES": "Modelos do Whatsapp",
|
|
"ANNOUNCEMENT_MODE_RESTRICTED": "Apenas administradores têm permissão para enviar mensagens neste grupo",
|
|
"GROUP_LEFT_RESTRICTED": "Você não faz mais parte deste grupo e não pode enviar mensagens nele",
|
|
"GROUPS_DISABLED_RESTRICTED": "As mensagens de grupo estão desativadas — ative gratuitamente"
|
|
},
|
|
"REPLYBOX": {
|
|
"REPLY": "Responder",
|
|
"PRIVATE_NOTE": "Mensagem Privada",
|
|
"SEND": "Enviar",
|
|
"CREATE": "Enviar",
|
|
"INSERT_READ_MORE": "Ler mais",
|
|
"DISMISS_REPLY": "Dispensar resposta",
|
|
"REPLYING_TO": "Respondendo a:",
|
|
"TIP_EMOJI_ICON": "Mostrar seletor de emoji",
|
|
"TIP_ATTACH_ICON": "Anexar arquivos",
|
|
"TIP_AUDIORECORDER_ICON": "Gravar áudio",
|
|
"TIP_AUDIORECORDER_PERMISSION": "Permitir acesso ao áudio",
|
|
"TIP_AUDIORECORDER_ERROR": "Não foi possível abrir o áudio",
|
|
"AUDIO_CONVERSION_FAILED": "Falha na conversão do áudio. Tente novamente.",
|
|
"DRAG_DROP": "Arraste e solte aqui para anexar",
|
|
"START_AUDIO_RECORDING": "Iniciar gravação de áudio",
|
|
"STOP_AUDIO_RECORDING": "Parar gravação de áudio",
|
|
"COPILOT_THINKING": "O Copiloto está pensando",
|
|
"EMAIL_HEAD": {
|
|
"TO": "Para",
|
|
"ADD_BCC": "Adicionar cco",
|
|
"CC": {
|
|
"LABEL": "CC",
|
|
"PLACEHOLDER": "E-mails separados por vírgulas",
|
|
"ERROR": "Por favor, insira endereços de e-mail válidos"
|
|
},
|
|
"BCC": {
|
|
"LABEL": "Cco",
|
|
"PLACEHOLDER": "E-mails separados por vírgulas",
|
|
"ERROR": "Por favor, insira endereços de e-mail válidos"
|
|
}
|
|
},
|
|
"UNDEFINED_VARIABLES": {
|
|
"TITLE": "Variáveis não definidas",
|
|
"MESSAGE": "Você tem {undefinedVariablesCount} variáveis não definidas em sua mensagem: {undefinedVariables}. Gostaria de enviar a mensagem mesmo assim?",
|
|
"CONFIRM": {
|
|
"YES": "Enviar",
|
|
"CANCEL": "Cancelar"
|
|
}
|
|
},
|
|
"QUOTED_REPLY": {
|
|
"ENABLE_TOOLTIP": "Incluir o encadeamento de e-mails citado",
|
|
"DISABLE_TOOLTIP": "Não incluir o encadeamento de e-mails citado",
|
|
"REMOVE_PREVIEW": "Remover o encadeamento de e-mails citado",
|
|
"COLLAPSE": "Recolher a prévia",
|
|
"EXPAND": "Expandir a prévia"
|
|
},
|
|
"SCHEDULE_SEND": "Agendar envio"
|
|
},
|
|
"VISIBLE_TO_AGENTS": "Mensagem Privada: Apenas visível para você e seu time",
|
|
"CHANGE_STATUS": "Estado da conversa mudou",
|
|
"CHANGE_STATUS_FAILED": "Mudança de status da conversa falhou",
|
|
"CHANGE_AGENT": "Novo agente atribuído",
|
|
"CHANGE_AGENT_FAILED": "Falha ao atribuir outro agente",
|
|
"ASSIGN_LABEL_SUCCESFUL": "Etiqueta atribuída com sucesso",
|
|
"ASSIGN_LABEL_FAILED": "Falha ao atribuir etiqueta",
|
|
"CHANGE_TEAM": "Status da conversa mudou",
|
|
"SUCCESS_DELETE_CONVERSATION": "Conversa excluída com sucesso",
|
|
"FAIL_DELETE_CONVERSATION": "Não foi possível excluir a conversa! Tente novamente",
|
|
"FILE_SIZE_LIMIT": "O arquivo excede os {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB do limite para anexos",
|
|
"FILE_TYPE_NOT_SUPPORTED": "O tipo de arquivo {fileName} não é suportado nesta conversa",
|
|
"MESSAGE_ERROR": "Não foi possível enviar esta mensagem, por favor, tente novamente mais tarde",
|
|
"SENT_BY": "Enviado por:",
|
|
"BOT": "Robôs",
|
|
"WHATSAPP": "WhatsApp",
|
|
"NATIVE_APP": "Aplicativo nativo",
|
|
"NATIVE_APP_ADVISORY": "Esta mensagem foi enviada a partir do aplicativo nativo. Responda pelo Chatwoot para manter a janela de mensagens ativa.",
|
|
"SEND_FAILED": "Não foi possível enviar a mensagem! Tente novamente",
|
|
"TRY_AGAIN": "tentar novamente",
|
|
"ASSIGNMENT": {
|
|
"SELECT_AGENT": "selecionar Agente",
|
|
"REMOVE": "Excluir",
|
|
"ASSIGN": "Atribuir"
|
|
},
|
|
"CONTEXT_MENU": {
|
|
"COPY": "Copiar",
|
|
"REPLY_TO": "Responder mensagem",
|
|
"DELETE": "Excluir",
|
|
"CREATE_A_CANNED_RESPONSE": "Adicionar às respostas prontas",
|
|
"TRANSLATE": "Traduzir",
|
|
"COPY_PERMALINK": "Copiar link para a mensagem",
|
|
"LINK_COPIED": "URL da mensagem copiada para a área de transferência",
|
|
"DELETE_CONFIRMATION": {
|
|
"TITLE": "Você tem certeza que deseja excluir esta mensagem?",
|
|
"MESSAGE": "Você não pode desfazer essa ação",
|
|
"DELETE": "Excluir",
|
|
"CANCEL": "Cancelar"
|
|
},
|
|
"EDIT": {
|
|
"LABEL": "Editar",
|
|
"TITLE": "Editar mensagem",
|
|
"PLACEHOLDER": "Digite o conteúdo da mensagem",
|
|
"SAVE": "Salvar",
|
|
"CANCEL": "Cancelar",
|
|
"SUCCESS": "Mensagem editada com sucesso",
|
|
"ERROR": "Falha ao editar mensagem",
|
|
"EMPTY_CONTENT": "O conteúdo da mensagem não pode estar vazio"
|
|
}
|
|
},
|
|
"SIDEBAR": {
|
|
"CONTACT": "Contatos",
|
|
"COPILOT": "Copiloto"
|
|
},
|
|
"VOICE_WIDGET": {
|
|
"INCOMING_CALL": "Chamada recebida",
|
|
"OUTGOING_CALL": "Chamada realizada",
|
|
"CALL_IN_PROGRESS": "Chamada em andamento",
|
|
"NOT_ANSWERED_YET": "Ainda não respondido",
|
|
"HANDLED_IN_ANOTHER_TAB": "Sendo atendida em outra aba",
|
|
"REJECT_CALL": "Recusar",
|
|
"JOIN_CALL": "Entrar na chamada",
|
|
"END_CALL": "Encerrar chamada"
|
|
},
|
|
"INBOX": {
|
|
"WHATSAPP_PROVIDER_CONNECTION": {
|
|
"NOT_CONNECTED": "O WhatsApp não está conectado. Por favor conecte o seu dispositivo novamente.",
|
|
"NOT_CONNECTED_CONTACT_ADMIN": "O WhatsApp não está conectado. Clique no botão ao lado para tentar reconectar, ou contate o seu administrador para conectar o dispositivo novamente.",
|
|
"LINK_DEVICE": "Conectar dispositivo",
|
|
"RECONNECT_FAILED": "Falha ao reconectar. Por favor, contate o seu administrador para conectar o dispositivo novamente."
|
|
}
|
|
}
|
|
},
|
|
"EMAIL_TRANSCRIPT": {
|
|
"TITLE": "Enviar transcrição de conversa",
|
|
"DESC": "Enviar uma cópia da transcrição da conversa para o endereço de e-mail especificado",
|
|
"SUBMIT": "Enviar",
|
|
"CANCEL": "Cancelar",
|
|
"SEND_EMAIL_SUCCESS": "A transcrição do chat foi enviada com sucesso",
|
|
"SEND_EMAIL_ERROR": "Ocorreu um erro, por favor tente novamente",
|
|
"SEND_EMAIL_PAYMENT_REQUIRED": "A transcrição de e-mail não está disponível no seu plano atual. Por favor, atualize para usar este recurso.",
|
|
"FORM": {
|
|
"SEND_TO_CONTACT": "Envie a transcrição para o cliente",
|
|
"SEND_TO_AGENT": "Envie a transcrição para o agente designado",
|
|
"SEND_TO_OTHER_EMAIL_ADDRESS": "Enviar a transcrição para outro endereço de e-mail",
|
|
"EMAIL": {
|
|
"PLACEHOLDER": "Digite um endereço de e-mail",
|
|
"ERROR": "Por favor, insira um endereço de e-mail válido"
|
|
}
|
|
}
|
|
},
|
|
"ONBOARDING": {
|
|
"TITLE": "Olá, 👋. Bem-vindo ao {installationName}!",
|
|
"DESCRIPTION": "Obrigado por se inscrever. Queremos que você aproveite o máximo de {installationName}. Aqui estão algumas coisas que você consegue fazer em {installationName} para que tenha uma experiência agradável.",
|
|
"GREETING_MORNING": "👋 Bom dia, {name}. Bem-vindo a {installationName}.",
|
|
"GREETING_AFTERNOON": "👋 Boa tarde, {name}. Bem-vindo a {installationName}.",
|
|
"GREETING_EVENING": "👋 Boa noite, {name}. Bem-vindo a {installationName}.",
|
|
"READ_LATEST_UPDATES": "Leia as últimas atualizações",
|
|
"ALL_CONVERSATION": {
|
|
"TITLE": "Todas as suas conversas em um só lugar",
|
|
"DESCRIPTION": "Veja todas as conversas dos seus clientes em um único painel. Você pode filtrar as conversas pelo canal de entrada, rótulo e status.",
|
|
"NEW_LINK": "Clique aqui para criar uma caixa de entrada"
|
|
},
|
|
"TEAM_MEMBERS": {
|
|
"TITLE": "Convidar membros de seu time",
|
|
"DESCRIPTION": "Já que você está se preparando para conversar com seu cliente, traga seus colegas para ajudá-lo. Você pode convidar seus colegas adicionando os endereços de e-mail deles na lista de agentes.",
|
|
"NEW_LINK": "Clique aqui para convidar um membro do time"
|
|
},
|
|
"LABELS": {
|
|
"TITLE": "Organizar conversas com etiquetas",
|
|
"DESCRIPTION": "Etiquetas fornecem uma forma mais fácil de organizar a sua conversa. Criar algumas etiquetas como #solicitação-suporte, #fatura-assunto etc., assim você poderá futuramente utiliza-las em uma conversa posteriormente.",
|
|
"NEW_LINK": "Clique aqui para criar etiquetas"
|
|
},
|
|
"CANNED_RESPONSES": {
|
|
"TITLE": "Criar respostas prontas",
|
|
"DESCRIPTION": "Os modelos de respostas prontas ajudam você a responder rapidamente a uma conversa. Os agentes podem digitar o caractere '/' seguido pelo atalho para inserir uma resposta.",
|
|
"NEW_LINK": "Clique aqui para criar uma resposta pronta"
|
|
}
|
|
},
|
|
"CONVERSATION_SIDEBAR": {
|
|
"ASSIGNEE_LABEL": "Agente atribuído",
|
|
"SELF_ASSIGN": "Atribuir a mim",
|
|
"TEAM_LABEL": "Time atribuído",
|
|
"SELECT": {
|
|
"PLACEHOLDER": "Nenhuma"
|
|
},
|
|
"ACCORDION": {
|
|
"CONTACT_DETAILS": "Detalhes do contato",
|
|
"SCHEDULED_MESSAGES": "Mensagens agendadas",
|
|
"CONVERSATION_ACTIONS": "Ações da conversa",
|
|
"CONVERSATION_LABELS": "Etiquetas da conversa",
|
|
"CONVERSATION_INFO": "Informação da conversa",
|
|
"CONTACT_NOTES": "Notas do contato",
|
|
"CONTACT_ATTRIBUTES": "Atributos do contato",
|
|
"PREVIOUS_CONVERSATION": "Conversas anteriores",
|
|
"MACROS": "Macros",
|
|
"LINEAR_ISSUES": "Problemas do Linear vinculados",
|
|
"SHOPIFY_ORDERS": "Pedidos do Shopify"
|
|
},
|
|
"SHOPIFY": {
|
|
"ORDER_ID": "Pedido #{id}",
|
|
"ERROR": "Erro ao carregar pedidos",
|
|
"NO_SHOPIFY_ORDERS": "Nenhum pedido encontrado",
|
|
"FINANCIAL_STATUS": {
|
|
"PENDING": "Pendentes",
|
|
"AUTHORIZED": "Autorizado",
|
|
"PARTIALLY_PAID": "Parcialmente pago",
|
|
"PAID": "Pago",
|
|
"PARTIALLY_REFUNDED": "Parcialmente Reembolsado",
|
|
"REFUNDED": "Reembolsado",
|
|
"VOIDED": "Anulado"
|
|
},
|
|
"FULFILLMENT_STATUS": {
|
|
"FULFILLED": "Concluído",
|
|
"PARTIALLY_FULFILLED": "Parcialmente Concluído",
|
|
"UNFULFILLED": "Não concluído"
|
|
}
|
|
}
|
|
},
|
|
"SCHEDULED_MESSAGES": {
|
|
"NEW_BUTTON": "Agendar mensagem",
|
|
"PAST_MESSAGES_SECTION": "Enviadas",
|
|
"EMPTY_STATE": "Ainda não há mensagens agendadas.",
|
|
"STATUS": {
|
|
"DRAFT": "Rascunho",
|
|
"PENDING": "Pendente",
|
|
"SENT": "Enviada",
|
|
"FAILED": "Falhou"
|
|
},
|
|
"ITEM": {
|
|
"SCHEDULED_FOR": "Agendada para {time}",
|
|
"NO_SCHEDULE": "Sem agendamento",
|
|
"TEMPLATE_PREVIEW": "Modelo: {name}",
|
|
"TEMPLATE_LABEL": "Modelo: {name}",
|
|
"ATTACHMENT_PREVIEW": "Anexo: {filename}",
|
|
"ATTACHMENT_LABEL": "Anexo: {filename}",
|
|
"EMPTY_PREVIEW": "Sem conteúdo",
|
|
"EXPAND": "Expandir",
|
|
"COLLAPSE": "Recolher",
|
|
"GO_TO_MESSAGE": "Ir para a mensagem",
|
|
"SEARCHING_MESSAGE": "Buscando mensagem...",
|
|
"MESSAGE_NOT_FOUND": "A mensagem vinculada não foi encontrada. Ela pode ter sido excluída."
|
|
},
|
|
"MODAL": {
|
|
"TITLE_NEW": "Agendar mensagem",
|
|
"TITLE_EDIT": "Editar mensagem agendada",
|
|
"MESSAGE_LABEL": "Mensagem",
|
|
"MESSAGE_PLACEHOLDER": "Escreva sua mensagem...",
|
|
"DATETIME_LABEL": "Data e hora de envio",
|
|
"ATTACHMENT_LABEL": "Anexo",
|
|
"ATTACHMENT_ADD": "Anexar arquivo",
|
|
"ATTACHMENT_CURRENT": "Anexo atual: {filename}",
|
|
"TEMPLATE_SELECT": "Usar modelo",
|
|
"TEMPLATE_SELECTED": "Modelo: {name}",
|
|
"TEMPLATE_ACTION": "Agendar mensagem",
|
|
"CANCEL": "Cancelar",
|
|
"SAVE_DRAFT": "Salvar como rascunho",
|
|
"SCHEDULE": "Agendar",
|
|
"SHORTCUTS": {
|
|
"TOMORROW_MORNING": "Amanhã de manhã",
|
|
"TOMORROW_AFTERNOON": "Amanhã à tarde",
|
|
"MONDAY_MORNING": "Segunda-feira de manhã",
|
|
"CUSTOM": "Digitar data e hora"
|
|
},
|
|
"CUSTOM_INPUT_PLACEHOLDER": "ex: amanhã às 14h, próxima sexta de manhã",
|
|
"CUSTOM_INPUT_HINT": "Tente: amanhã às 15h, próxima segunda, 20 de março às 10h",
|
|
"PARSED_DATE_IN_PAST": "Esta data já passou",
|
|
"DATEPICKER_TOOLTIP": "Escolher no calendário",
|
|
"SCHEDULE_LABEL": "Programar envio"
|
|
},
|
|
"CONFIRM_CLOSE": {
|
|
"TITLE": "Alterações não salvas",
|
|
"MESSAGE": "Você tem conteúdo não salvo. Deseja descartar suas alterações?",
|
|
"CONTINUE_EDITING": "Continuar editando",
|
|
"DISCARD": "Descartar",
|
|
"CANCEL": "Cancelar"
|
|
},
|
|
"CONFIRM_DELETE": {
|
|
"TITLE": "Excluir mensagem agendada",
|
|
"MESSAGE": "Tem certeza de que deseja excluir esta mensagem agendada? Esta ação não pode ser desfeita.",
|
|
"CANCEL": "Cancelar",
|
|
"DELETE": "Excluir"
|
|
},
|
|
"ERRORS": {
|
|
"CONTENT_REQUIRED": "Adicione uma mensagem, template ou anexo antes de salvar.",
|
|
"CONTENT_TOO_LONG": "A mensagem é muito longa. Máximo de {maxLength} caracteres permitidos.",
|
|
"DATETIME_REQUIRED": "Selecione uma data e hora para agendar a mensagem.",
|
|
"SCHEDULE_IN_PAST": "O horário agendado deve ser no futuro.",
|
|
"SAVE_FAILED": "Não foi possível salvar a mensagem agendada. Por favor, tente novamente.",
|
|
"DELETE_FAILED": "Não foi possível excluir a mensagem agendada. Por favor, tente novamente."
|
|
},
|
|
"META": {
|
|
"TOOLTIP": "Agendada em {time} por {author}",
|
|
"YOU": "Você",
|
|
"AUTHOR_YOU": "{name} (Você)",
|
|
"AUTOMATION": "Automação",
|
|
"UNKNOWN_AUTHOR": "Desconhecido"
|
|
},
|
|
"RECURRENCE": {
|
|
"SECTION_TITLE": "Recorrências",
|
|
"NO_REPEAT": "Não se repete",
|
|
"DAILY": "Todos os dias",
|
|
"WEEKLY": "Semanal: cada {day}",
|
|
"MONTHLY_NTH": "Mensal no(a) {nth} {day}",
|
|
"MONTHLY_LAST": "Mensal no(a) último(a) {day}",
|
|
"YEARLY": "Anual em {dayNum} de {month}",
|
|
"WEEKDAYS": "Todos os dias úteis (seg-sex)",
|
|
"CUSTOM": "Personalizado...",
|
|
"CUSTOM_MODAL": {
|
|
"TITLE": "Recorrência personalizada",
|
|
"REPEAT_EVERY": "Repetir a cada",
|
|
"FREQ_DAILY": "dia(s)",
|
|
"FREQ_WEEKLY": "semana(s)",
|
|
"FREQ_MONTHLY": "mês(es)",
|
|
"FREQ_YEARLY": "ano(s)",
|
|
"UNIT_DAY": "dia | dias",
|
|
"UNIT_WEEK": "semana | semanas",
|
|
"UNIT_MONTH": "mês | meses",
|
|
"UNIT_YEAR": "ano | anos",
|
|
"REPEAT_ON": "Repetir em",
|
|
"MONTHLY_ON_DAY": "Dia do mês",
|
|
"MONTHLY_ON_WEEKDAY": "Dia da semana",
|
|
"ENDS": "Termina",
|
|
"ENDS_NEVER": "Nunca",
|
|
"ENDS_ON_DATE": "Em data",
|
|
"ENDS_AFTER": "Após",
|
|
"ENDS_OCCURRENCES": "ocorrências",
|
|
"DONE": "Concluir",
|
|
"CANCEL": "Cancelar"
|
|
},
|
|
"STATUS_ACTIVE": "Ativa",
|
|
"STATUS_DRAFT": "Rascunho",
|
|
"STATUS_COMPLETED": "Concluída",
|
|
"STATUS_CANCELLED": "Cancelada",
|
|
"OCCURRENCES_SENT": "{count} enviadas",
|
|
"NEXT_SEND": "Próxima: {time}",
|
|
"EXPAND": "Expandir histórico",
|
|
"COLLAPSE": "Recolher histórico",
|
|
"STOP": "Parar recorrência",
|
|
"STOP_CONFIRM": {
|
|
"TITLE": "Parar recorrência",
|
|
"MESSAGE": "A mensagem pendente será removida e a recorrência será encerrada permanentemente.",
|
|
"CONFIRM": "Parar",
|
|
"CANCEL": "Cancelar"
|
|
},
|
|
"EDIT": "Editar recorrência",
|
|
"EDIT_WARNING": "Próximo envio: {oldDate} → {newDate}",
|
|
"WEEKDAYS_SHORT": {
|
|
"SUN": "D",
|
|
"MON": "S",
|
|
"TUE": "T",
|
|
"WED": "Q",
|
|
"THU": "Q",
|
|
"FRI": "S",
|
|
"SAT": "S"
|
|
},
|
|
"ORDINALS": {
|
|
"FIRST": "1º",
|
|
"SECOND": "2º",
|
|
"THIRD": "3º",
|
|
"FOURTH": "4º",
|
|
"FIFTH": "5º",
|
|
"LAST": "último(a)"
|
|
},
|
|
"DESCRIPTION": {
|
|
"DAILY_ONE": "Todos os dias",
|
|
"DAILY_OTHER": "A cada {count} dias",
|
|
"WEEKLY_ONE": "Semanal",
|
|
"WEEKLY_OTHER": "A cada {count} semanas",
|
|
"WEEKLY_ON": "{prefix}: {days}",
|
|
"MONTHLY_ONE": "Mensal",
|
|
"MONTHLY_OTHER": "A cada {count} meses",
|
|
"MONTHLY_ON_WEEKDAY": "{prefix} no(a) {ordinal} {weekday}",
|
|
"YEARLY_ONE": "Anual",
|
|
"YEARLY_OTHER": "A cada {count} anos",
|
|
"UNTIL_DATE": "até {date}",
|
|
"AFTER_COUNT": "{count} ocorrências"
|
|
},
|
|
"RESOLVED_WARNING": "Mensagens agendadas não serão enviadas enquanto a conversa estiver resolvida. Reabra a conversa para retomar o envio."
|
|
}
|
|
},
|
|
"CONVERSATION_CUSTOM_ATTRIBUTES": {
|
|
"ADD_BUTTON_TEXT": "Criar atributo",
|
|
"NO_RECORDS_FOUND": "Nenhum atributo encontrado",
|
|
"UPDATE": {
|
|
"SUCCESS": "Atributo atualizado com sucesso",
|
|
"ERROR": "Não foi possível atualizar o atributo. Por favor, tente mais tarde"
|
|
},
|
|
"ADD": {
|
|
"TITLE": "Adicionar",
|
|
"SUCCESS": "Atributo adicionado com sucesso",
|
|
"ERROR": "Não foi possível adicionar o atributo. Por favor, tente mais tarde"
|
|
},
|
|
"DELETE": {
|
|
"SUCCESS": "Atributo excluído com sucesso",
|
|
"ERROR": "Não foi possível excluir o atributo. Por favor, tente mais tarde"
|
|
},
|
|
"ATTRIBUTE_SELECT": {
|
|
"TITLE": "Adicionar atributos",
|
|
"PLACEHOLDER": "Procurar atributos",
|
|
"NO_RESULT": "Nenhum atributo encontrado"
|
|
}
|
|
},
|
|
"EMAIL_HEADER": {
|
|
"FROM": "De",
|
|
"TO": "Para",
|
|
"BCC": "CCO",
|
|
"CC": "Cc",
|
|
"SUBJECT": "Assunto",
|
|
"EXPAND": "Expandir e-mail"
|
|
},
|
|
"CONVERSATION_PARTICIPANTS": {
|
|
"SIDEBAR_MENU_TITLE": "Participantes",
|
|
"SIDEBAR_TITLE": "Participantes da conversa",
|
|
"NO_RECORDS_FOUND": "Nenhum resultado encontrado",
|
|
"ADD_PARTICIPANTS": "Selecionar participantes",
|
|
"REMANING_PARTICIPANTS_TEXT": "+{count} participantes",
|
|
"REMANING_PARTICIPANT_TEXT": "+{count} participante",
|
|
"TOTAL_PARTICIPANTS_TEXT": "{count} pessoas estão participando.",
|
|
"TOTAL_PARTICIPANT_TEXT": "{count} pessoa está participando.",
|
|
"NO_PARTICIPANTS_TEXT": "Ninguém está participando!",
|
|
"WATCH_CONVERSATION": "Participar da conversa",
|
|
"YOU_ARE_WATCHING": "Você está participando",
|
|
"API": {
|
|
"ERROR_MESSAGE": "Não foi possível atualizar, tente novamente!",
|
|
"SUCCESS_MESSAGE": "Participantes atualizados!"
|
|
}
|
|
},
|
|
"TRANSLATE_MODAL": {
|
|
"TITLE": "Ver conteúdo traduzido",
|
|
"DESC": "Você pode visualizar o conteúdo traduzido em cada idioma.",
|
|
"ORIGINAL_CONTENT": "Conteúdo original",
|
|
"TRANSLATED_CONTENT": "Conteúdo traduzido",
|
|
"NO_TRANSLATIONS_AVAILABLE": "Nenhuma tradução está disponível para este conteúdo"
|
|
},
|
|
"TYPING": {
|
|
"ONE": "{user} está digitando",
|
|
"TWO": "{user} e {secondUser} estão digitando",
|
|
"MULTIPLE": "{user} e {count} outros estão digitando"
|
|
},
|
|
"RECORDING": {
|
|
"ONE": "{user} está gravando áudio",
|
|
"TWO": "{user} e {secondUser} estão gravando áudio",
|
|
"MULTIPLE": "{user} e {count} outros estão gravando áudio"
|
|
},
|
|
"COPILOT": {
|
|
"TRY_THESE_PROMPTS": "Experimente estes comandos"
|
|
},
|
|
"GALLERY_VIEW": {
|
|
"ERROR_DOWNLOADING": "Não foi possível baixar o anexo. Por favor, tente novamente"
|
|
}
|
|
}
|