@escalated-dev/escalated 0.7.0 → 0.8.0

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 (181) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +36 -1
  3. package/package.json +16 -7
  4. package/src/components/ActiveChatsPanel.vue +246 -0
  5. package/src/components/ActivityTimeline.stories.js +55 -55
  6. package/src/components/ActivityTimeline.vue +83 -83
  7. package/src/components/AdminDashboard.stories.js +1423 -1095
  8. package/src/components/AgentLoadIndicator.stories.js +37 -37
  9. package/src/components/AgentLoadIndicator.vue +49 -49
  10. package/src/components/AgentPerformanceCard.vue +44 -44
  11. package/src/components/ArticleEditor.vue +82 -82
  12. package/src/components/AssigneeSelect.vue +37 -37
  13. package/src/components/AttachmentList.vue +13 -1
  14. package/src/components/AuditLogEntry.vue +95 -95
  15. package/src/components/BulkActionBar.vue +166 -166
  16. package/src/components/CategoryTree.vue +89 -89
  17. package/src/components/ChartWidget.vue +46 -46
  18. package/src/components/ChatActionBar.vue +226 -0
  19. package/src/components/ChatBubble.vue +162 -0
  20. package/src/components/ChatComposer.vue +308 -0
  21. package/src/components/ChatQueue.vue +222 -0
  22. package/src/components/ChatThread.vue +197 -0
  23. package/src/components/CollisionWarning.stories.js +30 -30
  24. package/src/components/CollisionWarning.vue +68 -68
  25. package/src/components/ConditionalFieldRules.vue +135 -135
  26. package/src/components/ContextPanel.vue +66 -66
  27. package/src/components/ContextPanelSection.vue +65 -65
  28. package/src/components/CustomFieldRenderer.vue +159 -159
  29. package/src/components/EscalatedLayout.vue +35 -6
  30. package/src/components/FileDropzone.vue +57 -57
  31. package/src/components/FollowButton.stories.js +30 -30
  32. package/src/components/FollowButton.vue +88 -88
  33. package/src/components/KeyboardShortcutHelp.vue +213 -213
  34. package/src/components/KnowledgePanel.vue +122 -122
  35. package/src/components/KpiCard.stories.js +32 -32
  36. package/src/components/KpiCard.vue +88 -88
  37. package/src/components/MacroDropdown.vue +150 -150
  38. package/src/components/MentionDropdown.vue +154 -0
  39. package/src/components/MetricComparison.vue +89 -0
  40. package/src/components/PercentileChart.vue +67 -0
  41. package/src/components/PeriodSelector.vue +98 -0
  42. package/src/components/PermissionMatrix.vue +107 -107
  43. package/src/components/PinnedNotes.vue +129 -129
  44. package/src/components/PluginSlot.vue +68 -62
  45. package/src/components/PresenceIndicator.vue +46 -2
  46. package/src/components/PriorityBadge.stories.js +33 -33
  47. package/src/components/PriorityBadge.vue +46 -46
  48. package/src/components/ReplyComposer.vue +81 -18
  49. package/src/components/ReplyThread.vue +40 -2
  50. package/src/components/ReportChart.vue +395 -0
  51. package/src/components/ReportExportButton.vue +108 -0
  52. package/src/components/SatisfactionRating.vue +180 -180
  53. package/src/components/SaveViewDialog.vue +172 -0
  54. package/src/components/SavedViewSidebar.vue +208 -0
  55. package/src/components/ScheduleEditor.vue +104 -104
  56. package/src/components/SideConversation.vue +165 -165
  57. package/src/components/SideConversationList.vue +147 -147
  58. package/src/components/SkillTagManager.vue +83 -79
  59. package/src/components/SlaComplianceChart.vue +46 -53
  60. package/src/components/SlaTimer.stories.js +35 -35
  61. package/src/components/SlaTimer.vue +62 -62
  62. package/src/components/SnoozeButton.vue +247 -0
  63. package/src/components/StatsCard.stories.js +24 -24
  64. package/src/components/StatsCard.vue +58 -58
  65. package/src/components/StatusBadge.stories.js +53 -53
  66. package/src/components/StatusBadge.vue +78 -78
  67. package/src/components/TagSelect.vue +84 -84
  68. package/src/components/TicketFilters.vue +270 -225
  69. package/src/components/TicketLinkPanel.vue +193 -193
  70. package/src/components/TicketList.vue +655 -594
  71. package/src/components/TicketMergeDialog.vue +157 -157
  72. package/src/components/TicketSplitDialog.vue +98 -0
  73. package/src/components/TotpInput.stories.js +9 -9
  74. package/src/components/TotpInput.vue +81 -81
  75. package/src/components/TwoFactorSetup.vue +113 -113
  76. package/src/components/VariableTokenInput.vue +111 -0
  77. package/src/components/WorkflowActionConfig.vue +287 -0
  78. package/src/components/WorkflowActionList.vue +350 -0
  79. package/src/components/WorkflowConditionBuilder.vue +265 -0
  80. package/src/components/WorkflowTriggerSelector.vue +125 -0
  81. package/src/composables/useChat.js +187 -0
  82. package/src/composables/useI18n.js +30 -8
  83. package/src/composables/useKeyboardShortcuts.js +46 -46
  84. package/src/composables/useMentions.js +134 -0
  85. package/src/composables/usePluginExtensions.js +159 -159
  86. package/src/composables/usePluginHooks.js +65 -65
  87. package/src/composables/useRealtime.js +182 -0
  88. package/src/defineEscalatedPlugin.js +76 -76
  89. package/src/index.js +84 -72
  90. package/src/locales/README.md +13 -0
  91. package/src/locales/ar.json +727 -0
  92. package/src/locales/de.json +678 -430
  93. package/src/locales/en.json +717 -455
  94. package/src/locales/es.json +679 -430
  95. package/src/locales/fr.json +680 -431
  96. package/src/locales/index.js +12 -2
  97. package/src/locales/it.json +727 -0
  98. package/src/locales/ja.json +727 -0
  99. package/src/locales/ko.json +727 -0
  100. package/src/locales/nl.json +727 -0
  101. package/src/locales/pl.json +727 -0
  102. package/src/locales/pt-BR.json +727 -0
  103. package/src/locales/ru.json +727 -0
  104. package/src/locales/tr.json +727 -0
  105. package/src/locales/zh-CN.json +727 -0
  106. package/src/pages/Admin/ApiTokens/Index.vue +381 -381
  107. package/src/pages/Admin/AuditLog/Index.vue +154 -154
  108. package/src/pages/Admin/BusinessHours/Form.vue +172 -172
  109. package/src/pages/Admin/BusinessHours/Index.vue +113 -113
  110. package/src/pages/Admin/CannedResponses/Index.vue +127 -127
  111. package/src/pages/Admin/Capacity/Index.vue +134 -134
  112. package/src/pages/Admin/CustomFields/Form.vue +195 -195
  113. package/src/pages/Admin/CustomFields/Index.vue +134 -134
  114. package/src/pages/Admin/CustomObjects/Form.vue +202 -202
  115. package/src/pages/Admin/CustomObjects/Index.vue +127 -127
  116. package/src/pages/Admin/CustomObjects/Records.vue +228 -228
  117. package/src/pages/Admin/Departments/Form.vue +75 -75
  118. package/src/pages/Admin/Departments/Index.vue +110 -109
  119. package/src/pages/Admin/EscalationRules/Form.vue +157 -157
  120. package/src/pages/Admin/EscalationRules/Index.vue +178 -178
  121. package/src/pages/Admin/Import/Connect.vue +0 -1
  122. package/src/pages/Admin/Import/Index.vue +1 -1
  123. package/src/pages/Admin/Import/Progress.vue +1 -1
  124. package/src/pages/Admin/KnowledgeBase/Articles/Form.vue +142 -142
  125. package/src/pages/Admin/KnowledgeBase/Articles/Index.vue +195 -195
  126. package/src/pages/Admin/KnowledgeBase/Categories/Index.vue +193 -193
  127. package/src/pages/Admin/Macros/Index.vue +448 -448
  128. package/src/pages/Admin/Plugins/Index.vue +327 -327
  129. package/src/pages/Admin/Reports/AgentDetail.vue +132 -0
  130. package/src/pages/Admin/Reports/AgentMetrics.vue +115 -115
  131. package/src/pages/Admin/Reports/AgentRanking.vue +246 -0
  132. package/src/pages/Admin/Reports/Cohorts.vue +180 -0
  133. package/src/pages/Admin/Reports/Comparison.vue +141 -0
  134. package/src/pages/Admin/Reports/CsatReport.vue +127 -127
  135. package/src/pages/Admin/Reports/Dashboard.vue +36 -21
  136. package/src/pages/Admin/Reports/ResolutionTimes.vue +164 -0
  137. package/src/pages/Admin/Reports/ResponseTimes.vue +164 -0
  138. package/src/pages/Admin/Reports/SlaReport.vue +162 -166
  139. package/src/pages/Admin/Reports/SlaTrends.vue +183 -0
  140. package/src/pages/Admin/Reports.vue +206 -206
  141. package/src/pages/Admin/Roles/Form.vue +71 -71
  142. package/src/pages/Admin/Roles/Index.vue +122 -122
  143. package/src/pages/Admin/Settings/CsatSettings.vue +165 -165
  144. package/src/pages/Admin/Settings/DataRetention.vue +182 -182
  145. package/src/pages/Admin/Settings/EmailSettings.vue +243 -243
  146. package/src/pages/Admin/Settings/Sandbox.vue +135 -135
  147. package/src/pages/Admin/Settings/SsoSettings.vue +218 -218
  148. package/src/pages/Admin/Settings/TwoFactor.vue +110 -110
  149. package/src/pages/Admin/Settings.vue +1008 -468
  150. package/src/pages/Admin/Skills/Form.vue +193 -53
  151. package/src/pages/Admin/Skills/Index.vue +105 -94
  152. package/src/pages/Admin/SlaPolicies/Form.vue +118 -118
  153. package/src/pages/Admin/SlaPolicies/Index.vue +121 -120
  154. package/src/pages/Admin/Statuses/Form.vue +114 -114
  155. package/src/pages/Admin/Statuses/Index.vue +153 -153
  156. package/src/pages/Admin/Tags/Index.vue +191 -191
  157. package/src/pages/Admin/Tickets/Index.vue +126 -91
  158. package/src/pages/Admin/Tickets/Show.vue +29 -0
  159. package/src/pages/Admin/Users/Index.vue +145 -0
  160. package/src/pages/Admin/Webhooks/DeliveryLog.vue +120 -120
  161. package/src/pages/Admin/Webhooks/Form.vue +110 -110
  162. package/src/pages/Admin/Webhooks/Index.vue +136 -136
  163. package/src/pages/Admin/Workflows/Builder.vue +207 -0
  164. package/src/pages/Admin/Workflows/Index.vue +235 -0
  165. package/src/pages/Admin/Workflows/Logs.vue +286 -0
  166. package/src/pages/Agent/TicketIndex.vue +112 -88
  167. package/src/pages/Agent/TicketShow.vue +192 -60
  168. package/src/pages/Customer/Create.vue +1 -1
  169. package/src/pages/Customer/Index.vue +26 -1
  170. package/src/pages/Customer/KnowledgeBase/Article.vue +4 -2
  171. package/src/pages/Customer/KnowledgeBase/Index.vue +151 -151
  172. package/src/pages/Customer/Show.vue +69 -63
  173. package/src/pages/Guest/Create.vue +40 -15
  174. package/src/pages/Guest/Show.vue +124 -93
  175. package/src/plugin.js +26 -1
  176. package/src/utils/mentionHighlight.js +24 -0
  177. package/src/utils/sanitizeHtml.js +78 -64
  178. package/src/widget/EscalatedWidget.vue +804 -0
  179. package/src/widget/index.js +254 -0
  180. package/src/pages/Admin/Automations/Form.vue +0 -184
  181. package/src/pages/Admin/Automations/Index.vue +0 -129
