@object-ui/i18n 3.3.0 → 3.3.1

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 (53) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +21 -1
  3. package/dist/i18n.js +10 -1
  4. package/dist/locales/ar.d.ts +58 -0
  5. package/dist/locales/ar.js +58 -0
  6. package/dist/locales/de.d.ts +58 -0
  7. package/dist/locales/de.js +58 -0
  8. package/dist/locales/en.d.ts +78 -0
  9. package/dist/locales/en.js +78 -0
  10. package/dist/locales/es.d.ts +58 -0
  11. package/dist/locales/es.js +58 -0
  12. package/dist/locales/fr.d.ts +58 -0
  13. package/dist/locales/fr.js +58 -0
  14. package/dist/locales/index.d.ts +620 -0
  15. package/dist/locales/ja.d.ts +58 -0
  16. package/dist/locales/ja.js +58 -0
  17. package/dist/locales/ko.d.ts +58 -0
  18. package/dist/locales/ko.js +58 -0
  19. package/dist/locales/pt.d.ts +58 -0
  20. package/dist/locales/pt.js +58 -0
  21. package/dist/locales/ru.d.ts +58 -0
  22. package/dist/locales/ru.js +58 -0
  23. package/dist/locales/zh.d.ts +78 -0
  24. package/dist/locales/zh.js +78 -0
  25. package/dist/useObjectLabel.d.ts +46 -0
  26. package/dist/useObjectLabel.js +79 -12
  27. package/package.json +30 -7
  28. package/.turbo/turbo-build.log +0 -4
  29. package/src/__tests__/i18n.test.ts +0 -255
  30. package/src/__tests__/provider.test.tsx +0 -117
  31. package/src/__tests__/spec-formatters.test.ts +0 -208
  32. package/src/__tests__/useObjectLabel.test.tsx +0 -131
  33. package/src/i18n.ts +0 -98
  34. package/src/index.ts +0 -81
  35. package/src/locales/ar.ts +0 -742
  36. package/src/locales/de.ts +0 -755
  37. package/src/locales/en.ts +0 -836
  38. package/src/locales/es.ts +0 -741
  39. package/src/locales/fr.ts +0 -755
  40. package/src/locales/index.ts +0 -42
  41. package/src/locales/ja.ts +0 -752
  42. package/src/locales/ko.ts +0 -741
  43. package/src/locales/pt.ts +0 -741
  44. package/src/locales/ru.ts +0 -761
  45. package/src/locales/zh.ts +0 -835
  46. package/src/provider.tsx +0 -177
  47. package/src/useObjectLabel.ts +0 -122
  48. package/src/useSafeTranslation.ts +0 -49
  49. package/src/utils/formatting.ts +0 -136
  50. package/src/utils/index.ts +0 -21
  51. package/src/utils/spec-formatters.ts +0 -220
  52. package/tsconfig.json +0 -12
  53. package/tsconfig.tsbuildinfo +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # @object-ui/i18n
2
2
 
3
+ ## 3.3.1
4
+
3
5
  ## 3.3.0
4
6
 
5
7
  ## 3.2.0
package/README.md CHANGED
@@ -110,6 +110,26 @@ isRTL('ar'); // true
110
110
  isRTL('en'); // false
