@object-ui/i18n 4.0.5 → 4.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,47 @@
1
1
  # @object-ui/i18n
2
2
 
3
+ ## 4.0.7
4
+
5
+ ### Patch Changes
6
+
7
+ - fd15918: Comprehensive i18n refactor + CI test fix.
8
+
9
+ **i18n (`@object-ui/i18n`)**
10
+ - Added ~130 new keys under 12 new top-level namespaces: `layout`, `search`,
11
+ `empty`, `renderer`, `actionDialog`, `rowAction`, `navigationSync`,
12
+ `objectActions`, `objectViewActions`, `dashboardActions`, `recordDetail`,
13
+ `cellRender`, plus `grid.{empty,yes,no,systemFields,openMenu}`.
14
+ - Mirrored all new top-level namespaces to all 10 built-in locales
15
+ (en, zh, ja, ko, de, fr, es, pt, ru, ar) to maintain key parity required
16
+ by the locale-structure test. Non-en/zh locales seed with English values
17
+ and rely on `fallbackLng: 'en'` until human translation lands.
18
+
19
+ **App shell (`@object-ui/app-shell`)** — replaced hardcoded English in 14
20
+ files with `useObjectTranslation`:
21
+ - Layout: `AppSidebar`, `ActivityFeed` (locale-aware relative time),
22
+ `MetadataInspector`.
23
+ - Views: `SearchResultsPage`, `ActionParamDialog`, `RecordFormPage`,
24
+ `RecordDetailView`, `PageView`, `DashboardView` (PDF / forecast toasts),
25
+ `ReportView`, `ObjectView` (rename / delete view toasts).
26
+ - Console: `AppContent` (no-apps empty state).
27
+ - Components: `PageRenderer`, `FormRenderer`, `DashboardRenderer`.
28
+ - Hooks: `useNavigationSync` (16 toasts incl. Undo label),
29
+ `useObjectActions` (delete confirm + success / failure toasts).
30
+
31
+ **Plugin grid (`@object-ui/plugin-grid`)**
32
+ - `ObjectGrid` record-detail panel now translates Empty / Yes / No / System
33
+ via the existing `useGridTranslation` safe-fallback wrapper.
34
+ - `RowActionMenu` adopts a local safe-fallback i18n wrapper for
35
+ `Open menu` / `Edit` / `Delete`, preserving standalone-usage guarantees.
36
+
37
+ **CLI test fix (`@object-ui/cli`)**
38
+ - `cli-bin.test.ts` auto-builds the package on first run when `dist/cli.js`
39
+ is missing, instead of throwing. This unbreaks `pnpm test:coverage` in CI
40
+ (root vitest run does not honor turbo's `^build` deps) and removes the
41
+ manual `pnpm --filter @object-ui/cli build` requirement for local dev.
42
+
43
+ ## 4.0.6
44
+
3
45
  ## 4.0.5
4
46
 
5
47
  ## 4.0.4
@@ -800,5 +800,137 @@ declare const ar: {
800
800
  readonly default: "افتراضي";
801
801
  };
802
802
  };
