@consilioweb/payload-support 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +525 -0
  3. package/dist/client.cjs +7 -0
  4. package/dist/client.d.cts +3 -0
  5. package/dist/client.d.ts +3 -0
  6. package/dist/client.js +5 -0
  7. package/dist/index.cjs +7766 -0
  8. package/dist/index.d.cts +384 -0
  9. package/dist/index.d.ts +384 -0
  10. package/dist/index.js +7730 -0
  11. package/dist/views.d.cts +30 -0
  12. package/dist/views.d.ts +30 -0
  13. package/package.json +131 -0
  14. package/src/client.ts +1 -0
  15. package/src/collections/AuthLogs.ts +65 -0
  16. package/src/collections/CannedResponses.ts +69 -0
  17. package/src/collections/ChatMessages.ts +98 -0
  18. package/src/collections/EmailLogs.ts +94 -0
  19. package/src/collections/KnowledgeBase.ts +99 -0
  20. package/src/collections/Macros.ts +98 -0
  21. package/src/collections/PendingEmails.ts +122 -0
  22. package/src/collections/SatisfactionSurveys.ts +98 -0
  23. package/src/collections/SlaPolicies.ts +123 -0
  24. package/src/collections/SupportClients.ts +210 -0
  25. package/src/collections/TicketActivityLog.ts +81 -0
  26. package/src/collections/TicketMessages.ts +364 -0
  27. package/src/collections/TicketStatuses.ts +108 -0
  28. package/src/collections/Tickets.ts +704 -0
  29. package/src/collections/TimeEntries.ts +105 -0
  30. package/src/collections/WebhookEndpoints.ts +96 -0
  31. package/src/collections/index.ts +16 -0
  32. package/src/components/TicketConversation/components/AISummaryPanel.tsx +85 -0
  33. package/src/components/TicketConversation/components/ActionPanels.tsx +140 -0
  34. package/src/components/TicketConversation/components/ActivityLog.tsx +39 -0
  35. package/src/components/TicketConversation/components/ClientBar.tsx +37 -0
  36. package/src/components/TicketConversation/components/ClientHistory.tsx +117 -0
  37. package/src/components/TicketConversation/components/CodeBlock.tsx +186 -0
  38. package/src/components/TicketConversation/components/CodeBlockInserter.tsx +166 -0
  39. package/src/components/TicketConversation/components/QuickActions.tsx +82 -0
  40. package/src/components/TicketConversation/components/TicketHeader.tsx +91 -0
  41. package/src/components/TicketConversation/components/TimeTrackingPanel.tsx +161 -0
  42. package/src/components/TicketConversation/config.ts +82 -0
  43. package/src/components/TicketConversation/constants.ts +74 -0
  44. package/src/components/TicketConversation/context.ts +63 -0
  45. package/src/components/TicketConversation/hooks/useAI.ts +180 -0
  46. package/src/components/TicketConversation/hooks/useMessageActions.ts +131 -0
  47. package/src/components/TicketConversation/hooks/useReply.ts +190 -0
  48. package/src/components/TicketConversation/hooks/useTicketActions.ts +205 -0
  49. package/src/components/TicketConversation/hooks/useTimeTracking.ts +107 -0
  50. package/src/components/TicketConversation/hooks/useTranslation.ts +116 -0
  51. package/src/components/TicketConversation/index.tsx +1110 -0
  52. package/src/components/TicketConversation/locales/en.json +878 -0
  53. package/src/components/TicketConversation/locales/fr.json +878 -0
  54. package/src/components/TicketConversation/types.ts +54 -0
  55. package/src/components/TicketConversation/utils.ts +25 -0
  56. package/src/endpoints/admin-chat-stream.ts +238 -0
  57. package/src/endpoints/admin-chat.ts +263 -0
  58. package/src/endpoints/admin-stats.ts +200 -0
  59. package/src/endpoints/ai.ts +199 -0
  60. package/src/endpoints/apply-macro.ts +144 -0
  61. package/src/endpoints/auth-2fa.ts +163 -0
  62. package/src/endpoints/auto-close.ts +175 -0
  63. package/src/endpoints/billing.ts +167 -0
  64. package/src/endpoints/bulk-action.ts +103 -0
  65. package/src/endpoints/chat-stream.ts +127 -0
  66. package/src/endpoints/chat.ts +188 -0
  67. package/src/endpoints/chatbot.ts +113 -0
  68. package/src/endpoints/delete-account.ts +129 -0
  69. package/src/endpoints/email-stats.ts +109 -0
  70. package/src/endpoints/export-csv.ts +84 -0
  71. package/src/endpoints/export-data.ts +104 -0
  72. package/src/endpoints/import-conversation.ts +307 -0
  73. package/src/endpoints/index.ts +154 -0
  74. package/src/endpoints/login.ts +92 -0
  75. package/src/endpoints/merge-clients.ts +132 -0
  76. package/src/endpoints/merge-tickets.ts +137 -0
  77. package/src/endpoints/oauth-google.ts +179 -0
  78. package/src/endpoints/pending-emails-process.ts +224 -0
  79. package/src/endpoints/presence.ts +104 -0
  80. package/src/endpoints/process-scheduled.ts +144 -0
  81. package/src/endpoints/purge-logs.ts +58 -0
  82. package/src/endpoints/resend-notification.ts +99 -0
  83. package/src/endpoints/round-robin-config.ts +92 -0
  84. package/src/endpoints/satisfaction.ts +93 -0
  85. package/src/endpoints/search.ts +106 -0
  86. package/src/endpoints/seed-kb.ts +153 -0
  87. package/src/endpoints/settings.ts +144 -0
  88. package/src/endpoints/signature.ts +93 -0
  89. package/src/endpoints/sla-check.ts +124 -0
  90. package/src/endpoints/split-ticket.ts +131 -0
  91. package/src/endpoints/statuses.ts +45 -0
  92. package/src/endpoints/track-open.ts +154 -0
  93. package/src/endpoints/typing.ts +101 -0
  94. package/src/endpoints/user-prefs.ts +125 -0
  95. package/src/hooks/checkSLA.ts +414 -0
  96. package/src/hooks/ticketStatusEmail.ts +182 -0
  97. package/src/index.ts +51 -0
  98. package/src/plugin.ts +157 -0
  99. package/src/portal/LiveChat.tsx +1353 -0
  100. package/src/portal/auth/ChatWidget.tsx +350 -0
  101. package/src/portal/auth/ChatbotWidget.tsx +285 -0
  102. package/src/portal/auth/SupportHeader.tsx +409 -0
  103. package/src/portal/auth/dashboard/DashboardClient.tsx +650 -0
  104. package/src/portal/auth/dashboard/page.tsx +84 -0
  105. package/src/portal/auth/faq/FAQSearch.tsx +117 -0
  106. package/src/portal/auth/faq/page.tsx +199 -0
  107. package/src/portal/auth/layout.tsx +61 -0
  108. package/src/portal/auth/profile/page.tsx +705 -0
  109. package/src/portal/auth/tickets/detail/CloseTicketButton.tsx +74 -0
  110. package/src/portal/auth/tickets/detail/CollapsibleMessages.tsx +46 -0
  111. package/src/portal/auth/tickets/detail/MarkSolutionButton.tsx +50 -0
  112. package/src/portal/auth/tickets/detail/MessageActions.tsx +158 -0
  113. package/src/portal/auth/tickets/detail/PrintButton.tsx +16 -0
  114. package/src/portal/auth/tickets/detail/ReadReceipt.tsx +34 -0
  115. package/src/portal/auth/tickets/detail/ReopenTicketButton.tsx +74 -0
  116. package/src/portal/auth/tickets/detail/SatisfactionForm.tsx +156 -0
  117. package/src/portal/auth/tickets/detail/TicketPolling.tsx +57 -0
  118. package/src/portal/auth/tickets/detail/TicketReplyForm.tsx +294 -0
  119. package/src/portal/auth/tickets/detail/TypingIndicator.tsx +58 -0
  120. package/src/portal/auth/tickets/detail/page.tsx +738 -0
  121. package/src/portal/auth/tickets/new/page.tsx +515 -0
  122. package/src/portal/forgot-password/page.tsx +114 -0
  123. package/src/portal/layout.tsx +26 -0
  124. package/src/portal/locales/en.json +374 -0
  125. package/src/portal/locales/fr.json +374 -0
  126. package/src/portal/login/page.tsx +351 -0
  127. package/src/portal/page.tsx +162 -0
  128. package/src/portal/register/page.tsx +281 -0
  129. package/src/portal/reset-password/page.tsx +152 -0
  130. package/src/styles/BillingView.module.scss +311 -0
  131. package/src/styles/ChatView.module.scss +438 -0
  132. package/src/styles/CommandPalette.module.scss +160 -0
  133. package/src/styles/CrmView.module.scss +554 -0
  134. package/src/styles/EmailTracking.module.scss +238 -0
  135. package/src/styles/ImportConversation.module.scss +267 -0
  136. package/src/styles/Layout.module.scss +55 -0
  137. package/src/styles/Logs.module.scss +164 -0
  138. package/src/styles/NewTicket.module.scss +143 -0
  139. package/src/styles/PendingEmails.module.scss +629 -0
  140. package/src/styles/SupportDashboard.module.scss +649 -0
  141. package/src/styles/TicketDetail.module.scss +1043 -0
  142. package/src/styles/TicketInbox.module.scss +296 -0
  143. package/src/styles/TicketingSettings.module.scss +358 -0
  144. package/src/styles/TimeDashboard.module.scss +287 -0
  145. package/src/styles/_tokens.scss +78 -0
  146. package/src/styles/theme.css +633 -0
  147. package/src/types.ts +255 -0
  148. package/src/utils/adminNotification.ts +38 -0
  149. package/src/utils/auth.ts +46 -0
  150. package/src/utils/emailTemplate.ts +343 -0
  151. package/src/utils/fireWebhooks.ts +84 -0
  152. package/src/utils/index.ts +22 -0
  153. package/src/utils/rateLimiter.ts +52 -0
  154. package/src/utils/readSettings.ts +67 -0
  155. package/src/utils/slugs.ts +54 -0
  156. package/src/utils/webhookDispatcher.ts +120 -0
  157. package/src/views/BillingView/client.tsx +137 -0
  158. package/src/views/BillingView/index.tsx +33 -0
  159. package/src/views/ChatView/client.tsx +294 -0
  160. package/src/views/ChatView/index.tsx +33 -0
  161. package/src/views/CrmView/client.tsx +206 -0
  162. package/src/views/CrmView/index.tsx +33 -0
  163. package/src/views/EmailTrackingView/client.tsx +124 -0
  164. package/src/views/EmailTrackingView/index.tsx +33 -0
  165. package/src/views/ImportConversationView/client.tsx +133 -0
  166. package/src/views/ImportConversationView/index.tsx +33 -0
  167. package/src/views/LogsView/client.tsx +151 -0
  168. package/src/views/LogsView/index.tsx +30 -0
  169. package/src/views/NewTicketView/client.tsx +227 -0
  170. package/src/views/NewTicketView/index.tsx +30 -0
  171. package/src/views/PendingEmailsView/client.tsx +177 -0
  172. package/src/views/PendingEmailsView/index.tsx +33 -0
  173. package/src/views/SupportDashboardView/client.tsx +424 -0
  174. package/src/views/SupportDashboardView/index.tsx +33 -0
  175. package/src/views/TicketDetailView/client.tsx +775 -0
  176. package/src/views/TicketDetailView/index.tsx +33 -0
  177. package/src/views/TicketInboxView/client.tsx +313 -0
  178. package/src/views/TicketInboxView/index.tsx +30 -0
  179. package/src/views/TicketingSettingsView/client.tsx +866 -0
  180. package/src/views/TicketingSettingsView/index.tsx +33 -0
  181. package/src/views/TimeDashboardView/client.tsx +144 -0
  182. package/src/views/TimeDashboardView/index.tsx +33 -0
  183. package/src/views/shared/AdminViewHeader.tsx +69 -0
  184. package/src/views/shared/ErrorBoundary.tsx +68 -0
  185. package/src/views/shared/Skeleton.tsx +125 -0
  186. package/src/views/shared/adminTokens.ts +37 -0
  187. package/src/views/shared/config.ts +82 -0
  188. package/src/views/shared/index.ts +6 -0
  189. package/src/views.ts +16 -0
