@object-ui/i18n 0.5.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.
- package/.turbo/turbo-build.log +4 -0
- package/LICENSE +21 -0
- package/dist/i18n.d.ts +36 -0
- package/dist/i18n.js +62 -0
- package/dist/index.d.ts +46 -0
- package/dist/index.js +50 -0
- package/dist/locales/ar.d.ts +112 -0
- package/dist/locales/ar.js +112 -0
- package/dist/locales/de.d.ts +111 -0
- package/dist/locales/de.js +111 -0
- package/dist/locales/en.d.ts +112 -0
- package/dist/locales/en.js +111 -0
- package/dist/locales/es.d.ts +111 -0
- package/dist/locales/es.js +111 -0
- package/dist/locales/fr.d.ts +111 -0
- package/dist/locales/fr.js +111 -0
- package/dist/locales/index.d.ts +1094 -0
- package/dist/locales/index.js +38 -0
- package/dist/locales/ja.d.ts +111 -0
- package/dist/locales/ja.js +111 -0
- package/dist/locales/ko.d.ts +111 -0
- package/dist/locales/ko.js +111 -0
- package/dist/locales/pt.d.ts +111 -0
- package/dist/locales/pt.js +111 -0
- package/dist/locales/ru.d.ts +111 -0
- package/dist/locales/ru.js +111 -0
- package/dist/locales/zh.d.ts +111 -0
- package/dist/locales/zh.js +111 -0
- package/dist/provider.d.ts +65 -0
- package/dist/provider.js +84 -0
- package/dist/utils/formatting.d.ts +45 -0
- package/dist/utils/formatting.js +86 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/package.json +48 -0
- package/src/__tests__/i18n.test.ts +228 -0
- package/src/i18n.ts +98 -0
- package/src/index.ts +63 -0
- package/src/locales/ar.ts +113 -0
- package/src/locales/de.ts +112 -0
- package/src/locales/en.ts +113 -0
- package/src/locales/es.ts +112 -0
- package/src/locales/fr.ts +112 -0
- package/src/locales/index.ts +42 -0
- package/src/locales/ja.ts +112 -0
- package/src/locales/ko.ts +112 -0
- package/src/locales/pt.ts +112 -0
- package/src/locales/ru.ts +112 -0
- package/src/locales/zh.ts +112 -0
- package/src/provider.tsx +125 -0
- package/src/utils/formatting.ts +136 -0
- package/src/utils/index.ts +10 -0
- package/tsconfig.json +12 -0
- package/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* العربية (ar) - Arabic language pack for Object UI
|
|
3
|
+
* Note: Arabic is an RTL (Right-to-Left) language
|
|
4
|
+
*/
|
|
5
|
+
const ar = {
|
|
6
|
+
common: {
|
|
7
|
+
loading: 'جاري التحميل...',
|
|
8
|
+
save: 'حفظ',
|
|
9
|
+
cancel: 'إلغاء',
|
|
10
|
+
delete: 'حذف',
|
|
11
|
+
edit: 'تعديل',
|
|
12
|
+
create: 'إنشاء',
|
|
13
|
+
search: 'بحث',
|
|
14
|
+
filter: 'تصفية',
|
|
15
|
+
reset: 'إعادة تعيين',
|
|
16
|
+
confirm: 'تأكيد',
|
|
17
|
+
close: 'إغلاق',
|
|
18
|
+
back: 'رجوع',
|
|
19
|
+
next: 'التالي',
|
|
20
|
+
previous: 'السابق',
|
|
21
|
+
submit: 'إرسال',
|
|
22
|
+
refresh: 'تحديث',
|
|
23
|
+
export: 'تصدير',
|
|
24
|
+
import: 'استيراد',
|
|
25
|
+
yes: 'نعم',
|
|
26
|
+
no: 'لا',
|
|
27
|
+
ok: 'موافق',
|
|
28
|
+
actions: 'إجراءات',
|
|
29
|
+
more: 'المزيد',
|
|
30
|
+
selectAll: 'تحديد الكل',
|
|
31
|
+
clearAll: 'مسح الكل',
|
|
32
|
+
noData: 'لا توجد بيانات',
|
|
33
|
+
noResults: 'لم يتم العثور على نتائج',
|
|
34
|
+
required: 'مطلوب',
|
|
35
|
+
optional: 'اختياري',
|
|
36
|
+
},
|
|
37
|
+
validation: {
|
|
38
|
+
required: '{{field}} مطلوب',
|
|
39
|
+
minLength: '{{field}} يجب أن يكون {{min}} حرفاً على الأقل',
|
|
40
|
+
maxLength: '{{field}} يجب ألا يتجاوز {{max}} حرفاً',
|
|
41
|
+
min: '{{field}} يجب أن يكون {{min}} على الأقل',
|
|
42
|
+
max: '{{field}} يجب ألا يتجاوز {{max}}',
|
|
43
|
+
email: 'يرجى إدخال بريد إلكتروني صالح',
|
|
44
|
+
url: 'يرجى إدخال رابط صالح',
|
|
45
|
+
pattern: 'صيغة {{field}} غير صالحة',
|
|
46
|
+
unique: '{{field}} يجب أن يكون فريداً',
|
|
47
|
+
type: '{{field}} يجب أن يكون {{type}} صالحاً',
|
|
48
|
+
},
|
|
49
|
+
form: {
|
|
50
|
+
addItem: 'إضافة عنصر',
|
|
51
|
+
removeItem: 'إزالة عنصر',
|
|
52
|
+
fieldRequired: 'هذا الحقل مطلوب',
|
|
53
|
+
invalidFormat: 'صيغة غير صالحة',
|
|
54
|
+
saveSuccess: 'تم الحفظ بنجاح',
|
|
55
|
+
saveError: 'فشل في الحفظ',
|
|
56
|
+
unsavedChanges: 'لديك تغييرات غير محفوظة. هل أنت متأكد أنك تريد المغادرة؟',
|
|
57
|
+
stepOf: 'الخطوة {{current}} من {{total}}',
|
|
58
|
+
},
|
|
59
|
+
table: {
|
|
60
|
+
rowsPerPage: 'صفوف في الصفحة',
|
|
61
|
+
showing: 'عرض {{from}} إلى {{to}} من {{total}}',
|
|
62
|
+
noRows: 'لا توجد صفوف للعرض',
|
|
63
|
+
sortAsc: 'ترتيب تصاعدي',
|
|
64
|
+
sortDesc: 'ترتيب تنازلي',
|
|
65
|
+
filterColumn: 'تصفية {{column}}',
|
|
66
|
+
columns: 'الأعمدة',
|
|
67
|
+
exportCSV: 'تصدير CSV',
|
|
68
|
+
exportExcel: 'تصدير Excel',
|
|
69
|
+
selectRow: 'تحديد صف',
|
|
70
|
+
selectAllRows: 'تحديد جميع الصفوف',
|
|
71
|
+
expandRow: 'توسيع الصف',
|
|
72
|
+
collapseRow: 'طي الصف',
|
|
73
|
+
},
|
|
74
|
+
calendar: {
|
|
75
|
+
today: 'اليوم',
|
|
76
|
+
month: 'شهر',
|
|
77
|
+
week: 'أسبوع',
|
|
78
|
+
day: 'يوم',
|
|
79
|
+
agenda: 'جدول أعمال',
|
|
80
|
+
allDay: 'طوال اليوم',
|
|
81
|
+
noEvents: 'لا توجد أحداث',
|
|
82
|
+
newEvent: 'حدث جديد',
|
|
83
|
+
},
|
|
84
|
+
kanban: {
|
|
85
|
+
addCard: 'إضافة بطاقة',
|
|
86
|
+
addColumn: 'إضافة عمود',
|
|
87
|
+
moveCard: 'نقل بطاقة',
|
|
88
|
+
deleteCard: 'حذف بطاقة',
|
|
89
|
+
deleteColumn: 'حذف عمود',
|
|
90
|
+
},
|
|
91
|
+
chart: {
|
|
92
|
+
noData: 'لا تتوفر بيانات للرسم البياني',
|
|
93
|
+
loading: 'جاري تحميل الرسم البياني...',
|
|
94
|
+
},
|
|
95
|
+
dashboard: {
|
|
96
|
+
addWidget: 'إضافة أداة',
|
|
97
|
+
removeWidget: 'إزالة أداة',
|
|
98
|
+
editLayout: 'تعديل التخطيط',
|
|
99
|
+
saveLayout: 'حفظ التخطيط',
|
|
100
|
+
resetLayout: 'إعادة تعيين التخطيط',
|
|
101
|
+
},
|
|
102
|
+
errors: {
|
|
103
|
+
networkError: 'خطأ في الشبكة. يرجى التحقق من اتصالك.',
|
|
104
|
+
serverError: 'خطأ في الخادم. يرجى المحاولة مرة أخرى لاحقاً.',
|
|
105
|
+
notFound: 'المورد غير موجود.',
|
|
106
|
+
unauthorized: 'ليس لديك صلاحية لتنفيذ هذا الإجراء.',
|
|
107
|
+
forbidden: 'تم رفض الوصول.',
|
|
108
|
+
timeout: 'انتهت مهلة الطلب. يرجى المحاولة مرة أخرى.',
|
|
109
|
+
unknown: 'حدث خطأ غير متوقع.',
|
|
110
|
+
},
|
|
111
|
+
} as const;
|
|
112
|
+
|
|
113
|
+
export default ar;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deutsch (de) - German language pack for Object UI
|
|
3
|
+
*/
|
|
4
|
+
const de = {
|
|
5
|
+
common: {
|
|
6
|
+
loading: 'Wird geladen...',
|
|
7
|
+
save: 'Speichern',
|
|
8
|
+
cancel: 'Abbrechen',
|
|
9
|
+
delete: 'Löschen',
|
|
10
|
+
edit: 'Bearbeiten',
|
|
11
|
+
create: 'Erstellen',
|
|
12
|
+
search: 'Suchen',
|
|
13
|
+
filter: 'Filtern',
|
|
14
|
+
reset: 'Zurücksetzen',
|
|
15
|
+
confirm: 'Bestätigen',
|
|
16
|
+
close: 'Schließen',
|
|
17
|
+
back: 'Zurück',
|
|
18
|
+
next: 'Weiter',
|
|
19
|
+
previous: 'Zurück',
|
|
20
|
+
submit: 'Absenden',
|
|
21
|
+
refresh: 'Aktualisieren',
|
|
22
|
+
export: 'Exportieren',
|
|
23
|
+
import: 'Importieren',
|
|
24
|
+
yes: 'Ja',
|
|
25
|
+
no: 'Nein',
|
|
26
|
+
ok: 'OK',
|
|
27
|
+
actions: 'Aktionen',
|
|
28
|
+
more: 'Mehr',
|
|
29
|
+
selectAll: 'Alle auswählen',
|
|
30
|
+
clearAll: 'Alle löschen',
|
|
31
|
+
noData: 'Keine Daten',
|
|
32
|
+
noResults: 'Keine Ergebnisse gefunden',
|
|
33
|
+
required: 'Erforderlich',
|
|
34
|
+
optional: 'Optional',
|
|
35
|
+
},
|
|
36
|
+
validation: {
|
|
37
|
+
required: '{{field}} ist erforderlich',
|
|
38
|
+
minLength: '{{field}} muss mindestens {{min}} Zeichen lang sein',
|
|
39
|
+
maxLength: '{{field}} darf höchstens {{max}} Zeichen lang sein',
|
|
40
|
+
min: '{{field}} muss mindestens {{min}} sein',
|
|
41
|
+
max: '{{field}} darf höchstens {{max}} sein',
|
|
42
|
+
email: 'Bitte geben Sie eine gültige E-Mail-Adresse ein',
|
|
43
|
+
url: 'Bitte geben Sie eine gültige URL ein',
|
|
44
|
+
pattern: '{{field}} hat ein ungültiges Format',
|
|
45
|
+
unique: '{{field}} muss eindeutig sein',
|
|
46
|
+
type: '{{field}} muss ein gültiger {{type}} sein',
|
|
47
|
+
},
|
|
48
|
+
form: {
|
|
49
|
+
addItem: 'Element hinzufügen',
|
|
50
|
+
removeItem: 'Element entfernen',
|
|
51
|
+
fieldRequired: 'Dieses Feld ist erforderlich',
|
|
52
|
+
invalidFormat: 'Ungültiges Format',
|
|
53
|
+
saveSuccess: 'Erfolgreich gespeichert',
|
|
54
|
+
saveError: 'Speichern fehlgeschlagen',
|
|
55
|
+
unsavedChanges: 'Sie haben nicht gespeicherte Änderungen. Möchten Sie die Seite wirklich verlassen?',
|
|
56
|
+
stepOf: 'Schritt {{current}} von {{total}}',
|
|
57
|
+
},
|
|
58
|
+
table: {
|
|
59
|
+
rowsPerPage: 'Zeilen pro Seite',
|
|
60
|
+
showing: '{{from}} bis {{to}} von {{total}} angezeigt',
|
|
61
|
+
noRows: 'Keine Zeilen vorhanden',
|
|
62
|
+
sortAsc: 'Aufsteigend sortieren',
|
|
63
|
+
sortDesc: 'Absteigend sortieren',
|
|
64
|
+
filterColumn: '{{column}} filtern',
|
|
65
|
+
columns: 'Spalten',
|
|
66
|
+
exportCSV: 'CSV exportieren',
|
|
67
|
+
exportExcel: 'Excel exportieren',
|
|
68
|
+
selectRow: 'Zeile auswählen',
|
|
69
|
+
selectAllRows: 'Alle Zeilen auswählen',
|
|
70
|
+
expandRow: 'Zeile erweitern',
|
|
71
|
+
collapseRow: 'Zeile reduzieren',
|
|
72
|
+
},
|
|
73
|
+
calendar: {
|
|
74
|
+
today: 'Heute',
|
|
75
|
+
month: 'Monat',
|
|
76
|
+
week: 'Woche',
|
|
77
|
+
day: 'Tag',
|
|
78
|
+
agenda: 'Agenda',
|
|
79
|
+
allDay: 'Ganztägig',
|
|
80
|
+
noEvents: 'Keine Termine',
|
|
81
|
+
newEvent: 'Neuer Termin',
|
|
82
|
+
},
|
|
83
|
+
kanban: {
|
|
84
|
+
addCard: 'Karte hinzufügen',
|
|
85
|
+
addColumn: 'Spalte hinzufügen',
|
|
86
|
+
moveCard: 'Karte verschieben',
|
|
87
|
+
deleteCard: 'Karte löschen',
|
|
88
|
+
deleteColumn: 'Spalte löschen',
|
|
89
|
+
},
|
|
90
|
+
chart: {
|
|
91
|
+
noData: 'Keine Diagrammdaten verfügbar',
|
|
92
|
+
loading: 'Diagramm wird geladen...',
|
|
93
|
+
},
|
|
94
|
+
dashboard: {
|
|
95
|
+
addWidget: 'Widget hinzufügen',
|
|
96
|
+
removeWidget: 'Widget entfernen',
|
|
97
|
+
editLayout: 'Layout bearbeiten',
|
|
98
|
+
saveLayout: 'Layout speichern',
|
|
99
|
+
resetLayout: 'Layout zurücksetzen',
|
|
100
|
+
},
|
|
101
|
+
errors: {
|
|
102
|
+
networkError: 'Netzwerkfehler. Bitte überprüfen Sie Ihre Verbindung.',
|
|
103
|
+
serverError: 'Serverfehler. Bitte versuchen Sie es später erneut.',
|
|
104
|
+
notFound: 'Ressource nicht gefunden.',
|
|
105
|
+
unauthorized: 'Sie sind nicht berechtigt, diese Aktion auszuführen.',
|
|
106
|
+
forbidden: 'Zugriff verweigert.',
|
|
107
|
+
timeout: 'Zeitüberschreitung. Bitte versuchen Sie es erneut.',
|
|
108
|
+
unknown: 'Ein unerwarteter Fehler ist aufgetreten.',
|
|
109
|
+
},
|
|
110
|
+
} as const;
|
|
111
|
+
|
|
112
|
+
export default de;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* English (en) - Default language pack for Object UI
|
|
3
|
+
*/
|
|
4
|
+
const en = {
|
|
5
|
+
common: {
|
|
6
|
+
loading: 'Loading...',
|
|
7
|
+
save: 'Save',
|
|
8
|
+
cancel: 'Cancel',
|
|
9
|
+
delete: 'Delete',
|
|
10
|
+
edit: 'Edit',
|
|
11
|
+
create: 'Create',
|
|
12
|
+
search: 'Search',
|
|
13
|
+
filter: 'Filter',
|
|
14
|
+
reset: 'Reset',
|
|
15
|
+
confirm: 'Confirm',
|
|
16
|
+
close: 'Close',
|
|
17
|
+
back: 'Back',
|
|
18
|
+
next: 'Next',
|
|
19
|
+
previous: 'Previous',
|
|
20
|
+
submit: 'Submit',
|
|
21
|
+
refresh: 'Refresh',
|
|
22
|
+
export: 'Export',
|
|
23
|
+
import: 'Import',
|
|
24
|
+
yes: 'Yes',
|
|
25
|
+
no: 'No',
|
|
26
|
+
ok: 'OK',
|
|
27
|
+
actions: 'Actions',
|
|
28
|
+
more: 'More',
|
|
29
|
+
selectAll: 'Select All',
|
|
30
|
+
clearAll: 'Clear All',
|
|
31
|
+
noData: 'No data',
|
|
32
|
+
noResults: 'No results found',
|
|
33
|
+
required: 'Required',
|
|
34
|
+
optional: 'Optional',
|
|
35
|
+
},
|
|
36
|
+
validation: {
|
|
37
|
+
required: '{{field}} is required',
|
|
38
|
+
minLength: '{{field}} must be at least {{min}} characters',
|
|
39
|
+
maxLength: '{{field}} must be at most {{max}} characters',
|
|
40
|
+
min: '{{field}} must be at least {{min}}',
|
|
41
|
+
max: '{{field}} must be at most {{max}}',
|
|
42
|
+
email: 'Please enter a valid email address',
|
|
43
|
+
url: 'Please enter a valid URL',
|
|
44
|
+
pattern: '{{field}} format is invalid',
|
|
45
|
+
unique: '{{field}} must be unique',
|
|
46
|
+
type: '{{field}} must be a valid {{type}}',
|
|
47
|
+
},
|
|
48
|
+
form: {
|
|
49
|
+
addItem: 'Add item',
|
|
50
|
+
removeItem: 'Remove item',
|
|
51
|
+
fieldRequired: 'This field is required',
|
|
52
|
+
invalidFormat: 'Invalid format',
|
|
53
|
+
saveSuccess: 'Saved successfully',
|
|
54
|
+
saveError: 'Failed to save',
|
|
55
|
+
unsavedChanges: 'You have unsaved changes. Are you sure you want to leave?',
|
|
56
|
+
stepOf: 'Step {{current}} of {{total}}',
|
|
57
|
+
},
|
|
58
|
+
table: {
|
|
59
|
+
rowsPerPage: 'Rows per page',
|
|
60
|
+
showing: 'Showing {{from}} to {{to}} of {{total}}',
|
|
61
|
+
noRows: 'No rows to display',
|
|
62
|
+
sortAsc: 'Sort ascending',
|
|
63
|
+
sortDesc: 'Sort descending',
|
|
64
|
+
filterColumn: 'Filter {{column}}',
|
|
65
|
+
columns: 'Columns',
|
|
66
|
+
exportCSV: 'Export CSV',
|
|
67
|
+
exportExcel: 'Export Excel',
|
|
68
|
+
selectRow: 'Select row',
|
|
69
|
+
selectAllRows: 'Select all rows',
|
|
70
|
+
expandRow: 'Expand row',
|
|
71
|
+
collapseRow: 'Collapse row',
|
|
72
|
+
},
|
|
73
|
+
calendar: {
|
|
74
|
+
today: 'Today',
|
|
75
|
+
month: 'Month',
|
|
76
|
+
week: 'Week',
|
|
77
|
+
day: 'Day',
|
|
78
|
+
agenda: 'Agenda',
|
|
79
|
+
allDay: 'All Day',
|
|
80
|
+
noEvents: 'No events',
|
|
81
|
+
newEvent: 'New event',
|
|
82
|
+
},
|
|
83
|
+
kanban: {
|
|
84
|
+
addCard: 'Add card',
|
|
85
|
+
addColumn: 'Add column',
|
|
86
|
+
moveCard: 'Move card',
|
|
87
|
+
deleteCard: 'Delete card',
|
|
88
|
+
deleteColumn: 'Delete column',
|
|
89
|
+
},
|
|
90
|
+
chart: {
|
|
91
|
+
noData: 'No chart data available',
|
|
92
|
+
loading: 'Loading chart...',
|
|
93
|
+
},
|
|
94
|
+
dashboard: {
|
|
95
|
+
addWidget: 'Add widget',
|
|
96
|
+
removeWidget: 'Remove widget',
|
|
97
|
+
editLayout: 'Edit layout',
|
|
98
|
+
saveLayout: 'Save layout',
|
|
99
|
+
resetLayout: 'Reset layout',
|
|
100
|
+
},
|
|
101
|
+
errors: {
|
|
102
|
+
networkError: 'Network error. Please check your connection.',
|
|
103
|
+
serverError: 'Server error. Please try again later.',
|
|
104
|
+
notFound: 'Resource not found.',
|
|
105
|
+
unauthorized: 'You are not authorized to perform this action.',
|
|
106
|
+
forbidden: 'Access denied.',
|
|
107
|
+
timeout: 'Request timed out. Please try again.',
|
|
108
|
+
unknown: 'An unexpected error occurred.',
|
|
109
|
+
},
|
|
110
|
+
} as const;
|
|
111
|
+
|
|
112
|
+
export default en;
|
|
113
|
+
export type TranslationKeys = typeof en;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Español (es) - Spanish language pack for Object UI
|
|
3
|
+
*/
|
|
4
|
+
const es = {
|
|
5
|
+
common: {
|
|
6
|
+
loading: 'Cargando...',
|
|
7
|
+
save: 'Guardar',
|
|
8
|
+
cancel: 'Cancelar',
|
|
9
|
+
delete: 'Eliminar',
|
|
10
|
+
edit: 'Editar',
|
|
11
|
+
create: 'Crear',
|
|
12
|
+
search: 'Buscar',
|
|
13
|
+
filter: 'Filtrar',
|
|
14
|
+
reset: 'Restablecer',
|
|
15
|
+
confirm: 'Confirmar',
|
|
16
|
+
close: 'Cerrar',
|
|
17
|
+
back: 'Atrás',
|
|
18
|
+
next: 'Siguiente',
|
|
19
|
+
previous: 'Anterior',
|
|
20
|
+
submit: 'Enviar',
|
|
21
|
+
refresh: 'Actualizar',
|
|
22
|
+
export: 'Exportar',
|
|
23
|
+
import: 'Importar',
|
|
24
|
+
yes: 'Sí',
|
|
25
|
+
no: 'No',
|
|
26
|
+
ok: 'Aceptar',
|
|
27
|
+
actions: 'Acciones',
|
|
28
|
+
more: 'Más',
|
|
29
|
+
selectAll: 'Seleccionar todo',
|
|
30
|
+
clearAll: 'Borrar todo',
|
|
31
|
+
noData: 'Sin datos',
|
|
32
|
+
noResults: 'No se encontraron resultados',
|
|
33
|
+
required: 'Obligatorio',
|
|
34
|
+
optional: 'Opcional',
|
|
35
|
+
},
|
|
36
|
+
validation: {
|
|
37
|
+
required: '{{field}} es obligatorio',
|
|
38
|
+
minLength: '{{field}} debe tener al menos {{min}} caracteres',
|
|
39
|
+
maxLength: '{{field}} debe tener como máximo {{max}} caracteres',
|
|
40
|
+
min: '{{field}} debe ser al menos {{min}}',
|
|
41
|
+
max: '{{field}} debe ser como máximo {{max}}',
|
|
42
|
+
email: 'Por favor, introduzca un correo electrónico válido',
|
|
43
|
+
url: 'Por favor, introduzca una URL válida',
|
|
44
|
+
pattern: 'El formato de {{field}} no es válido',
|
|
45
|
+
unique: '{{field}} debe ser único',
|
|
46
|
+
type: '{{field}} debe ser un {{type}} válido',
|
|
47
|
+
},
|
|
48
|
+
form: {
|
|
49
|
+
addItem: 'Añadir elemento',
|
|
50
|
+
removeItem: 'Eliminar elemento',
|
|
51
|
+
fieldRequired: 'Este campo es obligatorio',
|
|
52
|
+
invalidFormat: 'Formato no válido',
|
|
53
|
+
saveSuccess: 'Guardado correctamente',
|
|
54
|
+
saveError: 'Error al guardar',
|
|
55
|
+
unsavedChanges: 'Tiene cambios sin guardar. ¿Está seguro de que desea salir?',
|
|
56
|
+
stepOf: 'Paso {{current}} de {{total}}',
|
|
57
|
+
},
|
|
58
|
+
table: {
|
|
59
|
+
rowsPerPage: 'Filas por página',
|
|
60
|
+
showing: 'Mostrando {{from}} a {{to}} de {{total}}',
|
|
61
|
+
noRows: 'No hay filas para mostrar',
|
|
62
|
+
sortAsc: 'Ordenar ascendente',
|
|
63
|
+
sortDesc: 'Ordenar descendente',
|
|
64
|
+
filterColumn: 'Filtrar {{column}}',
|
|
65
|
+
columns: 'Columnas',
|
|
66
|
+
exportCSV: 'Exportar CSV',
|
|
67
|
+
exportExcel: 'Exportar Excel',
|
|
68
|
+
selectRow: 'Seleccionar fila',
|
|
69
|
+
selectAllRows: 'Seleccionar todas las filas',
|
|
70
|
+
expandRow: 'Expandir fila',
|
|
71
|
+
collapseRow: 'Contraer fila',
|
|
72
|
+
},
|
|
73
|
+
calendar: {
|
|
74
|
+
today: 'Hoy',
|
|
75
|
+
month: 'Mes',
|
|
76
|
+
week: 'Semana',
|
|
77
|
+
day: 'Día',
|
|
78
|
+
agenda: 'Agenda',
|
|
79
|
+
allDay: 'Todo el día',
|
|
80
|
+
noEvents: 'Sin eventos',
|
|
81
|
+
newEvent: 'Nuevo evento',
|
|
82
|
+
},
|
|
83
|
+
kanban: {
|
|
84
|
+
addCard: 'Añadir tarjeta',
|
|
85
|
+
addColumn: 'Añadir columna',
|
|
86
|
+
moveCard: 'Mover tarjeta',
|
|
87
|
+
deleteCard: 'Eliminar tarjeta',
|
|
88
|
+
deleteColumn: 'Eliminar columna',
|
|
89
|
+
},
|
|
90
|
+
chart: {
|
|
91
|
+
noData: 'No hay datos de gráfico disponibles',
|
|
92
|
+
loading: 'Cargando gráfico...',
|
|
93
|
+
},
|
|
94
|
+
dashboard: {
|
|
95
|
+
addWidget: 'Añadir widget',
|
|
96
|
+
removeWidget: 'Eliminar widget',
|
|
97
|
+
editLayout: 'Editar diseño',
|
|
98
|
+
saveLayout: 'Guardar diseño',
|
|
99
|
+
resetLayout: 'Restablecer diseño',
|
|
100
|
+
},
|
|
101
|
+
errors: {
|
|
102
|
+
networkError: 'Error de red. Por favor, compruebe su conexión.',
|
|
103
|
+
serverError: 'Error del servidor. Por favor, inténtelo de nuevo más tarde.',
|
|
104
|
+
notFound: 'Recurso no encontrado.',
|
|
105
|
+
unauthorized: 'No está autorizado para realizar esta acción.',
|
|
106
|
+
forbidden: 'Acceso denegado.',
|
|
107
|
+
timeout: 'Tiempo de espera agotado. Por favor, inténtelo de nuevo.',
|
|
108
|
+
unknown: 'Ha ocurrido un error inesperado.',
|
|
109
|
+
},
|
|
110
|
+
} as const;
|
|
111
|
+
|
|
112
|
+
export default es;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Français (fr) - French language pack for Object UI
|
|
3
|
+
*/
|
|
4
|
+
const fr = {
|
|
5
|
+
common: {
|
|
6
|
+
loading: 'Chargement...',
|
|
7
|
+
save: 'Enregistrer',
|
|
8
|
+
cancel: 'Annuler',
|
|
9
|
+
delete: 'Supprimer',
|
|
10
|
+
edit: 'Modifier',
|
|
11
|
+
create: 'Créer',
|
|
12
|
+
search: 'Rechercher',
|
|
13
|
+
filter: 'Filtrer',
|
|
14
|
+
reset: 'Réinitialiser',
|
|
15
|
+
confirm: 'Confirmer',
|
|
16
|
+
close: 'Fermer',
|
|
17
|
+
back: 'Retour',
|
|
18
|
+
next: 'Suivant',
|
|
19
|
+
previous: 'Précédent',
|
|
20
|
+
submit: 'Soumettre',
|
|
21
|
+
refresh: 'Actualiser',
|
|
22
|
+
export: 'Exporter',
|
|
23
|
+
import: 'Importer',
|
|
24
|
+
yes: 'Oui',
|
|
25
|
+
no: 'Non',
|
|
26
|
+
ok: 'OK',
|
|
27
|
+
actions: 'Actions',
|
|
28
|
+
more: 'Plus',
|
|
29
|
+
selectAll: 'Tout sélectionner',
|
|
30
|
+
clearAll: 'Tout effacer',
|
|
31
|
+
noData: 'Aucune donnée',
|
|
32
|
+
noResults: 'Aucun résultat trouvé',
|
|
33
|
+
required: 'Obligatoire',
|
|
34
|
+
optional: 'Facultatif',
|
|
35
|
+
},
|
|
36
|
+
validation: {
|
|
37
|
+
required: '{{field}} est obligatoire',
|
|
38
|
+
minLength: '{{field}} doit contenir au moins {{min}} caractères',
|
|
39
|
+
maxLength: '{{field}} doit contenir au plus {{max}} caractères',
|
|
40
|
+
min: '{{field}} doit être au moins {{min}}',
|
|
41
|
+
max: '{{field}} doit être au plus {{max}}',
|
|
42
|
+
email: 'Veuillez saisir une adresse e-mail valide',
|
|
43
|
+
url: 'Veuillez saisir une URL valide',
|
|
44
|
+
pattern: 'Le format de {{field}} est invalide',
|
|
45
|
+
unique: '{{field}} doit être unique',
|
|
46
|
+
type: '{{field}} doit être un {{type}} valide',
|
|
47
|
+
},
|
|
48
|
+
form: {
|
|
49
|
+
addItem: 'Ajouter un élément',
|
|
50
|
+
removeItem: 'Supprimer un élément',
|
|
51
|
+
fieldRequired: 'Ce champ est obligatoire',
|
|
52
|
+
invalidFormat: 'Format invalide',
|
|
53
|
+
saveSuccess: 'Enregistré avec succès',
|
|
54
|
+
saveError: 'Échec de l\'enregistrement',
|
|
55
|
+
unsavedChanges: 'Vous avez des modifications non enregistrées. Voulez-vous vraiment quitter ?',
|
|
56
|
+
stepOf: 'Étape {{current}} sur {{total}}',
|
|
57
|
+
},
|
|
58
|
+
table: {
|
|
59
|
+
rowsPerPage: 'Lignes par page',
|
|
60
|
+
showing: 'Affichage de {{from}} à {{to}} sur {{total}}',
|
|
61
|
+
noRows: 'Aucune ligne à afficher',
|
|
62
|
+
sortAsc: 'Tri croissant',
|
|
63
|
+
sortDesc: 'Tri décroissant',
|
|
64
|
+
filterColumn: 'Filtrer {{column}}',
|
|
65
|
+
columns: 'Colonnes',
|
|
66
|
+
exportCSV: 'Exporter en CSV',
|
|
67
|
+
exportExcel: 'Exporter en Excel',
|
|
68
|
+
selectRow: 'Sélectionner la ligne',
|
|
69
|
+
selectAllRows: 'Sélectionner toutes les lignes',
|
|
70
|
+
expandRow: 'Développer la ligne',
|
|
71
|
+
collapseRow: 'Réduire la ligne',
|
|
72
|
+
},
|
|
73
|
+
calendar: {
|
|
74
|
+
today: 'Aujourd\'hui',
|
|
75
|
+
month: 'Mois',
|
|
76
|
+
week: 'Semaine',
|
|
77
|
+
day: 'Jour',
|
|
78
|
+
agenda: 'Agenda',
|
|
79
|
+
allDay: 'Toute la journée',
|
|
80
|
+
noEvents: 'Aucun événement',
|
|
81
|
+
newEvent: 'Nouvel événement',
|
|
82
|
+
},
|
|
83
|
+
kanban: {
|
|
84
|
+
addCard: 'Ajouter une carte',
|
|
85
|
+
addColumn: 'Ajouter une colonne',
|
|
86
|
+
moveCard: 'Déplacer la carte',
|
|
87
|
+
deleteCard: 'Supprimer la carte',
|
|
88
|
+
deleteColumn: 'Supprimer la colonne',
|
|
89
|
+
},
|
|
90
|
+
chart: {
|
|
91
|
+
noData: 'Aucune donnée de graphique disponible',
|
|
92
|
+
loading: 'Chargement du graphique...',
|
|
93
|
+
},
|
|
94
|
+
dashboard: {
|
|
95
|
+
addWidget: 'Ajouter un widget',
|
|
96
|
+
removeWidget: 'Supprimer un widget',
|
|
97
|
+
editLayout: 'Modifier la mise en page',
|
|
98
|
+
saveLayout: 'Enregistrer la mise en page',
|
|
99
|
+
resetLayout: 'Réinitialiser la mise en page',
|
|
100
|
+
},
|
|
101
|
+
errors: {
|
|
102
|
+
networkError: 'Erreur réseau. Veuillez vérifier votre connexion.',
|
|
103
|
+
serverError: 'Erreur serveur. Veuillez réessayer plus tard.',
|
|
104
|
+
notFound: 'Ressource introuvable.',
|
|
105
|
+
unauthorized: 'Vous n\'êtes pas autorisé à effectuer cette action.',
|
|
106
|
+
forbidden: 'Accès refusé.',
|
|
107
|
+
timeout: 'Délai d\'attente dépassé. Veuillez réessayer.',
|
|
108
|
+
unknown: 'Une erreur inattendue s\'est produite.',
|
|
109
|
+
},
|
|
110
|
+
} as const;
|
|
111
|
+
|
|
112
|
+
export default fr;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @object-ui/i18n - Locale index
|
|
3
|
+
* Exports all 10 built-in language packs
|
|
4
|
+
*/
|
|
5
|
+
export { default as en, type TranslationKeys } from './en';
|
|
6
|
+
export { default as zh } from './zh';
|
|
7
|
+
export { default as ja } from './ja';
|
|
8
|
+
export { default as ko } from './ko';
|
|
9
|
+
export { default as de } from './de';
|
|
10
|
+
export { default as fr } from './fr';
|
|
11
|
+
export { default as es } from './es';
|
|
12
|
+
export { default as pt } from './pt';
|
|
13
|
+
export { default as ru } from './ru';
|
|
14
|
+
export { default as ar } from './ar';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Map of all built-in locales keyed by language code
|
|
18
|
+
*/
|
|
19
|
+
import en from './en';
|
|
20
|
+
import zh from './zh';
|
|
21
|
+
import ja from './ja';
|
|
22
|
+
import ko from './ko';
|
|
23
|
+
import de from './de';
|
|
24
|
+
import fr from './fr';
|
|
25
|
+
import es from './es';
|
|
26
|
+
import pt from './pt';
|
|
27
|
+
import ru from './ru';
|
|
28
|
+
import ar from './ar';
|
|
29
|
+
|
|
30
|
+
export const builtInLocales = { en, zh, ja, ko, de, fr, es, pt, ru, ar } as const;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* List of RTL language codes
|
|
34
|
+
*/
|
|
35
|
+
export const RTL_LANGUAGES = ['ar', 'he', 'fa', 'ur'] as const;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Check if a language code is RTL
|
|
39
|
+
*/
|
|
40
|
+
export function isRTL(lang: string): boolean {
|
|
41
|
+
return (RTL_LANGUAGES as readonly string[]).includes(lang);
|
|
42
|
+
}
|