@adminiumjs/i18n 0.1.2 → 0.2.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 (135) hide show
  1. package/dist/a11y-keys.d.ts +17 -0
  2. package/dist/a11y-keys.d.ts.map +1 -0
  3. package/dist/a11y-keys.js +478 -0
  4. package/dist/a11y-keys.js.map +1 -0
  5. package/dist/create-i18n.d.ts.map +1 -1
  6. package/dist/create-i18n.js +37 -4
  7. package/dist/create-i18n.js.map +1 -1
  8. package/dist/editing.d.ts +17 -0
  9. package/dist/editing.d.ts.map +1 -0
  10. package/dist/editing.js +16 -0
  11. package/dist/editing.js.map +1 -0
  12. package/dist/fallback.d.ts +24 -0
  13. package/dist/fallback.d.ts.map +1 -0
  14. package/dist/fallback.js +40 -0
  15. package/dist/fallback.js.map +1 -0
  16. package/dist/format-errors.d.ts +41 -0
  17. package/dist/format-errors.d.ts.map +1 -0
  18. package/dist/format-errors.js +63 -0
  19. package/dist/format-errors.js.map +1 -0
  20. package/dist/icu-format.d.ts +4 -0
  21. package/dist/icu-format.d.ts.map +1 -1
  22. package/dist/icu-format.js +43 -3
  23. package/dist/icu-format.js.map +1 -1
  24. package/dist/index.d.ts +10 -2
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +14 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/keys.d.ts +33 -0
  29. package/dist/keys.d.ts.map +1 -0
  30. package/dist/keys.js +77 -0
  31. package/dist/keys.js.map +1 -0
  32. package/dist/locales.d.ts +102 -13
  33. package/dist/locales.d.ts.map +1 -1
  34. package/dist/locales.js +142 -17
  35. package/dist/locales.js.map +1 -1
  36. package/dist/overrides.d.ts +62 -0
  37. package/dist/overrides.d.ts.map +1 -0
  38. package/dist/overrides.js +112 -0
  39. package/dist/overrides.js.map +1 -0
  40. package/dist/react.d.ts +6 -0
  41. package/dist/react.d.ts.map +1 -1
  42. package/dist/react.js +17 -26
  43. package/dist/react.js.map +1 -1
  44. package/dist/resources/ar-eg/common.d.ts +96 -0
  45. package/dist/resources/ar-eg/common.d.ts.map +1 -1
  46. package/dist/resources/ar-eg/common.js +103 -7
  47. package/dist/resources/ar-eg/common.js.map +1 -1
  48. package/dist/resources/ar-eg/ui.d.ts +586 -586
  49. package/dist/resources/ar-eg/ui.js +586 -586
  50. package/dist/resources/ar-eg/ui.js.map +1 -1
  51. package/dist/resources/cs-cz/common.d.ts +96 -0
  52. package/dist/resources/cs-cz/common.d.ts.map +1 -1
  53. package/dist/resources/cs-cz/common.js +101 -5
  54. package/dist/resources/cs-cz/common.js.map +1 -1
  55. package/dist/resources/cs-cz/ui.d.ts +582 -582
  56. package/dist/resources/cs-cz/ui.js +582 -582
  57. package/dist/resources/cs-cz/ui.js.map +1 -1
  58. package/dist/resources/da-dk/common.d.ts +97 -1
  59. package/dist/resources/da-dk/common.d.ts.map +1 -1
  60. package/dist/resources/da-dk/common.js +104 -8
  61. package/dist/resources/da-dk/common.js.map +1 -1
  62. package/dist/resources/da-dk/ui.d.ts +568 -568
  63. package/dist/resources/da-dk/ui.js +568 -568
  64. package/dist/resources/da-dk/ui.js.map +1 -1
  65. package/dist/resources/de-de/common.d.ts +100 -4
  66. package/dist/resources/de-de/common.d.ts.map +1 -1
  67. package/dist/resources/de-de/common.js +107 -11
  68. package/dist/resources/de-de/common.js.map +1 -1
  69. package/dist/resources/de-de/ui.d.ts +569 -569
  70. package/dist/resources/de-de/ui.js +569 -569
  71. package/dist/resources/de-de/ui.js.map +1 -1
  72. package/dist/resources/en-us/common.d.ts +96 -0
  73. package/dist/resources/en-us/common.d.ts.map +1 -1
  74. package/dist/resources/en-us/common.js +103 -7
  75. package/dist/resources/en-us/common.js.map +1 -1
  76. package/dist/resources/fr-fr/common.d.ts +98 -2
  77. package/dist/resources/fr-fr/common.d.ts.map +1 -1
  78. package/dist/resources/fr-fr/common.js +105 -9
  79. package/dist/resources/fr-fr/common.js.map +1 -1
  80. package/dist/resources/fr-fr/ui.d.ts +559 -559
  81. package/dist/resources/fr-fr/ui.js +559 -559
  82. package/dist/resources/fr-fr/ui.js.map +1 -1
  83. package/dist/resources/zh-cn/common.d.ts +97 -1
  84. package/dist/resources/zh-cn/common.d.ts.map +1 -1
  85. package/dist/resources/zh-cn/common.js +104 -8
  86. package/dist/resources/zh-cn/common.js.map +1 -1
  87. package/dist/resources/zh-cn/ui.d.ts +575 -575
  88. package/dist/resources/zh-cn/ui.js +575 -575
  89. package/dist/resources/zh-cn/ui.js.map +1 -1
  90. package/dist/resources/zh-tw/common.d.ts +96 -0
  91. package/dist/resources/zh-tw/common.d.ts.map +1 -1
  92. package/dist/resources/zh-tw/common.js +103 -7
  93. package/dist/resources/zh-tw/common.js.map +1 -1
  94. package/dist/resources/zh-tw/ui.d.ts +575 -575
  95. package/dist/resources/zh-tw/ui.js +575 -575
  96. package/dist/resources/zh-tw/ui.js.map +1 -1
  97. package/dist/review-status.d.ts +55 -0
  98. package/dist/review-status.d.ts.map +1 -0
  99. package/dist/review-status.js +59 -0
  100. package/dist/review-status.js.map +1 -0
  101. package/dist/revision.d.ts +35 -0
  102. package/dist/revision.d.ts.map +1 -0
  103. package/dist/revision.js +55 -0
  104. package/dist/revision.js.map +1 -0
  105. package/dist/server.d.ts +36 -0
  106. package/dist/server.d.ts.map +1 -0
  107. package/dist/server.js +35 -0
  108. package/dist/server.js.map +1 -0
  109. package/dist/validate-message.d.ts +57 -0
  110. package/dist/validate-message.d.ts.map +1 -0
  111. package/dist/validate-message.js +178 -0
  112. package/dist/validate-message.js.map +1 -0
  113. package/locales/ar-EG/.meta.json +11134 -0
  114. package/locales/ar-EG/common.json +103 -7
  115. package/locales/ar-EG/ui.json +586 -586
  116. package/locales/cs-CZ/.meta.json +11134 -0
  117. package/locales/cs-CZ/common.json +101 -5
  118. package/locales/cs-CZ/ui.json +582 -582
  119. package/locales/da-DK/.meta.json +11134 -0
  120. package/locales/da-DK/common.json +104 -8
  121. package/locales/da-DK/ui.json +568 -568
  122. package/locales/de-DE/.meta.json +11134 -0
  123. package/locales/de-DE/common.json +107 -11
  124. package/locales/de-DE/ui.json +569 -569
  125. package/locales/en-US/common.json +103 -7
  126. package/locales/fr-FR/.meta.json +11134 -0
  127. package/locales/fr-FR/common.json +105 -9
  128. package/locales/fr-FR/ui.json +559 -559
  129. package/locales/zh-CN/.meta.json +11134 -0
  130. package/locales/zh-CN/common.json +104 -8
  131. package/locales/zh-CN/ui.json +575 -575
  132. package/locales/zh-TW/.meta.json +11134 -0
  133. package/locales/zh-TW/common.json +103 -7
  134. package/locales/zh-TW/ui.json +575 -575
  135. package/package.json +10 -2
