| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987 |
- {
- "catalog": {
- "title": "Integrações",
- "description": "Ligue os serviços que a sua oficina já utiliza. Cada integração é configurada uma vez e funciona em segundo plano.",
- "all": "Todas",
- "empty": "Ainda não há integrações nesta categoria.",
- "notConnected": "Não ligada",
- "connect": "Ligar",
- "manage": "Gerir",
- "connectedTitle": "Ligados",
- "connectedDescription": "Serviços que esta oficina configurou. Abra um para ver o estado, alterar definições ou desligar.",
- "noneConnected": "Ainda não há nada ligado. Escolha um serviço abaixo para começar.",
- "availableTitle": "Disponíveis",
- "availableDescription": "Serviços que pode adicionar. Cada um é configurado uma vez e funciona em segundo plano.",
- "allConnected": "Todos os serviços disponíveis estão ligados.",
- "searchPlaceholder": "Pesquisar integrações",
- "noMatches": "Nada corresponde a \"{query}\".",
- "readMore": "Saiba mais",
- "suggestTitle": "Falta um serviço que utiliza?",
- "suggestDescription": "Diga-nos que integração ajudaria a sua oficina e vamos analisá-la.",
- "suggest": "Sugerir uma integração",
- "suggestSubject": "Sugestão de integração"
- },
- "categories": {
- "calendar": "Calendário",
- "conferencing": "Videochamadas",
- "accounting": "Contabilidade",
- "messaging": "Mensagens",
- "payments": "Pagamentos",
- "automation": "Automação",
- "storage": "Ficheiros",
- "registry": "Registo automóvel",
- "repair": "Dados de reparação",
- "other": "Outros",
- "ai": "IA"
- },
- "capabilities": {
- "calendar": {
- "push": "Ordens de serviço no calendário",
- "pull": "Horários ocupados do calendário",
- "conference": "Links de videochamada"
- },
- "sms": {
- "send": "Envio de SMS",
- "receive": "Receção de respostas"
- },
- "whatsapp": {
- "send": "Envio de mensagens WhatsApp",
- "receive": "Receção de respostas"
- },
- "telegram": {
- "send": "Envio de mensagens Telegram",
- "receive": "Receção de respostas"
- },
- "email": {
- "send": "Envio de e-mail"
- },
- "vehicle": {
- "lookup": "Consulta por matrícula e VIN",
- "inspection": "Datas de inspeção",
- "safety": "Recalls e reclamações de proprietários"
- },
- "ai": {
- "chat": "Textos e resumos",
- "transcribe": "Ditado"
- },
- "payments": {
- "checkout": "Pagamento pelo link da fatura"
- },
- "accounting": {
- "invoices": "Faturas para a contabilidade",
- "customers": "Clientes para a contabilidade",
- "payments": "Pagamentos nos dois sentidos"
- },
- "backup": {
- "target": "Destino das cópias de segurança"
- },
- "repair": {
- "labor": "Tempos de mão de obra em ordens de trabalho e orçamentos",
- "fluids": "Tipos e capacidades de fluidos"
- }
- },
- "statuses": {
- "active": "Ligada",
- "error": "Precisa de atenção",
- "pending": "Configuração em curso",
- "disconnected": "Desligada",
- "needsSetup": "Configuração incompleta"
- },
- "connection": {
- "back": "Todas as integrações",
- "account": "Conta ligada",
- "lastHealth": "Última verificação",
- "lastSync": "Última sincronização",
- "lastError": "A última execução falhou",
- "setupMissingTitle": "Configuração incompleta",
- "setupMissing": "Escolha {fields} nas definições abaixo. Até lá, nada é sincronizado.",
- "connected": "{name} está ligado.",
- "connectedShort": "Ligado",
- "connectWith": "Ligar {name}",
- "connect": "Ligar",
- "reconnect": "Voltar a ligar",
- "disconnect": "Desligar",
- "disconnectTitle": "Desligar {name}?",
- "disconnectDescription": "O Torqvoice esquece a conta e deixa de a utilizar. Nada do que já foi enviado para {name} ou lá guardado é alterado.",
- "disconnectDescriptionCalendar": "O Torqvoice esquece a conta e deixa de sincronizar. As ordens de serviço já colocadas em {name} ficam lá. O tempo ocupado mostrado a partir desse calendário é removido do calendário do Torqvoice.",
- "disconnectDescriptionConferencing": "O Torqvoice esquece a conta e deixa de criar reuniões. As reuniões já criadas ficam em {name} e os links nas ordens de serviço são mantidos.",
- "disconnectDescriptionAccounting": "O Torqvoice esquece a conta e deixa de enviar e ler dados. As faturas, clientes e pagamentos que já estão em {name} ficam lá.",
- "removeSetup": "Remover",
- "removeSetupTitle": "Remover {name}?",
- "removeSetupDescription": "Ainda não há nada ligado. O Torqvoice esquece o que foi preenchido e {name} volta à lista de serviços disponíveis.",
- "removeSetupDone": "{name} removido",
- "removeSetupHint": "Não vai avançar? Remova e o serviço volta à lista abaixo.",
- "disconnected": "Desligado",
- "test": "Testar ligação",
- "testPassed": "A ligação funciona",
- "syncNow": "Sincronizar agora",
- "syncQueued": "Sincronização em fila; será executada dentro de um minuto",
- "pullNow": "Obter pagamentos agora",
- "pullQueued": "Obtenção de pagamentos em fila; será executada dentro de um minuto",
- "backfill": "Enviar ordens de serviço marcadas",
- "backfillQueued": "Ordens de serviço marcadas desde a semana passada colocadas em fila",
- "backfillInvoices": "Enviar faturas emitidas",
- "backfillInvoicesQueuedCount": "{count, plural, one {# fatura emitida} other {# faturas emitidas}} em fila para envio",
- "backfillInvoicesNone": "Nenhuma fatura emitida para enviar. Só passam faturas enviadas, partilhadas ou pagas, a partir da data inicial, se tiver definido uma.",
- "retryQueued": "Tarefa colocada novamente em fila",
- "settingsTitle": "Definições",
- "settingsDescription": "O que sincronizar e para onde. As alterações aplicam-se a partir da próxima sincronização.",
- "settingsSaved": "Definições guardadas",
- "save": "Guardar",
- "loading": "A carregar...",
- "choose": "Escolher...",
- "search": "Pesquisar...",
- "noMatch": "Nada encontrado",
- "leaveEmpty": "Deixar vazio",
- "noLimit": "Sem limite",
- "planLocked": "As integrações não estão incluídas no seu plano.",
- "lockedIntegrations": "Ligue calendários, videochamadas e outros serviços à sua oficina.",
- "lockedPayments": "Permita que os clientes paguem as faturas online, com cada pagamento lançado na fatura.",
- "lockedAi": "Ligue um fornecedor de IA para utilizar funcionalidades de IA na sua oficina.",
- "ownAppTitle": "Esta instalação utiliza a sua própria aplicação junto do fornecedor",
- "redirectUri": "URI de redirecionamento a registar no fornecedor:",
- "sendTestEmail": "Enviar e-mail de teste",
- "testEmailSent": "E-mail de teste enviado para {email}",
- "testEmailHint": "Um e-mail de teste é enviado para o seu próprio endereço através deste fornecedor, o que comprova o endereço de remetente e as regras de envio que uma verificação da chave não consegue comprovar.",
- "inboundUrl": "URL do webhook de receção",
- "inboundHintSecret": "Cole este URL nas definições de mensagens recebidas do fornecedor. Contém um segredo que identifica a sua oficina, por isso mantenha-o privado.",
- "inboundHintMeta": "Cole este URL como URL de callback na sua aplicação Meta, com o token de verificação introduzido acima, e subscreva as mensagens.",
- "inboundHintStripe": "Adicione este URL no painel do Stripe: abra Workbench, depois Webhooks, escolha Create an event destination e subscreva checkout.session.completed. O Stripe mostra então um segredo de assinatura para o endpoint; cole-o aqui no campo do segredo de assinatura para que cada notificação seja verificada pela assinatura. Até lá, o Torqvoice confirma cada notificação consultando o checkout ao Stripe.",
- "inboundHintVipps": "Indique este URL como URL de callback no portal do Vipps MobilePay. O Vipps também exige termos de venda publicados, definidos em Definições, Pagamento.",
- "inboundHintPaypal": "Adicione este URL no painel de programador do PayPal em Webhooks, subscrito a PAYMENT.CAPTURE.COMPLETED.",
- "copy": "Copiar",
- "copied": "Copiado",
- "updateKeys": "Atualizar chaves",
- "updateKeysHint": "A última verificação falhou. Introduza novamente as chaves para tentar outra vez.",
- "awaitingKeys": "Ligado, mas ainda falta: {keys}.",
- "awaitingKeysHint": "O webhook já responde ao fornecedor, por isso registe-o agora. Introduza estes valores aqui assim que o fornecedor os emitir.",
- "saveKeys": "Guardar chaves",
- "keysSaved": "Chaves guardadas",
- "inspectionSync": {
- "title": "Sincronização de inspeções",
- "vehicles": "{count} viaturas com matrícula nesta oficina",
- "dueNow": "{count} seriam consultadas na próxima execução",
- "withDate": "{count} já têm data de inspeção",
- "lastPass": "Última passagem completa {date}",
- "never": "Ainda não houve nenhuma passagem completa",
- "inProgress": "Está uma passagem em curso",
- "off": "Ative a opção e guarde; até lá, uma passagem não verifica nada.",
- "syncNowHelp": "Sincronizar agora inicia uma passagem de imediato, em vez de esperar pela passagem horária. Consulta 25 viaturas de cada vez e continua sozinha até terminar todas as viaturas pendentes. A primeira passagem consulta todas as viaturas com matrícula.",
- "confirmTitle": "Consultar viaturas agora?",
- "confirmDescription": "{count} das {total} viaturas com matrícula vão ser consultadas no {name} agora, 25 de cada vez, e as datas de inspeção guardadas. As viaturas verificadas recentemente são ignoradas. Se o {name} cobrar por consulta, cada viatura encontrada é cobrada na sua conta.",
- "confirmLabel": "Consultar {count} viaturas",
- "nothingDue": "Todas as viaturas com matrícula foram verificadas recentemente, por isso ainda não há nada para consultar."
- },
- "supersedes": "Ligar {next} desliga {current}. Só pode estar uma ativa de cada vez, por isso {current} deixa de ser utilizada assim que {next} entrar em funcionamento.",
- "platformHandlesBackupsTitle": "As cópias de segurança já estão incluídas",
- "platformHandlesBackups": "O Torqvoice já faz uma cópia de segurança desta oficina a cada hora e guarda pontos de restauro durante 30 dias. Ligue um bucket se também quiser uma cópia sua, legível sem o Torqvoice.",
- "platformHandlesBackupsLink": "Ver os seus pontos de reposição",
- "batchRetried": "{count, plural, =0 {Nada para tentar novamente} one {# tarefa de volta à fila} other {# tarefas de volta à fila}}",
- "advanced": "Avançado",
- "generate": "Gerar",
- "show": "Mostrar",
- "hide": "Ocultar",
- "generatedPasswordWarning": "Guarde uma cópia desta palavra-passe num local seguro, fora deste servidor. Sem ela ninguém consegue abrir estas cópias de segurança, nem mesmo o Torqvoice.",
- "backup": {
- "title": "Cópias de segurança",
- "description": "Quando este destino recebeu a última cópia de segurança bem-sucedida, quando será a próxima e as execuções mais recentes.",
- "lastGood": "Última cópia bem-sucedida",
- "added": "{size} adicionados",
- "never": "Nenhuma ainda",
- "nextRun": "Próxima execução",
- "notScheduled": "Não agendada",
- "repositorySize": "Guardado no destino",
- "runNow": "Fazer cópia agora",
- "running": "A fazer cópia",
- "runningHint": "Está a decorrer uma cópia de segurança. Esta página atualiza-se sozinha até terminar.",
- "started": "Cópia de segurança iniciada",
- "recentTitle": "Execuções recentes",
- "noRuns": "Ainda não foi feita nenhuma cópia de segurança.",
- "addedNote": "A primeira execução envia tudo. Cada uma a seguir acrescenta só as partes que mudaram desde então, por isso é pequena. Cada cópia continua completa e pode ser restaurada ou explorada por si só.",
- "notStarted": "Não iniciada",
- "filesNewCount": "{count, plural, one {# ficheiro novo} other {# ficheiros novos}}",
- "columns": {
- "status": "Estado",
- "started": "Início",
- "trigger": "Iniciada por",
- "duration": "Duração",
- "filesNew": "Ficheiros novos",
- "bytesAdded": "Adicionado"
- },
- "trigger": {
- "scheduled": "Agendamento",
- "manual": "Manual",
- "restore": "Reposição"
- },
- "status": {
- "queued": "Na fila",
- "running": "Em curso",
- "done": "Concluída",
- "failed": "Falhou",
- "skipped": "Ignorada"
- },
- "restoring": "A repor",
- "restoringHint": "Está a decorrer uma reposição: os dados da oficina estão a ser substituídos pela cópia de segurança. Esta página atualiza-se sozinha até terminar. Não trabalhe na oficina até lá.",
- "explore": "Explorar",
- "restore": {
- "showAll": "Mostrar todas as cópias de segurança",
- "refresh": "Atualizar",
- "loading": "A ler as cópias de segurança no destino",
- "loadFailed": "Não foi possível listar as cópias de segurança",
- "empty": "Ainda não há cópias de segurança neste destino.",
- "needsOwner": "Só o proprietário da oficina pode repor aqui uma cópia de segurança.",
- "needsAdmin": "Só um proprietário ou administrador pode repor uma cópia de segurança.",
- "filesIncluded": "Fotografias e ficheiros incluídos",
- "filesNotIncluded": "Fotografias e ficheiros não incluídos",
- "earlierInstall": "Instalação anterior",
- "action": "Repor",
- "dialogTitle": "Repor a cópia de segurança de {time}?",
- "warning": "Repor <bold>substitui tudo o que esta oficina tem agora</bold>: clientes, viaturas, ordens de reparação, faturas, definições e, quando a cópia os inclui, fotografias e ficheiros. Tudo o que foi acrescentado depois de a cópia ser feita perde-se. Não é possível anular.",
- "secretsNote": "As chaves secretas que a cópia deixou de fora mantêm os valores que esta instalação tem agora. As contas de utilizador e as palavras-passe não são alteradas.",
- "confirmPrompt": "Escreva o nome da oficina, <bold>{name}</bold>, para confirmar.",
- "whileRunning": "A reposição decorre em segundo plano e demora alguns minutos quando há muitas fotografias. A página atualiza-se sozinha até terminar.",
- "cancel": "Cancelar",
- "confirm": "Repor esta cópia de segurança",
- "started": "Reposição iniciada"
- }
- },
- "lockedBackups": "Cópias de segurança agendadas e encriptadas da sua oficina para um armazenamento seu.",
- "searchOrType": "Pesquisar ou escrever um nome",
- "useTyped": "Usar \"{value}\"",
- "listNeedsKeys": "Introduza as chaves acima para ver a lista",
- "listEmpty": "A lista está vazia. Escreva um nome.",
- "testing": "A testar a ligação",
- "testOk": "A ligação funciona: foi escrito um objeto de teste, que foi depois eliminado.",
- "testFailed": "O teste falhou",
- "testSteps": {
- "settings": "Verifique as definições do fornecedor",
- "list": "A chave não consegue listar o bucket",
- "write": "A chave não consegue escrever no bucket",
- "delete": "A chave não consegue eliminar do bucket",
- "folder": "Não foi possível criar ou abrir a pasta"
- },
- "testHint": "Introduza as chaves e o bucket para os testar antes de ligar. O teste escreve um objeto pequeno e elimina-o."
- },
- "activity": {
- "title": "Atividade",
- "description": "Tarefas recentes e linhas de registo desta ligação.",
- "retry": "Tentar novamente",
- "jobStatus": {
- "queued": "Na fila",
- "running": "Em execução",
- "done": "Concluída",
- "failed": "Falhou",
- "dead": "Desistiu"
- },
- "jobs": "{count, plural, one {# tarefa} other {# tarefas}}",
- "counts": {
- "queued": "{count} na fila",
- "running": "{count} em curso",
- "done": "{count} concluídas",
- "failed": "{count} com falha",
- "dead": "{count} desistidas"
- },
- "noFailures": "Nada falhou.",
- "retryFailed": "Tentar novamente as que falharam",
- "details": "Mostrar detalhes",
- "loadingMore": "A carregar tarefas anteriores",
- "loadFailed": "Não foi possível carregar as tarefas anteriores.",
- "cleared": "As tarefas concluídas são apagadas ao fim de 7 dias."
- },
- "errors": {
- "generic": "Algo correu mal",
- "demo": "Não é possível ligar integrações na demonstração.",
- "forbidden": "Só um administrador pode ligar integrações.",
- "unknown": "Integração desconhecida.",
- "plan": "Esta integração não está incluída no seu plano.",
- "no-client": "Não há credenciais de aplicação configuradas para este fornecedor.",
- "denied": "Cancelou o início de sessão no fornecedor.",
- "vendor": "O fornecedor devolveu um erro. Tente novamente.",
- "invalid": "A resposta do fornecedor estava incompleta. Tente novamente.",
- "state": "Este início de sessão expirou ou pertence a outra sessão. Comece de novo.",
- "exchange": "O fornecedor recusou o início de sessão. Verifique as credenciais da aplicação e tente novamente.",
- "identify": "Ligado, mas não foi possível ler a conta. Tente voltar a ligar.",
- "backupRunning": "Já está a decorrer uma cópia de segurança.",
- "restoreOwnerOnly": "No Torqvoice Cloud, só o proprietário da oficina pode repor uma cópia de segurança.",
- "restoreBusy": "Já está a decorrer uma cópia de segurança ou uma reposição neste servidor. Tente novamente quando terminar."
- },
- "meeting": {
- "join": "Entrar na videochamada",
- "google-meet": "Google Meet",
- "teams": "Microsoft Teams",
- "zoom": "Zoom"
- },
- "calendar": {
- "external": "De calendários ligados",
- "busy": "Ocupado"
- },
- "connectors": {
- "google-calendar": {
- "description": "Coloque as ordens de serviço marcadas num Google Calendar, adicione um link do Google Meet e veja os horários ocupados do calendário no Torqvoice.",
- "tenantHelp": "Crie um cliente OAuth na Google Cloud Console (APIs e serviços → Credenciais), ative a API do Google Calendar, adicione o URI de redirecionamento abaixo e cole aqui o ID do cliente e o segredo.",
- "fields": {
- "clientId": "ID do cliente",
- "clientSecret": "Segredo do cliente"
- },
- "settings": {
- "calendarId": "Calendário",
- "pushEnabled": "Adicionar as ordens de serviço marcadas a este calendário",
- "includeCustomer": "Incluir o nome e o telefone do cliente no evento",
- "addConference": "Adicionar uma reunião do Google Meet a cada ordem de serviço marcada",
- "addConferenceHelp": "Ativado: cada ordem de serviço enviada para o calendário recebe uma reunião do Google Meet, e o link aparece na ordem. Desativado: adicione uma reunião do Google Meet a uma ordem específica na página dela. Em qualquer caso, o cliente só recebe o link quando o enviar.",
- "pullEnabled": "Mostrar os horários ocupados deste calendário no calendário do Torqvoice",
- "pullEnabledHelp": "Só de leitura. Atualizado a cada 15 minutos, uma semana para trás e dois meses para a frente."
- }
- },
- "microsoft-365": {
- "name": "Calendário do Microsoft 365",
- "description": "Coloque as ordens de serviço marcadas num calendário do Outlook, adicione um link do Microsoft Teams e veja os horários ocupados do calendário no Torqvoice.",
- "tenantHelp": "Registe uma aplicação no Microsoft Entra (Registos de aplicações), permita contas pessoais e empresariais, adicione o URI de redirecionamento abaixo como plataforma Web, crie um segredo do cliente e cole ambos aqui.",
- "fields": {
- "clientId": "ID da aplicação (cliente)",
- "clientSecret": "Segredo do cliente"
- },
- "settings": {
- "calendarId": "Calendário",
- "pushEnabled": "Adicionar as ordens de serviço marcadas a este calendário",
- "includeCustomer": "Incluir o nome e o telefone do cliente no evento",
- "addConference": "Adicionar uma reunião do Microsoft Teams a cada ordem de serviço marcada",
- "addConferenceHelp": "Ativado: cada ordem de serviço enviada para o calendário recebe uma reunião do Microsoft Teams, e o link aparece na ordem. Desativado: adicione uma reunião do Microsoft Teams a uma ordem específica na página dela. Em qualquer caso, o cliente só recebe o link quando o enviar.",
- "pullEnabled": "Mostrar os horários ocupados deste calendário no calendário do Torqvoice",
- "pullEnabledHelp": "Só de leitura. Atualizado a cada 15 minutos, uma semana para trás e dois meses para a frente."
- }
- },
- "zoom": {
- "description": "Adicione uma reunião do Zoom a uma ordem de serviço marcada e mantenha o link nela, para diagnóstico remoto ou para mostrar ao cliente o que foi encontrado.",
- "tenantHelp": "No Zoom App Marketplace, crie uma app General (user-managed), adicione o URI de redirecionamento abaixo, adicione os âmbitos meeting:write:meeting, meeting:update:meeting, meeting:delete:meeting, meeting:read:meeting e user:read:user, e cole aqui o ID e o segredo do cliente.",
- "fields": {
- "clientId": "ID do cliente",
- "clientSecret": "Segredo do cliente"
- },
- "settings": {
- "autoCreate": "Criar automaticamente uma reunião do Zoom para cada ordem de serviço marcada",
- "autoCreateHelp": "Desativado: adiciona a videochamada à ordem de serviço na página dela. Ativado: cada ordem com hora de início recebe uma reunião, que é movida ao remarcar e removida ao cancelar. Em ambos os casos, o cliente só recebe o link quando o enviar.",
- "includeCustomer": "Incluir o nome do cliente no assunto da reunião",
- "joinBeforeHost": "Permitir que o cliente entre antes de si",
- "waitingRoom": "Utilizar sala de espera"
- }
- },
- "twilio-sms": {
- "description": "Envie e receba SMS através de um número Twilio. Lembretes, avisos de viatura pronta para levantar e as respostas que chegam.",
- "fields": {
- "accountSid": "Account SID",
- "authToken": "Token de autenticação"
- },
- "settings": {
- "phoneNumber": "Enviar a partir deste número"
- }
- },
- "vonage-sms": {
- "description": "Envie e receba SMS através de um número Vonage.",
- "fields": {
- "apiKey": "Chave de API",
- "apiSecret": "Segredo de API",
- "signatureSecret": "Segredo de assinatura",
- "signatureSecretHelp": "No painel do Vonage, em API settings. Quando definido, as mensagens recebidas só são aceites se tiverem sido assinadas pelo Vonage. Sem ele, só é verificado o segredo no URL do webhook."
- },
- "settings": {
- "phoneNumber": "Enviar a partir deste número"
- }
- },
- "telnyx-sms": {
- "description": "Envie e receba SMS através de um número Telnyx.",
- "fields": {
- "apiKey": "Chave de API",
- "webhookPublicKey": "Chave pública do webhook",
- "webhookPublicKeyHelp": "No portal da Telnyx, em Account settings, Keys and credentials, Public key. Quando definida, as mensagens recebidas só são aceites se tiverem sido assinadas pela Telnyx. Sem ela, só é verificado o segredo no URL do webhook."
- },
- "settings": {
- "phoneNumber": "Enviar a partir deste número"
- }
- },
- "whatsapp-meta": {
- "description": "Envie mensagens aos clientes no WhatsApp diretamente através da Meta. Fotografias do que encontrou e a conversa que se segue.",
- "fields": {
- "phoneNumberId": "ID do número de telefone",
- "accessToken": "Token de acesso",
- "verifyToken": "Token de verificação do webhook",
- "appSecret": "Segredo da aplicação",
- "apiVersion": "Versão da Graph API",
- "appSecretHelp": "A Meta assina cada entrega com ele. Enquanto não for introduzido, as mensagens enviadas para o webhook são recusadas, porque qualquer pessoa que conheça o URL poderia fazer-se passar pelos seus clientes.",
- "phoneNumberIdHelp": "Do WhatsApp Manager, no número a partir do qual envia; não é o próprio número de telefone. A Meta só o emite depois de verificar o webhook, por isso deixe-o vazio, ligue, registe o webhook e volte para o adicionar.",
- "accessTokenHelp": "Um token permanente de utilizador de sistema. O que a Meta mostra durante a configuração expira em 24 horas. Adicione-o juntamente com o ID do número de telefone assim que o webhook estiver verificado.",
- "verifyTokenHelp": "Qualquer frase à sua escolha. Cole a mesma na Meta ao registar o webhook."
- },
- "settings": {
- "enabled": "Enviar mensagens por este canal",
- "phoneNumber": "Enviar a partir deste número",
- "templateName": "Modelo para reabrir uma conversa",
- "templateLanguage": "Idioma do modelo",
- "templateVariables": "Valores do modelo, por ordem",
- "mediaTemplateName": "Modelo para uma mensagem com fotografia",
- "mediaTemplateLanguage": "Idioma do modelo com fotografia",
- "mediaTemplateVariables": "Valores do modelo com fotografia, por ordem"
- }
- },
- "whatsapp-twilio": {
- "description": "Envie mensagens aos clientes no WhatsApp através de um número Twilio, se foi a Twilio que lho vendeu.",
- "fields": {
- "accountSid": "Account SID",
- "authToken": "Token de autenticação",
- "messagingServiceSid": "SID do serviço de mensagens"
- },
- "settings": {
- "enabled": "Enviar mensagens por este canal",
- "phoneNumber": "Enviar a partir deste número",
- "templateName": "Modelo para reabrir uma conversa",
- "templateLanguage": "Idioma do modelo",
- "templateVariables": "Valores do modelo, por ordem",
- "mediaTemplateName": "Modelo para uma mensagem com fotografia",
- "mediaTemplateLanguage": "Idioma do modelo com fotografia",
- "mediaTemplateVariables": "Valores do modelo com fotografia, por ordem"
- }
- },
- "telegram": {
- "description": "Um bot do Telegram que chega aos clientes que o utilizam e traz as respostas deles para a caixa de entrada.",
- "fields": {
- "botToken": "Token do bot"
- },
- "settings": {
- "enabled": "Enviar mensagens por este canal",
- "botUsername": "Nome de utilizador do bot"
- }
- },
- "smtp": {
- "description": "Envie faturas e lembretes através do seu próprio servidor de correio, em vez do correio da plataforma.",
- "fields": {
- "host": "Servidor",
- "port": "Porta",
- "user": "Nome de utilizador",
- "pass": "Palavra-passe"
- },
- "settings": {
- "fromEmail": "Enviar a partir deste endereço",
- "fromName": "Nome apresentado como remetente",
- "secure": "Ligar por TLS desde o início",
- "requireTls": "Exigir que o servidor passe para TLS",
- "rejectUnauthorized": "Rejeitar um certificado que não seja válido"
- }
- },
- "resend": {
- "description": "Envie faturas e lembretes através do Resend.",
- "fields": {
- "apiKey": "Chave de API"
- },
- "settings": {
- "fromEmail": "Enviar a partir deste endereço",
- "fromName": "Nome apresentado como remetente"
- }
- },
- "postmark": {
- "description": "Envie faturas e lembretes através do Postmark.",
- "fields": {
- "apiKey": "Token do servidor"
- },
- "settings": {
- "fromEmail": "Enviar a partir deste endereço",
- "fromName": "Nome apresentado como remetente"
- }
- },
- "mailgun": {
- "description": "Envie faturas e lembretes através do Mailgun.",
- "fields": {
- "apiKey": "Chave de API",
- "domain": "Domínio de envio"
- },
- "settings": {
- "fromEmail": "Enviar a partir deste endereço",
- "fromName": "Nome apresentado como remetente",
- "region": "Região em que o domínio está"
- }
- },
- "sendgrid": {
- "description": "Envie faturas e lembretes através do SendGrid.",
- "fields": {
- "apiKey": "Chave de API"
- },
- "settings": {
- "fromEmail": "Enviar a partir deste endereço",
- "fromName": "Nome apresentado como remetente"
- }
- },
- "amazon-ses": {
- "description": "Envie faturas e lembretes através do Amazon SES.",
- "fields": {
- "accessKeyId": "ID da chave de acesso",
- "secretAccessKey": "Chave de acesso secreta",
- "region": "Região"
- },
- "settings": {
- "fromEmail": "Enviar a partir deste endereço",
- "fromName": "Nome apresentado como remetente"
- }
- },
- "vegvesen": {
- "description": "Preencha uma viatura a partir da matrícula ou do VIN norueguês: marca, modelo, ano, combustível, caixa de velocidades, motor, cor, medidas dos pneus e a data do próximo EU-kontroll, diretamente do registo da Statens vegvesen. Não são devolvidos dados do proprietário.",
- "fields": {
- "apiKey": "Chave de API",
- "apiKeyHelp": "Gratuita. Peça a chave em vegvesen.no, em \"API for tekniske kjøretøyopplysninger\": inicie sessão com BankID, represente a oficina e a chave é emitida de imediato. Permite 50.000 consultas por dia."
- },
- "settings": {
- "syncInspections": "Manter atualizadas as datas de inspeção de todas as viaturas desta oficina",
- "syncInspectionsHelp": "Uma vez por hora, os veículos a verificar são consultados pela matrícula e a próxima data de EU-kontroll é guardada; com que frequência um veículo é verificado de novo define-se abaixo. Só veículos guardados nesta oficina são enviados.",
- "inspectionRecheck": "Verificar de novo veículos que já têm data",
- "inspectionRecheckHelp": "Uma data só muda quando uma inspeção é aprovada. Mensal repara numa inspeção antecipada mais cedo; só perto do prazo custa menos. Perto do prazo, cada veículo é verificado semanalmente, seja qual for a escolha aqui.",
- "recheckMonthly": "Todos os meses",
- "recheckQuarterly": "A cada três meses",
- "recheckNearDeadline": "Só perto do prazo",
- "inspectionSoonDays": "Perto do prazo significa dentro de",
- "inspectionSoonDaysHelp": "Nesta janela um veículo é verificado semanalmente, pelo que uma inspeção aprovada o tira da lista de lembretes em dias. Uma janela mais curta significa menos consultas.",
- "soon30": "30 dias",
- "soon60": "60 dias",
- "soon90": "90 dias",
- "inspectionOnlyWithCustomer": "Só veículos com cliente",
- "inspectionOnlyWithCustomerHelp": "Saltar veículos sem cliente registado. Ninguém pode ser lembrado sobre eles, por isso consultá-los custa para nada."
- }
- },
- "openapi-automotive": {
- "description": "Preencha uma viatura a partir da matrícula francesa, italiana, espanhola, portuguesa ou britânica: marca, modelo, ano, VIN, combustível, cilindrada e mais, a partir dos dados de registo do país através da Openapi.com. Cada consulta é cobrada na conta Openapi da própria oficina. Não são devolvidos dados do proprietário.",
- "fields": {
- "token": "Token de API",
- "tokenHelp": "Crie uma conta em console.openapi.com, adicione crédito à carteira e, em Automotive, crie um token para o ambiente de produção. Cada consulta bem-sucedida custa alguns cêntimos; uma sem resultado é gratuita."
- },
- "settings": {
- "country": "País",
- "countryHelp": "O registo a consultar. As matrículas francesas e italianas têm o mesmo formato, por isso o país não pode ser deduzido da matrícula.",
- "cars": "Consultar automóveis",
- "carsHelp": "Consulta o registo de automóveis. Desative se só trabalha com motociclos, assim a consulta salta os automóveis e responde mais depressa.",
- "bikes": "Consultar motociclos",
- "bikesHelp": "Consulta o registo de motociclos. Com os automóveis também ativos, só é consultado quando nenhum automóvel corresponde, e uma consulta de automóvel sem resultado é gratuita. Indisponível para Portugal."
- }
- },
- "checkcardetails": {
- "description": "Preencha um veículo a partir da matrícula britânica ou do VIN: marca, modelo, ano, cor, combustível, cilindrada e a data do próximo MOT, com dados da DVLA através do Check Car Details. Automóveis e motociclos vêm do mesmo registo. Com o UK Vehicle Data ativado na sua conta, chegam também o VIN, a caixa de velocidades e os pesos. Cada consulta é cobrada na conta Check Car Details da própria oficina. Não são devolvidos dados do proprietário.",
- "fields": {
- "apiKey": "Chave de API",
- "apiKeyHelp": "Crie uma conta em api.checkcardetails.co.uk e copie a chave de produção em API Keys. O Vehicle Registration está incluído em todas as contas. Para obter também o VIN, clique em Request Access junto a UK Vehicle Data em Your Data Points; as consultas passam a usá-lo assim que for ativado. Uma chave de teste só encontra matrículas que contêm a letra A."
- },
- "settings": {
- "syncInspections": "Manter as datas de MOT atualizadas para todos os veículos desta oficina",
- "syncInspectionsHelp": "Com isto ativo, cada veículo com matrícula é consultado uma vez e a data do MOT é guardada. Depois, os veículos são verificados de novo conforme definido abaixo. Cada veículo encontrado é cobrado como uma consulta Vehicle Registration; matrículas que o registo não conhece são gratuitas. Só veículos guardados nesta oficina são enviados.",
- "inspectionRecheck": "Verificar de novo veículos que já têm data",
- "inspectionRecheckHelp": "Uma data só muda quando uma inspeção é aprovada. Mensal repara numa inspeção antecipada mais cedo; só perto do prazo custa menos. Perto do prazo, cada veículo é verificado semanalmente, seja qual for a escolha aqui.",
- "recheckMonthly": "Todos os meses",
- "recheckQuarterly": "A cada três meses",
- "recheckNearDeadline": "Só perto do prazo",
- "inspectionSoonDays": "Perto do prazo significa dentro de",
- "inspectionSoonDaysHelp": "Nesta janela um veículo é verificado semanalmente, pelo que uma inspeção aprovada o tira da lista de lembretes em dias. Uma janela mais curta significa menos consultas.",
- "soon30": "30 dias",
- "soon60": "60 dias",
- "soon90": "90 dias",
- "inspectionOnlyWithCustomer": "Só veículos com cliente",
- "inspectionOnlyWithCustomerHelp": "Saltar veículos sem cliente registado. Ninguém pode ser lembrado sobre eles, por isso consultá-los custa para nada."
- }
- },
- "rdw": {
- "description": "Preencha uma viatura a partir da matrícula neerlandesa: marca, modelo, ano, combustível, cilindrada, cor, pesos e a próxima data de APK, diretamente do registo aberto de veículos da RDW. Gratuito, sem chave. Os dados do proprietário e o VIN não são publicados.",
- "fields": {
- "appToken": "Token da aplicação (opcional)",
- "appTokenHelp": "Os dados abertos da RDW funcionam sem chave, mas os pedidos anónimos partilham uma quota limitada. Para a sincronização de inspeções, crie uma conta gratuita em opendata.rdw.nl, abra as definições de programador do seu perfil e crie um token da aplicação."
- },
- "settings": {
- "syncInspections": "Manter atualizadas as datas de APK de todas as viaturas desta oficina",
- "syncInspectionsHelp": "Uma vez por hora, os veículos a verificar são consultados pela matrícula e a próxima data de APK é guardada; com que frequência um veículo é verificado de novo define-se abaixo. Só veículos guardados nesta oficina são enviados.",
- "inspectionRecheck": "Verificar de novo veículos que já têm data",
- "inspectionRecheckHelp": "Uma data só muda quando uma inspeção é aprovada. Mensal repara numa inspeção antecipada mais cedo; só perto do prazo custa menos. Perto do prazo, cada veículo é verificado semanalmente, seja qual for a escolha aqui.",
- "recheckMonthly": "Todos os meses",
- "recheckQuarterly": "A cada três meses",
- "recheckNearDeadline": "Só perto do prazo",
- "inspectionSoonDays": "Perto do prazo significa dentro de",
- "inspectionSoonDaysHelp": "Nesta janela um veículo é verificado semanalmente, pelo que uma inspeção aprovada o tira da lista de lembretes em dias. Uma janela mais curta significa menos consultas.",
- "soon30": "30 dias",
- "soon60": "60 dias",
- "soon90": "90 dias",
- "inspectionOnlyWithCustomer": "Só veículos com cliente",
- "inspectionOnlyWithCustomerHelp": "Saltar veículos sem cliente registado. Ninguém pode ser lembrado sobre eles, por isso consultá-los custa para nada."
- }
- },
- "regcheck": {
- "description": "Preencha uma viatura a partir da matrícula na Austrália, Nova Zelândia, Estados Unidos, Irlanda, Noruega, Suécia, Dinamarca, Finlândia, Estónia, Chéquia, Eslováquia, Hungria ou Croácia: marca, modelo, ano, VIN, combustível e cilindrada quando o país os publica, através do RegCheck. Cada consulta bem-sucedida gasta um crédito da conta RegCheck da própria oficina. Não são devolvidos dados do proprietário.",
- "fields": {
- "username": "Utilizador RegCheck",
- "usernameHelp": "Registe-se em regcheck.org.uk; a conta inclui 10 consultas gratuitas e as restantes são compradas em blocos de 100 no painel. Aqui só é preciso o nome de utilizador, nunca a palavra-passe. Uma matrícula não encontrada não custa nada."
- },
- "settings": {
- "country": "País",
- "countryHelp": "O registo a consultar. Cada país tem o seu próprio serviço, por isso a ligação consulta um.",
- "auState": "Estado ou território",
- "auStateHelp": "A Austrália regista as viaturas por estado e o registo precisa de saber qual consultar. Escolha onde está registada a maioria das viaturas dos seus clientes.",
- "usState": "Estado",
- "usStateHelp": "O código de duas letras do estado onde as viaturas estão registadas, como CA ou TX. Os registos americanos são consultados por estado."
- }
- },
- "openai": {
- "description": "Descrições de serviço, resumos de histórico, leitura de documentos e o assistente, respondidos pela sua própria conta OpenAI. Cada pedido é cobrado nessa conta, e pode escolher o modelo.",
- "fields": {
- "apiKey": "Chave de API",
- "apiKeyHelp": "Crie uma em platform.openai.com, em API keys. A conta precisa de saldo; a OpenAI cobra por pedido."
- },
- "settings": {
- "model": "Modelo",
- "modelHelp": "O modelo que responde. A lista vem da sua conta, os mais recentes primeiro. Os modelos mais pequenos custam menos por pedido e chegam para a maior parte dos textos da oficina."
- }
- },
- "anthropic": {
- "description": "Descrições de serviço, resumos de histórico, leitura de documentos e o assistente, respondidos pelo Claude na sua própria conta Anthropic. Cada pedido é cobrado nessa conta, e pode escolher o modelo.",
- "fields": {
- "apiKey": "Chave de API",
- "apiKeyHelp": "Crie uma em console.anthropic.com, em API keys. A conta precisa de saldo; a Anthropic cobra por pedido."
- },
- "settings": {
- "model": "Modelo",
- "modelHelp": "O modelo que responde. A lista vem da sua conta, os mais recentes primeiro. Os modelos mais pequenos custam menos por pedido e chegam para a maior parte dos textos da oficina."
- }
- },
- "openai-compatible": {
- "name": "Compatível com OpenAI",
- "description": "Descrições de serviço, resumos de histórico, leitura de documentos e o assistente, respondidos por qualquer servidor que fale a API de chat da OpenAI: Ollama, Open WebUI, LocalAI, vLLM, LM Studio, LiteLLM e semelhantes. Os seus dados ficam no seu próprio hardware.",
- "fields": {
- "baseUrl": "URL base",
- "baseUrlHelp": "Onde começa a API ao estilo OpenAI do servidor, incluindo o caminho: /v1 para Ollama, vLLM, LocalAI e LM Studio, /api para Open WebUI. O Torqvoice acrescenta /models e /chat/completions.",
- "apiKey": "Chave de API",
- "apiKeyHelp": "Só se o servidor pedir uma. O Ollama e o vLLM costumam funcionar sem chave; o Open WebUI emite uma em Settings, Account."
- },
- "settings": {
- "model": "Modelo",
- "modelHelp": "O modelo que responde. A lista é tudo o que o servidor indica, por nome. Utilize um modelo com visão se quiser que as fotografias sejam lidas."
- }
- },
- "stripe": {
- "description": "Pagamentos com cartão pelo link da fatura, na sua própria conta Stripe. O cliente paga, o Stripe avisa o Torqvoice e a fatura fica marcada como paga automaticamente.",
- "fields": {
- "secretKey": "Chave secreta",
- "secretKeyHelp": "No painel do Stripe, em Developers, API keys. As chaves de teste não processam nada real, por isso teste primeiro um pagamento com elas e troque depois pelas chaves reais.",
- "publishableKey": "Chave publicável",
- "webhookSecret": "Segredo de assinatura do webhook",
- "webhookSecretHelp": "Opcional, e pode ser adicionado depois de ligar. O Stripe mostra-o em Reveal secret assim que o URL de notificação desta página é adicionado como endpoint. Com ele, cada notificação é verificada pela assinatura; sem ele, o Torqvoice consulta o checkout ao Stripe antes de registar um pagamento."
- },
- "settings": {
- "enabled": "Oferecer nos links de fatura",
- "enabledHelp": "Desative para retirar temporariamente o botão de pagamento das faturas partilhadas, sem desligar. Os pagamentos já iniciados continuam a ser registados."
- }
- },
- "vipps": {
- "description": "Vipps MobilePay pelo link da fatura. O cliente paga na app que já tem e a fatura fica marcada como paga automaticamente.",
- "fields": {
- "clientId": "ID do cliente",
- "clientSecret": "Segredo do cliente",
- "subscriptionKey": "Chave de subscrição",
- "subscriptionKeyHelp": "A Ocp-Apim-Subscription-Key do portal do Vipps MobilePay, nas chaves de API da unidade de venda.",
- "merchantSerialNumber": "Número de série do comerciante"
- },
- "settings": {
- "enabled": "Oferecer nos links de fatura",
- "enabledHelp": "Desative para retirar temporariamente o botão de pagamento das faturas partilhadas, sem desligar. Os pagamentos já iniciados continuam a ser registados.",
- "testMode": "Modo de teste",
- "testModeHelp": "Utilizar o ambiente de teste do Vipps com chaves de teste. Deixe ativado até um pagamento completo funcionar; depois desative e introduza as chaves reais."
- }
- },
- "paypal": {
- "description": "Checkout do PayPal pelo link da fatura, através da sua própria app do PayPal. O cliente paga com conta PayPal ou cartão e a fatura fica marcada como paga automaticamente.",
- "fields": {
- "clientId": "ID do cliente",
- "clientSecret": "Segredo do cliente"
- },
- "settings": {
- "enabled": "Oferecer nos links de fatura",
- "enabledHelp": "Desative para retirar temporariamente o botão de pagamento das faturas partilhadas, sem desligar. Os pagamentos já iniciados continuam a ser registados.",
- "sandbox": "Modo sandbox",
- "sandboxHelp": "Utilizar o sandbox do PayPal com as chaves da app de sandbox. Deixe ativado até um pagamento completo funcionar; depois desative e introduza as chaves da app real."
- }
- },
- "quickbooks": {
- "description": "Envie as faturas emitidas, os respetivos clientes e pagamentos para o QuickBooks Online e receba de volta os pagamentos lá registados.",
- "tenantHelp": "Crie uma app no portal de programadores da Intuit. Copie o client id e o secret em Keys and credentials e indique o URI de redirecionamento abaixo em Settings, Redirect URIs. As chaves de desenvolvimento dão acesso a empresas sandbox, as de produção às reais.",
- "fields": {
- "clientId": "ID do cliente",
- "clientSecret": "Segredo do cliente"
- },
- "settings": {
- "pushInvoices": "Enviar as faturas emitidas para o QuickBooks",
- "pushOnComplete": "Enviar faturas também quando o serviço for marcado como concluído",
- "pushOnCompleteHelp": "Sem isto, uma fatura é enviada quando é enviada ao cliente, partilhada ou paga. Com isto, um serviço concluído é enviado de imediato e atualizado se mudar.",
- "startDate": "Só faturas com data a partir de",
- "startDateHelp": "Deixe vazio para enviar todas as faturas emitidas. Utilize a data em que a sua contabilidade passou para o QuickBooks, para não lançar faturas antigas duas vezes.",
- "includeVehicle": "Indicar a viatura na fatura",
- "includeVehicleHelp": "Uma linha de texto acima dos itens com ano, marca, modelo, matrícula e quilometragem, para que a contabilidade saiba de que viatura se trata.",
- "laborItemId": "Item para linhas de mão de obra",
- "laborItemIdHelp": "Deixe vazio e será criado um item chamado Labour na sua conta de receitas na primeira vez.",
- "partsItemId": "Item para linhas de peças",
- "partsItemIdHelp": "Deixe vazio e será criado um item chamado Parts na sua conta de receitas na primeira vez.",
- "taxAmounts": "Valores de imposto",
- "taxAmountsHelp": "Como faturado envia o imposto exatamente como consta na fatura que o cliente recebeu, pelo que os dois sistemas batem ao cêntimo. Calculado pelo QuickBooks deixa o QuickBooks aplicar a taxa do código de imposto, ou a morada do cliente nos EUA, e o registo indica quando os totais diferem.",
- "taxAmountsBilled": "Como faturado no Torqvoice",
- "taxAmountsQuickbooks": "Calculado pelo QuickBooks",
- "taxCodeId": "Código de imposto para faturas tributáveis",
- "taxCodeIdHelp": "O QuickBooks lança o imposto sob um código de imposto. O Torqvoice escolhe o código cuja taxa corresponde a cada fatura; este é utilizado quando nenhum corresponde. Uma empresa dos EUA utiliza TAX, a menos que escolha outro código.",
- "zeroTaxCodeId": "Código de imposto para faturas sem imposto",
- "zeroTaxCodeIdHelp": "Utilizado quando a fatura não tem imposto ou o cliente está isento. Uma empresa dos EUA utiliza NON, a menos que escolha outro código.",
- "pushPayments": "Registar pagamentos no QuickBooks",
- "depositAccountId": "Depositar pagamentos em",
- "depositAccountIdHelp": "Deixe vazio para usar Undeposited Funds.",
- "manualPaidAsPayment": "Registar um pagamento quando uma fatura for marcada manualmente como paga",
- "manualPaidAsPaymentHelp": "Uma fatura marcada como paga no Torqvoice sem lançamento de pagamento recebe no QuickBooks um pagamento pelo valor que lá ainda consta em aberto. Se estiver desativado, fica lá em aberto até ser registado um pagamento.",
- "pullPayments": "Receber de volta os pagamentos registados no QuickBooks",
- "pullPaymentsHelp": "A cada 30 minutos. Um pagamento recebido no QuickBooks para uma fatura do Torqvoice é registado aqui na fatura."
- }
- },
- "fiken": {
- "description": "Envie as faturas emitidas, os respetivos clientes e pagamentos para o Fiken e receba de volta os pagamentos lá registados.",
- "tenantHelp": "Crie uma aplicação no Fiken em Rediger konto, API, para as suas próprias empresas. Introduza na aplicação o URI de redirecionamento abaixo e copie para aqui o ID de cliente e o segredo de cliente. A empresa precisa do módulo de API do Fiken.",
- "fields": {
- "clientId": "ID do cliente",
- "clientSecret": "Segredo do cliente"
- },
- "settings": {
- "companySlug": "Empresa no Fiken",
- "companySlugHelp": "A empresa em cuja contabilidade as faturas entram. O seu utilizador do Fiken pode ter acesso a várias.",
- "pushInvoices": "Enviar as faturas emitidas para o Fiken",
- "pushOnComplete": "Enviar faturas também quando o serviço for marcado como concluído",
- "pushOnCompleteHelp": "Sem isto, uma fatura é enviada quando é enviada ao cliente, partilhada ou paga. Com isto, um serviço concluído é enviado de imediato e atualizado se mudar.",
- "startDate": "Só faturas com data a partir de",
- "startDateHelp": "Deixe vazio para enviar todas as faturas emitidas. Utilize a data em que a sua contabilidade passou para o Fiken, para não lançar faturas antigas duas vezes.",
- "attachPdf": "Anexar o PDF da fatura",
- "attachPdfHelp": "Uma fatura entra no Fiken como uma venda (Annet salg) com o seu número do Torqvoice. Com isto ativo, o PDF que o cliente recebeu é arquivado na venda como documento de suporte.",
- "laborAccount": "Conta de rendimentos para mão de obra",
- "laborAccountHelp": "Deixe vazio para usar a 3000.",
- "partsAccount": "Conta de rendimentos para peças",
- "partsAccountHelp": "Deixe vazio para usar a 3000.",
- "zeroVatType": "Tipo de IVA para faturas sem IVA",
- "zeroVatTypeHelp": "Como o Fiken contabiliza uma venda sem IVA. Uma empresa não registada para IVA não precisa de escolher nada aqui. Uma registada tem de escolher antes de uma fatura assim ser enviada; pergunte ao seu contabilista qual se aplica.",
- "vatNone": "Nenhum (sem tratamento de IVA)",
- "vatExempt": "Isento (fritatt)",
- "vatOutside": "Fora do âmbito do IVA (utenfor)",
- "vatExport": "Isento, exportação",
- "vatReverse": "Isento, autoliquidação",
- "zeroAccount": "Conta de rendimentos para faturas sem IVA",
- "zeroAccountHelp": "Deixe vazio para usar as contas de mão de obra e peças acima. Se o Fiken recusar a conta com o tipo de IVA, o motivo aparece no registo de atividade.",
- "pushPayments": "Registar pagamentos no Fiken",
- "paymentAccount": "Depositar pagamentos em",
- "paymentAccountHelp": "Deixe vazio para usar a primeira conta bancária da empresa.",
- "manualPaidAsPayment": "Registar um pagamento quando uma fatura for marcada manualmente como paga",
- "manualPaidAsPaymentHelp": "Uma fatura marcada como paga no Torqvoice sem lançamento de pagamento recebe no Fiken um pagamento pelo valor que lá ainda consta em aberto. Se estiver desativado, fica lá em aberto até ser registado um pagamento.",
- "pullPayments": "Receber de volta os pagamentos registados no Fiken",
- "pullPaymentsHelp": "A cada 30 minutos. Um pagamento recebido no Fiken para uma fatura do Torqvoice é registado aqui na fatura."
- }
- },
- "nhtsa": {
- "description": "Preencha uma viatura a partir do VIN e veja recalls, reclamações de proprietários e classificações de testes de colisão de cada ano-modelo, da autoridade de segurança dos EUA. Gratuito, sem chave.",
- "fields": {},
- "settings": {
- "refreshFleet": "Manter atualizados os dados de recalls e reclamações de todas as viaturas desta oficina",
- "refreshFleetHelp": "Uma vez por dia, os modelos não atualizados na última semana são obtidos de novo, para que a página da viatura nunca tenha de esperar e um novo recall apareça no prazo de uma semana. Só são enviados a marca, o modelo e o ano."
- }
- },
- "openlaborproject": {
- "description": "Consulte os tempos de mão de obra e as capacidades de fluidos do veículo de uma ordem de reparação ou orçamento, e adicione as horas de um trabalho como linha de mão de obra com um clique. A maior parte dos dados é de veículos do mercado norte-americano, e a tabela indica a que mercado cada pesquisa se refere. Cada valor indica a confiança da Open Labor Project, e muitos são estimativas geradas por IA, por isso verifique-os antes de apresentar um orçamento ao cliente. As pesquisas usam a chave de API da própria oficina. Com um plano pago da Open Labor Project, um veículo pesquisado uma vez fica guardado enquanto o plano durar, por isso voltar a pesquisá-lo não gasta nenhuma chamada.",
- "fields": {
- "apiKey": "Chave de API",
- "apiKeyHelp": "Peça uma chave em openlaborproject.com, em Developers; chega por e-mail. Uma chave gratuita tem 10 pedidos por dia e mostra as horas de um trabalho de cada vez. O plano Builder e superiores aumentam o limite e mostram as horas de todos os trabalhos de uma vez.",
- "apiKeyServerHelp": "Deixe em branco para usar a chave fornecida por este servidor, ou cole a sua própria chave de openlaborproject.com para usar o seu próprio plano."
- },
- "settings": {
- "minConfidence": "Mostrar tempos a partir de",
- "minConfidenceHelp": "Exclui os tempos de que a fonte tem menos certeza. Muitos tempos de marcas europeias são estimativas por IA, por isso uma escolha rigorosa pode deixar poucos trabalhos.",
- "confidenceAll": "Qualquer nível de confiança",
- "confidenceMedium": "Média ou superior",
- "confidenceHigh": "Verificado ou superior",
- "confidenceOem": "Apenas OEM",
- "hoursFrom": "Horas a adicionar",
- "hoursFromHelp": "Que valor vai para a ordem de reparação: o tempo de tabela, ou o topo do intervalo indicado pela Open Labor Project (por exemplo, 1,6 h em vez de 1,2 h). O topo do intervalo deixa margem para trabalhos que demoram mais.",
- "hoursBook": "Tempo de tabela",
- "hoursHigh": "Topo do intervalo",
- "adjustPercent": "Ajustar tempos em (%)",
- "adjustPercentHelp": "Uma percentagem somada a cada tempo antes de passar para a ordem de reparação: 10 transforma 1,2 h em 1,32 h, e -10 em 1,08 h. De -50 a 200.",
- "rounding": "Arredondar horas por excesso a",
- "roundingHelp": "Arredonda por excesso as horas de cada trabalho, depois de qualquer ajuste: com 0,25, 1,32 h passa a 1,5 h. Um tempo que já está num passo fica como está.",
- "roundNone": "Não arredondar",
- "roundTenth": "0,1 hora",
- "roundQuarter": "0,25 hora",
- "roundHalf": "0,5 hora",
- "fluids": "Mostrar especificações de fluidos",
- "fluidsHelp": "Acrescenta um separador Fluidos com capacidades, especificações e intervalos de substituição. Abri-lo usa uma chamada própria.",
- "units": "Unidades de fluidos",
- "unitsHelp": "As unidades em que se apresentam capacidades e intervalos de substituição.",
- "unitsBoth": "Ambas",
- "unitsMetric": "Métricas (L, km)",
- "unitsUs": "EUA (qt, mi)"
- }
- },
- "speech-to-text": {
- "name": "Voz para texto",
- "description": "Ditado na ordem de serviço, transcrito por um modelo de voz em vez do navegador: muito mais preciso, em qualquer idioma, e conhece o vocabulário de oficina. É independente do seu fornecedor de IA, por isso pode manter esse como está. Usa a sua própria chave da OpenAI ou um servidor seu que fale a API de transcrição da OpenAI. A gravação é enviada para ser transcrita e não é guardada.",
- "fields": {
- "apiKey": "Chave de API",
- "apiKeyHelp": "Uma chave da OpenAI, criada em platform.openai.com, em API keys; a OpenAI cobra a utilização ao minuto. Para um servidor seu, só se o servidor a pedir.",
- "baseUrl": "Endereço do servidor",
- "baseUrlHelp": "Deixe vazio para usar a OpenAI. Para um servidor seu (um Whisper local, LocalAI, Groq), indique onde começa a API ao estilo da OpenAI, incluindo o caminho, por exemplo /v1. O Torqvoice acrescenta-lhe /audio/transcriptions."
- },
- "settings": {
- "model": "Modelo",
- "modelHelp": "O modelo de voz a pedir. gpt-4o-mini-transcribe é preciso e barato; gpt-4o-transcribe é o maior. Um servidor seu normalmente responde a whisper-1.",
- "mode": "Quem escolhe como o ditado é transcrito",
- "modeHelp": "O navegador escreve enquanto fala, mas é mais fraco, sobretudo em idiomas menos falados. O modelo de voz escreve quando para.",
- "modeAi": "Sempre o modelo de voz",
- "modeChoice": "Cada pessoa escolhe: modelo de voz ou navegador"
- }
- },
- "s3": {
- "name": "Bucket de armazenamento na nuvem",
- "description": "Cópias de segurança encriptadas desta oficina para um bucket seu no Amazon S3, Cloudflare R2, Backblaze B2, Wasabi, Hetzner Object Storage ou em qualquer outro armazenamento compatível com S3, com a frequência que escolher. Depois da primeira execução, só é enviado o que mudou, por isso as cópias de hora a hora continuam baratas.",
- "fields": {
- "accessKeyId": "ID da chave de acesso",
- "accessKeyIdHelp": "Uma chave do seu fornecedor de armazenamento com permissão para listar, ler, escrever e eliminar objetos no bucket. Crie uma chave só para o Torqvoice, para que possa ser revogada separadamente.",
- "secretAccessKey": "Chave de acesso secreta",
- "password": "Palavra-passe das cópias de segurança",
- "passwordHelp": "Cada cópia de segurança é encriptada com esta palavra-passe. Invente uma ou carregue em Gerar, e guarde uma cópia fora deste servidor: sem ela ninguém consegue abrir estas cópias, nem mesmo o Torqvoice. Para voltar a ligar um armazenamento que já contém cópias de segurança do Torqvoice, introduza a palavra-passe com que foram feitas.",
- "endpoint": "Endpoint personalizado",
- "endpointHelp": "Só para a opção Outro armazenamento compatível com S3: o endereço S3 do seu próprio armazenamento, como um servidor MinIO, como nome de anfitrião, com porta se necessário."
- },
- "settings": {
- "provider": "Fornecedor",
- "providerAws": "Amazon S3",
- "providerR2": "Cloudflare R2",
- "providerB2": "Backblaze B2",
- "providerWasabi": "Wasabi",
- "providerHetzner": "Hetzner Object Storage",
- "providerOther": "Outro armazenamento compatível com S3",
- "region": "Região",
- "regionHelp": "Onde está o bucket. Escolha-a na lista do fornecedor; noutro armazenamento, escreva a que este pedir, se pedir alguma. Não é usada pelo Cloudflare R2.",
- "accountId": "ID da conta Cloudflare",
- "accountIdHelp": "O ID de 32 caracteres apresentado na página de visão geral do R2 no painel da Cloudflare.",
- "bucket": "Bucket",
- "bucketHelp": "Os buckets são listados com a chave assim que esta é introduzida. Se a chave puder usar um bucket, mas não os listar, escreva o nome.",
- "prefix": "Pasta no bucket",
- "prefixHelp": "As cópias de segurança ficam nesta pasta. Use uma pasta diferente para cada oficina que partilha o bucket.",
- "frequency": "Frequência",
- "frequencyHourly": "De hora a hora",
- "frequencyEvery4h": "De 4 em 4 horas",
- "frequencyDaily": "Todos os dias",
- "frequencyWeekly": "Todas as semanas",
- "frequencyMonthly": "Todos os meses",
- "time": "Hora do dia",
- "timeHelp": "No relógio da oficina, no formato HH:MM. Usada pelas cópias diárias, semanais e mensais.",
- "weekday": "Dia da semana",
- "sunday": "Domingo",
- "monday": "Segunda-feira",
- "tuesday": "Terça-feira",
- "wednesday": "Quarta-feira",
- "thursday": "Quinta-feira",
- "friday": "Sexta-feira",
- "saturday": "Sábado",
- "monthDay": "Dia do mês",
- "monthDayLast": "Último dia",
- "contents": "Conteúdo",
- "contentsHelp": "As chaves secretas são as que esta oficina introduziu no Torqvoice: chaves de pagamentos, de IA e de webhooks. Em qualquer caso, cada cópia é encriptada com a palavra-passe das cópias de segurança. Uma cópia contém os registos da oficina e, se o escolher, os respetivos ficheiros. As contas de utilizador e as palavras-passe não estão incluídas: num servidor novo, inicia sessão, convida a equipa e repõe os dados nessa oficina.",
- "contentsData": "Apenas dados",
- "contentsDataAndSecrets": "Dados e chaves secretas",
- "includeFiles": "Incluir fotografias e ficheiros",
- "includeFilesHelp": "Cada ficheiro é enviado uma vez e reutilizado pelas cópias seguintes, por isso custa pouco depois da primeira execução.",
- "keepHourly": "Manter cópias horárias",
- "keepHourlyHelp": "Quantas das cópias horárias mais recentes manter. Só conta nos agendamentos de hora a hora e de 4 em 4 horas.",
- "keepDaily": "Manter cópias diárias",
- "keepWeekly": "Manter cópias semanais",
- "keepMonthly": "Manter cópias mensais",
- "keepMonthlyHelp": "As cópias mais antigas são removidas após cada execução, mantendo as mais recentes de cada tipo. Defina um número como 0 para não manter nenhuma desse tipo."
- }
- },
- "local-folder": {
- "name": "Pasta local",
- "description": "Cópias de segurança encriptadas desta oficina para uma pasta neste servidor: o volume de cópias de segurança no ficheiro compose ou uma unidade de rede montada aí. Uma cópia no mesmo disco da base de dados não é segura por si só; combine-a com um armazenamento noutro local.",
- "fields": {
- "password": "Palavra-passe das cópias de segurança",
- "passwordHelp": "Cada cópia de segurança é encriptada com esta palavra-passe. Invente uma ou carregue em Gerar, e guarde uma cópia fora deste servidor: sem ela ninguém consegue abrir estas cópias, nem mesmo o Torqvoice. Para voltar a ligar um armazenamento que já contém cópias de segurança do Torqvoice, introduza a palavra-passe com que foram feitas."
- },
- "settings": {
- "folder": "Pasta",
- "folderHelp": "A pasta, dentro da raiz de cópias de segurança do servidor, que guarda as cópias desta oficina. Deixe em branco para usar uma pasta com o nome desta oficina. Num servidor novo, escreva o nome da pasta usada por uma instalação anterior para recuperar as respetivas cópias.",
- "frequency": "Frequência",
- "frequencyHourly": "De hora a hora",
- "frequencyEvery4h": "De 4 em 4 horas",
- "frequencyDaily": "Todos os dias",
- "frequencyWeekly": "Todas as semanas",
- "frequencyMonthly": "Todos os meses",
- "time": "Hora do dia",
- "timeHelp": "No relógio da oficina, no formato HH:MM. Usada pelas cópias diárias, semanais e mensais.",
- "weekday": "Dia da semana",
- "sunday": "Domingo",
- "monday": "Segunda-feira",
- "tuesday": "Terça-feira",
- "wednesday": "Quarta-feira",
- "thursday": "Quinta-feira",
- "friday": "Sexta-feira",
- "saturday": "Sábado",
- "monthDay": "Dia do mês",
- "monthDayLast": "Último dia",
- "contents": "Conteúdo",
- "contentsHelp": "As chaves secretas são as que esta oficina introduziu no Torqvoice: chaves de pagamentos, de IA e de webhooks. Em qualquer caso, cada cópia é encriptada com a palavra-passe das cópias de segurança. Uma cópia contém os registos da oficina e, se o escolher, os respetivos ficheiros. As contas de utilizador e as palavras-passe não estão incluídas: num servidor novo, inicia sessão, convida a equipa e repõe os dados nessa oficina.",
- "contentsData": "Apenas dados",
- "contentsDataAndSecrets": "Dados e chaves secretas",
- "includeFiles": "Incluir fotografias e ficheiros",
- "includeFilesHelp": "Cada ficheiro é enviado uma vez e reutilizado pelas cópias seguintes, por isso custa pouco depois da primeira execução.",
- "keepHourly": "Manter cópias horárias",
- "keepHourlyHelp": "Quantas das cópias horárias mais recentes manter. Só conta nos agendamentos de hora a hora e de 4 em 4 horas.",
- "keepDaily": "Manter cópias diárias",
- "keepWeekly": "Manter cópias semanais",
- "keepMonthly": "Manter cópias mensais",
- "keepMonthlyHelp": "As cópias mais antigas são removidas após cada execução, mantendo as mais recentes de cada tipo. Defina um número como 0 para não manter nenhuma desse tipo."
- }
- }
- },
- "jobKinds": {
- "calendar": {
- "push": "Ordens de serviço para o calendário",
- "pull": "Horários ocupados do calendário"
- },
- "conference": {
- "sync": "Links de videochamada"
- },
- "inspection": {
- "refresh": "Atualização de datas de inspeção"
- },
- "accounting": {
- "invoice": "Fatura para a contabilidade",
- "payment": "Pagamento para a contabilidade",
- "customer": "Cliente para a contabilidade",
- "pull": "Pagamentos da contabilidade"
- },
- "safety": {
- "refresh": "Atualização dos dados de recall",
- "vehicle": "Verificação de recall para uma viatura nova"
- },
- "repair": {
- "checkPlan": "Verificar se as pesquisas guardadas podem ser mantidas"
- }
- },
- "backupAlerts": {
- "destination": "destino das cópias de segurança",
- "failedTitle": "A cópia de segurança falhou",
- "failedMessage": "A cópia de segurança para {name} não terminou: {reason}",
- "failedSubject": "A cópia de segurança para {name} falhou",
- "failedEmailIntro": "A cópia de segurança agendada da sua oficina para {name} não terminou.",
- "openToRetry": "Abra Definições, Integrações, {name} para ver a execução e tentar novamente.",
- "overdueTitle": "Cópia de segurança em atraso",
- "overdueSince": "Nenhuma cópia de segurança para {name} terminou desde {time}.",
- "overdueNever": "Ainda não terminou nenhuma cópia de segurança para {name}.",
- "overdueSubject": "A cópia de segurança para {name} está em atraso",
- "openToSee": "Abra Definições, Integrações, {name} para ver o que correu mal.",
- "platformName": "Cópias de segurança do Torqvoice",
- "restoredTitle": "Oficina reposta",
- "restoredSubject": "A sua oficina foi reposta a partir de uma cópia de segurança",
- "restoredIntro": "{name}: a oficina foi reposta no ponto de restauro {snapshot} em {time}. Tudo o que foi introduzido depois desse ponto já não está na oficina.",
- "restoredByMember": "Um membro da sua oficina pediu esta reposição.",
- "restoredBySupport": "O suporte do Torqvoice fez isto a seu pedido. Motivo indicado: {reason}",
- "noReason": "nenhum indicado",
- "restoredUndo": "Antes, foi feita uma cópia de proteção da oficina tal como estava imediatamente antes da reposição, que é guardada durante 90 dias. Contacte o suporte para voltar a ela."
- }
- }
|