@@ -0,0 +1,878 @@
1
+ {
2
+ "common": {
3
+ "save": "Sauvegarder",
4
+ "cancel": "Annuler",
5
+ "delete": "Supprimer",
6
+ "edit": "Modifier",
7
+ "close": "Fermer",
8
+ "open": "Ouvrir",
9
+ "loading": "Chargement...",
10
+ "search": "Rechercher",
11
+ "send": "Envoyer",
12
+ "back": "Retour",
13
+ "confirm": "Confirmer",
14
+ "yes": "Oui",
15
+ "no": "Non",
16
+ "none": "Aucun",
17
+ "error": "Erreur",
18
+ "success": "Succès",
19
+ "networkError": "Erreur réseau",
20
+ "unknownError": "Erreur inconnue",
21
+ "sessionExpired": "Session expirée. Rechargez la page pour vous reconnecter.",
22
+ "copied": "Copié",
23
+ "stable": "stable",
24
+ "noData": "Pas de données",
25
+ "today": "Aujourd'hui",
26
+ "yesterday": "Hier",
27
+ "now": "maintenant",
28
+ "justNow": "a l'instant",
29
+ "agoMinutes": "il y a {{count}}min",
30
+ "agoHours": "il y a {{count}}h",
31
+ "agoDays": "il y a {{count}}j",
32
+ "agoWeeks": "il y a {{count}}sem",
33
+ "agoMonths": "Il y a {{count}} mois",
34
+ "file": "Fichier",
35
+ "attachment": "PJ",
36
+ "previous": "Précédent",
37
+ "next": "Suivant",
38
+ "page": "Page",
39
+ "results": "résultats",
40
+ "all": "Tous",
41
+ "or": "OU",
42
+ "required": "obligatoire",
43
+ "optional": "optionnel"
44
+ },
45
+ "ticket": {
46
+ "title": "Ticket",
47
+ "tickets": "Tickets",
48
+ "newTicket": "Nouveau ticket",
49
+ "createTicket": "Créer le ticket",
50
+ "creating": "Création...",
51
+ "subject": "Sujet",
52
+ "description": "Description",
53
+ "message": "Message",
54
+ "messages": "Messages",
55
+ "noMessages": "Aucun message.",
56
+ "messageDeleted": "Ce message a ete supprime.",
57
+ "messageDeletedShort": "Message supprimé",
58
+ "conversation": "Conversation",
59
+ "selectTicket": "Sélectionnez un ticket depuis la liste",
60
+ "notFound": "Ticket introuvable",
61
+ "saveToSee": "Enregistrez le ticket pour voir le tableau de bord.",
62
+ "status": {
63
+ "open": "Ouvert",
64
+ "waiting_client": "En attente",
65
+ "resolved": "Résolu",
66
+ "label": "Statut"
67
+ },
68
+ "priority": {
69
+ "low": "Basse",
70
+ "normal": "Normale",
71
+ "high": "Haute",
72
+ "urgent": "Urgente",
73
+ "label": "Priorité"
74
+ },
75
+ "category": {
76
+ "bug": "Bug",
77
+ "bugFull": "Bug / Dysfonctionnement",
78
+ "content": "Contenu",
79
+ "contentFull": "Modification de contenu",
80
+ "feature": "Fonctionnalité",
81
+ "featureFull": "Nouvelle fonctionnalité",
82
+ "question": "Question",
83
+ "questionFull": "Question / Aide",
84
+ "hosting": "Hébergement",
85
+ "hostingFull": "Hébergement / Domaine",
86
+ "label": "Catégorie",
87
+ "select": "-- Selectionner --"
88
+ },
89
+ "source": {
90
+ "email": "Email",
91
+ "liveChat": "Live Chat",
92
+ "portal": "Portail",
93
+ "admin": "Admin",
94
+ "label": "Source"
95
+ },
96
+ "details": "Details",
97
+ "assigned": "Assigne",
98
+ "project": "Projet",
99
+ "noProject": "-- Aucun --",
100
+ "allProjects": "Tous les projets",
101
+ "noProjectLabel": "Sans projet"
102
+ },
103
+ "inbox": {
104
+ "title": "Tickets",
105
+ "searchPlaceholder": "Rechercher...",
106
+ "newTicketBtn": "Nouveau ticket",
107
+ "tabs": {
108
+ "all": "Tous",
109
+ "open": "Ouverts",
110
+ "waiting": "Attente",
111
+ "resolved": "Resolus"
112
+ },
113
+ "sort": {
114
+ "newest": "Tri : Recents",
115
+ "oldest": "Tri : Anciens",
116
+ "created": "Tri : Creation",
117
+ "priority": "Tri : Priorite"
118
+ },
119
+ "selected": "{{count}} selectionne",
120
+ "selectedPlural": "{{count}} selectionnes",
121
+ "closeAction": "Fermer",
122
+ "reopenAction": "Rouvrir",
123
+ "moreActions": "Plus...",
124
+ "changePriority": "Changer priorite",
125
+ "deleteAction": "Supprimer",
126
+ "deselect": "Désélectionner",
127
+ "empty": "Aucun ticket trouve",
128
+ "keyboardNavigate": "naviguer",
129
+ "keyboardOpen": "ouvrir"
130
+ },
131
+ "dashboard": {
132
+ "title": "Dashboard Support",
133
+ "subtitle": "Vue d'ensemble des métriques du support client",
134
+ "loadingMetrics": "Chargement des métriques...",
135
+ "loadError": "Erreur de chargement",
136
+ "cannotLoadStats": "Impossible de charger les statistiques du support.",
137
+ "openTickets": "Tickets ouverts",
138
+ "waitingClient": "Attente client",
139
+ "responseTime": "Temps de réponse",
140
+ "satisfaction": "Satisfaction",
141
+ "activeTickets": "Tickets actifs",
142
+ "noActiveTickets": "Aucun ticket actif",
143
+ "volume7days": "Volume (7 jours)",
144
+ "csat": "CSAT",
145
+ "csatNoData": "Pas de données",
146
+ "csatReviews": "{{count}} avis recueillis",
147
+ "csatNoReviews": "Aucun avis",
148
+ "newTicketAction": "+ Nouveau ticket",
149
+ "pendingEmails": "Emails en attente",
150
+ "crm": "CRM",
151
+ "preBilling": "Pré-facturation",
152
+ "exportCsv": "Export CSV",
153
+ "tableHeaders": {
154
+ "status": "Statut",
155
+ "number": "N\u00b0",
156
+ "subject": "Sujet",
157
+ "client": "Client",
158
+ "modified": "Modifié"
159
+ },
160
+ "weekDays": {
161
+ "mon": "Lun",
162
+ "tue": "Mar",
163
+ "wed": "Mer",
164
+ "thu": "Jeu",
165
+ "fri": "Ven",
166
+ "sat": "Sam",
167
+ "sun": "Dim"
168
+ }
169
+ },
170
+ "composer": {
171
+ "placeholder": "Écrire une réponse au client...",
172
+ "placeholderInternal": "Note interne...",
173
+ "placeholderReplyTo": "Répondre à {{name}}...",
174
+ "sendReply": "Send \u2192",
175
+ "sending": "Envoi...",
176
+ "addNote": "Ajouter note",
177
+ "sendAndNotify": "Envoyer + Notifier",
178
+ "saveOnly": "Sauvegarder",
179
+ "internalNote": "Note interne",
180
+ "notifyClient": "Envoyer au client",
181
+ "internal": "Internal",
182
+ "notify": "Notify",
183
+ "sendAsSupport": "En tant que : Support",
184
+ "sendAsClient": "En tant que : Client",
185
+ "attachment": "+ Piece jointe",
186
+ "canned": "Canned",
187
+ "cannedSelect": "Réponse rapide...",
188
+ "cannedVariablesHint": "Variables disponibles : {{client.firstName}}, {{client.lastName}}, {{client.company}}, {{client.email}}, {{ticket.number}}, {{ticket.subject}}, {{agent.name}}",
189
+ "quickReplies": {
190
+ "received": "Bien reçu, je regarde ça !",
191
+ "fixed": "C'est corrigé !",
192
+ "clarify": "Pouvez-vous préciser ?",
193
+ "backSoon": "Je reviens vers vous rapidement",
194
+ "screenshot": "Pouvez-vous m'envoyer une capture d'ecran ?"
195
+ },
196
+ "schedule": {
197
+ "label": "Programmer pour :",
198
+ "button": "Programmer",
199
+ "tooltip": "Programmer l'envoi a une date/heure precise"
200
+ },
201
+ "shortcuts": {
202
+ "sendHint": "\u2318Enter pour envoyer",
203
+ "noteHint": "\u2318\u21e7N note interne"
204
+ }
205
+ },
206
+ "settings": {
207
+ "title": "Configuration du module Support",
208
+ "subtitle": "{{enabled}}/{{total}} fonctionnalites activees",
209
+ "resetAll": "Tout réactiver",
210
+ "saved": "\u2713 Sauvegarde",
211
+ "description": "Activez ou désactivez les fonctionnalités du module de support. Les fonctionnalités désactivées sont complètement masquées de l'interface. Les changements prennent effet immédiatement après sauvegarde (rechargez la page du ticket).",
212
+ "categories": {
213
+ "core": "Fonctionnalités de base",
214
+ "communication": "Communication",
215
+ "productivity": "Productivité",
216
+ "advanced": "Avancé"
217
+ },
218
+ "features": {
219
+ "canned": {
220
+ "label": "Réponses rapides",
221
+ "description": "Templates de réponses pré-enregistrées avec variables dynamiques"
222
+ },
223
+ "scheduledReplies": {
224
+ "label": "Réponses programmées",
225
+ "description": "Envoyer une réponse à une date/heure future"
226
+ },
227
+ "activityLog": {
228
+ "label": "Journal d'activité",
229
+ "description": "Timeline des actions sur chaque ticket (changements de statut, assignation...)"
230
+ },
231
+ "emailTracking": {
232
+ "label": "Suivi des emails",
233
+ "description": "Tracking d'envoi et d'ouverture des notifications email"
234
+ },
235
+ "chat": {
236
+ "label": "Live Chat",
237
+ "description": "Chat en temps réel avec conversion en ticket"
238
+ },
239
+ "externalMessages": {
240
+ "label": "Messages externes",
241
+ "description": "Ajouter manuellement des messages reçus par email, SMS, WhatsApp..."
242
+ },
243
+ "ai": {
244
+ "label": "Intelligence Artificielle",
245
+ "description": "Analyse de sentiment, synthèse, suggestion de réponse, reformulation"
246
+ },
247
+ "timeTracking": {
248
+ "label": "Suivi du temps",
249
+ "description": "Timer, entrées manuelles, facturation"
250
+ },
251
+ "codeSnippets": {
252
+ "label": "Partage de code / secrets",
253
+ "description": "Snippets chiffrés AES-256 avec expiration et burn-after-reading"
254
+ },
255
+ "satisfaction": {
256
+ "label": "Enquêtes satisfaction",
257
+ "description": "Score CSAT après résolution du ticket"
258
+ },
259
+ "merge": {
260
+ "label": "Fusion de tickets",
261
+ "description": "Combiner deux tickets en un seul"
262
+ },
263
+ "splitTicket": {
264
+ "label": "Extraction de message",
265
+ "description": "Extraire un message en nouveau ticket lié"
266
+ },
267
+ "snooze": {
268
+ "label": "Snooze",
269
+ "description": "Masquer temporairement un ticket et rappel automatique"
270
+ },
271
+ "clientHistory": {
272
+ "label": "Historique client",
273
+ "description": "Tickets passés, projets et notes internes du client"
274
+ }
275
+ }
276
+ },
277
+ "ai": {
278
+ "suggest": "Suggestion IA",
279
+ "suggesting": "Génération...",
280
+ "rewrite": "Reformuler",
281
+ "rewriting": "Reformulation...",
282
+ "summary": "Synthèse IA",
283
+ "summaryHide": "Masquer la synthèse IA",
284
+ "summaryTitle": "Synthèse IA",
285
+ "regenerate": "Régénérer",
286
+ "regenerating": "Génération...",
287
+ "saveAsNote": "Sauvegarder (note interne)",
288
+ "saving": "Sauvegarde...",
289
+ "saved": "Sauvegardé",
290
+ "analyzing": "Analyse de la conversation en cours...",
291
+ "clickRegenerate": "Cliquez sur \"Regenerer\" pour lancer l'analyse",
292
+ "tooltipSuggest": "Suggestion IA",
293
+ "tooltipRewrite": "Reformuler",
294
+ "codeSnippet": "Code / Secret",
295
+ "sentiment": {
296
+ "label": "Sentiment",
297
+ "frustrated": "Frustré",
298
+ "unhappy": "Mécontent",
299
+ "urgent": "Urgent",
300
+ "neutral": "Neutre",
301
+ "satisfied": "Satisfait"
302
+ }
303
+ },
304
+ "timer": {
305
+ "title": "Temps",
306
+ "total": "total",
307
+ "start": "Démarrer",
308
+ "pause": "Pause",
309
+ "resume": "Reprendre",
310
+ "save": "Sauvegarder",
311
+ "discard": "Annuler",
312
+ "recording": "Enregistrement en cours -- session maintenue active",
313
+ "minRequired": "Minimum 1 minute",
314
+ "saveMinutes": "Sauvegarder {{count}} min",
315
+ "manualEntry": {
316
+ "minutes": "Min",
317
+ "description": "Description",
318
+ "placeholder": "Travail effectué...",
319
+ "addTime": "+ Temps"
320
+ },
321
+ "tableHeaders": {
322
+ "date": "Date",
323
+ "duration": "Durée",
324
+ "description": "Description"
325
+ }
326
+ },
327
+ "client": {
328
+ "title": "Client",
329
+ "clientCard": "Fiche client",
330
+ "viewAsClient": "Voir en tant que client",
331
+ "clientPortal": "Portail",
332
+ "clientSheet": "Fiche",
333
+ "copyAdminLink": "Copier le lien admin",
334
+ "copyClientLink": "Copier le lien client",
335
+ "history": {
336
+ "title": "Historique client",
337
+ "ticketCount": "{{count}} ticket",
338
+ "ticketCountPlural": "{{count}} tickets",
339
+ "projectCount": "{{count}} projet",
340
+ "projectCountPlural": "{{count}} projets",
341
+ "pastTickets": "Derniers tickets",
342
+ "noOtherTickets": "Aucun autre ticket",
343
+ "projects": "Projets",
344
+ "noProjects": "Aucun projet",
345
+ "internalNotes": "Notes internes",
346
+ "notesPlaceholder": "Notes sur ce client...",
347
+ "saveNotes": "Sauvegarder les notes",
348
+ "savingNotes": "Sauvegarde...",
349
+ "notesSaved": "Sauvegarde OK"
350
+ }
351
+ },
352
+ "activity": {
353
+ "title": "Historique",
354
+ "noActivity": "Aucune activité enregistrée.",
355
+ "activityLabel": "Activité"
356
+ },
357
+ "actions": {
358
+ "waitingClient": "Attente client",
359
+ "resolved": "Résolu",
360
+ "reopen": "Rouvrir",
361
+ "merge": "Fusionner",
362
+ "addReceivedMessage": "+ Message recu",
363
+ "snooze": "Snooze",
364
+ "nextTicket": "Ticket suivant",
365
+ "cancelSnooze": "Annuler snooze",
366
+ "nextTicketLabel": "Ticket suivant :",
367
+ "noMoreTickets": "Aucun ticket suivant",
368
+ "editMessage": "Modifier",
369
+ "deleteMessage": "Supprimer",
370
+ "resendEmail": "Renvoyer email",
371
+ "resending": "Envoi...",
372
+ "resent": "Envoyé !",
373
+ "extractMessage": "Extraire",
374
+ "extractToNewTicket": "Extraire en nouveau ticket",
375
+ "saveEdit": "Enregistrer",
376
+ "cancelEdit": "Annuler",
377
+ "payloadView": "Vue Payload",
378
+ "clientView": "Vue client",
379
+ "copyLink": "Copier le lien",
380
+ "deleteConfirm": "Supprimer ?"
381
+ },
382
+ "merge": {
383
+ "title": "Fusionner ce ticket dans un autre",
384
+ "placeholder": "TK-0001",
385
+ "search": "Rechercher",
386
+ "confirm": "Confirmer la fusion",
387
+ "merging": "Fusion..."
388
+ },
389
+ "externalMessage": {
390
+ "title": "Ajouter un message recu (email, SMS, WhatsApp...)",
391
+ "placeholder": "Coller le contenu du message reçu...",
392
+ "sentByClient": "Envoyé par le client",
393
+ "sentBySupport": "Envoyé par le support",
394
+ "addAttachment": "+ PJ",
395
+ "adding": "Ajout...",
396
+ "addWithoutNotification": "Ajouter (sans notification)"
397
+ },
398
+ "snooze": {
399
+ "title": "Snooze -- masquer temporairement",
400
+ "oneDay": "1 jour",
401
+ "threeDays": "3 jours",
402
+ "oneWeek": "1 semaine",
403
+ "snoozed": "Snooze"
404
+ },
405
+ "collapse": {
406
+ "showPrevious": "Voir les {{count}} message précédent",
407
+ "showPreviousPlural": "Voir les {{count}} messages précédents",
408
+ "hideOld": "Masquer les anciens messages"
409
+ },
410
+ "messageStatus": {
411
+ "internal": "Interne",
412
+ "solution": "Solution",
413
+ "chat": "Chat",
414
+ "email": "Email",
415
+ "support": "Support",
416
+ "edited": "(modifié)",
417
+ "sent": "Envoyé",
418
+ "read": "Lu",
419
+ "opened": "Ouvert",
420
+ "sentTo": "Envoyé à {{to}}",
421
+ "openedAt": "Ouvert {{date}}",
422
+ "scheduled": "Programmé le {{created}} -- redige le {{scheduled}}",
423
+ "scheduledPending": "Rédigé le {{created}} -- envoi programme le {{scheduled}}"
424
+ },
425
+ "newTicket": {
426
+ "title": "Nouveau ticket",
427
+ "subtitle": "Créer un ticket de support pour un client",
428
+ "backToInbox": "Retour à l'inbox",
429
+ "clientLabel": "Client",
430
+ "clientSearchPlaceholder": "Rechercher par nom, email, entreprise...",
431
+ "subjectLabel": "Sujet",
432
+ "subjectPlaceholder": "Décrivez brièvement le problème",
433
+ "categoryLabel": "Catégorie",
434
+ "priorityLabel": "Priorité",
435
+ "projectLabel": "Projet",
436
+ "descriptionLabel": "Description",
437
+ "descriptionPlaceholder": "Détaillez le problème ou la demande...",
438
+ "submitButton": "Créer le ticket",
439
+ "submitting": "Création...",
440
+ "errors": {
441
+ "subjectRequired": "Le sujet est obligatoire",
442
+ "clientRequired": "Sélectionnez un client",
443
+ "creationError": "Erreur lors de la création",
444
+ "networkError": "Erreur réseau"
445
+ }
446
+ },
447
+ "commandPalette": {
448
+ "placeholder": "Rechercher tickets, clients, messages...",
449
+ "searching": "Recherche...",
450
+ "noResults": "Aucun résultat pour \"{{query}}\"",
451
+ "sections": {
452
+ "tickets": "Tickets",
453
+ "clients": "Clients",
454
+ "messages": "Messages",
455
+ "knowledgeBase": "Base de connaissances"
456
+ },
457
+ "keyboard": {
458
+ "navigate": "naviguer",
459
+ "open": "ouvrir",
460
+ "close": "fermer"
461
+ }
462
+ },
463
+ "chat": {
464
+ "title": "Chat en direct",
465
+ "sessionCount": "{{count}} session active",
466
+ "sessionCountPlural": "{{count}} sessions actives",
467
+ "tabs": {
468
+ "active": "Actifs",
469
+ "closed": "Fermés"
470
+ },
471
+ "noSession": "Aucune session",
472
+ "noSessionActive": "Aucune session active",
473
+ "noSessionClosed": "Aucune session fermée",
474
+ "selectSession": "Sélectionnez une session pour commencer",
475
+ "closeChat": "Fermer le chat",
476
+ "quickReply": "Réponse rapide...",
477
+ "inputPlaceholder": "Tapez votre réponse...",
478
+ "sendButton": "Envoyer",
479
+ "clientReview": "Avis client",
480
+ "you": "Vous",
481
+ "agent": "Agent",
482
+ "clientLabel": "Client",
483
+ "msg": "msg"
484
+ },
485
+ "crm": {
486
+ "title": "CRM Clients",
487
+ "subtitle": "Fiche client complète avec historique tickets, projets et temps passé",
488
+ "searchPlaceholder": "Rechercher un client...",
489
+ "noClientFound": "Aucun client trouvé",
490
+ "selectClient": "Sélectionnez un client pour voir sa fiche",
491
+ "editButton": "Modifier",
492
+ "mergeButton": "Fusionner",
493
+ "mergeTitle": "Fusionner ce client dans un autre",
494
+ "mergeDescription": "Tous les tickets, messages, projets et enquetes de {{company}} seront transferes vers le client cible. Le client actuel sera supprimé.",
495
+ "mergeSearchPlaceholder": "Rechercher le client cible (nom, email, entreprise)...",
496
+ "mergeConfirm": "Fusionner \"{{source}}\" dans \"{{target}}\" ?\n\nTous les tickets, messages et projets seront transférés.\nLe client \"{{source}}\" sera supprimé.\n\nCette action est irréversible.",
497
+ "mergeNoClient": "Aucun client trouvé",
498
+ "stats": {
499
+ "totalTickets": "Total tickets",
500
+ "openTickets": "Ouverts",
501
+ "resolvedTickets": "Résolus",
502
+ "timeSpent": "Temps passé",
503
+ "lastActivity": "Dernière activité"
504
+ },
505
+ "sections": {
506
+ "projects": "Projets",
507
+ "tickets": "Tickets",
508
+ "viewAll": "Voir tout"
509
+ },
510
+ "noTickets": "Aucun ticket",
511
+ "tableHeaders": {
512
+ "number": "N\u00b0",
513
+ "subject": "Sujet",
514
+ "status": "Statut",
515
+ "date": "Date"
516
+ },
517
+ "projectStatus": {
518
+ "active": "Actif",
519
+ "paused": "En pause",
520
+ "completed": "Terminé"
521
+ }
522
+ },
523
+ "pendingEmails": {
524
+ "title": "Emails en attente",
525
+ "subtitle": "File d'attente des emails entrants -- Validez, rattachez ou ignorez",
526
+ "pendingCount": "{{count}} en attente",
527
+ "tabs": {
528
+ "pending": "En attente",
529
+ "processed": "Traites",
530
+ "ignored": "Ignorés"
531
+ },
532
+ "empty": {
533
+ "pending": "Aucun email en attente",
534
+ "processed": "Aucun email traite",
535
+ "ignored": "Aucun email ignore"
536
+ },
537
+ "actions": {
538
+ "createTicket": "Créer un ticket",
539
+ "linkToTicket": "Rattacher a un ticket",
540
+ "ignore": "Ignorer"
541
+ },
542
+ "status": {
543
+ "ticketCreated": "Ticket créé",
544
+ "messageAdded": "Rattaché",
545
+ "ignored": "Ignoré"
546
+ },
547
+ "similarTo": "Similaire a {{ticket}} ({{score}}%)",
548
+ "expand": "Voir tout",
549
+ "collapse": "Réduire",
550
+ "linkModal": {
551
+ "title": "Rattacher a un ticket",
552
+ "suggestions": "Suggestions",
553
+ "searchPlaceholder": "Rechercher un ticket (TK-0042, sujet...)...",
554
+ "searching": "Recherche...",
555
+ "noTicketFound": "Aucun ticket trouvé"
556
+ },
557
+ "clientModal": {
558
+ "title": "Choisir un client",
559
+ "detected": "Client détecté",
560
+ "useButton": "Utiliser",
561
+ "searchPlaceholder": "Rechercher un client (nom, email, entreprise)...",
562
+ "searching": "Recherche...",
563
+ "noClientFound": "Aucun client trouvé",
564
+ "createNew": "Créer un nouveau client",
565
+ "cancelCreate": "Annuler la création",
566
+ "firstName": "Prénom *",
567
+ "lastName": "Nom",
568
+ "email": "Email *",
569
+ "company": "Entreprise *",
570
+ "requiredFields": "Email, prenom et entreprise sont obligatoires",
571
+ "creating": "Création...",
572
+ "createAndUse": "Créer et utiliser",
573
+ "createError": "Erreur lors de la création"
574
+ }
575
+ },
576
+ "emailTracking": {
577
+ "title": "Suivi des emails",
578
+ "tabs": {
579
+ "all": "Tous",
580
+ "success": "Succès",
581
+ "errors": "Erreurs",
582
+ "ignored": "Ignorés"
583
+ },
584
+ "stats": {
585
+ "emailsSent": "Emails envoyés",
586
+ "successRate": "Taux de succès",
587
+ "errors": "Erreurs",
588
+ "avgTime": "Temps moyen"
589
+ },
590
+ "status": {
591
+ "success": "Succès",
592
+ "error": "Erreur",
593
+ "ignored": "Ignoré"
594
+ },
595
+ "tableHeaders": {
596
+ "date": "Date",
597
+ "recipient": "Destinataire",
598
+ "subject": "Sujet",
599
+ "ticket": "Ticket",
600
+ "status": "Statut",
601
+ "action": "Action",
602
+ "time": "Temps"
603
+ },
604
+ "noLogs": "Aucun log pour cette période",
605
+ "searchPlaceholder": "Email, sujet..."
606
+ },
607
+ "billing": {
608
+ "title": "Pré-facturation",
609
+ "subtitle": "Agrégation du temps par projet pour préparer la facturation",
610
+ "filters": {
611
+ "thisMonth": "Ce mois",
612
+ "lastMonth": "Mois précédent",
613
+ "thisQuarter": "Ce trimestre",
614
+ "lastQuarter": "Trimestre précédent",
615
+ "from": "Du",
616
+ "to": "Au",
617
+ "project": "Projet",
618
+ "hourlyRate": "Taux horaire",
619
+ "rateUnit": "EUR/h",
620
+ "load": "Charger",
621
+ "loading": "Chargement..."
622
+ },
623
+ "empty": "Aucun ticket facturable avec des entrées de temps sur cette période.",
624
+ "table": {
625
+ "checkbox": "Tout cocher/decocher",
626
+ "ticketNumber": "N\u00b0 Ticket",
627
+ "subject": "Sujet",
628
+ "date": "Date",
629
+ "duration": "Durée",
630
+ "description": "Description",
631
+ "amount": "Montant",
632
+ "billed": "Facture",
633
+ "markBilled": "Marquer comme facture",
634
+ "markUnbilled": "Marquer comme non facture",
635
+ "billedLabel": "facture",
636
+ "timeLabel": "(temps)",
637
+ "flatRate": "(forfait)"
638
+ },
639
+ "totals": {
640
+ "billableTickets": "{{count}} ticket facturable",
641
+ "billableTicketsPlural": "{{count}} tickets facturables",
642
+ "checked": "{{count}} coche",
643
+ "checkedPlural": "{{count}} coches",
644
+ "total": "Total",
645
+ "uncheckAll": "Tout decocher",
646
+ "checkAll": "Tout cocher",
647
+ "copyRecap": "Copier le recapitulatif",
648
+ "copiedRecap": "Copié !"
649
+ },
650
+ "recap": {
651
+ "header": "PRE-FACTURATION -- Du {{from}} au {{to}}",
652
+ "hourlyRate": "Taux horaire : {{rate}} EUR/h",
653
+ "project": "PROJET : {{name}}",
654
+ "client": "Client : {{company}}",
655
+ "subtotal": "Sous-total",
656
+ "projectTotal": "Total projet",
657
+ "grandTotal": "TOTAL GENERAL"
658
+ }
659
+ },
660
+ "timeDashboard": {
661
+ "title": "Tableau de bord du temps",
662
+ "subtitle": "Analyse et suivi du temps passé par période, projet et ticket",
663
+ "newEntry": "+ Nouvelle entree",
664
+ "filters": {
665
+ "thisMonth": "Ce mois",
666
+ "lastMonth": "Mois précédent",
667
+ "twoMonthsAgo": "-2 mois",
668
+ "from": "Du",
669
+ "to": "Au",
670
+ "groupBy": "Grouper par",
671
+ "day": "Jour",
672
+ "week": "Semaine",
673
+ "project": "Projet"
674
+ },
675
+ "kpis": {
676
+ "totalTime": "Temps total",
677
+ "entries": "Entrées",
678
+ "dailyAverage": "Moyenne/jour"
679
+ },
680
+ "chart": {
681
+ "title": "Temps par jour"
682
+ },
683
+ "empty": "Aucune entrée de temps sur cette période.",
684
+ "weekLabel": "Semaine {{number}}"
685
+ },
686
+ "logs": {
687
+ "title": "Journal des emails",
688
+ "titleAuth": "Journal d'authentification",
689
+ "tabs": {
690
+ "email": "Emails",
691
+ "auth": "Authentification"
692
+ },
693
+ "purge7": "Purger +7j",
694
+ "purge30": "Purger +30j",
695
+ "purgeAll": "Tout purger",
696
+ "purgeConfirm": "Supprimer {{label}} ({{collection}}) ? Cette action est irreversible.",
697
+ "purgeAllLabel": "TOUS les logs",
698
+ "purgeDaysLabel": "les logs de plus de {{days}} jours",
699
+ "purgeResult": "{{count}} log(s) supprime(s)",
700
+ "noLogs": "Aucun log",
701
+ "tableHeaders": {
702
+ "date": "Date",
703
+ "status": "Statut",
704
+ "recipient": "Destinataire",
705
+ "subject": "Sujet",
706
+ "action": "Action",
707
+ "time": "Temps",
708
+ "email": "Email",
709
+ "ip": "IP",
710
+ "userAgent": "User Agent"
711
+ },
712
+ "statusSuccess": "Succes",
713
+ "statusError": "Erreur",
714
+ "statusIgnored": "Ignore",
715
+ "statusFailed": "Echec"
716
+ },
717
+ "import": {
718
+ "title": "Importer une conversation",
719
+ "newImport": "Nouvel import",
720
+ "dropzoneText": "Glisser un fichier .md ici ou cliquer pour parcourir",
721
+ "dropzoneLoaded": "Fichier charge -- cliquer pour en choisir un autre",
722
+ "acceptedFormats": "Formats acceptes : .md, .txt",
723
+ "formatError": "Format accepte : .md ou .txt",
724
+ "sizeError": "Fichier trop volumineux (max 500 Ko)",
725
+ "preview": "Apercu",
726
+ "analyzing": "Analyse...",
727
+ "importButton": "Importer {{count}} messages",
728
+ "importing": "Import en cours...",
729
+ "client": "Client",
730
+ "name": "Nom",
731
+ "email": "Email",
732
+ "company": "Entreprise",
733
+ "parsing": "Parsing",
734
+ "parsingRegex": "Regex",
735
+ "parsingAi": "IA",
736
+ "messages": "messages",
737
+ "resultTitle": "Conversation importee",
738
+ "resultTicket": "Ticket",
739
+ "resultClient": "Client",
740
+ "resultCompany": "Entreprise",
741
+ "resultMessages": "Messages",
742
+ "resultImported": "{{count}} importes",
743
+ "resultNew": "Nouveau"
744
+ },
745
+ "detail": {
746
+ "backLabel": "Retour",
747
+ "copyLink": "Copier le lien",
748
+ "payloadView": "Vue Payload",
749
+ "clientView": "Vue client",
750
+ "viewingAlso": "{{names}} est aussi en train de voir ce ticket",
751
+ "viewingAlsoPlural": "{{names}} sont aussi en train de voir ce ticket",
752
+ "typing": "{{name}} est en train d'ecrire...",
753
+ "internalNote": "Note interne",
754
+ "notify": "Notifier",
755
+ "sendNote": "Ajouter note",
756
+ "sendReply": "Envoyer ->",
757
+ "sending": "Envoi...",
758
+ "iaSuggestion": "IA Suggestion",
759
+ "rewrite": "Reformuler",
760
+ "file": "Fichier",
761
+ "macros": "Macros",
762
+ "applyingMacro": "Application...",
763
+ "cannedResponses": "Reponses types",
764
+ "details": "Details",
765
+ "priority": "Priorite",
766
+ "category": "Categorie",
767
+ "source": "Source",
768
+ "assigned": "Assigne",
769
+ "tags": "Tags",
770
+ "time": "Temps",
771
+ "total": "total",
772
+ "manualAdd": "+ Ajouter",
773
+ "manualEntry": "Saisie manuelle",
774
+ "activity": "Activite",
775
+ "messageDeleted": "Message supprime",
776
+ "undo": "Annuler",
777
+ "extractTitle": "Extraire dans un nouveau ticket",
778
+ "extractSubjectPlaceholder": "Sujet du nouveau ticket...",
779
+ "statusOpen": "Ouvert",
780
+ "statusWaiting": "En attente",
781
+ "statusResolved": "Resolu",
782
+ "selectTicket": "Selectionnez un ticket depuis la liste",
783
+ "notFound": "Ticket introuvable"
784
+ },
785
+ "settingsView": {
786
+ "configTitle": "Configuration du module Support",
787
+ "features": "Fonctionnalités",
788
+ "featuresDescription": "Activez ou desactivez les fonctionnalites du module. Les fonctionnalites desactivees sont completement masquees de l'interface.",
789
+ "emailConfig": "Configuration Email",
790
+ "emailDescription": "Parametres d'envoi des notifications email. L'adresse SMTP est configuree via les variables d'environnement du serveur.",
791
+ "senderAddress": "Adresse expediteur",
792
+ "senderAddressDesc": "Adresse email affichee dans le champ From",
793
+ "senderName": "Nom expediteur",
794
+ "senderNameDesc": "Nom affiche a cote de l'adresse email",
795
+ "replyTo": "Adresse Reply-To",
796
+ "replyToDesc": "Si differente de l'adresse expediteur",
797
+ "smtpServer": "Serveur SMTP",
798
+ "smtpServerDesc": "Configure via variables d'environnement",
799
+ "smtpPort": "Port SMTP",
800
+ "aiTitle": "Intelligence Artificielle",
801
+ "aiDescription": "Configurez le fournisseur d'IA et activez/desactivez chaque fonctionnalite independamment.",
802
+ "aiProvider": "Fournisseur",
803
+ "aiProviderDesc": "Service d'IA utilise pour l'analyse",
804
+ "aiApiKey": "Cle API",
805
+ "aiApiKeyDesc": "Cle secrete du fournisseur (non stockee en clair)",
806
+ "aiModel": "Modele",
807
+ "aiModelDesc": "Nom du modele a utiliser",
808
+ "aiSubFeatures": "Fonctionnalités IA individuelles",
809
+ "aiSentiment": "Analyse de sentiment",
810
+ "aiSentimentDesc": "Detecte le niveau de frustration ou satisfaction du client",
811
+ "aiSynthesis": "Synthese automatique",
812
+ "aiSynthesisDesc": "Resume les conversations longues en quelques phrases",
813
+ "aiSuggestion": "Suggestion de reponse",
814
+ "aiSuggestionDesc": "Propose un brouillon de reponse base sur le contexte",
815
+ "aiRewrite": "Reformulation",
816
+ "aiRewriteDesc": "Reformule un message pour le rendre plus professionnel",
817
+ "showKey": "Afficher",
818
+ "hideKey": "Masquer",
819
+ "active": "Active",
820
+ "inactive": "Inactive",
821
+ "slaTitle": "SLA (Accords de niveau de service)",
822
+ "slaDescription": "Definissez les delais de reponse et de resolution attendus.",
823
+ "slaFirstResponse": "Premiere reponse",
824
+ "slaFirstResponseDesc": "Délai maximum en minutes (défaut : 120 = 2h)",
825
+ "slaResolution": "Résolution",
826
+ "slaResolutionDesc": "Délai maximum en minutes (défaut : 1440 = 24h)",
827
+ "minutes": "minutes",
828
+ "businessHoursOnly": "Heures ouvrables uniquement",
829
+ "businessHoursDesc": "Le decompte SLA est suspendu en dehors des heures de bureau (Lun-Ven, 9h-18h)",
830
+ "escalationEmail": "Email d'escalade",
831
+ "escalationEmailDesc": "Adresse notifiee en cas de depassement SLA",
832
+ "autoCloseTitle": "Fermeture automatique",
833
+ "autoCloseDescription": "Les tickets en attente client sans reponse seront automatiquement resolus apres le delai configure.",
834
+ "autoCloseEnable": "Activer la fermeture automatique",
835
+ "autoCloseDelay": "Delai avant fermeture",
836
+ "autoCloseDelayDesc": "Nombre de jours sans reponse du client",
837
+ "days": "jours",
838
+ "autoCloseReminder": "Rappel avant fermeture",
839
+ "autoCloseReminderDesc": "Email de rappel envoye X jours avant",
840
+ "daysBeforeReminder": "jours avant (rappel a J-{{count}})",
841
+ "myPreferences": "Mes preferences",
842
+ "myPreferencesDesc": "Ces reglages sont propres a votre compte et ne s'appliquent qu'a vous.",
843
+ "localeTitle": "Langue et localisation",
844
+ "localeDescription": "Langue de l'interface du module de support et des notifications email envoyees aux clients.",
845
+ "language": "Langue",
846
+ "languageDesc": "Langue principale du module",
847
+ "french": "Francais",
848
+ "english": "English",
849
+ "signatureTitle": "Signature email",
850
+ "signatureDescription": "Signature ajoutee automatiquement en bas de chaque reponse email envoyee au client.",
851
+ "signaturePlaceholder": "Cordialement,\nL'equipe ConsilioWEB",
852
+ "purgeTitle": "Purge des logs",
853
+ "purgeDescription": "Supprimez les anciens logs pour libérer de l'espace. Cette action est irréversible.",
854
+ "purgeEmailLogs": "Logs Email",
855
+ "purgeAuthLogs": "Logs Auth",
856
+ "purge7days": "7 jours",
857
+ "purge30days": "30 jours",
858
+ "purge90days": "90 jours",
859
+ "purgeAllLabel": "Tout",
860
+ "purgeConfirm": "Supprimer les logs {{collection}} de plus de {{days}} jours ?",
861
+ "purgeDone": "{{count}} log(s) supprimé(s)",
862
+ "resetAll": "Réinitialiser tout",
863
+ "saving": "Sauvegarde...",
864
+ "saved": "\u2713 Sauvegardé",
865
+ "saveChanges": "Sauvegarder les modifications",
866
+ "reset": "Reinitialiser",
867
+ "intro": "Configurez le module de support : fonctionnalités, email, IA, SLA et fermeture automatique. Les changements prennent effet immédiatement après sauvegarde (rechargez la page du ticket)."
868
+ },
869
+ "sla": {
870
+ "title": "SLA",
871
+ "loading": "SLA: Chargement...",
872
+ "breached": "En breach",
873
+ "atRisk": "A risque",
874
+ "noBreached": "Aucun ticket en breach",
875
+ "noAtRisk": "Aucun ticket a risque",
876
+ "remaining": "{{time}} restant"
877
+ }
878
+ }