803
+ readonly layout: {
804
+ readonly appSwitcher: {
805
+ readonly home: "Home";
806
+ readonly addApp: "Add App";
807
+ readonly editApp: "Edit App";
808
+ readonly manageAllApps: "Manage All Apps";
809
+ readonly systemConsole: "System Console";
810
+ readonly noAppsConfigured: "No apps configured";
811
+ };
812
+ readonly activityFeed: {
813
+ readonly title: "Recent Activity";
814
+ readonly filter: "Filter";
815
+ readonly empty: "No recent activity";
816
+ readonly ariaLabel: "Activity feed";
817
+ readonly typeCreate: "Create";
818
+ readonly typeUpdate: "Update";
819
+ readonly typeDelete: "Delete";
820
+ readonly typeComment: "Comment";
821
+ readonly relativeJustNow: "just now";
822
+ readonly relativeSecondsAgo: "{{count}}s ago";
823
+ readonly relativeMinutesAgo: "{{count}}m ago";
824
+ readonly relativeHoursAgo: "{{count}}h ago";
825
+ readonly relativeDaysAgo: "{{count}}d ago";
826
+ };
827
+ readonly metadata: {
828
+ readonly label: "Metadata";
829
+ readonly toggleTitle: "Toggle Metadata Inspector";
830
+ readonly panelTitle: "Metadata Inspector";
831
+ readonly jsonBadge: "JSON";
832
+ readonly copyJson: "Copy JSON";
833
+ };
834
+ };
835
+ readonly search: {
836
+ readonly title: "Search";
837
+ readonly back: "Back";
838
+ readonly placeholder: "Search objects, dashboards, pages, reports...";
839
+ readonly inputAriaLabel: "Search objects, dashboards, pages, reports";
840
+ readonly resultsCount: "{{count}} result for \"{{query}}\"";
841
+ readonly resultsCountPlural: "{{count}} results for \"{{query}}\"";
842
+ readonly itemsAvailable: "{{count}} items available";
843
+ readonly noResults: "No results found";
844
+ readonly noResultsHint: "Try adjusting your search terms";
845
+ readonly typeObjects: "Objects";
846
+ readonly typeDashboards: "Dashboards";
847
+ readonly typePages: "Pages";
848
+ readonly typeReports: "Reports";
849
+ readonly badgeObject: "object";
850
+ readonly badgeDashboard: "dashboard";
851
+ readonly badgePage: "page";
852
+ readonly badgeReport: "report";
853
+ };
854
+ readonly empty: {
855
+ readonly objectNotFound: "Object Not Found";
856
+ readonly objectNotFoundDescription: "Object \"{{name}}\" definition missing. Check your configuration or navigate back to select a valid object.";
857
+ readonly pageNotFound: "Page Not Found";
858
+ readonly pageNotFoundDescription: "The page \"{{name}}\" could not be found. It may have been removed or renamed.";
859
+ readonly dashboardNotFound: "Dashboard Not Found";
860
+ readonly dashboardNotFoundDescription: "The dashboard \"{{name}}\" could not be found. It may have been removed or renamed.";
861
+ readonly reportNotFound: "Report Not Found";
862
+ readonly reportNotFoundDescription: "The report \"{{name}}\" could not be found. It may have been removed or renamed.";
863
+ readonly noAppsConfigured: "No Apps Configured";
864
+ readonly noAppsConfiguredDescription: "No applications have been registered. Create your first app or visit System Settings to configure your environment.";
865
+ readonly createFirstApp: "Create Your First App";
866
+ readonly systemSettings: "System Settings";
867
+ readonly back: "Back";
868
+ };
869
+ readonly renderer: {
870
+ readonly noPageSchema: "No page schema provided";
871
+ readonly noFormSchema: "No form schema provided";
872
+ readonly noDashboardSchema: "No dashboard schema provided";
873
+ readonly pageRendering: "Page rendering: {{name}}";
874
+ readonly dashboardRendering: "Dashboard rendering: {{name}}";
875
+ readonly formRenderingMode: "Form rendering in {{mode}} mode";
876
+ readonly formRenderingFor: "for record {{id}}";
877
+ readonly createRecord: "Create Record";
878
+ readonly editRecord: "Edit Record";
879
+ readonly page: "Page";
880
+ readonly dashboard: "Dashboard";
881
+ readonly save: "Save";
882
+ readonly cancel: "Cancel";
883
+ };
884
+ readonly actionDialog: {
885
+ readonly title: "Action Parameters";
886
+ readonly description: "Please provide the required information to continue.";
887
+ readonly selectPlaceholder: "Select {{label}}";
888
+ readonly requiredError: "{{label}} is required";
889
+ readonly cancel: "Cancel";
890
+ readonly confirm: "Confirm";
891
+ readonly defaultActionTitle: "Action";
892
+ readonly ok: "OK";
893
+ };
894
+ readonly rowAction: {
895
+ readonly openMenu: "Open menu";
896
+ readonly edit: "Edit";
897
+ readonly delete: "Delete";
898
+ };
899
+ readonly navigationSync: {
900
+ readonly addedPage: "Navigation updated: added page \"{{name}}\"";
901
+ readonly addedDashboard: "Navigation updated: added dashboard \"{{name}}\"";
902
+ readonly removedPage: "Navigation updated: removed page \"{{name}}\"";
903
+ readonly removedDashboard: "Navigation updated: removed dashboard \"{{name}}\"";
904
+ readonly renamedPage: "Navigation updated: renamed page \"{{oldName}}\" → \"{{newName}}\"";
905
+ readonly renamedDashboard: "Navigation updated: renamed dashboard \"{{oldName}}\" → \"{{newName}}\"";
906
+ readonly undoLabel: "Undo";
907
+ readonly undone: "Navigation change undone";
908
+ readonly undoFailed: "Failed to undo navigation change";
909
+ readonly updateFailed: "Failed to update navigation";
910
+ };
911
+ readonly objectActions: {
912
+ readonly deleteSuccess: "{{label}} deleted successfully";
913
+ readonly deleteFailed: "Failed to delete {{label}}";
914
+ readonly noRecordId: "No record ID provided";
915
+ readonly deleteConfirm: "Are you sure you want to delete this record?";
916
+ };
917
+ readonly objectViewActions: {
918
+ readonly renameFailed: "Failed to rename view";
919
+ readonly deleteFailed: "Failed to delete view";
920
+ };
921
+ readonly dashboardActions: {
922
+ readonly pdfPreparing: "Preparing PDF export…";
923
+ readonly exportFailed: "Export failed: {{message}}";
924
+ readonly forecastSoon: "Forecast view coming soon";
925
+ };
926
+ readonly recordDetail: {
927
+ readonly viewersTooltip: "Users viewing this record";
928
+ };
929
+ readonly cellRender: {
930
+ readonly empty: "Empty";
931
+ readonly yes: "Yes";
932
+ readonly no: "No";
933
+ readonly systemFields: "System";
934
+ };
803
935
  };
