service.json 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852
  1. {
  2. "page": {
  3. "notFound": "Registro de serviço não encontrado",
  4. "updated": "Registro de serviço atualizado",
  5. "failedUpdate": "Falha ao atualizar registro de serviço",
  6. "deleteTitle": "Deletar Registro de Serviço",
  7. "deleteDescription": "Isto vai deletar permanentemente este registro de serviço e todos os dados associados. Isto não pode ser desfeito.",
  8. "deleted": "Registro de serviço deletado",
  9. "failedDelete": "Falha ao deletar",
  10. "datesExpiredTitle": "Datas da fatura expiradas",
  11. "datesExpiredDescription": "A data da fatura ou a data de vencimento já passou. Deseja atualizar as datas antes de prosseguir?",
  12. "datesExpiredUpdate": "Atualizar datas e prosseguir",
  13. "datesExpiredProceed": "Prosseguir sem alterações",
  14. "datesExpiredUseToday": "Atualizar para a data de hoje",
  15. "datesExpiredCustomize": "Escolher datas manualmente",
  16. "datesExpiredBack": "Voltar",
  17. "datesExpiredSetToday": "Definir para hoje",
  18. "customFieldsInvalid": "Preencha todos os campos personalizados obrigatórios",
  19. "customFieldsSaveFailed": "Falha ao salvar campos personalizados",
  20. "problems": {
  21. "title": "A ordem precisa de um título antes de ser salva.",
  22. "negative": "Quantidades, horas, preços e custos não podem ser negativos.",
  23. "partName": "Toda peça com preço precisa de um nome.",
  24. "laborDescription": "Toda linha de mão de obra com horas ou taxa precisa de uma descrição.",
  25. "concernCondition": "Um relato com causa, correção ou confirmação precisa ter a condição preenchida."
  26. }
  27. },
  28. "header": {
  29. "tabs": {
  30. "details": "Detalhes",
  31. "images": "Imagens",
  32. "video": "Vídeo",
  33. "documents": "Documentos",
  34. "statusReports": "Relatórios de status"
  35. },
  36. "save": "Salvar",
  37. "pdf": "PDF",
  38. "email": "Email",
  39. "share": "Compartilhar",
  40. "notify": "Notificar",
  41. "delete": "Deletar",
  42. "unpaid": "Não Pago",
  43. "unsavedChanges": "Alterações não salvas",
  44. "saved": "Salvo",
  45. "joinCall": "Entrar na videochamada",
  46. "moreActions": "Mais ações",
  47. "designMenu": "Design da fatura",
  48. "designMenuLoading": "Verificando com qual design esta fatura é impressa...",
  49. "designMenuExplain": "Foi para o cliente em {date}, então ainda é impressa com o design do envio. Escolher outro muda apenas a aparência. O que a fatura diz continua como foi enviado, e a aparência anterior não é guardada.",
  50. "designSentWith": "O design com que foi enviada",
  51. "designFollow": "Seguir o design padrão",
  52. "designFollowNamed": "Seguir o design padrão ({name})",
  53. "designDefaultName": "o design padrão",
  54. "designPickConfirmTitle": "Mudar esta fatura para {name}?",
  55. "designPickConfirmBody": "Só a aparência muda. Os dados da oficina, o cliente, as condições de pagamento e os valores continuam exatamente como foram enviados. O design atual não é guardado, então isso não pode ser desfeito.",
  56. "designPickConfirm": "Mudar o design",
  57. "designPickDone": "A fatura agora é impressa com {name}",
  58. "designPickFailed": "Não foi possível alterar o design",
  59. "designRefresh": "Atualizar para os dados atuais",
  60. "designRefreshConfirmTitle": "Atualizar esta fatura para os dados atuais?",
  61. "designRefreshConfirmBody": "Os dados da oficina, o cliente, o veículo, as condições de pagamento e o design são lidos novamente como estão hoje, e a fatura fica bloqueada neles. As linhas e os totais pertencem à própria fatura e não mudam. As cópias já baixadas ou enviadas por e-mail permanecem como estavam; o link de compartilhamento e o portal mostram a fatura atualizada. Isso não pode ser desfeito.",
  62. "designRefreshConfirm": "Atualizar a fatura",
  63. "designRefreshDone": "Esta fatura agora é impressa com os dados atuais",
  64. "designRefreshFailed": "Não foi possível atualizar a fatura",
  65. "printWorkOrder": "Imprimir ordem de serviço"
  66. },
  67. "basicInfo": {
  68. "title": "Informações Básicas",
  69. "invoiceDetails": "Detalhes da fatura",
  70. "customerInfo": "Cliente e veículo",
  71. "paid": "Pago",
  72. "markPaid": "Marcar como pago",
  73. "markUnpaid": "Marcar como não pago",
  74. "vehicle": "Veículo",
  75. "open": "Abrir",
  76. "customer": "Cliente",
  77. "titleLabel": "Título *",
  78. "titlePlaceholder": "Troca de Óleo",
  79. "date": "Data",
  80. "type": "Tipo",
  81. "mileage": "Quilometragem",
  82. "mileageMarine": "Horas de Motor",
  83. "status": "Status",
  84. "technician": "Técnico",
  85. "invoiceNumber": "Número da Fatura",
  86. "invoiceDate": "Data da fatura",
  87. "invoiceDueDate": "Data de vencimento",
  88. "typeOptions": {
  89. "maintenance": "Manutenção",
  90. "repair": "Reparo",
  91. "upgrade": "Atualização",
  92. "inspection": "Inspeção"
  93. },
  94. "statusOptions": {
  95. "pending": "Pendente",
  96. "in_progress": "Em Progresso",
  97. "waiting_parts": "Aguardando Peças",
  98. "completed": "Concluído"
  99. },
  100. "searchVehicles": "Pesquisar veículos...",
  101. "noVehicleFound": "Nenhum veículo encontrado.",
  102. "techPicker": {
  103. "placeholder": "Selecionar ou digitar um nome...",
  104. "searchPlaceholder": "Pesquisar ou digitar nome...",
  105. "useCustom": "Usar \"{search}\"",
  106. "typePrompt": "Digite um nome...",
  107. "boardTechnicians": "Técnicos do Quadro",
  108. "teamMembers": "Membros do Time"
  109. },
  110. "design": "Design da fatura",
  111. "designDefault": "Padrão da oficina",
  112. "designFollowing": "Padrão ({name})",
  113. "designSaved": "Design da fatura atualizado",
  114. "designFollowingRule": "Padrão ({name}, {rule})",
  115. "designRule": {
  116. "parts_sale": "Venda apenas de peças"
  117. },
  118. "designSaveFailed": "Não foi possível alterar o design da fatura"
  119. },
  120. "parts": {
  121. "title": "Peças",
  122. "fromInventory": "Do Inventário",
  123. "addPart": "Adicionar Peça",
  124. "partNumber": "Nº da Peça",
  125. "category": "Categoria",
  126. "name": "Nome",
  127. "qty": "Qtd",
  128. "unitCost": "Custo",
  129. "unitCostHint": "Custo do fornecedor (interno, não exibido ao cliente)",
  130. "markupPercent": "Margem %",
  131. "markupPercentHint": "Margem aplicada ao custo (interno, não exibido ao cliente)",
  132. "applyMarkup": "Aplicar {percent}%",
  133. "applyMarkupHint": "Reaplicar margem de {percent}% ao custo em cada linha",
  134. "unitPrice": "Preço Unitário",
  135. "total": "Total",
  136. "namePlaceholder": "Nome *",
  137. "subtotal": "Subtotal de Peças: {amount}",
  138. "inventoryTitle": "Selecionar Peça do Inventário",
  139. "searchInventory": "Pesquisar inventário...",
  140. "inStock": "{quantity} em estoque",
  141. "noInventory": "Nenhuma peça de inventário encontrada.",
  142. "scanBarcode": "Escanear",
  143. "scanTitle": "Escanear código de barras",
  144. "partFound": "\"{name}\" adicionado do estoque",
  145. "partNotFound": "Nenhuma peça encontrada para o código de barras \"{barcode}\"",
  146. "deleteRow": "Excluir linha",
  147. "outOfStock": "Fora de estoque",
  148. "onBackorder": "Sob encomenda ({count})",
  149. "nameMissingHint": "Linhas sem nome da peça não são salvas."
  150. },
  151. "labor": {
  152. "title": "Mão de Obra e Serviços",
  153. "addLabor": "Adicionar Mão de Obra",
  154. "fromPresets": "De modelos",
  155. "description": "Descrição",
  156. "hours": "Horas",
  157. "rate": "Taxa ({currency}/h)",
  158. "total": "Total",
  159. "descriptionPlaceholder": "Descrição *",
  160. "subtotal": "Subtotal de Mão de Obra: {amount}",
  161. "addService": "Adicionar Serviço",
  162. "addFinding": "Observação",
  163. "newObservation": "Nova observação",
  164. "addExisting": "Ver existentes ({count})",
  165. "qty": "Qtd",
  166. "qtyOrHours": "Unidade / Horas",
  167. "hourlyTag": "HR",
  168. "serviceTag": "SVC",
  169. "hourlyHint": "Por hora: calculado pelas horas trabalhadas (horas × taxa/h). Clique para alterar.",
  170. "serviceHint": "Serviço: cobrado como valor fixo por unidade. Clique para alterar.",
  171. "deleteRow": "Excluir linha",
  172. "descriptionMissingHint": "Linhas sem descrição não são salvas.",
  173. "shopFeeTag": "Taxa",
  174. "shopFeeHintFlat": "A taxa de oficina das Configurações, como valor fixo. Altere o preço para este serviço ou exclua a linha para removê-la.",
  175. "shopFeeHintPercentLabor": "A taxa de oficina das Configurações: {percent} % da mão de obra deste serviço. Exclua a linha para removê-la.",
  176. "shopFeeHintPercentAll": "A taxa de oficina das Configurações: {percent} % da mão de obra e das peças deste serviço. Exclua a linha para removê-la."
  177. },
  178. "laborGuide": {
  179. "button": "Tabela de tempos",
  180. "title": "Tabela de tempos",
  181. "description": "Tempos de mão de obra e fluidos deste veículo",
  182. "tabLabor": "Tempos de mão de obra",
  183. "tabFluids": "Fluidos",
  184. "engine": "Motor",
  185. "categories": "Categorias de serviço",
  186. "allJobs": "Todos os serviços",
  187. "search": "Buscar serviços, como pastilhas de freio",
  188. "clearSearch": "Limpar busca",
  189. "jobCount": "{count, plural, one {# serviço} other {# serviços}}",
  190. "noMatch": "Nenhum serviço corresponde a “{query}”",
  191. "noJobs": "A tabela não lista serviços para este motor.",
  192. "showAll": "Mostrar todos os serviços",
  193. "showHours": "Ver horas",
  194. "show": "Ver",
  195. "lockedValue": "Não exibido com esta chave",
  196. "hours": "{hours} h",
  197. "range": "{low} a {high} h",
  198. "bookTime": "Tabela {hours} h",
  199. "add": "Adicionar como linha de mão de obra",
  200. "added": "Adicionado",
  201. "addJob": "Adicionar {job} como linha de mão de obra",
  202. "addedJob": "{job} foi adicionado",
  203. "addedCount": "{count, plural, one {# serviço adicionado} other {# serviços adicionados}}",
  204. "partsAddedCount": "{count, plural, one {# peça adicionada} other {# peças adicionadas}}",
  205. "done": "Concluir",
  206. "loading": "Buscando o veículo",
  207. "stillLooking": "Ainda buscando. A Open Labor Project pode levar até meio minuto para um veículo sobre o qual tem poucos dados.",
  208. "notFoundTitle": "Não está na tabela",
  209. "notFound": "A tabela de tempos não tem dados para este veículo. Confira se marca, modelo e ano estão escritos como o fabricante os nomeia, ou adicione o VIN.",
  210. "fluidsNotFoundTitle": "Sem especificações de fluidos para este veículo",
  211. "fluidsNotFound": "A Open Labor Project ainda não tem especificações de fluidos para este veículo.",
  212. "failedTitle": "A consulta não foi concluída",
  213. "failed": "A consulta falhou",
  214. "unlockFailed": "Não foi possível obter esse valor",
  215. "retry": "Tentar novamente",
  216. "matchNone": "Nenhum dos motores listados corresponde ao cadastrado para este veículo, então estes tempos podem ser de outro motor. Escolha acima o motor mais próximo.",
  217. "matchFuel": "O motor foi escolhido pelo tipo de combustível. Confira se é o correto.",
  218. "matchUnknown": "Este veículo não tem cilindrada cadastrada, então confira se o motor acima é o correto.",
  219. "hiddenByConfidence": "{count, plural, one {# tempo abaixo da sua confiança mínima está oculto.} other {# tempos abaixo da sua confiança mínima estão ocultos.}}",
  220. "changeSettings": "Alterar",
  221. "liters": "{value} L",
  222. "quarts": "{value} qt",
  223. "km": "{value} km",
  224. "miles": "{value} mi",
  225. "capacity": "Capacidade",
  226. "drainRefill": "Drenagem e reabastecimento",
  227. "interval": "Trocar a cada",
  228. "copySpec": "Copiar {spec}",
  229. "copied": "Copiado",
  230. "noFluids": "A tabela não lista fluidos para este motor.",
  231. "addAsPart": "Adicionar como peça",
  232. "addFluidAsPart": "Adicionar {system} como peça",
  233. "partAdded": "Adicionado",
  234. "fromStock": "Do estoque",
  235. "addWithoutStock": "Adicionar sem item do estoque",
  236. "takesDrainRefill": "Leva {amount} ao drenar e reabastecer",
  237. "takesCapacity": "Leva {amount} no total",
  238. "attribution": "Dados de {source}",
  239. "market": "Mercado: {region}",
  240. "about": "Qual a confiabilidade?",
  241. "aboutTitle": "Confiabilidade segundo a fonte",
  242. "estimateNote": "Valores marcados como Estimativa são gerados por IA e não foram conferidos com os dados do fabricante. Confira-os antes de fazer um orçamento para um cliente.",
  243. "lockedNote": "Esta chave mostra os valores um de cada vez, e cada um conta como uma consulta. Um plano pago mostra todos de uma vez.",
  244. "settings": "Configurações da tabela de tempos",
  245. "confidence": {
  246. "oem": "OEM",
  247. "oemHelp": "Conferido com os dados do fabricante",
  248. "high": "Verificado",
  249. "highHelp": "Verificado pela fonte",
  250. "medium": "Média",
  251. "mediumHelp": "A fonte classifica este valor com confiança média",
  252. "estimated": "Estimativa",
  253. "estimatedHelp": "Gerado por IA e não conferido com os dados do fabricante"
  254. }
  255. },
  256. "liveLabor": {
  257. "title": "{count, plural, one {Um técnico adicionou mão de obra a esta ordem} other {Um técnico adicionou # linhas de mão de obra a esta ordem}}",
  258. "body": "Ela fica fora da lista enquanto você edita. O próximo salvamento a inclui de qualquer forma.",
  259. "show": "Mostrar"
  260. },
  261. "totals": {
  262. "title": "Totais",
  263. "parts": "Peças",
  264. "labor": "Mão de Obra",
  265. "subtotal": "Subtotal",
  266. "subtotalInclTax": "Subtotal (com imposto)",
  267. "discount": "Desconto",
  268. "discountNone": "Nenhum",
  269. "discountOff": "Não",
  270. "discountPercentage": "Percentual",
  271. "discountFixed": "Fixo",
  272. "tax": "Imposto",
  273. "taxIncluded": "Imposto (incl.)",
  274. "taxableAmount": "Base tributável",
  275. "total": "Total",
  276. "inclusiveModeHint": "Os preços das linhas são inseridos com imposto incluído. Os totais mostram a divisão líquido + imposto.",
  277. "partsCost": "Custo das peças (interno)"
  278. },
  279. "lineTax": {
  280. "label": "Imposto nesta linha",
  281. "taxedTag": "IMP.",
  282. "untaxedTag": "SEM IMP.",
  283. "taxedHint": "Esta linha tem imposto. Clique para deixá-la fora do imposto.",
  284. "untaxedHint": "Esta linha não tem imposto. Clique para aplicar."
  285. },
  286. "taxOffer": {
  287. "noTax": "Isto foi criado sem imposto. A oficina agora cobra {rate}%.",
  288. "otherRate": "Isto está em {current}%. A oficina agora cobra {rate}%.",
  289. "apply": "Aplicar {rate}% de imposto",
  290. "failed": "Não foi possível atualizar o imposto",
  291. "saveFirst": "Salve as alterações primeiro e depois aplique o imposto."
  292. },
  293. "notes": {
  294. "title": "Notas",
  295. "public": "Público",
  296. "internal": "Interno",
  297. "publicPlaceholder": "Notas visíveis na fatura...",
  298. "internalPlaceholder": "Notas internas (não mostradas na fatura)...",
  299. "publicHelper": "Mostrado na fatura e documentos compartilhados",
  300. "internalHelper": "Visível apenas para seu time",
  301. "aiWrite": "AI Escrever",
  302. "aiGenerated": "Notas AI geradas com sucesso",
  303. "aiGenerateFailed": "Falha ao gerar notas AI",
  304. "aiDialogTitle": "IA Escrever",
  305. "aiDialogDescription": "A IA analisará as peças e a mão de obra neste registro de serviço e gerará uma descrição profissional. O resultado será escrito no tipo de nota selecionado.",
  306. "aiGenerate": "Gerar",
  307. "aiOverwriteDescription": "Esta nota já possui conteúdo. Você pode substituí-lo ou adicionar o texto gerado pela IA abaixo.",
  308. "aiOverwriteReplace": "Substituir",
  309. "aiOverwriteAppend": "Adicionar",
  310. "aiOverwriteCancel": "Cancelar",
  311. "aiDontShowAgain": "Não mostrar novamente",
  312. "internalTitle": "Notas internas",
  313. "publicTitle": "Notas para o cliente"
  314. },
  315. "invoice": {
  316. "title": "Resumo da Fatura",
  317. "parts": "Peças",
  318. "labor": "Mão de Obra",
  319. "subtotal": "Subtotal",
  320. "subtotalInclTax": "Subtotal (com imposto)",
  321. "discount": "Desconto",
  322. "tax": "Imposto ({rate}%)",
  323. "taxIncluded": "Imposto (incl., {rate}%)",
  324. "taxableAmount": "Base tributável",
  325. "total": "Total",
  326. "paid": "Pago",
  327. "balanceDue": "Saldo Devedor",
  328. "paidBadge": "PAGO",
  329. "entityLabel": "Fatura",
  330. "emailSubject": "Confirmação de Pagamento",
  331. "statusEmailSubject": "Atualização do status do serviço",
  332. "markCompletedTitle": "Marcar esta fatura como concluída?",
  333. "markCompletedDescription": "Ela já foi enviada ao cliente, mas continua marcada como não finalizada, então seguirá aparecendo no quadro.",
  334. "markCompletedConfirm": "Marcar como concluída",
  335. "lockedFieldsetLabel": "Fatura bloqueada, edição desativada"
  336. },
  337. "payments": {
  338. "title": "Pagamentos",
  339. "markUnpaid": "Marcar como Não Pago",
  340. "markPaid": "Marcar como Pago",
  341. "recordPayment": "Registrar Pagamento",
  342. "totalPaid": "Total Pago",
  343. "amount": "Valor",
  344. "date": "Data",
  345. "method": "Método",
  346. "note": "Nota",
  347. "notePlaceholder": "Nota opcional",
  348. "savePayment": "Salvar Pagamento",
  349. "methodOptions": {
  350. "cash": "Dinheiro",
  351. "card": "Cartão",
  352. "transfer": "Transferência",
  353. "other": "Outro"
  354. },
  355. "recorded": "Pagamento registrado",
  356. "markedPaid": "Marcado como pago",
  357. "markedUnpaid": "Marcado como não pago",
  358. "deleted": "Pagamento deletado",
  359. "failedRecord": "Falha ao registrar pagamento",
  360. "failedStatus": "Falha ao atualizar status do pagamento",
  361. "failedDelete": "Falha ao deletar pagamento",
  362. "deleteTitle": "Deletar Pagamento",
  363. "deleteDescription": "Isto vai remover este registro de pagamento.",
  364. "failedPdf": "Falha ao gerar PDF da fatura",
  365. "received": "Pagamentos recebidos",
  366. "noneYet": "Nada pago ainda.",
  367. "balanceDue": "Saldo devedor"
  368. },
  369. "attachments": {
  370. "deleteTitle": "Deletar Anexo",
  371. "deleteDescription": "Isto vai deletar permanentemente este anexo. Isto não pode ser desfeito.",
  372. "deleted": "Anexo deletado",
  373. "failedDelete": "Falha ao deletar",
  374. "images": "Imagens ({count})",
  375. "videos": "Vídeos ({count})",
  376. "diagnostics": "Relatórios de Diagnóstico ({count})",
  377. "documents": "Documentos ({count})",
  378. "download": "Baixar",
  379. "close": "Fechar"
  380. },
  381. "share": {
  382. "title": "Compartilhar Fatura",
  383. "description": "Gere um link público que permita qualquer pessoa visualizar e baixar esta fatura sem fazer login.",
  384. "notifyTitle": "Notificar {name}",
  385. "email": "Email",
  386. "noEmail": "(sem email registrado)",
  387. "sms": "SMS",
  388. "noPhone": "(sem telefone registrado)",
  389. "sendNotification": "Enviar Notificação",
  390. "revokeLink": "Revogar Link",
  391. "generateLink": "Gerar Link Público",
  392. "emailSent": "Email enviado",
  393. "failedEmail": "Falha ao enviar email",
  394. "smsSent": "SMS enviado",
  395. "failedSms": "Falha ao enviar SMS",
  396. "copyLink": "Copiar link"
  397. },
  398. "sidebar": {
  399. "vehicle": "Veículo",
  400. "customer": "Cliente",
  401. "vin": "VIN: {vin}",
  402. "mileageAtService": "Quilometragem no serviço: {mileage} {unit}",
  403. "engineHoursAtService": "Horas de motor no serviço: {mileage} {unit}",
  404. "sharedLink": {
  405. "title": "Link compartilhado",
  406. "sharedOn": "Compartilhado em {date}",
  407. "notViewed": "Ainda não visualizado",
  408. "viewedTimes": "Visualizado {count, plural, one {# vez} other {# vezes}}",
  409. "lastViewed": "Último {date}",
  410. "copyLink": "Copiar link",
  411. "linkCopied": "Link copiado"
  412. }
  413. },
  414. "images": {
  415. "title": "Imagens do Serviço",
  416. "dropzone": "Arraste imagens aqui ou clique para navegar",
  417. "uploading": "Enviando...",
  418. "formats": "JPG, PNG, WebP (máx. 10MB cada)",
  419. "uploadingImages": "Enviando imagens...",
  420. "limitReached": "Limite de imagens atingido ({count}/{max})",
  421. "upgradePrompt": "Atualize seu plano para enviar mais imagens.",
  422. "onlyAllowed": "Apenas imagens JPG, PNG e WebP são permitidas. {names} ignorado(s).",
  423. "onlyUploading": "Enviando apenas {count} imagem(ns) para não exceder o limite.",
  424. "uploadingCount": "Enviando {count} imagem(ns)...",
  425. "uploadedCount": "{count} imagem(ns) enviada(s)",
  426. "uploadFailed": "Falha no envio",
  427. "deleted": "Imagem deletada",
  428. "failedDelete": "Falha ao deletar imagem",
  429. "failedUpdate": "Falha ao atualizar",
  430. "description": "Descrição...",
  431. "invoice": "Fatura"
  432. },
  433. "videos": {
  434. "title": "Vídeos do Serviço",
  435. "dropzone": "Arraste vídeos aqui ou clique para navegar",
  436. "uploading": "Enviando...",
  437. "formats": "MP4, WebM, MOV (máx. 10MB cada)",
  438. "uploadingVideos": "Enviando vídeos...",
  439. "uploadingCount": "Enviando {count} vídeo(s)...",
  440. "uploadedCount": "{count} vídeo(s) enviado(s)",
  441. "uploadFailed": "Falha no envio",
  442. "deleted": "Vídeo deletado",
  443. "failedDelete": "Falha ao deletar vídeo",
  444. "failedUpdate": "Falha ao atualizar",
  445. "invoice": "Fatura"
  446. },
  447. "documents": {
  448. "diagnosticTitle": "Relatórios de Diagnóstico",
  449. "documentsTitle": "Documentos",
  450. "dropzone": "Arraste arquivos aqui ou clique para navegar",
  451. "uploading": "Enviando...",
  452. "diagnosticFormats": "PDF, CSV, TXT (máx. 10MB cada)",
  453. "documentFormats": "PDF, DOCX, XLSX, CSV, TXT (máx. 10MB cada)",
  454. "uploadingReports": "Enviando relatórios...",
  455. "uploadingDocuments": "Enviando documentos...",
  456. "diagnosticLimitReached": "Limite de relatórios de diagnóstico atingido ({count}/{max})",
  457. "documentLimitReached": "Limite de documentos atingido ({count}/{max})",
  458. "upgradePrompt": "Atualize seu plano para enviar mais.",
  459. "diagnosticLabel": "Relatório de diagnóstico",
  460. "documentLabel": "Documento",
  461. "limitReachedToast": "Limite de {label} atingido ({count}/{max}). Atualize seu plano para mais.",
  462. "onlyUploading": "Enviando apenas {count} arquivo(s) para não exceder o limite.",
  463. "uploadingCount": "Enviando {count} arquivo(s)...",
  464. "uploadedCount": "{count} arquivo(s) enviado(s)",
  465. "uploadFailed": "Falha no envio",
  466. "deleted": "Arquivo deletado",
  467. "failedDelete": "Falha ao deletar arquivo",
  468. "failedUpdate": "Falha ao atualizar",
  469. "invoice": "Fatura"
  470. },
  471. "schedule": {
  472. "title": "Agendamento",
  473. "date": "Data",
  474. "startTime": "Hora de início",
  475. "endTime": "Hora de término",
  476. "durationPresets": "Duração",
  477. "technician": "Técnico",
  478. "selectTechnician": "Selecionar técnico...",
  479. "searchOrCreate": "Buscar ou criar técnico...",
  480. "createTechnician": "Criar \"{name}\"",
  481. "creating": "Criando...",
  482. "failedCreate": "Falha ao criar técnico",
  483. "addNew": "+ Adicionar novo",
  484. "add": "Adicionar",
  485. "newTechPlaceholder": "Nome do técnico...",
  486. "assign": "Atribuir ao quadro",
  487. "assigned": "Atribuído ao quadro de trabalho",
  488. "failedAssign": "Falha ao atribuir",
  489. "assignNotAllowed": "Você não tem permissão para atribuir técnicos. Peça a um proprietário ou administrador que permita à sua função alterar o quadro de trabalho.",
  490. "endBeforeStart": "A hora de término deve ser após a hora de início",
  491. "failedUpdate": "Falha ao atualizar o agendamento",
  492. "splitCreated": "O trabalho abrange vários dias. Continuação criada para o dia seguinte",
  493. "customTechnicians": "Personalizados",
  494. "readMore": "Saiba mais",
  495. "setDefaults": "Valores padrão",
  496. "workBay": "Baia",
  497. "selectWorkBay": "Selecionar baia…",
  498. "noWorkBay": "Sem baia",
  499. "noTechnician": "Sem técnico",
  500. "technicians": "Técnicos",
  501. "otherTeamMembers": "Outros membros da equipe",
  502. "makeTechnician": "Torna essa pessoa técnica",
  503. "addSomeoneNew": "Adicionar alguém novo",
  504. "notOnBoard": "Ainda não está no quadro",
  505. "putOnBoard": "Colocar no quadro",
  506. "slotTaken": "{count, plural, one {Este horário já está reservado} other {Este horário tem # conflitos}}",
  507. "anotherJob": "outro serviço",
  508. "clashTechnician": "o técnico está ocupado",
  509. "clashBay": "o box está ocupado",
  510. "clashBoth": "ambos estão ocupados",
  511. "bookedAnyway": "Salvo mesmo assim. Altere o horário ou escolha o próximo horário livre.",
  512. "pickNextAvailable": "Escolher o próximo horário livre",
  513. "findingSlot": "Procurando um horário…",
  514. "slotPicked": "Agendado no próximo horário livre",
  515. "noSlotFound": "Nenhum horário livre encontrado nas próximas semanas",
  516. "assignedTitle": "Técnico responsável",
  517. "boardLink": "Quadro de Trabalho",
  518. "someoneElse": "Outra pessoa",
  519. "loadOf": "{booked} / {capacity} h",
  520. "loadFree": "{hours} h livres",
  521. "loadFull": "Agenda cheia",
  522. "loadOn": "Horas agendadas em {date}",
  523. "promisedAt": "Prometido ao cliente",
  524. "promisedPlaceholder": "Ainda não prometido",
  525. "promisedClear": "Limpar"
  526. },
  527. "notifications": {
  528. "title": "Notificações ao cliente",
  529. "viaSms": "via SMS",
  530. "viaEmail": "via e-mail",
  531. "justNow": "Agora mesmo",
  532. "minutesAgo": "{count}m atrás",
  533. "hoursAgo": "{count}h atrás",
  534. "daysAgo": "{count}d atrás"
  535. },
  536. "table": {
  537. "warranty": "Garantia"
  538. },
  539. "warranty": {
  540. "title": "Garantia",
  541. "months": "Duração (meses)",
  542. "notes": "Termos de garantia",
  543. "notesPlaceholder": "ex. Garantia de 12 meses em todas as peças e mão de obra...",
  544. "expiresAt": "Expira",
  545. "presets": {
  546. "3months": "3 m",
  547. "6months": "6 m",
  548. "12months": "12 m",
  549. "24months": "24 m"
  550. },
  551. "status": {
  552. "active": "Ativa",
  553. "expiring": "Expirando",
  554. "expired": "Expirada",
  555. "none": "N/A"
  556. },
  557. "statementLabel": "O que o cliente é informado sobre a garantia",
  558. "statement": {
  559. "none": "Não informado",
  560. "included": "Incluída",
  561. "not_included": "Não incluída"
  562. },
  563. "noneHint": "Nada sobre garantia é impresso neste documento.",
  564. "mileageWithUnit": "Limite de distância ({unit})",
  565. "notIncludedNotes": "Declaração ao cliente",
  566. "notIncludedPlaceholder": "ex.: A oficina não oferece garantia sobre peças fornecidas pelo cliente.",
  567. "printedHint": "Impresso abaixo da garantia no documento.",
  568. "notIncludedHint": "Deixe em branco e o documento dirá que os direitos legais não são afetados.",
  569. "summaryMonths": "{count} m"
  570. },
  571. "concerns": {
  572. "title": "Relatos do cliente",
  573. "hint": "Por que o cliente veio, nas palavras do próprio cliente. Uma linha para cada coisa mencionada.",
  574. "add": "Adicionar outro",
  575. "placeholder": "Faz um barulho atrás quando eu freio",
  576. "remove": "Remover este item",
  577. "notAnswered": "Nada encontrado sobre isso ainda",
  578. "answered": "{count} constatação(ões) sobre isso",
  579. "storyTitle": "Descrição do serviço",
  580. "storyHint": "Condição, causa, correção, confirmação. Clique em uma etapa para abri-la; uma linha para cada coisa que o cliente relatou ou que você observou.",
  581. "steps": {
  582. "condition": "Condição",
  583. "cause": "Causa",
  584. "correction": "Correção",
  585. "confirm": "Confirmação"
  586. },
  587. "conditionPlaceholder": "O que o cliente relatou, ou o que você observou",
  588. "causePlaceholder": "O que os testes mostraram ser a causa raiz",
  589. "correctionPlaceholder": "O que foi feito para resolver",
  590. "confirmPlaceholder": "Como o reparo foi verificado: test drive, nova leitura com o scanner, sintoma resolvido",
  591. "markConfirmed": "Confirmado",
  592. "confirmedBy": "Confirmado por {name}, {date}",
  593. "confirmedAt": "Confirmado em {date}",
  594. "confirmedOnSave": "Marcado com o seu nome ao salvar",
  595. "confirmedCount": "{confirmed} de {total} confirmados",
  596. "findingsCount": "{count, plural, one {# observação} other {# observações}}",
  597. "addFinding": "Adicionar observação",
  598. "unconfirmedTitle": "Concluir com relatos não confirmados?",
  599. "unconfirmedBody": "{count, plural, one {Um relato ainda não foi confirmado como resolvido:} other {# relatos ainda não foram confirmados como resolvidos:}}",
  600. "unconfirmedProceed": "Concluir mesmo assim",
  601. "addMedia": "Adicionar mídia",
  602. "mediaUploading": "Enviando…",
  603. "mediaAdded": "{count, plural, one {# arquivo adicionado} other {# arquivos adicionados}}",
  604. "mediaFailed": "Não foi possível enviar {name}",
  605. "mediaTypes": "Escolha uma foto (JPG, PNG, WebP) ou um vídeo.",
  606. "dictate": {
  607. "start": "Ditar",
  608. "listening": "Ouvindo",
  609. "startHint": "Fale e o texto aparece aqui. Nada é gravado.",
  610. "stopHint": "Parar de ouvir",
  611. "notAllowed": "O navegador não teve permissão para usar o microfone. Permita o acesso para este site e tente novamente.",
  612. "noMicrophone": "Nenhum microfone encontrado.",
  613. "failed": "O ditado parou. Tente novamente.",
  614. "startHintServer": "Fale e o texto aparece enquanto você fala. O áudio vai para o seu modelo de voz para ser transcrito e não é guardado.",
  615. "transcribing": "Finalizando…",
  616. "language": "Idioma falado",
  617. "auto": "Automático",
  618. "nothingHeard": "Nada foi ouvido.",
  619. "fellBack": "Usando o ditado do próprio navegador por enquanto.",
  620. "autoLong": "Automático (detectar o idioma)",
  621. "engine": "Transcrito por",
  622. "engineAi": "Modelo de voz (mais preciso)",
  623. "engineBrowser": "Navegador (escreve enquanto você fala)",
  624. "liveFellBack": "Escrevendo em blocos de alguns segundos em vez de palavra por palavra."
  625. },
  626. "stepEmpty": "Ainda não preenchido",
  627. "removeTitle": "Remover este relato?",
  628. "removeBody": "A condição, a causa, a correção e a confirmação dele são removidas junto quando você salvar a ordem de serviço.",
  629. "removeAttached": "As observações e mídias dele continuam no serviço, mas deixam de ficar vinculadas a um relato.",
  630. "removeConfirm": "Remover relato",
  631. "saveFirst": "Salve a ordem de serviço primeiro"
  632. },
  633. "videoCall": {
  634. "title": "Videochamada",
  635. "none": "Nenhuma videochamada nesta ordem de serviço.",
  636. "needsSchedule": "Defina um horário de início primeiro. A reunião segue o agendamento.",
  637. "add": "Adicionar reunião do {provider}",
  638. "addedHere": "adicionada por esta ordem de serviço",
  639. "fromCalendar": "do evento do calendário",
  640. "join": "Entrar",
  641. "copy": "Copiar link",
  642. "copied": "Link copiado",
  643. "remove": "Remover",
  644. "removeTitle": "Remover a videochamada?",
  645. "removeDescription": "A reunião é excluída no provedor. Quem já tem o link não poderá mais entrar.",
  646. "created": "Reunião criada. O link está na ordem de serviço.",
  647. "removed": "Reunião removida",
  648. "failed": "Algo deu errado",
  649. "shareHint": "O cliente só recebe este link quando você envia.",
  650. "shareHintNoChannel": "O cliente só recebe este link quando você envia. Nenhum canal de mensagens está configurado, então copie-o você mesmo em uma mensagem.",
  651. "send": {
  652. "button": "Enviar ao cliente",
  653. "title": "Enviar o link da videochamada",
  654. "description": "Enviar o link de entrada para {name}.",
  655. "messageLabel": "Observação (opcional)",
  656. "messagePlaceholder": "O que o cliente deve saber antes da chamada...",
  657. "linkAlwaysIncluded": "O link de entrada é sempre adicionado abaixo da sua observação.",
  658. "sms": "SMS",
  659. "email": "E-mail",
  660. "telegram": "Telegram",
  661. "noPhone": "(sem telefone)",
  662. "noEmail": "(sem e-mail)",
  663. "noTelegram": "(sem chat vinculado)",
  664. "notAvailable": "(não configurado)",
  665. "cancel": "Cancelar",
  666. "send": "Enviar",
  667. "sent": "Link da videochamada enviado",
  668. "partlySent": "Enviado por {sent}; não por {failed}",
  669. "failed": "Não foi possível enviar o link"
  670. },
  671. "notify": {
  672. "invitation": "Olá {name}, sua videochamada sobre o {vehicle} é em {when}. Entre aqui: {url}",
  673. "invitationNoTime": "Olá {name}, aqui está o link da videochamada sobre o {vehicle}: {url}",
  674. "joinLine": "Entre na videochamada aqui: {url}",
  675. "emailSubject": "Videochamada sobre o seu {vehicle}"
  676. }
  677. },
  678. "modern": {
  679. "statusLabel": "Status da ordem de serviço",
  680. "back": "Voltar",
  681. "backToClassic": "Voltar ao layout clássico",
  682. "openCustomer": "Abrir cliente",
  683. "serviceHistory": "Histórico de serviços",
  684. "changeVehicle": "Trocar veículo",
  685. "vehicleChangesOnSave": "A ordem de serviço passa para este veículo quando você salvar.",
  686. "phone": "Telefone",
  687. "email": "E-mail",
  688. "notSet": "Não definido",
  689. "noCustomer": "Nenhum cliente nesta ordem de serviço.",
  690. "invoiceTitle": "Fatura e pagamento",
  691. "filesTitle": "Arquivos e mídia",
  692. "activity": {
  693. "title": "Atividade",
  694. "messageSent": "Mensagem enviada ao cliente",
  695. "linkShared": "Link da fatura compartilhado",
  696. "linkViewed": "{count, plural, one {O cliente abriu o link} other {O cliente abriu o link # vezes}}",
  697. "paymentTaken": "Pagamento de {amount} registrado",
  698. "statusSet": "Status alterado para {status}"
  699. },
  700. "invite": {
  701. "title": "A página da ordem de serviço foi reformulada.",
  702. "body": "Um layout mais claro com os mesmos campos. Você pode voltar ao anterior a qualquer momento.",
  703. "try": "Experimentar agora",
  704. "dismiss": "Agora não",
  705. "menu": "Experimentar o novo layout"
  706. },
  707. "promised": "Prometida para {date}",
  708. "promisedOverdue": "Prometida para {date}, atrasada",
  709. "opened": "Aberta em {date}",
  710. "openedBy": "Aberta em {date} por {name}",
  711. "editTitle": "Editar título",
  712. "titleField": "Título",
  713. "media": {
  714. "tabs": {
  715. "all": "Tudo",
  716. "photos": "Fotos",
  717. "diagnostics": "Diagnóstico",
  718. "dropoff": "Entrada"
  719. },
  720. "summary": "{count, plural, one {# arquivo} other {# arquivos}} · o cliente só vê o que estiver marcado",
  721. "customerCanSee": "Visível para o cliente",
  722. "showToCustomer": "Mostrar ao cliente",
  723. "hideFromCustomer": "Ocultar do cliente",
  724. "add": {
  725. "all": "Adicionar arquivos",
  726. "image": "Adicionar fotos",
  727. "document": "Adicionar documentos",
  728. "diagnostic": "Adicionar relatório de diagnóstico",
  729. "video": "Adicionar vídeo",
  730. "dropoff": "Adicionar fotos de entrada"
  731. },
  732. "dropHint": "Arraste arquivos aqui ou clique para procurar",
  733. "added": "{count, plural, one {# arquivo adicionado} other {# arquivos adicionados}}",
  734. "failed": "Não foi possível enviar {name}",
  735. "wrongType": "Tipo de arquivo errado para esta aba: {names}",
  736. "limit": "Limite atingido ({count}/{max})",
  737. "dropoffHint": "O carro como chegou, com a hora de cada foto. Fica com a oficina e não é mostrado ao cliente, a menos que você escolha.",
  738. "onInvoice": "Incluir o estado do veículo nesta fatura",
  739. "onInvoiceHint": "Desligado a menos que você marque aqui. Para imprimir em todas as faturas, ative Estado do veículo no designer de faturas.",
  740. "onInvoiceByDesign": "Ativado no designer de faturas para todas as faturas. Desmarque para omitir nesta.",
  741. "onInvoiceFailed": "Não foi possível salvar a escolha"
  742. },
  743. "moneyBar": {
  744. "total": "Total",
  745. "paid": "Pago",
  746. "balance": "Saldo devedor",
  747. "settled": "Pago integralmente",
  748. "takePayment": "Receber pagamento",
  749. "preview": "Pré-visualizar fatura",
  750. "previewShort": "Pré-visualizar",
  751. "send": "Enviar ao cliente",
  752. "sendShort": "Enviar"
  753. },
  754. "vehicleInfo": {
  755. "more": "Mais informações",
  756. "less": "Menos informações",
  757. "copy": "Copiar {label}",
  758. "copied": "Copiado",
  759. "lastInspection": "Última inspeção periódica",
  760. "purchaseDate": "Data de compra",
  761. "purchasePrice": "Preço de compra",
  762. "overdue": "vencida",
  763. "customerSince": "Cliente desde"
  764. },
  765. "moreStatuses": "Mais status",
  766. "addStatus": "Adicionar status",
  767. "fromInspection": "Da inspeção {name}, {date}",
  768. "fromQuote": "Do orçamento {ref}",
  769. "startInspection": "Iniciar inspeção"
  770. },
  771. "photoHandoff": {
  772. "button": "Adicionar pelo celular",
  773. "dialogTitle": "Adicionar fotos e documentos pelo celular",
  774. "dialogBody": "Tire ou escolha fotos, ou compartilhe um PDF, em qualquer celular. Tudo vai direto para esta ordem de serviço.",
  775. "expires": "O código vale até as {time}.",
  776. "waiting": "Aguardando fotos e documentos…",
  777. "received": "{count, plural, one {# arquivo recebido} other {# arquivos recebidos}}",
  778. "copyLink": "Copiar link",
  779. "linkCopied": "Link copiado",
  780. "failed": "Não foi possível gerar o código. Tente novamente.",
  781. "done": "Concluído",
  782. "pageTitle": "Adicionar fotos e documentos",
  783. "forJob": "Ordem de serviço {number}",
  784. "takePhoto": "Tirar foto",
  785. "choosePhotos": "Escolher fotos",
  786. "hint": "Tudo vai direto para a ordem de serviço. Tire quantas fotos precisar.",
  787. "uploading": "Enviando…",
  788. "added": "Adicionada",
  789. "notAdded": "Não adicionada",
  790. "retry": "Tentar novamente",
  791. "addedCount": "{count, plural, one {# arquivo adicionado} other {# arquivos adicionados}}",
  792. "expiredTitle": "Este código expirou",
  793. "invalidTitle": "Este link não funciona",
  794. "errors": {
  795. "expired": "Peça um novo código no balcão. Cada código vale por 30 minutos.",
  796. "invalid": "Escaneie de novo o código na ordem de serviço.",
  797. "limit": "Esta ordem de serviço já tem todas as fotos que comporta.",
  798. "type": "Aqui só é possível adicionar fotos e documentos PDF.",
  799. "tooLarge": "Esse arquivo é grande demais.",
  800. "failed": "A foto não foi adicionada. Verifique a conexão e tente novamente.",
  801. "codeLimit": "Este código já adicionou todas as fotos que um código permite. Escaneie um novo código no balcão."
  802. },
  803. "concernHeading": "As fotos vão para este relato",
  804. "howTitle": "Como funciona",
  805. "step1": "Aponte a câmera do celular para o código e abra o link.",
  806. "step2": "Tire fotos, ou escolha fotos ou documentos PDF que já estão no celular.",
  807. "step3": "Elas aparecem nesta ordem de serviço assim que chegam.",
  808. "noSignIn": "Não é preciso entrar na conta no celular.",
  809. "customerToo": "A equipe pode usar, e o cliente também: deixe-o escanear o código ou envie o link para ele.",
  810. "scope": "O link só adiciona fotos e documentos a esta ordem de serviço e para de funcionar após 30 minutos.",
  811. "scanHint": "Escaneie com a câmera do celular",
  812. "chooseDocument": "Enviar um documento",
  813. "privacy": "Só a oficina vê o que você adiciona aqui.",
  814. "dropoff": {
  815. "button": "Fotos de entrada",
  816. "dialogTitle": "Fotografe o carro na chegada",
  817. "dialogBody": "Uma volta no carro antes de começar: os quatro lados, o hodômetro e os danos que já existem. É a sua prova se um risco for questionado.",
  818. "step2": "Siga a lista no celular: uma foto de cada lado, o hodômetro e os danos.",
  819. "scope": "O link só adiciona fotos de entrada a esta ordem de serviço e para de funcionar após 30 minutos.",
  820. "pageTitle": "O carro na chegada",
  821. "pageBody": "Tire cada foto em ordem. Adicione um close dos danos que já existem.",
  822. "retake": "Refazer",
  823. "slots": {
  824. "front": "Frente",
  825. "right": "Lado direito",
  826. "rear": "Traseira",
  827. "left": "Lado esquerdo",
  828. "odometer": "Hodômetro",
  829. "other": "Dano ou outro"
  830. }
  831. }
  832. },
  833. "payCode": {
  834. "button": "Código de pagamento",
  835. "title": "Pagar escaneando",
  836. "body": "O cliente escaneia com a câmera do celular, a fatura abre e ele paga ali.",
  837. "sharesInvoice": "Mostrar o código compartilha a fatura com o cliente, do mesmo modo que enviá-la. A partir daí a fatura mantém os dados que tem agora.",
  838. "show": "Mostrar o código",
  839. "failed": "Não foi possível criar o código. Tente novamente.",
  840. "toPay": "A pagar",
  841. "scanHint": "Escaneie com a câmera do celular",
  842. "copyLink": "Copiar link",
  843. "linkCopied": "Link copiado",
  844. "waiting": "Aguardando o pagamento. Atualiza sozinho.",
  845. "paid": "Pagamento recebido",
  846. "paidBody": "O pagamento está na ordem de serviço.",
  847. "done": "Concluir"
  848. },
  849. "customStatus": {
  850. "defaultMessage": "Olá {customer_name}, uma atualização sobre o seu {vehicle}: {status}. {company_name}"
  851. }
  852. }