@@ -0,0 +1,727 @@
1
+ {
2
+ "nav": {
3
+ "admin": "Beheer",
4
+ "admin_badge": "BEHEER",
5
+ "agent_panel": "Agent Paneel",
6
+ "back_to_app": "Terug naar App",
7
+ "my_tickets": "Mijn Tickets",
8
+ "dashboard": "Dashboard",
9
+ "tickets": "Tickets",
10
+ "reports": "Rapporten",
11
+ "departments": "Afdelingen",
12
+ "sla_policies": "SLA-beleid",
13
+ "escalation_rules": "Escalatieregels",
14
+ "tags": "Tags",
15
+ "canned_responses": "Standaardantwoorden",
16
+ "macros": "Macro's",
17
+ "api_tokens": "API-tokens",
18
+ "plugins": "Plug-ins",
19
+ "settings": "Instellingen"
20
+ },
21
+ "status": {
22
+ "open": "Open",
23
+ "in_progress": "In Behandeling",
24
+ "waiting_on_customer": "Wachtend op Klant",
25
+ "waiting_on_agent": "Wachtend op Agent",
26
+ "escalated": "Geescaleerd",
27
+ "resolved": "Opgelost",
28
+ "closed": "Gesloten",
29
+ "reopened": "Heropend"
30
+ },
31
+ "priority": {
32
+ "low": "Laag",
33
+ "medium": "Gemiddeld",
34
+ "high": "Hoog",
35
+ "urgent": "Urgent",
36
+ "critical": "Kritiek"
37
+ },
38
+ "activity": {
39
+ "status_changed": "status gewijzigd",
40
+ "assigned": "ticket toegewezen",
41
+ "unassigned": "ticket niet-toegewezen",
42
+ "priority_changed": "prioriteit gewijzigd",
43
+ "tag_added": "tag toegevoegd",
44
+ "tag_removed": "tag verwijderd",
45
+ "escalated": "ticket geescaleerd",
46
+ "sla_breached": "SLA geschonden",
47
+ "replied": "geantwoord",
48
+ "note_added": "notitie toegevoegd",
49
+ "department_changed": "afdeling gewijzigd",
50
+ "reopened": "ticket heropend",
51
+ "resolved": "ticket opgelost",
52
+ "closed": "ticket gesloten",
53
+ "system": "Systeem",
54
+ "no_activity": "Nog geen activiteit.",
55
+ "to": "naar",
56
+ "assigned_to": "toegewezen aan"
57
+ },
58
+ "ticket": {
59
+ "reference": "Referentie",
60
+ "subject": "Onderwerp",
61
+ "requester": "Aanvrager",
62
+ "status": "Status",
63
+ "priority": "Prioriteit",
64
+ "assignee": "Toegewezen aan",
65
+ "last_reply": "Laatste Antwoord",
66
+ "unknown": "Onbekend",
67
+ "unassigned": "Niet toegewezen",
68
+ "no_tickets": "Geen tickets gevonden.",
69
+ "details": "Details",
70
+ "department": "Afdeling",
71
+ "created": "Aangemaakt",
72
+ "activity": "Activiteit",
73
+ "conversation": "Gesprek",
74
+ "by": "door",
75
+ "assign_to_me": "Aan mij toewijzen",
76
+ "close_ticket": "Ticket Sluiten",
77
+ "reopen": "Heropenen",
78
+ "all_tickets": "Alle Tickets",
79
+ "ticket_queue": "Ticketwachtrij",
80
+ "my_tickets": "Mijn Tickets",
81
+ "new_ticket": "Nieuw Ticket",
82
+ "create_ticket": "Ticket Aanmaken",
83
+ "submit_ticket": "Ticket Indienen",
84
+ "no_replies": "Nog geen antwoorden.",
85
+ "ticket_closed_no_replies": "Dit ticket is gesloten. Er kunnen geen verdere antwoorden worden toegevoegd."
86
+ },
87
+ "bulk": {
88
+ "tickets_selected": ":count ticket(s) geselecteerd",
89
+ "status_placeholder": "Status...",
90
+ "priority_placeholder": "Prioriteit...",
91
+ "assign_placeholder": "Toewijzen aan...",
92
+ "department_placeholder": "Afdeling...",
93
+ "delete": "Verwijderen",
94
+ "deselect_all": "Alles Deselecteren"
95
+ },
96
+ "filter": {
97
+ "search_tickets": "Tickets zoeken...",
98
+ "all_statuses": "Alle Statussen",
99
+ "all_priorities": "Alle Prioriteiten",
100
+ "all_agents": "Alle Agenten",
101
+ "all_departments": "Alle Afdelingen",
102
+ "following": "Gevolgd"
103
+ },
104
+ "quick_filter": {
105
+ "my_tickets": "Mijn Tickets",
106
+ "unassigned": "Niet toegewezen",
107
+ "urgent_plus": "Urgent+",
108
+ "sla_breaching": "SLA-schending",
109
+ "following": "Gevolgd"
110
+ },
111
+ "reply": {
112
+ "reply": "Antwoorden",
113
+ "internal_note": "Interne Notitie",
114
+ "note_visibility": "Deze notitie is alleen zichtbaar voor agenten.",
115
+ "placeholder": "Typ uw antwoord...",
116
+ "canned_responses": "Standaardantwoorden...",
117
+ "add_note": "Notitie Toevoegen",
118
+ "send_reply": "Antwoord Verzenden",
119
+ "pinned": "Vastgepind",
120
+ "unpin": "Losmaken",
121
+ "pin": "Vastpinnen",
122
+ "write_internal_note": "Schrijf een interne notitie..."
123
+ },
124
+ "rating": {
125
+ "customer_rating": "Klantbeoordeling",
126
+ "how_was_experience": "Hoe was uw ervaring?",
127
+ "terrible": "Verschrikkelijk",
128
+ "poor": "Slecht",
129
+ "okay": "Redelijk",
130
+ "good": "Goed",
131
+ "excellent": "Uitstekend",
132
+ "feedback_placeholder": "Aanvullende feedback? (optioneel)",
133
+ "thank_you": "Bedankt voor uw feedback!",
134
+ "submit_rating": "Beoordeling Indienen",
135
+ "customer_satisfaction": "Klanttevredenheid"
136
+ },
137
+ "keyboard": {
138
+ "title": "Sneltoetsen",
139
+ "list_view": "Lijstweergave",
140
+ "detail_view": "Detailweergave",
141
+ "global": "Globaal",
142
+ "move_down": "Omlaag",
143
+ "move_up": "Omhoog",
144
+ "toggle_select": "Selectie wisselen",
145
+ "open_ticket": "Ticket openen",
146
+ "reply": "Antwoorden",
147
+ "internal_note": "Interne notitie",
148
+ "change_status": "Status wijzigen",
149
+ "change_priority": "Prioriteit wijzigen",
150
+ "follow_unfollow": "Volgen/Ontvolgen",
151
+ "show_help": "Deze hulp tonen",
152
+ "esc_to_close": "Druk Esc om te sluiten"
153
+ },
154
+ "sla": {
155
+ "overdue": "Achterstallig",
156
+ "breached": "SLA Geschonden",
157
+ "first_response": "Eerste Reactie",
158
+ "resolution": "Oplossing"
159
+ },
160
+ "follow": {
161
+ "following": "Volgend",
162
+ "follow": "Volgen"
163
+ },
164
+ "file": {
165
+ "drop_or_browse": "Sleep bestanden hierheen of :link",
166
+ "browse": "blader"
167
+ },
168
+ "macro": {
169
+ "apply_macro": "Macro Toepassen",
170
+ "macros": "Macro's",
171
+ "no_macros": "Geen macro's beschikbaar"
172
+ },
173
+ "form": {
174
+ "name": "Naam",
175
+ "description": "Beschrijving",
176
+ "slug": "Slug",
177
+ "auto_generated": "Automatisch gegenereerd indien leeg",
178
+ "active": "Actief",
179
+ "update": "Bijwerken",
180
+ "create": "Aanmaken",
181
+ "save": "Opslaan",
182
+ "cancel": "Annuleren",
183
+ "edit": "Bewerken",
184
+ "delete": "Verwijderen",
185
+ "actions": "Acties",
186
+ "order": "Volgorde",
187
+ "value": "Waarde",
188
+ "yes": "Ja",
189
+ "no": "Nee",
190
+ "confirm": "Bevestigen",
191
+ "none": "Geen",
192
+ "general": "Algemeen",
193
+ "shared": "Gedeeld",
194
+ "private": "Prive",
195
+ "color": "Kleur",
196
+ "title": "Titel",
197
+ "copy": "Kopieren",
198
+ "dismiss": "Sluiten",
199
+ "saved": "Opgeslagen.",
200
+ "saving": "Opslaan...",
201
+ "creating": "Aanmaken...",
202
+ "submitting": "Indienen...",
203
+ "sending": "Verzenden...",
204
+ "uploading": "Uploaden...",
205
+ "copied": "Gekopieerd!",
206
+ "subject": "Onderwerp",
207
+ "priority": "Prioriteit",
208
+ "department": "Afdeling",
209
+ "attachments": "Bijlagen"
210
+ },
211
+ "presence": {
212
+ "also_viewing": "Bekijken ook: :names"
213
+ },
214
+ "pinned_notes": {
215
+ "title": "Vastgepinde Notities",
216
+ "unpin": "Losmaken"
217
+ },
218
+ "admin": {
219
+ "settings": {
220
+ "title": "Instellingen",
221
+ "general": "Algemeen",
222
+ "guest_tickets": "Gasttickets",
223
+ "guest_tickets_desc": "Sta bezoekers toe tickets in te dienen zonder in te loggen",
224
+ "allow_customer_close": "Klant Sluiten Toestaan",
225
+ "allow_customer_close_desc": "Laat klanten hun eigen tickets sluiten",
226
+ "auto_close": "Automatisch sluiten van opgeloste tickets na",
227
+ "auto_close_desc": "Dagen na oplossing voor automatisch sluiten (0 om uit te schakelen)",
228
+ "days": "dagen",
229
+ "limits": "Limieten",
230
+ "max_attachments": "Max bijlagen per antwoord",
231
+ "max_attachment_size": "Max bijlagegrootte",
232
+ "tickets": "Tickets",
233
+ "reference_prefix": "Referentieprefix",
234
+ "reference_prefix_desc": "Prefix voor ticketreferenties (bijv. ESC geeft ESC-00001)",
235
+ "inbound_email": "Inkomende E-mail",
236
+ "inbound_email_desc": "Sta het aanmaken en beantwoorden van tickets via e-mail toe",
237
+ "email_provider": "E-mailprovider",
238
+ "email_provider_desc": "Hoe inkomende e-mails worden ontvangen",
239
+ "support_email": "Support E-mailadres",
240
+ "support_email_desc": "Het e-mailadres waarnaar klanten e-mails sturen (bijv. support@example.com)",
241
+ "signing_key": "Ondertekeningssleutel",
242
+ "webhook_url": "Webhook URL",
243
+ "mailgun_webhook_desc": "Configureer deze URL in uw Mailgun-dashboard",
244
+ "inbound_token": "Inkomend Token",
245
+ "postmark_webhook_desc": "Configureer deze URL in uw Postmark-serverinstellingen",
246
+ "region": "Regio",
247
+ "topic_arn": "Topic ARN",
248
+ "ses_webhook_desc": "Configureer deze URL als uw SNS-abonnementseindpunt",
249
+ "host": "Host",
250
+ "port": "Poort",
251
+ "encryption": "Versleuteling",
252
+ "username": "Gebruikersnaam",
253
+ "password": "Wachtwoord",
254
+ "mailbox": "Mailbox",
255
+ "save_settings": "Instellingen Opslaan"
256
+ },
257
+ "reports": {
258
+ "title": "Rapporten",
259
+ "last_days": "Laatste :count dagen",
260
+ "total_tickets": "Totaal Tickets",
261
+ "resolved": "Opgelost",
262
+ "avg_first_response": "Gem. Eerste Reactie",
263
+ "sla_breaches": "SLA-schendingen",
264
+ "by_status": "Per Status",
265
+ "by_priority": "Per Prioriteit",
266
+ "no_data": "Geen ticketgegevens voor deze periode",
267
+ "no_ratings": "Geen beoordelingen voor deze periode",
268
+ "ratings_count": "(:count beoordelingen)",
269
+ "advanced_reports": "Geavanceerde Rapporten",
270
+ "sla_trends": "SLA-schendingstrends",
271
+ "response_times": "Analyse Eerste Reactietijd",
272
+ "resolution_times": "Analyse Oplostijd",
273
+ "agent_ranking": "Agent Prestatieranglijst",
274
+ "agent_detail": "Agent Diepteanalyse",
275
+ "cohorts": "Cohortanalyse",
276
+ "comparison": "Periodevergelijking",
277
+ "overview": "Overzicht",
278
+ "agents": "Agenten",
279
+ "sla": "SLA",
280
+ "csat": "CSAT",
281
+ "export": "Exporteren",
282
+ "export_csv": "Exporteren als CSV",
283
+ "export_json": "Exporteren als JSON",
284
+ "period_custom": "Aangepast",
285
+ "period_apply": "Toepassen",
286
+ "period_start": "Start",
287
+ "period_end": "Einde",
288
+ "total_breaches": "Totaal Schendingen",
289
+ "breach_rate": "Schendingspercentage",
290
+ "frt_breaches": "FRT-schendingen",
291
+ "resolution_breaches_label": "Oplossingsschendingen",
292
+ "breach_count_over_time": "Aantal Schendingen in de Tijd",
293
+ "frt_vs_resolution": "Eerste Reactie vs Oplossingsschendingen",
294
+ "breach_by_department": "Schendingspercentage per Afdeling",
295
+ "breach_by_priority": "Schendingspercentage per Prioriteit",
296
+ "at_risk": "Risico - SLA-schending nadert",
297
+ "critical": "Kritiek",
298
+ "warning": "Waarschuwing",
299
+ "watch": "Observatie",
300
+ "hours_remaining": ":count u resterend",
301
+ "no_at_risk": "Geen tickets momenteel met risico op schending.",
302
+ "avg_frt": "Gem. FRT",
303
+ "median_frt": "Mediaan FRT",
304
+ "p90_frt": "P90 FRT",
305
+ "under_target": "Binnen Doel",
306
+ "frt_distribution": "FRT-verdeling",
307
+ "avg_frt_trend": "Gem. FRT Trend",
308
+ "frt_by_department": "FRT per Afdeling",
309
+ "frt_by_priority": "FRT per Prioriteit",
310
+ "frt_by_agent": "FRT per Agent",
311
+ "avg_resolution": "Gem. Oplossing",
312
+ "median_resolution": "Mediaan Oplossing",
313
+ "p90_resolution": "P90 Oplossing",
314
+ "resolution_distribution": "Oplostijdverdeling",
315
+ "resolution_trend": "Gem. Oplostijd Trend",
316
+ "resolution_by_department": "Oplossing per Afdeling",
317
+ "resolution_by_channel": "Oplossing per Kanaal",
318
+ "resolution_by_agent": "Oplostijd per Agent",
319
+ "composite_score": "Score",
320
+ "resolution_rate": "Oplossings %",
321
+ "volume": "Volume",
322
+ "trend": "Trend",
323
+ "top_performers": "Toppresteerders",
324
+ "needs_attention": "Aandacht Nodig",
325
+ "back_to_rankings": "Terug naar Ranglijst",
326
+ "response_percentiles": "Reactietijd Percentielen",
327
+ "productivity": "Productiviteit",
328
+ "workload_over_time": "Werkbelasting in de Tijd",
329
+ "csat_breakdown": "CSAT Uitsplitsing",
330
+ "by_tag": "Per Tag",
331
+ "by_department": "Per Afdeling",
332
+ "by_channel": "Per Kanaal",
333
+ "by_type": "Per Type",
334
+ "no_cohort_data": "Geen gegevens voor dit cohorttype.",
335
+ "current_period": "Huidige Periode",
336
+ "previous_period": "Vorige Periode",
337
+ "vs_previous": "vs vorige periode",
338
+ "pct_change": "% wijziging",
339
+ "sla_compliance": "SLA-naleving",
340
+ "no_agent_data": "Geen agentgegevens voor deze periode.",
341
+ "avg": "Gem.",
342
+ "median": "Mediaan",
343
+ "agent": "Agent",
344
+ "back": "Terug"
345
+ },
346
+ "departments": {
347
+ "title": "Afdelingen",
348
+ "add": "Afdeling Toevoegen",
349
+ "edit_title": "Afdeling Bewerken",
350
+ "new_title": "Nieuwe Afdeling",
351
+ "tickets": "Tickets",
352
+ "agents": "Agenten",
353
+ "no_departments": "Nog geen afdelingen",
354
+ "no_departments_desc": "Maak uw eerste afdeling aan om tickets te organiseren",
355
+ "confirm_delete": "Deze afdeling verwijderen?"
356
+ },
357
+ "sla_policies": {
358
+ "title": "SLA-beleid",
359
+ "add": "Beleid Toevoegen",
360
+ "edit_title": "SLA-beleid Bewerken",
361
+ "new_title": "Nieuw SLA-beleid",
362
+ "default": "Standaard",
363
+ "business_hours": "Kantooruren",
364
+ "business_hours_only": "Alleen kantooruren",
365
+ "default_policy": "Standaardbeleid",
366
+ "first_response_hours": "Eerste Reactie Uren (per prioriteit)",
367
+ "resolution_hours": "Oplossingsuren (per prioriteit)",
368
+ "no_policies": "Nog geen SLA-beleid",
369
+ "no_policies_desc": "Definieer doelen voor reactie- en oplostijden",
370
+ "confirm_delete": "Dit SLA-beleid verwijderen?"
371
+ },
372
+ "escalation_rules": {
373
+ "title": "Escalatieregels",
374
+ "add": "Regel Toevoegen",
375
+ "edit_title": "Escalatieregel Bewerken",
376
+ "new_title": "Nieuwe Escalatieregel",
377
+ "trigger": "Trigger",
378
+ "trigger_type": "Triggertype",
379
+ "time_based": "Tijdgebaseerd",
380
+ "sla_breach": "SLA-schending",
381
+ "priority_based": "Prioriteitsgebaseerd",
382
+ "conditions": "Voorwaarden",
383
+ "add_short": "+ Toevoegen",
384
+ "status": "Status",
385
+ "priority": "Prioriteit",
386
+ "assignment": "Toewijzing",
387
+ "age_hours": "Leeftijd (uren)",
388
+ "no_response_hours": "Geen Reactie (uren)",
389
+ "sla_breached": "SLA Geschonden",
390
+ "escalate": "Escaleren",
391
+ "change_priority": "Prioriteit Wijzigen",
392
+ "assign_to": "Toewijzen aan",
393
+ "change_department": "Afdeling Wijzigen",
394
+ "no_rules": "Nog geen escalatieregels",
395
+ "no_rules_desc": "Stel automatische escalatie in voor achterstallige tickets",
396
+ "confirm_delete": "Deze escalatieregel verwijderen?"
397
+ },
398
+ "canned_responses": {
399
+ "title": "Standaardantwoorden",
400
+ "add": "Antwoord Toevoegen",
401
+ "title_placeholder": "Titel",
402
+ "body_placeholder": "Antwoordtekst...",
403
+ "category_placeholder": "Categorie (optioneel)",
404
+ "no_responses": "Nog geen standaardantwoorden",
405
+ "no_responses_desc": "Maak herbruikbare sjablonen voor veelvoorkomende antwoorden",
406
+ "confirm_delete": "Dit standaardantwoord verwijderen?"
407
+ },
408
+ "tags": {
409
+ "title": "Tags",
410
+ "add": "Tag Toevoegen",
411
+ "no_tags": "Nog geen tags",
412
+ "no_tags_desc": "Maak tags aan om tickets te categoriseren en filteren",
413
+ "confirm_delete": "Deze tag verwijderen?"
414
+ },
415
+ "macros": {
416
+ "title": "Macro's",
417
+ "subtitle": "Macro's automatiseren herhaalde acties op tickets.",
418
+ "create_macro": "Macro Aanmaken",
419
+ "update_macro": "Macro Bijwerken",
420
+ "shared_label": "Gedeeld met alle agenten",
421
+ "add_action": "+ Actie Toevoegen",
422
+ "no_actions": "Nog geen acties. Voeg acties toe om te bepalen wat deze macro doet.",
423
+ "set_status": "Status Instellen",
424
+ "set_priority": "Prioriteit Instellen",
425
+ "assign_to": "Toewijzen aan",
426
+ "add_tags": "Tags Toevoegen",
427
+ "move_to_department": "Verplaatsen naar Afdeling",
428
+ "send_reply": "Antwoord Verzenden",
429
+ "add_internal_note": "Interne Notitie Toevoegen",
430
+ "select_status": "Selecteer status...",
431
+ "select_priority": "Selecteer prioriteit...",
432
+ "agent_placeholder": "Agent-ID of e-mail",
433
+ "tags_placeholder": "Door komma's gescheiden tagnamen",
434
+ "department_placeholder": "Afdelings-ID of naam",
435
+ "reply_placeholder": "Antwoordbericht...",
436
+ "note_placeholder": "Notitie-inhoud...",
437
+ "no_macros": "Nog geen macro's",
438
+ "no_macros_desc": "Maak macro's aan om herhaalde ticketacties te automatiseren",
439
+ "creator": "Maker",
440
+ "confirm_delete": "Deze macro verwijderen? Dit kan niet ongedaan worden gemaakt."
441
+ },
442
+ "api_tokens": {
443
+ "title": "API-tokens",
444
+ "subtitle": "Beheer API-tokens voor desktopapps en externe integraties.",
445
+ "create_token": "Token Aanmaken",
446
+ "api_disabled": "De REST API is momenteel uitgeschakeld. Stel ESCALATED_API_ENABLED=true in uw .env in om het in te schakelen.",
447
+ "token_created": "Token aangemaakt! Kopieer het nu — het wordt niet opnieuw getoond.",
448
+ "new_token": "Nieuw API-token",
449
+ "token_name": "Tokennaam",
450
+ "token_name_placeholder": "bijv. Desktop App - Werklaptop",
451
+ "user": "Gebruiker",
452
+ "select_user": "Selecteer gebruiker...",
453
+ "abilities": "Rechten",
454
+ "expires_in": "Verloopt Over (dagen)",
455
+ "no_expiration": "Laat leeg voor geen verloopdatum",
456
+ "last_used": "Laatst Gebruikt",
457
+ "expires": "Verloopt",
458
+ "never": "Nooit",
459
+ "expired": "Verlopen",
460
+ "revoke": "Intrekken",
461
+ "no_tokens": "Nog geen API-tokens aangemaakt.",
462
+ "confirm_revoke": "Weet u zeker dat u dit token wilt intrekken? Dit kan niet ongedaan worden gemaakt."
463
+ },
464
+ "plugins": {
465
+ "title": "Plug-ins",
466
+ "upload": "Plug-in Uploaden",
467
+ "plugin_zip": "Plug-in ZIP-bestand",
468
+ "installed": "Geinstalleerde Plug-ins",
469
+ "no_plugins": "Geen plug-ins geinstalleerd",
470
+ "no_plugins_alt": "Nog geen plug-ins geinstalleerd.",
471
+ "no_plugins_desc": "Upload een plug-in ZIP om Escalated uit te breiden met aangepaste functionaliteit.",
472
+ "active": "Actief",
473
+ "inactive": "Inactief",
474
+ "installed_date": "Geinstalleerd :date",
475
+ "menu_items": ":count menu-item(s)",
476
+ "widgets": ":count widget(s)",
477
+ "page_components": ":count paginacomponent(en)",
478
+ "confirm_delete": "Weet u zeker dat u deze plug-in wilt verwijderen? Dit kan niet ongedaan worden gemaakt."
479
+ }
480
+ },
481
+ "import": {
482
+ "title": "Gegevens Importeren",
483
+ "description": "Migreer tickets, contacten en geschiedenis van een ander helpdeskplatform.",
484
+ "no_adapters": "Geen importadapters geinstalleerd.",
485
+ "connect": "Verbinden met {platform}",
486
+ "test_connection": "Verbinding Testen",
487
+ "testing": "Testen...",
488
+ "connected": "Succesvol verbonden",
489
+ "field_mapping": "Veldkoppeling",
490
+ "skip_entity": "{type} importeren overslaan",
491
+ "review": "Import Beoordelen",
492
+ "start": "Import Starten",
493
+ "starting": "Starten...",
494
+ "progress": "Importvoortgang",
495
+ "pause": "Pauzeren",
496
+ "resume": "Hervatten",
497
+ "cancel": "Annuleren",
498
+ "paused": "Import gepauzeerd.",
499
+ "resumed": "Import hervat.",
500
+ "cancelled": "Import geannuleerd.",
501
+ "completed": "Import succesvol voltooid.",
502
+ "history": "Importgeschiedenis",
503
+ "suppression_notice": "Meldingen en automatiseringen worden onderdrukt tijdens het importeren.",
504
+ "recent_errors": "Recente Fouten"
505
+ },
506
+ "agent": {
507
+ "dashboard": "Agent Dashboard",
508
+ "open_tickets": "Open Tickets",
509
+ "my_assigned": "Mijn Toegewezen",
510
+ "unassigned": "Niet Toegewezen",
511
+ "sla_breached": "SLA Geschonden",
512
+ "resolved_today": "Vandaag Opgelost",
513
+ "needs_attention": "Aandacht Nodig",
514
+ "sla_breaching": "SLA-schending",
515
+ "unassigned_urgent": "Niet-toegewezen Urgent",
516
+ "recent_tickets": "Recente Tickets",
517
+ "no_recent_tickets": "Geen recente tickets",
518
+ "my_performance": "Mijn Prestaties",
519
+ "resolved_this_week": "Deze Week Opgelost"
520
+ },
521
+ "guest": {
522
+ "submit_title": "Ticket Indienen",
523
+ "submit_heading": "Een Supportticket Indienen",
524
+ "submit_desc": "Geen account nodig. We geven u een link om uw ticket te volgen.",
525
+ "sign_in_link": "Heeft u al een account? Inloggen",
526
+ "your_name": "Uw Naam",
527
+ "email_address": "E-mailadres",
528
+ "bookmark_title": "Sla deze pagina op",
529
+ "bookmark_desc": "Dit is uw persoonlijke link om dit ticket te bekijken en te beantwoorden.",
530
+ "copy_link": "Link Kopieren",
531
+ "write_reply": "Schrijf uw antwoord..."
532
+ },
533
+ "customer": {
534
+ "replies": "Antwoorden",
535
+ "reply": "Antwoord"
536
+ },
537
+ "chat": {
538
+ "live": "Live",
539
+ "chat_with_us": "Chat met ons",
540
+ "start_chat": "Chat Starten",
541
+ "end_chat": "Chat Beindigen",
542
+ "end_confirm": "Deze chat beindigen?",
543
+ "transfer": "Overdragen",
544
+ "typing": ":name is aan het typen...",
545
+ "chatting_with": "U chat met :name",
546
+ "no_agents": "Geen agenten beschikbaar",
547
+ "queue_position": "U bent #:position in de wachtrij",
548
+ "placeholder": "Typ een bericht...",
549
+ "note": "Notitie",
550
+ "empty_state": "Chat gestart — wachten op berichten",
551
+ "new_messages": "Nieuwe berichten",
552
+ "active_chats": "Actieve Chats",
553
+ "no_active_chats": "Geen actieve chats",
554
+ "open_panel": "Chatpaneel openen",
555
+ "close_panel": "Chatpaneel sluiten",
556
+ "no_chats_waiting": "Geen chats in de wachtrij",
557
+ "customer": "Klant",
558
+ "department": "Afdeling",
559
+ "first_message": "Eerste Bericht",
560
+ "wait_time": "Wachttijd",
561
+ "accept": "Accepteren",
562
+ "agents": "Agenten",
563
+ "departments": "Afdelingen",
564
+ "how_was_experience": "Hoe was uw ervaring?",
565
+ "start_new_chat": "Nieuwe Chat Starten",
566
+ "close": "Sluiten",
567
+ "chat_ended": "Chat Beindigd",
568
+ "thank_you": "Bedankt voor uw feedback!",
569
+ "submit_rating": "Beoordeling Indienen",
570
+ "live_chats": "Live Chats"
571
+ },
572
+ "common": {
573
+ "change_status": "Status Wijzigen...",
574
+ "change_priority": "Prioriteit Wijzigen...",
575
+ "kb": "KB",
576
+ "upload": "Uploaden"
577
+ },
578
+ "workflows": {
579
+ "title": "Workflows",
580
+ "create": "Workflow Aanmaken",
581
+ "edit": "Workflow Bewerken",
582
+ "delete_confirm": "Deze workflow verwijderen? Dit kan niet ongedaan worden gemaakt.",
583
+ "no_workflows": "Nog geen workflows",
584
+ "no_workflows_desc": "Maak gebeurtenisgestuurde automatiseringen met voorwaarden en acties",
585
+ "name": "Workflow Naam",
586
+ "description": "Beschrijving",
587
+ "active": "Actief",
588
+ "save": "Workflow Opslaan",
589
+ "cancel": "Annuleren",
590
+ "view_logs": "Logboeken Bekijken",
591
+ "last_triggered": "Laatst Geactiveerd",
592
+ "trigger_count": "Uitvoeringen",
593
+ "trigger": {
594
+ "title": "Triggergebeurtenis",
595
+ "description": "Wanneer dit gebeurt...",
596
+ "ticket_created": "Ticket Aangemaakt",
597
+ "ticket_created_desc": "Wanneer een nieuw ticket wordt ingediend",
598
+ "ticket_updated": "Ticket Bijgewerkt",
599
+ "ticket_updated_desc": "Wanneer een ticketveld wordt gewijzigd",
600
+ "reply_added": "Antwoord Toegevoegd",
601
+ "reply_added_desc": "Wanneer een antwoord op een ticket wordt geplaatst",
602
+ "status_changed": "Status Gewijzigd",
603
+ "status_changed_desc": "Wanneer de ticketstatus wordt bijgewerkt",
604
+ "ticket_assigned": "Ticket Toegewezen",
605
+ "ticket_assigned_desc": "Wanneer een ticket aan een agent wordt toegewezen",
606
+ "ticket_escalated": "Ticket Geescaleerd",
607
+ "ticket_escalated_desc": "Wanneer een ticket wordt geescaleerd",
608
+ "sla_breached": "SLA Geschonden",
609
+ "sla_breached_desc": "Wanneer een SLA-doel wordt geschonden",
610
+ "sla_warning": "SLA-waarschuwing",
611
+ "sla_warning_desc": "Wanneer een SLA-doel nadert",
612
+ "chat_started": "Chat Gestart",
613
+ "chat_started_desc": "Wanneer een live chatsessie begint",
614
+ "chat_ended": "Chat Beindigd",
615
+ "chat_ended_desc": "Wanneer een live chatsessie eindigt"
616
+ },
617
+ "conditions": {
618
+ "title": "Voorwaarden",
619
+ "description": "Alleen als aan deze voorwaarden is voldaan...",
620
+ "optional": "optioneel",
621
+ "match_all": "Alle voorwaarden (EN)",
622
+ "match_any": "Elke voorwaarde (OF)",
623
+ "add_condition": "Voorwaarde Toevoegen",
624
+ "preview": "Voorbeeld",
625
+ "field": {
626
+ "status": "Status",
627
+ "priority": "Prioriteit",
628
+ "type": "Type",
629
+ "channel": "Kanaal",
630
+ "tags": "Tags",
631
+ "department": "Afdeling",
632
+ "assigned_agent": "Toegewezen Agent",
633
+ "subject": "Onderwerp",
634
+ "hours_since_created": "Uren Sinds Aangemaakt",
635
+ "hours_since_updated": "Uren Sinds Bijgewerkt",
636
+ "reply_count": "Aantal Antwoorden",
637
+ "custom_field": "Aangepast Veld"
638
+ },
639
+ "operator": {
640
+ "equals": "is gelijk aan",
641
+ "not_equals": "is niet gelijk aan",
642
+ "contains": "bevat",
643
+ "in": "in",
644
+ "greater_than": "groter dan",
645
+ "less_than": "kleiner dan",
646
+ "is_empty": "is leeg",
647
+ "matches": "komt overeen met"
648
+ }
649
+ },
650
+ "actions": {
651
+ "title": "Acties",
652
+ "description": "Doe dan dit...",
653
+ "add_action": "Actie Toevoegen",
654
+ "assign_agent": "Agent Toewijzen",
655
+ "assign_agent_desc": "Het ticket aan een agent toewijzen",
656
+ "change_status": "Status Wijzigen",
657
+ "change_status_desc": "De ticketstatus bijwerken",
658
+ "change_priority": "Prioriteit Wijzigen",
659
+ "change_priority_desc": "De ticketprioriteit bijwerken",
660
+ "add_tag": "Tag Toevoegen",
661
+ "add_tag_desc": "Een tag aan het ticket toevoegen",
662
+ "remove_tag": "Tag Verwijderen",
663
+ "remove_tag_desc": "Een tag van het ticket verwijderen",
664
+ "move_department": "Afdeling Verplaatsen",
665
+ "move_department_desc": "Ticket naar een andere afdeling verplaatsen",
666
+ "add_note": "Interne Notitie Toevoegen",
667
+ "add_note_desc": "Een interne notitie aan het ticket toevoegen",
668
+ "send_email": "E-mailnotificatie Verzenden",
669
+ "send_email_desc": "Een e-mailnotificatie verzenden",
670
+ "send_webhook": "Webhook Verzenden",
671
+ "send_webhook_desc": "Gegevens naar een externe URL verzenden",
672
+ "delay": "Vertraging",
673
+ "delay_desc": "Wacht voordat u verder gaat",
674
+ "delay_message": "Wacht {duration} {unit}, ga dan verder...",
675
+ "apply_macro": "Macro Toepassen",
676
+ "apply_macro_desc": "Een bestaande macro toepassen",
677
+ "close_ticket": "Ticket Sluiten",
678
+ "close_ticket_desc": "Het ticket onmiddellijk sluiten",
679
+ "snooze": "Snooze",
680
+ "snooze_desc": "Het ticket voor een periode uitstellen",
681
+ "specific_agent": "Specifieke agent",
682
+ "least_busy": "Minst drukke agent",
683
+ "round_robin": "Round robin",
684
+ "not_configured": "Niet geconfigureerd"
685
+ },
686
+ "logs": {
687
+ "title": "Workflow Uitvoeringslogboeken",
688
+ "description": "Volg workflowuitvoeringen en debug problemen",
689
+ "no_logs": "Nog geen uitvoeringslogboeken",
690
+ "no_logs_desc": "Logboeken verschijnen wanneer workflows worden geactiveerd",
691
+ "timestamp": "Tijdstempel",
692
+ "workflow": "Workflow",
693
+ "ticket": "Ticket",
694
+ "event": "Gebeurtenis",
695
+ "matched": "Overeenkomst",
696
+ "actions_executed": "Acties",
697
+ "duration": "Duur",
698
+ "status": "Status",
699
+ "success": "Succesvol",
700
+ "failed": "Mislukt",
701
+ "skipped": "Overgeslagen",
702
+ "action_details": "Actie-voor-actie Uitvoering",
703
+ "all_workflows": "Alle Workflows",
704
+ "from": "Van",
705
+ "to": "Tot"
706
+ },
707
+ "variables": {
708
+ "insert": "Variabele Invoegen",
709
+ "ticket_reference": "Ticketreferentie",
710
+ "ticket_subject": "Ticketonderwerp",
711
+ "ticket_status": "Ticketstatus",
712
+ "agent_name": "Agentnaam",
713
+ "requester_name": "Aanvragernaam",
714
+ "requester_email": "Aanvrager E-mail",
715
+ "department_name": "Afdelingsnaam"
716
+ },
717
+ "builder": {
718
+ "step": "Stap",
719
+ "trigger_step": "Stap 1: Triggergebeurtenis",
720
+ "conditions_step": "Stap 2: Voorwaarden",
721
+ "actions_step": "Stap 3: Acties",
722
+ "saving": "Opslaan...",
723
+ "update": "Workflow Bijwerken",
724
+ "create": "Workflow Aanmaken"
725
+ }
726
+ }
727
+ }