804
936
  export default ar;
@@ -795,5 +795,137 @@ const ar = {
795
795
  default: 'افتراضي',
796
796
  },
797
797
  },
798
+ layout: {
799
+ appSwitcher: {
800
+ home: 'Home',
801
+ addApp: 'Add App',
802
+ editApp: 'Edit App',
803
+ manageAllApps: 'Manage All Apps',
804
+ systemConsole: 'System Console',
805
+ noAppsConfigured: 'No apps configured',
806
+ },
807
+ activityFeed: {
808
+ title: 'Recent Activity',
809
+ filter: 'Filter',
810
+ empty: 'No recent activity',
811
+ ariaLabel: 'Activity feed',
812
+ typeCreate: 'Create',
813
+ typeUpdate: 'Update',
814
+ typeDelete: 'Delete',
815
+ typeComment: 'Comment',
816
+ relativeJustNow: 'just now',
817
+ relativeSecondsAgo: '{{count}}s ago',
818
+ relativeMinutesAgo: '{{count}}m ago',
819
+ relativeHoursAgo: '{{count}}h ago',
820
+ relativeDaysAgo: '{{count}}d ago',
821
+ },
822
+ metadata: {
823
+ label: 'Metadata',
824
+ toggleTitle: 'Toggle Metadata Inspector',
825
+ panelTitle: 'Metadata Inspector',
826
+ jsonBadge: 'JSON',
827
+ copyJson: 'Copy JSON',
828
+ },
829
+ },
830
+ search: {
831
+ title: 'Search',
832
+ back: 'Back',
833
+ placeholder: 'Search objects, dashboards, pages, reports...',
834
+ inputAriaLabel: 'Search objects, dashboards, pages, reports',
835
+ resultsCount: '{{count}} result for "{{query}}"',
836
+ resultsCountPlural: '{{count}} results for "{{query}}"',
837
+ itemsAvailable: '{{count}} items available',
838
+ noResults: 'No results found',
839
+ noResultsHint: 'Try adjusting your search terms',
840
+ typeObjects: 'Objects',
841
+ typeDashboards: 'Dashboards',
842
+ typePages: 'Pages',
843
+ typeReports: 'Reports',
844
+ badgeObject: 'object',
845
+ badgeDashboard: 'dashboard',
846
+ badgePage: 'page',
847
+ badgeReport: 'report',
848
+ },
849
+ empty: {
850
+ objectNotFound: 'Object Not Found',
851
+ objectNotFoundDescription: 'Object "{{name}}" definition missing. Check your configuration or navigate back to select a valid object.',
852
+ pageNotFound: 'Page Not Found',
853
+ pageNotFoundDescription: 'The page "{{name}}" could not be found. It may have been removed or renamed.',
854
+ dashboardNotFound: 'Dashboard Not Found',
855
+ dashboardNotFoundDescription: 'The dashboard "{{name}}" could not be found. It may have been removed or renamed.',
856
+ reportNotFound: 'Report Not Found',
857
+ reportNotFoundDescription: 'The report "{{name}}" could not be found. It may have been removed or renamed.',
858
+ noAppsConfigured: 'No Apps Configured',
859
+ noAppsConfiguredDescription: 'No applications have been registered. Create your first app or visit System Settings to configure your environment.',
860
+ createFirstApp: 'Create Your First App',
861
+ systemSettings: 'System Settings',
862
+ back: 'Back',
863
+ },
864
+ renderer: {
865
+ noPageSchema: 'No page schema provided',
866
+ noFormSchema: 'No form schema provided',
867
+ noDashboardSchema: 'No dashboard schema provided',
868
+ pageRendering: 'Page rendering: {{name}}',
869
+ dashboardRendering: 'Dashboard rendering: {{name}}',
870
+ formRenderingMode: 'Form rendering in {{mode}} mode',
871
+ formRenderingFor: 'for record {{id}}',
872
+ createRecord: 'Create Record',
873
+ editRecord: 'Edit Record',
874
+ page: 'Page',
875
+ dashboard: 'Dashboard',
876
+ save: 'Save',
877
+ cancel: 'Cancel',
878
+ },
879
+ actionDialog: {
880
+ title: 'Action Parameters',
881
+ description: 'Please provide the required information to continue.',
882
+ selectPlaceholder: 'Select {{label}}',
883
+ requiredError: '{{label}} is required',
884
+ cancel: 'Cancel',
885
+ confirm: 'Confirm',
886
+ defaultActionTitle: 'Action',
887
+ ok: 'OK',
888
+ },
889
+ rowAction: {
890
+ openMenu: 'Open menu',
891
+ edit: 'Edit',
892
+ delete: 'Delete',
893
+ },
894
+ navigationSync: {
895
+ addedPage: 'Navigation updated: added page "{{name}}"',
896
+ addedDashboard: 'Navigation updated: added dashboard "{{name}}"',
897
+ removedPage: 'Navigation updated: removed page "{{name}}"',
898
+ removedDashboard: 'Navigation updated: removed dashboard "{{name}}"',
899
+ renamedPage: 'Navigation updated: renamed page "{{oldName}}" → "{{newName}}"',
900
+ renamedDashboard: 'Navigation updated: renamed dashboard "{{oldName}}" → "{{newName}}"',
901
+ undoLabel: 'Undo',
902
+ undone: 'Navigation change undone',
903
+ undoFailed: 'Failed to undo navigation change',
904
+ updateFailed: 'Failed to update navigation',
905
+ },
906
+ objectActions: {
907
+ deleteSuccess: '{{label}} deleted successfully',
908
+ deleteFailed: 'Failed to delete {{label}}',
909
+ noRecordId: 'No record ID provided',
910
+ deleteConfirm: 'Are you sure you want to delete this record?',
911
+ },
912
+ objectViewActions: {
913
+ renameFailed: 'Failed to rename view',
914
+ deleteFailed: 'Failed to delete view',
915
+ },
916
+ dashboardActions: {
917
+ pdfPreparing: 'Preparing PDF export…',
918
+ exportFailed: 'Export failed: {{message}}',
919
+ forecastSoon: 'Forecast view coming soon',
920
+ },
921
+ recordDetail: {
922
+ viewersTooltip: 'Users viewing this record',
923
+ },
924
+ cellRender: {
925
+ empty: 'Empty',
926
+ yes: 'Yes',
927
+ no: 'No',
928
+ systemFields: 'System',
929
+ },
798
930
  };
