@object-ui/i18n 17.5.0 → 17.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +4954 -0
  2. package/README.md +234 -13
  3. package/dist/builtinAggregateLabels.d.ts +40 -0
  4. package/dist/builtinAggregateLabels.js +23 -0
  5. package/dist/currency.d.ts +27 -3
  6. package/dist/currency.js +28 -4
  7. package/dist/fallbackInterpolation.d.ts +79 -0
  8. package/dist/fallbackInterpolation.js +124 -0
  9. package/dist/i18n.d.ts +28 -2
  10. package/dist/i18n.js +99 -17
  11. package/dist/index.d.ts +17 -23
  12. package/dist/index.js +51 -27
  13. package/dist/locales/ar.d.ts +1113 -370
  14. package/dist/locales/ar.js +1276 -428
  15. package/dist/locales/de.d.ts +785 -370
  16. package/dist/locales/de.js +896 -401
  17. package/dist/locales/en.d.ts +800 -385
  18. package/dist/locales/en.js +1261 -419
  19. package/dist/locales/es.d.ts +867 -370
  20. package/dist/locales/es.js +976 -398
  21. package/dist/locales/fr.d.ts +867 -370
  22. package/dist/locales/fr.js +976 -399
  23. package/dist/locales/index.d.ts +8682 -3761
  24. package/dist/locales/index.js +68 -29
  25. package/dist/locales/ja.d.ts +785 -370
  26. package/dist/locales/ja.js +891 -395
  27. package/dist/locales/ko.d.ts +785 -370
  28. package/dist/locales/ko.js +893 -399
  29. package/dist/locales/pt.d.ts +867 -370
  30. package/dist/locales/pt.js +975 -397
  31. package/dist/locales/registry.d.ts +102 -0
  32. package/dist/locales/registry.js +220 -0
  33. package/dist/locales/rtl.d.ts +24 -0
  34. package/dist/locales/rtl.js +26 -0
  35. package/dist/locales/ru.d.ts +949 -370
  36. package/dist/locales/ru.js +1093 -419
  37. package/dist/locales/zh.d.ts +803 -388
  38. package/dist/locales/zh.js +899 -388
  39. package/dist/pickLocalized.d.ts +67 -0
  40. package/dist/pickLocalized.js +114 -0
  41. package/dist/provider.d.ts +102 -13
  42. package/dist/provider.js +335 -50
  43. package/dist/translateFn.d.ts +29 -0
  44. package/dist/translateFn.js +8 -0
  45. package/dist/useDisplayLocale.d.ts +11 -0
  46. package/dist/useDisplayLocale.js +13 -2
  47. package/dist/useObjectLabel.d.ts +118 -22
  48. package/dist/useObjectLabel.js +148 -23
  49. package/dist/useSafeTranslation.js +41 -43
  50. package/dist/utils/formatting.d.ts +16 -0
  51. package/dist/utils/formatting.js +23 -3
  52. package/dist/utils/index.d.ts +4 -4
  53. package/dist/utils/index.js +4 -4
  54. package/dist/utils/spec-formatters.d.ts +13 -23
  55. package/dist/utils/spec-formatters.js +41 -2
  56. package/dist/utils/spec-translations.d.ts +16 -3
  57. package/dist/utils/spec-translations.js +52 -13
  58. package/package.json +12 -6
@@ -22,10 +22,12 @@ declare const en: {
22
22
  readonly manage_users: "Manage Users";
23
23
  readonly manage_org_users: "Manage Organization Users";
24
24
  readonly manage_metadata: "Manage Metadata";
25
+ readonly manage_org_presentation: "Manage Organization Presentation";
25
26
  readonly manage_platform_settings: "Manage Platform Settings";
26
27
  readonly setup_access: "Setup Access";
27
28
  readonly setup_write: "Write Settings";
28
29
  readonly studio_access: "Studio Access";
30
+ readonly manage_sharing: "Manage Sharing";
29
31
  };
30
32
  };
