@object-ui/i18n 17.6.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 (56) hide show
  1. package/CHANGELOG.md +4320 -0
  2. package/README.md +192 -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 +27 -1
  10. package/dist/i18n.js +99 -16
  11. package/dist/index.d.ts +7 -13
  12. package/dist/index.js +41 -17
  13. package/dist/locales/ar.d.ts +946 -113
  14. package/dist/locales/ar.js +1095 -161
  15. package/dist/locales/de.d.ts +618 -113
  16. package/dist/locales/de.js +715 -134
  17. package/dist/locales/en.d.ts +632 -127
  18. package/dist/locales/en.js +1044 -162
  19. package/dist/locales/es.d.ts +700 -113
  20. package/dist/locales/es.js +794 -130
  21. package/dist/locales/fr.d.ts +700 -113
  22. package/dist/locales/fr.js +795 -132
  23. package/dist/locales/index.d.ts +6990 -1169
  24. package/dist/locales/index.js +48 -9
  25. package/dist/locales/ja.d.ts +618 -113
  26. package/dist/locales/ja.js +708 -128
  27. package/dist/locales/ko.d.ts +618 -113
  28. package/dist/locales/ko.js +712 -132
  29. package/dist/locales/pt.d.ts +700 -113
  30. package/dist/locales/pt.js +794 -130
  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 +782 -113
  36. package/dist/locales/ru.js +910 -152
  37. package/dist/locales/zh.d.ts +635 -130
  38. package/dist/locales/zh.js +725 -131
  39. package/dist/pickLocalized.d.ts +30 -0
  40. package/dist/pickLocalized.js +39 -0
  41. package/dist/provider.d.ts +101 -12
  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 +11 -0
  47. package/dist/useObjectLabel.d.ts +40 -18
  48. package/dist/useObjectLabel.js +46 -14
  49. package/dist/useSafeTranslation.js +40 -42
  50. package/dist/utils/formatting.d.ts +16 -0
  51. package/dist/utils/formatting.js +23 -3
  52. package/dist/utils/spec-formatters.d.ts +13 -23
  53. package/dist/utils/spec-formatters.js +41 -2
  54. package/dist/utils/spec-translations.d.ts +16 -3
  55. package/dist/utils/spec-translations.js +52 -13
  56. 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";
