Update index.html
Browse files- index.html +31 -34
index.html
CHANGED
@@ -32,30 +32,27 @@
|
|
32 |
}
|
33 |
|
34 |
/* -------------------------------
|
35 |
-
تنسيقات النص والتظليل (ألوان
|
36 |
------------------------------- */
|
37 |
.text-comparison { line-height: 1.8; white-space: pre-wrap; }
|
38 |
.highlight-missing {
|
39 |
-
background-color: #
|
40 |
-
color: #
|
41 |
padding: 0 4px;
|
42 |
-
border: 1px solid #ccc;
|
43 |
border-radius: 3px;
|
44 |
font-weight: bold;
|
45 |
}
|
46 |
.highlight-number {
|
47 |
-
background-color: #
|
48 |
color: #000;
|
49 |
padding: 0 4px;
|
50 |
-
border: 1px solid #ccc;
|
51 |
border-radius: 3px;
|
52 |
font-weight: bold;
|
53 |
}
|
54 |
.highlight-meaning {
|
55 |
-
background-color: #
|
56 |
-
color: #
|
57 |
padding: 0 4px;
|
58 |
-
border: 1px solid #ccc;
|
59 |
border-radius: 3px;
|
60 |
font-weight: bold;
|
61 |
}
|
@@ -101,7 +98,7 @@
|
|
101 |
<i class="fas fa-chart-line icon"></i> نظام المقارنة والتحليل المتقدم
|
102 |
</h1>
|
103 |
<p class="text-xl opacity-90">
|
104 |
-
<i class="fas fa-info-circle icon"></i> تحليل دقيق لاكتشاف النصوص
|
105 |
</p>
|
106 |
</div>
|
107 |
</header>
|
@@ -190,7 +187,7 @@
|
|
190 |
</div>
|
191 |
</button>
|
192 |
|
193 |
-
<!-- نتائج التحليل -->
|
194 |
<div id="resultSection" class="card hidden">
|
195 |
<h2 class="text-2xl font-bold text-gray-800 border-b pb-3 mb-6">
|
196 |
<i class="fas fa-search icon text-green-600"></i> نتائج التحليل والمقارنة
|
@@ -222,34 +219,36 @@
|
|
222 |
</main>
|
223 |
</div>
|
224 |
|
225 |
-
<!--
|
226 |
جافا سكريبت: الوظائف والتحليل
|
227 |
-
|
228 |
<script>
|
229 |
(function() {
|
230 |
"use strict";
|
231 |
|
232 |
-
/*
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
|
|
|
|
240 |
*/
|
241 |
const API_URL = 'https://api.deepseek.com/chat/completions';
|
242 |
const API_KEY = 'sk-15606736ed9e4aea8b7cc11a195d2b01';
|
243 |
const ANALYSIS_PROMPT = `أنت خبير لغوي وتقني متخصص في مراجعة الترجمة التقنية وتحليل النصوص بدقة.
|
244 |
-
مهمتك مقارنة النص المصدر والنص الهدف واستخراج
|
245 |
-
1. **النصوص المفقودة:** الكلمات التي لم تُترجم
|
246 |
-
2. **الأرقام والتواريخ:** التي لا تتطابق بين المصدر
|
247 |
-
3. **اختلاف المعنى:** في حال وجود اختلاف
|
248 |
-
|
249 |
-
- النصوص المفقودة
|
250 |
-
- الأرقام والتواريخ
|
251 |
-
- اختلاف المعنى
|
252 |
-
قدم
|
253 |
|
254 |
النص المصدر:
|
255 |
{source}
|
@@ -282,7 +281,7 @@
|
|
282 |
};
|
283 |
|
284 |
/* -------------------------------
|
285 |
-
دوال تظليل الاختلافات (
|
286 |
------------------------------- */
|
287 |
const applyHighlights = (originalText, analysisOutput) => {
|
288 |
let highlightedText = originalText;
|
@@ -327,7 +326,6 @@
|
|
327 |
const iconMissing = `<i class="fas fa-exclamation-triangle mr-1"></i>`;
|
328 |
const iconNumber = `<i class="fas fa-hashtag mr-1"></i>`;
|
329 |
const iconMeaning = `<i class="fas fa-info-circle mr-1"></i>`;
|
330 |
-
|
331 |
// النصوص المفقودة
|
332 |
const missingRegex = /__(.*?)__/g;
|
333 |
while ((match = missingRegex.exec(analysisOutput)) !== null) {
|
@@ -491,7 +489,7 @@
|
|
491 |
const analysisOutput = data.choices[0].message.content.trim();
|
492 |
progressDiv.remove();
|
493 |
|
494 |
-
//
|
495 |
if (analysisOutput.includes('[MATCH]')) {
|
496 |
const checkDiv = document.createElement('div');
|
497 |
checkDiv.className = "p-4 rounded-xl bg-green-50 text-green-700 flex items-center";
|
@@ -501,7 +499,6 @@
|
|
501 |
document.getElementById('targetTextReview').innerHTML = splitIntoLines(targetText);
|
502 |
document.getElementById('explanationText').innerHTML = `<p>النصوص متطابقة ولا يوجد اختلاف يجب الإشارة إليه.</p>`;
|
503 |
} else {
|
504 |
-
// تطبيق التظليل على النصوص بناءً على العلامات المستخرجة
|
505 |
const sourceHighlighted = applyHighlights(sourceText, analysisOutput);
|
506 |
const targetHighlighted = applyHighlights(targetText, analysisOutput);
|
507 |
document.getElementById('sourceTextReview').innerHTML = splitIntoLines(sourceHighlighted);
|
|
|
32 |
}
|
33 |
|
34 |
/* -------------------------------
|
35 |
+
تنسيقات النص والتظليل (استخدام ألوان مميزة)
|
36 |
------------------------------- */
|
37 |
.text-comparison { line-height: 1.8; white-space: pre-wrap; }
|
38 |
.highlight-missing {
|
39 |
+
background-color: #f87171; /* أحمر */
|
40 |
+
color: #fff;
|
41 |
padding: 0 4px;
|
|
|
42 |
border-radius: 3px;
|
43 |
font-weight: bold;
|
44 |
}
|
45 |
.highlight-number {
|
46 |
+
background-color: #facc15; /* أصفر */
|
47 |
color: #000;
|
48 |
padding: 0 4px;
|
|
|
49 |
border-radius: 3px;
|
50 |
font-weight: bold;
|
51 |
}
|
52 |
.highlight-meaning {
|
53 |
+
background-color: #60a5fa; /* أزرق */
|
54 |
+
color: #fff;
|
55 |
padding: 0 4px;
|
|
|
56 |
border-radius: 3px;
|
57 |
font-weight: bold;
|
58 |
}
|
|
|
98 |
<i class="fas fa-chart-line icon"></i> نظام المقارنة والتحليل المتقدم
|
99 |
</h1>
|
100 |
<p class="text-xl opacity-90">
|
101 |
+
<i class="fas fa-info-circle icon"></i> تحليل دقيق لاكتشاف النصوص المفقودة، الأرقام/التواريخ واختلاف المعنى
|
102 |
</p>
|
103 |
</div>
|
104 |
</header>
|
|
|
187 |
</div>
|
188 |
</button>
|
189 |
|
190 |
+
<!-- نتائج التحليل والمقارنة -->
|
191 |
<div id="resultSection" class="card hidden">
|
192 |
<h2 class="text-2xl font-bold text-gray-800 border-b pb-3 mb-6">
|
193 |
<i class="fas fa-search icon text-green-600"></i> نتائج التحليل والمقارنة
|
|
|
219 |
</main>
|
220 |
</div>
|
221 |
|
222 |
+
<!-- -------------------------------
|
223 |
جافا سكريبت: الوظائف والتحليل
|
224 |
+
------------------------------- -->
|
225 |
<script>
|
226 |
(function() {
|
227 |
"use strict";
|
228 |
|
229 |
+
/* تحسين البرومت:
|
230 |
+
- مهمتك: مقارنة النص المصدر والنص الهدف واستخراج الاختلافات التالية:
|
231 |
+
1. النصوص المفقودة: الكلمات أو العبارات التي لم تُترجم من المصدر (لا يوجد لها مقابل في الهدف).
|
232 |
+
2. الأرقام والتواريخ: التي لا تتطابق بين المصدر والهدف.
|
233 |
+
3. اختلاف المعنى: في حال وجود اختلاف واضح في معنى النص.
|
234 |
+
- يُرجى تمييز:
|
235 |
+
• النصوص المفقودة بوضعها بين علامتي __ و __.
|
236 |
+
• الأرقام والتواريخ بوضعها بين علامتي < و >.
|
237 |
+
• اختلاف المعنى بوضعها بين [MEANING] و [/MEANING].
|
238 |
+
- قدم الناتج في شكل قائمة مفصلة مع شرح مختصر لكل اختلاف، مع الإشارة إلى رقم السطر إن أمكن.
|
239 |
*/
|
240 |
const API_URL = 'https://api.deepseek.com/chat/completions';
|
241 |
const API_KEY = 'sk-15606736ed9e4aea8b7cc11a195d2b01';
|
242 |
const ANALYSIS_PROMPT = `أنت خبير لغوي وتقني متخصص في مراجعة الترجمة التقنية وتحليل النصوص بدقة.
|
243 |
+
مهمتك مقارنة النص المصدر والنص الهدف واستخراج الاختلافات التالية:
|
244 |
+
1. **النصوص المفقودة:** الكلمات أو العبارات التي لم تُترجم من النص المصدر (لا يوجد لها مقابل في النص الهدف).
|
245 |
+
2. **الأرقام والتواريخ:** التي لا تتطابق بين النص المصدر والنص الهدف.
|
246 |
+
3. **اختلاف المعنى:** في حال وجود اختلاف واضح في معنى النص.
|
247 |
+
يُرجى تمييز:
|
248 |
+
- النصوص المفقودة بوضعها بين علامتي __ والكلمة__.
|
249 |
+
- الأرقام والتواريخ بوضعها بين علامتي < والرقم/التاريخ>.
|
250 |
+
- اختلاف المعنى بوضعها بين [MEANING] و [/MEANING].
|
251 |
+
قدم الناتج في شكل قائمة تفصيلية مع شرح مختصر لكل اختلاف مع ذكر رقم السطر إن أمكن.
|
252 |
|
253 |
النص المصدر:
|
254 |
{source}
|
|
|
281 |
};
|
282 |
|
283 |
/* -------------------------------
|
284 |
+
دوال تظليل الاختلافات (استخدام العلامات المستخرجة من البرومت)
|
285 |
------------------------------- */
|
286 |
const applyHighlights = (originalText, analysisOutput) => {
|
287 |
let highlightedText = originalText;
|
|
|
326 |
const iconMissing = `<i class="fas fa-exclamation-triangle mr-1"></i>`;
|
327 |
const iconNumber = `<i class="fas fa-hashtag mr-1"></i>`;
|
328 |
const iconMeaning = `<i class="fas fa-info-circle mr-1"></i>`;
|
|
|
329 |
// النصوص المفقودة
|
330 |
const missingRegex = /__(.*?)__/g;
|
331 |
while ((match = missingRegex.exec(analysisOutput)) !== null) {
|
|
|
489 |
const analysisOutput = data.choices[0].message.content.trim();
|
490 |
progressDiv.remove();
|
491 |
|
492 |
+
// في حالة التطابق التام
|
493 |
if (analysisOutput.includes('[MATCH]')) {
|
494 |
const checkDiv = document.createElement('div');
|
495 |
checkDiv.className = "p-4 rounded-xl bg-green-50 text-green-700 flex items-center";
|
|
|
499 |
document.getElementById('targetTextReview').innerHTML = splitIntoLines(targetText);
|
500 |
document.getElementById('explanationText').innerHTML = `<p>النصوص متطابقة ولا يوجد اختلاف يجب الإشارة إليه.</p>`;
|
501 |
} else {
|
|
|
502 |
const sourceHighlighted = applyHighlights(sourceText, analysisOutput);
|
503 |
const targetHighlighted = applyHighlights(targetText, analysisOutput);
|
504 |
document.getElementById('sourceTextReview').innerHTML = splitIntoLines(sourceHighlighted);
|