111
111
  ```
112
112
 
113
+ <!-- release-metadata:v3.3.0 -->
114
+
115
+ ## Compatibility
116
+
117
+ - **React:** 18.x or 19.x
118
+ - **Node.js:** ≥ 18
119
+ - **TypeScript:** ≥ 5.0 (strict mode)
120
+ - **`@objectstack/spec`:** ^3.3.0
121
+ - **`@objectstack/client`:** ^3.3.0
122
+ - **Tailwind CSS:** ≥ 3.4 (for packages with UI)
123
+
124
+ ## Links
125
+
126
+ - 📚 [Documentation](https://www.objectui.org/docs/packages/i18n)
127
+ - 📦 [npm package](https://www.npmjs.com/package/@object-ui/i18n)
128
+ - 📝 [Changelog](./CHANGELOG.md)
129
+ - 🐛 [Report an issue](https://github.com/objectstack-ai/objectui/issues)
130
+ - 🤝 [Contributing Guide](https://github.com/objectstack-ai/objectui/blob/main/CONTRIBUTING.md)
131
+ - 🗺️ [Roadmap](https://github.com/objectstack-ai/objectui/blob/main/ROADMAP.md)
132
+
113
133
  ## License
114
134
 
115
- MIT
135
+ MIT — see [LICENSE](./LICENSE).
package/dist/i18n.js CHANGED
@@ -4,6 +4,7 @@
4
4
  * Wraps i18next with Object UI defaults and built-in locale support.
5
5
  */
6
6
  import i18next from 'i18next';
7
+ import { initReactI18next } from 'react-i18next';
7
8
  import { builtInLocales, isRTL } from './locales/index';
8
9
  /**
9
10
  * Create and initialize an i18next instance with Object UI defaults
@@ -35,7 +36,12 @@ export function createI18n(config = {}) {
35
36
  }
36
37
  }
37
38
  const instance = i18next.createInstance();
38
- instance.init({
39
+ // IMPORTANT: disable react-i18next Suspense. Otherwise `useTranslation()`
40
+ // calls during bootstrap throw a Suspense promise (the i18n instance is
41
+ // technically still "initializing" on the very first render in StrictMode),
42
+ // which unmounts the entire App subtree — including ConditionalAuthWrapper,
43
+ // so the discovery fetch never runs and the splash never appears.
44
+ instance.use(initReactI18next).init({
39
45
  lng,
40
46
  fallbackLng: fallbackLanguage,
41
47
  resources: mergedResources,
@@ -44,6 +50,9 @@ export function createI18n(config = {}) {
44
50
  ...interpolation,
45
51
  },
46
52
  returnNull: false,
53
+ react: {
54
+ useSuspense: false,
55
+ },
47
56
  });
48
57
  return instance;
49
58
  }
@@ -539,6 +539,16 @@ declare const ar: {
539
539
  readonly loadingConfig: "جاري تحميل الإعدادات";
540
540
  readonly preparingWorkspace: "جاري تجهيز مساحة العمل";
541
541
  };
542
+ readonly error: {
543
+ readonly connectionFailed: "تعذّر الاتصال بالخادم";
544
+ readonly serverUnreachable: "الخادم {{url}} غير قابل للوصول.";
545
+ readonly checkServer: "يرجى التحقق من اتصال الشبكة أو من تشغيل الواجهة الخلفية.";
546
+ readonly timeout: "انتهت مهلة الاتصال بعد 10 ثوانٍ.";
547
+ };
548
+ readonly actions: {
549
+ readonly retry: "إعادة المحاولة";
550
+ readonly retrying: "جاري إعادة المحاولة…";
551
+ };
542
552
  readonly shortcuts: {
543
553
  readonly title: "اختصارات لوحة المفاتيح";
544
554
  readonly description: "مرجع سريع لجميع اختصارات لوحة المفاتيح المتاحة.";
@@ -742,5 +752,53 @@ declare const ar: {
742
752
  readonly timeout: "انتهت مهلة الطلب. يرجى المحاولة مرة أخرى.";
743
753
  readonly unknown: "حدث خطأ غير متوقع.";
744
754
  };
755
+ readonly workspace: {
756
+ readonly label: "مساحات العمل";
757
+ readonly default: "مساحة العمل الخاصة بي";
758
+ readonly switch: "تبديل مساحة العمل";
759
+ readonly create: "إنشاء مساحة عمل";
760
+ readonly createTitle: "إنشاء مساحة عمل";
761
+ readonly createDescription: "مساحة العمل هي مساحة مشتركة لفريقك للتعاون.";
762
+ readonly createButton: "إنشاء مساحة عمل";
763
+ readonly nameLabel: "اسم مساحة العمل";
764
+ readonly namePlaceholder: "مثلاً، Acme Inc";
765
+ readonly slugLabel: "معرف URL";
766
+ readonly slugHint: "يستخدم في عناوين URL. أحرف صغيرة وأرقام وشرطات فقط.";
767
+ readonly invite: "دعوة عضو";
768
+ readonly members: "الأعضاء";
769
+ readonly settings: "إعدادات مساحة العمل";
770
+ };
771
+ readonly sidebar: {
772
+ readonly settings: "الإعدادات";
773
+ readonly help: "المساعدة";
774
+ readonly helpTooltip: "المساعدة والوثائق";
775
+ readonly activityFeed: "موجز النشاط";
776
+ };
777
+ readonly home: {
778
+ readonly title: "الرئيسية";
779
+ readonly subtitle: "لوحة تحكم مساحة العمل";
780
+ readonly nav: "الرئيسية";
781
+ readonly allApps: "جميع التطبيقات";
782
+ readonly loading: "جارٍ تحميل مساحة العمل...";
783
+ readonly recent: "الأخيرة";
784
+ readonly starred: "المميزة بنجمة";
785
+ readonly welcome: "مرحباً بك في ObjectUI";
786
+ readonly welcomeDescription: "ابدأ بإنشاء تطبيقك الأول أو تكوين إعدادات النظام.";
787
+ readonly createFirstApp: "أنشئ أول تطبيق لك";
788
+ readonly systemSettings: "إعدادات النظام";
789
+ readonly quickActions: {
790
+ readonly title: "إجراءات سريعة";
791
+ readonly createApp: "إنشاء تطبيق";
792
+ readonly createAppDesc: "ابدأ بتطبيق جديد";
793
+ readonly manageObjects: "إدارة الكائنات";
794
+ readonly manageObjectsDesc: "تكوين نماذج البيانات";
795
+ readonly systemSettings: "إعدادات النظام";
796
+ readonly systemSettingsDesc: "تكوين مساحة العمل الخاصة بك";
797
+ };
798
+ readonly appCard: {
799
+ readonly noDescription: "لا يوجد وصف";
800
+ readonly default: "افتراضي";
801
+ };
802
+ };
745
803
  };
746
804
  export default ar;
@@ -539,6 +539,16 @@ const ar = {
539
539
  loadingConfig: 'جاري تحميل الإعدادات',
540
540
  preparingWorkspace: 'جاري تجهيز مساحة العمل',
541
541
  },
542
+ error: {
543
+ connectionFailed: 'تعذّر الاتصال بالخادم',
544
+ serverUnreachable: 'الخادم {{url}} غير قابل للوصول.',
545
+ checkServer: 'يرجى التحقق من اتصال الشبكة أو من تشغيل الواجهة الخلفية.',
546
+ timeout: 'انتهت مهلة الاتصال بعد 10 ثوانٍ.',
547
+ },
548
+ actions: {
549
+ retry: 'إعادة المحاولة',
550
+ retrying: 'جاري إعادة المحاولة…',
551
+ },
542
552
  shortcuts: {
543
553
  title: 'اختصارات لوحة المفاتيح',
544
554
  description: 'مرجع سريع لجميع اختصارات لوحة المفاتيح المتاحة.',
@@ -737,5 +747,53 @@ const ar = {
737
747
  timeout: 'انتهت مهلة الطلب. يرجى المحاولة مرة أخرى.',
738
748
  unknown: 'حدث خطأ غير متوقع.',
739
749
  },
750
+ workspace: {
751
+ label: 'مساحات العمل',
752
+ default: 'مساحة العمل الخاصة بي',
753
+ switch: 'تبديل مساحة العمل',
754
+ create: 'إنشاء مساحة عمل',
755
+ createTitle: 'إنشاء مساحة عمل',
756
+ createDescription: 'مساحة العمل هي مساحة مشتركة لفريقك للتعاون.',
757
+ createButton: 'إنشاء مساحة عمل',
758
+ nameLabel: 'اسم مساحة العمل',
759
+ namePlaceholder: 'مثلاً، Acme Inc',
760
+ slugLabel: 'معرف URL',
761
+ slugHint: 'يستخدم في عناوين URL. أحرف صغيرة وأرقام وشرطات فقط.',
762
+ invite: 'دعوة عضو',
763
+ members: 'الأعضاء',
764
+ settings: 'إعدادات مساحة العمل',
765
+ },
766
+ sidebar: {
767
+ settings: 'الإعدادات',
768
+ help: 'المساعدة',
769
+ helpTooltip: 'المساعدة والوثائق',
770
+ activityFeed: 'موجز النشاط',
771
+ },
772
+ home: {
773
+ title: 'الرئيسية',
774
+ subtitle: 'لوحة تحكم مساحة العمل',
775
+ nav: 'الرئيسية',
776
+ allApps: 'جميع التطبيقات',
777
+ loading: 'جارٍ تحميل مساحة العمل...',
778
+ recent: 'الأخيرة',
779
+ starred: 'المميزة بنجمة',
780
+ welcome: 'مرحباً بك في ObjectUI',
781
+ welcomeDescription: 'ابدأ بإنشاء تطبيقك الأول أو تكوين إعدادات النظام.',
782
+ createFirstApp: 'أنشئ أول تطبيق لك',
783
+ systemSettings: 'إعدادات النظام',
784
+ quickActions: {
785
+ title: 'إجراءات سريعة',
786
+ createApp: 'إنشاء تطبيق',
787
+ createAppDesc: 'ابدأ بتطبيق جديد',
788
+ manageObjects: 'إدارة الكائنات',
789
+ manageObjectsDesc: 'تكوين نماذج البيانات',
790
+ systemSettings: 'إعدادات النظام',
791
+ systemSettingsDesc: 'تكوين مساحة العمل الخاصة بك',
792
+ },
793
+ appCard: {
794
+ noDescription: 'لا يوجد وصف',
795
+ default: 'افتراضي',
796
+ },
797
+ },
740
798
  };
741
799
  export default ar;
@@ -538,6 +538,16 @@ declare const de: {
538
538
  readonly loadingConfig: "Konfiguration laden";
539
539
  readonly preparingWorkspace: "Arbeitsbereich vorbereiten";
540
540
  };
541
+ readonly error: {
542
+ readonly connectionFailed: "Verbindung zum Server nicht möglich";
543
+ readonly serverUnreachable: "Der Server {{url}} ist nicht erreichbar.";
544
+ readonly checkServer: "Bitte prüfen Sie Ihre Netzwerkverbindung oder ob das Backend läuft.";
545
+ readonly timeout: "Zeitüberschreitung der Verbindung nach 10 Sekunden.";
546
+ };
547
+ readonly actions: {
548
+ readonly retry: "Erneut versuchen";
549
+ readonly retrying: "Wird wiederholt…";
550
+ };
541
551
  readonly shortcuts: {
542
552
  readonly title: "Tastenkürzel";
543
553
  readonly description: "Kurzreferenz für alle verfügbaren Tastenkürzel.";
@@ -741,5 +751,53 @@ declare const de: {
741
751
  readonly timeout: "Zeitüberschreitung. Bitte versuchen Sie es erneut.";
742
752
  readonly unknown: "Ein unerwarteter Fehler ist aufgetreten.";
743
753
  };
754
+ readonly workspace: {
755
+ readonly label: "Arbeitsbereiche";
756
+ readonly default: "Mein Arbeitsbereich";
757
+ readonly switch: "Arbeitsbereich wechseln";
758
+ readonly create: "Arbeitsbereich erstellen";
759
+ readonly createTitle: "Arbeitsbereich erstellen";
760
+ readonly createDescription: "Ein Arbeitsbereich ist ein gemeinsamer Raum für Ihr Team zur Zusammenarbeit.";
761
+ readonly createButton: "Arbeitsbereich erstellen";
762
+ readonly nameLabel: "Name des Arbeitsbereichs";
763
+ readonly namePlaceholder: "z.B. Acme Inc";
764
+ readonly slugLabel: "URL-Slug";
765
+ readonly slugHint: "In URLs verwendet. Nur Kleinbuchstaben, Zahlen und Bindestriche.";
766
+ readonly invite: "Mitglied einladen";
767
+ readonly members: "Mitglieder";
768
+ readonly settings: "Arbeitsbereichseinstellungen";
769
+ };
770
+ readonly sidebar: {
771
+ readonly settings: "Einstellungen";
772
+ readonly help: "Hilfe";
773
+ readonly helpTooltip: "Hilfe und Dokumentation";
774
+ readonly activityFeed: "Aktivitätsfeed";
775
+ };
776
+ readonly home: {
777
+ readonly title: "Startseite";
778
+ readonly subtitle: "Ihr Arbeitsbereich-Dashboard";
779
+ readonly nav: "Startseite";
780
+ readonly allApps: "Alle Anwendungen";
781
+ readonly loading: "Arbeitsbereich wird geladen...";
782
+ readonly recent: "Kürzlich";
783
+ readonly starred: "Mit Stern";
784
+ readonly welcome: "Willkommen bei ObjectUI";
785
+ readonly welcomeDescription: "Erstellen Sie zunächst Ihre erste Anwendung oder konfigurieren Sie Ihre Systemeinstellungen.";
786
+ readonly createFirstApp: "Erstellen Sie Ihre erste App";
787
+ readonly systemSettings: "Systemeinstellungen";
788
+ readonly quickActions: {
789
+ readonly title: "Schnellaktionen";
790
+ readonly createApp: "App erstellen";
791
+ readonly createAppDesc: "Beginnen Sie mit einer neuen Anwendung";
792
+ readonly manageObjects: "Objekte verwalten";
793
+ readonly manageObjectsDesc: "Datenmodelle konfigurieren";
794
+ readonly systemSettings: "Systemeinstellungen";
795
+ readonly systemSettingsDesc: "Konfigurieren Sie Ihren Arbeitsbereich";
796
+ };
797
+ readonly appCard: {
798
+ readonly noDescription: "Keine Beschreibung";
799
+ readonly default: "Standard";
800
+ };
801
+ };
744
802
  };
745
803
  export default de;
@@ -547,6 +547,16 @@ const de = {
547
547
  loadingConfig: 'Konfiguration laden',
548
548
  preparingWorkspace: 'Arbeitsbereich vorbereiten',
549
549
  },
550
+ error: {
551
+ connectionFailed: 'Verbindung zum Server nicht möglich',
552
+ serverUnreachable: 'Der Server {{url}} ist nicht erreichbar.',
553
+ checkServer: 'Bitte prüfen Sie Ihre Netzwerkverbindung oder ob das Backend läuft.',
554
+ timeout: 'Zeitüberschreitung der Verbindung nach 10 Sekunden.',
555
+ },
556
+ actions: {
557
+ retry: 'Erneut versuchen',
558
+ retrying: 'Wird wiederholt…',
559
+ },
550
560
  shortcuts: {
551
561
  title: 'Tastenkürzel',
552
562
  description: 'Kurzreferenz für alle verfügbaren Tastenkürzel.',
@@ -750,5 +760,53 @@ const de = {
750
760
  timeout: 'Zeitüberschreitung. Bitte versuchen Sie es erneut.',
751
761
  unknown: 'Ein unerwarteter Fehler ist aufgetreten.',
752
762
  },
763
+ workspace: {
764
+ label: 'Arbeitsbereiche',
765
+ default: 'Mein Arbeitsbereich',
766
+ switch: 'Arbeitsbereich wechseln',
767
+ create: 'Arbeitsbereich erstellen',
768
+ createTitle: 'Arbeitsbereich erstellen',
769
+ createDescription: 'Ein Arbeitsbereich ist ein gemeinsamer Raum für Ihr Team zur Zusammenarbeit.',
770
+ createButton: 'Arbeitsbereich erstellen',
771
+ nameLabel: 'Name des Arbeitsbereichs',
772
+ namePlaceholder: 'z.B. Acme Inc',
773
+ slugLabel: 'URL-Slug',
774
+ slugHint: 'In URLs verwendet. Nur Kleinbuchstaben, Zahlen und Bindestriche.',
775
+ invite: 'Mitglied einladen',
776
+ members: 'Mitglieder',
777
+ settings: 'Arbeitsbereichseinstellungen',
778
+ },
779
+ sidebar: {
780
+ settings: 'Einstellungen',
781
+ help: 'Hilfe',
782
+ helpTooltip: 'Hilfe und Dokumentation',
783
+ activityFeed: 'Aktivitätsfeed',
784
+ },
785
+ home: {
786
+ title: 'Startseite',
787
+ subtitle: 'Ihr Arbeitsbereich-Dashboard',
788
+ nav: 'Startseite',
789
+ allApps: 'Alle Anwendungen',
790
+ loading: 'Arbeitsbereich wird geladen...',
791
+ recent: 'Kürzlich',
792
+ starred: 'Mit Stern',
793
+ welcome: 'Willkommen bei ObjectUI',
794
+ welcomeDescription: 'Erstellen Sie zunächst Ihre erste Anwendung oder konfigurieren Sie Ihre Systemeinstellungen.',
795
+ createFirstApp: 'Erstellen Sie Ihre erste App',
796
+ systemSettings: 'Systemeinstellungen',
797
+ quickActions: {
798
+ title: 'Schnellaktionen',
799
+ createApp: 'App erstellen',
800
+ createAppDesc: 'Beginnen Sie mit einer neuen Anwendung',
801
+ manageObjects: 'Objekte verwalten',
802
+ manageObjectsDesc: 'Datenmodelle konfigurieren',
803
+ systemSettings: 'Systemeinstellungen',
804
+ systemSettingsDesc: 'Konfigurieren Sie Ihren Arbeitsbereich',
805
+ },
806
+ appCard: {
807
+ noDescription: 'Keine Beschreibung',
808
+ default: 'Standard',
809
+ },
810
+ },
753
811
  };
754
812
  export default de;
@@ -549,6 +549,17 @@ declare const en: {
549
549
  readonly ungrouped: "General";
550
550
  readonly deleteConfirmTitle: "Delete Field?";
551
551
  readonly deleteConfirmMessage: "This will permanently delete the field. Existing data in this field will be lost.";
552
+ readonly basicSection: "Basic";
553
+ readonly typeSpecificSection: "Type Settings";
554
+ readonly advancedSection: "Advanced";
555
+ readonly typeCategory: {
556
+ readonly text: "Text";
557
+ readonly number: "Number";
558
+ readonly date: "Date & Time";
559
+ readonly choice: "Choice";
560
+ readonly relation: "Relation";
561
+ readonly advanced: "Advanced";
562
+ };
552
563
  };
553
564
  };
554
565
  readonly console: {
@@ -565,6 +576,16 @@ declare const en: {
565
576
  readonly loadingConfig: "Loading configuration";
566
577
  readonly preparingWorkspace: "Preparing workspace";
567
578
  };
579
+ readonly error: {
580
+ readonly connectionFailed: "Cannot connect to server";
581
+ readonly serverUnreachable: "The server at {{url}} is unreachable.";
582
+ readonly checkServer: "Please check your network connection or that the backend is running.";
583
+ readonly timeout: "Connection timed out after 10 seconds.";
584
+ };
585
+ readonly actions: {
586
+ readonly retry: "Retry";
587
+ readonly retrying: "Retrying…";
588
+ };
568
589
  readonly shortcuts: {
569
590
  readonly title: "Keyboard Shortcuts";
570
591
  readonly description: "Quick reference for all available keyboard shortcuts.";
@@ -820,6 +841,63 @@ declare const en: {
820
841
  readonly timeout: "Request timed out. Please try again.";
821
842
  readonly unknown: "An unexpected error occurred.";
822
843
  };
844
+ readonly workspace: {
845
+ readonly label: "Workspaces";
846
+ readonly default: "My Workspace";
847
+ readonly switch: "Switch workspace";
848
+ readonly create: "Create workspace";
849
+ readonly createTitle: "Create a workspace";
850
+ readonly createDescription: "A workspace is a shared space for your team to collaborate.";
851
+ readonly createButton: "Create workspace";
852
+ readonly nameLabel: "Workspace name";
853
+ readonly namePlaceholder: "e.g., Acme Inc";
854
+ readonly slugLabel: "URL slug";
855
+ readonly slugHint: "Used in URLs. Only lowercase letters, numbers, and hyphens.";
856
+ readonly invite: "Invite member";
857
+ readonly members: "Members";
858
+ readonly settings: "Workspace settings";
859
+ };
860
+ readonly sidebar: {
861
+ readonly settings: "Settings";
862
+ readonly help: "Help";
863
+ readonly helpTooltip: "Help & Documentation";
864
+ readonly activityFeed: "Activity feed";
865
+ };
866
+ readonly home: {
867
+ readonly title: "Home";
868
+ readonly subtitle: "Your workspace dashboard";
869
+ readonly nav: "Home";
870
+ readonly allApps: "All Applications";
871
+ readonly loading: "Loading workspace...";
872
+ readonly recent: "Recent";
873
+ readonly starred: "Starred";
874
+ readonly welcome: "Welcome to ObjectUI";
875
+ readonly welcomeDescription: "Get started by creating your first application or configure your system settings.";
876
+ readonly createFirstApp: "Create Your First App";
877
+ readonly systemSettings: "System Settings";
878
+ readonly quickActions: {
879
+ readonly title: "Quick Actions";
880
+ readonly createApp: "Create App";
881
+ readonly createAppDesc: "Start with a new application";
882
+ readonly manageObjects: "Manage Objects";
883
+ readonly manageObjectsDesc: "Configure data models";
884
+ readonly systemSettings: "System Settings";
885
+ readonly systemSettingsDesc: "Configure your workspace";
886
+ };
887
+ readonly recentApps: {
888
+ readonly title: "Recently Accessed";
889
+ readonly itemType: {
890
+ readonly object: "Object";
891
+ readonly dashboard: "Dashboard";
892
+ readonly page: "Page";
893
+ readonly record: "Record";
894
+ };
895
+ };
896
+ readonly appCard: {
897
+ readonly noDescription: "No description";
898
+ readonly default: "Default";
899
+ };
900
+ };
823
901
  };
824
902
  export default en;
825
903
  export type TranslationKeys = typeof en;
@@ -559,6 +559,17 @@ const en = {
559
559
  ungrouped: 'General',
560
560
  deleteConfirmTitle: 'Delete Field?',
561
561
  deleteConfirmMessage: 'This will permanently delete the field. Existing data in this field will be lost.',
562
+ basicSection: 'Basic',
563
+ typeSpecificSection: 'Type Settings',
564
+ advancedSection: 'Advanced',
565
+ typeCategory: {
566
+ text: 'Text',
567
+ number: 'Number',
568
+ date: 'Date & Time',
569
+ choice: 'Choice',
570
+ relation: 'Relation',
571
+ advanced: 'Advanced',
572
+ },
562
573
  },
563
574
  },
564
575
  console: {
@@ -575,6 +586,16 @@ const en = {
575
586
  loadingConfig: 'Loading configuration',
576
587
  preparingWorkspace: 'Preparing workspace',
577
588
  },
589
+ error: {
590
+ connectionFailed: 'Cannot connect to server',
591
+ serverUnreachable: 'The server at {{url}} is unreachable.',
592
+ checkServer: 'Please check your network connection or that the backend is running.',
593
+ timeout: 'Connection timed out after 10 seconds.',
594
+ },
595
+ actions: {
596
+ retry: 'Retry',
597
+ retrying: 'Retrying…',
598
+ },
578
599
  shortcuts: {
579
600
  title: 'Keyboard Shortcuts',
580
601
  description: 'Quick reference for all available keyboard shortcuts.',
@@ -830,5 +851,62 @@ const en = {
830
851
  timeout: 'Request timed out. Please try again.',
831
852
  unknown: 'An unexpected error occurred.',
832
853
  },
854
+ workspace: {
855
+ label: 'Workspaces',
856
+ default: 'My Workspace',
857
+ switch: 'Switch workspace',
858
+ create: 'Create workspace',
859
+ createTitle: 'Create a workspace',
860
+ createDescription: 'A workspace is a shared space for your team to collaborate.',
861
+ createButton: 'Create workspace',
862
+ nameLabel: 'Workspace name',
863
+ namePlaceholder: 'e.g., Acme Inc',
864
+ slugLabel: 'URL slug',
865
+ slugHint: 'Used in URLs. Only lowercase letters, numbers, and hyphens.',
866
+ invite: 'Invite member',
867
+ members: 'Members',
868
+ settings: 'Workspace settings',
869
+ },
870
+ sidebar: {
871
+ settings: 'Settings',
872
+ help: 'Help',
873
+ helpTooltip: 'Help & Documentation',
874
+ activityFeed: 'Activity feed',
875
+ },
876
+ home: {
877
+ title: 'Home',
878
+ subtitle: 'Your workspace dashboard',
879
+ nav: 'Home',
880
+ allApps: 'All Applications',
881
+ loading: 'Loading workspace...',
882
+ recent: 'Recent',
883
+ starred: 'Starred',
884
+ welcome: 'Welcome to ObjectUI',
885
+ welcomeDescription: 'Get started by creating your first application or configure your system settings.',
886
+ createFirstApp: 'Create Your First App',
887
+ systemSettings: 'System Settings',
888
+ quickActions: {
889
+ title: 'Quick Actions',
890
+ createApp: 'Create App',
891
+ createAppDesc: 'Start with a new application',
892
+ manageObjects: 'Manage Objects',
893
+ manageObjectsDesc: 'Configure data models',
894
+ systemSettings: 'System Settings',
895
+ systemSettingsDesc: 'Configure your workspace',
896
+ },
897
+ recentApps: {
898
+ title: 'Recently Accessed',
899
+ itemType: {
900
+ object: 'Object',
901
+ dashboard: 'Dashboard',
902
+ page: 'Page',
903
+ record: 'Record',
904
+ },
905
+ },
906
+ appCard: {
907
+ noDescription: 'No description',
908
+ default: 'Default',
909
+ },
910
+ },
833
911
  };
834
912
  export default en;
@@ -538,6 +538,16 @@ declare const es: {
538
538
  readonly loadingConfig: "Cargando configuración";
539
539
  readonly preparingWorkspace: "Preparando espacio de trabajo";
540
540
  };
541
+ readonly error: {
542
+ readonly connectionFailed: "No se puede conectar al servidor";
543
+ readonly serverUnreachable: "El servidor {{url}} no está accesible.";
544
+ readonly checkServer: "Compruebe su conexión de red o que el backend esté en ejecución.";
545
+ readonly timeout: "Tiempo de conexión agotado tras 10 segundos.";
546
+ };
547
+ readonly actions: {
548
+ readonly retry: "Reintentar";
549
+ readonly retrying: "Reintentando…";
550
+ };
541
551
  readonly shortcuts: {
542
552
  readonly title: "Atajos de teclado";
543
553
  readonly description: "Referencia rápida de todos los atajos de teclado disponibles.";
@@ -741,5 +751,53 @@ declare const es: {
741
751
  readonly timeout: "Tiempo de espera agotado. Por favor, inténtelo de nuevo.";
742
752
  readonly unknown: "Ha ocurrido un error inesperado.";
743
753
  };
754
+ readonly workspace: {
755
+ readonly label: "Espacios de trabajo";
756
+ readonly default: "Mi espacio de trabajo";
757
+ readonly switch: "Cambiar espacio de trabajo";
758
+ readonly create: "Crear espacio de trabajo";
759
+ readonly createTitle: "Crear un espacio de trabajo";
760
+ readonly createDescription: "Un espacio de trabajo es un lugar compartido para que tu equipo colabore.";
761
+ readonly createButton: "Crear espacio de trabajo";
762
+ readonly nameLabel: "Nombre del espacio de trabajo";
763
+ readonly namePlaceholder: "p.ej., Acme Inc";
764
+ readonly slugLabel: "Slug de URL";
765
+ readonly slugHint: "Se utiliza en URLs. Solo minúsculas, números y guiones.";
766
+ readonly invite: "Invitar miembro";
767
+ readonly members: "Miembros";
768
+ readonly settings: "Configuración del espacio de trabajo";
769
+ };
770
+ readonly sidebar: {
771
+ readonly settings: "Configuración";
772
+ readonly help: "Ayuda";
773
+ readonly helpTooltip: "Ayuda y documentación";
774
+ readonly activityFeed: "Feed de actividad";
775
+ };
776
+ readonly home: {
777
+ readonly title: "Inicio";
778
+ readonly subtitle: "Panel de tu espacio de trabajo";
779
+ readonly nav: "Inicio";
780
+ readonly allApps: "Todas las aplicaciones";
781
+ readonly loading: "Cargando espacio de trabajo...";
782
+ readonly recent: "Recientes";
783
+ readonly starred: "Destacados";
784
+ readonly welcome: "Bienvenido a ObjectUI";
785
+ readonly welcomeDescription: "Comienza creando tu primera aplicación o configura los ajustes del sistema.";
786
+ readonly createFirstApp: "Crea tu primera aplicación";
787
+ readonly systemSettings: "Configuración del sistema";
788
+ readonly quickActions: {
789
+ readonly title: "Acciones rápidas";
790
+ readonly createApp: "Crear app";
791
+ readonly createAppDesc: "Comienza con una nueva aplicación";
792
+ readonly manageObjects: "Gestionar objetos";
793
+ readonly manageObjectsDesc: "Configura modelos de datos";
794
+ readonly systemSettings: "Configuración del sistema";
795
+ readonly systemSettingsDesc: "Configura tu espacio de trabajo";
796
+ };
797
+ readonly appCard: {
798
+ readonly noDescription: "Sin descripción";
799
+ readonly default: "Predeterminado";
800
+ };
801
+ };
744
802
  };
745
803
  export default es;