integrations.json 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624
  1. {
  2. "catalog": {
  3. "title": "Integrações",
  4. "description": "Conecte os serviços que sua oficina já usa. Cada integração é configurada uma vez e funciona em segundo plano.",
  5. "all": "Todas",
  6. "empty": "Ainda não há integrações nesta categoria.",
  7. "notConnected": "Não conectada",
  8. "connect": "Conectar",
  9. "manage": "Gerenciar",
  10. "connectedTitle": "Conectados",
  11. "connectedDescription": "Serviços que esta oficina configurou. Abra um para ver o status, alterar configurações ou desconectar.",
  12. "noneConnected": "Nada conectado ainda. Escolha um serviço abaixo para começar.",
  13. "availableTitle": "Disponíveis",
  14. "availableDescription": "Serviços que você pode adicionar. Cada um é configurado uma vez e roda em segundo plano.",
  15. "allConnected": "Todos os serviços disponíveis estão conectados.",
  16. "searchPlaceholder": "Buscar integrações",
  17. "noMatches": "Nada corresponde a \"{query}\".",
  18. "readMore": "Saiba mais",
  19. "suggestTitle": "Falta um serviço que você usa?",
  20. "suggestDescription": "Conte para nós qual integração ajudaria sua oficina e vamos analisar.",
  21. "suggest": "Sugerir uma integração",
  22. "suggestSubject": "Sugestão de integração"
  23. },
  24. "categories": {
  25. "calendar": "Calendário",
  26. "conferencing": "Videochamadas",
  27. "accounting": "Contabilidade",
  28. "messaging": "Mensagens",
  29. "payments": "Pagamentos",
  30. "automation": "Automação",
  31. "storage": "Arquivos",
  32. "registry": "Registro de veículos",
  33. "other": "Outros",
  34. "ai": "IA"
  35. },
  36. "capabilities": {
  37. "calendar": {
  38. "push": "Ordens de serviço no calendário",
  39. "pull": "Horários ocupados do calendário",
  40. "conference": "Links de videochamada"
  41. },
  42. "sms": {
  43. "send": "Envio de SMS",
  44. "receive": "Recebimento de respostas"
  45. },
  46. "whatsapp": {
  47. "send": "Envio de mensagens no WhatsApp",
  48. "receive": "Recebimento de respostas"
  49. },
  50. "telegram": {
  51. "send": "Envio de mensagens no Telegram",
  52. "receive": "Recebimento de respostas"
  53. },
  54. "email": {
  55. "send": "Envio de e-mail"
  56. },
  57. "vehicle": {
  58. "lookup": "Consulta por placa e VIN",
  59. "inspection": "Datas de inspeção",
  60. "safety": "Recalls e reclamações de proprietários"
  61. },
  62. "ai": {
  63. "chat": "Textos e resumos",
  64. "transcribe": "Ditado"
  65. },
  66. "payments": {
  67. "checkout": "Pagar pelo link da fatura"
  68. },
  69. "accounting": {
  70. "invoices": "Faturas para a contabilidade",
  71. "customers": "Clientes para a contabilidade",
  72. "payments": "Pagamentos nos dois sentidos"
  73. }
  74. },
  75. "statuses": {
  76. "active": "Conectada",
  77. "error": "Precisa de atenção",
  78. "pending": "Configuração em andamento",
  79. "disconnected": "Desconectada",
  80. "needsSetup": "Configuração incompleta"
  81. },
  82. "connection": {
  83. "back": "Todas as integrações",
  84. "account": "Conta conectada",
  85. "lastHealth": "Última verificação",
  86. "lastSync": "Última sincronização",
  87. "lastError": "A última execução falhou",
  88. "setupMissingTitle": "Configuração incompleta",
  89. "setupMissing": "Escolha {fields} nas configurações abaixo. Até lá nada é sincronizado.",
  90. "connected": "{name} está conectado.",
  91. "connectedShort": "Conectado",
  92. "connectWith": "Conectar {name}",
  93. "connect": "Conectar",
  94. "reconnect": "Reconectar",
  95. "disconnect": "Desconectar",
  96. "disconnectTitle": "Desconectar {name}?",
  97. "disconnectDescription": "O Torqvoice esquece a conta e para de usá-la. Nada já enviado para o {name} ou guardado lá é tocado.",
  98. "disconnectDescriptionCalendar": "O Torqvoice esquece a conta e para de sincronizar. Ordens de serviço já colocadas no {name} ficam lá. O tempo ocupado mostrado a partir desse calendário é removido do calendário do Torqvoice.",
  99. "disconnectDescriptionConferencing": "O Torqvoice esquece a conta e para de criar reuniões. Reuniões já criadas ficam no {name} e os links nas ordens de serviço são mantidos.",
  100. "disconnectDescriptionAccounting": "O Torqvoice esquece a conta e para de enviar e ler. Faturas, clientes e pagamentos já no {name} ficam lá.",
  101. "removeSetup": "Remover",
  102. "removeSetupTitle": "Remover {name}?",
  103. "removeSetupDescription": "Nada está conectado ainda. O Torqvoice esquece o que foi preenchido e {name} volta para a lista de serviços disponíveis.",
  104. "removeSetupDone": "{name} removido",
  105. "removeSetupHint": "Não vai seguir com isso? Remova e o serviço volta para a lista abaixo.",
  106. "disconnected": "Desconectado",
  107. "test": "Testar conexão",
  108. "testPassed": "A conexão funciona",
  109. "syncNow": "Sincronizar agora",
  110. "syncQueued": "Sincronização na fila; será executada em até um minuto",
  111. "pullNow": "Buscar pagamentos agora",
  112. "pullQueued": "Busca de pagamentos na fila; será executada em até um minuto",
  113. "backfill": "Enviar ordens de serviço agendadas",
  114. "backfillQueued": "Ordens de serviço agendadas a partir da semana passada colocadas na fila",
  115. "backfillInvoices": "Enviar faturas emitidas",
  116. "backfillInvoicesQueuedCount": "{count, plural, one {# fatura emitida} other {# faturas emitidas}} na fila para envio",
  117. "backfillInvoicesNone": "Nenhuma fatura emitida para enviar. Só passam faturas enviadas, compartilhadas ou pagas, a partir da data inicial se você definiu uma.",
  118. "retryQueued": "Tarefa colocada na fila novamente",
  119. "settingsTitle": "Configurações",
  120. "settingsDescription": "O que sincronizar e para onde. As alterações valem a partir da próxima sincronização.",
  121. "settingsSaved": "Configurações salvas",
  122. "save": "Salvar",
  123. "loading": "Carregando...",
  124. "choose": "Escolher...",
  125. "search": "Buscar...",
  126. "noMatch": "Nada encontrado",
  127. "leaveEmpty": "Deixar vazio",
  128. "noLimit": "Sem limite",
  129. "planLocked": "As integrações não estão incluídas no seu plano.",
  130. "lockedIntegrations": "Conecte calendários, videochamadas e outros serviços à sua oficina.",
  131. "lockedPayments": "Permita que os clientes paguem suas faturas online, com cada pagamento lançado na fatura.",
  132. "lockedAi": "Conecte um provedor de IA para usar recursos de IA na sua oficina.",
  133. "ownAppTitle": "Esta instalação usa seu próprio aplicativo junto ao provedor",
  134. "redirectUri": "URI de redirecionamento para registrar no provedor:",
  135. "sendTestEmail": "Enviar e-mail de teste",
  136. "testEmailSent": "E-mail de teste enviado para {email}",
  137. "testEmailHint": "Um e-mail de teste vai para o seu próprio endereço por este provedor, o que comprova o endereço de remetente e as regras de envio que uma verificação de chave não consegue.",
  138. "inboundUrl": "URL do webhook de entrada",
  139. "inboundHintSecret": "Cole esta URL nas configurações de mensagens recebidas do provedor. Ela contém um segredo que identifica sua oficina, então mantenha-a em sigilo.",
  140. "inboundHintMeta": "Cole esta URL como URL de callback no seu app da Meta, com o token de verificação que você informou acima, e inscreva-se em mensagens.",
  141. "inboundHintStripe": "Adicione esta URL no painel do Stripe em Developers, Webhooks, inscrita em checkout.session.completed. Depois cole o segredo de assinatura que o Stripe mostra no campo de segredo do webhook aqui, para que as notificações possam ser verificadas.",
  142. "inboundHintVipps": "Informe esta URL como URL de callback no portal do Vipps MobilePay. O Vipps também exige termos de venda publicados, definidos em Configurações, Pagamento.",
  143. "inboundHintPaypal": "Adicione esta URL no painel de desenvolvedor do PayPal em Webhooks, inscrita em PAYMENT.CAPTURE.COMPLETED.",
  144. "copy": "Copiar",
  145. "copied": "Copiado",
  146. "updateKeys": "Atualizar chaves",
  147. "updateKeysHint": "A última verificação falhou. Informe as chaves novamente para tentar outra vez.",
  148. "inspectionSync": {
  149. "title": "Sincronização de inspeções",
  150. "vehicles": "{count} veículos com placa nesta oficina",
  151. "dueNow": "{count} seriam consultados na próxima execução",
  152. "withDate": "{count} já têm data de inspeção",
  153. "lastPass": "Última passagem completa {date}",
  154. "never": "Nenhuma passagem completa ainda",
  155. "inProgress": "Uma passagem está em andamento",
  156. "off": "Ative a opção e salve; até lá uma passagem não verifica nada.",
  157. "syncNowHelp": "Sincronizar agora inicia uma passagem imediatamente em vez de esperar a de hora em hora. Consulta 25 veículos por vez e continua sozinha até terminar todos os veículos pendentes."
  158. },
  159. "supersedes": "Conectar a {next} desconecta a {current}. Só uma pode estar ativa por vez, então {current} deixa de ser usada assim que {next} entrar no ar.",
  160. "batchRetried": "{count, plural, =0 {Nada para tentar de novo} one {# tarefa de volta à fila} other {# tarefas de volta à fila}}",
  161. "advanced": "Avançado"
  162. },
  163. "activity": {
  164. "title": "Atividade",
  165. "description": "Tarefas recentes e linhas de log desta conexão.",
  166. "retry": "Tentar novamente",
  167. "jobStatus": {
  168. "queued": "Na fila",
  169. "running": "Em execução",
  170. "done": "Concluída",
  171. "failed": "Falhou",
  172. "dead": "Desistiu"
  173. },
  174. "jobs": "{count, plural, one {# tarefa} other {# tarefas}}",
  175. "counts": {
  176. "queued": "{count} na fila",
  177. "running": "{count} em andamento",
  178. "done": "{count} concluídas",
  179. "failed": "{count} com falha",
  180. "dead": "{count} desistidas"
  181. },
  182. "noFailures": "Nada falhou.",
  183. "retryFailed": "Tentar as com falha de novo",
  184. "details": "Mostrar detalhes"
  185. },
  186. "errors": {
  187. "generic": "Algo deu errado",
  188. "demo": "Não é possível conectar integrações na demonstração.",
  189. "forbidden": "Somente um administrador pode conectar integrações.",
  190. "unknown": "Integração desconhecida.",
  191. "plan": "Esta integração não está incluída no seu plano.",
  192. "no-client": "Nenhuma credencial de aplicativo está configurada para este provedor.",
  193. "denied": "Você cancelou o login no provedor.",
  194. "vendor": "O provedor retornou um erro. Tente novamente.",
  195. "invalid": "A resposta do provedor estava incompleta. Tente novamente.",
  196. "state": "Este login expirou ou pertence a outra sessão. Comece de novo.",
  197. "exchange": "O provedor recusou o login. Verifique as credenciais do aplicativo e tente novamente.",
  198. "identify": "Conectado, mas não foi possível ler a conta. Tente reconectar."
  199. },
  200. "meeting": {
  201. "join": "Entrar na videochamada",
  202. "google-meet": "Google Meet",
  203. "teams": "Microsoft Teams",
  204. "zoom": "Zoom"
  205. },
  206. "calendar": {
  207. "external": "De calendários conectados",
  208. "busy": "Ocupado"
  209. },
  210. "connectors": {
  211. "google-calendar": {
  212. "description": "Coloque as ordens de serviço agendadas em um Google Calendar, adicione um link do Google Meet e veja os horários ocupados do calendário no Torqvoice.",
  213. "tenantHelp": "Crie um cliente OAuth no 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.",
  214. "fields": {
  215. "clientId": "ID do cliente",
  216. "clientSecret": "Segredo do cliente"
  217. },
  218. "settings": {
  219. "calendarId": "Calendário",
  220. "pushEnabled": "Adicionar ordens de serviço agendadas a este calendário",
  221. "includeCustomer": "Incluir o nome e o telefone do cliente no evento",
  222. "addConference": "Adicionar uma reunião do Google Meet a cada ordem de serviço agendada",
  223. "addConferenceHelp": "Ligado: cada ordem de serviço enviada à agenda recebe uma reunião do Google Meet, e o link aparece na ordem. Desligado: adicione uma reunião do Google Meet a uma ordem específica pela página dela. De qualquer forma o cliente só recebe o link quando você o envia.",
  224. "pullEnabled": "Mostrar os horários ocupados deste calendário no calendário do Torqvoice",
  225. "pullEnabledHelp": "Somente leitura. Atualizado a cada 15 minutos, uma semana para trás e dois meses para a frente."
  226. }
  227. },
  228. "microsoft-365": {
  229. "description": "Coloque as ordens de serviço agendadas em um calendário do Outlook, adicione um link do Microsoft Teams e veja os horários ocupados do calendário no Torqvoice.",
  230. "tenantHelp": "Registre um aplicativo no Microsoft Entra (Registros de aplicativo), permita contas pessoais e corporativas, adicione o URI de redirecionamento abaixo como plataforma Web, crie um segredo do cliente e cole os dois aqui.",
  231. "fields": {
  232. "clientId": "ID do aplicativo (cliente)",
  233. "clientSecret": "Segredo do cliente"
  234. },
  235. "settings": {
  236. "calendarId": "Calendário",
  237. "pushEnabled": "Adicionar ordens de serviço agendadas a este calendário",
  238. "includeCustomer": "Incluir o nome e o telefone do cliente no evento",
  239. "addConference": "Adicionar uma reunião do Microsoft Teams a cada ordem de serviço agendada",
  240. "addConferenceHelp": "Ligado: cada ordem de serviço enviada à agenda recebe uma reunião do Microsoft Teams, e o link aparece na ordem. Desligado: adicione uma reunião do Microsoft Teams a uma ordem específica pela página dela. De qualquer forma o cliente só recebe o link quando você o envia.",
  241. "pullEnabled": "Mostrar os horários ocupados deste calendário no calendário do Torqvoice",
  242. "pullEnabledHelp": "Somente leitura. Atualizado a cada 15 minutos, uma semana para trás e dois meses para a frente."
  243. }
  244. },
  245. "zoom": {
  246. "description": "Adicione uma reunião do Zoom a uma ordem de serviço agendada e mantenha o link nela, para diagnóstico remoto ou para mostrar as constatações ao cliente.",
  247. "tenantHelp": "No Zoom App Marketplace, crie um app General (user-managed), adicione a URI de redirecionamento abaixo, adicione os escopos 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.",
  248. "fields": {
  249. "clientId": "ID do cliente",
  250. "clientSecret": "Segredo do cliente"
  251. },
  252. "settings": {
  253. "autoCreate": "Criar uma reunião do Zoom automaticamente para cada ordem de serviço agendada",
  254. "autoCreateHelp": "Desligado: você adiciona a videochamada à ordem de serviço pela página dela. Ligado: toda ordem com horário de início recebe uma reunião, movida ao reagendar e removida ao cancelar. Em ambos os casos o cliente só recebe o link quando você envia.",
  255. "includeCustomer": "Incluir o nome do cliente no tópico da reunião",
  256. "joinBeforeHost": "Permitir que o cliente entre antes de você",
  257. "waitingRoom": "Usar sala de espera"
  258. }
  259. },
  260. "twilio-sms": {
  261. "description": "Envie e receba SMS por um número da Twilio. Lembretes, avisos de veículo pronto para retirada e as respostas que chegam.",
  262. "fields": {
  263. "accountSid": "Account SID",
  264. "authToken": "Token de autenticação"
  265. },
  266. "settings": {
  267. "phoneNumber": "Enviar deste número"
  268. }
  269. },
  270. "vonage-sms": {
  271. "description": "Envie e receba SMS por um número da Vonage.",
  272. "fields": {
  273. "apiKey": "Chave de API",
  274. "apiSecret": "Segredo da API",
  275. "signatureSecret": "Segredo de assinatura",
  276. "signatureSecretHelp": "No painel da Vonage, em API settings. Quando definido, mensagens recebidas só são aceitas se a Vonage as tiver assinado. Sem ele, só o segredo na URL do webhook é verificado."
  277. },
  278. "settings": {
  279. "phoneNumber": "Enviar deste número"
  280. }
  281. },
  282. "telnyx-sms": {
  283. "description": "Envie e receba SMS por um número da Telnyx.",
  284. "fields": {
  285. "apiKey": "Chave de API",
  286. "webhookPublicKey": "Chave pública do webhook",
  287. "webhookPublicKeyHelp": "No portal da Telnyx, em Account settings, Keys and credentials, Public key. Quando definida, mensagens recebidas só são aceitas se a Telnyx as tiver assinado. Sem ela, só o segredo na URL do webhook é verificado."
  288. },
  289. "settings": {
  290. "phoneNumber": "Enviar deste número"
  291. }
  292. },
  293. "whatsapp-meta": {
  294. "description": "Converse com os clientes no WhatsApp diretamente pela Meta. Fotos do que você encontrou e a conversa que vem depois.",
  295. "fields": {
  296. "phoneNumberId": "ID do número de telefone",
  297. "accessToken": "Token de acesso",
  298. "verifyToken": "Token de verificação do webhook",
  299. "appSecret": "Segredo do app",
  300. "apiVersion": "Versão da Graph API",
  301. "appSecretHelp": "A Meta assina cada entrega com ele. Até ele ser informado, as mensagens enviadas ao webhook são recusadas, já que qualquer pessoa que descobrisse a URL poderia se passar pelos seus clientes."
  302. },
  303. "settings": {
  304. "enabled": "Enviar mensagens por este canal",
  305. "phoneNumber": "Enviar deste número",
  306. "templateName": "Modelo para reabrir uma conversa",
  307. "templateLanguage": "Idioma do modelo",
  308. "templateVariables": "Valores do modelo, em ordem",
  309. "mediaTemplateName": "Modelo para uma mensagem com foto",
  310. "mediaTemplateLanguage": "Idioma do modelo com foto",
  311. "mediaTemplateVariables": "Valores do modelo com foto, em ordem"
  312. }
  313. },
  314. "whatsapp-twilio": {
  315. "description": "Converse com os clientes no WhatsApp por um número da Twilio, se foi a Twilio que forneceu o seu.",
  316. "fields": {
  317. "accountSid": "Account SID",
  318. "authToken": "Token de autenticação",
  319. "messagingServiceSid": "SID do serviço de mensagens"
  320. },
  321. "settings": {
  322. "enabled": "Enviar mensagens por este canal",
  323. "phoneNumber": "Enviar deste número",
  324. "templateName": "Modelo para reabrir uma conversa",
  325. "templateLanguage": "Idioma do modelo",
  326. "templateVariables": "Valores do modelo, em ordem",
  327. "mediaTemplateName": "Modelo para uma mensagem com foto",
  328. "mediaTemplateLanguage": "Idioma do modelo com foto",
  329. "mediaTemplateVariables": "Valores do modelo com foto, em ordem"
  330. }
  331. },
  332. "telegram": {
  333. "description": "Um bot do Telegram que alcança os clientes que usam o app e traz as respostas deles para a caixa de entrada.",
  334. "fields": {
  335. "botToken": "Token do bot"
  336. },
  337. "settings": {
  338. "enabled": "Enviar mensagens por este canal",
  339. "botUsername": "Nome de usuário do bot"
  340. }
  341. },
  342. "smtp": {
  343. "description": "Envie faturas e lembretes pelo seu próprio servidor de e-mail, em vez do e-mail da plataforma.",
  344. "fields": {
  345. "host": "Servidor",
  346. "port": "Porta",
  347. "user": "Nome de usuário",
  348. "pass": "Senha"
  349. },
  350. "settings": {
  351. "fromEmail": "Enviar deste endereço",
  352. "fromName": "Nome exibido como remetente",
  353. "secure": "Conectar via TLS desde o início",
  354. "requireTls": "Exigir que o servidor passe para TLS",
  355. "rejectUnauthorized": "Recusar um certificado que não seja válido"
  356. }
  357. },
  358. "resend": {
  359. "description": "Envie faturas e lembretes pelo Resend.",
  360. "fields": {
  361. "apiKey": "Chave de API"
  362. },
  363. "settings": {
  364. "fromEmail": "Enviar deste endereço",
  365. "fromName": "Nome exibido como remetente"
  366. }
  367. },
  368. "postmark": {
  369. "description": "Envie faturas e lembretes pelo Postmark.",
  370. "fields": {
  371. "apiKey": "Token do servidor"
  372. },
  373. "settings": {
  374. "fromEmail": "Enviar deste endereço",
  375. "fromName": "Nome exibido como remetente"
  376. }
  377. },
  378. "mailgun": {
  379. "description": "Envie faturas e lembretes pelo Mailgun.",
  380. "fields": {
  381. "apiKey": "Chave de API",
  382. "domain": "Domínio de envio"
  383. },
  384. "settings": {
  385. "fromEmail": "Enviar deste endereço",
  386. "fromName": "Nome exibido como remetente",
  387. "region": "Região do domínio"
  388. }
  389. },
  390. "sendgrid": {
  391. "description": "Envie faturas e lembretes pelo SendGrid.",
  392. "fields": {
  393. "apiKey": "Chave de API"
  394. },
  395. "settings": {
  396. "fromEmail": "Enviar deste endereço",
  397. "fromName": "Nome exibido como remetente"
  398. }
  399. },
  400. "amazon-ses": {
  401. "description": "Envie faturas e lembretes pelo Amazon SES.",
  402. "fields": {
  403. "accessKeyId": "ID da chave de acesso",
  404. "secretAccessKey": "Chave de acesso secreta",
  405. "region": "Região"
  406. },
  407. "settings": {
  408. "fromEmail": "Enviar deste endereço",
  409. "fromName": "Nome exibido como remetente"
  410. }
  411. },
  412. "vegvesen": {
  413. "description": "Preencha um veículo a partir da placa ou do VIN norueguês: marca, modelo, ano, combustível, câmbio, motor, cor, medidas dos pneus e a data do próximo EU-kontroll, direto do registro da Statens vegvesen. Nenhum dado do proprietário é retornado.",
  414. "fields": {
  415. "apiKey": "Chave de API",
  416. "apiKeyHelp": "Gratuita. Solicite a chave em vegvesen.no, em \"API for tekniske kjøretøyopplysninger\": entre com BankID, represente a oficina e a chave é emitida na hora. Ela permite 50.000 consultas por dia."
  417. },
  418. "settings": {
  419. "syncInspections": "Manter as datas de inspeção de todos os veículos desta oficina atualizadas",
  420. "syncInspectionsHelp": "Uma vez por hora, veículos não verificados recentemente são consultados pela placa e a próxima data de EU-kontroll é salva. Só veículos desta oficina são enviados. Um veículo é verificado mensalmente, e semanalmente quando o prazo está a menos de dois meses."
  421. }
  422. },
  423. "openapi-automotive": {
  424. "description": "Preencha um veículo a partir da placa francesa, italiana, espanhola, portuguesa ou britânica: marca, modelo, ano, VIN, combustível, cilindrada e mais, dos dados de registro do país via Openapi.com. Cada consulta é cobrada na conta Openapi da própria oficina. Nenhum dado do proprietário é retornado.",
  425. "fields": {
  426. "token": "Token de API",
  427. "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 algumas dezenas de centavos; uma sem resultado é gratuita."
  428. },
  429. "settings": {
  430. "country": "País",
  431. "countryHelp": "O registro a consultar. Placas francesas e italianas têm o mesmo formato, então o país não pode ser deduzido da placa.",
  432. "bikes": "Consultar também motocicletas",
  433. "bikesHelp": "Quando uma placa não é de carro, o registro de motocicletas também é consultado. Uma consulta de carro sem resultado é gratuita, então não custa nada a mais a menos que uma motocicleta seja encontrada. Indisponível para Portugal."
  434. }
  435. },
  436. "rdw": {
  437. "description": "Preencha um veículo a partir da placa holandesa: marca, modelo, ano, combustível, cilindrada, cor, pesos e a próxima data de APK, direto do registro aberto de veículos da RDW. Gratuito, sem chave. Dados do proprietário e VIN não são publicados.",
  438. "fields": {
  439. "appToken": "Token de aplicativo (opcional)",
  440. "appTokenHelp": "Os dados abertos da RDW funcionam sem chave, mas as requisições anônimas compartilham uma cota limitada. Para a sincronização de inspeções, crie uma conta gratuita em opendata.rdw.nl, abra as configurações de desenvolvedor do seu perfil e crie um token de aplicativo."
  441. },
  442. "settings": {
  443. "syncInspections": "Manter as datas de APK de todos os veículos desta oficina atualizadas",
  444. "syncInspectionsHelp": "Uma vez por hora, veículos não verificados recentemente são consultados pela placa e a próxima data de APK é salva. Só veículos desta oficina são enviados. Um veículo é verificado mensalmente, e semanalmente quando o prazo está a menos de dois meses."
  445. }
  446. },
  447. "regcheck": {
  448. "description": "Preencha um veículo a partir da placa na Austrália, Nova Zelândia, Estados Unidos, Irlanda, Noruega, Suécia, Dinamarca, Finlândia, Estônia, Tchéquia, Eslováquia, Hungria ou Croácia: marca, modelo, ano, VIN, combustível e cilindrada quando o país os publica, via RegCheck. Cada consulta bem-sucedida gasta um crédito da conta RegCheck da própria oficina. Nenhum dado do proprietário é retornado.",
  449. "fields": {
  450. "username": "Usuário RegCheck",
  451. "usernameHelp": "Cadastre-se em regcheck.org.uk; a conta vem com 10 consultas gratuitas e as demais são compradas em blocos de 100 pelo painel. Aqui só é preciso o usuário, nunca a senha. Uma placa não encontrada não custa nada."
  452. },
  453. "settings": {
  454. "country": "País",
  455. "countryHelp": "O registro a consultar. Cada país tem seu próprio serviço, então a conexão consulta um.",
  456. "auState": "Estado ou território",
  457. "auStateHelp": "A Austrália registra veículos por estado e o registro precisa saber qual consultar. Escolha onde a maioria dos veículos dos seus clientes está registrada.",
  458. "usState": "Estado",
  459. "usStateHelp": "O código de duas letras do estado em que os veículos estão registrados, como CA ou TX. Os registros americanos são consultados por estado."
  460. }
  461. },
  462. "openai": {
  463. "description": "Descrições de serviço, resumos de histórico, leitura de documentos e o assistente, respondidos pela sua própria conta OpenAI. Cada chamada é cobrada nessa conta, e você escolhe o modelo.",
  464. "fields": {
  465. "apiKey": "Chave de API",
  466. "apiKeyHelp": "Crie uma em platform.openai.com, em API keys. A conta precisa de saldo; a OpenAI cobra por chamada."
  467. },
  468. "settings": {
  469. "model": "Modelo",
  470. "modelHelp": "Qual modelo responde. A lista vem da sua conta, os mais novos primeiro. Modelos menores custam menos por chamada e bastam para a maior parte dos textos da oficina."
  471. }
  472. },
  473. "anthropic": {
  474. "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 chamada é cobrada nessa conta, e você escolhe o modelo.",
  475. "fields": {
  476. "apiKey": "Chave de API",
  477. "apiKeyHelp": "Crie uma em console.anthropic.com, em API keys. A conta precisa de saldo; a Anthropic cobra por chamada."
  478. },
  479. "settings": {
  480. "model": "Modelo",
  481. "modelHelp": "Qual modelo responde. A lista vem da sua conta, os mais novos primeiro. Modelos menores custam menos por chamada e bastam para a maior parte dos textos da oficina."
  482. }
  483. },
  484. "openai-compatible": {
  485. "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 afins. Seus dados ficam no seu próprio hardware.",
  486. "fields": {
  487. "baseUrl": "URL base",
  488. "baseUrlHelp": "Onde começa a API no 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.",
  489. "apiKey": "Chave de API",
  490. "apiKeyHelp": "Só se o servidor pedir uma. Ollama e vLLM costumam rodar sem chave; o Open WebUI emite uma em Configurações, Conta."
  491. },
  492. "settings": {
  493. "model": "Modelo",
  494. "modelHelp": "Qual modelo responde. A lista é tudo o que o servidor informa, por nome. Use um modelo com visão se quiser que fotos sejam lidas."
  495. }
  496. },
  497. "stripe": {
  498. "description": "Pagamentos com cartão pelo link da fatura, na sua própria conta Stripe. O cliente paga, o Stripe avisa a Torqvoice e a fatura se marca como paga sozinha.",
  499. "fields": {
  500. "secretKey": "Chave secreta",
  501. "secretKeyHelp": "Do painel do Stripe em Developers, API keys. Chaves de teste não processam nada real, então teste um pagamento com elas primeiro e troque pelas chaves reais depois.",
  502. "publishableKey": "Chave publicável",
  503. "webhookSecret": "Segredo de assinatura do webhook",
  504. "webhookSecretHelp": "Mostrado pelo Stripe quando você adiciona a URL de notificação desta página como webhook. Com ele, cada notificação é verificada antes de registrar um pagamento."
  505. },
  506. "settings": {
  507. "enabled": "Oferecer nos links de fatura",
  508. "enabledHelp": "Desative para tirar o botão de pagamento das faturas compartilhadas por um tempo, sem desconectar. Pagamentos já iniciados continuam sendo registrados."
  509. }
  510. },
  511. "vipps": {
  512. "description": "Vipps MobilePay pelo link da fatura. O cliente paga no app que já tem e a fatura se marca como paga sozinha.",
  513. "fields": {
  514. "clientId": "ID do cliente",
  515. "clientSecret": "Segredo do cliente",
  516. "subscriptionKey": "Chave de assinatura",
  517. "subscriptionKeyHelp": "A Ocp-Apim-Subscription-Key do portal do Vipps MobilePay, nas chaves de API da unidade de venda.",
  518. "merchantSerialNumber": "Número de série do comerciante"
  519. },
  520. "settings": {
  521. "enabled": "Oferecer nos links de fatura",
  522. "enabledHelp": "Desative para tirar o botão de pagamento das faturas compartilhadas por um tempo, sem desconectar. Pagamentos já iniciados continuam sendo registrados.",
  523. "testMode": "Modo de teste",
  524. "testModeHelp": "Usar o ambiente de teste do Vipps com chaves de teste. Deixe ligado até um pagamento completo funcionar, depois desligue e informe as chaves reais."
  525. }
  526. },
  527. "paypal": {
  528. "description": "Checkout do PayPal pelo link da fatura, pelo seu próprio app do PayPal. O cliente paga com conta PayPal ou cartão e a fatura se marca como paga sozinha.",
  529. "fields": {
  530. "clientId": "ID do cliente",
  531. "clientSecret": "Segredo do cliente"
  532. },
  533. "settings": {
  534. "enabled": "Oferecer nos links de fatura",
  535. "enabledHelp": "Desative para tirar o botão de pagamento das faturas compartilhadas por um tempo, sem desconectar. Pagamentos já iniciados continuam sendo registrados.",
  536. "sandbox": "Modo sandbox",
  537. "sandboxHelp": "Usar o sandbox do PayPal com as chaves do app de sandbox. Deixe ligado até um pagamento completo funcionar, depois desligue e informe as chaves do app real."
  538. }
  539. },
  540. "quickbooks": {
  541. "description": "Envie faturas emitidas, seus clientes e seus pagamentos para o QuickBooks Online e traga de volta os pagamentos registrados lá.",
  542. "tenantHelp": "Crie um app no portal de desenvolvedores da Intuit. Copie o client id e o secret em Keys and credentials e informe a URI de redirecionamento abaixo em Settings, Redirect URIs. Chaves de desenvolvimento alcançam empresas sandbox, chaves de produção as reais.",
  543. "fields": {
  544. "clientId": "ID do cliente",
  545. "clientSecret": "Segredo do cliente"
  546. },
  547. "settings": {
  548. "pushInvoices": "Enviar faturas emitidas para o QuickBooks",
  549. "pushOnComplete": "Enviar faturas também quando o serviço for marcado como concluído",
  550. "pushOnCompleteHelp": "Sem isso, uma fatura vai quando é enviada, compartilhada ou paga. Com isso, um serviço concluído vai na hora e é atualizado se mudar.",
  551. "startDate": "Somente faturas com data a partir de",
  552. "startDateHelp": "Deixe vazio para enviar toda fatura emitida. Use a data em que sua contabilidade passou para o QuickBooks para não lançar faturas antigas duas vezes.",
  553. "includeVehicle": "Indicar o veículo na fatura",
  554. "includeVehicleHelp": "Uma linha de texto acima dos itens com ano, marca, modelo, placa e quilometragem, para que a contabilidade saiba de qual carro se trata.",
  555. "laborItemId": "Item para linhas de mão de obra",
  556. "laborItemIdHelp": "Deixe vazio e um item chamado Labour será criado na sua conta de receita na primeira vez.",
  557. "partsItemId": "Item para linhas de peças",
  558. "partsItemIdHelp": "Deixe vazio e um item chamado Parts será criado na sua conta de receita na primeira vez.",
  559. "taxAmounts": "Valores de imposto",
  560. "taxAmountsHelp": "Como faturado envia o imposto exatamente como consta na fatura que o cliente recebeu, então os dois sistemas batem ao centavo. Calculado pelo QuickBooks deixa o QuickBooks aplicar a alíquota do código de imposto, ou o endereço do cliente nos EUA, e o registro avisa quando os totais diferem.",
  561. "taxAmountsBilled": "Como faturado no Torqvoice",
  562. "taxAmountsQuickbooks": "Calculado pelo QuickBooks",
  563. "taxCodeId": "Código de imposto para faturas tributáveis",
  564. "taxCodeIdHelp": "O QuickBooks lança o imposto sob um código de imposto. O Torqvoice escolhe o código cuja alíquota bate com cada fatura; este é usado quando nenhum bate. Uma empresa dos EUA usa TAX, a menos que você escolha outro código.",
  565. "zeroTaxCodeId": "Código de imposto para faturas sem imposto",
  566. "zeroTaxCodeIdHelp": "Usado quando a fatura não tem imposto ou o cliente é isento. Uma empresa dos EUA usa NON, a menos que você escolha outro código.",
  567. "pushPayments": "Registrar pagamentos no QuickBooks",
  568. "depositAccountId": "Depositar pagamentos em",
  569. "depositAccountIdHelp": "Deixe vazio para usar Undeposited Funds.",
  570. "manualPaidAsPayment": "Registrar um pagamento quando uma fatura for marcada como paga manualmente",
  571. "manualPaidAsPaymentHelp": "Uma fatura marcada como paga no Torqvoice sem lançamento de pagamento recebe no QuickBooks um pagamento pelo valor que ainda consta em aberto lá. Desligado, ela fica aberta lá até que um pagamento seja registrado.",
  572. "pullPayments": "Trazer de volta pagamentos registrados no QuickBooks",
  573. "pullPaymentsHelp": "A cada 30 minutos. Um pagamento recebido no QuickBooks para uma fatura do Torqvoice é registrado aqui na fatura."
  574. }
  575. },
  576. "nhtsa": {
  577. "description": "Preencha um veículo a partir do VIN e veja recalls, reclamações de proprietários e notas de testes de colisão de cada ano-modelo, da autoridade de segurança dos EUA. Grátis, sem chave.",
  578. "fields": {},
  579. "settings": {
  580. "refreshFleet": "Manter os dados de recalls e reclamações atualizados para todos os veículos desta oficina",
  581. "refreshFleetHelp": "Uma vez por dia, os modelos não atualizados na última semana são buscados de novo, para que a página do veículo nunca espere e um novo recall apareça em até uma semana. Só marca, modelo e ano são enviados."
  582. }
  583. },
  584. "speech-to-text": {
  585. "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. É separado do seu provedor de IA, então você pode manter esse como está. Usa a sua própria chave da OpenAI ou um servidor próprio que fale a API de transcrição da OpenAI. A gravação é enviada para ser transcrita e não é guardada.",
  586. "fields": {
  587. "apiKey": "Chave de API",
  588. "apiKeyHelp": "Uma chave da OpenAI, criada em platform.openai.com, em API keys; a OpenAI cobra o uso por minuto. Para um servidor próprio, só se ele pedir uma.",
  589. "baseUrl": "Endereço do servidor",
  590. "baseUrlHelp": "Deixe vazio para usar a OpenAI. Para um servidor próprio (um Whisper local, LocalAI, Groq), informe onde começa a API no estilo da OpenAI, incluindo o caminho, por exemplo /v1. O Torqvoice acrescenta /audio/transcriptions a esse endereço."
  591. },
  592. "settings": {
  593. "model": "Modelo",
  594. "modelHelp": "O modelo de voz a ser usado. gpt-4o-mini-transcribe é preciso e barato; gpt-4o-transcribe é o maior. Um servidor próprio geralmente responde a whisper-1.",
  595. "mode": "Quem escolhe como o ditado é transcrito",
  596. "modeHelp": "O navegador escreve enquanto você fala, mas é mais fraco, principalmente em idiomas menos falados. O modelo de voz escreve quando você para.",
  597. "modeAi": "Sempre o modelo de voz",
  598. "modeChoice": "Cada pessoa escolhe: modelo de voz ou navegador"
  599. }
  600. }
  601. },
  602. "jobKinds": {
  603. "calendar": {
  604. "push": "Ordens de serviço para o calendário",
  605. "pull": "Horários ocupados do calendário"
  606. },
  607. "conference": {
  608. "sync": "Links de videochamada"
  609. },
  610. "inspection": {
  611. "refresh": "Atualização de datas de inspeção"
  612. },
  613. "accounting": {
  614. "invoice": "Fatura para a contabilidade",
  615. "payment": "Pagamento para a contabilidade",
  616. "customer": "Cliente para a contabilidade",
  617. "pull": "Pagamentos da contabilidade"
  618. },
  619. "safety": {
  620. "refresh": "Atualização dos dados de recall",
  621. "vehicle": "Verificação de recall para um veículo novo"
  622. }
  623. }
  624. }