31
33
  readonly perm: {
@@ -34,12 +36,16 @@ declare const en: {
34
36
  readonly more: "+{{count}} more";
35
37
  readonly objects: "{{count}} objects";
36
38
  readonly objects_one: "{{count}} object";
39
+ readonly objects_other: "{{count}} objects";
37
40
  readonly fields: "{{count}} field rules";
38
41
  readonly fields_one: "{{count}} field rule";
42
+ readonly fields_other: "{{count}} field rules";
39
43
  readonly rls: "{{count}} RLS policies";
40
44
  readonly rls_one: "{{count}} RLS policy";
45
+ readonly rls_other: "{{count}} RLS policies";
41
46
  readonly tabs: "{{count}} tab rules";
42
47
  readonly tabs_one: "{{count}} tab rule";
48
+ readonly tabs_other: "{{count}} tab rules";
43
49
  readonly adminScope: "Delegated admin configured";
44
50
  readonly designInStudio: "Design in Studio →";
45
51
  readonly designInStudioHint: "Design in Studio";
@@ -61,7 +67,8 @@ declare const en: {
61
67
  readonly selectFirst: "Select {{fields}} first";
62
68
  readonly selectRecord: "Select record";
63
69
  readonly recordCount: "{{count}} records";
64
- readonly recordCountOne: "1 record";
70
+ readonly recordCount_one: "{{count}} record";
71
+ readonly recordCount_other: "{{count}} records";
65
72
  readonly pageOf: "Page {{current}} of {{total}}";
66
73
  readonly filters: "Filters";
67
74
  readonly clear: "Clear";
@@ -75,6 +82,7 @@ declare const en: {
75
82
  readonly common: {
76
83
  readonly loading: "Loading…";
77
84
  readonly save: "Save";
85
+ readonly discard: "Discard";
78
86
  readonly cancel: "Cancel";
79
87
  readonly delete: "Delete";
80
88
  readonly edit: "Edit";
@@ -110,7 +118,8 @@ declare const en: {
110
118
  readonly closePanel: "Close panel";
111
119
  readonly resizeDrawer: "Resize drawer";
112
120
  readonly itemCount: "{{count}} items";
113
- readonly itemCountOne: "{{count}} item";
121
+ readonly itemCount_one: "{{count}} item";
122
+ readonly itemCount_other: "{{count}} items";
114
123
  readonly toggleSidebar: "Toggle sidebar";
115
124
  readonly package: "Package";
116
125
  readonly done: "Done";
@@ -118,6 +127,8 @@ declare const en: {
118
127
  readonly record: "Record";
119
128
  readonly retry: "Retry";
120
129
  readonly printDialogHint: "Opens your browser’s print dialog (not a PDF export)";
130
+ readonly rowCeilingNote: "Showing the first {{shown}} of {{total}} records. Narrow the filter.";
131
+ readonly rowCeilingNoteUnknownTotal: "Showing the first {{shown}} records. Narrow the filter.";
121
132
  };
122
133
  readonly actions: {
123
134
  readonly decisionOutput: {
@@ -129,6 +140,14 @@ declare const en: {
129
140
  readonly acknowledge: "I have saved this";
130
141
  readonly copyAll: "Copy all";
131
142
  };
143
+ readonly notAvailableHere: "\"{{action}}\" is not available on the current page.";
144
+ readonly completedSuccessfully: "Action completed successfully";
145
+ readonly failed: "Action failed";
146
+ readonly parallelFailed: "One or more parallel actions failed";
147
+ readonly undo: "Undo";
148
+ readonly undone: "Change undone";
149
+ readonly undoneOperation: "Undo: {{description}}";
150
+ readonly redoneOperation: "Redo: {{description}}";
132
151
  };
133
152
  readonly validation: {
134
153
  readonly required: "{{field}} is required";
@@ -146,8 +165,12 @@ declare const en: {
146
165
  };
147
166
  readonly form: {
148
167
  readonly noPermissionToSave: "You don't have permission to save this record.";
168
+ readonly noPermissionToCreate: "You don't have permission to create {{object}} records. The fields are read-only.";
169
+ readonly noPermissionToEdit: "You don't have permission to edit {{object}} records. The fields are read-only.";
149
170
  readonly submitFailed: "Could not save. Please try again.";
150
- readonly addItem: "Add item";
171
+ readonly uploadInFlight: "Wait for the upload to finish before saving.";
172
+ readonly clearedOnHide: "Cleared — no longer applicable given the current values: {{fields}}";
173
+ readonly visibleWhenFaulted: "Can't submit: the visibleWhen rule of {{fields}} could not be evaluated. The rule must be fixed before this form can be submitted.";
151
174
  readonly removeItem: "Remove item";
152
175
  readonly fieldRequired: "This field is required";
153
176
  readonly invalidFormat: "Invalid format";
@@ -157,6 +180,28 @@ declare const en: {
157
180
  readonly discardTitle: "Discard changes?";
158
181
  readonly discardMessage: "You have unsaved changes. If you close this form now, your edits will be lost.";
159
182
  readonly dialogDescriptionFallback: "Complete the form fields, then submit or cancel.";
183
+ readonly deniedDescription: "You do not have edit access to this field.";
184
+ readonly masterDetail: {
185
+ readonly loadingColumns: "Loading columns…";
186
+ readonly subtotal: "Subtotal";
187
+ readonly tax: "Tax ({{rate}}%)";
188
+ readonly total: "Total";
189
+ readonly lineItem: "Line item";
190
+ readonly rowTitle: "{{title}} — row {{row}}";
191
+ readonly applyRow: "Apply";
192
+ readonly editorDescription: "Enter the record and its line items, then save.";
193
+ readonly noChildObject: "This collection has no child object configured: set {{property}} to the object whose rows it lists.";
194
+ readonly schemaUnavailable: "Could not load the schema of {{object}}, so this collection has no columns to show. Check that the object exists and is readable, then reload.";
195
+ readonly noRelationshipField: "Could not work out how {{object}} links to {{parent}}: no lookup or master_detail field on it references the parent. Set {{property}} on this collection to the field that holds the parent record.";
196
+ };
197
+ readonly lineItems: {
198
+ readonly title: "Line Items";
199
+ readonly saveRecordFirst: "Save the record first to add line items.";
200
+ readonly notLoaded: "This record’s line items have not been loaded.";
201
+ readonly loadFailed: "Failed to load line items";
202
+ readonly saveFailed: "Failed to save line items";
203
+ readonly noChildObject: "This panel has no child object configured: set {{property}} to the object whose rows it lists.";
204
+ };
160
205
  readonly keepEditing: "Keep editing";
161
206
  readonly discard: "Discard";
162
207
  readonly conflictTitle: "Save conflict";
@@ -174,6 +219,12 @@ declare const en: {
174
219
  readonly createSuccess: "{{object}} created successfully";
175
220
  readonly updateSuccess: "{{object}} updated successfully";
176
221
  readonly deleteSuccess: "{{object}} deleted successfully";
222
+ readonly created: "Created";
223
+ readonly saved: "Saved";
224
+ readonly savedNamed: "{{title}} saved";
225
+ readonly submitted: "Submitted";
226
+ readonly errorLoading: "Error loading form";
227
+ readonly navigateRefused: "The `navigateOnSuccess` destination declared for this form was refused, so the navigation did not happen.";
177
228
  readonly fullscreen: {
178
229
  readonly title: "Edit text";
179
230
  readonly description: "Edit the full text value, then save or cancel your changes.";
@@ -185,6 +236,8 @@ declare const en: {
185
236
  readonly fields: {
186
237
  readonly relativeDate: {
187
238
  readonly overdue: "Overdue {{count}}d";
239
+ readonly overdue_one: "Overdue {{count}}d";
240
+ readonly overdue_other: "Overdue {{count}}d";
188
241
  };
189
242
  readonly file: {
190
243
  readonly dragDropHere: "Drag & drop files here";
@@ -201,6 +254,7 @@ declare const en: {
201
254
  readonly remove: "Remove {{name}}";
202
255
  readonly exceedsMaxSize: "\"{{name}}\" exceeds max size ({{max}} MB)";
203
256
  readonly uploadFailed: "Failed to upload \"{{name}}\": {{error}}";
257
+ readonly uploadIncomplete: "Upload of \"{{name}}\" did not complete: no file id was returned, so nothing was saved";
204
258
  };
205
259
  readonly image: {
206
260
  readonly upload: "Upload image";
@@ -241,6 +295,9 @@ declare const en: {
241
295
  readonly selectBusinessUnit: "Select a business unit";
242
296
  readonly selectPosition: "Select a position";
243
297
  readonly selectUnitAndSubordinates: "Select a business unit";
298
+ readonly selectField: "Select a user field";
299
+ readonly noUserFields: "No user fields on this object";
300
+ readonly fieldNotUserTyped: "{{name}} — not a user field";
244
301
  };
245
302
  readonly filterCondition: {
246
303
  readonly selectObjectFirst: "Select an object first.";
@@ -251,13 +308,50 @@ declare const en: {
251
308
  readonly editAsJson: "Edit as JSON";
252
309
  readonly useVisualBuilder: "Use visual builder";
253
310
  };
311
+ readonly object: {
312
+ readonly invalidJson: "Invalid JSON";
313
+ };
314
+ readonly location: {
315
+ readonly refusedFormat: "Not saved: enter a latitude, longitude pair (example: 30.2741, 120.1551).";
316
+ readonly refusedRange: "Not saved: {{detail}}";
317
+ readonly latitude: "latitude";
318
+ readonly longitude: "longitude";
319
+ readonly refusedResidueOne: "Not saved: {{name}} \"{{text}}\" is not a number. Enter plain decimals (example: 30.2741, 120.1551).";
320
+ readonly refusedResidue: "Not saved: {{name}} \"{{text}}\" and {{otherName}} \"{{otherText}}\" are not numbers. Enter plain decimals (example: 30.2741, 120.1551).";
321
+ };
322
+ readonly date: {
323
+ readonly impossibleDay: "The stored value \"{{value}}\" is not a real date. Pick a date to replace it.";
324
+ };
325
+ readonly dateTime: {
326
+ readonly impossibleDay: "The stored value \"{{value}}\" is not a real date. Pick a date and time to replace it.";
327
+ };
328
+ readonly number: {
329
+ readonly badInput: "Not saved: the text in this box is not a number. Enter a plain decimal (example: {{example}}).";
330
+ };
254
331
  readonly tags: {
255
332
  readonly placeholder: "Type and press Enter to add…";
256
333
  };
334
+ readonly address: {
335
+ readonly street: "Street Address";
336
+ readonly city: "City";
337
+ readonly state: "State / Province";
338
+ readonly postalCode: "ZIP / Postal Code";
339
+ readonly country: "Country";
340
+ };
257
341
  readonly textarea: {
258
342
  readonly characterCount: "Character count: {{count}} of {{max}}";
259
343
  readonly charactersRemaining: "Characters remaining: {{count}}";
260
344
  };
345
+ readonly grid: {
346
+ readonly addLine: "Add line";
347
+ readonly noItems: "No items";
348
+ readonly noItemsAddHint: "No items yet — click “{{label}}” to begin.";
349
+ readonly optionalColumns: "Optional columns";
350
+ readonly computed: "Computed";
351
+ readonly openRow: "Open row";
352
+ readonly duplicateRow: "Duplicate row";
353
+ readonly removeRow: "Remove row";
354
+ };
261
355
  };
262
356
  readonly table: {
263
357
  readonly rowsPerPage: "Rows per page";
@@ -286,8 +380,12 @@ declare const en: {
286
380
  readonly open: "Open";
287
381
  readonly search: "Search…";
288
382
  readonly modified: "{{count}} row modified";
383
+ readonly modified_one: "{{count}} row modified";
384
+ readonly modified_other: "{{count}} rows modified";
289
385
  readonly saveFailed: "Save failed";
290
386
  readonly selected: "{{count}} selected";
387
+ readonly selected_one: "{{count}} selected";
388
+ readonly selected_other: "{{count}} selected";
291
389
  readonly edit: "Edit";
292
390
  readonly delete: "Delete";
293
391
  };
@@ -304,9 +402,13 @@ declare const en: {
304
402
  readonly openRecord: "Open record";
305
403
  readonly openMenu: "Open menu";
306
404
  readonly bulkSelected: "{{count}} selected";
405
+ readonly bulkSelected_one: "{{count}} selected";
406
+ readonly bulkSelected_other: "{{count}} selected";
307
407
  readonly bulkSelectedAllMatches: "{{count}} selected (all matches)";
308
408
  readonly bulkClear: "Clear";
309
409
  readonly bulkAllOnPage: "All {{count}} on this page are selected.";
410
+ readonly bulkAllOnPage_one: "{{count}} record on this page is selected.";
411
+ readonly bulkAllOnPage_other: "All {{count}} on this page are selected.";
310
412
  readonly bulkSelectAllMatching: "Select all {{count}} matching";
311
413
  readonly bulkAllMatchingSelected: "All {{count}} matching records are selected.";
312
414
  readonly rowHeight: "Row height: {{mode}}";
@@ -314,6 +416,10 @@ declare const en: {
314
416
  readonly yes: "Yes";
315
417
  readonly no: "No";
316
418
  readonly systemFields: "System";
419
+ readonly grouping: {
420
+ readonly needsHeaderQuery: "This view is grouped, but its data source does not implement queryGroupHeaders, so the groups cannot be counted. Remove the grouping to show the records.";
421
+ readonly needsWholeRows: "Grouping needs every record, but this grid was handed one page of them, so the groups cannot be counted. Hand in every record, or let the grid fetch them from a data source that implements queryGroupHeaders.";
422
+ };
317
423
  readonly summary: {
318
424
  readonly pattern: "{{label}}: {{value}}";
319
425
  readonly count: "Count";
@@ -346,8 +452,10 @@ declare const en: {
346
452
  readonly dragDrop: "Drag & drop a CSV or Excel file here, or click to browse";
347
453
  readonly browseFiles: "Browse Files";
348
454
  readonly downloadTemplate: "Download template";
349
- readonly downloadTemplateHint: "Get a CSV with the right columns (required fields marked *).";
455
+ readonly downloadTemplateHint: "Get an Excel file of the columns you can import (required fields marked *), with instructions for filling it in.";
350
456
  readonly templateFileName: "{{object}}-import-template";
457
+ readonly templateDownloadFailed: "Could not download the template. Please try again.";
458
+ readonly templateNotPermitted: "You do not have permission to create records of this object, so its import template is not available.";
351
459
  readonly parsing: "Parsing…";
352
460
  readonly pasteHint: "or paste (Ctrl/⌘+V) rows copied from Excel or Google Sheets";
353
461
  readonly legacyXls: "Legacy .xls files aren't supported — please re-save as .xlsx.";
@@ -373,6 +481,8 @@ declare const en: {
373
481
  readonly typeMismatch: "Looks like {{type}}";
374
482
  readonly autoMatched: "Auto-matched";
375
483
  readonly autoMatchedSummary: "Auto-matched {{count}} column(s) — review and adjust below.";
484
+ readonly autoMatchedSummary_one: "Auto-matched {{count}} column — review and adjust below.";
485
+ readonly autoMatchedSummary_other: "Auto-matched {{count}} columns — review and adjust below.";
376
486
  readonly confidence: {
377
487
  readonly high: "High confidence";
378
488
  readonly medium: "Medium confidence";
@@ -391,7 +501,11 @@ declare const en: {
391
501
  readonly mapped: "Mapped";
392
502
  readonly skipped: "Skipped";
393
503
  readonly rowsWithErrors: "{{count}} row(s) with errors";
504
+ readonly rowsWithErrors_one: "{{count}} row with errors";
505
+ readonly rowsWithErrors_other: "{{count}} rows with errors";
394
506
  readonly rowsCorrected: "{{count}} row(s) corrected";
507
+ readonly rowsCorrected_one: "{{count}} row corrected";
508
+ readonly rowsCorrected_other: "{{count}} rows corrected";
395
509
  readonly clickToFix: "— click a highlighted cell to fix it inline.";
396
510
  readonly showingRows: "Showing {{shown}} of {{total}} rows";
397
511
  readonly importing: "Importing… {{progress}}%";
@@ -402,12 +516,20 @@ declare const en: {
402
516
  readonly cancelImport: "Cancel import";
403
517
  readonly importCancelled: "Import cancelled";
404
518
  readonly resultsTruncated: "Showing the first {{count}} row results (of {{total}}).";
519
+ readonly resultsTruncated_one: "Showing the first {{count}} row result (of {{total}}).";
520
+ readonly resultsTruncated_other: "Showing the first {{count}} row results (of {{total}}).";
405
521
  readonly importComplete: "Import Complete";
406
522
  readonly imported: "{{count}} imported";
407
523
  readonly createdCount: "{{count}} created";
524
+ readonly createdCount_one: "{{count}} created";
525
+ readonly createdCount_other: "{{count}} created";
408
526
  readonly updatedCount: "{{count}} updated";
527
+ readonly updatedCount_one: "{{count}} updated";
528
+ readonly updatedCount_other: "{{count}} updated";
409
529
  readonly skippedCount: "{{count}} skipped";
410
530
  readonly moreErrors: "…and {{count}} more errors";
531
+ readonly moreErrors_one: "…and {{count}} more error";
532
+ readonly moreErrors_other: "…and {{count}} more errors";
411
533
  readonly downloadFailed: "Download failed rows";
412
534
  readonly options: "Import options";
413
535
  readonly writeMode: "When a row matches an existing record";
@@ -455,6 +577,8 @@ declare const en: {
455
577
  readonly historyColResult: "Result";
456
578
  readonly historyColTime: "When";
457
579
  readonly errorCount: "{{count}} errors";
580
+ readonly errorCount_one: "{{count}} error";
581
+ readonly errorCount_other: "{{count}} errors";
458
582
  readonly undoImport: "Undo import";
459
583
  readonly undoing: "Undoing…";
460
584
  readonly undoConfirm: "Undo this import? Records it created will be deleted and records it updated will be restored to their previous values.";
@@ -471,6 +595,8 @@ declare const en: {
471
595
  readonly next: "Next";
472
596
  readonly close: "Close";
473
597
  readonly importNRows: "Import {{count}} Rows";
598
+ readonly importNRows_one: "Import {{count}} Row";
599
+ readonly importNRows_other: "Import {{count}} Rows";
474
600
  readonly importingProgress: "Importing…";
475
601
  readonly required: "Required";
476
602
  readonly invalidType: "Invalid {{type}}";
@@ -482,9 +608,13 @@ declare const en: {
482
608
  };
483
609
  readonly bulk: {
484
610
  readonly confirmDefault: "This will apply to {{count}} record(s).";
611
+ readonly confirmDefault_one: "This will apply to {{count}} record.";
612
+ readonly confirmDefault_other: "This will apply to {{count}} records.";
485
613
  readonly overLimit: "Selection ({{count}}) exceeds the action limit ({{limit}}). Reduce the selection to proceed.";
486
614
  readonly affectedRecords: "Affected records ({{count}}):";
487
615
  readonly skippedIneligible: "{{count}} selected record(s) are not eligible for this action and will be skipped.";
616
+ readonly skippedIneligible_one: "{{count}} selected record is not eligible for this action and will be skipped.";
617
+ readonly skippedIneligible_other: "{{count}} selected records are not eligible for this action and will be skipped.";
488
618
  readonly rowFallback: "Row {{index}}";
489
619
  readonly andMore: "… and {{count}} more";
490
620
  readonly processed: "{{count}} / {{total}} processed";
@@ -502,7 +632,6 @@ declare const en: {
502
632
  readonly undo: "Undo";
503
633
  readonly undoing: "Undoing…";
504
634
  readonly done: "Done";
505
- readonly selectPlaceholder: "Select…";
506
635
  readonly loading: "Loading…";
507
636
  };
508
637
  };
@@ -511,16 +640,43 @@ declare const en: {
511
640
  readonly month: "Month";
512
641
  readonly week: "Week";
513
642
  readonly day: "Day";
514
- readonly agenda: "Agenda";
515
643
  readonly allDay: "All Day";
516
- readonly noEvents: "No events";
517
644
  readonly newEvent: "New event";
518
645
  readonly moreEvents: "+{{count}} more";
646
+ readonly unscheduled: "Unscheduled ({{count}})";
647
+ readonly loading: "Loading calendar…";
648
+ readonly loadError: "Error: {{message}}";
649
+ readonly configRequired: "Calendar configuration required. Please specify startDateField, the calendar's one required key; the event title resolves without titleField.";
650
+ readonly configRequiredHint: "It belongs on the view's calendar block. An interface page has no calendar slot of its own: point its sourceView at a view that declares one.";
651
+ readonly eventDetails: "Event Details";
652
+ readonly pullToRefresh: "Pull to refresh";
653
+ readonly refreshing: "Refreshing…";
654
+ readonly onDate: "On {{date}}";
655
+ readonly eventTitle: "Title";
656
+ readonly eventTitlePlaceholder: "What's this event about?";
657
+ readonly creating: "Creating…";
658
+ readonly titleRequired: "Title is required";
659
+ readonly a11y: {
660
+ readonly region: "Calendar";
661
+ readonly grid: "Calendar grid";
662
+ readonly goToToday: "Go to today";
663
+ readonly previousPeriod: "Previous period";
664
+ readonly nextPeriod: "Next period";
665
+ readonly currentDate: "Current date: {{date}}";
666
+ readonly dayCell: "{{date}}, {{count}} events";
667
+ readonly dayCell_one: "{{date}}, {{count}} event";
668
+ readonly dayCell_other: "{{date}}, {{count}} events";
669
+ readonly resizeEventEnd: "Resize event end";
670
+ readonly resizeEventEndHint: "Drag to change end date";
671
+ readonly resizeStart: "Resize start";
672
+ readonly resizeEnd: "Resize end";
673
+ };
519
674
  };
520
675
  readonly list: {
521
676
  readonly loading: "Loading records…";
522
677
  readonly recordCount: "{{count}} records";
523
- readonly recordCountOne: "{{count}} record";
678
+ readonly recordCount_one: "{{count}} record";
679
+ readonly recordCount_other: "{{count}} records";
524
680
  readonly addRecord: "Add record";
525
681
  readonly tabs: "Tabs";
526
682
  readonly allRecords: "All Records";
@@ -590,7 +746,7 @@ declare const en: {
590
746
  readonly hideFieldsTitle: "Hide Fields";
591
747
  readonly dataLimitReached: "Showing first {{limit}} records. More data may be available.";
592
748
  readonly viewSettings: "View settings";
593
- readonly viewSettingsHint: "Grouping, color, density, and visible fields.";
749
+ readonly viewSettingsHint: "Grouping, color, density, and visible fields. Applies to everyone who uses this view.";
594
750
  readonly addGroup: "Add group field";
595
751
  readonly collapsedByDefault: "Collapsed by default";
596
752
  readonly removeGroup: "Remove";
@@ -655,6 +811,17 @@ declare const en: {
655
811
  };
656
812
  readonly gantt: {
657
813
  readonly rowLabel: "Items";
814
+ readonly unusableRange: {
815
+ readonly malformedDate: "Unusable gantt date range — {{path}} is {{value}}, which is not a valid date. Every gantt date has to parse: the startDate and endDate on every row item, plus any minDate / maxDate pinned on the schema.";
816
+ readonly malformedRow: "Unusable gantt rows — {{path}} is {{value}}, which is not a row shape. A gantt draws items as a list of rows, every row as an object with a label and its own items, and every row's items as a list of bars; a null, a number, a string or a plain object in any of those places cannot be drawn.";
817
+ readonly inverted: "Unusable gantt date range — minDate {{minDate}} is after maxDate {{maxDate}}. A pinned minDate / maxDate overrides the range computed from the rows, so this axis has no columns and no bar can be placed on it; swap the two values.";
818
+ };
819
+ };
820
+ readonly unsupported: {
821
+ readonly objectBoundGantt: "Unsupported variant \"gantt\" — an object-bound timeline renders the feed variants ({{variants}}). Gantt needs literal rows, each with its own nested items, so the gantt axis (scale) has no effect here.";
822
+ };
823
+ readonly unconfigured: {
824
+ readonly noDateAxis: "Timeline date axis required — this view declares no date field, and an object-bound timeline will not invent one. Declare one of: {{fields}}. The first is the spec spelling; the rest are legacy aliases.";
658
825
  };
659
826
  };
660
827
  readonly gantt: {
@@ -700,6 +867,7 @@ declare const en: {
700
867
  };
701
868
  readonly aria: {
702
869
  readonly taskList: "Task list";
870
+ readonly refreshing: "Refreshing…";
703
871
  };
704
872
  readonly tooltip: {
705
873
  readonly days: "d";
@@ -745,13 +913,19 @@ declare const en: {
745
913
  readonly conflict: {
746
914
  readonly title: "Schedule conflict";
747
915
  readonly body: "This move conflicts with dependency constraints. Auto-reschedule {{count}} affected task(s)?";
916
+ readonly body_one: "This move conflicts with dependency constraints. Auto-reschedule {{count}} affected task?";
917
+ readonly body_other: "This move conflicts with dependency constraints. Auto-reschedule {{count}} affected tasks?";
748
918
  readonly confirm: "Auto-reschedule";
749
919
  readonly cancel: "Keep as is";
750
920
  };
751
921
  readonly autoScheduleDlg: {
752
922
  readonly title: "Auto-schedule";
753
923
  readonly body: "Shift {{count}} task(s) later to satisfy dependency links?";
924
+ readonly body_one: "Shift {{count}} task later to satisfy dependency links?";
925
+ readonly body_other: "Shift {{count}} tasks later to satisfy dependency links?";
754
926
  readonly skipped: "{{count}} locked task(s) also violate links and were skipped.";
927
+ readonly skipped_one: "{{count}} locked task also violates links and was skipped.";
928
+ readonly skipped_other: "{{count}} locked tasks also violate links and were skipped.";
755
929
  readonly confirm: "Apply";
756
930
  readonly cancel: "Cancel";
757
931
  readonly none: "All dependencies satisfied — nothing to reschedule.";
@@ -802,6 +976,7 @@ declare const en: {
802
976
  readonly tabActionsFor: "View actions for {{name}}";
803
977
  readonly readonlyAriaLabel: "Read-only view";
804
978
  readonly readonlyTooltip: "System view — defined in code, read-only.";
979
+ readonly malformedFilter: "This view’s filter is malformed, so no records are shown: the {{subject}} condition cannot be applied.";
805
980
  };
806
981
  readonly detail: {
807
982
  readonly back: "Back";
@@ -817,6 +992,9 @@ declare const en: {
817
992
  readonly writeStrippedTitle: "Saved — but some fields did not take effect";
818
993
  readonly writeStrippedReadonly: "Read-only, so it did not take effect: {{fields}}";
819
994
  readonly writeStrippedByState: "Not editable in this record's current state, so it did not take effect: {{fields}}";
995
+ readonly writeStrippedPrimaryKey: "The record's identifier cannot be changed by a save, so it did not take effect: {{fields}}";
996
+ readonly writeStrippedComputed: "Calculated by the server from a formula, so the value sent did not take effect: {{fields}}";
997
+ readonly writeStrippedUnknownReason: "Not applied by the server: {{fields}}";
820
998
  readonly approvalPendingEditable: "In approval · editable";
821
999
  readonly approvalPendingTooltip: "This record has a pending approval request; this step still allows editing";
822
1000
  readonly approvalProgress: "Approvals — {{got}} of {{need}}";
@@ -829,7 +1007,16 @@ declare const en: {
829
1007
  readonly cancelApprovalTooltipUnlocked: "Recall the pending approval request";
830
1008
  readonly cancelApprovalFailed: "Failed to recall approval";
831
1009
  readonly cancelApprovalUnavailable: "Recalling approvals is not supported on this data source";
1010
+ readonly pathLabel: "Record path";
1011
+ readonly pathStageCompleted: "{{stage}}, completed";
1012
+ readonly pathStageCurrent: "{{stage}}, current stage";
1013
+ readonly pathStageUpcoming: "{{stage}}, upcoming";
1014
+ readonly pathStageLostCurrent: "{{stage}}, closed lost, current stage";
1015
+ readonly pathStageLostUpcoming: "{{stage}}, closed lost, not reached";
1016
+ readonly pathStageWonUpcoming: "{{stage}}, goal stage, not reached";
832
1017
  readonly linkCopied: "Link copied to clipboard";
1018
+ readonly commentFailed: "Your comment was not posted. Nothing was saved — please try again.";
1019
+ readonly reactionFailed: "Your reaction was not saved. Please try again.";
833
1020
  readonly linkCopyFailed: "Failed to copy link";
834
1021
  readonly cancel: "Cancel";
835
1022
  readonly cancelEdit: "Discard changes";
@@ -855,7 +1042,8 @@ declare const en: {
855
1042
  readonly pageHeaderActions: "Page header actions";
856
1043
  readonly emojiPicker: "Emoji picker";
857
1044
  readonly reactionCount: "{{emoji}} {{count}} reactions";
858
- readonly reactionCountOne: "{{emoji}} {{count}} reaction";
1045
+ readonly reactionCount_one: "{{emoji}} {{count}} reaction";
1046
+ readonly reactionCount_other: "{{emoji}} {{count}} reactions";
859
1047
  readonly recordDetail: "Record Detail";
860
1048
  readonly recordDetailWithLabel: "{{label}} Detail";
861
1049
  readonly openAsFullPage: "Open as full page";
@@ -882,7 +1070,6 @@ declare const en: {
882
1070
  readonly viewAll: "View All";
883
1071
  readonly new: "New";
884
1072
  readonly add: "Add";
885
- readonly emptyValue: "—";
886
1073
  readonly activity: "Activity";
887
1074
  readonly history: "History";
888
1075
  readonly historyEmpty: "No history yet";
@@ -897,6 +1084,7 @@ declare const en: {
897
1084
  readonly sortBy: "Sort by";
898
1085
  readonly filterPlaceholder: "Filter…";
899
1086
  readonly highlightFields: "Key Fields";
1087
+ readonly highlightsLabel: "Record highlights";
900
1088
  readonly comments: "Comments";
901
1089
  readonly searchComments: "Search comments…";
902
1090
  readonly addCommentPlaceholder: "Add a comment… (Ctrl+Enter to submit)";
@@ -907,8 +1095,14 @@ declare const en: {
907
1095
  readonly unpin: "Unpin";
908
1096
  readonly justNow: "just now";
909
1097
  readonly minutesAgo: "{{count}}m ago";
1098
+ readonly minutesAgo_one: "{{count}}m ago";
1099
+ readonly minutesAgo_other: "{{count}}m ago";
910
1100
  readonly hoursAgo: "{{count}}h ago";
1101
+ readonly hoursAgo_one: "{{count}}h ago";
1102
+ readonly hoursAgo_other: "{{count}}h ago";
911
1103
  readonly daysAgo: "{{count}}d ago";
1104
+ readonly daysAgo_one: "{{count}}d ago";
1105
+ readonly daysAgo_other: "{{count}}d ago";
912
1106
  readonly systemActor: "System";
913
1107
  readonly unknownUser: "Unknown";
914
1108
  readonly createdBy: "Created by";
@@ -917,7 +1111,8 @@ declare const en: {
917
1111
  readonly updated: "Updated";
918
1112
  readonly dropFilesToUpload: "Drop files here or click to upload";
919
1113
  readonly attachmentCount: "{{count}} attachment";
920
- readonly attachmentCountPlural: "{{count}} attachments";
1114
+ readonly attachmentCount_one: "{{count}} attachment";
1115
+ readonly attachmentCount_other: "{{count}} attachments";
921
1116
  readonly removeAttachment: "Remove attachment";
922
1117
  readonly attachments: "Attachments";
923
1118
  readonly uploadAttachment: "Upload";
@@ -930,11 +1125,10 @@ declare const en: {
930
1125
  readonly attachmentDownloadDenied: "You don't have access to download this attachment.";
931
1126
  readonly attachmentAuthRequired: "Please sign in to download this attachment.";
932
1127
  readonly attachmentPermissionDenied: "You don't have permission to do that.";
933
- readonly unifiedDiff: "Unified diff";
934
- readonly sideBySideDiff: "Side-by-side diff";
935
- readonly noChanges: "No changes";
936
- readonly previousVersion: "Previous";
937
- readonly currentVersion: "Current";
1128
+ readonly attachmentsAccessDenied: "You don't have access to these attachments.";
1129
+ readonly attachmentsLoadFailed: "We couldn't load the attachments for this record.";
1130
+ readonly attachmentsApiUnavailable: "The attachments list is not available on this object.";
1131
+ readonly retryLoadAttachments: "Retry";
938
1132
  readonly discussion: "Discussion";
939
1133
  readonly showDiscussion: "Show Discussion ({{count}})";
940
1134
  readonly hideDiscussion: "Hide discussion";
@@ -949,28 +1143,35 @@ declare const en: {
949
1143
  readonly writeComment: "Write a comment…";
950
1144
  readonly subscribedTooltip: "Subscribed — click to unsubscribe";
951
1145
  readonly unsubscribedTooltip: "Subscribe to notifications";
952
- readonly firstRecord: "First record (Home)";
953
- readonly previousRecordKey: "Previous record (←)";
954
- readonly nextRecordKey: "Next record (→)";
955
- readonly lastRecord: "Last record (End)";
956
1146
  readonly noRecords: "No records";
957
1147
  readonly showEmptyRelated: "+ {{count}} empty";
958
1148
  readonly showEmptyRelated_one: "+ {{count}} empty";
959
1149
  readonly showEmptyRelated_other: "+ {{count}} empty";
960
- readonly searchWhileNavigating: "Search while navigating";
961
- readonly searchRecords: "Search records…";
962
1150
  readonly allActivity: "All Activity";
963
1151
  readonly commentsOnly: "Comments Only";
964
1152
  readonly fieldChangesFilter: "Field Changes";
965
1153
  readonly tasksOnly: "Tasks Only";
966
1154
  readonly leaveCommentPlaceholder: "Leave a comment… (Ctrl+Enter to submit)";
967
1155
  readonly noActivity: "No activity recorded";
1156
+ readonly activityAccessDenied: "You don't have permission to view activity on this record.";
1157
+ readonly commentsAccessDenied: "You don't have permission to view comments on this record.";
1158
+ readonly allFilter: "All";
1159
+ readonly createsFilter: "Creates";
1160
+ readonly deletesFilter: "Deletes";
1161
+ readonly statusChangesFilter: "Status Changes";
1162
+ readonly activityEmptyValue: "(empty)";
1163
+ readonly activityFieldChanged: "Changed {{field}} from \"{{old}}\" to \"{{new}}\"";
1164
+ readonly activityCreated: "Created this record";
1165
+ readonly activityDeleted: "Deleted this record";
1166
+ readonly activityStatusChanged: "Changed status to \"{{value}}\"";
1167
+ readonly activityUpdated: "Updated record";
968
1168
  readonly loadMore: "Load more";
969
1169
  readonly edited: "(edited)";
970
1170
  readonly via: "via {{source}}";
971
1171
  readonly viewSource: "View source";
972
1172
  readonly replyCount: "{{count}} reply";
973
- readonly replyCountPlural: "{{count}} replies";
1173
+ readonly replyCount_one: "{{count}} reply";
1174
+ readonly replyCount_other: "{{count}} replies";
974
1175
  readonly replyPlaceholder: "Reply…";
975
1176
  readonly filterActivity: "Filter activity";
976
1177
  readonly openDiscussion: "Open discussion panel";
@@ -982,13 +1183,27 @@ declare const en: {
982
1183
  readonly copyPhone: "Copy phone number";
983
1184
  readonly copyRecordId: "Copy record ID";
984
1185
  readonly showEmptyFields: "Show {{count}} empty fields";
1186
+ readonly showEmptyFields_one: "Show {{count}} empty field";
1187
+ readonly showEmptyFields_other: "Show {{count}} empty fields";
985
1188
  readonly hideEmptyFields: "Hide empty fields";
986
1189
  readonly noValue: "No value";
1190
+ readonly unresolvedReference: "Unresolved reference: {{value}} was not resolved to a user";
1191
+ readonly unresolvedLookupReference: "Unresolved reference: {{value}} was not resolved to a record on this screen";
1192
+ readonly repeaterItemCount: "{{count}} items";
1193
+ readonly repeaterItemCount_one: "{{count}} item";
1194
+ readonly repeaterItemCount_other: "{{count}} items";
1195
+ readonly fileCount: "{{count}} files";
1196
+ readonly fileCount_one: "{{count}} file";
1197
+ readonly fileCount_other: "{{count}} files";
987
1198
  };
988
1199
  readonly chart: {
989
- readonly noData: "No chart data available";
990
1200
  readonly loading: "Loading chart…";
1201
+ readonly refreshing: "Refreshing…";
991
1202
  readonly nullCategory: "(None)";
1203
+ readonly scatterOneMeasure: "A scatter plots one measure. Keep exactly one series:";
1204
+ readonly unconfigured: {
1205
+ readonly noCategoryAxis: "Chart category axis required — an object-bound chart will not invent one. Declare one of:";
1206
+ };
992
1207
  };
993
1208
  readonly report: {
994
1209
  readonly total: "Total";
@@ -1016,93 +1231,132 @@ declare const en: {
1016
1231
  readonly panelTitle: "Edit report";
1017
1232
  };
1018
1233
  };
1019
- readonly map: {
1020
- readonly searchLocations: "Search locations…";
1021
- readonly locationDetails: "Location Details";
1022
- readonly markersCount: "{{count}} markers";
1023
- readonly invalidCoordinates: "{{count}} record with missing or invalid coordinates excluded from the map.";
1024
- readonly invalidCoordinatesPlural: "{{count}} records with missing or invalid coordinates excluded from the map.";
1025
- };
1026
- readonly workflow: {
1027
- readonly draft: "Draft";
1028
- readonly active: "Active";
1029
- readonly paused: "Paused";
1030
- readonly completed: "Completed";
1031
- readonly cancelled: "Cancelled";
1032
- readonly save: "Save";
1033
- readonly publish: "Publish";
1034
- readonly addNode: "Add Node";
1035
- readonly workflowFlow: "Workflow Flow";
1036
- readonly properties: "Properties";
1037
- readonly connections: "Connections";
1038
- readonly quickConnect: "Quick Connect";
1039
- readonly fromPlaceholder: "From…";
1040
- readonly toPlaceholder: "To…";
1041
- readonly connect: "Connect";
1042
- readonly label: "Label";
1043
- readonly type: "Type";
1044
- readonly description: "Description";
1045
- readonly assignee: "Assignee";
1046
- readonly assigneeType: "Assignee Type";
1047
- readonly user: "User";
1048
- readonly role: "Role";
1049
- readonly group: "Group";
1050
- readonly expression: "Expression";
1051
- readonly timeoutMinutes: "Timeout (minutes)";
1052
- readonly selectNodeToEdit: "Select a node to edit its properties";
1053
- readonly workflowTitle: "Workflow Title";
1054
- readonly newWorkflow: "New Workflow";
1055
- readonly outConnections: "{{count}} out";
1056
- readonly start: "Start";
1057
- readonly end: "End";
1058
- readonly task: "Task";
1059
- readonly userTask: "User Task";
1060
- readonly serviceTask: "Service Task";
1061
- readonly scriptTask: "Script Task";
1062
- readonly approval: "Approval";
1063
- readonly condition: "Condition";
1064
- readonly parallelGateway: "Parallel Gateway";
1065
- readonly joinGateway: "Join Gateway";
1066
- readonly boundaryEvent: "Boundary Event";
1067
- readonly delay: "Delay";
1068
- readonly notification: "Notification";
1069
- readonly webhook: "Webhook";
1070
- readonly allowConcurrency: "Allow (run concurrently)";
1071
- readonly forbidConcurrency: "Forbid (skip new)";
1072
- readonly replaceConcurrency: "Replace (cancel existing)";
1073
- readonly queueConcurrency: "Queue (run after current)";
1074
- readonly conditionEvent: "Condition";
1075
- readonly manualEvent: "Manual";
1076
- readonly webhookEvent: "Webhook";
1077
- readonly timerEvent: "Timer";
1078
- readonly signalEvent: "Signal";
1079
- readonly versionHistory: "Version History";
1080
- readonly importBpmn: "Import BPMN";
1081
- readonly exportBpmn: "Export BPMN";
1082
- readonly undo: "Undo";
1083
- readonly redo: "Redo";
1084
- readonly resetZoom: "Reset zoom";
1085
- };
1086
1234
  readonly designer: {
1087
1235
  readonly undo: "Undo";
1088
1236
  readonly redo: "Redo";
1089
1237
  };
1090
1238
  readonly dashboard: {
1091
1239
  readonly addWidget: "Add widget";
1092
- readonly removeWidget: "Remove widget";
1093
1240
  readonly editLayout: "Edit layout";
1094
1241
  readonly saveLayout: "Save layout";
1095
1242
  readonly resetLayout: "Reset layout";
1096
1243
  readonly total: "Total";
1097
- readonly noDataAvailable: "No data available";
1098
1244
  readonly noDataSourceFor: "No data source available for";
1099
- readonly noRows: "No rows";
1245
+ readonly empty: {
1246
+ readonly title: "No data yet";
1247
+ readonly message: "This widget loaded successfully and its query returned no records yet.";
1248
+ readonly sourceLabel: "Source:";
1249
+ };
1100
1250
  readonly loading: "Loading…";
1251
+ readonly refreshing: "Refreshing…";
1252
+ readonly refreshAll: "Refresh All";
1253
+ readonly refreshDashboard: "Refresh dashboard";
1101
1254
  readonly pickMeasures: "Pick measures (values) for this dataset widget.";
1102
1255
  readonly datasetUnsupported: "This data source does not support dataset queries.";
1256
+ readonly widgetForbiddenTitle: "You don’t have access";
1257
+ readonly widgetForbiddenMessage: "You don’t have permission to view the data behind this widget.";
1103
1258
  readonly details: "Details";
1104
1259
  readonly exportCsv: "Export CSV";
1105
1260
  readonly openInList: "Open in list";
1261
+ readonly config: {
1262
+ readonly breadcrumb: {
1263
+ readonly dashboard: "Dashboard";
1264
+ readonly configuration: "Configuration";
1265
+ readonly widget: "Widget";
1266
+ readonly chart: "Chart";
1267
+ readonly table: "Table";
1268
+ readonly pivotTable: "Pivot table";
1269
+ };
1270
+ readonly section: {
1271
+ readonly general: "General";
1272
+ readonly layout: "Layout";
1273
+ readonly data: "Data";
1274
+ readonly dataBinding: "Data Binding";
1275
+ readonly appearance: "Appearance";
1276
+ };
1277
+ readonly field: {
1278
+ readonly title: "Title";
1279
+ readonly description: "Description";
1280
+ readonly columns: "Columns";
1281
+ readonly gap: "Gap";
1282
+ readonly rowHeight: "Row height (px)";
1283
+ readonly autoRefresh: "Auto refresh";
1284
+ readonly showDescription: "Show description";
1285
+ readonly theme: "Theme";
1286
+ readonly widgetType: "Widget type";
1287
+ readonly colorVariant: "Color variant";
1288
+ readonly dataset: "Dataset";
1289
+ readonly dimensions: "Dimensions";
1290
+ readonly values: "Values";
1291
+ readonly width: "Width (columns)";
1292
+ readonly height: "Height (rows)";
1293
+ };
1294
+ readonly placeholder: {
1295
+ readonly dashboardTitle: "Dashboard title";
1296
+ readonly dashboardDescription: "Short summary shown under the title";
1297
+ readonly widgetTitle: "Widget title";
1298
+ readonly widgetDescription: "Widget description";
1299
+ readonly datasetName: "Dataset name";
1300
+ readonly selectDataset: "Select dataset…";
1301
+ readonly searchDatasets: "Search datasets…";
1302
+ readonly addDimension: "Add dimension…";
1303
+ readonly addMeasure: "Add measure…";
1304
+ readonly searchMembers: "Search…";
1305
+ };
1306
+ readonly empty: {
1307
+ readonly datasets: "No datasets found.";
1308
+ readonly dimensions: "No dimensions selected.";
1309
+ readonly measures: "No measures selected.";
1310
+ readonly nothingToAdd: "Nothing left to add.";
1311
+ };
1312
+ readonly help: {
1313
+ readonly dataset: "The semantic-layer dataset this widget binds to (ADR-0021).";
1314
+ readonly dimensions: "Group/split the values by these dataset dimensions.";
1315
+ readonly dimensionsPivot: "Group/split fields. The last dimension spreads across as columns.";
1316
+ readonly values: "Measure(s) from the dataset to display (at least one).";
1317
+ };
1318
+ readonly action: {
1319
+ readonly add: "Add";
1320
+ readonly remove: "Remove {{name}}";
1321
+ };
1322
+ readonly refresh: {
1323
+ readonly off: "Off";
1324
+ readonly every30s: "Every 30s";
1325
+ readonly every1m: "Every 1 min";
1326
+ readonly every5m: "Every 5 min";
1327
+ readonly every15m: "Every 15 min";
1328
+ readonly every30m: "Every 30 min";
1329
+ readonly every1h: "Every 1 hour";
1330
+ };
1331
+ readonly themeOption: {
1332
+ readonly light: "Light";
1333
+ readonly dark: "Dark";
1334
+ readonly auto: "Auto";
1335
+ };
1336
+ readonly widgetType: {
1337
+ readonly metric: "Metric";
1338
+ readonly bar: "Bar Chart";
1339
+ readonly horizontalBar: "Horizontal Bar";
1340
+ readonly line: "Line Chart";
1341
+ readonly pie: "Pie Chart";
1342
+ readonly donut: "Donut Chart";
1343
+ readonly area: "Area Chart";
1344
+ readonly scatter: "Scatter Plot";
1345
+ readonly funnel: "Funnel";
1346
+ readonly table: "Table";
1347
+ readonly pivot: "Pivot Table";
1348
+ };
1349
+ readonly color: {
1350
+ readonly default: "Default";
1351
+ readonly blue: "Blue";
1352
+ readonly teal: "Teal";
1353
+ readonly orange: "Orange";
1354
+ readonly purple: "Purple";
1355
+ readonly success: "Success";
1356
+ readonly warning: "Warning";
1357
+ readonly danger: "Danger";
1358
+ };
1359
+ };
1106
1360
  readonly trend: {
1107
1361
  readonly vsLastQuarter: "vs last quarter";
1108
1362
  readonly vsLastMonth: "vs last month";
@@ -1135,24 +1389,6 @@ declare const en: {
1135
1389
  };
1136
1390
  };
1137
1391
  };
1138
- readonly configPanel: {
1139
- readonly save: "Save";
1140
- readonly discard: "Discard";
1141
- readonly close: "Close";
1142
- readonly layout: "Layout";
1143
- readonly columns: "Columns";
1144
- readonly gap: "Gap";
1145
- readonly rowHeight: "Row height";
1146
- readonly data: "Data";
1147
- readonly refreshInterval: "Refresh interval";
1148
- readonly appearance: "Appearance";
1149
- readonly title: "Title";
1150
- readonly showDescription: "Show description";
1151
- readonly theme: "Theme";
1152
- readonly configuration: "Configuration";
1153
- readonly general: "General";
1154
- readonly advanced: "Advanced";
1155
- };
1156
1392
  readonly appDesigner: {
1157
1393
  readonly createApp: "Create Application";
1158
1394
  readonly editApp: "Edit Application";
@@ -1165,10 +1401,6 @@ declare const en: {
1165
1401
  readonly appDescription: "Description";
1166
1402
  readonly appIcon: "Icon";
1167
1403
  readonly template: "Template";
1168
- readonly layout: "Layout";
1169
- readonly layoutSidebar: "Sidebar";
1170
- readonly layoutHeader: "Header";
1171
- readonly layoutEmpty: "Empty";
1172
1404
  readonly selectObjects: "Select Objects";
1173
1405
  readonly searchObjects: "Search objects…";
1174
1406
  readonly selectAll: "Select All";
@@ -1177,7 +1409,6 @@ declare const en: {
1177
1409
  readonly addGroup: "Add Group";
1178
1410
  readonly addUrl: "Add URL";
1179
1411
  readonly addSeparator: "Add Separator";
1180
- readonly noNavItems: "No navigation items yet.";
1181
1412
  readonly logoUrl: "Logo URL";
1182
1413
  readonly primaryColor: "Primary Color";
1183
1414
  readonly faviconUrl: "Favicon URL";
@@ -1203,16 +1434,13 @@ declare const en: {
1203
1434
  readonly showSort: "Show Sort";
1204
1435
  readonly appearance: "Appearance";
1205
1436
  readonly rowHeight: "Row Height";
1206
- readonly stripedRows: "Striped Rows";
1207
- readonly bordered: "Bordered";
1208
1437
  readonly livePreview: "Live Preview";
1209
- readonly stepBasicDesc: "Name, title, and layout";
1438
+ readonly stepBasicDesc: "Name, title, and icon";
1210
1439
  readonly stepObjectsDesc: "Select business objects";
1211
1440
  readonly stepNavigationDesc: "Build navigation tree";
1212
1441
  readonly stepBrandingDesc: "Logo, colors, and favicon";
1213
1442
  readonly noObjectsFound: "No objects found.";
1214
1443
  readonly noNavItemsHint: "No navigation items yet. Select objects in the previous step or add items manually.";
1215
- readonly separator: "Separator";
1216
1444
  readonly separatorLabel: "— Separator —";
1217
1445
  readonly newGroup: "New Group";
1218
1446
  readonly newLink: "New Link";
@@ -1246,6 +1474,7 @@ declare const en: {
1246
1474
  readonly navTypeSeparator: "Separator";
1247
1475
  readonly navTypeAction: "Action";
1248
1476
  readonly navTypeComponent: "Component";
1477
+ readonly navTypeDoc: "Doc";
1249
1478
  readonly navEditIcon: "Edit icon";
1250
1479
  readonly navToggleVisible: "Toggle visibility";
1251
1480
  readonly navHidden: "Hidden";
@@ -1318,17 +1547,13 @@ declare const en: {
1318
1547
  readonly unique: "Unique";
1319
1548
  readonly readOnly: "Read Only";
1320
1549
  readonly hidden: "Hidden";
1321
- readonly indexed: "Indexed";
1322
1550
  readonly externalId: "External ID";
1323
1551
  readonly trackHistory: "Track History";
1324
1552
  readonly defaultValue: "Default Value";
1325
1553
  readonly placeholder: "Placeholder";
1326
1554
  readonly referenceTo: "Reference To";
1327
- readonly formula: "Formula";
1328
1555
  readonly options: "Options";
1329
1556
  readonly addOption: "Add Option";
1330
- readonly validationRules: "Validation Rules";
1331
- readonly addRule: "Add Rule";
1332
1557
  readonly systemBadge: "System";
1333
1558
  readonly ungrouped: "General";
1334
1559
  readonly deleteConfirmTitle: "Delete Field?";
@@ -1347,7 +1572,21 @@ declare const en: {
1347
1572
  };
1348
1573
  };
1349
1574
  readonly console: {
1575
+ readonly studio: {
1576
+ readonly backToHome: "Back to home";
1577
+ };
1350
1578
  readonly saveAdvisoryTitle: "Saved — the authoring check raised {{count}} advisory finding(s)";
1579
+ readonly saveAdvisoryTitle_one: "Saved — the authoring check raised {{count}} advisory finding";
1580
+ readonly saveAdvisoryTitle_other: "Saved — the authoring check raised {{count}} advisory findings";
1581
+ readonly publishAdvisoryTitle: "Published — the authoring check raised {{count}} advisory finding(s)";
1582
+ readonly publishAdvisoryTitle_one: "Published — the authoring check raised {{count}} advisory finding";
1583
+ readonly publishAdvisoryTitle_other: "Published — the authoring check raised {{count}} advisory findings";
1584
+ readonly importMappingsUnavailable: "Saved import mappings for {{object}} could not be loaded";
1585
+ readonly importMappingsRefused: "The server refused this request, so this list is empty because it could not be read — not because nothing is registered. Sign in again, or ask an administrator for access.";
1586
+ readonly importMappingsUnreadable: "This list is empty because it could not be read, not because nothing is registered. Try again, and report this if it keeps happening.";
1587
+ readonly savedViewsUnavailable: "Saved views for {{object}} could not be loaded";
1588
+ readonly savedViewsRefused: "The server refused this request, so this list is empty because it could not be read — not because this object has no saved views. Sign in again, or ask an administrator for access.";
1589
+ readonly savedViewsUnreadable: "This list is empty because it could not be read, not because this object has no saved views. Try again, and report this if it keeps happening.";
1351
1590
  readonly title: "ObjectOS";
1352
1591
  readonly initializing: "Initializing application…";
1353
1592
  readonly search: "Search…";
@@ -1356,12 +1595,22 @@ declare const en: {
1356
1595
  readonly pages: "Pages";
1357
1596
  readonly reports: "Reports";
1358
1597
  readonly system: "System";
1598
+ readonly marketplace: "Marketplace";
1599
+ readonly settings: "Settings";
1600
+ readonly apps: "Apps";
1601
+ readonly profile: "Profile";
1602
+ readonly approvals: "Approvals";
1603
+ readonly aiApprovals: "AI Approvals";
1604
+ readonly auditLog: "Audit Log";
1359
1605
  };
1360
1606
  readonly nav: {
1361
1607
  readonly pinItem: "Pin {{name}}";
1362
1608
  readonly unpinItem: "Unpin {{name}}";
1363
1609
  readonly dragToReorder: "Drag to reorder";
1364
1610
  readonly favorites: "Favorites";
1611
+ readonly launcherLabel: "App launcher";
1612
+ readonly menuLabel: "App navigation";
1613
+ readonly menuEmpty: "This app has no navigation entries you can open.";
1365
1614
  };
1366
1615
  readonly settingsHub: {
1367
1616
  readonly title: "Settings";
@@ -1468,6 +1717,13 @@ declare const en: {
1468
1717
  readonly createApp: "Create New App";
1469
1718
  };
1470
1719
  readonly ai: {
1720
+ readonly pendingDrafts: {
1721
+ readonly count: "{{count}} change(s) are not published yet — users cannot see them.";
1722
+ readonly publish: "Publish";
1723
+ readonly published: "All pending changes are live.";
1724
+ readonly failed: "Publish failed.";
1725
+ readonly publishedWithFindings: "Published, but the runtime probes reported problems: {{detail}}";
1726
+ };
1471
1727
  readonly usage: {
1472
1728
  readonly title: "AI usage";
1473
1729
  readonly meterBuild: "Build";
@@ -1477,9 +1733,16 @@ declare const en: {
1477
1733
  readonly statusFull: "Limit reached";
1478
1734
  readonly resetsDaily: "Resets tonight";
1479
1735
  readonly resetsMonthly: "Resets next cycle";
1736
+ readonly resetsWeeklyDays: "Resets in {{count}} days";
1737
+ readonly resetsWeeklyDays_one: "Resets in {{count}} day";
1738
+ readonly resetsWeeklyDays_other: "Resets in {{count}} days";
1739
+ readonly resetsWeeklyHours: "Resets in {{count}} hours";
1740
+ readonly resetsWeeklyHours_one: "Resets in {{count}} hour";
1741
+ readonly resetsWeeklyHours_other: "Resets in {{count}} hours";
1480
1742
  readonly ctaUpgrade: "Upgrade to keep going";
1481
1743
  readonly ctaTopUp: "Add credits to continue";
1482
1744
  readonly ariaLabel: "AI usage: {{status}}";
1745
+ readonly breakdownTitle: "Used so far";
1483
1746
  };
1484
1747
  readonly workspaceTitle: "AI Workspace";
1485
1748
  readonly workspaceSubtitle: "Ask, inspect, and resume conversations";
@@ -1489,6 +1752,31 @@ declare const en: {
1489
1752
  readonly share: "Share";
1490
1753
  readonly shareTitle: "Share this conversation";
1491
1754
  readonly shareDisabledTitle: "Start chatting to enable sharing";
1755
+ readonly buildDoctor: "Build Doctor";
1756
+ readonly buildDoctorTitle: "Build Doctor — what actually landed?";
1757
+ readonly buildDoctorDisabledTitle: "Send a message first";
1758
+ readonly buildDoctorDrawer: {
1759
+ readonly description: "What the agent claimed vs what is actually live. Read-only diagnostic.";
1760
+ readonly reconciling: "Reconciling…";
1761
+ readonly notAvailable: "Not available — the conversation was not found or you are not authorized.";
1762
+ readonly untitled: "(untitled)";
1763
+ readonly summary: "{{turns}} turn(s) · {{messages}} msgs · {{tokens}} tok · {{seconds}}s LLM";
1764
+ readonly allLive: "All {{count}} attempted change(s) are live — nothing evaporated.";
1765
+ readonly discrepancies: "{{count}} discrepancy(ies) — what the chat said doesn't match what's live.";
1766
+ readonly orphanedTitle: "Proposed but never applied";
1767
+ readonly orphanedHint: "A confirm card the agent proposed but no later turn applied — the change silently evaporated.";
1768
+ readonly missingTitle: "Claimed but missing";
1769
+ readonly missingHint: "A tool result said it was applied, but the artifact isn't live in sys_metadata.";
1770
+ readonly toolErrorsTitle: "Tool errors";
1771
+ readonly toolErrorsHint: "Tool calls that returned an error during the build.";
1772
+ readonly verifyTitle: "Build check (verify_build)";
1773
+ readonly yourApp: "Your app:";
1774
+ readonly noIssues: "0 issues";
1775
+ readonly issueCount: "{{count}} issue(s)";
1776
+ readonly platformNoise: "{{count}} platform sys_* finding(s) hidden";
1777
+ readonly pendingActions: "Pending actions";
1778
+ readonly timeline: "Timeline ({{count}})";
1779
+ };
1492
1780
  readonly newChat: "New";
1493
1781
  readonly searchChats: "Search chats…";
1494
1782
  readonly noChatsYet: "No chats yet";
@@ -1518,7 +1806,7 @@ declare const en: {
1518
1806
  readonly empty: {
1519
1807
  readonly build: {
1520
1808
  readonly title: "Build with AI";
1521
- readonly description: "Describe an app or workflow in plain language — I draft the objects, screens and automations, then you review and publish.";
1809
+ readonly description: "Describe an app in plain language — I draft the objects, screens and sample data, then you review and publish.";
1522
1810
  };
1523
1811
  readonly ask: {
1524
1812
  readonly title: "Ask your data";
@@ -1527,7 +1815,7 @@ declare const en: {
1527
1815
  readonly editApp: {
1528
1816
  readonly title: "Editing “{{app}}”";
1529
1817
  readonly titleGeneric: "Edit this app";
1530
- readonly description: "What would you like to change? I’ll modify this app in place — add a field, object, view or automation, or adjust what’s already there.";
1818
+ readonly description: "What would you like to change? I’ll modify this app in place — add a field, object, view or dashboard, or adjust what’s already there.";
1531
1819
  };
1532
1820
  };
1533
1821
  readonly clearConversation: "Clear";
@@ -1571,6 +1859,11 @@ declare const en: {
1571
1859
  readonly changesConfirmed: "Confirmed";
1572
1860
  readonly changesConfirm: "Confirm";
1573
1861
  readonly changesConfirmHint: "Reply to confirm or adjust this change.";
1862
+ readonly changesApplying: "Applying…";
1863
+ readonly changesApplied: "Applied";
1864
+ readonly changesDrafted: "Saved as draft";
1865
+ readonly changesFailed: "Not applied";
1866
+ readonly discussing: "Discussing: {{target}}";
1574
1867
  readonly changesConfirmMessage: "Confirm — apply the change you just proposed.";
1575
1868
  readonly changeVerb: {
1576
1869
  readonly createObject: "Create object";
@@ -1599,11 +1892,11 @@ declare const en: {
1599
1892
  readonly recordCounts: "Count records for each object.";
1600
1893
  };
1601
1894
  readonly metadataAssistant: {
1602
- readonly buildCrm: "Build a sales CRM — customers, contacts, and a deal pipeline I can total by stage.";
1603
- readonly buildApp: "Create a project tracker — projects, tasks with owners and due dates, and a board by status.";
1604
- readonly buildFlow: "Design a support desk — tickets with priority, a status workflow, and customer links.";
1605
- readonly buildInventory: "Build an inventory app — products, stock levels, suppliers, and low-stock visibility.";
1606
- readonly buildRecruiting: "Make an applicant tracker — candidates, open roles, interview stages, and notes.";
1895
+ readonly buildCrm: "Build a sales CRM — customers, contacts, and deals with a stage field, plus a dashboard that totals deal value by stage.";
1896
+ readonly buildApp: "Create a project tracker — projects, tasks with owners and due dates, a board grouped by status, and a calendar of due dates.";
1897
+ readonly buildFlow: "Design a support desk — tickets with priority and status fields, a board grouped by status, and links to customers.";
1898
+ readonly buildInventory: "Build an inventory app — products, stock levels, suppliers, and a view that filters the items below their reorder point.";
1899
+ readonly buildRecruiting: "Make an applicant tracker — candidates, open roles, an interview-stage field, and a board grouped by stage.";
1607
1900
  };
1608
1901
  readonly generic: {
1609
1902
  readonly help: "What can you help me with?";
@@ -1614,7 +1907,7 @@ declare const en: {
1614
1907
  readonly addField: "Add a field to one of the objects.";
1615
1908
  readonly addObject: "Add a new object and relate it to an existing one.";
1616
1909
  readonly addDashboard: "Add a dashboard for the key metrics.";
1617
- readonly addAutomation: "Add an automation — an approval, a status flow, or a notification.";
1910
+ readonly addSampleData: "Fill the existing objects with realistic sample records so I can demo the app.";
1618
1911
  };
1619
1912
  };
1620
1913
  readonly collapseToDock: "Collapse to side panel";
@@ -1664,6 +1957,19 @@ declare const en: {
1664
1957
  readonly older: "Older";
1665
1958
  };
1666
1959
  };
1960
+ readonly readRate: {
1961
+ readonly ratioTitle: "Unusual read volume in this environment";
1962
+ readonly ratio: "Reads are running at {{ratio}} rows for every row written. The platform flags anything above {{threshold}}. Nothing is limited or blocked; this is a report so the read pattern can be reviewed.";
1963
+ readonly noWritesTitle: "Reads with no writes at all in this environment";
1964
+ readonly noWrites: "Rows are being read while none at all are being written, so the read rate has no upper bound. This is the most severe reading. The platform flags anything above {{threshold}}. Nothing is limited or blocked; this is a report so the read pattern can be reviewed.";
1965
+ };
1966
+ readonly storageUsage: {
1967
+ readonly warningTitle: "Storage is filling up";
1968
+ readonly warning: "{{used}} MB of {{limit}} MB used. Uploads and imports pause once storage is full.";
1969
+ readonly blockedTitle: "Storage is full: uploads and imports are paused";
1970
+ readonly blocked: "{{used}} MB of {{limit}} MB used. Existing data is untouched, and reading, exporting and editing single records still work.";
1971
+ readonly upgrade: "Upgrade to continue";
1972
+ };
1667
1973
  readonly errors: {
1668
1974
  readonly somethingWentWrong: "Something went wrong";
1669
1975
  readonly unexpectedError: "An unexpected error occurred while rendering this view.";
@@ -1717,67 +2023,25 @@ declare const en: {
1717
2023
  readonly filterNestedNotSavable: "This filter uses nested condition groups, which a saved view cannot store. Flatten it to a single list of conditions to save it to the view.";
1718
2024
  readonly systemViewReadonly: "System view defined in code — read-only.";
1719
2025
  readonly cannotEditMetaView: "This view is built in and defined in code — it cannot be changed.";
2026
+ readonly viewConfigPermissionDenied: "View settings apply to everyone who uses this view, so changing them requires the Manage Metadata permission. Ask an administrator to make this change.";
1720
2027
  readonly cannotDeleteMetaView: "This view is built in and defined in code — it cannot be deleted.";
1721
2028
  readonly expandToPage: "Open as full page";
1722
2029
  readonly allRecords: "All Records";
1723
- readonly exitDesignMode: "Exit Design Mode";
1724
- readonly enterDesignMode: "Enter Design Mode";
1725
- readonly metadataInspector: "Metadata Inspector";
1726
- readonly editView: "Edit View";
1727
- readonly addView: "Add View";
1728
- readonly designTools: "Design tools";
1729
2030
  readonly new: "New";
1730
2031
  readonly import: "Import";
1731
2032
  readonly importTitle: "Import from CSV";
1732
2033
  readonly importedToast: "Imported {{count}} row(s).";
2034
+ readonly importedToast_one: "Imported {{count}} row.";
2035
+ readonly importedToast_other: "Imported {{count}} rows.";
1733
2036
  readonly importedWithSkipped: "Imported {{ok}} row(s); skipped {{skipped}}.";
1734
2037
  readonly configureView: "Configure View";
1735
- readonly closePanel: "Close panel";
1736
- readonly showAdvancedSettings: "Show advanced settings";
1737
- readonly showFewerSettings: "Show fewer settings";
1738
- readonly page: "Page";
1739
- readonly pageConfigHint: "Toolbar, navigation & view shell settings";
1740
- readonly listConfigHint: "Data rendering, columns & appearance for this list type";
1741
- readonly general: "General";
1742
- readonly generalHint: "View title, description, and type";
1743
- readonly toolbar: "Toolbar";
1744
- readonly toolbarHint: "Search, filter, sort, group, and density toggles";
1745
2038
  readonly toolbarEnabledCount: "{{count}} of {{total}} enabled";
1746
- readonly navigationSection: "Navigation";
1747
- readonly navigationHint: "Row click behavior and detail view settings";
1748
- readonly records: "Records";
1749
- readonly recordsHint: "Selection mode, add record, and inline editing";
1750
- readonly exportPrint: "Export & Print";
1751
- readonly exportPrintHint: "Export formats, printing, and record count display";
1752
- readonly showAllFields: "Show All";
1753
- readonly hideAllFields: "Hide All";
1754
2039
  readonly searchFields: "Search fields…";
1755
2040
  readonly title: "Title";
1756
- readonly description: "Description";
1757
- readonly data: "Data";
1758
- readonly source: "Source";
1759
- readonly columns: "Columns";
1760
- readonly filterBy: "Filter by";
1761
- readonly sortBy: "Sort by";
1762
- readonly appearance: "Appearance";
1763
- readonly showDescription: "Show description";
1764
2041
  readonly viewType: "View type";
1765
- readonly userFilters: "User filters";
1766
- readonly enableSearch: "Enable search";
1767
- readonly enableFilter: "Enable filter";
1768
- readonly enableSort: "Enable sort";
1769
- readonly enableHideFields: "Enable hide fields";
1770
- readonly enableGroup: "Enable group";
1771
- readonly enableColor: "Enable color";
1772
- readonly enableDensity: "Enable density";
1773
- readonly userActions: "User actions";
1774
- readonly addRecordViaForm: "Add records through a form";
1775
- readonly advanced: "Advanced";
1776
- readonly allowExport: "Allow export";
1777
2042
  readonly recordCount: "{{count}} records";
1778
- readonly noDescription: "No description";
1779
- readonly none: "None";
1780
- readonly columnsConfigured: "{{count}} columns";
2043
+ readonly recordCount_one: "{{count}} record";
2044
+ readonly recordCount_other: "{{count}} records";
1781
2045
  readonly save: "Save";
1782
2046
  readonly discard: "Discard";
1783
2047
  readonly createView: "Create View";
@@ -1788,6 +2052,8 @@ declare const en: {
1788
2052
  readonly deleteViewTitle: "Delete view";
1789
2053
  readonly deleteViewConfirm: "Are you sure you want to delete the view \"{{name}}\"? This cannot be undone.";
1790
2054
  readonly bulkDeleteConfirm: "Delete {{count}} selected records? This cannot be undone.";
2055
+ readonly bulkDeleteConfirm_one: "Delete {{count}} selected record? This cannot be undone.";
2056
+ readonly bulkDeleteConfirm_other: "Delete {{count}} selected records? This cannot be undone.";
1791
2057
  readonly duplicateViewName: "A view with this name already exists.";
1792
2058
  readonly viewTypeGrid: "Grid";
1793
2059
  readonly viewTypeGridDesc: "A spreadsheet-style table of records.";
@@ -1814,7 +2080,6 @@ declare const en: {
1814
2080
  readonly viewNameHelp: "Machine key (snake_case). Auto-filled from the title — edit if you like.";
1815
2081
  readonly viewNameRequired: "Enter a key (lowercase letters, numbers, underscore). Not auto-filled for non-Latin titles.";
1816
2082
  readonly viewNameInvalid: "Use lowercase letters, numbers and underscores; start with a letter or underscore.";
1817
- readonly typeOptions: "Type Options";
1818
2083
  readonly groupByField: "Group by field";
1819
2084
  readonly groupByFieldHelp: "The kanban groups records into columns by this field's values.";
1820
2085
  readonly startDateField: "Start date field";
@@ -1829,7 +2094,6 @@ declare const en: {
1829
2094
  readonly longitudeFieldHelp: "Field providing the longitude coordinate (geo fields only).";
1830
2095
  readonly imageField: "Image field";
1831
2096
  readonly imageFieldHelp: "The gallery cover comes from this image or attachment field.";
1832
- readonly dateField: "Date field";
1833
2097
  readonly selectField: "Select field…";
1834
2098
  readonly selectOption: "Select…";
1835
2099
  readonly noEligibleFieldForType: "No eligible field of this type. Add one to the object first.";
@@ -1842,86 +2106,18 @@ declare const en: {
1842
2106
  readonly chartTypePie: "Pie chart";
1843
2107
  readonly chartTypeArea: "Area chart";
1844
2108
  readonly chartTypeScatter: "Scatter chart";
1845
- readonly xAxisField: "X-axis field";
1846
- readonly xAxisFieldHelp: "The categorical or time dimension.";
1847
- readonly yAxisField: "Y-axis field";
1848
- readonly yAxisFieldHelp: "The numeric field to aggregate.";
1849
- readonly gridOptionsHint: "Grid view uses the columns configured above.";
1850
- readonly groupBy: "Group by";
1851
- readonly prefixField: "Prefix field";
1852
- readonly fields: "Fields";
1853
- readonly fieldsVisible: "{{count}} visible";
1854
- readonly sortsCount: "{{count}} sorts";
1855
- readonly filtersCount: "{{count}} filters";
2109
+ readonly dataset: "Dataset";
2110
+ readonly datasetHelp: "The chart reads its numbers from this dataset of the object.";
2111
+ readonly chartMeasure: "Measure";
2112
+ readonly chartMeasureHelp: "The dataset measure plotted on the value axis.";
2113
+ readonly chartDimension: "Dimension";
2114
+ readonly chartDimensionHelp: "The dataset dimension the values are grouped by (optional).";
2115
+ readonly viewTypeUnavailableDataset: "This object exposes no dataset to chart.";
2116
+ readonly noDatasetMeasure: "This dataset declares no measure to chart.";
1856
2117
  readonly endDateField: "End date field";
1857
- readonly color: "Color";
1858
- readonly fieldTextColor: "Field text color";
1859
- readonly rowHeight: "Row height";
1860
- readonly wrapHeaders: "Wrap headers";
1861
- readonly showFieldDescriptions: "Show field descriptions";
1862
- readonly collapseAllByDefault: "Collapse all by default";
1863
- readonly striped: "Striped rows";
1864
- readonly bordered: "Bordered cells";
1865
- readonly inlineEdit: "Edit records inline";
1866
- readonly addDeleteRecordsInline: "Add/delete records inline";
1867
- readonly clickIntoRecordDetails: "Click into record details";
1868
- readonly navigationMode: "Navigation mode";
1869
- readonly navigationWidth: "Navigation width";
1870
- readonly navigationWidthHint: "Available for drawer, modal, and split navigation modes";
1871
- readonly openNewTab: "Open in new tab";
1872
- readonly openNewTabHint: "Available for page and new window navigation modes";
1873
- readonly selectionMode: "Selection mode";
1874
- readonly selectionNone: "None";
1875
- readonly selectionSingle: "Single";
1876
- readonly selectionMultiple: "Multiple";
1877
- readonly pageSize: "Page size";
1878
- readonly pageSizeOptions: "Page size options";
1879
- readonly exportFormats: "Export formats";
1880
- readonly exportMaxRecords: "Max records";
1881
- readonly exportIncludeHeaders: "Include headers";
1882
- readonly exportFileNamePrefix: "File name prefix";
1883
- readonly searchableFields: "Searchable fields";
1884
- readonly filterableFields: "Filterable fields";
1885
- readonly resizableColumns: "Resizable columns";
1886
- readonly densityCompact: "Compact";
1887
- readonly densityComfortable: "Comfortable";
1888
- readonly densitySpacious: "Spacious";
1889
- readonly densityMode: "Density mode";
1890
- readonly hiddenFields: "Hidden fields";
1891
- readonly rowActions: "Row actions";
1892
- readonly bulkActions: "Bulk actions";
1893
- readonly sharing: "Sharing";
1894
- readonly sharingEnabled: "Enable sharing";
1895
- readonly sharingVisibility: "Visibility";
1896
- readonly addRecordEnabled: "Enable add record";
1897
- readonly addRecordPosition: "Position";
1898
- readonly addRecordMode: "Mode";
1899
- readonly addRecordFormView: "Form view";
1900
- readonly conditionalFormatting: "Conditional formatting";
1901
- readonly addRule: "Add rule";
1902
- readonly quickFilters: "Quick filters";
1903
- readonly addQuickFilter: "Add quick filter";
1904
- readonly ufElements: "Elements";
1905
- readonly ufDropdown: "Dropdown";
1906
2118
  readonly ufTabs: "Tabs";
1907
- readonly ufToggle: "Toggle";
1908
2119
  readonly ufAddField: "+ Add filter field…";
1909
- readonly ufNoFields: "No fields available";
1910
- readonly ufAddTab: "+ Add tab";
1911
- readonly ufTabLabel: "Label";
1912
2120
  readonly ufShowAllRecords: "Show \"All records\" tab";
1913
- readonly ufAllowAddTab: "Allow adding tabs";
1914
- readonly showRecordCount: "Show record count";
1915
- readonly allowPrinting: "Allow printing";
1916
- readonly virtualScroll: "Virtual scroll";
1917
- readonly emptyStateTitle: "Empty state title";
1918
- readonly emptyStateMessage: "Empty state message";
1919
- readonly emptyStateIcon: "Empty state icon";
1920
- readonly ariaLabel: "ARIA label";
1921
- readonly ariaDescribedBy: "ARIA described by";
1922
- readonly ariaLive: "ARIA live";
1923
- readonly accessibility: "Accessibility";
1924
- readonly viewTabs: "View Tabs";
1925
2121
  };
1926
2122
  readonly localeSwitcher: {
1927
2123
  readonly label: "Language";
@@ -1952,6 +2148,8 @@ declare const en: {
1952
2148
  readonly resendOtpCountdownText: "Resend in {seconds}s";
1953
2149
  readonly usePhoneOtpText: "Sign in with verification code";
1954
2150
  readonly usePasswordSignInText: "Sign in with password instead";
2151
+ readonly socialButton: "Continue with {provider}";
2152
+ readonly orText: "or continue with email";
1955
2153
  readonly devAdminHint: {
1956
2154
  readonly title: "Development instance";
1957
2155
  readonly body: "Sign in with the seeded dev admin:";
@@ -1980,8 +2178,12 @@ declare const en: {
1980
2178
  readonly submittingButton: "Creating account…";
1981
2179
  readonly hasAccountText: "Already have an account?";
1982
2180
  readonly signInText: "Sign in";
2181
+ readonly socialButton: "Sign up with {provider}";
2182
+ readonly orText: "or continue with email";
1983
2183
  readonly errors: {
1984
2184
  readonly userExists: "An account with this email already exists. Try signing in instead.";
2185
+ readonly selfRegistrationClosed: "Self-registration is not open on this environment. Ask an administrator for an invitation.";
2186
+ readonly emailDomainNotAllowed: "This email's domain is not allowed to register here. Use your organization email, or ask an administrator for an invitation.";
1985
2187
  };
1986
2188
  readonly verifyInbox: {
1987
2189
  readonly title: "Check your inbox";
@@ -2000,7 +2202,7 @@ declare const en: {
2000
2202
  readonly submitButton: "Send Reset Link";
2001
2203
  readonly submittingButton: "Sending…";
2002
2204
  readonly successTitle: "Check your email";
2003
- readonly successDescription: "We've sent a password reset link to {{email}}. Please check your inbox.";
2205
+ readonly successDescription: "We've sent a password reset link to {email}. Please check your inbox.";
2004
2206
  readonly backToSignInText: "Back to sign in";
2005
2207
  readonly rememberPasswordText: "Remember your password?";
2006
2208
  readonly signInText: "Sign in";
@@ -2190,6 +2392,15 @@ declare const en: {
2190
2392
  readonly role: "Role";
2191
2393
  readonly save: "Save Changes";
2192
2394
  };
2395
+ readonly language: {
2396
+ readonly title: "Language";
2397
+ readonly description: "The language used for notifications and messages sent to you. The interface language is chosen separately, from the globe menu.";
2398
+ readonly label: "Preferred language";
2399
+ readonly systemDefault: "Use the deployment default";
2400
+ readonly save: "Save";
2401
+ readonly saved: "Language preference updated.";
2402
+ readonly readOnly: "Your administrator manages the language for your account.";
2403
+ };
2193
2404
  readonly password: {
2194
2405
  readonly changeTitle: "Change Password";
2195
2406
  readonly setTitle: "Set Local Password";
@@ -2221,7 +2432,6 @@ declare const en: {
2221
2432
  readonly label: "Workspaces";
2222
2433
  readonly default: "My Workspace";
2223
2434
  readonly switch: "Switch workspace";
2224
- readonly create: "Create workspace";
2225
2435
  readonly createTitle: "Create a workspace";
2226
2436
  readonly createDescription: "A workspace is a shared space for your team to collaborate.";
2227
2437
  readonly createButton: "Create workspace";
@@ -2244,7 +2454,6 @@ declare const en: {
2244
2454
  };
2245
2455
  readonly sidebar: {
2246
2456
  readonly settings: "Settings";
2247
- readonly help: "Help";
2248
2457
  readonly helpTooltip: "Help & Documentation";
2249
2458
  readonly activityFeed: "Activity feed";
2250
2459
  readonly notifications: "Notifications";
@@ -2283,7 +2492,6 @@ declare const en: {
2283
2492
  };
2284
2493
  readonly home: {
2285
2494
  readonly title: "Home";
2286
- readonly subtitle: "Your workspace dashboard";
2287
2495
  readonly nav: "Home";
2288
2496
  readonly allApps: "All Applications";
2289
2497
  readonly yourApps: "Your apps";
@@ -2302,20 +2510,15 @@ declare const en: {
2302
2510
  readonly build: {
2303
2511
  readonly title: "Build an app";
2304
2512
  readonly subtitle: "Start from scratch — design objects, forms, automations and interfaces.";
2513
+ readonly noCapability: "Building apps isn't available in this workspace — it requires the “Manage Metadata” permission, which your account doesn't have.";
2305
2514
  };
2306
2515
  readonly template: {
2307
2516
  readonly title: "Start with a template";
2308
2517
  readonly subtitle: "Install a template app from the marketplace and customize it.";
2518
+ readonly marketplaceDisabled: "This runtime has no app marketplace configured, so there are no templates to install here.";
2309
2519
  };
2310
2520
  readonly open: "Open";
2311
- readonly stats: {
2312
- readonly apps: "Applications";
2313
- readonly starred: "Starred";
2314
- readonly recent: "Recent items";
2315
- };
2316
2521
  readonly loading: "Loading workspace…";
2317
- readonly recent: "Recent";
2318
- readonly starred: "Starred";
2319
2522
  readonly welcome: "Build your business system with AI";
2320
2523
  readonly welcomeDescription: "Describe your business in one sentence — AI generates the objects, screens, APIs and agent tools. Or start from scratch.";
2321
2524
  readonly welcomeAdminDescription: "Describe your business in one sentence — AI generates the objects, screens, APIs and agent tools. Or set things up yourself from the menu on the left.";
@@ -2332,6 +2535,8 @@ declare const en: {
2332
2535
  };
2333
2536
  readonly pendingDrafts: {
2334
2537
  readonly message: "You have {{count}} unpublished change(s) — publish to make them live.";
2538
+ readonly message_one: "You have {{count}} unpublished change — publish to make it live.";
2539
+ readonly message_other: "You have {{count}} unpublished changes — publish to make them live.";
2335
2540
  readonly cta: "Publish";
2336
2541
  readonly publishing: "Publishing…";
2337
2542
  readonly published: "Published! Your changes are live.";
@@ -2347,8 +2552,6 @@ declare const en: {
2347
2552
  readonly browseMarketplace: "Browse App Marketplace";
2348
2553
  readonly quickActions: {
2349
2554
  readonly title: "Quick Actions";
2350
- readonly createApp: "Create App";
2351
- readonly createAppDesc: "Start with a new application";
2352
2555
  readonly manageObjects: "Manage Objects";
2353
2556
  readonly manageObjectsDesc: "Configure data models";
2354
2557
  readonly systemSettings: "System Settings";
@@ -2360,7 +2563,9 @@ declare const en: {
2360
2563
  readonly object: "Object";
2361
2564
  readonly dashboard: "Dashboard";
2362
2565
  readonly page: "Page";
2566
+ readonly report: "Report";
2363
2567
  readonly record: "Record";
2568
+ readonly metadata: "Metadata";
2364
2569
  };
2365
2570
  };
2366
2571
  readonly starredApps: {
@@ -2397,7 +2602,6 @@ declare const en: {
2397
2602
  readonly organizations: "Organizations";
2398
2603
  readonly roles: "Roles";
2399
2604
  readonly configuration: "Configuration";
2400
- readonly createApp: "Create App";
2401
2605
  readonly administration: "Administration";
2402
2606
  readonly datasources: "Datasources";
2403
2607
  readonly documentation: "Documentation";
@@ -2412,6 +2616,7 @@ declare const en: {
2412
2616
  readonly typeUpdate: "Update";
2413
2617
  readonly typeDelete: "Delete";
2414
2618
  readonly typeComment: "Comment";
2619
+ readonly typeSystem: "System";
2415
2620
  readonly relativeJustNow: "just now";
2416
2621
  readonly relativeSecondsAgo: "{{count}}s ago";
2417
2622
  readonly relativeMinutesAgo: "{{count}}m ago";
@@ -2432,8 +2637,11 @@ declare const en: {
2432
2637
  readonly placeholder: "Search objects, dashboards, pages, reports…";
2433
2638
  readonly inputAriaLabel: "Search objects, dashboards, pages, reports";
2434
2639
  readonly resultsCount: "{{count}} result for \"{{query}}\"";
2435
- readonly resultsCountPlural: "{{count}} results for \"{{query}}\"";
2640
+ readonly resultsCount_one: "{{count}} result for \"{{query}}\"";
2641
+ readonly resultsCount_other: "{{count}} results for \"{{query}}\"";
2436
2642
  readonly itemsAvailable: "{{count}} items available";
2643
+ readonly itemsAvailable_one: "{{count}} item available";
2644
+ readonly itemsAvailable_other: "{{count}} items available";
2437
2645
  readonly noResults: "No results found";
2438
2646
  readonly noResultsHint: "Try adjusting your search terms";
2439
2647
  readonly typeObjects: "Objects";
@@ -2460,7 +2668,11 @@ declare const en: {
2460
2668
  readonly noAppsConfigured: "No Apps Configured";
2461
2669
  readonly noAppsConfiguredDescription: "No applications have been registered. Create your first app or visit System Settings to configure your environment.";
2462
2670
  readonly appNotAvailable: "App not available";
2463
- readonly appNotAvailableDescription: "This app is not available yet — it may still be publishing. Try again in a moment.";
2671
+ readonly appNotAvailableDescription: "This app is not available — try again in a moment.";
2672
+ readonly appNotFound: "This app can't be opened";
2673
+ readonly appNotFoundDescription: "The server did not return this app for your account.";
2674
+ readonly appUnreachable: "Couldn't reach the server";
2675
+ readonly appUnreachableDescription: "This app could not be checked. Try again in a moment.";
2464
2676
  readonly appAccessDenied: "You don't have access to this app";
2465
2677
  readonly appAccessDeniedDescription: "This app exists, but your account is not authorized to open it. Ask an administrator to grant you access.";
2466
2678
  readonly appAccessDeniedHome: "Back to home";
@@ -2501,7 +2713,13 @@ declare const en: {
2501
2713
  readonly detailNone: "No differences detected — the draft matches the published version.";
2502
2714
  readonly detailChangedKeys: "Also changed:";
2503
2715
  readonly confirmNote: "Publishing releases all {{count}} pending drafts of this package atomically.";
2716
+ readonly confirmNote_one: "Publishing releases the {{count}} pending draft of this package atomically.";
2717
+ readonly confirmNote_other: "Publishing releases all {{count}} pending drafts of this package atomically.";
2504
2718
  readonly publishConfirm: "Publish all";
2719
+ readonly securityBlockTitle: "Publishing will be refused — {{count}} item(s) need a decision first";
2720
+ readonly securityBlockTitle_one: "Publishing will be refused — {{count}} item needs a decision first";
2721
+ readonly securityBlockTitle_other: "Publishing will be refused — {{count}} items need a decision first";
2722
+ readonly securityBlockWhere: "Fix it on the object under Settings → Record sharing, then publish again.";
2505
2723
  };
2506
2724
  readonly unpublishedBar: {
2507
2725
  readonly message: "Unpublished app — fully functional, but only builders can see it. Publish to make it visible to your users.";
@@ -2521,28 +2739,13 @@ declare const en: {
2521
2739
  readonly revertLabel: "Reverted a change";
2522
2740
  readonly applyLabel: "Build change";
2523
2741
  readonly revert: "revert";
2524
- readonly items: "item(s)";
2742
+ readonly items: "{{count}} item(s)";
2525
2743
  readonly revertAction: "Revert";
2526
2744
  readonly reverted: "Reverted — the change has been undone.";
2527
2745
  readonly revertFailed: "Revert failed";
2528
2746
  readonly revertUnavailable: "Commit store temporarily unreachable — the revert may not have been applied. Reopen this history to check before retrying.";
2529
2747
  };
2530
2748
  };
2531
- readonly renderer: {
2532
- readonly noPageSchema: "No page schema provided";
2533
- readonly noFormSchema: "No form schema provided";
2534
- readonly noDashboardSchema: "No dashboard schema provided";
2535
- readonly pageRendering: "Page rendering: {{name}}";
2536
- readonly dashboardRendering: "Dashboard rendering: {{name}}";
2537
- readonly formRenderingMode: "Form rendering in {{mode}} mode";
2538
- readonly formRenderingFor: "for record {{id}}";
2539
- readonly createRecord: "Create Record";
2540
- readonly editRecord: "Edit Record";
2541
- readonly page: "Page";
2542
- readonly dashboard: "Dashboard";
2543
- readonly save: "Save";
2544
- readonly cancel: "Cancel";
2545
- };
2546
2749
  readonly actionDialog: {
2547
2750
  readonly title: "Action Parameters";
2548
2751
  readonly description: "Please provide the required information to continue.";
@@ -2550,22 +2753,17 @@ declare const en: {
2550
2753
  readonly requiredError: "{{label}} is required";
2551
2754
  readonly lookupPlaceholder: "Record id for {{label}}";
2552
2755
  readonly lookupHelpText: "No reference object is configured for this parameter, so the record picker is unavailable. Enter a record id, or ask an administrator to fix the action parameter.";
2756
+ readonly unresolvedParam: "This parameter cannot be shown: the field it is backed by is missing from the object metadata, so the control it needs cannot be built. Ask an administrator to fix the action definition.";
2757
+ readonly carryOverHint: "Carried over unchanged (read-only)";
2553
2758
  readonly cancel: "Cancel";
2554
2759
  readonly confirm: "Confirm";
2555
2760
  readonly uploading: "Uploading…";
2556
- readonly defaultActionTitle: "Action";
2557
- readonly ok: "OK";
2558
2761
  };
2559
2762
  readonly actionConfirm: {
2560
2763
  readonly title: "Confirm Action";
2561
2764
  readonly confirm: "Continue";
2562
2765
  readonly cancel: "Cancel";
2563
2766
  };
2564
- readonly rowAction: {
2565
- readonly openMenu: "Open menu";
2566
- readonly edit: "Edit";
2567
- readonly delete: "Delete";
2568
- };
2569
2767
  readonly navigationSync: {
2570
2768
  readonly addedPage: "Navigation updated: added page \"{{name}}\"";
2571
2769
  readonly addedDashboard: "Navigation updated: added dashboard \"{{name}}\"";
@@ -2586,6 +2784,8 @@ declare const en: {
2586
2784
  readonly resetPackageSetConfirm: string;
2587
2785
  readonly resetPackageSetSuccess: "Permission set reset to its shipped baseline";
2588
2786
  readonly bulkDeleteSuccess: "Deleted {{count}} {{label}} records";
2787
+ readonly bulkDeleteSuccess_one: "Deleted {{count}} {{label}} record";
2788
+ readonly bulkDeleteSuccess_other: "Deleted {{count}} {{label}} records";
2589
2789
  readonly bulkDeletePartial: "{{succeeded}} deleted, {{failed}} failed";
2590
2790
  };
2591
2791
  readonly objectViewActions: {
@@ -2597,15 +2797,6 @@ declare const en: {
2597
2797
  readonly exportFailed: "Export failed: {{message}}";
2598
2798
  readonly forecastSoon: "Forecast view coming soon";
2599
2799
  };
2600
- readonly recordDetail: {
2601
- readonly viewersTooltip: "Users viewing this record";
2602
- };
2603
- readonly cellRender: {
2604
- readonly empty: "Empty";
2605
- readonly yes: "Yes";
2606
- readonly no: "No";
2607
- readonly systemFields: "System";
2608
- };
2609
2800
  readonly user: {
2610
2801
  readonly profile: "Profile";
2611
2802
  readonly settings: "Settings";
@@ -2755,6 +2946,9 @@ declare const en: {
2755
2946
  readonly declined: "Invitation declined";
2756
2947
  readonly declineFailed: "Failed to decline invitation";
2757
2948
  };
2949
+ readonly current: {
2950
+ readonly label: "Current organization";
2951
+ };
2758
2952
  readonly switcher: {
2759
2953
  readonly label: "Switch organization";
2760
2954
  readonly groupLabel: "Working organization";
@@ -2772,15 +2966,30 @@ declare const en: {
2772
2966
  readonly viewAll: "View all notifications";
2773
2967
  readonly groupCount: "{{count}} notifications";
2774
2968
  readonly groupUnread: "{{count}} unread";
2969
+ readonly groupUnread_one: "{{count}} unread";
2970
+ readonly groupUnread_other: "{{count}} unread";
2775
2971
  readonly groupMarkRead: "Mark read";
2776
2972
  readonly groupMarkReadTitle: "Mark all of this type read";
2777
2973
  readonly approvalsPending: "{{count}} pending approvals";
2974
+ readonly approvalsPending_one: "{{count}} pending approval";
2975
+ readonly approvalsPending_other: "{{count}} pending approvals";
2778
2976
  readonly viewApprovals: "View approvals";
2779
2977
  readonly noPendingApprovals: "No pending approvals";
2780
2978
  readonly openApprovalsInbox: "Open Approvals Inbox";
2781
2979
  readonly badgeTotal: "{{total}} total";
2782
2980
  readonly badgeNotifications: "{{unread}} notifications";
2783
2981
  readonly badgeApprovals: "{{approvals}} pending approvals";
2982
+ readonly arrivalMany: "{{count}} new messages";
2983
+ readonly arrivalMany_one: "{{count}} new message";
2984
+ readonly arrivalMany_other: "{{count}} new messages";
2985
+ readonly arrivalRepeats: "{{count}} new messages on this topic";
2986
+ readonly arrivalRepeats_one: "{{count}} new message on this topic";
2987
+ readonly arrivalRepeats_other: "{{count}} new messages on this topic";
2988
+ readonly arrivalOpen: "View";
2989
+ readonly toastEnabled: "In-app alerts";
2990
+ readonly desktopEnabled: "Desktop notifications";
2991
+ readonly desktopBlocked: "Blocked. Allow notifications for this site in your browser settings.";
2992
+ readonly desktopUnsupported: "This browser does not support desktop notifications.";
2784
2993
  };
2785
2994
  readonly publicForm: {
2786
2995
  readonly submit: "Submit";
@@ -2791,63 +3000,19 @@ declare const en: {
2791
3000
  readonly thankYouTitle: "Thank you!";
2792
3001
  readonly thankYouMessage: "Your submission has been received successfully.";
2793
3002
  readonly redirecting: "Redirecting in {{seconds}} seconds…";
3003
+ readonly redirectPending: "Redirecting…";
2794
3004
  readonly unavailableTitle: "Form unavailable";
2795
3005
  readonly unavailableDescription: "No public form is available at this URL. Make sure the underlying view has anonymous sharing enabled and matches this slug.";
2796
3006
  readonly tryDemo: "Try the demo";
2797
3007
  readonly retry: "Retry";
2798
3008
  readonly loading: "Loading form…";
2799
3009
  readonly requiredHint: "* Required field";
3010
+ readonly requiredFields: "Required: {{fields}}";
2800
3011
  readonly consentLabelDefault: "I agree to the privacy policy and consent to my data being processed for this request.";
2801
3012
  readonly consentLink: "Privacy policy";
2802
3013
  readonly consentRequired: "Please accept the privacy policy to continue.";
2803
3014
  readonly rateLimited: "Please take a moment to review your answers before submitting.";
2804
3015
  readonly redirectBlocked: "Submission accepted, but the redirect URL was blocked for security.";
2805
- readonly demo: {
2806
- readonly contactTitle: "Contact us";
2807
- readonly contactDescription: "Tell us about your project and a sales representative will get back to you within one business day.";
2808
- readonly supportTitle: "Submit a support request";
2809
- readonly supportDescription: "Tell us what is going wrong — our team responds within one business day.";
2810
- readonly thankYouSalesTitle: "Thanks — we received your message!";
2811
- readonly thankYouSalesMessage: "A sales representative will be in touch within one business day.";
2812
- readonly thankYouSupportTitle: "Got it — your request is in the queue.";
2813
- readonly thankYouSupportMessage: "A support engineer will follow up shortly. Save this page if you have more screenshots to add.";
2814
- readonly field: {
2815
- readonly firstName: "First name";
2816
- readonly lastName: "Last name";
2817
- readonly email: "Work email";
2818
- readonly phone: "Phone";
2819
- readonly jobTitle: "Job title";
2820
- readonly company: "Company";
2821
- readonly website: "Website";
2822
- readonly industry: "Industry";
2823
- readonly companySize: "Company size";
2824
- readonly howCanWeHelp: "How can we help?";
2825
- readonly subject: "Subject";
2826
- readonly description: "Description";
2827
- readonly issueType: "Issue type";
2828
- readonly priority: "Priority";
2829
- };
2830
- readonly industry: {
2831
- readonly technology: "Technology";
2832
- readonly software: "Software / SaaS";
2833
- readonly finance: "Finance";
2834
- readonly healthcare: "Healthcare";
2835
- readonly retail: "Retail";
2836
- readonly other: "Other";
2837
- };
2838
- readonly issueType: {
2839
- readonly question: "Question";
2840
- readonly problem: "Problem";
2841
- readonly bug: "Bug";
2842
- readonly feature_request: "Feature request";
2843
- };
2844
- readonly priority: {
2845
- readonly low: "Low";
2846
- readonly medium: "Medium";
2847
- readonly high: "High";
2848
- readonly critical: "Critical";
2849
- };
2850
- };
2851
3016
  };
2852
3017
  readonly connectAgent: {
2853
3018
  readonly disabled: {
@@ -2893,6 +3058,8 @@ declare const en: {
2893
3058
  readonly noImportableFields: "That object has no importable fields.";
2894
3059
  readonly schemaReadFailed: "Could not read the object schema.";
2895
3060
  readonly imported: "Imported {{count}} row(s) into {{object}}.";
3061
+ readonly imported_one: "Imported {{count}} row into {{object}}.";
3062
+ readonly imported_other: "Imported {{count}} rows into {{object}}.";
2896
3063
  readonly importFrom: "Import the real rows from";
2897
3064
  readonly into: "into";
2898
3065
  readonly opening: "Opening…";
@@ -2906,6 +3073,76 @@ declare const en: {
2906
3073
  readonly openProduction: "Open Production";
2907
3074
  readonly manageEnvironments: "Manage environments";
2908
3075
  };
3076
+ readonly cloudPlanStatus: {
3077
+ readonly current: "Current plan";
3078
+ };
3079
+ readonly ai: {
3080
+ readonly nlQuery: {
3081
+ readonly placeholder: "Ask a question about your data…";
3082
+ readonly ask: "Ask";
3083
+ readonly results: "Results";
3084
+ readonly match: "{{percent}} match";
3085
+ readonly simulatedSummary: "Results for: {{query}}";
3086
+ readonly noResults: "No matching records found";
3087
+ readonly recentQueries: "Recent Queries";
3088
+ };
3089
+ readonly formAssist: {
3090
+ readonly title: "AI Suggestions";
3091
+ readonly suggestionCount: "{{count}} suggestions";
3092
+ readonly suggestionCount_one: "{{count}} suggestion";
3093
+ readonly suggestionCount_other: "{{count}} suggestions";
3094
+ readonly applyAll: "Apply All";
3095
+ readonly confidence: "{{percent}} confidence";
3096
+ readonly appliedCount: "{{count}} suggestions applied";
3097
+ readonly appliedCount_one: "{{count}} suggestion applied";
3098
+ readonly appliedCount_other: "{{count}} suggestions applied";
3099
+ };
3100
+ readonly recommendations: {
3101
+ readonly title: "Recommendations";
3102
+ readonly generating: "Generating recommendations…";
3103
+ readonly empty: "No recommendations available";
3104
+ };
3105
+ };
3106
+ readonly aiApprovals: {
3107
+ readonly title: "AI Approvals";
3108
+ readonly description: "Actions an AI agent proposed that need a human review before execution.";
3109
+ readonly tabPending: "Pending";
3110
+ readonly tabDecided: "Decided";
3111
+ readonly tabAll: "All";
3112
+ readonly statusPending: "Pending";
3113
+ readonly statusApproved: "Approved";
3114
+ readonly statusExecuted: "Executed";
3115
+ readonly statusFailed: "Failed";
3116
+ readonly statusRejected: "Rejected";
3117
+ readonly colTool: "Tool";
3118
+ readonly colAction: "Action";
3119
+ readonly colObject: "Object";
3120
+ readonly colStatus: "Status";
3121
+ readonly colProposed: "Proposed";
3122
+ readonly colDecision: "Decision";
3123
+ readonly emptyTitle: "No actions waiting";
3124
+ readonly emptyDescription: "When the AI proposes a sensitive action it will appear here for review.";
3125
+ readonly view: "View";
3126
+ readonly approve: "Approve";
3127
+ readonly reject: "Reject";
3128
+ readonly working: "Working…";
3129
+ readonly approveAndExecute: "Approve & Execute";
3130
+ readonly outcomeApprove: "Approve for {{id}}: {{message}}";
3131
+ readonly outcomeReject: "Reject for {{id}}: {{message}}";
3132
+ readonly outcomeExecuteFailed: "Action failed during execution";
3133
+ readonly drawerFallbackTitle: "Pending action";
3134
+ readonly drawerSubtitle: "Tool {{tool}} on {{object}}";
3135
+ readonly fieldProposedBy: "Proposed by";
3136
+ readonly fieldDecidedBy: "Decided by";
3137
+ readonly fieldConversation: "Conversation";
3138
+ readonly fieldToolInput: "Tool input";
3139
+ readonly fieldResult: "Result";
3140
+ readonly fieldError: "Error";
3141
+ readonly fieldRejectionReason: "Rejection reason";
3142
+ readonly rejectTitle: "Reject this action?";
3143
+ readonly rejectBody: "The reason is shown back to the AI so it can adjust its next response.";
3144
+ readonly rejectPlaceholder: "Optional reason (e.g. 'Wrong record id — please confirm with the user first.')";
3145
+ };
2909
3146
  readonly aiModelStatus: {
2910
3147
  readonly summary: "Build / Ask uses {{conversational}} ({{conversationalSource}}); structured uses {{structured}} ({{structuredSource}}).";
2911
3148
  readonly summaryRouting: "Routing policy: free plans → {{free}}, paid plans → {{paid}}.";
@@ -2923,6 +3160,82 @@ declare const en: {
2923
3160
  readonly sourceInherits: "same as build/ask";
2924
3161
  readonly sourcePinned: "pinned by {{source}}";
2925
3162
  };
3163
+ readonly chatbot: {
3164
+ readonly tool: {
3165
+ readonly aggregate_data: "Aggregate data";
3166
+ readonly get_record: "Get record";
3167
+ readonly query_data: "Query data";
3168
+ readonly query_records: "Query records";
3169
+ readonly search_knowledge: "Search knowledge";
3170
+ readonly visualize_data: "Visualize data";
3171
+ readonly add_field: "Add field";
3172
+ readonly apply_blueprint: "Apply blueprint";
3173
+ readonly apply_edit: "Apply edit";
3174
+ readonly create_metadata: "Create metadata";
3175
+ readonly create_object: "Create object";
3176
+ readonly create_package: "Create package";
3177
+ readonly create_seed: "Create seed";
3178
+ readonly delete_field: "Delete field";
3179
+ readonly describe_metadata: "Describe metadata";
3180
+ readonly describe_object: "Describe object";
3181
+ readonly get_active_package: "Get active package";
3182
+ readonly get_authoring_rules: "Get authoring rules";
3183
+ readonly get_metadata_schema: "Get metadata schema";
3184
+ readonly get_package: "Get package";
3185
+ readonly list_metadata: "List metadata";
3186
+ readonly list_objects: "List objects";
3187
+ readonly list_packages: "List packages";
3188
+ readonly load_tools: "Load tools";
3189
+ readonly modify_field: "Modify field";
3190
+ readonly open_record: "Open record";
3191
+ readonly propose_blueprint: "Propose blueprint";
3192
+ readonly set_active_package: "Set active package";
3193
+ readonly suggest_builder: "Suggest builder";
3194
+ readonly test_flow: "Test flow";
3195
+ readonly todo_write: "Todo write";
3196
+ readonly toggle_flow: "Toggle flow";
3197
+ readonly update_metadata: "Update metadata";
3198
+ readonly validate_expression: "Validate expression";
3199
+ readonly verify_build: "Verify build";
3200
+ };
3201
+ readonly toolState: {
3202
+ readonly agentActivity: "Agent activity";
3203
+ readonly pending: "Pending";
3204
+ readonly running: "Running";
3205
+ readonly awaitingApproval: "Awaiting approval";
3206
+ readonly responded: "Responded";
3207
+ readonly completed: "Completed";
3208
+ readonly error: "Error";
3209
+ readonly denied: "Denied";
3210
+ readonly failed: "Failed";
3211
+ };
3212
+ readonly plan: {
3213
+ readonly countObjects: "{{count}} objects";
3214
+ readonly countObjects_one: "{{count}} object";
3215
+ readonly countObjects_other: "{{count}} objects";
3216
+ readonly countViews: "{{count}} views";
3217
+ readonly countViews_one: "{{count}} view";
3218
+ readonly countViews_other: "{{count}} views";
3219
+ readonly countDashboards: "{{count}} dashboards";
3220
+ readonly countDashboards_one: "{{count}} dashboard";
3221
+ readonly countDashboards_other: "{{count}} dashboards";
3222
+ readonly countSeedData: "sample data";
3223
+ };
3224
+ readonly build: {
3225
+ readonly building: "Building {{app}}…";
3226
+ readonly built: "Built {{app}}";
3227
+ readonly appFallback: "your app";
3228
+ readonly addingSampleData: "adding sample data";
3229
+ readonly group: {
3230
+ readonly object: "Objects";
3231
+ readonly view: "Views";
3232
+ readonly dashboard: "Dashboards";
3233
+ readonly app: "App";
3234
+ readonly seed: "Sample data";
3235
+ };
3236
+ readonly moreArtifacts: "+{{n}} more";
3237
+ };
3238
+ };
2926
3239
  readonly chatbotError: {
2927
3240
  readonly title: "Response failed";
2928
3241
  readonly fallbackDetail: "Something went wrong. Please try again.";
@@ -2959,6 +3272,7 @@ declare const en: {
2959
3272
  readonly retry: "Try again";
2960
3273
  readonly errors: {
2961
3274
  readonly expired: "The request expired before it was approved. Start again.";
3275
+ readonly accessDenied: "The connection request was denied. Start again.";
2962
3276
  readonly bindFailed: "Binding failed.";
2963
3277
  readonly deviceCodeFailed: "Device code request failed.";
2964
3278
  };
@@ -2992,7 +3306,7 @@ declare const en: {
2992
3306
  readonly marketplace: {
2993
3307
  readonly title: "App Marketplace";
2994
3308
  readonly subtitle: "Browse approved apps published to the ObjectStack catalog. Click an app to view details and install it into one of your environments.";
2995
- readonly searchPlaceholder: "Search apps by name or manifest ID…";
3309
+ readonly searchPlaceholder: "Search apps by name or app ID…";
2996
3310
  readonly searchAria: "Search marketplace apps";
2997
3311
  readonly installed: "Installed";
2998
3312
  readonly installedCount: "Installed ({{count}})";
@@ -3015,10 +3329,16 @@ declare const en: {
3015
3329
  readonly installedBadge: "Installed v{{version}}";
3016
3330
  readonly load: {
3017
3331
  readonly failed: "Failed to load marketplace";
3018
- readonly failedHint: "By default this runtime points at the public ObjectStack cloud. Check the runtime is online, or override <code>OS_CLOUD_URL</code> to point at a self-hosted control plane.";
3332
+ readonly failedHintConfigured: "This runtime reaches the marketplace through the control plane at {{url}}. Check that it is online and reachable from here.";
3333
+ readonly failedHintSameOrigin: "This runtime serves the marketplace catalog itself. Check that the runtime is online.";
3019
3334
  readonly packageFailed: "Failed to load package";
3020
3335
  readonly notFound: "Not found.";
3021
3336
  };
3337
+ readonly disabled: {
3338
+ readonly title: "App Marketplace is turned off";
3339
+ readonly description: "This runtime has no marketplace configured, so there is nothing to browse or install from here.";
3340
+ readonly hint: "That is the expected state when the runtime is started with <code>OS_CLOUD_URL=off</code> (or <code>none</code>, <code>local</code>, <code>disabled</code>). To turn the marketplace on, point <code>OS_CLOUD_URL</code> at a control plane and restart the runtime.";
3341
+ };
3022
3342
  readonly detail: {
3023
3343
  readonly homepage: "Homepage";
3024
3344
  readonly installedV: "Installed · v{{version}}";
@@ -3034,10 +3354,15 @@ declare const en: {
3034
3354
  readonly purgeSampleData: "Purge sample data";
3035
3355
  readonly purgeConfirm: "Delete all sample records seeded by this package? User-added records will NOT be touched.";
3036
3356
  readonly purgeSuccess: "Removed {{count}} sample record(s).";
3357
+ readonly purgeSuccess_one: "Removed {{count}} sample record.";
3358
+ readonly purgeSuccess_other: "Removed {{count}} sample records.";
3037
3359
  readonly purgeNoData: "No sample records found to purge.";
3038
3360
  readonly reseedQueued: "Sample data will be re-seeded on next environment access.";
3039
3361
  readonly reseedLocalSuccess: "Re-seeded sample data: {{inserted}} inserted, {{updated}} updated.";
3040
3362
  readonly reseedPartialErrors: "({{count}} record(s) failed to write)";
3363
+ readonly reseedPartialErrors_one: "({{count}} record failed to write)";
3364
+ readonly reseedPartialErrors_other: "({{count}} records failed to write)";
3365
+ readonly sampleDataKernelUnavailable: "This control plane has no environment kernel, so sample data cannot be re-seeded or purged from here. Do it from the environment's own runtime.";
3041
3366
  readonly updateAvailable: "Update available";
3042
3367
  };
3043
3368
  readonly action: {
@@ -3086,7 +3411,8 @@ declare const en: {
3086
3411
  readonly reviewed: "Reviewed & approved";
3087
3412
  readonly unreviewed: "Not yet reviewed";
3088
3413
  readonly signed: "Signed";
3089
- readonly grantsIntro: "On install, this package will be granted:";
3414
+ readonly grantsIntro: "This package requests:";
3415
+ readonly notEnforced: "Recorded at install, and re-confirmed if a later version asks for more — but the runtime does not yet restrict the package to this list.";
3090
3416
  readonly services: "Platform services";
3091
3417
  readonly hooks: "Lifecycle hooks";
3092
3418
  readonly network: "Network access";
@@ -3134,30 +3460,19 @@ declare const en: {
3134
3460
  readonly storage: "Storage";
3135
3461
  readonly other: "Other";
3136
3462
  };
3137
- readonly pricing: {
3138
- readonly free: "Free";
3139
- readonly freemium: "Freemium";
3140
- readonly paid: "Paid";
3141
- readonly subscription: "Subscription";
3142
- readonly 'usage-based': "Usage-based";
3143
- readonly 'contact-sales': "Contact Sales";
3144
- };
3145
3463
  readonly relativeTime: {
3146
3464
  readonly today: "today";
3147
3465
  readonly daysAgo: "{{count}}d ago";
3148
3466
  readonly monthsAgo: "{{count}}mo ago";
3467
+ readonly monthsAgo_one: "{{count}}mo ago";
3468
+ readonly monthsAgo_other: "{{count}}mo ago";
3149
3469
  readonly yearsAgo: "{{count}}y ago";
3470
+ readonly yearsAgo_one: "{{count}}y ago";
3471
+ readonly yearsAgo_other: "{{count}}y ago";
3150
3472
  };
3151
3473
  };
3152
- readonly approvals: {
3153
- readonly approve: "Approve";
3154
- readonly reject: "Reject";
3155
- readonly comment: "Comment (optional)";
3156
- readonly approveSuccess: "Approved";
3157
- readonly rejectSuccess: "Rejected";
3158
- readonly rejectConfirm: "Reject this approval request?";
3159
- };
3160
3474
  readonly approvalsInbox: {
3475
+ readonly recordUnresolvable: "This record cannot be opened";
3161
3476
  readonly loadMore: "Load more";
3162
3477
  readonly loadingMore: "Loading…";
3163
3478
  readonly loadedOf: "Loaded {{loaded}} of {{total}}";
@@ -3176,6 +3491,8 @@ declare const en: {
3176
3491
  readonly requestInfoSent: "Sent back to the requester for more information";
3177
3492
  readonly remindBtn: "Send reminder";
3178
3493
  readonly remindSuccess: "Reminder sent to {{count}} approver(s)";
3494
+ readonly remindSuccess_one: "Reminder sent to {{count}} approver";
3495
+ readonly remindSuccess_other: "Reminder sent to {{count}} approvers";
3179
3496
  readonly remindThrottled: "A reminder was sent recently — try again later.";
3180
3497
  readonly replyPlaceholder: "Reply on this request…";
3181
3498
  readonly slaRemaining: "SLA {{dur}} left";
@@ -3192,6 +3509,8 @@ declare const en: {
3192
3509
  readonly progressApprovals: "Approvals — {{got}} of {{need}}";
3193
3510
  readonly progressGroups: "Sign-off progress — {{got}} of {{need}} groups";
3194
3511
  readonly progressEligible: "{{count}} eligible approver(s)";
3512
+ readonly progressEligible_one: "{{count}} eligible approver";
3513
+ readonly progressEligible_other: "{{count}} eligible approvers";
3195
3514
  readonly progressBar: "Decision progress";
3196
3515
  readonly declaredActions: "Actions";
3197
3516
  readonly attachmentChip: "Attachment";
@@ -3223,6 +3542,8 @@ declare const en: {
3223
3542
  readonly filterCount: "{{shown}} of {{total}}";
3224
3543
  readonly selected: "selected";
3225
3544
  readonly actionableCount: "({{count}} actionable)";
3545
+ readonly actionableCount_one: "({{count}} actionable)";
3546
+ readonly actionableCount_other: "({{count}} actionable)";
3226
3547
  readonly selectAll: "Select all";
3227
3548
  readonly selectRow: "Select request";
3228
3549
  readonly colRequest: "Request";
@@ -3263,12 +3584,19 @@ declare const en: {
3263
3584
  readonly submittedAgo: "Submitted {{when}}";
3264
3585
  readonly completedAt: "Completed {{when}}";
3265
3586
  readonly waitingOn: "Waiting on";
3587
+ readonly approverNameSeparator: ", ";
3588
+ readonly approverUnstaffed: "{{seat}} (no current holder)";
3266
3589
  readonly history: "Activity";
3267
3590
  readonly noActions: "No actions yet.";
3268
3591
  readonly actSubmit: "Submitted";
3269
3592
  readonly actApprove: "Approved";
3270
3593
  readonly actReject: "Rejected";
3271
3594
  readonly actRecall: "Recalled";
3595
+ readonly overrideActionLabel: "Override {{action}}";
3596
+ readonly overrideNotice: "You hold no approver slot on this step. Continuing uses your admin override: it finalises the step immediately, bypassing any approver who has not acted. The decision is recorded as an admin override.";
3597
+ readonly overrideNoticeWho: "You hold no approver slot on this step. Continuing uses your admin override: it finalises the step immediately and bypasses the approvers who have not acted — {{who}}. The decision is recorded as an admin override.";
3598
+ readonly viaOverrideChip: "Admin override";
3599
+ readonly viaOverrideHint: "The actor held no approver slot on this step — admitted by the admin-override path.";
3272
3600
  readonly rawData: "Raw data (JSON)";
3273
3601
  readonly copy: "Copy";
3274
3602
  readonly copied: "Copied";
@@ -3289,11 +3617,19 @@ declare const en: {
3289
3617
  readonly approveN: "Approve {{count}}";
3290
3618
  readonly rejectN: "Reject {{count}}";
3291
3619
  readonly bulkApproveTitle: "Approve {{count}} requests?";
3620
+ readonly bulkApproveTitle_one: "Approve {{count}} request?";
3621
+ readonly bulkApproveTitle_other: "Approve {{count}} requests?";
3292
3622
  readonly bulkApproveBody: "Each request is approved with your identity and its flow continues down the approve branch.";
3293
3623
  readonly bulkRejectTitle: "Reject {{count}} requests?";
3624
+ readonly bulkRejectTitle_one: "Reject {{count}} request?";
3625
+ readonly bulkRejectTitle_other: "Reject {{count}} requests?";
3294
3626
  readonly bulkRejectBody: "This rejects the selected requests and notifies their submitters.";
3295
3627
  readonly bulkApproved: "Approved {{count}} requests";
3628
+ readonly bulkApproved_one: "Approved {{count}} request";
3629
+ readonly bulkApproved_other: "Approved {{count}} requests";
3296
3630
  readonly bulkRejected: "Rejected {{count}} requests";
3631
+ readonly bulkRejected_one: "Rejected {{count}} request";
3632
+ readonly bulkRejected_other: "Rejected {{count}} requests";
3297
3633
  readonly bulkPartial: "{{ok}} succeeded, {{fail}} failed: {{which}}";
3298
3634
  readonly rejectOneTitle: "Reject \"{{title}}\"?";
3299
3635
  readonly rejectOneBody: "This rejects the request and notifies the submitter.";
@@ -3318,8 +3654,14 @@ declare const en: {
3318
3654
  readonly alreadyDecided: "This request was already decided. Refresh the list.";
3319
3655
  readonly justNow: "just now";
3320
3656
  readonly minutesAgo: "{{count}}m ago";
3657
+ readonly minutesAgo_one: "{{count}}m ago";
3658
+ readonly minutesAgo_other: "{{count}}m ago";
3321
3659
  readonly hoursAgo: "{{count}}h ago";
3660
+ readonly hoursAgo_one: "{{count}}h ago";
3661
+ readonly hoursAgo_other: "{{count}}h ago";
3322
3662
  readonly daysAgo: "{{count}}d ago";
3663
+ readonly daysAgo_one: "{{count}}d ago";
3664
+ readonly daysAgo_other: "{{count}}d ago";
3323
3665
  };
3324
3666
  readonly filterBuilder: {
3325
3667
  readonly where: "Where";
@@ -3337,22 +3679,33 @@ declare const en: {
3337
3679
  readonly noResults: "No results";
3338
3680
  readonly searchField: "Search {{label}}…";
3339
3681
  readonly enterId: "Enter {{label}} id";
3682
+ readonly addValue: "Type a value, press Enter";
3683
+ readonly removeValue: "Remove {{value}}";
3684
+ readonly rangeStart: "From";
3685
+ readonly rangeEnd: "To";
3340
3686
  readonly operators: {
3341
3687
  readonly equals: "Equals";
3342
- readonly notEquals: "Does not equal";
3688
+ readonly not_equals: "Does not equal";
3343
3689
  readonly contains: "Contains";
3344
- readonly notContains: "Does not contain";
3345
- readonly isEmpty: "Is empty";
3346
- readonly isNotEmpty: "Is not empty";
3347
- readonly greaterThan: "Greater than";
3348
- readonly lessThan: "Less than";
3349
- readonly greaterOrEqual: "Greater than or equal";
3350
- readonly lessOrEqual: "Less than or equal";
3690
+ readonly icontains: "Contains (ignore case)";
3691
+ readonly not_contains: "Does not contain";
3692
+ readonly is_empty: "Is empty";
3693
+ readonly is_not_empty: "Is not empty";
3694
+ readonly greater_than: "Greater than";
3695
+ readonly less_than: "Less than";
3696
+ readonly greater_than_or_equal: "Greater than or equal";
3697
+ readonly less_than_or_equal: "Less than or equal";
3351
3698
  readonly before: "Before";
3352
3699
  readonly after: "After";
3353
3700
  readonly between: "Between";
3354
3701
  readonly in: "In";
3355
- readonly notIn: "Not in";
3702
+ readonly not_in: "Not in";
3703
+ readonly starts_with: "Starts with";
3704
+ readonly ends_with: "Ends with";
3705
+ readonly is_null: "Is null";
3706
+ readonly is_not_null: "Is not null";
3707
+ readonly exists: "Is set";
3708
+ readonly notExists: "Is not set";
3356
3709
  };
3357
3710
  };
3358
3711
  readonly sortBuilder: {
@@ -3366,7 +3719,8 @@ declare const en: {
3366
3719
  };
3367
3720
  readonly collaboration: {
3368
3721
  readonly commentCount: "{{count}} comments";
3369
- readonly commentCountOne: "{{count}} comment";
3722
+ readonly commentCount_one: "{{count}} comment";
3723
+ readonly commentCount_other: "{{count}} comments";
3370
3724
  readonly resolvedSuffix: " · Resolved";
3371
3725
  readonly sortComments: "Sort comments";
3372
3726
  readonly sortOldest: "Oldest";
@@ -3375,11 +3729,18 @@ declare const en: {
3375
3729
  readonly reopen: "Reopen";
3376
3730
  readonly justNow: "just now";
3377
3731
  readonly minutesAgo: "{{count}}m ago";
3732
+ readonly minutesAgo_one: "{{count}}m ago";
3733
+ readonly minutesAgo_other: "{{count}}m ago";
3378
3734
  readonly hoursAgo: "{{count}}h ago";
3735
+ readonly hoursAgo_one: "{{count}}h ago";
3736
+ readonly hoursAgo_other: "{{count}}h ago";
3379
3737
  readonly daysAgo: "{{count}}d ago";
3738
+ readonly daysAgo_one: "{{count}}d ago";
3739
+ readonly daysAgo_other: "{{count}}d ago";
3380
3740
  readonly edited: "(edited)";
3381
3741
  readonly reactionCount: "{{count}} reactions";
3382
- readonly reactionCountOne: "{{count}} reaction";
3742
+ readonly reactionCount_one: "{{count}} reaction";
3743
+ readonly reactionCount_other: "{{count}} reactions";
3383
3744
  readonly addThumbsUp: "Add thumbs up";
3384
3745
  readonly reply: "Reply";
3385
3746
  readonly reactThumbsUp: "React with thumbs up";
@@ -3390,9 +3751,11 @@ declare const en: {
3390
3751
  readonly commentPlaceholder: "Add a comment… (use @ to mention)";
3391
3752
  readonly send: "Send";
3392
3753
  readonly presentUserCount: "{{count}} users present";
3393
- readonly presentUserCountOne: "{{count}} user present";
3754
+ readonly presentUserCount_one: "{{count}} user present";
3755
+ readonly presentUserCount_other: "{{count}} users present";
3394
3756
  readonly moreUserCount: "{{count}} more users";
3395
- readonly moreUserCountOne: "{{count}} more user";
3757
+ readonly moreUserCount_one: "{{count}} more user";
3758
+ readonly moreUserCount_other: "{{count}} more users";
3396
3759
  readonly userStatusTitle: "{{name}} ({{status}})";
3397
3760
  readonly statusActive: "active";
3398
3761
  readonly statusIdle: "idle";
@@ -3400,6 +3763,18 @@ declare const en: {
3400
3763
  };
3401
3764
  readonly wizard: {
3402
3765
  readonly missingRequired: "Please complete the required fields: {{fields}}";
3766
+ readonly back: "Back";
3767
+ readonly submitting: "Submitting…";
3768
+ readonly stepFallback: "Step {{n}}";
3769
+ readonly progressLabel: "Progress";
3770
+ readonly emptyStep: "No fields configured for this step";
3771
+ };
3772
+ readonly flowRunner: {
3773
+ readonly title: "Input";
3774
+ readonly submitting: "Submitting…";
3775
+ readonly saveAndContinue: "Save & Continue";
3776
+ readonly nextStep: "Saved — next step";
3777
+ readonly completed: "Flow \"{{flow}}\" completed";
3403
3778
  };
3404
3779
  readonly appManagement: {
3405
3780
  readonly title: "Applications";
@@ -3450,6 +3825,46 @@ declare const en: {
3450
3825
  readonly bulkOperationFailed: "Bulk operation failed: {{reason}}";
3451
3826
  };
3452
3827
  };
3828
+ readonly packagedAutomation: {
3829
+ readonly title: "Packaged automation";
3830
+ readonly subtitle: "Flows and actions shipped by installed packages. Turn one off for this deployment, or clone a flow under a new name to customize it. Editing happens in Studio.";
3831
+ readonly refresh: "Refresh";
3832
+ readonly flowsHeading: "Packaged flows";
3833
+ readonly actionsHeading: "Packaged actions";
3834
+ readonly colFlow: "Flow";
3835
+ readonly colActivation: "Activation";
3836
+ readonly colActions: "Actions";
3837
+ readonly toggleLabel: "Activation for {{label}}";
3838
+ readonly on: "On";
3839
+ readonly off: "Off";
3840
+ readonly clone: "Clone";
3841
+ readonly cloneTitle: "Clone packaged flow";
3842
+ readonly cloneBody: "The copy carries the whole definition and takes a new machine name and label. Edit the copy in Studio.";
3843
+ readonly cloneName: "New machine name";
3844
+ readonly cloneLabel: "New label";
3845
+ readonly cancel: "Cancel";
3846
+ readonly cloneConfirm: "Create clone";
3847
+ readonly cloneCreated: "Created flow \"{{name}}\".";
3848
+ readonly emptyTitle: "No packaged flows";
3849
+ readonly emptyBody: "No installed package ships an automation flow on this deployment. Flows you author yourself live in Studio.";
3850
+ readonly loadFailed: "Could not load packaged automation.";
3851
+ readonly toggleFailedHttp: "Could not change activation (HTTP {{status}}).";
3852
+ readonly toggleFailed: "Could not change activation.";
3853
+ readonly cloneFailedHttp: "Could not clone this flow (HTTP {{status}}).";
3854
+ readonly cloneFailed: "Could not clone this flow.";
3855
+ readonly actionsSubtitle: "Actions shipped by installed packages. Turn one off for this deployment and it stops running everywhere it is offered. Authoring your own action alongside it stays open in Studio.";
3856
+ readonly colAction: "Action";
3857
+ readonly colObject: "Object";
3858
+ readonly actionToggleLabel: "Activation for {{label}} on {{object}}";
3859
+ readonly actionsEmptyTitle: "No packaged actions";
3860
+ readonly actionsEmptyBody: "No installed package declares an action on this deployment. Actions you author yourself live in Studio.";
3861
+ readonly actionsLoadFailed: "Could not load packaged actions.";
3862
+ };
3863
+ readonly element: {
3864
+ readonly number: {
3865
+ readonly noObject: "No object named: set object or dataSource.object.";
3866
+ };
3867
+ };
3453
3868
  };
3454
3869
  export default en;
3455
3870
  export type TranslationKeys = typeof en;