@adminiumjs/i18n 0.1.0-rc.1 → 0.1.2

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 (89) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +1 -1
  3. package/dist/locales.d.ts +1 -1
  4. package/dist/locales.js +1 -1
  5. package/dist/react.d.ts +10 -0
  6. package/dist/react.d.ts.map +1 -1
  7. package/dist/react.js +37 -0
  8. package/dist/react.js.map +1 -1
  9. package/dist/resources/ar-eg/common.d.ts +4 -0
  10. package/dist/resources/ar-eg/common.d.ts.map +1 -1
  11. package/dist/resources/ar-eg/common.js +4 -0
  12. package/dist/resources/ar-eg/common.js.map +1 -1
  13. package/dist/resources/ar-eg/ui.d.ts +769 -1
  14. package/dist/resources/ar-eg/ui.d.ts.map +1 -1
  15. package/dist/resources/ar-eg/ui.js +823 -55
  16. package/dist/resources/ar-eg/ui.js.map +1 -1
  17. package/dist/resources/cs-cz/common.d.ts +4 -0
  18. package/dist/resources/cs-cz/common.d.ts.map +1 -1
  19. package/dist/resources/cs-cz/common.js +4 -0
  20. package/dist/resources/cs-cz/common.js.map +1 -1
  21. package/dist/resources/cs-cz/ui.d.ts +769 -1
  22. package/dist/resources/cs-cz/ui.d.ts.map +1 -1
  23. package/dist/resources/cs-cz/ui.js +823 -55
  24. package/dist/resources/cs-cz/ui.js.map +1 -1
  25. package/dist/resources/da-dk/common.d.ts +4 -0
  26. package/dist/resources/da-dk/common.d.ts.map +1 -1
  27. package/dist/resources/da-dk/common.js +4 -0
  28. package/dist/resources/da-dk/common.js.map +1 -1
  29. package/dist/resources/da-dk/ui.d.ts +769 -1
  30. package/dist/resources/da-dk/ui.d.ts.map +1 -1
  31. package/dist/resources/da-dk/ui.js +823 -55
  32. package/dist/resources/da-dk/ui.js.map +1 -1
  33. package/dist/resources/de-de/common.d.ts +4 -0
  34. package/dist/resources/de-de/common.d.ts.map +1 -1
  35. package/dist/resources/de-de/common.js +4 -0
  36. package/dist/resources/de-de/common.js.map +1 -1
  37. package/dist/resources/de-de/ui.d.ts +769 -1
  38. package/dist/resources/de-de/ui.d.ts.map +1 -1
  39. package/dist/resources/de-de/ui.js +823 -55
  40. package/dist/resources/de-de/ui.js.map +1 -1
  41. package/dist/resources/en-us/common.d.ts +4 -0
  42. package/dist/resources/en-us/common.d.ts.map +1 -1
  43. package/dist/resources/en-us/common.js +4 -0
  44. package/dist/resources/en-us/common.js.map +1 -1
  45. package/dist/resources/en-us/ui.d.ts +809 -41
  46. package/dist/resources/en-us/ui.d.ts.map +1 -1
  47. package/dist/resources/en-us/ui.js +861 -93
  48. package/dist/resources/en-us/ui.js.map +1 -1
  49. package/dist/resources/fr-fr/common.d.ts +4 -0
  50. package/dist/resources/fr-fr/common.d.ts.map +1 -1
  51. package/dist/resources/fr-fr/common.js +4 -0
  52. package/dist/resources/fr-fr/common.js.map +1 -1
  53. package/dist/resources/fr-fr/ui.d.ts +769 -1
  54. package/dist/resources/fr-fr/ui.d.ts.map +1 -1
  55. package/dist/resources/fr-fr/ui.js +823 -55
  56. package/dist/resources/fr-fr/ui.js.map +1 -1
  57. package/dist/resources/zh-cn/common.d.ts +4 -0
  58. package/dist/resources/zh-cn/common.d.ts.map +1 -1
  59. package/dist/resources/zh-cn/common.js +4 -0
  60. package/dist/resources/zh-cn/common.js.map +1 -1
  61. package/dist/resources/zh-cn/ui.d.ts +769 -1
  62. package/dist/resources/zh-cn/ui.d.ts.map +1 -1
  63. package/dist/resources/zh-cn/ui.js +823 -55
  64. package/dist/resources/zh-cn/ui.js.map +1 -1
  65. package/dist/resources/zh-tw/common.d.ts +4 -0
  66. package/dist/resources/zh-tw/common.d.ts.map +1 -1
  67. package/dist/resources/zh-tw/common.js +4 -0
  68. package/dist/resources/zh-tw/common.js.map +1 -1
  69. package/dist/resources/zh-tw/ui.d.ts +769 -1
  70. package/dist/resources/zh-tw/ui.d.ts.map +1 -1
  71. package/dist/resources/zh-tw/ui.js +823 -55
  72. package/dist/resources/zh-tw/ui.js.map +1 -1
  73. package/locales/ar-EG/common.json +4 -0
  74. package/locales/ar-EG/ui.json +823 -55
  75. package/locales/cs-CZ/common.json +4 -0
  76. package/locales/cs-CZ/ui.json +823 -55
  77. package/locales/da-DK/common.json +4 -0
  78. package/locales/da-DK/ui.json +823 -55
  79. package/locales/de-DE/common.json +4 -0
  80. package/locales/de-DE/ui.json +823 -55
  81. package/locales/en-US/common.json +4 -0
  82. package/locales/en-US/ui.json +861 -93
  83. package/locales/fr-FR/common.json +4 -0
  84. package/locales/fr-FR/ui.json +823 -55
  85. package/locales/zh-CN/common.json +4 -0
  86. package/locales/zh-CN/ui.json +823 -55
  87. package/locales/zh-TW/common.json +4 -0
  88. package/locales/zh-TW/ui.json +823 -55
  89. package/package.json +1 -1
@@ -25,7 +25,8 @@ export default {
25
25
  "showPassword": "Passwort anzeigen",
26
26
  "hidePassword": "Passwort verbergen",
27
27
  "reveal": "Einblenden",
28
- "hide": "Ausblenden"
28
+ "hide": "Ausblenden",
29
+ "clearSearch": "Clear search"
29
30
  },
