@nice2dev/i18n 1.0.28 → 1.0.30

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.
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { jsx as O } from "react/jsx-runtime";
2
- import { useMemo as b, useContext as B, createContext as I, useEffect as L, useState as T, useCallback as ee } from "react";
3
- const x = [
2
+ import { useMemo as f, useContext as B, createContext as I, useEffect as L, useState as x, useCallback as ee } from "react";
3
+ const T = [
4
4
  "en",
5
5
  "pl",
6
6
  "de",
@@ -41,6 +41,11 @@ const x = [
41
41
  "ms"
42
42
  // Malay
43
43
  ], ke = {
44
+ "signature.placeholder": "Sign here",
45
+ "controls.now": "Now",
46
+ "controls.clear": "Clear",
47
+ "controls.today": "Today",
48
+ "controls.confirm": "Confirm",
44
49
  "tutorial.viewEditor.intro.title": "View editor",
45
50
  "tutorial.viewEditor.intro.content": "Author any view kind from one place: choose the kind (or scaffold from an entity), drag controls from the palette into the grid cells, then configure each cell — data binding, role permissions and event actions. Switch Design / Preview / Source, and Save when valid.",
46
51
  // ── Global / Generic ──
@@ -169,9 +174,317 @@ const x = [
169
174
  "tutorial.manifestEditor.intro.title": "Manifest editor",
170
175
  "tutorial.manifestEditor.intro.content": "Edit the manifest in schema-driven sections. Toggle Form ⇄ JSON per section; validation appears in the status bar.",
171
176
  "tutorial.schemaForm.intro.title": "Schema form",
177
+ "workflowDesigner.name": "Name",
178
+ "workflowDesigner.type": "Type",
179
+ "workflowDesigner.select": "— Select —",
180
+ "workflowDesigner.simulate": "Simulate",
181
+ "workflowDesigner.stop": "Stop",
182
+ "workflowDesigner.test": "Test",
183
+ "workflowDesigner.publish": "Publish",
184
+ "workflowDesigner.export": "Export",
185
+ "workflowDesigner.import": "Import",
186
+ "workflowDesigner.zoomIn": "Zoom in",
187
+ "workflowDesigner.zoomOut": "Zoom out",
188
+ "workflowDesigner.resetView": "Reset view",
189
+ "workflowDesigner.simulateFlow": "Simulate flow",
190
+ "workflowDesigner.testProcess": "Test process",
191
+ "workflowDesigner.publishProcess": "Publish process",
192
+ "workflowDesigner.exportBpmn": "Export BPMN XML",
193
+ "workflowDesigner.importBpmn": "Import BPMN XML",
194
+ "workflowDesigner.toolbar": "Workflow toolbar",
195
+ "workflowDesigner.bpmnToolbar": "BPMN designer toolbar",
196
+ "workflowDesigner.palette": "BPMN element palette",
197
+ "workflowDesigner.canvas": "Workflow canvas",
198
+ "workflowDesigner.bpmnCanvas": "BPMN canvas",
199
+ "workflowDesigner.minimap": "Minimap",
200
+ "workflowDesigner.expand": "Expand",
201
+ "workflowDesigner.collapse": "Collapse",
202
+ "workflowDesigner.connect": "Connect",
203
+ "workflowDesigner.startConnect": "Start connection",
204
+ "workflowDesigner.delete": "Delete",
205
+ "workflowDesigner.deleteElement": "Delete element",
206
+ "workflowDesigner.next": "Next",
207
+ "workflowDesigner.connectHint": "Click a target element to connect, or click empty space to cancel",
208
+ "workflowDesigner.properties": "Properties",
209
+ "workflowDesigner.propertiesOf": "Properties: {name}",
210
+ "workflowDesigner.assignee": "Assigned to",
211
+ "workflowDesigner.dueDate": "Due date",
212
+ "workflowDesigner.dueDatePlaceholder": "P3D (3 days)",
213
+ "workflowDesigner.priority": "Priority",
214
+ "workflowDesigner.documentation": "Documentation",
215
+ "workflowDesigner.timer": "Timer (ISO 8601)",
216
+ "workflowDesigner.timerPlaceholder": "PT1H (1 hour) or R3/PT1H (3 repetitions)",
217
+ "workflowDesigner.defaultFlow": "Default flow",
218
+ "workflowDesigner.flowOf": "Flow: {name}",
219
+ "workflowDesigner.condition": "Condition",
220
+ "workflowDesigner.deleteFlow": "Delete flow",
221
+ "workflowDesigner.variables": "Process variables",
222
+ "workflowDesigner.addVariable": "Add variable",
223
+ "workflowDesigner.simActiveElement": "Simulation active — current element:",
224
+ "workflowDesigner.simActiveState": "Simulation active — current state:",
225
+ "workflowDesigner.endSimulation": "End simulation",
226
+ "workflowDesigner.addState": "State",
227
+ "workflowDesigner.addApproval": "Approval",
228
+ "workflowDesigner.newState": "New state",
229
+ "workflowDesigner.stateLabel": "State: {name}",
230
+ "workflowDesigner.stateName": "State name",
231
+ "workflowDesigner.deleteState": "Delete state {name}",
232
+ "workflowDesigner.stateProps": "State properties",
233
+ "workflowDesigner.stateType": "State type",
234
+ "workflowDesigner.val.noInitial": "No initial state",
235
+ "workflowDesigner.val.multiInitial": "More than one initial state",
236
+ "workflowDesigner.val.noFinal": "No final state",
237
+ "workflowDesigner.val.deadEnd": 'State "{name}" has no outgoing transitions (dead-end)',
238
+ "workflowDesigner.val.orphan": 'State "{name}" is unreachable (orphan)',
239
+ "workflowDesigner.val.bpmnNoStart": "Process must have at least one start event",
240
+ "workflowDesigner.val.bpmnNoEnd": "Process must have at least one end event",
241
+ "workflowDesigner.val.startNoOut": 'Start event "{name}" has no outgoing flow',
242
+ "workflowDesigner.val.endNoIn": 'End event "{name}" has no incoming flow',
243
+ "workflowDesigner.val.unreachable": 'Element "{name}" is unreachable',
244
+ "workflowDesigner.val.elemNoOut": 'Element "{name}" has no outgoing flow',
245
+ "workflowDesigner.val.xorNoConditions": 'Exclusive gateway "{name}" should have conditions on its flows',
246
+ "tutorial.workflowDesigner.toolbar.title": "Toolbar",
247
+ "tutorial.workflowDesigner.toolbar.content": "Add states and approvals, run a simulation, then test or publish the workflow.",
248
+ "tutorial.workflowDesigner.canvas.title": "Canvas",
249
+ "tutorial.workflowDesigner.canvas.content": "Drag to arrange states, click one to edit it, and connect them into transitions.",
250
+ "tutorial.workflowDesigner.minimap.title": "Minimap",
251
+ "tutorial.workflowDesigner.minimap.content": "A bird’s-eye overview of the whole flow for quick navigation.",
252
+ "tutorial.themeBuilder.presets.title": "Presets",
253
+ "tutorial.themeBuilder.presets.content": "Start from a built-in preset, then customise — the fastest way to a coherent palette.",
254
+ "tutorial.themeBuilder.sections.title": "Token sections",
255
+ "tutorial.themeBuilder.sections.content": "Edit tokens by section: colors, backgrounds, text, borders, spacing and typography.",
256
+ "tutorial.themeBuilder.preview.title": "Live preview",
257
+ "tutorial.themeBuilder.preview.content": "Every change previews instantly across sample components, so you can judge the theme as you build it.",
258
+ "tutorial.themeBuilder.export.title": "Name, apply & export",
259
+ "tutorial.themeBuilder.export.content": "Name your theme, apply it to the page, or export it as JSON / CSS variables for reuse.",
260
+ "dataSourceBuilder.namePlaceholder": "Data source name…",
261
+ "dataSourceBuilder.nameAria": "Data source name",
262
+ "tutorial.dataSourceBuilder.name.title": "Name & key",
263
+ "tutorial.dataSourceBuilder.name.content": "Give the data source a readable name; its stable key (used by views) is generated automatically and shown next to it.",
264
+ "lifecycleHooks.enabled": "Enabled",
265
+ "lifecycleHooks.handler": "Handler",
266
+ "lifecycleHooks.selectHandler": "— select handler —",
267
+ "lifecycleHooks.handlerPlaceholder": "handler (e.g. scripts/on-create.js)",
268
+ "lifecycleHooks.conditionPlaceholder": "condition (optional)",
269
+ "lifecycleHooks.condition": "Condition",
270
+ "lifecycleHooks.moveUp": "Move up",
271
+ "lifecycleHooks.moveDown": "Move down",
272
+ "lifecycleHooks.removeBinding": "Remove binding",
273
+ "lifecycleHooks.addHandler": "Add handler",
274
+ "tutorial.lifecycleHooks.bindings.title": "Triggers & bindings",
275
+ "tutorial.lifecycleHooks.bindings.content": "Each trigger lists its bound handlers. Add a handler, toggle its enabled flag, reorder it, and optionally set a condition that gates execution.",
276
+ "revisionHistory.revisions": "Revisions",
277
+ "revisionHistory.compare": "Compare",
278
+ "revisionHistory.restore": "Restore",
279
+ "revisionHistory.diffEmpty": "Select a revision and choose another to compare.",
280
+ "tutorial.revisionHistory.list.title": "Revisions",
281
+ "tutorial.revisionHistory.list.content": "Select a revision, then click “Compare” on another to diff the two. “Restore” rolls back to that revision.",
282
+ "tutorial.revisionHistory.diff.title": "Diff",
283
+ "tutorial.revisionHistory.diff.content": "Review the side-by-side differences between the two selected revisions.",
284
+ "accessManager.roles": "Roles",
285
+ "accessManager.newRole": "New role…",
286
+ "accessManager.newRoleAria": "New role name",
287
+ "accessManager.add": "Add",
288
+ "accessManager.removeRole": "Remove role",
289
+ "accessManager.resources": "Resources",
290
+ "accessManager.applyDescendants": "Apply to all descendants",
291
+ "accessManager.empty": "Select a resource to edit its access.",
292
+ "accessManager.collapse": "Collapse",
293
+ "accessManager.expand": "Expand",
294
+ "tutorial.accessManager.tree.title": "Roles & resources",
295
+ "tutorial.accessManager.tree.content": "Add and remove roles, then pick a resource from the tree (modules → views / entities / actions) to edit its access.",
296
+ "tutorial.accessManager.matrix.title": "Permission matrix",
297
+ "tutorial.accessManager.matrix.content": "Grant each role its actions for the selected resource. Use the bulk controls, or “Apply to all descendants” to cascade grants down the tree.",
298
+ "viewEditor.name": "View name",
299
+ "viewEditor.kindAria": "View kind",
300
+ "viewEditor.kind.form": "Form",
301
+ "viewEditor.kind.detail": "Detail",
302
+ "viewEditor.kind.grid": "Grid",
303
+ "viewEditor.kind.dashboard": "Dashboard",
304
+ "viewEditor.kind.content": "Content",
305
+ "viewEditor.kind.report": "Report",
306
+ "viewEditor.kind.print": "Print",
307
+ "viewEditor.kind.mix": "Mix",
308
+ "viewEditor.fromEntity": "New from entity…",
309
+ "viewEditor.fromEntityAria": "New view from entity",
310
+ "viewEditor.export": "Export…",
311
+ "viewEditor.exportAria": "Export view",
312
+ "viewEditor.mode.design": "Design",
313
+ "viewEditor.mode.preview": "Preview",
314
+ "viewEditor.mode.source": "Source",
315
+ "viewEditor.valid": "✓ Valid",
316
+ "viewEditor.save": "Save",
317
+ "viewEditor.add": "Add",
318
+ "viewEditor.cat.Inputs": "Inputs",
319
+ "viewEditor.cat.Data": "Data",
320
+ "viewEditor.cat.BI": "BI",
321
+ "viewEditor.cat.Actions": "Actions",
322
+ "viewEditor.cat.Display": "Display",
323
+ "viewEditor.pal.textInput": "Text",
324
+ "viewEditor.pal.textArea": "Text area",
325
+ "viewEditor.pal.numberInput": "Number",
326
+ "viewEditor.pal.select": "Select",
327
+ "viewEditor.pal.checkbox": "Checkbox",
328
+ "viewEditor.pal.datePicker": "Date",
329
+ "viewEditor.pal.dataGrid": "Data grid",
330
+ "viewEditor.pal.chart": "Chart",
331
+ "viewEditor.pal.kpi": "KPI",
332
+ "viewEditor.pal.button": "Button",
333
+ "viewEditor.pal.text": "Text",
334
+ "viewEditor.pal.heading": "Heading",
335
+ "viewEditor.pal.badge": "Badge",
336
+ "viewEditor.pal.card": "Card",
337
+ "viewEditor.addRow": "Add row",
338
+ "viewEditor.canvasEmpty": "Add a row, then drop controls from the palette — or start “New from entity”.",
339
+ "viewEditor.removeCell": "Remove cell",
340
+ "viewEditor.emptyRow": "empty row",
341
+ "viewEditor.control": "Control",
342
+ "viewEditor.cp.label": "Label",
343
+ "viewEditor.cp.colSpan": "Column span",
344
+ "viewEditor.cp.binding": "Binding",
345
+ "viewEditor.cp.dataSource": "Data source",
346
+ "viewEditor.cp.none": "— none —",
347
+ "viewEditor.cp.field": "Field",
348
+ "viewEditor.cp.fieldPath": "field path",
349
+ "viewEditor.cp.twoWay": "Two-way",
350
+ "viewEditor.cp.permissions": "Permissions",
351
+ "viewEditor.cp.role": "role",
352
+ "viewEditor.cp.addPermission": "Permission",
353
+ "viewEditor.cp.events": "Events",
354
+ "viewEditor.cp.eventPlaceholder": "event (onClick / onValueChange…)",
355
+ "viewEditor.cp.removeEvent": "Remove event",
356
+ "viewEditor.cp.addEvent": "Event",
357
+ "viewEditor.remove": "Remove",
358
+ "viewEditor.ds.title": "Data sources",
359
+ "viewEditor.ds.hint": "Select a control to edit its props, binding & events.",
360
+ "viewEditor.ds.key": "key",
361
+ "viewEditor.ds.endpoint": "endpoint",
362
+ "viewEditor.ds.autoLoad": "auto-load",
363
+ "viewEditor.ds.add": "Data source",
364
+ "tutorial.viewEditor.palette.title": "Palette",
365
+ "tutorial.viewEditor.palette.content": "Add controls from the palette into the grid — inputs, data grids, charts, KPIs, buttons and display blocks.",
366
+ "tutorial.viewEditor.canvas.title": "Canvas",
367
+ "tutorial.viewEditor.canvas.content": "Arrange cells into rows and set each cell’s column span. Click a cell to configure it.",
368
+ "tutorial.viewEditor.props.title": "Properties",
369
+ "tutorial.viewEditor.props.content": "Configure the selected control: props, data binding, role permissions and event actions. With nothing selected, manage the view’s data sources.",
370
+ "tutorial.viewEditor.modes.title": "Design / Preview / Source",
371
+ "tutorial.viewEditor.modes.content": "Switch between the visual designer, a live preview, and the raw NiceViewDefinition JSON. Save when the view is valid.",
372
+ "manifestEditor.tab.scripts": "Scripts",
373
+ "manifestEditor.tab.lifecycle": "Lifecycle",
374
+ "manifestEditor.tab.history": "History",
375
+ "manifestEditor.status.valid": "✓ Valid",
376
+ "manifestEditor.status.issues": "issues",
377
+ "manifestEditor.sections": "sections",
378
+ "manifestEditor.output": "Output",
379
+ "tutorial.manifestEditor.sections.title": "Sections",
380
+ "tutorial.manifestEditor.sections.content": "The manifest is split into schema-driven sections — switch between them using the tabs at the top.",
381
+ "tutorial.manifestEditor.json.title": "Form ⇄ JSON",
382
+ "tutorial.manifestEditor.json.content": "Each section can be edited as a visual form or as raw JSON — use the toggle inside the section.",
383
+ "i18nEditor.keyHead": "Key",
384
+ "i18nEditor.removeLocale": "Remove locale",
385
+ "i18nEditor.keyAria": "Translation key",
386
+ "i18nEditor.removeKey": "Remove key",
387
+ "i18nEditor.empty": "No translation keys yet.",
388
+ "i18nEditor.newKeyPlaceholder": "new.key",
389
+ "i18nEditor.newKeyAria": "New key",
390
+ "i18nEditor.addKey": "Key",
391
+ "i18nEditor.newLocalePlaceholder": "locale (e.g. de)",
392
+ "i18nEditor.newLocaleAria": "New locale",
393
+ "i18nEditor.addLocale": "Locale",
394
+ "tutorial.i18nEditor.grid.title": "Keys × locales",
395
+ "tutorial.i18nEditor.grid.content": "Each row is a translation key and each column a locale. Edit a cell to set a translation; amber cells are still missing.",
396
+ "tutorial.i18nEditor.add.title": "Add keys & locales",
397
+ "tutorial.i18nEditor.add.content": "Add a new translation key or a new locale column here; new cells start empty and are flagged as missing.",
398
+ "moduleEditor.tab.entities": "Entities",
399
+ "moduleEditor.tab.i18n": "i18n",
400
+ "moduleEditor.tab.views": "Views",
401
+ "moduleEditor.tab.workflows": "Workflows",
402
+ "moduleEditor.tab.data": "Data",
403
+ "moduleEditor.tab.permissions": "Permissions",
404
+ "moduleEditor.tab.scripts": "Scripts",
405
+ "moduleEditor.tab.lifecycle": "Lifecycle",
406
+ "moduleEditor.tab.history": "History",
407
+ "moduleEditor.tab.source": "Source",
408
+ "moduleEditor.status.valid": "✓ Valid",
409
+ "moduleEditor.status.issues": "issues",
410
+ "moduleEditor.searchModules": "Search modules…",
411
+ "moduleEditor.loading": "Loading…",
412
+ "moduleEditor.noModules": "No modules. Open a source first.",
413
+ "moduleEditor.title": "Module Editor",
414
+ "moduleEditor.refresh": "Refresh",
415
+ "moduleEditor.validate": "Validate",
416
+ "moduleEditor.saving": "Saving…",
417
+ "moduleEditor.save": "Save",
418
+ "moduleEditor.output": "Output",
419
+ "moduleEditor.placeholder": "Select a module from the left to start editing.",
420
+ "moduleEditor.delete": "Delete",
421
+ "moduleEditor.views.select": "Select view",
422
+ "moduleEditor.views.placeholder": "— select view —",
423
+ "moduleEditor.views.new": "New view",
424
+ "moduleEditor.views.empty": "No view selected. Create one, then use “New from entity” inside the editor.",
425
+ "moduleEditor.workflows.select": "Select workflow",
426
+ "moduleEditor.workflows.placeholder": "— select workflow —",
427
+ "moduleEditor.workflows.new": "New workflow",
428
+ "moduleEditor.workflows.empty": "No workflow selected. Create one to start designing states and transitions.",
429
+ "moduleEditor.data.select": "Select data source",
430
+ "moduleEditor.data.placeholder": "— select data source —",
431
+ "moduleEditor.data.new": "New data source",
432
+ "moduleEditor.data.empty": "No data source selected. Create one to build a query from your module’s schema.",
433
+ "tutorial.moduleEditor.intro.title": "Module editor",
434
+ "tutorial.moduleEditor.intro.content": "Design a whole module end-to-end — manifest, entities, translations, views, workflows, data sources and permissions — then validate and save.",
435
+ "tutorial.moduleEditor.tabs.title": "Module parts",
436
+ "tutorial.moduleEditor.tabs.content": "Each tab edits one part of the module: Manifest sections, Entities, i18n, Views, Workflows, Data sources, Permissions and more.",
437
+ "tutorial.moduleEditor.output.title": "Output",
438
+ "tutorial.moduleEditor.output.content": "Validation results and load/save activity are logged here.",
439
+ "tutorial.schemaForm.viewToggle.title": "Form ⇄ JSON",
440
+ "tutorial.schemaForm.viewToggle.content": "Switch between the visual form and the raw JSON value — handy for power users and copy/paste.",
441
+ "tutorial.schemaForm.validation.title": "Live validation",
442
+ "tutorial.schemaForm.validation.content": "Values are validated against the schema as you type; any problems are listed below the form.",
443
+ "schemaForm.tab.form": "Form",
444
+ "schemaForm.tab.json": "JSON",
445
+ "schemaForm.tab.json.help": "Edit the raw JSON value directly",
446
+ "schemaForm.invalidJson": "Invalid JSON",
172
447
  "tutorial.schemaForm.intro.content": "This form is generated from a schema. Required fields and validation errors are flagged; use the JSON toggle for raw editing.",
173
448
  "tutorial.entityEditor.intro.title": "Entity editor",
174
449
  "tutorial.entityEditor.intro.content": "Add entities on the left, then edit each entity’s metadata and its fields (type, keys, constraints) on the right.",
450
+ "entityEditor.col.name": "Name",
451
+ "entityEditor.col.displayName": "Display name",
452
+ "entityEditor.col.table": "Table",
453
+ "entityEditor.col.fields": "Fields",
454
+ "entityEditor.col.fields.help": "Number of fields defined on this entity",
455
+ "entityEditor.col.flags": "Flags",
456
+ "entityEditor.flag.audited": "Audited — tracks who changed each record and when",
457
+ "entityEditor.flag.audited.abbr": "Audit",
458
+ "entityEditor.flag.softDelete": "Soft delete — rows are flagged deleted, never physically removed",
459
+ "entityEditor.flag.softDelete.abbr": "Soft-del",
460
+ "entityEditor.search": "Search entities…",
461
+ "entityEditor.empty": "No entities yet. Create one to get started.",
462
+ "entityEditor.new": "New entity",
463
+ "entityEditor.back": "Entities",
464
+ "entityEditor.backHint": "Back to the entity list",
465
+ "entityEditor.delete": "Delete",
466
+ "entityEditor.deleteHint": "Delete this entity",
467
+ "entityEditor.untitled": "Untitled entity",
468
+ "entityEditor.tab.general": "General",
469
+ "entityEditor.tab.fields": "Fields",
470
+ "entityEditor.tab.validation": "Validation",
471
+ "entityEditor.tab.er": "ER diagram",
472
+ "entityEditor.field.name": "Name",
473
+ "entityEditor.field.type": "Type",
474
+ "entityEditor.field.flags": "Constraints",
475
+ "entityEditor.field.flags.help": "Key / required / unique / indexed constraints on this field",
476
+ "entityEditor.flag.pk": "Primary key",
477
+ "entityEditor.flag.fk": "Foreign key",
478
+ "entityEditor.flag.required": "Required (NOT NULL)",
479
+ "entityEditor.flag.unique": "Unique",
480
+ "entityEditor.flag.indexed": "Indexed",
481
+ "entityEditor.field.back": "Fields",
482
+ "entityEditor.field.backHint": "Back to the field list",
483
+ "entityEditor.field.untitled": "New field",
484
+ "entityEditor.field.done": "Done",
485
+ "entityEditor.field.add": "Add field",
486
+ "entityEditor.field.search": "Search fields…",
487
+ "entityEditor.field.empty": "No fields yet. Add one to define this entity.",
175
488
  "tutorial.i18nEditor.intro.title": "Translations",
176
489
  "tutorial.i18nEditor.intro.content": "Edit translations as a keys × locales grid. Add keys and locales; amber cells mark missing translations.",
177
490
  "tutorial.formBuilder.intro.title": "Form builder",
@@ -962,6 +1275,11 @@ const x = [
962
1275
  "vectorEditor.layers.lock": "Lock",
963
1276
  "vectorEditor.layers.unlock": "Unlock"
964
1277
  }, ye = {
1278
+ "signature.placeholder": "Podpisz tutaj",
1279
+ "controls.now": "Teraz",
1280
+ "controls.clear": "Wyczyść",
1281
+ "controls.today": "Dzisiaj",
1282
+ "controls.confirm": "Zatwierdź",
965
1283
  "tutorial.viewEditor.intro.title": "Edytor widoków",
966
1284
  "tutorial.viewEditor.intro.content": "Twórz dowolny rodzaj widoku w jednym miejscu: wybierz rodzaj (lub wygeneruj z encji), przeciągaj kontrolki z palety do komórek siatki, a następnie skonfiguruj każdą komórkę — wiązanie danych, uprawnienia ról i akcje zdarzeń. Przełączaj Projekt / Podgląd / Źródło i zapisz, gdy widok jest poprawny.",
967
1285
  ok: "OK",
@@ -1088,9 +1406,317 @@ const x = [
1088
1406
  "tutorial.manifestEditor.intro.title": "Edytor manifestu",
1089
1407
  "tutorial.manifestEditor.intro.content": "Edytuj manifest w sekcjach opartych na schemacie. Przełączaj Formularz ⇄ JSON w sekcji; walidacja widoczna na pasku statusu.",
1090
1408
  "tutorial.schemaForm.intro.title": "Formularz ze schematu",
1409
+ "workflowDesigner.name": "Nazwa",
1410
+ "workflowDesigner.type": "Typ",
1411
+ "workflowDesigner.select": "— Wybierz —",
1412
+ "workflowDesigner.simulate": "Symuluj",
1413
+ "workflowDesigner.stop": "Stop",
1414
+ "workflowDesigner.test": "Test",
1415
+ "workflowDesigner.publish": "Publikuj",
1416
+ "workflowDesigner.export": "Eksport",
1417
+ "workflowDesigner.import": "Import",
1418
+ "workflowDesigner.zoomIn": "Powiększ",
1419
+ "workflowDesigner.zoomOut": "Pomniejsz",
1420
+ "workflowDesigner.resetView": "Reset widoku",
1421
+ "workflowDesigner.simulateFlow": "Symuluj przepływ",
1422
+ "workflowDesigner.testProcess": "Testuj proces",
1423
+ "workflowDesigner.publishProcess": "Publikuj proces",
1424
+ "workflowDesigner.exportBpmn": "Eksportuj BPMN XML",
1425
+ "workflowDesigner.importBpmn": "Importuj BPMN XML",
1426
+ "workflowDesigner.toolbar": "Narzędzia workflow",
1427
+ "workflowDesigner.bpmnToolbar": "Narzędzia projektanta BPMN",
1428
+ "workflowDesigner.palette": "Paleta elementów BPMN",
1429
+ "workflowDesigner.canvas": "Obszar roboczy workflow",
1430
+ "workflowDesigner.bpmnCanvas": "Obszar roboczy BPMN",
1431
+ "workflowDesigner.minimap": "Minimapa",
1432
+ "workflowDesigner.expand": "Rozwiń",
1433
+ "workflowDesigner.collapse": "Zwiń",
1434
+ "workflowDesigner.connect": "Połącz",
1435
+ "workflowDesigner.startConnect": "Rozpocznij połączenie",
1436
+ "workflowDesigner.delete": "Usuń",
1437
+ "workflowDesigner.deleteElement": "Usuń element",
1438
+ "workflowDesigner.next": "Dalej",
1439
+ "workflowDesigner.connectHint": "Kliknij element docelowy, aby połączyć, lub kliknij pustą przestrzeń, aby anulować",
1440
+ "workflowDesigner.properties": "Właściwości",
1441
+ "workflowDesigner.propertiesOf": "Właściwości: {name}",
1442
+ "workflowDesigner.assignee": "Przypisany do",
1443
+ "workflowDesigner.dueDate": "Termin",
1444
+ "workflowDesigner.dueDatePlaceholder": "P3D (3 dni)",
1445
+ "workflowDesigner.priority": "Priorytet",
1446
+ "workflowDesigner.documentation": "Dokumentacja",
1447
+ "workflowDesigner.timer": "Timer (ISO 8601)",
1448
+ "workflowDesigner.timerPlaceholder": "PT1H (1 godzina) lub R3/PT1H (3 powtórzenia)",
1449
+ "workflowDesigner.defaultFlow": "Domyślny przepływ",
1450
+ "workflowDesigner.flowOf": "Przepływ: {name}",
1451
+ "workflowDesigner.condition": "Warunek",
1452
+ "workflowDesigner.deleteFlow": "Usuń przepływ",
1453
+ "workflowDesigner.variables": "Zmienne procesu",
1454
+ "workflowDesigner.addVariable": "Dodaj zmienną",
1455
+ "workflowDesigner.simActiveElement": "Symulacja aktywna — aktualny element:",
1456
+ "workflowDesigner.simActiveState": "Symulacja aktywna — aktualny stan:",
1457
+ "workflowDesigner.endSimulation": "Zakończ symulację",
1458
+ "workflowDesigner.addState": "Stan",
1459
+ "workflowDesigner.addApproval": "Zatwierdzenie",
1460
+ "workflowDesigner.newState": "Nowy stan",
1461
+ "workflowDesigner.stateLabel": "Stan: {name}",
1462
+ "workflowDesigner.stateName": "Nazwa stanu",
1463
+ "workflowDesigner.deleteState": "Usuń stan {name}",
1464
+ "workflowDesigner.stateProps": "Właściwości stanu",
1465
+ "workflowDesigner.stateType": "Typ stanu",
1466
+ "workflowDesigner.val.noInitial": "Brak stanu początkowego",
1467
+ "workflowDesigner.val.multiInitial": "Więcej niż jeden stan początkowy",
1468
+ "workflowDesigner.val.noFinal": "Brak stanu końcowego",
1469
+ "workflowDesigner.val.deadEnd": 'Stan "{name}" nie ma przejść wyjściowych (ślepy zaułek)',
1470
+ "workflowDesigner.val.orphan": 'Stan "{name}" jest nieosiągalny (sierota)',
1471
+ "workflowDesigner.val.bpmnNoStart": "Proces musi mieć co najmniej jedno zdarzenie początkowe",
1472
+ "workflowDesigner.val.bpmnNoEnd": "Proces musi mieć co najmniej jedno zdarzenie końcowe",
1473
+ "workflowDesigner.val.startNoOut": 'Zdarzenie początkowe "{name}" nie ma przepływu wyjściowego',
1474
+ "workflowDesigner.val.endNoIn": 'Zdarzenie końcowe "{name}" nie ma przepływu wejściowego',
1475
+ "workflowDesigner.val.unreachable": 'Element "{name}" jest nieosiągalny',
1476
+ "workflowDesigner.val.elemNoOut": 'Element "{name}" nie ma przepływu wyjściowego',
1477
+ "workflowDesigner.val.xorNoConditions": 'Bramka wykluczająca "{name}" powinna mieć warunki na przepływach',
1478
+ "tutorial.workflowDesigner.toolbar.title": "Pasek narzędzi",
1479
+ "tutorial.workflowDesigner.toolbar.content": "Dodawaj stany i zatwierdzenia, uruchom symulację, a następnie przetestuj lub opublikuj workflow.",
1480
+ "tutorial.workflowDesigner.canvas.title": "Obszar roboczy",
1481
+ "tutorial.workflowDesigner.canvas.content": "Przeciągaj, aby układać stany, kliknij jeden, aby go edytować, i łącz je w przejścia.",
1482
+ "tutorial.workflowDesigner.minimap.title": "Minimapa",
1483
+ "tutorial.workflowDesigner.minimap.content": "Widok z lotu ptaka całego przepływu dla szybkiej nawigacji.",
1484
+ "tutorial.themeBuilder.presets.title": "Presety",
1485
+ "tutorial.themeBuilder.presets.content": "Zacznij od wbudowanego presetu, a potem dostosuj — najszybsza droga do spójnej palety.",
1486
+ "tutorial.themeBuilder.sections.title": "Sekcje tokenów",
1487
+ "tutorial.themeBuilder.sections.content": "Edytuj tokeny wg sekcji: kolory, tła, tekst, obramowania, odstępy i typografia.",
1488
+ "tutorial.themeBuilder.preview.title": "Podgląd na żywo",
1489
+ "tutorial.themeBuilder.preview.content": "Każda zmiana jest natychmiast podglądana na przykładowych komponentach, więc oceniasz motyw na bieżąco.",
1490
+ "tutorial.themeBuilder.export.title": "Nazwa, zastosuj i eksport",
1491
+ "tutorial.themeBuilder.export.content": "Nazwij motyw, zastosuj go do strony lub wyeksportuj jako JSON / zmienne CSS do ponownego użycia.",
1492
+ "dataSourceBuilder.namePlaceholder": "Nazwa źródła danych…",
1493
+ "dataSourceBuilder.nameAria": "Nazwa źródła danych",
1494
+ "tutorial.dataSourceBuilder.name.title": "Nazwa i klucz",
1495
+ "tutorial.dataSourceBuilder.name.content": "Nadaj źródłu danych czytelną nazwę; jego stały klucz (używany przez widoki) jest generowany automatycznie i pokazany obok.",
1496
+ "lifecycleHooks.enabled": "Włączone",
1497
+ "lifecycleHooks.handler": "Handler",
1498
+ "lifecycleHooks.selectHandler": "— wybierz handler —",
1499
+ "lifecycleHooks.handlerPlaceholder": "handler (np. scripts/on-create.js)",
1500
+ "lifecycleHooks.conditionPlaceholder": "warunek (opcjonalny)",
1501
+ "lifecycleHooks.condition": "Warunek",
1502
+ "lifecycleHooks.moveUp": "Przesuń w górę",
1503
+ "lifecycleHooks.moveDown": "Przesuń w dół",
1504
+ "lifecycleHooks.removeBinding": "Usuń powiązanie",
1505
+ "lifecycleHooks.addHandler": "Dodaj handler",
1506
+ "tutorial.lifecycleHooks.bindings.title": "Wyzwalacze i powiązania",
1507
+ "tutorial.lifecycleHooks.bindings.content": "Każdy wyzwalacz wyświetla powiązane handlery. Dodaj handler, przełącz flagę włączenia, zmień kolejność i opcjonalnie ustaw warunek bramkujący wykonanie.",
1508
+ "revisionHistory.revisions": "Wersje",
1509
+ "revisionHistory.compare": "Porównaj",
1510
+ "revisionHistory.restore": "Przywróć",
1511
+ "revisionHistory.diffEmpty": "Wybierz wersję i wskaż drugą do porównania.",
1512
+ "tutorial.revisionHistory.list.title": "Wersje",
1513
+ "tutorial.revisionHistory.list.content": "Wybierz wersję, a następnie kliknij „Porównaj” przy innej, aby je zestawić. „Przywróć” cofa do tej wersji.",
1514
+ "tutorial.revisionHistory.diff.title": "Różnice",
1515
+ "tutorial.revisionHistory.diff.content": "Przejrzyj różnice obok siebie między dwiema wybranymi wersjami.",
1516
+ "accessManager.roles": "Role",
1517
+ "accessManager.newRole": "Nowa rola…",
1518
+ "accessManager.newRoleAria": "Nazwa nowej roli",
1519
+ "accessManager.add": "Dodaj",
1520
+ "accessManager.removeRole": "Usuń rolę",
1521
+ "accessManager.resources": "Zasoby",
1522
+ "accessManager.applyDescendants": "Zastosuj do wszystkich podrzędnych",
1523
+ "accessManager.empty": "Wybierz zasób, aby edytować jego dostęp.",
1524
+ "accessManager.collapse": "Zwiń",
1525
+ "accessManager.expand": "Rozwiń",
1526
+ "tutorial.accessManager.tree.title": "Role i zasoby",
1527
+ "tutorial.accessManager.tree.content": "Dodawaj i usuwaj role, a następnie wybierz zasób z drzewa (moduły → widoki / encje / akcje), aby edytować jego dostęp.",
1528
+ "tutorial.accessManager.matrix.title": "Macierz uprawnień",
1529
+ "tutorial.accessManager.matrix.content": "Przyznaj każdej roli jej akcje dla wybranego zasobu. Użyj kontrolek zbiorczych lub „Zastosuj do wszystkich podrzędnych”, aby skaskadować uprawnienia w dół drzewa.",
1530
+ "viewEditor.name": "Nazwa widoku",
1531
+ "viewEditor.kindAria": "Rodzaj widoku",
1532
+ "viewEditor.kind.form": "Formularz",
1533
+ "viewEditor.kind.detail": "Szczegóły",
1534
+ "viewEditor.kind.grid": "Siatka",
1535
+ "viewEditor.kind.dashboard": "Pulpit",
1536
+ "viewEditor.kind.content": "Treść",
1537
+ "viewEditor.kind.report": "Raport",
1538
+ "viewEditor.kind.print": "Wydruk",
1539
+ "viewEditor.kind.mix": "Mix",
1540
+ "viewEditor.fromEntity": "Nowy z encji…",
1541
+ "viewEditor.fromEntityAria": "Nowy widok z encji",
1542
+ "viewEditor.export": "Eksport…",
1543
+ "viewEditor.exportAria": "Eksportuj widok",
1544
+ "viewEditor.mode.design": "Projekt",
1545
+ "viewEditor.mode.preview": "Podgląd",
1546
+ "viewEditor.mode.source": "Źródło",
1547
+ "viewEditor.valid": "✓ Poprawny",
1548
+ "viewEditor.save": "Zapisz",
1549
+ "viewEditor.add": "Dodaj",
1550
+ "viewEditor.cat.Inputs": "Pola",
1551
+ "viewEditor.cat.Data": "Dane",
1552
+ "viewEditor.cat.BI": "BI",
1553
+ "viewEditor.cat.Actions": "Akcje",
1554
+ "viewEditor.cat.Display": "Wyświetlanie",
1555
+ "viewEditor.pal.textInput": "Tekst",
1556
+ "viewEditor.pal.textArea": "Pole tekstowe",
1557
+ "viewEditor.pal.numberInput": "Liczba",
1558
+ "viewEditor.pal.select": "Wybór",
1559
+ "viewEditor.pal.checkbox": "Pole wyboru",
1560
+ "viewEditor.pal.datePicker": "Data",
1561
+ "viewEditor.pal.dataGrid": "Siatka danych",
1562
+ "viewEditor.pal.chart": "Wykres",
1563
+ "viewEditor.pal.kpi": "KPI",
1564
+ "viewEditor.pal.button": "Przycisk",
1565
+ "viewEditor.pal.text": "Tekst",
1566
+ "viewEditor.pal.heading": "Nagłówek",
1567
+ "viewEditor.pal.badge": "Odznaka",
1568
+ "viewEditor.pal.card": "Karta",
1569
+ "viewEditor.addRow": "Dodaj wiersz",
1570
+ "viewEditor.canvasEmpty": "Dodaj wiersz, a następnie upuść kontrolki z palety — lub zacznij od „Nowy z encji”.",
1571
+ "viewEditor.removeCell": "Usuń komórkę",
1572
+ "viewEditor.emptyRow": "pusty wiersz",
1573
+ "viewEditor.control": "Kontrolka",
1574
+ "viewEditor.cp.label": "Etykieta",
1575
+ "viewEditor.cp.colSpan": "Szerokość kolumn",
1576
+ "viewEditor.cp.binding": "Powiązanie",
1577
+ "viewEditor.cp.dataSource": "Źródło danych",
1578
+ "viewEditor.cp.none": "— brak —",
1579
+ "viewEditor.cp.field": "Pole",
1580
+ "viewEditor.cp.fieldPath": "ścieżka pola",
1581
+ "viewEditor.cp.twoWay": "Dwukierunkowe",
1582
+ "viewEditor.cp.permissions": "Uprawnienia",
1583
+ "viewEditor.cp.role": "rola",
1584
+ "viewEditor.cp.addPermission": "Uprawnienie",
1585
+ "viewEditor.cp.events": "Zdarzenia",
1586
+ "viewEditor.cp.eventPlaceholder": "zdarzenie (onClick / onValueChange…)",
1587
+ "viewEditor.cp.removeEvent": "Usuń zdarzenie",
1588
+ "viewEditor.cp.addEvent": "Zdarzenie",
1589
+ "viewEditor.remove": "Usuń",
1590
+ "viewEditor.ds.title": "Źródła danych",
1591
+ "viewEditor.ds.hint": "Wybierz kontrolkę, aby edytować jej propsy, powiązanie i zdarzenia.",
1592
+ "viewEditor.ds.key": "klucz",
1593
+ "viewEditor.ds.endpoint": "punkt końcowy",
1594
+ "viewEditor.ds.autoLoad": "auto-ładowanie",
1595
+ "viewEditor.ds.add": "Źródło danych",
1596
+ "tutorial.viewEditor.palette.title": "Paleta",
1597
+ "tutorial.viewEditor.palette.content": "Dodawaj kontrolki z palety do siatki — pola, siatki danych, wykresy, KPI, przyciski i bloki wyświetlania.",
1598
+ "tutorial.viewEditor.canvas.title": "Płótno",
1599
+ "tutorial.viewEditor.canvas.content": "Układaj komórki w wiersze i ustawiaj szerokość kolumn każdej komórki. Kliknij komórkę, aby ją skonfigurować.",
1600
+ "tutorial.viewEditor.props.title": "Właściwości",
1601
+ "tutorial.viewEditor.props.content": "Skonfiguruj wybraną kontrolkę: propsy, powiązanie danych, uprawnienia ról i akcje zdarzeń. Gdy nic nie jest wybrane, zarządzaj źródłami danych widoku.",
1602
+ "tutorial.viewEditor.modes.title": "Projekt / Podgląd / Źródło",
1603
+ "tutorial.viewEditor.modes.content": "Przełączaj między wizualnym projektantem, podglądem na żywo i surowym JSON-em NiceViewDefinition. Zapisz, gdy widok jest poprawny.",
1604
+ "manifestEditor.tab.scripts": "Skrypty",
1605
+ "manifestEditor.tab.lifecycle": "Cykl życia",
1606
+ "manifestEditor.tab.history": "Historia",
1607
+ "manifestEditor.status.valid": "✓ Poprawny",
1608
+ "manifestEditor.status.issues": "problemów",
1609
+ "manifestEditor.sections": "sekcji",
1610
+ "manifestEditor.output": "Wyjście",
1611
+ "tutorial.manifestEditor.sections.title": "Sekcje",
1612
+ "tutorial.manifestEditor.sections.content": "Manifest jest podzielony na sekcje sterowane schematem — przełączaj je zakładkami u góry.",
1613
+ "tutorial.manifestEditor.json.title": "Formularz ⇄ JSON",
1614
+ "tutorial.manifestEditor.json.content": "Każdą sekcję można edytować jako wizualny formularz lub surowy JSON — użyj przełącznika w sekcji.",
1615
+ "i18nEditor.keyHead": "Klucz",
1616
+ "i18nEditor.removeLocale": "Usuń język",
1617
+ "i18nEditor.keyAria": "Klucz tłumaczenia",
1618
+ "i18nEditor.removeKey": "Usuń klucz",
1619
+ "i18nEditor.empty": "Brak kluczy tłumaczeń.",
1620
+ "i18nEditor.newKeyPlaceholder": "nowy.klucz",
1621
+ "i18nEditor.newKeyAria": "Nowy klucz",
1622
+ "i18nEditor.addKey": "Klucz",
1623
+ "i18nEditor.newLocalePlaceholder": "język (np. de)",
1624
+ "i18nEditor.newLocaleAria": "Nowy język",
1625
+ "i18nEditor.addLocale": "Język",
1626
+ "tutorial.i18nEditor.grid.title": "Klucze × języki",
1627
+ "tutorial.i18nEditor.grid.content": "Każdy wiersz to klucz tłumaczenia, a każda kolumna to język. Edytuj komórkę, aby ustawić tłumaczenie; bursztynowe komórki są nadal puste.",
1628
+ "tutorial.i18nEditor.add.title": "Dodaj klucze i języki",
1629
+ "tutorial.i18nEditor.add.content": "Dodaj nowy klucz tłumaczenia lub nową kolumnę języka; nowe komórki są puste i oznaczone jako brakujące.",
1630
+ "moduleEditor.tab.entities": "Encje",
1631
+ "moduleEditor.tab.i18n": "i18n",
1632
+ "moduleEditor.tab.views": "Widoki",
1633
+ "moduleEditor.tab.workflows": "Procesy",
1634
+ "moduleEditor.tab.data": "Dane",
1635
+ "moduleEditor.tab.permissions": "Uprawnienia",
1636
+ "moduleEditor.tab.scripts": "Skrypty",
1637
+ "moduleEditor.tab.lifecycle": "Cykl życia",
1638
+ "moduleEditor.tab.history": "Historia",
1639
+ "moduleEditor.tab.source": "Źródło",
1640
+ "moduleEditor.status.valid": "✓ Poprawny",
1641
+ "moduleEditor.status.issues": "problemów",
1642
+ "moduleEditor.searchModules": "Szukaj modułów…",
1643
+ "moduleEditor.loading": "Ładowanie…",
1644
+ "moduleEditor.noModules": "Brak modułów. Otwórz najpierw źródło.",
1645
+ "moduleEditor.title": "Edytor modułów",
1646
+ "moduleEditor.refresh": "Odśwież",
1647
+ "moduleEditor.validate": "Waliduj",
1648
+ "moduleEditor.saving": "Zapisywanie…",
1649
+ "moduleEditor.save": "Zapisz",
1650
+ "moduleEditor.output": "Wyjście",
1651
+ "moduleEditor.placeholder": "Wybierz moduł z listy po lewej, aby rozpocząć edycję.",
1652
+ "moduleEditor.delete": "Usuń",
1653
+ "moduleEditor.views.select": "Wybierz widok",
1654
+ "moduleEditor.views.placeholder": "— wybierz widok —",
1655
+ "moduleEditor.views.new": "Nowy widok",
1656
+ "moduleEditor.views.empty": "Nie wybrano widoku. Utwórz nowy, a następnie użyj „Nowy z encji” w edytorze.",
1657
+ "moduleEditor.workflows.select": "Wybierz proces",
1658
+ "moduleEditor.workflows.placeholder": "— wybierz proces —",
1659
+ "moduleEditor.workflows.new": "Nowy proces",
1660
+ "moduleEditor.workflows.empty": "Nie wybrano procesu. Utwórz nowy, aby zaprojektować stany i przejścia.",
1661
+ "moduleEditor.data.select": "Wybierz źródło danych",
1662
+ "moduleEditor.data.placeholder": "— wybierz źródło danych —",
1663
+ "moduleEditor.data.new": "Nowe źródło danych",
1664
+ "moduleEditor.data.empty": "Nie wybrano źródła danych. Utwórz nowe, aby zbudować zapytanie ze schematu modułu.",
1665
+ "tutorial.moduleEditor.intro.title": "Edytor modułów",
1666
+ "tutorial.moduleEditor.intro.content": "Projektuj cały moduł od początku do końca — manifest, encje, tłumaczenia, widoki, procesy, źródła danych i uprawnienia — a następnie waliduj i zapisz.",
1667
+ "tutorial.moduleEditor.tabs.title": "Części modułu",
1668
+ "tutorial.moduleEditor.tabs.content": "Każda zakładka edytuje jedną część modułu: sekcje manifestu, encje, i18n, widoki, procesy, źródła danych, uprawnienia i więcej.",
1669
+ "tutorial.moduleEditor.output.title": "Wyjście",
1670
+ "tutorial.moduleEditor.output.content": "Wyniki walidacji oraz aktywność wczytywania/zapisu są tu rejestrowane.",
1671
+ "tutorial.schemaForm.viewToggle.title": "Formularz ⇄ JSON",
1672
+ "tutorial.schemaForm.viewToggle.content": "Przełączaj między formularzem wizualnym a surową wartością JSON — wygodne dla zaawansowanych i do kopiowania.",
1673
+ "tutorial.schemaForm.validation.title": "Walidacja na żywo",
1674
+ "tutorial.schemaForm.validation.content": "Wartości są walidowane względem schematu na bieżąco; ewentualne problemy są wypisane pod formularzem.",
1675
+ "schemaForm.tab.form": "Formularz",
1676
+ "schemaForm.tab.json": "JSON",
1677
+ "schemaForm.tab.json.help": "Edytuj surową wartość JSON bezpośrednio",
1678
+ "schemaForm.invalidJson": "Nieprawidłowy JSON",
1091
1679
  "tutorial.schemaForm.intro.content": "Ten formularz jest generowany ze schematu. Pola wymagane i błędy walidacji są oznaczane; użyj przełącznika JSON do edycji surowej.",
1092
1680
  "tutorial.entityEditor.intro.title": "Edytor encji",
1093
1681
  "tutorial.entityEditor.intro.content": "Dodawaj encje po lewej, a po prawej edytuj metadane encji i jej pola (typ, klucze, ograniczenia).",
1682
+ "entityEditor.col.name": "Nazwa",
1683
+ "entityEditor.col.displayName": "Nazwa wyświetlana",
1684
+ "entityEditor.col.table": "Tabela",
1685
+ "entityEditor.col.fields": "Pola",
1686
+ "entityEditor.col.fields.help": "Liczba pól zdefiniowanych w tej encji",
1687
+ "entityEditor.col.flags": "Flagi",
1688
+ "entityEditor.flag.audited": "Audytowane — śledzi, kto i kiedy zmienił każdy rekord",
1689
+ "entityEditor.flag.audited.abbr": "Audyt",
1690
+ "entityEditor.flag.softDelete": "Miękkie usuwanie — rekordy są oznaczane jako usunięte, nigdy fizycznie kasowane",
1691
+ "entityEditor.flag.softDelete.abbr": "Miękkie",
1692
+ "entityEditor.search": "Szukaj encji…",
1693
+ "entityEditor.empty": "Brak encji. Utwórz pierwszą, aby zacząć.",
1694
+ "entityEditor.new": "Nowa encja",
1695
+ "entityEditor.back": "Encje",
1696
+ "entityEditor.backHint": "Powrót do listy encji",
1697
+ "entityEditor.delete": "Usuń",
1698
+ "entityEditor.deleteHint": "Usuń tę encję",
1699
+ "entityEditor.untitled": "Encja bez nazwy",
1700
+ "entityEditor.tab.general": "Ogólne",
1701
+ "entityEditor.tab.fields": "Pola",
1702
+ "entityEditor.tab.validation": "Walidacja",
1703
+ "entityEditor.tab.er": "Diagram ER",
1704
+ "entityEditor.field.name": "Nazwa",
1705
+ "entityEditor.field.type": "Typ",
1706
+ "entityEditor.field.flags": "Ograniczenia",
1707
+ "entityEditor.field.flags.help": "Ograniczenia pola: klucz / wymagane / unikalne / indeksowane",
1708
+ "entityEditor.flag.pk": "Klucz główny",
1709
+ "entityEditor.flag.fk": "Klucz obcy",
1710
+ "entityEditor.flag.required": "Wymagane (NOT NULL)",
1711
+ "entityEditor.flag.unique": "Unikalne",
1712
+ "entityEditor.flag.indexed": "Indeksowane",
1713
+ "entityEditor.field.back": "Pola",
1714
+ "entityEditor.field.backHint": "Powrót do listy pól",
1715
+ "entityEditor.field.untitled": "Nowe pole",
1716
+ "entityEditor.field.done": "Gotowe",
1717
+ "entityEditor.field.add": "Dodaj pole",
1718
+ "entityEditor.field.search": "Szukaj pól…",
1719
+ "entityEditor.field.empty": "Brak pól. Dodaj pierwsze, aby zdefiniować tę encję.",
1094
1720
  "tutorial.i18nEditor.intro.title": "Tłumaczenia",
1095
1721
  "tutorial.i18nEditor.intro.content": "Edytuj tłumaczenia w siatce klucze × locale. Dodawaj klucze i języki; bursztynowe komórki oznaczają braki.",
1096
1722
  "tutorial.formBuilder.intro.title": "Kreator formularzy",
@@ -1844,6 +2470,11 @@ const x = [
1844
2470
  "vectorEditor.layers.lock": "Zablokuj",
1845
2471
  "vectorEditor.layers.unlock": "Odblokuj"
1846
2472
  }, ze = {
2473
+ "signature.placeholder": "Hier unterschreiben",
2474
+ "controls.now": "Jetzt",
2475
+ "controls.clear": "Löschen",
2476
+ "controls.today": "Heute",
2477
+ "controls.confirm": "Bestätigen",
1847
2478
  "tutorial.viewEditor.intro.title": "Ansichts-Editor",
1848
2479
  "tutorial.viewEditor.intro.content": "Erstellen Sie jede Ansichtsart an einem Ort: Wählen Sie die Art (oder generieren Sie aus einer Entität), ziehen Sie Steuerelemente aus der Palette in die Rasterzellen und konfigurieren Sie dann jede Zelle — Datenbindung, Rollenberechtigungen und Ereignisaktionen. Wechseln Sie Design / Vorschau / Quelle und speichern Sie, wenn gültig.",
1849
2480
  ok: "OK",
@@ -2569,6 +3200,314 @@ const x = [
2569
3200
  "tutorial.manifestEditor.intro.title": "Manifest-Editor",
2570
3201
  "tutorial.manifestEditor.intro.content": "Bearbeiten Sie das Manifest in schemagesteuerten Abschnitten. Schalten Sie pro Abschnitt zwischen Formular ⇄ JSON um; die Validierung erscheint in der Statusleiste.",
2571
3202
  "tutorial.schemaForm.intro.title": "Schema-Formular",
3203
+ "workflowDesigner.name": "Name",
3204
+ "workflowDesigner.type": "Typ",
3205
+ "workflowDesigner.select": "— Auswählen —",
3206
+ "workflowDesigner.simulate": "Simulieren",
3207
+ "workflowDesigner.stop": "Stopp",
3208
+ "workflowDesigner.test": "Test",
3209
+ "workflowDesigner.publish": "Veröffentlichen",
3210
+ "workflowDesigner.export": "Export",
3211
+ "workflowDesigner.import": "Import",
3212
+ "workflowDesigner.zoomIn": "Vergrößern",
3213
+ "workflowDesigner.zoomOut": "Verkleinern",
3214
+ "workflowDesigner.resetView": "Ansicht zurücksetzen",
3215
+ "workflowDesigner.simulateFlow": "Ablauf simulieren",
3216
+ "workflowDesigner.testProcess": "Prozess testen",
3217
+ "workflowDesigner.publishProcess": "Prozess veröffentlichen",
3218
+ "workflowDesigner.exportBpmn": "BPMN-XML exportieren",
3219
+ "workflowDesigner.importBpmn": "BPMN-XML importieren",
3220
+ "workflowDesigner.toolbar": "Workflow-Symbolleiste",
3221
+ "workflowDesigner.bpmnToolbar": "BPMN-Designer-Symbolleiste",
3222
+ "workflowDesigner.palette": "BPMN-Elementpalette",
3223
+ "workflowDesigner.canvas": "Workflow-Arbeitsfläche",
3224
+ "workflowDesigner.bpmnCanvas": "BPMN-Arbeitsfläche",
3225
+ "workflowDesigner.minimap": "Minikarte",
3226
+ "workflowDesigner.expand": "Erweitern",
3227
+ "workflowDesigner.collapse": "Reduzieren",
3228
+ "workflowDesigner.connect": "Verbinden",
3229
+ "workflowDesigner.startConnect": "Verbindung starten",
3230
+ "workflowDesigner.delete": "Löschen",
3231
+ "workflowDesigner.deleteElement": "Element löschen",
3232
+ "workflowDesigner.next": "Weiter",
3233
+ "workflowDesigner.connectHint": "Klicken Sie auf ein Zielelement, um zu verbinden, oder auf eine leere Fläche, um abzubrechen",
3234
+ "workflowDesigner.properties": "Eigenschaften",
3235
+ "workflowDesigner.propertiesOf": "Eigenschaften: {name}",
3236
+ "workflowDesigner.assignee": "Zugewiesen an",
3237
+ "workflowDesigner.dueDate": "Fälligkeitsdatum",
3238
+ "workflowDesigner.dueDatePlaceholder": "P3D (3 Tage)",
3239
+ "workflowDesigner.priority": "Priorität",
3240
+ "workflowDesigner.documentation": "Dokumentation",
3241
+ "workflowDesigner.timer": "Timer (ISO 8601)",
3242
+ "workflowDesigner.timerPlaceholder": "PT1H (1 Stunde) oder R3/PT1H (3 Wiederholungen)",
3243
+ "workflowDesigner.defaultFlow": "Standardablauf",
3244
+ "workflowDesigner.flowOf": "Ablauf: {name}",
3245
+ "workflowDesigner.condition": "Bedingung",
3246
+ "workflowDesigner.deleteFlow": "Ablauf löschen",
3247
+ "workflowDesigner.variables": "Prozessvariablen",
3248
+ "workflowDesigner.addVariable": "Variable hinzufügen",
3249
+ "workflowDesigner.simActiveElement": "Simulation aktiv — aktuelles Element:",
3250
+ "workflowDesigner.simActiveState": "Simulation aktiv — aktueller Zustand:",
3251
+ "workflowDesigner.endSimulation": "Simulation beenden",
3252
+ "workflowDesigner.addState": "Zustand",
3253
+ "workflowDesigner.addApproval": "Genehmigung",
3254
+ "workflowDesigner.newState": "Neuer Zustand",
3255
+ "workflowDesigner.stateLabel": "Zustand: {name}",
3256
+ "workflowDesigner.stateName": "Zustandsname",
3257
+ "workflowDesigner.deleteState": "Zustand {name} löschen",
3258
+ "workflowDesigner.stateProps": "Zustandseigenschaften",
3259
+ "workflowDesigner.stateType": "Zustandstyp",
3260
+ "workflowDesigner.val.noInitial": "Kein Anfangszustand",
3261
+ "workflowDesigner.val.multiInitial": "Mehr als ein Anfangszustand",
3262
+ "workflowDesigner.val.noFinal": "Kein Endzustand",
3263
+ "workflowDesigner.val.deadEnd": 'Zustand "{name}" hat keine ausgehenden Übergänge (Sackgasse)',
3264
+ "workflowDesigner.val.orphan": 'Zustand "{name}" ist nicht erreichbar (verwaist)',
3265
+ "workflowDesigner.val.bpmnNoStart": "Der Prozess muss mindestens ein Startereignis haben",
3266
+ "workflowDesigner.val.bpmnNoEnd": "Der Prozess muss mindestens ein Endereignis haben",
3267
+ "workflowDesigner.val.startNoOut": 'Startereignis "{name}" hat keinen ausgehenden Ablauf',
3268
+ "workflowDesigner.val.endNoIn": 'Endereignis "{name}" hat keinen eingehenden Ablauf',
3269
+ "workflowDesigner.val.unreachable": 'Element "{name}" ist nicht erreichbar',
3270
+ "workflowDesigner.val.elemNoOut": 'Element "{name}" hat keinen ausgehenden Ablauf',
3271
+ "workflowDesigner.val.xorNoConditions": 'Exklusives Gateway "{name}" sollte Bedingungen an seinen Abläufen haben',
3272
+ "tutorial.workflowDesigner.toolbar.title": "Symbolleiste",
3273
+ "tutorial.workflowDesigner.toolbar.content": "Fügen Sie Zustände und Genehmigungen hinzu, führen Sie eine Simulation aus und testen oder veröffentlichen Sie dann den Workflow.",
3274
+ "tutorial.workflowDesigner.canvas.title": "Arbeitsfläche",
3275
+ "tutorial.workflowDesigner.canvas.content": "Ziehen Sie, um Zustände anzuordnen, klicken Sie auf einen, um ihn zu bearbeiten, und verbinden Sie sie zu Übergängen.",
3276
+ "tutorial.workflowDesigner.minimap.title": "Minikarte",
3277
+ "tutorial.workflowDesigner.minimap.content": "Eine Vogelperspektive des gesamten Ablaufs für die schnelle Navigation.",
3278
+ "entityEditor.col.name": "Name",
3279
+ "entityEditor.col.displayName": "Anzeigename",
3280
+ "entityEditor.col.table": "Tabelle",
3281
+ "entityEditor.col.fields": "Felder",
3282
+ "entityEditor.col.fields.help": "Anzahl der für diese Entität definierten Felder",
3283
+ "entityEditor.col.flags": "Flags",
3284
+ "entityEditor.flag.audited": "Auditiert — verfolgt, wer jeden Datensatz wann geändert hat",
3285
+ "entityEditor.flag.audited.abbr": "Audit",
3286
+ "entityEditor.flag.softDelete": "Soft-Delete — Zeilen werden als gelöscht markiert, aber nie physisch entfernt",
3287
+ "entityEditor.flag.softDelete.abbr": "Soft-Del",
3288
+ "entityEditor.search": "Entitäten suchen…",
3289
+ "entityEditor.empty": "Noch keine Entitäten. Erstellen Sie eine, um zu beginnen.",
3290
+ "entityEditor.new": "Neue Entität",
3291
+ "entityEditor.back": "Entitäten",
3292
+ "entityEditor.backHint": "Zurück zur Entitätsliste",
3293
+ "entityEditor.delete": "Löschen",
3294
+ "entityEditor.deleteHint": "Diese Entität löschen",
3295
+ "entityEditor.untitled": "Unbenannte Entität",
3296
+ "entityEditor.tab.general": "Allgemein",
3297
+ "entityEditor.tab.fields": "Felder",
3298
+ "entityEditor.tab.validation": "Validierung",
3299
+ "entityEditor.tab.er": "ER-Diagramm",
3300
+ "entityEditor.field.name": "Name",
3301
+ "entityEditor.field.type": "Typ",
3302
+ "entityEditor.field.flags": "Einschränkungen",
3303
+ "entityEditor.field.flags.help": "Schlüssel-/Pflicht-/Eindeutigkeits-/Index-Einschränkungen für dieses Feld",
3304
+ "entityEditor.flag.pk": "Primärschlüssel",
3305
+ "entityEditor.flag.fk": "Fremdschlüssel",
3306
+ "entityEditor.flag.required": "Erforderlich (NOT NULL)",
3307
+ "entityEditor.flag.unique": "Eindeutig",
3308
+ "entityEditor.flag.indexed": "Indiziert",
3309
+ "entityEditor.field.back": "Felder",
3310
+ "entityEditor.field.backHint": "Zurück zur Feldliste",
3311
+ "entityEditor.field.untitled": "Neues Feld",
3312
+ "entityEditor.field.done": "Fertig",
3313
+ "entityEditor.field.add": "Feld hinzufügen",
3314
+ "entityEditor.field.search": "Felder suchen…",
3315
+ "entityEditor.field.empty": "Noch keine Felder. Fügen Sie eines hinzu, um diese Entität zu definieren.",
3316
+ "tutorial.themeBuilder.presets.title": "Presets",
3317
+ "tutorial.themeBuilder.presets.content": "Beginnen Sie mit einem integrierten Preset und passen Sie es dann an — der schnellste Weg zu einer stimmigen Palette.",
3318
+ "tutorial.themeBuilder.sections.title": "Token-Abschnitte",
3319
+ "tutorial.themeBuilder.sections.content": "Bearbeiten Sie Tokens nach Abschnitt: Farben, Hintergründe, Text, Rahmen, Abstände und Typografie.",
3320
+ "tutorial.themeBuilder.preview.title": "Live-Vorschau",
3321
+ "tutorial.themeBuilder.preview.content": "Jede Änderung wird sofort an Beispielkomponenten angezeigt, sodass Sie das Theme beim Erstellen beurteilen können.",
3322
+ "tutorial.themeBuilder.export.title": "Benennen, anwenden & exportieren",
3323
+ "tutorial.themeBuilder.export.content": "Benennen Sie Ihr Theme, wenden Sie es auf die Seite an oder exportieren Sie es als JSON / CSS-Variablen zur Wiederverwendung.",
3324
+ "dataSourceBuilder.namePlaceholder": "Name der Datenquelle…",
3325
+ "dataSourceBuilder.nameAria": "Name der Datenquelle",
3326
+ "tutorial.dataSourceBuilder.name.title": "Name & Schlüssel",
3327
+ "tutorial.dataSourceBuilder.name.content": "Geben Sie der Datenquelle einen lesbaren Namen; ihr stabiler Schlüssel (von Ansichten genutzt) wird automatisch erzeugt und daneben angezeigt.",
3328
+ "lifecycleHooks.enabled": "Aktiviert",
3329
+ "lifecycleHooks.handler": "Handler",
3330
+ "lifecycleHooks.selectHandler": "— Handler wählen —",
3331
+ "lifecycleHooks.handlerPlaceholder": "Handler (z. B. scripts/on-create.js)",
3332
+ "lifecycleHooks.conditionPlaceholder": "Bedingung (optional)",
3333
+ "lifecycleHooks.condition": "Bedingung",
3334
+ "lifecycleHooks.moveUp": "Nach oben",
3335
+ "lifecycleHooks.moveDown": "Nach unten",
3336
+ "lifecycleHooks.removeBinding": "Bindung entfernen",
3337
+ "lifecycleHooks.addHandler": "Handler hinzufügen",
3338
+ "tutorial.lifecycleHooks.bindings.title": "Trigger & Bindungen",
3339
+ "tutorial.lifecycleHooks.bindings.content": "Jeder Trigger listet seine gebundenen Handler. Fügen Sie einen Handler hinzu, schalten Sie das Aktiviert-Flag um, ändern Sie die Reihenfolge und legen Sie optional eine Bedingung fest, die die Ausführung steuert.",
3340
+ "revisionHistory.revisions": "Versionen",
3341
+ "revisionHistory.compare": "Vergleichen",
3342
+ "revisionHistory.restore": "Wiederherstellen",
3343
+ "revisionHistory.diffEmpty": "Wählen Sie eine Version und eine weitere zum Vergleich.",
3344
+ "tutorial.revisionHistory.list.title": "Versionen",
3345
+ "tutorial.revisionHistory.list.content": "Wählen Sie eine Version und klicken Sie bei einer anderen auf „Vergleichen“, um sie gegenüberzustellen. „Wiederherstellen“ setzt auf diese Version zurück.",
3346
+ "tutorial.revisionHistory.diff.title": "Unterschiede",
3347
+ "tutorial.revisionHistory.diff.content": "Prüfen Sie die Unterschiede der beiden ausgewählten Versionen nebeneinander.",
3348
+ "accessManager.roles": "Rollen",
3349
+ "accessManager.newRole": "Neue Rolle…",
3350
+ "accessManager.newRoleAria": "Name der neuen Rolle",
3351
+ "accessManager.add": "Hinzufügen",
3352
+ "accessManager.removeRole": "Rolle entfernen",
3353
+ "accessManager.resources": "Ressourcen",
3354
+ "accessManager.applyDescendants": "Auf alle Nachfahren anwenden",
3355
+ "accessManager.empty": "Wählen Sie eine Ressource, um ihren Zugriff zu bearbeiten.",
3356
+ "accessManager.collapse": "Einklappen",
3357
+ "accessManager.expand": "Ausklappen",
3358
+ "tutorial.accessManager.tree.title": "Rollen & Ressourcen",
3359
+ "tutorial.accessManager.tree.content": "Fügen Sie Rollen hinzu oder entfernen Sie sie, und wählen Sie dann eine Ressource aus dem Baum (Module → Ansichten / Entitäten / Aktionen), um ihren Zugriff zu bearbeiten.",
3360
+ "tutorial.accessManager.matrix.title": "Berechtigungsmatrix",
3361
+ "tutorial.accessManager.matrix.content": "Gewähren Sie jeder Rolle ihre Aktionen für die ausgewählte Ressource. Nutzen Sie die Sammelaktionen oder „Auf alle Nachfahren anwenden“, um Berechtigungen im Baum nach unten zu kaskadieren.",
3362
+ "viewEditor.name": "Ansichtsname",
3363
+ "viewEditor.kindAria": "Ansichtstyp",
3364
+ "viewEditor.kind.form": "Formular",
3365
+ "viewEditor.kind.detail": "Detail",
3366
+ "viewEditor.kind.grid": "Raster",
3367
+ "viewEditor.kind.dashboard": "Dashboard",
3368
+ "viewEditor.kind.content": "Inhalt",
3369
+ "viewEditor.kind.report": "Bericht",
3370
+ "viewEditor.kind.print": "Druck",
3371
+ "viewEditor.kind.mix": "Mix",
3372
+ "viewEditor.fromEntity": "Neu aus Entität…",
3373
+ "viewEditor.fromEntityAria": "Neue Ansicht aus Entität",
3374
+ "viewEditor.export": "Export…",
3375
+ "viewEditor.exportAria": "Ansicht exportieren",
3376
+ "viewEditor.mode.design": "Design",
3377
+ "viewEditor.mode.preview": "Vorschau",
3378
+ "viewEditor.mode.source": "Quelle",
3379
+ "viewEditor.valid": "✓ Gültig",
3380
+ "viewEditor.save": "Speichern",
3381
+ "viewEditor.add": "Hinzufügen",
3382
+ "viewEditor.cat.Inputs": "Eingaben",
3383
+ "viewEditor.cat.Data": "Daten",
3384
+ "viewEditor.cat.BI": "BI",
3385
+ "viewEditor.cat.Actions": "Aktionen",
3386
+ "viewEditor.cat.Display": "Anzeige",
3387
+ "viewEditor.pal.textInput": "Text",
3388
+ "viewEditor.pal.textArea": "Textbereich",
3389
+ "viewEditor.pal.numberInput": "Zahl",
3390
+ "viewEditor.pal.select": "Auswahl",
3391
+ "viewEditor.pal.checkbox": "Kontrollkästchen",
3392
+ "viewEditor.pal.datePicker": "Datum",
3393
+ "viewEditor.pal.dataGrid": "Datenraster",
3394
+ "viewEditor.pal.chart": "Diagramm",
3395
+ "viewEditor.pal.kpi": "KPI",
3396
+ "viewEditor.pal.button": "Schaltfläche",
3397
+ "viewEditor.pal.text": "Text",
3398
+ "viewEditor.pal.heading": "Überschrift",
3399
+ "viewEditor.pal.badge": "Abzeichen",
3400
+ "viewEditor.pal.card": "Karte",
3401
+ "viewEditor.addRow": "Zeile hinzufügen",
3402
+ "viewEditor.canvasEmpty": "Fügen Sie eine Zeile hinzu und ziehen Sie Steuerelemente aus der Palette — oder starten Sie mit „Neu aus Entität“.",
3403
+ "viewEditor.removeCell": "Zelle entfernen",
3404
+ "viewEditor.emptyRow": "leere Zeile",
3405
+ "viewEditor.control": "Steuerelement",
3406
+ "viewEditor.cp.label": "Beschriftung",
3407
+ "viewEditor.cp.colSpan": "Spaltenbreite",
3408
+ "viewEditor.cp.binding": "Bindung",
3409
+ "viewEditor.cp.dataSource": "Datenquelle",
3410
+ "viewEditor.cp.none": "— keine —",
3411
+ "viewEditor.cp.field": "Feld",
3412
+ "viewEditor.cp.fieldPath": "Feldpfad",
3413
+ "viewEditor.cp.twoWay": "Bidirektional",
3414
+ "viewEditor.cp.permissions": "Berechtigungen",
3415
+ "viewEditor.cp.role": "Rolle",
3416
+ "viewEditor.cp.addPermission": "Berechtigung",
3417
+ "viewEditor.cp.events": "Ereignisse",
3418
+ "viewEditor.cp.eventPlaceholder": "Ereignis (onClick / onValueChange…)",
3419
+ "viewEditor.cp.removeEvent": "Ereignis entfernen",
3420
+ "viewEditor.cp.addEvent": "Ereignis",
3421
+ "viewEditor.remove": "Entfernen",
3422
+ "viewEditor.ds.title": "Datenquellen",
3423
+ "viewEditor.ds.hint": "Wählen Sie ein Steuerelement, um Props, Bindung & Ereignisse zu bearbeiten.",
3424
+ "viewEditor.ds.key": "Schlüssel",
3425
+ "viewEditor.ds.endpoint": "Endpunkt",
3426
+ "viewEditor.ds.autoLoad": "Auto-Laden",
3427
+ "viewEditor.ds.add": "Datenquelle",
3428
+ "tutorial.viewEditor.palette.title": "Palette",
3429
+ "tutorial.viewEditor.palette.content": "Fügen Sie Steuerelemente aus der Palette in das Raster ein — Eingaben, Datenraster, Diagramme, KPIs, Schaltflächen und Anzeigeblöcke.",
3430
+ "tutorial.viewEditor.canvas.title": "Arbeitsfläche",
3431
+ "tutorial.viewEditor.canvas.content": "Ordnen Sie Zellen in Zeilen an und legen Sie die Spaltenbreite jeder Zelle fest. Klicken Sie auf eine Zelle, um sie zu konfigurieren.",
3432
+ "tutorial.viewEditor.props.title": "Eigenschaften",
3433
+ "tutorial.viewEditor.props.content": "Konfigurieren Sie das ausgewählte Steuerelement: Props, Datenbindung, Rollenberechtigungen und Ereignisaktionen. Wenn nichts ausgewählt ist, verwalten Sie die Datenquellen der Ansicht.",
3434
+ "tutorial.viewEditor.modes.title": "Design / Vorschau / Quelle",
3435
+ "tutorial.viewEditor.modes.content": "Wechseln Sie zwischen dem visuellen Designer, einer Live-Vorschau und dem rohen NiceViewDefinition-JSON. Speichern Sie, wenn die Ansicht gültig ist.",
3436
+ "manifestEditor.tab.scripts": "Skripte",
3437
+ "manifestEditor.tab.lifecycle": "Lebenszyklus",
3438
+ "manifestEditor.tab.history": "Verlauf",
3439
+ "manifestEditor.status.valid": "✓ Gültig",
3440
+ "manifestEditor.status.issues": "Probleme",
3441
+ "manifestEditor.sections": "Abschnitte",
3442
+ "manifestEditor.output": "Ausgabe",
3443
+ "tutorial.manifestEditor.sections.title": "Abschnitte",
3444
+ "tutorial.manifestEditor.sections.content": "Das Manifest ist in schemabasierte Abschnitte unterteilt — wechseln Sie über die Tabs oben.",
3445
+ "tutorial.manifestEditor.json.title": "Formular ⇄ JSON",
3446
+ "tutorial.manifestEditor.json.content": "Jeder Abschnitt kann als visuelles Formular oder als rohes JSON bearbeitet werden — nutzen Sie den Umschalter im Abschnitt.",
3447
+ "i18nEditor.keyHead": "Schlüssel",
3448
+ "i18nEditor.removeLocale": "Sprache entfernen",
3449
+ "i18nEditor.keyAria": "Übersetzungsschlüssel",
3450
+ "i18nEditor.removeKey": "Schlüssel entfernen",
3451
+ "i18nEditor.empty": "Noch keine Übersetzungsschlüssel.",
3452
+ "i18nEditor.newKeyPlaceholder": "neuer.schlüssel",
3453
+ "i18nEditor.newKeyAria": "Neuer Schlüssel",
3454
+ "i18nEditor.addKey": "Schlüssel",
3455
+ "i18nEditor.newLocalePlaceholder": "Sprache (z. B. de)",
3456
+ "i18nEditor.newLocaleAria": "Neue Sprache",
3457
+ "i18nEditor.addLocale": "Sprache",
3458
+ "tutorial.i18nEditor.grid.title": "Schlüssel × Sprachen",
3459
+ "tutorial.i18nEditor.grid.content": "Jede Zeile ist ein Übersetzungsschlüssel und jede Spalte eine Sprache. Bearbeiten Sie eine Zelle, um eine Übersetzung festzulegen; bernsteinfarbene Zellen fehlen noch.",
3460
+ "tutorial.i18nEditor.add.title": "Schlüssel & Sprachen hinzufügen",
3461
+ "tutorial.i18nEditor.add.content": "Fügen Sie hier einen neuen Übersetzungsschlüssel oder eine neue Sprachspalte hinzu; neue Zellen sind leer und werden als fehlend markiert.",
3462
+ "moduleEditor.tab.entities": "Entitäten",
3463
+ "moduleEditor.tab.i18n": "i18n",
3464
+ "moduleEditor.tab.views": "Ansichten",
3465
+ "moduleEditor.tab.workflows": "Workflows",
3466
+ "moduleEditor.tab.data": "Daten",
3467
+ "moduleEditor.tab.permissions": "Berechtigungen",
3468
+ "moduleEditor.tab.scripts": "Skripte",
3469
+ "moduleEditor.tab.lifecycle": "Lebenszyklus",
3470
+ "moduleEditor.tab.history": "Verlauf",
3471
+ "moduleEditor.tab.source": "Quelle",
3472
+ "moduleEditor.status.valid": "✓ Gültig",
3473
+ "moduleEditor.status.issues": "Probleme",
3474
+ "moduleEditor.searchModules": "Module suchen…",
3475
+ "moduleEditor.loading": "Wird geladen…",
3476
+ "moduleEditor.noModules": "Keine Module. Öffnen Sie zuerst eine Quelle.",
3477
+ "moduleEditor.title": "Modul-Editor",
3478
+ "moduleEditor.refresh": "Aktualisieren",
3479
+ "moduleEditor.validate": "Validieren",
3480
+ "moduleEditor.saving": "Wird gespeichert…",
3481
+ "moduleEditor.save": "Speichern",
3482
+ "moduleEditor.output": "Ausgabe",
3483
+ "moduleEditor.placeholder": "Wählen Sie links ein Modul, um mit der Bearbeitung zu beginnen.",
3484
+ "moduleEditor.delete": "Löschen",
3485
+ "moduleEditor.views.select": "Ansicht wählen",
3486
+ "moduleEditor.views.placeholder": "— Ansicht wählen —",
3487
+ "moduleEditor.views.new": "Neue Ansicht",
3488
+ "moduleEditor.views.empty": "Keine Ansicht ausgewählt. Erstellen Sie eine und nutzen Sie „Neu aus Entität“ im Editor.",
3489
+ "moduleEditor.workflows.select": "Workflow wählen",
3490
+ "moduleEditor.workflows.placeholder": "— Workflow wählen —",
3491
+ "moduleEditor.workflows.new": "Neuer Workflow",
3492
+ "moduleEditor.workflows.empty": "Kein Workflow ausgewählt. Erstellen Sie einen, um Zustände und Übergänge zu entwerfen.",
3493
+ "moduleEditor.data.select": "Datenquelle wählen",
3494
+ "moduleEditor.data.placeholder": "— Datenquelle wählen —",
3495
+ "moduleEditor.data.new": "Neue Datenquelle",
3496
+ "moduleEditor.data.empty": "Keine Datenquelle ausgewählt. Erstellen Sie eine, um eine Abfrage aus dem Modulschema zu erstellen.",
3497
+ "tutorial.moduleEditor.intro.title": "Modul-Editor",
3498
+ "tutorial.moduleEditor.intro.content": "Entwerfen Sie ein ganzes Modul von Anfang bis Ende — Manifest, Entitäten, Übersetzungen, Ansichten, Workflows, Datenquellen und Berechtigungen — und validieren und speichern Sie dann.",
3499
+ "tutorial.moduleEditor.tabs.title": "Modulteile",
3500
+ "tutorial.moduleEditor.tabs.content": "Jeder Tab bearbeitet einen Teil des Moduls: Manifest-Abschnitte, Entitäten, i18n, Ansichten, Workflows, Datenquellen, Berechtigungen und mehr.",
3501
+ "tutorial.moduleEditor.output.title": "Ausgabe",
3502
+ "tutorial.moduleEditor.output.content": "Validierungsergebnisse sowie Lade-/Speichervorgänge werden hier protokolliert.",
3503
+ "tutorial.schemaForm.viewToggle.title": "Formular ⇄ JSON",
3504
+ "tutorial.schemaForm.viewToggle.content": "Wechseln Sie zwischen dem visuellen Formular und dem rohen JSON-Wert — praktisch für Profis und zum Kopieren.",
3505
+ "tutorial.schemaForm.validation.title": "Live-Validierung",
3506
+ "tutorial.schemaForm.validation.content": "Werte werden während der Eingabe gegen das Schema geprüft; Probleme werden unter dem Formular aufgelistet.",
3507
+ "schemaForm.tab.form": "Formular",
3508
+ "schemaForm.tab.json": "JSON",
3509
+ "schemaForm.tab.json.help": "Den rohen JSON-Wert direkt bearbeiten",
3510
+ "schemaForm.invalidJson": "Ungültiges JSON",
2572
3511
  "tutorial.schemaForm.intro.content": "Dieses Formular wird aus einem Schema erzeugt. Pflichtfelder und Validierungsfehler werden markiert; nutzen Sie den JSON-Umschalter für die Rohbearbeitung.",
2573
3512
  "tutorial.entityEditor.intro.title": "Entitäten-Editor",
2574
3513
  "tutorial.entityEditor.intro.content": "Fügen Sie links Entitäten hinzu und bearbeiten Sie rechts die Metadaten jeder Entität sowie ihre Felder (Typ, Schlüssel, Einschränkungen).",
@@ -2719,7 +3658,12 @@ const x = [
2719
3658
  "tutorial.dmxEditor.intro.title": "DMX-Editor",
2720
3659
  "tutorial.dmxEditor.intro.content": "Wählen Sie das FTDI-Gerät und den Port und stellen Sie dann den Wert jedes DMX-Kanals mit den Reglern ein, um Ihre Lichtgeräte live zu steuern.",
2721
3660
  "sidebar.prefs.order.visibilityHint": "Die Reihenfolge gilt für die obersten Einträge innerhalb jeder Quellgruppe. Klappen Sie einen Quell-Header zu, um beim Überprüfen der Änderung nur die obersten Einträge zu sehen."
2722
- }, Ce = {
3661
+ }, Se = {
3662
+ "signature.placeholder": "Signez ici",
3663
+ "controls.now": "Maintenant",
3664
+ "controls.clear": "Effacer",
3665
+ "controls.today": "Aujourd'hui",
3666
+ "controls.confirm": "Confirmer",
2723
3667
  "tutorial.viewEditor.intro.title": "Éditeur de vues",
2724
3668
  "tutorial.viewEditor.intro.content": "Concevez n’importe quel type de vue au même endroit : choisissez le type (ou générez depuis une entité), faites glisser des contrôles depuis la palette dans les cellules de la grille, puis configurez chaque cellule — liaison de données, permissions par rôle et actions d’événement. Basculez Conception / Aperçu / Source et enregistrez quand c’est valide.",
2725
3669
  ok: "OK",
@@ -3445,6 +4389,314 @@ const x = [
3445
4389
  "tutorial.manifestEditor.intro.title": "Éditeur de manifeste",
3446
4390
  "tutorial.manifestEditor.intro.content": "Modifiez le manifeste par sections pilotées par schéma. Basculez entre Formulaire ⇄ JSON par section ; la validation apparaît dans la barre d’état.",
3447
4391
  "tutorial.schemaForm.intro.title": "Formulaire de schéma",
4392
+ "workflowDesigner.name": "Nom",
4393
+ "workflowDesigner.type": "Type",
4394
+ "workflowDesigner.select": "— Sélectionner —",
4395
+ "workflowDesigner.simulate": "Simuler",
4396
+ "workflowDesigner.stop": "Arrêter",
4397
+ "workflowDesigner.test": "Test",
4398
+ "workflowDesigner.publish": "Publier",
4399
+ "workflowDesigner.export": "Exporter",
4400
+ "workflowDesigner.import": "Importer",
4401
+ "workflowDesigner.zoomIn": "Zoom avant",
4402
+ "workflowDesigner.zoomOut": "Zoom arrière",
4403
+ "workflowDesigner.resetView": "Réinitialiser la vue",
4404
+ "workflowDesigner.simulateFlow": "Simuler le flux",
4405
+ "workflowDesigner.testProcess": "Tester le processus",
4406
+ "workflowDesigner.publishProcess": "Publier le processus",
4407
+ "workflowDesigner.exportBpmn": "Exporter le XML BPMN",
4408
+ "workflowDesigner.importBpmn": "Importer le XML BPMN",
4409
+ "workflowDesigner.toolbar": "Barre d’outils du workflow",
4410
+ "workflowDesigner.bpmnToolbar": "Barre d’outils du concepteur BPMN",
4411
+ "workflowDesigner.palette": "Palette d’éléments BPMN",
4412
+ "workflowDesigner.canvas": "Zone de travail du workflow",
4413
+ "workflowDesigner.bpmnCanvas": "Zone de travail BPMN",
4414
+ "workflowDesigner.minimap": "Minicarte",
4415
+ "workflowDesigner.expand": "Développer",
4416
+ "workflowDesigner.collapse": "Réduire",
4417
+ "workflowDesigner.connect": "Connecter",
4418
+ "workflowDesigner.startConnect": "Démarrer la connexion",
4419
+ "workflowDesigner.delete": "Supprimer",
4420
+ "workflowDesigner.deleteElement": "Supprimer l’élément",
4421
+ "workflowDesigner.next": "Suivant",
4422
+ "workflowDesigner.connectHint": "Cliquez sur un élément cible pour connecter, ou sur un espace vide pour annuler",
4423
+ "workflowDesigner.properties": "Propriétés",
4424
+ "workflowDesigner.propertiesOf": "Propriétés : {name}",
4425
+ "workflowDesigner.assignee": "Affecté à",
4426
+ "workflowDesigner.dueDate": "Échéance",
4427
+ "workflowDesigner.dueDatePlaceholder": "P3D (3 jours)",
4428
+ "workflowDesigner.priority": "Priorité",
4429
+ "workflowDesigner.documentation": "Documentation",
4430
+ "workflowDesigner.timer": "Minuteur (ISO 8601)",
4431
+ "workflowDesigner.timerPlaceholder": "PT1H (1 heure) ou R3/PT1H (3 répétitions)",
4432
+ "workflowDesigner.defaultFlow": "Flux par défaut",
4433
+ "workflowDesigner.flowOf": "Flux : {name}",
4434
+ "workflowDesigner.condition": "Condition",
4435
+ "workflowDesigner.deleteFlow": "Supprimer le flux",
4436
+ "workflowDesigner.variables": "Variables du processus",
4437
+ "workflowDesigner.addVariable": "Ajouter une variable",
4438
+ "workflowDesigner.simActiveElement": "Simulation active — élément actuel :",
4439
+ "workflowDesigner.simActiveState": "Simulation active — état actuel :",
4440
+ "workflowDesigner.endSimulation": "Terminer la simulation",
4441
+ "workflowDesigner.addState": "État",
4442
+ "workflowDesigner.addApproval": "Approbation",
4443
+ "workflowDesigner.newState": "Nouvel état",
4444
+ "workflowDesigner.stateLabel": "État : {name}",
4445
+ "workflowDesigner.stateName": "Nom de l’état",
4446
+ "workflowDesigner.deleteState": "Supprimer l’état {name}",
4447
+ "workflowDesigner.stateProps": "Propriétés de l’état",
4448
+ "workflowDesigner.stateType": "Type d’état",
4449
+ "workflowDesigner.val.noInitial": "Aucun état initial",
4450
+ "workflowDesigner.val.multiInitial": "Plus d’un état initial",
4451
+ "workflowDesigner.val.noFinal": "Aucun état final",
4452
+ "workflowDesigner.val.deadEnd": 'L’état "{name}" n’a aucune transition sortante (impasse)',
4453
+ "workflowDesigner.val.orphan": 'L’état "{name}" est inaccessible (orphelin)',
4454
+ "workflowDesigner.val.bpmnNoStart": "Le processus doit comporter au moins un événement de début",
4455
+ "workflowDesigner.val.bpmnNoEnd": "Le processus doit comporter au moins un événement de fin",
4456
+ "workflowDesigner.val.startNoOut": 'L’événement de début "{name}" n’a aucun flux sortant',
4457
+ "workflowDesigner.val.endNoIn": 'L’événement de fin "{name}" n’a aucun flux entrant',
4458
+ "workflowDesigner.val.unreachable": 'L’élément "{name}" est inaccessible',
4459
+ "workflowDesigner.val.elemNoOut": 'L’élément "{name}" n’a aucun flux sortant',
4460
+ "workflowDesigner.val.xorNoConditions": 'La passerelle exclusive "{name}" devrait avoir des conditions sur ses flux',
4461
+ "tutorial.workflowDesigner.toolbar.title": "Barre d’outils",
4462
+ "tutorial.workflowDesigner.toolbar.content": "Ajoutez des états et des approbations, lancez une simulation, puis testez ou publiez le workflow.",
4463
+ "tutorial.workflowDesigner.canvas.title": "Zone de travail",
4464
+ "tutorial.workflowDesigner.canvas.content": "Faites glisser pour disposer les états, cliquez sur l’un pour le modifier et reliez-les en transitions.",
4465
+ "tutorial.workflowDesigner.minimap.title": "Minicarte",
4466
+ "tutorial.workflowDesigner.minimap.content": "Une vue d’ensemble de tout le flux pour une navigation rapide.",
4467
+ "entityEditor.col.name": "Nom",
4468
+ "entityEditor.col.displayName": "Nom d’affichage",
4469
+ "entityEditor.col.table": "Table",
4470
+ "entityEditor.col.fields": "Champs",
4471
+ "entityEditor.col.fields.help": "Nombre de champs définis sur cette entité",
4472
+ "entityEditor.col.flags": "Indicateurs",
4473
+ "entityEditor.flag.audited": "Audité — suit qui a modifié chaque enregistrement et quand",
4474
+ "entityEditor.flag.audited.abbr": "Audit",
4475
+ "entityEditor.flag.softDelete": "Suppression logique — les lignes sont marquées comme supprimées, jamais physiquement effacées",
4476
+ "entityEditor.flag.softDelete.abbr": "Suppr. log.",
4477
+ "entityEditor.search": "Rechercher des entités…",
4478
+ "entityEditor.empty": "Aucune entité pour l’instant. Créez-en une pour commencer.",
4479
+ "entityEditor.new": "Nouvelle entité",
4480
+ "entityEditor.back": "Entités",
4481
+ "entityEditor.backHint": "Retour à la liste des entités",
4482
+ "entityEditor.delete": "Supprimer",
4483
+ "entityEditor.deleteHint": "Supprimer cette entité",
4484
+ "entityEditor.untitled": "Entité sans titre",
4485
+ "entityEditor.tab.general": "Général",
4486
+ "entityEditor.tab.fields": "Champs",
4487
+ "entityEditor.tab.validation": "Validation",
4488
+ "entityEditor.tab.er": "Diagramme ER",
4489
+ "entityEditor.field.name": "Nom",
4490
+ "entityEditor.field.type": "Type",
4491
+ "entityEditor.field.flags": "Contraintes",
4492
+ "entityEditor.field.flags.help": "Contraintes de clé / obligatoire / unique / indexé sur ce champ",
4493
+ "entityEditor.flag.pk": "Clé primaire",
4494
+ "entityEditor.flag.fk": "Clé étrangère",
4495
+ "entityEditor.flag.required": "Obligatoire (NOT NULL)",
4496
+ "entityEditor.flag.unique": "Unique",
4497
+ "entityEditor.flag.indexed": "Indexé",
4498
+ "entityEditor.field.back": "Champs",
4499
+ "entityEditor.field.backHint": "Retour à la liste des champs",
4500
+ "entityEditor.field.untitled": "Nouveau champ",
4501
+ "entityEditor.field.done": "Terminé",
4502
+ "entityEditor.field.add": "Ajouter un champ",
4503
+ "entityEditor.field.search": "Rechercher des champs…",
4504
+ "entityEditor.field.empty": "Aucun champ pour l’instant. Ajoutez-en un pour définir cette entité.",
4505
+ "tutorial.themeBuilder.presets.title": "Préréglages",
4506
+ "tutorial.themeBuilder.presets.content": "Partez d’un préréglage intégré, puis personnalisez — le moyen le plus rapide d’obtenir une palette cohérente.",
4507
+ "tutorial.themeBuilder.sections.title": "Sections de tokens",
4508
+ "tutorial.themeBuilder.sections.content": "Modifiez les tokens par section : couleurs, arrière-plans, texte, bordures, espacements et typographie.",
4509
+ "tutorial.themeBuilder.preview.title": "Aperçu en direct",
4510
+ "tutorial.themeBuilder.preview.content": "Chaque modification est prévisualisée instantanément sur des composants d’exemple, pour juger le thème pendant sa création.",
4511
+ "tutorial.themeBuilder.export.title": "Nommer, appliquer et exporter",
4512
+ "tutorial.themeBuilder.export.content": "Nommez votre thème, appliquez-le à la page ou exportez-le en JSON / variables CSS pour le réutiliser.",
4513
+ "dataSourceBuilder.namePlaceholder": "Nom de la source de données…",
4514
+ "dataSourceBuilder.nameAria": "Nom de la source de données",
4515
+ "tutorial.dataSourceBuilder.name.title": "Nom et clé",
4516
+ "tutorial.dataSourceBuilder.name.content": "Donnez à la source de données un nom lisible ; sa clé stable (utilisée par les vues) est générée automatiquement et affichée à côté.",
4517
+ "lifecycleHooks.enabled": "Activé",
4518
+ "lifecycleHooks.handler": "Gestionnaire",
4519
+ "lifecycleHooks.selectHandler": "— choisir un gestionnaire —",
4520
+ "lifecycleHooks.handlerPlaceholder": "gestionnaire (p. ex. scripts/on-create.js)",
4521
+ "lifecycleHooks.conditionPlaceholder": "condition (facultative)",
4522
+ "lifecycleHooks.condition": "Condition",
4523
+ "lifecycleHooks.moveUp": "Monter",
4524
+ "lifecycleHooks.moveDown": "Descendre",
4525
+ "lifecycleHooks.removeBinding": "Supprimer la liaison",
4526
+ "lifecycleHooks.addHandler": "Ajouter un gestionnaire",
4527
+ "tutorial.lifecycleHooks.bindings.title": "Déclencheurs et liaisons",
4528
+ "tutorial.lifecycleHooks.bindings.content": "Chaque déclencheur liste ses gestionnaires liés. Ajoutez un gestionnaire, basculez son indicateur d’activation, réordonnez-le et définissez éventuellement une condition qui régit l’exécution.",
4529
+ "revisionHistory.revisions": "Versions",
4530
+ "revisionHistory.compare": "Comparer",
4531
+ "revisionHistory.restore": "Restaurer",
4532
+ "revisionHistory.diffEmpty": "Sélectionnez une version et choisissez-en une autre à comparer.",
4533
+ "tutorial.revisionHistory.list.title": "Versions",
4534
+ "tutorial.revisionHistory.list.content": "Sélectionnez une version, puis cliquez sur « Comparer » sur une autre pour les comparer. « Restaurer » revient à cette version.",
4535
+ "tutorial.revisionHistory.diff.title": "Différences",
4536
+ "tutorial.revisionHistory.diff.content": "Examinez les différences côte à côte entre les deux versions sélectionnées.",
4537
+ "accessManager.roles": "Rôles",
4538
+ "accessManager.newRole": "Nouveau rôle…",
4539
+ "accessManager.newRoleAria": "Nom du nouveau rôle",
4540
+ "accessManager.add": "Ajouter",
4541
+ "accessManager.removeRole": "Supprimer le rôle",
4542
+ "accessManager.resources": "Ressources",
4543
+ "accessManager.applyDescendants": "Appliquer à tous les descendants",
4544
+ "accessManager.empty": "Sélectionnez une ressource pour modifier son accès.",
4545
+ "accessManager.collapse": "Réduire",
4546
+ "accessManager.expand": "Développer",
4547
+ "tutorial.accessManager.tree.title": "Rôles et ressources",
4548
+ "tutorial.accessManager.tree.content": "Ajoutez et supprimez des rôles, puis choisissez une ressource dans l’arbre (modules → vues / entités / actions) pour modifier son accès.",
4549
+ "tutorial.accessManager.matrix.title": "Matrice des autorisations",
4550
+ "tutorial.accessManager.matrix.content": "Accordez à chaque rôle ses actions pour la ressource sélectionnée. Utilisez les contrôles groupés ou « Appliquer à tous les descendants » pour propager les autorisations dans l’arbre.",
4551
+ "viewEditor.name": "Nom de la vue",
4552
+ "viewEditor.kindAria": "Type de vue",
4553
+ "viewEditor.kind.form": "Formulaire",
4554
+ "viewEditor.kind.detail": "Détail",
4555
+ "viewEditor.kind.grid": "Grille",
4556
+ "viewEditor.kind.dashboard": "Tableau de bord",
4557
+ "viewEditor.kind.content": "Contenu",
4558
+ "viewEditor.kind.report": "Rapport",
4559
+ "viewEditor.kind.print": "Impression",
4560
+ "viewEditor.kind.mix": "Mix",
4561
+ "viewEditor.fromEntity": "Nouveau depuis une entité…",
4562
+ "viewEditor.fromEntityAria": "Nouvelle vue depuis une entité",
4563
+ "viewEditor.export": "Exporter…",
4564
+ "viewEditor.exportAria": "Exporter la vue",
4565
+ "viewEditor.mode.design": "Conception",
4566
+ "viewEditor.mode.preview": "Aperçu",
4567
+ "viewEditor.mode.source": "Source",
4568
+ "viewEditor.valid": "✓ Valide",
4569
+ "viewEditor.save": "Enregistrer",
4570
+ "viewEditor.add": "Ajouter",
4571
+ "viewEditor.cat.Inputs": "Saisies",
4572
+ "viewEditor.cat.Data": "Données",
4573
+ "viewEditor.cat.BI": "BI",
4574
+ "viewEditor.cat.Actions": "Actions",
4575
+ "viewEditor.cat.Display": "Affichage",
4576
+ "viewEditor.pal.textInput": "Texte",
4577
+ "viewEditor.pal.textArea": "Zone de texte",
4578
+ "viewEditor.pal.numberInput": "Nombre",
4579
+ "viewEditor.pal.select": "Sélection",
4580
+ "viewEditor.pal.checkbox": "Case à cocher",
4581
+ "viewEditor.pal.datePicker": "Date",
4582
+ "viewEditor.pal.dataGrid": "Grille de données",
4583
+ "viewEditor.pal.chart": "Graphique",
4584
+ "viewEditor.pal.kpi": "KPI",
4585
+ "viewEditor.pal.button": "Bouton",
4586
+ "viewEditor.pal.text": "Texte",
4587
+ "viewEditor.pal.heading": "Titre",
4588
+ "viewEditor.pal.badge": "Badge",
4589
+ "viewEditor.pal.card": "Carte",
4590
+ "viewEditor.addRow": "Ajouter une ligne",
4591
+ "viewEditor.canvasEmpty": "Ajoutez une ligne, puis déposez des contrôles depuis la palette — ou démarrez « Nouveau depuis une entité ».",
4592
+ "viewEditor.removeCell": "Supprimer la cellule",
4593
+ "viewEditor.emptyRow": "ligne vide",
4594
+ "viewEditor.control": "Contrôle",
4595
+ "viewEditor.cp.label": "Libellé",
4596
+ "viewEditor.cp.colSpan": "Largeur de colonne",
4597
+ "viewEditor.cp.binding": "Liaison",
4598
+ "viewEditor.cp.dataSource": "Source de données",
4599
+ "viewEditor.cp.none": "— aucune —",
4600
+ "viewEditor.cp.field": "Champ",
4601
+ "viewEditor.cp.fieldPath": "chemin du champ",
4602
+ "viewEditor.cp.twoWay": "Bidirectionnel",
4603
+ "viewEditor.cp.permissions": "Autorisations",
4604
+ "viewEditor.cp.role": "rôle",
4605
+ "viewEditor.cp.addPermission": "Autorisation",
4606
+ "viewEditor.cp.events": "Événements",
4607
+ "viewEditor.cp.eventPlaceholder": "événement (onClick / onValueChange…)",
4608
+ "viewEditor.cp.removeEvent": "Supprimer l’événement",
4609
+ "viewEditor.cp.addEvent": "Événement",
4610
+ "viewEditor.remove": "Supprimer",
4611
+ "viewEditor.ds.title": "Sources de données",
4612
+ "viewEditor.ds.hint": "Sélectionnez un contrôle pour modifier ses props, sa liaison et ses événements.",
4613
+ "viewEditor.ds.key": "clé",
4614
+ "viewEditor.ds.endpoint": "point de terminaison",
4615
+ "viewEditor.ds.autoLoad": "chargement auto",
4616
+ "viewEditor.ds.add": "Source de données",
4617
+ "tutorial.viewEditor.palette.title": "Palette",
4618
+ "tutorial.viewEditor.palette.content": "Ajoutez des contrôles depuis la palette dans la grille — saisies, grilles de données, graphiques, KPI, boutons et blocs d’affichage.",
4619
+ "tutorial.viewEditor.canvas.title": "Zone de travail",
4620
+ "tutorial.viewEditor.canvas.content": "Disposez les cellules en lignes et définissez la largeur de colonne de chaque cellule. Cliquez sur une cellule pour la configurer.",
4621
+ "tutorial.viewEditor.props.title": "Propriétés",
4622
+ "tutorial.viewEditor.props.content": "Configurez le contrôle sélectionné : props, liaison de données, autorisations de rôle et actions d’événement. Sans sélection, gérez les sources de données de la vue.",
4623
+ "tutorial.viewEditor.modes.title": "Conception / Aperçu / Source",
4624
+ "tutorial.viewEditor.modes.content": "Basculez entre le concepteur visuel, un aperçu en direct et le JSON brut NiceViewDefinition. Enregistrez lorsque la vue est valide.",
4625
+ "manifestEditor.tab.scripts": "Scripts",
4626
+ "manifestEditor.tab.lifecycle": "Cycle de vie",
4627
+ "manifestEditor.tab.history": "Historique",
4628
+ "manifestEditor.status.valid": "✓ Valide",
4629
+ "manifestEditor.status.issues": "problèmes",
4630
+ "manifestEditor.sections": "sections",
4631
+ "manifestEditor.output": "Sortie",
4632
+ "tutorial.manifestEditor.sections.title": "Sections",
4633
+ "tutorial.manifestEditor.sections.content": "Le manifeste est divisé en sections basées sur un schéma — passez de l’une à l’autre via les onglets en haut.",
4634
+ "tutorial.manifestEditor.json.title": "Formulaire ⇄ JSON",
4635
+ "tutorial.manifestEditor.json.content": "Chaque section peut être éditée comme un formulaire visuel ou en JSON brut — utilisez le bouton dans la section.",
4636
+ "i18nEditor.keyHead": "Clé",
4637
+ "i18nEditor.removeLocale": "Supprimer la langue",
4638
+ "i18nEditor.keyAria": "Clé de traduction",
4639
+ "i18nEditor.removeKey": "Supprimer la clé",
4640
+ "i18nEditor.empty": "Aucune clé de traduction.",
4641
+ "i18nEditor.newKeyPlaceholder": "nouvelle.clé",
4642
+ "i18nEditor.newKeyAria": "Nouvelle clé",
4643
+ "i18nEditor.addKey": "Clé",
4644
+ "i18nEditor.newLocalePlaceholder": "langue (p. ex. de)",
4645
+ "i18nEditor.newLocaleAria": "Nouvelle langue",
4646
+ "i18nEditor.addLocale": "Langue",
4647
+ "tutorial.i18nEditor.grid.title": "Clés × langues",
4648
+ "tutorial.i18nEditor.grid.content": "Chaque ligne est une clé de traduction et chaque colonne une langue. Modifiez une cellule pour définir une traduction ; les cellules ambrées sont encore manquantes.",
4649
+ "tutorial.i18nEditor.add.title": "Ajouter des clés et des langues",
4650
+ "tutorial.i18nEditor.add.content": "Ajoutez ici une nouvelle clé de traduction ou une nouvelle colonne de langue ; les nouvelles cellules sont vides et signalées comme manquantes.",
4651
+ "moduleEditor.tab.entities": "Entités",
4652
+ "moduleEditor.tab.i18n": "i18n",
4653
+ "moduleEditor.tab.views": "Vues",
4654
+ "moduleEditor.tab.workflows": "Workflows",
4655
+ "moduleEditor.tab.data": "Données",
4656
+ "moduleEditor.tab.permissions": "Autorisations",
4657
+ "moduleEditor.tab.scripts": "Scripts",
4658
+ "moduleEditor.tab.lifecycle": "Cycle de vie",
4659
+ "moduleEditor.tab.history": "Historique",
4660
+ "moduleEditor.tab.source": "Source",
4661
+ "moduleEditor.status.valid": "✓ Valide",
4662
+ "moduleEditor.status.issues": "problèmes",
4663
+ "moduleEditor.searchModules": "Rechercher des modules…",
4664
+ "moduleEditor.loading": "Chargement…",
4665
+ "moduleEditor.noModules": "Aucun module. Ouvrez d’abord une source.",
4666
+ "moduleEditor.title": "Éditeur de modules",
4667
+ "moduleEditor.refresh": "Actualiser",
4668
+ "moduleEditor.validate": "Valider",
4669
+ "moduleEditor.saving": "Enregistrement…",
4670
+ "moduleEditor.save": "Enregistrer",
4671
+ "moduleEditor.output": "Sortie",
4672
+ "moduleEditor.placeholder": "Sélectionnez un module à gauche pour commencer l’édition.",
4673
+ "moduleEditor.delete": "Supprimer",
4674
+ "moduleEditor.views.select": "Sélectionner une vue",
4675
+ "moduleEditor.views.placeholder": "— sélectionner une vue —",
4676
+ "moduleEditor.views.new": "Nouvelle vue",
4677
+ "moduleEditor.views.empty": "Aucune vue sélectionnée. Créez-en une, puis utilisez « Nouveau depuis une entité » dans l’éditeur.",
4678
+ "moduleEditor.workflows.select": "Sélectionner un workflow",
4679
+ "moduleEditor.workflows.placeholder": "— sélectionner un workflow —",
4680
+ "moduleEditor.workflows.new": "Nouveau workflow",
4681
+ "moduleEditor.workflows.empty": "Aucun workflow sélectionné. Créez-en un pour concevoir les états et les transitions.",
4682
+ "moduleEditor.data.select": "Sélectionner une source de données",
4683
+ "moduleEditor.data.placeholder": "— sélectionner une source de données —",
4684
+ "moduleEditor.data.new": "Nouvelle source de données",
4685
+ "moduleEditor.data.empty": "Aucune source de données sélectionnée. Créez-en une pour construire une requête à partir du schéma du module.",
4686
+ "tutorial.moduleEditor.intro.title": "Éditeur de modules",
4687
+ "tutorial.moduleEditor.intro.content": "Concevez un module entier de bout en bout — manifeste, entités, traductions, vues, workflows, sources de données et autorisations — puis validez et enregistrez.",
4688
+ "tutorial.moduleEditor.tabs.title": "Parties du module",
4689
+ "tutorial.moduleEditor.tabs.content": "Chaque onglet édite une partie du module : sections du manifeste, entités, i18n, vues, workflows, sources de données, autorisations et plus.",
4690
+ "tutorial.moduleEditor.output.title": "Sortie",
4691
+ "tutorial.moduleEditor.output.content": "Les résultats de validation et l’activité de chargement/enregistrement sont consignés ici.",
4692
+ "tutorial.schemaForm.viewToggle.title": "Formulaire ⇄ JSON",
4693
+ "tutorial.schemaForm.viewToggle.content": "Basculez entre le formulaire visuel et la valeur JSON brute — pratique pour les utilisateurs avancés et le copier-coller.",
4694
+ "tutorial.schemaForm.validation.title": "Validation en direct",
4695
+ "tutorial.schemaForm.validation.content": "Les valeurs sont validées selon le schéma au fur et à mesure ; les problèmes sont listés sous le formulaire.",
4696
+ "schemaForm.tab.form": "Formulaire",
4697
+ "schemaForm.tab.json": "JSON",
4698
+ "schemaForm.tab.json.help": "Modifier directement la valeur JSON brute",
4699
+ "schemaForm.invalidJson": "JSON invalide",
3448
4700
  "tutorial.schemaForm.intro.content": "Ce formulaire est généré à partir d’un schéma. Les champs obligatoires et les erreurs de validation sont signalés ; utilisez le bouton JSON pour l’édition brute.",
3449
4701
  "tutorial.entityEditor.intro.title": "Éditeur d’entités",
3450
4702
  "tutorial.entityEditor.intro.content": "Ajoutez des entités à gauche, puis modifiez à droite les métadonnées de chaque entité et ses champs (type, clés, contraintes).",
@@ -3595,7 +4847,12 @@ const x = [
3595
4847
  "tutorial.dmxEditor.intro.title": "Éditeur DMX",
3596
4848
  "tutorial.dmxEditor.intro.content": "Choisissez le périphérique FTDI et le port, puis réglez la valeur de chaque canal DMX avec les curseurs pour piloter vos projecteurs en direct.",
3597
4849
  "sidebar.prefs.order.visibilityHint": "L’ordre s’applique aux éléments de premier niveau dans chaque groupe de source. Repliez un en-tête de source pour ne voir que les entrées de premier niveau lors de la vérification."
3598
- }, Se = {
4850
+ }, Ce = {
4851
+ "signature.placeholder": "Firme aquí",
4852
+ "controls.now": "Ahora",
4853
+ "controls.clear": "Borrar",
4854
+ "controls.today": "Hoy",
4855
+ "controls.confirm": "Confirmar",
3599
4856
  "tutorial.viewEditor.intro.title": "Editor de vistas",
3600
4857
  "tutorial.viewEditor.intro.content": "Crea cualquier tipo de vista desde un solo lugar: elige el tipo (o genéralo desde una entidad), arrastra controles desde la paleta a las celdas de la cuadrícula y configura cada celda — enlace de datos, permisos por rol y acciones de eventos. Cambia entre Diseño / Vista previa / Código y guarda cuando sea válido.",
3601
4858
  ok: "OK",
@@ -3981,6 +5238,314 @@ const x = [
3981
5238
  "tutorial.manifestEditor.intro.title": "Editor de manifiesto",
3982
5239
  "tutorial.manifestEditor.intro.content": "Edita el manifiesto en secciones basadas en esquema. Cambia entre Formulario ⇄ JSON por sección; la validación aparece en la barra de estado.",
3983
5240
  "tutorial.schemaForm.intro.title": "Formulario de esquema",
5241
+ "workflowDesigner.name": "Nombre",
5242
+ "workflowDesigner.type": "Tipo",
5243
+ "workflowDesigner.select": "— Seleccionar —",
5244
+ "workflowDesigner.simulate": "Simular",
5245
+ "workflowDesigner.stop": "Detener",
5246
+ "workflowDesigner.test": "Probar",
5247
+ "workflowDesigner.publish": "Publicar",
5248
+ "workflowDesigner.export": "Exportar",
5249
+ "workflowDesigner.import": "Importar",
5250
+ "workflowDesigner.zoomIn": "Acercar",
5251
+ "workflowDesigner.zoomOut": "Alejar",
5252
+ "workflowDesigner.resetView": "Restablecer vista",
5253
+ "workflowDesigner.simulateFlow": "Simular el flujo",
5254
+ "workflowDesigner.testProcess": "Probar el proceso",
5255
+ "workflowDesigner.publishProcess": "Publicar el proceso",
5256
+ "workflowDesigner.exportBpmn": "Exportar XML BPMN",
5257
+ "workflowDesigner.importBpmn": "Importar XML BPMN",
5258
+ "workflowDesigner.toolbar": "Barra de herramientas del flujo",
5259
+ "workflowDesigner.bpmnToolbar": "Barra de herramientas del diseñador BPMN",
5260
+ "workflowDesigner.palette": "Paleta de elementos BPMN",
5261
+ "workflowDesigner.canvas": "Lienzo del flujo",
5262
+ "workflowDesigner.bpmnCanvas": "Lienzo BPMN",
5263
+ "workflowDesigner.minimap": "Minimapa",
5264
+ "workflowDesigner.expand": "Expandir",
5265
+ "workflowDesigner.collapse": "Contraer",
5266
+ "workflowDesigner.connect": "Conectar",
5267
+ "workflowDesigner.startConnect": "Iniciar conexión",
5268
+ "workflowDesigner.delete": "Eliminar",
5269
+ "workflowDesigner.deleteElement": "Eliminar elemento",
5270
+ "workflowDesigner.next": "Siguiente",
5271
+ "workflowDesigner.connectHint": "Haz clic en un elemento de destino para conectar, o en un espacio vacío para cancelar",
5272
+ "workflowDesigner.properties": "Propiedades",
5273
+ "workflowDesigner.propertiesOf": "Propiedades: {name}",
5274
+ "workflowDesigner.assignee": "Asignado a",
5275
+ "workflowDesigner.dueDate": "Fecha límite",
5276
+ "workflowDesigner.dueDatePlaceholder": "P3D (3 días)",
5277
+ "workflowDesigner.priority": "Prioridad",
5278
+ "workflowDesigner.documentation": "Documentación",
5279
+ "workflowDesigner.timer": "Temporizador (ISO 8601)",
5280
+ "workflowDesigner.timerPlaceholder": "PT1H (1 hora) o R3/PT1H (3 repeticiones)",
5281
+ "workflowDesigner.defaultFlow": "Flujo predeterminado",
5282
+ "workflowDesigner.flowOf": "Flujo: {name}",
5283
+ "workflowDesigner.condition": "Condición",
5284
+ "workflowDesigner.deleteFlow": "Eliminar flujo",
5285
+ "workflowDesigner.variables": "Variables del proceso",
5286
+ "workflowDesigner.addVariable": "Añadir variable",
5287
+ "workflowDesigner.simActiveElement": "Simulación activa — elemento actual:",
5288
+ "workflowDesigner.simActiveState": "Simulación activa — estado actual:",
5289
+ "workflowDesigner.endSimulation": "Finalizar simulación",
5290
+ "workflowDesigner.addState": "Estado",
5291
+ "workflowDesigner.addApproval": "Aprobación",
5292
+ "workflowDesigner.newState": "Nuevo estado",
5293
+ "workflowDesigner.stateLabel": "Estado: {name}",
5294
+ "workflowDesigner.stateName": "Nombre del estado",
5295
+ "workflowDesigner.deleteState": "Eliminar estado {name}",
5296
+ "workflowDesigner.stateProps": "Propiedades del estado",
5297
+ "workflowDesigner.stateType": "Tipo de estado",
5298
+ "workflowDesigner.val.noInitial": "No hay estado inicial",
5299
+ "workflowDesigner.val.multiInitial": "Más de un estado inicial",
5300
+ "workflowDesigner.val.noFinal": "No hay estado final",
5301
+ "workflowDesigner.val.deadEnd": 'El estado "{name}" no tiene transiciones salientes (sin salida)',
5302
+ "workflowDesigner.val.orphan": 'El estado "{name}" es inalcanzable (huérfano)',
5303
+ "workflowDesigner.val.bpmnNoStart": "El proceso debe tener al menos un evento de inicio",
5304
+ "workflowDesigner.val.bpmnNoEnd": "El proceso debe tener al menos un evento de fin",
5305
+ "workflowDesigner.val.startNoOut": 'El evento de inicio "{name}" no tiene flujo saliente',
5306
+ "workflowDesigner.val.endNoIn": 'El evento de fin "{name}" no tiene flujo entrante',
5307
+ "workflowDesigner.val.unreachable": 'El elemento "{name}" es inalcanzable',
5308
+ "workflowDesigner.val.elemNoOut": 'El elemento "{name}" no tiene flujo saliente',
5309
+ "workflowDesigner.val.xorNoConditions": 'La compuerta exclusiva "{name}" debería tener condiciones en sus flujos',
5310
+ "tutorial.workflowDesigner.toolbar.title": "Barra de herramientas",
5311
+ "tutorial.workflowDesigner.toolbar.content": "Añade estados y aprobaciones, ejecuta una simulación y luego prueba o publica el flujo.",
5312
+ "tutorial.workflowDesigner.canvas.title": "Lienzo",
5313
+ "tutorial.workflowDesigner.canvas.content": "Arrastra para organizar los estados, haz clic en uno para editarlo y conéctalos en transiciones.",
5314
+ "tutorial.workflowDesigner.minimap.title": "Minimapa",
5315
+ "tutorial.workflowDesigner.minimap.content": "Una vista general de todo el flujo para una navegación rápida.",
5316
+ "entityEditor.col.name": "Nombre",
5317
+ "entityEditor.col.displayName": "Nombre visible",
5318
+ "entityEditor.col.table": "Tabla",
5319
+ "entityEditor.col.fields": "Campos",
5320
+ "entityEditor.col.fields.help": "Número de campos definidos en esta entidad",
5321
+ "entityEditor.col.flags": "Indicadores",
5322
+ "entityEditor.flag.audited": "Auditado — registra quién cambió cada registro y cuándo",
5323
+ "entityEditor.flag.audited.abbr": "Auditoría",
5324
+ "entityEditor.flag.softDelete": "Borrado lógico — las filas se marcan como eliminadas, nunca se borran físicamente",
5325
+ "entityEditor.flag.softDelete.abbr": "Borr. lóg.",
5326
+ "entityEditor.search": "Buscar entidades…",
5327
+ "entityEditor.empty": "Aún no hay entidades. Crea una para empezar.",
5328
+ "entityEditor.new": "Nueva entidad",
5329
+ "entityEditor.back": "Entidades",
5330
+ "entityEditor.backHint": "Volver a la lista de entidades",
5331
+ "entityEditor.delete": "Eliminar",
5332
+ "entityEditor.deleteHint": "Eliminar esta entidad",
5333
+ "entityEditor.untitled": "Entidad sin título",
5334
+ "entityEditor.tab.general": "General",
5335
+ "entityEditor.tab.fields": "Campos",
5336
+ "entityEditor.tab.validation": "Validación",
5337
+ "entityEditor.tab.er": "Diagrama ER",
5338
+ "entityEditor.field.name": "Nombre",
5339
+ "entityEditor.field.type": "Tipo",
5340
+ "entityEditor.field.flags": "Restricciones",
5341
+ "entityEditor.field.flags.help": "Restricciones de clave / obligatorio / único / indexado en este campo",
5342
+ "entityEditor.flag.pk": "Clave primaria",
5343
+ "entityEditor.flag.fk": "Clave foránea",
5344
+ "entityEditor.flag.required": "Obligatorio (NOT NULL)",
5345
+ "entityEditor.flag.unique": "Único",
5346
+ "entityEditor.flag.indexed": "Indexado",
5347
+ "entityEditor.field.back": "Campos",
5348
+ "entityEditor.field.backHint": "Volver a la lista de campos",
5349
+ "entityEditor.field.untitled": "Nuevo campo",
5350
+ "entityEditor.field.done": "Hecho",
5351
+ "entityEditor.field.add": "Añadir campo",
5352
+ "entityEditor.field.search": "Buscar campos…",
5353
+ "entityEditor.field.empty": "Aún no hay campos. Añade uno para definir esta entidad.",
5354
+ "tutorial.themeBuilder.presets.title": "Preajustes",
5355
+ "tutorial.themeBuilder.presets.content": "Empieza con un preajuste integrado y luego personaliza — la forma más rápida de lograr una paleta coherente.",
5356
+ "tutorial.themeBuilder.sections.title": "Secciones de tokens",
5357
+ "tutorial.themeBuilder.sections.content": "Edita los tokens por sección: colores, fondos, texto, bordes, espaciado y tipografía.",
5358
+ "tutorial.themeBuilder.preview.title": "Vista previa en vivo",
5359
+ "tutorial.themeBuilder.preview.content": "Cada cambio se previsualiza al instante en componentes de muestra, para juzgar el tema mientras lo creas.",
5360
+ "tutorial.themeBuilder.export.title": "Nombrar, aplicar y exportar",
5361
+ "tutorial.themeBuilder.export.content": "Da nombre a tu tema, aplícalo a la página o expórtalo como JSON / variables CSS para reutilizarlo.",
5362
+ "dataSourceBuilder.namePlaceholder": "Nombre del origen de datos…",
5363
+ "dataSourceBuilder.nameAria": "Nombre del origen de datos",
5364
+ "tutorial.dataSourceBuilder.name.title": "Nombre y clave",
5365
+ "tutorial.dataSourceBuilder.name.content": "Da al origen de datos un nombre legible; su clave estable (usada por las vistas) se genera automáticamente y se muestra al lado.",
5366
+ "lifecycleHooks.enabled": "Habilitado",
5367
+ "lifecycleHooks.handler": "Controlador",
5368
+ "lifecycleHooks.selectHandler": "— seleccionar controlador —",
5369
+ "lifecycleHooks.handlerPlaceholder": "controlador (p. ej. scripts/on-create.js)",
5370
+ "lifecycleHooks.conditionPlaceholder": "condición (opcional)",
5371
+ "lifecycleHooks.condition": "Condición",
5372
+ "lifecycleHooks.moveUp": "Subir",
5373
+ "lifecycleHooks.moveDown": "Bajar",
5374
+ "lifecycleHooks.removeBinding": "Quitar vinculación",
5375
+ "lifecycleHooks.addHandler": "Añadir controlador",
5376
+ "tutorial.lifecycleHooks.bindings.title": "Disparadores y vinculaciones",
5377
+ "tutorial.lifecycleHooks.bindings.content": "Cada disparador enumera sus controladores vinculados. Añade un controlador, alterna su indicador de habilitado, reordénalo y, opcionalmente, define una condición que controle la ejecución.",
5378
+ "revisionHistory.revisions": "Versiones",
5379
+ "revisionHistory.compare": "Comparar",
5380
+ "revisionHistory.restore": "Restaurar",
5381
+ "revisionHistory.diffEmpty": "Selecciona una versión y elige otra para comparar.",
5382
+ "tutorial.revisionHistory.list.title": "Versiones",
5383
+ "tutorial.revisionHistory.list.content": "Selecciona una versión y luego haz clic en «Comparar» en otra para compararlas. «Restaurar» revierte a esa versión.",
5384
+ "tutorial.revisionHistory.diff.title": "Diferencias",
5385
+ "tutorial.revisionHistory.diff.content": "Revisa las diferencias lado a lado entre las dos versiones seleccionadas.",
5386
+ "accessManager.roles": "Roles",
5387
+ "accessManager.newRole": "Nuevo rol…",
5388
+ "accessManager.newRoleAria": "Nombre del nuevo rol",
5389
+ "accessManager.add": "Añadir",
5390
+ "accessManager.removeRole": "Quitar rol",
5391
+ "accessManager.resources": "Recursos",
5392
+ "accessManager.applyDescendants": "Aplicar a todos los descendientes",
5393
+ "accessManager.empty": "Selecciona un recurso para editar su acceso.",
5394
+ "accessManager.collapse": "Contraer",
5395
+ "accessManager.expand": "Expandir",
5396
+ "tutorial.accessManager.tree.title": "Roles y recursos",
5397
+ "tutorial.accessManager.tree.content": "Añade y quita roles, luego elige un recurso del árbol (módulos → vistas / entidades / acciones) para editar su acceso.",
5398
+ "tutorial.accessManager.matrix.title": "Matriz de permisos",
5399
+ "tutorial.accessManager.matrix.content": "Concede a cada rol sus acciones para el recurso seleccionado. Usa los controles masivos o «Aplicar a todos los descendientes» para propagar los permisos por el árbol.",
5400
+ "viewEditor.name": "Nombre de la vista",
5401
+ "viewEditor.kindAria": "Tipo de vista",
5402
+ "viewEditor.kind.form": "Formulario",
5403
+ "viewEditor.kind.detail": "Detalle",
5404
+ "viewEditor.kind.grid": "Cuadrícula",
5405
+ "viewEditor.kind.dashboard": "Panel",
5406
+ "viewEditor.kind.content": "Contenido",
5407
+ "viewEditor.kind.report": "Informe",
5408
+ "viewEditor.kind.print": "Impresión",
5409
+ "viewEditor.kind.mix": "Mix",
5410
+ "viewEditor.fromEntity": "Nueva desde entidad…",
5411
+ "viewEditor.fromEntityAria": "Nueva vista desde entidad",
5412
+ "viewEditor.export": "Exportar…",
5413
+ "viewEditor.exportAria": "Exportar vista",
5414
+ "viewEditor.mode.design": "Diseño",
5415
+ "viewEditor.mode.preview": "Vista previa",
5416
+ "viewEditor.mode.source": "Origen",
5417
+ "viewEditor.valid": "✓ Válido",
5418
+ "viewEditor.save": "Guardar",
5419
+ "viewEditor.add": "Añadir",
5420
+ "viewEditor.cat.Inputs": "Entradas",
5421
+ "viewEditor.cat.Data": "Datos",
5422
+ "viewEditor.cat.BI": "BI",
5423
+ "viewEditor.cat.Actions": "Acciones",
5424
+ "viewEditor.cat.Display": "Visualización",
5425
+ "viewEditor.pal.textInput": "Texto",
5426
+ "viewEditor.pal.textArea": "Área de texto",
5427
+ "viewEditor.pal.numberInput": "Número",
5428
+ "viewEditor.pal.select": "Selección",
5429
+ "viewEditor.pal.checkbox": "Casilla",
5430
+ "viewEditor.pal.datePicker": "Fecha",
5431
+ "viewEditor.pal.dataGrid": "Cuadrícula de datos",
5432
+ "viewEditor.pal.chart": "Gráfico",
5433
+ "viewEditor.pal.kpi": "KPI",
5434
+ "viewEditor.pal.button": "Botón",
5435
+ "viewEditor.pal.text": "Texto",
5436
+ "viewEditor.pal.heading": "Encabezado",
5437
+ "viewEditor.pal.badge": "Insignia",
5438
+ "viewEditor.pal.card": "Tarjeta",
5439
+ "viewEditor.addRow": "Añadir fila",
5440
+ "viewEditor.canvasEmpty": "Añade una fila y luego suelta controles desde la paleta — o empieza con «Nueva desde entidad».",
5441
+ "viewEditor.removeCell": "Quitar celda",
5442
+ "viewEditor.emptyRow": "fila vacía",
5443
+ "viewEditor.control": "Control",
5444
+ "viewEditor.cp.label": "Etiqueta",
5445
+ "viewEditor.cp.colSpan": "Ancho de columna",
5446
+ "viewEditor.cp.binding": "Vinculación",
5447
+ "viewEditor.cp.dataSource": "Origen de datos",
5448
+ "viewEditor.cp.none": "— ninguno —",
5449
+ "viewEditor.cp.field": "Campo",
5450
+ "viewEditor.cp.fieldPath": "ruta del campo",
5451
+ "viewEditor.cp.twoWay": "Bidireccional",
5452
+ "viewEditor.cp.permissions": "Permisos",
5453
+ "viewEditor.cp.role": "rol",
5454
+ "viewEditor.cp.addPermission": "Permiso",
5455
+ "viewEditor.cp.events": "Eventos",
5456
+ "viewEditor.cp.eventPlaceholder": "evento (onClick / onValueChange…)",
5457
+ "viewEditor.cp.removeEvent": "Quitar evento",
5458
+ "viewEditor.cp.addEvent": "Evento",
5459
+ "viewEditor.remove": "Quitar",
5460
+ "viewEditor.ds.title": "Orígenes de datos",
5461
+ "viewEditor.ds.hint": "Selecciona un control para editar sus props, vinculación y eventos.",
5462
+ "viewEditor.ds.key": "clave",
5463
+ "viewEditor.ds.endpoint": "punto de conexión",
5464
+ "viewEditor.ds.autoLoad": "carga automática",
5465
+ "viewEditor.ds.add": "Origen de datos",
5466
+ "tutorial.viewEditor.palette.title": "Paleta",
5467
+ "tutorial.viewEditor.palette.content": "Añade controles desde la paleta a la cuadrícula — entradas, cuadrículas de datos, gráficos, KPI, botones y bloques de visualización.",
5468
+ "tutorial.viewEditor.canvas.title": "Lienzo",
5469
+ "tutorial.viewEditor.canvas.content": "Organiza las celdas en filas y define el ancho de columna de cada celda. Haz clic en una celda para configurarla.",
5470
+ "tutorial.viewEditor.props.title": "Propiedades",
5471
+ "tutorial.viewEditor.props.content": "Configura el control seleccionado: props, vinculación de datos, permisos de rol y acciones de evento. Sin selección, gestiona los orígenes de datos de la vista.",
5472
+ "tutorial.viewEditor.modes.title": "Diseño / Vista previa / Origen",
5473
+ "tutorial.viewEditor.modes.content": "Alterna entre el diseñador visual, una vista previa en vivo y el JSON sin procesar de NiceViewDefinition. Guarda cuando la vista sea válida.",
5474
+ "manifestEditor.tab.scripts": "Scripts",
5475
+ "manifestEditor.tab.lifecycle": "Ciclo de vida",
5476
+ "manifestEditor.tab.history": "Historial",
5477
+ "manifestEditor.status.valid": "✓ Válido",
5478
+ "manifestEditor.status.issues": "problemas",
5479
+ "manifestEditor.sections": "secciones",
5480
+ "manifestEditor.output": "Salida",
5481
+ "tutorial.manifestEditor.sections.title": "Secciones",
5482
+ "tutorial.manifestEditor.sections.content": "El manifiesto se divide en secciones basadas en esquema; cambia entre ellas con las pestañas de arriba.",
5483
+ "tutorial.manifestEditor.json.title": "Formulario ⇄ JSON",
5484
+ "tutorial.manifestEditor.json.content": "Cada sección se puede editar como formulario visual o como JSON sin procesar; usa el conmutador dentro de la sección.",
5485
+ "i18nEditor.keyHead": "Clave",
5486
+ "i18nEditor.removeLocale": "Quitar idioma",
5487
+ "i18nEditor.keyAria": "Clave de traducción",
5488
+ "i18nEditor.removeKey": "Quitar clave",
5489
+ "i18nEditor.empty": "Aún no hay claves de traducción.",
5490
+ "i18nEditor.newKeyPlaceholder": "nueva.clave",
5491
+ "i18nEditor.newKeyAria": "Nueva clave",
5492
+ "i18nEditor.addKey": "Clave",
5493
+ "i18nEditor.newLocalePlaceholder": "idioma (p. ej. de)",
5494
+ "i18nEditor.newLocaleAria": "Nuevo idioma",
5495
+ "i18nEditor.addLocale": "Idioma",
5496
+ "tutorial.i18nEditor.grid.title": "Claves × idiomas",
5497
+ "tutorial.i18nEditor.grid.content": "Cada fila es una clave de traducción y cada columna un idioma. Edita una celda para establecer una traducción; las celdas ámbar aún faltan.",
5498
+ "tutorial.i18nEditor.add.title": "Añadir claves e idiomas",
5499
+ "tutorial.i18nEditor.add.content": "Añade aquí una nueva clave de traducción o una nueva columna de idioma; las nuevas celdas están vacías y se marcan como faltantes.",
5500
+ "moduleEditor.tab.entities": "Entidades",
5501
+ "moduleEditor.tab.i18n": "i18n",
5502
+ "moduleEditor.tab.views": "Vistas",
5503
+ "moduleEditor.tab.workflows": "Flujos",
5504
+ "moduleEditor.tab.data": "Datos",
5505
+ "moduleEditor.tab.permissions": "Permisos",
5506
+ "moduleEditor.tab.scripts": "Scripts",
5507
+ "moduleEditor.tab.lifecycle": "Ciclo de vida",
5508
+ "moduleEditor.tab.history": "Historial",
5509
+ "moduleEditor.tab.source": "Origen",
5510
+ "moduleEditor.status.valid": "✓ Válido",
5511
+ "moduleEditor.status.issues": "problemas",
5512
+ "moduleEditor.searchModules": "Buscar módulos…",
5513
+ "moduleEditor.loading": "Cargando…",
5514
+ "moduleEditor.noModules": "No hay módulos. Abre primero un origen.",
5515
+ "moduleEditor.title": "Editor de módulos",
5516
+ "moduleEditor.refresh": "Actualizar",
5517
+ "moduleEditor.validate": "Validar",
5518
+ "moduleEditor.saving": "Guardando…",
5519
+ "moduleEditor.save": "Guardar",
5520
+ "moduleEditor.output": "Salida",
5521
+ "moduleEditor.placeholder": "Selecciona un módulo de la izquierda para empezar a editar.",
5522
+ "moduleEditor.delete": "Eliminar",
5523
+ "moduleEditor.views.select": "Seleccionar vista",
5524
+ "moduleEditor.views.placeholder": "— seleccionar vista —",
5525
+ "moduleEditor.views.new": "Nueva vista",
5526
+ "moduleEditor.views.empty": "Ninguna vista seleccionada. Crea una y luego usa «Nueva desde entidad» en el editor.",
5527
+ "moduleEditor.workflows.select": "Seleccionar flujo",
5528
+ "moduleEditor.workflows.placeholder": "— seleccionar flujo —",
5529
+ "moduleEditor.workflows.new": "Nuevo flujo",
5530
+ "moduleEditor.workflows.empty": "Ningún flujo seleccionado. Crea uno para diseñar estados y transiciones.",
5531
+ "moduleEditor.data.select": "Seleccionar origen de datos",
5532
+ "moduleEditor.data.placeholder": "— seleccionar origen de datos —",
5533
+ "moduleEditor.data.new": "Nuevo origen de datos",
5534
+ "moduleEditor.data.empty": "Ningún origen de datos seleccionado. Crea uno para construir una consulta a partir del esquema del módulo.",
5535
+ "tutorial.moduleEditor.intro.title": "Editor de módulos",
5536
+ "tutorial.moduleEditor.intro.content": "Diseña un módulo completo de principio a fin: manifiesto, entidades, traducciones, vistas, flujos, orígenes de datos y permisos; luego valida y guarda.",
5537
+ "tutorial.moduleEditor.tabs.title": "Partes del módulo",
5538
+ "tutorial.moduleEditor.tabs.content": "Cada pestaña edita una parte del módulo: secciones del manifiesto, entidades, i18n, vistas, flujos, orígenes de datos, permisos y más.",
5539
+ "tutorial.moduleEditor.output.title": "Salida",
5540
+ "tutorial.moduleEditor.output.content": "Los resultados de validación y la actividad de carga/guardado se registran aquí.",
5541
+ "tutorial.schemaForm.viewToggle.title": "Formulario ⇄ JSON",
5542
+ "tutorial.schemaForm.viewToggle.content": "Alterna entre el formulario visual y el valor JSON sin procesar — útil para usuarios avanzados y para copiar y pegar.",
5543
+ "tutorial.schemaForm.validation.title": "Validación en vivo",
5544
+ "tutorial.schemaForm.validation.content": "Los valores se validan contra el esquema mientras escribes; los problemas se enumeran debajo del formulario.",
5545
+ "schemaForm.tab.form": "Formulario",
5546
+ "schemaForm.tab.json": "JSON",
5547
+ "schemaForm.tab.json.help": "Editar directamente el valor JSON sin procesar",
5548
+ "schemaForm.invalidJson": "JSON no válido",
3984
5549
  "tutorial.schemaForm.intro.content": "Este formulario se genera a partir de un esquema. Los campos obligatorios y los errores de validación se resaltan; usa el conmutador JSON para la edición en bruto.",
3985
5550
  "tutorial.entityEditor.intro.title": "Editor de entidades",
3986
5551
  "tutorial.entityEditor.intro.content": "Añade entidades a la izquierda y edita a la derecha los metadatos de cada entidad y sus campos (tipo, claves, restricciones).",
@@ -4470,6 +6035,10 @@ const x = [
4470
6035
  "vectorEditor.layers.lock": "Bloquear",
4471
6036
  "vectorEditor.layers.unlock": "Desbloquear"
4472
6037
  }, De = {
6038
+ "controls.now": "Adesso",
6039
+ "controls.clear": "Cancella",
6040
+ "controls.today": "Oggi",
6041
+ "controls.confirm": "Conferma",
4473
6042
  ok: "OK",
4474
6043
  cancel: "Annulla",
4475
6044
  save: "Salva",
@@ -4755,6 +6324,10 @@ const x = [
4755
6324
  "tutorial.dmxEditor.intro.title": "Editor DMX",
4756
6325
  "tutorial.dmxEditor.intro.content": "Scegli il dispositivo FTDI e la porta, poi imposta il valore di ogni canale DMX con i cursori per controllare dal vivo i tuoi fari."
4757
6326
  }, je = {
6327
+ "controls.now": "Agora",
6328
+ "controls.clear": "Limpar",
6329
+ "controls.today": "Hoje",
6330
+ "controls.confirm": "Confirmar",
4758
6331
  ok: "OK",
4759
6332
  cancel: "Cancelar",
4760
6333
  save: "Salvar",
@@ -5118,6 +6691,10 @@ const x = [
5118
6691
  "wm.newWindow": "Nova janela",
5119
6692
  "wm.moveToFront": "Trazer para frente"
5120
6693
  }, Ae = {
6694
+ "controls.now": "Nu",
6695
+ "controls.clear": "Wissen",
6696
+ "controls.today": "Vandaag",
6697
+ "controls.confirm": "Bevestigen",
5121
6698
  ok: "OK",
5122
6699
  cancel: "Annuleren",
5123
6700
  save: "Opslaan",
@@ -5203,6 +6780,10 @@ const x = [
5203
6780
  "lang.zh": "Chinees",
5204
6781
  "lang.ar": "Arabisch"
5205
6782
  }, Pe = {
6783
+ "controls.now": "Nu",
6784
+ "controls.clear": "Rensa",
6785
+ "controls.today": "Idag",
6786
+ "controls.confirm": "Bekräfta",
5206
6787
  ok: "OK",
5207
6788
  cancel: "Avbryt",
5208
6789
  save: "Spara",
@@ -5272,7 +6853,11 @@ const x = [
5272
6853
  "lang.ko": "Koreanska",
5273
6854
  "lang.zh": "Kinesiska",
5274
6855
  "lang.ar": "Arabiska"
5275
- }, Te = {
6856
+ }, xe = {
6857
+ "controls.now": "Nå",
6858
+ "controls.clear": "Tøm",
6859
+ "controls.today": "I dag",
6860
+ "controls.confirm": "Bekreft",
5276
6861
  ok: "OK",
5277
6862
  cancel: "Avbryt",
5278
6863
  save: "Lagre",
@@ -5335,7 +6920,11 @@ const x = [
5335
6920
  "lang.ko": "Koreansk",
5336
6921
  "lang.zh": "Kinesisk",
5337
6922
  "lang.ar": "Arabisk"
5338
- }, xe = {
6923
+ }, Te = {
6924
+ "controls.now": "Nu",
6925
+ "controls.clear": "Ryd",
6926
+ "controls.today": "I dag",
6927
+ "controls.confirm": "Bekræft",
5339
6928
  ok: "OK",
5340
6929
  cancel: "Annuller",
5341
6930
  save: "Gem",
@@ -5399,6 +6988,10 @@ const x = [
5399
6988
  "lang.zh": "Kinesisk",
5400
6989
  "lang.ar": "Arabisk"
5401
6990
  }, Be = {
6991
+ "controls.now": "Nyt",
6992
+ "controls.clear": "Tyhjennä",
6993
+ "controls.today": "Tänään",
6994
+ "controls.confirm": "Vahvista",
5402
6995
  ok: "OK",
5403
6996
  cancel: "Peruuta",
5404
6997
  save: "Tallenna",
@@ -5461,7 +7054,11 @@ const x = [
5461
7054
  "lang.ko": "Korea",
5462
7055
  "lang.zh": "Kiina",
5463
7056
  "lang.ar": "Arabia"
5464
- }, Me = {
7057
+ }, Ne = {
7058
+ "controls.now": "Nyní",
7059
+ "controls.clear": "Vymazat",
7060
+ "controls.today": "Dnes",
7061
+ "controls.confirm": "Potvrdit",
5465
7062
  ok: "OK",
5466
7063
  cancel: "Zrušit",
5467
7064
  save: "Uložit",
@@ -5824,7 +7421,11 @@ const x = [
5824
7421
  "wm.minimizeAll": "Minimalizovat vše",
5825
7422
  "wm.newWindow": "Nové okno",
5826
7423
  "wm.moveToFront": "Přenést dopředu"
5827
- }, Fe = {
7424
+ }, Me = {
7425
+ "controls.now": "Teraz",
7426
+ "controls.clear": "Vymazať",
7427
+ "controls.today": "Dnes",
7428
+ "controls.confirm": "Potvrdiť",
5828
7429
  ok: "OK",
5829
7430
  cancel: "Zrušiť",
5830
7431
  save: "Uložiť",
@@ -5887,7 +7488,11 @@ const x = [
5887
7488
  "lang.ko": "Kórejčina",
5888
7489
  "lang.zh": "Čínština",
5889
7490
  "lang.ar": "Arabčina"
5890
- }, Ne = {
7491
+ }, Fe = {
7492
+ "controls.now": "Most",
7493
+ "controls.clear": "Törlés",
7494
+ "controls.today": "Ma",
7495
+ "controls.confirm": "Megerősít",
5891
7496
  ok: "OK",
5892
7497
  cancel: "Mégse",
5893
7498
  save: "Mentés",
@@ -5951,6 +7556,10 @@ const x = [
5951
7556
  "lang.zh": "Kínai",
5952
7557
  "lang.ar": "Arab"
5953
7558
  }, Re = {
7559
+ "controls.now": "Acum",
7560
+ "controls.clear": "Șterge",
7561
+ "controls.today": "Astăzi",
7562
+ "controls.confirm": "Confirmă",
5954
7563
  ok: "OK",
5955
7564
  cancel: "Anulare",
5956
7565
  save: "Salvare",
@@ -6006,6 +7615,10 @@ const x = [
6006
7615
  "lang.zh": "Chineză",
6007
7616
  "lang.ar": "Arabă"
6008
7617
  }, Le = {
7618
+ "controls.now": "Сега",
7619
+ "controls.clear": "Изчисти",
7620
+ "controls.today": "Днес",
7621
+ "controls.confirm": "Потвърди",
6009
7622
  ok: "OK",
6010
7623
  cancel: "Отказ",
6011
7624
  save: "Запис",
@@ -6061,6 +7674,11 @@ const x = [
6061
7674
  "lang.zh": "Китайски",
6062
7675
  "lang.ar": "Арабски"
6063
7676
  }, Oe = {
7677
+ "signature.placeholder": "Підпишіть тут",
7678
+ "controls.now": "Зараз",
7679
+ "controls.clear": "Очистити",
7680
+ "controls.today": "Сьогодні",
7681
+ "controls.confirm": "Підтвердити",
6064
7682
  "tutorial.viewEditor.intro.title": "Редактор подань",
6065
7683
  "tutorial.viewEditor.intro.content": "Створюйте будь-який тип подання в одному місці: виберіть тип (або згенеруйте із сутності), перетягуйте елементи керування з палітри в клітинки сітки, а потім налаштуйте кожну клітинку — прив’язку даних, дозволи за ролями та дії подій. Перемикайте «Дизайн / Перегляд / Код» і зберігайте, коли подання правильне.",
6066
7684
  ok: "OK",
@@ -6446,6 +8064,314 @@ const x = [
6446
8064
  "tutorial.manifestEditor.intro.title": "Редактор маніфесту",
6447
8065
  "tutorial.manifestEditor.intro.content": "Редагуйте маніфест у розділах на основі схеми. Перемикайте Форма ⇄ JSON для кожного розділу; перевірка з’являється в рядку стану.",
6448
8066
  "tutorial.schemaForm.intro.title": "Форма за схемою",
8067
+ "workflowDesigner.name": "Назва",
8068
+ "workflowDesigner.type": "Тип",
8069
+ "workflowDesigner.select": "— Вибрати —",
8070
+ "workflowDesigner.simulate": "Симулювати",
8071
+ "workflowDesigner.stop": "Стоп",
8072
+ "workflowDesigner.test": "Тест",
8073
+ "workflowDesigner.publish": "Опублікувати",
8074
+ "workflowDesigner.export": "Експорт",
8075
+ "workflowDesigner.import": "Імпорт",
8076
+ "workflowDesigner.zoomIn": "Збільшити",
8077
+ "workflowDesigner.zoomOut": "Зменшити",
8078
+ "workflowDesigner.resetView": "Скинути вигляд",
8079
+ "workflowDesigner.simulateFlow": "Симулювати потік",
8080
+ "workflowDesigner.testProcess": "Тестувати процес",
8081
+ "workflowDesigner.publishProcess": "Опублікувати процес",
8082
+ "workflowDesigner.exportBpmn": "Експортувати BPMN XML",
8083
+ "workflowDesigner.importBpmn": "Імпортувати BPMN XML",
8084
+ "workflowDesigner.toolbar": "Панель інструментів робочого процесу",
8085
+ "workflowDesigner.bpmnToolbar": "Панель інструментів конструктора BPMN",
8086
+ "workflowDesigner.palette": "Палітра елементів BPMN",
8087
+ "workflowDesigner.canvas": "Полотно робочого процесу",
8088
+ "workflowDesigner.bpmnCanvas": "Полотно BPMN",
8089
+ "workflowDesigner.minimap": "Мінікарта",
8090
+ "workflowDesigner.expand": "Розгорнути",
8091
+ "workflowDesigner.collapse": "Згорнути",
8092
+ "workflowDesigner.connect": "З’єднати",
8093
+ "workflowDesigner.startConnect": "Почати з’єднання",
8094
+ "workflowDesigner.delete": "Видалити",
8095
+ "workflowDesigner.deleteElement": "Видалити елемент",
8096
+ "workflowDesigner.next": "Далі",
8097
+ "workflowDesigner.connectHint": "Натисніть на цільовий елемент, щоб з’єднати, або на порожнє місце, щоб скасувати",
8098
+ "workflowDesigner.properties": "Властивості",
8099
+ "workflowDesigner.propertiesOf": "Властивості: {name}",
8100
+ "workflowDesigner.assignee": "Призначено",
8101
+ "workflowDesigner.dueDate": "Термін",
8102
+ "workflowDesigner.dueDatePlaceholder": "P3D (3 дні)",
8103
+ "workflowDesigner.priority": "Пріоритет",
8104
+ "workflowDesigner.documentation": "Документація",
8105
+ "workflowDesigner.timer": "Таймер (ISO 8601)",
8106
+ "workflowDesigner.timerPlaceholder": "PT1H (1 година) або R3/PT1H (3 повторення)",
8107
+ "workflowDesigner.defaultFlow": "Потік за замовчуванням",
8108
+ "workflowDesigner.flowOf": "Потік: {name}",
8109
+ "workflowDesigner.condition": "Умова",
8110
+ "workflowDesigner.deleteFlow": "Видалити потік",
8111
+ "workflowDesigner.variables": "Змінні процесу",
8112
+ "workflowDesigner.addVariable": "Додати змінну",
8113
+ "workflowDesigner.simActiveElement": "Симуляція активна — поточний елемент:",
8114
+ "workflowDesigner.simActiveState": "Симуляція активна — поточний стан:",
8115
+ "workflowDesigner.endSimulation": "Завершити симуляцію",
8116
+ "workflowDesigner.addState": "Стан",
8117
+ "workflowDesigner.addApproval": "Затвердження",
8118
+ "workflowDesigner.newState": "Новий стан",
8119
+ "workflowDesigner.stateLabel": "Стан: {name}",
8120
+ "workflowDesigner.stateName": "Назва стану",
8121
+ "workflowDesigner.deleteState": "Видалити стан {name}",
8122
+ "workflowDesigner.stateProps": "Властивості стану",
8123
+ "workflowDesigner.stateType": "Тип стану",
8124
+ "workflowDesigner.val.noInitial": "Немає початкового стану",
8125
+ "workflowDesigner.val.multiInitial": "Більше одного початкового стану",
8126
+ "workflowDesigner.val.noFinal": "Немає кінцевого стану",
8127
+ "workflowDesigner.val.deadEnd": 'Стан "{name}" не має вихідних переходів (глухий кут)',
8128
+ "workflowDesigner.val.orphan": 'Стан "{name}" недосяжний (сирота)',
8129
+ "workflowDesigner.val.bpmnNoStart": "Процес повинен мати щонайменше одну початкову подію",
8130
+ "workflowDesigner.val.bpmnNoEnd": "Процес повинен мати щонайменше одну кінцеву подію",
8131
+ "workflowDesigner.val.startNoOut": 'Початкова подія "{name}" не має вихідного потоку',
8132
+ "workflowDesigner.val.endNoIn": 'Кінцева подія "{name}" не має вхідного потоку',
8133
+ "workflowDesigner.val.unreachable": 'Елемент "{name}" недосяжний',
8134
+ "workflowDesigner.val.elemNoOut": 'Елемент "{name}" не має вихідного потоку',
8135
+ "workflowDesigner.val.xorNoConditions": 'Виключний шлюз "{name}" повинен мати умови на потоках',
8136
+ "tutorial.workflowDesigner.toolbar.title": "Панель інструментів",
8137
+ "tutorial.workflowDesigner.toolbar.content": "Додавайте стани та затвердження, запустіть симуляцію, а потім протестуйте або опублікуйте робочий процес.",
8138
+ "tutorial.workflowDesigner.canvas.title": "Полотно",
8139
+ "tutorial.workflowDesigner.canvas.content": "Перетягуйте, щоб розташувати стани, клацніть один, щоб редагувати, і з’єднуйте їх у переходи.",
8140
+ "tutorial.workflowDesigner.minimap.title": "Мінікарта",
8141
+ "tutorial.workflowDesigner.minimap.content": "Огляд усього потоку з висоти пташиного польоту для швидкої навігації.",
8142
+ "entityEditor.col.name": "Назва",
8143
+ "entityEditor.col.displayName": "Відображувана назва",
8144
+ "entityEditor.col.table": "Таблиця",
8145
+ "entityEditor.col.fields": "Поля",
8146
+ "entityEditor.col.fields.help": "Кількість полів, визначених для цієї сутності",
8147
+ "entityEditor.col.flags": "Прапорці",
8148
+ "entityEditor.flag.audited": "Аудит — відстежує, хто і коли змінив кожен запис",
8149
+ "entityEditor.flag.audited.abbr": "Аудит",
8150
+ "entityEditor.flag.softDelete": "М’яке видалення — рядки позначаються як видалені, але фізично не вилучаються",
8151
+ "entityEditor.flag.softDelete.abbr": "М’яке вид.",
8152
+ "entityEditor.search": "Пошук сутностей…",
8153
+ "entityEditor.empty": "Сутностей ще немає. Створіть одну, щоб почати.",
8154
+ "entityEditor.new": "Нова сутність",
8155
+ "entityEditor.back": "Сутності",
8156
+ "entityEditor.backHint": "Назад до списку сутностей",
8157
+ "entityEditor.delete": "Видалити",
8158
+ "entityEditor.deleteHint": "Видалити цю сутність",
8159
+ "entityEditor.untitled": "Сутність без назви",
8160
+ "entityEditor.tab.general": "Загальне",
8161
+ "entityEditor.tab.fields": "Поля",
8162
+ "entityEditor.tab.validation": "Перевірка",
8163
+ "entityEditor.tab.er": "ER-діаграма",
8164
+ "entityEditor.field.name": "Назва",
8165
+ "entityEditor.field.type": "Тип",
8166
+ "entityEditor.field.flags": "Обмеження",
8167
+ "entityEditor.field.flags.help": "Обмеження ключа / обов’язковості / унікальності / індексу для цього поля",
8168
+ "entityEditor.flag.pk": "Первинний ключ",
8169
+ "entityEditor.flag.fk": "Зовнішній ключ",
8170
+ "entityEditor.flag.required": "Обов’язкове (NOT NULL)",
8171
+ "entityEditor.flag.unique": "Унікальне",
8172
+ "entityEditor.flag.indexed": "Індексоване",
8173
+ "entityEditor.field.back": "Поля",
8174
+ "entityEditor.field.backHint": "Назад до списку полів",
8175
+ "entityEditor.field.untitled": "Нове поле",
8176
+ "entityEditor.field.done": "Готово",
8177
+ "entityEditor.field.add": "Додати поле",
8178
+ "entityEditor.field.search": "Пошук полів…",
8179
+ "entityEditor.field.empty": "Полів ще немає. Додайте одне, щоб визначити цю сутність.",
8180
+ "tutorial.themeBuilder.presets.title": "Пресети",
8181
+ "tutorial.themeBuilder.presets.content": "Почніть із вбудованого пресету, потім налаштуйте — найшвидший шлях до узгодженої палітри.",
8182
+ "tutorial.themeBuilder.sections.title": "Секції токенів",
8183
+ "tutorial.themeBuilder.sections.content": "Редагуйте токени за секціями: кольори, фони, текст, межі, відступи й типографіка.",
8184
+ "tutorial.themeBuilder.preview.title": "Живий перегляд",
8185
+ "tutorial.themeBuilder.preview.content": "Кожна зміна миттєво відображається на зразкових компонентах, тож ви оцінюєте тему під час створення.",
8186
+ "tutorial.themeBuilder.export.title": "Назва, застосування та експорт",
8187
+ "tutorial.themeBuilder.export.content": "Назвіть тему, застосуйте її до сторінки або експортуйте як JSON / змінні CSS для повторного використання.",
8188
+ "dataSourceBuilder.namePlaceholder": "Назва джерела даних…",
8189
+ "dataSourceBuilder.nameAria": "Назва джерела даних",
8190
+ "tutorial.dataSourceBuilder.name.title": "Назва та ключ",
8191
+ "tutorial.dataSourceBuilder.name.content": "Дайте джерелу даних читабельну назву; його стабільний ключ (використовується поданнями) генерується автоматично та показується поруч.",
8192
+ "lifecycleHooks.enabled": "Увімкнено",
8193
+ "lifecycleHooks.handler": "Обробник",
8194
+ "lifecycleHooks.selectHandler": "— виберіть обробник —",
8195
+ "lifecycleHooks.handlerPlaceholder": "обробник (напр. scripts/on-create.js)",
8196
+ "lifecycleHooks.conditionPlaceholder": "умова (необов’язково)",
8197
+ "lifecycleHooks.condition": "Умова",
8198
+ "lifecycleHooks.moveUp": "Вгору",
8199
+ "lifecycleHooks.moveDown": "Вниз",
8200
+ "lifecycleHooks.removeBinding": "Видалити прив’язку",
8201
+ "lifecycleHooks.addHandler": "Додати обробник",
8202
+ "tutorial.lifecycleHooks.bindings.title": "Тригери та прив’язки",
8203
+ "tutorial.lifecycleHooks.bindings.content": "Кожен тригер перелічує свої прив’язані обробники. Додайте обробник, перемкніть прапорець увімкнення, змініть порядок і за потреби задайте умову, що керує виконанням.",
8204
+ "revisionHistory.revisions": "Версії",
8205
+ "revisionHistory.compare": "Порівняти",
8206
+ "revisionHistory.restore": "Відновити",
8207
+ "revisionHistory.diffEmpty": "Виберіть версію та вкажіть іншу для порівняння.",
8208
+ "tutorial.revisionHistory.list.title": "Версії",
8209
+ "tutorial.revisionHistory.list.content": "Виберіть версію, потім натисніть «Порівняти» на іншій, щоб зіставити їх. «Відновити» повертає до цієї версії.",
8210
+ "tutorial.revisionHistory.diff.title": "Відмінності",
8211
+ "tutorial.revisionHistory.diff.content": "Перегляньте відмінності між двома вибраними версіями поруч.",
8212
+ "accessManager.roles": "Ролі",
8213
+ "accessManager.newRole": "Нова роль…",
8214
+ "accessManager.newRoleAria": "Назва нової ролі",
8215
+ "accessManager.add": "Додати",
8216
+ "accessManager.removeRole": "Видалити роль",
8217
+ "accessManager.resources": "Ресурси",
8218
+ "accessManager.applyDescendants": "Застосувати до всіх нащадків",
8219
+ "accessManager.empty": "Виберіть ресурс, щоб редагувати його доступ.",
8220
+ "accessManager.collapse": "Згорнути",
8221
+ "accessManager.expand": "Розгорнути",
8222
+ "tutorial.accessManager.tree.title": "Ролі та ресурси",
8223
+ "tutorial.accessManager.tree.content": "Додавайте та видаляйте ролі, потім виберіть ресурс із дерева (модулі → подання / сутності / дії), щоб редагувати його доступ.",
8224
+ "tutorial.accessManager.matrix.title": "Матриця дозволів",
8225
+ "tutorial.accessManager.matrix.content": "Надайте кожній ролі її дії для вибраного ресурсу. Використовуйте групові елементи керування або «Застосувати до всіх нащадків», щоб каскадувати дозволи вниз по дереву.",
8226
+ "viewEditor.name": "Назва подання",
8227
+ "viewEditor.kindAria": "Тип подання",
8228
+ "viewEditor.kind.form": "Форма",
8229
+ "viewEditor.kind.detail": "Деталі",
8230
+ "viewEditor.kind.grid": "Сітка",
8231
+ "viewEditor.kind.dashboard": "Дашборд",
8232
+ "viewEditor.kind.content": "Вміст",
8233
+ "viewEditor.kind.report": "Звіт",
8234
+ "viewEditor.kind.print": "Друк",
8235
+ "viewEditor.kind.mix": "Мікс",
8236
+ "viewEditor.fromEntity": "Нове з сутності…",
8237
+ "viewEditor.fromEntityAria": "Нове подання з сутності",
8238
+ "viewEditor.export": "Експорт…",
8239
+ "viewEditor.exportAria": "Експортувати подання",
8240
+ "viewEditor.mode.design": "Дизайн",
8241
+ "viewEditor.mode.preview": "Перегляд",
8242
+ "viewEditor.mode.source": "Джерело",
8243
+ "viewEditor.valid": "✓ Дійсний",
8244
+ "viewEditor.save": "Зберегти",
8245
+ "viewEditor.add": "Додати",
8246
+ "viewEditor.cat.Inputs": "Поля вводу",
8247
+ "viewEditor.cat.Data": "Дані",
8248
+ "viewEditor.cat.BI": "BI",
8249
+ "viewEditor.cat.Actions": "Дії",
8250
+ "viewEditor.cat.Display": "Відображення",
8251
+ "viewEditor.pal.textInput": "Текст",
8252
+ "viewEditor.pal.textArea": "Текстова область",
8253
+ "viewEditor.pal.numberInput": "Число",
8254
+ "viewEditor.pal.select": "Вибір",
8255
+ "viewEditor.pal.checkbox": "Прапорець",
8256
+ "viewEditor.pal.datePicker": "Дата",
8257
+ "viewEditor.pal.dataGrid": "Сітка даних",
8258
+ "viewEditor.pal.chart": "Діаграма",
8259
+ "viewEditor.pal.kpi": "KPI",
8260
+ "viewEditor.pal.button": "Кнопка",
8261
+ "viewEditor.pal.text": "Текст",
8262
+ "viewEditor.pal.heading": "Заголовок",
8263
+ "viewEditor.pal.badge": "Бейдж",
8264
+ "viewEditor.pal.card": "Картка",
8265
+ "viewEditor.addRow": "Додати рядок",
8266
+ "viewEditor.canvasEmpty": "Додайте рядок, потім перетягніть контролі з палітри — або почніть із «Нове з сутності».",
8267
+ "viewEditor.removeCell": "Видалити клітинку",
8268
+ "viewEditor.emptyRow": "порожній рядок",
8269
+ "viewEditor.control": "Контроль",
8270
+ "viewEditor.cp.label": "Підпис",
8271
+ "viewEditor.cp.colSpan": "Ширина стовпця",
8272
+ "viewEditor.cp.binding": "Прив’язка",
8273
+ "viewEditor.cp.dataSource": "Джерело даних",
8274
+ "viewEditor.cp.none": "— немає —",
8275
+ "viewEditor.cp.field": "Поле",
8276
+ "viewEditor.cp.fieldPath": "шлях поля",
8277
+ "viewEditor.cp.twoWay": "Двостороннє",
8278
+ "viewEditor.cp.permissions": "Дозволи",
8279
+ "viewEditor.cp.role": "роль",
8280
+ "viewEditor.cp.addPermission": "Дозвіл",
8281
+ "viewEditor.cp.events": "Події",
8282
+ "viewEditor.cp.eventPlaceholder": "подія (onClick / onValueChange…)",
8283
+ "viewEditor.cp.removeEvent": "Видалити подію",
8284
+ "viewEditor.cp.addEvent": "Подія",
8285
+ "viewEditor.remove": "Видалити",
8286
+ "viewEditor.ds.title": "Джерела даних",
8287
+ "viewEditor.ds.hint": "Виберіть контроль, щоб редагувати його props, прив’язку та події.",
8288
+ "viewEditor.ds.key": "ключ",
8289
+ "viewEditor.ds.endpoint": "кінцева точка",
8290
+ "viewEditor.ds.autoLoad": "автозавантаження",
8291
+ "viewEditor.ds.add": "Джерело даних",
8292
+ "tutorial.viewEditor.palette.title": "Палітра",
8293
+ "tutorial.viewEditor.palette.content": "Додавайте контролі з палітри в сітку — поля вводу, сітки даних, діаграми, KPI, кнопки та блоки відображення.",
8294
+ "tutorial.viewEditor.canvas.title": "Полотно",
8295
+ "tutorial.viewEditor.canvas.content": "Розташовуйте клітинки в рядки та задавайте ширину стовпця кожної клітинки. Клацніть клітинку, щоб налаштувати її.",
8296
+ "tutorial.viewEditor.props.title": "Властивості",
8297
+ "tutorial.viewEditor.props.content": "Налаштуйте вибраний контроль: props, прив’язку даних, дозволи ролей і дії подій. Коли нічого не вибрано, керуйте джерелами даних подання.",
8298
+ "tutorial.viewEditor.modes.title": "Дизайн / Перегляд / Джерело",
8299
+ "tutorial.viewEditor.modes.content": "Перемикайтеся між візуальним дизайнером, живим переглядом і необробленим JSON NiceViewDefinition. Зберігайте, коли подання дійсне.",
8300
+ "manifestEditor.tab.scripts": "Скрипти",
8301
+ "manifestEditor.tab.lifecycle": "Життєвий цикл",
8302
+ "manifestEditor.tab.history": "Історія",
8303
+ "manifestEditor.status.valid": "✓ Дійсний",
8304
+ "manifestEditor.status.issues": "проблем",
8305
+ "manifestEditor.sections": "секцій",
8306
+ "manifestEditor.output": "Вивід",
8307
+ "tutorial.manifestEditor.sections.title": "Секції",
8308
+ "tutorial.manifestEditor.sections.content": "Маніфест поділено на секції на основі схеми — перемикайтеся між ними вкладками вгорі.",
8309
+ "tutorial.manifestEditor.json.title": "Форма ⇄ JSON",
8310
+ "tutorial.manifestEditor.json.content": "Кожну секцію можна редагувати як візуальну форму або як необроблений JSON — скористайтеся перемикачем у секції.",
8311
+ "i18nEditor.keyHead": "Ключ",
8312
+ "i18nEditor.removeLocale": "Видалити мову",
8313
+ "i18nEditor.keyAria": "Ключ перекладу",
8314
+ "i18nEditor.removeKey": "Видалити ключ",
8315
+ "i18nEditor.empty": "Поки немає ключів перекладу.",
8316
+ "i18nEditor.newKeyPlaceholder": "новий.ключ",
8317
+ "i18nEditor.newKeyAria": "Новий ключ",
8318
+ "i18nEditor.addKey": "Ключ",
8319
+ "i18nEditor.newLocalePlaceholder": "мова (напр. de)",
8320
+ "i18nEditor.newLocaleAria": "Нова мова",
8321
+ "i18nEditor.addLocale": "Мова",
8322
+ "tutorial.i18nEditor.grid.title": "Ключі × мови",
8323
+ "tutorial.i18nEditor.grid.content": "Кожен рядок — ключ перекладу, а кожна колонка — мова. Відредагуйте клітинку, щоб задати переклад; бурштинові клітинки досі порожні.",
8324
+ "tutorial.i18nEditor.add.title": "Додати ключі та мови",
8325
+ "tutorial.i18nEditor.add.content": "Додайте тут новий ключ перекладу або нову колонку мови; нові клітинки порожні й позначені як відсутні.",
8326
+ "moduleEditor.tab.entities": "Сутності",
8327
+ "moduleEditor.tab.i18n": "i18n",
8328
+ "moduleEditor.tab.views": "Подання",
8329
+ "moduleEditor.tab.workflows": "Процеси",
8330
+ "moduleEditor.tab.data": "Дані",
8331
+ "moduleEditor.tab.permissions": "Дозволи",
8332
+ "moduleEditor.tab.scripts": "Скрипти",
8333
+ "moduleEditor.tab.lifecycle": "Життєвий цикл",
8334
+ "moduleEditor.tab.history": "Історія",
8335
+ "moduleEditor.tab.source": "Джерело",
8336
+ "moduleEditor.status.valid": "✓ Дійсний",
8337
+ "moduleEditor.status.issues": "проблем",
8338
+ "moduleEditor.searchModules": "Пошук модулів…",
8339
+ "moduleEditor.loading": "Завантаження…",
8340
+ "moduleEditor.noModules": "Немає модулів. Спершу відкрийте джерело.",
8341
+ "moduleEditor.title": "Редактор модулів",
8342
+ "moduleEditor.refresh": "Оновити",
8343
+ "moduleEditor.validate": "Перевірити",
8344
+ "moduleEditor.saving": "Збереження…",
8345
+ "moduleEditor.save": "Зберегти",
8346
+ "moduleEditor.output": "Вивід",
8347
+ "moduleEditor.placeholder": "Виберіть модуль ліворуч, щоб почати редагування.",
8348
+ "moduleEditor.delete": "Видалити",
8349
+ "moduleEditor.views.select": "Вибрати подання",
8350
+ "moduleEditor.views.placeholder": "— виберіть подання —",
8351
+ "moduleEditor.views.new": "Нове подання",
8352
+ "moduleEditor.views.empty": "Подання не вибрано. Створіть його, а потім скористайтеся «Нове з сутності» в редакторі.",
8353
+ "moduleEditor.workflows.select": "Вибрати процес",
8354
+ "moduleEditor.workflows.placeholder": "— виберіть процес —",
8355
+ "moduleEditor.workflows.new": "Новий процес",
8356
+ "moduleEditor.workflows.empty": "Процес не вибрано. Створіть його, щоб проєктувати стани та переходи.",
8357
+ "moduleEditor.data.select": "Вибрати джерело даних",
8358
+ "moduleEditor.data.placeholder": "— виберіть джерело даних —",
8359
+ "moduleEditor.data.new": "Нове джерело даних",
8360
+ "moduleEditor.data.empty": "Джерело даних не вибрано. Створіть його, щоб побудувати запит зі схеми модуля.",
8361
+ "tutorial.moduleEditor.intro.title": "Редактор модулів",
8362
+ "tutorial.moduleEditor.intro.content": "Проєктуйте цілий модуль від початку до кінця — маніфест, сутності, переклади, подання, процеси, джерела даних і дозволи — потім перевіряйте та зберігайте.",
8363
+ "tutorial.moduleEditor.tabs.title": "Частини модуля",
8364
+ "tutorial.moduleEditor.tabs.content": "Кожна вкладка редагує одну частину модуля: секції маніфесту, сутності, i18n, подання, процеси, джерела даних, дозволи тощо.",
8365
+ "tutorial.moduleEditor.output.title": "Вивід",
8366
+ "tutorial.moduleEditor.output.content": "Тут реєструються результати перевірки та дії завантаження/збереження.",
8367
+ "tutorial.schemaForm.viewToggle.title": "Форма ⇄ JSON",
8368
+ "tutorial.schemaForm.viewToggle.content": "Перемикайтеся між візуальною формою та необробленим значенням JSON — зручно для досвідчених користувачів і копіювання.",
8369
+ "tutorial.schemaForm.validation.title": "Валідація в реальному часі",
8370
+ "tutorial.schemaForm.validation.content": "Значення перевіряються за схемою під час введення; будь-які проблеми перелічені під формою.",
8371
+ "schemaForm.tab.form": "Форма",
8372
+ "schemaForm.tab.json": "JSON",
8373
+ "schemaForm.tab.json.help": "Редагувати необроблене значення JSON напряму",
8374
+ "schemaForm.invalidJson": "Некоректний JSON",
6449
8375
  "tutorial.schemaForm.intro.content": "Ця форма генерується зі схеми. Обов’язкові поля та помилки перевірки підсвічуються; використовуйте перемикач JSON для прямого редагування.",
6450
8376
  "tutorial.entityEditor.intro.title": "Редактор сутностей",
6451
8377
  "tutorial.entityEditor.intro.content": "Додавайте сутності ліворуч, а праворуч редагуйте метадані кожної сутності та її поля (тип, ключі, обмеження).",
@@ -6935,6 +8861,10 @@ const x = [
6935
8861
  "vectorEditor.layers.lock": "Заблокувати",
6936
8862
  "vectorEditor.layers.unlock": "Розблокувати"
6937
8863
  }, Ie = {
8864
+ "controls.now": "現在",
8865
+ "controls.clear": "クリア",
8866
+ "controls.today": "今日",
8867
+ "controls.confirm": "確定",
6938
8868
  ok: "OK",
6939
8869
  cancel: "キャンセル",
6940
8870
  save: "保存",
@@ -7297,7 +9227,11 @@ const x = [
7297
9227
  "wm.minimizeAll": "すべて最小化",
7298
9228
  "wm.newWindow": "新しいウィンドウ",
7299
9229
  "wm.moveToFront": "最前面に移動"
7300
- }, Ve = {
9230
+ }, He = {
9231
+ "controls.now": "지금",
9232
+ "controls.clear": "지우기",
9233
+ "controls.today": "오늘",
9234
+ "controls.confirm": "확인",
7301
9235
  ok: "확인",
7302
9236
  cancel: "취소",
7303
9237
  save: "저장",
@@ -7660,7 +9594,11 @@ const x = [
7660
9594
  "wm.minimizeAll": "모두 최소화",
7661
9595
  "wm.newWindow": "새 창",
7662
9596
  "wm.moveToFront": "맨 앞으로"
7663
- }, He = {
9597
+ }, Ve = {
9598
+ "controls.now": "现在",
9599
+ "controls.clear": "清除",
9600
+ "controls.today": "今天",
9601
+ "controls.confirm": "确认",
7664
9602
  ok: "确定",
7665
9603
  cancel: "取消",
7666
9604
  save: "保存",
@@ -8024,6 +9962,10 @@ const x = [
8024
9962
  "wm.newWindow": "新建窗口",
8025
9963
  "wm.moveToFront": "置于最前"
8026
9964
  }, qe = {
9965
+ "controls.now": "الآن",
9966
+ "controls.clear": "مسح",
9967
+ "controls.today": "اليوم",
9968
+ "controls.confirm": "تأكيد",
8027
9969
  ok: "حسناً",
8028
9970
  cancel: "إلغاء",
8029
9971
  save: "حفظ",
@@ -8387,6 +10329,10 @@ const x = [
8387
10329
  "wm.newWindow": "نافذة جديدة",
8388
10330
  "wm.moveToFront": "نقل إلى الأمام"
8389
10331
  }, We = {
10332
+ "controls.now": "अभी",
10333
+ "controls.clear": "साफ़ करें",
10334
+ "controls.today": "आज",
10335
+ "controls.confirm": "पुष्टि करें",
8390
10336
  ok: "ठीक है",
8391
10337
  cancel: "रद्द करें",
8392
10338
  save: "सहेजें",
@@ -8397,7 +10343,11 @@ const x = [
8397
10343
  error: "त्रुटि",
8398
10344
  success: "सफलता",
8399
10345
  search: "खोजें"
8400
- }, Ue = {
10346
+ }, Ke = {
10347
+ "controls.now": "এখন",
10348
+ "controls.clear": "সাফ করুন",
10349
+ "controls.today": "আজ",
10350
+ "controls.confirm": "নিশ্চিত করুন",
8401
10351
  ok: "ঠিক আছে",
8402
10352
  cancel: "বাতিল",
8403
10353
  save: "সংরক্ষণ",
@@ -8408,7 +10358,11 @@ const x = [
8408
10358
  error: "ত্রুটি",
8409
10359
  success: "সফল",
8410
10360
  search: "অনুসন্ধান"
8411
- }, Ke = {
10361
+ }, Ue = {
10362
+ "controls.now": "ตอนนี้",
10363
+ "controls.clear": "ล้าง",
10364
+ "controls.today": "วันนี้",
10365
+ "controls.confirm": "ยืนยัน",
8412
10366
  ok: "ตกลง",
8413
10367
  cancel: "ยกเลิก",
8414
10368
  save: "บันทึก",
@@ -8419,7 +10373,11 @@ const x = [
8419
10373
  error: "ข้อผิดพลาด",
8420
10374
  success: "สำเร็จ",
8421
10375
  search: "ค้นหา"
8422
- }, Ge = {
10376
+ }, Ze = {
10377
+ "controls.now": "Bây giờ",
10378
+ "controls.clear": "Xóa",
10379
+ "controls.today": "Hôm nay",
10380
+ "controls.confirm": "Xác nhận",
8423
10381
  ok: "OK",
8424
10382
  cancel: "Hủy",
8425
10383
  save: "Lưu",
@@ -8430,7 +10388,11 @@ const x = [
8430
10388
  error: "Lỗi",
8431
10389
  success: "Thành công",
8432
10390
  search: "Tìm kiếm"
8433
- }, Ze = {
10391
+ }, Ge = {
10392
+ "controls.now": "Sekarang",
10393
+ "controls.clear": "Hapus",
10394
+ "controls.today": "Hari ini",
10395
+ "controls.confirm": "Konfirmasi",
8434
10396
  ok: "OK",
8435
10397
  cancel: "Batal",
8436
10398
  save: "Simpan",
@@ -8442,6 +10404,10 @@ const x = [
8442
10404
  success: "Berhasil",
8443
10405
  search: "Cari"
8444
10406
  }, Je = {
10407
+ "controls.now": "Sasa",
10408
+ "controls.clear": "Futa",
10409
+ "controls.today": "Leo",
10410
+ "controls.confirm": "Thibitisha",
8445
10411
  ok: "Sawa",
8446
10412
  cancel: "Ghairi",
8447
10413
  save: "Hifadhi",
@@ -8453,6 +10419,10 @@ const x = [
8453
10419
  success: "Imefanikiwa",
8454
10420
  search: "Tafuta"
8455
10421
  }, Xe = {
10422
+ "controls.now": "Ngayon",
10423
+ "controls.clear": "I-clear",
10424
+ "controls.today": "Ngayong araw",
10425
+ "controls.confirm": "Kumpirmahin",
8456
10426
  ok: "OK",
8457
10427
  cancel: "Kanselahin",
8458
10428
  save: "I-save",
@@ -8464,6 +10434,10 @@ const x = [
8464
10434
  success: "Tagumpay",
8465
10435
  search: "Maghanap"
8466
10436
  }, Ye = {
10437
+ "controls.now": "Sekarang",
10438
+ "controls.clear": "Kosongkan",
10439
+ "controls.today": "Hari ini",
10440
+ "controls.confirm": "Sahkan",
8467
10441
  ok: "OK",
8468
10442
  cancel: "Batal",
8469
10443
  save: "Simpan",
@@ -8474,34 +10448,34 @@ const x = [
8474
10448
  error: "Ralat",
8475
10449
  success: "Berjaya",
8476
10450
  search: "Cari"
8477
- }, w = {
10451
+ }, E = {
8478
10452
  en: ke,
8479
10453
  pl: ye,
8480
10454
  de: ze,
8481
- fr: Ce,
8482
- es: Se,
10455
+ fr: Se,
10456
+ es: Ce,
8483
10457
  it: De,
8484
10458
  pt: je,
8485
10459
  nl: Ae,
8486
10460
  sv: Pe,
8487
- no: Te,
8488
- da: xe,
10461
+ no: xe,
10462
+ da: Te,
8489
10463
  fi: Be,
8490
- cs: Me,
8491
- sk: Fe,
8492
- hu: Ne,
10464
+ cs: Ne,
10465
+ sk: Me,
10466
+ hu: Fe,
8493
10467
  ro: Re,
8494
10468
  bg: Le,
8495
10469
  uk: Oe,
8496
10470
  ja: Ie,
8497
- ko: Ve,
8498
- zh: He,
10471
+ ko: He,
10472
+ zh: Ve,
8499
10473
  ar: qe,
8500
10474
  hi: We,
8501
- bn: Ue,
8502
- th: Ke,
8503
- vi: Ge,
8504
- id: Ze,
10475
+ bn: Ke,
10476
+ th: Ue,
10477
+ vi: Ze,
10478
+ id: Ge,
8505
10479
  sw: Je,
8506
10480
  fil: Xe,
8507
10481
  ms: Ye
@@ -8557,29 +10531,29 @@ const x = [
8557
10531
  "pl-PL": { formal: X, informal: Y },
8558
10532
  pl: { formal: X, informal: Y }
8559
10533
  };
8560
- function Kt(e) {
10534
+ function Ut(e) {
8561
10535
  var t;
8562
- return { ...w.pl, ...((t = $e.pl) == null ? void 0 : t[e]) ?? {} };
10536
+ return { ...E.pl, ...((t = $e.pl) == null ? void 0 : t[e]) ?? {} };
8563
10537
  }
8564
- const _e = (e, t) => t, te = I(_e), Gt = ({
10538
+ const Qe = (e, t) => t, te = I(Qe), Zt = ({
8565
10539
  t: e,
8566
10540
  lang: t = "en",
8567
10541
  overrides: i,
8568
10542
  children: o
8569
10543
  }) => {
8570
- const r = b(() => {
10544
+ const r = f(() => {
8571
10545
  if (e)
8572
10546
  return e;
8573
- const a = w[t] ?? w.en, n = i ? { ...a, ...i } : a;
10547
+ const a = E[t] ?? E.en, n = i ? { ...a, ...i } : a;
8574
10548
  return (s, l) => n[s] ?? l;
8575
10549
  }, [e, t, i]);
8576
10550
  return /* @__PURE__ */ O(te.Provider, { value: r, children: o });
8577
10551
  };
8578
- function Zt() {
10552
+ function Gt() {
8579
10553
  return { t: B(te) };
8580
10554
  }
8581
10555
  function Jt(e = "en", t) {
8582
- const i = w[e] ?? w.en, o = t ? { ...i, ...t } : i;
10556
+ const i = E[e] ?? E.en, o = t ? { ...i, ...t } : i;
8583
10557
  return (r, a) => o[r] ?? a;
8584
10558
  }
8585
10559
  function Xt(e, t = {}) {
@@ -8595,15 +10569,15 @@ function Xt(e, t = {}) {
8595
10569
  }
8596
10570
  ), i;
8597
10571
  }
8598
- function Qe(e) {
8599
- return x.includes(e);
10572
+ function _e(e) {
10573
+ return T.includes(e);
8600
10574
  }
8601
10575
  function Yt() {
8602
10576
  var t;
8603
10577
  if (typeof navigator > "u")
8604
10578
  return "en";
8605
10579
  const e = (t = navigator.language) == null ? void 0 : t.split("-")[0];
8606
- return Qe(e) ? e : "en";
10580
+ return _e(e) ? e : "en";
8607
10581
  }
8608
10582
  function oe(e, t) {
8609
10583
  var a;
@@ -8777,7 +10751,7 @@ function it(e, t, i) {
8777
10751
  }
8778
10752
  return new Intl.DateTimeFormat(t, r).format(o);
8779
10753
  }
8780
- function H(e, t, i) {
10754
+ function V(e, t, i) {
8781
10755
  return e.replace(/#/g, String(i));
8782
10756
  }
8783
10757
  function rt(e, t = {}, i = {}) {
@@ -8801,20 +10775,20 @@ function rt(e, t = {}, i = {}) {
8801
10775
  case "plural": {
8802
10776
  if (typeof d != "number" || !l.options)
8803
10777
  return n;
8804
- const u = oe(d, o), v = `=${d}`, p = l.options[v] ?? l.options[u] ?? l.options.other ?? "";
8805
- return H(p, l.name, d);
10778
+ const u = oe(d, o), w = `=${d}`, p = l.options[w] ?? l.options[u] ?? l.options.other ?? "";
10779
+ return V(p, l.name, d);
8806
10780
  }
8807
10781
  case "selectordinal": {
8808
10782
  if (typeof d != "number" || !l.options)
8809
10783
  return n;
8810
- const u = ie(d, o), v = l.options[u] ?? l.options.other ?? "";
8811
- return H(v, l.name, d);
10784
+ const u = ie(d, o), w = l.options[u] ?? l.options.other ?? "";
10785
+ return V(w, l.name, d);
8812
10786
  }
8813
10787
  case "select": {
8814
10788
  if (!l.options)
8815
10789
  return n;
8816
10790
  const u = l.options[String(d)] ?? l.options.other ?? "";
8817
- return H(u, l.name, d);
10791
+ return V(u, l.name, d);
8818
10792
  }
8819
10793
  default:
8820
10794
  return n;
@@ -8827,11 +10801,11 @@ function $t(e, t = "en") {
8827
10801
  return a ? rt(n, a, { lang: t }) : n;
8828
10802
  };
8829
10803
  }
8830
- function _t(e, t, i = "en") {
10804
+ function Qt(e, t, i = "en") {
8831
10805
  const o = oe(e, i);
8832
10806
  return (t[o] ?? t.other).replace(/#/g, String(e));
8833
10807
  }
8834
- function Qt(e, t, i = "en") {
10808
+ function _t(e, t, i = "en") {
8835
10809
  const o = ie(e, i);
8836
10810
  return (t[o] ?? t.other).replace(/#/g, String(e));
8837
10811
  }
@@ -8913,7 +10887,7 @@ function ct(e) {
8913
10887
  "text-align: right": "text-align: end"
8914
10888
  }[e] || e;
8915
10889
  }
8916
- const G = I({
10890
+ const Z = I({
8917
10891
  dir: "ltr",
8918
10892
  isRTL: !1,
8919
10893
  flip: (e) => e,
@@ -8927,7 +10901,7 @@ const G = I({
8927
10901
  L(() => {
8928
10902
  t && st(e);
8929
10903
  }, [e, t]);
8930
- const a = b(
10904
+ const a = f(
8931
10905
  () => ({
8932
10906
  dir: r,
8933
10907
  isRTL: o,
@@ -8936,13 +10910,13 @@ const G = I({
8936
10910
  }),
8937
10911
  [r, o]
8938
10912
  );
8939
- return /* @__PURE__ */ O(G.Provider, { value: a, children: i });
10913
+ return /* @__PURE__ */ O(Z.Provider, { value: a, children: i });
8940
10914
  };
8941
10915
  function ro() {
8942
- return B(G);
10916
+ return B(Z);
8943
10917
  }
8944
10918
  function ao() {
8945
- return B(G).isRTL;
10919
+ return B(Z).isRTL;
8946
10920
  }
8947
10921
  function no(e) {
8948
10922
  const t = [], i = [
@@ -8975,18 +10949,18 @@ function so(e) {
8975
10949
  };
8976
10950
  }
8977
10951
  function lo() {
8978
- return Object.keys(w.en);
10952
+ return Object.keys(E.en);
8979
10953
  }
8980
10954
  function ut(e) {
8981
10955
  if (e === "en")
8982
10956
  return [];
8983
- const t = w.en, i = w[e], o = [];
10957
+ const t = E.en, i = E[e], o = [];
8984
10958
  for (const [r, a] of Object.entries(t))
8985
10959
  i[r] || o.push({ key: r, englishValue: a });
8986
10960
  return o;
8987
10961
  }
8988
10962
  function pt(e) {
8989
- const t = Object.keys(w.en).length, i = Object.keys(w[e]).length, o = t - i, r = Math.round(i / t * 100);
10963
+ const t = Object.keys(E.en).length, i = Object.keys(E[e]).length, o = t - i, r = Math.round(i / t * 100);
8990
10964
  return {
8991
10965
  lang: e,
8992
10966
  totalKeys: t,
@@ -8996,7 +10970,7 @@ function pt(e) {
8996
10970
  };
8997
10971
  }
8998
10972
  function mt() {
8999
- return x.map((e) => pt(e));
10973
+ return T.map((e) => pt(e));
9000
10974
  }
9001
10975
  function co(e, t) {
9002
10976
  const i = t.map((o) => {
@@ -9086,22 +11060,22 @@ function ht(e, t = "medium") {
9086
11060
  const n = r instanceof Date ? r : new Date(r), s = a instanceof Date ? a : new Date(a);
9087
11061
  return o.formatRange(n, s);
9088
11062
  },
9089
- formatRelative: (r) => wt(r instanceof Date ? r : new Date(r), i)
11063
+ formatRelative: (r) => Et(r instanceof Date ? r : new Date(r), i)
9090
11064
  };
9091
11065
  }
9092
11066
  function po(e, t = "medium") {
9093
- return b(() => ht(e, t), [e, t]);
11067
+ return f(() => ht(e, t), [e, t]);
9094
11068
  }
9095
- function vt(e, t = "short") {
11069
+ function wt(e, t = "short") {
9096
11070
  const i = D(e), o = new Intl.DateTimeFormat(i, { timeStyle: t });
9097
11071
  return {
9098
11072
  format: (r) => o.format(r instanceof Date ? r : new Date(r))
9099
11073
  };
9100
11074
  }
9101
11075
  function mo(e, t = "short") {
9102
- return b(() => vt(e, t), [e, t]);
11076
+ return f(() => wt(e, t), [e, t]);
9103
11077
  }
9104
- function ft(e) {
11078
+ function vt(e) {
9105
11079
  const t = D(e);
9106
11080
  return {
9107
11081
  format: (i) => new Intl.NumberFormat(t).format(i),
@@ -9110,18 +11084,18 @@ function ft(e) {
9110
11084
  };
9111
11085
  }
9112
11086
  function go(e) {
9113
- return b(() => ft(e), [e]);
11087
+ return f(() => vt(e), [e]);
9114
11088
  }
9115
- function bt(e, t = "USD") {
11089
+ function ft(e, t = "USD") {
9116
11090
  const i = D(e), o = new Intl.NumberFormat(i, { style: "currency", currency: t });
9117
11091
  return {
9118
11092
  format: (r) => o.format(r)
9119
11093
  };
9120
11094
  }
9121
11095
  function ho(e, t = "USD") {
9122
- return b(() => bt(e, t), [e, t]);
11096
+ return f(() => ft(e, t), [e, t]);
9123
11097
  }
9124
- function wt(e, t) {
11098
+ function Et(e, t) {
9125
11099
  const i = Date.now(), o = e.getTime() - i, r = Math.abs(o), a = new Intl.RelativeTimeFormat(t, { numeric: "auto" });
9126
11100
  return r < 6e4 ? a.format(Math.round(o / 1e3), "second") : r < 36e5 ? a.format(Math.round(o / 6e4), "minute") : r < 864e5 ? a.format(Math.round(o / 36e5), "hour") : r < 2592e6 ? a.format(Math.round(o / 864e5), "day") : r < 31536e6 ? a.format(Math.round(o / 2592e6), "month") : a.format(Math.round(o / 31536e6), "year");
9127
11101
  }
@@ -9277,12 +11251,12 @@ const ae = [
9277
11251
  }
9278
11252
  }
9279
11253
  ];
9280
- function Et(e, t) {
11254
+ function bt(e, t) {
9281
11255
  const i = ae.find((o) => o.en.toLowerCase() === e.toLowerCase());
9282
11256
  return i == null ? void 0 : i.translations[t];
9283
11257
  }
9284
- function vo(e, t, i = 0.8) {
9285
- const o = w.en, r = w[t], a = e.toLowerCase().trim();
11258
+ function wo(e, t, i = 0.8) {
11259
+ const o = E.en, r = E[t], a = e.toLowerCase().trim();
9286
11260
  let n;
9287
11261
  for (const [s, l] of Object.entries(o)) {
9288
11262
  const d = r[s];
@@ -9293,16 +11267,16 @@ function vo(e, t, i = 0.8) {
9293
11267
  }
9294
11268
  return n;
9295
11269
  }
9296
- function fo(e) {
11270
+ function vo(e) {
9297
11271
  return ae.filter((t) => t.translations[e] != null).map((t) => ({
9298
11272
  en: t.en,
9299
11273
  translation: t.translations[e]
9300
11274
  }));
9301
11275
  }
9302
- function bo(e) {
9303
- const t = w[e], i = w.en, o = [];
11276
+ function fo(e) {
11277
+ const t = E[e], i = E.en, o = [];
9304
11278
  for (const [r, a] of Object.entries(i)) {
9305
- const n = Et(a, e), s = t[r];
11279
+ const n = bt(a, e), s = t[r];
9306
11280
  n && s && s !== n && o.push({ key: r, currentTranslation: s, glossaryTranslation: n });
9307
11281
  }
9308
11282
  return o;
@@ -9385,45 +11359,45 @@ const ne = {
9385
11359
  "Pacific/Fiji"
9386
11360
  ]
9387
11361
  };
9388
- function Z() {
11362
+ function G() {
9389
11363
  try {
9390
11364
  return Intl.DateTimeFormat().resolvedOptions().timeZone;
9391
11365
  } catch {
9392
11366
  return "UTC";
9393
11367
  }
9394
11368
  }
9395
- function wo(e) {
11369
+ function Eo(e) {
9396
11370
  try {
9397
11371
  return new Intl.DateTimeFormat("en", { timeZone: e }), !0;
9398
11372
  } catch {
9399
11373
  return !1;
9400
11374
  }
9401
11375
  }
9402
- function M(e, t = "en", i = /* @__PURE__ */ new Date()) {
9403
- var E, F;
11376
+ function N(e, t = "en", i = /* @__PURE__ */ new Date()) {
11377
+ var b, M;
9404
11378
  const o = D(t), r = new Intl.DateTimeFormat(o, {
9405
11379
  timeZone: e,
9406
11380
  timeZoneName: "long"
9407
11381
  }), a = new Intl.DateTimeFormat(o, {
9408
11382
  timeZone: e,
9409
11383
  timeZoneName: "short"
9410
- }), n = r.formatToParts(i), s = a.formatToParts(i), l = ((E = n.find((A) => A.type === "timeZoneName")) == null ? void 0 : E.value) || e, d = ((F = s.find((A) => A.type === "timeZoneName")) == null ? void 0 : F.value) || e, u = new Date(i.toLocaleString("en-US", { timeZone: "UTC" })), v = new Date(i.toLocaleString("en-US", { timeZone: e })), p = Math.round((v.getTime() - u.getTime()) / 6e4), m = new Date(i.getFullYear(), 0, 1), f = new Date(i.getFullYear(), 6, 1), g = U(e, m), y = U(e, f), z = U(e, i), k = Math.min(g, y), j = z !== k && g !== y;
11384
+ }), n = r.formatToParts(i), s = a.formatToParts(i), l = ((b = n.find((A) => A.type === "timeZoneName")) == null ? void 0 : b.value) || e, d = ((M = s.find((A) => A.type === "timeZoneName")) == null ? void 0 : M.value) || e, u = new Date(i.toLocaleString("en-US", { timeZone: "UTC" })), w = new Date(i.toLocaleString("en-US", { timeZone: e })), p = Math.round((w.getTime() - u.getTime()) / 6e4), m = new Date(i.getFullYear(), 0, 1), v = new Date(i.getFullYear(), 6, 1), g = K(e, m), y = K(e, v), z = K(e, i), k = Math.min(g, y), j = z !== k && g !== y;
9411
11385
  return {
9412
11386
  id: e,
9413
11387
  displayName: l,
9414
11388
  shortName: d,
9415
11389
  offsetMinutes: p,
9416
- offsetString: St(p),
11390
+ offsetString: Ct(p),
9417
11391
  isDST: j
9418
11392
  };
9419
11393
  }
9420
- function Eo(e = "en", t = /* @__PURE__ */ new Date()) {
9421
- return Object.values(ne).flat().map((o) => M(o, e, t));
11394
+ function bo(e = "en", t = /* @__PURE__ */ new Date()) {
11395
+ return Object.values(ne).flat().map((o) => N(o, e, t));
9422
11396
  }
9423
11397
  function ko(e = "en", t = /* @__PURE__ */ new Date()) {
9424
11398
  const i = {};
9425
11399
  for (const [o, r] of Object.entries(ne))
9426
- i[o] = r.map((a) => M(a, e, t));
11400
+ i[o] = r.map((a) => N(a, e, t));
9427
11401
  return i;
9428
11402
  }
9429
11403
  function se(e, t, i) {
@@ -9431,14 +11405,14 @@ function se(e, t, i) {
9431
11405
  return new Date(e.getTime() + s);
9432
11406
  }
9433
11407
  function yt(e, t) {
9434
- const i = t || Z();
11408
+ const i = t || G();
9435
11409
  return se(e, i, "UTC");
9436
11410
  }
9437
11411
  function zt(e, t) {
9438
- const i = t || Z();
11412
+ const i = t || G();
9439
11413
  return se(e, "UTC", i);
9440
11414
  }
9441
- function Ct(e, t, i = {}) {
11415
+ function St(e, t, i = {}) {
9442
11416
  const o = D(e), { dateStyle: r = "medium", timeStyle: a = "short", nameStyle: n = "short" } = i, s = new Intl.DateTimeFormat(o, {
9443
11417
  timeZone: t,
9444
11418
  dateStyle: r,
@@ -9455,7 +11429,7 @@ function Ct(e, t, i = {}) {
9455
11429
  return {
9456
11430
  format: (u) => s.format(u),
9457
11431
  formatWithZone: (u) => l.format(u),
9458
- getOffset: (u) => M(t, e, u).offsetString,
11432
+ getOffset: (u) => N(t, e, u).offsetString,
9459
11433
  getAbbreviation: (u) => {
9460
11434
  var p;
9461
11435
  return ((p = d.formatToParts(u).find((m) => m.type === "timeZoneName")) == null ? void 0 : p.value) || "";
@@ -9463,7 +11437,7 @@ function Ct(e, t, i = {}) {
9463
11437
  };
9464
11438
  }
9465
11439
  function W(e, t = /* @__PURE__ */ new Date()) {
9466
- return M(e, "en", t).isDST;
11440
+ return N(e, "en", t).isDST;
9467
11441
  }
9468
11442
  function yo(e, t = /* @__PURE__ */ new Date()) {
9469
11443
  const i = W(e, t), o = new Date(t), r = new Date(t);
@@ -9482,7 +11456,7 @@ function yo(e, t = /* @__PURE__ */ new Date()) {
9482
11456
  return null;
9483
11457
  }
9484
11458
  function zo(e, t, i) {
9485
- const [o] = T(() => Z()), r = t || o, a = b(() => Ct(e, r, i), [e, r, i]), n = b(() => M(r, e), [r, e]);
11459
+ const [o] = x(() => G()), r = t || o, a = f(() => St(e, r, i), [e, r, i]), n = f(() => N(r, e), [r, e]);
9486
11460
  return {
9487
11461
  timezone: r,
9488
11462
  info: n,
@@ -9494,15 +11468,15 @@ function zo(e, t, i) {
9494
11468
  fromUTC: (s) => zt(s, r)
9495
11469
  };
9496
11470
  }
9497
- function U(e, t) {
11471
+ function K(e, t) {
9498
11472
  const i = t.toLocaleString("en-US", { timeZone: "UTC" }), o = t.toLocaleString("en-US", { timeZone: e }), r = new Date(i), a = new Date(o);
9499
11473
  return Math.round((a.getTime() - r.getTime()) / 6e4);
9500
11474
  }
9501
- function St(e) {
11475
+ function Ct(e) {
9502
11476
  const t = e >= 0 ? "+" : "-", i = Math.abs(e), o = Math.floor(i / 60), r = i % 60;
9503
11477
  return `${t}${o.toString().padStart(2, "0")}:${r.toString().padStart(2, "0")}`;
9504
11478
  }
9505
- const V = {
11479
+ const H = {
9506
11480
  gregory: {
9507
11481
  id: "gregory",
9508
11482
  displayName: "Gregorian",
@@ -9680,22 +11654,22 @@ function de(e, t = "gregory", i = {}) {
9680
11654
  month: "long",
9681
11655
  day: "numeric",
9682
11656
  era: "long"
9683
- }, u = new Intl.DateTimeFormat(o, d), v = new Intl.DateTimeFormat(o, { calendar: t, month: "long" }), p = new Intl.DateTimeFormat(o, { calendar: t, weekday: "long" });
11657
+ }, u = new Intl.DateTimeFormat(o, d), w = new Intl.DateTimeFormat(o, { calendar: t, month: "long" }), p = new Intl.DateTimeFormat(o, { calendar: t, weekday: "long" });
9684
11658
  return {
9685
11659
  format: (m) => l.format(m),
9686
11660
  formatWithEra: (m) => u.format(m),
9687
- getMonthName: (m) => v.format(m),
11661
+ getMonthName: (m) => w.format(m),
9688
11662
  getMonthNames: () => {
9689
- const m = [], f = new Date(2024, 0, 15);
11663
+ const m = [], v = new Date(2024, 0, 15);
9690
11664
  for (let g = 0; g < 12; g++)
9691
- f.setMonth(g), m.push(v.format(f));
11665
+ v.setMonth(g), m.push(w.format(v));
9692
11666
  return m;
9693
11667
  },
9694
11668
  getWeekdayName: (m) => p.format(m),
9695
11669
  getWeekdayNames: () => {
9696
- const m = [], f = new Date(2024, 0, 7);
11670
+ const m = [], v = new Date(2024, 0, 7);
9697
11671
  for (let g = 0; g < 7; g++)
9698
- f.setDate(7 + g), m.push(p.format(f));
11672
+ v.setDate(7 + g), m.push(p.format(v));
9699
11673
  return m;
9700
11674
  },
9701
11675
  parseParts: (m) => {
@@ -9709,10 +11683,10 @@ function de(e, t = "gregory", i = {}) {
9709
11683
  }).formatToParts(m);
9710
11684
  return {
9711
11685
  calendar: t,
9712
- year: parseInt(((y = g.find((E) => E.type === "year")) == null ? void 0 : y.value) || "0", 10),
9713
- month: parseInt(((z = g.find((E) => E.type === "month")) == null ? void 0 : z.value) || "0", 10),
9714
- day: parseInt(((k = g.find((E) => E.type === "day")) == null ? void 0 : k.value) || "0", 10),
9715
- era: (j = g.find((E) => E.type === "era")) == null ? void 0 : j.value,
11686
+ year: parseInt(((y = g.find((b) => b.type === "year")) == null ? void 0 : y.value) || "0", 10),
11687
+ month: parseInt(((z = g.find((b) => b.type === "month")) == null ? void 0 : z.value) || "0", 10),
11688
+ day: parseInt(((k = g.find((b) => b.type === "day")) == null ? void 0 : k.value) || "0", 10),
11689
+ era: (j = g.find((b) => b.type === "era")) == null ? void 0 : j.value,
9716
11690
  gregorianDate: m
9717
11691
  };
9718
11692
  },
@@ -9731,7 +11705,7 @@ function ce(e, t, i = "en") {
9731
11705
  function Dt(e, t = "en") {
9732
11706
  return ce(/* @__PURE__ */ new Date(), e, t);
9733
11707
  }
9734
- const Co = [
11708
+ const So = [
9735
11709
  "Muharram",
9736
11710
  "Safar",
9737
11711
  "Rabi' al-Awwal",
@@ -9748,7 +11722,7 @@ const Co = [
9748
11722
  function jt(e) {
9749
11723
  return (11 * e + 14) % 30 < 11;
9750
11724
  }
9751
- function So(e, t) {
11725
+ function Co(e, t) {
9752
11726
  return t === 12 ? jt(e) ? 30 : 29 : t % 2 === 1 ? 30 : 29;
9753
11727
  }
9754
11728
  const Do = [
@@ -9782,7 +11756,7 @@ const Do = [
9782
11756
  function Ao(e) {
9783
11757
  return (7 * e + 1) % 19 < 7;
9784
11758
  }
9785
- const K = [
11759
+ const U = [
9786
11760
  { name: "Meiji", kanji: "明治", startDate: new Date(1868, 9, 23) },
9787
11761
  { name: "Taisho", kanji: "大正", startDate: new Date(1912, 6, 30) },
9788
11762
  { name: "Showa", kanji: "昭和", startDate: new Date(1926, 11, 25) },
@@ -9790,16 +11764,16 @@ const K = [
9790
11764
  { name: "Reiwa", kanji: "令和", startDate: new Date(2019, 4, 1) }
9791
11765
  ];
9792
11766
  function At(e) {
9793
- for (let t = K.length - 1; t >= 0; t--)
9794
- if (e >= K[t].startDate)
9795
- return K[t];
11767
+ for (let t = U.length - 1; t >= 0; t--)
11768
+ if (e >= U[t].startDate)
11769
+ return U[t];
9796
11770
  return null;
9797
11771
  }
9798
11772
  function Po(e) {
9799
11773
  const t = At(e);
9800
11774
  return t ? e.getFullYear() - t.startDate.getFullYear() + 1 : null;
9801
11775
  }
9802
- const To = [
11776
+ const xo = [
9803
11777
  "Farvardin",
9804
11778
  "Ordibehesht",
9805
11779
  "Khordad",
@@ -9813,7 +11787,7 @@ const To = [
9813
11787
  "Bahman",
9814
11788
  "Esfand"
9815
11789
  ];
9816
- function xo(e) {
11790
+ function To(e) {
9817
11791
  return ((e - 474) % 2820 + 2820) % 2820 * 682 % 2816 < 682;
9818
11792
  }
9819
11793
  const Pt = [
@@ -9833,7 +11807,7 @@ const Pt = [
9833
11807
  function Bo(e) {
9834
11808
  return Pt[(e - 4) % 12];
9835
11809
  }
9836
- const Tt = [
11810
+ const xt = [
9837
11811
  "Jia",
9838
11812
  "Yi",
9839
11813
  "Bing",
@@ -9845,14 +11819,14 @@ const Tt = [
9845
11819
  "Ren",
9846
11820
  "Gui"
9847
11821
  ];
9848
- function Mo(e) {
9849
- return Tt[(e - 4) % 10];
11822
+ function No(e) {
11823
+ return xt[(e - 4) % 10];
9850
11824
  }
9851
- function Fo(e, t, i) {
9852
- const o = t || le[e], r = b(
11825
+ function Mo(e, t, i) {
11826
+ const o = t || le[e], r = f(
9853
11827
  () => de(e, o, i),
9854
11828
  [e, o, i]
9855
- ), a = b(() => V[o], [o]), n = b(() => Dt(o, e), [o, e]);
11829
+ ), a = f(() => H[o], [o]), n = f(() => Dt(o, e), [o, e]);
9856
11830
  return {
9857
11831
  calendar: o,
9858
11832
  info: a,
@@ -9868,11 +11842,11 @@ function Fo(e, t, i) {
9868
11842
  toCalendar: (s) => ce(s, o, e)
9869
11843
  };
9870
11844
  }
9871
- function No() {
9872
- return Object.keys(V);
11845
+ function Fo() {
11846
+ return Object.keys(H);
9873
11847
  }
9874
11848
  function Ro(e, t = "en") {
9875
- const i = { ...V[e] };
11849
+ const i = { ...H[e] };
9876
11850
  try {
9877
11851
  const o = D(t), a = new Intl.DisplayNames([o], { type: "calendar" }).of(e);
9878
11852
  a && (i.displayName = a);
@@ -9882,7 +11856,7 @@ function Ro(e, t = "en") {
9882
11856
  }
9883
11857
  function Lo(e) {
9884
11858
  const t = le[e], i = /* @__PURE__ */ new Set([t]);
9885
- for (const [o, r] of Object.entries(V))
11859
+ for (const [o, r] of Object.entries(H))
9886
11860
  r.associatedLanguages.includes(e) && i.add(o);
9887
11861
  return i.add("gregory"), Array.from(i);
9888
11862
  }
@@ -9941,7 +11915,7 @@ const J = {
9941
11915
  X: "Χ",
9942
11916
  Y: "Ÿ",
9943
11917
  Z: "Ž"
9944
- }, xt = {
11918
+ }, Tt = {
9945
11919
  ...J,
9946
11920
  // Additional mappings
9947
11921
  a: "ặ",
@@ -9956,21 +11930,21 @@ const J = {
9956
11930
  O: "Ộ",
9957
11931
  U: "Ụ",
9958
11932
  Y: "Ỵ"
9959
- }, Bt = "‪", Mt = "‫", _ = "‬", Ft = "~∼~≈";
11933
+ }, Bt = "‪", Nt = "‫", Q = "‬", Mt = "~∼~≈";
9960
11934
  function Oo(e, t = !1) {
9961
- const i = t ? xt : J;
11935
+ const i = t ? Tt : J;
9962
11936
  return e.split("").map((o) => i[o] || o).join("");
9963
11937
  }
9964
11938
  function Io(e, t = "[", i = "]") {
9965
11939
  return `${t}${e}${i}`;
9966
11940
  }
9967
- function Nt(e, t = 0.3, i = !1) {
11941
+ function Ft(e, t = 0.3, i = !1) {
9968
11942
  if (i)
9969
11943
  return Rt(e);
9970
11944
  const r = Math.ceil(e.length * (1 + t)) - e.length;
9971
11945
  if (r <= 0)
9972
11946
  return e;
9973
- const a = Ft[0].repeat(r);
11947
+ const a = Mt[0].repeat(r);
9974
11948
  return e + a;
9975
11949
  }
9976
11950
  function Rt(e) {
@@ -9978,7 +11952,7 @@ function Rt(e) {
9978
11952
  return e.split("").map((i) => t.has(i) ? i + i : i).join("");
9979
11953
  }
9980
11954
  function Lt(e, t = !1) {
9981
- return t ? `${Mt}${e}${_}` : `${Bt}${e}${_}`;
11955
+ return t ? `${Nt}${e}${Q}` : `${Bt}${e}${Q}`;
9982
11956
  }
9983
11957
  function ue(e, t = {}) {
9984
11958
  const {
@@ -9991,17 +11965,17 @@ function ue(e, t = {}) {
9991
11965
  preserveHtml: l = !0,
9992
11966
  prefix: d = "[",
9993
11967
  suffix: u = "]"
9994
- } = t, v = /* @__PURE__ */ new Map();
11968
+ } = t, w = /* @__PURE__ */ new Map();
9995
11969
  let p = e, m = 0;
9996
- s && (p = p.replace(/\{[^}]+\}/g, (f) => {
11970
+ s && (p = p.replace(/\{[^}]+\}/g, (v) => {
9997
11971
  const g = `__PH${m++}__`;
9998
- return v.set(g, f), g;
9999
- })), l && (p = p.replace(/<[^>]+>/g, (f) => {
11972
+ return w.set(g, v), g;
11973
+ })), l && (p = p.replace(/<[^>]+>/g, (v) => {
10000
11974
  const g = `__PH${m++}__`;
10001
- return v.set(g, f), g;
10002
- })), r && (p = Ot(p, v)), o > 0 && (p = Nt(p, o, n)), a && (p = Lt(p)), i && (p = `${d}${p}${u}`);
10003
- for (const [f, g] of v.entries())
10004
- p = p.replace(f, g);
11975
+ return w.set(g, v), g;
11976
+ })), r && (p = Ot(p, w)), o > 0 && (p = Ft(p, o, n)), a && (p = Lt(p)), i && (p = `${d}${p}${u}`);
11977
+ for (const [v, g] of w.entries())
11978
+ p = p.replace(v, g);
10005
11979
  return p;
10006
11980
  }
10007
11981
  function Ot(e, t) {
@@ -10047,7 +12021,7 @@ function P(e) {
10047
12021
  };
10048
12022
  }
10049
12023
  }
10050
- function Vo(e, t) {
12024
+ function Ho(e, t) {
10051
12025
  const i = {};
10052
12026
  for (const [o, r] of Object.entries(e))
10053
12027
  i[o] = ue(r, t);
@@ -10056,13 +12030,13 @@ function Vo(e, t) {
10056
12030
  function It(e) {
10057
12031
  return /[^\x00-\x7F]/.test(e);
10058
12032
  }
10059
- function Vt(e) {
12033
+ function Ht(e) {
10060
12034
  if (!e || /^[\d.,-]+$/.test(e) || e.startsWith("["))
10061
12035
  return !1;
10062
12036
  const t = /[a-zA-Z]{2,}/.test(e), i = It(e);
10063
12037
  return t && !i;
10064
12038
  }
10065
- function Ho(e, t) {
12039
+ function Vo(e, t) {
10066
12040
  const i = {
10067
12041
  totalKeys: Object.keys(e).length,
10068
12042
  hardcodedStrings: [],
@@ -10075,8 +12049,8 @@ function Ho(e, t) {
10075
12049
  i.emptyValues.push(o), i.potentialIssues++;
10076
12050
  continue;
10077
12051
  }
10078
- if (Vt(r) && i.hardcodedStrings.push(o), t && t[o]) {
10079
- const a = Q(r), n = Q(t[o]), s = a.filter((d) => !n.includes(d)), l = n.filter((d) => !a.includes(d));
12052
+ if (Ht(r) && i.hardcodedStrings.push(o), t && t[o]) {
12053
+ const a = _(r), n = _(t[o]), s = a.filter((d) => !n.includes(d)), l = n.filter((d) => !a.includes(d));
10080
12054
  (s.length > 0 || l.length > 0) && (i.placeholderMismatches.push({
10081
12055
  key: o,
10082
12056
  placeholders: [
@@ -10088,7 +12062,7 @@ function Ho(e, t) {
10088
12062
  }
10089
12063
  return i;
10090
12064
  }
10091
- function Q(e) {
12065
+ function _(e) {
10092
12066
  return (e.match(/\{([^}]+)\}/g) || []).map((i) => i.replace(/[{}]/g, "").split(",")[0].trim());
10093
12067
  }
10094
12068
  const pe = I(null);
@@ -10097,7 +12071,7 @@ function qo({
10097
12071
  initialEnabled: t = !1,
10098
12072
  initialMode: i = "full"
10099
12073
  }) {
10100
- const [o, r] = T(t), [a, n] = T(i), s = b(() => P(a), [a]), l = b(() => (u) => o ? ue(u, s) : u, [o, s]), d = b(
12074
+ const [o, r] = x(t), [a, n] = x(i), s = f(() => P(a), [a]), l = f(() => (u) => o ? ue(u, s) : u, [o, s]), d = f(
10101
12075
  () => ({
10102
12076
  enabled: o,
10103
12077
  mode: a,
@@ -10123,7 +12097,7 @@ function Wo() {
10123
12097
  transform: (t) => t
10124
12098
  };
10125
12099
  }
10126
- const Uo = {
12100
+ const Ko = {
10127
12101
  /** Minimal: brackets only */
10128
12102
  MINIMAL: { addBrackets: !0, addAccents: !1, expansionFactor: 0 },
10129
12103
  /** Accented: brackets + accents */
@@ -10141,7 +12115,7 @@ const Uo = {
10141
12115
  /** CJK: Short expansion, no accents (CJK often shorter) */
10142
12116
  CJK: { addBrackets: !0, addAccents: !1, expansionFactor: -0.1 }
10143
12117
  };
10144
- class Ht {
12118
+ class Vt {
10145
12119
  constructor(t = 0) {
10146
12120
  this.cache = /* @__PURE__ */ new Map(), this.ttl = t;
10147
12121
  }
@@ -10194,23 +12168,23 @@ function me(e) {
10194
12168
  onLoadStart: s,
10195
12169
  onLoadComplete: l,
10196
12170
  onLoadError: d
10197
- } = e, u = new Ht(o), v = /* @__PURE__ */ new Set(), p = /* @__PURE__ */ new Map();
12171
+ } = e, u = new Vt(o), w = /* @__PURE__ */ new Set(), p = /* @__PURE__ */ new Map();
10198
12172
  let m = i;
10199
- const f = /* @__PURE__ */ new Set();
12173
+ const v = /* @__PURE__ */ new Set();
10200
12174
  function g() {
10201
12175
  const c = z();
10202
- f.forEach((h) => h(c));
12176
+ v.forEach((h) => h(c));
10203
12177
  }
10204
12178
  function y(c, h) {
10205
12179
  return h ? `${c}:${h}` : c;
10206
12180
  }
10207
12181
  function z() {
10208
12182
  const c = /* @__PURE__ */ new Set(), h = /* @__PURE__ */ new Set();
10209
- for (const C of x)
10210
- u.has(C) && c.add(C);
10211
- for (const C of v) {
10212
- const N = C.split(":")[0];
10213
- h.add(N);
12183
+ for (const S of T)
12184
+ u.has(S) && c.add(S);
12185
+ for (const S of w) {
12186
+ const F = S.split(":")[0];
12187
+ h.add(F);
10214
12188
  }
10215
12189
  return {
10216
12190
  loadedLanguages: c,
@@ -10220,77 +12194,77 @@ function me(e) {
10220
12194
  };
10221
12195
  }
10222
12196
  async function k(c, h) {
10223
- const C = y(c, h), N = u.get(c, h);
10224
- if (N)
10225
- return N;
10226
- if (v.has(C))
10227
- return new Promise((S) => {
12197
+ const S = y(c, h), F = u.get(c, h);
12198
+ if (F)
12199
+ return F;
12200
+ if (w.has(S))
12201
+ return new Promise((C) => {
10228
12202
  const R = setInterval(() => {
10229
- v.has(C) || (clearInterval(R), S(u.get(c, h)));
12203
+ w.has(S) || (clearInterval(R), C(u.get(c, h)));
10230
12204
  }, 50);
10231
12205
  });
10232
- v.add(C), p.delete(c), s == null || s(c, h), g();
12206
+ w.add(S), p.delete(c), s == null || s(c, h), g();
10233
12207
  try {
10234
- const S = await t(c, h);
10235
- return u.set(c, S, h), l == null || l(c, h), S;
10236
- } catch (S) {
10237
- const R = S instanceof Error ? S : new Error(String(S));
12208
+ const C = await t(c, h);
12209
+ return u.set(c, C, h), l == null || l(c, h), C;
12210
+ } catch (C) {
12211
+ const R = C instanceof Error ? C : new Error(String(C));
10238
12212
  return p.set(c, R), d == null || d(c, R, h), c !== i && !h ? (console.warn(`Failed to load ${c}, falling back to ${i}`), k(i, h)) : null;
10239
12213
  } finally {
10240
- v.delete(C), g();
12214
+ w.delete(S), g();
10241
12215
  }
10242
12216
  }
10243
12217
  async function j(c) {
10244
12218
  await Promise.all(c.map((h) => k(h)));
10245
12219
  }
10246
- async function E() {
12220
+ async function b() {
10247
12221
  r.length !== 0 && await Promise.allSettled(
10248
12222
  r.map((c) => a.length > 0 ? Promise.all(a.map((h) => k(c, h))) : k(c))
10249
12223
  );
10250
12224
  }
10251
- function F(c, h) {
12225
+ function M(c, h) {
10252
12226
  return u.get(c, h);
10253
12227
  }
10254
12228
  function A(c, h) {
10255
12229
  return u.has(c, h);
10256
12230
  }
10257
12231
  function he(c) {
10258
- for (const h of v)
12232
+ for (const h of w)
10259
12233
  if (h === c || h.startsWith(`${c}:`))
10260
12234
  return !0;
10261
12235
  return !1;
10262
12236
  }
10263
- function ve() {
12237
+ function we() {
10264
12238
  return u.getStats().languages;
10265
12239
  }
10266
- function fe(c) {
12240
+ function ve(c) {
10267
12241
  c ? u.delete(c) : u.clear(), g();
10268
12242
  }
10269
- async function be(c) {
12243
+ async function fe(c) {
10270
12244
  A(c) || await k(c), m = c, g();
10271
12245
  }
10272
- function we() {
12246
+ function Ee() {
10273
12247
  return m;
10274
12248
  }
10275
- function Ee(c) {
10276
- return f.add(c), () => f.delete(c);
12249
+ function be(c) {
12250
+ return v.add(c), () => v.delete(c);
10277
12251
  }
10278
12252
  return {
10279
12253
  loadLanguage: k,
10280
12254
  loadLanguages: j,
10281
- preloadLanguages: E,
10282
- getTranslations: F,
12255
+ preloadLanguages: b,
12256
+ getTranslations: M,
10283
12257
  isLoaded: A,
10284
12258
  isLoading: he,
10285
- getLoadedLanguages: ve,
10286
- clearCache: fe,
12259
+ getLoadedLanguages: we,
12260
+ clearCache: ve,
10287
12261
  getState: z,
10288
- setLanguage: be,
10289
- getCurrentLanguage: we,
10290
- subscribe: Ee
12262
+ setLanguage: fe,
12263
+ getCurrentLanguage: Ee,
12264
+ subscribe: be
10291
12265
  };
10292
12266
  }
10293
- function Ko(e, t) {
12267
+ function Uo(e, t) {
10294
12268
  return me({
10295
12269
  ...t,
10296
12270
  loadFn: async (i, o) => {
@@ -10301,34 +12275,34 @@ function Ko(e, t) {
10301
12275
  }
10302
12276
  });
10303
12277
  }
10304
- function Go(e, t) {
12278
+ function Zo(e, t) {
10305
12279
  return me({
10306
12280
  ...t,
10307
12281
  loadFn: async (i, o) => (await e(i, o)).default
10308
12282
  });
10309
12283
  }
10310
12284
  const ge = I(null);
10311
- function Zo({
12285
+ function Go({
10312
12286
  children: e,
10313
12287
  loader: t,
10314
12288
  initialLanguage: i,
10315
12289
  namespace: o
10316
12290
  }) {
10317
- const [r, a] = T(() => t.getState()), [n, s] = T(null);
12291
+ const [r, a] = x(() => t.getState()), [n, s] = x(null);
10318
12292
  L(() => t.subscribe(a), [t]), L(() => {
10319
12293
  i && !t.isLoaded(i, o) && t.loadLanguage(i, o).catch(s);
10320
12294
  }, [t, i, o]);
10321
- const l = b(() => t.getTranslations(r.currentLanguage, o) || {}, [t, r.currentLanguage, o]), d = ee(
10322
- async (v) => {
12295
+ const l = f(() => t.getTranslations(r.currentLanguage, o) || {}, [t, r.currentLanguage, o]), d = ee(
12296
+ async (w) => {
10323
12297
  s(null);
10324
12298
  try {
10325
- await t.setLanguage(v);
12299
+ await t.setLanguage(w);
10326
12300
  } catch (p) {
10327
12301
  s(p instanceof Error ? p : new Error(String(p)));
10328
12302
  }
10329
12303
  },
10330
12304
  [t]
10331
- ), u = b(
12305
+ ), u = f(
10332
12306
  () => ({
10333
12307
  loader: t,
10334
12308
  translations: l,
@@ -10397,28 +12371,28 @@ function Xo(e, t, i) {
10397
12371
  async function Yo(e, t) {
10398
12372
  const { fallback: i = "en", preferredLanguages: o = [] } = t || {};
10399
12373
  for (const a of o)
10400
- if (x.includes(a))
12374
+ if (T.includes(a))
10401
12375
  return await e.setLanguage(a), a;
10402
12376
  const r = navigator.language.split("-")[0].toLowerCase();
10403
- return x.includes(r) ? (await e.setLanguage(r), r) : (await e.setLanguage(i), i);
12377
+ return T.includes(r) ? (await e.setLanguage(r), r) : (await e.setLanguage(i), i);
10404
12378
  }
10405
12379
  export {
10406
- V as CALENDAR_INFO,
10407
- Tt as CELESTIAL_STEMS,
12380
+ H as CALENDAR_INFO,
12381
+ xt as CELESTIAL_STEMS,
10408
12382
  Pt as CHINESE_ZODIAC,
10409
12383
  le as DEFAULT_CALENDAR,
10410
- Zo as DynamicI18nProvider,
12384
+ Go as DynamicI18nProvider,
10411
12385
  Do as HEBREW_MONTHS,
10412
12386
  jo as HEBREW_MONTHS_LEAP,
10413
- Co as HIJRI_MONTHS,
10414
- K as JAPANESE_ERAS,
12387
+ So as HIJRI_MONTHS,
12388
+ U as JAPANESE_ERAS,
10415
12389
  ae as NICE_GLOSSARY,
10416
- w as NICE_I18N_DICTIONARIES,
12390
+ E as NICE_I18N_DICTIONARIES,
10417
12391
  $e as NICE_I18N_VARIANTS,
10418
- x as NICE_SUPPORTED_LANGS,
10419
- Gt as NiceI18nProvider,
10420
- To as PERSIAN_MONTHS,
10421
- Uo as PSEUDO_PRESETS,
12392
+ T as NICE_SUPPORTED_LANGS,
12393
+ Zt as NiceI18nProvider,
12394
+ xo as PERSIAN_MONTHS,
12395
+ Ko as PSEUDO_PRESETS,
10422
12396
  qo as PseudoLocalizationProvider,
10423
12397
  io as RTLProvider,
10424
12398
  q as RTL_CSS_VARS,
@@ -10427,27 +12401,27 @@ export {
10427
12401
  Oo as addAccents,
10428
12402
  Lt as addBidiMarkers,
10429
12403
  Io as addBrackets,
10430
- Ho as analyzeDictionary,
12404
+ Vo as analyzeDictionary,
10431
12405
  no as analyzeStylesForRTL,
10432
12406
  It as containsNonAscii,
10433
12407
  se as convertTimezone,
10434
12408
  de as createCalendarFormatter,
10435
- bt as createCurrencyFormatter,
12409
+ ft as createCurrencyFormatter,
10436
12410
  ht as createDateFormatter,
10437
12411
  me as createDynamicLoader,
10438
- Ko as createFetchLoader,
12412
+ Uo as createFetchLoader,
10439
12413
  $t as createICUTranslator,
10440
- Go as createImportLoader,
10441
- ft as createNumberFormatter,
10442
- vt as createTimeFormatter,
10443
- Ct as createTimezoneFormatter,
12414
+ Zo as createImportLoader,
12415
+ vt as createNumberFormatter,
12416
+ wt as createTimeFormatter,
12417
+ St as createTimezoneFormatter,
10444
12418
  Jt as createTranslator,
10445
12419
  Yo as detectAndLoad,
10446
12420
  Yt as detectBrowserLanguage,
10447
- Vt as detectHardcodedText,
10448
- Z as detectTimezone,
10449
- Nt as expandText,
10450
- vo as findSimilarTranslation,
12421
+ Ht as detectHardcodedText,
12422
+ G as detectTimezone,
12423
+ Ft as expandText,
12424
+ wo as findSimilarTranslation,
10451
12425
  dt as flipAlignment,
10452
12426
  oo as flipHorizontal,
10453
12427
  rt as formatICU,
@@ -10455,16 +12429,16 @@ export {
10455
12429
  zt as fromUTC,
10456
12430
  uo as generateCoverageReport,
10457
12431
  co as generateTranslationCode,
10458
- Eo as getAllTimezones,
12432
+ bo as getAllTimezones,
10459
12433
  mt as getAllTranslationStats,
10460
- No as getAvailableCalendars,
12434
+ Fo as getAvailableCalendars,
10461
12435
  Ro as getCalendarInfo,
10462
- Mo as getCelestialStem,
12436
+ No as getCelestialStem,
10463
12437
  Bo as getChineseZodiac,
10464
12438
  Dt as getCurrentCalendarDate,
10465
12439
  to as getDocumentDirection,
10466
- fo as getGlossaryForLanguage,
10467
- So as getHijriMonthDays,
12440
+ vo as getGlossaryForLanguage,
12441
+ Co as getHijriMonthDays,
10468
12442
  At as getJapaneseEra,
10469
12443
  Po as getJapaneseYear,
10470
12444
  D as getLocaleTag,
@@ -10478,29 +12452,29 @@ export {
10478
12452
  Lo as getRecommendedCalendars,
10479
12453
  lo as getSourceKeys,
10480
12454
  nt as getTextDirection,
10481
- M as getTimezoneInfo,
12455
+ N as getTimezoneInfo,
10482
12456
  ko as getTimezonesGrouped,
10483
12457
  pt as getTranslationStats,
10484
12458
  W as isDSTActive,
10485
12459
  Ao as isHebrewLeapYear,
10486
12460
  jt as isHijriLeapYear,
10487
- xo as isPersianLeapYear,
12461
+ To as isPersianLeapYear,
10488
12462
  re as isRTLLanguage,
10489
- Qe as isSupported,
10490
- wo as isValidTimezone,
10491
- Et as lookupGlossary,
10492
- Qt as ordinal,
10493
- _t as plural,
12463
+ _e as isSupported,
12464
+ Eo as isValidTimezone,
12465
+ bt as lookupGlossary,
12466
+ _t as ordinal,
12467
+ Qt as plural,
10494
12468
  Xo as preloadWithStrategy,
10495
12469
  ue as pseudoLocalize,
10496
- Vo as pseudoLocalizeDictionary,
10497
- Kt as resolvePlVariant,
12470
+ Ho as pseudoLocalizeDictionary,
12471
+ Ut as resolvePlVariant,
10498
12472
  lt as rtlValue,
10499
12473
  eo as select,
10500
12474
  st as setDocumentDirection,
10501
12475
  ce as toCalendar,
10502
12476
  yt as toUTC,
10503
- Fo as useCalendar,
12477
+ Mo as useCalendar,
10504
12478
  qt as useDynamicI18n,
10505
12479
  Jo as useDynamicTranslation,
10506
12480
  ao as useIsRTL,
@@ -10508,9 +12482,9 @@ export {
10508
12482
  po as useNiceDateFormat,
10509
12483
  go as useNiceNumberFormat,
10510
12484
  mo as useNiceTimeFormat,
10511
- Zt as useNiceTranslation,
12485
+ Gt as useNiceTranslation,
10512
12486
  Wo as usePseudoLocalization,
10513
12487
  ro as useRTL,
10514
12488
  zo as useTimezone,
10515
- bo as validateAgainstGlossary
12489
+ fo as validateAgainstGlossary
10516
12490
  };