{ "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": "تم تسجيل الخروج", "language": "اللغة" }, "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": "يرجى المحاولة مرة أخرى." }, "filterStatus": "تصفية حسب الحالة", "allStatuses": "كل الحالات" }, "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": "إضافة تاريخ البدء/الانتهاء", "selectDate": "اختر التاريخ" } }, "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.0–17.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": "أبلغني عند مشاركة مريض سجلًا معي" }, "linkPlaceholder": "https://example.com", "removeLink": "إزالة الرابط" }, "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": "تعذّر العثور على سجلك. يرجى التحقّق من بياناتك أو سؤال مكتب الاستقبال." } }, "walletSync": { "step1": "التفاصيل", "step2": "المزامنة مع المحفظة", "prompt": "إرسال إلى محفظة {{name}}؟", "promptBody": "يستخدم هذا المريض تطبيق المحفظة. أرسل هذا التغيير لمزامنته مع هاتفه — سيوافق عليه على جهازه.", "changesLabel": "ما الذي تغيّر", "skip": "ليس الآن", "send": "إرسال إلى المحفظة", "done": "تم", "errors": { "generic": "تعذّر إرسال التحديث. يرجى المحاولة مرة أخرى." }, "summary": { "invoiceCreated": "فاتورة جديدة {{number}}", "invoiceUpdated": "تم تحديث الفاتورة {{number}}", "appointment": "موعد جديد في {{date}} الساعة {{time}}", "prescription": "وصفة جديدة: {{drug}}", "demographics": "تم تحديث البيانات الديموغرافية", "note": "ملاحظة سريرية جديدة" } } }