mirror of
https://github.com/temetro/temetro.git
synced 2026-07-26 11:58:14 +00:00
76da310766
The "send to wallet" step in the appointment/invoice/prescription/ patient-edit/scribe dialogs was gated on sync.linked, which resolves asynchronously via getWalletLink in an effect. A fast save (or a transient failure that collapsed it to false) left a wallet-linked patient looking unlinked, so the dialog took the else branch and pushed nothing. - Add ensureLinked() to useWalletSync: awaits getWalletLink at submit and returns the resolved status. Each of the 5 dialogs now awaits it before deciding whether to show the wallet step. - Harden push() to drop empty/whitespace changes (the backend 400s on an empty change set) and add a translated summaryFallback so the step never sends an empty summary. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2264 lines
112 KiB
JSON
2264 lines
112 KiB
JSON
{
|
||
"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": "يرجى المحاولة مرة أخرى."
|
||
},
|
||
"filterLabel": "تصفية",
|
||
"filterStatus": "تصفية حسب الحالة",
|
||
"allStatuses": "كل الحالات",
|
||
"moreActions": "إجراءات إضافية"
|
||
},
|
||
"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": "تجاهل",
|
||
"offTitle": "تم إيقاف مساعد الذكاء الاصطناعي",
|
||
"offBody": "الذكاء الاصطناعي مُعطّل في الإعدادات ← الذكاء الاصطناعي. فعّله لاستخدام المساعد."
|
||
},
|
||
"card": {
|
||
"unsupported": "بطاقة غير مدعومة"
|
||
},
|
||
"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": "شديد"
|
||
},
|
||
"moreActions": "إجراءات إضافية"
|
||
},
|
||
"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": "تعمل الطلبات مقابل نموذج على بنيتك التحتية الخاصة. لا تغادر بيانات المريض العيادة.",
|
||
"modeAuto": "تلقائي",
|
||
"modeOff": "إيقاف",
|
||
"modeAutoHint": "يستخدم مفتاح واجهة برمجة تطبيقات سحابي عند توفره، وإلا يعود إلى نموذج Ollama المحلي.",
|
||
"modeOffHint": "مساعد الذكاء الاصطناعي مُعطّل. لا تُرسل أي طلبات.",
|
||
"offTitle": "المساعد مُوقف",
|
||
"offDescription": "مساعد الذكاء الاصطناعي مُوقف لحسابك.",
|
||
"offNote": "اختر تلقائي أو مفتاح واجهة برمجة سحابي أو نموذج محلي أعلاه لتفعيل المساعد.",
|
||
"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": "ملاحظة سريرية جديدة"
|
||
},
|
||
"summaryFallback": "تم تحديث السجل"
|
||
}
|
||
}
|