package/dist/react.js CHANGED
@@ -6,10 +6,11 @@ import { jsx as _jsx } from "react/jsx-runtime";
6
6
  * plus hooks bound to the active locale. The `t()` call signature matches the
7
7
  * dashboard's key+fallback convention.
8
8
  */
9
- import { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
10
- import { IntlMessageFormat } from 'intl-messageformat';
9
+ import { createContext, useCallback, useContext, useEffect, useMemo, useState, useSyncExternalStore, } from 'react';
10
+ import { formatFallback } from './fallback.js';
11
11
  import { getFormatters } from './format/index.js';
12
12
  import { isRtlLocale, localeFromTag, tagForLocale } from './locales.js';
13
+ import { getI18nRevision, subscribeI18nRevision } from './revision.js';
13
14
  const I18nContext = createContext(null);
14
15
  export function I18nProvider({ i18n, children }) {
15
16
  const [locale, setLocale] = useState(() => localeFromTag(i18n.language ?? 'en-US'));
@@ -23,7 +24,8 @@ export function I18nProvider({ i18n, children }) {
23
24
  i18n.off('languageChanged', onChanged);
24
25
  };
25
26
  }, [i18n]);
26
- const value = useMemo(() => ({ i18n, locale }), [i18n, locale]);
27
+ const revision = useSyncExternalStore(subscribeI18nRevision, getI18nRevision, getI18nRevision);
28
+ const value = useMemo(() => ({ i18n, locale, revision }), [i18n, locale, revision]);
27
29
  return _jsx(I18nContext.Provider, { value: value, children: children });
