@djangocfg/i18n 2.1.567 → 2.1.569

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/src/locales/ar.ts CHANGED
@@ -6,569 +6,526 @@ import type { I18nTranslations } from '../types'
6
6
  export const ar: I18nTranslations = {
7
7
  ui: {
8
8
  select: {
9
- placeholder: 'اختر خياراً...',
10
- search: 'بحث...',
11
- noResults: 'لم يتم العثور على نتائج.',
12
- selectAll: 'تحديد الكل',
13
- clearAll: 'مسح الكل',
14
- moreItems: '+{count} المزيد',
15
- loading: 'جارٍ التحميل...',
9
+ placeholder: "اختر خياراً...",
10
+ search: "بحث...",
11
+ noResults: "لم يتم العثور على نتائج.",
12
+ selectAll: "تحديد الكل",
13
+ clearAll: "مسح الكل",
14
+ moreItems: "+{count} المزيد",
15
+ loading: "جارٍ التحميل...",
16
16
  },
17
-
18
17
  pagination: {
19
- previous: 'السابق',
20
- next: 'التالي',
21
- first: 'الأول',
22
- last: 'الأخير',
23
- page: 'صفحة {page}',
24
- of: 'من {total}',
25
- showing: '{from}-{to} من {total}',
18
+ previous: "السابق",
19
+ next: "التالي",
20
+ first: "الأول",
21
+ last: "الأخير",
22
+ page: "صفحة {page}",
23
+ of: "من {total}",
24
+ showing: "{from}-{to} من {total}",
26
25
  },
27
-
28
26
  dialog: {
29
- close: 'إغلاق',
30
- confirm: 'تأكيد',
31
- cancel: 'إلغاء',
32
- ok: 'OK',
33
- yes: 'نعم',
34
- no: 'لا',
35
- delete: 'حذف',
36
- save: 'حفظ',
37
- discard: 'تجاهل',
38
- alertTitle: 'تنبيه',
39
- confirmTitle: 'تأكيد',
40
- confirmDelete: 'هل أنت متأكد من رغبتك في الحذف؟',
41
- promptTitle: 'مطلوب إدخال',
42
- promptPlaceholder: 'أدخل القيمة...',
27
+ close: "إغلاق",
28
+ confirm: "تأكيد",
29
+ cancel: "إلغاء",
30
+ ok: "OK",
31
+ yes: "نعم",
32
+ no: "لا",
33
+ delete: "حذف",
34
+ save: "حفظ",
35
+ discard: "تجاهل",
36
+ alertTitle: "تنبيه",
37
+ confirmTitle: "تأكيد",
38
+ confirmDelete: "هل أنت متأكد من رغبتك في الحذف؟",
39
+ promptTitle: "مطلوب إدخال",
40
+ promptPlaceholder: "أدخل القيمة...",
43
41
  },
44
-
45
42
  form: {
46
- submit: 'إرسال',
47
- cancel: 'إلغاء',
48
- save: 'حفظ',
49
- delete: 'حذف',
50
- edit: 'تعديل',
51
- create: 'إنشاء',
52
- update: 'تحديث',
53
- reset: 'إعادة تعيين',
54
- clear: 'مسح',
55
- loading: 'جارٍ التحميل...',
56
- saving: 'جارٍ الحفظ...',
57
- deleting: 'جارٍ الحذف...',
58
- required: 'هذا الحقل مطلوب',
59
- optional: 'اختياري',
60
- minLength: '{min} أحرف كحد أدنى',
61
- maxLength: '{max} أحرف كحد أقصى',
62
- invalidEmail: 'يرجى إدخال بريد إلكتروني صالح',
63
- invalidUrl: 'يرجى إدخال رابط صالح',
64
- invalidPhone: 'يرجى إدخال رقم هاتف صالح',
65
- passwordMismatch: 'كلمات المرور غير متطابقة',
43
+ submit: "إرسال",
44
+ cancel: "إلغاء",
45
+ save: "حفظ",
46
+ delete: "حذف",
47
+ edit: "تعديل",
48
+ create: "إنشاء",
49
+ update: "تحديث",
50
+ reset: "إعادة تعيين",
51
+ clear: "مسح",
52
+ loading: "جارٍ التحميل...",
53
+ saving: "جارٍ الحفظ...",
54
+ deleting: "جارٍ الحذف...",
55
+ required: "هذا الحقل مطلوب",
56
+ optional: "اختياري",
57
+ minLength: "{min} أحرف كحد أدنى",
58
+ maxLength: "{max} أحرف كحد أقصى",
59
+ invalidEmail: "يرجى إدخال بريد إلكتروني صالح",
60
+ invalidUrl: "يرجى إدخال رابط صالح",
61
+ invalidPhone: "يرجى إدخال رقم هاتف صالح",
62
+ passwordMismatch: "كلمات المرور غير متطابقة",
66
63
  },
67
-
68
64
  datetime: {
69
- today: 'اليوم',
70
- yesterday: 'أمس',
71
- tomorrow: 'غداً',
72
- now: 'الآن',
73
- secondsAgo: 'منذ {count} ثانية',
74
- minutesAgo: 'منذ {count} دقيقة',
75
- hoursAgo: 'منذ {count} ساعة',
76
- daysAgo: 'منذ {count} يوم',
77
- pickDate: 'اختر تاريخاً',
78
- pickTime: 'اختر وقتاً',
79
- pickDateTime: 'اختر التاريخ والوقت',
80
- pickDateRange: 'اختر نطاق التاريخ',
65
+ today: "اليوم",
66
+ yesterday: "أمس",
67
+ tomorrow: "غداً",
68
+ now: "الآن",
69
+ secondsAgo: "منذ {count} ثانية",
70
+ minutesAgo: "منذ {count} دقيقة",
71
+ hoursAgo: "منذ {count} ساعة",
72
+ daysAgo: "منذ {count} يوم",
73
+ pickDate: "اختر تاريخاً",
74
+ pickTime: "اختر وقتاً",
75
+ pickDateTime: "اختر التاريخ والوقت",
76
+ pickDateRange: "اختر نطاق التاريخ",
81
77
  },
82
-
83
78
  file: {
84
- upload: 'رفع',
85
- uploading: 'جارٍ الرفع...',
86
- dragDrop: 'اسحب الملفات وأفلتها هنا',
87
- browse: 'تصفح الملفات',
88
- remove: 'إزالة',
89
- maxSize: 'الحجم الأقصى: {size}',
90
- invalidType: 'نوع ملف غير صالح',
91
- tooLarge: 'الملف كبير جداً',
79
+ upload: "رفع",
80
+ uploading: "جارٍ الرفع...",
81
+ dragDrop: "اسحب الملفات وأفلتها هنا",
82
+ browse: "تصفح الملفات",
83
+ remove: "إزالة",
84
+ maxSize: "الحجم الأقصى: {size}",
85
+ invalidType: "نوع ملف غير صالح",
86
+ tooLarge: "الملف كبير جداً",
92
87
  },
93
-
94
88
  table: {
95
- noData: 'لا توجد بيانات',
96
- loading: 'جارٍ تحميل البيانات...',
97
- showing: '{from}-{to} من {total}',
98
- rowsPerPage: 'صفوف لكل صفحة',
99
- sortAsc: 'ترتيب تصاعدي',
100
- sortDesc: 'ترتيب تنازلي',
101
- filter: 'تصفية',
102
- clearFilters: 'مسح الفلاتر',
103
- selectAll: 'تحديد الكل',
104
- deselectAll: 'إلغاء تحديد الكل',
105
- selected: '{count} محدد',
89
+ noData: "لا توجد بيانات",
90
+ loading: "جارٍ تحميل البيانات...",
91
+ showing: "{from}-{to} من {total}",
92
+ rowsPerPage: "صفوف لكل صفحة",
93
+ sortAsc: "ترتيب تصاعدي",
94
+ sortDesc: "ترتيب تنازلي",
95
+ filter: "تصفية",
96
+ clearFilters: "مسح الفلاتر",
97
+ selectAll: "تحديد الكل",
98
+ deselectAll: "إلغاء تحديد الكل",
99
+ selected: "{count} محدد",
106
100
  },
107
-
108
101
  actions: {
109
- view: 'عرض',
110
- copy: 'نسخ',
111
- copied: 'تم النسخ!',
112
- copyToClipboard: 'نسخ إلى الحافظة',
113
- download: 'تنزيل',
114
- share: 'مشاركة',
115
- refresh: 'تحديث',
116
- retry: 'إعادة المحاولة',
117
- expand: 'توسيع',
118
- collapse: 'طي',
119
- showMore: 'عرض المزيد',
120
- showLess: 'عرض أقل',
121
- seeAll: 'عرض الكل',
122
- goBack: 'رجوع',
123
- remove: 'إزالة',
124
- previousSlide: 'الشريحة السابقة',
125
- nextSlide: 'الشريحة التالية',
102
+ view: "عرض",
103
+ copy: "نسخ",
104
+ copied: "تم النسخ!",
105
+ copyToClipboard: "نسخ إلى الحافظة",
106
+ download: "تنزيل",
107
+ share: "مشاركة",
108
+ refresh: "تحديث",
109
+ retry: "إعادة المحاولة",
110
+ expand: "توسيع",
111
+ collapse: "طي",
112
+ showMore: "عرض المزيد",
113
+ showLess: "عرض أقل",
114
+ seeAll: "عرض الكل",
115
+ goBack: "رجوع",
116
+ remove: "إزالة",
117
+ previousSlide: "الشريحة السابقة",
118
+ nextSlide: "الشريحة التالية",
126
119
  },
127
-
128
120
  phone: {
129
- searchCountries: 'البحث عن الدول...',
130
- noCountries: 'لم يتم العثور على دول',
121
+ searchCountries: "البحث عن الدول...",
122
+ noCountries: "لم يتم العثور على دول",
131
123
  },
132
-
133
124
  navigation: {
134
- title: 'التنقل',
125
+ title: "التنقل",
135
126
  },
136
-
137
127
  states: {
138
- loading: 'جارٍ التحميل',
139
- empty: 'فارغ',
140
- error: 'خطأ',
141
- success: 'نجاح',
142
- warning: 'تحذير',
143
- info: 'معلومات',
144
- pending: 'قيد الانتظار',
145
- active: 'نشط',
146
- inactive: 'غير نشط',
147
- enabled: 'مفعّل',
148
- disabled: 'معطّل',
128
+ loading: "جارٍ التحميل",
129
+ empty: "فارغ",
130
+ error: "خطأ",
131
+ success: "نجاح",
132
+ warning: "تحذير",
133
+ info: "معلومات",
134
+ pending: "قيد الانتظار",
135
+ active: "نشط",
136
+ inactive: "غير نشط",
137
+ enabled: "مفعّل",
138
+ disabled: "معطّل",
149
139
  },
150
-
151
140
  errors: {
152
- generic: 'حدث خطأ ما',
153
- network: 'خطأ في الشبكة. يرجى التحقق من اتصالك.',
154
- timeout: 'انتهت مهلة الطلب. يرجى المحاولة مرة أخرى.',
155
- notFound: 'غير موجود',
156
- unauthorized: 'يرجى تسجيل الدخول للمتابعة',
157
- forbidden: 'ليس لديك صلاحية للوصول',
158
- serverError: 'خطأ في الخادم. يرجى المحاولة لاحقاً.',
159
- validation: 'يرجى التحقق من الأخطاء في النموذج',
160
- unknown: 'حدث خطأ غير معروف',
141
+ generic: "حدث خطأ ما",
142
+ network: "خطأ في الشبكة. يرجى التحقق من اتصالك.",
143
+ timeout: "انتهت مهلة الطلب. يرجى المحاولة مرة أخرى.",
144
+ notFound: "غير موجود",
145
+ unauthorized: "يرجى تسجيل الدخول للمتابعة",
146
+ forbidden: "ليس لديك صلاحية للوصول",
147
+ serverError: "خطأ في الخادم. يرجى المحاولة لاحقاً.",
148
+ validation: "يرجى التحقق من الأخطاء في النموذج",
149
+ unknown: "حدث خطأ غير معروف",
161
150
  },
162
151
  },
163
-
164
152
  layouts: {
165
153
  sidebar: {
166
- toggle: 'تبديل الشريط الجانبي',
167
- collapse: 'طي الشريط الجانبي',
168
- expand: 'توسيع الشريط الجانبي',
154
+ toggle: "تبديل الشريط الجانبي",
155
+ collapse: "طي الشريط الجانبي",
156
+ expand: "توسيع الشريط الجانبي",
169
157
  },
170
-
171
158
  navigation: {
172
- menu: 'القائمة',
173
- home: 'الرئيسية',
174
- back: 'رجوع',
175
- forward: 'تقدم',
176
- toggleMobile: 'تبديل قائمة الجوال',
177
- breadcrumb: 'مسار التنقل',
159
+ menu: "القائمة",
160
+ home: "الرئيسية",
161
+ back: "رجوع",
162
+ forward: "تقدم",
163
+ toggleMobile: "تبديل قائمة الجوال",
164
+ breadcrumb: "مسار التنقل",
178
165
  },
179
-
180
166
  profile: {
181
- settings: 'الإعدادات',
182
- account: 'الحساب',
183
- logout: 'تسجيل الخروج',
184
- login: 'تسجيل الدخول',
185
- signUp: 'التسجيل',
186
- signOut: 'تسجيل الخروج',
187
- userMenu: 'قائمة المستخدم',
188
- language: 'اللغة',
167
+ settings: "الإعدادات",
168
+ account: "الحساب",
169
+ logout: "تسجيل الخروج",
170
+ login: "تسجيل الدخول",
171
+ signUp: "التسجيل",
172
+ signOut: "تسجيل الخروج",
173
+ userMenu: "قائمة المستخدم",
174
+ language: "اللغة",
189
175
  },
190
-
191
176
  theme: {
192
- toggle: 'تبديل السمة',
193
- light: 'فاتح',
194
- dark: 'داكن',
195
- system: 'النظام',
177
+ toggle: "تبديل السمة",
178
+ light: "فاتح",
179
+ dark: "داكن",
180
+ system: "النظام",
196
181
  },
197
-
198
182
  search: {
199
- placeholder: 'بحث...',
200
- noResults: 'لم يتم العثور على نتائج',
201
- recentSearches: 'عمليات البحث الأخيرة',
202
- clearHistory: 'مسح السجل',
183
+ placeholder: "بحث...",
184
+ noResults: "لم يتم العثور على نتائج",
185
+ recentSearches: "عمليات البحث الأخيرة",
186
+ clearHistory: "مسح السجل",
203
187
  },
204
-
205
188
  mobile: {
206
- closeMenu: 'إغلاق القائمة',
189
+ closeMenu: "إغلاق القائمة",
207
190
  },
208
-
209
191
  errors: {
210
- somethingWentWrong: 'حدث خطأ ما',
211
- tryRefreshing: 'نأسف، حدث خطأ غير متوقع. يرجى محاولة تحديث الصفحة.',
212
- refreshPage: 'تحديث الصفحة',
213
- goBack: 'رجوع',
214
- goHome: 'الذهاب للرئيسية',
215
- needHelp: 'تحتاج مساعدة؟',
216
- contactSupport: 'تواصل مع الدعم',
217
- checkStatus: 'تحقق من حالة الخدمة',
218
- persistsContact: 'إذا استمرت المشكلة، يرجى التواصل مع {email}',
219
- error: 'خطأ',
220
- badRequest: 'طلب غير صالح',
221
- authRequired: 'المصادقة مطلوبة',
222
- accessDenied: 'الوصول مرفوض',
223
- pageNotFound: 'الصفحة غير موجودة',
224
- requestTimeout: 'انتهت مهلة الطلب',
225
- serverError: 'خطأ في الخادم',
226
- badGateway: 'بوابة غير صالحة',
227
- serviceUnavailable: 'الخدمة غير متاحة',
228
- gatewayTimeout: 'انتهت مهلة البوابة',
229
- badRequestDesc: 'تعذر فهم الطلب. يرجى التحقق من البيانات والمحاولة مرة أخرى.',
230
- authRequiredDesc: 'تحتاج لتسجيل الدخول للوصول لهذه الصفحة.',
231
- accessDeniedDesc: 'ليس لديك صلاحية للوصول لهذا المورد.',
232
- pageNotFoundDesc: 'الصفحة التي تبحث عنها غير موجودة أو تم نقلها.',
233
- requestTimeoutDesc: 'استغرق الطلب وقتاً طويلاً. يرجى المحاولة مرة أخرى.',
234
- serverErrorDesc: 'حدث خطأ من جانبنا. نحن نعمل على إصلاحه.',
235
- badGatewayDesc: 'تلقى الخادم استجابة غير صالحة. يرجى المحاولة لاحقاً.',
236
- serviceUnavailableDesc: 'الخدمة غير متاحة مؤقتاً. يرجى المحاولة لاحقاً.',
237
- gatewayTimeoutDesc: 'استغرق الخادم وقتاً طويلاً للاستجابة. يرجى المحاولة مرة أخرى.',
238
- unknownErrorDesc: 'حدث خطأ غير متوقع. يرجى المحاولة مرة أخرى أو التواصل مع الدعم.',
192
+ somethingWentWrong: "حدث خطأ ما",
193
+ tryRefreshing: "نأسف، حدث خطأ غير متوقع. يرجى محاولة تحديث الصفحة.",
194
+ refreshPage: "تحديث الصفحة",
195
+ goBack: "رجوع",
196
+ goHome: "الذهاب للرئيسية",
197
+ needHelp: "تحتاج مساعدة؟",
198
+ contactSupport: "تواصل مع الدعم",
199
+ checkStatus: "تحقق من حالة الخدمة",
200
+ persistsContact: "إذا استمرت المشكلة، يرجى التواصل مع {email}",
201
+ error: "خطأ",
202
+ badRequest: "طلب غير صالح",
203
+ authRequired: "المصادقة مطلوبة",
204
+ accessDenied: "الوصول مرفوض",
205
+ pageNotFound: "الصفحة غير موجودة",
206
+ requestTimeout: "انتهت مهلة الطلب",
207
+ serverError: "خطأ في الخادم",
208
+ badGateway: "بوابة غير صالحة",
209
+ serviceUnavailable: "الخدمة غير متاحة",
210
+ gatewayTimeout: "انتهت مهلة البوابة",
211
+ badRequestDesc: "تعذر فهم الطلب. يرجى التحقق من البيانات والمحاولة مرة أخرى.",
212
+ authRequiredDesc: "تحتاج لتسجيل الدخول للوصول لهذه الصفحة.",
213
+ accessDeniedDesc: "ليس لديك صلاحية للوصول لهذا المورد.",
214
+ pageNotFoundDesc: "الصفحة التي تبحث عنها غير موجودة أو تم نقلها.",
215
+ requestTimeoutDesc: "استغرق الطلب وقتاً طويلاً. يرجى المحاولة مرة أخرى.",
216
+ serverErrorDesc: "حدث خطأ من جانبنا. نحن نعمل على إصلاحه.",
217
+ badGatewayDesc: "تلقى الخادم استجابة غير صالحة. يرجى المحاولة لاحقاً.",
218
+ serviceUnavailableDesc: "الخدمة غير متاحة مؤقتاً. يرجى المحاولة لاحقاً.",
219
+ gatewayTimeoutDesc: "استغرق الخادم وقتاً طويلاً للاستجابة. يرجى المحاولة مرة أخرى.",
220
+ unknownErrorDesc: "حدث خطأ غير متوقع. يرجى المحاولة مرة أخرى أو التواصل مع الدعم.",
239
221
  },
240
-
241
222
  push: {
242
- enableNotifications: 'تفعيل الإشعارات',
243
- stayUpdated: 'ابقَ على اطلاع بالتحديثات والتنبيهات المهمة',
244
- enable: 'تفعيل',
245
- notNow: 'ليس الآن',
246
- dismiss: 'إغلاق',
223
+ enableNotifications: "تفعيل الإشعارات",
224
+ stayUpdated: "ابقَ على اطلاع بالتحديثات والتنبيهات المهمة",
225
+ enable: "تفعيل",
226
+ notNow: "ليس الآن",
227
+ dismiss: "إغلاق",
247
228
  },
248
-
249
229
  auth: {
250
- authRequired: 'المصادقة مطلوبة',
251
- pleaseSignIn: 'يرجى تسجيل الدخول للمتابعة',
252
- goToSignIn: 'الذهاب لتسجيل الدخول',
253
-
230
+ authRequired: "المصادقة مطلوبة",
231
+ pleaseSignIn: "يرجى تسجيل الدخول للمتابعة",
232
+ goToSignIn: "الذهاب لتسجيل الدخول",
254
233
  identifier: {
255
- title: 'تسجيل الدخول',
234
+ title: "تسجيل الدخول",
256
235
  subtitle: {
257
- email: 'أدخل بريدك الإلكتروني للمتابعة',
258
- phone: 'أدخل رقم هاتفك للمتابعة',
236
+ email: "أدخل بريدك الإلكتروني للمتابعة",
237
+ phone: "أدخل رقم هاتفك للمتابعة",
259
238
  },
260
239
  placeholder: {
261
- email: 'email@example.com',
262
- phone: 'أدخل رقم هاتفك',
240
+ email: "email@example.com",
241
+ phone: "أدخل رقم هاتفك",
263
242
  },
264
- button: 'متابعة',
243
+ button: "متابعة",
265
244
  oauth: {
266
- github: 'المتابعة عبر GitHub',
245
+ github: "المتابعة عبر GitHub",
267
246
  },
268
247
  channel: {
269
- email: 'البريد الإلكتروني',
270
- phone: 'الهاتف',
248
+ email: "البريد الإلكتروني",
249
+ phone: "الهاتف",
271
250
  },
272
251
  },
273
-
274
252
  otp: {
275
- title: 'أدخل الرمز',
276
- subtitle: 'أرسلنا رمزاً إلى',
277
- button: 'تحقق',
278
- resend: 'إعادة إرسال الرمز',
279
- changeEmail: 'تغيير البريد',
280
- changePhone: 'تغيير الهاتف',
281
- openMailbox: 'فتح {provider}',
253
+ title: "أدخل الرمز",
254
+ subtitle: "أرسلنا رمزاً إلى",
255
+ button: "تحقق",
256
+ resend: "إعادة إرسال الرمز",
257
+ changeEmail: "تغيير البريد",
258
+ changePhone: "تغيير الهاتف",
259
+ openMailbox: "فتح {provider}",
282
260
  },
283
-
284
261
  twoFactor: {
285
- title: 'المصادقة الثنائية',
262
+ title: "المصادقة الثنائية",
286
263
  subtitle: {
287
- totp: 'أدخل الرمز المكون من 6 أرقام من تطبيق المصادقة',
288
- backup: 'أدخل أحد رموز النسخ الاحتياطي',
264
+ totp: "أدخل الرمز المكون من 6 أرقام من تطبيق المصادقة",
265
+ backup: "أدخل أحد رموز النسخ الاحتياطي",
289
266
  },
290
267
  placeholder: {
291
- backup: 'XXXXXXXX',
268
+ backup: "XXXXXXXX",
292
269
  },
293
- button: 'تحقق',
270
+ button: "تحقق",
294
271
  toggle: {
295
- toBackup: 'استخدام رمز النسخ الاحتياطي',
296
- toTotp: 'استخدام تطبيق المصادقة',
272
+ toBackup: "استخدام رمز النسخ الاحتياطي",
273
+ toTotp: "استخدام تطبيق المصادقة",
297
274
  },
298
275
  },
299
-
300
276
  setup: {
301
277
  loading: {
302
- title: 'جارٍ الإعداد...',
303
- button: 'جارٍ التحميل',
278
+ title: "جارٍ الإعداد...",
279
+ button: "جارٍ التحميل",
304
280
  },
305
281
  qrCode: {
306
- title: 'إعداد المصادقة الثنائية',
307
- subtitle: 'امسح رمز QR هذا باستخدام تطبيق المصادقة',
308
- manualEntry: 'لا يمكنك المسح؟ أدخل يدوياً',
309
- confirmPrompt: 'أدخل الرمز المكون من 6 أرقام للتأكيد',
310
- button: 'تفعيل المصادقة الثنائية',
311
- skip: 'تخطي الآن',
282
+ title: "إعداد المصادقة الثنائية",
283
+ subtitle: "امسح رمز QR هذا باستخدام تطبيق المصادقة",
284
+ manualEntry: "لا يمكنك المسح؟ أدخل يدوياً",
285
+ confirmPrompt: "أدخل الرمز المكون من 6 أرقام للتأكيد",
286
+ button: "تفعيل المصادقة الثنائية",
287
+ skip: "تخطي الآن",
312
288
  },
313
289
  complete: {
314
- title: 'تم تفعيل المصادقة الثنائية',
315
- subtitle: 'احفظ رموز النسخ الاحتياطي بأمان',
316
- instruction: 'كل رمز يمكن استخدامه مرة واحدة فقط',
317
- copyAll: 'نسخ جميع الرموز',
318
- copied: 'تم النسخ',
319
- done: 'تم',
290
+ title: "تم تفعيل المصادقة الثنائية",
291
+ subtitle: "احفظ رموز النسخ الاحتياطي بأمان",
292
+ instruction: "كل رمز يمكن استخدامه مرة واحدة فقط",
293
+ copyAll: "نسخ جميع الرموز",
294
+ copied: "تم النسخ",
295
+ done: "تم",
320
296
  },
321
297
  },
322
-
323
298
  success: {
324
- message: 'تم تسجيل الدخول بنجاح',
299
+ message: "تم تسجيل الدخول بنجاح",
300
+ redirecting: "جارٍ التحويل…",
325
301
  },
326
-
327
302
  divider: {
328
- or: 'أو',
303
+ or: "أو",
329
304
  },
330
305
  footer: {
331
- terms: 'الشروط',
332
- privacy: 'الخصوصية',
333
- support: 'الدعم',
306
+ terms: "الشروط",
307
+ privacy: "الخصوصية",
308
+ support: "الدعم",
334
309
  },
335
-
336
310
  dev: {
337
- anyCodeWorks: 'وضع التطوير: أي رمز يعمل',
311
+ anyCodeWorks: "وضع التطوير: أي رمز يعمل",
338
312
  },
339
313
  },
340
-
341
314
  chat: {
342
- aiAssistant: 'مساعد الذكاء الاصطناعي',
343
- defaultTitle: 'محادثة الذكاء الاصطناعي',
344
- newChat: 'محادثة جديدة',
345
- closeChat: 'إغلاق المحادثة',
346
- switchToFloating: 'التبديل للوضع العائم',
347
- switchToSidebar: 'التبديل لوضع الشريط الجانبي',
348
- dragToResize: 'اسحب لتغيير الحجم',
349
- howCanIHelp: 'كيف يمكنني مساعدتك؟',
315
+ aiAssistant: "مساعد الذكاء الاصطناعي",
316
+ defaultTitle: "محادثة الذكاء الاصطناعي",
317
+ newChat: "محادثة جديدة",
318
+ closeChat: "إغلاق المحادثة",
319
+ switchToFloating: "التبديل للوضع العائم",
320
+ switchToSidebar: "التبديل لوضع الشريط الجانبي",
321
+ dragToResize: "اسحب لتغيير الحجم",
322
+ howCanIHelp: "كيف يمكنني مساعدتك؟",
350
323
  },
351
-
352
324
  pwa: {
353
- addToHomeScreen: 'إضافة للشاشة الرئيسية',
354
- installApp: 'تثبيت التطبيق',
355
- tapToLearnHow: 'انقر لمعرفة الطريقة',
356
- clickToSeeGuide: 'انقر لرؤية دليل سطح المكتب',
357
- tapToInstall: 'انقر للتثبيت',
358
- installing: 'جارٍ التثبيت...',
359
- dismiss: 'إغلاق',
360
- appLogo: 'شعار التطبيق',
361
- iosTitle: 'إضافة للشاشة الرئيسية',
362
- iosDescription: 'ثبّت هذا التطبيق على iPhone للوصول السريع وتجربة أفضل',
363
- iosStep1Title: 'انقر على مشاركة',
364
- iosStep1Desc: 'في أسفل Safari',
365
- iosStep2Title: 'مرر وانقر',
366
- iosStep2Desc: '"إضافة للشاشة الرئيسية"',
367
- iosStep3Title: 'تأكيد',
368
- iosStep3Desc: 'انقر على "إضافة" في الأعلى',
369
- gotIt: 'فهمت',
370
- desktopTitle: 'تثبيت التطبيق على سطح المكتب',
371
- desktopDescription: 'ثبّت هذا التطبيق على {browser} للوصول السريع من سطح المكتب',
372
- desktopDescSafari: 'Safari على macOS لديه دعم محدود لـ PWA. للحصول على أفضل تجربة، استخدم Chrome أو Edge أو Brave.',
373
- desktopTip: 'يمكنك أيضاً النقر بزر الماوس الأيمن على الصفحة والبحث عن خيار "تثبيت" في {browser}',
374
- desktopFirefoxNote: 'Firefox لديه دعم محدود لـ PWA. بعض الميزات قد لا تعمل كما هو متوقع.',
375
- chromiumStep1Title: 'ابحث عن أيقونة التثبيت',
376
- chromiumStep1Desc: 'ابحث عن أيقونة التثبيت في شريط العناوين (الجانب الأيمن)',
377
- chromiumStep2Title: 'انقر على تثبيت',
378
- chromiumStep2Desc: 'انقر على الأيقونة واختر "تثبيت"',
379
- chromiumStep3Title: 'تأكيد',
380
- chromiumStep3Desc: 'انقر على "تثبيت" في مربع الحوار',
381
- firefoxStep1Title: 'افتح القائمة',
382
- firefoxStep1Desc: 'انقر على زر القائمة (ثلاثة خطوط)',
383
- firefoxStep2Title: 'ابحث عن خيار التثبيت',
384
- firefoxStep2Desc: 'ابحث عن "تثبيت" أو "إضافة للشاشة الرئيسية"',
385
- firefoxStep3Title: 'تأكيد',
386
- firefoxStep3Desc: 'اتبع تعليمات التثبيت',
387
- safariStep1Title: 'دعم محدود',
388
- safariStep1Desc: 'Safari على macOS لديه دعم محدود لـ PWA',
389
- safariStep2Title: 'استخدم متصفح Chromium',
390
- safariStep2Desc: 'فكر في استخدام Chrome أو Edge أو Brave للحصول على تجربة PWA كاملة',
391
- unknownStep1Title: 'تحقق من شريط العناوين',
392
- unknownStep1Desc: 'ابحث عن أيقونة التثبيت أو التنزيل',
393
- unknownStep2Title: 'أو استخدم القائمة',
394
- unknownStep2Desc: 'تحقق من قائمة المتصفح لخيار التثبيت',
395
- unknownStep3Title: 'تأكيد',
396
- unknownStep3Desc: 'اتبع تعليمات التثبيت',
397
- close: 'إغلاق',
325
+ addToHomeScreen: "إضافة للشاشة الرئيسية",
326
+ installApp: "تثبيت التطبيق",
327
+ tapToLearnHow: "انقر لمعرفة الطريقة",
328
+ clickToSeeGuide: "انقر لرؤية دليل سطح المكتب",
329
+ tapToInstall: "انقر للتثبيت",
330
+ installing: "جارٍ التثبيت...",
331
+ dismiss: "إغلاق",
332
+ appLogo: "شعار التطبيق",
333
+ iosTitle: "إضافة للشاشة الرئيسية",
334
+ iosDescription: "ثبّت هذا التطبيق على iPhone للوصول السريع وتجربة أفضل",
335
+ iosStep1Title: "انقر على مشاركة",
336
+ iosStep1Desc: "في أسفل Safari",
337
+ iosStep2Title: "مرر وانقر",
338
+ iosStep2Desc: "\"إضافة للشاشة الرئيسية\"",
339
+ iosStep3Title: "تأكيد",
340
+ iosStep3Desc: "انقر على \"إضافة\" في الأعلى",
341
+ gotIt: "فهمت",
342
+ desktopTitle: "تثبيت التطبيق على سطح المكتب",
343
+ desktopDescription: "ثبّت هذا التطبيق على {browser} للوصول السريع من سطح المكتب",
344
+ desktopDescSafari: "Safari على macOS لديه دعم محدود لـ PWA. للحصول على أفضل تجربة، استخدم Chrome أو Edge أو Brave.",
345
+ desktopTip: "يمكنك أيضاً النقر بزر الماوس الأيمن على الصفحة والبحث عن خيار \"تثبيت\" في {browser}",
346
+ desktopFirefoxNote: "Firefox لديه دعم محدود لـ PWA. بعض الميزات قد لا تعمل كما هو متوقع.",
347
+ chromiumStep1Title: "ابحث عن أيقونة التثبيت",
348
+ chromiumStep1Desc: "ابحث عن أيقونة التثبيت في شريط العناوين (الجانب الأيمن)",
349
+ chromiumStep2Title: "انقر على تثبيت",
350
+ chromiumStep2Desc: "انقر على الأيقونة واختر \"تثبيت\"",
351
+ chromiumStep3Title: "تأكيد",
352
+ chromiumStep3Desc: "انقر على \"تثبيت\" في مربع الحوار",
353
+ firefoxStep1Title: "افتح القائمة",
354
+ firefoxStep1Desc: "انقر على زر القائمة (ثلاثة خطوط)",
355
+ firefoxStep2Title: "ابحث عن خيار التثبيت",
356
+ firefoxStep2Desc: "ابحث عن \"تثبيت\" أو \"إضافة للشاشة الرئيسية\"",
357
+ firefoxStep3Title: "تأكيد",
358
+ firefoxStep3Desc: "اتبع تعليمات التثبيت",
359
+ safariStep1Title: "دعم محدود",
360
+ safariStep1Desc: "Safari على macOS لديه دعم محدود لـ PWA",
361
+ safariStep2Title: "استخدم متصفح Chromium",
362
+ safariStep2Desc: "فكر في استخدام Chrome أو Edge أو Brave للحصول على تجربة PWA كاملة",
363
+ unknownStep1Title: "تحقق من شريط العناوين",
364
+ unknownStep1Desc: "ابحث عن أيقونة التثبيت أو التنزيل",
365
+ unknownStep2Title: "أو استخدم القائمة",
366
+ unknownStep2Desc: "تحقق من قائمة المتصفح لخيار التثبيت",
367
+ unknownStep3Title: "تأكيد",
368
+ unknownStep3Desc: "اتبع تعليمات التثبيت",
369
+ close: "إغلاق",
398
370
  },
399
-
400
371
  profilePage: {
401
- title: 'الملف الشخصي',
402
- account: 'الحساب',
403
- personalInfo: 'المعلومات الشخصية',
404
- work: 'العمل',
405
- security: 'الأمان',
406
- actions: 'الإجراءات',
407
- email: 'البريد الإلكتروني',
408
- firstName: 'الاسم الأول',
409
- lastName: 'اسم العائلة',
410
- company: 'الشركة',
411
- position: 'المنصب',
412
- phone: 'الهاتف',
413
- notSet: 'غير محدد',
414
- addFirstName: 'إضافة الاسم الأول',
415
- addLastName: 'إضافة اسم العائلة',
416
- addPhone: 'إضافة رقم الهاتف',
417
- addCompany: 'إضافة الشركة',
418
- addPosition: 'إضافة المنصب',
419
- on: 'مفعّل',
420
- off: 'معطّل',
421
- save: 'حفظ',
422
- saving: 'جارٍ الحفظ...',
423
- cancel: 'إلغاء',
424
- signOut: 'تسجيل الخروج',
425
- deleteAccount: 'حذف الحساب',
426
- deleting: 'جارٍ الحذف...',
427
- twoFactorAuth: 'المصادقة الثنائية',
428
- twoFactorEnabled: 'المصادقة الثنائية مفعّلة',
429
- twoFactorDisabled: 'أضف طبقة أمان إضافية',
430
- enable2FA: 'تفعيل',
431
- avatar: 'الصورة الرمزية',
432
- changeAvatar: 'تغيير الصورة الرمزية',
433
- memberSince: 'عضو منذ {date}',
434
- enterField: 'أدخل {field}',
435
- profileUpdated: 'تم تحديث الملف الشخصي',
436
- avatarUpdated: 'تم تحديث الصورة الرمزية',
437
- failedToUpdate: 'فشل التحديث',
438
- failedToUploadAvatar: 'فشل رفع الصورة الرمزية',
439
- selectImageFile: 'يرجى اختيار ملف صورة',
440
- fileTooLarge: 'حجم الملف يجب أن يكون أقل من 5 ميجابايت',
441
- notAuthenticated: 'غير مصادق',
442
- pleaseLogIn: 'يرجى تسجيل الدخول لعرض ملفك الشخصي.',
443
- deleteAccountTitle: 'حذف الحساب',
444
- deleteAccountDesc: 'لا يمكن التراجع عن هذا الإجراء. سيتم حذف حسابك نهائياً.',
445
- typeToConfirm: 'اكتب {word} للتأكيد:',
446
- confirmationWord: 'DELETE',
372
+ title: "الملف الشخصي",
373
+ account: "الحساب",
374
+ personalInfo: "المعلومات الشخصية",
375
+ work: "العمل",
376
+ security: "الأمان",
377
+ actions: "الإجراءات",
378
+ email: "البريد الإلكتروني",
379
+ firstName: "الاسم الأول",
380
+ lastName: "اسم العائلة",
381
+ company: "الشركة",
382
+ position: "المنصب",
383
+ phone: "الهاتف",
384
+ notSet: "غير محدد",
385
+ addFirstName: "إضافة الاسم الأول",
386
+ addLastName: "إضافة اسم العائلة",
387
+ addPhone: "إضافة رقم الهاتف",
388
+ addCompany: "إضافة الشركة",
389
+ addPosition: "إضافة المنصب",
390
+ on: "مفعّل",
391
+ off: "معطّل",
392
+ save: "حفظ",
393
+ saving: "جارٍ الحفظ...",
394
+ cancel: "إلغاء",
395
+ signOut: "تسجيل الخروج",
396
+ deleteAccount: "حذف الحساب",
397
+ deleting: "جارٍ الحذف...",
398
+ twoFactorAuth: "المصادقة الثنائية",
399
+ twoFactorEnabled: "المصادقة الثنائية مفعّلة",
400
+ twoFactorDisabled: "أضف طبقة أمان إضافية",
401
+ enable2FA: "تفعيل",
402
+ avatar: "الصورة الرمزية",
403
+ changeAvatar: "تغيير الصورة الرمزية",
404
+ memberSince: "عضو منذ {date}",
405
+ enterField: "أدخل {field}",
406
+ profileUpdated: "تم تحديث الملف الشخصي",
407
+ avatarUpdated: "تم تحديث الصورة الرمزية",
408
+ failedToUpdate: "فشل التحديث",
409
+ failedToUploadAvatar: "فشل رفع الصورة الرمزية",
410
+ selectImageFile: "يرجى اختيار ملف صورة",
411
+ fileTooLarge: "حجم الملف يجب أن يكون أقل من 5 ميجابايت",
412
+ notAuthenticated: "غير مصادق",
413
+ pleaseLogIn: "يرجى تسجيل الدخول لعرض ملفك الشخصي.",
414
+ deleteAccountTitle: "حذف الحساب",
415
+ deleteAccountDesc: "لا يمكن التراجع عن هذا الإجراء. سيتم حذف حسابك نهائياً.",
416
+ typeToConfirm: "اكتب {word} للتأكيد:",
417
+ confirmationWord: "DELETE",
447
418
  },
448
419
  },
449
-
450
420
  api: {
451
421
  errors: {
452
- networkError: 'خطأ في الشبكة',
453
- connectionFailed: 'فشل الاتصال',
454
- requestTimeout: 'انتهت مهلة الطلب',
455
- serverUnavailable: 'الخادم غير متاح',
456
- invalidResponse: 'استجابة غير صالحة من الخادم',
457
- rateLimited: 'طلبات كثيرة جداً. يرجى الانتظار.',
422
+ networkError: "خطأ في الشبكة",
423
+ connectionFailed: "فشل الاتصال",
424
+ requestTimeout: "انتهت مهلة الطلب",
425
+ serverUnavailable: "الخادم غير متاح",
426
+ invalidResponse: "استجابة غير صالحة من الخادم",
427
+ rateLimited: "طلبات كثيرة جداً. يرجى الانتظار.",
458
428
  },
459
429
  status: {
460
- connecting: 'جارٍ الاتصال...',
461
- connected: 'متصل',
462
- disconnected: 'غير متصل',
463
- reconnecting: 'إعادة الاتصال...',
430
+ connecting: "جارٍ الاتصال...",
431
+ connected: "متصل",
432
+ disconnected: "غير متصل",
433
+ reconnecting: "إعادة الاتصال...",
464
434
  },
465
435
  logout: {
466
- title: 'تسجيل الخروج',
467
- message: 'هل أنت متأكد من تسجيل الخروج؟',
468
- confirm: 'تسجيل الخروج',
469
- cancel: 'إلغاء',
436
+ title: "تسجيل الخروج",
437
+ message: "هل أنت متأكد من تسجيل الخروج؟",
438
+ confirm: "تسجيل الخروج",
439
+ cancel: "إلغاء",
470
440
  },
471
441
  },
472
-
473
442
  tools: {
474
443
  code: {
475
- copyCode: 'نسخ الكود',
476
- noContent: 'لا يوجد محتوى',
444
+ copyCode: "نسخ الكود",
445
+ noContent: "لا يوجد محتوى",
477
446
  },
478
-
479
447
  diagram: {
480
- title: 'مخطط',
481
- clickToView: 'انقر للعرض بملء الشاشة',
448
+ title: "مخطط",
449
+ clickToView: "انقر للعرض بملء الشاشة",
482
450
  },
483
-
484
451
  image: {
485
- noImage: 'لا توجد صورة',
486
- failedToLoad: 'فشل تحميل الصورة',
487
- zoomIn: 'تكبير',
488
- zoomOut: 'تصغير',
489
- fitToView: 'ملاءمة للعرض',
490
- flipHorizontal: 'قلب أفقي',
491
- flipVertical: 'قلب عمودي',
492
- rotate: 'تدوير 90°',
493
- fullscreen: 'فتح بملء الشاشة',
452
+ noImage: "لا توجد صورة",
453
+ failedToLoad: "فشل تحميل الصورة",
454
+ zoomIn: "تكبير",
455
+ zoomOut: "تصغير",
456
+ fitToView: "ملاءمة للعرض",
457
+ flipHorizontal: "قلب أفقي",
458
+ flipVertical: "قلب عمودي",
459
+ rotate: "تدوير 90°",
460
+ fullscreen: "فتح بملء الشاشة",
494
461
  },
495
-
496
462
  gallery: {
497
- noImages: 'لا توجد صور',
498
- lightbox: 'عارض الصور',
499
- previous: 'الصورة السابقة',
500
- next: 'الصورة التالية',
501
- close: 'إغلاق العارض',
502
- download: 'تنزيل الصورة',
503
- share: 'مشاركة الصورة',
463
+ noImages: "لا توجد صور",
464
+ lightbox: "عارض الصور",
465
+ previous: "الصورة السابقة",
466
+ next: "الصورة التالية",
467
+ close: "إغلاق العارض",
468
+ download: "تنزيل الصورة",
469
+ share: "مشاركة الصورة",
504
470
  },
505
-
506
471
  video: {
507
- play: 'تشغيل الفيديو',
508
- fullscreen: 'ملء الشاشة',
509
- unavailable: 'الفيديو غير متاح',
472
+ play: "تشغيل الفيديو",
473
+ fullscreen: "ملء الشاشة",
474
+ unavailable: "الفيديو غير متاح",
510
475
  },
511
-
512
476
  audio: {
513
- restart: 'إعادة التشغيل',
514
- back: 'رجوع 5 ثوانٍ',
515
- forward: 'تقديم 5 ثوانٍ',
516
- volume: 'مستوى الصوت',
477
+ restart: "إعادة التشغيل",
478
+ back: "رجوع 5 ثوانٍ",
479
+ forward: "تقديم 5 ثوانٍ",
480
+ volume: "مستوى الصوت",
517
481
  },
518
-
519
482
  color: {
520
- pick: 'اختر لوناً',
483
+ pick: "اختر لوناً",
521
484
  },
522
-
523
485
  jsonForm: {
524
- validationErrors: 'أخطاء التحقق',
525
- addItem: 'إضافة عنصر',
526
- addFirstItem: 'إضافة أول عنصر',
527
- noItems: 'لم تتم إضافة أي عناصر بعد.',
486
+ validationErrors: "أخطاء التحقق",
487
+ addItem: "إضافة عنصر",
488
+ addFirstItem: "إضافة أول عنصر",
489
+ noItems: "لم تتم إضافة أي عناصر بعد.",
528
490
  },
529
-
530
-
531
491
  openapi: {
532
- response: 'الاستجابة',
533
- noResponse: 'لا يوجد محتوى استجابة',
534
- required: 'مطلوب',
535
- optional: 'اختياري',
536
- searchEndpoints: 'البحث في النقاط...',
537
- all: 'الكل',
538
- methods: 'الطرق',
539
- path: 'المسار',
540
- description: 'الوصف',
541
- navigation: 'التنقل',
542
- previous: 'السابق',
543
- next: 'التالي',
544
- bearerToken: 'أدخل رمز Bearer (اختياري، يستخدم JWT إذا كان فارغاً)',
492
+ response: "الاستجابة",
493
+ noResponse: "لا يوجد محتوى استجابة",
494
+ required: "مطلوب",
495
+ optional: "اختياري",
496
+ searchEndpoints: "البحث في النقاط...",
497
+ all: "الكل",
498
+ methods: "الطرق",
499
+ path: "المسار",
500
+ description: "الوصف",
501
+ navigation: "التنقل",
502
+ previous: "السابق",
503
+ next: "التالي",
504
+ bearerToken: "أدخل رمز Bearer (اختياري، يستخدم JWT إذا كان فارغاً)",
545
505
  },
546
-
547
-
548
506
  tour: {
549
- next: 'التالي',
550
- previous: 'رجوع',
551
- skip: 'تخطي',
552
- finish: 'إنهاء',
553
- close: 'إغلاق',
554
- stepOf: 'الخطوة {current} من {total}',
507
+ next: "التالي",
508
+ previous: "رجوع",
509
+ skip: "تخطي",
510
+ finish: "إنهاء",
511
+ close: "إغلاق",
512
+ stepOf: "الخطوة {current} من {total}",
555
513
  },
556
-
557
514
  upload: {
558
- dragDrop: 'اسحب وأفلت الملفات أو انقر للتصفح',
559
- dropHere: 'أفلت الملفات هنا',
560
- maxSize: 'الحد الأقصى {size} ميجابايت لكل ملف',
561
- uploading: 'جارٍ الرفع...',
562
- uploaded: 'تم الرفع',
563
- failed: 'فشل',
564
- retry: 'إعادة المحاولة',
565
- remove: 'إزالة',
566
- cancel: 'إلغاء',
567
- paused: 'متوقف مؤقتاً',
568
- pending: 'قيد الانتظار',
515
+ dragDrop: "اسحب وأفلت الملفات أو انقر للتصفح",
516
+ dropHere: "أفلت الملفات هنا",
517
+ maxSize: "الحد الأقصى {size} ميجابايت لكل ملف",
518
+ uploading: "جارٍ الرفع...",
519
+ uploaded: "تم الرفع",
520
+ failed: "فشل",
521
+ retry: "إعادة المحاولة",
522
+ remove: "إزالة",
523
+ cancel: "إلغاء",
524
+ paused: "متوقف مؤقتاً",
525
+ pending: "قيد الانتظار",
569
526
  },
570
527
  form: {
571
- title: 'نموذج',
528
+ title: "نموذج",
572
529
  },
573
530
  },
574
531
  }