@object-ui/i18n 2.0.0 → 3.0.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.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +14 -0
- package/README.md +115 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/locales/ar.d.ts +73 -0
- package/dist/locales/ar.js +68 -0
- package/dist/locales/de.d.ts +73 -0
- package/dist/locales/de.js +73 -0
- package/dist/locales/en.d.ts +73 -0
- package/dist/locales/en.js +73 -0
- package/dist/locales/es.d.ts +73 -0
- package/dist/locales/es.js +68 -0
- package/dist/locales/fr.d.ts +73 -0
- package/dist/locales/fr.js +73 -0
- package/dist/locales/index.d.ts +730 -0
- package/dist/locales/ja.d.ts +73 -0
- package/dist/locales/ja.js +68 -0
- package/dist/locales/ko.d.ts +73 -0
- package/dist/locales/ko.js +68 -0
- package/dist/locales/pt.d.ts +73 -0
- package/dist/locales/pt.js +68 -0
- package/dist/locales/ru.d.ts +73 -0
- package/dist/locales/ru.js +68 -0
- package/dist/locales/zh.d.ts +73 -0
- package/dist/locales/zh.js +73 -0
- package/dist/provider.d.ts +19 -1
- package/dist/provider.js +7 -2
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/spec-formatters.d.ts +140 -0
- package/dist/utils/spec-formatters.js +118 -0
- package/package.json +4 -4
- package/src/__tests__/spec-formatters.test.ts +208 -0
- package/src/index.ts +12 -0
- package/src/locales/ar.ts +68 -0
- package/src/locales/de.ts +73 -0
- package/src/locales/en.ts +73 -0
- package/src/locales/es.ts +68 -0
- package/src/locales/fr.ts +73 -0
- package/src/locales/ja.ts +68 -0
- package/src/locales/ko.ts +68 -0
- package/src/locales/pt.ts +68 -0
- package/src/locales/ru.ts +68 -0
- package/src/locales/zh.ts +73 -0
- package/src/provider.tsx +25 -2
- package/src/utils/index.ts +11 -0
- package/src/utils/spec-formatters.ts +220 -0
- package/tsconfig.tsbuildinfo +1 -1
package/.turbo/turbo-build.log
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @object-ui/i18n
|
|
2
2
|
|
|
3
|
+
## 3.0.1
|
|
4
|
+
|
|
5
|
+
## 3.0.0
|
|
6
|
+
|
|
7
|
+
### Minor Changes
|
|
8
|
+
|
|
9
|
+
- 87979c3: Upgrade to @objectstack v3.0.0 and console bundle optimization
|
|
10
|
+
- Upgraded all @objectstack/\* packages from ^2.0.7 to ^3.0.0
|
|
11
|
+
- Breaking change migrations: Hub → Cloud namespace, definePlugin removed, PaginatedResult.value → .records, PaginatedResult.count → .total, client.meta.getObject() → client.meta.getItem()
|
|
12
|
+
- Console bundle optimization: split monolithic 3.7 MB chunk into 17 granular cacheable chunks (95% main entry reduction)
|
|
13
|
+
- Added gzip + brotli pre-compression via vite-plugin-compression2
|
|
14
|
+
- Lazy MSW loading for build:server (~150 KB gzip saved)
|
|
15
|
+
- Added bundle analysis with rollup-plugin-visualizer
|
|
16
|
+
|
|
3
17
|
## 2.0.0
|
|
4
18
|
|
|
5
19
|
### Major Changes
|
package/README.md
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# @object-ui/i18n
|
|
2
|
+
|
|
3
|
+
Internationalization for Object UI — 11 built-in locales, RTL support, and date/currency formatting.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- 🌍 **11 Built-in Locales** - English, Chinese, Japanese, Korean, German, French, Spanish, Portuguese, Russian, Arabic, and more
|
|
8
|
+
- 🔄 **RTL Support** - Automatic right-to-left layout for Arabic and other RTL languages
|
|
9
|
+
- 📅 **Date Formatting** - Locale-aware date, datetime, and relative time formatting
|
|
10
|
+
- 💰 **Currency & Number Formatting** - Locale-aware currency and number formatting
|
|
11
|
+
- 🎣 **React Hooks** - `useObjectTranslation` for translations, language switching, and direction
|
|
12
|
+
- 🏗️ **I18nProvider** - Context provider for internationalized applications
|
|
13
|
+
- 🔌 **Extensible** - Add custom locales and translation keys
|
|
14
|
+
- 🎯 **Type-Safe** - Full TypeScript support with exported types
|
|
15
|
+
|
|
16
|
+
## Installation
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npm install @object-ui/i18n
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**Peer Dependencies:**
|
|
23
|
+
- `react` ^18.0.0 || ^19.0.0
|
|
24
|
+
- `react-dom` ^18.0.0 || ^19.0.0
|
|
25
|
+
|
|
26
|
+
## Quick Start
|
|
27
|
+
|
|
28
|
+
```tsx
|
|
29
|
+
import { I18nProvider, useObjectTranslation } from '@object-ui/i18n';
|
|
30
|
+
|
|
31
|
+
function App() {
|
|
32
|
+
return (
|
|
33
|
+
<I18nProvider config={{ defaultLanguage: 'en' }}>
|
|
34
|
+
<MyComponent />
|
|
35
|
+
</I18nProvider>
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function MyComponent() {
|
|
40
|
+
const { t, language, changeLanguage, direction } = useObjectTranslation();
|
|
41
|
+
|
|
42
|
+
return (
|
|
43
|
+
<div dir={direction}>
|
|
44
|
+
<h1>{t('common.save')}</h1>
|
|
45
|
+
<button onClick={() => changeLanguage('zh')}>中文</button>
|
|
46
|
+
<button onClick={() => changeLanguage('ar')}>العربية</button>
|
|
47
|
+
</div>
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## API
|
|
53
|
+
|
|
54
|
+
### I18nProvider
|
|
55
|
+
|
|
56
|
+
Wraps your application with i18n context:
|
|
57
|
+
|
|
58
|
+
```tsx
|
|
59
|
+
<I18nProvider config={{ defaultLanguage: 'en', fallbackLanguage: 'en' }}>
|
|
60
|
+
<App />
|
|
61
|
+
</I18nProvider>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### useObjectTranslation
|
|
65
|
+
|
|
66
|
+
Hook for translations and language management:
|
|
67
|
+
|
|
68
|
+
```tsx
|
|
69
|
+
const { t, language, changeLanguage, direction } = useObjectTranslation();
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### createI18n
|
|
73
|
+
|
|
74
|
+
Factory for creating an i18n instance outside React:
|
|
75
|
+
|
|
76
|
+
```tsx
|
|
77
|
+
import { createI18n } from '@object-ui/i18n';
|
|
78
|
+
|
|
79
|
+
const i18n = createI18n({ defaultLanguage: 'de' });
|
|
80
|
+
i18n.t('common.cancel'); // "Abbrechen"
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Formatting Utilities
|
|
84
|
+
|
|
85
|
+
Locale-aware formatting functions:
|
|
86
|
+
|
|
87
|
+
```tsx
|
|
88
|
+
import { formatDate, formatCurrency, formatNumber, formatRelativeTime } from '@object-ui/i18n';
|
|
89
|
+
|
|
90
|
+
formatDate(new Date(), 'en'); // "Jan 1, 2025"
|
|
91
|
+
formatCurrency(99.99, 'USD', 'en'); // "$99.99"
|
|
92
|
+
formatNumber(1234567, 'de'); // "1.234.567"
|
|
93
|
+
formatRelativeTime(-3, 'days', 'en'); // "3 days ago"
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Built-in Locales
|
|
97
|
+
|
|
98
|
+
Import individual locale packs:
|
|
99
|
+
|
|
100
|
+
```tsx
|
|
101
|
+
import { en, zh, ja, ko, de, fr, es, pt, ru, ar } from '@object-ui/i18n';
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### RTL Helpers
|
|
105
|
+
|
|
106
|
+
```tsx
|
|
107
|
+
import { isRTL, RTL_LANGUAGES } from '@object-ui/i18n';
|
|
108
|
+
|
|
109
|
+
isRTL('ar'); // true
|
|
110
|
+
isRTL('en'); // false
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## License
|
|
114
|
+
|
|
115
|
+
MIT
|
package/dist/index.d.ts
CHANGED
|
@@ -44,3 +44,4 @@ export { default as pt } from './locales/pt';
|
|
|
44
44
|
export { default as ru } from './locales/ru';
|
|
45
45
|
export { default as ar } from './locales/ar';
|
|
46
46
|
export { formatDate, formatDateTime, formatRelativeTime, formatCurrency, formatNumber, type DateFormatOptions, type CurrencyFormatOptions, type NumberFormatOptions, } from './utils/index';
|
|
47
|
+
export { resolvePlural, formatDateSpec, formatNumberSpec, applyLocaleConfig, type SpecPluralRule, type SpecDateFormat, type SpecNumberFormat, type SpecLocaleConfig, } from './utils/index';
|
package/dist/index.js
CHANGED
|
@@ -48,3 +48,5 @@ export { default as ru } from './locales/ru';
|
|
|
48
48
|
export { default as ar } from './locales/ar';
|
|
49
49
|
// Formatting utilities
|
|
50
50
|
export { formatDate, formatDateTime, formatRelativeTime, formatCurrency, formatNumber, } from './utils/index';
|
|
51
|
+
// Spec-aligned formatters (v2.0.7)
|
|
52
|
+
export { resolvePlural, formatDateSpec, formatNumberSpec, applyLocaleConfig, } from './utils/index';
|
package/dist/locales/ar.d.ts
CHANGED
|
@@ -99,6 +99,79 @@ declare const ar: {
|
|
|
99
99
|
readonly saveLayout: "حفظ التخطيط";
|
|
100
100
|
readonly resetLayout: "إعادة تعيين التخطيط";
|
|
101
101
|
};
|
|
102
|
+
readonly console: {
|
|
103
|
+
readonly title: "وحدة تحكم ObjectStack";
|
|
104
|
+
readonly initializing: "جاري تهيئة التطبيق...";
|
|
105
|
+
readonly loadingSteps: {
|
|
106
|
+
readonly connecting: "جاري الاتصال بمصدر البيانات";
|
|
107
|
+
readonly loadingConfig: "جاري تحميل الإعدادات";
|
|
108
|
+
readonly preparingWorkspace: "جاري تجهيز مساحة العمل";
|
|
109
|
+
};
|
|
110
|
+
readonly shortcuts: {
|
|
111
|
+
readonly title: "اختصارات لوحة المفاتيح";
|
|
112
|
+
readonly description: "مرجع سريع لجميع اختصارات لوحة المفاتيح المتاحة.";
|
|
113
|
+
readonly groups: {
|
|
114
|
+
readonly general: "عام";
|
|
115
|
+
readonly navigation: "التنقل";
|
|
116
|
+
readonly dataViews: "عروض البيانات";
|
|
117
|
+
readonly preferences: "التفضيلات";
|
|
118
|
+
};
|
|
119
|
+
readonly openCommandPalette: "فتح لوحة الأوامر";
|
|
120
|
+
readonly showShortcuts: "عرض اختصارات لوحة المفاتيح";
|
|
121
|
+
readonly closeDialog: "إغلاق النافذة / اللوحة";
|
|
122
|
+
readonly toggleSidebar: "تبديل الشريط الجانبي";
|
|
123
|
+
readonly focusSearch: "التركيز على البحث";
|
|
124
|
+
readonly createRecord: "إنشاء سجل جديد";
|
|
125
|
+
readonly refreshData: "تحديث البيانات";
|
|
126
|
+
readonly editRecord: "تعديل السجل المحدد";
|
|
127
|
+
readonly toggleDarkMode: "تبديل الوضع الداكن";
|
|
128
|
+
};
|
|
129
|
+
readonly commandPalette: {
|
|
130
|
+
readonly placeholder: "اكتب أمراً أو ابحث...";
|
|
131
|
+
readonly noResults: "لم يتم العثور على نتائج.";
|
|
132
|
+
readonly objects: "الكائنات";
|
|
133
|
+
readonly dashboards: "لوحات المعلومات";
|
|
134
|
+
readonly pages: "الصفحات";
|
|
135
|
+
readonly reports: "التقارير";
|
|
136
|
+
readonly switchApp: "تبديل التطبيق";
|
|
137
|
+
readonly current: "الحالي";
|
|
138
|
+
readonly preferences: "التفضيلات";
|
|
139
|
+
readonly lightTheme: "المظهر الفاتح";
|
|
140
|
+
readonly darkTheme: "المظهر الداكن";
|
|
141
|
+
readonly systemTheme: "مظهر النظام";
|
|
142
|
+
readonly actions: "الإجراءات";
|
|
143
|
+
readonly openFullSearch: "فتح صفحة البحث الكاملة";
|
|
144
|
+
};
|
|
145
|
+
readonly errors: {
|
|
146
|
+
readonly somethingWentWrong: "حدث خطأ ما";
|
|
147
|
+
readonly unexpectedError: "حدث خطأ غير متوقع أثناء عرض هذا المحتوى.";
|
|
148
|
+
readonly tryAgain: "إعادة المحاولة";
|
|
149
|
+
readonly goHome: "العودة للرئيسية";
|
|
150
|
+
readonly errorDetails: "تفاصيل الخطأ (وضع التطوير فقط)";
|
|
151
|
+
};
|
|
152
|
+
readonly theme: {
|
|
153
|
+
readonly toggle: "تبديل المظهر";
|
|
154
|
+
readonly light: "فاتح";
|
|
155
|
+
readonly dark: "داكن";
|
|
156
|
+
readonly system: "النظام";
|
|
157
|
+
};
|
|
158
|
+
readonly objectView: {
|
|
159
|
+
readonly objectNotFound: "الكائن غير موجود";
|
|
160
|
+
readonly objectNotFoundDescription: "الكائن \"{{objectName}}\" غير موجود في الإعدادات الحالية.";
|
|
161
|
+
readonly objectNotFoundHint: "تحقق من إعدادات التنقل في تطبيقك أو اختر كائنًا آخر من الشريط الجانبي.";
|
|
162
|
+
readonly allRecords: "جميع السجلات";
|
|
163
|
+
readonly exitDesignMode: "الخروج من وضع التصميم";
|
|
164
|
+
readonly enterDesignMode: "الدخول إلى وضع التصميم";
|
|
165
|
+
readonly metadataInspector: "مفتش البيانات الوصفية";
|
|
166
|
+
readonly editView: "تعديل العرض";
|
|
167
|
+
readonly addView: "إضافة عرض";
|
|
168
|
+
readonly designTools: "أدوات التصميم";
|
|
169
|
+
readonly new: "جديد";
|
|
170
|
+
};
|
|
171
|
+
readonly localeSwitcher: {
|
|
172
|
+
readonly label: "اللغة";
|
|
173
|
+
};
|
|
174
|
+
};
|
|
102
175
|
readonly errors: {
|
|
103
176
|
readonly networkError: "خطأ في الشبكة. يرجى التحقق من اتصالك.";
|
|
104
177
|
readonly serverError: "خطأ في الخادم. يرجى المحاولة مرة أخرى لاحقاً.";
|
package/dist/locales/ar.js
CHANGED
|
@@ -99,6 +99,74 @@ const ar = {
|
|
|
99
99
|
saveLayout: 'حفظ التخطيط',
|
|
100
100
|
resetLayout: 'إعادة تعيين التخطيط',
|
|
101
101
|
},
|
|
102
|
+
console: {
|
|
103
|
+
title: 'وحدة تحكم ObjectStack',
|
|
104
|
+
initializing: 'جاري تهيئة التطبيق...',
|
|
105
|
+
loadingSteps: {
|
|
106
|
+
connecting: 'جاري الاتصال بمصدر البيانات',
|
|
107
|
+
loadingConfig: 'جاري تحميل الإعدادات',
|
|
108
|
+
preparingWorkspace: 'جاري تجهيز مساحة العمل',
|
|
109
|
+
},
|
|
110
|
+
shortcuts: {
|
|
111
|
+
title: 'اختصارات لوحة المفاتيح',
|
|
112
|
+
description: 'مرجع سريع لجميع اختصارات لوحة المفاتيح المتاحة.',
|
|
113
|
+
groups: { general: 'عام', navigation: 'التنقل', dataViews: 'عروض البيانات', preferences: 'التفضيلات' },
|
|
114
|
+
openCommandPalette: 'فتح لوحة الأوامر',
|
|
115
|
+
showShortcuts: 'عرض اختصارات لوحة المفاتيح',
|
|
116
|
+
closeDialog: 'إغلاق النافذة / اللوحة',
|
|
117
|
+
toggleSidebar: 'تبديل الشريط الجانبي',
|
|
118
|
+
focusSearch: 'التركيز على البحث',
|
|
119
|
+
createRecord: 'إنشاء سجل جديد',
|
|
120
|
+
refreshData: 'تحديث البيانات',
|
|
121
|
+
editRecord: 'تعديل السجل المحدد',
|
|
122
|
+
toggleDarkMode: 'تبديل الوضع الداكن',
|
|
123
|
+
},
|
|
124
|
+
commandPalette: {
|
|
125
|
+
placeholder: 'اكتب أمراً أو ابحث...',
|
|
126
|
+
noResults: 'لم يتم العثور على نتائج.',
|
|
127
|
+
objects: 'الكائنات',
|
|
128
|
+
dashboards: 'لوحات المعلومات',
|
|
129
|
+
pages: 'الصفحات',
|
|
130
|
+
reports: 'التقارير',
|
|
131
|
+
switchApp: 'تبديل التطبيق',
|
|
132
|
+
current: 'الحالي',
|
|
133
|
+
preferences: 'التفضيلات',
|
|
134
|
+
lightTheme: 'المظهر الفاتح',
|
|
135
|
+
darkTheme: 'المظهر الداكن',
|
|
136
|
+
systemTheme: 'مظهر النظام',
|
|
137
|
+
actions: 'الإجراءات',
|
|
138
|
+
openFullSearch: 'فتح صفحة البحث الكاملة',
|
|
139
|
+
},
|
|
140
|
+
errors: {
|
|
141
|
+
somethingWentWrong: 'حدث خطأ ما',
|
|
142
|
+
unexpectedError: 'حدث خطأ غير متوقع أثناء عرض هذا المحتوى.',
|
|
143
|
+
tryAgain: 'إعادة المحاولة',
|
|
144
|
+
goHome: 'العودة للرئيسية',
|
|
145
|
+
errorDetails: 'تفاصيل الخطأ (وضع التطوير فقط)',
|
|
146
|
+
},
|
|
147
|
+
theme: {
|
|
148
|
+
toggle: 'تبديل المظهر',
|
|
149
|
+
light: 'فاتح',
|
|
150
|
+
dark: 'داكن',
|
|
151
|
+
system: 'النظام',
|
|
152
|
+
},
|
|
153
|
+
objectView: {
|
|
154
|
+
objectNotFound: 'الكائن غير موجود',
|
|
155
|
+
objectNotFoundDescription: 'الكائن "{{objectName}}" غير موجود في الإعدادات الحالية.',
|
|
156
|
+
objectNotFoundHint: 'تحقق من إعدادات التنقل في تطبيقك أو اختر كائنًا آخر من الشريط الجانبي.',
|
|
157
|
+
allRecords: 'جميع السجلات',
|
|
158
|
+
exitDesignMode: 'الخروج من وضع التصميم',
|
|
159
|
+
enterDesignMode: 'الدخول إلى وضع التصميم',
|
|
160
|
+
metadataInspector: 'مفتش البيانات الوصفية',
|
|
161
|
+
editView: 'تعديل العرض',
|
|
162
|
+
addView: 'إضافة عرض',
|
|
163
|
+
designTools: 'أدوات التصميم',
|
|
164
|
+
new: 'جديد',
|
|
165
|
+
},
|
|
166
|
+
localeSwitcher: {
|
|
167
|
+
label: 'اللغة',
|
|
168
|
+
},
|
|
169
|
+
},
|
|
102
170
|
errors: {
|
|
103
171
|
networkError: 'خطأ في الشبكة. يرجى التحقق من اتصالك.',
|
|
104
172
|
serverError: 'خطأ في الخادم. يرجى المحاولة مرة أخرى لاحقاً.',
|
package/dist/locales/de.d.ts
CHANGED
|
@@ -98,6 +98,79 @@ declare const de: {
|
|
|
98
98
|
readonly saveLayout: "Layout speichern";
|
|
99
99
|
readonly resetLayout: "Layout zurücksetzen";
|
|
100
100
|
};
|
|
101
|
+
readonly console: {
|
|
102
|
+
readonly title: "ObjectStack Konsole";
|
|
103
|
+
readonly initializing: "Anwendung wird initialisiert...";
|
|
104
|
+
readonly loadingSteps: {
|
|
105
|
+
readonly connecting: "Verbindung zur Datenquelle herstellen";
|
|
106
|
+
readonly loadingConfig: "Konfiguration laden";
|
|
107
|
+
readonly preparingWorkspace: "Arbeitsbereich vorbereiten";
|
|
108
|
+
};
|
|
109
|
+
readonly shortcuts: {
|
|
110
|
+
readonly title: "Tastenkürzel";
|
|
111
|
+
readonly description: "Kurzreferenz für alle verfügbaren Tastenkürzel.";
|
|
112
|
+
readonly groups: {
|
|
113
|
+
readonly general: "Allgemein";
|
|
114
|
+
readonly navigation: "Navigation";
|
|
115
|
+
readonly dataViews: "Datenansichten";
|
|
116
|
+
readonly preferences: "Einstellungen";
|
|
117
|
+
};
|
|
118
|
+
readonly openCommandPalette: "Befehlspalette öffnen";
|
|
119
|
+
readonly showShortcuts: "Tastenkürzel anzeigen";
|
|
120
|
+
readonly closeDialog: "Dialog / Panel schließen";
|
|
121
|
+
readonly toggleSidebar: "Seitenleiste umschalten";
|
|
122
|
+
readonly focusSearch: "Suche fokussieren";
|
|
123
|
+
readonly createRecord: "Neuen Datensatz erstellen";
|
|
124
|
+
readonly refreshData: "Daten aktualisieren";
|
|
125
|
+
readonly editRecord: "Ausgewählten Datensatz bearbeiten";
|
|
126
|
+
readonly toggleDarkMode: "Dunkelmodus umschalten";
|
|
127
|
+
};
|
|
128
|
+
readonly commandPalette: {
|
|
129
|
+
readonly placeholder: "Befehl eingeben oder suchen...";
|
|
130
|
+
readonly noResults: "Keine Ergebnisse gefunden.";
|
|
131
|
+
readonly objects: "Objekte";
|
|
132
|
+
readonly dashboards: "Dashboards";
|
|
133
|
+
readonly pages: "Seiten";
|
|
134
|
+
readonly reports: "Berichte";
|
|
135
|
+
readonly switchApp: "App wechseln";
|
|
136
|
+
readonly current: "Aktuell";
|
|
137
|
+
readonly preferences: "Einstellungen";
|
|
138
|
+
readonly lightTheme: "Helles Design";
|
|
139
|
+
readonly darkTheme: "Dunkles Design";
|
|
140
|
+
readonly systemTheme: "Systemdesign";
|
|
141
|
+
readonly actions: "Aktionen";
|
|
142
|
+
readonly openFullSearch: "Vollständige Suchseite öffnen";
|
|
143
|
+
};
|
|
144
|
+
readonly errors: {
|
|
145
|
+
readonly somethingWentWrong: "Etwas ist schiefgelaufen";
|
|
146
|
+
readonly unexpectedError: "Beim Rendern dieser Ansicht ist ein unerwarteter Fehler aufgetreten.";
|
|
147
|
+
readonly tryAgain: "Erneut versuchen";
|
|
148
|
+
readonly goHome: "Zur Startseite";
|
|
149
|
+
readonly errorDetails: "Fehlerdetails (nur Entwicklung)";
|
|
150
|
+
};
|
|
151
|
+
readonly theme: {
|
|
152
|
+
readonly toggle: "Design umschalten";
|
|
153
|
+
readonly light: "Hell";
|
|
154
|
+
readonly dark: "Dunkel";
|
|
155
|
+
readonly system: "System";
|
|
156
|
+
};
|
|
157
|
+
readonly objectView: {
|
|
158
|
+
readonly objectNotFound: "Objekt nicht gefunden";
|
|
159
|
+
readonly objectNotFoundDescription: "Das Objekt „{{objectName}}\" existiert in der aktuellen Konfiguration nicht.";
|
|
160
|
+
readonly objectNotFoundHint: "Überprüfen Sie Ihre App-Navigationseinstellungen oder wählen Sie ein anderes Objekt aus der Seitenleiste.";
|
|
161
|
+
readonly allRecords: "Alle Datensätze";
|
|
162
|
+
readonly exitDesignMode: "Designmodus beenden";
|
|
163
|
+
readonly enterDesignMode: "Designmodus starten";
|
|
164
|
+
readonly metadataInspector: "Metadaten-Inspektor";
|
|
165
|
+
readonly editView: "Ansicht bearbeiten";
|
|
166
|
+
readonly addView: "Ansicht hinzufügen";
|
|
167
|
+
readonly designTools: "Design-Werkzeuge";
|
|
168
|
+
readonly new: "Neu";
|
|
169
|
+
};
|
|
170
|
+
readonly localeSwitcher: {
|
|
171
|
+
readonly label: "Sprache";
|
|
172
|
+
};
|
|
173
|
+
};
|
|
101
174
|
readonly errors: {
|
|
102
175
|
readonly networkError: "Netzwerkfehler. Bitte überprüfen Sie Ihre Verbindung.";
|
|
103
176
|
readonly serverError: "Serverfehler. Bitte versuchen Sie es später erneut.";
|
package/dist/locales/de.js
CHANGED
|
@@ -98,6 +98,79 @@ const de = {
|
|
|
98
98
|
saveLayout: 'Layout speichern',
|
|
99
99
|
resetLayout: 'Layout zurücksetzen',
|
|
100
100
|
},
|
|
101
|
+
console: {
|
|
102
|
+
title: 'ObjectStack Konsole',
|
|
103
|
+
initializing: 'Anwendung wird initialisiert...',
|
|
104
|
+
loadingSteps: {
|
|
105
|
+
connecting: 'Verbindung zur Datenquelle herstellen',
|
|
106
|
+
loadingConfig: 'Konfiguration laden',
|
|
107
|
+
preparingWorkspace: 'Arbeitsbereich vorbereiten',
|
|
108
|
+
},
|
|
109
|
+
shortcuts: {
|
|
110
|
+
title: 'Tastenkürzel',
|
|
111
|
+
description: 'Kurzreferenz für alle verfügbaren Tastenkürzel.',
|
|
112
|
+
groups: {
|
|
113
|
+
general: 'Allgemein',
|
|
114
|
+
navigation: 'Navigation',
|
|
115
|
+
dataViews: 'Datenansichten',
|
|
116
|
+
preferences: 'Einstellungen',
|
|
117
|
+
},
|
|
118
|
+
openCommandPalette: 'Befehlspalette öffnen',
|
|
119
|
+
showShortcuts: 'Tastenkürzel anzeigen',
|
|
120
|
+
closeDialog: 'Dialog / Panel schließen',
|
|
121
|
+
toggleSidebar: 'Seitenleiste umschalten',
|
|
122
|
+
focusSearch: 'Suche fokussieren',
|
|
123
|
+
createRecord: 'Neuen Datensatz erstellen',
|
|
124
|
+
refreshData: 'Daten aktualisieren',
|
|
125
|
+
editRecord: 'Ausgewählten Datensatz bearbeiten',
|
|
126
|
+
toggleDarkMode: 'Dunkelmodus umschalten',
|
|
127
|
+
},
|
|
128
|
+
commandPalette: {
|
|
129
|
+
placeholder: 'Befehl eingeben oder suchen...',
|
|
130
|
+
noResults: 'Keine Ergebnisse gefunden.',
|
|
131
|
+
objects: 'Objekte',
|
|
132
|
+
dashboards: 'Dashboards',
|
|
133
|
+
pages: 'Seiten',
|
|
134
|
+
reports: 'Berichte',
|
|
135
|
+
switchApp: 'App wechseln',
|
|
136
|
+
current: 'Aktuell',
|
|
137
|
+
preferences: 'Einstellungen',
|
|
138
|
+
lightTheme: 'Helles Design',
|
|
139
|
+
darkTheme: 'Dunkles Design',
|
|
140
|
+
systemTheme: 'Systemdesign',
|
|
141
|
+
actions: 'Aktionen',
|
|
142
|
+
openFullSearch: 'Vollständige Suchseite öffnen',
|
|
143
|
+
},
|
|
144
|
+
errors: {
|
|
145
|
+
somethingWentWrong: 'Etwas ist schiefgelaufen',
|
|
146
|
+
unexpectedError: 'Beim Rendern dieser Ansicht ist ein unerwarteter Fehler aufgetreten.',
|
|
147
|
+
tryAgain: 'Erneut versuchen',
|
|
148
|
+
goHome: 'Zur Startseite',
|
|
149
|
+
errorDetails: 'Fehlerdetails (nur Entwicklung)',
|
|
150
|
+
},
|
|
151
|
+
theme: {
|
|
152
|
+
toggle: 'Design umschalten',
|
|
153
|
+
light: 'Hell',
|
|
154
|
+
dark: 'Dunkel',
|
|
155
|
+
system: 'System',
|
|
156
|
+
},
|
|
157
|
+
objectView: {
|
|
158
|
+
objectNotFound: 'Objekt nicht gefunden',
|
|
159
|
+
objectNotFoundDescription: 'Das Objekt „{{objectName}}" existiert in der aktuellen Konfiguration nicht.',
|
|
160
|
+
objectNotFoundHint: 'Überprüfen Sie Ihre App-Navigationseinstellungen oder wählen Sie ein anderes Objekt aus der Seitenleiste.',
|
|
161
|
+
allRecords: 'Alle Datensätze',
|
|
162
|
+
exitDesignMode: 'Designmodus beenden',
|
|
163
|
+
enterDesignMode: 'Designmodus starten',
|
|
164
|
+
metadataInspector: 'Metadaten-Inspektor',
|
|
165
|
+
editView: 'Ansicht bearbeiten',
|
|
166
|
+
addView: 'Ansicht hinzufügen',
|
|
167
|
+
designTools: 'Design-Werkzeuge',
|
|
168
|
+
new: 'Neu',
|
|
169
|
+
},
|
|
170
|
+
localeSwitcher: {
|
|
171
|
+
label: 'Sprache',
|
|
172
|
+
},
|
|
173
|
+
},
|
|
101
174
|
errors: {
|
|
102
175
|
networkError: 'Netzwerkfehler. Bitte überprüfen Sie Ihre Verbindung.',
|
|
103
176
|
serverError: 'Serverfehler. Bitte versuchen Sie es später erneut.',
|
package/dist/locales/en.d.ts
CHANGED
|
@@ -98,6 +98,79 @@ declare const en: {
|
|
|
98
98
|
readonly saveLayout: "Save layout";
|
|
99
99
|
readonly resetLayout: "Reset layout";
|
|
100
100
|
};
|
|
101
|
+
readonly console: {
|
|
102
|
+
readonly title: "ObjectStack Console";
|
|
103
|
+
readonly initializing: "Initializing application...";
|
|
104
|
+
readonly loadingSteps: {
|
|
105
|
+
readonly connecting: "Connecting to data source";
|
|
106
|
+
readonly loadingConfig: "Loading configuration";
|
|
107
|
+
readonly preparingWorkspace: "Preparing workspace";
|
|
108
|
+
};
|
|
109
|
+
readonly shortcuts: {
|
|
110
|
+
readonly title: "Keyboard Shortcuts";
|
|
111
|
+
readonly description: "Quick reference for all available keyboard shortcuts.";
|
|
112
|
+
readonly groups: {
|
|
113
|
+
readonly general: "General";
|
|
114
|
+
readonly navigation: "Navigation";
|
|
115
|
+
readonly dataViews: "Data Views";
|
|
116
|
+
readonly preferences: "Preferences";
|
|
117
|
+
};
|
|
118
|
+
readonly openCommandPalette: "Open command palette";
|
|
119
|
+
readonly showShortcuts: "Show keyboard shortcuts";
|
|
120
|
+
readonly closeDialog: "Close dialog / panel";
|
|
121
|
+
readonly toggleSidebar: "Toggle sidebar";
|
|
122
|
+
readonly focusSearch: "Focus search";
|
|
123
|
+
readonly createRecord: "Create new record";
|
|
124
|
+
readonly refreshData: "Refresh data";
|
|
125
|
+
readonly editRecord: "Edit selected record";
|
|
126
|
+
readonly toggleDarkMode: "Toggle dark mode";
|
|
127
|
+
};
|
|
128
|
+
readonly commandPalette: {
|
|
129
|
+
readonly placeholder: "Type a command or search...";
|
|
130
|
+
readonly noResults: "No results found.";
|
|
131
|
+
readonly objects: "Objects";
|
|
132
|
+
readonly dashboards: "Dashboards";
|
|
133
|
+
readonly pages: "Pages";
|
|
134
|
+
readonly reports: "Reports";
|
|
135
|
+
readonly switchApp: "Switch App";
|
|
136
|
+
readonly current: "Current";
|
|
137
|
+
readonly preferences: "Preferences";
|
|
138
|
+
readonly lightTheme: "Light Theme";
|
|
139
|
+
readonly darkTheme: "Dark Theme";
|
|
140
|
+
readonly systemTheme: "System Theme";
|
|
141
|
+
readonly actions: "Actions";
|
|
142
|
+
readonly openFullSearch: "Open Full Search Page";
|
|
143
|
+
};
|
|
144
|
+
readonly errors: {
|
|
145
|
+
readonly somethingWentWrong: "Something went wrong";
|
|
146
|
+
readonly unexpectedError: "An unexpected error occurred while rendering this view.";
|
|
147
|
+
readonly tryAgain: "Try Again";
|
|
148
|
+
readonly goHome: "Go Home";
|
|
149
|
+
readonly errorDetails: "Error Details (dev only)";
|
|
150
|
+
};
|
|
151
|
+
readonly theme: {
|
|
152
|
+
readonly toggle: "Toggle theme";
|
|
153
|
+
readonly light: "Light";
|
|
154
|
+
readonly dark: "Dark";
|
|
155
|
+
readonly system: "System";
|
|
156
|
+
};
|
|
157
|
+
readonly objectView: {
|
|
158
|
+
readonly objectNotFound: "Object Not Found";
|
|
159
|
+
readonly objectNotFoundDescription: "The object \"{{objectName}}\" does not exist in the current configuration.";
|
|
160
|
+
readonly objectNotFoundHint: "Check your app navigation settings or select a different object from the sidebar.";
|
|
161
|
+
readonly allRecords: "All Records";
|
|
162
|
+
readonly exitDesignMode: "Exit Design Mode";
|
|
163
|
+
readonly enterDesignMode: "Enter Design Mode";
|
|
164
|
+
readonly metadataInspector: "Metadata Inspector";
|
|
165
|
+
readonly editView: "Edit View";
|
|
166
|
+
readonly addView: "Add View";
|
|
167
|
+
readonly designTools: "Design tools";
|
|
168
|
+
readonly new: "New";
|
|
169
|
+
};
|
|
170
|
+
readonly localeSwitcher: {
|
|
171
|
+
readonly label: "Language";
|
|
172
|
+
};
|
|
173
|
+
};
|
|
101
174
|
readonly errors: {
|
|
102
175
|
readonly networkError: "Network error. Please check your connection.";
|
|
103
176
|
readonly serverError: "Server error. Please try again later.";
|
package/dist/locales/en.js
CHANGED
|
@@ -98,6 +98,79 @@ const en = {
|
|
|
98
98
|
saveLayout: 'Save layout',
|
|
99
99
|
resetLayout: 'Reset layout',
|
|
100
100
|
},
|
|
101
|
+
console: {
|
|
102
|
+
title: 'ObjectStack Console',
|
|
103
|
+
initializing: 'Initializing application...',
|
|
104
|
+
loadingSteps: {
|
|
105
|
+
connecting: 'Connecting to data source',
|
|
106
|
+
loadingConfig: 'Loading configuration',
|
|
107
|
+
preparingWorkspace: 'Preparing workspace',
|
|
108
|
+
},
|
|
109
|
+
shortcuts: {
|
|
110
|
+
title: 'Keyboard Shortcuts',
|
|
111
|
+
description: 'Quick reference for all available keyboard shortcuts.',
|
|
112
|
+
groups: {
|
|
113
|
+
general: 'General',
|
|
114
|
+
navigation: 'Navigation',
|
|
115
|
+
dataViews: 'Data Views',
|
|
116
|
+
preferences: 'Preferences',
|
|
117
|
+
},
|
|
118
|
+
openCommandPalette: 'Open command palette',
|
|
119
|
+
showShortcuts: 'Show keyboard shortcuts',
|
|
120
|
+
closeDialog: 'Close dialog / panel',
|
|
121
|
+
toggleSidebar: 'Toggle sidebar',
|
|
122
|
+
focusSearch: 'Focus search',
|
|
123
|
+
createRecord: 'Create new record',
|
|
124
|
+
refreshData: 'Refresh data',
|
|
125
|
+
editRecord: 'Edit selected record',
|
|
126
|
+
toggleDarkMode: 'Toggle dark mode',
|
|
127
|
+
},
|
|
128
|
+
commandPalette: {
|
|
129
|
+
placeholder: 'Type a command or search...',
|
|
130
|
+
noResults: 'No results found.',
|
|
131
|
+
objects: 'Objects',
|
|
132
|
+
dashboards: 'Dashboards',
|
|
133
|
+
pages: 'Pages',
|
|
134
|
+
reports: 'Reports',
|
|
135
|
+
switchApp: 'Switch App',
|
|
136
|
+
current: 'Current',
|
|
137
|
+
preferences: 'Preferences',
|
|
138
|
+
lightTheme: 'Light Theme',
|
|
139
|
+
darkTheme: 'Dark Theme',
|
|
140
|
+
systemTheme: 'System Theme',
|
|
141
|
+
actions: 'Actions',
|
|
142
|
+
openFullSearch: 'Open Full Search Page',
|
|
143
|
+
},
|
|
144
|
+
errors: {
|
|
145
|
+
somethingWentWrong: 'Something went wrong',
|
|
146
|
+
unexpectedError: 'An unexpected error occurred while rendering this view.',
|
|
147
|
+
tryAgain: 'Try Again',
|
|
148
|
+
goHome: 'Go Home',
|
|
149
|
+
errorDetails: 'Error Details (dev only)',
|
|
150
|
+
},
|
|
151
|
+
theme: {
|
|
152
|
+
toggle: 'Toggle theme',
|
|
153
|
+
light: 'Light',
|
|
154
|
+
dark: 'Dark',
|
|
155
|
+
system: 'System',
|
|
156
|
+
},
|
|
157
|
+
objectView: {
|
|
158
|
+
objectNotFound: 'Object Not Found',
|
|
159
|
+
objectNotFoundDescription: 'The object "{{objectName}}" does not exist in the current configuration.',
|
|
160
|
+
objectNotFoundHint: 'Check your app navigation settings or select a different object from the sidebar.',
|
|
161
|
+
allRecords: 'All Records',
|
|
162
|
+
exitDesignMode: 'Exit Design Mode',
|
|
163
|
+
enterDesignMode: 'Enter Design Mode',
|
|
164
|
+
metadataInspector: 'Metadata Inspector',
|
|
165
|
+
editView: 'Edit View',
|
|
166
|
+
addView: 'Add View',
|
|
167
|
+
designTools: 'Design tools',
|
|
168
|
+
new: 'New',
|
|
169
|
+
},
|
|
170
|
+
localeSwitcher: {
|
|
171
|
+
label: 'Language',
|
|
172
|
+
},
|
|
173
|
+
},
|
|
101
174
|
errors: {
|
|
102
175
|
networkError: 'Network error. Please check your connection.',
|
|
103
176
|
serverError: 'Server error. Please try again later.',
|