@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.cjs +4 -4
- package/dist/index.mjs +2199 -225
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as O } from "react/jsx-runtime";
|
|
2
|
-
import { useMemo as
|
|
3
|
-
const
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
10451
|
+
}, E = {
|
|
8478
10452
|
en: ke,
|
|
8479
10453
|
pl: ye,
|
|
8480
10454
|
de: ze,
|
|
8481
|
-
fr:
|
|
8482
|
-
es:
|
|
10455
|
+
fr: Se,
|
|
10456
|
+
es: Ce,
|
|
8483
10457
|
it: De,
|
|
8484
10458
|
pt: je,
|
|
8485
10459
|
nl: Ae,
|
|
8486
10460
|
sv: Pe,
|
|
8487
|
-
no:
|
|
8488
|
-
da:
|
|
10461
|
+
no: xe,
|
|
10462
|
+
da: Te,
|
|
8489
10463
|
fi: Be,
|
|
8490
|
-
cs:
|
|
8491
|
-
sk:
|
|
8492
|
-
hu:
|
|
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:
|
|
8498
|
-
zh:
|
|
10471
|
+
ko: He,
|
|
10472
|
+
zh: Ve,
|
|
8499
10473
|
ar: qe,
|
|
8500
10474
|
hi: We,
|
|
8501
|
-
bn:
|
|
8502
|
-
th:
|
|
8503
|
-
vi:
|
|
8504
|
-
id:
|
|
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
|
|
10534
|
+
function Ut(e) {
|
|
8561
10535
|
var t;
|
|
8562
|
-
return { ...
|
|
10536
|
+
return { ...E.pl, ...((t = $e.pl) == null ? void 0 : t[e]) ?? {} };
|
|
8563
10537
|
}
|
|
8564
|
-
const
|
|
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 =
|
|
10544
|
+
const r = f(() => {
|
|
8571
10545
|
if (e)
|
|
8572
10546
|
return e;
|
|
8573
|
-
const 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
|
|
10552
|
+
function Gt() {
|
|
8579
10553
|
return { t: B(te) };
|
|
8580
10554
|
}
|
|
8581
10555
|
function Jt(e = "en", t) {
|
|
8582
|
-
const 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
|
|
8599
|
-
return
|
|
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
|
|
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
|
|
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),
|
|
8805
|
-
return
|
|
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),
|
|
8811
|
-
return
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
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(
|
|
10913
|
+
return /* @__PURE__ */ O(Z.Provider, { value: a, children: i });
|
|
8940
10914
|
};
|
|
8941
10915
|
function ro() {
|
|
8942
|
-
return B(
|
|
10916
|
+
return B(Z);
|
|
8943
10917
|
}
|
|
8944
10918
|
function ao() {
|
|
8945
|
-
return B(
|
|
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(
|
|
10952
|
+
return Object.keys(E.en);
|
|
8979
10953
|
}
|
|
8980
10954
|
function ut(e) {
|
|
8981
10955
|
if (e === "en")
|
|
8982
10956
|
return [];
|
|
8983
|
-
const t =
|
|
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(
|
|
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
|
|
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) =>
|
|
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
|
|
11067
|
+
return f(() => ht(e, t), [e, t]);
|
|
9094
11068
|
}
|
|
9095
|
-
function
|
|
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
|
|
11076
|
+
return f(() => wt(e, t), [e, t]);
|
|
9103
11077
|
}
|
|
9104
|
-
function
|
|
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
|
|
11087
|
+
return f(() => vt(e), [e]);
|
|
9114
11088
|
}
|
|
9115
|
-
function
|
|
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
|
|
11096
|
+
return f(() => ft(e, t), [e, t]);
|
|
9123
11097
|
}
|
|
9124
|
-
function
|
|
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
|
|
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
|
|
9285
|
-
const o =
|
|
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
|
|
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
|
|
9303
|
-
const t =
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
9403
|
-
var
|
|
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 = ((
|
|
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:
|
|
11390
|
+
offsetString: Ct(p),
|
|
9417
11391
|
isDST: j
|
|
9418
11392
|
};
|
|
9419
11393
|
}
|
|
9420
|
-
function
|
|
9421
|
-
return Object.values(ne).flat().map((o) =>
|
|
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) =>
|
|
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 ||
|
|
11408
|
+
const i = t || G();
|
|
9435
11409
|
return se(e, i, "UTC");
|
|
9436
11410
|
}
|
|
9437
11411
|
function zt(e, t) {
|
|
9438
|
-
const i = t ||
|
|
11412
|
+
const i = t || G();
|
|
9439
11413
|
return se(e, "UTC", i);
|
|
9440
11414
|
}
|
|
9441
|
-
function
|
|
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) =>
|
|
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
|
|
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] =
|
|
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
|
|
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
|
|
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
|
|
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),
|
|
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) =>
|
|
11661
|
+
getMonthName: (m) => w.format(m),
|
|
9688
11662
|
getMonthNames: () => {
|
|
9689
|
-
const m = [],
|
|
11663
|
+
const m = [], v = new Date(2024, 0, 15);
|
|
9690
11664
|
for (let g = 0; g < 12; g++)
|
|
9691
|
-
|
|
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 = [],
|
|
11670
|
+
const m = [], v = new Date(2024, 0, 7);
|
|
9697
11671
|
for (let g = 0; g < 7; g++)
|
|
9698
|
-
|
|
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((
|
|
9713
|
-
month: parseInt(((z = g.find((
|
|
9714
|
-
day: parseInt(((k = g.find((
|
|
9715
|
-
era: (j = g.find((
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
9794
|
-
if (e >=
|
|
9795
|
-
return
|
|
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
|
|
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
|
|
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
|
|
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
|
|
9849
|
-
return
|
|
11822
|
+
function No(e) {
|
|
11823
|
+
return xt[(e - 4) % 10];
|
|
9850
11824
|
}
|
|
9851
|
-
function
|
|
9852
|
-
const o = t || le[e], r =
|
|
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 =
|
|
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
|
|
9872
|
-
return Object.keys(
|
|
11845
|
+
function Fo() {
|
|
11846
|
+
return Object.keys(H);
|
|
9873
11847
|
}
|
|
9874
11848
|
function Ro(e, t = "en") {
|
|
9875
|
-
const i = { ...
|
|
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(
|
|
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
|
-
},
|
|
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 = "",
|
|
11933
|
+
}, Bt = "", Nt = "", Q = "", Mt = "~∼~≈";
|
|
9960
11934
|
function Oo(e, t = !1) {
|
|
9961
|
-
const i = t ?
|
|
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
|
|
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 =
|
|
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 ? `${
|
|
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,
|
|
11968
|
+
} = t, w = /* @__PURE__ */ new Map();
|
|
9995
11969
|
let p = e, m = 0;
|
|
9996
|
-
s && (p = p.replace(/\{[^}]+\}/g, (
|
|
11970
|
+
s && (p = p.replace(/\{[^}]+\}/g, (v) => {
|
|
9997
11971
|
const g = `__PH${m++}__`;
|
|
9998
|
-
return
|
|
9999
|
-
})), l && (p = p.replace(/<[^>]+>/g, (
|
|
11972
|
+
return w.set(g, v), g;
|
|
11973
|
+
})), l && (p = p.replace(/<[^>]+>/g, (v) => {
|
|
10000
11974
|
const g = `__PH${m++}__`;
|
|
10001
|
-
return
|
|
10002
|
-
})), r && (p = Ot(p,
|
|
10003
|
-
for (const [
|
|
10004
|
-
p = p.replace(
|
|
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
|
|
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
|
|
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
|
|
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 (
|
|
10079
|
-
const a =
|
|
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
|
|
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] =
|
|
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
|
|
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
|
|
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
|
|
12171
|
+
} = e, u = new Vt(o), w = /* @__PURE__ */ new Set(), p = /* @__PURE__ */ new Map();
|
|
10198
12172
|
let m = i;
|
|
10199
|
-
const
|
|
12173
|
+
const v = /* @__PURE__ */ new Set();
|
|
10200
12174
|
function g() {
|
|
10201
12175
|
const c = z();
|
|
10202
|
-
|
|
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
|
|
10210
|
-
u.has(
|
|
10211
|
-
for (const
|
|
10212
|
-
const
|
|
10213
|
-
h.add(
|
|
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
|
|
10224
|
-
if (
|
|
10225
|
-
return
|
|
10226
|
-
if (
|
|
10227
|
-
return new Promise((
|
|
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
|
-
|
|
12203
|
+
w.has(S) || (clearInterval(R), C(u.get(c, h)));
|
|
10230
12204
|
}, 50);
|
|
10231
12205
|
});
|
|
10232
|
-
|
|
12206
|
+
w.add(S), p.delete(c), s == null || s(c, h), g();
|
|
10233
12207
|
try {
|
|
10234
|
-
const
|
|
10235
|
-
return u.set(c,
|
|
10236
|
-
} catch (
|
|
10237
|
-
const R =
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
12237
|
+
function we() {
|
|
10264
12238
|
return u.getStats().languages;
|
|
10265
12239
|
}
|
|
10266
|
-
function
|
|
12240
|
+
function ve(c) {
|
|
10267
12241
|
c ? u.delete(c) : u.clear(), g();
|
|
10268
12242
|
}
|
|
10269
|
-
async function
|
|
12243
|
+
async function fe(c) {
|
|
10270
12244
|
A(c) || await k(c), m = c, g();
|
|
10271
12245
|
}
|
|
10272
|
-
function
|
|
12246
|
+
function Ee() {
|
|
10273
12247
|
return m;
|
|
10274
12248
|
}
|
|
10275
|
-
function
|
|
10276
|
-
return
|
|
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:
|
|
10282
|
-
getTranslations:
|
|
12255
|
+
preloadLanguages: b,
|
|
12256
|
+
getTranslations: M,
|
|
10283
12257
|
isLoaded: A,
|
|
10284
12258
|
isLoading: he,
|
|
10285
|
-
getLoadedLanguages:
|
|
10286
|
-
clearCache:
|
|
12259
|
+
getLoadedLanguages: we,
|
|
12260
|
+
clearCache: ve,
|
|
10287
12261
|
getState: z,
|
|
10288
|
-
setLanguage:
|
|
10289
|
-
getCurrentLanguage:
|
|
10290
|
-
subscribe:
|
|
12262
|
+
setLanguage: fe,
|
|
12263
|
+
getCurrentLanguage: Ee,
|
|
12264
|
+
subscribe: be
|
|
10291
12265
|
};
|
|
10292
12266
|
}
|
|
10293
|
-
function
|
|
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
|
|
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
|
|
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] =
|
|
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 =
|
|
10322
|
-
async (
|
|
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(
|
|
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 =
|
|
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 (
|
|
12374
|
+
if (T.includes(a))
|
|
10401
12375
|
return await e.setLanguage(a), a;
|
|
10402
12376
|
const r = navigator.language.split("-")[0].toLowerCase();
|
|
10403
|
-
return
|
|
12377
|
+
return T.includes(r) ? (await e.setLanguage(r), r) : (await e.setLanguage(i), i);
|
|
10404
12378
|
}
|
|
10405
12379
|
export {
|
|
10406
|
-
|
|
10407
|
-
|
|
12380
|
+
H as CALENDAR_INFO,
|
|
12381
|
+
xt as CELESTIAL_STEMS,
|
|
10408
12382
|
Pt as CHINESE_ZODIAC,
|
|
10409
12383
|
le as DEFAULT_CALENDAR,
|
|
10410
|
-
|
|
12384
|
+
Go as DynamicI18nProvider,
|
|
10411
12385
|
Do as HEBREW_MONTHS,
|
|
10412
12386
|
jo as HEBREW_MONTHS_LEAP,
|
|
10413
|
-
|
|
10414
|
-
|
|
12387
|
+
So as HIJRI_MONTHS,
|
|
12388
|
+
U as JAPANESE_ERAS,
|
|
10415
12389
|
ae as NICE_GLOSSARY,
|
|
10416
|
-
|
|
12390
|
+
E as NICE_I18N_DICTIONARIES,
|
|
10417
12391
|
$e as NICE_I18N_VARIANTS,
|
|
10418
|
-
|
|
10419
|
-
|
|
10420
|
-
|
|
10421
|
-
|
|
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
|
-
|
|
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
|
-
|
|
12409
|
+
ft as createCurrencyFormatter,
|
|
10436
12410
|
ht as createDateFormatter,
|
|
10437
12411
|
me as createDynamicLoader,
|
|
10438
|
-
|
|
12412
|
+
Uo as createFetchLoader,
|
|
10439
12413
|
$t as createICUTranslator,
|
|
10440
|
-
|
|
10441
|
-
|
|
10442
|
-
|
|
10443
|
-
|
|
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
|
-
|
|
10448
|
-
|
|
10449
|
-
|
|
10450
|
-
|
|
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
|
-
|
|
12432
|
+
bo as getAllTimezones,
|
|
10459
12433
|
mt as getAllTranslationStats,
|
|
10460
|
-
|
|
12434
|
+
Fo as getAvailableCalendars,
|
|
10461
12435
|
Ro as getCalendarInfo,
|
|
10462
|
-
|
|
12436
|
+
No as getCelestialStem,
|
|
10463
12437
|
Bo as getChineseZodiac,
|
|
10464
12438
|
Dt as getCurrentCalendarDate,
|
|
10465
12439
|
to as getDocumentDirection,
|
|
10466
|
-
|
|
10467
|
-
|
|
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
|
-
|
|
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
|
-
|
|
12461
|
+
To as isPersianLeapYear,
|
|
10488
12462
|
re as isRTLLanguage,
|
|
10489
|
-
|
|
10490
|
-
|
|
10491
|
-
|
|
10492
|
-
|
|
10493
|
-
|
|
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
|
-
|
|
10497
|
-
|
|
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
|
-
|
|
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
|
-
|
|
12485
|
+
Gt as useNiceTranslation,
|
|
10512
12486
|
Wo as usePseudoLocalization,
|
|
10513
12487
|
ro as useRTL,
|
|
10514
12488
|
zo as useTimezone,
|
|
10515
|
-
|
|
12489
|
+
fo as validateAgainstGlossary
|
|
10516
12490
|
};
|