799
931
  export default ar;
@@ -799,5 +799,137 @@ declare const de: {
799
799
  readonly default: "Standard";
800
800
  };
801
801
  };
802
+ readonly layout: {
803
+ readonly appSwitcher: {
804
+ readonly home: "Home";
805
+ readonly addApp: "Add App";
806
+ readonly editApp: "Edit App";
807
+ readonly manageAllApps: "Manage All Apps";
808
+ readonly systemConsole: "System Console";
809
+ readonly noAppsConfigured: "No apps configured";
810
+ };
811
+ readonly activityFeed: {
812
+ readonly title: "Recent Activity";
813
+ readonly filter: "Filter";
814
+ readonly empty: "No recent activity";
815
+ readonly ariaLabel: "Activity feed";
816
+ readonly typeCreate: "Create";
817
+ readonly typeUpdate: "Update";
818
+ readonly typeDelete: "Delete";
819
+ readonly typeComment: "Comment";
820
+ readonly relativeJustNow: "just now";
821
+ readonly relativeSecondsAgo: "{{count}}s ago";
822
+ readonly relativeMinutesAgo: "{{count}}m ago";
823
+ readonly relativeHoursAgo: "{{count}}h ago";
824
+ readonly relativeDaysAgo: "{{count}}d ago";
825
+ };
826
+ readonly metadata: {
827
+ readonly label: "Metadata";
828
+ readonly toggleTitle: "Toggle Metadata Inspector";
829
+ readonly panelTitle: "Metadata Inspector";
830
+ readonly jsonBadge: "JSON";
831
+ readonly copyJson: "Copy JSON";
832
+ };
833
+ };
834
+ readonly search: {
835
+ readonly title: "Search";
836
+ readonly back: "Back";
837
+ readonly placeholder: "Search objects, dashboards, pages, reports...";
838
+ readonly inputAriaLabel: "Search objects, dashboards, pages, reports";
839
+ readonly resultsCount: "{{count}} result for \"{{query}}\"";
840
+ readonly resultsCountPlural: "{{count}} results for \"{{query}}\"";
841
+ readonly itemsAvailable: "{{count}} items available";
842
+ readonly noResults: "No results found";
843
+ readonly noResultsHint: "Try adjusting your search terms";
844
+ readonly typeObjects: "Objects";
845
+ readonly typeDashboards: "Dashboards";
846
+ readonly typePages: "Pages";
847
+ readonly typeReports: "Reports";
848
+ readonly badgeObject: "object";
849
+ readonly badgeDashboard: "dashboard";
850
+ readonly badgePage: "page";
851
+ readonly badgeReport: "report";
852
+ };
853
+ readonly empty: {
854
+ readonly objectNotFound: "Object Not Found";
855
+ readonly objectNotFoundDescription: "Object \"{{name}}\" definition missing. Check your configuration or navigate back to select a valid object.";
856
+ readonly pageNotFound: "Page Not Found";
857
+ readonly pageNotFoundDescription: "The page \"{{name}}\" could not be found. It may have been removed or renamed.";
858
+ readonly dashboardNotFound: "Dashboard Not Found";
859
+ readonly dashboardNotFoundDescription: "The dashboard \"{{name}}\" could not be found. It may have been removed or renamed.";
860
+ readonly reportNotFound: "Report Not Found";
861
+ readonly reportNotFoundDescription: "The report \"{{name}}\" could not be found. It may have been removed or renamed.";
862
+ readonly noAppsConfigured: "No Apps Configured";
863
+ readonly noAppsConfiguredDescription: "No applications have been registered. Create your first app or visit System Settings to configure your environment.";
864
+ readonly createFirstApp: "Create Your First App";
865
+ readonly systemSettings: "System Settings";
866
+ readonly back: "Back";
867
+ };
868
+ readonly renderer: {
869
+ readonly noPageSchema: "No page schema provided";
870
+ readonly noFormSchema: "No form schema provided";
871
+ readonly noDashboardSchema: "No dashboard schema provided";
872
+ readonly pageRendering: "Page rendering: {{name}}";
873
+ readonly dashboardRendering: "Dashboard rendering: {{name}}";
874
+ readonly formRenderingMode: "Form rendering in {{mode}} mode";
875
+ readonly formRenderingFor: "for record {{id}}";
876
+ readonly createRecord: "Create Record";
877
+ readonly editRecord: "Edit Record";
878
+ readonly page: "Page";
879
+ readonly dashboard: "Dashboard";
880
+ readonly save: "Save";
881
+ readonly cancel: "Cancel";
882
+ };
883
+ readonly actionDialog: {
884
+ readonly title: "Action Parameters";
885
+ readonly description: "Please provide the required information to continue.";
886
+ readonly selectPlaceholder: "Select {{label}}";
887
+ readonly requiredError: "{{label}} is required";
888
+ readonly cancel: "Cancel";
889
+ readonly confirm: "Confirm";
890
+ readonly defaultActionTitle: "Action";
891
+ readonly ok: "OK";
892
+ };
893
+ readonly rowAction: {
894
+ readonly openMenu: "Open menu";
895
+ readonly edit: "Edit";
896
+ readonly delete: "Delete";
897
+ };
898
+ readonly navigationSync: {
899
+ readonly addedPage: "Navigation updated: added page \"{{name}}\"";
900
+ readonly addedDashboard: "Navigation updated: added dashboard \"{{name}}\"";
901
+ readonly removedPage: "Navigation updated: removed page \"{{name}}\"";
902
+ readonly removedDashboard: "Navigation updated: removed dashboard \"{{name}}\"";
903
+ readonly renamedPage: "Navigation updated: renamed page \"{{oldName}}\" → \"{{newName}}\"";
904
+ readonly renamedDashboard: "Navigation updated: renamed dashboard \"{{oldName}}\" → \"{{newName}}\"";
905
+ readonly undoLabel: "Undo";
906
+ readonly undone: "Navigation change undone";
907
+ readonly undoFailed: "Failed to undo navigation change";
908
+ readonly updateFailed: "Failed to update navigation";
909
+ };
910
+ readonly objectActions: {
911
+ readonly deleteSuccess: "{{label}} deleted successfully";
912
+ readonly deleteFailed: "Failed to delete {{label}}";
913
+ readonly noRecordId: "No record ID provided";
914
+ readonly deleteConfirm: "Are you sure you want to delete this record?";
915
+ };
916
+ readonly objectViewActions: {
917
+ readonly renameFailed: "Failed to rename view";
918
+ readonly deleteFailed: "Failed to delete view";
919
+ };
920
+ readonly dashboardActions: {
921
+ readonly pdfPreparing: "Preparing PDF export…";
922
+ readonly exportFailed: "Export failed: {{message}}";
923
+ readonly forecastSoon: "Forecast view coming soon";
924
+ };
925
+ readonly recordDetail: {
926
+ readonly viewersTooltip: "Users viewing this record";
927
+ };
928
+ readonly cellRender: {
929
+ readonly empty: "Empty";
930
+ readonly yes: "Yes";
931
+ readonly no: "No";
932
+ readonly systemFields: "System";
933
+ };
802
934
  };
