إضافة: تضمين الأقسام الموسومة

This page is a translated version of the page Extension:Labeled Section Transclusion and the translation is 100% complete.
الدليل المرجعي لامتدادات ميدياويكي
Labeled Section Transclusion
حالة الإصدار مستقر
تنفيذ وسم , دوال المحلل اللغوي
بيان لتمكين تضمين أقسام محددة من النص
المؤلف/المؤلفون Steve Sanbeg
سياسة التوافق تصدر اللقطات البرمجية مع ميدياويكي. الإصدار الرئيسي لا يتوافق مع الإصدارات السابقة.
MediaWiki 1.19+
تغييرات قاعدة البيانات لا
ترخيص رخصة جنو العمومية 2.0 أو ما بعدها
التنزيل
استخدام مواقع الويكي العمومية 6,919 (Ranked 26th)
ترجم الامتداد Labeled Section Transclusion لو كان متوفرا على translatewiki.net
المسائل المهام المفتوحة · الإبلاغ عن عطل تقني

التوسيع Labeled Section Transclusion يسمح بالتضمين transclusion للأقسام المحددة من النص، مع تحليل نص الويكي بشكل طبيعي. وظيفته مشابهة لنسخة محسنة من علامة ‎<onlyinclude> مع التضمين العادي للويكي، والتي تختار الأقسام لتضمينها. يتم تمكينه في جميع مواقع ويكيميديا.

بينما يتم استخدام النقل العادي أساسًا لنقل أجزاء كبيرة من القوالب الصغيرة، يُستخدم تضمين الأقسام الموسومة لنقل أجزاء صغيرة من صفحات كبيرة.

ومع ذلك، هناك بعض الاختلافات. في النقل الأصلي للقوالب، يتم وضع علامات على الأقسام بناءً على السلوك، مما يسمح بتضمين أو استبعاد قسم واحد (ربما غير متتالٍ) في كل مرة.

هنا، يتم وضع علامات على الأقسام بواسطة الاسم، ويتم اختيار السلوك بواسطة المُستدعي، الذي يمكنه تضمين أو استبعاد الأقسام حسب الحاجة. يمكن للصفحات المختلفة أن تضمن أو تستبعد أقسامًا مختارة، ويمكن أن تكون هناك أعداد تراكمية من الأقسام، والتي يمكن أن تتداخل بشكل تراكمي أيضًا.

بتسمية الأقسام بدلاً من السلوك، يمكن أن تُظهر روابط تحرير الأقسام بشكل أكثر ملائمية للحصول على مقتطفات من نصوص أكبر، حيث يمكن للإضافة الآن أن تأخذ في الاعتبار الأقسام التي تم تخطيها في بداية الصفحة، مما يسمح بتحديد مواضع الأقسام المنقولة بشكل مناسب.

== تثبيت ==
  • نزّل الملف/الملفات وضعها في دليل يحمل اسم ‎LabeledSectionTransclusion داخل مجلد ‎extensions/‎ لديك.
    يجب على مطوري البرمجيات والمساهمين بالكود البرمجي تثبيت الامتداد من غت بدلا من ذلك، مستخدمين:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/LabeledSectionTransclusion
  • أضف الكود التالي في الجزء الأسفل من ملف LocalSettings.php :
    wfLoadExtension( 'LabeledSectionTransclusion' );
    
  • Yes تم التنفيذ – اذهب إلى Special:Version على موقع الويكي لديك كي تتحقق من أن الامتداد قد ثبت بنجاح.

هناك أيضًا جهاز في استخدام على ويكي Wikisource.org يمكن من خلاله تعريف الأقسام باستخدام بناء بسيط للترميز ## label ##. يمكن العثور على الشيفرة الخاصة به في Wikisource:MediaWiki:Gadget-Easy_LST.js.

الوظائف

نقل أي جزء مميز

الخطوة 1: وضع علامات على الأقسام

وضع علامات على الأقسام في النص باستخدام علامات ‎<section> مثل هذا:

<section begin="chapter1" />this is chapter 1<section end="chapter1" />

