service.json 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478
  1. {
  2. "page": {
  3. "notFound": "Dossier de service introuvable",
  4. "updated": "Dossier de service mis à jour",
  5. "failedUpdate": "Impossible de mettre à jour le dossier de service",
  6. "deleteTitle": "Supprimer le Dossier de Service",
  7. "deleteDescription": "Cela supprimera définitivement ce dossier de service et toutes les données associées. Cette action ne peut pas être annulée.",
  8. "deleted": "Dossier de service supprimé",
  9. "failedDelete": "Impossible de supprimer",
  10. "datesExpiredTitle": "Dates de facture expirées",
  11. "datesExpiredDescription": "La date de facturation ou la date d'échéance est dépassée. Souhaitez-vous les mettre à jour avant de continuer ?",
  12. "datesExpiredUpdate": "Mettre à jour les dates et continuer",
  13. "datesExpiredProceed": "Continuer sans modifications",
  14. "datesExpiredUseToday": "Mettre à jour à la date du jour",
  15. "datesExpiredCustomize": "Choisir les dates manuellement",
  16. "datesExpiredBack": "Retour",
  17. "datesExpiredSetToday": "Définir à aujourd'hui",
  18. "customFieldsInvalid": "Veuillez remplir tous les champs personnalisés obligatoires",
  19. "customFieldsSaveFailed": "Échec de l'enregistrement des champs personnalisés",
  20. "problems": {
  21. "title": "Le travail doit avoir un titre avant d'être enregistré.",
  22. "negative": "Les quantités, heures, prix et coûts ne peuvent pas être négatifs.",
  23. "partName": "Chaque pièce avec un prix doit avoir un nom.",
  24. "laborDescription": "Chaque ligne de main-d'œuvre avec des heures ou un taux doit avoir une description."
  25. }
  26. },
  27. "header": {
  28. "tabs": {
  29. "details": "Détails",
  30. "images": "Images",
  31. "video": "Vidéo",
  32. "documents": "Documents",
  33. "statusReports": "Rapports d'état"
  34. },
  35. "save": "Enregistrer",
  36. "pdf": "PDF",
  37. "email": "Email",
  38. "share": "Partager",
  39. "notify": "Notifier",
  40. "delete": "Supprimer",
  41. "unpaid": "Non Payé",
  42. "unsavedChanges": "Modifications non enregistrées",
  43. "saved": "Enregistré",
  44. "joinCall": "Rejoindre l'appel vidéo"
  45. },
  46. "basicInfo": {
  47. "title": "Informations de Base",
  48. "invoiceDetails": "Détails de la facture",
  49. "customerInfo": "Client et véhicule",
  50. "paid": "Payé",
  51. "markPaid": "Marquer comme payé",
  52. "markUnpaid": "Marquer comme non payé",
  53. "vehicle": "Véhicule",
  54. "open": "Ouvert",
  55. "customer": "Client",
  56. "titleLabel": "Titre *",
  57. "titlePlaceholder": "Vidange d'Huile",
  58. "date": "Date",
  59. "type": "Type",
  60. "mileage": "Kilométrage",
  61. "mileageMarine": "Heures Moteur",
  62. "status": "Statut",
  63. "technician": "Technicien",
  64. "invoiceNumber": "Numéro de Facture",
  65. "invoiceDate": "Date de facture",
  66. "invoiceDueDate": "Date d'échéance",
  67. "typeOptions": {
  68. "maintenance": "Maintenance",
  69. "repair": "Réparation",
  70. "upgrade": "Mise à Niveau",
  71. "inspection": "Inspection"
  72. },
  73. "statusOptions": {
  74. "pending": "En Attente",
  75. "in_progress": "En Cours",
  76. "waiting_parts": "En Attente de Pièces",
  77. "completed": "Complété"
  78. },
  79. "searchVehicles": "Rechercher des véhicules...",
  80. "noVehicleFound": "Aucun véhicule trouvé.",
  81. "techPicker": {
  82. "placeholder": "Sélectionner ou tapez un nom...",
  83. "searchPlaceholder": "Rechercher ou tapez un nom...",
  84. "useCustom": "Utiliser \"{search}\"",
  85. "typePrompt": "Tapez un nom...",
  86. "boardTechnicians": "Techniciens du Tableau",
  87. "teamMembers": "Membres de l'Équipe"
  88. },
  89. "design": "Design de facture",
  90. "designDefault": "Défaut de l'atelier",
  91. "designFollowing": "Défaut ({name})",
  92. "designPinned": "La feuille a été figée à l'émission de la facture le {date}. Un nouveau choix ne s'applique qu'après qu'un propriétaire déverrouille la facture et qu'elle soit renvoyée.",
  93. "designSaved": "Design de facture mis à jour",
  94. "designFollowingRule": "Par défaut ({name}, {rule})",
  95. "designRule": {
  96. "parts_sale": "Vente de pièces seule"
  97. },
  98. "designSaveFailed": "Impossible de changer le design de la facture"
  99. },
  100. "parts": {
  101. "title": "Pièces",
  102. "fromInventory": "De l'Inventaire",
  103. "addPart": "Ajouter une Pièce",
  104. "partNumber": "Nº de Pièce",
  105. "name": "Nom",
  106. "qty": "Qté",
  107. "unitCost": "Coût",
  108. "unitCostHint": "Coût fournisseur (interne — non visible par le client)",
  109. "markupPercent": "Marge %",
  110. "markupPercentHint": "Marge appliquée au coût (interne — non visible par le client)",
  111. "applyMarkup": "Appliquer {percent}%",
  112. "applyMarkupHint": "Réappliquer la marge de {percent}% au coût sur chaque ligne",
  113. "unitPrice": "Prix Unitaire",
  114. "total": "Total",
  115. "namePlaceholder": "Nom *",
  116. "subtotal": "Sous-total Pièces: {amount}",
  117. "inventoryTitle": "Sélectionner une Pièce de l'Inventaire",
  118. "searchInventory": "Rechercher l'inventaire...",
  119. "inStock": "{quantity} en stock",
  120. "noInventory": "Aucune pièce d'inventaire trouvée.",
  121. "scanBarcode": "Scanner",
  122. "scanTitle": "Scanner le code-barres",
  123. "partFound": "\"{name}\" ajouté depuis l'inventaire",
  124. "partNotFound": "Aucune pièce trouvée pour le code-barres \"{barcode}\"",
  125. "deleteRow": "Delete row",
  126. "outOfStock": "En rupture de stock",
  127. "onBackorder": "En réapprovisionnement ({count})",
  128. "nameMissingHint": "Les lignes sans nom de pièce ne sont pas enregistrées."
  129. },
  130. "labor": {
  131. "title": "Main-d'œuvre",
  132. "addLabor": "Ajouter une Main-d'œuvre",
  133. "fromPresets": "Depuis modèles",
  134. "description": "Description",
  135. "hours": "Heures",
  136. "rate": "Taux ({currency}/h)",
  137. "total": "Total",
  138. "descriptionPlaceholder": "Description *",
  139. "subtotal": "Sous-total Main-d'œuvre: {amount}",
  140. "addService": "Add Service",
  141. "addFinding": "Observation",
  142. "newObservation": "Nouvelle observation",
  143. "addExisting": "Voir existantes ({count})",
  144. "qty": "Qty",
  145. "qtyOrHours": "Unit / Hours",
  146. "hourlyTag": "HR",
  147. "serviceTag": "SVC",
  148. "switchToHourly": "Switch to hourly pricing",
  149. "switchToService": "Switch to service pricing",
  150. "switchToHourlyHint": "À l'heure : facturé selon les heures travaillées (heures × taux/h). Cliquez pour changer.",
  151. "switchToServiceHint": "Forfait : facturé au prix fixe par unité. Cliquez pour changer.",
  152. "deleteRow": "Delete row",
  153. "descriptionMissingHint": "Les lignes sans description ne sont pas enregistrées."
  154. },
  155. "totals": {
  156. "title": "Totaux",
  157. "parts": "Pièces",
  158. "labor": "Main-d'œuvre",
  159. "subtotal": "Sous-total",
  160. "subtotalInclTax": "Sous-total (TTC)",
  161. "discount": "Remise",
  162. "discountNone": "Aucune",
  163. "discountPercentage": "Pourcentage",
  164. "discountFixed": "Fixe",
  165. "tax": "Taxe",
  166. "taxIncluded": "Taxe (incl.)",
  167. "total": "Total",
  168. "inclusiveModeHint": "Les prix de ligne sont saisis taxe incluse. Les totaux affichent la répartition net + taxe.",
  169. "partsCost": "Coût des pièces (interne)"
  170. },
  171. "notes": {
  172. "title": "Notes",
  173. "public": "Public",
  174. "internal": "Interne",
  175. "publicPlaceholder": "Notes visibles sur la facture...",
  176. "internalPlaceholder": "Notes internes (non affichées sur la facture)...",
  177. "publicHelper": "Affichées sur la facture et les documents partagés",
  178. "internalHelper": "Visibles uniquement pour votre équipe",
  179. "aiWrite": "AI Rédiger",
  180. "aiGenerated": "Notes AI générées avec succès",
  181. "aiGenerateFailed": "Échec de la génération des notes AI",
  182. "aiDialogTitle": "IA Écrire",
  183. "aiDialogDescription": "L'IA analysera les pièces et la main-d'œuvre de cet enregistrement de service et générera une description professionnelle. Le résultat sera écrit dans le type de note sélectionné.",
  184. "aiGenerate": "Générer",
  185. "aiOverwriteDescription": "Cette note a déjà du contenu. Vous pouvez le remplacer ou ajouter le texte généré par l'IA en dessous.",
  186. "aiOverwriteReplace": "Remplacer",
  187. "aiOverwriteAppend": "Ajouter",
  188. "aiOverwriteCancel": "Annuler",
  189. "aiDontShowAgain": "Ne plus afficher"
  190. },
  191. "invoice": {
  192. "title": "Résumé de la Facture",
  193. "parts": "Pièces",
  194. "labor": "Main-d'œuvre",
  195. "subtotal": "Sous-total",
  196. "subtotalInclTax": "Sous-total (TTC)",
  197. "discount": "Remise",
  198. "tax": "Taxe ({rate}%)",
  199. "taxIncluded": "Taxe (incl., {rate}%)",
  200. "total": "Total",
  201. "paid": "Payé",
  202. "balanceDue": "Solde Dû",
  203. "paidBadge": "PAYÉ",
  204. "entityLabel": "Facture",
  205. "emailSubject": "Confirmation de Paiement",
  206. "statusEmailSubject": "Mise à jour du statut du service",
  207. "markCompletedTitle": "Marquer cette facture comme terminée ?",
  208. "markCompletedDescription": "Elle est partie chez le client mais reste marquée comme non terminée, elle continuera donc d'apparaître sur le tableau.",
  209. "markCompletedConfirm": "Marquer comme terminée",
  210. "lockedFieldsetLabel": "Facture verrouillée, modification désactivée"
  211. },
  212. "payments": {
  213. "title": "Paiements",
  214. "markUnpaid": "Marquer comme Non Payé",
  215. "markPaid": "Marquer comme Payé",
  216. "recordPayment": "Enregistrer un Paiement",
  217. "totalPaid": "Total Payé",
  218. "amount": "Montant",
  219. "date": "Date",
  220. "method": "Méthode",
  221. "note": "Note",
  222. "notePlaceholder": "Note facultative",
  223. "savePayment": "Enregistrer le Paiement",
  224. "methodOptions": {
  225. "cash": "Comptant",
  226. "card": "Carte",
  227. "transfer": "Virement",
  228. "other": "Autre"
  229. },
  230. "recorded": "Paiement enregistré",
  231. "markedPaid": "Marqué comme payé",
  232. "markedUnpaid": "Marqué comme non payé",
  233. "deleted": "Paiement supprimé",
  234. "failedRecord": "Impossible d'enregistrer le paiement",
  235. "failedStatus": "Impossible de mettre à jour le statut du paiement",
  236. "failedDelete": "Impossible de supprimer le paiement",
  237. "deleteTitle": "Supprimer le Paiement",
  238. "deleteDescription": "Cela supprimera ce dossier de paiement.",
  239. "failedPdf": "Impossible de générer la facture PDF"
  240. },
  241. "attachments": {
  242. "deleteTitle": "Supprimer la Pièce Jointe",
  243. "deleteDescription": "Cela supprimera définitivement cette pièce jointe. Cette action ne peut pas être annulée.",
  244. "deleted": "Pièce jointe supprimée",
  245. "failedDelete": "Impossible de supprimer",
  246. "images": "Images ({count})",
  247. "videos": "Vidéos ({count})",
  248. "diagnostics": "Rapports Diagnostiques ({count})",
  249. "documents": "Documents ({count})",
  250. "download": "Download",
  251. "close": "Close"
  252. },
  253. "share": {
  254. "title": "Partager la Facture",
  255. "description": "Générer un lien public qui permet à n'importe qui de consulter et télécharger cette facture sans se connecter.",
  256. "notifyTitle": "Notifier {name}",
  257. "email": "Email",
  258. "noEmail": "(pas d'email en dossier)",
  259. "sms": "SMS",
  260. "noPhone": "(pas de numéro en dossier)",
  261. "sendNotification": "Envoyer une Notification",
  262. "revokeLink": "Révoquer le Lien",
  263. "generateLink": "Générer un Lien Public",
  264. "emailSent": "Email envoyé",
  265. "failedEmail": "Impossible d'envoyer l'email",
  266. "smsSent": "SMS envoyé",
  267. "failedSms": "Impossible d'envoyer le SMS",
  268. "copyLink": "Copy link"
  269. },
  270. "sidebar": {
  271. "vehicle": "Véhicule",
  272. "customer": "Client",
  273. "vin": "VIN: {vin}",
  274. "mileageAtService": "Kilométrage au service: {mileage} {unit}",
  275. "engineHoursAtService": "Heures moteur au service: {mileage} {unit}",
  276. "sharedLink": {
  277. "title": "Lien partagé",
  278. "sharedOn": "Partagé le {date}",
  279. "notViewed": "Pas encore consulté",
  280. "viewedTimes": "Consulté {count, plural, one {# fois} other {# fois}}",
  281. "lastViewed": "Dernier {date}",
  282. "copyLink": "Copier le lien",
  283. "linkCopied": "Lien copié"
  284. }
  285. },
  286. "images": {
  287. "title": "Images du Service",
  288. "dropzone": "Déposez les images ici ou cliquez pour parcourir",
  289. "uploading": "Téléversement...",
  290. "formats": "JPG, PNG, WebP — max. 10 Mo chacune",
  291. "uploadingImages": "Téléversement des images...",
  292. "limitReached": "Limite d'images atteinte ({count}/{max})",
  293. "upgradePrompt": "Mettez à niveau votre plan pour téléverser plus d'images.",
  294. "onlyAllowed": "Seules les images JPG, PNG et WebP sont autorisées. {names} ignoré(es).",
  295. "onlyUploading": "Seules {count} image(s) seront téléversée(s) pour respecter la limite.",
  296. "uploadingCount": "Téléversement de {count} image(s)...",
  297. "uploadedCount": "{count} image(s) téléversée(s)",
  298. "uploadFailed": "Échec du téléversement",
  299. "deleted": "Image supprimée",
  300. "failedDelete": "Impossible de supprimer l'image",
  301. "failedUpdate": "Impossible de mettre à jour",
  302. "description": "Description...",
  303. "invoice": "Facture"
  304. },
  305. "videos": {
  306. "title": "Vidéos du Service",
  307. "dropzone": "Déposez les vidéos ici ou cliquez pour parcourir",
  308. "uploading": "Téléversement...",
  309. "formats": "MP4, WebM, MOV — max. 10 Mo chacune",
  310. "uploadingVideos": "Téléversement des vidéos...",
  311. "uploadingCount": "Téléversement de {count} vidéo(s)...",
  312. "uploadedCount": "{count} vidéo(s) téléversée(s)",
  313. "uploadFailed": "Échec du téléversement",
  314. "deleted": "Vidéo supprimée",
  315. "failedDelete": "Impossible de supprimer la vidéo",
  316. "failedUpdate": "Impossible de mettre à jour",
  317. "invoice": "Facture"
  318. },
  319. "documents": {
  320. "diagnosticTitle": "Rapports de Diagnostic",
  321. "documentsTitle": "Documents",
  322. "dropzone": "Déposez les fichiers ici ou cliquez pour parcourir",
  323. "uploading": "Téléversement...",
  324. "diagnosticFormats": "PDF, CSV, TXT — max. 10 Mo chacun",
  325. "documentFormats": "PDF, DOCX, XLSX, CSV, TXT — max. 10 Mo chacun",
  326. "uploadingReports": "Téléversement des rapports...",
  327. "uploadingDocuments": "Téléversement des documents...",
  328. "diagnosticLimitReached": "Limite de rapports de diagnostic atteinte ({count}/{max})",
  329. "documentLimitReached": "Limite de documents atteinte ({count}/{max})",
  330. "upgradePrompt": "Mettez à niveau votre plan pour téléverser davantage.",
  331. "diagnosticLabel": "Rapport de diagnostic",
  332. "documentLabel": "Document",
  333. "limitReachedToast": "Limite de {label} atteinte ({count}/{max}). Mettez à niveau votre plan pour plus.",
  334. "onlyUploading": "Seuls {count} fichier(s) seront téléversé(s) pour respecter la limite.",
  335. "uploadingCount": "Téléversement de {count} fichier(s)...",
  336. "uploadedCount": "{count} fichier(s) téléversé(s)",
  337. "uploadFailed": "Échec du téléversement",
  338. "deleted": "Fichier supprimé",
  339. "failedDelete": "Impossible de supprimer le fichier",
  340. "failedUpdate": "Impossible de mettre à jour",
  341. "invoice": "Facture"
  342. },
  343. "schedule": {
  344. "title": "Planification",
  345. "date": "Date",
  346. "startTime": "Heure de début",
  347. "endTime": "Heure de fin",
  348. "technician": "Technicien",
  349. "selectTechnician": "Sélectionner un technicien...",
  350. "searchOrCreate": "Rechercher ou créer un technicien...",
  351. "createTechnician": "Créer \"{name}\"",
  352. "creating": "Création...",
  353. "failedCreate": "Impossible de créer le technicien",
  354. "addNew": "+ Ajouter nouveau",
  355. "add": "Ajouter",
  356. "newTechPlaceholder": "Nom du technicien...",
  357. "assign": "Assigner au tableau",
  358. "assigned": "Assigné au tableau de travail",
  359. "failedAssign": "Échec de l'assignation",
  360. "endBeforeStart": "L'heure de fin doit être après l'heure de début",
  361. "failedUpdate": "Impossible de mettre à jour le planning",
  362. "splitCreated": "Le travail s'étend sur plusieurs jours — suite créée pour le jour suivant",
  363. "platformUsers": "Platform Users",
  364. "customTechnicians": "Custom",
  365. "readMore": "En savoir plus",
  366. "setDefaults": "Paramètres par défaut",
  367. "workBay": "Poste de travail",
  368. "selectWorkBay": "Choisir un poste…",
  369. "noWorkBay": "Aucun poste",
  370. "noTechnician": "Sans technicien",
  371. "technicians": "Techniciens",
  372. "otherTeamMembers": "Autres membres de l’équipe",
  373. "makeTechnician": "En fait un technicien",
  374. "addSomeoneNew": "Ajouter quelqu’un",
  375. "notOnBoard": "Pas encore sur le planning",
  376. "putOnBoard": "Mettre au planning",
  377. "slotTaken": "{count, plural, one {Ce créneau est déjà réservé} other {Ce créneau a # conflits}}",
  378. "anotherJob": "un autre travail",
  379. "clashTechnician": "le technicien est occupé",
  380. "clashBay": "la baie est occupée",
  381. "clashBoth": "les deux sont occupés",
  382. "bookedAnyway": "Enregistré quand même. Changez l'heure ou choisissez le prochain créneau libre.",
  383. "pickNextAvailable": "Choisir le prochain créneau libre",
  384. "findingSlot": "Recherche d'un créneau…",
  385. "slotPicked": "Placé sur le prochain créneau libre",
  386. "noSlotFound": "Aucun créneau libre trouvé dans les prochaines semaines"
  387. },
  388. "notifications": {
  389. "title": "Notifications client",
  390. "viaSms": "par SMS",
  391. "viaEmail": "par e-mail",
  392. "justNow": "À l'instant",
  393. "minutesAgo": "il y a {count}m",
  394. "hoursAgo": "il y a {count}h",
  395. "daysAgo": "il y a {count}j"
  396. },
  397. "table": {
  398. "warranty": "Garantie"
  399. },
  400. "warranty": {
  401. "title": "Garantie",
  402. "months": "Durée (mois)",
  403. "mileage": "Limite de kilométrage",
  404. "notes": "Conditions de garantie",
  405. "notesPlaceholder": "ex. Garantie de 12 mois sur toutes les pièces et la main-d'œuvre...",
  406. "expiresAt": "Expire",
  407. "presets": {
  408. "3months": "3 m",
  409. "6months": "6 m",
  410. "12months": "12 m",
  411. "24months": "24 m"
  412. },
  413. "status": {
  414. "active": "Active",
  415. "expiring": "Expire bientôt",
  416. "expired": "Expirée",
  417. "none": "Aucune"
  418. },
  419. "defaults": {
  420. "title": "Paramètres de garantie par défaut",
  421. "description": "Définir les conditions de garantie par défaut pour les nouveaux dossiers de service"
  422. }
  423. },
  424. "concerns": {
  425. "title": "Demandes du client",
  426. "addFirst": "Ajouter une demande du client",
  427. "add": "En ajouter un autre",
  428. "placeholder": "Il y a un bruit à l'arrière quand je freine",
  429. "remove": "Retirer ce point",
  430. "notAnswered": "Rien trouvé à ce sujet pour l'instant",
  431. "answered": "{count} constat(s) à ce sujet"
  432. },
  433. "videoCall": {
  434. "title": "Appel vidéo",
  435. "none": "Aucun appel vidéo sur cet ordre de travail.",
  436. "needsSchedule": "Définissez d'abord une heure de début. La réunion suit le planning.",
  437. "add": "Ajouter une réunion {provider}",
  438. "addedHere": "ajouté depuis cet ordre de travail",
  439. "fromCalendar": "depuis l'événement du calendrier",
  440. "join": "Rejoindre",
  441. "copy": "Copier le lien",
  442. "copied": "Lien copié",
  443. "remove": "Supprimer",
  444. "removeTitle": "Supprimer l'appel vidéo ?",
  445. "removeDescription": "La réunion est supprimée chez le fournisseur. Ceux qui ont déjà le lien ne pourront plus rejoindre.",
  446. "created": "Réunion créée. Le lien est sur l'ordre de travail.",
  447. "removed": "Réunion supprimée",
  448. "failed": "Une erreur s'est produite",
  449. "shareHint": "Le client ne reçoit ce lien que si vous l'envoyez.",
  450. "shareHintNoChannel": "Le client ne reçoit ce lien que si vous l'envoyez. Aucun canal de messagerie n'est configuré : copiez-le vous-même dans un message.",
  451. "send": {
  452. "button": "Envoyer au client",
  453. "title": "Envoyer le lien de l'appel vidéo",
  454. "description": "Envoyer le lien de connexion à {name}.",
  455. "messageLabel": "Note (facultatif)",
  456. "messagePlaceholder": "Ce que le client doit savoir avant l'appel...",
  457. "linkAlwaysIncluded": "Le lien de connexion est toujours ajouté sous votre note.",
  458. "sms": "SMS",
  459. "email": "E-mail",
  460. "telegram": "Telegram",
  461. "noPhone": "(pas de téléphone)",
  462. "noEmail": "(pas d'e-mail)",
  463. "noTelegram": "(pas de chat lié)",
  464. "notAvailable": "(non configuré)",
  465. "cancel": "Annuler",
  466. "send": "Envoyer",
  467. "sent": "Lien de l'appel vidéo envoyé",
  468. "partlySent": "Envoyé par {sent} ; pas par {failed}",
  469. "failed": "Impossible d'envoyer le lien"
  470. },
  471. "notify": {
  472. "invitation": "Bonjour {name}, votre appel vidéo concernant le véhicule {vehicle} a lieu le {when}. Rejoignez-le ici : {url}",
  473. "invitationNoTime": "Bonjour {name}, voici le lien de l'appel vidéo concernant le véhicule {vehicle} : {url}",
  474. "joinLine": "Rejoignez l'appel vidéo ici : {url}",
  475. "emailSubject": "Appel vidéo concernant votre {vehicle}"
  476. }
  477. }
  478. }