saifom commited on
Commit
f5c11e8
·
verified ·
1 Parent(s): 7a454a9

Create languages.py

Browse files
Files changed (1) hide show
  1. languages.py +173 -0
languages.py ADDED
@@ -0,0 +1,173 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # languages.py
2
+ """
3
+ قاموس الترجمة للتطبيق - يدعم العربية والإنجليزية
4
+ """
5
+
6
+ TRANSLATIONS = {
7
+ # عناوين عامة
8
+ "app_title": {"en": "Medical AI Librarian", "ar": "أمين المكتبة الطبي بالذكاء الاصطناعي"},
9
+ "app_subtitle": {"en": "Enhanced Cataloging • Accurate NLM Classification • Multi-Source Data",
10
+ "ar": "فهرسة محسنة • تصنيف NLM دقيق • بيانات متعددة المصادر"},
11
+
12
+ # الشريط الجانبي
13
+ "recent_searches": {"en": "🔍 Recent Searches", "ar": "🔍 عمليات البحث الأخيرة"},
14
+ "settings": {"en": "⚙️ Settings", "ar": "⚙️ الإعدادات"},
15
+ "clear_history": {"en": "🔄 Clear History", "ar": "🔄 مسح التاريخ"},
16
+ "nlm_quick_guide": {"en": "📊 NLM Quick Guide", "ar": "📊 دليل NLM السريع"},
17
+ "common_nlm_classifications": {"en": "Common NLM Classifications:", "ar": "تصنيفات NLM الشائعة:"},
18
+ "medical_textbooks": {"en": "Medical Textbooks: W 18-20", "ar": "الكتب الدراسية الطبية: W 18-20"},
19
+ "clinical_medicine": {"en": "Clinical Medicine: WB-WZ series", "ar": "الطب السريري: سلسلة WB-WZ"},
20
+ "basic_sciences": {"en": "Basic Sciences: QS-QZ series", "ar": "العلوم الأساسية: سلسلة QS-QZ"},
21
+ "health_professions": {"en": "Health Professions: WY, WA, WM", "ar": "المهن الصحية: WY, WA, WM"},
22
+ "common_examples": {"en": "Common Examples:", "ar": "أمثلة شائعة:"},
23
+ "anatomy_example": {"en": "Anatomy: QS 1", "ar": "التشريح: QS 1"},
24
+ "pharmacology_example": {"en": "Pharmacology: QV 1", "ar": "علم الأدوية: QV 1"},
25
+ "surgery_example": {"en": "Surgery: WO 100", "ar": "الجراحة: WO 100"},
26
+ "pediatrics_example": {"en": "Pediatrics: WS 1", "ar": "طب الأطفال: WS 1"},
27
+ "radiology_example": {"en": "Radiology: WN 1", "ar": "الأشعة: WN 1"},
28
+ "stats": {"en": "📊 Stats", "ar": "📊 الإحصائيات"},
29
+ "total_analyses": {"en": "Total Analyses", "ar": "إجمالي التحليلات"},
30
+ "current_isbn": {"en": "Current ISBN", "ar": "الرقم المعياري الحالي"},
31
+ "none": {"en": "None", "ar": "لا شيء"},
32
+
33
+ # منطقة الإدخال الرئيسية
34
+ "enter_isbn": {"en": "### 📚 Enter ISBN for Analysis", "ar": "### 📚 أدخل الرقم المعياري للتحليل"},
35
+ "isbn_placeholder": {"en": "Enter 10 or 13 digit ISBN (e.g., 9780323083737)",
36
+ "ar": "أدخل رقماً معيارياً من 10 أو 13 خانة (مثال: 9780323083737)"},
37
+ "analyze_button": {"en": "🔍 Analyze Book", "ar": "🔍 تحليل الكتاب"},
38
+ "view_stats_button": {"en": "📊 View Statistics", "ar": "📊 عرض الإحصائيات"},
39
+
40
+ # رسائل المعالجة
41
+ "initializing": {"en": "🔄 Initializing enhanced analysis...", "ar": "🔄 جاري تهيئة التحليل المحسن..."},
42
+ "fetching_metadata": {"en": "📥 Fetching enhanced metadata...", "ar": "📥 جلب البيانات الوصفية المحسنة..."},
43
+ "retrieving_cover": {"en": "🖼️ Retrieving book cover from multiple sources...",
44
+ "ar": "🖼️ جلب غلاف الكتاب من عدة مصادر..."},
45
+ "searching_context": {"en": "🌐 Searching for additional context...", "ar": "🌐 البحث عن سياق إضافي..."},
46
+ "ai_analysis": {"en": "🧠 Enhanced AI analysis with NLM classification...",
47
+ "ar": "🧠 تحليل الذكاء الاصطناعي المحسن مع تصنيف NLM..."},
48
+ "analysis_complete": {"en": "✅ Enhanced analysis complete!", "ar": "✅ اكتمل التحليل المحسن!"},
49
+
50
+ # أخطاء وتحذيرات
51
+ "invalid_isbn": {"en": "❌ Invalid ISBN format. Please enter a valid 10 or 13 digit ISBN.",
52
+ "ar": "❌ تنسيق ISBN غير صالح. الرجاء إدخال رقم صحيح مكون من 10 أو 13 خانة."},
53
+ "analysis_failed": {"en": "❌ Analysis failed. Please try again.", "ar": "❌ فشل التحليل. حاول مرة أخرى."},
54
+ "ai_payment_warning": {"en": "⚠️ AI service requires paid subscription. Using local classification instead.",
55
+ "ar": "⚠️ خدمة الذكاء الاصطناعي تحتاج إلى اشتراك مدفوع. يتم استخدام التصنيف المحلي بدلاً من ذلك."},
56
+ "ai_unexpected_error": {"en": "❌ Unexpected error in AI analysis: {}",
57
+ "ar": "❌ خطأ غير متوقع في تحليل الذكاء الاصطناعي: {}"},
58
+
59
+ # تبويبات
60
+ "tab_overview": {"en": "📖 Overview", "ar": "📖 نظرة عامة"},
61
+ "tab_details": {"en": "🔍 Details", "ar": "🔍 التفاصيل"},
62
+ "tab_cataloging": {"en": "🏷️ Cataloging", "ar": "🏷️ الفهرسة"},
63
+ "tab_ai_insights": {"en": "📊 AI Insights", "ar": "📊 رؤى الذكاء الاصطناعي"},
64
+
65
+ # نظرة عامة
66
+ "quick_stats": {"en": "📈 Quick Stats", "ar": "📈 إحصائيات سريعة"},
67
+ "authors_label": {"en": "Authors", "ar": "المؤلفون"},
68
+ "quality_label": {"en": "Quality", "ar": "الجودة"},
69
+ "year_label": {"en": "Year", "ar": "السنة"},
70
+ "acquisition_decision": {"en": "📋 Acquisition Decision", "ar": "📋 قرار الاقتناء"},
71
+ "target_audience": {"en": "🎯 Target Audience", "ar": "🎯 الجمهور المستهدف"},
72
+ "not_specified": {"en": "Not specified", "ar": "غير محدد"},
73
+
74
+ # التفاصيل
75
+ "summary": {"en": "📝 Summary", "ar": "📝 الملخص"},
76
+ "no_summary": {"en": "No summary available.", "ar": "لا يوجد ملخص متاح."},
77
+ "table_of_contents": {"en": "📑 Table of Contents", "ar": "📑 جدول المحتويات"},
78
+ "not_available": {"en": "Not available.", "ar": "غير متاح."},
79
+ "mesh_subjects": {"en": "🏷️ MeSH Subjects", "ar": "🏷️ موضوعات MeSH"},
80
+ "no_mesh": {"en": "No MeSH terms identified.", "ar": "لم يتم تحديد مصطلحات MeSH."},
81
+ "nlm_classification": {"en": "📚 NLM Classification (060)", "ar": "📚 تصنيف NLM (060)"},
82
+ "classification_reasoning": {"en": "📖 Classification Reasoning", "ar": "📖 سبب التصنيف"},
83
+ "alternative_classifications": {"en": "🔀 Alternative Classifications", "ar": "🔀 تصنيفات بديلة"},
84
+ "confidence_level": {"en": "Confidence Level", "ar": "مستوى الثقة"},
85
+ "quality_score": {"en": "Quality Score", "ar": "درجة الجودة"},
86
+ "code_label": {"en": "Code", "ar": "الرمز"},
87
+ "reason_label": {"en": "Reason", "ar": "السبب"},
88
+
89
+ # الفهرسة
90
+ "marc_record": {"en": "💻 MARC21 Record - Complete Edition", "ar": "💻 تسجيلة MARC21 - نسخة كاملة"},
91
+ "download_marc": {"en": "📥 MARC21 (.mrc)", "ar": "📥 MARC21 (.mrc)"},
92
+ "download_iso": {"en": "📊 ISO 2709 (.iso)", "ar": "📊 ISO 2709 (.iso)"},
93
+ "download_json": {"en": "📋 JSON Metadata", "ar": "📋 بيانات JSON"},
94
+ "download_xml": {"en": "📑 XML/MARCXML", "ar": "📑 XML/MARCXML"},
95
+
96
+ # رؤى الذكاء الاصطناعي
97
+ "ai_details": {"en": "🤖 AI Analysis Details", "ar": "🤖 تفاصيل تحليل الذكاء الاصطناعي"},
98
+ "data_sources": {"en": "Data Sources", "ar": "مصادر البيانات"},
99
+ "metadata_source": {"en": "Metadata source", "ar": "مصدر البيانات الوصفية"},
100
+ "nlm_analysis": {"en": "NLM Classification Analysis", "ar": "تحليل تصنيف NLM"},
101
+ "web_context": {"en": "🔍 Web Context Sources", "ar": "🔍 مصادر سياق الويب"},
102
+ "no_web_context": {"en": "No web context available.", "ar": "لا يوجد سياق ويب متاح."},
103
+
104
+ # الفوتر
105
+ "footer_text": {"en": "Medical AI Librarian v3.0 • Enhanced Accuracy • Multi-Source Data",
106
+ "ar": "أمين المكتبة الطبي بالذكاء الاصطناعي v3.0 • دقة محسنة • بيانات متعددة المصادر"},
107
+ "footer_powered": {"en": "Powered by Hugging Face & Streamlit • Transforming Medical Library Management",
108
+ "ar": "مدعوم من Hugging Face و Streamlit • تحويل إدارة المكتبات الطبية"},
109
+
110
+ # إحصائيات
111
+ "stats_dashboard": {"en": "📊 Statistics Dashboard", "ar": "📊 لوحة الإحصائيات"},
112
+ "analytics_for": {"en": "Analytics for medical cataloging activities",
113
+ "ar": "تحليلات لأنشطة الفهرسة الطبية"},
114
+ "success_rate": {"en": "Success Rate", "ar": "معدل النجاح"},
115
+ "avg_confidence": {"en": "Avg Confidence", "ar": "متوسط الثقة"},
116
+ "unique_nlm_codes": {"en": "Unique NLM Codes", "ar": "رموز NLM الفريدة"},
117
+ "analysis_trends": {"en": "📈 Analysis Trends", "ar": "📈 اتجاهات التحليل"},
118
+ "daily_analyses_trend": {"en": "📅 Daily Analyses Trend", "ar": "📅 اتجاه التحليلات اليومية"},
119
+ "top_nlm": {"en": "🏷️ Top 10 NLM Classifications", "ar": "🏷️ أفضل 10 تصنيفات NLM"},
120
+ "recent_activity": {"en": "📋 Recent Activity", "ar": "📋 النشاط الأخير"},
121
+ "export_csv": {"en": "📥 Export History as CSV", "ar": "📥 تصدير التاريخ كـ CSV"},
122
+ "nlm_insights": {"en": "🎯 NLM Classification Insights", "ar": "🎯 رؤى تصنيف NLM"},
123
+ "current_classification_confidence": {"en": "Current Classification Confidence",
124
+ "ar": "ثقة التصنيف الحالي"},
125
+ "most_common_classifications": {"en": "🏆 Most Common Classifications",
126
+ "ar": "🏆 التصنيفات الأكثر شيوعاً"},
127
+ "analysis_summary": {"en": "�� Analysis Summary", "ar": "📊 ملخص التحليل"},
128
+ "books_cataloged": {"en": "Total Books Cataloged", "ar": "إجمالي الكتب المفهرسة"},
129
+ "analyses_today": {"en": "Analyses Today", "ar": "تحليلات اليوم"},
130
+ "no_history": {"en": """
131
+ 📊 **No analysis history yet!**
132
+
133
+ Start by analyzing some medical books:
134
+ 1. Go to the main page
135
+ 2. Enter an ISBN number
136
+ 3. Click "Analyze Book"
137
+ 4. Your analyses will appear here
138
+ """, "ar": """
139
+ 📊 **لا يوجد سجل تحليلات بعد!**
140
+
141
+ ابدأ بتحليل بعض الكتب الطبية:
142
+ 1. اذهب إلى الصفحة الرئيسية
143
+ 2. أدخل رقماً معيارياً
144
+ 3. انقر "تحليل الكتاب"
145
+ 4. ستظهر تحليلاتك هنا
146
+ """},
147
+ "performance_metrics": {"en": "⚡ Performance Metrics", "ar": "⚡ مقاييس الأداء"},
148
+ "cover_success_rate": {"en": "Cover Success Rate", "ar": "معدل نجاح الغلاف"},
149
+ "date_accuracy": {"en": "Date Accuracy", "ar": "دقة التاريخ"},
150
+ "nlm_accuracy": {"en": "NLM Accuracy", "ar": "دقة NLM"},
151
+ "last_updated": {"en": "Data is stored locally in your session • Last updated: {}",
152
+ "ar": "البيانات مخزنة محلياً في جلستك • آخر تحديث: {}"},
153
+ "transforming_footer": {"en": "🏥 Transforming Medical Library Management with AI",
154
+ "ar": "🏥 تحويل إدارة المكتبات الطبية بالذكاء الاصطناعي"},
155
+
156
+ # رسائل الذكاء الاصطناعي
157
+ "local_classification_mode": {"en": "ℹ️ يعمل النظام حاليًا بوضع **التصنيف المحلي المتقدم** (بدون ذكاء اصطناعي). تتوفر جميع البيانات الأساسية.",
158
+ "ar": "ℹ️ النظام يعمل حالياً في وضع **التصنيف المحلي المتقدم** (بدون ذكاء اصطناعي). جميع البيانات الأساسية متاحة."},
159
+ "ai_connected": {"en": "✅ تم الاتصال بخدمة الذكاء الاصطناعي بنجاح.",
160
+ "ar": "✅ تم الاتصال بخدمة الذكاء الاصطناعي بنجاح."},
161
+ "ai_error": {"en": "⚠️ Hugging Face client error: {}. باستخدام التصنيف المحلي فقط.",
162
+ "ar": "⚠️ خطأ في عميل Hugging Face: {}. سيتم استخدام التصنيف المحلي فقط."},
163
+ "no_hf_token": {"en": "🔑 لم يتم العثور على HF_TOKEN. يعمل النظام بالتصنيف المحلي فقط.",
164
+ "ar": "🔑 لم يتم العثور على رمز HF_TOKEN. النظام يعمل بالتصنيف المحلي فقط."},
165
+ }
166
+
167
+ def get_text(key, lang='en'):
168
+ """إرجاع النص المقابل للمفتاح واللغة المحددة."""
169
+ return TRANSLATIONS.get(key, {}).get(lang, key)
170
+
171
+ def get_language_direction(lang):
172
+ """إرجاع اتجاه الصفحة بناءً على اللغة."""
173
+ return 'rtl' if lang == 'ar' else 'ltr'