803
935
  export default de;
@@ -808,5 +808,137 @@ const de = {
808
808
  default: 'Standard',
809
809
  },
810
810
  },
811
+ layout: {
812
+ appSwitcher: {
813
+ home: 'Home',
814
+ addApp: 'Add App',
815
+ editApp: 'Edit App',
816
+ manageAllApps: 'Manage All Apps',
817
+ systemConsole: 'System Console',
818
+ noAppsConfigured: 'No apps configured',
819
+ },
820
+ activityFeed: {
821
+ title: 'Recent Activity',
822
+ filter: 'Filter',
823
+ empty: 'No recent activity',
824
+ ariaLabel: 'Activity feed',
825
+ typeCreate: 'Create',
826
+ typeUpdate: 'Update',
827
+ typeDelete: 'Delete',
828
+ typeComment: 'Comment',
829
+ relativeJustNow: 'just now',
830
+ relativeSecondsAgo: '{{count}}s ago',
831
+ relativeMinutesAgo: '{{count}}m ago',
832
+ relativeHoursAgo: '{{count}}h ago',
833
+ relativeDaysAgo: '{{count}}d ago',
834
+ },
835
+ metadata: {
836
+ label: 'Metadata',
837
+ toggleTitle: 'Toggle Metadata Inspector',
838
+ panelTitle: 'Metadata Inspector',
839
+ jsonBadge: 'JSON',
840
+ copyJson: 'Copy JSON',
841
+ },
842
+ },
843
+ search: {
844
+ title: 'Search',
845
+ back: 'Back',
846
+ placeholder: 'Search objects, dashboards, pages, reports...',
847
+ inputAriaLabel: 'Search objects, dashboards, pages, reports',
848
+ resultsCount: '{{count}} result for "{{query}}"',
849
+ resultsCountPlural: '{{count}} results for "{{query}}"',
850
+ itemsAvailable: '{{count}} items available',
851
+ noResults: 'No results found',
852
+ noResultsHint: 'Try adjusting your search terms',
853
+ typeObjects: 'Objects',
854
+ typeDashboards: 'Dashboards',
855
+ typePages: 'Pages',
856
+ typeReports: 'Reports',
857
+ badgeObject: 'object',
858
+ badgeDashboard: 'dashboard',
859
+ badgePage: 'page',
860
+ badgeReport: 'report',
861
+ },
862
+ empty: {
863
+ objectNotFound: 'Object Not Found',
864
+ objectNotFoundDescription: 'Object "{{name}}" definition missing. Check your configuration or navigate back to select a valid object.',
865
+ pageNotFound: 'Page Not Found',
866
+ pageNotFoundDescription: 'The page "{{name}}" could not be found. It may have been removed or renamed.',
867
+ dashboardNotFound: 'Dashboard Not Found',
868
+ dashboardNotFoundDescription: 'The dashboard "{{name}}" could not be found. It may have been removed or renamed.',
869
+ reportNotFound: 'Report Not Found',
870
+ reportNotFoundDescription: 'The report "{{name}}" could not be found. It may have been removed or renamed.',
871
+ noAppsConfigured: 'No Apps Configured',
872
+ noAppsConfiguredDescription: 'No applications have been registered. Create your first app or visit System Settings to configure your environment.',
873
+ createFirstApp: 'Create Your First App',
874
+ systemSettings: 'System Settings',
875
+ back: 'Back',
876
+ },
877
+ renderer: {
878
+ noPageSchema: 'No page schema provided',
879
+ noFormSchema: 'No form schema provided',
880
+ noDashboardSchema: 'No dashboard schema provided',
881
+ pageRendering: 'Page rendering: {{name}}',
882
+ dashboardRendering: 'Dashboard rendering: {{name}}',
883
+ formRenderingMode: 'Form rendering in {{mode}} mode',
884
+ formRenderingFor: 'for record {{id}}',
885
+ createRecord: 'Create Record',
886
+ editRecord: 'Edit Record',
887
+ page: 'Page',
888
+ dashboard: 'Dashboard',
889
+ save: 'Save',
890
+ cancel: 'Cancel',
891
+ },
892
+ actionDialog: {
893
+ title: 'Action Parameters',
894
+ description: 'Please provide the required information to continue.',
895
+ selectPlaceholder: 'Select {{label}}',
896
+ requiredError: '{{label}} is required',
897
+ cancel: 'Cancel',
898
+ confirm: 'Confirm',
899
+ defaultActionTitle: 'Action',
900
+ ok: 'OK',
901
+ },
902
+ rowAction: {
903
+ openMenu: 'Open menu',
904
+ edit: 'Edit',
905
+ delete: 'Delete',
906
+ },
907
+ navigationSync: {
908
+ addedPage: 'Navigation updated: added page "{{name}}"',
909
+ addedDashboard: 'Navigation updated: added dashboard "{{name}}"',
910
+ removedPage: 'Navigation updated: removed page "{{name}}"',
911
+ removedDashboard: 'Navigation updated: removed dashboard "{{name}}"',
912
+ renamedPage: 'Navigation updated: renamed page "{{oldName}}" → "{{newName}}"',
913
+ renamedDashboard: 'Navigation updated: renamed dashboard "{{oldName}}" → "{{newName}}"',
914
+ undoLabel: 'Undo',
915
+ undone: 'Navigation change undone',
916
+ undoFailed: 'Failed to undo navigation change',
917
+ updateFailed: 'Failed to update navigation',
918
+ },
919
+ objectActions: {
920
+ deleteSuccess: '{{label}} deleted successfully',
921
+ deleteFailed: 'Failed to delete {{label}}',
922
+ noRecordId: 'No record ID provided',
923
+ deleteConfirm: 'Are you sure you want to delete this record?',
924
+ },
925
+ objectViewActions: {
926
+ renameFailed: 'Failed to rename view',
927
+ deleteFailed: 'Failed to delete view',
928
+ },
929
+ dashboardActions: {
930
+ pdfPreparing: 'Preparing PDF export…',
931
+ exportFailed: 'Export failed: {{message}}',
932
+ forecastSoon: 'Forecast view coming soon',
933
+ },
934
+ recordDetail: {
935
+ viewersTooltip: 'Users viewing this record',
936
+ },
937
+ cellRender: {
938
+ empty: 'Empty',
939
+ yes: 'Yes',
940
+ no: 'No',
941
+ systemFields: 'System',
942
+ },
811
943
  };
812
944
  export default de;