28
30
  }
29
31
  function useI18nContext(hook) {
@@ -46,33 +48,19 @@ export function useRtl() {
46
48
  }
47
49
  /** Translator bound to the provider instance: `t(key, fallback, args?)`. */
48
50
  export function useT() {
49
- const { i18n, locale } = useI18nContext('useT()');
51
+ const { i18n, locale, revision } = useI18nContext('useT()');
50
52
  return useCallback((key, fallback, args) => i18n.t(key, { defaultValue: fallback, ...args }),
51
- // `locale` is a dependency on purpose: a language switch re-binds the
52
- // callback so memoized consumers re-render with fresh strings.
53
- [i18n, locale]);
53
+ // `locale` and `revision` are dependencies on purpose: a language switch
54
+ // OR a runtime-override change re-binds the callback, so memoized
55
+ // consumers re-render with fresh strings either way (23 §4.4).
56
+ [i18n, locale, revision]);
54
57
  }
55
58
  /** Provider context, or `null` outside an `<I18nProvider>` (advanced probe). */
56
59
  export function useMaybeI18n() {
57
60
  return useContext(I18nContext);
58
61
  }
59
- // Fallback-path message cache for `useMaybeT` (mirrors IcuFormat.parse's).
60
- const fallbackMessageCache = new Map();
61
- function formatFallback(fallback, args) {
62
- if (args === undefined || !fallback.includes('{'))
63
- return fallback;
64
- try {
65
- let message = fallbackMessageCache.get(fallback);
66
- if (message === undefined) {
67
- message = new IntlMessageFormat(fallback, 'en-US', undefined, { ignoreTag: true });
68
- fallbackMessageCache.set(fallback, message);
69
- }
70
- return String(message.format(args));
71
- }
72
- catch {
73
- return fallback;
74
- }
75
- }
62
+ // Shared with the dashboard's module-level `t()` so the two no-instance
63
+ // paths cannot drift (see fallback.ts).
76
64
  /**
77
65
  * `useT` for packages whose components must also render OUTSIDE an
78
66
  * `<I18nProvider>` (widget chrome in bare tests/Storybook/embeds): inside a
@@ -84,9 +72,12 @@ export function useMaybeT() {
84
72
  const context = useContext(I18nContext);
85
73
  const i18n = context?.i18n;
86
74
  const locale = context?.locale;
75
+ // Outside a provider there is no context revision to depend on, so subscribe
76
+ // directly — a widget rendered in an embed still has to pick up an edit.
77
+ const revision = useSyncExternalStore(subscribeI18nRevision, getI18nRevision, getI18nRevision);
87
78
  return useCallback((key, fallback, args) => i18n === undefined ? formatFallback(fallback, args) : i18n.t(key, { defaultValue: fallback, ...args }),
88
- // `locale` re-binds on language switch, same as `useT`.
89
- [i18n, locale]);
79
+ // `locale`/`revision` re-bind on a switch or an override change, as in `useT`.
80
+ [i18n, locale, revision]);
90
81
  }
91
82
  /** Locale-bound Intl formatters (10 §4.1) — `useFmt().number(…)` etc. */
