mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-20 13:51:45 +00:00
e63a7799fb
Every non-en locale now exposes the exact same flat key set as en. Keys that had drifted out of sync are backfilled with the English source value (tagged en-fallback) so t() resolves a real string instead of relying on the silent runtime fallback; no existing translation was touched and no key was removed. Add a parity test that imports each aggregated locale bundle and asserts its key set matches en, with a diagnostic listing of any missing/extra keys. This complements the file-level check in shared/scripts by guarding the merged export the app actually serves. Finish internationalising OAuthAuthorizePage: the ~15 remaining hardcoded English chrome strings now go through oauth.authorize.* keys (English source in en, en-fallback placeholders elsewhere). Markup and behaviour are unchanged.
346 lines
24 KiB
TypeScript
346 lines
24 KiB
TypeScript
import type { TranslationStrings } from '../types';
|
|
|
|
const admin: TranslationStrings = {
|
|
'admin.notifications.title': 'الإشعارات',
|
|
'admin.notifications.hint':
|
|
'اختر قناة إشعارات واحدة. يمكن تفعيل واحدة فقط في كل مرة.',
|
|
'admin.notifications.none': 'معطّل',
|
|
'admin.notifications.email': 'البريد الإلكتروني (SMTP)',
|
|
'admin.ntfy.hint':
|
|
'تسمح للمستخدمين بإعداد موضوعات ntfy الخاصة لتلقي إشعارات الدفع. قم بتعيين الخادم الافتراضي أدناه لملء إعدادات المستخدم مسبقًا.',
|
|
'admin.notifications.save': 'حفظ إعدادات الإشعارات',
|
|
'admin.notifications.saved': 'تم حفظ إعدادات الإشعارات',
|
|
'admin.notifications.testWebhook': 'إرسال webhook تجريبي',
|
|
'admin.notifications.testWebhookSuccess': 'تم إرسال webhook التجريبي بنجاح',
|
|
'admin.notifications.testWebhookFailed': 'فشل إرسال webhook التجريبي',
|
|
'admin.notifications.testNtfy': 'إرسال Ntfy تجريبي',
|
|
'admin.notifications.testNtfySuccess': 'تم إرسال Ntfy التجريبي بنجاح',
|
|
'admin.notifications.testNtfyFailed': 'فشل إرسال Ntfy التجريبي',
|
|
'admin.notifications.inappPanel.hint':
|
|
'الإشعارات داخل التطبيق نشطة دائمًا ولا يمكن تعطيلها بشكل عام.',
|
|
'admin.notifications.adminWebhookPanel.title': 'Webhook المسؤول',
|
|
'admin.notifications.adminWebhookPanel.hint':
|
|
'يُستخدم هذا الـ Webhook حصريًا لإشعارات المسؤول (مثل تنبيهات الإصدارات). وهو مستقل عن Webhooks المستخدمين ويُرسل تلقائيًا عند تعيين رابط URL.',
|
|
'admin.notifications.adminWebhookPanel.saved': 'تم حفظ رابط Webhook المسؤول',
|
|
'admin.notifications.adminWebhookPanel.testSuccess':
|
|
'تم إرسال Webhook الاختباري بنجاح',
|
|
'admin.notifications.adminWebhookPanel.testFailed':
|
|
'فشل إرسال Webhook الاختباري',
|
|
'admin.notifications.adminWebhookPanel.alwaysOnHint':
|
|
'يُرسل Webhook المسؤول تلقائيًا عند تعيين رابط URL',
|
|
'admin.notifications.adminNtfyPanel.title': 'Ntfy المسؤول',
|
|
'admin.notifications.adminNtfyPanel.hint':
|
|
'يُستخدم موضوع Ntfy هذا حصريًا لإشعارات المسؤول (مثل تنبيهات الإصدارات). وهو مستقل عن مواضيع المستخدمين ويُرسل دائمًا عند تهيئته.',
|
|
'admin.notifications.adminNtfyPanel.serverLabel': 'عنوان URL خادم Ntfy',
|
|
'admin.notifications.adminNtfyPanel.serverHint':
|
|
'يُستخدم أيضًا كخادم افتراضي لإشعارات ntfy للمستخدمين. اتركه فارغًا لاستخدام ntfy.sh. يمكن للمستخدمين تغييره في إعداداتهم الخاصة.',
|
|
'admin.notifications.adminNtfyPanel.topicLabel': 'موضوع المسؤول',
|
|
'admin.notifications.adminNtfyPanel.tokenLabel': 'رمز الوصول (اختياري)',
|
|
'admin.notifications.adminNtfyPanel.tokenCleared': 'تم مسح رمز وصول المسؤول',
|
|
'admin.notifications.adminNtfyPanel.saved': 'تم حفظ إعدادات Ntfy للمسؤول',
|
|
'admin.notifications.adminNtfyPanel.test': 'إرسال Ntfy تجريبي',
|
|
'admin.notifications.adminNtfyPanel.testSuccess':
|
|
'تم إرسال Ntfy التجريبي بنجاح',
|
|
'admin.notifications.adminNtfyPanel.testFailed': 'فشل إرسال Ntfy التجريبي',
|
|
'admin.notifications.adminNtfyPanel.alwaysOnHint':
|
|
'يُرسل Ntfy للمسؤول دائمًا عند تهيئة موضوع',
|
|
'admin.notifications.adminNotificationsHint':
|
|
'حدد القنوات التي تُسلّم إشعارات المسؤول (مثل تنبيهات الإصدارات). يُرسل الـ Webhook تلقائيًا عند تعيين رابط URL لـ Webhook المسؤول.',
|
|
'admin.notifications.tripReminders.title': 'تذكيرات الرحلات',
|
|
'admin.notifications.tripReminders.hint':
|
|
'إرسال تذكير قبل بدء الرحلة (يتطلب تعيين أيام التذكير على الرحلة).',
|
|
'admin.notifications.tripReminders.enabled': 'تم تفعيل تذكيرات الرحلات',
|
|
'admin.notifications.tripReminders.disabled': 'تم تعطيل تذكيرات الرحلات',
|
|
'admin.smtp.title': 'البريد والإشعارات',
|
|
'admin.smtp.hint': 'تكوين SMTP لإرسال إشعارات البريد الإلكتروني.',
|
|
'admin.smtp.testButton': 'إرسال بريد تجريبي',
|
|
'admin.webhook.hint':
|
|
'إرسال الإشعارات إلى webhook خارجي (Discord، Slack، إلخ).',
|
|
'admin.smtp.testSuccess': 'تم إرسال البريد التجريبي بنجاح',
|
|
'admin.smtp.testFailed': 'فشل إرسال البريد التجريبي',
|
|
'admin.title': 'الإدارة',
|
|
'admin.subtitle': 'إدارة المستخدمين وإعدادات النظام',
|
|
'admin.tabs.users': 'المستخدمون',
|
|
'admin.tabs.categories': 'الفئات',
|
|
'admin.tabs.backup': 'النسخ الاحتياطي',
|
|
'admin.tabs.notifications': 'الإشعارات',
|
|
'admin.tabs.audit': 'تدقيق',
|
|
'admin.stats.users': 'المستخدمون',
|
|
'admin.stats.trips': 'الرحلات',
|
|
'admin.stats.places': 'الأماكن',
|
|
'admin.stats.photos': 'الصور',
|
|
'admin.stats.files': 'الملفات',
|
|
'admin.table.user': 'المستخدم',
|
|
'admin.table.email': 'البريد الإلكتروني',
|
|
'admin.table.role': 'الدور',
|
|
'admin.table.created': 'تم الإنشاء',
|
|
'admin.table.lastLogin': 'آخر تسجيل دخول',
|
|
'admin.table.actions': 'الإجراءات',
|
|
'admin.you': '(أنت)',
|
|
'admin.editUser': 'تعديل المستخدم',
|
|
'admin.newPassword': 'كلمة مرور جديدة',
|
|
'admin.newPasswordHint': 'اتركه فارغًا للاحتفاظ بالحالية',
|
|
'admin.deleteUser': 'حذف المستخدم "{name}"؟ سيتم حذف جميع الرحلات نهائيًا.',
|
|
'admin.deleteUserTitle': 'حذف المستخدم',
|
|
'admin.newPasswordPlaceholder': 'أدخل كلمة مرور جديدة…',
|
|
'admin.toast.loadError': 'فشل تحميل بيانات الإدارة',
|
|
'admin.toast.userUpdated': 'تم تحديث المستخدم',
|
|
'admin.toast.updateError': 'فشل التحديث',
|
|
'admin.toast.userDeleted': 'تم حذف المستخدم',
|
|
'admin.toast.deleteError': 'فشل الحذف',
|
|
'admin.toast.cannotDeleteSelf': 'لا يمكنك حذف حسابك الخاص',
|
|
'admin.toast.userCreated': 'تم إنشاء المستخدم',
|
|
'admin.toast.createError': 'فشل إنشاء المستخدم',
|
|
'admin.toast.fieldsRequired':
|
|
'اسم المستخدم والبريد الإلكتروني وكلمة المرور مطلوبة',
|
|
'admin.createUser': 'إنشاء مستخدم',
|
|
'admin.invite.title': 'روابط الدعوة',
|
|
'admin.invite.subtitle': 'إنشاء روابط تسجيل للاستخدام المحدود',
|
|
'admin.invite.create': 'إنشاء رابط',
|
|
'admin.invite.createAndCopy': 'إنشاء ونسخ',
|
|
'admin.invite.empty': 'لم يتم إنشاء روابط دعوة بعد',
|
|
'admin.invite.maxUses': 'الحد الأقصى للاستخدام',
|
|
'admin.invite.expiry': 'تنتهي بعد',
|
|
'admin.invite.uses': 'مستخدم',
|
|
'admin.invite.expiresAt': 'تنتهي في',
|
|
'admin.invite.createdBy': 'بواسطة',
|
|
'admin.invite.active': 'نشط',
|
|
'admin.invite.expired': 'منتهي',
|
|
'admin.invite.usedUp': 'مستنفد',
|
|
'admin.invite.copied': 'تم نسخ رابط الدعوة',
|
|
'admin.invite.copyLink': 'نسخ الرابط',
|
|
'admin.invite.deleted': 'تم حذف رابط الدعوة',
|
|
'admin.invite.createError': 'فشل إنشاء رابط الدعوة',
|
|
'admin.invite.deleteError': 'فشل حذف رابط الدعوة',
|
|
'admin.tabs.settings': 'الإعدادات',
|
|
'admin.allowRegistration': 'السماح بالتسجيل',
|
|
'admin.allowRegistrationHint': 'يمكن للمستخدمين الجدد التسجيل بأنفسهم',
|
|
'admin.requireMfa': 'فرض المصادقة الثنائية (2FA)',
|
|
'admin.requireMfaHint':
|
|
'يجب على المستخدمين الذين لا يملكون 2FA إكمال الإعداد في الإعدادات قبل استخدام التطبيق.',
|
|
'admin.apiKeys': 'مفاتيح API',
|
|
'admin.apiKeysHint':
|
|
'اختياري. يُفعّل بيانات الأماكن الموسعة مثل الصور والطقس.',
|
|
'admin.mapsKey': 'مفتاح Google Maps API',
|
|
'admin.mapsKeyHint':
|
|
'مطلوب للبحث عن الأماكن. احصل عليه من console.cloud.google.com',
|
|
'admin.mapsKeyHintLong':
|
|
'بدون مفتاح API، يُستخدم OpenStreetMap للبحث. مع مفتاح Google يمكن تحميل الصور والتقييمات وساعات العمل أيضًا. احصل عليه من console.cloud.google.com.',
|
|
'admin.recommended': 'مُوصى به',
|
|
'admin.weatherKey': 'مفتاح OpenWeatherMap API',
|
|
'admin.weatherKeyHint': 'لبيانات الطقس. مجاني من openweathermap.org',
|
|
'admin.validateKey': 'اختبار',
|
|
'admin.keyValid': 'متصل',
|
|
'admin.keyInvalid': 'غير صالح',
|
|
'admin.keySaved': 'تم حفظ مفاتيح API',
|
|
'admin.oidcTitle': 'تسجيل الدخول الموحد (OIDC)',
|
|
'admin.oidcSubtitle':
|
|
'السماح بتسجيل الدخول عبر مزودين خارجيين مثل Google أو Apple أو Authentik أو Keycloak.',
|
|
'admin.oidcDisplayName': 'الاسم المعروض',
|
|
'admin.oidcIssuer': 'عنوان URL للمُصدر',
|
|
'admin.oidcIssuerHint':
|
|
'عنوان OpenID Connect Issuer URL للمزود. مثال: https://accounts.google.com',
|
|
'admin.oidcSaved': 'تم حفظ إعدادات OIDC',
|
|
'admin.oidcOnlyMode': 'تعطيل المصادقة بكلمة المرور',
|
|
'admin.oidcOnlyModeHint':
|
|
'عند التفعيل، يُسمح فقط بتسجيل الدخول عبر SSO. سيتم حظر تسجيل الدخول والتسجيل بكلمة المرور.',
|
|
'admin.fileTypes': 'أنواع الملفات المسموح بها',
|
|
'admin.fileTypesHint': 'حدد أنواع الملفات التي يمكن للمستخدمين رفعها.',
|
|
'admin.fileTypesFormat':
|
|
'امتدادات مفصولة بفواصل (مثل jpg,png,pdf,doc). استخدم * للسماح بجميع الأنواع.',
|
|
'admin.fileTypesSaved': 'تم حفظ إعدادات أنواع الملفات',
|
|
'admin.placesPhotos.title': 'صور الأماكن',
|
|
'admin.placesPhotos.subtitle':
|
|
'جلب الصور من Google Places API. عطّلها للحفاظ على حصة API. صور Wikimedia غير متأثرة.',
|
|
'admin.placesAutocomplete.title': 'الإكمال التلقائي للأماكن',
|
|
'admin.placesAutocomplete.subtitle':
|
|
'استخدام Google Places API لاقتراحات البحث. عطّلها للحفاظ على حصة API.',
|
|
'admin.placesDetails.title': 'تفاصيل الأماكن',
|
|
'admin.placesDetails.subtitle':
|
|
'جلب معلومات تفصيلية عن الأماكن (الساعات، التقييم، الموقع) من Google Places API. عطّلها للحفاظ على حصة API.',
|
|
'admin.bagTracking.title': 'تتبع الأمتعة',
|
|
'admin.bagTracking.subtitle': 'تفعيل الوزن وتعيين الأمتعة للعناصر',
|
|
'admin.collab.chat.title': 'الدردشة',
|
|
'admin.collab.chat.subtitle': 'المراسلة في الوقت الفعلي للتعاون',
|
|
'admin.collab.notes.title': 'الملاحظات',
|
|
'admin.collab.notes.subtitle': 'ملاحظات ومستندات مشتركة',
|
|
'admin.collab.polls.title': 'الاستطلاعات',
|
|
'admin.collab.polls.subtitle': 'استطلاعات وتصويت جماعي',
|
|
'admin.collab.whatsnext.title': 'ما التالي',
|
|
'admin.collab.whatsnext.subtitle': 'اقتراحات الأنشطة والخطوات التالية',
|
|
'admin.tabs.config': 'التخصيص',
|
|
'admin.tabs.defaults': 'الإعدادات الافتراضية',
|
|
'admin.defaultSettings.title': 'إعدادات المستخدم الافتراضية',
|
|
'admin.defaultSettings.description':
|
|
'تعيين الإعدادات الافتراضية على مستوى النظام. سيرى المستخدمون الذين لم يغيروا إعدادًا هذه القيم. تحظى تغييراتهم دائمًا بالأولوية.',
|
|
'admin.defaultSettings.saved': 'تم حفظ الإعداد الافتراضي',
|
|
'admin.defaultSettings.reset': 'إعادة التعيين إلى الإعداد الافتراضي المدمج',
|
|
'admin.defaultSettings.resetToBuiltIn': 'إعادة تعيين',
|
|
'admin.tabs.templates': 'قوالب التعبئة',
|
|
'admin.packingTemplates.title': 'قوالب التعبئة',
|
|
'admin.packingTemplates.subtitle': 'إنشاء قوائم تعبئة قابلة لإعادة الاستخدام',
|
|
'admin.packingTemplates.create': 'قالب جديد',
|
|
'admin.packingTemplates.namePlaceholder': 'اسم القالب (مثال: عطلة شاطئية)',
|
|
'admin.packingTemplates.empty': 'لم يتم إنشاء قوالب بعد',
|
|
'admin.packingTemplates.items': 'عناصر',
|
|
'admin.packingTemplates.categories': 'فئات',
|
|
'admin.packingTemplates.itemName': 'اسم العنصر',
|
|
'admin.packingTemplates.itemCategory': 'الفئة',
|
|
'admin.packingTemplates.categoryName': 'اسم الفئة (مثال: ملابس)',
|
|
'admin.packingTemplates.addCategory': 'إضافة فئة',
|
|
'admin.packingTemplates.created': 'تم إنشاء القالب',
|
|
'admin.packingTemplates.deleted': 'تم حذف القالب',
|
|
'admin.packingTemplates.loadError': 'فشل تحميل القوالب',
|
|
'admin.packingTemplates.createError': 'فشل إنشاء القالب',
|
|
'admin.packingTemplates.deleteError': 'فشل حذف القالب',
|
|
'admin.packingTemplates.saveError': 'فشل الحفظ',
|
|
'admin.tabs.addons': 'الإضافات',
|
|
'admin.addons.title': 'الإضافات',
|
|
'admin.addons.subtitle': 'فعّل أو عطّل الميزات لتخصيص تجربة TREK.',
|
|
'admin.addons.catalog.packing.name': 'القوائم',
|
|
'admin.addons.catalog.packing.description': 'قوائم التعبئة والمهام لرحلاتك',
|
|
'admin.addons.catalog.budget.name': 'الميزانية',
|
|
'admin.addons.catalog.budget.description': 'تتبع النفقات وخطط ميزانية الرحلة',
|
|
'admin.addons.catalog.documents.name': 'المستندات',
|
|
'admin.addons.catalog.documents.description': 'حفظ وإدارة وثائق السفر',
|
|
'admin.addons.catalog.vacay.name': 'الإجازة',
|
|
'admin.addons.catalog.vacay.description': 'مخطط إجازات شخصي مع عرض تقويم',
|
|
'admin.addons.catalog.atlas.name': 'الأطلس',
|
|
'admin.addons.catalog.atlas.description':
|
|
'خريطة العالم مع الدول التي تمت زيارتها وإحصائيات السفر',
|
|
'admin.addons.catalog.collab.name': 'التعاون',
|
|
'admin.addons.catalog.collab.description':
|
|
'ملاحظات واستطلاعات ودردشة لحظية لتخطيط الرحلة',
|
|
'admin.addons.catalog.memories.name': 'صور (Immich)',
|
|
'admin.addons.catalog.memories.description': 'شارك صور رحلتك عبر Immich',
|
|
'admin.addons.catalog.mcp.description':
|
|
'بروتوكول سياق النموذج لتكامل مساعد الذكاء الاصطناعي',
|
|
'admin.addons.subtitleBefore': 'فعّل أو عطّل الميزات لتخصيص تجربة ',
|
|
'admin.addons.subtitleAfter': '.',
|
|
'admin.addons.enabled': 'مفعّل',
|
|
'admin.addons.disabled': 'معطّل',
|
|
'admin.addons.type.trip': 'رحلة',
|
|
'admin.addons.type.global': 'عام',
|
|
'admin.addons.type.integration': 'تكامل',
|
|
'admin.addons.tripHint': 'متاح كعلامة تبويب داخل كل رحلة',
|
|
'admin.addons.globalHint': 'متاح كقسم مستقل في التنقل الرئيسي',
|
|
'admin.addons.integrationHint':
|
|
'خدمات الواجهة الخلفية وتكاملات API بدون صفحة مخصصة',
|
|
'admin.addons.toast.updated': 'تم تحديث الإضافة',
|
|
'admin.addons.toast.error': 'فشل تحديث الإضافة',
|
|
'admin.addons.noAddons': 'لا توجد إضافات متاحة',
|
|
'admin.weather.title': 'بيانات الطقس',
|
|
'admin.weather.badge': 'منذ 24 مارس 2026',
|
|
'admin.weather.description':
|
|
'يستخدم TREK خدمة Open-Meteo كمصدر لبيانات الطقس. وهي خدمة مجانية ومفتوحة المصدر ولا تتطلب مفتاح API.',
|
|
'admin.weather.forecast': 'توقعات 16 يومًا',
|
|
'admin.weather.forecastDesc': 'سابقًا 5 أيام (OpenWeatherMap)',
|
|
'admin.weather.climate': 'بيانات المناخ التاريخية',
|
|
'admin.weather.climateDesc':
|
|
'متوسطات آخر 85 سنة للأيام بعد توقعات الـ 16 يومًا',
|
|
'admin.weather.requests': '10,000 طلب / يوم',
|
|
'admin.weather.requestsDesc': 'مجاني، بدون مفتاح API',
|
|
'admin.weather.locationHint':
|
|
'يعتمد الطقس على أول مكان بإحداثيات في كل يوم. إذا لم يكن هناك مكان مخصص ليوم ما، يُستخدم أي مكان من قائمة الأماكن كمرجع.',
|
|
'admin.tabs.mcpTokens': 'وصول MCP',
|
|
'admin.mcpTokens.title': 'وصول MCP',
|
|
'admin.mcpTokens.subtitle': 'إدارة جلسات OAuth ورموز API لجميع المستخدمين',
|
|
'admin.mcpTokens.sectionTitle': 'رموز API',
|
|
'admin.mcpTokens.owner': 'المالك',
|
|
'admin.mcpTokens.tokenName': 'اسم الرمز',
|
|
'admin.mcpTokens.created': 'تاريخ الإنشاء',
|
|
'admin.mcpTokens.lastUsed': 'آخر استخدام',
|
|
'admin.mcpTokens.never': 'أبداً',
|
|
'admin.mcpTokens.empty': 'لم يتم إنشاء أي رموز MCP بعد',
|
|
'admin.mcpTokens.deleteTitle': 'حذف الرمز',
|
|
'admin.mcpTokens.deleteMessage':
|
|
'سيتم إلغاء هذا الرمز فوراً. سيفقد المستخدم وصوله إلى MCP عبر هذا الرمز.',
|
|
'admin.mcpTokens.deleteSuccess': 'تم حذف الرمز',
|
|
'admin.mcpTokens.deleteError': 'فشل حذف الرمز',
|
|
'admin.mcpTokens.loadError': 'فشل تحميل الرموز',
|
|
'admin.oauthSessions.sectionTitle': 'جلسات OAuth',
|
|
'admin.oauthSessions.clientName': 'العميل',
|
|
'admin.oauthSessions.owner': 'المالك',
|
|
'admin.oauthSessions.scopes': 'الصلاحيات',
|
|
'admin.oauthSessions.created': 'تاريخ الإنشاء',
|
|
'admin.oauthSessions.empty': 'لا توجد جلسات OAuth نشطة',
|
|
'admin.oauthSessions.revokeTitle': 'إلغاء الجلسة',
|
|
'admin.oauthSessions.revokeMessage':
|
|
'سيتم إلغاء جلسة OAuth هذه فوراً. سيفقد العميل وصوله إلى MCP.',
|
|
'admin.oauthSessions.revokeSuccess': 'تم إلغاء الجلسة',
|
|
'admin.oauthSessions.revokeError': 'فشل إلغاء الجلسة',
|
|
'admin.oauthSessions.loadError': 'فشل تحميل جلسات OAuth',
|
|
'admin.audit.subtitle':
|
|
'أحداث الأمان والإدارة (النسخ الاحتياطية، المستخدمون، المصادقة الثنائية، الإعدادات).',
|
|
'admin.audit.empty': 'لا توجد سجلات تدقيق بعد.',
|
|
'admin.audit.refresh': 'تحديث',
|
|
'admin.audit.loadMore': 'تحميل المزيد',
|
|
'admin.audit.showing': 'تم تحميل {count} · الإجمالي {total}',
|
|
'admin.audit.col.time': 'الوقت',
|
|
'admin.audit.col.user': 'المستخدم',
|
|
'admin.audit.col.action': 'الإجراء',
|
|
'admin.audit.col.resource': 'المورد',
|
|
'admin.audit.col.ip': 'عنوان IP',
|
|
'admin.audit.col.details': 'التفاصيل',
|
|
'admin.github.title': 'سجل الإصدارات',
|
|
'admin.github.subtitle': 'آخر التحديثات من {repo}',
|
|
'admin.github.latest': 'الأحدث',
|
|
'admin.github.prerelease': 'إصدار تجريبي',
|
|
'admin.github.showDetails': 'إظهار التفاصيل',
|
|
'admin.github.hideDetails': 'إخفاء التفاصيل',
|
|
'admin.github.loadMore': 'تحميل المزيد',
|
|
'admin.github.loading': 'جارٍ التحميل...',
|
|
'admin.github.error': 'فشل تحميل الإصدارات',
|
|
'admin.github.by': 'بواسطة',
|
|
'admin.github.support': 'يساعدني في تطوير TREK',
|
|
'admin.update.available': 'يتوفر تحديث',
|
|
'admin.update.text': 'TREK {version} متوفر. أنت تستخدم {current}.',
|
|
'admin.update.button': 'عرض على GitHub',
|
|
'admin.update.install': 'تثبيت التحديث',
|
|
'admin.update.confirmTitle': 'تثبيت التحديث؟',
|
|
'admin.update.confirmText':
|
|
'سيتم تحديث TREK من {current} إلى {version}. سيُعاد تشغيل الخادم تلقائيًا بعد ذلك.',
|
|
'admin.update.dataInfo':
|
|
'جميع بياناتك (الرحلات، المستخدمون، مفاتيح API، المرفوعات، الإجازة، الأطلس، الميزانيات) ستبقى محفوظة.',
|
|
'admin.update.warning':
|
|
'سيكون التطبيق غير متاح لفترة وجيزة أثناء إعادة التشغيل.',
|
|
'admin.update.confirm': 'حدّث الآن',
|
|
'admin.update.installing': 'جارٍ التحديث…',
|
|
'admin.update.success': 'تم تثبيت التحديث. ستتم إعادة تشغيل الخادم…',
|
|
'admin.update.failed': 'فشل التحديث',
|
|
'admin.update.backupHint': 'نوصي بإنشاء نسخة احتياطية قبل التحديث.',
|
|
'admin.update.backupLink': 'الذهاب إلى النسخ الاحتياطي',
|
|
'admin.update.howTo': 'كيفية التحديث',
|
|
'admin.update.dockerText':
|
|
'يعمل TREK الخاص بك في Docker. للتحديث إلى {version}، نفّذ الأوامر التالية على الخادم:',
|
|
'admin.update.reloadHint': 'يرجى إعادة تحميل الصفحة بعد بضع ثوانٍ.',
|
|
'admin.tabs.permissions': 'الصلاحيات',
|
|
'admin.notifications.webhook': 'Webhook', // en-fallback
|
|
'admin.notifications.ntfy': 'Ntfy', // en-fallback
|
|
'admin.notifications.emailPanel.title': 'Email (SMTP)', // en-fallback
|
|
'admin.notifications.webhookPanel.title': 'Webhook', // en-fallback
|
|
'admin.notifications.inappPanel.title': 'In-App', // en-fallback
|
|
'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh', // en-fallback
|
|
'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts', // en-fallback
|
|
'admin.authMethods': 'Authentication Methods', // en-fallback
|
|
'admin.passwordLogin': 'Password Login', // en-fallback
|
|
'admin.passwordLoginHint': 'Allow users to sign in with email and password', // en-fallback
|
|
'admin.passwordRegistration': 'Password Registration', // en-fallback
|
|
'admin.passwordRegistrationHint':
|
|
'Allow new users to register with email and password', // en-fallback
|
|
'admin.oidcLogin': 'SSO Login', // en-fallback
|
|
'admin.oidcLoginHint': 'Allow users to sign in with SSO', // en-fallback
|
|
'admin.oidcRegistration': 'SSO Auto-Provisioning', // en-fallback
|
|
'admin.oidcRegistrationHint':
|
|
'Automatically create accounts for new SSO users', // en-fallback
|
|
'admin.envOverrideHint':
|
|
'Password login settings are controlled by the OIDC_ONLY environment variable and cannot be changed here.', // en-fallback
|
|
'admin.lockoutWarning': 'At least one login method must remain enabled', // en-fallback
|
|
'admin.addons.catalog.mcp.name': 'MCP', // en-fallback
|
|
'admin.tabs.github': 'GitHub', // en-fallback
|
|
'admin.addons.catalog.journey.name': 'Journey', // en-fallback
|
|
'admin.addons.catalog.journey.description':
|
|
'Trip tracking & travel journal with check-ins, photos, and daily stories', // en-fallback
|
|
};
|
|
export default admin;
|