reminders.json 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. {
  2. "error": "Não foi possível carregar os lembretes",
  3. "showing": "A mostrar {count} de {total}",
  4. "deleted": "Lembrete eliminado",
  5. "deleteError": "Não foi possível eliminar o lembrete",
  6. "vehicle": "Viatura",
  7. "selectVehicle": "Selecionar viatura...",
  8. "searchVehicle": "Pesquisar viaturas...",
  9. "noVehicle": "Nenhuma viatura encontrada.",
  10. "pickDate": "Escolher uma data",
  11. "openMenu": "Abrir menu",
  12. "relatesTo": "Refere-se a (opcional)",
  13. "selectCustomer": "Cliente (opcional)",
  14. "noneOption": "Nenhum",
  15. "workshopHint": "Nenhum cliente ou viatura selecionado: este é um lembrete geral da oficina.",
  16. "workshopReminder": "Oficina",
  17. "import": {
  18. "button": "Importar",
  19. "title": "Importar lembretes",
  20. "description": "Carregue um ficheiro CSV ou Excel com um lembrete por linha. Verá cada linha antes de qualquer coisa ser guardada.",
  21. "drop": "Largue aqui um ficheiro CSV ou Excel",
  22. "formats": "CSV ou Excel (.xlsx), até {rows} linhas",
  23. "browse": "Escolher ficheiro",
  24. "reading": "A ler o ficheiro...",
  25. "templateHint": "Comece pelo modelo para acertar nas colunas.",
  26. "templateXlsx": "Modelo Excel",
  27. "templateCsv": "Modelo CSV",
  28. "columnsTitle": "Colunas no ficheiro",
  29. "required": {
  30. "yes": "Obrigatória",
  31. "dateOrMileage": "Data ou quilometragem",
  32. "no": "Opcional"
  33. },
  34. "columns": {
  35. "title": "O que é preciso fazer, por exemplo \"Mudança de óleo\".",
  36. "dueDate": "O dia em que vence. 2026-10-15 funciona sempre, e formatos como 15.10.2026 ou 10/15/2026 são detetados.",
  37. "dueTime": "Hora do dia, por exemplo 14:30, no fuso horário da oficina. Deixe em branco para qualquer hora desse dia.",
  38. "dueMileage": "A leitura do conta-quilómetros em que vence, em {unit}.",
  39. "description": "Qualquer detalhe adicional.",
  40. "licensePlate": "Associa o lembrete a uma viatura. Espaços e hífenes são ignorados.",
  41. "vin": "Associa o lembrete a uma viatura, útil quando não há matrícula.",
  42. "customer": "E-mail, número de cliente ou nome exato. Usado apenas quando a linha não tem viatura.",
  43. "emailNotification": "Sim ou não. Envia um e-mail quando o lembrete vence. As notificações na aplicação estão sempre ativas."
  44. },
  45. "targetRule": "Uma linha sem viatura e sem cliente torna-se um lembrete da oficina. As linhas que correspondem a um lembrete em aberto são ignoradas, por isso carregar o mesmo ficheiro duas vezes não acrescenta nada.",
  46. "summary": {
  47. "ready": "Prontos: {count}",
  48. "duplicates": "Já existem: {count}",
  49. "errors": "Por corrigir: {count}"
  50. },
  51. "ignoredColumns": "Colunas não lidas: {columns}",
  52. "rowLabel": "Linha {line}",
  53. "untitled": "(sem título)",
  54. "issues": {
  55. "missingTitle": "O título está vazio.",
  56. "missingDue": "Precisa de uma data de vencimento ou de uma quilometragem de vencimento.",
  57. "badDate": "Não foi possível ler a data \"{value}\".",
  58. "badTime": "Não foi possível ler a hora \"{value}\".",
  59. "timeWithoutDate": "Uma hora precisa de uma data de vencimento.",
  60. "badMileage": "Não foi possível ler a quilometragem \"{value}\".",
  61. "badEmailNotification": "A notificação por e-mail deve ser sim ou não, e não \"{value}\".",
  62. "vehicleNotFound": "Nenhuma viatura corresponde a \"{value}\".",
  63. "vehicleAmbiguous": "Mais de uma viatura corresponde a \"{value}\".",
  64. "vehicleMismatch": "A matrícula e o número de quadro (VIN) pertencem a viaturas diferentes ({value}).",
  65. "customerNotFound": "Nenhum cliente corresponde a \"{value}\".",
  66. "customerAmbiguous": "Mais de um cliente corresponde a \"{value}\". Use o e-mail ou o número de cliente.",
  67. "duplicateExisting": "Ignorada: este lembrete já existe.",
  68. "duplicateInFile": "Ignorada: repete uma linha anterior do ficheiro."
  69. },
  70. "fileErrors": {
  71. "demo": "A importação está desativada na demonstração.",
  72. "noFile": "Escolha um ficheiro para carregar.",
  73. "tooLarge": "O ficheiro tem mais de 900 KB. Divida-o e importe-o por partes.",
  74. "unsupported": "Carregue um ficheiro .csv ou .xlsx.",
  75. "legacyXls": "Os ficheiros antigos do Excel (.xls) não podem ser lidos. Guarde o ficheiro como .xlsx ou .csv e tente novamente.",
  76. "empty": "O ficheiro não tem linhas.",
  77. "unreadable": "Não foi possível ler o ficheiro.",
  78. "tooManyRows": "O ficheiro tem mais de {limit} linhas. Divida-o e importe-o por partes.",
  79. "noTitleColumn": "O ficheiro não tem a coluna \"Title\". Descarregue o modelo para ver os cabeçalhos esperados."
  80. },
  81. "chooseAnother": "Escolher outro ficheiro",
  82. "downloadSkipped": "Descarregar linhas ignoradas",
  83. "problemColumn": "Problema",
  84. "submit": "Importar {count, plural, one {# lembrete} other {# lembretes}}",
  85. "nothingToImport": "Nada para importar",
  86. "done": "{count, plural, one {# lembrete importado} other {# lembretes importados}}",
  87. "doneSkipped": "{count, plural, one {# linha ignorada} other {# linhas ignoradas}}",
  88. "close": "Fechar"
  89. }
  90. }