reminders.json 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. {
  2. "error": "Impossible de charger les rappels",
  3. "showing": "{count} sur {total} affichés",
  4. "deleted": "Rappel supprimé",
  5. "deleteError": "Impossible de supprimer le rappel",
  6. "vehicle": "Véhicule",
  7. "selectVehicle": "Sélectionner un véhicule...",
  8. "searchVehicle": "Rechercher des véhicules...",
  9. "noVehicle": "Aucun véhicule trouvé.",
  10. "pickDate": "Choisir une date",
  11. "openMenu": "Ouvrir le menu",
  12. "relatesTo": "Concerne (optionnel)",
  13. "selectCustomer": "Client (optionnel)",
  14. "noneOption": "Aucun",
  15. "workshopHint": "Aucun client ni véhicule sélectionné : rappel général pour l'atelier.",
  16. "workshopReminder": "Atelier",
  17. "import": {
  18. "button": "Importer",
  19. "title": "Importer des rappels",
  20. "description": "Téléversez un fichier CSV ou Excel avec un rappel par ligne. Vous verrez chaque ligne avant tout enregistrement.",
  21. "drop": "Déposez un fichier CSV ou Excel ici",
  22. "formats": "CSV ou Excel (.xlsx), jusqu'à {rows} lignes",
  23. "browse": "Choisir un fichier",
  24. "reading": "Lecture du fichier...",
  25. "templateHint": "Partez du modèle pour avoir les bonnes colonnes.",
  26. "templateXlsx": "Modèle Excel",
  27. "templateCsv": "Modèle CSV",
  28. "columnsTitle": "Colonnes du fichier",
  29. "required": {
  30. "yes": "Obligatoire",
  31. "dateOrMileage": "Date ou kilométrage",
  32. "no": "Facultatif"
  33. },
  34. "columns": {
  35. "title": "Ce qu'il faut faire, par exemple « Vidange d'huile ».",
  36. "dueDate": "Le jour de l'échéance. 2026-10-15 fonctionne toujours, et les formats comme 15.10.2026 ou 10/15/2026 sont détectés.",
  37. "dueTime": "Heure de la journée, par exemple 14:30, dans le fuseau horaire de l'atelier. Laissez vide pour n'importe quelle heure ce jour-là.",
  38. "dueMileage": "Le relevé du compteur à l'échéance, en {unit}.",
  39. "description": "Tout détail supplémentaire.",
  40. "licensePlate": "Associe le rappel à un véhicule. Les espaces et les tirets sont ignorés.",
  41. "vin": "Associe le rappel à un véhicule, utile quand il n'y a pas de plaque.",
  42. "customer": "E-mail, numéro de client ou nom exact. Utilisé uniquement si la ligne n'a pas de véhicule.",
  43. "emailNotification": "Oui ou non. Envoie un e-mail à l'échéance du rappel. Les notifications dans l'app sont toujours actives."
  44. },
  45. "targetRule": "Une ligne sans véhicule ni client devient un rappel de l'atelier. Les lignes qui correspondent à un rappel ouvert sont ignorées : importer deux fois le même fichier n'ajoute donc rien.",
  46. "summary": {
  47. "ready": "Prêts : {count}",
  48. "duplicates": "Déjà existants : {count}",
  49. "errors": "À corriger : {count}"
  50. },
  51. "ignoredColumns": "Colonnes non lues : {columns}",
  52. "rowLabel": "Ligne {line}",
  53. "untitled": "(sans titre)",
  54. "issues": {
  55. "missingTitle": "Le titre est vide.",
  56. "missingDue": "Une date d'échéance ou un kilométrage d'échéance est nécessaire.",
  57. "badDate": "Impossible de lire la date « {value} ».",
  58. "badTime": "Impossible de lire l'heure « {value} ».",
  59. "timeWithoutDate": "Une heure nécessite une date d'échéance.",
  60. "badMileage": "Impossible de lire le kilométrage « {value} ».",
  61. "badEmailNotification": "La notification par e-mail doit être oui ou non, pas « {value} ».",
  62. "vehicleNotFound": "Aucun véhicule ne correspond à « {value} ».",
  63. "vehicleAmbiguous": "Plusieurs véhicules correspondent à « {value} ».",
  64. "vehicleMismatch": "La plaque et le NIV appartiennent à des véhicules différents ({value}).",
  65. "customerNotFound": "Aucun client ne correspond à « {value} ».",
  66. "customerAmbiguous": "Plusieurs clients correspondent à « {value} ». Utilisez son e-mail ou son numéro de client.",
  67. "duplicateExisting": "Ignorée : ce rappel existe déjà.",
  68. "duplicateInFile": "Ignorée : répète une ligne précédente du fichier."
  69. },
  70. "fileErrors": {
  71. "demo": "L'import est désactivé sur la démo.",
  72. "noFile": "Choisissez un fichier à téléverser.",
  73. "tooLarge": "Le fichier dépasse 900 KB. Divisez-le et importez-le en plusieurs fois.",
  74. "unsupported": "Téléversez un fichier .csv ou .xlsx.",
  75. "legacyXls": "Les anciens fichiers Excel .xls ne peuvent pas être lus. Enregistrez le fichier en .xlsx ou .csv et réessayez.",
  76. "empty": "Le fichier ne contient aucune ligne.",
  77. "unreadable": "Impossible de lire le fichier.",
  78. "tooManyRows": "Le fichier contient plus de {limit} lignes. Divisez-le et importez-le en plusieurs fois.",
  79. "noTitleColumn": "Le fichier n'a pas de colonne « Title ». Téléchargez le modèle pour voir les en-têtes attendus."
  80. },
  81. "chooseAnother": "Choisir un autre fichier",
  82. "downloadSkipped": "Télécharger les lignes ignorées",
  83. "problemColumn": "Problème",
  84. "submit": "Importer {count, plural, one {# rappel} other {# rappels}}",
  85. "nothingToImport": "Rien à importer",
  86. "done": "{count, plural, one {# rappel importé} other {# rappels importés}}",
  87. "doneSkipped": "{count, plural, one {# ligne ignorée} other {# lignes ignorées}}",
  88. "close": "Fermer"
  89. }
  90. }