diff --git a/src/components/Footer.astro b/src/components/Footer.astro index 1bab45b..89892af 100644 --- a/src/components/Footer.astro +++ b/src/components/Footer.astro @@ -35,7 +35,7 @@ const editionLinks = [
-

{locale === "ar" ? "قانوني" : locale === "fr" ? "Mentions légales" : "Legal"}

+

{locale === "ar" ? "الشؤون القانونية" : locale === "fr" ? "Mentions légales" : "Legal"}

{chrome.footer.trademark}

{chrome.footer.keelsh}

{chrome.footer.license}

diff --git a/src/components/pages/ComparePage.astro b/src/components/pages/ComparePage.astro index 2208177..fb2008c 100644 --- a/src/components/pages/ComparePage.astro +++ b/src/components/pages/ComparePage.astro @@ -49,7 +49,7 @@ const honestLinks = [ - + { columns.map((column) => (
{locale === "ar" ? "الخصيصة" : "Property"}{locale === "ar" ? "الخاصية" : "Property"} diff --git a/src/components/pages/DocsIndexPage.astro b/src/components/pages/DocsIndexPage.astro index c8c71fd..3bbdf87 100644 --- a/src/components/pages/DocsIndexPage.astro +++ b/src/components/pages/DocsIndexPage.astro @@ -33,7 +33,7 @@ const quickstart = { : "Try keel in five minutes", description: locale === "ar" - ? "مسارٌ للقراءة فقط من جهة التداول الافتراضي: لا أموال، ولا أمر تداول." + ? "مسارٌ بصلاحية القراءة فقط على جانب التداول التجريبي: لا أموال، ولا أوامرَ تداول." : locale === "fr" ? "Un parcours en lecture seule, côté papier : aucun fonds, aucun ordre possible." : "A read-only, paper-side path: no funds, nothing can place an order.", diff --git a/src/i18n/pages/about.ts b/src/i18n/pages/about.ts index 6caec35..f8bf3e0 100644 --- a/src/i18n/pages/about.ts +++ b/src/i18n/pages/about.ts @@ -111,16 +111,16 @@ export const about: LocalizedPage = { translatedFromRev: "2026-08-20.1", title: "حول كيل — الاسم والترخيص وأسئلة keel.sh وKEEL", description: - "من يُشغّل keeltrading.com، والتراخيص، والأسئلة الشائعة عن الاسم — لماذا لا نحن كيلَ Kubernetes‏ (keel.sh) ولا Keel Infrastructure‏ (KEEL).", + "مَن يُشغّل keeltrading.com، والتراخيص، والأسئلة الشائعة عن الاسم — ولماذا ليس هذا كيلَ Kubernetes‏ (keel.sh) ولا شركةَ Keel Infrastructure‏ (KEEL).", intro: [ - "‏keeltrading.com هو الموقع العمومي لكيل، محرّك الامتثال الشرعي مفتوح المصدر لتداول العملات المشفّرة الفوري الذي تتولاه CodeGate Software. الموقع طبقةُ قراءةٍ فوق GitHub: قسمُ الوثائق يعرض مستنداتٍ تُجلب من مستودع المحرّك وقت البناء، وخلاصةُ الأخبار تقرأ نقاشات GitHub، وأزرارُ التنزيل تشير إلى GitHub Releases. لا شيء تفاعليًّا يحدث هنا — النشر والتصويت والأسئلة تعيش على GitHub.", - "والموقع نفسه مفتوح المصدر؛ وبنية بنائه مصمَّمة بألّا يكذب الموقعُ يومًا على المستودع الذي يعرضه.", + "‏keeltrading.com هو الموقع العمومي لكيل، محرّكِ الامتثال الشرعي مفتوحِ المصدر لتداول العملات المشفّرة الفوري، الذي تتولّاه CodeGate Software. والموقع طبقةٌ للقراءة فقط فوق GitHub: فقسمُ الوثائق يعرض مستنداتٍ تُجلب من مستودع المحرّك وقت البناء، وخلاصةُ الأخبار تقرأ نقاشات GitHub، وأزرارُ التنزيل تشير إلى GitHub Releases. ولا يحدث هنا شيءٌ تفاعليّ — فالنشر والتصويت والأسئلة كلُّها على GitHub.", + "والموقع نفسه مفتوح المصدر أيضًا؛ ومسارُ بنائه مصمَّمٌ بحيث لا يمكن للموقع أن يناقض المستودع الذي يعرضه.", ], licenses: { title: "التراخيص", body: [ - "محرّك كيل مرخّص Apache-2.0 بموجب مستودعه (CodeGateSoftware/keel).", - "شيفرة هذا الموقع MIT. ومحتوى الموقع — النصوص والترجمات والهوية — © CodeGate Software؛ والاقتباس مع الإسناد مرحّب به (انظر CONTENT-LICENSE.md).", + "محرّك كيل مرخَّصٌ بترخيص Apache-2.0 بموجب مستودعه (CodeGateSoftware/keel).", + "وشيفرةُ هذا الموقع مرخَّصةٌ بترخيص MIT. أمّا محتوى الموقع — النصوص والترجمات والهوية — فهو © CodeGate Software؛ والاقتباس مع الإسناد مرحّبٌ به (انظر CONTENT-LICENSE.md).", ], }, faqTitle: "الأسئلة الشائعة عن الاسم", @@ -128,63 +128,63 @@ export const about: LocalizedPage = { { question: "أهذا هو مشروع Kubernetes المسمّى Keel؟", answer: [ - "لا. هناك أداة نشرٍ لـ Kubernetes اسمها Keel على keel.sh، وهي تحتكر حاليًّا نتائج البحث عن كلمة «keel» وحدها. هذا المشروع — كيل من CodeGate Software — لا صلة له بها: لا شيفرة مشتركة، ولا تاريخ، ولا أشخاص. ونقول «keel trading» حيث كان اللبس مضلّلًا، وهذا الموقع قائمٌ جزئيًّا ليجعل هذا التمييز سهلَ العثور.", + "لا. فثمّة أداةُ نشرٍ راسخةٌ لـ Kubernetes اسمها Keel على keel.sh، وهي التي تتصدّر اليوم نتائج البحث عن كلمة «keel» وحدها. وهذا المشروع — كيل من CodeGate Software — لا صلة له بها: لا شيفرةً مشتركة، ولا تاريخًا، ولا أشخاصًا. ونحن نقول «keel trading» حيثما كان اللبس مُضلِّلًا، وهذا الموقع قائمٌ جزئيًّا ليجعل هذا التمييز سهلَ العثور عليه.", ], }, { - question: "أهذه شركة Keel Infrastructure المسجّلة برمز KEEL؟", + question: "أهذه شركة Keel Infrastructure صاحبةُ السهم KEEL؟", answer: [ - "لا. هناك شركة تعدين بيتكوين مدرجة في Nasdaq تحت الرمز KEEL‏ (كانت تُعرف سابقًا بـ Bitfarms)، فقد يُظهر البحث عن «keel trading» أو «keel crypto» مخططَ سهمها قرب هذه النتائج. لا صلة لها بهذا المشروع. كيلنا محرّك امتثال مفتوح المصدر من CodeGate Software — فإن كنت قد وصلت إلى keeltrading.com فأنت في المكان الصحيح.", + "لا. فثمّة شركةُ تعدين بيتكوين مدرجةٌ في ناسداك (كانت تُعرف سابقًا بـ Bitfarms) تتداول تحت الرمز KEEL، وقد يُظهر البحث عن «keel trading» أو «keel crypto» مخطّطَ سهمها قرب هذه النتائج. ولا صلة لها بهذا المشروع. فكيل هذا محرّكُ امتثالٍ مفتوح المصدر من CodeGate Software — وإن كنت قد وصلت إلى keeltrading.com فأنت في المكان الصحيح.", ], }, { - question: "لماذا الاسم «كيل»؟", + question: "لماذا سُمّي المشروع «كيل»؟", answer: [ - "الكيل (keel) هو العمود الفقري للسفينة — الجزء الذي يُبقي كل شيء منتصبًا ويحدّد سلوكها. الاسم يقول ما هو المحرّك: ليس الأشرعة ولا الريح، بل الجزء الذي وظيفته إبقاء التداول على خطٍّ مستقيم قابلٍ للتدقيق.", + "الـkeel — أي عارضةُ السفينة — هو عمودها الفقري: الجزء الذي يُبقي كلَّ شيءٍ منتصبًا ويحدّد كيف تسلك السفينة. والاسم يقول ما هو المحرّك: ليس الأشرعةَ ولا الريح، بل الجزءَ الذي وظيفتُه إبقاءُ التداول على خطٍّ مستقيمٍ قابلٍ للتدقيق.", ], }, { question: "ما علاقة keeltrading.com بمستودع المحرّك؟", answer: [ - "هذا الموقع مستودعٌ منفصل (CodeGateSoftware/keeltrading.com) يجلب بناؤه من مستودع المحرّك — الإصدارات لأرقام الإصدارات وروابط الأصول، والنقاشات للأخبار، ومستنداتٌ مثبّتة لقسم الوثائق. وإذا نقل المحرّك مستندًا، فشل بناء هذا الموقع عمدًا بدل عرض شيءٍ بالٍ.", + "هذا الموقع مستودعٌ منفصل (CodeGateSoftware/keeltrading.com) يجلب بناؤه من مستودع المحرّك — الإصداراتِ لأرقام النسخ وروابطِ الملفات، والنقاشاتِ للأخبار، ومستنداتٍ مثبَّتةً لقسم الوثائق. وإذا نقل المحرّك مستندًا من موضعه، فشل بناءُ هذا الموقع عمدًا بدل عرض محتوًى متقادم.", ], }, { - question: "ما CodeGate Software؟", + question: "مَن هي CodeGate Software؟", answer: [ - "‏CodeGate Software هي الجهة المشرفة على المشروع. بدأ كيل أداةً شخصية ونُشر مفتوح المصدر لتُدقَّق دعاواه الامتثالية بدل أن تُؤخَذ على الثقة.", + "‏CodeGate Software هي الجهة القائمة على المشروع. وقد بدأ كيل أداةً شخصية، ونُشر مفتوحَ المصدر لتُدقَّق دعاواه في الامتثال بدل أن تُؤخذ على الثقة.", ], }, ], - openSourceTitle: "المصدر المفتوح — وأين الحيلة", + openSourceTitle: "المصدر المفتوح — وما المقابل", openSourceFaq: [ { question: "ماذا يعني «مفتوح المصدر» فعلًا؟", answer: [ - "يعني أن الشيفرة المصدرية — التعليمات الفعلية التي يُنفّذها البرنامج — منشورةٌ حيث يستطيع أيٌّ كان قراءتها واستخدامها والتحقّق مما تفعل فعلًا وتغييرها. ويحمل كيل ترخيص Apache-2.0، أحد أكثر تراخيص المصادر المفتوحة اعتياديًّا في العالم: لك أن تشغّله لأي غرض، وتدرسه، وتعدّله، بل وتبني عليه عملًا تجاريًّا.", - "لأداةٍ تقدّم دعاوى دينية ومالية، هذا هو بيت القصيد. لست مضطرًّا لأخذ كلامنا على محمل التصديق: يمكنك قراءة كل سطرٍ بنفسك، أو تكليف من تثق به بقراءته — كل سكةٍ وكل بوابةٍ وكل رقمٍ في هذا الموقع يعود إلى شيفرةٍ يمكنك فتحها.", + "يعني أن الشيفرة المصدرية — أي التعليمات الفعلية التي يُنفّذها البرنامج — منشورةٌ حيث يستطيع أيُّ أحدٍ قراءتَها واستخدامَها والتحقّقَ ممّا تفعله حقًّا وتعديلَها. ويحمل كيل ترخيص Apache-2.0، وهو من أشهر تراخيص المصدر المفتوح في العالم وأكثرِها اعتمادًا: لك أن تشغّله لأيّ غرض، وأن تدرسه، وأن تعدّله، بل وأن تبني عليه عملًا تجاريًّا.", + "ولأداةٍ تقدّم دعاوى دينيةً وماليةً، هذا هو بيت القصيد. فلست مضطرًّا إلى تصديق كلامنا: يمكنك قراءةُ كلِّ سطرٍ بنفسك، أو أن تكلّف من تثق به بقراءته — فكلُّ سكةٍ وكلُّ بوابةٍ وكلُّ رقمٍ في هذا الموقع يعود إلى شيفرةٍ يمكنك فتحُها.", ], }, { - question: "لماذا كيل مفتوح المصدر — ومجاني؟", + question: "لماذا كيل مفتوح المصدر — ومجّاني؟", answer: [ - "لأن قيمة كيل كلَّها في قابلية التدقيق. محرّكُ امتثالٍ لا تستطيع فحصَه هو بالضبط نموذجُ «ثِق بي» الذي وُجد كيل ليحلّ محله: أدوات الفرز المغلقة تطلب منك تصديق أحكامها؛ وكيل ينشر الآليات والأحكامَ التي يُنفّذها، بمصادرها. الانفتاح ليس قرارَ تسويقٍ مُلحقًا — بل هو المنتج.", - "ولتكون الدقة في «المجاني»: المحرّك مجاني بالترخيص لا بالتجربة. ترخيص Apache-2.0 لا يمكن إلغاؤه — نسخةُ الترخيص ترافق كلَّ إصدار.", + "لأن قيمةَ كيل كلَّها في قابلية التدقيق. فمحرّكُ امتثالٍ لا تستطيع فحصَه هو بالضبط نموذجُ «ثِق بي» الذي وُجد كيل ليحلّ محلَّه: أدواتُ الفرز المغلقة تطلب منك تصديقَ أحكامها؛ أمّا كيل فينشر الآليات والأحكامَ التي يُنفّذها، بمصادرها. فالانفتاح ليس قرارًا تسويقيًّا مُلحقًا — بل هو المنتج نفسه.", + "ولنكن دقيقين في معنى «المجّاني»: المحرّك مجّانيٌّ بالترخيص لا بتجربةٍ مؤقّتة. وترخيصُ Apache-2.0 لا يمكن الرجوع عنه — فنسخةُ الترخيص ترافق كلَّ إصدار.", ], }, { - question: "أين الحيلة؟ المنافسون يأخذون اشتراكات — فلماذا لا يأخذها كيل؟", + question: "أين المقابل؟ المنافسون يتقاضون اشتراكات — فلماذا لا يفعل كيل؟", answer: [ - "خدمات الفرز تتقاضى المال لأن الحكمَ منتجُها: هي تحسب التصنيفات أو تصوغها ثم تبيعك الوصول إليها. كيل عمدًا لا يبيع أحكامًا — بل ينفّذ أحكامك أنت، ونتيجته الصادقة تقول إن قواعده المرجعية لا تتغلب على رسومها. لا شيء هنا يُمكن الترفيع عليك بالأداء، ولن نتظاهر بغير ذلك.", - "والجزء الصادق من الجواب: كيل أيضًا فتيّ وصغير، ولا شركة خلفه بعد. المجانية جزءٌ من شكل أي مشروعٍ نزيهٍ في بدايته. على أن تشغيل كيل ليس مجانيًّا — وقتُك، ومنصّةُ تداول، ووصولُ بيانات السوق، كلّها تكلف مالًا حقيقيًّا، ونفضّل قول ذلك على تسمية التداول مجانيًّا.", - "وتفصيلٌ مقصود: نصوصُ هذا الموقع وهويّته محفوظة الحقوق (© CodeGate Software)، بخلاف شيفرة المحرّك. هذا الحدُّ هو مدى التفكير التجاري الحالي.", + "خدماتُ الفرز تتقاضى المال لأن الحكم هو منتجُها: فهي تحسب التصنيفات أو تصوغها ثم تبيعك الوصول إليها. أمّا كيل فلا يبيع أحكامًا عن قصد — بل يُنفّذ أحكامك أنت، ونتيجتُه الصادقة تقول إنّ قواعده المرجعية لا تتفوّق على رسومها. فليس هنا ما نبيعك إيّاه بحجّة الأداء، ولن نتظاهر بغير ذلك.", + "والجزء الصادق من الجواب: كيل أيضًا حديثُ العهد وصغير، ولا شركة خلفه بعد. والمجّانية جزءٌ ممّا يبدو عليه مشروعٌ نزيهٌ في بدايته. على أنّ تشغيل كيل ليس مجّانيًّا — فوقتُك، ومنصّةُ التداول، والوصولُ إلى بيانات السوق، كلُّها تكلّف مالًا حقيقيًّا، ونحن نفضّل قول ذلك على أن نسمّي التداول مجّانيًّا.", + "وثمّة تفصيلٌ مقصود: نصوصُ هذا الموقع وهويّتُه محفوظةُ الحقوق (© CodeGate Software)، بخلاف شيفرة المحرّك. وهذا الحدُّ هو مدى التفكير التجاري الحالي.", ], }, { - question: "متى سيتقاضى كيل مالًا، ومقابل أي خدمات؟", + question: "متى سيتقاضى كيل مالًا، ومقابلَ ماذا؟", answer: [ - "لا موعد، ولا قائمة أسعار، ولا خطةً مقرّرة — اختلاقُها سيكون بالضبط نوع الدعوى التي يرفض هذا المشروع تقديمها. إن جاءت خدماتٌ مدفوعة يومًا فستكون خدماتٍ حول المحرّك — لا المحرّك نفسه. وستقرأ عنها هنا وفي نقاشات GitHub أولًا، بالصدق نفسه الذي في كل شيء هنا: الإعلان سيقول بوضوح ما هي، وكم تكلّف، ولماذا.", - "وما يمكن الوعدُ به اليوم: المحرّك الذي تنزّله الآن مرخّص Apache-2.0، ولا يمكن سحب ذلك. أي عرضٍ مدفوعٍ مستقبليٍّ سيكون عليه أن يستحق الدفع فوق محرّكٍ مجاني — وهذا بالضبط المعيار الذي ينبغي لمشروعٍ كهذا أن يحاسب نفسه عليه.", + "لا موعدَ، ولا قائمةَ أسعار، ولا خطةَ مقرَّرة — واختلاقُ شيءٍ من ذلك سيكون بالضبط نوعَ الدعوى التي يرفض هذا المشروع تقديمها. وإن جاءت خدماتٌ مدفوعةٌ يومًا فستكون خدماتٍ مبنيّةً حول المحرّك — لا المحرّكَ نفسه. وستقرأ عنها هنا وفي نقاشات GitHub أولًا، بالصدق نفسه الذي في كل شيءٍ هنا: فالإعلان سيقول بوضوحٍ ما هي، وكم تكلّف، ولماذا.", + "أمّا ما يمكن الوعدُ به اليوم فهو أنّ المحرّك الذي تنزّله الآن مرخَّصٌ بترخيص Apache-2.0، ولا يمكن الرجوع عن ذلك ولا سحبُه. وأيُّ عرضٍ مدفوعٍ مستقبليٍّ سيكون عليه أن يستحقّ الدفع فوق محرّكٍ مجّاني — وهذا بالضبط المعيار الذي ينبغي لمشروعٍ كهذا أن يُحاسِب نفسه عليه.", ], }, ], diff --git a/src/i18n/pages/community.ts b/src/i18n/pages/community.ts index b550a68..9fe4512 100644 --- a/src/i18n/pages/community.ts +++ b/src/i18n/pages/community.ts @@ -78,46 +78,46 @@ export const community: LocalizedPage = { translatedFromRev: "2026-08-19.2", title: "مجتمع كيل على نقاشات GitHub", description: - "الأسئلة والأفكار والاستفتاءات ونقاش التصنيف تجري في نقاشات GitHub. هذا الموقع يقرأ ويربط فقط — والتفاعل يبقى حيث يعيش المشروع.", + "الأسئلة والأفكار واستطلاعات الرأي ونقاش التصنيف تجري في نقاشات GitHub. وهذا الموقع يقرأ ويربط فقط — ويبقى التفاعل حيث يعيش المشروع.", intro: [ - "كلُّ ما هو مجتمعيّ يحدث في نقاشات GitHub — النشر والتصويت والاستفتاء والإجابة. وهذا الموقع عمدًا لا يملك شيئًا من ذلك: يقرأ ويربط، لأن المشروع وتاريخه وإدارته تعيش هناك أصلًا.", + "كلُّ ما هو مجتمعيٌّ يحدث في نقاشات GitHub — النشر والتصويت واستطلاع الرأي والإجابة. وهذا الموقع لا يملك شيئًا من ذلك عن قصد: فهو يقرأ ويربط، لأن المشروع وتاريخه وإدارته موجودةٌ هناك أصلًا.", ], - note: "فئةٌ تستحق ذكرًا خاصًّا: «الامتثال والتصنيف». فسؤال «هل ينبغي معاملة X بهذه الطريقة؟» سؤالٌ لا علة برمجية — ولها مكانٌ مخصّص.", + note: "وثمّة فئةٌ تستحق ذكرًا خاصًّا: «الامتثال والتصنيف». فسؤال «هل ينبغي أن يُعامَل X بهذه الطريقة؟» سؤالٌ لا بلاغُ خلل — وله مكانٌ مخصّص.", categories: [ { name: "Announcements", slug: "announcements", - description: "تحديثات المشرفين — الخلاصة نفسها التي تحرّك صفحة الأخبار في هذا الموقع.", + description: "تحديثاتُ القائمين على المشروع — وهي الخلاصة نفسها التي تُغذّي صفحة الأخبار في هذا الموقع.", }, { name: "Compliance & classification", slug: "compliance-classification", - description: "حوارات «هل يُعامل X بهذه الطريقة؟» — نقاشُ التصنيف سؤالٌ لا علة برمجية، ويجب ألا يُفرز كذلك.", + description: "حواراتُ «هل يُعامَل X بهذه الطريقة؟» — فنقاشُ التصنيف سؤالٌ لا بلاغُ خلل، ولا يجوز فرزه على أنه كذلك.", }, { name: "Ideas", slug: "ideas", - description: "مقترحات ما ينبغي أن يفعله كيل تاليًا. أفضل الأفكار تصل والمشكلةُ التي تحلّها مكتوبة.", + description: "مقترحاتُ ما ينبغي أن يفعله كيل تاليًا. وأفضلُ الأفكار تصل ومعها المشكلةُ التي تحلّها مكتوبةً.", }, { name: "Polls", slug: "polls", - description: "حيث يسأل المشروع المجتمعَ أن يختار بين خياراتٍ محدّدة.", + description: "حيث يطلب المشروع من المجتمع أن يختار بين خياراتٍ محدّدة.", }, { name: "Q&A", slug: "q-a", - description: "أسئلة التشغيل والإعداد وفهم كيل — تُجاب علنًا ليجد السائلُ التالي الجواب.", + description: "أسئلةُ تشغيل كيل وإعداده وفهمه — يُجاب عنها علنًا ليجد السائلُ التالي الجواب.", }, { name: "Show and tell", slug: "show-and-tell", - description: "ما يبنيه الناس بكيل وحوله. (مخطَّطٌ لها خلاصةٌ ثانوية في صفحة الأخبار بهذا الموقع.)", + description: "ما يبنيه الناس بكيل وحوله. (ومن المخطَّط أن يكون خلاصةً ثانوية في صفحة الأخبار بهذا الموقع.)", }, { name: "General", slug: "general", - description: "كلُّ ما لا تدخل في الفئات أعلاه.", + description: "كلُّ ما لا يدخل في الفئات أعلاه.", }, ], }, diff --git a/src/i18n/pages/compare.ts b/src/i18n/pages/compare.ts index 795c33b..b54ea7e 100644 --- a/src/i18n/pages/compare.ts +++ b/src/i18n/pages/compare.ts @@ -81,36 +81,36 @@ export const compare: LocalizedPage = { translatedFromRev: "2026-08-20.4", title: "مقارنة كيل ببوتات التداول الأخرى", description: - "مقارنة كيل بـ Freqtrade وJesse وHummingbot: الترخيص والتوجه وبوابات الترقية وآليات الامتثال التي لا يحملها أيٌّ منها — وقائع بنيوية من المستودعات العمومية.", + "مقارنة كيل بـ Freqtrade وJesse وHummingbot: الترخيص والغرض وبوابات الترقية وآلياتُ الامتثال التي لا يحملها أيٌّ منها — وقائعُ بنيويةٌ من المستودعات العمومية.", intro: [ - "‏Freqtrade وJesse وHummingbot بوتات تداول مفتوحة المصدر، راسخة وقادرة — أنضج بكثير من كيل، ومجتمعاتها أكبر بأضعاف مضاعفة. إن أردت تداولًا خوارزميًّا عامًّا بأوسع تغطية للمنصّات فهي الجواب الأفضل.", - "تذكر هذه الصفحة، وقائعيًّا ومن المستودعات العمومية، حيث يختلف كيل: كيل ليس بوت تداول أفضل — بل شيءٌ آخر: محرّك إنفاذٍ لامتثالٍ شرعيٍّ أنت من يزوّده.", + "‏Freqtrade وJesse وHummingbot بوتاتُ تداولٍ مفتوحةُ المصدر، راسخةٌ وقادرة — وأنضجُ من كيل بكثير، ومجتمعاتُها أكبر بمراتب. فإن أردت تداولًا خوارزميًّا عامًّا بأوسع تغطيةٍ للمنصّات فهي الجواب الأفضل.", + "وتذكر هذه الصفحة، بالوقائع ومن المستودعات العمومية، أين يختلف كيل: فكيل ليس بوتَ تداولٍ أفضل — بل شيءٌ آخر: محرّكُ إنفاذٍ لامتثالٍ شرعيٍّ أنت من يزوّده به.", ], tableTitle: "مقارنة بنيوية", footnote: - "وقائع من المستودع العمومي لكل مشروع، أغسطس 2026. حجم المجتمع (نجوم GitHub، التاريخ نفسه): Freqtrade نحو 53 ألفًا، Hummingbot نحو 19.5 ألفًا، Jesse نحو 8.3 آلاف — وكيل بدأ للتو. خانة التكلفة جرى التحقق منها من موقع كل مشروع بتاريخ 2026-08-20؛ وتسعير إضافة Jesse يتغيّر كثيرًا — راجع jesse.trade/pricing. Freqtrade وJesse وHummingbot وQuantCrawler مشاريع مشرفيها؛ ولا تظهر أسماؤها هنا إلا لتعريفها. أما Alpaca فوسيطُ وساطةٍ لا بوت — وكيل يُسلّم محوّلًا له ضمن منفذ المنصّات.", + "وقائعُ من المستودع العمومي لكلّ مشروع، أغسطس 2026. حجم المجتمع (نجوم GitHub، في التاريخ نفسه): Freqtrade نحو 53 ألفًا، وHummingbot نحو 19.5 ألفًا، وJesse نحو 8.3 آلاف — وكيل بدأ للتوّ. وقد جرى التحقّق من صفّ التكلفة من موقع كلّ مشروعٍ بتاريخ 2026-08-20؛ وتسعيرُ إضافة Jesse يتغيّر كثيرًا — فراجعه على jesse.trade/pricing. و‏Freqtrade وJesse وHummingbot وQuantCrawler مشاريعُ القائمين عليها؛ ولا تظهر أسماؤها هنا إلا للتعريف بها. أمّا Alpaca فشركةُ وساطةٍ لا بوتَ تداول — ويُسلّم كيل محوّلًا لها ضمن منفذ المنصّات.", readingTitle: "كيف تقرأ هذا", reading: [ - "كلُّ مشروعٍ هنا يختبر القواعد رجعيًّا ويستطيع تداول العملات المشفّرة. الفروق التي تهم بنيوية: ما يرفض المحرّك فعله، وما يشترطه قبل أن تتداول قاعدةٌ مالًا حقيقيًّا، وهل الامتثال آلياتٌ أم لا شيء.", - "لا خانةَ في المقارنة حكمُ قيمة. اتساع Freqtrade، وتدفّق بحث Jesse، وعمق صناعة السوق في Hummingbot نقاطُ قوة حقيقية — ولا يملك كيل أيًّا منها، عن قصد.", + "كلُّ مشروعٍ هنا يختبر الاستراتيجيات اختبارًا رجعيًّا ويستطيع تداول العملات المشفّرة. والفروق التي تهمّ فروقٌ بنيوية: ما يرفض المحرّك فعلَه، وما يشترطه قبل أن تتداول قاعدةٌ مالًا حقيقيًّا، وهل الامتثال آلياتٌ قائمةٌ أم لا شيء البتّة.", + "وليست أيٌّ من خانات المقارنة حكمَ قيمة. فاتّساعُ Freqtrade، وسيرُ عمل البحث في Jesse، وعمقُ صناعة السوق في Hummingbot نقاطُ قوّةٍ حقيقية — ولا يملك كيل أيًّا منها، عن قصد.", ], paidTitle: "ماذا عن الخدمات المدفوعة؟", paidBody: [ - "‏QuantCrawler نمطُ الخدمات المدفوعة التي يقابلها كثير من المتداولين الأفراد أولًا: 9.99$ شهريًّا بعد تجربة مجانية ثلاثين يومًا (تحقّقنا منها بتاريخ 2026-08-20). يُمرّر تنبيهات TradingView إلى وسيطك وينسخ الصفقات بين الحسابات — عشر تكاملات وسطاء بينها Coinbase، مع تركيز على العقود المستقبلية وحسابات شركات التمويل. خدمة سحابية مغلقة المصدر: تربط بيانات وسيطك بمنصّتهم، ويجري التنفيذ على خوادمهم.", - "وكيل هو المقايضة المعاكسة: لا استضافة ولا مصدر مغلق. يعمل المحرّك على جهازك، ومفاتيحك لا تغادره، ولا يمكن لأي قاعدة أن تمسّ مالًا حقيقيًّا قبل اجتياز بوابة الترقية. وما يملكه QuantCrawler ولا يملكه كيل: اتساع الوسطاء وسير عمل TradingView أولًا — إن كان ذلك ما تحتاجه فجوابهم هو المناسب، بثمن ائتمان خدمةٍ ببياناتك. ومثل البوتات أعلاه، لا يحمل آليات امتثال — وهذا الفرق كلُّ سبب وجود كيل.", + "‏QuantCrawler نموذجُ الخدمة المدفوعة الذي يقابله كثيرٌ من المتداولين الأفراد أولًا: 9.99 دولارًا شهريًّا بعد تجربةٍ مجانيةٍ مدّتها ثلاثون يومًا (تحقّقنا منها بتاريخ 2026-08-20). وهو يُمرّر تنبيهات TradingView إلى وسيطك وينسخ الصفقات بين الحسابات — عشرةُ تكاملاتٍ مع وسطاء، منها Coinbase، مع تركيزٍ على العقود المستقبلية وحسابات شركات التمويل. وهو مغلقُ المصدر ومستضافٌ في السحابة: تربط بيانات اعتماد وسيطك بمنصّتهم، ويجري التنفيذ على خوادمهم.", + "وكيل هو المقايضة المعاكسة: لا استضافةَ ولا انغلاق. فالمحرّك يعمل على جهازك، ومفاتيحك لا تغادره، ولا يمكن لأيّ قاعدةٍ أن تمسّ مالًا حقيقيًّا قبل اجتياز بوابة الترقية. وما لا يملكه كيل هو اتّساعُ الوسطاء لدى QuantCrawler وسيرُ عمله القائم على TradingView أولًا — فإن كان ذلك ما تحتاجه فخدمتُهم هي الجواب المناسب، بثمنِ أن تأتمن خدمةً على بيانات اعتمادك. وهو مثل البوتات أعلاه لا يحمل أيَّ آليات امتثال؛ وهذا الفرق هو سببُ وجود كيل كلُّه.", ], - venuesTitle: "أي المنصّات، ولماذا", + venuesTitle: "أيُّ المنصّات، ولماذا", venuesBody: [ - "محوّل Coinbase في كيل هو المرجع المُثبت حيًّا: فرزٌ موثَّق للفوري، وأوامر حقيقية، والدورة كاملة تُمارَس في الإنتاج. وAlpaca موصولٌ للنشر في جانب الأسهم — الإنفاذ نفسه، ورقيًّا أولًا، مع ساعات سوق واعية بالجلسات. ومحوّل Robinhood يُسلَّم في المستودع منصّةَ تطويرٍ اختيارية، خارج عمليات النشر عمدًا حتى تُستوفى متطلبات مساره الحيّ.", - "وما يرفضه كيل رفضًا قاطعًا: العقود المستقبلية والهامش والبيع على المكشوف وكل المشتقات — الفوري الطويل هو السطح كله، بقِوامٍ شرعيٍّ وبالتصميم. وتوسيع تغطية المنصّات لا يُطارد عمدًا؛ كل منصّة جديدة قرارُ محوّلٍ تُتحقَّق قدراته، لا مقياسَ نموّ.", + "محوّل Coinbase في كيل هو المرجعُ المُثبَت في التشغيل الحيّ: فرزٌ موثَّق للتداول الفوري، وأوامرُ حقيقية، والمسارُ كاملًا يُختبر في بيئة الإنتاج. و‏Alpaca موصولٌ للنشر في جانب الأسهم — بالإنفاذ نفسه، وبالتداول التجريبي أولًا، مع مواقيتِ سوقٍ تراعي جلسات التداول. أمّا محوّل Robinhood فيُسلَّم في المستودع منصّةَ تطويرٍ اختيارية، خارج عمليات النشر عمدًا حتى تُستوفى متطلباتُ مساره الحيّ.", + "وما يرفضه كيل رفضًا قاطعًا: العقود المستقبلية، والهامش، والبيع على المكشوف، وكلُّ المشتقّات — فالشراء الفوري وحده هو كاملُ نطاق العمل، بناءً على الموقف الفقهي وعلى التصميم. ولا نسعى عمدًا إلى توسيع تغطية المنصّات؛ فكلُّ منصّةٍ جديدةٍ قرارٌ يقوم على التحقّق من قدرات محوّلها، لا مؤشّرَ نموّ.", ], - catchLink: "لماذا كيل مجانيٌّ بينما يتقاضى الآخرون اشتراكات؟ الجواب الصادق في صفحة «حول».", + catchLink: "لماذا كيل مجّانيٌّ بينما يتقاضى غيره اشتراكات؟ الجواب الصادق في صفحة «حول المشروع».", wontDoTitle: "ما لن يفعله كيل", wontDo: [ - "مطاردة تغطية المنصّات: Coinbase هو المحوّل المرجعي المُثبت حيًّا وAlpaca موصولٌ للأسهم الورقية؛ ومحوّل Robinhood اختياري/تطويري، خارج عمليات النشر عمدًا.", - "تداول أي شيءٍ غير الفوري الطويل: لا رافعة، لا بيعًا على المكشوف، لا مشتقّات.", - "ترقية قاعدةٍ على بريق اختبارٍ رجعيٍّ وحده: فحص فرط المواءمة (PBO/CSCV) يستطيع نقضها.", - "الوعد بربح: لا عائلة قواعد مُصدَّرة تحقق ربحًا صافيًا عند رسوم الآخذ الفعلية، والموقع يقول ذلك في صفحته الأولى.", + "أن يطارد تغطية المنصّات: فـCoinbase هو المحوّل المرجعي المُثبَت في التشغيل الحيّ، وAlpaca موصولٌ للأسهم في التداول التجريبي؛ ومحوّل Robinhood اختياريٌّ وتطويري، خارج عمليات النشر عمدًا.", + "أن يتداول شيئًا غير الشراء الفوري: لا رافعةَ مالية، ولا بيعَ على المكشوف، ولا مشتقّات.", + "أن يُرقّي قاعدةً على بريق اختبارٍ رجعيٍّ وحده: فحصُ الإفراط في المُلاءمة (PBO/CSCV) يستطيع نقضَها.", + "أن يَعِد بربح: لا تحقّق أيُّ عائلةٍ من القواعد المُصدَّرة ربحًا صافيًا عند رسوم الآخذ الفعلية، والموقع يقول ذلك في صفحته الأولى.", ], }, @@ -222,10 +222,10 @@ export const compareRows = (locale: "en" | "ar" | "fr"): CompareRow[] => { { label: "التكلفة", values: [ - "مجاني — مفتوح المصدر وتستضيفه بنفسك؛ تدفع فقط بنيتك التحتية ورسوم المنصّة", - "مجاني — مفتوح المصدر وتستضيفه بنفسك؛ لا باقة رسمية مدفوعة", - "النواة مجانية (MIT)؛ إضافة التداول الحيّ منتج مدفوع — تراخيص دائمة من 899$ (خصومات متكررة، وأُعلن نموذج اشتراك)", - "مجاني — Apache-2.0 وتستضيفه بنفسك؛ لا خدمات مدفوعة على موقعهم", + "مجّاني — مفتوح المصدر وتستضيفه بنفسك؛ ولا تدفع إلا بنيتك التحتية ورسوم المنصّة", + "مجّاني — مفتوح المصدر وتستضيفه بنفسك؛ ولا باقةَ مدفوعةً رسمية", + "النواة مجّانية (MIT)؛ أمّا إضافة التداول الحيّ فمنتجٌ مدفوع — تراخيصُ دائمة تبدأ من 899 دولارًا (خصوماتٌ متكرّرة، وأُعلن نموذجُ اشتراك)", + "مجّاني — Apache-2.0 وتستضيفه بنفسك؛ ولا خدماتٍ مدفوعةً على موقعهم", ], }, { @@ -235,34 +235,34 @@ export const compareRows = (locale: "en" | "ar" | "fr"): CompareRow[] => { { label: "الغرض", values: [ - "إنفاذ امتثالٍ شرعيٍّ تزوّده أنت، على التداول الفوري", - "تطوير بوت تداول عامّ", - "بحث استراتيجيات التداول وتنفيذها", - "صناعة السوق والتداول عالي التواتر", + "إنفاذُ امتثالٍ شرعيٍّ تزوّده أنت، في التداول الفوري", + "تطويرُ بوتات تداولٍ عامّة", + "بحثُ الاستراتيجيات وتداولها", + "صناعةُ السوق والاستراتيجيات عالية التواتر", ], }, { label: "محوّلات المنصّات", values: [ - "‏Coinbase (مرجعي مثبت حيًّا) + Alpaca (موصول، أسهم ورقية)؛ محوّل Robinhood اختياري/تطويري", - "منصّات كبرى عديدة", - "عدة منصّات", - "منصّات مركزية ولا مركزية عديدة", + "‏Coinbase (المرجع المُثبَت في التشغيل الحيّ) + Alpaca (موصول، للأسهم في التداول التجريبي)؛ ومحوّل Robinhood اختياريٌّ وتطويري", + "منصّاتٌ كبرى عديدة", + "عدّةُ منصّات", + "منصّاتٌ مركزية ولا مركزية عديدة", ], }, { label: "الاختبار الرجعي", values: [ - "مطابقٌ للإنتاج، بانزلاقٍ مُقيَّد بالسيولة", - "متوفّر", - "متوفّر", - "متوفّر", + "مطابقٌ للإنتاج، بانزلاقٍ مُدرَّجٍ حسب السيولة", + "نعم", + "نعم", + "نعم", ], }, { - label: "بوابة ترقية إلزامية للحيّ", + label: "بوابةٌ إلزامية قبل التداول الحيّ", values: [ - "شقّان: أرضيات أداء + فحص فرط مواءمة (PBO/CSCV) وأرضية 100 صفقة", + "شقّان: حدودٌ دنيا للأداء + فحصُ الإفراط في المُلاءمة (PBO/CSCV)، وحدٌّ أدنى قدره 100 صفقة", "لا", "لا", "لا", @@ -271,15 +271,15 @@ export const compareRows = (locale: "en" | "ar" | "fr"): CompareRow[] => { { label: "آليات امتثال شرعي", values: [ - "فرزٌ موثَّق يفشل مغلقًا + 18 سكة أمان لا تُتجاوز (منها القبض الحُكمي)", + "فرزٌ موثَّق يرفض عند الفشل + 18 سكةَ أمانٍ لا تُتجاوَز (منها القبض الحُكمي)", "غير مدمجة", "غير مدمجة", "غير مدمجة", ], }, { - label: "إعلان نتيجة صادقة عن قواعده", - values: ["نعم — في الصفحة الأولى", "غير منشور", "غير منشور", "غير منشور"], + label: "إعلانُ نتيجةٍ صادقةٍ عن قواعده", + values: ["نعم — في الصفحة الأولى", "غير منشورة", "غير منشورة", "غير منشورة"], }, ]; } diff --git a/src/i18n/pages/compliance.ts b/src/i18n/pages/compliance.ts index ef4a1ee..d6f8cd6 100644 --- a/src/i18n/pages/compliance.ts +++ b/src/i18n/pages/compliance.ts @@ -95,71 +95,71 @@ export const compliance: LocalizedPage = { ar: { rev: "2026-08-19.2", translatedFromRev: "2026-08-19.2", - title: "منهجية الامتثال الشرعي بلغة مبسّطة", + title: "منهجية الامتثال الشرعي بلغةٍ مبسّطة", description: - "كيف يعمل الامتثال الشرعي في كيل: فرزٌ موثَّق يفشل مغلقًا، ونموذج توثيق لكل (منصّة، منتج)، وفحص القبض — وما ليس هو كيل.", + "كيف يعمل الامتثال الشرعي في كيل: فرزٌ موثَّق يرفض عند الفشل، ونموذجُ توثيقٍ لكل (منصّة، منتج)، وفحصُ القبض — وما لا يزعمه كيل.", intro: - "صُمّم الامتثال في كيل بحيث يكون كل حكمٍ يُنفّذه مكتوبًا وموثّقًا ومزوَّدًا منك — أنت المشغّل. لا يُستنبط شيءٌ شرعي، ولا يُفترض، ولا يُخفى في الشيفرة. تشرح هذه الصفحة النموذج بلغةٍ مبسّطة؛ ومستند الأساس الفقهي هو البيان المرجعي، حكمًا حكمًا.", + "صُمِّم الامتثال في كيل بحيث يكون كلُّ حكمٍ يُنفّذه مكتوبًا وموثَّق المصدر ومزوَّدًا منك أنت — المشغّل. فلا يُستنبَط شيءٌ شرعي، ولا يُفترض افتراضًا، ولا يُخفى في الشيفرة. وتشرح هذه الصفحة هذا النموذج بلغةٍ مبسّطة؛ ومستندُ الأساس الفقهي هو البيان المرجعي، حكمًا حكمًا.", sections: [ { - title: "وقائع محسوبة مقابل تصنيفات موثَّقة", + title: "وقائعُ محسوبة مقابل تصنيفاتٍ موثَّقة", body: [ - "بعضُ ما يخصّ الأصل معرفتُه من السوق، فيُحسب ببساطة. لكن: هل الغرض الأساسي للرمز قطاعٌ محرَّم، وهل هو عينٌ 'ayn مدعومة بأصلٍ أم دَين dayn، وهل يوزّع عائدًا شبيهًا بالربا — هذه أسئلةُ واقعٍ وعلمٍ في العالم. لا وحدةٍ في المستودع تستنبطها من بيانات الشموع، ولا تتظاهر بذلك. إنسانٌ يسجّلها، بمصدرٍ واسمٍ منسوب؛ وكيل ينفّذ السجلّ حتميًّا ويرفض كلَّ ما ليس موثَّقًا.", + "بعضُ ما يتعلّق بالأصل يمكن معرفتُه من السوق، فيُحسب حسابًا مباشرًا. لكن: هل الغرض الأساسي للرمز قطاعٌ محرَّم، وهل هو عينٌ ('ayn) مدعومةٌ بأصلٍ أم دَينٌ (dayn)، وهل يوزّع عائدًا شبيهًا بالربا — فهذه أسئلةٌ تجمع بين الواقع والاجتهاد العلمي. ولا وحدةَ في المستودع تستنبطها من بيانات الشموع، ولا تدّعي ذلك. بل يسجّلها إنسانٌ، بمصدرٍ واسمٍ منسوب؛ ثم يُنفّذ كيل السجلَّ تنفيذًا حتميًّا ويرفض كلَّ ما ليس موثَّقًا.", ], }, { title: "نموذج التوثيق لكل (منصّة، منتج)", body: [ - "التوثيق مُقيَّد النطاق: يسمّي المنصّة والمنتج، ويحمل مصدرًا، ويُنسب إلى اسم. مُشغّلان يتبعان مذهبين مختلفين قد يحملان توثيقين مختلفين فيحصلان على إجابتين مختلفتين من الشيفرة نفسها — بتصميمٍ مقصود، لأن الحكم يسكن توثيقك لا الشيفرة.", - "النموذج نفسه يغطّي المنصّة ذاتها: السكة 14 ترفض شراءً حيًّا حتى يوثّق المشغّل اشتراكه في المنصّة، والسكة 17 تُشفّر القبض الحُكمي §65.4 — فالأصل الذي لا يمكن سحبه قد لا يكون مملوكًا قبضًا صحيحًا، لذا تُوثَّق قابليةُ السحب وتُنفَّذ، ولا تُفترض.", + "التوثيق محدّدُ النطاق: يسمّي المنصّة والمنتج، ويحمل مصدرًا، ويُنسب إلى اسم. وقد يحمل مُشغّلان يتبعان مذهبين مختلفين توثيقين مختلفين فيحصلان على إجابتين مختلفتين من الشيفرة نفسها — وهذا مقصودٌ بالتصميم، لأن الحكم يسكن توثيقَك لا الشيفرةَ.", + "والنموذج نفسه يشمل المنصّة ذاتها: فالسكة 14 ترفض أوامر الشراء الحيّة حتى يوثّق المشغّل اشتراكه في المنصّة، والسكة 17 تُشفّر القبض الحُكمي §65.4 — إذ إنّ الأصل الذي لا يمكن سحبُه قد لا يكون قد قُبِض قبضًا صحيحًا، فتُوثَّق قابليةُ السحب وتُنفَّذ، ولا تُفترض.", ], }, { - title: "التنقية وشكل الفوري الصافي", + title: "التنقية وقصرُ العمل على التداول الفوري", body: [ - "كيل فوريٌّ طويلٌ فقط: لا رافعة، لا بيعًا على المكشوف، لا مشتقّات؛ والتحجيم بالنقد الفعلي، فلا يدخل الربا من الجهة ذاتها. وحيث تعذّر الإنفاذ بالشيفرة، يُصرَّح به بدل تجاهله: الالتزامات على مستوى الحساب التي لا تراها أي سكة — تعطيل مكافآت USDC على الأرصدة الخاملة أساسًا — على المشغّل التحقق منها، وكتاب تشغيل المشغّل يسردُها.", + "العملُ في كيل مقصورٌ على الشراء الفوري: لا رافعةَ مالية، ولا بيعَ على المكشوف، ولا مشتقّات؛ وتحجيمُ المراكز بالنقد الفعلي، فلا يدخل الربا من جهة المركز نفسه. وحيثما تعذّر إنفاذُ التزامٍ بالشيفرة، صُرِّح به بدل تجاهله: فالالتزامات على مستوى الحساب التي لا تراها أيُّ سكة — وأبرزُها تعطيلُ مكافآت USDC على الأرصدة الخاملة — على المشغّل التحقّقُ منها، وهي مسرودةٌ في كتاب تشغيل المشغّل.", ], }, ], doesNot: { title: "ما لا يفعله كيل", items: [ - "ليس فتوى ولا يستطيع إنتاجها. كيل لا يستنبط تصنيفًا شرعيًّا من بيانات السوق أبدًا؛ بل ينفّذ الحكم الذي تزوّده به.", - "ليس نصيحة مالية وليست نصيحةً شرعية.", - "لم تَجرِ أي مراجعة علمية شرعية للأساس الفقهي. الأساس قراءةٌ موثّقة المصادر لمُشغّل واحد، نُشر ليُدقَّق ويُعترَض عليه؛ وما لم تَجرِ المراجعة، فالحالة: غير مُراجَع.", - "التوثيق فعلُ المشغّل ومسؤوليتُه. كيل آليةُ إنفاذ، لا مرجعية.", - "لا يَعِد بربح — لا عائلة قواعد مُصدَّرة تحقق ربحًا صافيًا عند رسوم الآخذ الفعلية، والمقياس المرجعي هو الشراء الدوري المنتظم (DCA).", + "ليس فتوى ولا يستطيع إنتاجها. فكيل لا يستنبط تصنيفًا شرعيًّا من بيانات السوق أبدًا؛ بل يُنفّذ الحكم الذي تزوّده به.", + "وليس نصيحةً مالية ولا نصيحةً شرعية.", + "ولم تَجرِ أيُّ مراجعةٍ علميةٍ شرعية للأساس الفقهي. فالأساس قراءةٌ موثّقةُ المصادر لمُشغّلٍ واحد، نُشرت لتُدقَّق ويُعترَض عليها؛ وما لم تَجرِ المراجعة، فالحالة هي: غير مُراجَع.", + "والتوثيق فعلُ المشغّل ومسؤوليتُه. فكيل آليةُ إنفاذ، لا مرجعيةٌ شرعية.", + "ولا يَعِد بربح — إذ لا تحقّق أيُّ عائلةٍ من القواعد المُصدَّرة ربحًا صافيًا عند رسوم الآخذ الفعلية، والمؤشّر المرجعي هو الشراء الدوري المنتظم (DCA).", ], }, attest: { - title: "الأمر الأهم", + title: "الأمرُ الأهمّ", body: [ - "أمرٌ واحد يسجّل تصنيفًا بمصدره واسمٍ منسوبٍ إليه. وكل ما ينفّذه كيل لاحقًا عن ذلك الأصل يعود إلى هذا السجلّ.", + "أمرٌ واحدٌ يسجّل تصنيفًا بمصدره وباسمٍ منسوبٍ إليه. وكلُّ ما يُنفّذه كيل لاحقًا بشأن ذلك الأصل يعود إلى هذا السجلّ.", ], command: "keel assets attest", - commandNote: "سجّل تصنيفًا شرعيًّا — بمصدرٍ واسمٍ منسوب — لينفّذه كيل بعدها حتميًّا.", + commandNote: "سجّل تصنيفًا شرعيًّا — بمصدرٍ واسمٍ منسوب — لينفّذه كيل بعد ذلك تنفيذًا حتميًّا.", }, links: { title: "المصادر الأولية", items: [ { label: "الأساس الفقهي (docs/fiqh-basis.md)", - note: "الاستدلال الفقهي الذي يُشفّره كيل، حكمًا حكمًا، مع مصدره داخل المستودع.", + note: "الاستدلال الشرعي الذي يُشفّره كيل، حكمًا حكمًا، مع مصدر كلِّ حكمٍ داخل المستودع.", href: "https://github.com/CodeGateSoftware/keel/blob/main/docs/fiqh-basis.md", }, { label: "حالة المراجعة العلمية", - note: "ما ستغطّيه مراجعةٌ علمية وماذا تعني ولا تعني — والحالة القائمة: غير مُراجَع.", + note: "ما ستغطّيه المراجعة العلمية، وما تعنيه وما لا تعنيه — والحالة القائمة: غير مُراجَع.", href: "https://github.com/CodeGateSoftware/keel/blob/main/docs/fiqh-basis.md#scholarly-review-status", }, { label: "النتيجة الصادقة — سجلّ التجربة", - note: "لا عائلة قواعد مُصدَّرة تحقق ربحًا صافيًا عند رسوم الآخذ الفعلية؛ كل الأرقام مذكورة.", + note: "لا تحقّق أيُّ عائلةٍ من القواعد المُصدَّرة ربحًا صافيًا عند رسوم الآخذ الفعلية؛ وكلُّ الأرقام مذكورة.", href: "https://github.com/CodeGateSoftware/keel/blob/main/docs/experiments/2026-08-13-restated-under-a-production-faithful-engine.md", }, { label: "المسرد (docs/glossary.md)", - note: "المصدر الوحيد للمصطلحات — المصطلحات الفقهية مُسنَدة، لا مؤلَّفة.", + note: "المصدر الوحيد للمصطلحات — والمصطلحات الفقهية مُسنَدةٌ إلى مصادرها، لا مؤلَّفة.", href: "https://github.com/CodeGateSoftware/keel/blob/main/docs/glossary.md", }, ], diff --git a/src/i18n/pages/docs.ts b/src/i18n/pages/docs.ts index c252b8c..e6bfc33 100644 --- a/src/i18n/pages/docs.ts +++ b/src/i18n/pages/docs.ts @@ -51,16 +51,16 @@ export const docs: LocalizedPage = { description: "المسرد والأساس الفقهي وكتب التشغيل وسجلّا التجارب والبحث — تُجلب وقت البناء من CodeGateSoftware/keel، ولا تُنسخ يدويًّا أبدًا.", intro: [ - "هذه مستندات محرّك كيل نفسها، تُعرض هنا وقت البناء من CodeGateSoftware/keel. لا شيء في هذه الصفحة معادٌ كتابتُه أو ملخَّصٌ يدويًّا: إذا انتقل مستندٌ مثبَّتٌ أو اختفى في الأعلى، فشل بناءُ هذا الموقع بصوتٍ عالٍ بدل عرض شيءٍ بالٍ.", + "هذه مستندات محرّك كيل نفسها، تُعرض هنا وقت البناء من CodeGateSoftware/keel. لا شيء في هذه الصفحة معادٌ كتابتُه أو ملخَّصٌ يدويًّا: إذا انتقل مستندٌ مثبَّتٌ أو اختفى في الأعلى، فشل بناءُ هذا الموقع فشلًا صريحًا بدل عرض محتوًى متقادم.", ], howTitle: "كيف يعمل هذا", how: [ - "بيانٌ (engine-docs.manifest.json) يثبّت مسار كل مستندٍ في مستودع المحرّك. وفي كل بناء — بما فيه إعادة البناء الساعية — ينزّل سكربتُ الجلب كلَّ مستند، ويعيد كتابة الروابط النسبية لتشير إلى مصادرها على GitHub، ثم يعرضها البناء. ويفشل البناء عمدًا إذا أرجع أي مسارٍ مثبَّتٍ 404.", + "ملفُّ بيانٍ (engine-docs.manifest.json) يثبّت مسار كل مستندٍ في مستودع المحرّك. وفي كل بناء — بما فيه إعادة البناء الساعية — ينزّل سكربتُ الجلب كلَّ مستند، ويعيد كتابة الروابط النسبية لتشير إلى مصادرها على GitHub، ثم يعرضها البناء. ويفشل البناء عمدًا إذا أرجع أيُّ مسارٍ مثبَّتٍ الخطأ 404.", ], // AR docs edition: summaries of glossary/fiqh on the index + originals in EN. editionNoteTitle: "عن الطبعة العربية", editionNote: [ - "تُنشر وثائق المحرّك بالإنجليزية وهي النص المرجعي. تلخّص الطبعةُ العربية أدناه المسردَ والأساس الفقهي، وتربطك بالمستندات الأصلية كاملةً بلغتها الأولى.", + "تُنشر وثائق المحرّك بالإنجليزية، وهي النصّ المرجعي. وتُلخّص الطبعةُ العربية أدناه المسردَ والأساس الفقهي، وتربطك بالمستندات الأصلية كاملةً بلغتها الأولى.", ], summariesTitle: "ملخّصان بالعربية", summaries: [ @@ -68,16 +68,16 @@ export const docs: LocalizedPage = { slug: "glossary", title: "ملخّص المسرد", body: [ - "المسرد هو المصدر الوحيد لمصطلحات كيل: كل مصطلحٍ يمكن أن تعرضه واجهةُ كيل النصية معرَّفٌ فيه وحده، وتربطه الوثائق به بدل إعادة تعريفٍ قد يتقادم. ويحمل قاعدتَي صدقٍ ورثهما عن الأساس الفقهي: المصطلحات الفقهية مُسنَدةٌ لا مؤلَّفة — تعريفُها اقتباسٌ حرفيٌّ من الأساس الفقهي مع سطرِ مصدرٍ يسمّي المستندَ والقسمَ الدقيقين — وحيث لم ينصّ الأساس على مصطلحٍ (كالغرر)، يقول المسرد ذلك صراحةً بدل ردم الفجوة بصياغةٍ تُشبه الفتوى.", - "أمّا معاملات القواعد فلا تُعرَّف في المسرد: معنى entry_lookback في turtle_breakout يسكن الصفيفة التي تُعرّفه، ويعرضه نظام المساعدة من هناك — فجدولٌ ثانٍ هنا كان سيتقادم يوم تتغيّر الصفيفة.", + "المسرد هو المصدر الوحيد لمصطلحات كيل: فكلُّ مصطلحٍ يمكن أن تعرضه واجهةُ كيل النصية معرَّفٌ فيه وحده، وتُحيل إليه الوثائقُ بدل إعادة تعريفٍ قد يتقادم. وهو يحمل قاعدتَي صدقٍ ورثهما عن الأساس الفقهي: فالمصطلحات الفقهية مُسنَدةٌ إلى مصادرها لا مؤلَّفة — إذ تعريفُها اقتباسٌ حرفيٌّ من الأساس الفقهي مع سطرِ مصدرٍ يسمّي المستندَ والقسمَ بدقّة — وحيثما لم ينصّ الأساس على مصطلحٍ (كالغرر)، قال المسرد ذلك صراحةً بدل ردم الفجوة بصياغةٍ تُشبه الفتوى.", + "أمّا وسائط القواعد فلا تُعرَّف في المسرد: فمعنى entry_lookback في turtle_breakout يسكن في صنف القاعدة الذي يُعرّفه، ويعرضه نظام المساعدة من هناك — إذ إنّ جدولًا ثانيًا هنا كان سيتقادم يوم يتغيّر ذلك الصنف.", ], }, { slug: "fiqh-basis", title: "ملخّص الأساس الفقهي", body: [ - "مستند الأساس الفقهي مكتوبٌ لمطوّرٍ مسلمٍ يقرّر أن يأتمن كيلًا على ماله. يبيّن، حكمًا حكمًا، الاستدلالَ الشرعي المُشفَّر في المستودع، وأين يسكن مصدرُ كل حكمٍ داخله — ليكون الأساس قابلًا للتدقيق ممن لا يعرف أين يبحث. إنه علمٌ بالإحالة: كل حكمٍ يحمل استشهادًا بمصدرٍ داخل المستودع، والشيفرةُ المُنفِّذة تحمل الاستشهادات نفسها في تعليقاتها.", - "وما ليس هو: فتوى، ولا ادّعاءٌ بقدرة كيل على إنتاجها. لم يراجع المستندَ عالمٌ؛ وهل تجري مراجعةٌ كهذه سؤالٌ مفتوحٌ عن قصد (#289)، ولا شيء فيه يُقرأ على أنه حدثت. وحيثما صمتّ مصدرٌ عن شيء، قيل «غير منصوص» — فالفجوةُ لا تُردم أبدًا بصياغةٍ توهم حكمًا.", + "مستندُ الأساس الفقهي مكتوبٌ لمطوّرٍ مسلمٍ يقرّر أن يأتمن كيلًا على ماله. وهو يبيّن، حكمًا حكمًا، الاستدلالَ الشرعي المُشفَّر في المستودع، وأين يسكن مصدرُ كلِّ حكمٍ داخله — ليكون الأساس قابلًا للتدقيق ممّن لا يعرف أين يبحث. وهو علمٌ بالإحالة: فكلُّ حكمٍ يحمل استشهادًا بمصدرٍ داخل المستودع، والشيفرةُ المُنفِّذة تحمل الاستشهادات نفسها في تعليقاتها.", + "وما ليس عليه: فليس فتوى، ولا ادّعاءً بقدرة كيل على إنتاجها. ولم يراجع المستندَ عالمٌ؛ وهل تجري مراجعةٌ كهذه سؤالٌ مفتوحٌ عن قصد (#289)، وليس في المستند ما يُقرأ على أنها قد حدثت. وحيثما سكت مصدرٌ عن شيء، قيل «غير منصوص عليه» — فالفجوةُ لا تُردم أبدًا بصياغةٍ توهم حكمًا.", ], }, ], diff --git a/src/i18n/pages/features.ts b/src/i18n/pages/features.ts index 8f6acf6..a6b930d 100644 --- a/src/i18n/pages/features.ts +++ b/src/i18n/pages/features.ts @@ -94,63 +94,63 @@ export const features: LocalizedPage = { translatedFromRev: "2026-08-20.2", title: "خصائص محرّك الامتثال الشرعي — كيل", description: - "فرزٌ موثَّق يفشل مغلقًا، و18 سكة أمان لا تُتجاوز، وبوابات ترقية مع فحص فرط المواءمة، وقياسٌ صادق مقابل DCA — كل خصيصة تشير إلى مصدرها في الشيفرة.", + "فرزٌ موثَّق يرفض عند الفشل، و18 سكةَ أمانٍ لا تُتجاوَز، وبواباتُ ترقيةٍ تفحص الإفراط في المُلاءمة، وقياسٌ صادقٌ مقابل مؤشّر DCA — وكلُّ خاصيةٍ تشير إلى مصدرها في الشيفرة.", intro: - "لا تصف هذه الصفحة إلا ما يستطيع مستودع المحرّك إظهاره. كل قسمٍ يرتبط بالمصدر الذي يثبته — فإن انحرفت يومًا مزيدةٌ عن الشيفرة، فالرابط هو سبيلك للإمساك بنا.", + "لا تصف هذه الصفحة إلا ما يستطيع مستودعُ المحرّك إظهارَه. وكلُّ قسمٍ يرتبط بالمصدر الذي يُثبته — فإن انحرفت دعوى يومًا عن الشيفرة، فالرابط هو سبيلك إلى الإمساك بنا.", verifyNote: "تحقّق في المستودع", features: [ { - title: "فرز أصولٍ موثَّق — يفشل مغلقًا", - body: "القبول في القائمة المسموحة مقسومٌ بحسب ما يمكن معرفته. الوقائع السوقية تُحسب؛ أمّا التصنيفات الشرعية — هل الغرض الأساسي قطاعٌ محرَّم (§28.4)، هل الرمز عينٌ 'ayn مدعومة ب أصل أم دَين dayn (§65.5/§67.2)، هل يوزّع عائدًا شبيهًا بالربا — فموثَّقةٌ لا مستنبطة، عبر keel assets attest. وغياب التوثيق رفضٌ، لا قبولٌ افتراضي.", + title: "فرزُ أصولٍ موثَّق — يرفض عند الفشل", + body: "القبولُ في قائمة الأصول المسموح بها مقسومٌ بحسب ما يمكن معرفتُه. فوقائعُ السوق تُحسَب؛ أمّا التصنيفات الشرعية — هل الغرض الأساسي للرمز قطاعٌ محرَّم (§28.4)، وهل هو عينٌ ('ayn) مدعومةٌ بأصلٍ أم دَينٌ (dayn)‏ (§65.5/§67.2)، وهل يوزّع عائدًا شبيهًا بالربا — فتُوثَّق ولا تُستنبَط، عبر الأمر keel assets attest. وغيابُ التوثيق رفضٌ، لا قبولٌ افتراضي.", verify: { label: "compliance/screen.py", href: "https://github.com/CodeGateSoftware/keel/blob/main/keel/compliance/screen.py" }, }, { - title: "سكك الأمان — ثمانية عشر فحصًا لا يتخطّاها أمر", - body: "ضوابط حتمية لا شيء يتجاوزها، ولا حتى نمط الاستقلالية:", + title: "سكك الأمان — ثمانية عشر فحصًا لا يتجاوزها أيُّ أمر", + body: "ضوابطُ حتميةٌ لا يتجاوزها شيء، ولا حتى وضعُ الاستقلالية:", points: [ - "القائمة المسموحة الحلال، وسقوف الإنفاق للأمر الواحد ولليوم، وسقوف التعرّض والتركيز", - "تحجيم واعٍ بالارتباط، وأرضية حركة دنيا، ومنع المارتينغال ومنع توسيع وقف الخسارة", - "قواطع سحبٍ كليٍّ وأسبوعي، وقاطع خسائر متتالية / تآكل حدّي", - "فحوص قِدَم التغذية وتوازن الأسعار", - "السكة 14 — توثيق الاشتراك والسحب في المنصّة: تُرفض أوامر الشراء الحيّة حتى يوثّق المشغّل", - "السكة 17 — القبض الحُكمي §65.4: قابلية السحب توثَّق وتُنفَّذ، لأن الأصل الذي لا يمكن سحبه قد لا يكون مملوكًا قبضًا صحيحًا", - "بوابة دخول بفارق سعر أقصى: ترفض شراءً حيًّا عند 50 نقطة أساس أو أكثر، وتفشل مغلقًا عند دفترٍ غير مقروء", - "رفضُ السكة يسمّي نفسه والأمر الذي يرفعه", + "قائمةُ الأصول الحلال المسموح بها، وسقوفُ الإنفاق للأمر الواحد ولليوم، وسقوفُ التعرُّض والتركيز", + "تحجيمٌ يراعي الارتباط، وحدٌّ أدنى لحركة السعر، ومنعُ المارتينغال ومنعُ توسيع وقف الخسارة", + "قواطعُ التراجُع (drawdown) الكلّي والأسبوعي، وقاطعُ الخسائر المتتالية وتآكُل الأفضلية", + "فحوصُ تقادُم موجزات البيانات واتّزان عروض الأسعار", + "السكة 14 — توثيقُ الاشتراك في المنصّة وقابليةِ السحب منها: تُرفض أوامرُ الشراء الحيّة حتى يوثّق المشغّل", + "السكة 17 — القبض الحُكمي §65.4: تُوثَّق قابليةُ السحب وتُنفَّذ، لأن الأصل الذي لا يمكن سحبُه قد لا يكون قد قُبِض قبضًا صحيحًا", + "بوابةُ دخولٍ بحدٍّ أقصى لفارق السعر: ترفض الشراء الحيّ عند 50 نقطة أساسٍ أو أكثر، وترفض كذلك عند تعذُّر قراءة دفتر الأوامر", + "رفضُ السكة يسمّي نفسه ويسمّي الأمرَ الذي يرفعه", ], verify: { label: "execution/guards.py", href: "https://github.com/CodeGateSoftware/keel/blob/main/keel/execution/guards.py" }, }, { - title: "بوابات الاستراتيجية — مرشّح ← تجريبي ← حيّ", - body: "على القاعدة أن تجتاز ثلاث مراحل قبل أن تلمس مالًا حقيقيًّا. والترقية تتجاوز بوابةً من شقّين: أرضيات أداء، وفحص فرط مواءمة (PBO/CSCV). ويجوز تلبية أرضية العيّنة البالغة 100 صفقة بتداول القاعدة نفسه رجعيًا، أو بتجميع المعاملات نفسها عبر منتجات أخرى في الافتراضي — بشرط أن يساهم خمسة منتجات على الأقل بعشر صفقاتٍ لكلٍّ منها، لأن تجميع عيّنات مترابطة يضخّم قوّته.", + title: "بوابات الاستراتيجية — مرشَّحة ← تجريبية ← حيّة", + body: "على القاعدة أن تجتاز ثلاث مراحل قبل أن تلمس مالًا حقيقيًّا. ولا تُرقَّى إلا باجتياز بوابةٍ من شقّين: حدودٌ دنيا للأداء، وفحصٌ للإفراط في المُلاءمة (PBO/CSCV). ويجوز بلوغُ الحدّ الأدنى البالغ مائة صفقة بالاختبار الرجعي للقاعدة نفسها، أو بتجميع صفقات الوسائط نفسها عبر منتجاتٍ متعدّدةٍ في التداول التجريبي — بشرط أن يُسهم خمسةُ منتجاتٍ على الأقل بعشر صفقاتٍ لكلٍّ منها، لأن تجميع عيّناتٍ مترابطةٍ يُبالغ في تقدير قوّتها الإحصائية.", verify: { label: "agent.py — RULE_REGISTRY", href: "https://github.com/CodeGateSoftware/keel/blob/main/keel/agent.py" }, }, { - title: "قياس صادق، مقابل DCA", - body: "يعيد الأمر keel simulate تشغيل القواعد الحقيقية فوق التاريخ المجلوب، ويقارنها بمقياس الشراء الدوري المنتظم (DCA)، ويكتب تقرير GO-LIVE أو TRAIN-MORE مسمّيًا كل بوابةٍ وأرقامها. ويُسعّر المحرّك الرجعي الانزلاق لكل منتجٍ على أساس سيولتها الفعلية (5–50 نقطة أساس)، فلا يمكن تلميع النتائج بكتبٍ رقيقة. وعلى القواعد الافتراضية سيخبرك على الأرجح TRAIN MORE — فهذا المحرّك يعمل، لا أنه معطّل.", + title: "قياسٌ صادق، مقابل الشراء الدوري المنتظم", + body: "يعيد الأمر keel simulate تشغيلَ القواعد الحقيقية على التاريخ المجلوب، ويقارنها بمؤشّرٍ مرجعيٍّ بسيطٍ هو الشراء الدوري المنتظم (DCA)، ويكتب تقرير GO-LIVE أو TRAIN-MORE مسمّيًا كلَّ بوابةٍ وأرقامَها. ويُسعّر المحرّك الرجعي الانزلاقَ لكلِّ منتجٍ على قدر سيولته الفعلية (5–50 نقطة أساس)، فلا يمكن تجميلُ النتائج بدفاترِ أوامرَ ضعيفةِ السيولة. وعلى القواعد الافتراضية سيقول لك على الأرجح TRAIN MORE — وهذا دليلُ عمل المحرّك لا دليلُ عطبه.", verify: { label: "سجلّ التجارب", href: "https://github.com/CodeGateSoftware/keel/tree/main/docs/experiments" }, }, { - title: "ثلاثة أنماط نشرٍ لا تتقاسم شيئًا", - body: "يوميٌّ افتراضي، وحيّ، ونمطٌ ساعيٌّ للأدلة (paper-hourly) — لكلٍّ قاعدة بياناته وإعداداته. وُجد النمط الساعي لأن الساعة اليومية تقيس 2.15 إشارة لكل أصل-سنة (فمراجعة 100 صفقة تبعد 31–84 سنة)، بينما القواعد نفسها على شموع الساعة تُطلق 49.4 — نحو 940 إشارة دخول سنويًّا مجمّعةً، فتقترب مراجعة الأدلة الأمامية أسابيعَ بدل عقود. وهو مقيسٌ صافي الخسارة أيضًا: وُجد لجمع أدلةٍ أمامية مقبولة، لا للربح.", + title: "ثلاثة أنماط نشرٍ لا يتقاسم أيٌّ منها شيئًا", + body: "نمطٌ يوميٌّ تجريبي، ونمطٌ حيّ، ونمطٌ ساعيٌّ لجمع الأدلة (paper-hourly) — لكلٍّ منها قاعدةُ بياناته وإعداداته. ووُجد النمطُ الساعي لأن المؤقّت اليومي يقيس 2.15 إشارةً لكل أصلٍ في السنة (أي إنّ مراجعة المائة صفقة تبعد ما بين 31 و84 سنة)، بينما تُطلق القواعد نفسها على شموع الساعة 49.4 إشارة — أي نحو 940 إشارة دخولٍ سنويًّا بعد التجميع، فتصير مراجعةُ الأدلة الأمامية على بُعد أسابيع بدل عقود. وهو مقيسٌ بخسارةٍ صافيةٍ أيضًا: فقد وُجد لجمع أدلةٍ أماميةٍ مقبولة، لا للربح.", verify: { label: "كتاب تشغيل المشغّل", href: "https://github.com/CodeGateSoftware/keel/blob/main/docs/operator-runbook.md" }, }, { - title: "منفذ وسطاء، لا قيدٌ على وسيط", - body: "تُنفّذ المحوّلات عقدًا واحدًا — منفذ keel-broker-api — وتتسجّل تحت نقطة الدخول keel.brokers. محوّل Coinbase Advanced Trade هو المرجعي؛ وRobinhood يُسلَّم كمنصّة اختيارية غير موصولة عمدًا؛ وانضمّ محوّل Alpaca في v0.10.0. ومنصّة وهمية متعمدة الاختلاف تُبقي المنفذ أمينًا: حزمة المطابقة (~3,000 اختبار) تعمل عليهما معًا.", + title: "منفذُ وسطاءٍ، لا ارتهانٌ لوسيط", + body: "تُنفّذ المحوّلات عقدًا واحدًا — منفذ keel-broker-api — وتُسجَّل تحت نقطة الدخول keel.brokers. ومحوّل Coinbase Advanced Trade هو المحوّل المرجعي؛ ويُسلَّم Robinhood منصّةً اختياريةً غيرَ موصولةٍ عمدًا؛ وانضمّ محوّل Alpaca في الإصدار v0.10.0. وثمّة منصّةٌ وهميةٌ متعمَّدةُ الاختلاف تُبقي المنفذ أمينًا: إذ تعمل حزمةُ اختبارات المطابقة (نحو 3,000 اختبار) على الاثنتين معًا.", verify: { label: "packages/", href: "https://github.com/CodeGateSoftware/keel/tree/main/packages" }, }, { - title: "تأكيدٌ افتراضيًا؛ والاستقلالية تغيّر مَن يُسأل", - body: "يعاين كيل كل أمرٍ ويسأل عند الطرفية؛ وفي وضع بلا مشغّل يرفض. الأمر keel autonomy on يغيّر مَن يُسأل، لا ما يُسمح به أبدًا. ولإيقاف التداول: keel kill — ومفتاح الإيقاف يفشل مغلقًا.", + title: "التأكيدُ هو الأصل؛ والاستقلاليةُ تغيّر مَن يُسأل", + body: "يعاين كيل كلَّ أمرٍ ويسأل عند الطرفية؛ وإن كان يعمل بلا واجهةٍ تفاعلية رفض الأمر. والأمر keel autonomy on يغيّر مَن يُسأل، لا ما يُسمح به. ولإيقاف التداول: keel kill — ومفتاحُ الإيقاف يرفض عند الفشل.", verify: { label: "الـREADME، «كيف يعمل كيل»", href: "https://github.com/CodeGateSoftware/keel#how-keel-works" }, }, ], inert: { title: "يُسلَّم كيل خاملًا", body: [ - "لا شيء يتداول حتى تُرقّي قاعدة، وتوثّق اشتراك المنصّة، وتموّل الحساب، و— في نمط التأكيد — تكتب y. فوريٌّ طويلٌ فقط: لا رافعة، لا بيعًا على المكشوف، لا مشتقّات، والتحجيم بالنقد الفعلي، فلا ربا.", - "الالتزامات على مستوى الحساب التي لا تراها أي سكة (تعطيل مكافآت USDC على الأرصدة الخاملة أساسًا) على المشغّل التحقق منها — وكتاب تشغيل المشغّل يسردُها.", - "والملف الورقي هو حيث تبدأ كل قاعدة — مجاني، تنفيذٌ محاكى، لا شيء في خطر، وبلا حساب وسيط ممول أو بيانات تداول (مفتاح بيانات سوقٍ مجاني للقراءة فقط هو كل ما يطلبه). وهو ليس عرضًا تجريبيًّا: صفقات القاعدة نفسها بمعاملاتها نفسها في الورقي تُحتسب ضمن حدّ بوابة الترقية الأدنى، فدليل الورقي هو المرحلة الأولى من البوابة.", + "لا يجري أيُّ تداولٍ حتى تُرقّي قاعدةً، وتوثّق الاشتراك في المنصّة، وتموّل الحساب، و— في وضع التأكيد — تكتب y. والعملُ مقصورٌ على الشراء الفوري (long-only spot): لا رافعةَ مالية، ولا بيعَ على المكشوف، ولا مشتقّات، والتحجيمُ بالنقد الفعلي، فلا ربا.", + "أمّا الالتزامات على مستوى الحساب التي لا تراها أيُّ سكة — وأبرزُها تعطيلُ مكافآت USDC على الأرصدة الخاملة — فعلى المشغّل التحقّقُ منها، وكتابُ تشغيل المشغّل يسردها.", + "ونمطُ التداول التجريبي هو حيث تبدأ كلُّ قاعدة — مجّانيٌّ، بتنفيذٍ مُحاكًى، ولا شيء فيه في خطر، ولا يحتاج إلى حسابٍ مموَّلٍ لدى منصّة ولا إلى بيانات اعتمادٍ للتداول (فمفتاحُ بيانات سوقٍ مجّانيٌّ للقراءة فقط هو كلُّ ما يطلبه). وهو ليس عرضًا تجريبيًّا: فصفقاتُ الوسائط نفسها في التداول التجريبي تُحتسب ضمن الحدّ الأدنى لبوابة الترقية، ومن ثَمّ فدليلُ التداول التجريبي هو المرحلة الأولى من المسار.", ], }, }, diff --git a/src/i18n/pages/home.ts b/src/i18n/pages/home.ts index e81ae7b..42c8802 100644 --- a/src/i18n/pages/home.ts +++ b/src/i18n/pages/home.ts @@ -104,55 +104,55 @@ export const home: LocalizedPage = { translatedFromRev: "2026-08-20.3", title: "كيل: محرّك امتثال شرعي مفتوح المصدر للعملات المشفّرة", description: - "محرّك مفتوح المصدر يُنفّذ الامتثال الشرعي في التداول الفوري للعملات المشفّرة: فرزٌ موثَّق يرفض عند غياب الدليل، وسكك أمان لا تُتجاوز، وقياسٌ صادق. ليس محرّك فتاوى.", + "المحرّك مفتوح المصدر الذي يُنفِّذ الامتثال الشرعي في التداول الفوري للعملات المشفّرة: فرزٌ موثَّق يرفض عند الفشل، وسككُ أمانٍ لا يتجاوزها أيُّ أمر. وليس محرّك فتاوى.", hero: { eyebrow: "مفتوح المصدر · Apache-2.0 · من CodeGate Software", - heading: "امتثال شرعي يمكنك تدقيقُه، لا مجرّد ثقةٍ به", - sub: "كيل محرّك مفتوح المصدر لتداول العملات المشفّرة الفوري (Spot). قبل تنفيذ أي أمر تداول يمرّ عبر سكك أمان لا تستطيع الشيفرة تجاوزها، وفرزِ أصولٍ يرفض كلَّ ما ليس موثَّقًا. وكل ما يُنفّده مكتوبٌ — حكمًا حكمًا مع المصادر — لتفحصه بنفسك.", + heading: "امتثالٌ شرعيٌّ يمكنك تدقيقُه، لا مجرّدُ الوثوق به", + sub: "كيل محرّكٌ مفتوح المصدر لتداول العملات المشفّرة الفوري (spot). فقبل تنفيذ أيِّ أمرِ تداولٍ يمرّ الأمر عبر سككِ أمانٍ لا تستطيع أيُّ شيفرةٍ تجاوزَها، وعبر فرزِ أصولٍ يرفض كلَّ ما ليس موثَّقًا. وكلُّ ما يُنفِّذه مكتوبٌ — حكمًا حكمًا مع مصادره — لتفحصه بنفسك.", }, honest: { - title: "النتيجة الصادقة، نقولها نحن أولًا", + title: "النتيجة الصادقة، نقولها أولًا", body: [ - "لا توجد عائلة قواعد مُصدَّرة تحقق ربحًا صافيًا عند رسوم الآخذ المدفوعة فعليًا على Coinbase‏ (~1.2٪ للاتجاه الواحد) — صفرٌ من 90 تكوينًا في مصفوفة قياس، وصفرٌ من 82 في أخرى. تحقّقنا مرجعيًّا من مذكرة نمذجةٍ عشوائية — أعدنا اشتقاق رياضياتها على أرقام كيل الحقيقية — فحدّدت السبب بدقّة: رسوم الآخذ هي النتيجة كلها. داخل بدل الحجم الشهري الخالي من الرسوم في المنصّة تجلس القواعد المُعاد بناؤها عند التعادل تمامًا (معدل فوز 14.9٪ مقابل نقطة تعادل 14.88٪)؛ وبخطوةٍ خارجه تقفز نقطة التعادل إلى 29٪ فتصبح القواعد نفسها سالبةً بوضوح. سكة البدل ليست سقفَ ميزانية — إنما هي حدُّ الربحية.", - "جوهر هذا المشروع هو آليات الإنفاذ والقياس الصادق لما يمرّ عبرها — لا ادّعاء ربح. تُقارَن كل نتيجة بمقياس الشراء الدوري المنتظم (DCA)، والقواعد المرجعية لا تتغلب عليه بعد الرسوم. نفضّل أن تعرف ذلك من الصفحة الأولى على أن تكتشفه بنفسك. ونعمل بجدٍّ على تحسين نتائج الخوارزميات والاستراتيجيات — وسنوافيكم بتقدّمنا أولًا بأول.", + "لا تحقّق أيُّ عائلةٍ من القواعد المُصدَّرة ربحًا صافيًا عند رسوم الآخذ (taker) المدفوعة فعليًّا على منصّة Coinbase‏ (نحو 1.2٪ لكلِّ طرفٍ من الصفقة) — صفرٌ من 90 تهيئةً في إحدى مصفوفات القياس، وصفرٌ من 82 في أخرى. وقد تحقّقنا تحقّقًا مستقلًّا من مذكّرةِ نمذجةٍ عشوائية — إذ أعدنا اشتقاق رياضياتها على أرقام كيل الحقيقية — فجلَّت السبب: رسومُ الآخذ هي النتيجة كلُّها. فداخل الحصّة الشهرية المعفاة من الرسوم لدى المنصّة، تقف القواعد المُعاد بناؤها عند نقطة التعادل بلا فرقٍ يُذكر (نسبةُ ربحٍ 14.9٪ مقابل نقطة تعادلٍ عند 14.88٪)؛ وبخطوةٍ واحدةٍ خارجها تقفز نقطةُ التعادل إلى 29٪ فتصير القواعد نفسها سالبةً بوضوح. فسكةُ الحصّة ليست سقفًا للميزانية — بل هي حدُّ الربحية.", + "والغاية من هذا المشروع هي آلياتُ الإنفاذ والقياسُ الصادق لما يمرّ عبرها — لا ادّعاءُ الربح. فكلُّ نتيجةٍ تُقارَن بمؤشّرٍ مرجعيٍّ بسيط هو الشراء الدوري المنتظم (DCA)، والقواعد المرجعية لا تتفوّق عليه بعد خصم الرسوم. ونحن نفضّل أن تعرف ذلك من الصفحة الأولى على أن تكتشفه بنفسك. ونعمل جاهدين على تحسين نتائج الخوارزميات والاستراتيجيات — وسنوافيك بما نُحرزه أوّلًا بأوّل.", ], experimentLabel: "اقرأ سجلّ التجربة", announcementLabel: "اقرأ الإعلان", }, cards: [ { - title: "فرزٌ يفشل مغلقًا", - body: "الوقائع السوقية تُحسَب؛ أمّا التصنيفات الشرعية فيوثّقها إنسان — بمصدرٍ واسمٍ منسوب — ولا تُستنبَط من بيانات الأسعار أبدًا. الأصل بلا توثيقٍ يُرفَض، ولا يُقبَل افتراضيًا.", + title: "فرزٌ يرفض عند الفشل", + body: "وقائعُ السوق تُحسَب؛ أمّا التصنيفات الشرعية فيوثّقها إنسانٌ — بمصدرٍ واسمٍ منسوب — ولا تُستنبَط من بيانات الأسعار أبدًا. والأصلُ الذي لا توثيق له مرفوضٌ، لا مقبولٌ افتراضيًّا.", }, { - title: "ثمانية عشر سكة أمان لا يتخطّاها أمرٌ واحد", - body: "سقوف إنفاق، وقواطع سحب، وحدود تعرّض، ومنع مضاعفة الخسارة (المارتينغال)، وفحوص قِدَم البيانات، ومفتاح إيقاف يفشل مغلقًا — إضافةً إلى ما اشتُقّ من الفقه: توثيقُ اشتراك المنصّة، وفحصُ القبض الحُكمي (§65.4): الأصل الذي لا يمكن سحبُه قد لا يكون مملوكًا قبضًا صحيحًا.", + title: "ثماني عشرة سكةَ أمانٍ لا يتجاوزها أيُّ أمر", + body: "سقوفُ إنفاق، وقواطعُ تراجُعٍ (drawdown)، وحدودُ تعرُّض، ومنعُ مضاعفة الخسارة (المارتينغال)، وفحوصُ تقادُم موجزات البيانات، ومفتاحُ إيقافٍ يرفض عند الفشل — إضافةً إلى ما اشتُقّ من الفقه: توثيقُ الاشتراك في المنصّة، وفحصُ القبض الحُكمي (qabd) القائمُ على أنّ الأصل الذي لا يمكن سحبُه قد لا يكون قد قُبِض قبضًا صحيحًا.", }, { - title: "بواباتٌ لا تجامِل", - body: "القاعدة تسير مرشّحًا ← تجريبيًا (paper) ← حيًّا. والترقية تتجاوز أرضيات أداء وفحصَ فرطِ مواءمة (PBO/CSCV) — فالقاعدة التي تبدو عبقرية على مجموعة معاملاتٍ واحدة داخل العيّنة هي بالضبط ما وُجدت البوابة الثانية للاشتباه به.", + title: "بواباتٌ لا تُجامِل", + body: "تنتقل القاعدة من مرشَّحةٍ إلى تجريبيةٍ (paper) إلى حيّة. ولا تُرقَّى إلا إذا اجتازت حدودًا دنيا للأداء وفحصًا للإفراط في المُلاءمة (PBO/CSCV) — فالقاعدة التي تبدو عبقريةً على مجموعةِ وسائطَ واحدةٍ داخل العيّنة هي بالضبط ما وُجدت البوابةُ الثانية للارتياب فيه.", }, ], fatwa: { - quote: "كيل ليس محرّك فتاوى؛ إنه محرّك إنفاذٍ لحكمٍ شرعيٍّ أنت من يزوّده.", + quote: "كيل ليس محرّك فتاوى؛ بل محرّكُ إنفاذٍ لحكمٍ شرعيٍّ أنت من يزوّده به.", body: [ - "كيل لا يستنبط تصنيفًا شرعيًّا من بيانات السوق أبدًا. أنت تسجّل التصنيف — بمصدرٍ واسمٍ منسوبٍ إليه — وكيل ينفّذه حتميًّا. الحكم يسكن توثيقك لا الشيفرة، ولذلك يحصل مُشغّلان يتبعان مذهبين مختلفين على إجابتين مختلفتين من الشيفرة نفسها، بتصميمٍ مقصود.", - "لم تَجرِ أي مراجعة علمية شرعية للأساس الفقهي لكيل. الأساس قراءةٌ موثّقة المصادر لمُشغّل واحد، نُشر مستندًا تحديدًا ليُدقَّق ويُعترَض عليه — وكل مشغّل مسؤول عن توثيقاته الخاصة.", + "لا يستنبط كيل تصنيفًا شرعيًّا من بيانات السوق أبدًا. أنت تسجّل التصنيف — بمصدرٍ واسمٍ منسوبٍ إليه — وكيل ينفّذه تنفيذًا حتميًّا. فالحكم يسكن توثيقَك لا الشيفرةَ، ولذلك يحصل مُشغّلان يتبعان مذهبين مختلفين على إجابتين مختلفتين من الشيفرة نفسها، وهذا مقصودٌ بالتصميم.", + "ولم تَجرِ أيُّ مراجعةٍ علميةٍ شرعيةٍ للأساس الفقهي لكيل. فالأساس قراءةٌ موثّقةُ المصادر لمُشغّلٍ واحد، نُشرت مستندًا تحديدًا لتُدقَّق ويُعترَض عليها — وكلُّ مشغّلٍ مسؤولٌ عن توثيقاته الخاصة.", ], - more: "كيف يعمل الامتثال، بلغة مبسّطة", + more: "كيف يعمل الامتثال، بلغةٍ مبسّطة", }, review: { - title: "المراجعة العلمية: غير مُراجَع — سؤال مفتوح عن قصد", + title: "المراجعة العلمية: غير مُراجَع — سؤالٌ مفتوحٌ عن قصد", body: [ - "يصرّح الأساس الفقهي بما ستغطّيه مراجعةٌ علمية وماذا تعني ولا تعني. وما لم يمشِ أحدٌ هذا الطريق، فالحالة: غير مُراجَع.", + "يبيّن الأساس الفقهي صراحةً ما ستغطّيه المراجعة العلمية، وما تعنيه وما لا تعنيه. وما لم يسلك أحدٌ هذا الطريق، فالحالة هي: غير مُراجَع.", ], more: "اقرأ الأساس الفقهي", }, next: { - title: "إلى أين الآن؟", + title: "إلى أين بعد ذلك؟", items: [ - { title: "التثبيت", body: "جرّبه في خمس دقائق، للقراءة فقط ومن جهة التداول الافتراضي. لا تتحرك أموال." }, - { title: "الامتثال بلغة مبسّطة", body: "ما يُنفّذه كيل، وما يرفض أن يقرّره، وحيث تبدأ مسؤوليتك." }, + { title: "التثبيت", body: "جرّبه في خمس دقائق، بصلاحية القراءة فقط وعلى جانب التداول التجريبي. ولا تتحرّك أيُّ أموال." }, + { title: "الامتثال بلغةٍ مبسّطة", body: "ما يُنفّذه كيل، وما يرفض أن يقرّره، وأين تبدأ مسؤوليتك." }, { title: "المجتمع", body: "الأسئلة والأفكار ونقاش التصنيف تجري في نقاشات GitHub." }, ], }, diff --git a/src/i18n/pages/install.ts b/src/i18n/pages/install.ts index 0bca7be..eaa4990 100644 --- a/src/i18n/pages/install.ts +++ b/src/i18n/pages/install.ts @@ -166,49 +166,49 @@ export const install: LocalizedPage = { translatedFromRev: "2026-08-20.5", title: "تنزيل كيل — macOS وWindows", description: - "نزّل كيل لـ macOS أو Windows. الإصدار والروابط من GitHub Releases وقت البناء؛ ومسار المصدر في خمس دقائق هنا أيضًا.", + "نزّل كيل لنظام macOS أو Windows. ويأتي رقمُ الإصدار وروابطه من GitHub Releases وقت البناء؛ ومسارُ التثبيت من المصدر في خمس دقائق هنا أيضًا.", downloadTitle: "تنزيل كيل", versionPrefix: "أحدث إصدار", - requirements: "يتطلب Python 3.11 أو أحدث · التنزيل من GitHub Releases — ولا يُنسخ أبدًا هنا", - otherPlatforms: "لينكس وغيره: العجلات نفسها من صفحة الإصدار.", + requirements: "يتطلّب Python 3.11 أو أحدث · التنزيل من GitHub Releases — ولا يُنسخ هنا أبدًا", + otherPlatforms: "لينكس وغيره: حزم wheel نفسها متاحةٌ في صفحة الإصدار.", cards: [ { name: "macOS", button: "التنزيل لـ macOS", shell: "Terminal", - codeComment: "# بعد تنزيل العجلات إلى هذا المجلد", + codeComment: "# بعد تنزيل حزم wheel إلى هذا المجلد", }, { name: "Windows", button: "التنزيل لـ Windows", shell: "PowerShell", - codeComment: "# بعد تنزيل العجلات إلى هذا المجلد", + codeComment: "# بعد تنزيل حزم wheel إلى هذا المجلد", }, ], - thenTitle: "ثم ثبّت العجلات", + thenTitle: "ثم ثبّت حزم wheel", allFilesTitle: "كل ملفات الإصدار", - paperFirstTitle: "ابدأ ورقيًّا — مجاني، ولا شيء في خطر", - paperFirstBody: "للخطوة الحذرة الأولى: الملف الورقي مجاني وتعليمي — تنفيذٌ محاكى ولا أوامر حقيقية — بُني لتعلّم سير العمل قبل أي قرار حيّ. لا يحتاج حساب وسيط ممولًا ولا بيانات تداول؛ المفتاح الوحيد الذي يطلبه هو مفتاح بيانات سوق مجاني للقراءة فقط لجلب تاريخ الشموع. أما الملف الحيّ فيُبلَغ عمدًا بصعوبة: الشهادات وبوابة الترقية والتأكيدات المكتوبة تقف في الطريق.", + paperFirstTitle: "ابدأ بالتداول التجريبي — مجّانًا، ولا شيء في خطر", + paperFirstBody: "للخطوة الأولى الحذرة: نمطُ التداول التجريبي مجّانيٌّ وتعليمي — تنفيذٌ مُحاكًى ولا أوامرَ حقيقية — بُني لتتعلّم سير العمل قبل أيّ قرارٍ في التشغيل الحيّ. وهو لا يحتاج إلى حسابٍ مموَّلٍ لدى منصّة ولا إلى بيانات اعتمادٍ للتداول؛ والمفتاح الوحيد الذي يطلبه مفتاحُ بيانات سوقٍ مجّانيٌّ للقراءة فقط لجلب تاريخ الشموع. أمّا النمط الحيّ فالوصول إليه أصعبُ عن قصد: إذ تقف في الطريق التوثيقاتُ، ومسارُ بوابة الترقية، والتأكيداتُ البشرية المكتوبة.", getStarted: { - title: "جديد هنا؟ ابدأ بدليل البداية", - body: "شرحٌ خطوةً بخطوة — أول محاكاة، والنمط الافتراضي، ووحدة تحكّم المشغّل — بلقطات شاشة لكل شاشة.", + title: "أأنت جديدٌ هنا؟ ابدأ بدليل البداية", + body: "شرحٌ خطوةً بخطوة — أوّلُ محاكاة، ونمطُ التداول التجريبي، ولوحةُ تحكّم المشغّل — مع لقطة شاشةٍ لكل شاشة.", link: "افتح دليل البداية", }, fromSource: { title: "من المصدر — جرّبه في خمس دقائق", - lead: "كلُّ ما في هذا المسار للقراءة فقط ومن جهة التداول الافتراضي: لا أموال، ولا شيء هنا يستطيع تقديم أمر تداول. تحتاج uv ومفتاح API لمنصّة Coinbase Developer Platform‏ (CDP) مجانيًّا للقراءة فقط — تُجلب بيانات الشموع عبر العميل المُصادَق، لذا يفشل keel fetch من دون مفتاحٍ بخطأ AuthenticationError؛ نقولها مقدمًا كي لا تكون مفاجأةً في الخطوة الرابعة.", - requirements: ["‏uv (مدير حزم Python)", "أي Python من 3.11 فما فوق (المستودع يُطوَّر على 3.14)", "مفتاح CDP مجاني للقراءة فقط — لبيانات السوق حصرًا"], - expectTitle: "ما يجب أن تتوقّع", - expect: "يعيد keel simulate تشغيل القواعد الحقيقية حتميًّا فوق التاريخ المجلوب، ويقارنها بمقياس DCA، ويكتب تقرير GO-LIVE أو TRAIN-MORE. وعلى القواعد الافتراضية سيخبرك على الأرجح TRAIN MORE ويسمّي البوابات الفاشلة — فهذا المحرّك يعمل، لا أنه معطّل؛ الصدق هو الخصيصة.", - next: "الخطوات التالية — ترقية قاعدةٍ عبر البوابة، وتشغيل الوكيل الافتراضي، وأول أمرٍ حيٍّ خاضعٍ لإشراف بشري — في كتاب الانتقال إلى الحيّ (go-live runbook).", + lead: "كلُّ ما في هذا المسار بصلاحية القراءة فقط وعلى جانب التداول التجريبي: لا أموال، ولا شيء هنا يستطيع تقديم أمر تداول. وتحتاج إلى uv وإلى مفتاح API مجّانيٍّ للقراءة فقط من منصّة Coinbase Developer Platform‏ (CDP) — إذ تُجلب بيانات الشموع عبر العميل المُصادَق عليه، ولذلك يفشل الأمر keel fetch من دون مفتاحٍ بخطأ AuthenticationError؛ نقولها مقدَّمًا كي لا تكون مفاجأةً في الخطوة الرابعة.", + requirements: ["‏uv (مدير حزم Python)", "أيُّ إصدارٍ من Python 3.11 فما فوق (يُطوَّر المستودع على 3.14)", "مفتاح CDP مجّاني للقراءة فقط — لبيانات السوق حصرًا"], + expectTitle: "ما ينبغي أن تتوقّعه", + expect: "يعيد الأمر keel simulate تشغيلَ القواعد الحقيقية تشغيلًا حتميًّا على التاريخ المجلوب، ويقارنها بمؤشّر الشراء الدوري المنتظم (DCA) المرجعي، ويكتب تقرير GO-LIVE أو TRAIN-MORE. وعلى القواعد الافتراضية سيقول لك على الأرجح TRAIN MORE ويسمّي البوابات التي أخفقت — وهذا دليلُ عمل المحرّك لا دليلُ عطبه؛ فالصدق نفسه هو الميزة.", + next: "أمّا الخطوات التالية — ترقيةُ قاعدةٍ عبر البوابة، وتشغيلُ الوكيل في التداول التجريبي، وأوّلُ أمرٍ حيٍّ خاضعٍ لإشرافٍ بشري — فتجدها في كتاب الانتقال إلى التشغيل الحيّ (go-live runbook).", }, fromReleaseWarning: - "لا تثبّت بالاسم المجرد أبدًا. التوزيعة اسمها keel-trader؛ أما اسم keel على PyPI فلمشروعٍ آخر لا علاقة له بنا، فأمر pip install keel يجلب حزمة غيرنا. والبنية التي تُظهر DIRTY أو [checkout] ليست إصدارًا ويُمنع تشغيلها على أموالٍ حيّة.", + "لا تثبّت بالاسم المجرَّد أبدًا. فالتوزيعة اسمها keel-trader؛ أمّا اسم keel على PyPI فلمشروعٍ آخر لا علاقة له بنا، ولذلك يجلب الأمر pip install keel حزمةً ليست لنا. والنسخة المبنيّة التي تُظهر DIRTY أو [checkout] ليست إصدارًا، ويُمنع تشغيلها على أموالٍ حيّة.", unsigned: { title: "سيحذّرك جهازك من هذا التنزيل", - lead: "بِنى macOS وWindows غير موقّعة رقميًّا، لذا سيرفض نظامك فتحها أول مرّة ويقول إنه لا يستطيع التحقّق من المطوّر. لا شيء معطّل، ولم يُكتشف شيء — جهازك ببساطة لا يعرف من كتب البرنامج.", + lead: "النسخُ المبنيّة لنظامَي macOS وWindows غير موقَّعةٍ رقميًّا، ولذلك سيرفض نظامُك فتحها أوّل مرّة ويقول إنه لا يستطيع التحقّق من المطوّر. فلا شيء معطّل، ولم يُكتشف شيء — جهازك ببساطة لا يعرف مَن كتب البرنامج.", reason: - "التوقيع الرقمي شهادةٌ مدفوعة، وكيل لا يقدر على أيٍّ منهما حاليًّا: شهادة Apple بـ99 دولارًا سنويًّا، وAzure Trusted Signing لويندوز بنحو 120 دولارًا سنويًّا — أغلى من Apple، ومنذ 2024 لا تمنح حتى تجاوزًا فوريًّا لـSmartScreen، لأن السمعة تُكتسب من حجم التنزيلات عبر الوقت. ولا توجد فئة أرخص ولا خيارٌ مجانيٌّ لمشاريع المصدر المفتوح على أيٍّ من النظامين، وشهادةٌ نصنعها بأنفسنا لا تفيد شيئًا البتّة، لأن macOS لا يثق إلا بالشهادات الصادرة عن Apple.", + "التوقيعُ الرقمي يقتضي شهادةً مدفوعة على كلا النظامين، ولا يقدر كيل على أيٍّ منهما حاليًّا: فشهادة Apple بتسعةٍ وتسعين دولارًا سنويًّا، وAzure Trusted Signing لويندوز بنحو مائةٍ وعشرين دولارًا سنويًّا — أي أغلى من Apple، ومنذ عام 2024 لم تعد تمنح حتى تجاوزًا فوريًّا لـSmartScreen، لأنّ السمعة تُكتسب من حجم التنزيلات مع الوقت. ولا فئةَ أرخص، ولا خيارَ مجّانيًّا لمشاريع المصدر المفتوح على أيٍّ من النظامين؛ وشهادةٌ نصنعها بأنفسنا لا تفيد شيئًا البتّة، لأنّ macOS لا يثق إلا بالشهادات الصادرة عن Apple.", macosTitle: "macOS", macosSteps: [ "افتح ملفّ ‎.dmg المنزَّل، ثم اسحب ‏keel.app إلى مجلّد ‏Applications.", @@ -217,7 +217,7 @@ export const install: LocalizedPage = { "افتح ‏System Settings ← Privacy & Security.", "انزل إلى قسم ‏Security. ستجد سطرًا يقول إن كيل حُجب، وبجانبه زرّ ‏Open Anyway. اضغطه.", "أثبِت هويّتك، ثم اضغط ‏Open Anyway مرّةً أخرى في النافذة التي تظهر.", - "تفعل هذا مرّةً واحدة فقط. وفي macOS Sequoia‏ (15) فما بعد، لم يعد النقر بالزرّ الأيمن واختيار ‏Open يعمل كاختصار — أزالت Apple هذا المسار عمدًا.", + "لن تحتاج إلى فعل هذا إلا مرّةً واحدة. وفي macOS Sequoia‏ (15) فما بعد، لم يعد النقر بالزرّ الأيمن واختيار ‏Open يعمل اختصارًا — فقد أزالت Apple هذا المسار عمدًا.", ], windowsTitle: "Windows", windowsSteps: [ @@ -229,18 +229,18 @@ export const install: LocalizedPage = { ], verifyTitle: "من فضلك تحقّق ممّا نزّلته أولًا", verifyLead: - "لا نحبّ أن نطلب منك مجرّد تجاوز تحذيرٍ أمني — فكيل برنامجٌ قد تعطيه مفاتيح API لمنصّة تداول. كلّ إصدارٍ يحمل إثباتًا لمصدر ملفّاته، وهو يجيب عن السؤال نفسه الذي تجيب عنه الشهادة: هل بُني هذا من مصدر كيل نفسه، عبر خطّ إصدار كيل نفسه؟ ويُرفق بكلّ إصدارٍ ملفّ SHA256SUMS.txt أيضًا.", + "لا يطيب لنا أن نطلب منك مجرّد تجاوز تحذيرٍ أمني — فكيل برنامجٌ قد تعطيه مفاتيح API لمنصّة تداول. وكلُّ إصدارٍ يحمل إثباتًا لمصدر ملفّاته، وهو يجيب عن السؤال نفسه الذي تجيب عنه الشهادة: هل بُني هذا من مصدر كيل نفسه، وعبر خطّ إصدار كيل نفسه؟ ويُرفق بكلّ إصدارٍ ملفُّ SHA256SUMS.txt أيضًا.", verifyFail: - "إن فشل أيٌّ من الفحصين فلا تفتح الملفّ. الفشل يعني أنه ليس الملفّ الذي بنيناه، ولن يجعله الضغط على ‏Open Anyway آمنًا.", + "إن أخفق أيٌّ من الفحصين فلا تفتح الملفّ. فإخفاقه يعني أنه ليس الملفّ الذي بنيناه، ولن يجعله الضغطُ على ‏Open Anyway آمنًا.", notMeaningTitle: "ما لا يعنيه هذا التحذير", notMeaning: [ "لا يعني أن التنزيل تالف.", - "لا يعني أن جهازك وجد خطبًا ما. لم يُفحص شيء ولم يُكتشف شيء.", - "لا يعني أن التطبيق يسلك سلوكًا مختلفًا. البنية الموقّعة وغير الموقّعة من الإصدار نفسه هما البرنامج نفسه.", + "ولا يعني أن جهازك وجد خطبًا ما؛ فلم يُفحص شيء ولم يُكتشف شيء.", + "ولا يعني أن التطبيق يسلك سلوكًا مختلفًا. فالنسخة الموقَّعة وغير الموقَّعة من الإصدار نفسه هما البرنامج نفسه.", ], avoidTitle: "أولًا — قد لا تحتاج إلى التعامل مع هذا أصلًا", avoidBody: - "مسار الخمس دقائق أدناه يثبّت المحرّك نفسه بلا مثبّت وبلا تحذيرٍ على أيّ نظام، لأنه لا يُنزَّل شيءٌ بوصفه تطبيقًا — بل يجلب pip وuv العجلات المنشورة مباشرةً، ولا يعترض أيّ نظام تشغيل على ذلك. يحتاج طرفيّةً وPython 3.11 فأحدث، وهو بالضبط الاحتكاك الذي وُجد تطبيق سطح المكتب ليزيله؛ لكن إن كان كلاهما عندك أصلًا فهو الطريق الأقصر، وبقيّة هذه الملاحظة لا تعنيك.", + "مسارُ الخمس دقائق أدناه يثبّت المحرّك نفسه بلا مثبِّت وبلا تحذيرٍ على أيّ نظام، لأنه لا يُنزَّل شيءٌ بوصفه تطبيقًا — بل يجلب pip وuv حزم wheel المنشورة مباشرةً، ولا يعترض أيُّ نظام تشغيل على ذلك. وهو يحتاج إلى طرفيّةٍ وإلى Python 3.11 فأحدث، وهذا بالضبط هو الاحتكاك الذي وُجد تطبيقُ سطح المكتب ليزيله؛ لكن إن كانا عندك أصلًا فهو الطريق الأقصر، وبقيّةُ هذه الملاحظة لا تعنيك.", avoidLink: "جرّبه في خمس دقائق", more: "الشرح الكامل، وكيف تتحقّق ممّا نزّلته", }, diff --git a/src/i18n/pages/news.ts b/src/i18n/pages/news.ts index bbdf4de..66accda 100644 --- a/src/i18n/pages/news.ts +++ b/src/i18n/pages/news.ts @@ -33,15 +33,15 @@ export const news: LocalizedPage = { ar: { rev: "2026-08-19.2", translatedFromRev: "2026-08-19.2", - title: "أخبار كيل — إعلانات ومذكرات بحث", + title: "أخبار كيل — إعلانات ومذكّرات بحث", description: - "إعلانات كيل تُقرأ من نقاشات GitHub وتتجدد كل ساعة. القراءة والردّ على GitHub؛ والنصوص تبقى بلغتها الأصلية.", + "إعلانات كيل تُقرأ من نقاشات GitHub وتتجدّد كل ساعة. والقراءة والردّ يجريان على GitHub؛ وتبقى النصوص بلغتها الأصلية.", intro: [ - "يُعلن المشروع عن نفسه في نقاشات GitHub — الإصدارات، وكتابات الامتثال، ومذكرات البحث، والنتائج الصادقة. تقرأ هذه الصفحة فئة الإعلانات وتربط كل بندٍ ب GitHub، حيث تجري القراءة والردّ فعلًا.", - "تتجدد الخلاصة مع إعادة البناء الساعية. وتظهر البنود بلغتها الأصلية؛ وهذا الموقع لا يترجمها.", + "يُعلن المشروع عن نفسه في نقاشات GitHub — الإصدارات، وكتابات الامتثال، ومذكّرات البحث، والنتائج الصادقة. وتقرأ هذه الصفحة فئة الإعلانات وتربط كلَّ بندٍ بـ GitHub، حيث تجري القراءة والردّ فعلًا.", + "وتتجدّد الخلاصة مع إعادة البناء الساعية. وتظهر البنود بلغتها الأصلية؛ وهذا الموقع لا يترجمها.", ], secondaryTitle: "‏Show and tell", - secondaryBody: "ما يبنيه المجتمع بكيل له فئةٌ خاصة — ومخطَّطٌ لها خلاصةٌ ثانوية هنا لاحقًا. حتى ذلك الحين تعيش على GitHub.", + secondaryBody: "ما يبنيه المجتمع بكيل له فئةٌ خاصة — ومن المخطَّط أن تكون خلاصةً ثانوية هنا لاحقًا. وحتى ذلك الحين، تبقى على GitHub.", }, fr: { diff --git a/src/i18n/ui.ts b/src/i18n/ui.ts index de3f496..ee9bd94 100644 --- a/src/i18n/ui.ts +++ b/src/i18n/ui.ts @@ -93,7 +93,7 @@ export const ui = { }, ar: { - skip: "تخطَّ إلى المحتوى", + skip: "انتقل إلى المحتوى", nav: { home: "الرئيسية", features: "الخصائص", @@ -103,65 +103,76 @@ export const ui = { community: "المجتمع", compliance: "الامتثال", compare: "مقارنة", - about: "حول", + about: "حول المشروع", }, actions: { - install: "ثبّته", + install: "ثبّت كيل", readDocs: "اقرأ الوثائق", - viewOnGitHub: "المشروع على GitHub", - readOnGitHub: "اقرأ على GitHub", - viewSource: "المصدر على GitHub", - seeReleases: "الإصدارات على GitHub", - discussOnGitHub: "ناقش على GitHub", + viewOnGitHub: "اعرضه على GitHub", + readOnGitHub: "اقرأه على GitHub", + viewSource: "اعرض الشيفرة المصدرية على GitHub", + seeReleases: "اطّلع على الإصدارات في GitHub", + discussOnGitHub: "ناقِش على GitHub", }, tracks: { - plainLabel: "بالعربية المبسّطة", + plainLabel: "بلغةٍ مبسّطة", operatorsLabel: "للمشغّلين", operatorsHint: - "أنت تقني؟ هذا المشروع نفسه من مقعد المشغّل: كتب التشغيل، ومراجع سطر الأوامر، وشيفرة المحرّك.", + "إن كنت تقنيًّا فهذا هو المشروع نفسه من مقعد المشغّل: كتب التشغيل، ومراجع سطر الأوامر، وشيفرة المحرّك.", }, banner: { staleTitle: "قد تكون هذه الترجمة متأخّرة عن الأصل الإنجليزي", staleBody: - "تغيّرت الصفحة الإنجليزية منذ مراجعة هذه الترجمة. للصياغة الحالية اقرأ الأصل الإنجليزي.", + "تغيّرت الصفحة الإنجليزية بعد مراجعة هذه الترجمة. اقرأ الأصل الإنجليزي للاطّلاع على الصياغة الحالية.", staleLink: "اقرأ الصفحة الإنجليزية", }, marker: { - translatedAgainst: (rev: string) => `آخر ترجمة عن المراجعة الإنجليزية ${rev}.`, - untranslatedOriginal: "مستند أصلي — يُعرض بالإنجليزية", + translatedAgainst: (rev: string) => `تُرجمت هذه الصفحة عن المراجعة الإنجليزية ${rev}.`, + untranslatedOriginal: "مستندٌ أصلي — يُعرض بالإنجليزية", }, docs: { fetchedFrom: (repo: string, ref: string) => - `يُجلَب وقت البناء من ${repo}@${ref}. إن انتقل مستند فشل البناء — هذا الموقع لا يعرض وثائق بالية أبدًا.`, + `جُلب وقت البناء من ${repo}@${ref}. وإن نُقل مستندٌ من موضعه فشل البناء — فهذا الموقع لا يعرض وثائق متقادمة أبدًا.`, backToDocs: "كل المستندات", - fetchedAt: (date: string) => `آخر جلب ${date}.`, + fetchedAt: (date: string) => `آخر جلبٍ في ${date}.`, originalLanguageNote: - "تُنشر وثائق المحرّك بالإنجليزية. يلخّصها الموقع العربي، وتبقى النصوص الأصلية هي المرجع.", + "تُنشر وثائق المحرّك بالإنجليزية. وتُلخّصها النسخة العربية، وتبقى النصوص الأصلية هي المرجع المعتمد.", notTranslated: "هذا المستند غير مترجم؛ يُعرض بالإنجليزية بصيغته الأصلية.", }, news: { - from: "إعلانات من نقاشات GitHub", - fetchedAt: (date: string) => `آخر تحديث للخلاصة ${date} (إعادة بناء كل ساعة).`, - empty: "لا إعلانات مجلوبة بعد. اقرأها مباشرةً على GitHub — تمتلئ الخلاصة في إعادة البناء القادمة.", - interactOnGitHub: "تُعرض النصوص بلغتها الأصلية؛ والقراءة والردّ تحدث على GitHub لا هنا.", - comments: (n: number) => (n === 1 ? "تعليق واحد" : `${n} تعليقًا`), - secondary: "Show and tell — ما يبنيه المجتمع بكيل", + from: "إعلاناتٌ من نقاشات GitHub", + fetchedAt: (date: string) => `آخر تحديثٍ للخلاصة في ${date} (إعادة بناءٍ كل ساعة).`, + empty: + "لم تُجلب أي إعلانات بعد. اقرأها مباشرةً على GitHub — وستمتلئ الخلاصة عند إعادة البناء القادمة.", + interactOnGitHub: "تُعرض النصوص بلغتها الأصلية؛ أمّا القراءة والردّ فيحدثان على GitHub لا هنا.", + comments: (n: number) => + n === 0 + ? "لا تعليقات" + : n === 1 + ? "تعليقٌ واحد" + : n === 2 + ? "تعليقان" + : n % 100 >= 3 && n % 100 <= 10 + ? `${n} تعليقات` + : `${n} تعليقًا`, + secondary: "‏Show and tell — ما يبنيه المجتمع بكيل", }, install: { latest: (tag: string) => `أحدث إصدار: ${tag}`, - unknown: "تعذّر معرفة أحدث إصدار الآن — افتح صفحة الإصدارات على GitHub", - neverMirrored: "تنزل التحميلات مباشرةً من أصول GitHub. هذا الموقع لا ينسخ الملفات التنفيذية أبدًا.", - copiedAtBuild: (date: string) => `بيانات الإصدار مجلوبة من GitHub وقت البناء، ${date}.`, + unknown: "تعذّرت معرفة أحدث إصدارٍ الآن — افتح صفحة الإصدارات على GitHub", + neverMirrored: + "تشير روابط التنزيل مباشرةً إلى ملفات GitHub. وهذا الموقع لا ينسخ الملفات التنفيذية أبدًا.", + copiedAtBuild: (date: string) => `جُلبت بيانات الإصدار من GitHub وقت البناء، في ${date}.`, }, footer: { - disclaimerTitle: "تنبيهات دائمة", + disclaimerTitle: "تنبيهاتٌ دائمة", disclaimer: - "كيل أداة شخصية — ليست نصيحة مالية، وليست فتوى ولا نصيحة شرعية. استشر مستشارًا ماليًا مؤهّلًا وعالمًا شرعيًا قبل التداول. أنت وحدك المسؤول عن قراراتك في التداول وعن توثيقاتك الخاصّة.", + "كيل أداةٌ شخصية — وليس نصيحةً مالية، ولا فتوى، ولا نصيحةً شرعية. استشر مستشارًا ماليًّا مؤهّلًا وعالمًا شرعيًّا قبل التداول. وأنت وحدك المسؤول عن قراراتك في التداول وعن توثيقاتك الخاصة.", trademark: - "Alpaca وCoinbase وRobinhood علامات تجارية لأصحابها. لا انتماء لكيل مع أيٍّ منها، ولا تصريح منها، ولا رعاية. لا تظهر أسماء المنصّات إلا لتحديد ما تتحدث إليه الشيفرة.", - keelsh: "غير منتسبٍ إلى مشروع Kubernetes المسمّى أيضًا Keel‏ (keel.sh).", + "‏Alpaca وCoinbase وRobinhood علاماتٌ تجارية لأصحابها. ولا صلة لكيل بأيٍّ منها، ولا تأييد منها له، ولا رعاية. ولا تظهر أسماء المنصّات إلا لتحديد ما تتعامل معه الشيفرة.", + keelsh: "لا صلة لنا بمشروع Kubernetes المسمّى أيضًا Keel‏ (keel.sh).", license: - "المحرّك: Apache-2.0‏ (CodeGateSoftware/keel). شيفرة هذا الموقع: MIT. محتوى الموقع: © CodeGate Software — الاقتباس مع الإسناد مرحّب به.", + "المحرّك: Apache-2.0‏ (CodeGateSoftware/keel). شيفرة هذا الموقع: MIT. محتوى الموقع: © CodeGate Software — والاقتباس مع الإسناد مرحّبٌ به.", honesty: "النتيجة الصادقة، نقولها أولًا", }, localeSwitcher: { @@ -169,7 +180,7 @@ export const ui = { }, notFound: { title: "الصفحة غير موجودة", - body: "هذه الصفحة غير موجودة. للموقع طبعتان:", + body: "هذه الصفحة غير موجودة. ويتوفّر الموقع بالطبعات التالية:", }, },