يرجى ملاحظة أن هذه العلامات ليست HTML/XML ولا تستخدم بناء السمات العادي. لهذا السبب، ونظرًا لأن علامات begin و end هي فردية، بدلاً من أن تكون علامات فتح وإغلاق XML العادية، فإن هذا يسمح بالأقسام المتداخلة أو التي تتداخل. وهذا يسمح لك بإدراج علامات الأقسام دون القلق من التداخل مع أقسام أخرى.


الخطوة 2أ: نقل القسم

استدعاء دالة المحلل #lst لنقلها، أي لنقل قسم يُسمى chapter1 من صفحة تُسمى articleX:

{{#lst:articleX|chapter1}}

المقال المستهدف يحدد موقع القسم؛ حيث يتم تحديد سلوكه بواسطة دالة المحلل.

الخطوة 2ب: نقل الصفحة مع استثناء القسم

لنقل صفحة ولكن باستثناء قسم محدد، استخدم دالة #lstx:

{{#lstx:articleX|chapter1}}

اختياريًا، يمكنك إضافة نص بديل للقسم المستبعد.

{{#lstx:articleX|chapter1|replacement_text}}

مثال:

{{#lstx:articleX|chapter1|See chapter 1 in [[articleX]].}}

سيظهر النص البديل في المنطقة التي يتم فيها تخطي القسم (المستبعد).

أقسام غير المتصلة

من الممكن أن يكون هناك عدة أقسام بنفس الاسم؛ في هذه الحالة، سيتم تضمين/استبعاد كل قسم بهذا الاسم. هذا مفيد بشكل خاص لوضع علامات على مناقشات مختلفة.

نطاقات الأقسام

هذه الدوال لها وسيط اختياري إضافي لتحديد نطاق الأقسام؛ مثل {{#lst:articleX|chapter1|chapter3}}، لتضمين كل شيء من بداية الفصل 1 إلى نهاية الفصل 3. يسمح هذا باستخدام أزواج علامات فارغة لوضع علامة على أحد أطراف القسم، ربما في قالب. آلية مماثلة تُستخدم حاليًا في ويكي مصدر الفرنسية.

الاستبدال

هذا يعمل أيضًا مع الاستبدال؛ من الممكن حتى أن يقوم المقال باستبدال قسم من نفسه. إحدى الاستخدامات لهذا توفر طريقة منظمة لأرشفة صفحات النقاش: قم بوضع علامة على النص المراد أرشفته باستخدام <section begin=archive />، وما إلى ذلك. ثم قم بإنشاء صفحة أرشيف باستخدام {{subst:#lst:talk_page|archive}} لنسخ الأقسام المؤرشفة. وأخيرًا، قم باستبدال محتويات talk_page بـ {{subst:#lstx:talk_page|archive}} لإزالة تلك الأقسام.

هناك دعم اختياري لنقل أقسام النص المميزة بالعناوين العادية، مثل ==this section==. إذا تم تثبيته، يتم ذلك باستخدام دالة lsth.

نقل قبل العنوان الأول

لنقل المقدمة من الصفحة (أي المحتوى قبل العنوان الأول)، استخدم

{{#lsth:pagename}}

تضمين قسم محدد

يمكنك أيضًا تضمين محتوى sectionX بالكامل (والذي يشمل جميع الأقسام الفرعية الخاصة به ولكنه يستثني عنوان sectionX نفسه).

{{#lsth:pagename|sectionX}}

أشياء يجب ملاحظتها :

  1. يتم تضمين الظهور الأول فقط لقسم sectionX إذا كان لديك أكثر من قسم بنفس الاسم.
  2. تأكد من كتابة عنوان sectionX بنص الويكي، وليس بالطريقة التي يتم عرضها بها. على سبيل المثال، إذا كان عنوان القسم هو ==List of [[Extension]]==، يجب عليك كتابة "List of [[Extension]]" وليس "List of Extension".
  3. عند تضمين قسم من صفحة تم وضع علامة عليها للترجمة باستخدام امتداد الترجمة، قم بالتضمين من النسخة الخاصة باللغة. على سبيل المثال، من pagename/en بدلاً من pagename.
  4. المطابقة حساسة لحالة الأحرف، لمنع الروابط من الانقطاع بسبب تغييرات الحالة.

تضمين عدة أقسام

يمكنك أيضًا إدراج من الحد الأول لـ sectionX (باستثناء عنوان sectionX نفسه) حتى يصل إلى الحد الأول لـ sectionY. يجب أن يكون sectionY نقطة توقف لذا فإن الإدراج لا يتضمن محتويات sectionY.

{{#lsth:pagename|sectionX|sectionY}}

ملاحظات حول العناوين المتخطاة

بما أن الاستدراج التقليدي في ميدياويكي ليس مصممًا لاستدراج الأقسام، فإنه لا يأخذ في الاعتبار العناوين المفقودة. ونتيجة لذلك، إذا كنت تنوي استدراج قالب يحتوي على عناوين متعددة وتجاوزت العنوان الأول، فإن جميع روابط تحرير الأقسام ستشير إلى القسم الخطأ في القالب.

عند استخدام هذه الامتدادات (مع MediaWiki 1.9 أو أحدث)، تقوم الدوال #lst و #lsth بعدد العناوين في الجزء "المتجاوز" من البداية، وتعوض عناوين الاستدراج بشكل مناسب. وهذا سيسمح للروابط بالإشارة إلى القسم الصحيح في الحالة البسيطة.

لاحظ أن #lstx لا يحسب العناوين التي تم تخطيها، وأن العناوين التي تم تخطيها داخل الأقسام غير المتجاورة لا يتم إزاحتها. ويبدو أنه تم إصلاح هذا الآن (على الأرجح عند نقله إلى المعالج الأولي الجديد في ميدياويكي). يمكن ربط العناوين المستدرجة بالأقسام الصحيحة الآن..

الترجمة

داخليًا، تستخدم جميع وظائف المحلل البادئة lst، للحفاظ على التوافق مع اسم الامتداد. نظرًا لأن هذا الاختصار قد يكون مربكًا لغير المطورين، تم إدخال الأسماء الإنجليزية المقروءة، بحيث يمكن استدعاء الوظائف حاليًا من أي من الاسمين.

دالة الإنجليزية الألمانية العبرية (RTL) البرتغالية
#lst #section #Abschnitt
#קטע
#trecho
#lstx #section-x #Abschnitt-x
#בלי קטע
#trecho-x
#lsth #section-h

بالإضافة إلى ذلك، يمكن توطين العلامة حاليًا: الإنجليزية, الألمانية, العبرية, البرتغالية; أي:

الإنجليزية
<section begin=x/> ... <section end=x/>
الألمانية
<Abschnitt Anfang=x/> ... <Abschnitt Ende=x/>
العبرية (RTL)
<קטע התחלה=א> ... <קטע סוף=א> ("البداية" الكود إلى اليمين و "النهاية" الكود إلى اليسار)
البرتغالية
<trecho começo=x/> ... <trecho fim=x/>

يتم تمكين كل توطين فقط إذا كانت الصفحة تطابق لغة المحتوى المعنية.

الحدود

  • {{#lsth:اسم_الصفحة|القسمX}} يعمل فقط على القسم الأول إذا كانت هناك عدة أقسام بنفس الاسم القسمX. يتم نقل الحدث الأول فقط من القسمX إذا كان المقال يحتوي على أكثر من قسم واحد بنفس الاسم.
  • على الرغم من أنه من الممكن استخدام هذه الإضافة عبر أسماء المساحات، فإن الإشارات الإنتر ويكي المراجعات بين الويكي لا تُحلّ. ليس من الممكن حتى الآن، على سبيل المثال، تضمين جزء من صفحة ويكي مصدر في تثبيت ويكي ميديا عن بُعد.
  • لا يمكن نقل علامات الأقسام ذاتها للعمل على صفحات أخرى. يعمل {{#lst:}} and {{#lstx:}} فقط إذا ظهرت علامات الأقسام مباشرة في ويكي نص الصفحة المنقولة. وهذا يعني، على سبيل المثال، أنه لا يمكن تضمين هذه العلامات في قالب باستخدام معلمات القالب و دوال المحلل. كلمة السحر #tag لا تعمل مع علامات الأقسام.
  • اعتبارًا من عام 2014، لا تؤثر علامات الأقسام عند استخدامها داخل معلمة القالب. إذا كانت الصفحة A تحتوي على نص {{B|X}}، فلا يوجد طريقة لكي {{#lst:A|...}} يمكن الوصول إلى X.

أمثلة

== انظر ايضا ==