92
83
  export function useFmt() {
package/dist/react.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"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"}
@@ -51,6 +51,9 @@ declare const _default: {
51
51
  readonly rateLimited: "طلبات كثيرة جدًا — حاول مجددًا لاحقًا.";
52
52
  readonly failed: "حدث خطأ ما. حاول مجددًا.";
53
53
  readonly smtpUnconfigured: "لا يوجد خادم بريد مُهيّأ في نسخة Adminium هذه، لذا لا يمكنها إرسال رابط إعادة التعيين. اطلب من المسؤول إعادة تعيين كلمة المرور نيابةً عنك.";
54
+ readonly subtitle: "أدخل بريدك الإلكتروني وسنرسل إليك رابط إعادة التعيين.";
55
+ readonly sentBody: "أرسلنا رابط إعادة التعيين إلى {email}. تنتهي صلاحيته خلال 15 دقيقة.";
56
+ readonly resendHint: "لم يصلك؟";
54
57
  };
55
58
  readonly reset: {
56
59
  readonly title: "تعيين كلمة مرور جديدة";
@@ -67,6 +70,7 @@ declare const _default: {
67
70
  readonly tooShort: "استخدم 8 أحرف على الأقل.";
68
71
  readonly submit: "إعادة تعيين كلمة المرور";
69
72
  readonly failed: "فشلت إعادة التعيين. حاول مجددًا.";
73
+ readonly mismatch: "كلمتا المرور غير متطابقتين.";
70
74
  };
71
75
  readonly otp: {
72
76
  readonly title: "المصادقة الثنائية";
@@ -113,6 +117,7 @@ declare const _default: {
113
117
  readonly userMenu: "قائمة الحساب";
114
118
  readonly profile: "الملف الشخصي";
115
119
  readonly preferences: "التفضيلات";
120
+ readonly studio: "Studio";
116
121
  readonly signOut: "تسجيل الخروج";
117
122
  };
118
123
  readonly palette: {
@@ -128,6 +133,10 @@ declare const _default: {
128
133
  readonly footerNavigate: "تنقّل";
129
134
  readonly footerOpen: "اختيار";
130
135
  readonly footerClose: "إغلاق";
136
+ readonly recent: "الأخيرة";
137
+ readonly searching: "جارٍ البحث في السجلات…";
138
+ readonly records: "السجلات";
139
+ readonly empty: "لا توجد نتائج لـ «{query}»";
131
140
  };
132
141
  readonly shortcuts: {
133
142
  readonly title: "اختصارات لوحة المفاتيح";
@@ -138,6 +147,7 @@ declare const _default: {
138
147
  readonly panel: "إظهار لوحة الاختصارات";
139
148
  readonly search: "التركيز على البحث";
140
149
  readonly sidebar: "إظهار/إخفاء الشريط الجانبي";
150
+ readonly studio: "الانتقال إلى Studio";
141
151
  readonly theme: "التبديل بين الفاتح / الداكن";
142
152
  readonly then: "ثم";
143
153
  readonly footerPre: "اضغط";
@@ -146,6 +156,85 @@ declare const _default: {
146
156
  readonly states: {
147
157
  readonly checked: "آخر فحص قبل 8 ثوانٍ";
148
158
  readonly diagnostics: "التشخيصات";
159
+ readonly reference: {
160
+ readonly label: "المرجع";
161
+ readonly copy: "نسخ المرجع";
162
+ readonly copied: "تم النسخ";
163
+ readonly hint: "اذكره عند الإبلاغ عن المشكلة — سجل الخادم لديك يحتوي على المعرّف نفسه.";
164
+ };
165
+ readonly notFound: {
166
+ readonly title: "الصفحة غير موجودة";
167
+ readonly body: "لم نتمكن من العثور على هذه الصفحة. ربما نُقلت أو أن الرابط معطَّل.";
168
+ readonly primary: "العودة إلى لوحة المعلومات";
169
+ readonly secondary: "التواصل مع الدعم";
170
+ };
171
+ readonly forbidden: {
172
+ readonly title: "ليس لديك حق الوصول";
173
+ readonly body: "هذه اللوحة مقيَّدة. اطلب من مسؤول مساحة العمل منحك حق الوصول.";
174
+ readonly primary: "طلب الوصول";
175
+ readonly secondary: "رجوع";
176
+ };
177
+ readonly error: {
178
+ readonly title: "حدث خطأ ما";
179
+ readonly body: "واجه Adminium خطأ غير متوقع أثناء معالجة هذا الطلب. التفاصيل موجودة في سجل الخادم.";
180
+ readonly primary: "حاول مجددًا";
181
+ };
182
+ readonly dbUnreachable: {
183
+ readonly title: "تعذّر الوصول إلى قاعدة البيانات";
184
+ readonly body: "تعذّر الاتصال بقاعدة البيانات prod-db. ستعود لوحاتك للعمل بمجرد استعادة الاتصال.";
185
+ readonly primary: "إعادة محاولة الاتصال";
186
+ readonly secondary: "تعديل الاتصال";
187
+ readonly diag: {
188
+ readonly status: "انتهت مهلة الاتصال (10s)";
189
+ readonly hint: "أضف 52.9.14.2 لقائمة السماح ثم أعد المحاولة";
190
+ };
191
+ };
192
+ readonly maintenance: {
193
+ readonly title: "صيانة مجدولة";
194
+ readonly body: "يخضع Adminium لأعمال صيانة وسيعود قريبًا. شكرًا لصبرك.";
195
+ readonly primary: "عرض الحالة";
196
+ };
197
+ readonly rateLimited: {
198
+ readonly title: "تم بلوغ حد الطلبات";
199
+ readonly body: "طلبات كثيرة جدًا في وقت قصير. انتظر بضع دقائق ثم حاول مجددًا.";
200
+ readonly primary: "حاول مجددًا";
201
+ readonly secondary: "رجوع";
202
+ };
203
+ readonly offline: {
204
+ readonly title: "أنت غير متصل بالإنترنت";
205
+ readonly body: "تحقق من اتصالك بالإنترنت. سيعيد Adminium الاتصال تلقائيًا بمجرد عودتك.";
206
+ readonly primary: "أعد المحاولة الآن";
207
+ readonly banner: "غير متصل — جارٍ إعادة الاتصال…";
208
+ };
209
+ readonly expiredLink: {
210
+ readonly title: "انتهت صلاحية هذا الرابط";
211
+ readonly body: "تنتهي صلاحية روابط الدخول السحرية بعد 10 دقائق. اطلب رابطًا جديدًا للمتابعة.";
212
+ readonly primary: "إرسال رابط جديد";
213
+ readonly secondary: "العودة إلى تسجيل الدخول";
214
+ };
215
+ readonly expiredSession: {
216
+ readonly title: "انتهت جلستك";
217
+ readonly body: "لأمانك، تم تسجيل خروجك بعد فترة من عدم النشاط. سجِّل الدخول لتكمل من حيث توقفت.";
218
+ readonly primary: "تسجيل الدخول مجددًا";
219
+ };
220
+ readonly emptyNoSources: {
221
+ readonly title: "لا توجد مصادر بيانات بعد";
222
+ readonly body: "وصّل قاعدة بيانات PostgreSQL وسينشئ Adminium أول لوحة إدارة لك.";
223
+ readonly primary: "توصيل قاعدة بيانات";
224
+ readonly secondary: "استيراد بيانات نموذجية";
225
+ };
226
+ readonly readOnly: {
227
+ readonly title: "وضع القراءة فقط";
228
+ readonly body: "لديك وصول Viewer إلى مساحة العمل هذه. يمكنك استكشاف لوحات المعلومات، لكن التعديل والإجراءات المدمِّرة معطَّلة.";
229
+ readonly primary: "طلب صلاحية التعديل";
230
+ readonly secondary: "فهمت";
231
+ };
232
+ readonly suspended: {
233
+ readonly title: "مساحة العمل هذه موقوفة";
234
+ readonly body: "أوقف أحد المسؤولين مساحة العمل هذه. بياناتك محفوظة — تواصل مع مالك مساحة العمل لاستعادة الوصول.";
235
+ readonly primary: "التواصل مع المالك";
236
+ readonly secondary: "رجوع";
237
+ };
149
238
  };
150
239
  readonly notFound: {
151
240
  readonly title: "هذه الصفحة مفقودة";
@@ -155,6 +244,7 @@ declare const _default: {
155
244
  readonly popular: "وجهات شائعة";
156
245
  readonly goBack: "رجوع";
157
246
  readonly backToDashboard: "العودة إلى لوحة المعلومات";
247
+ readonly noMatches: "لا توجد صفحات تطابق «{query}»";
158
248
  };
159
249
  readonly page: {
160
250
  readonly invalid: {
@@ -206,6 +296,7 @@ declare const _default: {
206
296
  readonly locale: {
207
297
  readonly label: "اللغة";
208
298
  readonly directionNote: "اتجاه النص: من اليمين إلى اليسار (يُضبط تلقائيًا حسب اللغة)";
299
+ readonly communityDraft: "هذه الترجمة مسودة مجتمعية — لم يراجعها متحدث أصلي بعد.";
209
300
  };
210
301
  };
211
302
  readonly account: {
@@ -1028,6 +1119,7 @@ declare const _default: {
1028
1119
  readonly pii: "بيانات شخصية";
1029
1120
  readonly masked: "مخفي";
1030
1121
  };
1122
+ readonly unavailableTitle: "محرّر إعادة تعيين المخطط غير متوفر";
1031
1123
  };
1032
1124
  };
1033
1125
  readonly onboarding: {
@@ -1963,6 +2055,10 @@ declare const _default: {
1963
2055
  readonly backupCompleted: "اكتمل النسخ الاحتياطي";
1964
2056
  };
1965
2057
  };
2058
+ readonly theme: {
2059
+ readonly toLight: "التبديل إلى السمة الفاتحة";
2060
+ readonly toDark: "التبديل إلى السمة الداكنة";
2061
+ };
1966
2062
  };
1967
2063
  export default _default;
1968
2064
  //# sourceMappingURL=common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/resources/ar-eg/common.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACH,wBAq6DW"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/resources/ar-eg/common.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACH,wBAqgEW"}
@@ -50,7 +50,10 @@ export default {
50
50
  "done": "العودة إلى تسجيل الدخول",
51
51
  "rateLimited": "طلبات كثيرة جدًا — حاول مجددًا لاحقًا.",
52
52
  "failed": "حدث خطأ ما. حاول مجددًا.",
53
- "smtpUnconfigured": "لا يوجد خادم بريد مُهيّأ في نسخة Adminium هذه، لذا لا يمكنها إرسال رابط إعادة التعيين. اطلب من المسؤول إعادة تعيين كلمة المرور نيابةً عنك."
53
+ "smtpUnconfigured": "لا يوجد خادم بريد مُهيّأ في نسخة Adminium هذه، لذا لا يمكنها إرسال رابط إعادة التعيين. اطلب من المسؤول إعادة تعيين كلمة المرور نيابةً عنك.",
54
+ "subtitle": "أدخل بريدك الإلكتروني وسنرسل إليك رابط إعادة التعيين.",
55
+ "sentBody": "أرسلنا رابط إعادة التعيين إلى {email}. تنتهي صلاحيته خلال 15 دقيقة.",
56
+ "resendHint": "لم يصلك؟"
54
57
  },
55
58
  "reset": {
56
59
  "title": "تعيين كلمة مرور جديدة",
@@ -66,7 +69,8 @@ export default {
66
69
  "strong": "قوية",
67
70
  "tooShort": "استخدم 8 أحرف على الأقل.",
68
71
  "submit": "إعادة تعيين كلمة المرور",
69
- "failed": "فشلت إعادة التعيين. حاول مجددًا."
72
+ "failed": "فشلت إعادة التعيين. حاول مجددًا.",
73
+ "mismatch": "كلمتا المرور غير متطابقتين."
70
74
  },
71
75
  "otp": {
72
76
  "title": "المصادقة الثنائية",
@@ -113,6 +117,7 @@ export default {
113
117
  "userMenu": "قائمة الحساب",
114
118
  "profile": "الملف الشخصي",
115
119
  "preferences": "التفضيلات",
120
+ "studio": "Studio",
116
121
  "signOut": "تسجيل الخروج"
117
122
  },
118
123
  "palette": {
@@ -127,7 +132,11 @@ export default {
127
132
  "themeLight": "التبديل إلى السمة الفاتحة",
128
133
  "footerNavigate": "تنقّل",
129
134
  "footerOpen": "اختيار",
130
- "footerClose": "إغلاق"
135
+ "footerClose": "إغلاق",
136
+ "recent": "الأخيرة",
137
+ "searching": "جارٍ البحث في السجلات…",
138
+ "records": "السجلات",
139
+ "empty": "لا توجد نتائج لـ «{query}»"
131
140
  },
132
141
  "shortcuts": {
133
142
  "title": "اختصارات لوحة المفاتيح",
@@ -138,6 +147,7 @@ export default {
138
147
  "panel": "إظهار لوحة الاختصارات",
139
148
  "search": "التركيز على البحث",
140
149
  "sidebar": "إظهار/إخفاء الشريط الجانبي",
150
+ "studio": "الانتقال إلى Studio",
141
151
  "theme": "التبديل بين الفاتح / الداكن",
142
152
  "then": "ثم",
143
153
  "footerPre": "اضغط",
@@ -145,7 +155,86 @@ export default {
145
155
  },
146
156
  "states": {
147
157
  "checked": "آخر فحص قبل 8 ثوانٍ",
148
- "diagnostics": "التشخيصات"
158
+ "diagnostics": "التشخيصات",
159
+ "reference": {
160
+ "label": "المرجع",
161
+ "copy": "نسخ المرجع",
162
+ "copied": "تم النسخ",
163
+ "hint": "اذكره عند الإبلاغ عن المشكلة — سجل الخادم لديك يحتوي على المعرّف نفسه."
164
+ },
165
+ "notFound": {
166
+ "title": "الصفحة غير موجودة",
167
+ "body": "لم نتمكن من العثور على هذه الصفحة. ربما نُقلت أو أن الرابط معطَّل.",
168
+ "primary": "العودة إلى لوحة المعلومات",
169
+ "secondary": "التواصل مع الدعم"
170
+ },
171
+ "forbidden": {
172
+ "title": "ليس لديك حق الوصول",
173
+ "body": "هذه اللوحة مقيَّدة. اطلب من مسؤول مساحة العمل منحك حق الوصول.",
174
+ "primary": "طلب الوصول",
175
+ "secondary": "رجوع"
176
+ },
177
+ "error": {
178
+ "title": "حدث خطأ ما",
179
+ "body": "واجه Adminium خطأ غير متوقع أثناء معالجة هذا الطلب. التفاصيل موجودة في سجل الخادم.",
180
+ "primary": "حاول مجددًا"
181
+ },
182
+ "dbUnreachable": {
183
+ "title": "تعذّر الوصول إلى قاعدة البيانات",
184
+ "body": "تعذّر الاتصال بقاعدة البيانات prod-db. ستعود لوحاتك للعمل بمجرد استعادة الاتصال.",
185
+ "primary": "إعادة محاولة الاتصال",
186
+ "secondary": "تعديل الاتصال",
187
+ "diag": {
188
+ "status": "انتهت مهلة الاتصال (10s)",
189
+ "hint": "أضف 52.9.14.2 لقائمة السماح ثم أعد المحاولة"
190
+ }
191
+ },
192
+ "maintenance": {
193
+ "title": "صيانة مجدولة",
194
+ "body": "يخضع Adminium لأعمال صيانة وسيعود قريبًا. شكرًا لصبرك.",
195
+ "primary": "عرض الحالة"
196
+ },
197
+ "rateLimited": {
198
+ "title": "تم بلوغ حد الطلبات",
199
+ "body": "طلبات كثيرة جدًا في وقت قصير. انتظر بضع دقائق ثم حاول مجددًا.",
200
+ "primary": "حاول مجددًا",
201
+ "secondary": "رجوع"
202
+ },
203
+ "offline": {
204
+ "title": "أنت غير متصل بالإنترنت",
205
+ "body": "تحقق من اتصالك بالإنترنت. سيعيد Adminium الاتصال تلقائيًا بمجرد عودتك.",
206
+ "primary": "أعد المحاولة الآن",
207
+ "banner": "غير متصل — جارٍ إعادة الاتصال…"
208
+ },
209
+ "expiredLink": {
210
+ "title": "انتهت صلاحية هذا الرابط",
211
+ "body": "تنتهي صلاحية روابط الدخول السحرية بعد 10 دقائق. اطلب رابطًا جديدًا للمتابعة.",
212
+ "primary": "إرسال رابط جديد",
213
+ "secondary": "العودة إلى تسجيل الدخول"
214
+ },
215
+ "expiredSession": {
216
+ "title": "انتهت جلستك",
217
+ "body": "لأمانك، تم تسجيل خروجك بعد فترة من عدم النشاط. سجِّل الدخول لتكمل من حيث توقفت.",
218
+ "primary": "تسجيل الدخول مجددًا"
219
+ },
220
+ "emptyNoSources": {
221
+ "title": "لا توجد مصادر بيانات بعد",
222
+ "body": "وصّل قاعدة بيانات PostgreSQL وسينشئ Adminium أول لوحة إدارة لك.",
223
+ "primary": "توصيل قاعدة بيانات",
224
+ "secondary": "استيراد بيانات نموذجية"
225
+ },
226
+ "readOnly": {
227
+ "title": "وضع القراءة فقط",
228
+ "body": "لديك وصول Viewer إلى مساحة العمل هذه. يمكنك استكشاف لوحات المعلومات، لكن التعديل والإجراءات المدمِّرة معطَّلة.",
229
+ "primary": "طلب صلاحية التعديل",
230
+ "secondary": "فهمت"
231
+ },
232
+ "suspended": {
233
+ "title": "مساحة العمل هذه موقوفة",
234
+ "body": "أوقف أحد المسؤولين مساحة العمل هذه. بياناتك محفوظة — تواصل مع مالك مساحة العمل لاستعادة الوصول.",
235
+ "primary": "التواصل مع المالك",
236
+ "secondary": "رجوع"
237
+ }
149
238
  },
150
239
  "notFound": {
151
240
  "title": "هذه الصفحة مفقودة",
@@ -154,7 +243,8 @@ export default {
154
243
  "matches": "صفحات مطابقة",
155
244
  "popular": "وجهات شائعة",
156
245
  "goBack": "رجوع",
157
- "backToDashboard": "العودة إلى لوحة المعلومات"
246
+ "backToDashboard": "العودة إلى لوحة المعلومات",
247
+ "noMatches": "لا توجد صفحات تطابق «{query}»"
158
248
  },
159
249
  "page": {
160
250
  "invalid": {
@@ -205,7 +295,8 @@ export default {
205
295
  },
206
296
  "locale": {
207
297
  "label": "اللغة",
208
- "directionNote": "اتجاه النص: من اليمين إلى اليسار (يُضبط تلقائيًا حسب اللغة)"
298
+ "directionNote": "اتجاه النص: من اليمين إلى اليسار (يُضبط تلقائيًا حسب اللغة)",
299
+ "communityDraft": "هذه الترجمة مسودة مجتمعية — لم يراجعها متحدث أصلي بعد."
209
300
  }
210
301
  },
211
302
  "account": {
@@ -1027,7 +1118,8 @@ export default {
1027
1118
  "unique": "UNIQUE",
1028
1119
  "pii": "بيانات شخصية",
1029
1120
  "masked": "مخفي"
1030
- }
1121
+ },
1122
+ "unavailableTitle": "محرّر إعادة تعيين المخطط غير متوفر"
1031
1123
  }
1032
1124
  },
1033
1125
  "onboarding": {
@@ -1962,6 +2054,10 @@ export default {
1962
2054
  "reportFailed": "فشل التقرير المجدول",
1963
2055
  "backupCompleted": "اكتمل النسخ الاحتياطي"
1964
2056
  }
2057
+ },
2058
+ "theme": {
2059
+ "toLight": "التبديل إلى السمة الفاتحة",
2060
+ "toDark": "التبديل إلى السمة الداكنة"
1965
2061
  }
1966
2062
  };
1967
2063
  //# sourceMappingURL=common.js.map