30
31
  "state": {
31
32
  "loading": "Wird geladen…",
@@ -67,7 +68,9 @@ export default {
67
68
  "description": "Die Standard-Kennzahlenkarte: ein Hauptwert mit optionaler Trendplakette und Mini-Sparkline."
68
69
  },
69
70
  "usageMeter": {
70
- "description": "Kontingentverbrauch gegen ein Limit; der Balken wechselt ab Ihren Schwellenwerten zu Gelb und dann zu Rot."
71
+ "description": "Kontingentverbrauch gegen ein Limit; der Balken wechselt ab Ihren Schwellenwerten zu Gelb und dann zu Rot.",
72
+ "usageLabel": "Usage",
73
+ "ofLabel": "of"
71
74
  },
72
75
  "statTileCompact": {
73
76
  "description": "Eine schmale Kennzahlenkachel mit Mikro-Label, Trend-Chip und 6-Balken-Spark – für dichte Reihen von 4 bis 6."
@@ -83,13 +86,17 @@ export default {
83
86
  "description": "Eine Ringanzeige für einen Wert oder Prozentsatz, eingefärbt nach dem Bereich, in den der Wert fällt."
84
87
  },
85
88
  "gaugeArc": {
86
- "description": "Ein Tachobogen mit qualitativen Bereichen und Zeiger; stellt auch ein Raster aus Anzeigen dar."
89
+ "description": "Ein Tachobogen mit qualitativen Bereichen und Zeiger; stellt auch ein Raster aus Anzeigen dar.",
90
+ "emptyTitle": "No gauges to show",
91
+ "emptyBody": "Services appear here as gauges once there is a reading for them."
87
92
  },
88
93
  "periodComparison": {
89
94
  "description": "Dieser Zeitraum gegen den letzten als zwei Balken, mit der Differenz darunter.",
90
95
  "higherLabel": "höher",
91
96
  "lowerLabel": "niedriger",
92
- "flatLabel": "unverändert"
97
+ "flatLabel": "unverändert",
98
+ "periodALabel": "This period",
99
+ "periodBLabel": "Last period"
93
100
  },
94
101
  "microKpiSubtitle": {
95
102
  "description": "Eine einzeilige Kopfzeilen-Kennzahl aus einer Vorlage, live neu berechnet."
@@ -105,54 +112,250 @@ export default {
105
112
  "boxplot": {
106
113
  "description": "Box-Whisker-Zusammenfassung der Streuung einer numerischen Spalte je Kategorie – Minimum, Quartile, Median und Maximum.",
107
114
  "emptyTitle": "Keine Verteilung darstellbar",
108
- "emptyBody": "Keine Zeilen entsprachen den Filtern für Box-Plots."
115
+ "emptyBody": "Keine Zeilen entsprachen den Filtern für Box-Plots.",
116
+ "chartLabel": "Box plot"
109
117
  },
110
118
  "violin": {
111
119
  "description": "Gespiegelte Dichtekurven, die die Verteilung einer numerischen Spalte über Gruppen vergleichen.",
112
120
  "emptyTitle": "Keine Verteilung darstellbar",
113
- "emptyBody": "Keine Zeilen entsprachen den Filtern für Dichteprofile."
121
+ "emptyBody": "Keine Zeilen entsprachen den Filtern für Dichteprofile.",
122
+ "chartLabel": "Violin plot"
114
123
  },
115
124
  "ridgeline": {
116
125
  "description": "Überlappende Dichtekämme, die eine numerische Spalte über geordnete Gruppen vergleichen.",
117
126
  "emptyTitle": "Keine Kämme darstellbar",
118
- "emptyBody": "Keine Zeilen entsprachen den Filtern für Dichteprofile."
127
+ "emptyBody": "Keine Zeilen entsprachen den Filtern für Dichteprofile.",
128
+ "chartLabel": "Ridgeline"
119
129
  },
120
130
  "scatterBubble": {
121
131
  "description": "Zwei numerische Spalten als Punkte, mit optionaler Blasengröße und Trendlinie.",
122
132
  "emptyTitle": "Keine Punkte darstellbar",
123
- "emptyBody": "Keine Zeilen entsprachen den Filtern für die gewählten Spalten."
133
+ "emptyBody": "Keine Zeilen entsprachen den Filtern für die gewählten Spalten.",
134
+ "chartLabel": "Scatter plot"
124
135
  },
125
136
  "hexbin": {
126
137
  "description": "Hex-gebinnte Dichte zweier numerischer Spalten, eingefärbt nach Zeilen je Kachel.",
127
138
  "emptyTitle": "Keine Dichte darstellbar",
128
- "emptyBody": "Keine Zeilen entsprachen den Filtern zum Gruppieren."
139
+ "emptyBody": "Keine Zeilen entsprachen den Filtern zum Gruppieren.",
140
+ "chartLabel": "Density hexbin"
129
141
  },
130
142
  "correlationMatrix": {
131
143
  "description": "Pearson-Korrelation zwischen gewählten numerischen Spalten, von stark positiv bis stark negativ.",
132
144
  "emptyTitle": "Nichts zu korrelieren",
133
- "emptyBody": "Wähle mindestens zwei numerische Spalten mit passenden Zeilen."
145
+ "emptyBody": "Wähle mindestens zwei numerische Spalten mit passenden Zeilen.",
146
+ "chartLabel": "Correlation matrix"
134
147
  },
135
148
  "parallelCoordinates": {
136
149
  "description": "Jeder Datensatz als Linie über mehrere normierte numerische Achsen, eingefärbt nach Kategorie.",
137
150
  "emptyTitle": "Keine Datensätze darstellbar",
138
- "emptyBody": "Keine Zeilen entsprachen den Filtern über die gewählten Achsen."
151
+ "emptyBody": "Keine Zeilen entsprachen den Filtern über die gewählten Achsen.",
152
+ "chartLabel": "Parallel coordinates"
153
+ },
154
+ "unexpectedShape": "Unexpected data shape.",
155
+ "lineArea": {
156
+ "chartLabel": "Line chart",
157
+ "description": "A metric over time as a line with a soft area fill, with an optional dashed prior-period comparison."
158
+ },
159
+ "bar": {
160
+ "chartLabel": "Bar chart",
161
+ "description": "Categorical or time-bucketed values as vertical bars, with an optional highlight on the largest or current bar."
162
+ },
163
+ "donut": {
164
+ "chartLabel": "Donut chart",
165
+ "otherLabel": "Other",
166
+ "description": "Category shares as donut slices with a legend and centre total, folding small slices into an Other bucket."
167
+ },
168
+ "bullet": {
169
+ "chartLabel": "Bullet chart",
170
+ "description": "Progress toward a goal as a measure bar over qualitative bands, with a target tick per row.",
171
+ "emptyTitle": "No goals to track",
172
+ "emptyBody": "Add measures with targets to compare against."
173
+ },
174
+ "rankingBars": {
175
+ "chartLabel": "Ranking",
176
+ "description": "A top-N ranking as horizontal bars — the leader at full strength, the rest dimmed — with values alongside.",
177
+ "emptyTitle": "Nothing to rank",
178
+ "emptyBody": "No records matched this breakdown yet."
179
+ },
180
+ "pareto": {
181
+ "chartLabel": "Pareto chart",
182
+ "description": "Sorted category bars under a cumulative-percent line, with an optional 80% cutline.",
183
+ "emptyTitle": "No categories to chart",
184
+ "emptyBody": "No grouped counts were returned for this range."
185
+ },
186
+ "waterfall": {
187
+ "chartLabel": "Waterfall chart",
188
+ "description": "A floating-bar bridge from a start total through positive and negative steps to a net total.",
189
+ "emptyTitle": "No movement to bridge",
190
+ "emptyBody": "No start, change, or total steps were found."
191
+ },
192
+ "marimekko": {
193
+ "chartLabel": "Marimekko chart",
194
+ "description": "A two-level mix as variable-width stacked columns — width for the outer share, segments for the inner split.",
195
+ "emptyTitle": "No mix to break down",
196
+ "emptyBody": "No two-level breakdown was returned for this range."
197
+ },
198
+ "stackedBar100": {
199
+ "chartLabel": "100% stacked bar",
200
+ "description": "One 100% bar split into proportional segments with a legend, comparing shares of a whole.",
201
+ "emptyTitle": "No shares to split",
202
+ "emptyBody": "No parts were returned for this breakdown."
203
+ },
204
+ "slope": {
205
+ "chartLabel": "Slope chart",
206
+ "description": "Two periods joined by one line per record, coloured by whether the value rose or fell.",
207
+ "emptyTitle": "No period shift to show",
208
+ "emptyBody": "No before/after values were returned to compare."
209
+ },
210
+ "multiline": {
211
+ "chartLabel": "Multi-line chart",
212
+ "description": "Several series as overlaid lines with end labels, comparing trends over the same time span.",
213
+ "emptyTitle": "No series to plot",
214
+ "emptyBody": "No time series matched the filters for this range."
215
+ },
216
+ "stream": {
217
+ "chartLabel": "Stream chart",
218
+ "description": "Stacked bands flowing around a centre line, showing how a total's composition shifts over time.",
219
+ "emptyTitle": "No flow to chart",
220
+ "emptyBody": "No stacked series were returned for this range."
221
+ },
222
+ "forecast": {
223
+ "chartLabel": "Forecast chart",
224
+ "nowLabel": "Now",
225
+ "forecastLabel": "Forecast",
226
+ "actualLabel": "Actual",
227
+ "description": "A history line extended by a dashed projection inside a widening confidence band, split at a now divider.",
228
+ "emptyTitle": "No history to project",
229
+ "emptyBody": "No past points were returned to forecast from."
230
+ },
231
+ "anomaly": {
232
+ "chartLabel": "Anomaly chart",
233
+ "description": "A value line over its expected range, flagging points that fall outside it with halo dots.",
234
+ "emptyTitle": "No signal to scan",
235
+ "emptyBody": "No points were returned to check for anomalies."
236
+ },
237
+ "candlestick": {
238
+ "chartLabel": "Candlestick chart",
239
+ "livePillLabel": "Live",
240
+ "description": "Open-high-low-close candles coloured by direction, with a dashed last-price line and an optional live pill.",
241
+ "emptyTitle": "No candles to chart",
242
+ "emptyBody": "No open-high-low-close rows matched this range."
243
+ },
244
+ "bump": {
245
+ "chartLabel": "Bump chart",
246
+ "description": "Rank-over-time lines showing how competitors trade places between periods.",
247
+ "emptyTitle": "No ranks to trace",
248
+ "emptyBody": "No period-over-period rankings were returned."
249
+ },
250
+ "timelineLanes": {
251
+ "chartLabel": "Timeline lanes",
252
+ "laneLabel": "Events",
253
+ "description": "Dated events as pills on horizontal swimlanes sharing one time axis.",
254
+ "emptyTitle": "No events to place",
255
+ "emptyBody": "No events matched the filters for this range."
256
+ },
257
+ "treemap": {
258
+ "chartLabel": "Treemap",
259
+ "otherLabel": "Other",
260
+ "description": "A part-to-whole breakdown as squarified tiles sized by value, folding small slices into an Other tile.",
261
+ "emptyTitle": "No slices to tile",
262
+ "emptyBody": "No categories were returned for this breakdown."
263
+ },
264
+ "sunburst": {
265
+ "chartLabel": "Sunburst",
266
+ "description": "A two-level hierarchy as nested rings — parents inside, their children outside — with a parent legend.",
267
+ "emptyTitle": "No rings to draw",
268
+ "emptyBody": "No grouped categories were returned to nest."
269
+ },
270
+ "funnel": {
271
+ "chartLabel": "Funnel",
272
+ "description": "Ordered shrinking stages with per-step continuation rates and an overall-conversion footer.",
273
+ "emptyTitle": "No stages to funnel",
274
+ "emptyBody": "No step counts were returned for this range."
275
+ },
276
+ "radialBar": {
277
+ "chartLabel": "Radial bar",
278
+ "description": "Up to four percentages as concentric progress rings with a dot legend.",
279
+ "emptyTitle": "No rings to fill",
280
+ "emptyBody": "No categories matched this breakdown yet."
281
+ },
282
+ "radar": {
283
+ "chartLabel": "Radar",
284
+ "description": "Several named axes on a polygon with one filled shape per series, against an optional target overlay.",
285
+ "emptyTitle": "No axes to compare",
286
+ "emptyBody": "No matrix of series and axes was returned."
287
+ },
288
+ "chord": {
289
+ "chartLabel": "Chord",
290
+ "description": "Pairwise flows as ribbons between nodes on a ring, with ribbon opacity weighted by volume.",
291
+ "emptyTitle": "No flows to link",
292
+ "emptyBody": "No connections between groups were returned."
293
+ },
294
+ "wordcloud": {
295
+ "chartLabel": "Word cloud",
296
+ "description": "Terms sized by frequency and flowed into rows, for a glanceable view of what dominates.",
297
+ "emptyTitle": "No terms to cloud",
298
+ "emptyBody": "No weighted terms matched the filters."
299
+ },
300
+ "cohortMatrix": {
301
+ "chartLabel": "Cohort retention",
302
+ "description": "Cohort rows against period columns, each cell shaded by retention or revenue."
303
+ },
304
+ "heatmapCalendar": {
305
+ "chartLabel": "Activity calendar",
306
+ "legendLessLabel": "Less",
307
+ "legendMoreLabel": "More",
308
+ "description": "A year of daily activity as a week-by-day grid shaded by intensity."
309
+ },
310
+ "heatMonth": {
311
+ "chartLabel": "Monthly activity",
312
+ "description": "One calendar month as a day grid shaded by each day's value."
313
+ },
314
+ "choroplethGrid": {
315
+ "chartLabel": "Regional breakdown",
316
+ "legendLowLabel": "Low",
317
+ "legendHighLabel": "High",
318
+ "description": "Regional values as a tinted US tilegram or compact grid, with an optional top-N ranking list."
319
+ },
320
+ "sankey": {
321
+ "chartLabel": "Flow",
322
+ "description": "Layered source-to-target flows as ribbons whose thickness encodes volume."
323
+ },
324
+ "sparkline": {
325
+ "description": "An inline micro-trend of recent values — no axes or labels — for KPI cards, table cells and list rows."
139
326
  }
140
327
  },
141
328
  "feeds": {
142
329
  "activityFeed": {
143
330
  "description": "Ein fortlaufender Feed, wer was in Ihrem Workspace getan hat – neueste zuerst.",
144
331
  "emptyTitle": "Keine aktuelle Aktivität",
145
- "emptyBody": "Aktionen in Ihrem Workspace erscheinen hier."
332
+ "emptyBody": "Aktionen in Ihrem Workspace erscheinen hier.",
333
+ "viewAllLabel": "View all"
146
334
  },
147
335
  "notificationFeed": {
148
336
  "description": "Gruppierte Benachrichtigungen mit Ungelesen-Status, Filtern und Inline-Aktionen.",
149
337
  "emptyTitle": "Keine Benachrichtigungen",
150
- "emptyBody": "Neue Benachrichtigungen erscheinen hier."
338
+ "emptyBody": "Neue Benachrichtigungen erscheinen hier.",
339
+ "allLabel": "All",
340
+ "unreadLabel": "Unread",
341
+ "mentionsLabel": "Mentions",
342
+ "filterLabel": "Notification filter",
343
+ "markAllReadLabel": "Mark all read",
344
+ "todayLabel": "Today",
345
+ "yesterdayLabel": "Yesterday",
346
+ "earlierLabel": "Earlier",
347
+ "dismissLabel": "Dismiss",
348
+ "emptyUnreadTitle": "You're all caught up",
349
+ "emptyMentionsTitle": "No mentions"
151
350
  },
152
351
  "realtimeFeed": {
153
352
  "description": "Ein Live-Ereignisstrom, der neue Einträge beim Eintreffen voranstellt.",
154
353
  "emptyTitle": "Warten auf Ereignisse",
155
- "emptyBody": "Live-Ereignisse erscheinen hier, sobald sie eintreten."
354
+ "emptyBody": "Live-Ereignisse erscheinen hier, sobald sie eintreten.",
355
+ "liveLabel": "Live",
356
+ "pausedLabel": "Paused",
357
+ "pauseLabel": "Pause",
358
+ "resumeLabel": "Resume"
156
359
  },
157
360
  "timelineVertical": {
158
361
  "description": "Eine vertikale Zeitachse von Ereignissen, Releases, Vorfällen oder Ausführungsschritten.",
@@ -181,22 +384,41 @@ export default {
181
384
  "calendarMonth": {
182
385
  "description": "Ein Monatsraster geplanter Termine mit Tages-Chips und Monatsnavigation.",
183
386
  "emptyTitle": "Nichts geplant",
184
- "emptyBody": "Geplante Termine erscheinen in diesem Kalender."
387
+ "emptyBody": "Geplante Termine erscheinen in diesem Kalender.",
388
+ "previousLabel": "Previous month",
389
+ "nextLabel": "Next month",
390
+ "overflowLabel": "+{count} more"
185
391
  },
186
392
  "dayAgenda": {
187
393
  "description": "Die Termine des ausgewählten Tages als zeitlich geordnete Agenda.",
188
394
  "emptyTitle": "Nichts geplant",
189
- "emptyBody": "Termine für den ausgewählten Tag erscheinen hier."
395
+ "emptyBody": "Termine für den ausgewählten Tag erscheinen hier.",
396
+ "countLabel": "{count, plural, one {{n} event} other {{n} events}}"
190
397
  },
191
398
  "scheduleMatrix": {
192
399
  "description": "Ein Schichtraster nach Ressource und Tag mit Abdeckung pro Tag und Legende.",
193
400
  "emptyTitle": "Keine Schichten geplant",
194
- "emptyBody": "Zugewiesene Schichten erscheinen in diesem Plan."
401
+ "emptyBody": "Zugewiesene Schichten erscheinen in diesem Plan.",
402
+ "resourceLabel": "Resource",
403
+ "coverageLabel": "Coverage",
404
+ "hoursLabel": "{hours}h"
195
405
  },
196
406
  "capacityBoard": {
197
407
  "description": "Auslastungsbalken pro Mitglied mit Projektaufschlüsselung und Laststatus.",
198
408
  "emptyTitle": "Keine Auslastungsdaten",
199
- "emptyBody": "Die Auslastung der Mitglieder erscheint hier, sobald Zuweisungen bestehen."
409
+ "emptyBody": "Die Auslastung der Mitglieder erscheint hier, sobald Zuweisungen bestehen.",
410
+ "status": {
411
+ "overloaded": "Overloaded",
412
+ "balanced": "Balanced",
413
+ "available": "Available"
414
+ },
415
+ "utilizationLabel": "{name}: {util}%",
416
+ "assignmentLabel": "{project} · {hours}h",
417
+ "periodLabel": "h · {period}",
418
+ "period": {
419
+ "week": "week",
420
+ "month": "month"
421
+ }
200
422
  },
201
423
  "calendarLegendFilter": {
202
424
  "description": "Ereigniskategorien mit Anzahl; ein Klick filtert den Kalender daneben.",
@@ -236,12 +458,28 @@ export default {
236
458
  "masterList": {
237
459
  "description": "Eine auswählbare Liste von Datensätzen, die einen Detailbereich steuert.",
238
460
  "emptyTitle": "Keine Einträge",
239
- "emptyBody": "Einträge erscheinen hier, sobald sie vorhanden sind."
461
+ "emptyBody": "Einträge erscheinen hier, sobald sie vorhanden sind.",
462
+ "allLabel": "All",
463
+ "toggleLabel": "Toggle {title}",
464
+ "progressLabel": "{title} progress"
240
465
  },
241
466
  "logTable": {
242
467
  "description": "Ein Ereignisprotokoll mit Suche, Fehlerfilter und Zeilenaktionen.",
243
468
  "emptyTitle": "Keine Protokolleinträge",
244
- "emptyBody": "Ereignisse werden hier protokolliert, sobald sie eintreten."
469
+ "emptyBody": "Ereignisse werden hier protokolliert, sobald sie eintreten.",
470
+ "liveLabel": "Live",
471
+ "placeholder": "Search logs…",
472
+ "filterLabel": "Log filter",
473
+ "allLabel": "All",
474
+ "errorsLabel": "Errors",
475
+ "noMatchesLabel": "No matching entries",
476
+ "todayLabel": "Today",
477
+ "yesterdayLabel": "Yesterday",
478
+ "action": {
479
+ "retry": "retry",
480
+ "download": "download",
481
+ "inspect": "inspect"
482
+ }
245
483
  },
246
484
  "cardGallery": {
247
485
  "description": "Eine responsive Galerie von Objektkarten mit Status und Schnellaktionen.",
@@ -251,17 +489,23 @@ export default {
251
489
  "groupedSummaryTable": {
252
490
  "description": "Gruppierte Zeilen mit Aggregatspalten, aufklappbaren Details und Summen.",
253
491
  "emptyTitle": "Keine Zusammenfassung",
254
- "emptyBody": "Gruppierte Summen erscheinen hier, sobald Daten vorliegen."
492
+ "emptyBody": "Gruppierte Summen erscheinen hier, sobald Daten vorliegen.",
493
+ "groupLabel": "Group",
494
+ "totalsLabel": "Total"
255
495
  },
256
496
  "schemaTree": {
257
497
  "description": "Ein Explorer für Schemas, Tabellen und Spalten mit Typ- und Schlüssel-Badges.",
258
498
  "emptyTitle": "Kein Schema eingelesen",
259
- "emptyBody": "Verbinden Sie eine Datenbank, um ihr Schema hier zu erkunden."
499
+ "emptyBody": "Verbinden Sie eine Datenbank, um ihr Schema hier zu erkunden.",
500
+ "treeLabel": "Schema",
501
+ "viewLabel": "view"
260
502
  },
261
503
  "toggleMatrix": {
262
504
  "description": "Ein interaktives Raster boolescher Schalter für Rollen, Richtlinien oder Kanäle.",
263
505
  "emptyTitle": "Keine Matrix konfiguriert",
264
- "emptyBody": "Zeilen und Spalten erscheinen hier nach der Konfiguration."
506
+ "emptyBody": "Zeilen und Spalten erscheinen hier nach der Konfiguration.",
507
+ "matrixLabel": "Permissions matrix",
508
+ "rowHeaderLabel": "Permission"
265
509
  },
266
510
  "sparklineTable": {
267
511
  "description": "Metrikzeilen mit Mini-Sparkline, aktuellem Wert und einer Änderungs-Pille, die Gut/Schlecht berücksichtigt.",
@@ -294,6 +538,40 @@ export default {
294
538
  "emptyTitle": "Noch nichts gefunden",
295
539
  "emptyBody": "Tabellen und Variablen erscheinen hier als Chips, sobald sie gefunden werden.",
296
540
  "moreLabel": "+{n} weitere"
541
+ },
542
+ "dataGrid": {
543
+ "selectAllLabel": "Select all rows",
544
+ "selectRowLabel": "Select row",
545
+ "sortByLabel": "Sort by {column}",
546
+ "description": "The canonical CRUD grid with sortable columns, row selection, and type-aware cells."
547
+ },
548
+ "paginationFooter": {
549
+ "emptyLabel": "0 rows",
550
+ "ofLabel": "of",
551
+ "pageSizeLabel": "Rows",
552
+ "a11y": {
553
+ "pageSize": "Rows per page"
554
+ },
555
+ "prevLabel": "Previous page",
556
+ "nextLabel": "Next page",
557
+ "description": "A footer with the visible row range, prev/next paging, and a page-size select."
558
+ },
559
+ "bulkActionToolbar": {
560
+ "selectedLabel": "selected",
561
+ "clearLabel": "Clear selection",
562
+ "toolbarLabel": "Bulk actions",
563
+ "description": "A selection-aware toolbar showing the selected count and bulk actions."
564
+ },
565
+ "miniTable": {
566
+ "viewAllLabel": "View all",
567
+ "description": "A compact dashboard row list with mapped columns and a view-all link."
568
+ },
569
+ "revealLabel": "Reveal value",
570
+ "hideLabel": "Hide value",
571
+ "trueLabel": "true",
572
+ "falseLabel": "false",
573
+ "detailKeyValue": {
574
+ "description": "A record's fields as label/value rows with type-aware values."
297
575
  }
298
576
  },
299
577
  "boards": {
@@ -347,7 +625,8 @@ export default {
347
625
  "composerPlaceholder": "Nachricht schreiben…",
348
626
  "sendLabel": "Senden",
349
627
  "attachLabel": "Anhang hinzufügen",
350
- "typingLabel": "tippt…"
628
+ "typingLabel": "tippt…",
629
+ "composerLabel": "Message"
351
630
  },
352
631
  "aiChatPanel": {
353
632
  "description": "Ein Assistenz-Panel für Fragen zu Ihrem Schema und Ihren Daten.",
@@ -358,7 +637,9 @@ export default {
358
637
  "pendingLabel": "Denkt nach…",
359
638
  "configureTitle": "Kein KI-Anbieter konfiguriert",
360
639
  "configureBody": "Fügen Sie einen Anthropic- oder OpenAI-Schlüssel hinzu — oder verweisen Sie Adminium auf Ihren eigenen Endpunkt —, um Fragen zu Ihrem Schema zu stellen.",
361
- "configureCtaLabel": "Anbieter konfigurieren"
640
+ "configureCtaLabel": "Anbieter konfigurieren",
641
+ "assistantLabel": "Assistant",
642
+ "composerLabel": "Ask a question"
362
643
  },
363
644
  "typingIndicator": {
364
645
  "description": "Ein Avatar und eine kursive Zeile „tippt …“, gebunden an einen Live-Status pro Unterhaltung.",
@@ -395,7 +676,8 @@ export default {
395
676
  "emptyTitle": "Keine Regionen",
396
677
  "emptyBody": "Zeilen mit Regionscode und numerischem Wert erscheinen hier als eingefärbte Kacheln.",
397
678
  "legendLowLabel": "Niedrig",
398
- "legendHighLabel": "Hoch"
679
+ "legendHighLabel": "Hoch",
680
+ "chartLabel": "Regional breakdown"
399
681
  }
400
682
  },
401
683
  "domain": {
@@ -423,7 +705,9 @@ export default {
423
705
  "blockListLabel": "Dokumentblöcke",
424
706
  "billedToLabel": "Rechnung an",
425
707
  "issuedLabel": "Ausgestellt",
426
- "dueLabel": "Fällig"
708
+ "dueLabel": "Fällig",
709
+ "noDocumentTitle": "No document yet",
710
+ "noDocumentBody": "Pick a starter template or add a block to begin."
427
711
  },
428
712
  "blockTotalsSummary": {
429
713
  "description": "Die Dokumentsummen — Zwischensumme, Rabatt, Steuer und Gesamtbetrag, neu berechnet aus den Positionen.",
@@ -451,12 +735,14 @@ export default {
451
735
  "blockBarChart": {
452
736
  "description": "Ein Mini-Balkendiagramm in der Dokumentfarbe, passend für einen Dokumentblock.",
453
737
  "emptyTitle": "Keine Daten für das Diagramm",
454
- "emptyBody": "Die Balken erscheinen, sobald der Bericht eine Datenreihe enthält."
738
+ "emptyBody": "Die Balken erscheinen, sobald der Bericht eine Datenreihe enthält.",
739
+ "a11yLabel": "Bar chart"
455
740
  },
456
741
  "blockLineChart": {
457
742
  "description": "Ein Mini-Liniendiagramm mit optionaler Flächenfüllung, passend für einen Dokumentblock.",
458
743
  "emptyTitle": "Keine Daten für das Diagramm",
459
- "emptyBody": "Die Linie erscheint, sobald der Bericht eine Datenreihe enthält."
744
+ "emptyBody": "Die Linie erscheint, sobald der Bericht eine Datenreihe enthält.",
745
+ "a11yLabel": "Line chart"
460
746
  },
461
747
  "blockTwoColTable": {
462
748
  "description": "Eine zweispaltige Tabelle mit gestalteter Kopfzeile und Wertespalte in Monospace.",
@@ -514,7 +800,8 @@ export default {
514
800
  "emptyBody": "Die Unterschriftslinien erscheinen, sobald das Dokument eine unterzeichnende Person nennt.",
515
801
  "namePlaceholder": "Vollständiger Name",
516
802
  "titlePlaceholder": "Funktion",
517
- "dateLabel": "Datum"
803
+ "dateLabel": "Datum",
804
+ "nameInputLabel": "Signature name"
518
805
  },
519
806
  "blockTermsCheckbox": {
520
807
  "description": "Ein Schalter für die Bedingungen mit bearbeitbarer Beschriftung.",
@@ -559,77 +846,159 @@ export default {
559
846
  "starterTemplatePicker": {
560
847
  "description": "Ein Raster vordefinierter Vorlagen mit generierten Miniaturansichten; die Auswahl erzeugt ein vollständiges Dokument.",
561
848
  "emptyTitle": "Keine Vorlagen",
562
- "emptyBody": "Definiere Vorlagen in der Konfiguration oder binde eine Vorlagentabelle ein."
849
+ "emptyBody": "Definiere Vorlagen in der Konfiguration oder binde eine Vorlagentabelle ein.",
850
+ "blankLabel": "Blank",
851
+ "kicker": {
852
+ "invoice": "Invoice",
853
+ "report": "Report",
854
+ "email": "Email"
855
+ }
563
856
  },
564
857
  "sloMonitorCard": {
565
858
  "description": "SLA-Karte je Dienst mit Status, Verfügbarkeit gegenüber dem Ziel, täglichem Uptime-Streifen, Fehlerbudget und p95-Latenz.",
566
859
  "emptyTitle": "Kein Monitor",
567
- "emptyBody": "Binde eine Monitor-Tabelle mit einer Status- und einer Verfügbarkeitsspalte ein."
860
+ "emptyBody": "Binde eine Monitor-Tabelle mit einer Status- und einer Verfügbarkeitsspalte ein.",
861
+ "targetLabel": "Target",
862
+ "budgetLabel": "Error budget",
863
+ "latencyLabel": "p95 latency",
864
+ "status": {
865
+ "operational": "Operational",
866
+ "degraded": "Degraded",
867
+ "down": "Down",
868
+ "unknown": "Unknown"
869
+ }
568
870
  },
569
871
  "uptimeSegmentBar": {
570
872
  "description": "Tagesstreifen im Statuspage-Stil, eingefärbt nach Tagesstatus, mit Umschalter für 30/90 Tage.",
571
873
  "emptyTitle": "Kein Uptime-Verlauf",
572
- "emptyBody": "Tägliche Statuszeilen erscheinen hier als Uptime-Streifen."
874
+ "emptyBody": "Tägliche Statuszeilen erscheinen hier als Uptime-Streifen.",
875
+ "daysAgoLabel": "{days} days ago",
876
+ "todayLabel": "Today",
877
+ "uptimeLabel": "uptime",
878
+ "period30Label": "30d",
879
+ "period90Label": "90d",
880
+ "status": {
881
+ "operational": "Operational",
882
+ "degraded": "Degraded",
883
+ "down": "Down",
884
+ "unknown": "No data"
885
+ }
573
886
  },
574
887
  "experimentVariantCompare": {
575
888
  "description": "Konversionsbalken je Variante mit Steigerung gegenüber der Kontrolle und einer Signifikanzanzeige.",
576
889
  "emptyTitle": "Keine Varianten",
577
- "emptyBody": "Binde eine Varianten-Tabelle mit Konversionszahlen ein."
890
+ "emptyBody": "Binde eine Varianten-Tabelle mit Konversionszahlen ein.",
891
+ "controlLabel": "CONTROL",
892
+ "winnerLabel": "WINNER",
893
+ "significanceLabel": "Confidence",
894
+ "verdictSignificantLabel": "Statistically significant — safe to call.",
895
+ "verdictInconclusiveLabel": "Not yet significant — keep the test running.",
896
+ "countsLabel": "{users} participants · {conversions} conversions"
578
897
  },
579
898
  "creditCardTile": {
580
899
  "description": "Eine gespeicherte Zahlungsmethode als Markenkarte mit maskierter Nummer, Inhaber und Ablaufdatum.",
581
900
  "emptyTitle": "Keine Zahlungsmethode",
582
- "emptyBody": "Füge eine Karte hinzu, um sie hier zu sehen."
901
+ "emptyBody": "Füge eine Karte hinzu, um sie hier zu sehen.",
902
+ "defaultLabel": "Default",
903
+ "setDefaultLabel": "Set default",
904
+ "manageLabel": "Manage",
905
+ "addLabel": "Add payment method",
906
+ "expiresLabel": "Expires"
583
907
  },
584
908
  "planPricingCards": {
585
909
  "description": "Preisstufen mit Umschalter monatlich/jährlich, Funktionslisten und einem hervorgehobenen Tarif.",
586
910
  "emptyTitle": "Keine Tarife",
587
- "emptyBody": "Binde eine Tarif-Tabelle mit Name und Monatspreis ein."
911
+ "emptyBody": "Binde eine Tarif-Tabelle mit Name und Monatspreis ein.",
912
+ "monthlyLabel": "Monthly",
913
+ "annualLabel": "Annual",
914
+ "popularLabel": "POPULAR",
915
+ "perMonthLabel": "/ month",
916
+ "billedAnnuallyLabel": "Billed {total} yearly",
917
+ "currentLabel": "Current plan",
918
+ "ctaLabel": "Choose plan"
588
919
  },
589
920
  "apiKeysPanel": {
590
921
  "description": "API-Schlüssel mit Umgebungs-Badges, maskierten Werten, Geltungsbereichen, letzter Nutzung sowie Kopier-, Erneuerungs- und Widerrufsaktionen.",
591
922
  "emptyTitle": "Keine API-Schlüssel",
592
- "emptyBody": "Erstelle einen Schlüssel, um die API aufzurufen."
923
+ "emptyBody": "Erstelle einen Schlüssel, um die API aufzurufen.",
924
+ "revealedTitle": "Key created",
925
+ "revealedBody": "Copy it now — it is never shown again.",
926
+ "copyLabel": "Copy",
927
+ "copiedLabel": "Copied",
928
+ "revealLabel": "Reveal key",
929
+ "hideLabel": "Hide key",
930
+ "rollLabel": "Roll key",
931
+ "revokeLabel": "Revoke key",
932
+ "neverUsedLabel": "Never used",
933
+ "lastUsedLabel": "Last used {since}"
593
934
  },
594
935
  "apiPlayground": {
595
936
  "description": "Ein Anfrage-Editor mit Parametern und Antwortbereich. Er stellt Anfragen nur zusammen und sendet nie eine echte Anfrage.",
596
937
  "emptyTitle": "Kein Endpunkt ausgewählt",
597
- "emptyBody": "Wähle einen Endpunkt, um eine Anfrage dafür zusammenzustellen."
938
+ "emptyBody": "Wähle einen Endpunkt, um eine Anfrage dafür zusammenzustellen.",
939
+ "sendLabel": "Send",
940
+ "requestLabel": "Request",
941
+ "responseLabel": "Response",
942
+ "paramsLabel": "Parameters",
943
+ "responsePlaceholder": "Send the request to see the response."
598
944
  },
599
945
  "codeSnippetBlock": {
600
946
  "description": "Ein kopierbarer Code-Ausschnitt mit Sprach-Chip und optionalen Registerkarten je Sprache.",
601
947
  "emptyTitle": "Kein Ausschnitt",
602
- "emptyBody": "Binde eine Code-Spalte ein oder hinterlege einen festen Ausschnitt in der Konfiguration."
948
+ "emptyBody": "Binde eine Code-Spalte ein oder hinterlege einen festen Ausschnitt in der Konfiguration.",
949
+ "copyLabel": "Copy",
950
+ "copiedLabel": "Copied"
603
951
  },
604
952
  "webhookEndpointsList": {
605
953
  "description": "Webhook-Endpunkte mit Ereignis, Ziel-URL, letzter Auslösung und Aktivierungsschalter.",
606
954
  "emptyTitle": "Keine Endpunkte",
607
- "emptyBody": "Füge einen Webhook-Endpunkt hinzu, um Tabellenereignisse zu empfangen."
955
+ "emptyBody": "Füge einen Webhook-Endpunkt hinzu, um Tabellenereignisse zu empfangen.",
956
+ "neverFiredLabel": "Never fired",
957
+ "lastFiredLabel": "Last fired {since}"
608
958
  },
609
959
  "resourceApiCard": {
610
960
  "description": "Die generierte API-Oberfläche einer Tabelle: Zeilenanzahl, Sicherheits-Badge, Methoden-Chips und Anfragevolumen.",
611
961
  "emptyTitle": "Keine Ressource",
612
- "emptyBody": "Binde eine Tabelle ein, um ihre generierte API-Oberfläche zu zeigen."
962
+ "emptyBody": "Binde eine Tabelle ein, um ihre generierte API-Oberfläche zu zeigen.",
963
+ "rlsLabel": "RLS",
964
+ "publicLabel": "Public",
965
+ "rowsLabel": "rows",
966
+ "perDayLabel": "{count}/day"
613
967
  },
614
968
  "liveTimer": {
615
969
  "description": "Eine Stoppuhr mit Start und Stopp für eine Aufgabe; das Stoppen erfasst einen Zeiteintrag.",
616
970
  "emptyTitle": "Kein Timer",
617
- "emptyBody": "Binde eine Zeiteintragszeile mit Aufgabe und Dauer-Spalte ein."
971
+ "emptyBody": "Binde eine Zeiteintragszeile mit Aufgabe und Dauer-Spalte ein.",
972
+ "startLabel": "Start",
973
+ "stopLabel": "Stop",
974
+ "taskPlaceholder": "Untitled task"
618
975
  },
619
976
  "syncStatusCard": {
620
977
  "description": "Verbindungsidentität, Latenz, synchronisierte Zeilen und Zeitplan, mit einer Aktion zum sofortigen Synchronisieren.",
621
978
  "emptyTitle": "Keine Verbindung",
622
- "emptyBody": "Binde eine Verbindungszeile ein, um ihren Sync-Status zu zeigen."
979
+ "emptyBody": "Binde eine Verbindungszeile ein, um ihren Sync-Status zu zeigen.",
980
+ "connectedLabel": "Connected",
981
+ "disconnectedLabel": "Disconnected",
982
+ "rowsSyncedLabel": "Rows synced",
983
+ "tablesLabel": "Tables",
984
+ "lastSyncLabel": "Last sync",
985
+ "nextSyncLabel": "Next sync",
986
+ "syncingLabel": "Syncing…",
987
+ "syncActionLabel": "Sync now"
623
988
  },
624
989
  "ipAllowlistCard": {
625
990
  "description": "Feste ausgehende IP-Adressen zur Freigabe in einer Firewall, jeweils mit Kopierschaltfläche.",
626
991
  "emptyTitle": "Keine ausgehenden IPs",
627
- "emptyBody": "Ausgehende Adressen erscheinen hier, sobald die Verbindung bereitgestellt ist."
992
+ "emptyBody": "Ausgehende Adressen erscheinen hier, sobald die Verbindung bereitgestellt ist.",
993
+ "copyLabel": "Copy",
994
+ "copiedLabel": "Copied"
628
995
  },
629
996
  "onboardingChecklist": {
630
997
  "description": "Einrichtungsschritte mit Zeitschätzungen und Aktionen über einem live berechneten Fortschrittsring und -balken.",
631
998
  "emptyTitle": "Nichts einzurichten",
632
- "emptyBody": "Hinterlege Onboarding-Schritte in der Konfiguration oder binde eine Schritt-Tabelle ein."
999
+ "emptyBody": "Hinterlege Onboarding-Schritte in der Konfiguration oder binde eine Schritt-Tabelle ein.",
1000
+ "progressLabel": "{done} of {total} done",
1001
+ "celebrateTitle": "All done"
633
1002
  },
634
1003
  "testimonialCard": {
635
1004
  "description": "Ein Kundenzitat mit Avatar und Quellenangabe.",
@@ -672,7 +1041,8 @@ export default {
672
1041
  "imageBoard": {
673
1042
  "description": "Ein Moodboard-Raster aus Bildplätzen mit Bildunterschriften, für Tabellen mit Bild-URLs.",
674
1043
  "emptyTitle": "Noch keine Bilder",
675
- "emptyBody": "Referenzbilder erscheinen auf diesem Board."
1044
+ "emptyBody": "Referenzbilder erscheinen auf diesem Board.",
1045
+ "placeholder": "Drop reference"
676
1046
  },
677
1047
  "linkList": {
678
1048
  "description": "Referenzlinks mit Titeln und URLs, die in einem neuen Tab geöffnet werden.",
@@ -712,13 +1082,17 @@ export default {
712
1082
  "done": "Fertig",
713
1083
  "successTitle": "Datensatz angelegt",
714
1084
  "successBody": "Der Datensatz wurde gespeichert.",
715
- "required": "Dieses Feld ist erforderlich."
1085
+ "required": "Dieses Feld ist erforderlich.",
1086
+ "titleLabel": "Create record",
1087
+ "closeLabel": "Close"
716
1088
  },
717
1089
  "drawerForm": {
718
1090
  "description": "Ein seitliches Formular zum Anlegen oder Bearbeiten von Datensätzen mit vielen Feldern.",
719
1091
  "trigger": "Neu",
720
1092
  "submit": "Speichern",
721
- "cancel": "Abbrechen"
1093
+ "cancel": "Abbrechen",
1094
+ "titleLabel": "New record",
1095
+ "closeLabel": "Close"
722
1096
  },
723
1097
  "stepper": {
724
1098
  "description": "Eine Fortschrittsanzeige, die den Stand eines mehrstufigen Ablaufs zeigt.",
@@ -768,7 +1142,23 @@ export default {
768
1142
  "operator": "Operator",
769
1143
  "value": "Wert",
770
1144
  "valuePlaceholder": "Wert…",
771
- "emptyBody": "Noch keine Bedingungen — fügen Sie eine hinzu, um dieses Segment zu definieren."
1145
+ "emptyBody": "Noch keine Bedingungen — fügen Sie eine hinzu, um dieses Segment zu definieren.",
1146
+ "op": {
1147
+ "eq": "is",
1148
+ "neq": "is not",
1149
+ "gt": "is greater than",
1150
+ "gte": "is at least",
1151
+ "lt": "is less than",
1152
+ "lte": "is at most",
1153
+ "contains": "contains",
1154
+ "not-contains": "does not contain",
1155
+ "starts-with": "starts with",
1156
+ "in": "is one of",
1157
+ "before": "is before",
1158
+ "after": "is after",
1159
+ "is-null": "is empty",
1160
+ "is-not-null": "is not empty"
1161
+ }
772
1162
  },
773
1163
  "flowBuilder": {
774
1164
  "description": "Eine vertikale Workflow-Fläche aus Auslöser-, Bedingungs- und Aktionsschritten.",
@@ -833,14 +1223,27 @@ export default {
833
1223
  "required": "Pflichtfeld",
834
1224
  "questionPlaceholder": "Stellen Sie eine Frage…",
835
1225
  "emptyTitle": "Noch keine Fragen",
836
- "emptyBody": "Wählen Sie einen Fragetyp, um Ihre Umfrage zu erstellen."
1226
+ "emptyBody": "Wählen Sie einen Fragetyp, um Ihre Umfrage zu erstellen.",
1227
+ "questionLabel": "Question",
1228
+ "dropdownPlaceholder": "Choose…",
1229
+ "kind": {
1230
+ "single-choice": "Single choice",
1231
+ "multi-choice": "Multiple choice",
1232
+ "dropdown": "Dropdown",
1233
+ "short-text": "Short text",
1234
+ "long-text": "Long text",
1235
+ "rating": "Star rating",
1236
+ "nps": "NPS 0–10",
1237
+ "date": "Date"
1238
+ }
837
1239
  },
838
1240
  "inlineEditableField": {
839
1241
  "description": "Ein per Klick bearbeitbarer Wert in einem Dokument oder auf einer Fläche.",
840
1242
  "edit": "Bearbeiten",
841
1243
  "save": "Speichern",
842
1244
  "cancel": "Abbrechen",
843
- "empty": "Leer"
1245
+ "empty": "Leer",
1246
+ "valueLabel": "Value"
844
1247
  },
845
1248
  "passwordStrengthMeter": {
846
1249
  "description": "Eine vierstufige Anzeige der Passwortstärke.",
@@ -865,7 +1268,7 @@ export default {
865
1268
  "navigate": "Navigieren",
866
1269
  "select": "Öffnen",
867
1270
  "close": "Schließen",
868
- "emptyTitle": "Keine Treffer",
1271
+ "emptyTitle": "No results for \"{query}\"",
869
1272
  "emptyBody": "Zum Suchen tippen.",
870
1273
  "groupActions": "Aktionen",
871
1274
  "groupNavigate": "Navigieren",
@@ -881,7 +1284,9 @@ export default {
881
1284
  "all": "Alle",
882
1285
  "summary": "{count} Treffer für „{query}“",
883
1286
  "emptyTitle": "Keine Treffer",
884
- "emptyBody": "Versuchen Sie einen anderen Suchbegriff."
1287
+ "emptyBody": "Versuchen Sie einen anderen Suchbegriff.",
1288
+ "searchLabel": "Search",
1289
+ "facetRailLabel": "Filter by type"
885
1290
  },
886
1291
  "breadcrumb": {
887
1292
  "description": "Der Pfad zum aktuellen Datensatz oder Ordner.",
@@ -900,11 +1305,23 @@ export default {
900
1305
  "description": "Die Übersicht der Tastenkürzel.",
901
1306
  "footerHint": "Jederzeit ? drücken",
902
1307
  "then": "dann",
903
- "emptyTitle": "Keine Tastenkürzel registriert."
1308
+ "emptyTitle": "Keine Tastenkürzel registriert.",
1309
+ "generalGroupLabel": "General",
1310
+ "navigationGroupLabel": "Navigation",
1311
+ "recordsGroupLabel": "Records",
1312
+ "openCommandPaletteLabel": "Open command palette",
1313
+ "searchLabel": "Search",
1314
+ "showShortcutsLabel": "Show shortcuts",
1315
+ "goToDashboardLabel": "Go to dashboard",
1316
+ "goToOrdersLabel": "Go to orders",
1317
+ "newRecordLabel": "New record",
1318
+ "saveLabel": "Save",
1319
+ "undoLabel": "Undo"
904
1320
  },
905
1321
  "avatarStack": {
906
1322
  "description": "Überlappende Avatare mit „+N“-Überlauf und optionaler Präsenz.",
907
- "online": "{count} online"
1323
+ "online": "{count} online",
1324
+ "a11yLabel": "People"
908
1325
  }
909
1326
  },
910
1327
  "system": {
@@ -977,6 +1394,12 @@ export default {
977
1394
  "tls": "TLS",
978
1395
  "auth": "Authentifizierung",
979
1396
  "latency": "Latenz"
1397
+ },
1398
+ "widgetMissing": {
1399
+ "description": "The fallback card shown when a stored page references a widget that is not installed.",
1400
+ "title": "Widget unavailable",
1401
+ "bodyLead": "No widget is registered as",
1402
+ "bodyTail": "It may belong to a newer version or an uninstalled extension."
980
1403
  }
981
1404
  }
982
1405
  },
@@ -989,6 +1412,351 @@ export default {
989
1412
  "resized": "Größe von {title} auf {w} Spalten mal {h} Zeilen geändert.",
990
1413
  "committed": "{title} in Spalte {col}, Zeile {row} platziert.",
991
1414
  "reverted": "{title} an die ursprüngliche Position zurückgesetzt."
1415
+ },
1416
+ "draggableRole": "draggable widget"
1417
+ },
1418
+ "templates": {
1419
+ "crud": {
1420
+ "newRow": "New row",
1421
+ "exportAction": "Export",
1422
+ "searchPlaceholder": "Search {table}…",
1423
+ "removeFilter": "Remove {column} filter",
1424
+ "queryFailed": "Query failed",
1425
+ "loadingRows": "Loading rows",
1426
+ "noMatchesTitle": "No matching rows",
1427
+ "emptyTitle": "{count, plural, one {No {entity} yet} other {No {entity}s yet}}",
1428
+ "createTitle": "Add {entity}",
1429
+ "createSubtitle": "Creates one row in {table}.",
1430
+ "createSubmit": "Add {entity}",
1431
+ "createSuccessTitle": "{name} added",
1432
+ "createSuccessBody": "You can undo this from the toast.",
1433
+ "editTitle": "Edit {entity}",
1434
+ "saveSubmit": "Save changes",
1435
+ "deleteTitle": "Delete {entity}",
1436
+ "deletePreflight": "Checking references…",
1437
+ "deleteNoReferences": "This row has no inbound references.",
1438
+ "deleteConsequencesIntro": "Deleting this row also affects:",
1439
+ "referenceRows": "{count, plural, one {{n} row} other {{n} rows}}",
1440
+ "confirmPrompt": "Type {value} to confirm",
1441
+ "bulkDeleteTitle": "{count, plural, one {Delete {n} row} other {Delete {n} rows}}",
1442
+ "bulkDeleteBody": "Referential consequences apply to every selected row.",
1443
+ "bulkDeleteConfirm": "Delete rows",
1444
+ "uniqueHelper": "Must be unique in {table}.",
1445
+ "uniqueHelperCounted": "{count, plural, one {Checked against {n} row.} other {Checked against {n} rows.}}",
1446
+ "toast": {
1447
+ "created": "{entity} created.",
1448
+ "createFailed": "Create failed.",
1449
+ "saved": "Changes saved.",
1450
+ "updateFailed": "Update failed.",
1451
+ "deleted": "{name} deleted.",
1452
+ "deleteFailed": "Delete failed.",
1453
+ "bulkDeleted": "{count, plural, one {{n} row deleted.} other {{n} rows deleted.}}",
1454
+ "bulkDeleteFailed": "Bulk delete failed.",
1455
+ "undone": "Change undone.",
1456
+ "undoFailed": "Undo failed."
1457
+ },
1458
+ "detail": {
1459
+ "fields": "Fields",
1460
+ "inboundReferences": "inbound references",
1461
+ "relatedCount": "{count, plural, one {{n} related record in {table}} other {{n} related records in {table}}}",
1462
+ "loadError": "Failed to load the record."
1463
+ }
1464
+ },
1465
+ "queue": {
1466
+ "allSegment": "All",
1467
+ "daysUnit": "{count, plural, one {{count} day} other {{count} days}}",
1468
+ "approvedToast": "{count} approved.",
1469
+ "rejectedToast": "{count} rejected.",
1470
+ "undoneToast": "Decision undone.",
1471
+ "undoFailedToast": "Could not undo this decision.",
1472
+ "failedToast": "Decision failed.",
1473
+ "invalidConfig": "This queue’s stored configuration is invalid. Regenerate the page to restore it.",
1474
+ "queueLabel": "Queue",
1475
+ "statusFilterLabel": "Status filter",
1476
+ "errorTitle": "This queue failed to load",
1477
+ "loading": "Loading queue",
1478
+ "emptyTitle": "Nothing in the queue",
1479
+ "emptyBody": "New requests appear here as they arrive.",
1480
+ "caughtUpTitle": "You're all caught up",
1481
+ "caughtUpBody": "No requests in this tab right now.",
1482
+ "selectItem": "Select {title}",
1483
+ "selectPrompt": "Select a request",
1484
+ "selectBody": "Choose an item to review its details.",
1485
+ "rejectTitle": "Reject requests",
1486
+ "rejectCount": "Selected · {count}",
1487
+ "rejectPlaceholder": "Add a note for the requester…",
1488
+ "rejectReasonLabel": "Rejection reason",
1489
+ "rejectNote": "The requester will be notified with your note."
1490
+ },
1491
+ "dashboard": {
1492
+ "invalidLayout": "This dashboard’s stored layout is invalid. Regenerate the page or reset its layout."
1493
+ },
1494
+ "builder": {
1495
+ "publish": "Publish",
1496
+ "paletteTitle": "Blocks",
1497
+ "inspectorTitle": "Inspector",
1498
+ "startFromTemplate": "Start from a template",
1499
+ "untitledDoc": "Untitled document",
1500
+ "invalidConfig": "This builder page’s stored config is invalid. Regenerate the page or reset it.",
1501
+ "starterPicker": {
1502
+ "subtitle": "Selection replaces the current draft."
1503
+ },
1504
+ "inspector": {
1505
+ "titleLabel": "Title",
1506
+ "numberLabel": "Number",
1507
+ "currencyLabel": "Currency",
1508
+ "taxRateLabel": "Tax rate %",
1509
+ "modulesLabel": "Modules"
1510
+ },
1511
+ "summary": {
1512
+ "questions": "Questions",
1513
+ "estLength": "Est. length",
1514
+ "estMinutes": "~{minutes} min",
1515
+ "steps": "Steps",
1516
+ "triggers": "Triggers",
1517
+ "conditions": "Conditions",
1518
+ "actions": "Actions",
1519
+ "triggerLocked": "The trigger step can’t be removed."
1520
+ },
1521
+ "publishModal": {
1522
+ "confirmTitle": "Publish survey?",
1523
+ "confirmSubtitle": "Review before it goes live.",
1524
+ "confirmCta": "Publish survey",
1525
+ "publishedTitle": "Survey published",
1526
+ "publishedSubtitle": "Your survey is live and collecting responses right now."
1527
+ },
1528
+ "blocks": {
1529
+ "block-totals-summary": "Totals summary",
1530
+ "block-line-items": "Line items",
1531
+ "block-kpi-row": "KPI row",
1532
+ "block-bar-chart": "Bar chart",
1533
+ "block-line-chart": "Line chart",
1534
+ "block-two-col-table": "Two-column table",
1535
+ "block-tax-breakdown": "Tax breakdown",
1536
+ "block-multi-currency": "Multi-currency",
1537
+ "block-payment-history": "Payment history",
1538
+ "block-discount-codes": "Discount codes",
1539
+ "block-loyalty-banner": "Loyalty points",
1540
+ "block-recurring-banner": "Recurring",
1541
+ "block-qr-pay": "Payment QR",
1542
+ "block-delivery-stepper": "Delivery timeline",
1543
+ "block-signature": "Signature",
1544
+ "block-terms-checkbox": "Terms",
1545
+ "block-approval": "Approval",
1546
+ "block-attachments": "Attachments",
1547
+ "block-late-fees": "Late fees",
1548
+ "block-image-placeholder": "Image",
1549
+ "block-contact": "Contact",
1550
+ "block-highlight-box": "Highlight box"
1551
+ },
1552
+ "starters": {
1553
+ "titles": {
1554
+ "st-standard": "Standard invoice",
1555
+ "st-recurring": "Recurring subscription",
1556
+ "st-deposit": "Deposit request",
1557
+ "st-credit-note": "Credit note",
1558
+ "st-late-reminder": "Late-payment reminder",
1559
+ "st-quote": "Quote / estimate",
1560
+ "st-proforma": "Pro forma",
1561
+ "st-receipt": "Payment receipt",
1562
+ "st-retainer": "Retainer",
1563
+ "st-usage": "Usage-based invoice",
1564
+ "st-milestone": "Project milestone",
1565
+ "st-donation": "Donation receipt (Tax ID)",
1566
+ "st-monthly": "Monthly summary",
1567
+ "st-quarterly": "Quarterly review",
1568
+ "st-usage-report": "Usage breakdown",
1569
+ "st-exec": "Executive one-pager",
1570
+ "st-welcome": "Welcome email",
1571
+ "st-receipt-email": "Invoice receipt",
1572
+ "st-digest": "Weekly digest",
1573
+ "st-dunning": "Payment reminder"
1574
+ },
1575
+ "categories": {
1576
+ "billing": "Billing",
1577
+ "sales": "Sales",
1578
+ "nonProfit": "Non-profit",
1579
+ "reports": "Reports",
1580
+ "lifecycle": "Lifecycle",
1581
+ "transactional": "Transactional",
1582
+ "marketing": "Marketing"
1583
+ }
1584
+ }
1585
+ },
1586
+ "common": {
1587
+ "clearFilters": "Clear filters",
1588
+ "noMatchesBody": "Try a different search or remove a filter.",
1589
+ "detailLabel": "Detail",
1590
+ "loadingRecord": "Loading record"
1591
+ },
1592
+ "directory": {
1593
+ "invalidConfig": "This directory’s stored configuration is invalid. Regenerate the page to restore it.",
1594
+ "searchPlaceholder": "Search people…",
1595
+ "memberCount": "{count, plural, one {{n} person} other {{n} people}}",
1596
+ "errorTitle": "This directory failed to load",
1597
+ "loading": "Loading people",
1598
+ "emptyTitle": "No people yet",
1599
+ "emptyBody": "People appear here as rows land in the table.",
1600
+ "noMatchesTitle": "No matching people",
1601
+ "detailTitle": "Person"
1602
+ },
1603
+ "masterDetail": {
1604
+ "invalidConfig": "This page’s stored configuration is invalid. Regenerate the page to restore it.",
1605
+ "railTitle": "Records",
1606
+ "errorTitle": "This list failed to load",
1607
+ "loading": "Loading records",
1608
+ "emptyBody": "Records appear here as rows land in the table.",
1609
+ "noMatchesTitle": "No matching records",
1610
+ "noMatchesBody": "Try removing a filter.",
1611
+ "selectPrompt": "Select a record",
1612
+ "selectBody": "Choose an item from the list to see its details."
1613
+ },
1614
+ "chat": {
1615
+ "invalidLayout": "This chat page’s stored layout is invalid. Regenerate the page or reset its layout.",
1616
+ "noInboxTitle": "No inbox on this page",
1617
+ "noInboxBody": "Regenerate the page.",
1618
+ "conversationsFailed": "The conversation query failed",
1619
+ "messagesFailed": "The messages query failed",
1620
+ "loadingConversations": "Loading conversations",
1621
+ "loadingMessages": "Loading messages",
1622
+ "selectTitle": "Select a conversation",
1623
+ "selectBody": "Pick a conversation from the inbox to read its messages."
1624
+ },
1625
+ "files": {
1626
+ "allFiles": "All files",
1627
+ "recent": "Recent",
1628
+ "starred": "Starred",
1629
+ "invalidLayout": "This files page’s stored layout is invalid. Regenerate the page or reset its layout.",
1630
+ "missingSlotTitle": "No file browser on this page",
1631
+ "missingSlotBody": "The stored layout has no browser slot. Regenerate the page.",
1632
+ "loadFailed": "The file query failed",
1633
+ "loading": "Loading files",
1634
+ "uploadsUnavailable": "Uploads are not available on this page yet.",
1635
+ "previewTitle": "File",
1636
+ "kindLabel": "Kind",
1637
+ "linkLabel": "Link"
1638
+ },
1639
+ "logViewer": {
1640
+ "invalidLayout": "This log page’s stored layout is invalid. Regenerate the page or reset its layout.",
1641
+ "levelFilterLabel": "Log level filter",
1642
+ "timeFilterLabel": "Time window filter",
1643
+ "window": {
1644
+ "1h": "1h",
1645
+ "24h": "24h",
1646
+ "7d": "7d"
1647
+ },
1648
+ "heldCount": "+{count}",
1649
+ "missingSlotTitle": "No log widget on this page",
1650
+ "missingSlotBody": "The stored layout has no log slot. Regenerate the page.",
1651
+ "loadFailed": "The log query failed",
1652
+ "loading": "Loading log entries",
1653
+ "traceTitle": "Trace",
1654
+ "latestTitle": "Latest activity",
1655
+ "backToLatest": "Back to latest",
1656
+ "eventFallback": "Event"
1657
+ },
1658
+ "calendar": {
1659
+ "eventCount": "{count, plural, one {{n} event} other {{n} events}}",
1660
+ "composePlaceholder": "Event title…",
1661
+ "addEvent": "Add event",
1662
+ "dateRange": "Date range",
1663
+ "agendaTitle": "Agenda",
1664
+ "categoriesTitle": "Categories",
1665
+ "upcomingTitle": "Upcoming",
1666
+ "invalidLayout": "This calendar’s stored layout is invalid. Regenerate the page or reset its layout."
1667
+ },
1668
+ "scheduler": {
1669
+ "previousWeek": "Previous week",
1670
+ "nextWeek": "Next week",
1671
+ "week": "Week",
1672
+ "month": "Month",
1673
+ "invalidLayout": "This schedule’s stored layout is invalid. Regenerate the page or reset its layout.",
1674
+ "shiftCount": "{count, plural, one {{n} shift} other {{n} shifts}}",
1675
+ "addShift": "Add shift"
1676
+ },
1677
+ "settings": {
1678
+ "title": "Notification settings",
1679
+ "subtitle": "Choose what you're notified about and how",
1680
+ "matrixLabel": "Notify me about",
1681
+ "rowHeader": "Event",
1682
+ "saved": "Saved",
1683
+ "unavailableTag": "Not available yet",
1684
+ "loading": "Loading preferences",
1685
+ "errorTitle": "These settings failed to load",
1686
+ "emptyTitle": "Nothing to configure yet",
1687
+ "emptyBody": "Notification events appear here as producers ship."
1688
+ },
1689
+ "pageCrud": {
1690
+ "description": "The canonical table page: searchable data grid, create/edit forms, safe deletes with reference checks, and undoable changes."
1691
+ },
1692
+ "pageDashboard": {
1693
+ "description": "A widget dashboard over your data: KPI cards, charts, and lists on an editable grid."
1694
+ },
1695
+ "pageBoard": {
1696
+ "description": "A kanban board grouped by a status field — drag cards between columns to update records."
1697
+ },
1698
+ "pageCalendar": {
1699
+ "description": "A month calendar with agenda, category filters, and quick event capture from a date field."
1700
+ },
1701
+ "pageScheduler": {
1702
+ "description": "A week-by-resource shift matrix with capacity tracking and coverage totals."
1703
+ },
1704
+ "pageDirectory": {
1705
+ "description": "A people directory with search, group filters, and a profile drawer."
1706
+ },
1707
+ "pageMasterDetail": {
1708
+ "description": "A list-beside-detail layout: pick a record on the left, work with it on the right."
1709
+ },
1710
+ "pageQueueInbox": {
1711
+ "description": "A review queue with approve/reject decisions, bulk actions, and undo."
1712
+ },
1713
+ "pageLogViewer": {
1714
+ "description": "A live-tailing log table with level and time filters and a trace side panel."
1715
+ },
1716
+ "pageFiles": {
1717
+ "description": "A file browser with smart folders, uploads, and a preview drawer."
1718
+ },
1719
+ "pageChat": {
1720
+ "description": "A conversation inbox beside a message thread, bound to your messages tables."
1721
+ },
1722
+ "pageBuilder": {
1723
+ "description": "A drag-and-drop document builder with block palette, inspector, and publish flow."
1724
+ },
1725
+ "pageWizard": {
1726
+ "description": "A multi-step guided flow that walks users through a structured process."
1727
+ },
1728
+ "pageSettings": {
1729
+ "description": "A notification-preferences matrix with per-channel toggles and autosave."
1730
+ }
1731
+ },
1732
+ "frame": {
1733
+ "noResult": "No result for widget",
1734
+ "emptyTitle": "No data for range",
1735
+ "loadError": "Something went wrong loading this widget.",
1736
+ "renderError": "This widget failed to render.",
1737
+ "refreshing": "Refreshing",
1738
+ "infoLabel": "Widget info",
1739
+ "menuLabel": "Widget menu"
1740
+ },
1741
+ "charts": {
1742
+ "livePillLabel": "Live",
1743
+ "forecast": {
1744
+ "nowLabel": "Now",
1745
+ "forecastLabel": "Forecast",
1746
+ "actualLabel": "Actual"
1747
+ },
1748
+ "otherLabel": "Other",
1749
+ "heat": {
1750
+ "lessLabel": "Less",
1751
+ "moreLabel": "More"
1752
+ },
1753
+ "choropleth": {
1754
+ "lowLabel": "Low",
1755
+ "highLabel": "High"
1756
+ },
1757
+ "funnel": {
1758
+ "stepConversion": "{pct}% continue",
1759
+ "overallConversion": "{pct}% overall"
992
1760
  }
993
1761
  }
994
1762
  };