@@ -111,7 +118,8 @@ declare const en: {
111
118
  readonly closePanel: "Close panel";
112
119
  readonly resizeDrawer: "Resize drawer";
113
120
  readonly itemCount: "{{count}} items";
114
- readonly itemCountOne: "{{count}} item";
121
+ readonly itemCount_one: "{{count}} item";
122
+ readonly itemCount_other: "{{count}} items";
115
123
  readonly toggleSidebar: "Toggle sidebar";
116
124
  readonly package: "Package";
117
125
  readonly done: "Done";
@@ -119,6 +127,8 @@ declare const en: {
119
127
  readonly record: "Record";
120
128
  readonly retry: "Retry";
121
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.";
122
132
  };
123
133
  readonly actions: {
124
134
  readonly decisionOutput: {
@@ -130,6 +140,14 @@ declare const en: {
130
140
  readonly acknowledge: "I have saved this";
131
141
  readonly copyAll: "Copy all";
132
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}}";
133
151
  };
134
152
  readonly validation: {
135
153
  readonly required: "{{field}} is required";
@@ -147,8 +165,12 @@ declare const en: {
147
165
  };
148
166
  readonly form: {
149
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.";
150
170
  readonly submitFailed: "Could not save. Please try again.";
151
- 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.";
152
174
  readonly removeItem: "Remove item";
153
175
  readonly fieldRequired: "This field is required";
154
176
  readonly invalidFormat: "Invalid format";
@@ -158,6 +180,28 @@ declare const en: {
158
180
  readonly discardTitle: "Discard changes?";
159
181
  readonly discardMessage: "You have unsaved changes. If you close this form now, your edits will be lost.";
160
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
+ };
161
205
  readonly keepEditing: "Keep editing";
162
206
  readonly discard: "Discard";
163
207
  readonly conflictTitle: "Save conflict";
@@ -175,6 +219,12 @@ declare const en: {
175
219
  readonly createSuccess: "{{object}} created successfully";
176
220
  readonly updateSuccess: "{{object}} updated successfully";
177
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.";
178
228
  readonly fullscreen: {
179
229
  readonly title: "Edit text";
180
230
  readonly description: "Edit the full text value, then save or cancel your changes.";
@@ -186,6 +236,8 @@ declare const en: {
186
236
  readonly fields: {
187
237
  readonly relativeDate: {
188
238
  readonly overdue: "Overdue {{count}}d";
239
+ readonly overdue_one: "Overdue {{count}}d";
240
+ readonly overdue_other: "Overdue {{count}}d";
189
241
  };
190
242
  readonly file: {
191
243
  readonly dragDropHere: "Drag & drop files here";
@@ -202,6 +254,7 @@ declare const en: {
202
254
  readonly remove: "Remove {{name}}";
203
255
  readonly exceedsMaxSize: "\"{{name}}\" exceeds max size ({{max}} MB)";
204
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";
205
258
  };
206
259
  readonly image: {
207
260
  readonly upload: "Upload image";
@@ -242,6 +295,9 @@ declare const en: {
242
295
  readonly selectBusinessUnit: "Select a business unit";
243
296
  readonly selectPosition: "Select a position";
244
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";
245
301
  };
246
302
  readonly filterCondition: {
247
303
  readonly selectObjectFirst: "Select an object first.";
@@ -252,6 +308,26 @@ declare const en: {
252
308
  readonly editAsJson: "Edit as JSON";
253
309
  readonly useVisualBuilder: "Use visual builder";
254
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
+ };
255
331
  readonly tags: {
256
332
  readonly placeholder: "Type and press Enter to add…";
257
333
  };
@@ -266,6 +342,16 @@ declare const en: {
266
342
  readonly characterCount: "Character count: {{count}} of {{max}}";
267
343
  readonly charactersRemaining: "Characters remaining: {{count}}";
268
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
+ };
269
355
  };
270
356
  readonly table: {
271
357
  readonly rowsPerPage: "Rows per page";
@@ -294,8 +380,12 @@ declare const en: {
294
380
  readonly open: "Open";
295
381
  readonly search: "Search…";
296
382
  readonly modified: "{{count}} row modified";
383
+ readonly modified_one: "{{count}} row modified";
384
+ readonly modified_other: "{{count}} rows modified";
297
385
  readonly saveFailed: "Save failed";
298
386
  readonly selected: "{{count}} selected";
387
+ readonly selected_one: "{{count}} selected";
388
+ readonly selected_other: "{{count}} selected";
299
389
  readonly edit: "Edit";
300
390
  readonly delete: "Delete";
301
391
  };
@@ -312,9 +402,13 @@ declare const en: {
312
402
  readonly openRecord: "Open record";
313
403
  readonly openMenu: "Open menu";
314
404
  readonly bulkSelected: "{{count}} selected";
405
+ readonly bulkSelected_one: "{{count}} selected";
406
+ readonly bulkSelected_other: "{{count}} selected";
315
407
  readonly bulkSelectedAllMatches: "{{count}} selected (all matches)";
316
408
  readonly bulkClear: "Clear";
317
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.";
318
412
  readonly bulkSelectAllMatching: "Select all {{count}} matching";
319
413
  readonly bulkAllMatchingSelected: "All {{count}} matching records are selected.";
320
414
  readonly rowHeight: "Row height: {{mode}}";
@@ -322,6 +416,10 @@ declare const en: {
322
416
  readonly yes: "Yes";
323
417
  readonly no: "No";
324
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
+ };
325
423
  readonly summary: {
326
424
  readonly pattern: "{{label}}: {{value}}";
327
425
  readonly count: "Count";
@@ -354,8 +452,10 @@ declare const en: {
354
452
  readonly dragDrop: "Drag & drop a CSV or Excel file here, or click to browse";
355
453
  readonly browseFiles: "Browse Files";
356
454
  readonly downloadTemplate: "Download template";
357
- 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.";
358
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.";
359
459
  readonly parsing: "Parsing…";
360
460
  readonly pasteHint: "or paste (Ctrl/⌘+V) rows copied from Excel or Google Sheets";
361
461
  readonly legacyXls: "Legacy .xls files aren't supported — please re-save as .xlsx.";
@@ -381,6 +481,8 @@ declare const en: {
381
481
  readonly typeMismatch: "Looks like {{type}}";
382
482
  readonly autoMatched: "Auto-matched";
383
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.";
384
486
  readonly confidence: {
385
487
  readonly high: "High confidence";
386
488
  readonly medium: "Medium confidence";
@@ -399,7 +501,11 @@ declare const en: {
399
501
  readonly mapped: "Mapped";
400
502
  readonly skipped: "Skipped";
401
503
  readonly rowsWithErrors: "{{count}} row(s) with errors";
504
+ readonly rowsWithErrors_one: "{{count}} row with errors";
505
+ readonly rowsWithErrors_other: "{{count}} rows with errors";
402
506
  readonly rowsCorrected: "{{count}} row(s) corrected";
507
+ readonly rowsCorrected_one: "{{count}} row corrected";
508
+ readonly rowsCorrected_other: "{{count}} rows corrected";
403
509
  readonly clickToFix: "— click a highlighted cell to fix it inline.";
404
510
  readonly showingRows: "Showing {{shown}} of {{total}} rows";
405
511
  readonly importing: "Importing… {{progress}}%";
@@ -410,12 +516,20 @@ declare const en: {
410
516
  readonly cancelImport: "Cancel import";
411
517
  readonly importCancelled: "Import cancelled";
412
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}}).";
413
521
  readonly importComplete: "Import Complete";
414
522
  readonly imported: "{{count}} imported";
415
523
  readonly createdCount: "{{count}} created";
524
+ readonly createdCount_one: "{{count}} created";
525
+ readonly createdCount_other: "{{count}} created";
416
526
  readonly updatedCount: "{{count}} updated";
527
+ readonly updatedCount_one: "{{count}} updated";
528
+ readonly updatedCount_other: "{{count}} updated";
417
529
  readonly skippedCount: "{{count}} skipped";
418
530
  readonly moreErrors: "…and {{count}} more errors";
531
+ readonly moreErrors_one: "…and {{count}} more error";
532
+ readonly moreErrors_other: "…and {{count}} more errors";
419
533
  readonly downloadFailed: "Download failed rows";
420
534
  readonly options: "Import options";
421
535
  readonly writeMode: "When a row matches an existing record";
@@ -463,6 +577,8 @@ declare const en: {
463
577
  readonly historyColResult: "Result";
464
578
  readonly historyColTime: "When";
465
579
  readonly errorCount: "{{count}} errors";
580
+ readonly errorCount_one: "{{count}} error";
581
+ readonly errorCount_other: "{{count}} errors";
466
582
  readonly undoImport: "Undo import";
467
583
  readonly undoing: "Undoing…";
468
584
  readonly undoConfirm: "Undo this import? Records it created will be deleted and records it updated will be restored to their previous values.";
@@ -479,6 +595,8 @@ declare const en: {
479
595
  readonly next: "Next";
480
596
  readonly close: "Close";
481
597
  readonly importNRows: "Import {{count}} Rows";
598
+ readonly importNRows_one: "Import {{count}} Row";
599
+ readonly importNRows_other: "Import {{count}} Rows";
482
600
  readonly importingProgress: "Importing…";
483
601
  readonly required: "Required";
484
602
  readonly invalidType: "Invalid {{type}}";
@@ -490,9 +608,13 @@ declare const en: {
490
608
  };
491
609
  readonly bulk: {
492
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.";
493
613
  readonly overLimit: "Selection ({{count}}) exceeds the action limit ({{limit}}). Reduce the selection to proceed.";
494
614
  readonly affectedRecords: "Affected records ({{count}}):";
495
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.";
496
618
  readonly rowFallback: "Row {{index}}";
497
619
  readonly andMore: "… and {{count}} more";
498
620
  readonly processed: "{{count}} / {{total}} processed";
@@ -510,7 +632,6 @@ declare const en: {
510
632
  readonly undo: "Undo";
511
633
  readonly undoing: "Undoing…";
512
634
  readonly done: "Done";
513
- readonly selectPlaceholder: "Select…";
514
635
  readonly loading: "Loading…";
515
636
  };
516
637
  };
@@ -519,16 +640,43 @@ declare const en: {
519
640
  readonly month: "Month";
520
641
  readonly week: "Week";
521
642
  readonly day: "Day";
522
- readonly agenda: "Agenda";
523
643
  readonly allDay: "All Day";
524
- readonly noEvents: "No events";
525
644
  readonly newEvent: "New event";
526
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
+ };
527
674
  };
528
675
  readonly list: {
529
676
  readonly loading: "Loading records…";
530
677
  readonly recordCount: "{{count}} records";
531
- readonly recordCountOne: "{{count}} record";
678
+ readonly recordCount_one: "{{count}} record";
679
+ readonly recordCount_other: "{{count}} records";
532
680
  readonly addRecord: "Add record";
533
681
  readonly tabs: "Tabs";
534
682
  readonly allRecords: "All Records";
@@ -598,7 +746,7 @@ declare const en: {
598
746
  readonly hideFieldsTitle: "Hide Fields";
599
747
  readonly dataLimitReached: "Showing first {{limit}} records. More data may be available.";
600
748
  readonly viewSettings: "View settings";
601
- readonly viewSettingsHint: "Grouping, color, density, and visible fields.";
749
+ readonly viewSettingsHint: "Grouping, color, density, and visible fields. Applies to everyone who uses this view.";
602
750
  readonly addGroup: "Add group field";
603
751
  readonly collapsedByDefault: "Collapsed by default";
604
752
  readonly removeGroup: "Remove";
@@ -663,6 +811,17 @@ declare const en: {
663
811
  };
664
812
  readonly gantt: {
665
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.";
666
825
  };
667
826
  };
668
827
  readonly gantt: {
@@ -708,6 +867,7 @@ declare const en: {
708
867
  };
709
868
  readonly aria: {
710
869
  readonly taskList: "Task list";
870
+ readonly refreshing: "Refreshing…";
711
871
  };
712
872
  readonly tooltip: {
713
873
  readonly days: "d";
@@ -753,13 +913,19 @@ declare const en: {
753
913
  readonly conflict: {
754
914
  readonly title: "Schedule conflict";
755
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?";
756
918
  readonly confirm: "Auto-reschedule";
757
919
  readonly cancel: "Keep as is";
758
920
  };
759
921
  readonly autoScheduleDlg: {
760
922
  readonly title: "Auto-schedule";
761
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?";
762
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.";
763
929
  readonly confirm: "Apply";
764
930
  readonly cancel: "Cancel";
765
931
  readonly none: "All dependencies satisfied — nothing to reschedule.";
@@ -810,6 +976,7 @@ declare const en: {
810
976
  readonly tabActionsFor: "View actions for {{name}}";
811
977
  readonly readonlyAriaLabel: "Read-only view";
812
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.";
813
980
  };
814
981
  readonly detail: {
815
982
  readonly back: "Back";
@@ -826,6 +993,7 @@ declare const en: {
826
993
  readonly writeStrippedReadonly: "Read-only, so it did not take effect: {{fields}}";
827
994
  readonly writeStrippedByState: "Not editable in this record's current state, so it did not take effect: {{fields}}";
828
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}}";
829
997
  readonly writeStrippedUnknownReason: "Not applied by the server: {{fields}}";
830
998
  readonly approvalPendingEditable: "In approval · editable";
831
999
  readonly approvalPendingTooltip: "This record has a pending approval request; this step still allows editing";
@@ -847,6 +1015,8 @@ declare const en: {
847
1015
  readonly pathStageLostUpcoming: "{{stage}}, closed lost, not reached";
848
1016
  readonly pathStageWonUpcoming: "{{stage}}, goal stage, not reached";
849
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.";
850
1020
  readonly linkCopyFailed: "Failed to copy link";
851
1021
  readonly cancel: "Cancel";
852
1022
  readonly cancelEdit: "Discard changes";
@@ -872,7 +1042,8 @@ declare const en: {
872
1042
  readonly pageHeaderActions: "Page header actions";
873
1043
  readonly emojiPicker: "Emoji picker";
874
1044
  readonly reactionCount: "{{emoji}} {{count}} reactions";
875
- readonly reactionCountOne: "{{emoji}} {{count}} reaction";
1045
+ readonly reactionCount_one: "{{emoji}} {{count}} reaction";
1046
+ readonly reactionCount_other: "{{emoji}} {{count}} reactions";
876
1047
  readonly recordDetail: "Record Detail";
877
1048
  readonly recordDetailWithLabel: "{{label}} Detail";
878
1049
  readonly openAsFullPage: "Open as full page";
@@ -899,7 +1070,6 @@ declare const en: {
899
1070
  readonly viewAll: "View All";
900
1071
  readonly new: "New";
901
1072
  readonly add: "Add";
902
- readonly emptyValue: "—";
903
1073
  readonly activity: "Activity";
904
1074
  readonly history: "History";
905
1075
  readonly historyEmpty: "No history yet";
@@ -914,6 +1084,7 @@ declare const en: {
914
1084
  readonly sortBy: "Sort by";
915
1085
  readonly filterPlaceholder: "Filter…";
916
1086
  readonly highlightFields: "Key Fields";
1087
+ readonly highlightsLabel: "Record highlights";
917
1088
  readonly comments: "Comments";
918
1089
  readonly searchComments: "Search comments…";
919
1090
  readonly addCommentPlaceholder: "Add a comment… (Ctrl+Enter to submit)";
@@ -924,8 +1095,14 @@ declare const en: {
924
1095
  readonly unpin: "Unpin";
925
1096
  readonly justNow: "just now";
926
1097
  readonly minutesAgo: "{{count}}m ago";
1098
+ readonly minutesAgo_one: "{{count}}m ago";
1099
+ readonly minutesAgo_other: "{{count}}m ago";
927
1100
  readonly hoursAgo: "{{count}}h ago";
1101
+ readonly hoursAgo_one: "{{count}}h ago";
1102
+ readonly hoursAgo_other: "{{count}}h ago";
928
1103
  readonly daysAgo: "{{count}}d ago";
1104
+ readonly daysAgo_one: "{{count}}d ago";
1105
+ readonly daysAgo_other: "{{count}}d ago";
929
1106
  readonly systemActor: "System";
930
1107
  readonly unknownUser: "Unknown";
931
1108
  readonly createdBy: "Created by";
@@ -934,7 +1111,8 @@ declare const en: {
934
1111
  readonly updated: "Updated";
935
1112
  readonly dropFilesToUpload: "Drop files here or click to upload";
936
1113
  readonly attachmentCount: "{{count}} attachment";
937
- readonly attachmentCountPlural: "{{count}} attachments";
1114
+ readonly attachmentCount_one: "{{count}} attachment";
1115
+ readonly attachmentCount_other: "{{count}} attachments";
938
1116
  readonly removeAttachment: "Remove attachment";
939
1117
  readonly attachments: "Attachments";
940
1118
  readonly uploadAttachment: "Upload";
@@ -951,11 +1129,6 @@ declare const en: {
951
1129
  readonly attachmentsLoadFailed: "We couldn't load the attachments for this record.";
952
1130
  readonly attachmentsApiUnavailable: "The attachments list is not available on this object.";
953
1131
  readonly retryLoadAttachments: "Retry";
954
- readonly unifiedDiff: "Unified diff";
955
- readonly sideBySideDiff: "Side-by-side diff";
956
- readonly noChanges: "No changes";
957
- readonly previousVersion: "Previous";
958
- readonly currentVersion: "Current";
959
1132
  readonly discussion: "Discussion";
960
1133
  readonly showDiscussion: "Show Discussion ({{count}})";
961
1134
  readonly hideDiscussion: "Hide discussion";
@@ -970,28 +1143,35 @@ declare const en: {
970
1143
  readonly writeComment: "Write a comment…";
971
1144
  readonly subscribedTooltip: "Subscribed — click to unsubscribe";
972
1145
  readonly unsubscribedTooltip: "Subscribe to notifications";
973
- readonly firstRecord: "First record (Home)";
974
- readonly previousRecordKey: "Previous record (←)";
975
- readonly nextRecordKey: "Next record (→)";
976
- readonly lastRecord: "Last record (End)";
977
1146
  readonly noRecords: "No records";
978
1147
  readonly showEmptyRelated: "+ {{count}} empty";
979
1148
  readonly showEmptyRelated_one: "+ {{count}} empty";
980
1149
  readonly showEmptyRelated_other: "+ {{count}} empty";
981
- readonly searchWhileNavigating: "Search while navigating";
982
- readonly searchRecords: "Search records…";
983
1150
  readonly allActivity: "All Activity";
984
1151
  readonly commentsOnly: "Comments Only";
985
1152
  readonly fieldChangesFilter: "Field Changes";
986
1153
  readonly tasksOnly: "Tasks Only";
987
1154
  readonly leaveCommentPlaceholder: "Leave a comment… (Ctrl+Enter to submit)";
988
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";
989
1168
  readonly loadMore: "Load more";
990
1169
  readonly edited: "(edited)";
991
1170
  readonly via: "via {{source}}";
992
1171
  readonly viewSource: "View source";
993
1172
  readonly replyCount: "{{count}} reply";
994
- readonly replyCountPlural: "{{count}} replies";
1173
+ readonly replyCount_one: "{{count}} reply";
1174
+ readonly replyCount_other: "{{count}} replies";
995
1175
  readonly replyPlaceholder: "Reply…";
996
1176
  readonly filterActivity: "Filter activity";
997
1177
  readonly openDiscussion: "Open discussion panel";
@@ -1003,13 +1183,27 @@ declare const en: {
1003
1183
  readonly copyPhone: "Copy phone number";
1004
1184
  readonly copyRecordId: "Copy record ID";
1005
1185
  readonly showEmptyFields: "Show {{count}} empty fields";
1186
+ readonly showEmptyFields_one: "Show {{count}} empty field";
1187
+ readonly showEmptyFields_other: "Show {{count}} empty fields";
1006
1188
  readonly hideEmptyFields: "Hide empty fields";
1007
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";
1008
1198
  };
1009
1199
  readonly chart: {
1010
- readonly noData: "No chart data available";
1011
1200
  readonly loading: "Loading chart…";
1201
+ readonly refreshing: "Refreshing…";
1012
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
+ };
1013
1207
  };
1014
1208
  readonly report: {
1015
1209
  readonly total: "Total";
@@ -1037,30 +1231,30 @@ declare const en: {
1037
1231
  readonly panelTitle: "Edit report";
1038
1232
  };
1039
1233
  };
1040
- readonly map: {
1041
- readonly searchLocations: "Search locations…";
1042
- readonly locationDetails: "Location Details";
1043
- readonly markersCount: "{{count}} markers";
1044
- readonly invalidCoordinates: "{{count}} record with missing or invalid coordinates excluded from the map.";
1045
- readonly invalidCoordinatesPlural: "{{count}} records with missing or invalid coordinates excluded from the map.";
1046
- };
1047
1234
  readonly designer: {
1048
1235
  readonly undo: "Undo";
1049
1236
  readonly redo: "Redo";
1050
1237
  };
1051
1238
  readonly dashboard: {
1052
1239
  readonly addWidget: "Add widget";
1053
- readonly removeWidget: "Remove widget";
1054
1240
  readonly editLayout: "Edit layout";
1055
1241
  readonly saveLayout: "Save layout";
1056
1242
  readonly resetLayout: "Reset layout";
1057
1243
  readonly total: "Total";
1058
- readonly noDataAvailable: "No data available";
1059
1244
  readonly noDataSourceFor: "No data source available for";
1060
- 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
+ };
1061
1250
  readonly loading: "Loading…";
1251
+ readonly refreshing: "Refreshing…";
1252
+ readonly refreshAll: "Refresh All";
1253
+ readonly refreshDashboard: "Refresh dashboard";
1062
1254
  readonly pickMeasures: "Pick measures (values) for this dataset widget.";
1063
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.";
1064
1258
  readonly details: "Details";
1065
1259
  readonly exportCsv: "Export CSV";
1066
1260
  readonly openInList: "Open in list";
@@ -1207,10 +1401,6 @@ declare const en: {
1207
1401
  readonly appDescription: "Description";
1208
1402
  readonly appIcon: "Icon";
1209
1403
  readonly template: "Template";
1210
- readonly layout: "Layout";
1211
- readonly layoutSidebar: "Sidebar";
1212
- readonly layoutHeader: "Header";
1213
- readonly layoutEmpty: "Empty";
1214
1404
  readonly selectObjects: "Select Objects";
1215
1405
  readonly searchObjects: "Search objects…";
1216
1406
  readonly selectAll: "Select All";
@@ -1219,7 +1409,6 @@ declare const en: {
1219
1409
  readonly addGroup: "Add Group";
1220
1410
  readonly addUrl: "Add URL";
1221
1411
  readonly addSeparator: "Add Separator";
1222
- readonly noNavItems: "No navigation items yet.";
1223
1412
  readonly logoUrl: "Logo URL";
1224
1413
  readonly primaryColor: "Primary Color";
1225
1414
  readonly faviconUrl: "Favicon URL";
@@ -1246,13 +1435,12 @@ declare const en: {
1246
1435
  readonly appearance: "Appearance";
1247
1436
  readonly rowHeight: "Row Height";
1248
1437
  readonly livePreview: "Live Preview";
1249
- readonly stepBasicDesc: "Name, title, and layout";
1438
+ readonly stepBasicDesc: "Name, title, and icon";
1250
1439
  readonly stepObjectsDesc: "Select business objects";
1251
1440
  readonly stepNavigationDesc: "Build navigation tree";
1252
1441
  readonly stepBrandingDesc: "Logo, colors, and favicon";
1253
1442
  readonly noObjectsFound: "No objects found.";
1254
1443
  readonly noNavItemsHint: "No navigation items yet. Select objects in the previous step or add items manually.";
1255
- readonly separator: "Separator";
1256
1444
  readonly separatorLabel: "— Separator —";
1257
1445
  readonly newGroup: "New Group";
1258
1446
  readonly newLink: "New Link";
@@ -1286,6 +1474,7 @@ declare const en: {
1286
1474
  readonly navTypeSeparator: "Separator";
1287
1475
  readonly navTypeAction: "Action";
1288
1476
  readonly navTypeComponent: "Component";
1477
+ readonly navTypeDoc: "Doc";
1289
1478
  readonly navEditIcon: "Edit icon";
1290
1479
  readonly navToggleVisible: "Toggle visibility";
1291
1480
  readonly navHidden: "Hidden";
@@ -1363,11 +1552,8 @@ declare const en: {
1363
1552
  readonly defaultValue: "Default Value";
1364
1553
  readonly placeholder: "Placeholder";
1365
1554
  readonly referenceTo: "Reference To";
1366
- readonly formula: "Formula";
1367
1555
  readonly options: "Options";
1368
1556
  readonly addOption: "Add Option";
1369
- readonly validationRules: "Validation Rules";
1370
- readonly addRule: "Add Rule";
1371
1557
  readonly systemBadge: "System";
1372
1558
  readonly ungrouped: "General";
1373
1559
  readonly deleteConfirmTitle: "Delete Field?";
@@ -1386,7 +1572,21 @@ declare const en: {
1386
1572
  };
1387
1573
  };
1388
1574
  readonly console: {
1575
+ readonly studio: {
1576
+ readonly backToHome: "Back to home";
1577
+ };
1389
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.";
1390
1590
  readonly title: "ObjectOS";
1391
1591
  readonly initializing: "Initializing application…";
1392
1592
  readonly search: "Search…";
@@ -1395,12 +1595,22 @@ declare const en: {
1395
1595
  readonly pages: "Pages";
1396
1596
  readonly reports: "Reports";
1397
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";
1398
1605
  };
1399
1606
  readonly nav: {
1400
1607
  readonly pinItem: "Pin {{name}}";
1401
1608
  readonly unpinItem: "Unpin {{name}}";
1402
1609
  readonly dragToReorder: "Drag to reorder";
1403
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.";
1404
1614
  };
1405
1615
  readonly settingsHub: {
1406
1616
  readonly title: "Settings";
@@ -1523,9 +1733,16 @@ declare const en: {
1523
1733
  readonly statusFull: "Limit reached";
1524
1734
  readonly resetsDaily: "Resets tonight";
1525
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";
1526
1742
  readonly ctaUpgrade: "Upgrade to keep going";
1527
1743
  readonly ctaTopUp: "Add credits to continue";
1528
1744
  readonly ariaLabel: "AI usage: {{status}}";
1745
+ readonly breakdownTitle: "Used so far";
1529
1746
  };
1530
1747
  readonly workspaceTitle: "AI Workspace";
1531
1748
  readonly workspaceSubtitle: "Ask, inspect, and resume conversations";
@@ -1535,6 +1752,31 @@ declare const en: {
1535
1752
  readonly share: "Share";
1536
1753
  readonly shareTitle: "Share this conversation";
1537
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
+ };
1538
1780
  readonly newChat: "New";
1539
1781
  readonly searchChats: "Search chats…";
1540
1782
  readonly noChatsYet: "No chats yet";
@@ -1564,7 +1806,7 @@ declare const en: {
1564
1806
  readonly empty: {
1565
1807
  readonly build: {
1566
1808
  readonly title: "Build with AI";
1567
- 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.";
1568
1810
  };
1569
1811
  readonly ask: {
1570
1812
  readonly title: "Ask your data";
@@ -1573,7 +1815,7 @@ declare const en: {
1573
1815
  readonly editApp: {
1574
1816
  readonly title: "Editing “{{app}}”";
1575
1817
  readonly titleGeneric: "Edit this app";
1576
- 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.";
1577
1819
  };
1578
1820
  };
1579
1821
  readonly clearConversation: "Clear";
@@ -1650,11 +1892,11 @@ declare const en: {
1650
1892
  readonly recordCounts: "Count records for each object.";
1651
1893
  };
1652
1894
  readonly metadataAssistant: {
1653
- readonly buildCrm: "Build a sales CRM — customers, contacts, and a deal pipeline I can total by stage.";
1654
- readonly buildApp: "Create a project tracker — projects, tasks with owners and due dates, and a board by status.";
1655
- readonly buildFlow: "Design a support desk — tickets with priority, a status workflow, and customer links.";
1656
- readonly buildInventory: "Build an inventory app — products, stock levels, suppliers, and low-stock visibility.";
1657
- 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.";
1658
1900
  };
1659
1901
  readonly generic: {
1660
1902
  readonly help: "What can you help me with?";
@@ -1665,7 +1907,7 @@ declare const en: {
1665
1907
  readonly addField: "Add a field to one of the objects.";
1666
1908
  readonly addObject: "Add a new object and relate it to an existing one.";
1667
1909
  readonly addDashboard: "Add a dashboard for the key metrics.";
1668
- 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.";
1669
1911
  };
1670
1912
  };
1671
1913
  readonly collapseToDock: "Collapse to side panel";
@@ -1715,6 +1957,19 @@ declare const en: {
1715
1957
  readonly older: "Older";
1716
1958
  };
1717
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
+ };
1718
1973
  readonly errors: {
1719
1974
  readonly somethingWentWrong: "Something went wrong";
1720
1975
  readonly unexpectedError: "An unexpected error occurred while rendering this view.";
@@ -1768,6 +2023,7 @@ declare const en: {
1768
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.";
1769
2024
  readonly systemViewReadonly: "System view defined in code — read-only.";
1770
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.";
1771
2027
  readonly cannotDeleteMetaView: "This view is built in and defined in code — it cannot be deleted.";
1772
2028
  readonly expandToPage: "Open as full page";
1773
2029
  readonly allRecords: "All Records";
@@ -1775,14 +2031,17 @@ declare const en: {
1775
2031
  readonly import: "Import";
1776
2032
  readonly importTitle: "Import from CSV";
1777
2033
  readonly importedToast: "Imported {{count}} row(s).";
2034
+ readonly importedToast_one: "Imported {{count}} row.";
2035
+ readonly importedToast_other: "Imported {{count}} rows.";
1778
2036
  readonly importedWithSkipped: "Imported {{ok}} row(s); skipped {{skipped}}.";
1779
2037
  readonly configureView: "Configure View";
1780
- readonly toolbar: "Toolbar";
1781
2038
  readonly toolbarEnabledCount: "{{count}} of {{total}} enabled";
1782
2039
  readonly searchFields: "Search fields…";
1783
2040
  readonly title: "Title";
1784
2041
  readonly viewType: "View type";
1785
2042
  readonly recordCount: "{{count}} records";
2043
+ readonly recordCount_one: "{{count}} record";
2044
+ readonly recordCount_other: "{{count}} records";
1786
2045
  readonly save: "Save";
1787
2046
  readonly discard: "Discard";
1788
2047
  readonly createView: "Create View";
@@ -1793,6 +2052,8 @@ declare const en: {
1793
2052
  readonly deleteViewTitle: "Delete view";
1794
2053
  readonly deleteViewConfirm: "Are you sure you want to delete the view \"{{name}}\"? This cannot be undone.";
1795
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.";
1796
2057
  readonly duplicateViewName: "A view with this name already exists.";
1797
2058
  readonly viewTypeGrid: "Grid";
1798
2059
  readonly viewTypeGridDesc: "A spreadsheet-style table of records.";
@@ -1845,11 +2106,14 @@ declare const en: {
1845
2106
  readonly chartTypePie: "Pie chart";
1846
2107
  readonly chartTypeArea: "Area chart";
1847
2108
  readonly chartTypeScatter: "Scatter chart";
1848
- readonly xAxisField: "X-axis field";
1849
- readonly xAxisFieldHelp: "The categorical or time dimension.";
1850
- readonly yAxisField: "Y-axis field";
1851
- readonly yAxisFieldHelp: "The numeric field to aggregate.";
1852
- readonly groupBy: "Group by";
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.";
1853
2117
  readonly endDateField: "End date field";
1854
2118
  readonly ufTabs: "Tabs";
1855
2119
  readonly ufAddField: "+ Add filter field…";
@@ -1884,6 +2148,8 @@ declare const en: {
1884
2148
  readonly resendOtpCountdownText: "Resend in {seconds}s";
1885
2149
  readonly usePhoneOtpText: "Sign in with verification code";
1886
2150
  readonly usePasswordSignInText: "Sign in with password instead";
2151
+ readonly socialButton: "Continue with {provider}";
2152
+ readonly orText: "or continue with email";
1887
2153
  readonly devAdminHint: {
1888
2154
  readonly title: "Development instance";
1889
2155
  readonly body: "Sign in with the seeded dev admin:";
@@ -1912,8 +2178,12 @@ declare const en: {
1912
2178
  readonly submittingButton: "Creating account…";
1913
2179
  readonly hasAccountText: "Already have an account?";
1914
2180
  readonly signInText: "Sign in";
2181
+ readonly socialButton: "Sign up with {provider}";
2182
+ readonly orText: "or continue with email";
1915
2183
  readonly errors: {
1916
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.";
1917
2187
  };
1918
2188
  readonly verifyInbox: {
1919
2189
  readonly title: "Check your inbox";
@@ -2122,6 +2392,15 @@ declare const en: {
2122
2392
  readonly role: "Role";
2123
2393
  readonly save: "Save Changes";
2124
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
+ };
2125
2404
  readonly password: {
2126
2405
  readonly changeTitle: "Change Password";
2127
2406
  readonly setTitle: "Set Local Password";
@@ -2153,7 +2432,6 @@ declare const en: {
2153
2432
  readonly label: "Workspaces";
2154
2433
  readonly default: "My Workspace";
2155
2434
  readonly switch: "Switch workspace";
2156
- readonly create: "Create workspace";
2157
2435
  readonly createTitle: "Create a workspace";
2158
2436
  readonly createDescription: "A workspace is a shared space for your team to collaborate.";
2159
2437
  readonly createButton: "Create workspace";
@@ -2176,7 +2454,6 @@ declare const en: {
2176
2454
  };
2177
2455
  readonly sidebar: {
2178
2456
  readonly settings: "Settings";
2179
- readonly help: "Help";
2180
2457
  readonly helpTooltip: "Help & Documentation";
2181
2458
  readonly activityFeed: "Activity feed";
2182
2459
  readonly notifications: "Notifications";
@@ -2215,7 +2492,6 @@ declare const en: {
2215
2492
  };
2216
2493
  readonly home: {
2217
2494
  readonly title: "Home";
2218
- readonly subtitle: "Your workspace dashboard";
2219
2495
  readonly nav: "Home";
2220
2496
  readonly allApps: "All Applications";
2221
2497
  readonly yourApps: "Your apps";
@@ -2242,14 +2518,7 @@ declare const en: {
2242
2518
  readonly marketplaceDisabled: "This runtime has no app marketplace configured, so there are no templates to install here.";
2243
2519
  };
2244
2520
  readonly open: "Open";
2245
- readonly stats: {
2246
- readonly apps: "Applications";
2247
- readonly starred: "Starred";
2248
- readonly recent: "Recent items";
2249
- };
2250
2521
  readonly loading: "Loading workspace…";
2251
- readonly recent: "Recent";
2252
- readonly starred: "Starred";
2253
2522
  readonly welcome: "Build your business system with AI";
2254
2523
  readonly welcomeDescription: "Describe your business in one sentence — AI generates the objects, screens, APIs and agent tools. Or start from scratch.";
2255
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.";
@@ -2266,6 +2535,8 @@ declare const en: {
2266
2535
  };
2267
2536
  readonly pendingDrafts: {
2268
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.";
2269
2540
  readonly cta: "Publish";
2270
2541
  readonly publishing: "Publishing…";
2271
2542
  readonly published: "Published! Your changes are live.";
@@ -2281,8 +2552,6 @@ declare const en: {
2281
2552
  readonly browseMarketplace: "Browse App Marketplace";
2282
2553
  readonly quickActions: {
2283
2554
  readonly title: "Quick Actions";
2284
- readonly createApp: "Create App";
2285
- readonly createAppDesc: "Start with a new application";
2286
2555
  readonly manageObjects: "Manage Objects";
2287
2556
  readonly manageObjectsDesc: "Configure data models";
2288
2557
  readonly systemSettings: "System Settings";
@@ -2294,7 +2563,9 @@ declare const en: {
2294
2563
  readonly object: "Object";
2295
2564
  readonly dashboard: "Dashboard";
2296
2565
  readonly page: "Page";
2566
+ readonly report: "Report";
2297
2567
  readonly record: "Record";
2568
+ readonly metadata: "Metadata";
2298
2569
  };
2299
2570
  };
2300
2571
  readonly starredApps: {
@@ -2331,7 +2602,6 @@ declare const en: {
2331
2602
  readonly organizations: "Organizations";
2332
2603
  readonly roles: "Roles";
2333
2604
  readonly configuration: "Configuration";
2334
- readonly createApp: "Create App";
2335
2605
  readonly administration: "Administration";
2336
2606
  readonly datasources: "Datasources";
2337
2607
  readonly documentation: "Documentation";
@@ -2346,6 +2616,7 @@ declare const en: {
2346
2616
  readonly typeUpdate: "Update";
2347
2617
  readonly typeDelete: "Delete";
2348
2618
  readonly typeComment: "Comment";
2619
+ readonly typeSystem: "System";
2349
2620
  readonly relativeJustNow: "just now";
2350
2621
  readonly relativeSecondsAgo: "{{count}}s ago";
2351
2622
  readonly relativeMinutesAgo: "{{count}}m ago";
@@ -2366,8 +2637,11 @@ declare const en: {
2366
2637
  readonly placeholder: "Search objects, dashboards, pages, reports…";
2367
2638
  readonly inputAriaLabel: "Search objects, dashboards, pages, reports";
2368
2639
  readonly resultsCount: "{{count}} result for \"{{query}}\"";
2369
- readonly resultsCountPlural: "{{count}} results for \"{{query}}\"";
2640
+ readonly resultsCount_one: "{{count}} result for \"{{query}}\"";
2641
+ readonly resultsCount_other: "{{count}} results for \"{{query}}\"";
2370
2642
  readonly itemsAvailable: "{{count}} items available";
2643
+ readonly itemsAvailable_one: "{{count}} item available";
2644
+ readonly itemsAvailable_other: "{{count}} items available";
2371
2645
  readonly noResults: "No results found";
2372
2646
  readonly noResultsHint: "Try adjusting your search terms";
2373
2647
  readonly typeObjects: "Objects";
@@ -2394,7 +2668,11 @@ declare const en: {
2394
2668
  readonly noAppsConfigured: "No Apps Configured";
2395
2669
  readonly noAppsConfiguredDescription: "No applications have been registered. Create your first app or visit System Settings to configure your environment.";
2396
2670
  readonly appNotAvailable: "App not available";
2397
- 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.";
2398
2676
  readonly appAccessDenied: "You don't have access to this app";
2399
2677
  readonly appAccessDeniedDescription: "This app exists, but your account is not authorized to open it. Ask an administrator to grant you access.";
2400
2678
  readonly appAccessDeniedHome: "Back to home";
@@ -2435,8 +2713,12 @@ declare const en: {
2435
2713
  readonly detailNone: "No differences detected — the draft matches the published version.";
2436
2714
  readonly detailChangedKeys: "Also changed:";
2437
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.";
2438
2718
  readonly publishConfirm: "Publish all";
2439
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";
2440
2722
  readonly securityBlockWhere: "Fix it on the object under Settings → Record sharing, then publish again.";
2441
2723
  };
2442
2724
  readonly unpublishedBar: {
@@ -2457,7 +2739,7 @@ declare const en: {
2457
2739
  readonly revertLabel: "Reverted a change";
2458
2740
  readonly applyLabel: "Build change";
2459
2741
  readonly revert: "revert";
2460
- readonly items: "item(s)";
2742
+ readonly items: "{{count}} item(s)";
2461
2743
  readonly revertAction: "Revert";
2462
2744
  readonly reverted: "Reverted — the change has been undone.";
2463
2745
  readonly revertFailed: "Revert failed";
@@ -2471,22 +2753,17 @@ declare const en: {
2471
2753
  readonly requiredError: "{{label}} is required";
2472
2754
  readonly lookupPlaceholder: "Record id for {{label}}";
2473
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)";
2474
2758
  readonly cancel: "Cancel";
2475
2759
  readonly confirm: "Confirm";
2476
2760
  readonly uploading: "Uploading…";
2477
- readonly defaultActionTitle: "Action";
2478
- readonly ok: "OK";
2479
2761
  };
2480
2762
  readonly actionConfirm: {
2481
2763
  readonly title: "Confirm Action";
2482
2764
  readonly confirm: "Continue";
2483
2765
  readonly cancel: "Cancel";
2484
2766
  };
2485
- readonly rowAction: {
2486
- readonly openMenu: "Open menu";
2487
- readonly edit: "Edit";
2488
- readonly delete: "Delete";
2489
- };
2490
2767
  readonly navigationSync: {
2491
2768
  readonly addedPage: "Navigation updated: added page \"{{name}}\"";
2492
2769
  readonly addedDashboard: "Navigation updated: added dashboard \"{{name}}\"";
@@ -2507,6 +2784,8 @@ declare const en: {
2507
2784
  readonly resetPackageSetConfirm: string;
2508
2785
  readonly resetPackageSetSuccess: "Permission set reset to its shipped baseline";
2509
2786
  readonly bulkDeleteSuccess: "Deleted {{count}} {{label}} records";
2787
+ readonly bulkDeleteSuccess_one: "Deleted {{count}} {{label}} record";
2788
+ readonly bulkDeleteSuccess_other: "Deleted {{count}} {{label}} records";
2510
2789
  readonly bulkDeletePartial: "{{succeeded}} deleted, {{failed}} failed";
2511
2790
  };
2512
2791
  readonly objectViewActions: {
@@ -2518,15 +2797,6 @@ declare const en: {
2518
2797
  readonly exportFailed: "Export failed: {{message}}";
2519
2798
  readonly forecastSoon: "Forecast view coming soon";
2520
2799
  };
2521
- readonly recordDetail: {
2522
- readonly viewersTooltip: "Users viewing this record";
2523
- };
2524
- readonly cellRender: {
2525
- readonly empty: "Empty";
2526
- readonly yes: "Yes";
2527
- readonly no: "No";
2528
- readonly systemFields: "System";
2529
- };
2530
2800
  readonly user: {
2531
2801
  readonly profile: "Profile";
2532
2802
  readonly settings: "Settings";
@@ -2696,15 +2966,30 @@ declare const en: {
2696
2966
  readonly viewAll: "View all notifications";
2697
2967
  readonly groupCount: "{{count}} notifications";
2698
2968
  readonly groupUnread: "{{count}} unread";
2969
+ readonly groupUnread_one: "{{count}} unread";
2970
+ readonly groupUnread_other: "{{count}} unread";
2699
2971
  readonly groupMarkRead: "Mark read";
2700
2972
  readonly groupMarkReadTitle: "Mark all of this type read";
2701
2973
  readonly approvalsPending: "{{count}} pending approvals";
2974
+ readonly approvalsPending_one: "{{count}} pending approval";
2975
+ readonly approvalsPending_other: "{{count}} pending approvals";
2702
2976
  readonly viewApprovals: "View approvals";
2703
2977
  readonly noPendingApprovals: "No pending approvals";
2704
2978
  readonly openApprovalsInbox: "Open Approvals Inbox";
2705
2979
  readonly badgeTotal: "{{total}} total";
2706
2980
  readonly badgeNotifications: "{{unread}} notifications";
2707
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.";
2708
2993
  };
2709
2994
  readonly publicForm: {
2710
2995
  readonly submit: "Submit";
@@ -2715,12 +3000,14 @@ declare const en: {
2715
3000
  readonly thankYouTitle: "Thank you!";
2716
3001
  readonly thankYouMessage: "Your submission has been received successfully.";
2717
3002
  readonly redirecting: "Redirecting in {{seconds}} seconds…";
3003
+ readonly redirectPending: "Redirecting…";
2718
3004
  readonly unavailableTitle: "Form unavailable";
2719
3005
  readonly unavailableDescription: "No public form is available at this URL. Make sure the underlying view has anonymous sharing enabled and matches this slug.";
2720
3006
  readonly tryDemo: "Try the demo";
2721
3007
  readonly retry: "Retry";
2722
3008
  readonly loading: "Loading form…";
2723
3009
  readonly requiredHint: "* Required field";
3010
+ readonly requiredFields: "Required: {{fields}}";
2724
3011
  readonly consentLabelDefault: "I agree to the privacy policy and consent to my data being processed for this request.";
2725
3012
  readonly consentLink: "Privacy policy";
2726
3013
  readonly consentRequired: "Please accept the privacy policy to continue.";
@@ -2771,6 +3058,8 @@ declare const en: {
2771
3058
  readonly noImportableFields: "That object has no importable fields.";
2772
3059
  readonly schemaReadFailed: "Could not read the object schema.";
2773
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}}.";
2774
3063
  readonly importFrom: "Import the real rows from";
2775
3064
  readonly into: "into";
2776
3065
  readonly opening: "Opening…";
@@ -2784,6 +3073,76 @@ declare const en: {
2784
3073
  readonly openProduction: "Open Production";
2785
3074
  readonly manageEnvironments: "Manage environments";
2786
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
+ };
2787
3146
  readonly aiModelStatus: {
2788
3147
  readonly summary: "Build / Ask uses {{conversational}} ({{conversationalSource}}); structured uses {{structured}} ({{structuredSource}}).";
2789
3148
  readonly summaryRouting: "Routing policy: free plans → {{free}}, paid plans → {{paid}}.";
@@ -2801,6 +3160,82 @@ declare const en: {
2801
3160
  readonly sourceInherits: "same as build/ask";
2802
3161
  readonly sourcePinned: "pinned by {{source}}";
2803
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
+ };
2804
3239
  readonly chatbotError: {
2805
3240
  readonly title: "Response failed";
2806
3241
  readonly fallbackDetail: "Something went wrong. Please try again.";
@@ -2871,7 +3306,7 @@ declare const en: {
2871
3306
  readonly marketplace: {
2872
3307
  readonly title: "App Marketplace";
2873
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.";
2874
- readonly searchPlaceholder: "Search apps by name or manifest ID…";
3309
+ readonly searchPlaceholder: "Search apps by name or app ID…";
2875
3310
  readonly searchAria: "Search marketplace apps";
2876
3311
  readonly installed: "Installed";
2877
3312
  readonly installedCount: "Installed ({{count}})";
@@ -2919,10 +3354,15 @@ declare const en: {
2919
3354
  readonly purgeSampleData: "Purge sample data";
2920
3355
  readonly purgeConfirm: "Delete all sample records seeded by this package? User-added records will NOT be touched.";
2921
3356
  readonly purgeSuccess: "Removed {{count}} sample record(s).";
3357
+ readonly purgeSuccess_one: "Removed {{count}} sample record.";
3358
+ readonly purgeSuccess_other: "Removed {{count}} sample records.";
2922
3359
  readonly purgeNoData: "No sample records found to purge.";
2923
3360
  readonly reseedQueued: "Sample data will be re-seeded on next environment access.";
2924
3361
  readonly reseedLocalSuccess: "Re-seeded sample data: {{inserted}} inserted, {{updated}} updated.";
2925
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.";
2926
3366
  readonly updateAvailable: "Update available";
2927
3367
  };
2928
3368
  readonly action: {
@@ -2971,7 +3411,8 @@ declare const en: {
2971
3411
  readonly reviewed: "Reviewed & approved";
2972
3412
  readonly unreviewed: "Not yet reviewed";
2973
3413
  readonly signed: "Signed";
2974
- 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.";
2975
3416
  readonly services: "Platform services";
2976
3417
  readonly hooks: "Lifecycle hooks";
2977
3418
  readonly network: "Network access";
@@ -3019,30 +3460,19 @@ declare const en: {
3019
3460
  readonly storage: "Storage";
3020
3461
  readonly other: "Other";
3021
3462
  };
3022
- readonly pricing: {
3023
- readonly free: "Free";
3024
- readonly freemium: "Freemium";
3025
- readonly paid: "Paid";
3026
- readonly subscription: "Subscription";
3027
- readonly 'usage-based': "Usage-based";
3028
- readonly 'contact-sales': "Contact Sales";
3029
- };
3030
3463
  readonly relativeTime: {
3031
3464
  readonly today: "today";
3032
3465
  readonly daysAgo: "{{count}}d ago";
3033
3466
  readonly monthsAgo: "{{count}}mo ago";
3467
+ readonly monthsAgo_one: "{{count}}mo ago";
3468
+ readonly monthsAgo_other: "{{count}}mo ago";
3034
3469
  readonly yearsAgo: "{{count}}y ago";
3470
+ readonly yearsAgo_one: "{{count}}y ago";
3471
+ readonly yearsAgo_other: "{{count}}y ago";
3035
3472
  };
3036
3473
  };
3037
- readonly approvals: {
3038
- readonly approve: "Approve";
3039
- readonly reject: "Reject";
3040
- readonly comment: "Comment (optional)";
3041
- readonly approveSuccess: "Approved";
3042
- readonly rejectSuccess: "Rejected";
3043
- readonly rejectConfirm: "Reject this approval request?";
3044
- };
3045
3474
  readonly approvalsInbox: {
3475
+ readonly recordUnresolvable: "This record cannot be opened";
3046
3476
  readonly loadMore: "Load more";
3047
3477
  readonly loadingMore: "Loading…";
3048
3478
  readonly loadedOf: "Loaded {{loaded}} of {{total}}";
@@ -3061,6 +3491,8 @@ declare const en: {
3061
3491
  readonly requestInfoSent: "Sent back to the requester for more information";
3062
3492
  readonly remindBtn: "Send reminder";
3063
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";
3064
3496
  readonly remindThrottled: "A reminder was sent recently — try again later.";
3065
3497
  readonly replyPlaceholder: "Reply on this request…";
3066
3498
  readonly slaRemaining: "SLA {{dur}} left";
@@ -3077,6 +3509,8 @@ declare const en: {
3077
3509
  readonly progressApprovals: "Approvals — {{got}} of {{need}}";
3078
3510
  readonly progressGroups: "Sign-off progress — {{got}} of {{need}} groups";
3079
3511
  readonly progressEligible: "{{count}} eligible approver(s)";
3512
+ readonly progressEligible_one: "{{count}} eligible approver";
3513
+ readonly progressEligible_other: "{{count}} eligible approvers";
3080
3514
  readonly progressBar: "Decision progress";
3081
3515
  readonly declaredActions: "Actions";
3082
3516
  readonly attachmentChip: "Attachment";
@@ -3108,6 +3542,8 @@ declare const en: {
3108
3542
  readonly filterCount: "{{shown}} of {{total}}";
3109
3543
  readonly selected: "selected";
3110
3544
  readonly actionableCount: "({{count}} actionable)";
3545
+ readonly actionableCount_one: "({{count}} actionable)";
3546
+ readonly actionableCount_other: "({{count}} actionable)";
3111
3547
  readonly selectAll: "Select all";
3112
3548
  readonly selectRow: "Select request";
3113
3549
  readonly colRequest: "Request";
@@ -3181,11 +3617,19 @@ declare const en: {
3181
3617
  readonly approveN: "Approve {{count}}";
3182
3618
  readonly rejectN: "Reject {{count}}";
3183
3619
  readonly bulkApproveTitle: "Approve {{count}} requests?";
3620
+ readonly bulkApproveTitle_one: "Approve {{count}} request?";
3621
+ readonly bulkApproveTitle_other: "Approve {{count}} requests?";
3184
3622
  readonly bulkApproveBody: "Each request is approved with your identity and its flow continues down the approve branch.";
3185
3623
  readonly bulkRejectTitle: "Reject {{count}} requests?";
3624
+ readonly bulkRejectTitle_one: "Reject {{count}} request?";
3625
+ readonly bulkRejectTitle_other: "Reject {{count}} requests?";
3186
3626
  readonly bulkRejectBody: "This rejects the selected requests and notifies their submitters.";
3187
3627
  readonly bulkApproved: "Approved {{count}} requests";
3628
+ readonly bulkApproved_one: "Approved {{count}} request";
3629
+ readonly bulkApproved_other: "Approved {{count}} requests";
3188
3630
  readonly bulkRejected: "Rejected {{count}} requests";
3631
+ readonly bulkRejected_one: "Rejected {{count}} request";
3632
+ readonly bulkRejected_other: "Rejected {{count}} requests";
3189
3633
  readonly bulkPartial: "{{ok}} succeeded, {{fail}} failed: {{which}}";
3190
3634
  readonly rejectOneTitle: "Reject \"{{title}}\"?";
3191
3635
  readonly rejectOneBody: "This rejects the request and notifies the submitter.";
@@ -3210,8 +3654,14 @@ declare const en: {
3210
3654
  readonly alreadyDecided: "This request was already decided. Refresh the list.";
3211
3655
  readonly justNow: "just now";
3212
3656
  readonly minutesAgo: "{{count}}m ago";
3657
+ readonly minutesAgo_one: "{{count}}m ago";
3658
+ readonly minutesAgo_other: "{{count}}m ago";
3213
3659
  readonly hoursAgo: "{{count}}h ago";
3660
+ readonly hoursAgo_one: "{{count}}h ago";
3661
+ readonly hoursAgo_other: "{{count}}h ago";
3214
3662
  readonly daysAgo: "{{count}}d ago";
3663
+ readonly daysAgo_one: "{{count}}d ago";
3664
+ readonly daysAgo_other: "{{count}}d ago";
3215
3665
  };
3216
3666
  readonly filterBuilder: {
3217
3667
  readonly where: "Where";
@@ -3235,25 +3685,25 @@ declare const en: {
3235
3685
  readonly rangeEnd: "To";
3236
3686
  readonly operators: {
3237
3687
  readonly equals: "Equals";
3238
- readonly notEquals: "Does not equal";
3688
+ readonly not_equals: "Does not equal";
3239
3689
  readonly contains: "Contains";
3240
- readonly containsCaseInsensitive: "Contains (ignore case)";
3241
- readonly notContains: "Does not contain";
3242
- readonly isEmpty: "Is empty";
3243
- readonly isNotEmpty: "Is not empty";
3244
- readonly greaterThan: "Greater than";
3245
- readonly lessThan: "Less than";
3246
- readonly greaterOrEqual: "Greater than or equal";
3247
- 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";
3248
3698
  readonly before: "Before";
3249
3699
  readonly after: "After";
3250
3700
  readonly between: "Between";
3251
3701
  readonly in: "In";
3252
- readonly notIn: "Not in";
3253
- readonly startsWith: "Starts with";
3254
- readonly endsWith: "Ends with";
3255
- readonly isNull: "Is null";
3256
- readonly isNotNull: "Is not null";
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";
3257
3707
  readonly exists: "Is set";
3258
3708
  readonly notExists: "Is not set";
3259
3709
  };
@@ -3269,7 +3719,8 @@ declare const en: {
3269
3719
  };
3270
3720
  readonly collaboration: {
3271
3721
  readonly commentCount: "{{count}} comments";
3272
- readonly commentCountOne: "{{count}} comment";
3722
+ readonly commentCount_one: "{{count}} comment";
3723
+ readonly commentCount_other: "{{count}} comments";
3273
3724
  readonly resolvedSuffix: " · Resolved";
3274
3725
  readonly sortComments: "Sort comments";
3275
3726
  readonly sortOldest: "Oldest";
@@ -3278,11 +3729,18 @@ declare const en: {
3278
3729
  readonly reopen: "Reopen";
3279
3730
  readonly justNow: "just now";
3280
3731
  readonly minutesAgo: "{{count}}m ago";
3732
+ readonly minutesAgo_one: "{{count}}m ago";
3733
+ readonly minutesAgo_other: "{{count}}m ago";
3281
3734
  readonly hoursAgo: "{{count}}h ago";
3735
+ readonly hoursAgo_one: "{{count}}h ago";
3736
+ readonly hoursAgo_other: "{{count}}h ago";
3282
3737
  readonly daysAgo: "{{count}}d ago";
3738
+ readonly daysAgo_one: "{{count}}d ago";
3739
+ readonly daysAgo_other: "{{count}}d ago";
3283
3740
  readonly edited: "(edited)";
3284
3741
  readonly reactionCount: "{{count}} reactions";
3285
- readonly reactionCountOne: "{{count}} reaction";
3742
+ readonly reactionCount_one: "{{count}} reaction";
3743
+ readonly reactionCount_other: "{{count}} reactions";
3286
3744
  readonly addThumbsUp: "Add thumbs up";
3287
3745
  readonly reply: "Reply";
3288
3746
  readonly reactThumbsUp: "React with thumbs up";
@@ -3293,9 +3751,11 @@ declare const en: {
3293
3751
  readonly commentPlaceholder: "Add a comment… (use @ to mention)";
3294
3752
  readonly send: "Send";
3295
3753
  readonly presentUserCount: "{{count}} users present";
3296
- readonly presentUserCountOne: "{{count}} user present";
3754
+ readonly presentUserCount_one: "{{count}} user present";
3755
+ readonly presentUserCount_other: "{{count}} users present";
3297
3756
  readonly moreUserCount: "{{count}} more users";
3298
- readonly moreUserCountOne: "{{count}} more user";
3757
+ readonly moreUserCount_one: "{{count}} more user";
3758
+ readonly moreUserCount_other: "{{count}} more users";
3299
3759
  readonly userStatusTitle: "{{name}} ({{status}})";
3300
3760
  readonly statusActive: "active";
3301
3761
  readonly statusIdle: "idle";
@@ -3303,6 +3763,11 @@ declare const en: {
3303
3763
  };
3304
3764
  readonly wizard: {
3305
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";
3306
3771
  };
3307
3772
  readonly flowRunner: {
3308
3773
  readonly title: "Input";
@@ -3360,6 +3825,46 @@ declare const en: {
3360
3825
  readonly bulkOperationFailed: "Bulk operation failed: {{reason}}";
3361
3826
  };
3362
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
+ };
3363
3868
  };
3364
3869
  export default en;
3365
3870
  export type TranslationKeys = typeof en;