Files
temetro/frontend/lib/i18n/locales/ar/translation.json
T
Khalid Abdi 35f07c508d frontend: block past dates in appointment/invoice pickers; drop stale Settings Features
- Appointment date picker disables days before today.
- Invoice issue-date picker disables past days by default, with an opt-in
  "Back-date" checkbox for recording older invoices (edit mode keeps past
  dates). Added invoices.dialog.backdate to all locales.
- Removed the inert, outdated "Features" section (patient-owned storage /
  require signed toggles) from Settings and its now-unused i18n keys.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-09 20:41:58 +03:00

2221 lines
110 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"scribe": {
"recordVisit": "تسجيل الزيارة",
"title": "كاتب الزيارة",
"subtitle": "سجّل أو الصق زيارة لـ {{name}}، ثم راجع الملاحظة المُصاغة قبل الحفظ.",
"tabs": {
"record": "تسجيل",
"paste": "لصق النص"
},
"record": {
"start": "بدء التسجيل",
"stop": "إيقاف",
"ready": "التسجيل جاهز ({{duration}})",
"discard": "تجاهل"
},
"paste": {
"placeholder": "الصق نص الزيارة هنا…"
},
"visitType": {
"label": "نوع الزيارة (اختياري)",
"placeholder": "مثال: متابعة"
},
"consent": "يُخزَّن الصوت في ملف المريض. عند استخدام مزوّد ذكاء اصطناعي خارجي، يغادر التسجيل العيادة ليُفرَّغ نصيًّا — لا يستطيع Veil إخفاء الكلام، لذا تُخفى هوية الملاحظة المُصاغة فقط.",
"generate": "صياغة الملاحظة",
"processing": "جارٍ العمل…",
"cancel": "إلغاء",
"review": {
"type": "نوع الزيارة",
"date": "التاريخ",
"summary": "الملاحظة",
"provider": "الطبيب: {{provider}}",
"veil": "أُخفيت الهوية عبر Veil قبل {{provider}}.",
"back": "رجوع",
"save": "الحفظ في السجل"
},
"saved": {
"title": "تم حفظ ملاحظة الزيارة"
},
"errors": {
"mic": "تعذّر الوصول إلى الميكروفون. تحقّق من أذونات المتصفح أو الصق نصًّا بدلاً من ذلك.",
"noRecording": "سجّل الزيارة أولاً، أو انتقل إلى تبويب اللصق.",
"empty": "النص فارغ.",
"generic": "حدث خطأ ما. يُرجى المحاولة مرة أخرى."
}
},
"walletUpdatesList": {
"title": "التحديثات المُرسَلة إلى المحافظ",
"description": "تحديثات السجلات التي أرسلتها إلى محافظ المرضى، وما إذا كان المريض قد وافق عليها.",
"none": "لم ترسل أي تحديثات إلى المحافظ بعد."
},
"walletPush": {
"action": "إرسال إلى المحفظة",
"title": "إرسال التحديث إلى المحفظة",
"subtitle": "أرسل سجل {{name}} المُحدَّث إلى تطبيق المحفظة الخاص به. يجب أن يوافق عليه على هاتفه قبل أن يحل محل النسخة الموجودة على جهازه.",
"sectionsLabel": "ما الذي تغيّر",
"sections": {
"demographics": "البيانات الديموغرافية",
"problems": "المشكلات",
"medications": "الأدوية",
"allergies": "الحساسية",
"labs": "التحاليل",
"vitals": "العلامات الحيوية",
"visits": "الزيارات"
},
"noteLabel": "ملاحظة (اختياري)",
"notePlaceholder": "ملاحظة قصيرة عن هذا التحديث…",
"notice": "يُرسِل هذا السجل الحالي كاملاً، موقَّعًا بمفتاح عيادتك. ولا يحل محل النسخة الموجودة على جهاز المريض إلا بعد موافقته.",
"cancel": "إلغاء",
"send": "إرسال التحديث",
"done": "تم",
"errors": {
"generic": "تعذّر إرسال التحديث. يُرجى المحاولة مرة أخرى."
},
"status": {
"pending": {
"title": "بانتظار المريض",
"body": "تم إرسال التحديث. سيصل إلى هاتف المريض الآن، أو في المرة التالية التي يفتح فيها التطبيق."
},
"delivered": {
"title": "تم التسليم إلى الهاتف",
"body": "استلم المريض التحديث ويلزمه الموافقة عليه على جهازه."
},
"approved": {
"title": "وافق المريض",
"body": "وافق المريض على التحديث، وسجلّه على الجهاز محدَّث الآن."
},
"denied": {
"title": "رفض المريض",
"body": "رفض المريض هذا التحديث، لذا بقي سجلّه على الجهاز دون تغيير."
}
}
},
"common": {
"appName": "temetro",
"email": "البريد الإلكتروني",
"password": "كلمة المرور",
"signIn": "تسجيل الدخول",
"signUp": "إنشاء حساب",
"backToSignIn": "العودة إلى تسجيل الدخول",
"addedByAi": "أُضيف بواسطة الذكاء الاصطناعي",
"pagination": {
"label": "الصفحات",
"previous": "السابق",
"next": "التالي",
"page": "صفحة {{page}}",
"summary": "عرض {{from}}{{to}} من {{total}}"
}
},
"auth": {
"login": {
"title": "مرحبًا بعودتك",
"subtitle": "سجّل الدخول إلى حساب الطبيب الخاص بك",
"tabEmail": "البريد الإلكتروني",
"tabUsername": "اسم المستخدم",
"emailLabel": "البريد الإلكتروني",
"emailPlaceholder": "you@clinic.org",
"usernameLabel": "اسم المستخدم",
"usernamePlaceholder": "jdoe",
"passwordLabel": "كلمة المرور",
"forgotPassword": "هل نسيت كلمة المرور؟",
"submit": "تسجيل الدخول",
"submitting": "جارٍ تسجيل الدخول…",
"noAccount": "ليس لديك حساب؟",
"signUpLink": "إنشاء حساب",
"error": "تعذّر تسجيل الدخول. تحقّق من بريدك الإلكتروني وكلمة المرور وحاول مرة أخرى.",
"errorTitle": "فشل تسجيل الدخول",
"welcomeBack": "مرحبًا بعودتك"
},
"signup": {
"title": "أنشئ حسابك",
"subtitle": "ابدأ باستخدام temetro في عيادتك",
"nameLabel": "الاسم الكامل",
"namePlaceholder": "د. جين أوكافور",
"emailLabel": "البريد الإلكتروني",
"emailPlaceholder": "you@clinic.org",
"passwordLabel": "كلمة المرور",
"confirmPasswordLabel": "تأكيد كلمة المرور",
"passwordHint": "يجب أن تتكوّن من {{count}} حرفًا على الأقل.",
"passwordTooShort": "يجب أن تتكوّن كلمة المرور من {{count}} حرفًا على الأقل.",
"passwordMismatch": "كلمتا المرور غير متطابقتين.",
"submit": "إنشاء حساب",
"submitting": "جارٍ إنشاء الحساب…",
"haveAccount": "لديك حساب بالفعل؟",
"signInLink": "تسجيل الدخول",
"error": "تعذّر إنشاء حسابك.",
"errorTitle": "فشل إنشاء الحساب",
"created": "تم إنشاء الحساب",
"createdHint": "أعدّ عيادتك للبدء."
},
"verifyEmail": {
"title": "تحقّق من صندوق الوارد",
"subtitle": "أرسلنا رابط تحقّق إلى {{email}}. افتحه لتفعيل حسابك.",
"subtitleNoEmail": "افتح رابط التحقّق الذي أرسلناه إليك عبر البريد الإلكتروني لتفعيل حسابك.",
"continue": "لقد تحقّقت — متابعة",
"resend": "إعادة إرسال البريد",
"resending": "جارٍ الإرسال…",
"resent": "تم إرسال بريد التحقّق. تحقّق من صندوق الوارد.",
"resendError": "تعذّر إعادة إرسال بريد التحقّق."
},
"forgotPassword": {
"title": "إعادة تعيين كلمة المرور",
"subtitle": "سنرسل رابطًا لإعادة تعيين كلمة المرور",
"modeEmail": "البريد الإلكتروني",
"modeUsername": "اسم المستخدم",
"emailLabel": "البريد الإلكتروني",
"emailPlaceholder": "you@clinic.org",
"usernameLabel": "اسم المستخدم",
"usernamePlaceholder": "اسم المستخدم الخاص بك",
"submit": "إرسال رابط إعادة التعيين",
"submitting": "جارٍ الإرسال…",
"sent": "إذا كان هناك حساب لـ {{email}}، فإن رابط إعادة التعيين في طريقه إليك. تحقّق من صندوق الوارد.",
"sentUsername": "إذا كان اسم المستخدم موجودًا، فإن رابط إعادة التعيين في طريقه إليك. إن لم يكن لديك صندوق وارد، فقد أُبلغ مسؤول عيادتك لتعيين كلمة مرور جديدة لك.",
"error": "تعذّر إرسال بريد إعادة التعيين.",
"failedToastTitle": "تعذّر إرسال رابط إعادة التعيين",
"sentToastTitle": "تم إرسال رابط إعادة التعيين",
"sentToastBody": "تحقّق من صندوق الوارد للحصول على الرابط."
},
"resetPassword": {
"title": "تعيين كلمة مرور جديدة",
"subtitle": "اختر كلمة مرور جديدة لحسابك",
"passwordLabel": "كلمة المرور الجديدة",
"confirmLabel": "تأكيد كلمة المرور الجديدة",
"passwordHint": "{{count}} حرفًا على الأقل.",
"submit": "إعادة تعيين كلمة المرور",
"submitting": "جارٍ الحفظ…",
"done": "تمت إعادة تعيين كلمة المرور. جارٍ توجيهك إلى تسجيل الدخول…",
"invalidToken": "رابط إعادة التعيين هذا غير صالح أو انتهت صلاحيته.",
"tooShort": "يجب أن تتكوّن كلمة المرور من {{count}} حرفًا على الأقل.",
"mismatch": "كلمتا المرور غير متطابقتين.",
"error": "تعذّر إعادة تعيين كلمة المرور.",
"failedToastTitle": "تعذّر إعادة تعيين كلمة المرور",
"successToastTitle": "تم تحديث كلمة المرور",
"successToastBody": "جارٍ توجيهك إلى تسجيل الدخول…"
},
"acceptInvite": {
"notFoundTitle": "الدعوة غير موجودة",
"notFoundBody": "رابط الدعوة هذا مفقود أو غير صالح.",
"invitedTitle": "لقد تمت دعوتك",
"invitedSubtitle": "سجّل الدخول بالبريد الإلكتروني الذي أُرسلت إليه هذه الدعوة، ثم عد إلى هذا الرابط للقبول.",
"signIn": "تسجيل الدخول",
"createAccount": "إنشاء حساب",
"reopenPrefix": "بعد تسجيل الدخول، أعد فتح",
"reopenLink": "رابط الدعوة هذا",
"acceptTitle": "اقبل دعوتك",
"acceptSubtitle": "انضم إلى العيادة التي دُعيت إليها على temetro.",
"accept": "قبول الدعوة",
"accepting": "جارٍ الانضمام…",
"error": "هذه الدعوة غير صالحة أو انتهت صلاحيتها."
},
"onboarding": {
"title": "أعدّ عيادتك",
"subtitle": "أنشئ عيادتك لبدء تنظيم سجلات المرضى"
}
},
"nav": {
"newChat": "اسأل temetro",
"patients": "المرضى",
"appointments": "المواعيد",
"invoices": "الفواتير",
"prescriptions": "الوصفات الطبية",
"analysis": "التحليل",
"pharmacy": "الصيدلية",
"inventory": "المخزون",
"lab": "المختبر",
"notes": "الملاحظات",
"messages": "الرسائل",
"inbox": "صندوق الوارد",
"meetings": "الاجتماعات",
"tasks": "المهام",
"activity": "النشاط",
"settings": "الإعدادات",
"openSidebar": "فتح القائمة",
"notifications": "الإشعارات",
"notificationsEmpty": "لقد اطّلعت على كل شيء.",
"quickNav": "تنقّل سريع",
"commandGroup": "الانتقال إلى",
"commandPlaceholder": "ابحث في الصفحات…",
"commandEmpty": "لا توجد نتائج.",
"commandNavigate": "تنقّل",
"commandOpen": "فتح",
"commandClose": "إغلاق"
},
"userMenu": {
"defaultName": "طبيب",
"selectClinic": "اختر عيادة",
"settings": "الإعدادات",
"docs": "التوثيق و GitHub",
"theme": "المظهر",
"dark": "داكن",
"light": "فاتح",
"search": "بحث",
"noClinic": "لم يتم اختيار عيادة",
"clinicCount_zero": "لا عيادات",
"clinicCount_one": "عيادة واحدة",
"clinicCount_two": "عيادتان",
"clinicCount_few": "{{count}} عيادات",
"clinicCount_many": "{{count}} عيادة",
"clinicCount_other": "{{count}} عيادة",
"switchClinic": "تبديل العيادة",
"createClinic": "إنشاء عيادة",
"logout": "تسجيل الخروج",
"createDialogTitle": "إنشاء عيادة",
"createDialogDescription": "أضف عيادة جديدة وانتقل إليها.",
"signOutFailed": "فشل تسجيل الخروج",
"tryAgain": "يرجى المحاولة مرة أخرى.",
"signedOut": "تم تسجيل الخروج"
},
"clinic": {
"create": "إنشاء عيادة",
"creating": "جارٍ إنشاء العيادة…",
"nameLabel": "اسم العيادة",
"namePlaceholder": "عيادة الأسرة بالجانب الشمالي",
"slugLabel": "معرّف رابط العيادة",
"slugPlaceholder": "north-side-family-practice",
"slugHint": "يُستخدم في الروابط والدعوات. أحرف إنجليزية صغيرة وأرقام وشرطات.",
"createError": "تعذّر إنشاء العيادة.",
"createFailedTitle": "تعذّر إنشاء العيادة",
"createdTitle": "تم إنشاء العيادة",
"createdBody": "{{name}} جاهزة."
},
"patients": {
"title": "المرضى",
"searchPlaceholder": "ابحث بالاسم أو رقم السجل الطبي",
"add": "إضافة مريض",
"newPatient": "مريض جديد",
"importFromApp": "استيراد من تطبيق المريض",
"tempBadge": "مؤقت",
"importApp": {
"title": "استيراد من تطبيق المريض",
"description": "أدخل رقم محفظة المريض. سيتلقّى طلبًا على هاتفه للموافقة على مشاركة سجله مع هذه العيادة.",
"tabNumber": "بالرقم",
"tabQr": "عرض رمز QR",
"qrHint": "أنشئ رمز QR، ثم اطلب من المريض مسحه ضوئيًا في تطبيق محفظته لمشاركة سجله.",
"qrCaption": "امسح هذا في تطبيق المريض",
"generateQr": "عرض رمز QR",
"walletLabel": "رقم محفظة المريض",
"walletPlaceholder": "tmw_…",
"tempLabel": "مشاركة مؤقتة",
"tempHint": "يُحذف السجل تلقائيًا من هذه العيادة عند انتهاء فترة المشاركة.",
"durationLabel": "مشاركة لمدة",
"hours_zero": "{{count}} ساعة",
"hours_one": "ساعة واحدة",
"hours_two": "ساعتان",
"hours_few": "{{count}} ساعات",
"hours_many": "{{count}} ساعة",
"hours_other": "{{count}} ساعة",
"days_zero": "{{count}} يوم",
"days_one": "يوم واحد",
"days_two": "يومان",
"days_few": "{{count}} أيام",
"days_many": "{{count}} يومًا",
"days_other": "{{count}} يوم",
"request": "إرسال الطلب",
"requesting": "جارٍ الإرسال…",
"waitingTitle": "بانتظار المريض",
"waitingBody": "أرسلنا طلبًا إلى المحفظة. وافق عليه على جهاز المريض للمتابعة.",
"approvedTitle": "وافق المريض",
"approvedBody": "راجع السجل المشترك، ثم احفظه في هذه العيادة.",
"review": "مراجعة السجل",
"deniedTitle": "تم رفض الطلب",
"deniedBody": "رفض المريض مشاركة سجله.",
"expiredTitle": "انتهت صلاحية الطلب",
"expiredBody": "انتهت مهلة الطلب قبل أن يستجيب المريض.",
"invalidWallet": "لا يبدو هذا رقم محفظة صالحًا.",
"networkOff": "انضم أولاً إلى شبكة Temetro (الإعدادات ← التوقيع) للمشاركة مع تطبيقات المرضى.",
"errorTitle": "تعذّر الوصول إلى المحفظة",
"error": "يرجى التحقّق من رقم المحفظة والمحاولة مرة أخرى.",
"savedTitle": "تم استيراد المريض",
"savedBody": "تمت إضافة {{name}} إلى هذه العيادة.",
"cancel": "إلغاء",
"close": "إغلاق"
},
"loading": "جارٍ تحميل المرضى…",
"empty": "لم يُعثر على مرضى.",
"loadError": "فشل تحميل المرضى.",
"columns": {
"name": "الاسم",
"mrn": "رقم السجل الطبي",
"ageSex": "العمر · الجنس",
"status": "الحالة",
"lastSeen": "آخر زيارة",
"allergies": "الحساسيات"
},
"status": {
"active": "نشط",
"inpatient": "مقيم",
"discharged": "خرج"
},
"detail": {
"notFound": "المريض غير موجود",
"loading": "جارٍ تحميل المريض…",
"noPatientForFile": "لم يُعثر على مريض للملف رقم {{number}}."
},
"transfer": {
"action": "تحويل",
"title": "تحويل المريض",
"description": "أعد تعيين {{name}} إلى طبيب آخر. سيصبح الطبيب الأساسي لهذا المريض.",
"providerLabel": "الطبيب الأساسي الجديد",
"choose": "اختر طبيبًا…",
"cancel": "إلغاء",
"confirm": "تحويل المريض",
"transferring": "جارٍ التحويل…",
"successTitle": "تم تحويل المريض",
"successBody": "{{name}} الآن مع {{provider}}.",
"errorTitle": "تعذّر تحويل المريض",
"error": "يرجى المحاولة مرة أخرى."
},
"delete": {
"action": "حذف المريض",
"title": "حذف المريض؟",
"body": "حذف سجل {{name}} وجميع سجلاته نهائيًا. لا يمكن التراجع عن هذا.",
"confirm": "حذف المريض",
"cancel": "إلغاء",
"doneTitle": "تم حذف المريض",
"failedTitle": "تعذّر حذف المريض",
"failedBody": "يرجى المحاولة مرة أخرى."
}
},
"appointments": {
"title": "المواعيد والجدول",
"subtitle": "جدول العيادة لليوم وما هو قادم.",
"searchPlaceholder": "ابحث عن مريض أو نوع أو طبيب",
"calendar": "التقويم",
"add": "إضافة",
"noMatches": "لا توجد مواعيد مطابقة.",
"today": "اليوم",
"nothingToday": "لا شيء مجدول اليوم.",
"addFailedTitle": "تعذّر إضافة الموعد",
"addFailedBody": "يرجى المحاولة مرة أخرى.",
"kpi": {
"today": "اليوم",
"thisWeek": "هذا الأسبوع",
"checkedIn": "تم تسجيل الوصول",
"completed": "مكتمل"
},
"status": {
"confirmed": "مؤكّد",
"checked-in": "تم تسجيل الوصول",
"completed": "مكتمل",
"cancelled": "ملغى"
},
"dialog": {
"title": "موعد جديد",
"description": "ابحث عن مريض بالاسم أو رقم الملف، ثم حدّد الموعد.",
"patient": "المريض",
"fileNumber": "ملف رقم {{number}}",
"change": "تغيير",
"searchPlaceholder": "ابحث بالاسم أو رقم الملف",
"noPatients": "لم يُعثر على مرضى.",
"noProviders": "لم يُعثر على أطباء.",
"date": "التاريخ",
"time": "الوقت",
"type": "النوع",
"provider": "الطبيب",
"providerPlaceholder": "مثال: د. أوكافور",
"cancel": "إلغاء",
"submit": "إضافة موعد",
"pickPatientTitle": "اختر مريضًا",
"pickPatientBody": "ابحث واختر مريضًا أولًا.",
"addedTitle": "تمت إضافة الموعد"
},
"sheet": {
"title": "موعد",
"editHint": "انقر على أي موعد لتعديله — هذا مُفعّل.",
"date": "التاريخ",
"time": "الوقت",
"type": "النوع",
"provider": "الطبيب",
"status": "الحالة",
"save": "حفظ التغييرات",
"saving": "جارٍ الحفظ…",
"delete": "حذف",
"savedTitle": "تم تحديث الموعد",
"savedBody": "تم حفظ تغييراتك.",
"saveFailedTitle": "تعذّر الحفظ",
"saveFailedBody": "يرجى المحاولة مرة أخرى.",
"deletedTitle": "تم حذف الموعد",
"deleteFailedTitle": "تعذّر الحذف",
"deleteFailedBody": "يرجى المحاولة مرة أخرى."
},
"calendarDialog": {
"today": "اليوم",
"appointmentCount_zero": "لا مواعيد",
"appointmentCount_one": "موعد واحد",
"appointmentCount_two": "موعدان",
"appointmentCount_few": "{{count}} مواعيد",
"appointmentCount_many": "{{count}} موعدًا",
"appointmentCount_other": "{{count}} موعد",
"none": "لا مواعيد في هذا اليوم."
}
},
"invoices": {
"title": "الفواتير",
"subtitle": "فوترة المرضى — إنشاء الفواتير وتقسيمها وتصديرها.",
"searchPlaceholder": "ابحث عن مريض أو رقم أو حالة",
"new": "فاتورة جديدة",
"empty": "لا توجد فواتير بعد.",
"noMatches": "لا توجد فواتير مطابقة لبحثك.",
"loadError": "تعذّر تحميل الفواتير.",
"recent": "الفواتير",
"recentDescription": "الأحدث أولًا",
"addFailedTitle": "تعذّر حفظ الفاتورة",
"addFailedBody": "يرجى المحاولة مرة أخرى.",
"kpi": {
"outstanding": "مستحق",
"paid": "مدفوع",
"drafts": "مسودات"
},
"status": {
"draft": "مسودة",
"sent": "مُرسلة",
"paid": "مدفوعة",
"void": "ملغاة"
},
"dialog": {
"createTitle": "فاتورة جديدة",
"editTitle": "تعديل الفاتورة",
"description": "اختر مريضًا وأضف بنودًا.",
"patient": "المريض",
"searchPlaceholder": "ابحث بالاسم أو رقم الملف",
"noPatients": "لم يُعثر على مرضى.",
"fileNumber": "ملف رقم {{number}}",
"change": "تغيير",
"issued": "تاريخ الإصدار",
"backdate": "تأريخ رجعي",
"due": "تاريخ الاستحقاق",
"status": "الحالة",
"notes": "ملاحظات",
"notesPlaceholder": "ملاحظات اختيارية…",
"lineItems": "البنود",
"lineDescription": "الوصف",
"lineDescriptionPlaceholder": "مثال: استشارة",
"qty": "الكمية",
"unitPrice": "سعر الوحدة",
"addLine": "إضافة بند",
"total": "الإجمالي",
"cancel": "إلغاء",
"create": "إنشاء فاتورة",
"save": "حفظ التغييرات",
"saving": "جارٍ الحفظ…",
"pickPatientTitle": "اختر مريضًا",
"pickPatientBody": "ابحث واختر مريضًا أولًا."
},
"sheet": {
"fallbackTitle": "فاتورة",
"issued": "الإصدار",
"due": "الاستحقاق",
"status": "الحالة",
"total": "الإجمالي",
"lineItems": "البنود",
"installments": "الأقساط",
"noInstallments": "غير مقسّمة إلى أقساط.",
"split": "تقسيم إلى أقساط",
"splitTitle": "تقسيم الفاتورة",
"splitBody": "قسّم الإجمالي إلى أقساط شهرية متساوية.",
"splitCount": "الأقساط",
"splitConfirm": "تقسيم",
"download": "تنزيل PDF",
"edit": "تعديل",
"delete": "حذف",
"deletedTitle": "تم حذف الفاتورة",
"splitFailedTitle": "تعذّر تقسيم الفاتورة",
"splitFailedBody": "يرجى المحاولة مرة أخرى.",
"deleteFailedTitle": "تعذّر حذف الفاتورة",
"deleteFailedBody": "يرجى المحاولة مرة أخرى.",
"paid": "مدفوع",
"unpaid": "غير مدفوع",
"markPaid": "تحديد كمدفوع",
"paidTitle": "تم تحديد الفاتورة كمدفوعة",
"payFailedTitle": "تعذّر تسجيل الدفعة",
"payFailedBody": "يرجى المحاولة مرة أخرى.",
"payInstallment": "دفع",
"installmentPaid": "مدفوع",
"installmentPaidTitle": "تم دفع القسط",
"overdue": "متأخر",
"timeframe": "{{count}} دفعات · مستحقة حتى {{date}}"
}
},
"prescriptions": {
"title": "الوصفات الطبية",
"subtitle": "الأدوية الموصوفة في جميع أنحاء العيادة.",
"new": "وصفة جديدة",
"recent": "الوصفات الأخيرة",
"recentDescription": "الأحدث أولًا",
"searchPlaceholder": "ابحث عن مريض أو دواء أو واصف",
"noMatches": "لا توجد وصفات مطابقة لبحثك.",
"emptyList": "لا توجد وصفات بعد.",
"addFailedTitle": "تعذّر إضافة الوصفة",
"addFailedBody": "يرجى المحاولة مرة أخرى.",
"kpi": {
"active": "نشطة",
"completed": "مكتملة",
"expired": "منتهية"
},
"status": {
"active": "نشطة",
"completed": "مكتملة",
"expired": "منتهية"
},
"detail": {
"fallbackTitle": "وصفة",
"fileNumber": "ملف رقم {{number}}",
"medication": "الدواء",
"dose": "الجرعة",
"frequency": "التكرار",
"duration": "المدة",
"prescriber": "الواصف",
"date": "التاريخ",
"status": "الحالة",
"notes": "ملاحظات",
"courseDates": "فترة العلاج",
"delete": "حذف الوصفة"
},
"delete": {
"title": "حذف الوصفة؟",
"body": "حذف وصفة {{medication}} للمريض {{name}} نهائيًا. لا يمكن التراجع عن هذا.",
"confirm": "حذف",
"cancel": "إلغاء",
"doneTitle": "تم حذف الوصفة",
"failedTitle": "تعذّر حذف الوصفة",
"failedBody": "يرجى المحاولة مرة أخرى."
},
"dialog": {
"title": "وصفة جديدة",
"description": "ابحث عن مريض بالاسم أو رقم الملف، ثم حدّد الدواء.",
"patient": "المريض",
"fileNumber": "ملف رقم {{number}}",
"change": "تغيير",
"searchPlaceholder": "ابحث بالاسم أو رقم الملف",
"noPatients": "لم يُعثر على مرضى.",
"medication": "الدواء",
"medicationPlaceholder": "مثال: أموكسيسيلين",
"dose": "الجرعة",
"dosePlaceholder": "مثال: 500 مجم",
"frequency": "التكرار",
"duration": "المدة",
"durationOtherPlaceholder": "مثال: 21 يومًا",
"notes": "ملاحظات",
"notesPlaceholder": "تعليمات، مثال: تناول مع الطعام في الصباح",
"interactionTitle": "تفاعل محتمل",
"cancel": "إلغاء",
"submit": "إضافة وصفة",
"pickPatientTitle": "اختر مريضًا",
"pickPatientBody": "ابحث واختر مريضًا أولًا.",
"needMedTitle": "أضف دواءً",
"needMedBody": "أدخل اسم الدواء.",
"needDurationTitle": "أضف مدة",
"needDurationBody": "أدخل المدة المخصّصة.",
"addedTitle": "تمت إضافة الوصفة",
"badDatesTitle": "تحقّق من التواريخ",
"badDatesBody": "لا يمكن أن يكون تاريخ الانتهاء قبل تاريخ البدء.",
"outOfStock": "نفد المخزون",
"inStock": "{{count}} في المخزون",
"courseDates": "تواريخ العلاج",
"removeDates": "إزالة",
"startDate": "تاريخ البدء",
"endDate": "تاريخ الانتهاء",
"addDates": "إضافة تاريخ البدء/الانتهاء"
}
},
"pharmacy": {
"title": "الصيدلية",
"subtitle": "قائمة انتظار الصرف لوصفات العيادة.",
"searchPlaceholder": "ابحث في الوصفات",
"kpi": {
"active": "وصفات نشطة",
"expiring": "توشك على الانتهاء",
"patients": "مرضى يتناولون أدوية"
},
"queue": {
"title": "قائمة انتظار الصرف",
"description": "الوصفات النشطة، الأقدم أولًا. حدّد العلاج كمكتمل بمجرد صرفه.",
"empty": "لا توجد وصفات نشطة.",
"noMatches": "لا توجد وصفات مطابقة لبحثك."
},
"expiringBadge": "توشك على الانتهاء",
"markCompleted": "تحديد كمكتمل",
"completedTitle": "اكتملت الوصفة",
"completedBody": "تم تحديد {{medication}} للمريض {{name}} كمكتمل.",
"completeFailedTitle": "تعذّر تحديث الوصفة",
"completeFailedBody": "يرجى المحاولة مرة أخرى.",
"dispense": "صرف",
"dispensedTitle": "تم الصرف",
"dispensedBody": "تم صرف {{medication}} للمريض {{name}}.",
"dispensed": {
"title": "صُرف مؤخرًا",
"description": "الأدوية المسلّمة للمرضى في الصيدلية.",
"empty": "لم يُصرف شيء بعد.",
"delete": "حذف السجل",
"deleteTitle": "حذف سجل الصرف؟",
"deleteBody": "إزالة سجل صرف {{medication}} للمريض {{name}}. هذا يصحّح السجل فقط.",
"deleteConfirm": "حذف",
"deleteCancel": "إلغاء",
"deletedTitle": "تم حذف سجل الصرف",
"deleteFailedTitle": "تعذّر حذف السجل",
"deleteFailedBody": "يرجى المحاولة مرة أخرى."
}
},
"inventory": {
"title": "المخزون",
"subtitle": "ابحث في مخزون أدوية الصيدلية وتحقّق من التوفّر.",
"searchPlaceholder": "ابحث في الأدوية",
"kpi": {
"total": "أدوية في المخزون",
"low": "مخزون منخفض",
"out": "نفد المخزون"
},
"list": {
"title": "الأدوية",
"description": "مستويات المخزون الحالية في الصيدلية. تُعلَّم العناصر التي عند نقطة إعادة الطلب أو أقل منها.",
"empty": "لا توجد أدوية في المخزون بعد.",
"noMatches": "لا توجد أدوية مطابقة لبحثك."
},
"stock": "{{count}} {{unit}}",
"reorderAt": "إعادة الطلب عند {{count}}",
"location": "رف {{location}}",
"availability": {
"in-stock": "متوفر",
"low": "مخزون منخفض",
"out": "نفد المخزون"
},
"addItem": "إضافة عنصر",
"dialog": {
"title": "إضافة عنصر مخزون",
"description": "أضف دواءً إلى مخزون الصيدلية. الاسم فقط مطلوب.",
"name": "الدواء",
"namePlaceholder": "مثال: أموكسيسيلين",
"form": "الشكل",
"formPlaceholder": "مثال: قرص",
"strength": "التركيز",
"strengthPlaceholder": "مثال: 500 مجم",
"stock": "في المخزون",
"unit": "الوحدة",
"unitPlaceholder": "مثال: أقراص",
"reorder": "إعادة الطلب عند",
"location": "الموقع",
"locationPlaceholder": "مثال: A3",
"expires": "تنتهي الصلاحية",
"cancel": "إلغاء",
"submit": "إضافة عنصر",
"nameRequiredTitle": "اسم الدواء مطلوب",
"nameRequiredBody": "أدخل اسم الدواء قبل إضافة العنصر.",
"addedTitle": "تمت إضافة العنصر",
"failedTitle": "تعذّر إضافة العنصر",
"failedBody": "حدث خطأ ما. يرجى المحاولة مرة أخرى."
},
"detail": {
"description": "عنصر مخزون",
"notes": "ملاحظات",
"close": "إغلاق",
"delete": "حذف العنصر"
},
"delete": {
"title": "حذف عنصر المخزون؟",
"body": "حذف {{name}} نهائيًا من المخزون. لا يمكن التراجع عن هذا.",
"confirm": "حذف",
"cancel": "إلغاء",
"doneTitle": "تم حذف العنصر",
"failedTitle": "تعذّر حذف العنصر",
"failedBody": "يرجى المحاولة مرة أخرى."
}
},
"lab": {
"title": "المختبر",
"subtitle": "قائمة عمل المختبر ونتائج التحاليل.",
"queue": {
"title": "قائمة العمل",
"description": "المهام المسندة إلى قسم المختبر.",
"empty": "لا توجد مهام مختبر حاليًا.",
"noNotes": "لم تُقدَّم تفاصيل.",
"meta": {
"status": "الحالة",
"patient": "المريض",
"assignee": "المسند إليه",
"createdBy": "أنشأه"
}
},
"addResult": {
"button": "إضافة نتيجة",
"title": "إضافة نتيجة تحليل",
"description": "سجّل تحليلًا أُجري في المختبر على سجل المريض.",
"patient": "المريض",
"patientPlaceholder": "ابحث بالاسم أو رقم الملف",
"noPatients": "لا يوجد مرضى مطابقون لبحثك.",
"changePatient": "تغيير",
"test": "التحليل",
"testPlaceholder": "مثال: الهيموجلوبين",
"value": "القيمة",
"valuePlaceholder": "مثال: 14.2 جم/ديسيلتر",
"valueUnitPlaceholder": "مثال: القيمة بـ {{unit}}",
"flag": "العلامة",
"takenAt": "التاريخ",
"advanced": "متقدّم",
"advancedHint": "سجّل تحليلًا مخصّصًا مع نطاق مرجعي.",
"refRange": "النطاق المرجعي",
"refRangePlaceholder": "مثال: 13.017.0 جم/ديسيلتر",
"files": "ملفات التحليل",
"cancel": "إلغاء",
"submit": "إضافة نتيجة",
"needPatientTitle": "اختر مريضًا",
"needPatientBody": "ابحث واختر مريضًا أولًا.",
"needFieldsTitle": "تفاصيل ناقصة",
"needFieldsBody": "أدخل اسم التحليل وقيمته.",
"addedTitle": "تمت إضافة النتيجة",
"addedBody": "تمت إضافة {{test}} إلى سجل {{name}}.",
"failedTitle": "تعذّر إضافة النتيجة",
"failedBody": "يرجى المحاولة مرة أخرى."
},
"recent": {
"title": "النتائج الأخيرة",
"description": "التحاليل المسجّلة في سجلات المرضى، الأحدث أولًا.",
"empty": "لم تُسجَّل نتائج بعد.",
"delete": "حذف النتيجة",
"deleteTitle": "حذف نتيجة المختبر؟",
"deleteBody": "إزالة نتيجة {{test}} من سجل {{name}}. لا يمكن التراجع عن هذا.",
"deleteConfirm": "حذف",
"deleteCancel": "إلغاء",
"deletedTitle": "تم حذف النتيجة",
"deletedBody": "تمت إزالة {{test}} من سجل {{name}}.",
"deleteFailedTitle": "تعذّر حذف النتيجة",
"deleteFailedBody": "يرجى المحاولة مرة أخرى."
},
"toast": {
"updateFailedTitle": "تعذّر تحديث المهمة",
"updateFailedBody": "يرجى المحاولة مرة أخرى."
}
},
"tasks": {
"title": "المهام",
"subtitle": "مهام فريق الرعاية. انقر على مهمة لرؤية تفاصيلها.",
"new": "مهمة جديدة",
"empty": "لا توجد مهام هنا.",
"markDone": "تحديد كمنجزة",
"markNotDone": "تحديد كغير منجزة",
"status": {
"todo": "للتنفيذ",
"in_progress": "قيد التنفيذ",
"done": "منجزة"
},
"board": {
"addTask": "إضافة مهمة",
"moveTo": "نقل إلى",
"emptyColumn": "لا توجد مهام.",
"newTask": "مهمة جديدة"
},
"filters": {
"all": "الكل",
"open": "مفتوحة",
"done": "منجزة"
},
"priority": {
"high": "عالية",
"medium": "متوسطة",
"low": "منخفضة"
},
"dialog": {
"title": "مهمة جديدة",
"description": "أسند متابعة إلى فريق الرعاية.",
"subject": "الموضوع",
"subjectPlaceholder": "مثال: مراجعة نتائج المختبر",
"details": "التفاصيل — ما الذي يجب فعله",
"detailsPlaceholder": "صف ما يجب أن يحدث، وأي سياق، وروابط…",
"assignee": "المسند إليه",
"assigneeSelf": "أنا",
"assigneeOther": "آخر",
"department": "القسم",
"due": "الاستحقاق",
"duePlaceholder": "مثال: اليوم",
"priorityLabel": "الأولوية",
"statusLabel": "الحالة",
"cancel": "إلغاء",
"add": "إضافة مهمة",
"assigneeDepartment": "القسم",
"assigneePerson": "شخص",
"person": "عضو الفريق",
"personEmpty": "لا يوجد أطباء متاحون للإسناد."
},
"list": {
"forDept": "لـ {{dept}}",
"personal": "شخصي",
"byCreator": "بواسطة {{name}}",
"forPerson": "لـ {{name}}"
},
"detail": {
"fallbackTitle": "مهمة",
"priorityBadge": "أولوية {{priority}}",
"status": "الحالة",
"completed": "مكتملة",
"open": "مفتوحة",
"assignedTo": "مسندة إلى",
"createdBy": "أنشأها",
"deptTeam": "فريق {{dept}}",
"personal": "مهمة شخصية",
"due": "الاستحقاق",
"patient": "المريض",
"details": "التفاصيل",
"reopen": "إعادة فتح المهمة",
"complete": "تحديد كمكتملة",
"moveTo": "نقل إلى",
"delete": "حذف المهمة"
},
"delete": {
"title": "حذف المهمة؟",
"body": "حذف \"{{title}}\" نهائيًا. لا يمكن التراجع عن هذا.",
"confirm": "حذف",
"cancel": "إلغاء",
"doneTitle": "تم حذف المهمة",
"failedTitle": "تعذّر حذف المهمة",
"failedBody": "يرجى المحاولة مرة أخرى."
},
"toast": {
"needSubjectTitle": "أضف موضوعًا",
"needSubjectBody": "صف المهمة أولًا.",
"addedTitle": "تمت إضافة المهمة",
"addFailedTitle": "تعذّر إضافة المهمة",
"addFailedBody": "يرجى المحاولة مرة أخرى.",
"updateFailedTitle": "تعذّر تحديث المهمة",
"updateFailedBody": "يرجى المحاولة مرة أخرى.",
"needPersonTitle": "اختر عضو فريق",
"needPersonBody": "اختر لمن هذه المهمة."
}
},
"meetings": {
"rooms": "الغرف",
"newRoom": "غرفة جديدة",
"newRoomDescription": "أنشئ غرفة صوتية/مرئية يمكن لفريقك الانضمام إليها.",
"roomNameLabel": "اسم الغرفة",
"roomNamePlaceholder": "مثال: اجتماع الصباح",
"noRooms": "لا توجد غرف بعد. أنشئ واحدة لبدء مكالمة.",
"create": "إنشاء",
"creating": "جارٍ الإنشاء…",
"cancel": "إلغاء",
"createFailedTitle": "تعذّر إنشاء الغرفة",
"createFailedBody": "يرجى المحاولة مرة أخرى.",
"deleteRoom": "حذف الغرفة",
"deleting": "جارٍ الحذف…",
"deleteRoomConfirmTitle": "حذف هذه الغرفة؟",
"deleteRoomConfirmBody": "ستُزال “{{name}}” للجميع. سيُقطع اتصال أي شخص في المكالمة حاليًا.",
"deleteFailedTitle": "تعذّر حذف الغرفة",
"deleteFailedBody": "يرجى المحاولة مرة أخرى.",
"emptyTitle": "لم يتم اختيار غرفة",
"emptyDescription": "اختر غرفة للانضمام إلى المكالمة، أو أنشئ غرفة جديدة.",
"you": "أنت",
"guest": "ضيف",
"inCall": "{{count}} في المكالمة",
"connecting": "جارٍ الاتصال…",
"roomFull": "الغرفة ممتلئة (بحد أقصى {{max}}).",
"callError": "تعذّر بدء المكالمة. تحقّق من أذونات الكاميرا/الميكروفون.",
"muteMic": "كتم الميكروفون",
"unmuteMic": "إلغاء كتم الميكروفون",
"startVideo": "بدء الفيديو",
"stopVideo": "إيقاف الفيديو",
"shareScreen": "مشاركة الشاشة",
"leave": "مغادرة المكالمة",
"calendar": "التقويم",
"calendarEmpty": "لا اجتماعات في هذا اليوم.",
"invite": {
"add": "إضافة أشخاص",
"title": "الدعوة إلى المكالمة",
"description": "اتصل بعضو فريق في {{room}}.",
"search": "ابحث في الفريق…",
"noMembers": "لا يوجد أعضاء آخرون.",
"ring": "اتصال",
"invited": "تمت الدعوة",
"join": "انضمام",
"toastTitle": "دعاك {{name}} إلى مكالمة",
"accept": "قبول",
"decline": "رفض"
},
"schedule": {
"cta": "جدولة اجتماع",
"title": "جدولة اجتماع",
"description": "خطّط لاجتماع وادعُ فريقك.",
"titleLabel": "العنوان",
"titlePlaceholder": "مثال: التزامن الأسبوعي",
"date": "التاريخ",
"time": "الوقت",
"participants": "المشاركون",
"save": "جدولة",
"saving": "جارٍ الجدولة…",
"failedTitle": "تعذّر جدولة الاجتماع",
"failedBody": "يرجى المحاولة مرة أخرى."
},
"calendarEmptyHint": "جدول اجتماعًا لرؤيته في هذا اليوم.",
"upcoming": {
"title": "القادمة",
"empty": "لا اجتماعات قادمة."
}
},
"messages": {
"inbox": "صندوق الوارد",
"unread": "غير مقروءة · {{count}}",
"newMessage": "رسالة جديدة",
"searchPlaceholder": "ابحث في المحادثات",
"noMatches": "لا توجد محادثات مطابقة لبحثك.",
"noUnread": "لا توجد رسائل غير مقروءة.",
"noConversations": "لا توجد محادثات بعد.",
"you": "أنت: ",
"directMessage": "رسالة مباشرة",
"peopleCount": "{{count}} أشخاص",
"messagePlaceholder": "رسالة إلى {{name}}…",
"send": "إرسال",
"emptyTitle": "لم يتم اختيار محادثة",
"emptyDescription": "اختر محادثة من صندوق الوارد، أو ابدأ محادثة جديدة.",
"startConversation": "بدء محادثة",
"today": "اليوم",
"yesterday": "أمس",
"compose": {
"title": "رسالة جديدة",
"description": "ابدأ محادثة مع أحد أعضاء عيادتك.",
"searchPlaceholder": "ابحث عن أشخاص",
"noMatches": "لا يوجد أشخاص مطابقون لبحثك.",
"noMembers": "لا يوجد أعضاء آخرون في العيادة بعد. ادعُ زملاءك من الإعدادات ← فريق الرعاية."
},
"startFailedTitle": "تعذّر بدء المحادثة",
"startFailedBody": "يرجى المحاولة مرة أخرى.",
"attach": {
"menu": "إرفاق",
"file": "ملفات",
"appointment": "مواعيد",
"remove": "إزالة",
"uploading": "جارٍ الرفع…",
"uploadFailedTitle": "تعذّر إرفاق الملف",
"uploadFailedBody": "قد يكون الملف كبيرًا جدًا (بحد أقصى 10 ميجابايت). يرجى المحاولة مرة أخرى.",
"tooLargeTitle": "الملف كبير جدًا",
"tooLargeBody": "المرفقات محدودة بـ 10 ميجابايت.",
"download": "تنزيل",
"apptDialogTitle": "مشاركة موعد",
"apptDialogDescription": "ابحث باسم المريض، ثم اختر موعدًا لإرفاقه.",
"apptSearchPlaceholder": "اسم المريض…",
"apptNoMatches": "لا توجد مواعيد مطابقة.",
"apptEmpty": "لا توجد مواعيد بعد.",
"apptCardLabel": "موعد",
"apptDetailTitle": "تفاصيل الموعد",
"apptWhen": "متى",
"apptType": "النوع",
"apptProvider": "الطبيب",
"apptPatient": "المريض",
"apptStatus": "الحالة"
},
"startCall": "بدء مكالمة مع {{name}}",
"system": {
"label": "رسالة النظام",
"tag": "النظام",
"readOnly": "هذا إشعار نظام تلقائي — لا يمكنك الرد هنا.",
"passwordResetTitle": "طُلب إعادة تعيين كلمة المرور",
"passwordResetBody": "نسي {{name}} كلمة المرور. اضغط لفتح إعداداته وتعيين كلمة مرور جديدة."
}
},
"analysis": {
"title": "نظرة عامة",
"subtitle": "أداء العيادة في لمحة، محسوب من بيانات عيادتك.",
"customize": "تخصيص",
"customizeTitle": "إظهار الأقسام",
"range": {
"all": "كل الأوقات",
"12m": "12 شهرًا",
"3m": "3 أشهر",
"30d": "30 يومًا",
"today": "اليوم"
},
"section": {
"visits": "زيارات المرضى",
"patients": "حجم المرضى",
"trends": "الاتجاهات",
"earnings": "الإيرادات",
"appointments": "المواعيد",
"prescriptions": "الوصفات"
},
"area": {
"title": "زيارات المرضى",
"subtitle": "حجم الزيارات خلال الأشهر الستة الماضية.",
"label": "إجمالي الزيارات"
},
"patientVolume": {
"title": "حجم المرضى",
"description": "مرضى جدد ونشطون وإجمالي",
"total": "إجمالي المرضى",
"newThisMonth": "جدد هذا الشهر",
"active": "المرضى النشطون"
},
"earnings": {
"title": "الإيرادات",
"description": "مفوتر ومدفوع ومستحق — من الفواتير",
"billed": "إجمالي المفوتر",
"paid": "إجمالي المدفوع",
"outstanding": "مستحق",
"byMonth": "المفوتر مقابل المدفوع، حسب الشهر"
},
"appointments": {
"title": "المواعيد والجدول",
"description": "الحجوزات والحضور وما هو قادم",
"thisWeek": "هذا الأسبوع",
"upcoming": "القادمة",
"completed": "المكتملة",
"cancelled": "الملغاة"
},
"prescriptions": {
"title": "الوصفات",
"description": "الأدوية الموصوفة",
"total": "إجمالي الصادر",
"active": "نشطة"
},
"tasks": {
"title": "المهام",
"description": "عبء عمل فريق الرعاية",
"open": "مفتوحة",
"completed": "مكتملة"
},
"charts": {
"title": "الاتجاهات",
"subtitle": "نمو المرضى وحجم المواعيد الأسبوعي.",
"viewDetails": "اضغط للتفاصيل",
"patientGrowthTitle": "مرضى جدد",
"patientGrowthDescription": "مرضى جدد شهريًا خلال الأشهر الستة الماضية",
"weeklyAppointmentsTitle": "مواعيد هذا الأسبوع",
"weeklyAppointmentsDescription": "الحجوزات يوميًا للأسبوع الحالي",
"empty": "لا توجد بيانات بعد"
}
},
"activity": {
"title": "النشاط",
"subtitle": "سجل تدقيق لتغييرات السجلات في جميع أنحاء العيادة.",
"changesToday": "تغييرات اليوم",
"thisWeek": "هذا الأسبوع",
"totalRecorded": "إجمالي المسجّل",
"empty": "لا يوجد نشاط بعد. ستظهر هنا التغييرات على المرضى والملاحظات والمواعيد والوصفات والمهام.",
"detail": {
"title": "تفاصيل النشاط",
"person": "نفّذه",
"record": "نوع السجل",
"patient": "المريض",
"reference": "المرجع",
"time": "الوقت",
"close": "إغلاق",
"entityTypes": {
"patient": "مريض",
"note": "ملاحظة",
"appointment": "موعد",
"prescription": "وصفة",
"task": "مهمة"
}
}
},
"notes": {
"title": "الملاحظات",
"subtitle": "ملاحظات سريرية. انقر على ملاحظة لفتحها.",
"new": "ملاحظة جديدة",
"editNote": "تعديل الملاحظة",
"loading": "جارٍ التحميل…",
"emptyTitle": "لا توجد ملاحظات بعد",
"emptyDescription": "أنشئ ملاحظة لبدء الكتابة.",
"untitled": "ملاحظة بلا عنوان",
"updated": "حُدّثت في {{date}}",
"tryAgain": "يرجى المحاولة مرة أخرى.",
"loadFailed": "تعذّر تحميل الملاحظات",
"saved": "تم حفظ الملاحظة",
"saveFailed": "تعذّر حفظ الملاحظة",
"deleted": "تم حذف الملاحظة",
"deleteFailed": "تعذّر حذف الملاحظة",
"editor": {
"placeholder": "اكتب ملاحظتك…",
"titlePlaceholder": "عنوان الملاحظة",
"delete": "حذف الملاحظة",
"save": "حفظ",
"saving": "جارٍ الحفظ…",
"bold": "غامق",
"italic": "مائل",
"underline": "تسطير",
"heading1": "عنوان 1",
"heading2": "عنوان 2",
"bulletList": "قائمة نقطية",
"numberedList": "قائمة مرقّمة",
"undo": "تراجع",
"redo": "إعادة",
"confirmTitle": "حذف هذه الملاحظة؟",
"confirmDescription": "ستُحذف \"{{name}}\" نهائيًا. لا يمكن التراجع عن هذا.",
"confirmLabel": "حذف الملاحظة"
}
},
"chat": {
"heading": "أي مريض تودّ البحث عنه؟",
"setupNotice": {
"title": "اربط نموذج ذكاء اصطناعي للبدء",
"body": "لم يتم إعداد أي مزوّد ذكاء اصطناعي بعد. أضف مفتاح API أو وجّه temetro إلى نموذج Ollama محلي حتى يتمكّن المساعد من الرد.",
"action": "فتح إعدادات الذكاء الاصطناعي",
"dismiss": "تجاهل"
},
"input": {
"placeholder": "اسأل أي شيء، أو اكتب /patient 10293",
"message": "رسالة",
"addPatient": "إضافة مريض",
"attachFile": "إرفاق ملف",
"attachFiles": "إرفاق ملفات",
"removeFile": "إزالة {{name}}",
"dictate": "إملاء",
"dictateStop": "إيقاف الإملاء",
"dictateUnsupported": "الإملاء الصوتي غير مدعوم في هذا المتصفح",
"send": "إرسال",
"stop": "إيقاف",
"model": "النموذج",
"mode": "الوضع",
"modes": {
"chat": {
"label": "محادثة",
"description": "اسأل واسترجع معلومات المريض."
},
"analysis": {
"label": "تحليل",
"description": "فسّر الأنماط عبر تاريخ المريض."
},
"graph": {
"label": "رسم بياني",
"description": "شاهد كيف ترتبط المشكلات والزيارات."
}
},
"moreModels": "المزيد من النماذج",
"effort": "الجهد",
"effortOptions": {
"low": "منخفض",
"medium": "متوسط",
"high": "عالٍ"
},
"models": {
"opus48": "للاستدلال السريري المعقّد",
"sonnet46": "متوازن للمهام اليومية",
"haiku45": "الأسرع للإجابات السريعة",
"gemini25Pro": "أقوى نماذج Google",
"gemini25Flash": "نموذج Google سريع",
"gemini20Flash": "نموذج Google خفيف",
"gpt4o": "النموذج الرائد متعدد الوسائط من OpenAI",
"gpt4oMini": "نموذج OpenAI سريع ومنخفض التكلفة",
"ollama": "يعمل محليًا على بنيتك التحتية"
}
},
"patientNotFound": "لم أتمكّن من العثور على مريض برقم الملف {{fileNumber}}.",
"thinking": "جارٍ التفكير…",
"steps": "الخطوات",
"reasoning": "الاستدلال",
"sources": {
"title": "المصادر",
"kind": {
"patient": "سجل المريض",
"lab": "نتائج المختبر",
"appointments": "الجدول",
"tasks": "المهام",
"prescriptions": "الوصفات",
"clinic": "العيادة",
"analytics": "التحليلات",
"inventory": "المخزون"
}
},
"graphCard": {
"label": "رسم السجل البياني"
},
"history": {
"title": "المحادثات",
"untitled": "محادثة جديدة",
"empty": "لا توجد محادثات محفوظة بعد.",
"delete": "حذف المحادثة",
"open": "سجل المحادثات",
"search": "ابحث في المحادثات",
"startNew": "بدء محادثة جديدة"
},
"suggestions": {
"schedule": "عرض جدول اليوم",
"tasks": "سرد المهام المفتوحة",
"prescriptions": "عرض الوصفات الأخيرة",
"import": "استيراد قاعدة بيانات مرضى"
},
"queue": {
"label": "في قائمة الانتظار · {{count}}",
"remove": "إزالة من قائمة الانتظار",
"attachmentsOnly": "{{count}} مرفق"
},
"veil": {
"title": "Veil",
"body": "ستُعالَج هذه الرسالة بواسطة {{provider}}، وهو مزوّد خارجي. يزيل Veil هوية معلومات المريض (الأسماء وأرقام السجلات الطبية والأطباء) قبل مغادرتها بنيتك التحتية، ويستعيدها في الإجابة.",
"cancel": "إلغاء",
"useLocal": "استخدام نموذج محلي",
"confirm": "إزالة الهوية والإرسال",
"activeChip": "Veil نشط · {{provider}}"
},
"actionCard": {
"title": {
"appointment": "موعد مقترح",
"task": "مهمة مقترحة",
"prescription": "وصفة مقترحة",
"invoice": "فاتورة مقترحة",
"inventory": "مخزون مقترح"
},
"kind": {
"appointment": "تمت إضافة الموعد.",
"task": "تمت إضافة المهمة.",
"prescription": "تمت إضافة الوصفة.",
"invoice": "تمت إضافة الفاتورة.",
"inventory": "تم تحديث المخزون."
},
"inventoryItems": "{{count}} عنصر",
"itemCount": "{{count}} عنصر",
"total": "الإجمالي",
"editButton": "تعديل",
"edit": {
"title": "تعديل السجل المقترح",
"save": "حفظ التغييرات",
"cancel": "إلغاء",
"addRow": "إضافة",
"removeRow": "إزالة الصف"
},
"fields": {
"name": "اسم المريض",
"date": "التاريخ",
"time": "الوقت",
"type": "النوع",
"provider": "الطبيب",
"title": "العنوان",
"assignee": "المسند إليه",
"due": "الاستحقاق",
"priority": "الأولوية",
"patient": "المريض",
"medication": "الدواء",
"dose": "الجرعة",
"frequency": "التكرار",
"duration": "المدة",
"lineItems": "البنود",
"description": "الوصف",
"quantity": "الكمية",
"unitPrice": "سعر الوحدة",
"items": "العناصر",
"itemName": "الاسم",
"strength": "التركيز",
"stockQuantity": "الكمية"
},
"approve": "إضافة",
"adding": "جارٍ الإضافة…",
"discard": "تجاهل",
"added": "تمت الإضافة.",
"discarded": "تم التجاهل — لم يُحفظ شيء.",
"addedTitle": "تمت الإضافة",
"failedTitle": "تعذّرت الإضافة",
"failedBody": "حدث خطأ ما، أو ليس لديك إذن. يرجى المحاولة مرة أخرى.",
"batch": {
"title": "{{count}} سجلات مقترحة",
"review": "مراجعة وإضافة",
"dialogTitle": "مراجعة السجلات المقترحة",
"dialogDescription": "أضفها جميعًا دفعة واحدة، أو أزل أيًا منها لا تريده.",
"addAll": "إضافة الكل",
"adding": "جارٍ الإضافة…",
"discardAll": "تجاهل الكل",
"newPatient": "سيتم إنشاء مريض جديد",
"edited": "مُعدّل",
"remove": "إزالة",
"done": "تمت إضافة {{added}} من {{total}}.",
"alreadyAdded": "تمت الإضافة.",
"failedCount": "فشل {{count}}",
"discarded": "تم التجاهل — لم يُحفظ شيء."
}
},
"lists": {
"appointments": "المواعيد",
"tasks": "المهام",
"prescriptions": "الوصفات",
"done": "منجزة",
"noAppointments": "لا مواعيد.",
"noTasks": "لا مهام.",
"noPrescriptions": "لا وصفات.",
"inventory": "المخزون",
"noInventory": "لا عناصر مخزون.",
"moreAppointments": "+{{count}} أخرى",
"viewInCalendar": "عرض في التقويم"
},
"clinicCard": {
"title": "العيادة",
"since": "منذ {{date}}"
},
"analyticsCard": {
"title": "تحليلات العيادة",
"patients": "المرضى",
"appointmentsThisWeek": "مواعيد هذا الأسبوع",
"activePrescriptions": "وصفات نشطة",
"openTasks": "مهام مفتوحة",
"billed": "مفوتر",
"paid": "مدفوع",
"outstanding": "مستحق",
"byMonth": "المفوتر مقابل المدفوع، حسب الشهر"
},
"labCard": {
"flags": {
"low": "منخفض",
"high": "مرتفع",
"critical": "حرج",
"normal": "طبيعي"
}
},
"importCard": {
"title": "استيراد سجلات المرضى",
"ready": "جاهز للاستيراد",
"skipped": "تم تخطّيه",
"total": "تم التحليل",
"row": "صف {{index}}",
"more": "+{{count}} أخرى",
"approve_zero": "استيراد {{count}} سجل",
"approve_one": "استيراد سجل واحد",
"approve_two": "استيراد سجلين",
"approve_few": "استيراد {{count}} سجلات",
"approve_many": "استيراد {{count}} سجلاً",
"approve_other": "استيراد {{count}} سجل",
"reject": "تجاهل",
"reviewEdit": "مراجعة وتعديل",
"reviewTitle": "مراجعة السجلات",
"reviewDescription": "افتح أي سجل لتعديله قبل الاستيراد. أصلح السجلات المتخطّاة لتضمينها.",
"reviewClose": "إغلاق",
"fixHint": "افتح مراجعة وتعديل لإصلاح الصفوف المتخطّاة، أو استورد الجاهزة.",
"rowReady": "جاهز للاستيراد",
"needsFix": "يحتاج إلى إصلاح",
"unnamed": "سجل بلا اسم",
"importing": "جارٍ الاستيراد…",
"rejectedNote": "تم تجاهل الاستيراد. لم يُكتب شيء.",
"importedTitle": "تم استيراد السجلات",
"importedBody": "تم استيراد {{count}} سجلات مرضى.",
"alreadyImported": "تم الاستيراد.",
"failedCount": "فشل {{count}}",
"failedTitle": "فشل الاستيراد",
"failedBody": "تعذّر استيراد السجلات. يرجى المحاولة مرة أخرى."
},
"error": {
"title": "فشل طلب الذكاء الاصطناعي",
"body": "حدث خطأ ما أثناء الوصول إلى الذكاء الاصطناعي. تحقّق من المزوّد ومفتاح API في الإعدادات ← الذكاء الاصطناعي.",
"dismiss": "تجاهل"
}
},
"patientFiles": {
"title": "الملفات",
"add": "إضافة ملفات",
"empty": "لم تُرفع ملفات.",
"remove": "إزالة",
"open": "فتح",
"close": "إغلاق",
"noPreview": "لا تتوفّر معاينة لنوع هذا الملف.",
"deletedTitle": "تمت إزالة الملف",
"deleteFailedTitle": "تعذّرت إزالة الملف",
"deleteFailedBody": "حدث خطأ ما، أو ليس لديك إذن. يرجى المحاولة مرة أخرى.",
"uploadFailedTitle": "لم تُرفع بعض الملفات",
"uploadFailedBody": "تم حفظ السجل، لكن فشل رفع ملف واحد أو أكثر. حاول إضافتها مرة أخرى من السجل."
},
"integrations": {
"fhir": {
"cardTitle": "نظام المختبر (HL7/FHIR)",
"disabledHint": "غير مُفعّل. يمكن لمالك أو مسؤول ربط نظام مختبر في الإعدادات ← التكاملات.",
"searchPlaceholder": "ابحث عن مريض لسحب النتائج…",
"change": "تغيير",
"sync": "مزامنة النتائج",
"syncing": "جارٍ المزامنة…",
"syncedTitle": "تمت مزامنة النتائج",
"syncedBody": "تم استيراد {{count}} نتائج لـ {{name}}.",
"failedTitle": "فشلت المزامنة",
"failedBody": "تعذّر الوصول إلى نظام المختبر. يرجى المحاولة مرة أخرى."
},
"eRx": {
"send": "إرسال إلى الصيدلية",
"sending": "جارٍ الإرسال…",
"sentTitle": "تم إرسال الوصفة",
"sentBody": "أُرسلت إلى الصيدلية كرسالة NCPDP SCRIPT NewRx.",
"failedTitle": "تعذّر الإرسال",
"failedBody": "رفضت بوابة الصيدلية الرسالة أو تعذّر الوصول إليها."
},
"claims": {
"submit": "تقديم المطالبة",
"submitting": "جارٍ التقديم…",
"submittedTitle": "تم تقديم المطالبة",
"submittedBody": "حالة مركز المقاصة: {{status}}.",
"failedTitle": "تعذّر تقديم المطالبة",
"failedBody": "رفض مركز المقاصة المطالبة أو تعذّر الوصول إليه."
}
},
"patientCard": {
"notFound": "لم يُعثر على مريض للملف رقم {{number}}.",
"overview": "نظرة عامة",
"edit": "تعديل",
"exportPdf": "تنزيل الملخّص",
"clickForMore": "انقر للمزيد",
"pdf": {
"title": "الملخّص السريري",
"mrn": "رقم السجل الطبي",
"generated": "أُنشئ في {{date}}"
},
"history": {
"title": "سجل التغييرات",
"empty": "لا توجد تغييرات مسجّلة بعد.",
"loadError": "تعذّر تحميل سجل التغييرات."
},
"sex": {
"F": "أنثى",
"M": "ذكر"
},
"summary": {
"fullName": "الاسم الكامل",
"mrn": "رقم السجل الطبي",
"age": "العمر",
"sex": "الجنس",
"primaryCare": "الرعاية الأساسية",
"status": "الحالة",
"lastSeen": "آخر زيارة",
"allergies": "الحساسيات",
"activeMeds": "الأدوية النشطة",
"openProblems": "المشكلات المفتوحة",
"bloodType": "فصيلة الدم",
"phone": "الهاتف",
"none": "لا شيء",
"editRecord": "تعديل السجل"
},
"vitals": {
"title": "العلامات الحيوية",
"taken": "أُخذت {{at}}",
"bp": "ض.د",
"hr": "معدل النبض",
"temp": "الحرارة",
"spo2": "SpO₂"
},
"labs": {
"title": "التحاليل",
"asOf": "حتى {{at}}",
"empty": "لا توجد تحاليل في الملف."
},
"medications": {
"title": "الأدوية",
"active": "{{count}} نشط",
"empty": "لا توجد أدوية نشطة."
},
"problems": {
"title": "المشكلات",
"active": "{{count}} نشط",
"empty": "لا توجد مشكلات نشطة.",
"since": "منذ {{date}}"
},
"allergies": {
"title": "الحساسيات والتنبيهات",
"sectionLabel": "الحساسيات",
"none": "لا حساسيات معروفة.",
"count": "{{count}} مسجّلة"
},
"visits": {
"title": "الزيارات الأخيرة",
"recent": "{{count}} أخيرة",
"empty": "لا توجد زيارات بعد."
},
"graph": {
"title": "رسم السجل البياني",
"hint": "مرّر فوق عقدة لإبراز روابطها. مرّر للتحريك، واقرص للتكبير.",
"empty": "لا توجد بيانات كافية لرسم السجل بعد.",
"open": "فتح الرسم البياني",
"close": "إغلاق",
"kind": {
"problem": "مشكلة",
"visit": "زيارة"
},
"fields": {
"since": "منذ",
"date": "التاريخ",
"provider": "الطبيب",
"summary": "الملخّص"
}
},
"appointments": {
"title": "المواعيد",
"empty": "لا توجد مواعيد في الملف."
},
"prescriptions": {
"title": "الوصفات",
"empty": "لا توجد وصفات في الملف."
},
"invoices": {
"title": "الفواتير",
"empty": "لا توجد فواتير في الملف."
},
"trend": {
"empty": "لا توجد بيانات اتجاه بعد.",
"last": "{{label}} · آخر {{count}}",
"lastReadings": "{{label}} · آخر {{count}} قراءات",
"latest": "الأحدث",
"min": "الأدنى",
"max": "الأعلى"
},
"labFlag": {
"normal": "طبيعي",
"low": "منخفض",
"high": "مرتفع",
"critical": "حرج"
},
"severity": {
"mild": "خفيف",
"moderate": "متوسط",
"severe": "شديد"
}
},
"patientForm": {
"editTitle": "تعديل السجل",
"createTitle": "إضافة مريض",
"editDescription": "حدّث سجل {{name}} وأضف بيانات جديدة.",
"createDescription": "أنشئ سجلًا جديدًا. تم إنشاء رقم ملف لك.",
"fileNumber": "رقم الملف",
"regenerate": "إعادة إنشاء رقم الملف",
"fullName": "الاسم الكامل",
"fullNamePlaceholder": "مثال: جوردان بيرس",
"age": "العمر",
"sex": "الجنس",
"status": "الحالة",
"primaryCare": "الرعاية الأساسية",
"primaryCarePlaceholder": "مثال: د. لينا أورتيز",
"primaryCareUnassigned": "غير مُعيّن",
"phone": "الهاتف",
"phonePlaceholder": "مثال: +1 555 010 2938",
"bloodType": "فصيلة الدم",
"bloodTypeUnknown": "غير معروف",
"currentVitals": "العلامات الحيوية الحالية",
"bp": "ضغط الدم",
"hr": "معدل ضربات القلب",
"temp": "الحرارة",
"spo2": "تشبّع الأكسجين",
"allergies": "الحساسيات",
"medications": "الأدوية",
"problems": "المشكلات",
"labs": "التحاليل",
"visits": "الزيارات",
"add": "إضافة",
"removeRow": "إزالة صف {{label}}",
"pickDate": "اختر تاريخًا",
"substance": "المادة",
"reaction": "التفاعل",
"severityAria": "الشدة",
"medNameAria": "اسم الدواء",
"medName": "الاسم",
"dose": "الجرعة",
"frequency": "التكرار",
"problemAria": "المشكلة",
"diagnosis": "التشخيص",
"sinceAria": "منذ",
"labNameAria": "اسم التحليل",
"test": "التحليل",
"valueAria": "القيمة",
"value": "القيمة",
"flagAria": "العلامة",
"visitTypeAria": "نوع الزيارة",
"visitType": "النوع",
"visitDateAria": "تاريخ الزيارة",
"visitDate": "التاريخ",
"providerAria": "الطبيب",
"provider": "الطبيب",
"summaryAria": "الملخّص",
"summary": "الملخّص",
"cancel": "إلغاء",
"saving": "جارٍ الحفظ…",
"saveChanges": "حفظ التغييرات",
"savePatient": "حفظ المريض",
"saveDraft": "حفظ التغييرات",
"reviewTitle": "مراجعة السجل قبل الاستيراد",
"reviewDescription": "عدّل أي حقل، ثم احفظ لتحديث هذا السجل في الاستيراد. لا يُكتب شيء حتى تستورد.",
"saveError": "تعذّر حفظ المريض.",
"updatedTitle": "تم تحديث السجل",
"updatedBody": "تم حفظ سجل {{name}}.",
"addedTitle": "تمت إضافة المريض",
"addedBody": "{{name}} ({{fileNumber}}).",
"saveFailedTitle": "تعذّر حفظ المريض"
},
"settings": {
"tabs": {
"profile": "الملف الشخصي",
"ai": "الذكاء الاصطناعي",
"records": "السجلات",
"signing": "التوقيع",
"careTeam": "فريق الرعاية",
"integrations": "التكاملات",
"developers": "المطوّرون",
"version": "حول والتحديثات"
},
"version": {
"title": "الإصدار",
"description": "إصدار temetro العامل على هذا الخادم، وما إذا كان هناك إصدار أحدث متاح.",
"current": "الإصدار الحالي",
"latest": "أحدث إصدار",
"checking": "جارٍ التحقّق من التحديثات…",
"checkNow": "التحقّق من التحديثات",
"upToDate": "محدّث",
"updateAvailable": "تحديث متاح",
"offline": "تعذّر الوصول إلى خادم التحديثات",
"updateTitle": "كيفية التحديث",
"updateDescription": "يُستضاف temetro ذاتيًا باستخدام Docker. للتحديث، اسحب الصور الجديدة وأعد التشغيل على جهاز الخادم.",
"updateCommandLabel": "أمر التحديث",
"viewRelease": "عرض ملاحظات الإصدار",
"networkTitle": "الوصول إلى الشبكة",
"networkDescription": "اسمح للأقسام الأخرى بفتح temetro من أجهزتها على شبكة المستشفى باستخدام هذا العنوان.",
"networkUrlLabel": "عنوان الشبكة",
"networkLocalHint": "أنت تعرض temetro محليًا. لمشاركته، افتح التطبيق على جهاز الخادم باستخدام عنوان IP الخاص بالشبكة (مثلًا من ipconfig / ifconfig)، ثم شارك هذا الرابط.",
"networkFirewallHint": "يجب أن يسمح جدار حماية الخادم بالمنفذ حتى تتمكّن الأجهزة الأخرى من الاتصال.",
"banner": "إصدار جديد من temetro ({{version}}) متاح.",
"bannerUpdate": "شاهد كيفية التحديث",
"bannerDismiss": "لاحقًا"
},
"integrations": {
"loading": "جارٍ تحميل التكاملات…",
"intro": "اربط temetro بأنظمة الرعاية الصحية الخارجية. وجّه كل تكامل إلى نقطة النهاية التجريبية أو الإنتاجية للمزوّد وقدّم بيانات اعتماده.",
"endpoint": "عنوان نقطة النهاية",
"credentials": "بيانات الاعتماد",
"credentialsSet": "•••••••• (محفوظة — اكتب للاستبدال)",
"enable": "تفعيل التكامل",
"enableHint": "عند التفعيل، تظهر إجراءاته في الصفحات ذات الصلة.",
"save": "حفظ",
"saving": "جارٍ الحفظ…",
"test": "اختبار الاتصال",
"testing": "جارٍ الاختبار…",
"savedTitle": "تم حفظ التكامل",
"saveFailedTitle": "تعذّر الحفظ",
"saveFailedBody": "حدث خطأ ما، أو ليس لديك إذن. يرجى المحاولة مرة أخرى.",
"testOk": "نجح الاتصال",
"testFailed": "فشل الاتصال",
"testError": "تعذّر الوصول إلى نقطة النهاية.",
"lastSync": "آخر نشاط {{when}}",
"status": {
"connected": "متصل",
"error": "خطأ",
"unconfigured": "غير مُهيّأ"
},
"fhir": {
"title": "نظام المختبر (HL7/FHIR)",
"description": "اقرأ نتائج المختبر من خادم FHIR R4 أو موجز HL7 v2 (مثل بيئة اختبار HAPI FHIR / SMART Health IT، أو بوابة مختبرك).",
"endpointPlaceholder": "https://hapi.fhir.org/baseR4",
"credentialsPlaceholder": "رمز Bearer (اختياري لبيئات الاختبار المفتوحة)",
"credentialsHint": "يُرسل كرمز Bearer، أو JSON {\"token\":\"…\"}. اتركه فارغًا لبيئات الاختبار العامة."
},
"eprescribe": {
"title": "الوصف الإلكتروني (NCPDP SCRIPT)",
"description": "أرسل الوصفات إلى الصيدليات كرسائل NCPDP SCRIPT NewRx. يتطلّب التوجيه الإنتاجي حساب Surescripts (أو بيئة الاختبار) الخاص بك.",
"endpointPlaceholder": "https://your-pharmacy-gateway.example/script",
"credentialsPlaceholder": "JSON: {\"token\":\"…\",\"senderId\":\"…\"}",
"credentialsHint": "JSON مع رمز بوابتك ومعرّف المرسل."
},
"claims": {
"title": "مطالبات التأمين (X12 837/835)",
"description": "قدّم المطالبات المهنية (837P) إلى مركز مقاصة واقرأ التحويلات (835). يتطلّب الإنتاج حساب مركز المقاصة الخاص بك.",
"endpointPlaceholder": "https://your-clearinghouse.example/claims",
"credentialsPlaceholder": "JSON: {\"token\":\"…\",\"submitterId\":\"…\",\"receiverId\":\"…\"}",
"credentialsHint": "JSON مع رمز مركز المقاصة ومعرّفات المرسل/المستقبل."
},
"fhirServer": {
"title": "خادم FHIR (مشاركة سجلاتك)",
"description": "اعرض سجلات هذه العيادة للأنظمة الخارجية كخادم FHIR R4 للقراءة فقط، مع المصادقة عبر مفاتيح API خاصة بكل عيادة.",
"baseUrl": "عنوان URL الأساسي",
"baseUrlHint": "وجّه عميل FHIR إلى هذا العنوان. يقدّم Patient وObservation وCondition وAllergyIntolerance وMedicationRequest وEncounter وAppointment.",
"copiedUrl": "تم نسخ العنوان الأساسي",
"newKey": "إنشاء مفتاح API",
"newKeyPlaceholder": "اسم المفتاح (مثل مستودع الأبحاث)",
"create": "إنشاء",
"creating": "جارٍ الإنشاء…",
"createFailed": "تعذّر إنشاء المفتاح",
"createFailedBody": "يرجى المحاولة مرة أخرى.",
"secretTitle": "انسخ مفتاح API الآن",
"secretHint": "هذه هي المرة الوحيدة التي يظهر فيها السر. احفظه في مكان آمن — لا يمكن استرجاعه لاحقًا.",
"copiedSecret": "تم نسخ مفتاح API",
"dismissSecret": "تم",
"noKeys": "لا توجد مفاتيح API بعد. أنشئ واحدًا للسماح لعميل FHIR بالاتصال.",
"lastUsed": "آخر استخدام {{when}}",
"neverUsed": "لم يُستخدم قط",
"revoke": "إبطال",
"confirmRevoke": "إبطال المفتاح",
"revoked": "تم الإبطال",
"revokeFailed": "تعذّر إبطال المفتاح",
"revokeFailedBody": "يرجى المحاولة مرة أخرى.",
"cancel": "إلغاء"
}
},
"empty": "لا شيء هنا بعد.",
"copy": "نسخ",
"copied": "تم النسخ",
"records": {
"description": "كيفية جلب سجلات المرضى وتخزينها وعرضها",
"comingSoon": "قريبًا",
"connected": "متصل",
"sourcesTitle": "مصادر البيانات",
"sourcesDescription": "من أين تأتي سجلات المرضى المعروضة في temetro",
"clinicDb": "قاعدة بيانات العيادة",
"clinicDbDesc": "تُخزَّن سجلات المرضى في قاعدة بيانات عيادتك الخاصة ومقيّدة بهذه العيادة.",
"patientStorage": "تخزين مملوك للمريض",
"patientStorageDesc": "اقرأ واكتب السجلات مباشرة على جهاز المريض بمجرد إطلاق التطبيق المرافق.",
"importExportTitle": "الاستيراد والتصدير",
"importExportDescription": "انقل السجلات إلى temetro ومنه",
"export": "تصدير السجلات",
"exportDesc": "نزّل كل سجل مريض في هذه العيادة كأرشيف واحد.",
"import": "استيراد قاعدة بيانات موجودة",
"importDesc": "اربط قاعدة بيانات مرضى موجودة وتصفّحها في واجهة البطاقات نفسها.",
"retentionTitle": "الاحتفاظ",
"retentionDescription": "مدة الاحتفاظ بالسجلات",
"retentionBody": "تُحفظ السجلات طالما بقيت عيادتك موجودة. حذف مريض يزيل سجله نهائيًا من قاعدة بيانات العيادة، ويحتفظ سجل النشاط بمسار تدقيق لكل تغيير — من أجراه ومتى.",
"exporting": "جارٍ التصدير…",
"exportDoneTitle": "تم تصدير السجلات",
"exportDoneBody": "تم تنزيل {{count}} سجلات مرضى.",
"exportFailedTitle": "فشل التصدير",
"exportFailedBody": "تعذّر تصدير السجلات. يرجى المحاولة مرة أخرى.",
"importTemetro": "استيراد أرشيف temetro",
"importTemetroDesc": "حمّل المرضى من ملف تصدير temetro. تُتخطّى أرقام الملفات الموجودة.",
"importChoose": "اختر ملفًا",
"importPreview": "{{count}} سجلات مرضى جاهزة للاستيراد.",
"importCancel": "إلغاء",
"importApply": "استيراد",
"importing": "جارٍ الاستيراد…",
"importInvalidTitle": "ملف غير صالح",
"importInvalidBody": "لا يبدو هذا ملف تصدير temetro.",
"importDoneTitle": "اكتمل الاستيراد",
"importDoneBody": "أُنشئ {{created}}، تم تخطّي {{skipped}}.",
"importFailedTitle": "فشل الاستيراد",
"importFailedBody": "تعذّر استيراد السجلات. يرجى المحاولة مرة أخرى."
},
"developers": {
"description": "رموز الوصول لواجهة برمجة تطبيقات temetro",
"comingSoon": "قريبًا",
"apiTitle": "الوصول إلى واجهة برمجة التطبيقات",
"apiDescription": "ابنِ على واجهة REST API نفسها التي يستخدمها تطبيق temetro",
"baseUrlLabel": "عنوان URL الأساسي لواجهة برمجة التطبيقات",
"baseUrlDescription": "توجد جميع نقاط النهاية تحت هذا الأصل (مثل /api/patients)",
"authLabel": "المصادقة",
"authDescription": "تُصادِق الطلبات باستخدام ملف تعريف ارتباط جلسة temetro. رموز الوصول الشخصية المحدّدة النطاق للاستخدام بين الخوادم مخطّطة.",
"tokensTitle": "رموز الوصول الشخصية",
"tokensDescription": "رموز طويلة الأمد للبرامج النصية والتكاملات",
"noTokens": "لا توجد رموز بعد.",
"generateToken": "إنشاء رمز",
"resourcesTitle": "الموارد",
"resourcesDescription": "أين تتعلّم المزيد",
"resourcesBody": "مرجع واجهة برمجة التطبيقات — الذي يغطّي المرضى والمواعيد والوصفات والمهام والمراسلة والنشاط والتحليلات — موجود في توثيق المشروع تحت docs/api. temetro مفتوح المصدر، لذا فإن معالِجات المسارات في backend/src/routes هي المواصفة المرجعية.",
"email": {
"title": "مزوّد البريد الإلكتروني",
"description": "كيف يرسل temetro رسائل التحقّق وإعادة تعيين كلمة المرور والدعوات. هذا إعداد على مستوى النشر بأكمله.",
"provider": "المزوّد",
"providers": {
"none": "غير مُهيّأ",
"smtp": "SMTP",
"resend": "Resend",
"postmark": "Postmark",
"sendgrid": "SendGrid"
},
"from": "عنوان المرسِل",
"apiKey": "مفتاح API",
"apiKeySet": "•••••••• (محفوظ — اتركه فارغًا للإبقاء عليه)",
"apiKeyPlaceholder": "الصق مفتاح API الخاص بمزوّدك",
"smtpHint": "يستخدم SMTP متغيرات البيئة SMTP_HOST/PORT/USER/PASS على الخادم.",
"save": "حفظ",
"saving": "جارٍ الحفظ…",
"savedTitle": "تم حفظ إعدادات البريد الإلكتروني",
"savedFailed": "تعذّر حفظ إعدادات البريد الإلكتروني.",
"test": "إرسال اختبار",
"testing": "جارٍ الإرسال…",
"testSentTitle": "تم إرسال بريد الاختبار",
"testSentBody": "تم إرسال بريد اختبار إلى {{to}}.",
"testFailed": "تعذّر إرسال بريد الاختبار."
}
},
"profile": {
"sectionTitle": "الملف الشخصي للطبيب",
"clinicianIdLabel": "معرّف الطبيب",
"clinicianIdDescription": "معرّفك الفريد كطبيب، يُستخدم عند توقيع السجلات",
"handleLabel": "المعرّف",
"handleDescription": "يُستخدم في ملفك العام وبوابة المريض",
"avatar": "الصورة الرمزية",
"displayName": "الاسم المعروض",
"specialty": "التخصّص",
"selectSpecialty": "اختر تخصّصًا",
"clinic": "العيادة / الممارسة",
"clinicPlaceholder": "مثال: المستشفى الرئيسي",
"contactEmail": "بريد التواصل",
"contactEmailPlaceholder": "clinician@example.org",
"professionalLinks": "الروابط المهنية",
"professionalLinksHint": "ملفات السجل أو المؤسسات المستخدمة للتحقّق من هويتك. لا تُعرض للمرضى أبدًا.",
"addLink": "إضافة رابط",
"language": {
"title": "اللغة",
"description": "اللغة التي تُعرض بها واجهة temetro على هذا الجهاز.",
"label": "لغة العرض",
"en": "English",
"fr": "Français",
"so": "Soomaali",
"ar": "العربية",
"de": "Deutsch",
"confirmTitle": "تغيير لغة العرض؟",
"confirmBody": "تبديل الواجهة إلى {{language}}؟ سيعيد التطبيق تحميل نصوصه باللغة الجديدة.",
"confirmCta": "تغيير اللغة",
"cancel": "إلغاء"
},
"patientNotifications": "إشعارات المرضى",
"patientNotificationsDescription": "رسائل تُرسل إلى المرضى بشأن سجلاتهم ونتائجهم والموافقات المعلّقة",
"accountNotifications": "إشعارات الحساب",
"accountNotificationsDescription": "إشعارات تُرسل إليك بشأن مرضاك وفريق الرعاية",
"dangerZone": "منطقة الخطر",
"dangerZoneDescription": "إجراءات لا رجعة فيها لحسابك",
"deleteAccount": "حذف الحساب",
"deleteAccountDescription": "احذف حساب temetro الخاص بك وأي مفاتيح توقيع مخزّنة محليًا نهائيًا. لا يمكن التراجع عن هذا الإجراء.",
"delete": "حذف",
"unsavedChanges": "لديك تغييرات غير محفوظة",
"saveChanges": "حفظ التغييرات",
"saving": "جارٍ الحفظ…",
"savedTitle": "تم حفظ الإعدادات",
"savedBody": "تفضيلاتك محدّثة.",
"saveFailedTitle": "تعذّر حفظ الإعدادات",
"saveFailedBody": "يرجى المحاولة مرة أخرى.",
"deleteDialog": {
"title": "حذف حسابك؟",
"description": "يحذف هذا حسابك نهائيًا، ويزيلك من عياداتك، ولا يمكن التراجع عنه.",
"passwordLabel": "أكّد كلمة المرور",
"passwordPlaceholder": "كلمة المرور الخاصة بك",
"cancel": "إلغاء",
"confirm": "حذف الحساب",
"deleting": "جارٍ الحذف…",
"failed": "تعذّر حذف الحساب. تحقّق من كلمة المرور وحاول مرة أخرى."
},
"notif": {
"newLab": "نتيجة مختبر جديدة",
"newLabDesc": "تُرسل عند توفّر نتيجة مختبر جديدة في سجل المريض",
"recordUpdated": "تم تحديث السجل",
"recordUpdatedDesc": "تُرسل عند تحديث سجل المريض بواسطة أحد أعضاء فريق الرعاية",
"approvalRequested": "طُلبت الموافقة",
"approvalRequestedDesc": "تُرسل عند انتظار تغيير موقّع لموافقة المريض",
"changeApproved": "تمت الموافقة على التغيير",
"changeApprovedDesc": "تُرسل عند موافقة المريض على تغيير معلّق في سجله",
"newMessage": "رسالة جديدة",
"newMessageDesc": "تُرسل عند إرسال مريض أو طبيب آخر رسالة",
"visitScheduled": "تمت جدولة زيارة",
"visitScheduledDesc": "تُرسل عند إضافة زيارة قادمة إلى سجل المريض",
"pendingApprovals": "الموافقات المعلّقة",
"pendingApprovalsDesc": "أبلغني عند موافقة مريض على تغيير معلّق أو رفضه",
"recordsShared": "سجلات شُوركت معي",
"recordsSharedDesc": "أبلغني عند مشاركة مريض سجلًا معي"
}
},
"careTeam": {
"title": "فريق الرعاية",
"description": "الموظفون الذين لديهم وصول إلى هذه العيادة",
"loadError": "تعذّر تحميل فريق الرعاية.",
"loading": "جارٍ تحميل فريق الرعاية…",
"you": "(أنت)",
"clickHint": "نصيحة: انقر على عضو الفريق لرؤية أذوناته وإدارة دوره.",
"addMember": "إضافة عضو فريق",
"removeMember": "إزالة عضو",
"specialties": {
"general": "طبيب عام",
"orthopedics": "أخصائي عظام",
"dentistry": "طبيب أسنان",
"cardiology": "أخصائي قلب",
"pediatrics": "طبيب أطفال",
"dermatology": "أخصائي جلدية",
"neurology": "أخصائي أعصاب",
"obgyn": "أخصائي نساء وتوليد",
"ophthalmology": "أخصائي عيون",
"ent": "أخصائي أنف وأذن وحنجرة",
"psychiatry": "طبيب نفسي",
"radiology": "أخصائي أشعة",
"anesthesiology": "أخصائي تخدير",
"surgery": "جرّاح"
},
"employee": {
"title": "عضو الفريق",
"description": "اعرض وصول هذا العضو، أو غيّر دوره، أو أزله.",
"permissions": "الأذونات",
"noAccess": "لا وصول",
"changeRole": "تغيير الدور",
"save": "حفظ",
"saving": "جارٍ الحفظ…",
"remove": "إزالة الموظف",
"close": "إغلاق",
"roleUpdatedTitle": "تم تحديث الدور",
"roleUpdatedBody": "{{name}} الآن {{role}}.",
"roleFailedTitle": "تعذّر تحديث الدور",
"roleFailedBody": "يرجى المحاولة مرة أخرى.",
"specialty": "التخصّص",
"noSpecialty": "لا تخصّص",
"specialtyUpdatedTitle": "تم تحديث التخصّص",
"specialtyUpdatedBody": "تم تحديث تخصّص {{name}}.",
"specialtyFailedTitle": "تعذّر تحديث التخصّص",
"specialtyFailedBody": "يرجى المحاولة مرة أخرى.",
"resources": {
"patient": "المرضى",
"appointment": "المواعيد",
"prescription": "الوصفات",
"task": "المهام",
"lab": "نتائج المختبر"
},
"actions": {
"read": "عرض",
"write": "تعديل",
"delete": "حذف"
},
"resetPassword": "إعادة تعيين كلمة المرور",
"resetPasswordHint": "عيّن كلمة مرور جديدة لهذا الموظف (مثلًا إذا نسي كلمته ولم يُهيّأ مزوّد بريد إلكتروني).",
"newPassword": "كلمة المرور الجديدة (12 حرفًا على الأقل)",
"confirmPassword": "تأكيد كلمة المرور",
"setPassword": "تعيين كلمة المرور",
"pwTooShortTitle": "كلمة المرور قصيرة جدًا",
"pwTooShortBody": "استخدم 12 حرفًا على الأقل.",
"pwMismatchTitle": "كلمتا المرور غير متطابقتين",
"pwMismatchBody": "أعد إدخال كلمة المرور نفسها في كلا الحقلين.",
"pwUpdatedTitle": "تم تحديث كلمة المرور",
"pwUpdatedBody": "يمكن لـ {{name}} الآن تسجيل الدخول بكلمة المرور الجديدة.",
"pwFailedTitle": "تعذّر تعيين كلمة المرور",
"pwFailedBody": "يرجى المحاولة مرة أخرى."
},
"remove": {
"title": "إزالة عضو الفريق؟",
"description": "سيفقد {{name}} الوصول إلى هذه العيادة. لا يمكن التراجع عن هذا.",
"thisMember": "هذا العضو",
"cancel": "إلغاء",
"confirm": "إزالة",
"removing": "جارٍ الإزالة…",
"removedTitle": "تمت إزالة العضو",
"removedBody": "{{name}} لم يعد لديه وصول.",
"failedTitle": "تعذّرت إزالة العضو",
"failedBody": "يرجى المحاولة مرة أخرى."
},
"add": {
"title": "إضافة عضو فريق",
"step1Description": "من الذي تضيفه، وما الذي يمكنه فعله؟",
"step2Description": "عيّن اسم المستخدم وكلمة المرور اللذين سيسجّل بهما الدخول.",
"nameLabel": "الاسم الكامل",
"namePlaceholder": "جين أوكافور",
"nameRequired": "أدخل اسم الشخص.",
"roleLabel": "الدور",
"usernameLabel": "اسم المستخدم",
"usernamePlaceholder": "jokafor",
"usernameHint": "أحرف وأرقام ونقاط وشرطات سفلية — بدون مسافات.",
"usernameTooShort": "يجب أن يتكوّن اسم المستخدم من {{count}} حرفًا على الأقل.",
"usernameInvalid": "لا يمكن أن يحتوي اسم المستخدم على مسافات. استخدم أحرفًا أو أرقامًا أو نقاطًا أو شرطات سفلية.",
"passwordLabel": "كلمة المرور",
"passwordHint": "يجب أن تتكوّن من {{count}} حرفًا على الأقل.",
"passwordTooShort": "يجب أن تتكوّن كلمة المرور من {{count}} حرفًا على الأقل.",
"back": "رجوع",
"cancel": "إلغاء",
"next": "التالي",
"create": "إنشاء حساب",
"creating": "جارٍ الإنشاء…",
"createdTitle": "تم إنشاء الحساب",
"createdBody": "يمكن لـ {{name}} الآن تسجيل الدخول باسم المستخدم {{username}}.",
"error": "تعذّر إنشاء الحساب.",
"errorTitle": "تعذّر إضافة العضو"
}
},
"network": {
"title": "شبكة Temetro",
"description": "يتيح مُرحّل شبكة Temetro لتطبيقات محفظة المرضى الاتصال بعيادتك لمشاركة السجلات والموافقة عليها — مشفّرة من طرف إلى طرف، مع تعريف عيادتك بمفتاح التوقيع الخاص بها.",
"toggleLabel": "الانضمام إلى شبكة Temetro",
"toggleDesc": "عند التفعيل، تتصل هذه العيادة بالمُرحّل لاستيراد السجلات من تطبيقات المرضى وإرسال التحديثات إلى محافظهم.",
"statusConnected": "متصل",
"statusOff": "معطّل",
"joinedTitle": "تم الانضمام إلى شبكة Temetro",
"joinedBody": "يمكن الآن لتطبيقات محفظة المرضى الاتصال بهذه العيادة.",
"leftTitle": "تم مغادرة شبكة Temetro",
"leftBody": "لم تعد هذه العيادة متصلة بالمُرحّل.",
"errorTitle": "تعذّر تحديث الوصول إلى الشبكة",
"error": "يرجى المحاولة مرة أخرى."
},
"location": {
"title": "موقع العيادة",
"description": "عنوان عيادتك وإحداثيات الخريطة. تظهر للمرضى في تطبيق المحفظة.",
"address": "العنوان",
"addressPlaceholder": "عنوان الشارع",
"city": "المدينة",
"country": "الدولة",
"latitude": "خط العرض",
"longitude": "خط الطول",
"coordinatesHint": "الإحداثيات اختيارية — تُستخدم لعرض عيادتك على الخريطة.",
"save": "حفظ الموقع",
"saving": "جارٍ الحفظ…",
"savedTitle": "تم حفظ الموقع",
"savedBody": "تم تحديث موقع عيادتك.",
"invalidCoords": "يجب أن يكون خطا العرض والطول أرقامًا.",
"errorTitle": "تعذّر حفظ الموقع",
"error": "يرجى المحاولة مرة أخرى.",
"useMyLocation": "استخدام موقعي الحالي",
"locating": "جارٍ تحديد الموقع…",
"geoUnsupported": "الموقع غير متاح على هذا الجهاز.",
"geoError": "تعذّر الحصول على موقعك. تحقّق من الأذونات وحاول مرة أخرى.",
"geoPartial": "تم إدخال الإحداثيات — الرجاء إضافة تفاصيل العنوان يدويًا."
},
"signing": {
"keyTitle": "مفتاح التوقيع",
"active": "نشط",
"keyDescription": "يُوقَّع كل تغيير تجريه على سجل مريض بهذا المفتاح، حتى يتمكّن المرضى من التحقّق من أنه صادر منك قبل الموافقة عليه.",
"rotateKey": "تدوير المفتاح",
"rotating": "جارٍ التدوير…",
"rotateSuccessTitle": "تم تدوير مفتاح التوقيع",
"rotateSuccessBody": "مفتاح Ed25519 جديد نشط الآن لهذه العيادة.",
"rotateErrorTitle": "تعذّر تدوير المفتاح",
"rotateError": "يرجى المحاولة مرة أخرى.",
"loadError": "تعذّر تحميل مفتاح التوقيع.",
"loading": "جارٍ تحميل مفتاح التوقيع…",
"createdAt": "أُنشئ في 28 مايو 2026",
"createdAtLabel": "أُنشئ في {{date}}",
"rotatedAtLabel": "دُوّر في {{date}}",
"records": {
"permanent": "دائم",
"temporary": "مؤقت",
"expires": "ينتهي في {{date}}",
"statusPending": "بانتظار الموافقة",
"statusApproved": "تمت المشاركة",
"statusDenied": "مرفوض",
"statusExpired": "منتهٍ"
},
"identityTitle": "هوية التوقيع",
"identityDescription": "المفتاح العام الذي يستخدمه المرضى للتحقّق من توقيعاتك",
"fingerprintLabel": "بصمة المفتاح العام",
"fingerprintDescription": "شارك أو انشر هذه البصمة حتى يثق المرضى بتغييراتك",
"signedRecordsTitle": "السجلات الموقّعة",
"signedRecordsDescription": "التغييرات التي وقّعتها والتي تنتظر موافقة المريض",
"noPending": "لا توقيعات معلّقة",
"comingSoon": "قريبًا",
"howItWorksTitle": "كيف يعمل التوقيع",
"howItWorksDescription": "الآلية وراء السجلات التي يوافق عليها المريض",
"steps": {
"sign": "أنت توقّع كل تغيير",
"signDesc": "يُوقَّع كل تعديل تجريه على سجل مريض بمفتاحك الخاص قبل كتابته.",
"approve": "المريض يوافق عليه",
"approveDesc": "تبقى التغييرات الموقّعة معلّقة حتى يقبلها المريض في التطبيق المرافق.",
"verify": "يمكن لأي شخص التحقّق",
"verifyDesc": "تتيح بصمة مفتاحك العام للمرضى والعيادات الأخرى التحقّق من أن التغيير صادر منك فعلًا."
},
"backupTitle": "مفتاح النسخ الاحتياطي",
"backupDescription": "استعد هوية توقيعك إذا فقدت هذا الجهاز",
"backupLabel": "عبارة الاسترداد",
"backupDesc": "صدّر نسخة احتياطية مشفّرة من مفتاح توقيعك لاستعادته على جهاز جديد."
},
"ai": {
"availability": {
"title": "التوفّر",
"description": "تحكّم في من يمكنه في عيادتك استخدام مساعد الذكاء الاصطناعي. عند التعطيل، يُخفى كل سطح للذكاء الاصطناعي — محادثة جديدة والتحليل وسجل المحادثات — ولا يمكن الوصول إليه.",
"enabled": "تفعيل مساعد الذكاء الاصطناعي",
"enabledHint": "المفتاح الرئيسي. إيقافه يعطّل ويخفي الذكاء الاصطناعي للجميع في العيادة — بمن فيهم المالكون والمسؤولون.",
"employeesOnly": "تعطيل للموظفين فقط",
"employeesOnlyHint": "أبقِ الذكاء الاصطناعي للمالكين والمسؤولين، لكن أخفِه عن جميع الموظفين الآخرين.",
"savedTitle": "تم تحديث توفّر الذكاء الاصطناعي",
"savedBody": "ينطبق التغيير على عيادتك بأكملها.",
"readonlyEnabled": "مساعد الذكاء الاصطناعي مُفعّل لعيادتك.",
"readonlyEmployeesOnly": "مساعد الذكاء الاصطناعي مقيّد بالمالكين والمسؤولين.",
"readonlyDisabled": "مساعد الذكاء الاصطناعي مُعطّل لعيادتك."
},
"modeTitle": "وضع الاستدلال",
"modeDescription": "اختر كيف يُشغّل temetro الذكاء الاصطناعي. مفتاح API سحابي يرسل البيانات خارج بنيتك التحتية؛ نموذج محلي يبقي كل شيء على جهازك.",
"mode": "الوضع",
"modeApi": "مفتاح API سحابي",
"modeLocal": "نموذج محلي (Ollama)",
"modeApiHint": "تذهب الطلبات إلى مزوّدك المختار. تُزال هوية معرّفات المريض بواسطة Veil قبل مغادرتها.",
"modeLocalHint": "تعمل الطلبات مقابل نموذج على بنيتك التحتية الخاصة. لا تغادر بيانات المريض العيادة.",
"providerTitle": "المزوّد ومفتاح API",
"providerDescription": "يُشفَّر مفتاحك عند التخزين ولا يُعرض مرة أخرى أبدًا. يمكنك تخزين مفتاح لكل مزوّد والتبديل بينها.",
"provider": "المزوّد",
"providers": {
"openai": "OpenAI",
"anthropic": "Anthropic",
"gemini": "Google Gemini"
},
"apiKey": "مفتاح API",
"apiKeyPlaceholder": "الصق مفتاح API الخاص بك",
"apiKeySet": "•••••••••• (تم تعيين المفتاح)",
"apiKeyHint": "يُشفَّر المفتاح قبل التخزين ويُستخدم فقط لاستدعاء المزوّد.",
"apiKeyStored": "تم تخزين مفتاح لـ {{provider}}.",
"defaultModel": "النموذج الافتراضي",
"selectModel": "اختر نموذجًا",
"defaultEffort": "الجهد الافتراضي",
"localTitle": "نموذج محلي (Ollama)",
"localDescription": "وجّه temetro إلى خادم Ollama الخاص بك. يعمل النموذج على بنيتك التحتية، لذا لا تغادر بيانات المريض العيادة أبدًا.",
"ollamaBaseUrl": "عنوان URL الأساسي لـ Ollama",
"ollamaModel": "اسم النموذج",
"testConnection": "اختبار الاتصال",
"testing": "جارٍ الاختبار…",
"testOk": "نجح الاتصال",
"testFailed": "فشل الاتصال",
"testError": "تعذّر إجراء الاختبار.",
"veilTitle": "Veil — ضمانات المعلومات الصحية المحمية",
"veilDescription": "يزيل Veil هوية معلومات المريض قبل إرسالها إلى نموذج خارجي، ثم يستعيدها في الرد.",
"veilLevel": "مستوى إزالة الهوية",
"veilLevels": {
"full": "كامل — الأسماء وأرقام السجلات الطبية والأطباء والنص الحر",
"names": "الأسماء فقط — المعرّفات المباشرة",
"off": "معطّل — أرسل البيانات كما هي (غير موصى به)"
},
"veilApiNote": "ينطبق Veil على كل طلب خارجي. تُستبدل المعرّفات برموز لا يراها النموذج أبدًا، وتُعاد قبل قراءتك للإجابة.",
"veilLocalNote": "أنت في الوضع المحلي، لذا لا تغادر بيانات المريض بنيتك التحتية ولا حاجة إلى Veil.",
"unsavedChanges": "لديك إعدادات ذكاء اصطناعي غير محفوظة.",
"saveChanges": "حفظ التغييرات",
"saving": "جارٍ الحفظ…",
"savedTitle": "تم حفظ إعدادات الذكاء الاصطناعي",
"savedBody": "تم تحديث تهيئة الذكاء الاصطناعي الخاصة بك.",
"saveFailedTitle": "تعذّر الحفظ",
"saveFailedBody": "فشل حفظ إعدادات الذكاء الاصطناعي. يرجى المحاولة مرة أخرى."
},
"portal": {
"title": "بوابة المريض",
"description": "شارك بوابة الحجز العامة لعيادتك مع المرضى — يمكنهم رؤية أطبائك وحجز المواعيد.",
"linkLabel": "رابط البوابة",
"linkDescription": "الصفحة العامة التي يفتحها المرضى للحجز في عيادتك.",
"open": "فتح البوابة",
"showQr": "عرض رمز QR",
"qrTitle": "رمز QR لبوابة المريض",
"qrDescription": "يمسح المرضى هذا لفتح بوابة عيادتك — أو يمسحونه في تطبيق محفظة Temetro للحجز."
}
},
"portal": {
"kicker": "بوابة المريض",
"back": "رجوع",
"done": "تم",
"notFoundTitle": "العيادة غير موجودة",
"notFoundBody": "رابط البوابة هذا غير صالح. يرجى طلب المساعدة من مكتب الاستقبال.",
"choose": {
"bookTitle": "حجز موعد",
"bookDesc": "جدول زيارة مع فريق الرعاية الخاص بك.",
"resultsTitle": "عرض نتائجي",
"resultsDesc": "تحقّق من الزيارات القادمة وما إذا كانت النتائج جاهزة.",
"walletTitle": "ربط محفظتي",
"walletDesc": "استخدم تطبيق temetro لحجز المواعيد وعرض النتائج بنفسك."
},
"wallet": {
"title": "اربط محفظتك",
"subtitle": "امسح هذا الرمز بتطبيق محفظة temetro لربطه بهذه العيادة.",
"error": "تعذّر تحميل رمز الربط. الرجاء سؤال مكتب الاستقبال.",
"hint": "بعد الربط، يمكنك حجز المواعيد وعرض النتائج من هاتفك."
},
"field": {
"name": "الاسم الكامل",
"fileNumber": "رقم الملف",
"date": "التاريخ",
"time": "الوقت",
"reason": "سبب الزيارة (اختياري)",
"reasonPlaceholder": "مثال: متابعة، فحص",
"sex": "الجنس",
"sexMale": "ذكر",
"sexFemale": "أنثى",
"age": "العمر"
},
"book": {
"title": "حجز موعد",
"submit": "طلب موعد",
"successTitle": "تم حجزك",
"successBody": "موعدك محدّد في {{date}} الساعة {{time}}. يرجى تسجيل الوصول في مكتب الاستقبال.",
"errorGeneric": "تعذّر حجز الموعد. يرجى المحاولة مرة أخرى أو سؤال مكتب الاستقبال.",
"mode": {
"returning": "مريض عائد",
"new": "مريض جديد"
},
"newFileNote": "رقم ملفك الجديد هو {{file}} — احتفظ به للمرة القادمة.",
"slotTaken": "هذا الوقت محجوز بالفعل. يرجى اختيار وقت آخر."
},
"results": {
"title": "عرض نتائجي",
"subtitle": "أدخل اسمك ورقم ملفك للمتابعة.",
"submit": "بحث",
"greeting": "مرحبًا {{name}}",
"upcoming": "المواعيد القادمة",
"noUpcoming": "لا مواعيد قادمة.",
"resultsLabel": "النتائج",
"ready": "{{count}} نتائج متوفّرة في الملف.",
"none": "لا توجد نتائج في الملف بعد.",
"askStaff": "يرجى طلب أحد الموظفين لمراجعة نتائجك معك.",
"lookupAnother": "بحث عن آخر",
"errorGeneric": "تعذّر العثور على سجلك. يرجى التحقّق من بياناتك أو سؤال مكتب الاستقبال."
}
}
}