dataImport.json 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. {
  2. "title": "Importer des {entity}",
  3. "cancel": "Annuler",
  4. "done": "Terminé",
  5. "entities": {
  6. "customers": "clients",
  7. "vehicles": "véhicules",
  8. "services": "historiques de service"
  9. },
  10. "entityHints": {
  11. "customers": "Noms, coordonnées, adresses. Une ligne par client.",
  12. "vehicles": "Marque, modèle, année, plaque, NIV. Une colonne propriétaire associe ou crée le client.",
  13. "services": "Interventions et factures passées. Une ligne par intervention, avec le véhicule concerné."
  14. },
  15. "groups": {
  16. "customer": "Client",
  17. "vehicle": "Véhicule",
  18. "service": "Service"
  19. },
  20. "steps": {
  21. "upload": "Choisissez quoi importer et téléversez le fichier exporté depuis votre système actuel.",
  22. "mapping": "Vérifiez quelle colonne devient quel champ. Rien n'est encore écrit.",
  23. "preview": "Simulation : voici exactement ce que l'import va faire. Vérifiez, puis importez.",
  24. "importing": "Écriture des lignes. Gardez cette fenêtre ouverte.",
  25. "result": "Import terminé."
  26. },
  27. "upload": {
  28. "drop": "Glissez-déposez un fichier ici",
  29. "formats": "CSV, Excel (.xlsx) ou vCard (.vcf), jusqu'à 25 Mo et 50 000 lignes",
  30. "browse": "Parcourir les fichiers",
  31. "reading": "Lecture du fichier...",
  32. "templateHint": "Pas encore d'export ? Remplissez un modèle et téléversez-le.",
  33. "templateXlsx": "Modèle Excel",
  34. "templateCsv": "Modèle CSV",
  35. "sourcesHint": "Fonctionne avec les exports de n'importe quel logiciel d'atelier, outil de comptabilité, Google Contacts, Outlook ou tableur. Les noms de colonnes sont reconnus dans de nombreuses langues ; vous confirmez la correspondance avant que quoi que ce soit ne soit écrit."
  36. },
  37. "mapping": {
  38. "rows": "{count, plural, one {# ligne} other {# lignes}}",
  39. "colColumn": "Colonne dans votre fichier",
  40. "colSample": "Exemples de valeurs",
  41. "colField": "Devient",
  42. "ignore": "Ignorer cette colonne",
  43. "source": {
  44. "preset": "Format reconnu",
  45. "header": "Correspondance par en-tête",
  46. "values": "Déduit des valeurs"
  47. },
  48. "suggestWithAi": "Suggérer avec l'IA",
  49. "aiApplied": "{count, plural, one {# colonne associée} other {# colonnes associées}} par l'IA. Vérifiez-les avant de continuer.",
  50. "chooseAnother": "Choisir un autre fichier",
  51. "missingRequired": "Encore requis : {fields}",
  52. "dryRunHint": "La simulation vérifie chaque ligne par rapport à vos données existantes sans rien écrire.",
  53. "runDryRun": "Lancer la simulation"
  54. },
  55. "options": {
  56. "dateFormat": "Format de date",
  57. "dateAuto": "Détecter automatiquement",
  58. "dateDMY": "Jour / mois / année",
  59. "dateMDY": "Mois / jour / année",
  60. "dateYMD": "Année / mois / jour",
  61. "decimal": "Séparateur décimal",
  62. "decimalAuto": "Détecter automatiquement",
  63. "decimalDot": "Point (1,234.56)",
  64. "decimalComma": "Virgule (1.234,56)",
  65. "countryCode": "Indicatif pays pour les numéros de téléphone",
  66. "duplicates": "Quand une ligne correspond à un enregistrement existant",
  67. "duplicatesUpdate": "Mettre à jour l'enregistrement existant",
  68. "duplicatesSkip": "Ignorer la ligne",
  69. "duplicatesCreate": "Créer quand même un nouvel enregistrement"
  70. },
  71. "summary": {
  72. "create": "Seront créés",
  73. "update": "Seront mis à jour",
  74. "skip": "Seront ignorés",
  75. "error": "Impossibles à importer",
  76. "warnings": "Avec avertissements",
  77. "customersToCreate": "{count, plural, one {# nouveau client} other {# nouveaux clients}}",
  78. "customersToUpdate": "{count, plural, one {# client mis à jour} other {# clients mis à jour}}",
  79. "vehiclesToCreate": "{count, plural, one {# nouveau véhicule} other {# nouveaux véhicules}}",
  80. "vehiclesToUpdate": "{count, plural, one {# véhicule mis à jour} other {# véhicules mis à jour}}",
  81. "servicesToCreate": "{count, plural, one {# fiche de service} other {# fiches de service}}"
  82. },
  83. "actions": {
  84. "create": "Créer",
  85. "update": "Mettre à jour",
  86. "skip": "Ignorer",
  87. "error": "Erreur"
  88. },
  89. "matchOn": {
  90. "number": "numéro de client",
  91. "email": "e-mail",
  92. "phone": "téléphone",
  93. "name": "nom",
  94. "vin": "NIV",
  95. "plate": "plaque",
  96. "makeModelYear": "marque, modèle et année"
  97. },
  98. "preview": {
  99. "colAction": "Action",
  100. "colOwner": "Propriétaire",
  101. "colDetails": "Détails",
  102. "empty": "Aucune ligne ne correspond à ce filtre.",
  103. "matchedOn": "Correspond à {name} (par {on})",
  104. "linksCustomer": "Associé au client {name}",
  105. "linksVehicle": "Associé à {label}",
  106. "sameCustomerAsRow": "Même client que la ligne {row}",
  107. "sameVehicleAsRow": "Même véhicule que la ligne {row}",
  108. "createsCustomer": "Crée le client",
  109. "createsVehicle": "Crée le véhicule",
  110. "downloadReport": "Télécharger le rapport de simulation",
  111. "limitExceeded": "Votre forfait autorise encore {remaining} clients, mais cet import en créerait {needed}. Retirez des lignes ou changez de forfait.",
  112. "pageInfo": "{from}–{to} sur {total}",
  113. "prev": "Précédent",
  114. "next": "Suivant",
  115. "backToMapping": "Retour à la correspondance",
  116. "import": "Importer {count, plural, one {# ligne} other {# lignes}}",
  117. "nothingWrittenYet": "Rien n'a encore été écrit. L'import pourra ensuite être annulé depuis Paramètres → Données."
  118. },
  119. "importing": {
  120. "title": "Import en cours...",
  121. "starting": "Démarrage",
  122. "progress": "{done} sur {total} lignes",
  123. "keepOpen": "Les fichiers volumineux prennent une à deux minutes."
  124. },
  125. "result": {
  126. "title": "Import terminé",
  127. "undoneTitle": "Import annulé",
  128. "created": "{count, plural, one {# enregistrement créé} other {# enregistrements créés}}",
  129. "updated": "{count, plural, one {# enregistrement mis à jour} other {# enregistrements mis à jour}}",
  130. "skipped": "{count, plural, one {# ligne ignorée} other {# lignes ignorées}}",
  131. "failed": "{count, plural, one {# ligne non importée} other {# lignes non importées}}",
  132. "writeFailures": "{count, plural, one {# ligne a échoué à l'écriture} other {# lignes ont échoué à l'écriture}}",
  133. "rowFailure": "Ligne {row} : {error}",
  134. "undo": "Annuler cet import",
  135. "undone": "{customers} clients, {vehicles} véhicules et {services} fiches de service supprimés.",
  136. "undoHint": "L'annulation supprime tous les enregistrements créés par cet import. Ceux qu'il a seulement mis à jour conservent leurs nouvelles valeurs."
  137. },
  138. "history": {
  139. "title": "Historique des imports",
  140. "description": "Imports de tableur effectués sur cet atelier. L'annulation supprime ce qu'un import a créé.",
  141. "loading": "Chargement...",
  142. "statusUndone": "Annulé",
  143. "counts": "{created} créés, {updated} mis à jour, {skipped} ignorés, {failed} en échec",
  144. "undo": "Annuler",
  145. "undone": "{customers} clients, {vehicles} véhicules et {services} fiches de service supprimés.",
  146. "undoFailed": "Impossible d'annuler l'import",
  147. "confirmTitle": "Annuler cet import ?",
  148. "confirmDescription": "Supprime ce que {file} a créé : {customers} clients, {vehicles} véhicules et {services} fiches de service. Les enregistrements que l'import a seulement mis à jour sont conservés.",
  149. "cancel": "Annuler",
  150. "confirm": "Annuler l'import"
  151. },
  152. "fields": {
  153. "customer": {
  154. "name": "Nom du client",
  155. "firstName": "Prénom",
  156. "lastName": "Nom",
  157. "customerNumber": "Numéro de client",
  158. "email": "E-mail",
  159. "phone": "Téléphone",
  160. "company": "Entreprise",
  161. "address": "Adresse",
  162. "street": "Rue",
  163. "postalCode": "Code postal",
  164. "city": "Ville",
  165. "state": "État / région",
  166. "country": "Pays",
  167. "taxId": "Numéro fiscal",
  168. "notes": "Notes client"
  169. },
  170. "vehicle": {
  171. "description": "Véhicule (année marque modèle dans une seule colonne)",
  172. "make": "Marque",
  173. "model": "Modèle",
  174. "year": "Année",
  175. "vin": "NIV",
  176. "licensePlate": "Plaque d'immatriculation",
  177. "color": "Couleur",
  178. "mileage": "Kilométrage",
  179. "fuelType": "Type de carburant",
  180. "transmission": "Transmission",
  181. "engineSize": "Cylindrée",
  182. "engineCode": "Code moteur",
  183. "purchaseDate": "Date d'achat",
  184. "purchasePrice": "Prix d'achat"
  185. },
  186. "service": {
  187. "date": "Date du service",
  188. "title": "Titre du service",
  189. "description": "Description",
  190. "total": "Montant total",
  191. "mileage": "Kilométrage au moment du service",
  192. "invoiceNumber": "Numéro de facture",
  193. "notes": "Notes de service",
  194. "technician": "Technicien"
  195. }
  196. },
  197. "issues": {
  198. "customer_name_required": "Le nom du client est manquant",
  199. "invalid_email": "L'e-mail \"{value}\" n'est pas valide et a été ignoré",
  200. "invalid_vin": "Le NIV \"{value}\" ne fait pas 17 caractères ; conservé tel quel",
  201. "vehicle_make_model_required": "La marque et le modèle sont manquants",
  202. "vehicle_year_required": "L'année est manquante",
  203. "vehicle_year_invalid": "L'année \"{value}\" n'est pas une année valide",
  204. "vehicle_identifier_required": "Aucune plaque, NIV ou marque et modèle pour identifier le véhicule",
  205. "vehicle_not_found": "Aucun véhicule existant ne correspond à \"{value}\" et il n'y a pas assez d'informations pour en créer un",
  206. "service_date_required": "La date du service est manquante",
  207. "service_date_invalid": "La date \"{value}\" n'a pas pu être lue",
  208. "service_title_required": "Le titre ou la description du service est manquant",
  209. "invalid_date": "{field} \"{value}\" n'a pas pu être lu et a été ignoré",
  210. "invalid_number": "{field} \"{value}\" n'est pas un nombre et a été ignoré",
  211. "duplicate_invoice_number": "Le numéro de facture {value} existe déjà",
  212. "write_failed": "Impossible d'écrire : {value}"
  213. },
  214. "errors": {
  215. "uploadFailed": "Le fichier n'a pas pu être lu",
  216. "aiFailed": "L'IA n'a pas pu suggérer de correspondance",
  217. "dryRunFailed": "La simulation a échoué",
  218. "importFailed": "L'import a échoué",
  219. "undoFailed": "Impossible d'annuler l'import"
  220. },
  221. "entry": {
  222. "title": "Importer depuis un tableur",
  223. "description": "Récupérez clients, véhicules et historique de service depuis n'importe quel système capable d'exporter en CSV ou Excel. Associez les colonnes, lancez une simulation, puis importez. Chaque import peut être annulé.",
  224. "customers": "Importer des clients",
  225. "vehicles": "Importer des véhicules",
  226. "services": "Importer l'historique de service"
  227. }
  228. }