integrations.json 64 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987
  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. "repair": "Dados de reparo",
  34. "other": "Outros",
  35. "ai": "IA"
  36. },
  37. "capabilities": {
  38. "calendar": {
  39. "push": "Ordens de serviço no calendário",
  40. "pull": "Horários ocupados do calendário",
  41. "conference": "Links de videochamada"
  42. },
  43. "sms": {
  44. "send": "Envio de SMS",
  45. "receive": "Recebimento de respostas"
  46. },
  47. "whatsapp": {
  48. "send": "Envio de mensagens no WhatsApp",
  49. "receive": "Recebimento de respostas"
  50. },
  51. "telegram": {
  52. "send": "Envio de mensagens no Telegram",
  53. "receive": "Recebimento de respostas"
  54. },
  55. "email": {
  56. "send": "Envio de e-mail"
  57. },
  58. "vehicle": {
  59. "lookup": "Consulta por placa e VIN",
  60. "inspection": "Datas de inspeção",
  61. "safety": "Recalls e reclamações de proprietários"
  62. },
  63. "ai": {
  64. "chat": "Textos e resumos",
  65. "transcribe": "Ditado"
  66. },
  67. "payments": {
  68. "checkout": "Pagar pelo link da fatura"
  69. },
  70. "accounting": {
  71. "invoices": "Faturas para a contabilidade",
  72. "customers": "Clientes para a contabilidade",
  73. "payments": "Pagamentos nos dois sentidos"
  74. },
  75. "backup": {
  76. "target": "Destino de backup"
  77. },
  78. "repair": {
  79. "labor": "Tempos de mão de obra em ordens de serviço e orçamentos",
  80. "fluids": "Tipos e capacidades de fluidos"
  81. }
  82. },
  83. "statuses": {
  84. "active": "Conectada",
  85. "error": "Precisa de atenção",
  86. "pending": "Configuração em andamento",
  87. "disconnected": "Desconectada",
  88. "needsSetup": "Configuração incompleta"
  89. },
  90. "connection": {
  91. "back": "Todas as integrações",
  92. "account": "Conta conectada",
  93. "lastHealth": "Última verificação",
  94. "lastSync": "Última sincronização",
  95. "lastError": "A última execução falhou",
  96. "setupMissingTitle": "Configuração incompleta",
  97. "setupMissing": "Escolha {fields} nas configurações abaixo. Até lá nada é sincronizado.",
  98. "connected": "{name} está conectado.",
  99. "connectedShort": "Conectado",
  100. "connectWith": "Conectar {name}",
  101. "connect": "Conectar",
  102. "reconnect": "Reconectar",
  103. "disconnect": "Desconectar",
  104. "disconnectTitle": "Desconectar {name}?",
  105. "disconnectDescription": "O Torqvoice esquece a conta e para de usá-la. Nada já enviado para o {name} ou guardado lá é tocado.",
  106. "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.",
  107. "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.",
  108. "disconnectDescriptionAccounting": "O Torqvoice esquece a conta e para de enviar e ler. Faturas, clientes e pagamentos já no {name} ficam lá.",
  109. "removeSetup": "Remover",
  110. "removeSetupTitle": "Remover {name}?",
  111. "removeSetupDescription": "Nada está conectado ainda. O Torqvoice esquece o que foi preenchido e {name} volta para a lista de serviços disponíveis.",
  112. "removeSetupDone": "{name} removido",
  113. "removeSetupHint": "Não vai seguir com isso? Remova e o serviço volta para a lista abaixo.",
  114. "disconnected": "Desconectado",
  115. "test": "Testar conexão",
  116. "testPassed": "A conexão funciona",
  117. "syncNow": "Sincronizar agora",
  118. "syncQueued": "Sincronização na fila; será executada em até um minuto",
  119. "pullNow": "Buscar pagamentos agora",
  120. "pullQueued": "Busca de pagamentos na fila; será executada em até um minuto",
  121. "backfill": "Enviar ordens de serviço agendadas",
  122. "backfillQueued": "Ordens de serviço agendadas a partir da semana passada colocadas na fila",
  123. "backfillInvoices": "Enviar faturas emitidas",
  124. "backfillInvoicesQueuedCount": "{count, plural, one {# fatura emitida} other {# faturas emitidas}} na fila para envio",
  125. "backfillInvoicesNone": "Nenhuma fatura emitida para enviar. Só passam faturas enviadas, compartilhadas ou pagas, a partir da data inicial se você definiu uma.",
  126. "retryQueued": "Tarefa colocada na fila novamente",
  127. "settingsTitle": "Configurações",
  128. "settingsDescription": "O que sincronizar e para onde. As alterações valem a partir da próxima sincronização.",
  129. "settingsSaved": "Configurações salvas",
  130. "save": "Salvar",
  131. "loading": "Carregando...",
  132. "choose": "Escolher...",
  133. "search": "Buscar...",
  134. "noMatch": "Nada encontrado",
  135. "leaveEmpty": "Deixar vazio",
  136. "noLimit": "Sem limite",
  137. "planLocked": "As integrações não estão incluídas no seu plano.",
  138. "lockedIntegrations": "Conecte calendários, videochamadas e outros serviços à sua oficina.",
  139. "lockedPayments": "Permita que os clientes paguem suas faturas online, com cada pagamento lançado na fatura.",
  140. "lockedAi": "Conecte um provedor de IA para usar recursos de IA na sua oficina.",
  141. "ownAppTitle": "Esta instalação usa seu próprio aplicativo junto ao provedor",
  142. "redirectUri": "URI de redirecionamento para registrar no provedor:",
  143. "sendTestEmail": "Enviar e-mail de teste",
  144. "testEmailSent": "E-mail de teste enviado para {email}",
  145. "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.",
  146. "inboundUrl": "URL do webhook de entrada",
  147. "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.",
  148. "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.",
  149. "inboundHintStripe": "Adicione esta URL no painel do Stripe: abra Workbench, depois Webhooks, escolha Create an event destination e inscreva-a em checkout.session.completed. O Stripe então mostra um segredo de assinatura para o endpoint; cole-o aqui no campo do segredo de assinatura para que cada notificação seja conferida pela assinatura. Até lá, o Torqvoice confirma cada notificação consultando o checkout no Stripe.",
  150. "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.",
  151. "inboundHintPaypal": "Adicione esta URL no painel de desenvolvedor do PayPal em Webhooks, inscrita em PAYMENT.CAPTURE.COMPLETED.",
  152. "copy": "Copiar",
  153. "copied": "Copiado",
  154. "updateKeys": "Atualizar chaves",
  155. "updateKeysHint": "A última verificação falhou. Informe as chaves novamente para tentar outra vez.",
  156. "awaitingKeys": "Conectado, mas ainda falta: {keys}.",
  157. "awaitingKeysHint": "O webhook já responde ao fornecedor, então registre-o agora. Informe esses valores aqui assim que o fornecedor os emitir.",
  158. "saveKeys": "Salvar chaves",
  159. "keysSaved": "Chaves salvas",
  160. "inspectionSync": {
  161. "title": "Sincronização de inspeções",
  162. "vehicles": "{count} veículos com placa nesta oficina",
  163. "dueNow": "{count} seriam consultados na próxima execução",
  164. "withDate": "{count} já têm data de inspeção",
  165. "lastPass": "Última passagem completa {date}",
  166. "never": "Nenhuma passagem completa ainda",
  167. "inProgress": "Uma passagem está em andamento",
  168. "off": "Ative a opção e salve; até lá uma passagem não verifica nada.",
  169. "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. A primeira passagem consulta todos os veículos com placa.",
  170. "confirmTitle": "Consultar veículos agora?",
  171. "confirmDescription": "{count} dos {total} veículos com placa serão consultados no {name} agora, 25 por vez, e as datas de inspeção salvas. Veículos verificados recentemente são pulados. Se o {name} cobra por consulta, cada veículo encontrado é cobrado na sua conta.",
  172. "confirmLabel": "Consultar {count} veículos",
  173. "nothingDue": "Todos os veículos com placa foram verificados recentemente, então ainda não há nada para consultar."
  174. },
  175. "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.",
  176. "platformHandlesBackupsTitle": "Os backups já estão incluídos",
  177. "platformHandlesBackups": "O Torqvoice já faz backup desta oficina a cada hora e mantém pontos de restauração por 30 dias. Conecte um bucket se você também quiser uma cópia sua, que possa ser lida sem o Torqvoice.",
  178. "platformHandlesBackupsLink": "Ver seus pontos de restauração",
  179. "batchRetried": "{count, plural, =0 {Nada para tentar de novo} one {# tarefa de volta à fila} other {# tarefas de volta à fila}}",
  180. "advanced": "Avançado",
  181. "generate": "Gerar",
  182. "show": "Mostrar",
  183. "hide": "Ocultar",
  184. "generatedPasswordWarning": "Guarde uma cópia desta senha em um lugar seguro, fora deste servidor. Sem ela ninguém consegue abrir estes backups, nem mesmo o Torqvoice.",
  185. "backup": {
  186. "title": "Backups",
  187. "description": "Quando este destino recebeu o último backup bem-sucedido, quando será o próximo e as execuções mais recentes.",
  188. "lastGood": "Último backup bem-sucedido",
  189. "added": "{size} adicionados",
  190. "never": "Nenhum ainda",
  191. "nextRun": "Próxima execução",
  192. "notScheduled": "Não agendado",
  193. "repositorySize": "Armazenado no destino",
  194. "runNow": "Fazer backup agora",
  195. "running": "Fazendo backup",
  196. "runningHint": "Um backup está em andamento. Esta página se atualiza sozinha até terminar.",
  197. "started": "Backup iniciado",
  198. "recentTitle": "Execuções recentes",
  199. "noRuns": "Nenhum backup foi feito ainda.",
  200. "addedNote": "A primeira execução envia tudo. Cada uma depois dela adiciona só as partes que mudaram desde então, por isso é pequena. Cada backup continua completo e pode ser restaurado ou explorado sozinho.",
  201. "notStarted": "Não iniciado",
  202. "filesNewCount": "{count, plural, one {# arquivo novo} other {# arquivos novos}}",
  203. "columns": {
  204. "status": "Status",
  205. "started": "Início",
  206. "trigger": "Iniciado por",
  207. "duration": "Duração",
  208. "filesNew": "Arquivos novos",
  209. "bytesAdded": "Adicionado"
  210. },
  211. "trigger": {
  212. "scheduled": "Agendamento",
  213. "manual": "Manual",
  214. "restore": "Restauração"
  215. },
  216. "status": {
  217. "queued": "Na fila",
  218. "running": "Em andamento",
  219. "done": "Concluído",
  220. "failed": "Falhou",
  221. "skipped": "Ignorado"
  222. },
  223. "restoring": "Restaurando",
  224. "restoringHint": "Uma restauração está em andamento: os dados da oficina estão sendo substituídos pelo backup. Esta página se atualiza sozinha até terminar. Não trabalhe na oficina até lá.",
  225. "explore": "Explorar",
  226. "restore": {
  227. "showAll": "Mostrar todos os backups",
  228. "refresh": "Atualizar",
  229. "loading": "Lendo os backups no destino",
  230. "loadFailed": "Não foi possível listar os backups",
  231. "empty": "Ainda não há backups neste destino.",
  232. "needsOwner": "Só o proprietário da oficina pode restaurar um backup aqui.",
  233. "needsAdmin": "Só um proprietário ou administrador pode restaurar um backup.",
  234. "filesIncluded": "Fotos e arquivos incluídos",
  235. "filesNotIncluded": "Fotos e arquivos não incluídos",
  236. "earlierInstall": "Instalação anterior",
  237. "action": "Restaurar",
  238. "dialogTitle": "Restaurar o backup de {time}?",
  239. "warning": "A restauração <bold>substitui tudo o que esta oficina tem agora</bold>: clientes, veículos, ordens de serviço, faturas, configurações e, quando o backup os inclui, fotos e arquivos. Tudo o que foi adicionado depois que o backup foi feito é perdido. Isso não pode ser desfeito.",
  240. "secretsNote": "As chaves secretas que o backup deixou de fora mantêm os valores que esta instalação tem agora. Contas de usuário e senhas não são alteradas.",
  241. "confirmPrompt": "Digite o nome da oficina, <bold>{name}</bold>, para confirmar.",
  242. "whileRunning": "A restauração roda em segundo plano e leva alguns minutos quando há muitas fotos. A página se atualiza sozinha até terminar.",
  243. "cancel": "Cancelar",
  244. "confirm": "Restaurar este backup",
  245. "started": "Restauração iniciada"
  246. }
  247. },
  248. "lockedBackups": "Backups agendados e criptografados da sua oficina para um armazenamento seu.",
  249. "searchOrType": "Pesquisar ou digitar um nome",
  250. "useTyped": "Usar \"{value}\"",
  251. "listNeedsKeys": "Informe as chaves acima para ver a lista",
  252. "listEmpty": "A lista está vazia. Digite um nome.",
  253. "testing": "Testando a conexão",
  254. "testOk": "A conexão funciona: um objeto de teste foi gravado e excluído em seguida.",
  255. "testFailed": "O teste falhou",
  256. "testSteps": {
  257. "settings": "Verifique as configurações do provedor",
  258. "list": "A chave não consegue listar o bucket",
  259. "write": "A chave não consegue gravar no bucket",
  260. "delete": "A chave não consegue excluir do bucket",
  261. "folder": "Não foi possível criar ou abrir a pasta"
  262. },
  263. "testHint": "Informe as chaves e o bucket para testá-los antes de conectar. O teste grava um objeto pequeno e o exclui."
  264. },
  265. "activity": {
  266. "title": "Atividade",
  267. "description": "Tarefas recentes e linhas de log desta conexão.",
  268. "retry": "Tentar novamente",
  269. "jobStatus": {
  270. "queued": "Na fila",
  271. "running": "Em execução",
  272. "done": "Concluída",
  273. "failed": "Falhou",
  274. "dead": "Desistiu"
  275. },
  276. "jobs": "{count, plural, one {# tarefa} other {# tarefas}}",
  277. "counts": {
  278. "queued": "{count} na fila",
  279. "running": "{count} em andamento",
  280. "done": "{count} concluídas",
  281. "failed": "{count} com falha",
  282. "dead": "{count} desistidas"
  283. },
  284. "noFailures": "Nada falhou.",
  285. "retryFailed": "Tentar as com falha de novo",
  286. "details": "Mostrar detalhes",
  287. "loadingMore": "Carregando tarefas anteriores",
  288. "loadFailed": "Não foi possível carregar as tarefas anteriores.",
  289. "cleared": "Tarefas concluídas são apagadas após 7 dias."
  290. },
  291. "errors": {
  292. "generic": "Algo deu errado",
  293. "demo": "Não é possível conectar integrações na demonstração.",
  294. "forbidden": "Somente um administrador pode conectar integrações.",
  295. "unknown": "Integração desconhecida.",
  296. "plan": "Esta integração não está incluída no seu plano.",
  297. "no-client": "Nenhuma credencial de aplicativo está configurada para este provedor.",
  298. "denied": "Você cancelou o login no provedor.",
  299. "vendor": "O provedor retornou um erro. Tente novamente.",
  300. "invalid": "A resposta do provedor estava incompleta. Tente novamente.",
  301. "state": "Este login expirou ou pertence a outra sessão. Comece de novo.",
  302. "exchange": "O provedor recusou o login. Verifique as credenciais do aplicativo e tente novamente.",
  303. "identify": "Conectado, mas não foi possível ler a conta. Tente reconectar.",
  304. "backupRunning": "Já há um backup em andamento.",
  305. "restoreOwnerOnly": "No Torqvoice Cloud, só o proprietário da oficina pode restaurar um backup.",
  306. "restoreBusy": "Já há um backup ou uma restauração em andamento neste servidor. Tente de novo quando terminar."
  307. },
  308. "meeting": {
  309. "join": "Entrar na videochamada",
  310. "google-meet": "Google Meet",
  311. "teams": "Microsoft Teams",
  312. "zoom": "Zoom"
  313. },
  314. "calendar": {
  315. "external": "De calendários conectados",
  316. "busy": "Ocupado"
  317. },
  318. "connectors": {
  319. "google-calendar": {
  320. "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.",
  321. "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.",
  322. "fields": {
  323. "clientId": "ID do cliente",
  324. "clientSecret": "Segredo do cliente"
  325. },
  326. "settings": {
  327. "calendarId": "Calendário",
  328. "pushEnabled": "Adicionar ordens de serviço agendadas a este calendário",
  329. "includeCustomer": "Incluir o nome e o telefone do cliente no evento",
  330. "addConference": "Adicionar uma reunião do Google Meet a cada ordem de serviço agendada",
  331. "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.",
  332. "pullEnabled": "Mostrar os horários ocupados deste calendário no calendário do Torqvoice",
  333. "pullEnabledHelp": "Somente leitura. Atualizado a cada 15 minutos, uma semana para trás e dois meses para a frente."
  334. }
  335. },
  336. "microsoft-365": {
  337. "name": "Calendário do Microsoft 365",
  338. "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.",
  339. "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.",
  340. "fields": {
  341. "clientId": "ID do aplicativo (cliente)",
  342. "clientSecret": "Segredo do cliente"
  343. },
  344. "settings": {
  345. "calendarId": "Calendário",
  346. "pushEnabled": "Adicionar ordens de serviço agendadas a este calendário",
  347. "includeCustomer": "Incluir o nome e o telefone do cliente no evento",
  348. "addConference": "Adicionar uma reunião do Microsoft Teams a cada ordem de serviço agendada",
  349. "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.",
  350. "pullEnabled": "Mostrar os horários ocupados deste calendário no calendário do Torqvoice",
  351. "pullEnabledHelp": "Somente leitura. Atualizado a cada 15 minutos, uma semana para trás e dois meses para a frente."
  352. }
  353. },
  354. "zoom": {
  355. "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.",
  356. "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.",
  357. "fields": {
  358. "clientId": "ID do cliente",
  359. "clientSecret": "Segredo do cliente"
  360. },
  361. "settings": {
  362. "autoCreate": "Criar uma reunião do Zoom automaticamente para cada ordem de serviço agendada",
  363. "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.",
  364. "includeCustomer": "Incluir o nome do cliente no tópico da reunião",
  365. "joinBeforeHost": "Permitir que o cliente entre antes de você",
  366. "waitingRoom": "Usar sala de espera"
  367. }
  368. },
  369. "twilio-sms": {
  370. "description": "Envie e receba SMS por um número da Twilio. Lembretes, avisos de veículo pronto para retirada e as respostas que chegam.",
  371. "fields": {
  372. "accountSid": "Account SID",
  373. "authToken": "Token de autenticação"
  374. },
  375. "settings": {
  376. "phoneNumber": "Enviar deste número"
  377. }
  378. },
  379. "vonage-sms": {
  380. "description": "Envie e receba SMS por um número da Vonage.",
  381. "fields": {
  382. "apiKey": "Chave de API",
  383. "apiSecret": "Segredo da API",
  384. "signatureSecret": "Segredo de assinatura",
  385. "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."
  386. },
  387. "settings": {
  388. "phoneNumber": "Enviar deste número"
  389. }
  390. },
  391. "telnyx-sms": {
  392. "description": "Envie e receba SMS por um número da Telnyx.",
  393. "fields": {
  394. "apiKey": "Chave de API",
  395. "webhookPublicKey": "Chave pública do webhook",
  396. "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."
  397. },
  398. "settings": {
  399. "phoneNumber": "Enviar deste número"
  400. }
  401. },
  402. "whatsapp-meta": {
  403. "description": "Converse com os clientes no WhatsApp diretamente pela Meta. Fotos do que você encontrou e a conversa que vem depois.",
  404. "fields": {
  405. "phoneNumberId": "ID do número de telefone",
  406. "accessToken": "Token de acesso",
  407. "verifyToken": "Token de verificação do webhook",
  408. "appSecret": "Segredo do app",
  409. "apiVersion": "Versão da Graph API",
  410. "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.",
  411. "phoneNumberIdHelp": "Do WhatsApp Manager, no número do qual você envia; não é o número de telefone em si. A Meta só o emite depois de verificar o webhook, então deixe em branco, conecte, registre o webhook e volte para adicioná-lo.",
  412. "accessTokenHelp": "Um token permanente de usuário do sistema. O que a Meta mostra durante a configuração expira em 24 horas. Adicione-o junto com o ID do número de telefone depois que o webhook for verificado.",
  413. "verifyTokenHelp": "Qualquer frase que você escolher. Cole a mesma na Meta ao registrar o webhook."
  414. },
  415. "settings": {
  416. "enabled": "Enviar mensagens por este canal",
  417. "phoneNumber": "Enviar deste número",
  418. "templateName": "Modelo para reabrir uma conversa",
  419. "templateLanguage": "Idioma do modelo",
  420. "templateVariables": "Valores do modelo, em ordem",
  421. "mediaTemplateName": "Modelo para uma mensagem com foto",
  422. "mediaTemplateLanguage": "Idioma do modelo com foto",
  423. "mediaTemplateVariables": "Valores do modelo com foto, em ordem"
  424. }
  425. },
  426. "whatsapp-twilio": {
  427. "description": "Converse com os clientes no WhatsApp por um número da Twilio, se foi a Twilio que forneceu o seu.",
  428. "fields": {
  429. "accountSid": "Account SID",
  430. "authToken": "Token de autenticação",
  431. "messagingServiceSid": "SID do serviço de mensagens"
  432. },
  433. "settings": {
  434. "enabled": "Enviar mensagens por este canal",
  435. "phoneNumber": "Enviar deste número",
  436. "templateName": "Modelo para reabrir uma conversa",
  437. "templateLanguage": "Idioma do modelo",
  438. "templateVariables": "Valores do modelo, em ordem",
  439. "mediaTemplateName": "Modelo para uma mensagem com foto",
  440. "mediaTemplateLanguage": "Idioma do modelo com foto",
  441. "mediaTemplateVariables": "Valores do modelo com foto, em ordem"
  442. }
  443. },
  444. "telegram": {
  445. "description": "Um bot do Telegram que alcança os clientes que usam o app e traz as respostas deles para a caixa de entrada.",
  446. "fields": {
  447. "botToken": "Token do bot"
  448. },
  449. "settings": {
  450. "enabled": "Enviar mensagens por este canal",
  451. "botUsername": "Nome de usuário do bot"
  452. }
  453. },
  454. "smtp": {
  455. "description": "Envie faturas e lembretes pelo seu próprio servidor de e-mail, em vez do e-mail da plataforma.",
  456. "fields": {
  457. "host": "Servidor",
  458. "port": "Porta",
  459. "user": "Nome de usuário",
  460. "pass": "Senha"
  461. },
  462. "settings": {
  463. "fromEmail": "Enviar deste endereço",
  464. "fromName": "Nome exibido como remetente",
  465. "secure": "Conectar via TLS desde o início",
  466. "requireTls": "Exigir que o servidor passe para TLS",
  467. "rejectUnauthorized": "Recusar um certificado que não seja válido"
  468. }
  469. },
  470. "resend": {
  471. "description": "Envie faturas e lembretes pelo Resend.",
  472. "fields": {
  473. "apiKey": "Chave de API"
  474. },
  475. "settings": {
  476. "fromEmail": "Enviar deste endereço",
  477. "fromName": "Nome exibido como remetente"
  478. }
  479. },
  480. "postmark": {
  481. "description": "Envie faturas e lembretes pelo Postmark.",
  482. "fields": {
  483. "apiKey": "Token do servidor"
  484. },
  485. "settings": {
  486. "fromEmail": "Enviar deste endereço",
  487. "fromName": "Nome exibido como remetente"
  488. }
  489. },
  490. "mailgun": {
  491. "description": "Envie faturas e lembretes pelo Mailgun.",
  492. "fields": {
  493. "apiKey": "Chave de API",
  494. "domain": "Domínio de envio"
  495. },
  496. "settings": {
  497. "fromEmail": "Enviar deste endereço",
  498. "fromName": "Nome exibido como remetente",
  499. "region": "Região do domínio"
  500. }
  501. },
  502. "sendgrid": {
  503. "description": "Envie faturas e lembretes pelo SendGrid.",
  504. "fields": {
  505. "apiKey": "Chave de API"
  506. },
  507. "settings": {
  508. "fromEmail": "Enviar deste endereço",
  509. "fromName": "Nome exibido como remetente"
  510. }
  511. },
  512. "amazon-ses": {
  513. "description": "Envie faturas e lembretes pelo Amazon SES.",
  514. "fields": {
  515. "accessKeyId": "ID da chave de acesso",
  516. "secretAccessKey": "Chave de acesso secreta",
  517. "region": "Região"
  518. },
  519. "settings": {
  520. "fromEmail": "Enviar deste endereço",
  521. "fromName": "Nome exibido como remetente"
  522. }
  523. },
  524. "vegvesen": {
  525. "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.",
  526. "fields": {
  527. "apiKey": "Chave de API",
  528. "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."
  529. },
  530. "settings": {
  531. "syncInspections": "Manter as datas de inspeção de todos os veículos desta oficina atualizadas",
  532. "syncInspectionsHelp": "Uma vez por hora, os veículos a verificar são consultados pela placa e a próxima data de EU-kontroll é salva; com que frequência um veículo é verificado de novo se define abaixo. Só veículos salvos nesta oficina são enviados.",
  533. "inspectionRecheck": "Verificar de novo veículos que já têm data",
  534. "inspectionRecheckHelp": "Uma data só muda quando uma inspeção é aprovada. Mensal percebe uma inspeção antecipada mais cedo; só perto do vencimento custa menos. Perto do vencimento, cada veículo é verificado semanalmente, seja qual for a escolha aqui.",
  535. "recheckMonthly": "Todo mês",
  536. "recheckQuarterly": "A cada três meses",
  537. "recheckNearDeadline": "Só perto do vencimento",
  538. "inspectionSoonDays": "Perto do vencimento significa dentro de",
  539. "inspectionSoonDaysHelp": "Nesta janela um veículo é verificado semanalmente, então uma inspeção aprovada o tira da lista de lembretes em dias. Uma janela mais curta significa menos consultas.",
  540. "soon30": "30 dias",
  541. "soon60": "60 dias",
  542. "soon90": "90 dias",
  543. "inspectionOnlyWithCustomer": "Só veículos com cliente",
  544. "inspectionOnlyWithCustomerHelp": "Pular veículos sem cliente cadastrado. Ninguém pode ser lembrado sobre eles, então consultá-los custa à toa."
  545. }
  546. },
  547. "openapi-automotive": {
  548. "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.",
  549. "fields": {
  550. "token": "Token de API",
  551. "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."
  552. },
  553. "settings": {
  554. "country": "País",
  555. "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.",
  556. "cars": "Consultar carros",
  557. "carsHelp": "Consulta o registro de carros. Desative se você só trabalha com motocicletas, assim a consulta pula os carros e responde mais rápido.",
  558. "bikes": "Consultar motocicletas",
  559. "bikesHelp": "Consulta o registro de motocicletas. Com carros também ativado, ele só é consultado quando nenhum carro corresponde, e uma consulta de carro sem resultado é gratuita. Indisponível para Portugal."
  560. }
  561. },
  562. "checkcardetails": {
  563. "description": "Preencha um veículo pela placa britânica ou pelo VIN: marca, modelo, ano, cor, combustível, cilindrada e o vencimento do MOT, com dados da DVLA via Check Car Details. Carros e motos vêm do mesmo registro. Com o UK Vehicle Data ativado na sua conta, vêm também o VIN, a transmissão e os pesos. Cada consulta é cobrada na conta Check Car Details da própria oficina. Nenhum dado do proprietário é retornado.",
  564. "fields": {
  565. "apiKey": "Chave de API",
  566. "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 receber também o VIN, clique em Request Access ao lado de UK Vehicle Data em Your Data Points; as consultas passam a usá-lo assim que for ativado. Uma chave de teste só encontra placas que contêm a letra A."
  567. },
  568. "settings": {
  569. "syncInspections": "Manter as datas de MOT atualizadas para todos os veículos desta oficina",
  570. "syncInspectionsHelp": "Com isto ativado, cada veículo com placa é consultado uma vez e a data do MOT é salva. Depois, os veículos são verificados de novo conforme definido abaixo. Cada veículo encontrado é cobrado como uma consulta Vehicle Registration; placas que o registro não conhece são gratuitas. Só veículos salvos nesta oficina são enviados.",
  571. "inspectionRecheck": "Verificar de novo veículos que já têm data",
  572. "inspectionRecheckHelp": "Uma data só muda quando uma inspeção é aprovada. Mensal percebe uma inspeção antecipada mais cedo; só perto do vencimento custa menos. Perto do vencimento, cada veículo é verificado semanalmente, seja qual for a escolha aqui.",
  573. "recheckMonthly": "Todo mês",
  574. "recheckQuarterly": "A cada três meses",
  575. "recheckNearDeadline": "Só perto do vencimento",
  576. "inspectionSoonDays": "Perto do vencimento significa dentro de",
  577. "inspectionSoonDaysHelp": "Nesta janela um veículo é verificado semanalmente, então uma inspeção aprovada o tira da lista de lembretes em dias. Uma janela mais curta significa menos consultas.",
  578. "soon30": "30 dias",
  579. "soon60": "60 dias",
  580. "soon90": "90 dias",
  581. "inspectionOnlyWithCustomer": "Só veículos com cliente",
  582. "inspectionOnlyWithCustomerHelp": "Pular veículos sem cliente cadastrado. Ninguém pode ser lembrado sobre eles, então consultá-los custa à toa."
  583. }
  584. },
  585. "rdw": {
  586. "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.",
  587. "fields": {
  588. "appToken": "Token de aplicativo (opcional)",
  589. "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."
  590. },
  591. "settings": {
  592. "syncInspections": "Manter as datas de APK de todos os veículos desta oficina atualizadas",
  593. "syncInspectionsHelp": "Uma vez por hora, os veículos a verificar são consultados pela placa e a próxima data de APK é salva; com que frequência um veículo é verificado de novo se define abaixo. Só veículos salvos nesta oficina são enviados.",
  594. "inspectionRecheck": "Verificar de novo veículos que já têm data",
  595. "inspectionRecheckHelp": "Uma data só muda quando uma inspeção é aprovada. Mensal percebe uma inspeção antecipada mais cedo; só perto do vencimento custa menos. Perto do vencimento, cada veículo é verificado semanalmente, seja qual for a escolha aqui.",
  596. "recheckMonthly": "Todo mês",
  597. "recheckQuarterly": "A cada três meses",
  598. "recheckNearDeadline": "Só perto do vencimento",
  599. "inspectionSoonDays": "Perto do vencimento significa dentro de",
  600. "inspectionSoonDaysHelp": "Nesta janela um veículo é verificado semanalmente, então uma inspeção aprovada o tira da lista de lembretes em dias. Uma janela mais curta significa menos consultas.",
  601. "soon30": "30 dias",
  602. "soon60": "60 dias",
  603. "soon90": "90 dias",
  604. "inspectionOnlyWithCustomer": "Só veículos com cliente",
  605. "inspectionOnlyWithCustomerHelp": "Pular veículos sem cliente cadastrado. Ninguém pode ser lembrado sobre eles, então consultá-los custa à toa."
  606. }
  607. },
  608. "regcheck": {
  609. "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.",
  610. "fields": {
  611. "username": "Usuário RegCheck",
  612. "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."
  613. },
  614. "settings": {
  615. "country": "País",
  616. "countryHelp": "O registro a consultar. Cada país tem seu próprio serviço, então a conexão consulta um.",
  617. "auState": "Estado ou território",
  618. "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.",
  619. "usState": "Estado",
  620. "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."
  621. }
  622. },
  623. "openai": {
  624. "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.",
  625. "fields": {
  626. "apiKey": "Chave de API",
  627. "apiKeyHelp": "Crie uma em platform.openai.com, em API keys. A conta precisa de saldo; a OpenAI cobra por chamada."
  628. },
  629. "settings": {
  630. "model": "Modelo",
  631. "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."
  632. }
  633. },
  634. "anthropic": {
  635. "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.",
  636. "fields": {
  637. "apiKey": "Chave de API",
  638. "apiKeyHelp": "Crie uma em console.anthropic.com, em API keys. A conta precisa de saldo; a Anthropic cobra por chamada."
  639. },
  640. "settings": {
  641. "model": "Modelo",
  642. "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."
  643. }
  644. },
  645. "openai-compatible": {
  646. "name": "Compatível com OpenAI",
  647. "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.",
  648. "fields": {
  649. "baseUrl": "URL base",
  650. "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.",
  651. "apiKey": "Chave de API",
  652. "apiKeyHelp": "Só se o servidor pedir uma. Ollama e vLLM costumam rodar sem chave; o Open WebUI emite uma em Configurações, Conta."
  653. },
  654. "settings": {
  655. "model": "Modelo",
  656. "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."
  657. }
  658. },
  659. "stripe": {
  660. "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.",
  661. "fields": {
  662. "secretKey": "Chave secreta",
  663. "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.",
  664. "publishableKey": "Chave publicável",
  665. "webhookSecret": "Segredo de assinatura do webhook",
  666. "webhookSecretHelp": "Opcional, e pode ser adicionado depois de conectar. O Stripe o mostra em Reveal secret assim que a URL de notificação desta página é adicionada como endpoint. Com ele, cada notificação é verificada pela assinatura; sem ele, o Torqvoice consulta o checkout no Stripe antes de registrar um pagamento."
  667. },
  668. "settings": {
  669. "enabled": "Oferecer nos links de fatura",
  670. "enabledHelp": "Desative para tirar o botão de pagamento das faturas compartilhadas por um tempo, sem desconectar. Pagamentos já iniciados continuam sendo registrados."
  671. }
  672. },
  673. "vipps": {
  674. "description": "Vipps MobilePay pelo link da fatura. O cliente paga no app que já tem e a fatura se marca como paga sozinha.",
  675. "fields": {
  676. "clientId": "ID do cliente",
  677. "clientSecret": "Segredo do cliente",
  678. "subscriptionKey": "Chave de assinatura",
  679. "subscriptionKeyHelp": "A Ocp-Apim-Subscription-Key do portal do Vipps MobilePay, nas chaves de API da unidade de venda.",
  680. "merchantSerialNumber": "Número de série do comerciante"
  681. },
  682. "settings": {
  683. "enabled": "Oferecer nos links de fatura",
  684. "enabledHelp": "Desative para tirar o botão de pagamento das faturas compartilhadas por um tempo, sem desconectar. Pagamentos já iniciados continuam sendo registrados.",
  685. "testMode": "Modo de teste",
  686. "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."
  687. }
  688. },
  689. "paypal": {
  690. "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.",
  691. "fields": {
  692. "clientId": "ID do cliente",
  693. "clientSecret": "Segredo do cliente"
  694. },
  695. "settings": {
  696. "enabled": "Oferecer nos links de fatura",
  697. "enabledHelp": "Desative para tirar o botão de pagamento das faturas compartilhadas por um tempo, sem desconectar. Pagamentos já iniciados continuam sendo registrados.",
  698. "sandbox": "Modo sandbox",
  699. "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."
  700. }
  701. },
  702. "quickbooks": {
  703. "description": "Envie faturas emitidas, seus clientes e seus pagamentos para o QuickBooks Online e traga de volta os pagamentos registrados lá.",
  704. "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.",
  705. "fields": {
  706. "clientId": "ID do cliente",
  707. "clientSecret": "Segredo do cliente"
  708. },
  709. "settings": {
  710. "pushInvoices": "Enviar faturas emitidas para o QuickBooks",
  711. "pushOnComplete": "Enviar faturas também quando o serviço for marcado como concluído",
  712. "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.",
  713. "startDate": "Somente faturas com data a partir de",
  714. "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.",
  715. "includeVehicle": "Indicar o veículo na fatura",
  716. "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.",
  717. "laborItemId": "Item para linhas de mão de obra",
  718. "laborItemIdHelp": "Deixe vazio e um item chamado Labour será criado na sua conta de receita na primeira vez.",
  719. "partsItemId": "Item para linhas de peças",
  720. "partsItemIdHelp": "Deixe vazio e um item chamado Parts será criado na sua conta de receita na primeira vez.",
  721. "taxAmounts": "Valores de imposto",
  722. "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.",
  723. "taxAmountsBilled": "Como faturado no Torqvoice",
  724. "taxAmountsQuickbooks": "Calculado pelo QuickBooks",
  725. "taxCodeId": "Código de imposto para faturas tributáveis",
  726. "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.",
  727. "zeroTaxCodeId": "Código de imposto para faturas sem imposto",
  728. "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.",
  729. "pushPayments": "Registrar pagamentos no QuickBooks",
  730. "depositAccountId": "Depositar pagamentos em",
  731. "depositAccountIdHelp": "Deixe vazio para usar Undeposited Funds.",
  732. "manualPaidAsPayment": "Registrar um pagamento quando uma fatura for marcada como paga manualmente",
  733. "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.",
  734. "pullPayments": "Trazer de volta pagamentos registrados no QuickBooks",
  735. "pullPaymentsHelp": "A cada 30 minutos. Um pagamento recebido no QuickBooks para uma fatura do Torqvoice é registrado aqui na fatura."
  736. }
  737. },
  738. "fiken": {
  739. "description": "Envie faturas emitidas, seus clientes e seus pagamentos para o Fiken e traga de volta os pagamentos registrados lá.",
  740. "tenantHelp": "Crie um app no Fiken em Rediger konto, API, para as suas próprias empresas. Informe no app a URI de redirecionamento abaixo e copie para cá o ID do cliente e o segredo do cliente. A empresa precisa do módulo de API do Fiken.",
  741. "fields": {
  742. "clientId": "ID do cliente",
  743. "clientSecret": "Segredo do cliente"
  744. },
  745. "settings": {
  746. "companySlug": "Empresa no Fiken",
  747. "companySlugHelp": "A empresa em cuja contabilidade as faturas entram. Seu usuário do Fiken pode ter acesso a várias.",
  748. "pushInvoices": "Enviar faturas emitidas para o Fiken",
  749. "pushOnComplete": "Enviar faturas também quando o serviço for marcado como concluído",
  750. "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.",
  751. "startDate": "Somente faturas com data a partir de",
  752. "startDateHelp": "Deixe vazio para enviar toda fatura emitida. Use a data em que sua contabilidade passou para o Fiken para não lançar faturas antigas duas vezes.",
  753. "attachPdf": "Anexar o PDF da fatura",
  754. "attachPdfHelp": "Uma fatura entra no Fiken como uma venda (Annet salg) com o seu número do Torqvoice. Com isto ativado, o PDF que o cliente recebeu é arquivado na venda como comprovante.",
  755. "laborAccount": "Conta de receita para mão de obra",
  756. "laborAccountHelp": "Deixe vazio para usar a 3000.",
  757. "partsAccount": "Conta de receita para peças",
  758. "partsAccountHelp": "Deixe vazio para usar a 3000.",
  759. "zeroVatType": "Tipo de IVA para faturas sem IVA",
  760. "zeroVatTypeHelp": "Como o Fiken contabiliza uma venda sem IVA. Uma empresa não registrada para IVA não precisa escolher nada aqui. Uma registrada precisa escolher antes que uma fatura assim seja enviada; pergunte ao seu contador qual se aplica.",
  761. "vatNone": "Nenhum (sem tratamento de IVA)",
  762. "vatExempt": "Isento (fritatt)",
  763. "vatOutside": "Fora do âmbito do IVA (utenfor)",
  764. "vatExport": "Isento, exportação",
  765. "vatReverse": "Isento, inversão do sujeito passivo",
  766. "zeroAccount": "Conta de receita para faturas sem IVA",
  767. "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 registro de atividade.",
  768. "pushPayments": "Registrar pagamentos no Fiken",
  769. "paymentAccount": "Depositar pagamentos em",
  770. "paymentAccountHelp": "Deixe vazio para usar a primeira conta bancária da empresa.",
  771. "manualPaidAsPayment": "Registrar um pagamento quando uma fatura for marcada como paga manualmente",
  772. "manualPaidAsPaymentHelp": "Uma fatura marcada como paga no Torqvoice sem lançamento de pagamento recebe no Fiken um pagamento pelo valor que ainda consta em aberto lá. Desligado, ela fica aberta lá até que um pagamento seja registrado.",
  773. "pullPayments": "Trazer de volta pagamentos registrados no Fiken",
  774. "pullPaymentsHelp": "A cada 30 minutos. Um pagamento recebido no Fiken para uma fatura do Torqvoice é registrado aqui na fatura."
  775. }
  776. },
  777. "nhtsa": {
  778. "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.",
  779. "fields": {},
  780. "settings": {
  781. "refreshFleet": "Manter os dados de recalls e reclamações atualizados para todos os veículos desta oficina",
  782. "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."
  783. }
  784. },
  785. "openlaborproject": {
  786. "description": "Consulte os tempos de mão de obra e as capacidades de fluidos do veículo de uma ordem de serviço ou orçamento, e adicione as horas de um serviço como linha de mão de obra com um clique. A maior parte dos dados é de veículos do mercado americano, e a tabela mostra a qual mercado cada consulta se refere. Cada valor mostra o quanto a Open Labor Project tem certeza dele, e muitos são estimativas geradas por IA, então confira antes de passar um orçamento ao cliente. As consultas usam a chave de API da própria oficina. Com um plano pago da Open Labor Project, um veículo consultado uma vez fica guardado enquanto o plano durar, então consultá-lo de novo não gasta nenhuma chamada.",
  787. "fields": {
  788. "apiKey": "Chave de API",
  789. "apiKeyHelp": "Solicite uma chave em openlaborproject.com, em Developers; ela chega por e-mail. Uma chave gratuita tem 10 consultas por dia e mostra as horas de um serviço por vez. O plano Builder e superiores aumentam o limite e mostram as horas de todos os serviços de uma vez.",
  790. "apiKeyServerHelp": "Deixe em branco para usar a chave fornecida por este servidor, ou cole sua própria chave do openlaborproject.com para usar seu próprio plano."
  791. },
  792. "settings": {
  793. "minConfidence": "Mostrar tempos a partir de",
  794. "minConfidenceHelp": "Deixa de fora os tempos de que a fonte tem menos certeza. Muitos tempos de marcas europeias são estimativas por IA, então uma escolha rígida pode deixar poucos serviços.",
  795. "confidenceAll": "Qualquer nível de confiança",
  796. "confidenceMedium": "Média ou superior",
  797. "confidenceHigh": "Verificado ou superior",
  798. "confidenceOem": "Somente OEM",
  799. "hoursFrom": "Horas a adicionar",
  800. "hoursFromHelp": "Qual número vai para a ordem de serviço: o tempo da tabela, ou o topo da faixa que a Open Labor Project informa (por exemplo, 1,6 h em vez de 1,2 h). O topo da faixa deixa folga para serviços que demoram mais.",
  801. "hoursBook": "Tempo da tabela",
  802. "hoursHigh": "Topo da faixa",
  803. "adjustPercent": "Ajustar tempos em (%)",
  804. "adjustPercentHelp": "Uma porcentagem somada a cada tempo antes de ir para a ordem de serviço: 10 transforma 1,2 h em 1,32 h, e -10 em 1,08 h. De -50 a 200.",
  805. "rounding": "Arredondar horas para cima em",
  806. "roundingHelp": "Arredonda para cima as horas de cada serviço, depois de qualquer ajuste: com 0,25, 1,32 h vira 1,5 h. Um tempo que já está em um passo continua igual.",
  807. "roundNone": "Não arredondar",
  808. "roundTenth": "0,1 hora",
  809. "roundQuarter": "0,25 hora",
  810. "roundHalf": "0,5 hora",
  811. "fluids": "Mostrar especificações de fluidos",
  812. "fluidsHelp": "Adiciona uma aba Fluidos com capacidades, especificações e intervalos de troca. Abri-la usa uma chamada própria.",
  813. "units": "Unidades de fluidos",
  814. "unitsHelp": "As unidades em que capacidades e intervalos de troca são mostrados.",
  815. "unitsBoth": "Ambas",
  816. "unitsMetric": "Métricas (L, km)",
  817. "unitsUs": "EUA (qt, mi)"
  818. }
  819. },
  820. "speech-to-text": {
  821. "name": "Voz para texto",
  822. "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.",
  823. "fields": {
  824. "apiKey": "Chave de API",
  825. "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.",
  826. "baseUrl": "Endereço do servidor",
  827. "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."
  828. },
  829. "settings": {
  830. "model": "Modelo",
  831. "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.",
  832. "mode": "Quem escolhe como o ditado é transcrito",
  833. "modeHelp": "O navegador escreve enquanto você fala, mas é mais fraco, principalmente em idiomas menos falados. O modelo de voz escreve quando você para.",
  834. "modeAi": "Sempre o modelo de voz",
  835. "modeChoice": "Cada pessoa escolhe: modelo de voz ou navegador"
  836. }
  837. },
  838. "s3": {
  839. "name": "Bucket de armazenamento na nuvem",
  840. "description": "Backups criptografados desta oficina para um bucket seu no Amazon S3, Cloudflare R2, Backblaze B2, Wasabi, Hetzner Object Storage ou qualquer outro armazenamento compatível com S3, na frequência que você escolher. Depois da primeira execução, só o que mudou é enviado, então backups de hora em hora continuam baratos.",
  841. "fields": {
  842. "accessKeyId": "ID da chave de acesso",
  843. "accessKeyIdHelp": "Uma chave do seu provedor de armazenamento com permissão para listar, ler, gravar e excluir objetos no bucket. Crie uma chave só para o Torqvoice, para que ela possa ser revogada separadamente.",
  844. "secretAccessKey": "Chave de acesso secreta",
  845. "password": "Senha dos backups",
  846. "passwordHelp": "Todo backup é criptografado com esta senha. Invente uma ou clique em Gerar, e guarde uma cópia fora deste servidor: sem ela ninguém consegue abrir estes backups, nem mesmo o Torqvoice. Para reconectar um armazenamento que já tem backups do Torqvoice, digite a senha com que eles foram feitos.",
  847. "endpoint": "Endpoint personalizado",
  848. "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 host, com porta se necessário."
  849. },
  850. "settings": {
  851. "provider": "Provedor",
  852. "providerAws": "Amazon S3",
  853. "providerR2": "Cloudflare R2",
  854. "providerB2": "Backblaze B2",
  855. "providerWasabi": "Wasabi",
  856. "providerHetzner": "Hetzner Object Storage",
  857. "providerOther": "Outro armazenamento compatível com S3",
  858. "region": "Região",
  859. "regionHelp": "Onde fica o bucket. Escolha-a na lista do provedor; em outro armazenamento, digite a que ele pedir, se pedir alguma. Não é usada pelo Cloudflare R2.",
  860. "accountId": "ID da conta Cloudflare",
  861. "accountIdHelp": "O ID de 32 caracteres mostrado na página de visão geral do R2 no painel da Cloudflare.",
  862. "bucket": "Bucket",
  863. "bucketHelp": "Os buckets são listados com a chave assim que ela é informada. Se a chave pode usar um bucket, mas não listá-los, digite o nome.",
  864. "prefix": "Pasta no bucket",
  865. "prefixHelp": "Os backups ficam nesta pasta. Use uma pasta diferente para cada oficina que compartilha o bucket.",
  866. "frequency": "Frequência",
  867. "frequencyHourly": "A cada hora",
  868. "frequencyEvery4h": "A cada 4 horas",
  869. "frequencyDaily": "Todos os dias",
  870. "frequencyWeekly": "Todas as semanas",
  871. "frequencyMonthly": "Todos os meses",
  872. "time": "Horário",
  873. "timeHelp": "No relógio da oficina, no formato HH:MM. Usado pelos backups diários, semanais e mensais.",
  874. "weekday": "Dia da semana",
  875. "sunday": "Domingo",
  876. "monday": "Segunda-feira",
  877. "tuesday": "Terça-feira",
  878. "wednesday": "Quarta-feira",
  879. "thursday": "Quinta-feira",
  880. "friday": "Sexta-feira",
  881. "saturday": "Sábado",
  882. "monthDay": "Dia do mês",
  883. "monthDayLast": "Último dia",
  884. "contents": "Conteúdo",
  885. "contentsHelp": "Chaves secretas são as que esta oficina digitou no Torqvoice: chaves de pagamento, de IA e de webhook. De qualquer forma, todo backup é criptografado com a senha dos backups. Um backup contém os registros da oficina e, se você escolher, os arquivos dela. Contas de usuário e senhas não ficam nele: em um servidor novo, você entra, convida a equipe e restaura os dados nessa oficina.",
  886. "contentsData": "Somente dados",
  887. "contentsDataAndSecrets": "Dados e chaves secretas",
  888. "includeFiles": "Incluir fotos e arquivos",
  889. "includeFilesHelp": "Cada arquivo é enviado uma vez e reaproveitado pelos backups seguintes, então isso custa pouco depois da primeira execução.",
  890. "keepHourly": "Manter backups por hora",
  891. "keepHourlyHelp": "Quantos dos backups por hora mais recentes manter. Só importa nos agendamentos a cada hora e a cada 4 horas.",
  892. "keepDaily": "Manter backups diários",
  893. "keepWeekly": "Manter backups semanais",
  894. "keepMonthly": "Manter backups mensais",
  895. "keepMonthlyHelp": "Backups mais antigos são removidos após cada execução, mantendo os mais recentes de cada tipo. Defina um número como 0 para não manter nenhum daquele tipo."
  896. }
  897. },
  898. "local-folder": {
  899. "name": "Pasta local",
  900. "description": "Backups criptografados desta oficina para uma pasta neste servidor: o volume de backups no arquivo compose ou uma unidade de rede montada nele. Uma cópia no mesmo disco do banco de dados não é segura sozinha; combine-a com um armazenamento em outro lugar.",
  901. "fields": {
  902. "password": "Senha dos backups",
  903. "passwordHelp": "Todo backup é criptografado com esta senha. Invente uma ou clique em Gerar, e guarde uma cópia fora deste servidor: sem ela ninguém consegue abrir estes backups, nem mesmo o Torqvoice. Para reconectar um armazenamento que já tem backups do Torqvoice, digite a senha com que eles foram feitos."
  904. },
  905. "settings": {
  906. "folder": "Pasta",
  907. "folderHelp": "A pasta, dentro da raiz de backups do servidor, que guarda os backups desta oficina. Deixe em branco para usar uma pasta com o nome desta oficina. Em um servidor novo, digite o nome da pasta usada por uma instalação anterior para recuperar os backups dela.",
  908. "frequency": "Frequência",
  909. "frequencyHourly": "A cada hora",
  910. "frequencyEvery4h": "A cada 4 horas",
  911. "frequencyDaily": "Todos os dias",
  912. "frequencyWeekly": "Todas as semanas",
  913. "frequencyMonthly": "Todos os meses",
  914. "time": "Horário",
  915. "timeHelp": "No relógio da oficina, no formato HH:MM. Usado pelos backups diários, semanais e mensais.",
  916. "weekday": "Dia da semana",
  917. "sunday": "Domingo",
  918. "monday": "Segunda-feira",
  919. "tuesday": "Terça-feira",
  920. "wednesday": "Quarta-feira",
  921. "thursday": "Quinta-feira",
  922. "friday": "Sexta-feira",
  923. "saturday": "Sábado",
  924. "monthDay": "Dia do mês",
  925. "monthDayLast": "Último dia",
  926. "contents": "Conteúdo",
  927. "contentsHelp": "Chaves secretas são as que esta oficina digitou no Torqvoice: chaves de pagamento, de IA e de webhook. De qualquer forma, todo backup é criptografado com a senha dos backups. Um backup contém os registros da oficina e, se você escolher, os arquivos dela. Contas de usuário e senhas não ficam nele: em um servidor novo, você entra, convida a equipe e restaura os dados nessa oficina.",
  928. "contentsData": "Somente dados",
  929. "contentsDataAndSecrets": "Dados e chaves secretas",
  930. "includeFiles": "Incluir fotos e arquivos",
  931. "includeFilesHelp": "Cada arquivo é enviado uma vez e reaproveitado pelos backups seguintes, então isso custa pouco depois da primeira execução.",
  932. "keepHourly": "Manter backups por hora",
  933. "keepHourlyHelp": "Quantos dos backups por hora mais recentes manter. Só importa nos agendamentos a cada hora e a cada 4 horas.",
  934. "keepDaily": "Manter backups diários",
  935. "keepWeekly": "Manter backups semanais",
  936. "keepMonthly": "Manter backups mensais",
  937. "keepMonthlyHelp": "Backups mais antigos são removidos após cada execução, mantendo os mais recentes de cada tipo. Defina um número como 0 para não manter nenhum daquele tipo."
  938. }
  939. }
  940. },
  941. "jobKinds": {
  942. "calendar": {
  943. "push": "Ordens de serviço para o calendário",
  944. "pull": "Horários ocupados do calendário"
  945. },
  946. "conference": {
  947. "sync": "Links de videochamada"
  948. },
  949. "inspection": {
  950. "refresh": "Atualização de datas de inspeção"
  951. },
  952. "accounting": {
  953. "invoice": "Fatura para a contabilidade",
  954. "payment": "Pagamento para a contabilidade",
  955. "customer": "Cliente para a contabilidade",
  956. "pull": "Pagamentos da contabilidade"
  957. },
  958. "safety": {
  959. "refresh": "Atualização dos dados de recall",
  960. "vehicle": "Verificação de recall para um veículo novo"
  961. },
  962. "repair": {
  963. "checkPlan": "Verificar se as consultas guardadas podem ser mantidas"
  964. }
  965. },
  966. "backupAlerts": {
  967. "destination": "destino de backup",
  968. "failedTitle": "Falha no backup",
  969. "failedMessage": "O backup para {name} não terminou: {reason}",
  970. "failedSubject": "Falha no backup para {name}",
  971. "failedEmailIntro": "O backup agendado da sua oficina para {name} não terminou.",
  972. "openToRetry": "Abra Configurações, Integrações, {name} para ver a execução e tentar novamente.",
  973. "overdueTitle": "Backup atrasado",
  974. "overdueSince": "Nenhum backup para {name} terminou desde {time}.",
  975. "overdueNever": "Nenhum backup para {name} terminou ainda.",
  976. "overdueSubject": "O backup para {name} está atrasado",
  977. "openToSee": "Abra Configurações, Integrações, {name} para ver o que deu errado.",
  978. "platformName": "Backups do Torqvoice",
  979. "restoredTitle": "Oficina restaurada",
  980. "restoredSubject": "Sua oficina foi restaurada a partir de um backup",
  981. "restoredIntro": "{name}: a oficina voltou ao ponto de restauração {snapshot} em {time}. Tudo o que foi registrado depois desse ponto não está mais na oficina.",
  982. "restoredByMember": "Um membro da sua oficina pediu esta restauração.",
  983. "restoredBySupport": "O suporte da Torqvoice fez isso a seu pedido. Motivo informado: {reason}",
  984. "noReason": "nenhum informado",
  985. "restoredUndo": "Antes, foi feita uma cópia de proteção da oficina como ela estava logo antes da restauração, que fica guardada por 90 dias. Fale com o suporte para voltar a ela."
  986. }
  987. }