Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { getRoute } from '@app-builder/utils/routes';
import { Link } from '@remix-run/react';
import clsx from 'clsx';
import { Fragment, useMemo } from 'react';
import { useTranslation } from 'react-i18next';
import * as R from 'remeda';
import { Icon } from 'ui-icons';

Expand Down Expand Up @@ -43,6 +44,7 @@ export const IngestedObjectDetail = ({
}: IngestedObjectDetailProps) => {
const parsedTriggerObject = useParsedTriggerObject(object.data) ?? [];
const language = useFormatLanguage();
const { t } = useTranslation(['data']);

const dataModelTable = dataModel.find((table) => table.name === tableName);
const links = R.pipe(
Expand All @@ -64,7 +66,7 @@ export const IngestedObjectDetail = ({
ID: {objectId}
</span>
<span className="bg-grey-100 border-grey-50 text-grey-50 rounded border px-2 py-1">
last ingestion at:{' '}
{t('data:viewer.detail.last_ingestion_at')}:{' '}
{formatDateTime(object.metadata.validFrom, {
language,
})}
Expand Down
4 changes: 3 additions & 1 deletion packages/app-builder/src/locales/ar/data.json
Original file line number Diff line number Diff line change
Expand Up @@ -65,5 +65,7 @@
"unique.col_header": "فريد",
"viewer.no_object_found": "لم يتم العثور على كائن للمعرف {{objectId}} في {{tableName}}",
"viewer.object_id": "معرف الكائن",
"viewer.object_type": "نوع الكائن"
"viewer.object_type.placeholder": "اختر",
"viewer.object_type": "نوع الكائن",
"viewer.detail.last_ingestion_at": "آخر تحديث في"
}
4 changes: 3 additions & 1 deletion packages/app-builder/src/locales/en/data.json
Original file line number Diff line number Diff line change
Expand Up @@ -65,5 +65,7 @@
"unique.col_header": "Unique",
"viewer.no_object_found": "No object found for id {{objectId}} in {{tableName}}",
"viewer.object_type": "Object type",
"viewer.object_id": "Object ID"
"viewer.object_type.placeholder": "Select a table",
"viewer.object_id": "Object ID",
"viewer.detail.last_ingestion_at": "Last ingestion at"
}
4 changes: 3 additions & 1 deletion packages/app-builder/src/locales/fr/data.json
Original file line number Diff line number Diff line change
Expand Up @@ -65,5 +65,7 @@
"your_data_callout": "Voici la liste de tous les objets que vous pouvez envoyer à Marble, ainsi que leurs propriétés. \nContactez l'équipe Marble si vous souhaitez apporter des modifications à votre modèle de données.",
"viewer.no_object_found": "Aucun objet trouvé pour l'id {{objectId}} dans {{tableName}}",
"viewer.object_id": "ID d'objet",
"viewer.object_type": "Type d'objet"
"viewer.object_type.placeholder": "Sélectionner une table",
"viewer.object_type": "Type d'objet",
"viewer.detail.last_ingestion_at": "Dernière mise à jour le"
}
3 changes: 3 additions & 0 deletions packages/app-builder/src/locales/pt/api.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"download_openapi_spec": "Baixar especificação OpenAPI"
}
33 changes: 33 additions & 0 deletions packages/app-builder/src/locales/pt/auth.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"great_rules_right_tools": "Boas regras são criadas com as <RightTools>ferramentas certas</RightTools>.",
"marble_description": "Marble é um motor de regras em tempo real para monitoramento de fraudes e compliance, desenvolvido para empresas fintech e instituições financeiras.",
"sign_in.google": "Entrar com Google",
"sign_in.microsoft": "Entrar com Microsoft",
"errors.no_account": "Nenhuma conta Marble encontrada para este endereço.",
"errors.csrf_error": "Um token de segurança necessário não foi encontrado ou é inválido.\n Atualize a página e tente novamente.",
"sign_in.email": "E-mail",
"sign_in.password": "Senha",
"sign_in": "Entrar",
"sign_up": "Cadastrar",
"sign_in.dont_have_an_account": "Primeira vez aqui? <SignUp>{{signUp}}</SignUp>.",
"sign_in.forgot_password": "Esqueceu a senha?",
"sign_in.errors.user_not_found": "Nenhuma conta de usuário encontrada para este endereço.",
"sign_in.errors.wrong_password_error": "Senha incorreta.",
"sign_in.errors.invalid_login_credentials": "Credenciais de login inválidas.",
"sign_up.description": "Antes de criar sua conta, certifique-se de que um administrador tenha adicionado você à sua organização.",
"sign_up.already_have_an_account_sign_up": "Já tem uma conta? <SignIn>{{signIn}}</SignIn>.",
"sign_up.errors.weak_password_error": "A senha é muito fraca. Deve ter pelo menos 6 caracteres.",
"sign_up.errors.email_already_exists": "Este e-mail já está em uso. Por favor, faça login ou redefina sua senha.",
"email-verification.description": "Verifique seu e-mail e clique no link para verificar sua conta. Após verificar seu e-mail, <strong>você precisará fazer login novamente.</strong>",
"email-verification.emulator_description": "Clique no link no <strong>terminal executando seu emulador do Firebase</strong> para verificar sua conta. Após verificar seu e-mail, <strong>você precisará fazer login novamente.</strong>",
"email-verification.resend": "Reenviar e-mail de verificação",
"email-verification.emulator_resend": "Reenviar link de verificação",
"email-verification.wrong_place": "Está no lugar errado? Volte para <SignIn>{{signIn}}</SignIn>.",
"reset-password.send": "Enviar e-mail para redefinir a senha",
"reset-password.email_sent": "Um e-mail foi enviado com um link para redefinir sua senha.",
"reset-password.wrong_place": "Está no lugar errado? Volte para <SignIn>{{signIn}}</SignIn>.",
"sign_up.read_more": "Leia mais:",
"sign_up.first_connection_guide": "Guia de Primeira Conexão",
"sign_up.warning.instance_not_initialized": "Você não criou uma primeira organização e usuário.",
"sign_up.warning.database_not_migrated": "As migrações do banco de dados não foram aplicadas."
}
135 changes: 135 additions & 0 deletions packages/app-builder/src/locales/pt/cases.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
{
"case.page_title": "Caso",
"case.name": "Nome",
"case.date": "Data",
"case.status": "Status",
"case.tags": "Etiquetas",
"case.contributors": "Contribuidores",
"case.decisions": "Decisões",
"case.decision_detail": "Detalhe da decisão",
"case.files": "Arquivos",
"case.file.name": "Nome do arquivo",
"case.file.extension": "Extensão",
"case.file.added_date": "Adicionado em",
"case.file.download": "Baixar",
"case.file.downloading": "Baixando...",
"case.file.errors.downloading_link.auth_error": "Ocorreu um erro de autenticação ao gerar o link de download. Talvez seja necessário fazer login novamente.",
"case.file.errors.downloading_link.unknown": "Ocorreu um erro desconhecido ao gerar o link de download. Por favor, tente novamente mais tarde.",
"case.inbox": "Caixa de entrada",
"case.link": "Link",
"case.inboxes": "Caixas de entrada",
"case.status.open": "aberto",
"case.status.investigating": "em investigação",
"case.status.discarded": "descartado",
"case.status.resolved": "resolvido",
"case.new_case": "Novo caso",
"case.new_case.create": "Criar um novo caso",
"case.new_case.placeholder": "Digite um nome",
"case.new_case.select_inbox": "Selecione uma caixa de entrada",
"case_detail.informations": "Informações",
"case_detail.no_decisions": "Adicione uma decisão da <Link>lista de decisões</Link> para iniciar a investigação",
"case_detail.pivot_values": "Valores pivôs",
"case_detail.pivot_values.snooze_from_to": "De {{from}} -> Para {{to}}",
"case_detail.rules_execution": "Execução de regras ({{count}})",
"case_detail.rules_execution.show_hit_only": "Mostrar apenas acertos",
"case_detail.trigger_object": "Objeto do gatilho",
"case_detail.no_files": "<Button>Adicione seu primeiro arquivo</Button> ao caso para acompanhar a investigação",
"case_detail.events_count_one": "{{count}} evento",
"case_detail.events_count_other": "{{count}} eventos",
"case_detail.history": "Histórico",
"case_detail.history.filter.date": "Data",
"case_detail.history.filter.event_type": "Tipo de evento",
"case_detail.unknown_user": "usuário desconhecido",
"case_detail.unknown_tag": "etiqueta desconhecida",
"case_detail.other_tags_count_one": "+{{count}} outra",
"case_detail.other_tags_count_other": "+{{count}} outras",
"case_detail.empty_tag_list": "nenhuma etiqueta",
"case_detail.empty_tag_list.create_tag": "crie sua primeira etiqueta",
"case_detail.empty_tag_list.info": "peça para um administrador criar uma etiqueta para adicioná-la ao caso",
"case_detail.tags.empty_matches": "nenhuma etiqueta corresponde à sua busca",
"case_detail.history.event_type.case_created": "Caso criado",
"case_detail.history.event_type.comment_added": "Nota",
"case_detail.history.event_type.decision_added": "Decisão adicionada",
"case_detail.history.event_type.name_updated": "Nome atualizado",
"case_detail.history.event_type.tags_updated": "Etiquetas atualizadas",
"case_detail.history.event_type.inbox_changed": "Caixa de entrada alterada",
"case_detail.history.event_type.rule_snooze_created": "Suspensão de regra criada",
"case_detail.history.event_type.decision_reviewed": "Decisão revisada",
"case_detail.history.event_type.status_updated": "Status atualizado",
"case_detail.history.event_type.file_added": "Arquivo adicionado",
"case_detail.history.event_type.case_snoozed": "Caso suspenso",
"case_detail.history.event_type.case_unsnoozed": "Caso não suspenso",
"case_detail.history.event_title.case_created": "Caso criado",
"case_detail.history.event_title.case_created_automatically": "Caso criado automaticamente",
"case_detail.history.event_title.comment_added": "Nota",
"case_detail.history.event_title.decision_added_one": "{{count}} decisão adicionada",
"case_detail.history.event_title.decision_added_other": "{{count}} decisões adicionadas",
"case_detail.history.event_title.name_updated": "Novo nome: <Name>{{name}}</Name>",
"case_detail.history.event_title.tags_updated": "Etiquetas atualizadas",
"case_detail.history.event_title.inbox_changed": "Caixa de entrada alterada",
"case_detail.history.event_title.rule_snooze_created": "Suspensão de regra criada",
"case_detail.history.event_title.decision_reviewed": "Decisão revisada: <ReviewStatus/>",
"case_detail.history.event_title.status_updated": "Novo status: <Status/>",
"case_detail.history.event_title.file_added": "Arquivo adicionado: <Name>{{name}}</Name>",
"case_detail.history.event_detail.added_by": "Adicionado por: <Avatar/> <User>{{user}}</User>",
"case_detail.history.event_detail.added_by_workflow": "Adicionado pelo fluxo de trabalho",
"case_detail.history.event_detail.edited_by": "Editado por: <Avatar/> <User>{{user}}</User>",
"case_detail.history.event_detail.edited_by_workflow": "Editado pelo fluxo de trabalho",
"case_detail.history.event_detail.reviewed_by": "Revisado por: <Avatar/> <User>{{user}}</User>",
"case_detail.history.event_detail.case_tags.new": "Novas etiquetas: <CaseTags/>",
"case_detail.history.event_detail.case_tags.none": "remover todas as etiquetas",
"case_detail.history.event_detail.decision_reviewed.review_comment": "Comentário de revisão",
"case_detail.history.event_detail.decision_reviewed.final_status": "Status final",
"case_detail.history.event_detail.rule_snooze_created.load_details": "carregar detalhes",
"case_detail.history.event_detail.rule_snooze_created.pivot_value": "valor pivô",
"case_detail.history.event_detail.rule_snooze_created.created_from_decision": "decisão",
"case_detail.history.event_detail.rule_snooze_created.decision_detail": "detalhe da decisão",
"case_detail.history.event_detail.rule_snooze_created.created_from_rule": "regra",
"case_detail.history.event_detail.rule_snooze_created.rule_detail": "detalhe da regra",
"case_detail.history.event_detail.rule_snooze_created.validity": "validade",
"case_detail.history.event_detail.case_snoozed.title": "Suspenso",
"case_detail.history.event_detail.case_unsnoozed.title": "Não suspenso",
"case_detail.history.event_detail.case_snoozed.snooze_until": "Até {{date}}",
"case_detail.add_a_comment.label": "Comentário",
"case_detail.add_a_comment.placeholder": "Escreva uma nota",
"case_detail.add_a_comment.post": "postar um comentário",
"case_detail.add_rule_snooze.title": "Suspender regra",
"case_detail.add_rule_snooze.nudge": "Suspender uma regra para desativá-la temporariamente e evitar falsos positivos",
"case_detail.add_rule_snooze.callout": "Suspender uma regra para um valor pivô específico evitará que ela seja acionada por um determinado período (<DocLink>saiba mais</DocLink>)",
"case_detail.add_rule_snooze.comment.label": "Comentário",
"case_detail.add_rule_snooze.comment.placeholder": "Explique o motivo para suspender esta regra",
"case_detail.add_rule_snooze.duration_value": "Valor da duração",
"case_detail.add_rule_snooze.duration_unit": "Unidade de duração",
"case_detail.add_rule_snooze.errors.max_duration": "A duração máxima é de 180 dias",
"case_detail.add_rule_snooze.errors.duplicate_rule_snooze": "Já existe uma suspensão de regra com este valor pivô para esta regra",
"case_detail.add_rule_snooze.snooze_this_value": "Suspender este valor",
"case_detail.add_rule_snooze.snoozed": "Suspenso",
"case_detail.add_rule_snooze.no_access": "Você não tem permissão para suspender esta regra",
"case_detail.review_decision.title": "Revisar decisão",
"case_detail.review_decision.callout": "Revisar uma decisão mudará seu status e disparará um webhook para acionar o próximo passo no seu fluxo de trabalho (<DocLink>saiba mais</DocLink>)",
"case_detail.review_decision.comment.label": "Comentário",
"case_detail.review_decision.comment.placeholder": "Explique o motivo da escolha deste status de revisão",
"case_detail.review_decision.review_status.label": "Status de revisão",
"case_detail.review_decision.review_status.placeholder": "Selecione um status de revisão",
"case_detail.review_decision.disabled_approve": "Este status não pode ser escolhido porque há uma verificação de sanção a ser revisada para esta decisão.",
"case_detail.review_decision": "Revisar",
"search.placeholder": "Buscar por nome",
"filters.date_range.title": "A data de criação é:",
"change_status_modal.title": "Alterar status do caso",
"change_status_modal.description.from": "de <Status/>",
"change_status_modal.description.to": "para <Status/>",
"change_status_modal.change_status": "Alterar status",
"inbox.need_first_inbox": "Crie uma primeira caixa de entrada para começar a usar o gestor de casos",
"inbox.need_inbox_contact_admin": "Por favor, entre em contato com seu administrador para obter acesso a uma caixa de entrada",
"drop_file_cta": "Arraste qualquer arquivo aqui para anexá-lo ao caso. As seguintes extensões são aceitas:",
"drop_file_accepted_types": "jpg, png, pdf, zip, doc, docx, xls, xlsx",
"pick_file_cta": "Escolher um arquivo",
"add_file": "Adicionar um arquivo",
"sanction.state.refine_needed": "Refinamento necessário",
"snooze.title": "Suspender",
"snooze.callout": "Suspenso até {{date}}",
"snooze.modal.heading": "Suspender até...",
"unsnooze.callout": "Ao continuar, você irá desmarcar este caso",
"unsnooze.title": "Desmarcar",
"include_snoozed": "Incluir suspensos"
}
74 changes: 74 additions & 0 deletions packages/app-builder/src/locales/pt/common.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
{
"add": "Adicionar",
"select_all": "Selecionar tudo",
"no_name": "Sem nome",
"null": "Nulo",
"skipped": "Ignorado",
"true": "Verdadeiro",
"false": "Falso",
"from_to": "De <Date>{{start_date}}</Date> até <Date>{{end_date}}</Date>",
"live": "Ativo",
"premium": "Recurso Premium",
"upgrade": "Atualize agora",
"auth.logout": "Sair",
"search": "Pesquisar",
"missing_configuration_title": "Configuração ausente",
"missing_configuration": "O Marble identificou configuração ausente para este recurso. Verifique a documentação para a configuração correta.",
"dataset_freshness_banner": "Os dados usados para sua verificação de sanções não estão atualizados (a última versão publicada em {{ lastExport }} ainda não foi puxada).<br />Consulte sua equipe de plataforma se o problema não se resolver em breve.",
"error_one": "{{count}} erro",
"error_other": "{{count}} erros",
"validation_error_one": "{{count}} erro de validação",
"validation_error_other": "{{count}} erros de validação",
"errors.forbidden.title": "Proibido",
"errors.forbidden.subtitle": "Você não tem permissão para acessar esta página",
"errors.backend_unvailable": "O aplicativo Marble não consegue se comunicar com o backend. Verifique sua configuração ou tente novamente mais tarde.",
"errors.unknown": "Ocorreu um erro desconhecido",
"errors.account_exists_with_different_credential": "Uma conta já existe com o mesmo endereço de e-mail, mas com credenciais de login diferentes. Faça login usando um provedor associado a este e-mail.",
"errors.popup_blocked_by_client": "O popup foi bloqueado. Por favor, <EnablePopup>habilite os popups</EnablePopup> e tente novamente.",
"errors.not_found": "Esta página não pôde ser encontrada.",
"errors.edit.forbidden_not_draft": "Você só pode editar uma versão rascunho de um cenário.",
"errors.list.duplicate_list_name": "Já existe uma lista com esse nome",
"errors.list.duplicate_email": "Este e-mail já está em uso",
"errors.data.duplicate_field_name": "Já existe um campo com esse nome",
"errors.data.duplicate_test_run": "Já há uma execução de teste ativa para este cenário",
"errors.data.duplicate_table_name": "Já existe uma tabela com esse nome",
"errors.data.duplicate_link_name": "Já existe um link com esse nome",
"errors.add_to_case.invalid": "Uma decisão já pertence a um caso",
"errors.firebase_auth_error": "Ocorreu um erro de autenticação. Tente fazer login novamente.",
"errors.firebase_network_error": "O Marble está com dificuldades para se conectar ao Firebase. Verifique a configuração do Firebase ou tente novamente mais tarde.",
"errors.too_many_requests": "Muitas requisições. Por favor, tente novamente mais tarde.",
"cancel": "Cancelar",
"check_on_docs": "Saiba mais na nossa documentação",
"github_banner": "Gostou do Marble? Apoie o esforço Open Source nos dando uma estrela no",
"save": "Salvar",
"delete": "Excluir",
"close": "Fechar",
"show": "Mostrar",
"hide": "Ocultar",
"more_options": "Mais opções",
"clipboard.aria-label": "Copiar para a área de transferência: {{value}}",
"clipboard.copy": "Copiado para a área de transferência: <Value>{{value}}</Value>",
"empty_scenario_iteration_list": "Você não tem nenhuma regra. Clique em criar regra para criar uma nova.",
"success.save": "Salvo com sucesso",
"success.add_to_case": "Decisão adicionada ao caso com sucesso",
"name": "Nome",
"description": "Descrição",
"edit": "Editar",
"copy": "Copiar",
"paste": "Colar",
"go_back": "Voltar",
"error_boundary.default.title": "Você perdeu a noção?",
"error_boundary.default.subtitle": "Parece que algo deu errado.",
"error_boundary.marble_admin.title": "Você é um Administrador do Marble",
"error_boundary.marble_admin.subtitle": "O aplicativo atual não está disponível para Administradores do Marble. Por favor, faça login com outra conta.",
"or": "ou",
"loading": "Carregando...",
"understand": "Eu entendo",
"global_error": "Algo deu errado.",
"items_displayed": "<StartToEnd>{{start}} a {{end}}</StartToEnd>",
"page_displayed_of_total": "Página <PageCount>{{currentPage}} de {{pageCount}}</PageCount>",
"help_center.to_navigate": "para navegar",
"help_center.to_switch_tabs": "para alternar entre abas",
"help_center.no_results": "Nenhum resultado encontrado",
"help_center.chat_with_us": "Bate-papo conosco"
}
Loading