ويكاموس
arwiktionary
https://ar.wiktionary.org/wiki/%D9%88%D9%8A%D9%83%D8%A7%D9%85%D9%88%D8%B3:%D8%A7%D9%84%D8%B5%D9%81%D8%AD%D8%A9_%D8%A7%D9%84%D8%B1%D8%A6%D9%8A%D8%B3%D9%8A%D8%A9
MediaWiki 1.47.0-wmf.12
case-sensitive
ميديا
خاص
نقاش
مستخدم
نقاش المستخدم
ويكاموس
نقاش ويكاموس
ملف
نقاش الملف
ميدياويكي
نقاش ميدياويكي
قالب
نقاش القالب
مساعدة
نقاش المساعدة
تصنيف
نقاش التصنيف
ملحق
نقاش الملحق
مكنز
نقاش المكنز
نص زمني
نقاش النص الزمني
وحدة
نقاش الوحدة
فعالية
نقاش فعالية
ويكاموس:الميدان
4
623
1097664
1097391
2026-07-27T21:07:11Z
حبيشان
31560
أرشفة
1097664
wikitext
text/x-wiki
{{/مقدمة}}__فهرس__
== تشكيل عنوان المقالة في ويكاموس العربي والنسخ اللغوية الأخرى ==
يعتمد ويكاموس العربي تشكيل اسم الصفحة باعتبار أنه مع اختلاف التشكيل فإننا المفردة مختلفة عن أختها، لكن أغلب النسخ اللغوية الأخرى ومن أهمها الإنجليزي تعتمد اسم الصفحة بدون تشكيل وتجمع جميع المفردات التي تشترك في نفس رسم الكلمة بدون تشكيل في صفحة واحدة.
;تأثير هذا الاختلاف:
يؤثر هذه الاختلاف بين النسخ اللغوية في الربط بين النسخ اللغوية المختلفة لأن الربط يكون باسم الصفحة وإذا وجدت صفحة مشكلة وصفحة غير مشكلة فإنهما صفحتان مختلفتان لذا فإنها لا تربط لا حظ مثلا صفحة [[قَتَلَ]] تجد أنها مربوطة مع النسخة الفرنسية فقط ولكن افتح صفحة [[:en:قتل]] تجد أنها مربوطة ب 25 نسخة لغوية، وهذا يؤثر على الاستفادة من المحتوى العربي في ويكاموس العربي بشدة.
لذا فأرجو إعادة النظر في منهجية تشكيل اسم الصفحةة في ويكاموس، وهذا نقاش مفتوح وكل يذكر ما يراه صوابا مع الأسباب، وقد فتحت نقاشا في مجموعة التلجرام فتبين أن ويكاموس الفرنسي والإيطالي يلتزمان بالتشكيل في عنوان الصفحة. وهذا الأمر يستوجب وجود سياسة عالمية لأنها تحدد الربط بين المشاريع. [[مستخدم:حبيشان|حبيشان]] ([[نقاش المستخدم:حبيشان|نقاش]]) 08:54، 17 نوفمبر 2025 (ت ع م)
:[[ويكاموس:الميدان/أرشيف/2017#مفردات ويكاموس|نقاش سابق]]، إشارة إلى المشاركين فيه @[[مستخدم:أحمد ناجي|أحمد ناجي]] @[[مستخدم:Avicenno|Avicenno]] @[[مستخدم:أبو هشام|أبو هشام]] @[[مستخدم:أسامة الجزري|أسامة الجزري]] @[[مستخدم:ميسرة|ميسرة]] @[[مستخدم:أبو آسر|أبو آسر]] @[[مستخدم:يوسف عاشق الجبل|يوسف عاشق الجبل]]. [[مستخدم:حبيشان|حبيشان]] ([[نقاش المستخدم:حبيشان|نقاش]]) 12:03، 17 نوفمبر 2025 (ت ع م)
::@[[مستخدم:حبيشان|حبيشان]] أنا مؤيد لإزالة التشكيل من العناوين وإضافة المفردات المشكلة المرجوة لذات الصفحة لتسهيل الوصول إلى المفردة والمفردات ذات الصلة وهذا المعمول به في المواد غير العربية ومخالفة المواد العربية يعسر البحث. مثلا عندنا [[أَكْل]] و[[أَكَلَ]] لكن في المفردات غير العربية عندنا مادة واحدة لاسم ولفعل ولصفة مثل [[present]]، فأقترح إزالة التشكيل في العناوين وكتابة المفردات المرجوة في الصفحة ومنها اشتقاقات الجذر ولتزل صفحات التوضيح. [[مستخدم:كريم رائد|<span style="font-size:medium;font-family:Script MT Bold;color:black;">كريم {{أخضر|رائد}}</span> ]] [[نقاش المستخدم:كريم رائد|<span style="font-size:medium;font-family:Script MT Bold;color:red;">نقاش</span>]] 22:24، 17 نوفمبر 2025 (ت ع م)
::هذا النقاش يثار كلما جاء وفد من ويكيبيديا وقارن ويكاموس العربي بالنسخ اللغوية الأخرى. ويكاموس العربي يعتمد على صفحات التوضيح منذ زمن بعيد، وهي كفيلة بربط هذه النسخة مع باقي النسخ الأخرى، مثلا صفحة [[قتل]] مربوطة ب25 نسخة، وصفحة [[كتب]] ب24 نسخة، وكذا صفحة [[نظر]] مرتبطة ب19 نسخة. فإذا كنت تدعم العناوين بدون تشكيل فهو أمر معمول به أصلا (صفحات التوضيح) وإذا كنت تريد أن نزيل الوصلات ونجمع المحتويات كلها في صفحة واحدة فهذا لن يزيد من الربط، بل سيبقى الربط كما هو. أصلا لا توجد مشكلة في الربط، بل المشكلة في النقص العددي لصفحات ويكاموس، حتى أن صفحة [[ربط]] غير موجودة لحظة كتابتي لهذا التعليق. أقول أنه ليس على ويكاموس العربي أن يتبع ويكاموس الإنجليزي أو الفرنسي، إذا فكرنا من وجهة نظر موضوعية، فإن الأصل هو وجود صفحة واحدة لكل كلمة، [[قَتَلَ]] ليست هي نفسها [[قَتَّلَ]] أو [[قَتْل]]، لذا وجود صفحات مستقلة هو أمر طبيعي وجيد ويُتيح إمكانية التفصيل في شرح مختلف المعاني. ثم مع هذا توجد صفحة التوضيح [[قتل]] (بدون تشكيل) التي تكون مرتبطة مع مختلف النسخ اللغوية. '''هذا ليس عيب، بل ميزة معمول بها منذ زمن طويل'''. [[مستخدم:Najem Ajem|'''<span style="color:#00008B">--الناجم العاجم</span>''']] [[نقاش المستخدم:Najem Ajem|'''<span style="color:#00008B">''❄''</span>''']] 23:11، 17 نوفمبر 2025 (ت ع م)
:::@[[مستخدم:Najem Ajem|Najem Ajem]] لا أرى ميزة إضافية لفصل المفردات حسب شكلها إلا زيادة عدد الصفحات، بينما نخسر مميزات إضافية ذكرتها أدنا. [[مستخدم:حبيشان|حبيشان]] ([[نقاش المستخدم:حبيشان|نقاش]]) 21:21، 22 نوفمبر 2025 (ت ع م)
::أتفق مع الزميل @[[مستخدم:Najem Ajem|الناجم العاجم]] في الحفاظ على أسماء الصفحات بالتشكيل، مع وجود صفحات التوضيح. أُضيف إلى ما قيل: في المستقبل نُريد ربط صفحات ويكاموس مع الوحدات المُعجمية في ويكي بيانات، وهذا سيكون أسهل إذا كانت الصفحات مُستقلة. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 09:23، 20 نوفمبر 2025 (ت ع م)
:::@[[مستخدم:ForzaGreen|ForzaGreen]] الصفحة في ويكاموس تقبل جميع اللغات التي تستعمل نفس رسم الكلمة، بينما المعجمية في ويكي بيانات مقيدة بلغة معينة، فالربط لا يمكن أن يتم آليا، فما دام يدويًا فلا ميزة إضافية لفصل الكلمات حسب شكلها في صفحات مستقلة. [[مستخدم:حبيشان|حبيشان]] ([[نقاش المستخدم:حبيشان|نقاش]]) 21:18، 22 نوفمبر 2025 (ت ع م)
:: {{ضد}} التشكيل ضرورة حتمية في المعاجم، ووجود نفس الرسم في معاجم أخرى يُعدّ جهدًا ضائعًا (إذ تصبح صفحة الكلمة مكررة بعدّة لغات، ولا أعلم ما الفائدة!). الأصل أن تُربط المفردة بما يقابلها بالترجمة، لا بالرسم. الأمر نفسه ينطبق على الكلمات غير العربية (أو على الأقل غير المنطوقة بلهجات عربية) في ويكاموس العربي؛ فوجودها مكررة في عدّة معاجم بلغات أخرى لا فائدة منه. منذ مدة وأنا أفكر في طريقة لربط الكلمات بين المعاجم اللغوية، ووجدت — حتى الآن — أن قسم الترجمة يمكنه القيام بذلك، لكنه بدوره يحتاج إلى ربط آلي. تحياتي --[[مستخدم:Nehaoua|<span style="color:#000000; font-size:18px; font-family:traditional arabic;">'''نحاوة'''</span>]] <sup>([[نقاش المستخدم:Nehaoua|<span style="color:blue; font-size:small; font-family:traditional arabic;">'''راسلني'''</span>]])</sup>
::: {{ر|Nehaoua}} لن نفقد التشكيل عندما نجمع المفردات المتفقة في الرسم في صفحة واحدة، فستكون المفردات في عناوين فرعية وهي المسماة في ويكاموس الإنجليزي headwords، وكل نسخ ويكاموس متعددة لغات المفردات، فالمفردات العربية موجودة (أو لها أن تكون موجودة) في كافة النسخ اللغوية الأخرى، وللأسف المفردات العربية في ويكاموس الإنجليزي أكثر من العربي.--[[مستخدم:حبيشان|حبيشان]] ([[نقاش المستخدم:حبيشان|نقاش]]) 21:26، 22 نوفمبر 2025 (ت ع م)
:::مرحبًا @[[مستخدم:حبيشان|حبيشان]] رسمُ الكلمةِ العربية لا يكون مكتملًا إلا بالتشكيل، وكلُّ صيغةٍ مشكلة تُعدّ مفردة مستقلة، حتى ولو اشتركت في الرسم، لأن اختلاف التشكيل يؤدي إلى اختلافٍ في المعنى والمغزى. ولا يمكن القياس على الإنجليزية، فهي تعتمد على [[w:صائت|الصوائت]] التي تُميّز بين الكلمات (والمقابل لها في اللغة العربية الحركات الثلاثة -الفتح والكسر والضم-)، مثل:
:::*[https://en.wiktionary.org/wiki/pin pin] (دبوس)
:::*[https://en.wiktionary.org/wiki/pun pun] (تورية)
:::*[https://en.wiktionary.org/wiki/pan pan] (مِقلاة)
:::ولا تُعدّها الإنجليزية مفردة واحدة.
:::أمّا ما ذُكر من أن {{مض|المفردات العربية في ويكاموس الإنجليزي أكثر من العربي}}} فهذا – في الواقع – مثال واضح على الجهد الضائع، إذ تُكرَّر الصفحات في معاجم أخرى بدل تطوير النسخة العربية ذاتها. تحياتي [[مستخدم:Nehaoua|<span style="color:#000000; font-size:18px; font-family:traditional arabic;">'''نحاوة'''</span>]] <sup>([[نقاش المستخدم:Nehaoua|<span style="color:blue; font-size:small; font-family:traditional arabic;">'''راسلني'''</span>]])</sup> 18:55، 23 نوفمبر 2025 (ت ع م)
::::@[[مستخدم:Nehaoua|Nehaoua]] لابد من تشكيل المفردة عند ذكرها والشرح، وليس هذا محل خلاف، ولا خلاف أن الاختلاف في التشكيل غالبا يعني مفردة مختلفة، لكن النقاش عن جمع المفردات في صفحة واحدة وفقا لرسمها المجرد من التشكيل، فويكاموس العربي لم يتبع نهج المعاجم العربية في جمع المفردات تحت جذر واحد وكذلك لم يتبع نهج أغلب نسخ ويكاموس في جمع المفردات التي تتففق في الحروف في مدخل واحد، وهذا الطريقة المتفردة تفقد ويكاموس العربي بعض المميزات التقنية، بعض الميزات الأخرى التي ذكرتها. [[مستخدم:حبيشان|حبيشان]] ([[نقاش المستخدم:حبيشان|نقاش]]) 07:36، 24 نوفمبر 2025 (ت ع م)
:::::@[[مستخدم:Nehaoua|Nehaoua]] عفوًا pin وpun وpan من جدوز مختلفة لا علاقة لها ببعض. كل واحدة free base morpheme لا صلة لها بالأخرى. أما عن الحركات العربية فهي تعود لجذر واحد فلا تصح المقارنة. [[مستخدم:كريم رائد|<span style="font-size:medium;font-family:Script MT Bold;color:black;">كريم {{أخضر|رائد}}</span> ]] [[نقاش المستخدم:كريم رائد|<span style="font-size:medium;font-family:Script MT Bold;color:red;">نقاش</span>]] 08:29، 24 نوفمبر 2025 (ت ع م)
:::@[[مستخدم:Nehaoua|Nehaoua]] أيضا لا يمكن حصر التشكيل مقابلًا للصوائت لأن منها short vowel sounds ومنها long vowel sounds التي هي أقرب إلى حروف العلة. [[مستخدم:كريم رائد|<span style="font-size:medium;font-family:Script MT Bold;color:black;">كريم {{أخضر|رائد}}</span> ]] [[نقاش المستخدم:كريم رائد|<span style="font-size:medium;font-family:Script MT Bold;color:red;">نقاش</span>]] 19:26، 24 نوفمبر 2025 (ت ع م)
::::::مرحبًا @[[مستخدم:كريم رائد|كريم رائد]] لا يوجد مفهوم الجذر في الإنجليزية، وأنا متفق أنه {{مض|لا تصح المقارنة}} لأن الطلب اصلا مبني على المقارنة! تحياتي [[مستخدم:Nehaoua|<span style="color:#000000; font-size:18px; font-family:traditional arabic;">'''نحاوة'''</span>]] <sup>([[نقاش المستخدم:Nehaoua|<span style="color:blue; font-size:small; font-family:traditional arabic;">'''راسلني'''</span>]])</sup> 18:39، 24 نوفمبر 2025 (ت ع م)
:::::::@[[مستخدم:Nehaoua|Nehaoua]] بل يوجد؛ طالع إن شئت Root (linguistics) ومقارنتك تشكيل العناوين بتلك المفردات في غير محلها لأن كل من هذه المفردات له معنى مختلف وجذره مختلف. [[مستخدم:كريم رائد|<span style="font-size:medium;font-family:Script MT Bold;color:black;">كريم {{أخضر|رائد}}</span> ]] [[نقاش المستخدم:كريم رائد|<span style="font-size:medium;font-family:Script MT Bold;color:red;">نقاش</span>]] 19:09، 24 نوفمبر 2025 (ت ع م)
::::::::@[[مستخدم:كريم رائد|كريم رائد]] تمتاز اللغات السامية بأنها جذرية واشتقاقية؛ إذ يمكن اشتقاق مئات الكلمات من الجذر الواحد بتغييرات بسيطة ومنها التشكيل، في حين أن الـ '''Root '''في اللغات الأخرى يتغيّر عادةً بإضافة السوابق واللواحق (أمور معروفة لا تحتاج لإطالة).
::::::::{{مض|ومقارنتك تشكيل العناوين بتلك المفردات في غير محلّها}}، لأن المقصود هو أن التشكيل في العربية يوافق الصوائت؛ فالفتحة تقابلها "A"، والضمة "O"، والكسرة "I"، وهذا تحديدًا ما أردتُ مقارنته (وأعتذر عن إعادة ما سبق أن قلتُه).
::::::::وأكتفي هنا حتى لا يتحول النقاش إلى جدال. وفي النهاية، ما الفائدة من جمع تعريفات جميع معاني الرسم «عبر» في صفحة واحدة، من جمع [[عِبْرَة|لعِبرة]] إلى الفعل [[عَبَرَ|عَبَرَ]] وغيرها؟
::::::::أكتفي بهذا القدر وقد بيّنتُ وجهة نظري. تحياتي. [[مستخدم:Nehaoua|<span style="color:#000000; font-size:18px; font-family:traditional arabic;">'''نحاوة'''</span>]] <sup>([[نقاش المستخدم:Nehaoua|<span style="color:blue; font-size:small; font-family:traditional arabic;">'''راسلني'''</span>]])</sup> 19:24، 24 نوفمبر 2025 (ت ع م)
:::::مرحبًا @[[مستخدم:حبيشان|حبيشان]]،
:::::* {{مض|ولا خلاف أن الاختلاف في التشكيل غالبًا يعني مفردة مختلفة}} فكلُّ اختلافٍ في التشكيل يُنتج مفردةً مختلفة، وبالتالي مدخلة مختلفة.
:::::* {{مض|النقاش عن جمع المفردات في صفحة واحدة وفقًا لرسمها المجرَّد من التشكيل}} وصفحات التوضيح تكفي في هذا الباب.
:::::* {{مض|فويكاموس العربي لم يتبع نهج المعاجم العربية في جمع المفردات تحت جذر واحد وكذلك لم يتبع نهج أغلب نسخ ويكاموس في جمع المفردات التي تتفق في الحروف في مدخل واحد}} لا تتبع جميع المعاجم هذا النهج، فالمعجم الوسيط مثلًا لم يجمع كل المفردات ذات الرسم الواحد؛ انظر مثلًا مدخل: [https://shamela.ws/book/7028/640#p1 «عين»]، حيث تكرّرت عدة مرات، وبينها تعريفات لكلمات مختلفة الرسم. وكذلك نحن نعمل في مشروع لا يقتضي النسخ الحرفي للمطبوع.
:::::* {{مض|وهذه الطريقة المتفردة تفقد ويكاموس العربي بعض المزايا التقنية}} إن اختلاف الرسم والمفردات في العربية أمرٌ أصيل، ووجود صعوبات تقنية حالية لا يبرّر تقليل شأن اللغة أو التخفيف من خصائصها؛ فقد كانت كتابة العربية يومًا ما مستحيلة تقنيًا، ولو اتبعنا المنطق نفسه لكتبناها اليوم بالأحرف اللاتينية.
:::::تحياتي [[مستخدم:Nehaoua|<span style="color:#000000; font-size:18px; font-family:traditional arabic;">'''نحاوة'''</span>]] <sup>([[نقاش المستخدم:Nehaoua|<span style="color:blue; font-size:small; font-family:traditional arabic;">'''راسلني'''</span>]])</sup> 19:09، 24 نوفمبر 2025 (ت ع م)
=== مميزات جمع المفردات في صفحة واحدة إذا اتفقت في رسهما الخالي من التشكيل ===
# أولا بالنظر إلى معاجمنا العربية الأصيلة فيهم تجمع المفردات لأكثر من ذلك فكل المفردات تحت جذر واحد تجمع في مدخل واحد في المعجم العربي بل بعض المعاجم تضم إليها التقاليب (جبذ، جذب، بجذ...)، فالجمع المقترح أقرب إلى العمل المعمول به في معاجمنا من الطريقة الحالية.
# كثير من الكلمات العربية يكون فيها أكثر من وجه في الضبط لدينا مثلا كلمة «إِصبَع» فيها تسع لغات حيث يجوز في أولها وثالثها الحركات الثلاث، فعلى هذا سيكون للأصبع 9 صفحات وهي مفردة واحدة ولكن فيها عدة أوجه أو لغات، وكثير من مفردات اللغة يجوز في حرف من حروفها أكثر من حركة ( ومنها باب المثلث في اللغة)، لذا فجمعها في صفحة أيسر في الوقوف على الفائدة، وأبعد من إيهام التغاير.
# أن القارئ ربما يريد أن يستفيد ما هو الضبط الصحيح لكلمة معينة، وجود أكثر من عنوان مشكولة يؤخره في البحث عن الكلمة.
# أن القارئ لا يستطيع أن يصل بسهولة من صفحة مفردة إلى ما يقابلها في اللغات الأخرى فيحتاج أن ينتقل غلى صفحة توضيح أو أن يبحث عنها.
# نفس الشيء بالنسبة للقارئ في النسخ الأخرى الذي يرغب أن يطلع على النسخة العربية.
--[[مستخدم:حبيشان|حبيشان]] ([[نقاش المستخدم:حبيشان|نقاش]]) 21:15، 22 نوفمبر 2025 (ت ع م)
:{{ر|حبيشان}}
:# نحن في قاموس إلكتروني، حيث تتوفر الوصلات وصناديق البحث، لماذا سنتبع طريقة الكتب القديمة.
:# عندما يكون للكلمة الواحدة أكثر من تهجئة واحدة، فحينئذ نضع صفحة تحتوي على المعنى، وصفحات أخرى تحوّل أو توصل إليها، مع ذكر هذه الملاحظة في صفحة المعنى. وهذا طبيعي جدا حتى أن النسخ الأخرى تقوم بالأمر نفسه، مثلا في ويكاموس الإنجليزي صفحة [[:en:colour|colour]] لا تحتوي على المعاني، ذكروا فقط أنها تهجئة مختلفة للكلمة [[:en:color|color]].
:# النقطة 2 تفيد أيضا في حال وجود تهجئات خاطئة وشائعة.
:# من المفترض أن تحتوي الصفحات على قالب {{قا|أيضا}} في الأعلى، ويشير إلى صفحة التوضيح (التي تتضمن الكلمات التي لها الرسم نفسه) كما هو معمول به في النسخ الأخرى.
:# القارئ من النسخ الأخرى سيجد صفحة التوضيح من خلال وصلات الأنترويكي. بالمناسبة العناوين بالتشكيل موجودة في نسخ أخرى غير العربية.
:[[مستخدم:Najem Ajem|'''<span style="color:#00008B">--الناجم العاجم</span>''']] [[نقاش المستخدم:Najem Ajem|'''<span style="color:#00008B">''❄''</span>''']] 23:11، 22 نوفمبر 2025 (ت ع م)
* في الوضع الحالي وبعد ترتيب المفردات في التصانيف، فلا بأس عندي ببقاء عناوين المشكلة، مع الآتي:
** تنقيح تعليمات [[ويكاموس:صيغة الكتابة/الحركات والتشكيل|تشكيل العناوين]] ووسمها سياسةً لكي تكون ملزمة.
** جعل إنشاء صفحات التوضيح (بدون شكل) آليا عبر بوت، وكذلك الوصلة إليها من صفحات المفردات المشكلة.--[[مستخدم:حبيشان|حبيشان]]<sup>('''[[نقاش المستخدم:حبيشان|ن]]''')</sup> 18:08، الأربعاء 2 شعبان 1447هـ (+3) 15:08، 21 يناير 2026 (ت ع م)
:{{ر|حبيشان}} راجعتُ صفحة [[وق:تشكيل|تشكيل العناوين]]، وجعلت القواعد أكثر وضوحا، يرجى إلقاء نظرة عليها. [[مستخدم:Najem Ajem|'''<span style="color:#00008B">--الناجم العاجم</span>''']] [[نقاش المستخدم:Najem Ajem|'''<span style="color:#00008B">''❄''</span>''']] 14:09، 22 يناير 2026 (ت ع م)
::مرحبًا @[[مستخدم:Najem Ajem|Najem Ajem]] شكرًا لتوضيحك [[مستخدم:Nehaoua|<span style="color:#000000; font-size:18px; font-family:traditional arabic;">'''نحاوة'''</span>]] <sup>([[نقاش المستخدم:Nehaoua|<span style="color:blue; font-size:small; font-family:traditional arabic;">'''راسلني'''</span>]])</sup> 11:49، 28 يناير 2026 (ت ع م)
=== نقاش حول [[ويكاموس:صيغة الكتابة/الحركات والتشكيل]] (مقترح سياسة) ===
* {{ر|Najem Ajem}} اعتذر عن تأخري بالرد بسبب انشغالي بالخارج، المقترح فيه بعض القصور، وايضا هناك [[خاص:فرق/1076134|تغيير محوري]] أضيف بعد الخلاصة لم يناقش بالمرة، لذا أرجو حذف الخلاصة والعودة إلى النقاش، وهذه الملاحظات على الصيغة الحالية:
** تغير كلمة (حركات) إلى (شكلات)، لأن الشدة ليست حركة وكذلك السكون عند البعض.
** توضح أحرف المد بـ (وهي الألف (ا) مطلقا، والواو (و) الساكنة المضموم ما قبلها، والياء (ي) الساكنة <s>المضموم</s> المكسور ما قبلها).
** اقترح تعديل النقطة الثانية إلى:
::: {{مض|يترك محل الإعراب (آخر الكلمة المفردة) في الكلمات المعربة بالحركات بدون حركة أو سكون -وتبقى الشدة إذا كان مشددًأ-؛ لأن حركته تتغير حسب موقع الكلمة في الجملة}} وعليه فإن «مُعَلِّمُونَ» تشكل النون وإن كانت آخر الكلمة لأن معلمون تعرب بالحروف.
::: بتعديل هذه النقطة نسنغني عن النقاط بعدها إلا إذا قصد بها التوضيح.
** في نقطة الأفعال يفهم منها أنه يجب شكل آخر المضارع ولكنه معرب والأولى أن يشمله ما يشمل الأسماء لذلك أقترحت هنا أن تكون النقطة عامة للأسماء والأفعال واستخدمت مصطلح (الكلمات).
** لو ينص على وجوب نقط الياء المتطرفة تمييزا لها عن الألف المطوية.
** ماذا عن همزة الوصل هل تشكل أم لا، لو تنص القاعدة على ذلك صراحة وهل تستعمل ألف مجردة عن الهمزة أم (ٱ) ألف عليها ص.
** لا أتفق مع تجريد العنوان المدخلة من الشكل عندما تحتمل الكلمة قراءة واحدة فقط، لأسباب:
*** أن ذلك إذا غلب على ظن من أدخلها قد يكون مخطئًا فنضطر للنقل بعد ذلك.
*** أن هذه القاعدة ربما تؤخر من يريد إضافة مفردة فيلتزم بالبحث هل يشاركها في الرسم مفردة أخرى أم لا.
*** المشروع لا يميمز صفحات توضيح المفردات إلا بالتجريد من التشكيل فعندما يرى المستخدم عنوانا غير مشكل يظن أنها صفحة توضيح.
--[[مستخدم:حبيشان|حبيشان]]<sup>('''[[نقاش المستخدم:حبيشان|ن]]''')</sup> 21:10، الثلاثاء 7 رمضان 1447هـ (+3) 18:10، 24 فبراير 2026 (ت ع م)
:إشارة @[[مستخدم:Nehaoua|Nehaoua]] @[[مستخدم:أبو هشام|أبو هشام]] @[[مستخدم:كريم أحمد|كريم أحمد]] @[[مستخدم:القلموني|القلموني]]. [[مستخدم:حبيشان|حبيشان]]<sup>('''[[نقاش المستخدم:حبيشان|ن]]''')</sup> 21:18، الثلاثاء 7 رمضان 1447هـ (+3) 18:18، 24 فبراير 2026 (ت ع م)
* {{ر|حبيشان}} فيما يلي تعليقاتي على ملاحظاتك:
** <s>أوافق على استخدام (شكلات)، مع الإبقاء على (حركات) كمرادف أو لتفادي التكرار.</s> تعديل: بعد البحث وجدت أن "شكلات" غير فصيحة، بينما المستخدم هو فعلا "حركات" أو "حركات التشكيل".
** {{مض|فإننا دائما نستثني حروف المد (و، ا، ي)}} هنا عبارة "حروف المد" تفيد التوضيح بنفسها، فهي تشير إلى استثناء الحروف الثلاثة عندما -فقط- تفيد المد، بدل عبارة "الحروف" أو "حروف العلة" التي تشير إلى استثناء مطلق. لكن أوافق على إضافة التعريف الذي كتبتَه كملاحظة في الأسفل.
** صحيح أن بعض الكلمات لا يعرب بالشكلات وإنما بالحروف، فجمع المذكر السالم مثلا يضم بالواو والنون بينما ينصب ويجر بالياء والنون، لكن هذا لا يتعارض مع النقطة الثانية. لمزيد من الاتضاح سأشرح السياسة المقترحة، وهي بالمناسبة توثيق أكثر من كونها "اقتراحا جديدا": '''الأصل البسيط''' هو أن توضع الشكلات فوق الحروف كلها باستثناء حروف المد، سنجد أن تطبيق هذا الأصل على الأفعال وتصريفاتها (كيفما كانت أزمنتها) وعلى الأسماء المبنية سيكون تطبيقا خاليا من أية إشكالية، لماذا؟ لأن الحرف الأخير من هذه الكلمات يقبل حركة واحدة غير متغيرة، إلا بعض الاستثناءات عندما تكون الكلمة وخصوصا الفعل في جملة، وهذا لا يعنينا فنحن نتحدث عن عناوين يعني كلمات مستقلة. من هنا فتطبيق قاعدة "الأصل" لن يجد أي إشكال ماعدا في الأسماء المعربة، لماذا؟ لأن حرفها الأخير قد يقبل أي شكلة حتا إذا كانت الكلمة مجرد عنوان، مثلا هَاتِفٌ هَاتِفُ هَاتِفًا هَاتِفَ هَاتِفٍ هَاتِفِ، هذا يجعلنا حائرين بخصوص تشكيل آخر حرف من الكلمة المعربة، من هنا عدلنا قاعدة "الأصل" لنستثني تشكيل آخر حرف من الكلمة المعربة (كيفما كانت). ما شرحته إلى حدود الآن هو ما يشكل النقط الخمسة المدونة في السياسة حاليا. وبهذا تكون السياسة سهلة تسمح لأي محرر بتطبيقها ولو لم يكن بارعا بالإعراب وتفاصيله، كل ما يلزمه هو التفريق بين الكلمة المبنية والكلمة المعربة فقط. وعليه فأنا لا أتفق مع تغيير النقطة الثانية (الأسماء المعربة) والثالثة (الأفعال) إذ لا حاجة -وليس من المفترض أصلا- لإضافة استثناءات أخرى تتعلق بالإعراب. فالمبدأ هو أن لا نضيف استثناء إلا لتفادي إشكال حاصل.
** أوافق على إضافة ملاحظة الياء المتطرفة. وبخصوص همزة الوصل فلتكن همزة قطع (مجردة من الهمزة) وتأخذ كسرة في حال تشكيلها.
** تعليقاتي أعلاه تخص الإجابة عن سؤال "فوق أية أحرف نضع الشكلات؟" أما السؤال الثاني الذي تجيب عنه السياسة هو "متى أصلا نضع شكلات في العنوان؟" والإجابة عن هذا السؤال تحتمل خيارين: 1. نضع شكلات في جميع العناوين بدون استثناء 2. نضع شكلات فقط للتمييز بين الكلمات التي لها الرسم نفسه. والسياسة حاليا تختار الجواب (2) لأنها تنطلق من الفكرة التالية: جعل ويكاموس العربي مرتبطا بمختلف النسخ الأخرى قدر الإمكان، وإذ أن أغلب النسخ خاصة الكبرى تضع مدخلات عربية دون شكلات، اتخذنا كأصل عدم وضع شكلات مطلقا، هكذا كان الأصل ثم صنعنا استثناء لغرض تجاوز إشكال واحد، والإشكال هو وجود كلمات متعددة لها الرسم نفسه (طَالِب، طَالَبَ) ثم جعلنا صفحات توضيح لنبقي على العنوان المجرد من الشكلات، هذه الطريقة أفضل بكثير من جمع الكلمات في صفحة واحدة، فذلك لا يناسب الغنى الذي تتمتع به اللغة العربية. بالنظر إلى السياسة هكذا نجد الأصل الأول الذي يعطي أولوية للعناوين المجردة من الشكلات، ثم عناوين بشكلات تكون فرعية لصفحات توضيح، هكذا يبقى القاموس مرتبطا بوصلات أنترويكي تلقائية. أما بالنسبة للمحررين فالفكرة أن يضعوا دائما عنوانا خاليا من الشكلات، لا داعي للتردد إلا إذا علموا يقينا بوجود كلمات أخرى بالرسم نفسه، أما وقوع خطإ فليس مشكلا، يكتشف محرر آخر في وقت آخر وجود كلمة أخرى فيقوم بالنقل ووضع صفحة توضيح. هذا نمو طبيعي للقاموس. من هنا، نرى مثلا أن إنشاء صفحات توضيح أمر مفيد مثله مثل إنشاء صفحة تعريف. هكذا الأمر وضحتُه لترى السياسة من وجهة نظر عامة تنطلق من أصل عناوين بدون شكلات لتعزيز وصلات إنترويكي ثم يكون الاستثناء للتمييز بين الكلمات التي لها الرسم نفسه ثم فوق هذا يكون استثناء الحرف الأخير من الكلمات المعربة.
[[مستخدم:Najem Ajem|'''<span style="color:#00008B">--الناجم العاجم</span>''']] [[نقاش المستخدم:Najem Ajem|'''<span style="color:#00008B">''❄''</span>''']] 10:35، 26 فبراير 2026 (ت ع م)
:شكرا للإشارة، بصراحة منذ أيام وأنا أريد أن أكتب تعليقا ولكن كلما راجعت المقترح واستعرضت أمثلة من المفردات أتردد وأحير ماذا أكتب، أنا أميل إلى تشكيل جميع المفردات (باستثناء حروف فالمد) عدا صفحات التوضيح التي يُفترض أنها تحتوي على مجموعة كلمات متشابهة بالرسم ومختلفة بالمعنى حسب الحركات أو الشكلات فيها فعناوينها تكون مجردة، وأما الكلمات التي لا مشابه لها مثل '''[[استعمار]]''' و'''[[استعمال]]''' و'''[[منجنيق]]''' فأرى الواجب تشكيلها لضمان عدم التكرار والخلط أو الخطأ مثل ('''[[اِستعمال]]''' و'''[[اِسْتِعْمَال]]''' مفردتان لكلمة واحدة) أو ('''[[اِسْتَعْمَلَ]]''' و'''[[استعمل]]''' مفردتان لكلمة واحدة)، وضعت تعديلات على المقترح في ([[ويكاموس:صيغة الكتابة/الحركات والتشكيل/مسودة]]) وأظن أن المقترح بحاجة لنقاش أوسع وأتمنى مشاركة الزملاء لاكتشاف الأخطاء المحتملة، تحياتي لكم. [[مستخدم:أبو هشام|أبو هشام]] <sup>[[نقاش المستخدم:أبو هشام|«نقاش»]]</sup> 20:19، 27 فبراير 2026 (ت ع م)
:مرحبًا بالجميع، أنا مع {{مض|'''الأصل البسيط'''}} هو أن توضع الشكلات فوق الحروف كلها باستثناء حروف المد}} مادام يوجد هناك حل التحويل والتوضيح تحياتي [[مستخدم:Nehaoua|<span style="color:#000000; font-size:18px; font-family:traditional arabic;">'''نحاوة'''</span>]] <sup>([[نقاش المستخدم:Nehaoua|<span style="color:blue; font-size:small; font-family:traditional arabic;">'''راسلني'''</span>]])</sup> 21:04، 27 فبراير 2026 (ت ع م)
::{{ر|أبو هشام}} اعتماد المقترح -بعد النقاش- كسياسة رسمية هو السبيل الضامن لتفادي التكرار والخلط، فالخطأ ليس ناجما عن مقترح دون الآخر وإنما عن غياب سياسة رسمية ملزِمة. في مسودتك ألاحظ تقريبا توافقا تاما بخصوص كيفية وضع الشكلات. النقطة التي فيها خلاف هي بخصوص الكلمات المنفردة برسمها أنضع شكلات في عناوينها أم نتركها بدون شكلات. إذا اعتمدنا الصورة الحالية التي شرحتُها سيكون ويكاموس العربي مرتبطا بوصلات أنترويكي تلقائية مع باقي القواميس، بحيث كل وصلة إلى ويكاموس تكون إما صفحة توضيح (بدون حركات) أو صفحة تعريف (بدون حركات)، نظرا لكون الويكاموسات الكبرى تعتمد عناوين عربية بدون حركات مع جمع المتشابهة في صفحة واحدة -أنا أقول أن جمع متشابهات الرسم في صفحة واحدة غير متناسب مع الغنى اللغوي الذي تتمتع به العربية كما أنه سيعيق الاسترسال في التعريفات فضلا عن تقزيمه لعدد الصفحات العربية بالقاموس-. أما اقتراحك واقتراح {{ر|حبيشان}} القاضي بوضع شكلات حتى في عناوين الكلمات المنفردة برسمها فسيجعل ويكاموس معزولا نسبيا عن باقي القواميس، سيتصفح القارئ كلمات عربية في ويكاموس الإنجليزي أو الفرنسي ولن يجد وصلة أنترويكي إلى ويكاموس العربي، نأخذ على سبيل المثال كلمة استعمال وهي منفردة برسمها، لو كانت بدون شكلات "[[خاص:فرق/792168|استعمال]]" ستكون لها 14 وصلة أنترويكي مع مختلف الويكاموسات، بينما لو كانت بشكلات "[[خاص:فرق/1076577|اِسْتِعْمَال]]" فلن تكون مرتبطة بأي وصلة أنترويكي. بالمناسبة [[خاص:فرق/1071100|اِستعمال]] ينبغي دمجها. [[مستخدم:Najem Ajem|'''<span style="color:#00008B">--الناجم العاجم</span>''']] [[نقاش المستخدم:Najem Ajem|'''<span style="color:#00008B">''❄''</span>''']] 18:52، 1 مارس 2026 (ت ع م)
:::أنا أميل إلى تشكيل كلّ العناوين، لأنّ استثناءَ بعض الكلمات فيه تضاربٌ في السياسة ويؤدّي إلى ارتباك القرّاء، والمنفعةُ منه محدودة. في رأيي، مسألةُ الربط والوصلات تحتاج إلى تفكيرٍ أعمق لاقتراح حلٍّ تقني يناسب الويكاموسات التي تستعمل الحركات. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 13:03، 10 مارس 2026 (ت ع م)
{{خلاصة}} أجريتُ '''تعديلات طفيفة''' في نص السياسة مع الإبقاء على جوهرها كما كان، يرجى مطالعة النسخة المحيّنة، أرى أن نعتمدها '''سياسة رسمية'''. النقاش يبقى دائما مفتوحا في حال وجود ملاحظات مستقبلية. [[مستخدم:Najem Ajem|'''<span style="color:#00008B">--الناجم العاجم</span>''']] [[نقاش المستخدم:Najem Ajem|'''<span style="color:#00008B">''❄''</span>''']] 08:11، 6 مارس 2026 (ت ع م)
== أداة مراجعة معاني الأفعال ==
في إطار العمل على إحياء ويكاموس والربط مع ويكي بيانات (تتمة لنقاش [[ويكاموس:الميدان#قوالب جديدة + إنشاء صفحات الأفعال]])، أنشأنا أداة لمراجعة معاني الأفعال العربية ونشرها:
{{وسط|https://ar-senses.toolforge.org}}
يمكن الاطلاع على توثيق الأداة على [[ويكاموس:ويكي بيانات#أداة مراجعة المعاني (تجريبي)]].
تحتوى الأداة على معاني مستخلصة آليا بالبحث في 16 معجما عربيا (لسان العرب، تاج العروس، المعجم الوسيط، القاموس المحيط، وغيرها) وبالاعتماد على نموذج لغوي ضخم لتجميع المعاني وترتيبها. الهدف من الأداة هو تمكين المحررين من مراجعة المعلومات ثم نشرها في ويكي بيانات وويكاموس.
بدأنا بعدد محدود من الأفعال. أرجو من الزملاء تجربتها وإبداء ملاحظاتهم، سواء على المعاني المُستخلصة أو على واجهة الأداة أو تجربة المستخدم، [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 00:58، 23 مارس 2026 (ت ع م)
:إشارة إلى الزملاء النشطين في المشروع @[[مستخدم:حبيشان|حبيشان]] @[[مستخدم:Avicenno|Avicenno]] @[[مستخدم:Najem Ajem|Najem Ajem]] @[[مستخدم:أبو هشام|أبو هشام]] @[[مستخدم:Nehaoua|Nehaoua]] @[[مستخدم:كريم أحمد|كريم أحمد]] @[[مستخدم:RASHEEDYE|RASHEEDYE]] @[[مستخدم:أويس2003|أويس2003]] @[[مستخدم:ماهر الماهر|ماهر الماهر]]. شكرا. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 19:25، 27 مارس 2026 (ت ع م)
::مرحبًا @[[مستخدم:ForzaGreen|ForzaGreen]] أداة رائعة، جربت عدة أمور، فقط لدي بعض الملاحظات:
::* عدم ذكر معجم الغني مصدرًا
::* عدم إمكانية انشاء وصلات داخلية في المعاني
::* عدم إمكانية إعادة إنشاء صفحة ويكاموس (الموجودة قد لا تُلبي نفس المقاييس، أو ناقصة) كما لا يمكن استخراج النموذج لديل صفحة موجودة
::تحياتي [[مستخدم:Nehaoua|<span style="color:#000000; font-size:18px; font-family:traditional arabic;">'''نحاوة'''</span>]] <sup>([[نقاش المستخدم:Nehaoua|<span style="color:blue; font-size:small; font-family:traditional arabic;">'''راسلني'''</span>]])</sup> 21:17، 27 مارس 2026 (ت ع م)
:::شكرا @[[مستخدم:Nehaoua|Nehaoua]] على التجريب وعلى الملاحظات القَيّمة.
:::* مع الأسف ليس عندي معجم الغني بصيغة رقمية.
:::* ملاحظة مهمة في موضوع الوصلات الداخلية. سأبحث عن حل تقني في ويكي بيانات وفي قالب {{قا|معجمية}}.
:::* بالنسبة لإعادة إنشاء صفحات ويكاموس، كان أحد الاقتراحات في [https://ar.wiktionary.org/wiki/%D9%88%D9%8A%D9%83%D8%A7%D9%85%D9%88%D8%B3:%D8%A7%D9%84%D9%85%D9%8A%D8%AF%D8%A7%D9%86#c-%D8%AD%D8%A8%D9%8A%D8%B4%D8%A7%D9%86-20260121100000-ForzaGreen-20260117223000 النقاش السابق] هو عدم حذف المحتوى الحالي في ويكاموس. لذلك كان التركيز في تطوير الأداة على إنشاء معاني جديدة فقط، في ويكي بيانات، ثم إنشاء صفحات ويكاموس إن لم تكن موجودة.
:::[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 09:30، 28 مارس 2026 (ت ع م)
::::مرحبًا @[[مستخدم:ForzaGreen|ForzaGreen]] شكرا لردك، بالنسبة لإعادة إنشاء صفحات ويكاموس، حبذا لو تُنشئ أو تفعل أداة نسخ محتوى انشاء صفحة ويكاموس وكأننا ستُنشئها من جديد، حتى يتسنى النقل اليدوي إلى الصفحة الموجودة والتعديل بما يوافق الحالة. تحياتي [[مستخدم:Nehaoua|<span style="color:#000000; font-size:18px; font-family:traditional arabic;">'''نحاوة'''</span>]] <sup>([[نقاش المستخدم:Nehaoua|<span style="color:blue; font-size:small; font-family:traditional arabic;">'''راسلني'''</span>]])</sup> 11:25، 28 مارس 2026 (ت ع م)
:::::@[[مستخدم:Nehaoua|Nehaoua]] {{تم}}. الآن في صفحات مراجعة الأفعال الموجودة سلفا في ويكاموس، والتي أُنشئت خارج الأداة، مثلا صفحة [https://ar-senses.toolforge.org/review/L1489133 أَدَّبَ L1489133]، يظهر سطر جديد: "''لمعاينة ما كانت الأداة ستنشئه لو لم تكن الصفحة موجودة في ويكاموس: (زر معاينة)''".
:::::هل هذا ما قصدت ؟ [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 18:36، 28 مارس 2026 (ت ع م)
::::::مرحبًا @[[مستخدم:ForzaGreen|وائل]] بوركت، هذا ما تمنيت وقد حققته، شكرًا مرة أخرى [[مستخدم:Nehaoua|<span style="color:#000000; font-size:18px; font-family:traditional arabic;">'''نحاوة'''</span>]] <sup>([[نقاش المستخدم:Nehaoua|<span style="color:blue; font-size:small; font-family:traditional arabic;">'''راسلني'''</span>]])</sup> 19:01، 28 مارس 2026 (ت ع م)
::@[[مستخدم:ForzaGreen|ForzaGreen]] عمل جبار تشكر عليه، سأجربها، وافضل أن تستعمل رابط إلى موقع تراث بدلا من موقع الشاملة، لأنه يعرض نسخة الpdf بسهولة والنسخة النصية لم تنقل جميع الاصطلاحات من النسخة المطبوعة. [[مستخدم:حبيشان|حبيشان]]<sup>('''[[نقاش المستخدم:حبيشان|ن]]''')</sup> 02:11، السبت 9 شوال 1447هـ (+3) 23:11، 27 مارس 2026 (ت ع م)
:::{{تم}}. الآن تظهر روابط موقع تراث بدل الشاملة.
:::وفي موضوع ذو صلة، عدلتُ سابقا [[وحدة:Cite Q]] المستعملة في {{قا|استشهاد بويكي بيانات}} وعناصر المعاجم في ويكي بيانات، بحيث يؤدي رابط المرجع مباشرة إلى الجزء ورقم الصفحة في موقع archive.org (إن كانت طبعة المعجم متوفرة في الموقع). [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 10:31، 28 مارس 2026 (ت ع م)
:أقترح وضع رابط لها في الصفحة الرئيسة لتسهيل الوصول إليها. [[مستخدم:حبيشان|حبيشان]]<sup>('''[[نقاش المستخدم:حبيشان|ن]]''')</sup> 23:11، الأحد 23 ذو القعدة 1447هـ (+3) 20:11، 10 مايو 2026 (ت ع م)
== نشر رابط جهات الاتصال القانونية والسلامة في تذييل الويكي الخاص بكم ==
<section begin="Message"/>
'''جهات الاتصال القانونية والأمنية'''
مرحبًا بالمجتمع، وفّرت مؤسسة ويكيميديا [[wmf:Special:MyLanguage/Legal:Wikimedia Foundation Legal and Safety Contact Information|صفحة موحّدة لجهات الاتصال القانونية والأمنية]] ليُربط بها في تذييل الويكي الخاص بكم، لضمان الوصول إلى معلومات قانونية دقيقة. يُعدّ ذلك متطلبًا تنظيميًا. لقد نشرنا بالفعل روابط في ويكيبيديا الإنجليزية والألمانية والإيطالية والإسبانية وغيرها من الويكيات، وسننشرها في الويكي الخاص بكم قريبًا. [[m:Special:MyLanguage/Wikimedia_Foundation_Legal_and_Safety_Contacts_FAQ|يرجى قراءة المزيد في صفحة المشروع]] وترك أي تعليقات في هذا القسم أو في [[m:Special:MyLanguage/Talk:Wikimedia Foundation Legal and Safety Contacts FAQ|صفحة النقاش]].
<section end="Message"/>
-- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 13:31، 25 يونيو 2026 (ت ع م)
<!-- الرسالة التي أرسلها User:Sannita (WMF)@metawiki باستخدام القائمة في https://meta.wikimedia.org/w/index.php?title=User:Sannita_(WMF)/Mass_sending_test&oldid=30731267 -->
== Request for comment (the future of Abstract Wikipedia) ==
<bdi lang="en" dir="ltr" class="mw-content-ltr">
Apologies if this has not yet been translated into your wiki's language. {{int:Please-translate}}
You are invited to voice your opinions in a [[:m:Requests for comment/The future of Abstract Wikipedia|request for comment about the future of Abstract Wikipedia]]. {{Int:Feedback-thanks-title}}
[[:m:User:Kowal2701|Kowal2701]] ([[:m:User talk:Kowal2701|talk]]) 12:25، 24 يوليو 2026 (ت ع م)
</bdi>
<!-- الرسالة التي أرسلها User:DreamRimmer@metawiki باستخدام القائمة في https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 -->
2cit2eztawxocisju2zbgvueg74tgxv
1097665
1097664
2026-07-27T21:15:09Z
حبيشان
31560
/* تحديث لوحدات الاستشهاد */ قسم جديد
1097665
wikitext
text/x-wiki
{{/مقدمة}}__فهرس__
== تشكيل عنوان المقالة في ويكاموس العربي والنسخ اللغوية الأخرى ==
يعتمد ويكاموس العربي تشكيل اسم الصفحة باعتبار أنه مع اختلاف التشكيل فإننا المفردة مختلفة عن أختها، لكن أغلب النسخ اللغوية الأخرى ومن أهمها الإنجليزي تعتمد اسم الصفحة بدون تشكيل وتجمع جميع المفردات التي تشترك في نفس رسم الكلمة بدون تشكيل في صفحة واحدة.
;تأثير هذا الاختلاف:
يؤثر هذه الاختلاف بين النسخ اللغوية في الربط بين النسخ اللغوية المختلفة لأن الربط يكون باسم الصفحة وإذا وجدت صفحة مشكلة وصفحة غير مشكلة فإنهما صفحتان مختلفتان لذا فإنها لا تربط لا حظ مثلا صفحة [[قَتَلَ]] تجد أنها مربوطة مع النسخة الفرنسية فقط ولكن افتح صفحة [[:en:قتل]] تجد أنها مربوطة ب 25 نسخة لغوية، وهذا يؤثر على الاستفادة من المحتوى العربي في ويكاموس العربي بشدة.
لذا فأرجو إعادة النظر في منهجية تشكيل اسم الصفحةة في ويكاموس، وهذا نقاش مفتوح وكل يذكر ما يراه صوابا مع الأسباب، وقد فتحت نقاشا في مجموعة التلجرام فتبين أن ويكاموس الفرنسي والإيطالي يلتزمان بالتشكيل في عنوان الصفحة. وهذا الأمر يستوجب وجود سياسة عالمية لأنها تحدد الربط بين المشاريع. [[مستخدم:حبيشان|حبيشان]] ([[نقاش المستخدم:حبيشان|نقاش]]) 08:54، 17 نوفمبر 2025 (ت ع م)
:[[ويكاموس:الميدان/أرشيف/2017#مفردات ويكاموس|نقاش سابق]]، إشارة إلى المشاركين فيه @[[مستخدم:أحمد ناجي|أحمد ناجي]] @[[مستخدم:Avicenno|Avicenno]] @[[مستخدم:أبو هشام|أبو هشام]] @[[مستخدم:أسامة الجزري|أسامة الجزري]] @[[مستخدم:ميسرة|ميسرة]] @[[مستخدم:أبو آسر|أبو آسر]] @[[مستخدم:يوسف عاشق الجبل|يوسف عاشق الجبل]]. [[مستخدم:حبيشان|حبيشان]] ([[نقاش المستخدم:حبيشان|نقاش]]) 12:03، 17 نوفمبر 2025 (ت ع م)
::@[[مستخدم:حبيشان|حبيشان]] أنا مؤيد لإزالة التشكيل من العناوين وإضافة المفردات المشكلة المرجوة لذات الصفحة لتسهيل الوصول إلى المفردة والمفردات ذات الصلة وهذا المعمول به في المواد غير العربية ومخالفة المواد العربية يعسر البحث. مثلا عندنا [[أَكْل]] و[[أَكَلَ]] لكن في المفردات غير العربية عندنا مادة واحدة لاسم ولفعل ولصفة مثل [[present]]، فأقترح إزالة التشكيل في العناوين وكتابة المفردات المرجوة في الصفحة ومنها اشتقاقات الجذر ولتزل صفحات التوضيح. [[مستخدم:كريم رائد|<span style="font-size:medium;font-family:Script MT Bold;color:black;">كريم {{أخضر|رائد}}</span> ]] [[نقاش المستخدم:كريم رائد|<span style="font-size:medium;font-family:Script MT Bold;color:red;">نقاش</span>]] 22:24، 17 نوفمبر 2025 (ت ع م)
::هذا النقاش يثار كلما جاء وفد من ويكيبيديا وقارن ويكاموس العربي بالنسخ اللغوية الأخرى. ويكاموس العربي يعتمد على صفحات التوضيح منذ زمن بعيد، وهي كفيلة بربط هذه النسخة مع باقي النسخ الأخرى، مثلا صفحة [[قتل]] مربوطة ب25 نسخة، وصفحة [[كتب]] ب24 نسخة، وكذا صفحة [[نظر]] مرتبطة ب19 نسخة. فإذا كنت تدعم العناوين بدون تشكيل فهو أمر معمول به أصلا (صفحات التوضيح) وإذا كنت تريد أن نزيل الوصلات ونجمع المحتويات كلها في صفحة واحدة فهذا لن يزيد من الربط، بل سيبقى الربط كما هو. أصلا لا توجد مشكلة في الربط، بل المشكلة في النقص العددي لصفحات ويكاموس، حتى أن صفحة [[ربط]] غير موجودة لحظة كتابتي لهذا التعليق. أقول أنه ليس على ويكاموس العربي أن يتبع ويكاموس الإنجليزي أو الفرنسي، إذا فكرنا من وجهة نظر موضوعية، فإن الأصل هو وجود صفحة واحدة لكل كلمة، [[قَتَلَ]] ليست هي نفسها [[قَتَّلَ]] أو [[قَتْل]]، لذا وجود صفحات مستقلة هو أمر طبيعي وجيد ويُتيح إمكانية التفصيل في شرح مختلف المعاني. ثم مع هذا توجد صفحة التوضيح [[قتل]] (بدون تشكيل) التي تكون مرتبطة مع مختلف النسخ اللغوية. '''هذا ليس عيب، بل ميزة معمول بها منذ زمن طويل'''. [[مستخدم:Najem Ajem|'''<span style="color:#00008B">--الناجم العاجم</span>''']] [[نقاش المستخدم:Najem Ajem|'''<span style="color:#00008B">''❄''</span>''']] 23:11، 17 نوفمبر 2025 (ت ع م)
:::@[[مستخدم:Najem Ajem|Najem Ajem]] لا أرى ميزة إضافية لفصل المفردات حسب شكلها إلا زيادة عدد الصفحات، بينما نخسر مميزات إضافية ذكرتها أدنا. [[مستخدم:حبيشان|حبيشان]] ([[نقاش المستخدم:حبيشان|نقاش]]) 21:21، 22 نوفمبر 2025 (ت ع م)
::أتفق مع الزميل @[[مستخدم:Najem Ajem|الناجم العاجم]] في الحفاظ على أسماء الصفحات بالتشكيل، مع وجود صفحات التوضيح. أُضيف إلى ما قيل: في المستقبل نُريد ربط صفحات ويكاموس مع الوحدات المُعجمية في ويكي بيانات، وهذا سيكون أسهل إذا كانت الصفحات مُستقلة. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 09:23، 20 نوفمبر 2025 (ت ع م)
:::@[[مستخدم:ForzaGreen|ForzaGreen]] الصفحة في ويكاموس تقبل جميع اللغات التي تستعمل نفس رسم الكلمة، بينما المعجمية في ويكي بيانات مقيدة بلغة معينة، فالربط لا يمكن أن يتم آليا، فما دام يدويًا فلا ميزة إضافية لفصل الكلمات حسب شكلها في صفحات مستقلة. [[مستخدم:حبيشان|حبيشان]] ([[نقاش المستخدم:حبيشان|نقاش]]) 21:18، 22 نوفمبر 2025 (ت ع م)
:: {{ضد}} التشكيل ضرورة حتمية في المعاجم، ووجود نفس الرسم في معاجم أخرى يُعدّ جهدًا ضائعًا (إذ تصبح صفحة الكلمة مكررة بعدّة لغات، ولا أعلم ما الفائدة!). الأصل أن تُربط المفردة بما يقابلها بالترجمة، لا بالرسم. الأمر نفسه ينطبق على الكلمات غير العربية (أو على الأقل غير المنطوقة بلهجات عربية) في ويكاموس العربي؛ فوجودها مكررة في عدّة معاجم بلغات أخرى لا فائدة منه. منذ مدة وأنا أفكر في طريقة لربط الكلمات بين المعاجم اللغوية، ووجدت — حتى الآن — أن قسم الترجمة يمكنه القيام بذلك، لكنه بدوره يحتاج إلى ربط آلي. تحياتي --[[مستخدم:Nehaoua|<span style="color:#000000; font-size:18px; font-family:traditional arabic;">'''نحاوة'''</span>]] <sup>([[نقاش المستخدم:Nehaoua|<span style="color:blue; font-size:small; font-family:traditional arabic;">'''راسلني'''</span>]])</sup>
::: {{ر|Nehaoua}} لن نفقد التشكيل عندما نجمع المفردات المتفقة في الرسم في صفحة واحدة، فستكون المفردات في عناوين فرعية وهي المسماة في ويكاموس الإنجليزي headwords، وكل نسخ ويكاموس متعددة لغات المفردات، فالمفردات العربية موجودة (أو لها أن تكون موجودة) في كافة النسخ اللغوية الأخرى، وللأسف المفردات العربية في ويكاموس الإنجليزي أكثر من العربي.--[[مستخدم:حبيشان|حبيشان]] ([[نقاش المستخدم:حبيشان|نقاش]]) 21:26، 22 نوفمبر 2025 (ت ع م)
:::مرحبًا @[[مستخدم:حبيشان|حبيشان]] رسمُ الكلمةِ العربية لا يكون مكتملًا إلا بالتشكيل، وكلُّ صيغةٍ مشكلة تُعدّ مفردة مستقلة، حتى ولو اشتركت في الرسم، لأن اختلاف التشكيل يؤدي إلى اختلافٍ في المعنى والمغزى. ولا يمكن القياس على الإنجليزية، فهي تعتمد على [[w:صائت|الصوائت]] التي تُميّز بين الكلمات (والمقابل لها في اللغة العربية الحركات الثلاثة -الفتح والكسر والضم-)، مثل:
:::*[https://en.wiktionary.org/wiki/pin pin] (دبوس)
:::*[https://en.wiktionary.org/wiki/pun pun] (تورية)
:::*[https://en.wiktionary.org/wiki/pan pan] (مِقلاة)
:::ولا تُعدّها الإنجليزية مفردة واحدة.
:::أمّا ما ذُكر من أن {{مض|المفردات العربية في ويكاموس الإنجليزي أكثر من العربي}}} فهذا – في الواقع – مثال واضح على الجهد الضائع، إذ تُكرَّر الصفحات في معاجم أخرى بدل تطوير النسخة العربية ذاتها. تحياتي [[مستخدم:Nehaoua|<span style="color:#000000; font-size:18px; font-family:traditional arabic;">'''نحاوة'''</span>]] <sup>([[نقاش المستخدم:Nehaoua|<span style="color:blue; font-size:small; font-family:traditional arabic;">'''راسلني'''</span>]])</sup> 18:55، 23 نوفمبر 2025 (ت ع م)
::::@[[مستخدم:Nehaoua|Nehaoua]] لابد من تشكيل المفردة عند ذكرها والشرح، وليس هذا محل خلاف، ولا خلاف أن الاختلاف في التشكيل غالبا يعني مفردة مختلفة، لكن النقاش عن جمع المفردات في صفحة واحدة وفقا لرسمها المجرد من التشكيل، فويكاموس العربي لم يتبع نهج المعاجم العربية في جمع المفردات تحت جذر واحد وكذلك لم يتبع نهج أغلب نسخ ويكاموس في جمع المفردات التي تتففق في الحروف في مدخل واحد، وهذا الطريقة المتفردة تفقد ويكاموس العربي بعض المميزات التقنية، بعض الميزات الأخرى التي ذكرتها. [[مستخدم:حبيشان|حبيشان]] ([[نقاش المستخدم:حبيشان|نقاش]]) 07:36، 24 نوفمبر 2025 (ت ع م)
:::::@[[مستخدم:Nehaoua|Nehaoua]] عفوًا pin وpun وpan من جدوز مختلفة لا علاقة لها ببعض. كل واحدة free base morpheme لا صلة لها بالأخرى. أما عن الحركات العربية فهي تعود لجذر واحد فلا تصح المقارنة. [[مستخدم:كريم رائد|<span style="font-size:medium;font-family:Script MT Bold;color:black;">كريم {{أخضر|رائد}}</span> ]] [[نقاش المستخدم:كريم رائد|<span style="font-size:medium;font-family:Script MT Bold;color:red;">نقاش</span>]] 08:29، 24 نوفمبر 2025 (ت ع م)
:::@[[مستخدم:Nehaoua|Nehaoua]] أيضا لا يمكن حصر التشكيل مقابلًا للصوائت لأن منها short vowel sounds ومنها long vowel sounds التي هي أقرب إلى حروف العلة. [[مستخدم:كريم رائد|<span style="font-size:medium;font-family:Script MT Bold;color:black;">كريم {{أخضر|رائد}}</span> ]] [[نقاش المستخدم:كريم رائد|<span style="font-size:medium;font-family:Script MT Bold;color:red;">نقاش</span>]] 19:26، 24 نوفمبر 2025 (ت ع م)
::::::مرحبًا @[[مستخدم:كريم رائد|كريم رائد]] لا يوجد مفهوم الجذر في الإنجليزية، وأنا متفق أنه {{مض|لا تصح المقارنة}} لأن الطلب اصلا مبني على المقارنة! تحياتي [[مستخدم:Nehaoua|<span style="color:#000000; font-size:18px; font-family:traditional arabic;">'''نحاوة'''</span>]] <sup>([[نقاش المستخدم:Nehaoua|<span style="color:blue; font-size:small; font-family:traditional arabic;">'''راسلني'''</span>]])</sup> 18:39، 24 نوفمبر 2025 (ت ع م)
:::::::@[[مستخدم:Nehaoua|Nehaoua]] بل يوجد؛ طالع إن شئت Root (linguistics) ومقارنتك تشكيل العناوين بتلك المفردات في غير محلها لأن كل من هذه المفردات له معنى مختلف وجذره مختلف. [[مستخدم:كريم رائد|<span style="font-size:medium;font-family:Script MT Bold;color:black;">كريم {{أخضر|رائد}}</span> ]] [[نقاش المستخدم:كريم رائد|<span style="font-size:medium;font-family:Script MT Bold;color:red;">نقاش</span>]] 19:09، 24 نوفمبر 2025 (ت ع م)
::::::::@[[مستخدم:كريم رائد|كريم رائد]] تمتاز اللغات السامية بأنها جذرية واشتقاقية؛ إذ يمكن اشتقاق مئات الكلمات من الجذر الواحد بتغييرات بسيطة ومنها التشكيل، في حين أن الـ '''Root '''في اللغات الأخرى يتغيّر عادةً بإضافة السوابق واللواحق (أمور معروفة لا تحتاج لإطالة).
::::::::{{مض|ومقارنتك تشكيل العناوين بتلك المفردات في غير محلّها}}، لأن المقصود هو أن التشكيل في العربية يوافق الصوائت؛ فالفتحة تقابلها "A"، والضمة "O"، والكسرة "I"، وهذا تحديدًا ما أردتُ مقارنته (وأعتذر عن إعادة ما سبق أن قلتُه).
::::::::وأكتفي هنا حتى لا يتحول النقاش إلى جدال. وفي النهاية، ما الفائدة من جمع تعريفات جميع معاني الرسم «عبر» في صفحة واحدة، من جمع [[عِبْرَة|لعِبرة]] إلى الفعل [[عَبَرَ|عَبَرَ]] وغيرها؟
::::::::أكتفي بهذا القدر وقد بيّنتُ وجهة نظري. تحياتي. [[مستخدم:Nehaoua|<span style="color:#000000; font-size:18px; font-family:traditional arabic;">'''نحاوة'''</span>]] <sup>([[نقاش المستخدم:Nehaoua|<span style="color:blue; font-size:small; font-family:traditional arabic;">'''راسلني'''</span>]])</sup> 19:24، 24 نوفمبر 2025 (ت ع م)
:::::مرحبًا @[[مستخدم:حبيشان|حبيشان]]،
:::::* {{مض|ولا خلاف أن الاختلاف في التشكيل غالبًا يعني مفردة مختلفة}} فكلُّ اختلافٍ في التشكيل يُنتج مفردةً مختلفة، وبالتالي مدخلة مختلفة.
:::::* {{مض|النقاش عن جمع المفردات في صفحة واحدة وفقًا لرسمها المجرَّد من التشكيل}} وصفحات التوضيح تكفي في هذا الباب.
:::::* {{مض|فويكاموس العربي لم يتبع نهج المعاجم العربية في جمع المفردات تحت جذر واحد وكذلك لم يتبع نهج أغلب نسخ ويكاموس في جمع المفردات التي تتفق في الحروف في مدخل واحد}} لا تتبع جميع المعاجم هذا النهج، فالمعجم الوسيط مثلًا لم يجمع كل المفردات ذات الرسم الواحد؛ انظر مثلًا مدخل: [https://shamela.ws/book/7028/640#p1 «عين»]، حيث تكرّرت عدة مرات، وبينها تعريفات لكلمات مختلفة الرسم. وكذلك نحن نعمل في مشروع لا يقتضي النسخ الحرفي للمطبوع.
:::::* {{مض|وهذه الطريقة المتفردة تفقد ويكاموس العربي بعض المزايا التقنية}} إن اختلاف الرسم والمفردات في العربية أمرٌ أصيل، ووجود صعوبات تقنية حالية لا يبرّر تقليل شأن اللغة أو التخفيف من خصائصها؛ فقد كانت كتابة العربية يومًا ما مستحيلة تقنيًا، ولو اتبعنا المنطق نفسه لكتبناها اليوم بالأحرف اللاتينية.
:::::تحياتي [[مستخدم:Nehaoua|<span style="color:#000000; font-size:18px; font-family:traditional arabic;">'''نحاوة'''</span>]] <sup>([[نقاش المستخدم:Nehaoua|<span style="color:blue; font-size:small; font-family:traditional arabic;">'''راسلني'''</span>]])</sup> 19:09، 24 نوفمبر 2025 (ت ع م)
=== مميزات جمع المفردات في صفحة واحدة إذا اتفقت في رسهما الخالي من التشكيل ===
# أولا بالنظر إلى معاجمنا العربية الأصيلة فيهم تجمع المفردات لأكثر من ذلك فكل المفردات تحت جذر واحد تجمع في مدخل واحد في المعجم العربي بل بعض المعاجم تضم إليها التقاليب (جبذ، جذب، بجذ...)، فالجمع المقترح أقرب إلى العمل المعمول به في معاجمنا من الطريقة الحالية.
# كثير من الكلمات العربية يكون فيها أكثر من وجه في الضبط لدينا مثلا كلمة «إِصبَع» فيها تسع لغات حيث يجوز في أولها وثالثها الحركات الثلاث، فعلى هذا سيكون للأصبع 9 صفحات وهي مفردة واحدة ولكن فيها عدة أوجه أو لغات، وكثير من مفردات اللغة يجوز في حرف من حروفها أكثر من حركة ( ومنها باب المثلث في اللغة)، لذا فجمعها في صفحة أيسر في الوقوف على الفائدة، وأبعد من إيهام التغاير.
# أن القارئ ربما يريد أن يستفيد ما هو الضبط الصحيح لكلمة معينة، وجود أكثر من عنوان مشكولة يؤخره في البحث عن الكلمة.
# أن القارئ لا يستطيع أن يصل بسهولة من صفحة مفردة إلى ما يقابلها في اللغات الأخرى فيحتاج أن ينتقل غلى صفحة توضيح أو أن يبحث عنها.
# نفس الشيء بالنسبة للقارئ في النسخ الأخرى الذي يرغب أن يطلع على النسخة العربية.
--[[مستخدم:حبيشان|حبيشان]] ([[نقاش المستخدم:حبيشان|نقاش]]) 21:15، 22 نوفمبر 2025 (ت ع م)
:{{ر|حبيشان}}
:# نحن في قاموس إلكتروني، حيث تتوفر الوصلات وصناديق البحث، لماذا سنتبع طريقة الكتب القديمة.
:# عندما يكون للكلمة الواحدة أكثر من تهجئة واحدة، فحينئذ نضع صفحة تحتوي على المعنى، وصفحات أخرى تحوّل أو توصل إليها، مع ذكر هذه الملاحظة في صفحة المعنى. وهذا طبيعي جدا حتى أن النسخ الأخرى تقوم بالأمر نفسه، مثلا في ويكاموس الإنجليزي صفحة [[:en:colour|colour]] لا تحتوي على المعاني، ذكروا فقط أنها تهجئة مختلفة للكلمة [[:en:color|color]].
:# النقطة 2 تفيد أيضا في حال وجود تهجئات خاطئة وشائعة.
:# من المفترض أن تحتوي الصفحات على قالب {{قا|أيضا}} في الأعلى، ويشير إلى صفحة التوضيح (التي تتضمن الكلمات التي لها الرسم نفسه) كما هو معمول به في النسخ الأخرى.
:# القارئ من النسخ الأخرى سيجد صفحة التوضيح من خلال وصلات الأنترويكي. بالمناسبة العناوين بالتشكيل موجودة في نسخ أخرى غير العربية.
:[[مستخدم:Najem Ajem|'''<span style="color:#00008B">--الناجم العاجم</span>''']] [[نقاش المستخدم:Najem Ajem|'''<span style="color:#00008B">''❄''</span>''']] 23:11، 22 نوفمبر 2025 (ت ع م)
* في الوضع الحالي وبعد ترتيب المفردات في التصانيف، فلا بأس عندي ببقاء عناوين المشكلة، مع الآتي:
** تنقيح تعليمات [[ويكاموس:صيغة الكتابة/الحركات والتشكيل|تشكيل العناوين]] ووسمها سياسةً لكي تكون ملزمة.
** جعل إنشاء صفحات التوضيح (بدون شكل) آليا عبر بوت، وكذلك الوصلة إليها من صفحات المفردات المشكلة.--[[مستخدم:حبيشان|حبيشان]]<sup>('''[[نقاش المستخدم:حبيشان|ن]]''')</sup> 18:08، الأربعاء 2 شعبان 1447هـ (+3) 15:08، 21 يناير 2026 (ت ع م)
:{{ر|حبيشان}} راجعتُ صفحة [[وق:تشكيل|تشكيل العناوين]]، وجعلت القواعد أكثر وضوحا، يرجى إلقاء نظرة عليها. [[مستخدم:Najem Ajem|'''<span style="color:#00008B">--الناجم العاجم</span>''']] [[نقاش المستخدم:Najem Ajem|'''<span style="color:#00008B">''❄''</span>''']] 14:09، 22 يناير 2026 (ت ع م)
::مرحبًا @[[مستخدم:Najem Ajem|Najem Ajem]] شكرًا لتوضيحك [[مستخدم:Nehaoua|<span style="color:#000000; font-size:18px; font-family:traditional arabic;">'''نحاوة'''</span>]] <sup>([[نقاش المستخدم:Nehaoua|<span style="color:blue; font-size:small; font-family:traditional arabic;">'''راسلني'''</span>]])</sup> 11:49، 28 يناير 2026 (ت ع م)
=== نقاش حول [[ويكاموس:صيغة الكتابة/الحركات والتشكيل]] (مقترح سياسة) ===
* {{ر|Najem Ajem}} اعتذر عن تأخري بالرد بسبب انشغالي بالخارج، المقترح فيه بعض القصور، وايضا هناك [[خاص:فرق/1076134|تغيير محوري]] أضيف بعد الخلاصة لم يناقش بالمرة، لذا أرجو حذف الخلاصة والعودة إلى النقاش، وهذه الملاحظات على الصيغة الحالية:
** تغير كلمة (حركات) إلى (شكلات)، لأن الشدة ليست حركة وكذلك السكون عند البعض.
** توضح أحرف المد بـ (وهي الألف (ا) مطلقا، والواو (و) الساكنة المضموم ما قبلها، والياء (ي) الساكنة <s>المضموم</s> المكسور ما قبلها).
** اقترح تعديل النقطة الثانية إلى:
::: {{مض|يترك محل الإعراب (آخر الكلمة المفردة) في الكلمات المعربة بالحركات بدون حركة أو سكون -وتبقى الشدة إذا كان مشددًأ-؛ لأن حركته تتغير حسب موقع الكلمة في الجملة}} وعليه فإن «مُعَلِّمُونَ» تشكل النون وإن كانت آخر الكلمة لأن معلمون تعرب بالحروف.
::: بتعديل هذه النقطة نسنغني عن النقاط بعدها إلا إذا قصد بها التوضيح.
** في نقطة الأفعال يفهم منها أنه يجب شكل آخر المضارع ولكنه معرب والأولى أن يشمله ما يشمل الأسماء لذلك أقترحت هنا أن تكون النقطة عامة للأسماء والأفعال واستخدمت مصطلح (الكلمات).
** لو ينص على وجوب نقط الياء المتطرفة تمييزا لها عن الألف المطوية.
** ماذا عن همزة الوصل هل تشكل أم لا، لو تنص القاعدة على ذلك صراحة وهل تستعمل ألف مجردة عن الهمزة أم (ٱ) ألف عليها ص.
** لا أتفق مع تجريد العنوان المدخلة من الشكل عندما تحتمل الكلمة قراءة واحدة فقط، لأسباب:
*** أن ذلك إذا غلب على ظن من أدخلها قد يكون مخطئًا فنضطر للنقل بعد ذلك.
*** أن هذه القاعدة ربما تؤخر من يريد إضافة مفردة فيلتزم بالبحث هل يشاركها في الرسم مفردة أخرى أم لا.
*** المشروع لا يميمز صفحات توضيح المفردات إلا بالتجريد من التشكيل فعندما يرى المستخدم عنوانا غير مشكل يظن أنها صفحة توضيح.
--[[مستخدم:حبيشان|حبيشان]]<sup>('''[[نقاش المستخدم:حبيشان|ن]]''')</sup> 21:10، الثلاثاء 7 رمضان 1447هـ (+3) 18:10، 24 فبراير 2026 (ت ع م)
:إشارة @[[مستخدم:Nehaoua|Nehaoua]] @[[مستخدم:أبو هشام|أبو هشام]] @[[مستخدم:كريم أحمد|كريم أحمد]] @[[مستخدم:القلموني|القلموني]]. [[مستخدم:حبيشان|حبيشان]]<sup>('''[[نقاش المستخدم:حبيشان|ن]]''')</sup> 21:18، الثلاثاء 7 رمضان 1447هـ (+3) 18:18، 24 فبراير 2026 (ت ع م)
* {{ر|حبيشان}} فيما يلي تعليقاتي على ملاحظاتك:
** <s>أوافق على استخدام (شكلات)، مع الإبقاء على (حركات) كمرادف أو لتفادي التكرار.</s> تعديل: بعد البحث وجدت أن "شكلات" غير فصيحة، بينما المستخدم هو فعلا "حركات" أو "حركات التشكيل".
** {{مض|فإننا دائما نستثني حروف المد (و، ا، ي)}} هنا عبارة "حروف المد" تفيد التوضيح بنفسها، فهي تشير إلى استثناء الحروف الثلاثة عندما -فقط- تفيد المد، بدل عبارة "الحروف" أو "حروف العلة" التي تشير إلى استثناء مطلق. لكن أوافق على إضافة التعريف الذي كتبتَه كملاحظة في الأسفل.
** صحيح أن بعض الكلمات لا يعرب بالشكلات وإنما بالحروف، فجمع المذكر السالم مثلا يضم بالواو والنون بينما ينصب ويجر بالياء والنون، لكن هذا لا يتعارض مع النقطة الثانية. لمزيد من الاتضاح سأشرح السياسة المقترحة، وهي بالمناسبة توثيق أكثر من كونها "اقتراحا جديدا": '''الأصل البسيط''' هو أن توضع الشكلات فوق الحروف كلها باستثناء حروف المد، سنجد أن تطبيق هذا الأصل على الأفعال وتصريفاتها (كيفما كانت أزمنتها) وعلى الأسماء المبنية سيكون تطبيقا خاليا من أية إشكالية، لماذا؟ لأن الحرف الأخير من هذه الكلمات يقبل حركة واحدة غير متغيرة، إلا بعض الاستثناءات عندما تكون الكلمة وخصوصا الفعل في جملة، وهذا لا يعنينا فنحن نتحدث عن عناوين يعني كلمات مستقلة. من هنا فتطبيق قاعدة "الأصل" لن يجد أي إشكال ماعدا في الأسماء المعربة، لماذا؟ لأن حرفها الأخير قد يقبل أي شكلة حتا إذا كانت الكلمة مجرد عنوان، مثلا هَاتِفٌ هَاتِفُ هَاتِفًا هَاتِفَ هَاتِفٍ هَاتِفِ، هذا يجعلنا حائرين بخصوص تشكيل آخر حرف من الكلمة المعربة، من هنا عدلنا قاعدة "الأصل" لنستثني تشكيل آخر حرف من الكلمة المعربة (كيفما كانت). ما شرحته إلى حدود الآن هو ما يشكل النقط الخمسة المدونة في السياسة حاليا. وبهذا تكون السياسة سهلة تسمح لأي محرر بتطبيقها ولو لم يكن بارعا بالإعراب وتفاصيله، كل ما يلزمه هو التفريق بين الكلمة المبنية والكلمة المعربة فقط. وعليه فأنا لا أتفق مع تغيير النقطة الثانية (الأسماء المعربة) والثالثة (الأفعال) إذ لا حاجة -وليس من المفترض أصلا- لإضافة استثناءات أخرى تتعلق بالإعراب. فالمبدأ هو أن لا نضيف استثناء إلا لتفادي إشكال حاصل.
** أوافق على إضافة ملاحظة الياء المتطرفة. وبخصوص همزة الوصل فلتكن همزة قطع (مجردة من الهمزة) وتأخذ كسرة في حال تشكيلها.
** تعليقاتي أعلاه تخص الإجابة عن سؤال "فوق أية أحرف نضع الشكلات؟" أما السؤال الثاني الذي تجيب عنه السياسة هو "متى أصلا نضع شكلات في العنوان؟" والإجابة عن هذا السؤال تحتمل خيارين: 1. نضع شكلات في جميع العناوين بدون استثناء 2. نضع شكلات فقط للتمييز بين الكلمات التي لها الرسم نفسه. والسياسة حاليا تختار الجواب (2) لأنها تنطلق من الفكرة التالية: جعل ويكاموس العربي مرتبطا بمختلف النسخ الأخرى قدر الإمكان، وإذ أن أغلب النسخ خاصة الكبرى تضع مدخلات عربية دون شكلات، اتخذنا كأصل عدم وضع شكلات مطلقا، هكذا كان الأصل ثم صنعنا استثناء لغرض تجاوز إشكال واحد، والإشكال هو وجود كلمات متعددة لها الرسم نفسه (طَالِب، طَالَبَ) ثم جعلنا صفحات توضيح لنبقي على العنوان المجرد من الشكلات، هذه الطريقة أفضل بكثير من جمع الكلمات في صفحة واحدة، فذلك لا يناسب الغنى الذي تتمتع به اللغة العربية. بالنظر إلى السياسة هكذا نجد الأصل الأول الذي يعطي أولوية للعناوين المجردة من الشكلات، ثم عناوين بشكلات تكون فرعية لصفحات توضيح، هكذا يبقى القاموس مرتبطا بوصلات أنترويكي تلقائية. أما بالنسبة للمحررين فالفكرة أن يضعوا دائما عنوانا خاليا من الشكلات، لا داعي للتردد إلا إذا علموا يقينا بوجود كلمات أخرى بالرسم نفسه، أما وقوع خطإ فليس مشكلا، يكتشف محرر آخر في وقت آخر وجود كلمة أخرى فيقوم بالنقل ووضع صفحة توضيح. هذا نمو طبيعي للقاموس. من هنا، نرى مثلا أن إنشاء صفحات توضيح أمر مفيد مثله مثل إنشاء صفحة تعريف. هكذا الأمر وضحتُه لترى السياسة من وجهة نظر عامة تنطلق من أصل عناوين بدون شكلات لتعزيز وصلات إنترويكي ثم يكون الاستثناء للتمييز بين الكلمات التي لها الرسم نفسه ثم فوق هذا يكون استثناء الحرف الأخير من الكلمات المعربة.
[[مستخدم:Najem Ajem|'''<span style="color:#00008B">--الناجم العاجم</span>''']] [[نقاش المستخدم:Najem Ajem|'''<span style="color:#00008B">''❄''</span>''']] 10:35، 26 فبراير 2026 (ت ع م)
:شكرا للإشارة، بصراحة منذ أيام وأنا أريد أن أكتب تعليقا ولكن كلما راجعت المقترح واستعرضت أمثلة من المفردات أتردد وأحير ماذا أكتب، أنا أميل إلى تشكيل جميع المفردات (باستثناء حروف فالمد) عدا صفحات التوضيح التي يُفترض أنها تحتوي على مجموعة كلمات متشابهة بالرسم ومختلفة بالمعنى حسب الحركات أو الشكلات فيها فعناوينها تكون مجردة، وأما الكلمات التي لا مشابه لها مثل '''[[استعمار]]''' و'''[[استعمال]]''' و'''[[منجنيق]]''' فأرى الواجب تشكيلها لضمان عدم التكرار والخلط أو الخطأ مثل ('''[[اِستعمال]]''' و'''[[اِسْتِعْمَال]]''' مفردتان لكلمة واحدة) أو ('''[[اِسْتَعْمَلَ]]''' و'''[[استعمل]]''' مفردتان لكلمة واحدة)، وضعت تعديلات على المقترح في ([[ويكاموس:صيغة الكتابة/الحركات والتشكيل/مسودة]]) وأظن أن المقترح بحاجة لنقاش أوسع وأتمنى مشاركة الزملاء لاكتشاف الأخطاء المحتملة، تحياتي لكم. [[مستخدم:أبو هشام|أبو هشام]] <sup>[[نقاش المستخدم:أبو هشام|«نقاش»]]</sup> 20:19، 27 فبراير 2026 (ت ع م)
:مرحبًا بالجميع، أنا مع {{مض|'''الأصل البسيط'''}} هو أن توضع الشكلات فوق الحروف كلها باستثناء حروف المد}} مادام يوجد هناك حل التحويل والتوضيح تحياتي [[مستخدم:Nehaoua|<span style="color:#000000; font-size:18px; font-family:traditional arabic;">'''نحاوة'''</span>]] <sup>([[نقاش المستخدم:Nehaoua|<span style="color:blue; font-size:small; font-family:traditional arabic;">'''راسلني'''</span>]])</sup> 21:04، 27 فبراير 2026 (ت ع م)
::{{ر|أبو هشام}} اعتماد المقترح -بعد النقاش- كسياسة رسمية هو السبيل الضامن لتفادي التكرار والخلط، فالخطأ ليس ناجما عن مقترح دون الآخر وإنما عن غياب سياسة رسمية ملزِمة. في مسودتك ألاحظ تقريبا توافقا تاما بخصوص كيفية وضع الشكلات. النقطة التي فيها خلاف هي بخصوص الكلمات المنفردة برسمها أنضع شكلات في عناوينها أم نتركها بدون شكلات. إذا اعتمدنا الصورة الحالية التي شرحتُها سيكون ويكاموس العربي مرتبطا بوصلات أنترويكي تلقائية مع باقي القواميس، بحيث كل وصلة إلى ويكاموس تكون إما صفحة توضيح (بدون حركات) أو صفحة تعريف (بدون حركات)، نظرا لكون الويكاموسات الكبرى تعتمد عناوين عربية بدون حركات مع جمع المتشابهة في صفحة واحدة -أنا أقول أن جمع متشابهات الرسم في صفحة واحدة غير متناسب مع الغنى اللغوي الذي تتمتع به العربية كما أنه سيعيق الاسترسال في التعريفات فضلا عن تقزيمه لعدد الصفحات العربية بالقاموس-. أما اقتراحك واقتراح {{ر|حبيشان}} القاضي بوضع شكلات حتى في عناوين الكلمات المنفردة برسمها فسيجعل ويكاموس معزولا نسبيا عن باقي القواميس، سيتصفح القارئ كلمات عربية في ويكاموس الإنجليزي أو الفرنسي ولن يجد وصلة أنترويكي إلى ويكاموس العربي، نأخذ على سبيل المثال كلمة استعمال وهي منفردة برسمها، لو كانت بدون شكلات "[[خاص:فرق/792168|استعمال]]" ستكون لها 14 وصلة أنترويكي مع مختلف الويكاموسات، بينما لو كانت بشكلات "[[خاص:فرق/1076577|اِسْتِعْمَال]]" فلن تكون مرتبطة بأي وصلة أنترويكي. بالمناسبة [[خاص:فرق/1071100|اِستعمال]] ينبغي دمجها. [[مستخدم:Najem Ajem|'''<span style="color:#00008B">--الناجم العاجم</span>''']] [[نقاش المستخدم:Najem Ajem|'''<span style="color:#00008B">''❄''</span>''']] 18:52، 1 مارس 2026 (ت ع م)
:::أنا أميل إلى تشكيل كلّ العناوين، لأنّ استثناءَ بعض الكلمات فيه تضاربٌ في السياسة ويؤدّي إلى ارتباك القرّاء، والمنفعةُ منه محدودة. في رأيي، مسألةُ الربط والوصلات تحتاج إلى تفكيرٍ أعمق لاقتراح حلٍّ تقني يناسب الويكاموسات التي تستعمل الحركات. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 13:03، 10 مارس 2026 (ت ع م)
{{خلاصة}} أجريتُ '''تعديلات طفيفة''' في نص السياسة مع الإبقاء على جوهرها كما كان، يرجى مطالعة النسخة المحيّنة، أرى أن نعتمدها '''سياسة رسمية'''. النقاش يبقى دائما مفتوحا في حال وجود ملاحظات مستقبلية. [[مستخدم:Najem Ajem|'''<span style="color:#00008B">--الناجم العاجم</span>''']] [[نقاش المستخدم:Najem Ajem|'''<span style="color:#00008B">''❄''</span>''']] 08:11، 6 مارس 2026 (ت ع م)
== أداة مراجعة معاني الأفعال ==
في إطار العمل على إحياء ويكاموس والربط مع ويكي بيانات (تتمة لنقاش [[ويكاموس:الميدان#قوالب جديدة + إنشاء صفحات الأفعال]])، أنشأنا أداة لمراجعة معاني الأفعال العربية ونشرها:
{{وسط|https://ar-senses.toolforge.org}}
يمكن الاطلاع على توثيق الأداة على [[ويكاموس:ويكي بيانات#أداة مراجعة المعاني (تجريبي)]].
تحتوى الأداة على معاني مستخلصة آليا بالبحث في 16 معجما عربيا (لسان العرب، تاج العروس، المعجم الوسيط، القاموس المحيط، وغيرها) وبالاعتماد على نموذج لغوي ضخم لتجميع المعاني وترتيبها. الهدف من الأداة هو تمكين المحررين من مراجعة المعلومات ثم نشرها في ويكي بيانات وويكاموس.
بدأنا بعدد محدود من الأفعال. أرجو من الزملاء تجربتها وإبداء ملاحظاتهم، سواء على المعاني المُستخلصة أو على واجهة الأداة أو تجربة المستخدم، [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 00:58، 23 مارس 2026 (ت ع م)
:إشارة إلى الزملاء النشطين في المشروع @[[مستخدم:حبيشان|حبيشان]] @[[مستخدم:Avicenno|Avicenno]] @[[مستخدم:Najem Ajem|Najem Ajem]] @[[مستخدم:أبو هشام|أبو هشام]] @[[مستخدم:Nehaoua|Nehaoua]] @[[مستخدم:كريم أحمد|كريم أحمد]] @[[مستخدم:RASHEEDYE|RASHEEDYE]] @[[مستخدم:أويس2003|أويس2003]] @[[مستخدم:ماهر الماهر|ماهر الماهر]]. شكرا. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 19:25، 27 مارس 2026 (ت ع م)
::مرحبًا @[[مستخدم:ForzaGreen|ForzaGreen]] أداة رائعة، جربت عدة أمور، فقط لدي بعض الملاحظات:
::* عدم ذكر معجم الغني مصدرًا
::* عدم إمكانية انشاء وصلات داخلية في المعاني
::* عدم إمكانية إعادة إنشاء صفحة ويكاموس (الموجودة قد لا تُلبي نفس المقاييس، أو ناقصة) كما لا يمكن استخراج النموذج لديل صفحة موجودة
::تحياتي [[مستخدم:Nehaoua|<span style="color:#000000; font-size:18px; font-family:traditional arabic;">'''نحاوة'''</span>]] <sup>([[نقاش المستخدم:Nehaoua|<span style="color:blue; font-size:small; font-family:traditional arabic;">'''راسلني'''</span>]])</sup> 21:17، 27 مارس 2026 (ت ع م)
:::شكرا @[[مستخدم:Nehaoua|Nehaoua]] على التجريب وعلى الملاحظات القَيّمة.
:::* مع الأسف ليس عندي معجم الغني بصيغة رقمية.
:::* ملاحظة مهمة في موضوع الوصلات الداخلية. سأبحث عن حل تقني في ويكي بيانات وفي قالب {{قا|معجمية}}.
:::* بالنسبة لإعادة إنشاء صفحات ويكاموس، كان أحد الاقتراحات في [https://ar.wiktionary.org/wiki/%D9%88%D9%8A%D9%83%D8%A7%D9%85%D9%88%D8%B3:%D8%A7%D9%84%D9%85%D9%8A%D8%AF%D8%A7%D9%86#c-%D8%AD%D8%A8%D9%8A%D8%B4%D8%A7%D9%86-20260121100000-ForzaGreen-20260117223000 النقاش السابق] هو عدم حذف المحتوى الحالي في ويكاموس. لذلك كان التركيز في تطوير الأداة على إنشاء معاني جديدة فقط، في ويكي بيانات، ثم إنشاء صفحات ويكاموس إن لم تكن موجودة.
:::[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 09:30، 28 مارس 2026 (ت ع م)
::::مرحبًا @[[مستخدم:ForzaGreen|ForzaGreen]] شكرا لردك، بالنسبة لإعادة إنشاء صفحات ويكاموس، حبذا لو تُنشئ أو تفعل أداة نسخ محتوى انشاء صفحة ويكاموس وكأننا ستُنشئها من جديد، حتى يتسنى النقل اليدوي إلى الصفحة الموجودة والتعديل بما يوافق الحالة. تحياتي [[مستخدم:Nehaoua|<span style="color:#000000; font-size:18px; font-family:traditional arabic;">'''نحاوة'''</span>]] <sup>([[نقاش المستخدم:Nehaoua|<span style="color:blue; font-size:small; font-family:traditional arabic;">'''راسلني'''</span>]])</sup> 11:25، 28 مارس 2026 (ت ع م)
:::::@[[مستخدم:Nehaoua|Nehaoua]] {{تم}}. الآن في صفحات مراجعة الأفعال الموجودة سلفا في ويكاموس، والتي أُنشئت خارج الأداة، مثلا صفحة [https://ar-senses.toolforge.org/review/L1489133 أَدَّبَ L1489133]، يظهر سطر جديد: "''لمعاينة ما كانت الأداة ستنشئه لو لم تكن الصفحة موجودة في ويكاموس: (زر معاينة)''".
:::::هل هذا ما قصدت ؟ [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 18:36، 28 مارس 2026 (ت ع م)
::::::مرحبًا @[[مستخدم:ForzaGreen|وائل]] بوركت، هذا ما تمنيت وقد حققته، شكرًا مرة أخرى [[مستخدم:Nehaoua|<span style="color:#000000; font-size:18px; font-family:traditional arabic;">'''نحاوة'''</span>]] <sup>([[نقاش المستخدم:Nehaoua|<span style="color:blue; font-size:small; font-family:traditional arabic;">'''راسلني'''</span>]])</sup> 19:01، 28 مارس 2026 (ت ع م)
::@[[مستخدم:ForzaGreen|ForzaGreen]] عمل جبار تشكر عليه، سأجربها، وافضل أن تستعمل رابط إلى موقع تراث بدلا من موقع الشاملة، لأنه يعرض نسخة الpdf بسهولة والنسخة النصية لم تنقل جميع الاصطلاحات من النسخة المطبوعة. [[مستخدم:حبيشان|حبيشان]]<sup>('''[[نقاش المستخدم:حبيشان|ن]]''')</sup> 02:11، السبت 9 شوال 1447هـ (+3) 23:11، 27 مارس 2026 (ت ع م)
:::{{تم}}. الآن تظهر روابط موقع تراث بدل الشاملة.
:::وفي موضوع ذو صلة، عدلتُ سابقا [[وحدة:Cite Q]] المستعملة في {{قا|استشهاد بويكي بيانات}} وعناصر المعاجم في ويكي بيانات، بحيث يؤدي رابط المرجع مباشرة إلى الجزء ورقم الصفحة في موقع archive.org (إن كانت طبعة المعجم متوفرة في الموقع). [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 10:31، 28 مارس 2026 (ت ع م)
:أقترح وضع رابط لها في الصفحة الرئيسة لتسهيل الوصول إليها. [[مستخدم:حبيشان|حبيشان]]<sup>('''[[نقاش المستخدم:حبيشان|ن]]''')</sup> 23:11، الأحد 23 ذو القعدة 1447هـ (+3) 20:11، 10 مايو 2026 (ت ع م)
== نشر رابط جهات الاتصال القانونية والسلامة في تذييل الويكي الخاص بكم ==
<section begin="Message"/>
'''جهات الاتصال القانونية والأمنية'''
مرحبًا بالمجتمع، وفّرت مؤسسة ويكيميديا [[wmf:Special:MyLanguage/Legal:Wikimedia Foundation Legal and Safety Contact Information|صفحة موحّدة لجهات الاتصال القانونية والأمنية]] ليُربط بها في تذييل الويكي الخاص بكم، لضمان الوصول إلى معلومات قانونية دقيقة. يُعدّ ذلك متطلبًا تنظيميًا. لقد نشرنا بالفعل روابط في ويكيبيديا الإنجليزية والألمانية والإيطالية والإسبانية وغيرها من الويكيات، وسننشرها في الويكي الخاص بكم قريبًا. [[m:Special:MyLanguage/Wikimedia_Foundation_Legal_and_Safety_Contacts_FAQ|يرجى قراءة المزيد في صفحة المشروع]] وترك أي تعليقات في هذا القسم أو في [[m:Special:MyLanguage/Talk:Wikimedia Foundation Legal and Safety Contacts FAQ|صفحة النقاش]].
<section end="Message"/>
-- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 13:31، 25 يونيو 2026 (ت ع م)
<!-- الرسالة التي أرسلها User:Sannita (WMF)@metawiki باستخدام القائمة في https://meta.wikimedia.org/w/index.php?title=User:Sannita_(WMF)/Mass_sending_test&oldid=30731267 -->
== Request for comment (the future of Abstract Wikipedia) ==
<bdi lang="en" dir="ltr" class="mw-content-ltr">
Apologies if this has not yet been translated into your wiki's language. {{int:Please-translate}}
You are invited to voice your opinions in a [[:m:Requests for comment/The future of Abstract Wikipedia|request for comment about the future of Abstract Wikipedia]]. {{Int:Feedback-thanks-title}}
[[:m:User:Kowal2701|Kowal2701]] ([[:m:User talk:Kowal2701|talk]]) 12:25، 24 يوليو 2026 (ت ع م)
</bdi>
<!-- الرسالة التي أرسلها User:DreamRimmer@metawiki باستخدام القائمة في https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 -->
== تحديث لوحدات الاستشهاد ==
يوجد تحديث جديد لوحدات الاستشهاد في الملعب يحتوى التحديث:
* إضافة وسيط {{وسيط|التاريخ الهجري}} لإدخال التاريخ الهجري، مع إضافة تصنيفات للأخطاء في التاريخ أو عدم التوافق مع التاريخ الميلادي.
وفي الاستشهاد بويكي بيانات بالإضافة إلى الميزة السابقة:
* استيراد التاريخ الأصلي من ويكي بيانات إذا كان موجودا في عنصر العمل أو الاعتماد على تاريخ وفاة المؤلف.
* تحسينات شتى وتلافي بعض الأخطاء.
* اعتماد نص خاصية [ذكر كـ] دائمًا عند الوجود، حتى عند المؤلف المجهول.
مع ملاحظة أن بعض الميزات الجديدة نوقشت في ويكيبديا العربية.
أرجو التجربة، وهناك صفحة [[قالب:استشهاد بويكي بيانات/مختبر]] للفرق بين النسخة القديمة والجديدة. [[مستخدم:حبيشان|حبيشان]]<sup>('''[[نقاش المستخدم:حبيشان|ن]]''')</sup> 00:15، الثلاثاء 14 صفر 1448هـ (+3) 21:15، 27 يوليو 2026 (ت ع م)
55z1rwfcd436m7546v09knw133x5uhj
نقاش المستخدم:Zack Prime
3
209282
1097659
966077
2026-07-27T20:39:38Z
Mfield
38262
نقل Mfield صفحة [[نقاش المستخدم:ⵣⵉⵔⵉ ⴰⵎⵖⵏⴰⵙ]] إلى [[نقاش المستخدم:Zack Prime]]: نُقِلت الصفحة آليا عند إعادة تسمية المستخدم «[[Special:CentralAuth/ⵣⵉⵔⵉ ⴰⵎⵖⵏⴰⵙ|ⵣⵉⵔⵉ ⴰⵎⵖⵏⴰⵙ]]» إلى «[[Special:CentralAuth/Zack Prime|Zack Prime]]».
941339
wikitext
text/x-wiki
<div style="width:auto" style="margin-bottom:1.25em;border:1px solid #{{#switch:bleu|bleu=8898BF|vert=97BF87|jaune=AAAA66|or=777777|orange=AA8833|violet=7755AA|saumon=AA8866|sable=AA9955|vertmoyen=88BB55|bleufoncé=1144AA|rouge=AA8866|écarlate=AAAAAA|#default=AAAAAA}}; background:white;padding:0">
<div style="height:8px;margin:0;border:0;border-bottom:1px solid #{{#switch:bleu|bleu=8898BF|vert=97BF87|jaune=AAAA66|or=777777|orange=AA8833|violet=7755AA|saumon=AA8866|sable=AA9955|vertmoyen=88BB55|bleufoncé=1144AA|rouge=AA8866|écarlate=AAAAAA|#default=AAAAAA}};background: #{{#switch:bleu|bleu=C8D8FF|vert=D7FFC7|jaune=FFFFB9|or=FFE040|orange=FFDD88|violet=C9AEF1|saumon=FBDFBE|sable=F1E2AE|vertmoyen=99CC66|bleufoncé=003399|rouge=FFDAB9|écarlate=FF3333|#default=E0E0E0}};font-size:1px"></div>
<div style="padding:5px;font-size:small"><center style="word-spacing:1ex"><small>[[ويكاموس:سفارة|Welcome!]] [[ويكاموس:سفارة|Bienvenue!]] [[ويكاموس:سفارة|Willkommen!]] [[ويكاموس:سفارة|Benvenuti]] [[ويكاموس:سفارة|¡Bienvenido!]] [[ويكاموس:سفارة|ようこそ]] [[ويكاموس:سفارة|Dobrodosli]] [[ويكاموس:سفارة|환영합니다]] [[ويكاموس:سفارة|Добро пожаловать]] [[ويكاموس:سفارة|Bem-vindo!]] [[ويكاموس:سفارة|欢迎]] [[ويكاموس:سفارة|Bonvenon]] [[ويكاموس:سفارة|Welkom]]</small></center></div>
<center><big>'''[[ويكاموس:ترحيب بالقادمين الجدد|مرحبا بك]] في [[ويكاموس]]، TALAYWA !'''</big></center>
{|
|[[ملف:WiktionaryAr.svg|يمين|40بك]]
|
[[ويكاموس]] هو <u>مشروع تحرير جماعي لـ'''قاموس علمي وثقافي''' '''بمختلف اللغات'''</u>. لطلب المساعدة في أي وقت تجد وصلة ([[مساعدة:محتويات|'''مساعدة''']]) في هامش كل صفحة على اليمين.
لا تتردد في قراءة '''الوصايا الأولى''' [[ويكاموس:دروس (التحرير)|للتحرير]] و[[ويكاموس:دليل سريع|التعديل]] و[[مساعدة:إنشاء صفحة جديدة|إنشاء المفردات الجديدة]] و[[ويكاموس:دليل سريع|تنسيقها]] وفقا [[ويكاموس:الركائز الخمس|لمعايير ويكاموس]]. تم تخصيص '''[[ويكاموس:ساحة التجربة|ساحة التجربة]]''' لاحتواء تجاربك وخطواتك الأولى في التحرير والتعديل.
|--
|[[ملف:Presa de decissions.png|يمين|40بك]]
|
يمكنك الاستفسار و[[ويكاموس:أسئلة|طرح الأسئلة]] المتعلقة بطبيعة العمل في ويكاموس.
يمكنك أيضا [{{fullurl:مستخدم:TALAYWA|action=edit}} التعريف] بنفسك في [[مستخدم:TALAYWA|'''صفحتك الشخصية''']]، بكتابة معلومات عنك: [[ويكاموس:بابل|اللغات التي تتكلمها]]، [[ويكاموس:صناديق المستخدم|من أي بلد أنت، ما هي محاور اهتمامك]]...
|---
|[[ملف:Crystal Clear app ktip.png|يمين|40بك]]
|
لا تنس [[ويكاموس:توقيع|'''التوقيع''']] في [[مساعدة:صفحة النقاش|'''صفحات النقاش''']] بكتابة أربع مدّات، هكذا (<nowiki>~~~~</nowiki>). ولكن يجب <u>'''عدم التوقيع في صفحات المقالات القاموسية'''</u>، لأنها تصبح ملكًا للجميع لحظة إنشائها.
نرجو منك ألاّ تنسى [[ويكاموس:حقوق التأليف والنشر|<u>'''عدم النسخ من الإنترنت'''</u>]] لأسباب [[ويكاموس:حقوق التأليف والنشر|<u>'''حقوق التأليف والنشر'''</u>]].
|--
|[[ملف:Crystal Clear app amor.png|يمين|40بك]]
|
أخيرا، وهو أهم شيء، نتمى لك أن [[ويكاموس:كن جريئا|'''تتمتع''']] بالمساهمة [[ويكاموس:بوابة المجتمع|'''معنا''']] في هذا المشروع!
إذا كانت لديك أي استفسارات أو أسئلة أخرى، يمكنك طرحها في [[ويكاموس:أسئلة|هذه الصفحة]] أو في صفحة نقاشي.
|}
</div></div> --[[مستخدم:Meno25|Meno25]] ([[نقاش المستخدم:Meno25|نقاش]] • [[خاص:مساهمات/Meno25|مساهمات]]) 05:14، 6 مايو 2020 (ت ع م)
pjxiqb4g3lrblcyfxu76b5d9ufp7tyn
أَبَانَ
0
227284
1097627
1076360
2026-07-27T12:05:23Z
ForzaGreen
28665
1097627
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1477016}}
=== المعاني ===
'''أَبَانَ''' {{أفعل}}
{{معجمية|L1477016|معاني}}
=== النطق ===
* {{أصد-عر|أَبَانَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=بين|وزن=أفعل}}
=== المراجع ===
{{مراجع}}
4kby2tt0wmo3hffadcaczrkvh5n0hhy
وحدة:Cite Q/ملعب
828
231230
1097661
1097364
2026-07-27T20:58:59Z
حبيشان
31560
التاريخ الأصلي
1097661
Scribunto
text/plain
--[[ Cite Q
النسخة العربية
مشتق من النسخة الإنجليزية
]]
require('strict')
local sandbox = '/ملعب'
local WdItem = require('Module:WdItem' .. sandbox)
local cfg = mw.loadData('Module:Cite Q/config' .. sandbox)
local rtl_lang = {ar = true, fa = true, ur = true, ku = true,
he = true, arc = true, dv = true, ha = true, khw = true,
ks = true, ps = true, yi = true, ota = true }
local ref_cash = {}
--[[-------------------< A R G U M E N T _ W R A P P E R >----------------------
Argument wrapper. This function provides support for argument mapping defined
in the configuration file so that multiple names can be transparently aliased to
single internal variable.
]]
local function argument_wrapper ( arglist )
local origin = {};
local nilargs = {};
return setmetatable({
ORIGIN = function ( self, k )
local dummy = self[k]; -- force the variable to be loaded.
return origin[k];
end
},
{
__index = function ( tbl, k )
local v = rawget(tbl,k)
if v then
return v
elseif nilargs[k] then
return nil
end
local list = (type(k)=="number") and k or cfg.aliases_t[k];
if type( list ) == 'table' then
for _, alias_key in pairs( list ) do
if arglist[alias_key] then
v = arglist[alias_key]
origin[k] = alias_key
break;
end
end
elseif list ~= nil then
v = arglist[list]
if v then
origin[k] = list
end
end
if v == nil then
nilargs[k] = true
else
rawset( tbl, k, v )
end
return v
end,
});
end
-------------------------------------------------------------------------------
-- makeOrdinal needs to be internationalised along with cfg.i18n_t
-- takes cardinal number as a numeric and returns the ordinal as a string
-- we need three exceptions in English for 1st, 2nd, 3rd, 21st, .. 31st, etc.
-------------------------------------------------------------------------------
local makeOrdinal = function(cardinal)
local card = tonumber(cardinal)
if not card then return cardinal end
local ordsuffix = cfg.i18n_t.ordinal.default
if card % 10 == 1 then
ordsuffix = cfg.i18n_t.ordinal[1]
elseif card % 10 == 2 then
ordsuffix = cfg.i18n_t.ordinal[2]
elseif card % 10 == 3 then
ordsuffix = cfg.i18n_t.ordinal[3]
end
-- In English, 1, 21, 31, etc. use 'st', but 11, 111, etc. use 'th'
-- similarly for 12 and 13, etc.
if (card % 100 == 11) or (card % 100 == 12) or (card % 100 == 13) then
ordsuffix = cfg.i18n_t.ordinal.default
end
return card .. ordsuffix
end
--[[--------------------------< I S _ S E T >--------------------------------------------------------------
Returns true if argument is set; false otherwise. Argument is 'set' when it exists (not nil) or when it is not an empty string.
]]
local function is_set( var )
return not (var == nil or var == '')
end
--[[--------------------------< I N _ A R R A Y >--------------------------------------------------------------
Whether needle is in haystack (taken from Module:Citation/CS1/Utilities)
]]
local function in_array( needle, haystack )
if needle == nil then
return false
end
for n, v in ipairs( haystack ) do
if v == needle then
return n
end
end
return false
end
local function getLanguages(languageArg)
local langcodes = {}
if languageArg then
-- check these are a supported language codes
for lc in mw.text.gsplit( languageArg, "[,، ]+", false ) do --modified
langcodes[#langcodes+1] = mw.language.isSupportedLanguage(lc) and lc
end
end
return langcodes
end
--[[--------------------------< A C C E P T _ V A L U E >-------------------------------------------------------
Accept WD value by framing in ((...)) if param_val is equal to keyword; else pass-through WD value as is.
]]
local function accept_value( param_val, wd_val )
local val = param_val
if val then
if in_array (val, {'accept', '))((', ':d:'}) then
val = '((' .. wd_val .. '))'
elseif '((accept))' == val then
val = 'accept'
elseif '(())(())' == val then
val = '))(('
elseif '((:d:))' == val then
val = ':d:'
else
val = wd_val
end
end
return val
end
-- function to fetch a value to display
local function makelink(v, out, link, maxpos, wdlinks, lang)
local label
local snak = v.mainsnak or v
if snak.snaktype == "value" then
if snak.datatype == "wikibase-item" then
local qnumber = snak.datavalue.value.id
local sitelink = mw.wikibase.getSitelink(qnumber)
if qnumber == "Q2818964" then sitelink = nil end -- suppress link to "Various authors"
-- من المهم التحقق من وجود datavalue
if v.qualifiers and v.qualifiers.P1932 and v.qualifiers.P1932[1].datavalue then
label = v.qualifiers.P1932[1].datavalue.value
else
label = mw.wikibase.getLabelByLang(qnumber, lang) or mw.wikibase.getLabel(qnumber)
if label then
label = mw.text.nowiki(label)
else
label = qnumber -- should add tracking category
end
end
local position = maxpos + 1 -- Default to 'next' author.
-- use P1545 (series ordinal) instead of default position.
if v["qualifiers"] and v.qualifiers["P1545"] and v.qualifiers["P1545"][1] then
position = tonumber(v.qualifiers["P1545"][1].datavalue.value)
end
maxpos = math.max(maxpos, position)
if sitelink then
-- just the plain name,
-- but keep a record of the links, using the same index
out[position] = label
link[position] = sitelink
else
if wdlinks then
-- show that there's a Wikidata entry available
out[position] = string.format(
"[[:d:Q%s|%s]] <span title='%s'>[[File:Wikidata-logo.svg|16px|alt=|link=]]</span>",
snak.datavalue.value["numeric-id"],
label,
cfg.i18n_t["errors"]["local-article-not-found"]
)
else
-- no Wikidata links wanted, so just give the plain label
out[position] = label
end
end
elseif snak.datatype == "string" then
local position = maxpos + 1 -- Default to 'next' author.
-- use P1545 (series ordinal) instead of default position.
if v["qualifiers"] and v.qualifiers["P1545"] and v.qualifiers["P1545"][1] then
position = tonumber(v.qualifiers["P1545"][1].datavalue.value)
end
maxpos = math.max(maxpos, position)
out[position] = snak.datavalue.value
else
-- not a wikibase-item or a string!
end
else
-- code here if we want to return something when author is "unknown"
-- من المهم التحقق من وجود datavalue
if v.qualifiers and v.qualifiers.P1932 and v.qualifiers.P1932[1].datavalue then
label = v.qualifiers.P1932[1].datavalue.value
else
label = cfg.i18n_t["unknown-author"][lang] or cfg.i18n_t["unknown-author"]["ar"]
end
maxpos = maxpos + 1
out[maxpos] = label
end
return maxpos
end
--[=[-------------------------< G E T _ N A M E _ L I S T >----------------------------------------------------
get_name_list -- adapted from getAuthors code taken from Module:RexxS
arguments:
nl_type - type of name list to fetch: nl_type = 'author' for authors; 'editor' for editors; 'translator' for translators
args - pointer to the parameter arguments table from the template call
qid - value from |qid= parameter; the Q-id of the source (book, etc.) in qid
wdlinks - value from the |wdlinks= parameter; a Boolean passed to enable links to Wikidata when no article exists
returns nothing; modifies the args table
]=]
local function get_name_list (nl_type, args, Q, wdlinks, lang)
local propertyID = "P50"
local fallbackID = "P2093" -- author name string
if nl_type =="author" then
propertyID = 'P50' -- for authors
fallbackID = 'P2093' -- author-string
elseif nl_type =="editor" then
propertyID = 'P5769' -- "editor-in-chief"
fallbackID = 'P98' -- for editors - So-called "fallbacks" are actually a second set of properties processed
-- TBD. Take book series editors into account as well (if they have a separate P code as well)?
elseif nl_type == "translator" then
propertyID = 'P655' -- for translators
fallbackID = nil
-- elseif 'contributor' == nl_type then
-- f.e. author of forewords (P2679) and afterwords (P2680); requires |contribution=, |title= and |author=
-- propertyID = 'P' -- for contributors
-- fallbackID = nil
else
return -- not specified so return
end
-- wdlinks is a Boolean passed to enable links to Wikidata when no article exists
-- if "false" or "no" or "0" is passed set it false
-- if nothing or an empty string is passed set it false
if wdlinks and (#wdlinks > 0) then
wdlinks = wdlinks:lower()
wdlinks = in_array (wdlinks, {"false", "no", "0"})
else
-- wdlinks is empty, so
wdlinks = false
end
local statements = Q:getStatements(propertyID)
if statements:count() == 0 and fallbackID then
statements = Q:getStatements(fallbackID)
end
-- Make sure it actually has at least one of the properties requested
if statements:count() == 0 then
return nil
end
-- So now we have something to return:
-- table 'out' is going to store the names(s):
-- and table 'link' will store any links to the name's article
local out = {}
local link = {}
local maxpos = 0
for _, s in statements:iter() do
-- maxpos = makelink(v, out, link, maxpos, wdlinks, lang)
local qnumber = s:getRawValue()
if qnumber ~='novalue' then
local label = s:getValue({linked=false})
local slink
if label == 'somevalue' then
label = cfg.i18n_t["unknown-author"][lang] or cfg.i18n_t["unknown-author"]["ar"]
elseif mw.ustring.match(qnumber, '^Q%d+$') and qnumber ~= 'Q2818964' then
slink = mw.wikibase.getSitelink(qnumber, cfg.config_t.linksproject)
end
local position = maxpos + 1 -- Default to 'next' author.
position = tonumber(s:getRawQual("P1545")[1]) or position
maxpos = math.max(maxpos, position)
out[position] = label
if slink then link[position] = cfg.config_t.wikilinkprefix .. slink; end
end
end
-- if there's anything to return, then insert the additions in the template arguments table
-- in the form |author1=firstname secondname |author2= ...
-- Renumber, in case we have inconsistent numbering
local keys = {}
for k, v in pairs(out) do
keys[#keys + 1] = k
end
table.sort(keys) -- as they might be out of order
for i, k in ipairs(keys) do
out[k] = out[k]:gsub (''', '\''); -- prevent cs1|2 multiple names categorization; replace html entity with the actual character
if args[nl_type .. i] then -- name gets overwritten
-- pull corresponding -link only if overwritten name is same as WD name
if link[k] and (args[nl_type .. i] == out[k]) then
args[nl_type .. '-link' .. i] = args[nl_type .. '-link' .. i] or link[k] -- author-linkn or editor-linkn
end
else -- name does not get overwritten, so pull name from WD
args[nl_type .. i] = out[k]
if link[k] then
args[nl_type .. '-link' .. i] = args[nl_type .. '-link' .. i] or link[k] -- author-linkn or editor-linkn
end
end
end
end
local function _getLangOfSnakProp(snak, pid)
if not pid or not snak then return {} end
local out = {}
local props = snak[pid]
for i, v in ipairs(props) do
if v.datatype == "monolingualtext" and v.datavalue then
out[#out + 1] = v.datavalue.value.language
end
end
return out
end
local function getLangOfProp(frame)
local pid = frame.args.pid or mw.text.trim(frame.args[1] or "")
if pid == "" then return end
local qid = frame.args.qid
if qid == "" then qid = nil end
local Q = WdItem.new(qid, { fwd = "ALL", onlysourced = false, noicon = true })
return table.concat(Q:getLangOfProp(pid), ", ")
end
-- gets the language codes of a Wikidata entry as a table
local function _lang_code(Qitem)
local lc = Qitem:getRawPropOfProp( "P407", "P424")
if #lc > 0 then return lc end
lc = Qitem:getRawPropOfProp( "P407", "P218" )
if #lc > 0 then return lc end
return Qitem:getLangOfProp("P424")
end
local function lang_code(frame)
local Q = WdItem.newItem(frame.args.qid or mw.text.trim(frame.args[1] or ""), { fwd = "ALL", onlysourced = false, noicon = true })
return table.concat(_lang_code(Q), ", ")
end
-- wraps a string in nowiki unless disable flag is set
local function wrap_nowiki(str, disable)
if disable then return str or '' end
return mw.text.nowiki(str or '')
end
-- sort sequence table whose values are key-value pairs by key
local function comp_key(a, b)
local param_a, enum_a = a[1]:match ('(%D+)(%d+)$'); -- get param name and enumerator from <a>
local param_b, enum_b = b[1]:match ('(%D+)(%d+)$'); -- get param name and enumerator from <b>
if enum_a and enum_b then -- if both parameters have neumerators
if param_a == param_b then -- are parameter names the same?
return tonumber (enum_a) < tonumber (enum_b); -- yes: compare enumerators
end
end
return a[1] < b[1]; -- alpha sort if here
end
-- sort sequence table whose values are key-value pairs by value
local function comp_val(a, b)
return a[2] < b[2]
end
-- ref filtering for citing from wikidata
local function is_rejected(item)
-- rejected Q
if cfg.rejected_t.sources[item]==true then
return true;
end
-- rejected Properties
local item_entity = mw.wikibase.getEntity(item);
for _, v in pairs(cfg.rejected_t.properties) do
if (#item_entity:getAllStatements( v )>0 ) then
return true;
end
end
-- Rejected InatanceOf
local instance = item_entity:getAllStatements( "P31" )
for _,v in pairs(instance) do
local vsnak = v.mainsnak or v
if cfg.rejected_t.instances[vsnak.datavalue.value.id] then
return true;
end
end
--No used Properties
local has_properties = false
for k, _ in pairs(cfg.used_properties_t) do
if (#item_entity:getAllStatements( k )>0 ) then
has_properties = true;
break;
end
end
return not has_properties;
end
local function _cite_web(citeq_args)
local Q
local refsnak = citeq_args.snak
citeq_args.snak = nil
-- retrieve all the parameters
local pqid = citeq_args.pqid
citeq_args.pqid = nil
local wdlinks = false
local qid = nil
local multi_args = {
P50 = "author",
P2093 = "author",
P5769 = "editor",
P98 = "editor",
P655 = "translator",
}
Q = WdItem.newSnakItem(refsnak, {fwd = "ALL", onlysourced = false, noicon = true, linksproject = cfg.config_t.linksproject, wikilinkprefix = cfg.config_t.wikilinkprefix})
-- find language
local langcodes = getLanguages(citeq_args.language)
if refsnak["P1476"] then
langcodes = _getLangOfSnakProp(refsnak, "P1476")
citeq_args.language = citeq_args.language or langcodes[1]
end
for _,l in ipairs({'ar','en','mul'}) do
if not in_array(l, langcodes) then
table.insert(langcodes, l)
end
end
Q:setOptions({ langs = langcodes })
local labellang = langcodes[1]
local rtl = rtl_lang[langcodes[1]] or false
local oth = {}
for i in pairs(refsnak) do
local label = ""
-- multiple authors may be given
if refsnak[i][1].snaktype ~= 'novalue' then
if multi_args[i] then
get_name_list (multi_args[i], citeq_args, Q, wdlinks, labellang)
elseif cfg.used_properties_t[i] and type(cfg.used_properties_t[i]) == "table" then
local data = cfg.used_properties_t[i]
local langidx = 1
citeq_args[data.arg] = Q:getValue( i, { maxvals = data.maxvals, linked = data.linked, rank = data.rank or "best" } )
if not citeq_args[data.arg] then
citeq_args[data.arg] = Q:getValue( i, { maxvals = data.maxvals, linked = data.linked} )
if citeq_args[data.arg]:find('^Q%d+$') then -- qid was returned
-- try fallback to qid's native language
local qid_languages = _lang_code(WdItem.newItem( citeq_args[data.arg], { fwd = "ALL", onlysourced = false, noicon = true } ))
citeq_args[data.arg] = Q:getValue( i, { maxvals = data.maxvals, linked = data.linked, langs = qid_languages} )
if citeq_args[data.arg]:find('^Q%d+$') then -- qid was returned again
citeq_args[data.arg] = nil
else
-- record the language found if no lang specified
citeq_args.language = citeq_args.language or qid_languages[1]
end
end
end
--- translate unknown value
if citeq_args[data.arg] == "Unknown" then
if rtl then
citeq_args[data.arg] = cfg.i18n_t.ar["unknown-" .. data.arg] or cfg.i18n_t.ar["unknown"]
else
citeq_args[data.arg] = mw.wikibase.getLabelByLang("Q4233718", langcodes[1]):gsub("^%l", mw.ustring.upper)
end
end
-----------------
if data.others then
oth[#oth + 1] = citeq_args[data.arg] and ((rtl and cfg.i18n_t.ar[data.arg] or data.arg:gsub("^%l", string.upper)) .. ": " .. citeq_args[data.arg])
citeq_args[data.arg] = nil
end
elseif cfg.used_properties_t[i] then
if i == "P648" then
citeq_args.ol = (Q:getValue( "P648", { maxvals = 1 } ) or ''):gsub("^OL(.+)$", "%1")
if citeq_args.ol == "" then
citeq_args.ol = nil
end
elseif i == "P957" then
citeq_args.isbn = Q:getValue("P957", { maxvals = 1 } )
elseif in_array(i,{"P854", "P953", "P856", "P2699"}) then
local url;
for _, pr in ipairs( {"P854", "P953", "P856", "P2699"} ) do
url = Q:getValue( pr, { maxvals = 1 } )
if url then
citeq_args.url = mw.text.split( url, " (", true )[1]
local arcurl = mw.ustring.match( url, " %((.*)%)" ) -- when there is an archive url, <url> holds: url<space>(archive url); here extract the archive url if present
if arcurl then
local arcy, arcm, arcd = arcurl:match("(20%d%d)%p?(%d%d)%p?(%d%d)")
if arcy and arcm and arcd then
citeq_args["archive-url"] = arcurl
citeq_args["archive-date"] = tonumber(arcd) .. " " .. cfg.i18n_t.months[tonumber(arcm)] .. " " .. arcy
end
end
break
end
end
end
end
end
end
if citeq_args.url then
if refsnak["P813"] then
citeq_args.accessdate = Q:getValue("P813", { maxvals = 1 } )
end
if refsnak["P1065"] and refsnak["P2960"] then
citeq_args["archive-url"] = Q:getValue("P1065", { maxvals = 1 } )
citeq_args["archive-date"]= Q:getValue("P2960", { maxvals = 1 } )
end
end
citeq_args.others = citeq_args.others or table.concat(oth, ". ")
if citeq_args.others == "" then
citeq_args.others = nil
end
citeq_args.biorxiv = citeq_args.biorxiv and ("10.1101/" .. citeq_args.biorxiv)
-- if url then see if there's an archive: citeq_args.url
local url
local title_display = citeq_args.title
if citeq_args.url then
citeq_args.title = wrap_nowiki(title_display)
end
-- TBD: incorporate |at, |sheets= and |sheet= here as well
-- Sort out what should happen if several of them are given at the same time
if citeq_args.page or citeq_args.p then -- let single take precedence over multiple
citeq_args.pages = nil
citeq_args.pp = nil
end
if citeq_args.pages then
local _, count = string.gsub(citeq_args.pages, "[,;%s]%d+", "")
if count == 1 then
citeq_args.page = citeq_args.pages
citeq_args.pages = nil
end
end
for k, v in pairs(citeq_args) do
if in_array (v, {'(())', 'unset', 'ignore'}) or 'string' ~= type(k) then -- empty accept-as-is-written (()) markup to indicate an empty/unused parameter value, other ((...)) markups are deliberately passed down to {{citation}}
citeq_args[k] = nil
elseif in_array (v, {'((unset))', '((ignore))'}) then -- strip off markup for free-text values clashing with local keywords
citeq_args[k] = 'unset'
end
end
local author_count = 0
for k, v in pairs(citeq_args) do
if k:find("^author%d+$") then
author_count = author_count + 1
end
end
if author_count > 8 then -- convention in astronomy journals, optional mode for this?
if 'all' == citeq_args['display-authors'] then
citeq_args['display-authors'] = nil; -- unset because no longer needed
else
citeq_args['display-authors'] = citeq_args['display-authors'] or 3 -- limit to three displayed names
end
end
-- replace no-break space by space, User:Mr. Ibrahem
if citeq_args.title then
citeq_args.title = mw.ustring.gsub( citeq_args.title, "\194\160", " " )
end
local editor_count = 0
for k, v in pairs(citeq_args) do
if k:find("^editor%d+$") then
editor_count = editor_count + 1
end
end
if editor_count > 8 then -- convention in astronomy journals, optional mode for this?
if 'all' == citeq_args['display-editors'] then
citeq_args['display-editors'] = nil; -- unset because no longer needed
else
citeq_args['display-editors'] = citeq_args['display-editors'] or 3 -- limit to three displayed names
end
end
-- code to make a guess what template to use from the supplied parameters
-- (first draft for proof-of-concept)
local template = "بويب"
-- |id= could hold more than one identifier pulled from Wikidata not supported by {{citation}}, right now only add our qid to the list
local list_sep = '. '
if citeq_args.mode ~= 'cs1' then
list_sep = ', '
end
-- clean up any blank parameters
for k, v in pairs(citeq_args) do
if v == "" then citeq_args[k] = nil end
end
mw.logObject(citeq_args)
if template then
-- citeq_args.mode = citeq_args.mode or "cs1" -- a cs1 template already knows that it is cs1 so this line is superfluous
template = "استشهاد " .. template
else
-- citeq_args.mode = citeq_args.mode or "cs2" -- a cs2 template already knows that it is cs2 so this line is superfluous
template = "استشهاد"
end
citeq_args['no-tracking'] = 'true' -- لإيقاف ظهور تصانيف التتبع
return mw.getCurrentFrame():expandTemplate{title = template, args = citeq_args} -- render the template
end
--[[-------------------------< C I T E _ Q >------------------------------------------------------------------
Takes standard CS1|2 template parameters and passes all to {{citation}}. If neither of |author= and |author1=
are set, calls get_authors() to try to get an author name-list from Wikidata. The result is passed to
{{citation}} for rendering.
--]]
local function _cite_q (in_citeq_args)
local frame = mw.getCurrentFrame()
local citeq_args = {}
local origin_args = {}
local Q
-- parameters that don't get passed to Citation
local expand = in_citeq_args.expand -- when set to anything, causes {{cite q}} to render <code><nowiki>{{citation|...}}</nowiki></code>
local qid = in_citeq_args.qid or in_citeq_args[1]
local wdlinks = in_citeq_args.wdlinks
local template = in_citeq_args.template
local cite_class = 'citation'
local rtl = true
local snak = in_citeq_args.snak or {}
local pqid = in_citeq_args.pqid
local page_offset = 0
in_citeq_args.expand = nil
in_citeq_args[1] = nil
in_citeq_args.qid = nil
in_citeq_args.wdlinks = nil
in_citeq_args.template = nil
in_citeq_args.snak = nil
in_citeq_args.pqid = nil
if in_citeq_args.wikidatacite then
citeq_args = in_citeq_args
else
local A = argument_wrapper(in_citeq_args)
local loaded_args ={}
for _,args_table in pairs({cfg.simple_properties_t, cfg.used_args_t}) do
for k,_ in pairs(args_table) do
if A[k] then
citeq_args[k] = A[k]
if k ~= A:ORIGIN(k) then
origin_args[k] = A:ORIGIN(k)
table.insert(loaded_args, A:ORIGIN(k))
else
table.insert(loaded_args, k)
end
end
end
end
for k,v in pairs(in_citeq_args) do
if not in_array(k,loaded_args) then
citeq_args[k] = v
end
end
end
-- if title supplied, flag to not read html title
local titleforced = (citeq_args.title ~= nil)
local default_opt = {rank = "preferred normal", fetchwikidata = "ALL", onlysourced = false, noicon = true, linksproject = cfg.config_t.linksproject, wikilinkprefix = cfg.config_t.wikilinkprefix }
if citeq_args.volume or citeq_args.volume then
local qualifiedaspossible = {}
if citeq_args.volume then
qualifiedaspossible['P478'] = citeq_args.volume
end
if citeq_args.chapter then
qualifiedaspossible['P792'] = citeq_args.chapter
end
default_opt.qualifiedaspossible = qualifiedaspossible
end
Q = WdItem.WdItem:new(qid, default_opt, snak)
local oth = {}
-- put the language codes into a sequential table langcodes[]
local langcodes = getLanguages(citeq_args.language)
if not langcodes[1] then
-- try to find language of work
langcodes = _lang_code(Q)
end
if not langcodes[1] then
-- try fallback to journal's language
local journal_qid = Q:followQid("P1433")
langcodes = journal_qid and _lang_code(journal_qid)
end
citeq_args.language = citeq_args.language or table.concat(langcodes, ", ")
Q:setOptions( { langs = langcodes } );
local labellang = langcodes[1] or 'ar'
rtl = rtl_lang[langcodes[1]] or false
-- loop through list of simple properties and get their values in citeq_args
for name, data in pairs(cfg.simple_properties_t) do
local opt = { maxvals = data.maxvals, linked = data.linked, qual = data.qual , hijri = data.hijri}
if data.no_vol_qual then opt.qualifiedaspossible = {}; end
citeq_args[name] = citeq_args[name] or Q:getValue(data.id, opt )
if not citeq_args[name] and data.populate_from_journal then
local publishedin = Q:getValue("P1433", {maxvals = 0, qual = data.id, qualsonly = true} )
citeq_args[name] = publishedin or Q:getPropOfProp("P1433", data.id, { maxvals = data.maxvals})
end
if citeq_args[name] and snak[data.id] then
snak[data.id] = nil
end
--- translate unknown value
if citeq_args[name] == "Unknown" and rtl then
citeq_args[name] = cfg.i18n_t.ar["unknown-" .. name] or cfg.i18n_t.ar["unknown"]
end
-----------------
if data.others then
oth[#oth + 1] = citeq_args[name] and ((rtl and cfg.i18n_t.ar[name] or name:gsub("^%l", string.upper)) .. ": " .. citeq_args[name])
citeq_args[name] = nil
end
end
citeq_args.others = citeq_args.others or table.concat(oth, ". ")
if citeq_args.others == "" then
citeq_args.others = nil
end
citeq_args.journal = citeq_args.journal and citeq_args.journal:gsub("^''", ""):gsub("''$", ""):gsub("|''", "|"):gsub("'']]", "]]")
citeq_args.ol = citeq_args.ol or (Q:getValue("P648", { maxvals = 1 } ) or ''):gsub("^OL(.+)$", "%1")
if citeq_args.ol == "" then
citeq_args.ol = nil
end
-- TBD. Take care of |ol-access=?
citeq_args.biorxiv = citeq_args.biorxiv and ("10.1101/" .. citeq_args.biorxiv)
citeq_args.isbn = citeq_args.isbn or Q:getValue("P957", { maxvals = 1, rank="best" } ) -- try ISBN 10 (only one value accepted)
if citeq_args.page then -- let single take precedence over multiple
citeq_args.pages = nil
citeq_args.pp = nil
end
if citeq_args.pages then
local _, count = string.gsub(citeq_args.pages, "[,;%s]%d+", "")
if count == 1 then
citeq_args.page = citeq_args.pages
citeq_args.pages = nil
end
end
-- Orginal Date
if not citeq_args['orig-date'] then
local work, origdate, origDateS = Q:getStatements('P629'):getBestOne():getRawValue()
local origOpt = {rank = "best", maxvals=1, onlysourced = false, noicon = true}
local ishijri = false;
if work then
local workQ = WdItem.newItem(work, origOpt)
origDateS = workQ:getStatements('P577', {df='y', qualifiedaspossible = {P4241='*'}}):getBestOne()
origdate = origDateS:getValue({df='y', hijri=true})
if origdate then
ishijri = true
else
origdate = origDateS:getValue({df='y'})
end
end
if not origdate then
local author = Q:getStatements('P50'):getBestOne():getRawValue()
if author then
local authorQ = WdItem.newItem(author, origOpt)
origDateS = authorQ:getStatements('P570', {df='y', qualifiedaspossible = {P4241='*'}}):getBestOne()
origdate = origDateS:getValue({df='y', hijri=true})
if origdate then
ishijri = true
else
origdate = origDateS:getValue({df='y'})
end
end
end
if origdate then
local printDateS, printDate = Q:getStatements("P577", {df='y', qualifiedaspossible = {P4241='*'}}):getBestOne()
if ishijri then
printDate = printDateS:getValue({hijri=true})
if printDate then
if tonumber(origdate) < tonumber(printDate) then
citeq_args['orig-date'] = origdate .. 'هـ'
end
else
if (tonumber(origDateS:getValue()) or 0) < (tonumber(printDateS:getValue()) or 0) then
citeq_args['orig-date'] = origdate .. 'هـ'
end
end
else
printDate = printDateS:getValue()
if printDate and (tonumber(origdate) < tonumber(printDate)) then
citeq_args['orig-date'] = origdate
end
end
end
end
-- if url then see if there's an archive: citeq_args.url
local url
--find formatted url
if snak ~= {} then
for k, v in pairs(snak) do
if (v[1].datatype == "external-id") then
local furl = mw.wikibase.getBestStatements( k, "P1630" )
if 0 ~= #furl then
furl = furl[1]["mainsnak"]["datavalue"]["value"]
citeq_args.url = mw.message.newRawMessage(furl, {v[1]["datavalue"]["value"]}):plain()
snak[k] = nil
break;
end
end
end
if citeq_args.url == nil and pqid and qid then
local refproperty = mw.wikibase.getBestStatements(qid , "P1687" )
if 0 ~= #refproperty then
-- خطأ لوا في وحدة:Cite_Q على السطر 1124: attempt to index field 'datavalue' (a nil value).
if refproperty[1]["mainsnak"] and refproperty[1]["mainsnak"]["datavalue"] and refproperty[1]["mainsnak"]["datavalue"]["value"] then
refproperty=refproperty[1]["mainsnak"]["datavalue"]["value"]["id"]
local furl = mw.wikibase.getBestStatements( refproperty, "P1630" )
if 0 ~= #furl then
furl = furl[1]["mainsnak"]["datavalue"]["value"]
local refval = mw.wikibase.getBestStatements( pqid, refproperty )
refval = (0 ~= #refval) and refval[1]["mainsnak"]["datavalue"]["value"]
if refval then
citeq_args.url = mw.message.newRawMessage(furl, {refval}):plain()
end
end
end
end
end
end
if not citeq_args.url then
local S953 = Q:getStatements("P953"):getBestOne()
local S953_val = S953:getRawValue()
citeq_args.url = S953_val and (S953_val ~= "novalue" and S953_val ~= "somevalue") and S953_val
if citeq_args.url then
if mw.ustring.match(citeq_args.url, "archive.org/details/") and citeq_args.page then
page_offset = tonumber(S953:getRawQual('P8330')[1]) or 0
if not citeq_args.volume or
(citeq_args.volume and citeq_args.volume == S953:getRawQual('P478')[1]) then
citeq_args.url = mw.ustring.gsub(citeq_args.url, "/?$", "") .. "/page/n" .. (tonumber(citeq_args.page) + page_offset - 1) .. "/mode/1up"
end
end
end
end
if not citeq_args.url then
for i, pr in ipairs( {"P856", "P2699"} ) do
url = Q:getValue(pr, { maxvals = 1, qual="P1065" } )
if url then
citeq_args.url = mw.text.split( url, " (", true )[1]
local arcurl = mw.ustring.match( url, " %((.*)%)" ) -- when there is an archive url, <url> holds: url<space>(archive url); here extract the archive url if present
if arcurl then
local arcy, arcm, arcd = arcurl:match("(20%d%d)%p?(%d%d)%p?(%d%d)")
if arcy and arcm and arcd then
citeq_args["archive-url"] = arcurl
citeq_args["archive-date"] = arcy .. '-' .. arcm .. '-' .. arcd
end
end
break;
end
end
end
if not titleforced then
-- Handle subtitle.
if citeq_args.title then
local subtitle = Q:getValue('P1680');
if subtitle then
citeq_args.title = citeq_args.title .. ": " .. subtitle
end
end
local htmltitle = Q:getValue("P1476", {qual = "P6833", maxvals = 1, qualsonly = true} )
if htmltitle then
citeq_args.title = htmltitle:gsub("</?i>", "''")
else
local title_display = citeq_args.title
or (langcodes[1] and mw.wikibase.getLabelByLang(qid, langcodes[1]))
or mw.wikibase.getLabel(qid)
if title_display and snak and snak.P1810 then
title_display=title_display .. " | " .. snak.P1810[1].datavalue.value
snak.P1810 = nil
end
title_display = title_display or ("No label or title -- debug: " .. qid)
if citeq_args.url then
citeq_args.title = wrap_nowiki(title_display)
else
local slink = mw.wikibase.getSitelink(qid, cfg.config_t.linksproject)
local slink_flag = false
local wrap_title = ''
local wslink = false
if not slink then
-- See if we have wikisource
if not citeq_args.url then
local wikisource_sitelink = mw.wikibase.getSitelink(qid, cfg.i18n_t.wikisource) or nil
if wikisource_sitelink then
slink = ':s:'..wikisource_sitelink
wslink = true
end
end
end
if citeq_args.title then
if slink then
wrap_title = wrap_nowiki(citeq_args.title)
slink_flag = true
else
citeq_args.title = wrap_nowiki(citeq_args.title)
end
else
if slink and not wslink then
if slink:lower() == title_display:lower() then
citeq_args.title = '[[' .. slink .. ']]'
else
wrap_title = wrap_nowiki(slink:gsub("%s%(.+%)$", ""):gsub(",.+$", ""))
slink_flag = true
end
elseif wslink then
wrap_title = wrap_nowiki(title_display)
slink_flag = true
else
citeq_args.title = wrap_nowiki(title_display)
end
end
if slink_flag then
if slink == wrap_title and not wslink then -- direct link
citeq_args.title = '[[' .. slink .. ']]'
else -- piped link
citeq_args.title = '[[' .. slink .. '|' .. wrap_title .. ']]'
end
end
end
end
end
-- replace no-break space by space, User:Mr. Ibrahem
if citeq_args.title then
citeq_args.title = mw.ustring.gsub( citeq_args.title, "\194\160", " " )
end
if is_set (qid) then
if not is_set (citeq_args.author) and not is_set (citeq_args.author1)
and not is_set (citeq_args.subject) and not is_set (citeq_args.subject1)
and not is_set (citeq_args.host) and not is_set (citeq_args.host1)
and not is_set (citeq_args.last) and not is_set (citeq_args.last1)
and not is_set (citeq_args.surname) and not is_set (citeq_args.surname1)
and not is_set (citeq_args['author-last']) and not is_set (citeq_args['author-last1']) and not is_set (citeq_args['author1-last'])
and not is_set (citeq_args['author-surname']) and not is_set (citeq_args['author-surname1']) and not is_set (citeq_args['author1-surname1']) then -- if neither are set, try to get authors from Wikidata
get_name_list ('author', citeq_args, Q, wdlinks, labellang) -- modify citeq_args table with authors from Wikidata
end
if not is_set (citeq_args.editor) and not is_set (citeq_args.editor1)
and not is_set (citeq_args['editor-last']) and not is_set (citeq_args['editor-last1']) and not is_set (citeq_args['editor1-last'])
and not is_set (citeq_args['editor-surname']) and not is_set (citeq_args['editor-surname1']) and not is_set (citeq_args['editor1-surname']) then -- if neither are set, try to get editors from Wikidata
get_name_list ('editor', citeq_args, Q, wdlinks, labellang) -- modify citeq_args table with editors from Wikidata
end
if not is_set (citeq_args.translator) and not is_set (citeq_args.translator1)
and not is_set (citeq_args['translator-last']) and not is_set (citeq_args['translator-last1']) and not is_set (citeq_args['translator1-last'])
and not is_set (citeq_args['translator-surname']) and not is_set (citeq_args['translator-surname1']) and not is_set (citeq_args['translator1-surname']) then -- if neither are set, try to get translators from Wikidata
get_name_list ('translator', citeq_args, Q, wdlinks, labellang) -- modify citeq_args table with translators from Wikidata
end
end
for k, v in pairs(citeq_args) do
if in_array (v, {'(())', 'unset', 'ignore'}) or 'string' ~= type(k) then -- empty accept-as-is-written (()) markup to indicate an empty/unused parameter value, other ((...)) markups are deliberately passed down to {{citation}}
citeq_args[k] = nil
elseif in_array (v, {'((unset))', '((ignore))'}) then -- strip off markup for free-text values clashing with local keywords
citeq_args[k] = 'unset'
end
end
local author_count = 0
for k, v in pairs(citeq_args) do
if k:find("^author%d+$") then
author_count = author_count + 1
end
end
if author_count > 8 then -- convention in astronomy journals, optional mode for this?
if 'all' == citeq_args['display-authors'] then
citeq_args['display-authors'] = nil; -- unset because no longer needed
else
citeq_args['display-authors'] = citeq_args['display-authors'] or 3 -- limit to three displayed names
end
end
local editor_count = 0
for k, v in pairs(citeq_args) do
if k:find("^editor%d+$") then
editor_count = editor_count + 1
end
end
if editor_count > 8 then -- convention in astronomy journals, optional mode for this?
if 'all' == citeq_args['display-editors'] then
citeq_args['display-editors'] = nil; -- unset because no longer needed
else
citeq_args['display-editors'] = citeq_args['display-editors'] or 3 -- limit to three displayed names
end
end
-- change edition to ordinal if it's set and numeric
if (rtl == false) then citeq_args.edition = citeq_args.edition and makeOrdinal(citeq_args.edition) end
-- code to make a guess what template to use from the supplied parameters
-- (first draft for proof-of-concept)
if citeq_args.journal then
template = template or "بدورية محكمة"
elseif citeq_args.isbn then
template = template or "بكتاب"
citeq_args.asin = nil -- suppress ASIN if ISBN exists
elseif citeq_args.website then
template = template or "بويب"
end
-- template is CS1 designator: journal, web, news, etc.
if template then
-- citeq_args.mode = citeq_args.mode or "cs1" -- a cs1 template already knows that it is cs1 so this line is superfluous
local citeclasses = {["بدورية محكمة"] = 'journal', ["بكتاب"] = "book", ["بويب"] = "web" }
cite_class = citeclasses[template]
template = "استشهاد " .. template
else
-- citeq_args.mode = citeq_args.mode or "cs2" -- a cs2 template already knows that it is cs2 so this line is superfluous
template = "استشهاد"
end
-- |id= could hold more than one identifier pulled from Wikidata not supported by {{citation}}, right now only add our qid to the list
local list_sep = '. '
if citeq_args.mode ~= 'cs1' then
list_sep = ', '
end
local id = cfg.i18n_t.wdq .. ':[[:d:' .. qid .. '|' .. qid .. ']]'
local old_id = citeq_args.id
if wdlinks then -- show WD logo
id = id .. '[[ملف:Wikidata-logo.svg|16px|alt=|link=]]' -- possibly replace by WD edit icon?
end
if is_set (old_id) then
citeq_args.id = old_id .. list_sep .. id -- append to user-specified contents
else
citeq_args.id = id
end
-- clean up any blank parameters
for k, v in pairs(citeq_args) do
if v == "" then citeq_args[k] = nil end
end
-- use real param names for CS1 messages
for k,v in pairs(origin_args) do
if citeq_args[k] and citeq_args[k] == in_citeq_args[v] then
citeq_args[v] = citeq_args[k]
citeq_args[k] = nil
end
end
mw.logObject(citeq_args)
-- if |expand=<anything>, write a nowiki'd version to see what the {{citation}} template call looks like
if expand then
local expand_args = { "{{" .. template .. "\n" } -- init with citation template
if expand == "self" then
citeq_args.id = old_id -- restore original |id= parameter
expand_args = { cfg.i18n_t.cite_q .. qid } -- expand to itself
end
-- make a sortable table and sort it by param name
local sorttable = {}
for param, val in pairs (citeq_args) do
table.insert(sorttable, {param, val})
end
table.sort(sorttable, comp_key)
-- add contents to expand_args
for idx, val in ipairs(sorttable) do
table.insert(expand_args, val[1] .. '=' .. val[2] .. "\n")
end
-- make the nowiki'd string and done
return frame:preprocess (table.concat ({'<syntaxhighlight lang="wikitext" inline="1">', table.concat (expand_args, ' |') .. '}}', '</syntaxhighlight>'}));
end
local erratumid = Q:getPropertyIDs( "P2507", { maxvals = 1 } )
if erratumid then
erratumid = " [[d:" .. erratumid .. "|" .. cfg.i18n_t.erratum .. "]]" .. cfg.i18n_t.trackingcats.erratum
else
erratumid = ""
end
local opt_cat = ''
if Q:getValue( "P5824" ) then
opt_cat = cfg.i18n_t.trackingcats.retracted
end
if Q:getValue( "P1366" ) then
opt_cat = opt_cat .. cfg.i18n_t.trackingcats.replaced
end
if not citeq_args.title then -- emit category link if missing title
opt_cat = opt_cat .. cfg.i18n_t.trackingcats['no-label-or-title'];
end
if citeq_args.wikidatacite then
return frame:expandTemplate{title = template, args = citeq_args} .. erratumid .. opt_cat -- render the template
else
local CS = require("Module:Citation/CS1" .. sandbox)
return CS._citation(frame , citeq_args, {['CitationClass'] = cite_class}) .. erratumid .. opt_cat
end
end
--[[-------------------------< C I T E W I K I D A T A >------------------------------------------------------------------
format wikidata reference
--]]
local function _cite_wikidata (ref, pqid, expand)
-- early exit
if not ref then
return nil
end
local snak = ref.snaks
-- مراجع غير مقبولة
if snak.P143 or snak.P3452 then
return nil
end
local hash = ref.hash
if hash and hash ~= "" and ref_cash[hash] then
return ref_cash[hash]
end
local citeq_args = {}
local frame = mw.getCurrentFrame()
-- مذكور في
if snak.P248 then
for _, prop in pairs(snak.P248) do
if prop.snaktype == "value" then
citeq_args.qid = "Q" .. prop.datavalue.value["numeric-id"]
end
end
snak.P248 = nil;
end
if citeq_args.qid and is_rejected(citeq_args.qid) == true then
return nil
end
local reference
citeq_args.snak = snak
citeq_args.pqid = pqid
citeq_args.wikidatacite = 1
citeq_args.expand = expand
if citeq_args.qid then
reference = _cite_q(citeq_args)
else
local has_properties = false
for k, _ in pairs(cfg.used_properties_t) do
if snak[k] then
has_properties = true;
break;
end
end
reference = (has_properties and _cite_web(citeq_args) or nil)
end
if reference and reference ~= "" then
reference = frame:extensionTag("ref", reference, {name = 'wikidata-' .. hash})
end
if hash and hash ~= "" then
ref_cash[hash] = reference
end
return reference
end
local function cite_q (frame)
local args = {}
for k, v in pairs(frame:getParent().args) do
if v ~= "" then args[k] = v end
end
for k, v in pairs(frame.args) do
if v ~= "" then args[k] = v end
end
args.qid = args.qid or args[1] or ""
if args.qid == "" then return nil end
args[1] = nil
local citesep = (args.citesep or "")
if citesep == "" then citesep = ", " end
citesep = citesep:gsub('"', '') -- strip double quotes after setting default to allow |citesep="" as a blank separator
args.citesep = nil
local tag = args.tag or ""
if tag == "" then tag = nil end
args.tag = nil
local list = args.list or ""
if list == "" then list = nil end
args.list = nil
args.language = args.language or args.lang
args.lang = nil
local cites = {}
for q in args.qid:gmatch("Q%d+") do
-- make a new copy of the arguments
local newargs = {}
for k, v in pairs(args) do
if k ~= "qid" then
newargs[k] = v
end
end
newargs.qid = q
if tag == "ref" then
cites[#cites + 1] = frame:callParserFunction{ name = "#tag:ref", args = { _cite_q(newargs), name = q } }
-- expand like this: args = { _cite_q(newargs), name = 'foo', group = 'bar' }
else
cites[#cites + 1] = _cite_q(newargs)
end
end
if list then
return frame:expandTemplate{ title = list, args = cites }
else
return table.concat(cites, citesep)
end
end
--[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------
]]
return {
makeOrdinal = makeOrdinal,
getLangOfProp = getLangOfProp,
-- lang_code = lang_code,
_cite_wikidata = _cite_wikidata,
_cite_q = _cite_q,
cite_q = cite_q
}
2111y24erxi5mfseb9p3382k33gcnl6
وحدة:WdItem
828
235573
1097662
1097320
2026-07-27T21:00:42Z
حبيشان
31560
تحديث الملعب
1097662
Scribunto
text/plain
-- Module: WdItem
-- Object-oriented Wikidata access module for Lua
-- Refactored from WikidataIB for direct Lua usage
require("strict")
local p = {}
-- i18n configuration
local i18n = {
["errors"] = {
["property-not-found"] = "الخاصية غير موجودة.",
["entity-not-found"] = "الكيان على ويكي بيانات غير موجود.",
["unknown-claim-type"] = "نوع الادعاء غير معروف.",
["local-article-not-found"] = "المعرف متاح على ويكي بيانات، ولكن المقال غير متاح على ويكيبيديا",
},
["months"] = {
"January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
},
["Unknown"] = "Unknown",
["NaN"] = "Not a number",
["missinginfocat"] = "[[تصنيف:Articles with missing Wikidata information]]",
["list separator"] = ", ",
["list separator-ar"] = "، ",
}
-- Date precision constants
local dp = {
[6] = "millennium",
[7] = "century",
[8] = "decade",
[9] = "year",
[10] = "month",
[11] = "day",
}
-- local options_aliases = {
-- ["osd"] = "onlysourced",
-- ["wdl"] = "wdlinks",
-- ["uabbr"] = "unitabbr",
-- ["qo"] = "qualsonly",
-- ["lp"] = "linkprefix",
-- ["lprefix"] = "linkprefix",
-- ["qlp"] = "qlinkprefix",
-- ["sn"] = "shortname",
-- ["uselbl"] = "uselabel",
-- ["pd"] = "plaindate",
-- ["qdf"] = "qualifierdateformat",
-- ["df"] = "qualifierdateformat",
-- ["qsn"] = "qshortname"
-- }
-- setmetatable(options_aliases, { __index = function(t, k) return k end })
-------------------------------------------------------------------------------
-- Internal helper functions
-------------------------------------------------------------------------------
local function in_array( needle, haystack )
if needle == nil then
return false
end
for n, v in ipairs( haystack ) do
if v == needle then
return n
end
end
return false
end
local function findLang(langcode)
local langobj
langcode = mw.text.trim(langcode or "")
if langcode ~= "" then
if mw.language.isKnownLanguageTag(langcode) then
langobj = mw.language.new(langcode)
end
else
langobj = mw.language.getContentLanguage()
end
return langobj and langobj.code
end
local function parseParam(param, default)
if param == nil then
return default
end
return param
end
local function setRanks(rank)
rank = (rank or ""):lower()
local ranks = {}
for w in string.gmatch(rank, "%a+") do
if w == "best" or w == "preferred" or w == "normal" or w == "deprecated" then
ranks[w] = true
end
end
if ranks.best or not next(ranks) then
ranks.preferred = true
ranks.normal = true
ranks.deprecated = false
end
return ranks
end
local function labelOrId(id, lang_t)
local langs = lang_t or {}
local label
for _,lang in ipairs(langs) do
label = mw.wikibase.getLabelByLang(id, lang)
if label ~= "" then
break;
end
end
label = label or mw.wikibase.getLabel(id)
if label then
return mw.text.nowiki(label), true
else
return id, false
end
end
local function roundto(x, sf)
if x == 0 then return 0 end
local s = 1
if x < 0 then
x = -x
s = -1
end
if sf < 1 then sf = 1 end
local p = 10 ^ (math.floor(math.log10(x)) - sf + 1)
x = math.floor(x / p + 0.5) * p * s
if x == math.floor(x) then x = math.floor(x) end
return x
end
local function decimalPrecision(x, p)
local s = 1
if x < 0 then
x = -x
s = -1
end
if not tonumber(p) then p = 1e-4
elseif p > 1 then p = 1
elseif p < 1e-6 then p = 1e-6
else p = 10 ^ math.floor(math.log10(p))
end
x = math.floor(x / p + 0.5) * p * s
if x == math.floor(x) then x = math.floor(x) end
if math.abs(x) < 1e-4 then x = string.format("%f", x) end
return x
end
local function decimalToDMS(x, p)
if not tonumber(p) then p = 1e-4 end
local d = math.floor(x)
local ms = (x - d) * 60
if p > 0.5 then
if ms > 30 then d = d + 1 end
ms = 0
end
local m = math.floor(ms)
local s = (ms - m) * 60
if p > 0.008 then
if s > 30 then m = m +1 end
s = 0
elseif p > 0.00014 then
s = math.floor(s + 0.5)
elseif p > 0.000014 then
s = math.floor(10 * s + 0.5) / 10
elseif p > 0.0000014 then
s = math.floor(100 * s + 0.5) / 100
else
s = math.floor(1000 * s + 0.5) / 1000
end
return d, m, s
end
local function rawValue(dataValue)
if dataValue.type == "string" then
return dataValue.value
elseif dataValue.type == "wikibase-entityid" then
return dataValue.value and dataValue.value.id
elseif dataValue.type == "monolingualtext" then
return dataValue.value.text
elseif dataValue.type == "quantity" then
return tonumber(dataValue.value.amount)
elseif dataValue.type == 'time' then
return dataValue.value.time
elseif dataValue.type == "globecoordinate" then
return dataValue.value.latitude .. '/' .. dataValue.value.longitude
end
end
local function compareValue(dataValue, strValue)
return rawValue(dataValue) == strValue
end
local function dateFormat(timestamp, dprec, df, bcf, plaindate, qualifiers, lang, adj, model)
df = (df or ""):lower()
if df == "ymd" then
if timestamp:sub(1,1) == "+" then
return timestamp:sub(2,11)
else
local yr = tonumber(timestamp:sub(2,5)) - 1
yr = ("000" .. yr):sub(-4)
if yr ~= "0000" then yr = "-" .. yr end
return yr .. timestamp:sub(6,11)
end
end
timestamp = timestamp:gsub("%-00%-00T", "-01-01T")
dprec = dprec or 11
if df == "y" and dprec > 9 then dprec = 9 end
dprec = dprec>11 and 11 or dprec
dprec = dprec<6 and 6 or dprec
bcf = (bcf or ""):upper()
plaindate = (plaindate or ""):sub(1,1):lower()
if plaindate == "" or plaindate == "n" or plaindate == "f" or plaindate == "0" then plaindate = false end
lang = lang or findLang()
adj = adj or ""
local bc = timestamp:sub(1, 1)=="-" and "BC" or ""
local year, month, day = timestamp:match("[+-](%d*)-(%d*)-(%d*)T")
local iso = tonumber(year)
if df == 'tt' then
return {
year = tonumber(timestamp:match("^([+-]%d*)-")) or 0,
month = tonumber(month) or 0,
day = tonumber(day) or 0
}
end
if dprec == 6 then iso = math.floor( (iso - 1) / 1000 ) + 1 end
if dprec == 7 then iso = math.floor( (iso - 1) / 100 ) + 1 end
if dprec == 8 then iso = math.floor( iso / 10 ) .. "0" end
if dprec == 10 then iso = year .. "-" .. month end
if dprec == 11 then iso = year .. "-" .. month .. "-" .. day end
local sc = not plaindate and qualifiers and qualifiers.P1480
if sc then
for k1, v1 in pairs(sc) do
if v1.datavalue and v1.datavalue.value.id == "Q5727902" then
adj = "circa"
break
end
end
end
local calendarmodel = ""
if tonumber(year) > 1582 and dprec > 8 and not plaindate and model == "http://www.wikidata.org/entity/Q1985786" then
calendarmodel = "julian"
end
-- Simplified date formatting (complex date module not available)
local fdate = tostring(iso)
if bc ~= "" then
fdate = fdate .. " " .. (bcf == "BC" and "BC" or "BCE")
end
if adj == "circa" then
fdate = "c. " .. fdate
end
return fdate
end
local function hijriFormat(qualifiers, dateformat, lang)
if not (qualifiers and qualifiers.P4241) then return; end
local year, month, monthno, day
local val
local qhmonths = {["Q1952053"]=1,["Q489557"]=2, ["Q474167"] = 3, ["Q273815"] = 4, ["Q852002"] = 5, ["Q822218"] = 6,
["Q194210"] = 7, ["Q220914"] = 8, ["Q8867089"]=9, ["Q685440"]=10,["Q150853"]=11,["Q186022"]=12 }
local hmonths = {"محرم","صفر","ربيع الأول","ربيع الآخر","جمادى الأولى","جمادى الآخرة","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة"}
local hmonths_inv = {["محرم"] = 1, ["صفر"]=2, ["ربيع الأول"]=3, ["ربيع الآخر"]=4, ["جمادى الأولى"]=5, ["جمادى الآخرة"]=6, ["رجب"]=7, ["شعبان"]=8, ["رمضان"]=9, ["شوال"]=10, ["ذو القعدة"]=11, ["ذو الحجة"]=12}
for _, item in ipairs(qualifiers.P4241) do
local timeQ = item.datavalue and item.datavalue.value and item.datavalue.value.id
local hastime = false
if timeQ then
local timeQt = mw.wikibase.getBestStatements(timeQ, "P361")
for _,timeQsnak in pairs(timeQt) do
local timeType = timeQsnak.mainsnak and timeQsnak.mainsnak.datavalue and timeQsnak.mainsnak.datavalue.value and timeQsnak.mainsnak.datavalue.value.id
if timeType == "Q28892" then
local timeLableAr = mw.wikibase.getLabelByLang(timeQ, "ar")
if timeLableAr then
year = mw.ustring.match(timeLableAr, "^(%d+) *هـ$")
end
if not year then
local timeLableEn = mw.wikibase.getLabelByLang(timeQ, "en")
if timeLableEn then
year = mw.ustring.match(timeLableAr, "^(%d+) *AH$")
end
end
hastime=true
elseif qhmonths[timeType] then
monthno = qhmonths[timeType]
if monthno>0 and monthno<13 then
month = hmonths[monthno]
end
local timeLableAr = mw.wikibase.getLabelByLang(timeQ, "ar")
if timeLableAr then
day = mw.ustring.match(timeLableAr, "^(%d+) *%a+$")
end
if not day then
local timeLableEn = mw.wikibase.getLabelByLang(timeQ, "en")
if timeLableEn then
day = mw.ustring.match(timeLableAr, "^(%d+) *%a+$")
end
end
hastime=true
end
end
if not hastime then
timeQt = mw.wikibase.getBestStatements(timeQ, "P31")
if "Q125390868" == (timeQt[1].mainsnak and timeQt[1].mainsnak.datavalue and timeQt[1].mainsnak.datavalue.value and timeQt[1].mainsnak.datavalue.value.id ) then
val = mw.wikibase.getLabelByLang(timeQ, "ar")
month, year = mw.ustring.match(val, "^(%a[%a ]+%a) *(%d+) *هـ?$")
monthno = hmonths_inv[month]
end
end
end
end
if year then
if dateformat == "tt" then
return {year = tonumber(year) or 0,
month = monthno or 0,
day = tonumber(day) or 0,
monthname = month or ''}
elseif dateformat == "y" or not month then
return year;
elseif day and month then
if dateformat == 'ymd' then
return string.format("%04d-%02d-%02d", tonumber(year), monthno, tonumber(day));
else
return day .. ' ' .. month .. ' ' .. year;
end
elseif month then
return month .. ' ' .. year;
end
end
return nil;
end
local function rawValueOrDF (statement, opt)
local datasnak = statement.mainsnak or statement
if (datasnak.datavalue and datasnak.datavalue.type == 'time') and (opt.hijri or opt.df) then
if opt.hijri then
return statement.qualifiers and hijriFormat(statement.qualifiers, opt.df) or nil
elseif opt.df then
local dv = datasnak.datavalue.value
return dateFormat(dv.time, dv.precision, opt.df, opt.bc, opt.plaindate, statement.qualifiers, opt.lang, "", dv.calendarmodel)
end
else
return rawValue(datasnak.datavalue)
end
end
local function sourced(claim)
if claim.references then
for kr, vr in pairs(claim.references) do
local ref = mw.wikibase.renderSnaks(vr.snaks)
if not ref:find("Wiki") then
return true
end
end
end
end
local function linkedItem(id, args)
local linkprefix = (args.linkprefix or ""):gsub('"', '')
local lpostfix = (args.lpostfix or ""):gsub('"', '')
local prefix = (args.prefix or ""):gsub('"', '')
local postfix = (args.postfix or ""):gsub('"', '')
local wikilinkprefix = (args.wikilinkprefix or ""):gsub('"', '')
local dtxt = args.dtxt
local uselabel = parseParam( args.uselabel, true)
local langs = (args.langs and #args.langs>0) and args.langs or { args.lang }
local disp
local sitelink = mw.wikibase.getSitelink(id, args.linksproject)
local label, islabel
if dtxt then
label, islabel = dtxt, true
else
label, islabel = labelOrId(id, langs)
end
if sitelink then
if not uselabel then
local pos = sitelink:find(":") or 0
local slink = sitelink
if pos > 0 then
local pfx = sitelink:sub(1,pos-1)
if mw.site.namespaces[pfx] then
slink = sitelink:sub(pos+1)
end
end
slink = slink:gsub("%s%(.+%)$", ""):gsub(",.+$", "")
if label:find("^%u") then
label = slink:gsub("^(%l)", string.upper)
else
label = slink:gsub("^(%u)", string.lower)
end
end
disp = "[[" .. wikilinkprefix .. sitelink .. lpostfix .. "|" .. prefix .. label .. postfix .. "]]"
elseif islabel then
disp = prefix .. label .. postfix
else
disp = prefix .. label .. postfix .. i18n.missinginfocat
end
return disp
end
local function rendersnak(propval, args, linked, lpre, lpost, pre, post, unitabbr, filter)
lpre = lpre or ""
lpost = lpost or ""
pre = pre or ""
post = post or ""
args.lang = args.lang or (args.langs and args.langs[1]) or findLang();
local langs = (args.langs and #args.langs>0) and args.langs or {args.lang }
local snak = propval.mainsnak or propval
local dtype = snak.datatype
local dv = snak.datavalue
dv = dv and dv.value
local val, mlt
local namedas;
namedas = propval.qualifiers and propval.qualifiers.P1932 and propval.qualifiers.P1932[1].datavalue and propval.qualifiers.P1932[1].datavalue.value or nil
args.dtxt = namedas
if propval.rank and not args.reqranks[propval.rank] then
return nil
elseif snak.snaktype == "somevalue" then
val = namedas or i18n["Unknown"]
elseif snak.snaktype == "novalue" then
-- return nothing
elseif dtype == "wikibase-item" then
local qnumber = dv.id
if linked then
val = linkedItem(qnumber, args)
else
if namedas then
val = pre .. namedas .. post
else
local label, islabel = labelOrId(qnumber, langs)
val = pre .. label .. post
end
end
elseif dtype == "time" then
if args.hijri then
val = hijriFormat(propval.qualifiers, args.df, args.lang)
else
val = dateFormat(dv.time, dv.precision, args.df, args.bc, args.plaindate, propval.qualifiers, args.lang, "", dv.calendarmodel)
end
elseif dtype == "commonsMedia" or dtype == "external-id" or dtype == "string" or dtype == "url" then
if (lpre == "" or lpre == ":") and lpost == "" then
val = pre .. dv .. post
elseif dtype == "external-id" then
val = "[" .. lpre .. dv .. lpost .. " " .. pre .. dv .. post .. "]"
else
val = "[[" .. lpre .. dv .. lpost .. "|" .. pre .. dv .. post .. "]]"
end
elseif dtype == "quantity" then
local amount = tonumber(dv.amount) or i18n["NaN"]
local unit = ""
local unitqid = string.match(dv.unit, "(Q%d+)")
if filter and unitqid ~= filter then return nil end
if unitqid then
local uname = labelOrId(unitqid, langs) or ""
if uname ~= "" then unit = " " .. uname end
end
val = tostring(amount) .. unit
elseif dtype == "globe-coordinate" then
local lat, long, prec = dv.latitude, dv.longitude, dv.precision
local show = (args.show or ""):lower()
if show == "lat" then
val = decimalPrecision(lat, prec)
elseif show == "lon" then
val = decimalPrecision(long, prec)
elseif show == "longlat" then
val = decimalPrecision(long, prec) .. ", " .. decimalPrecision(lat, prec)
else
local ns = lat < 0 and "S" or "N"
local ew = long < 0 and "W" or "E"
if lat < 0 then lat = -lat end
if long < 0 then long = -long end
val = decimalPrecision(lat, prec) .. "°" .. ns .. " " .. decimalPrecision(long, prec) .. "°" .. ew
end
elseif dtype == "monolingualtext" then
val = pre .. dv.text .. post
mlt = dv.language
else
val = "unknown data type: " .. dtype
end
return val, mlt
end
local function assembleoutput(out, args, entityID, propertyID)
local sorted = parseParam(args.sorted, false)
local noicon = parseParam(args.noicon, false)
local list = args.list or ""
local separator = args.sep or ""
separator = string.gsub(separator, '"', '')
if separator == "" then
local rtl_lang = {ar = true, fa = true, ur = true, ku = true, he = true}
separator = rtl_lang[args.lang] and i18n["list separator-ar"] or i18n["list separator"]
end
local strout
if #out > 0 then
if sorted then table.sort(out) end
if list == "" then
strout = table.concat(out, separator)
elseif list:lower() == "prose" then
strout = mw.text.listToText(out)
else
strout = mw.getCurrentFrame():expandTemplate{title = list, args = out}
end
else
strout = nil
end
return strout
end
local function propertyvalueandquals(objproperty, args, qualID)
-- needs this style of declaration because it's re-entrant
-- onlysourced is a boolean passed to return only values sourced to other than Wikipedia
-- if nothing or an empty string is passed set it true
local onlysrc = parseParam(args.onlysourced, false)
-- linked is a a boolean that enables the link to a local page via sitelink
-- if nothing or an empty string is passed set it true
local linked = parseParam(args.linked, true)
-- prefix is a string that may be nil, empty (""), or a string of characters
-- this is prefixed to each value
-- useful when when multiple values are returned
-- any double-quotes " are stripped out, so that spaces may be passed
local prefix = (args.prefix or ""):gsub('"', '')
-- postfix is a string that may be nil, empty (""), or a string of characters
-- this is postfixed to each value
-- useful when when multiple values are returned
-- any double-quotes " are stripped out, so that spaces may be passed
local postfix = (args.postfix or ""):gsub('"', '')
-- linkprefix is a string that may be nil, empty (""), or a string of characters
-- this creates a link and is then prefixed to each value
-- useful when when multiple values are returned and indirect links are needed
-- any double-quotes " are stripped out, so that spaces may be passed
local linkprefix = (args.linkprefix or ""):gsub('"', '')
-- linkpostfix is a string that may be nil, empty (""), or a string of characters
-- this is postfixed to each value when linking is enabled with linkprefix
-- useful when when multiple values are returned
-- any double-quotes " are stripped out, so that spaces may be passed
local lpostfix = (args.linkpostfix or ""):gsub('"', '')
-- wdlinks is a boolean passed to enable links to Wikidata when no article exists
-- if nothing or an empty string is passed set it false
local wdlinks = parseParam(args.wdlinks, false)
-- unitabbr is a boolean passed to enable unit abbreviations for common units
-- if nothing or an empty string is passed set it false
local unitabbr = parseParam(args.unitabbr, false)
-- qualsonly is a boolean passed to return just the qualifiers
-- if nothing or an empty string is passed set it false
local qualsonly = parseParam(args.qualsonly, false)
-- maxvals is a string that may be nil, empty (""), or a number
-- this determines how many items may be returned when multiple values are available
-- setting it = 1 is useful where the returned string is used within another call, e.g. image
local maxvals = tonumber(args.maxvals) or 0
-- plaindate boolean
-- to disable/enable "sourcing cirumstances" or use adjectival form for the plain date
local plaindate = args.plaindate or false
args.plaindate = plaindate
-- allow qualifiers to have a different date format; default to year unless qualsonly is set
args.qualifierdateformat = args.qualifierdateformat or (not qualsonly and "y")
local lang = args.lang or (args.langs and args.langs[1]) or findLang()
-- qualID is a string list of wanted qualifiers or "ALL"
qualID = qualID or ""
-- capitalise list of wanted qualifiers and substitute "DATES"
qualID = qualID:upper():gsub("DATES", "P580, P582")
local allflag = (qualID == "ALL")
-- create table of wanted qualifiers as key
local qwanted = {}
-- create sequence of wanted qualifiers
local qorder = {}
for q in mw.text.gsplit(qualID, "%p") do -- split at punctuation and iterate
local qtrim = mw.text.trim(q)
if qtrim ~= "" then
qwanted[mw.text.trim(q)] = true
qorder[#qorder+1] = qtrim
end
end
-- qsep is the output separator for rendering qualifier list
local qsep = (args.qsep or ""):gsub('"', '')
-- qargs are the arguments to supply to assembleoutput()
local qargs = {
["onlysourced"] = "false",
["linked"] = tostring(linked),
["prefix"] = args.qprefix,
["postfix"] = args.qpostfix,
["linkprefix"] = args.qlinkprefix,
["linkpostfix"] = args.qlinkpostfix,
["wdlinks"] = "false",
["unitabbr"] = tostring(unitabbr),
["maxvals"] = 0,
["sorted"] = tostring(args.qsorted),
["noicon"] = "true",
["list"] = args.qlist,
["sep"] = qsep,
-- ["langobj"] = args.langobj,
["lang"] = lang,
langs = args.langs,
["df"] = args.qualifierdateformat,
["shortname"] = parseParam(args.qshortname, false),
}
-- all proper values of a Wikidata property will be the same type as the first
-- qualifiers don't have a mainsnak, properties do
--#Modified line
local datatype = objproperty[1].datatype or (objproperty[1].mainsnak and objproperty[1].mainsnak.datatype)
-- out[] holds the a list of returned values for this property
-- mlt[] holds the language code if the datatype is monolingual text
local out = {}
local mlt = {}
for k, v in ipairs(objproperty) do
local hasvalue = true
if (onlysrc and not sourced(v)) then
-- no value: it isn't sourced when onlysourced=true
hasvalue = false
else
local val, lcode = rendersnak(v, args, linked, linkprefix, lpostfix, prefix, postfix, unitabbr)
if not val then
hasvalue = false -- rank doesn't match
elseif qualsonly and qualID then
-- suppress value returned: only qualifiers are requested
else
out[#out+1], mlt[#out+1] = val, lcode
end
end
-- See if qualifiers are to be returned:
local snak = v.mainsnak or v
if hasvalue and v.qualifiers and qualID ~= "" and snak.snaktype~="novalue" then
-- collect all wanted qualifier values returned in qlist, indexed by propertyID
local qlist = {}
local timestart, timeend = "", ""
-- loop through qualifiers
for k1, v1 in pairs(v.qualifiers) do
if allflag or qwanted[k1] then
if k1 == "P1326" then
local ts = v1[1].datavalue.value.time
local dp = v1[1].datavalue.value.precision
qlist[k1] = dateFormat(ts, dp, args.qualifierdateformat, args.bc, plaindate, "", lang, "before")
elseif k1 == "P1319" then
local ts = v1[1].datavalue.value.time
local dp = v1[1].datavalue.value.precision
qlist[k1] = dateFormat(ts, dp, args.qualifierdateformat, args.bc, plaindate, "", lang, "after")
elseif k1 == "P580" then
timestart = propertyvalueandquals(v1, qargs)[1] or "" -- treat only one start time as valid
elseif k1 == "P582" then
timeend = propertyvalueandquals(v1, qargs)[1] or "" -- treat only one end time as valid
else
local q = assembleoutput(propertyvalueandquals(v1, qargs), qargs)
-- we already deal with circa via 'sourcing circumstances' if the datatype was time
-- circa may be either linked or unlinked *** internationalise later ***
if datatype ~= "time" or q ~= "circa" and not (type(q) == "string" and q:find("circa]]")) then
qlist[k1] = q
end
end
end -- of test for wanted
end -- of loop through qualifiers
-- set date separator
local t = timestart .. timeend
-- *** internationalise date separators later ***
local dsep = "–"
if t:find("%s") or t:find(" ") then dsep = " – " end
-- set the order for the list of qualifiers returned; start time and end time go last
if next(qlist) then
local qlistout = {}
if allflag then
for k2, v2 in pairs(qlist) do
qlistout[#qlistout+1] = v2
end
else
for i2, v2 in ipairs(qorder) do
qlistout[#qlistout+1] = qlist[v2]
end
end
if t ~= "" then
qlistout[#qlistout+1] = timestart .. dsep .. timeend
end
local qstr = assembleoutput(qlistout, qargs)
if qualsonly then
out[#out+1] = qstr
else
out[#out] = out[#out] .. " (" .. qstr .. ")"
end
elseif t ~= "" then
if qualsonly then
if timestart == "" then
out[#out+1] = timeend
elseif timeend == "" then
out[#out+1] = timestart
else
out[#out+1] = timestart .. dsep .. timeend
end
else
out[#out] = out[#out] .. " (" .. timestart .. dsep .. timeend .. ")"
end
end
end -- of test for qualifiers wanted
if maxvals > 0 and #out >= maxvals then break end
end -- of for each value loop
-- we need to pick one value to return if the datatype was "monolingualtext"
-- if there's only one value, use that
-- otherwise look through the fallback languages for a match
if datatype == "monolingualtext" and #out >1 then
lang = mw.text.split( lang, '-', true )[1]
local fbtbl = mw.language.getFallbacksFor( lang )
table.insert( fbtbl, 1, lang )
local bestval = ""
local found = false
for idx1, lang1 in ipairs(fbtbl) do
for idx2, lang2 in ipairs(mlt) do
if (lang1 == lang2) and not found then
bestval = out[idx2]
found = true
break
end
end -- loop through values of property
end -- loop through fallback languages
if found then
-- replace output table with a table containing the best value
out = { bestval }
else
-- more than one value and none of them on the list of fallback languages
-- sod it, just give them the first one
out = { out[1] }
end
end
return out
end
local function mergeOptions(defaults, overrides)
overrides = overrides or {}
defaults = defaults or {}
local result = {}
for k, v in pairs(defaults) do
result[k] = v
end
for k, v in pairs(overrides) do
result[k] = v
if k == 'rank' then
result.reqranks = setRanks(v)
end
end
return result
end
local function filterbyqualifier(statements,qual,value)
local filtered_statements = {}
for _, statement in ipairs(statements) do
if statement.qualifiers and statement.qualifiers[qual] then
if '*' == value then
table.insert(filtered_statements, statement)
else
for _, q in ipairs(statement.qualifiers[qual]) do
if q.datavalue and (rawValue(q.datavalue) == value) then
table.insert(filtered_statements, statement)
break
end
end
end
end
end
return filtered_statements
end
local function orderbyrank(statements)
local pref_count = 0
local sorted_statements = {}
for k,v in ipairs(statements) do
if v.rank == 'preferred' then
pref_count = pref_count + 1
table.insert(sorted_statements, pref_count, v)
else
table.insert(sorted_statements, v)
end
end
return sorted_statements
end
-------------------------------------------------------------------------------
-- helper class functions
-------------------------------------------------------------------------------
local function class()
local c = {}
c.__index = c
function c:new(...)
local o = setmetatable({}, c)
if o.init then o:init(...) end
return o
end
return c
end
-------------------------------------------------------------------------------
-- Statement Class Definition
-------------------------------------------------------------------------------
local WdStatement = class()
function WdStatement:getValue(opts)
local mergedOpts = mergeOptions(self.parent.options, opts)
local statement = self._statement
if not statement then
return nil
end
local qualID = mw.text.trim(mergedOpts.qual or ""):upper()
if qualID == "" then qualID = nil end
local out = propertyvalueandquals({statement}, mergedOpts, qualID)
return assembleoutput(out, mergedOpts, self.parent.qid, self.pid)
end
function WdStatement:getRawValue(opts)
local mergedOpts = mergeOptions(self.parent.options, opts)
if not self._statement then
return nil
end
local datasnak = self._statement.mainsnak or self._statement
if datasnak.snaktype == "value" then
return rawValueOrDF(self._statement, mergedOpts)
else
return datasnak.snaktype
end
end
function WdStatement:getRawQual(qualID)
local ret = {}
local s = self._statement
if s.qualifiers and s.qualifiers[qualID] then
for _,q in pairs(s.qualifiers[qualID]) do
if q.snaktype == "value" then
table.insert(ret, rawValueOrDF(q, self.parent.options))
else
table.insert(ret, q.snaktype)
end
end
end
return ret
end
-------------------------------------------------------------------------------
-- Statements Class Definition
-------------------------------------------------------------------------------
local WdStatements = class()
function WdStatements:getStatmentsTable()
return self._statements
end
function WdStatements:count()
return #self._statements
end
function WdStatements:getFilters()
return self.filtered_by
end
function WdStatements:filter(filter_t)
local statements = self._statements
if #statements == 0 then return self; end
local ret = WdStatements:new()
ret.parent = self.parent
ret.filtered_by = {}
for _,v in ipairs(self.filtered_by) do
table.insert(ret.filtered_by, v)
end
local filtered_statements = {}
for k,v in pairs(filter_t) do
filtered_statements = filterbyqualifier(statements, k, v)
table.insert(ret.filtered_by, {[k] = v})
if #filtered_statements == 0 then
break;
else
statements = filtered_statements
end
end
ret._statements = filtered_statements
return ret
end
function WdStatements:getValue(opts)
local mergedOpts = mergeOptions(self.parent.options, opts)
local statements = self._statements
if not statements or #statements == 0 then
return nil
end
local qualID = mw.text.trim(mergedOpts.qual or ""):upper()
if qualID == "" then qualID = nil end
local out = propertyvalueandquals(statements, mergedOpts, qualID)
return assembleoutput(out, mergedOpts, self.parent.qid, self.pid)
end
function WdStatements:getQual(qualID, opts)
local mergedOpts = mergeOptions(self.parent.options, opts)
local statements = self._statements
if not statements or #statements == 0 then
return nil
end
local out = propertyvalueandquals(statements, mergedOpts, qualID)
return assembleoutput(out, mergedOpts, self.parent.qid, self.pid)
end
function WdStatements:getRawQual(qualID)
local ret = {}
for _,s in pairs(self._statements) do
local qual_t = {}
if s.qualifiers and s.qualifiers[qualID] then
for _,q in pairs(s.qualifiers[qualID]) do
if q.snaktype == "value" then
table.insert(qual_t, rawValueOrDF(q, self.parent.options))
else
table.insert(qual_t, q.snaktype)
end
end
end
table.insert(ret,qual_t)
end
return ret
end
function WdStatements:getRawValue(opts)
local mergedOpts = mergeOptions(self.parent.options, opts)
local ret = {}
for _,v in pairs(self._statements) do
local datasnak = v.mainsnak or v
if datasnak.snaktype=="value" then
table.insert(ret, rawValueOrDF(v, mergedOpts))
else
table.insert(ret, datasnak.snaktype)
end
end
return ret
end
function WdStatements:get(index)
local ret = WdStatement:new()
ret.parent = self.parent
ret.filtered_by = ret.filtered_by
ret._statement = self._statements[index]
ret.pid = ret.pid
return ret
end
function WdStatements:iter()
local i = 0
local n = self._statements and #self._statements or 0
return function()
i = i + 1
if i <= n then
return i, self:get(i)
end
end
end
function WdStatements:ipairs()
return self:iter()
end
function WdStatements:getBestOne()
local orderd_statements = orderbyrank(self._statements)
local ret = WdStatement:new() --setmetatable({}, WdStatement)
ret.parent = self.parent
ret.filtered_by = ret.filtered_by
ret._statement = orderd_statements[1]
ret.pid = ret.pid
return ret
end
-------------------------------------------------------------------------------
-- WdItem Class Definition
-------------------------------------------------------------------------------
local WdItem = class()
function WdItem:__tostring()
return "WdItem: " .. (self.qid or "no QID")
end
function WdItem:UpdateOptions(in_newOpts)
local newOpts = in_newOpts or {}
for k, v in pairs(newOpts or {}) do
self.options[k] = v
end
-- Set default options
if newOpts.lang then
self.options.lang = findLang(newOpts.lang)
end
if (newOpts.lang and not self.options.lang) or
(not newOpts.lang and newOpts.langs and #newOpts.langs > 0) then
for _, l in ipairs(newOpts.langs) do
self.options.lang = findLang(l)
if self.options.lang then
break;
end
end
end
if not self.options.lang then
self.options.lang = findLang();
end
if newOpts.rank then
self.options.reqranks = setRanks(self.options.rank)
end
if not self.options.reqranks then
self.options.reqranks = setRanks('preferred normal')
end
end
function WdItem:init(qid, options,snak)
if qid == "" then qid = nil; end
self.qid = qid
self.snak = snak
self.options = options or {}
self:UpdateOptions(options)
return self
end
function WdItem:newFromSnaks(snakTable, options)
local self = WdItem:new(nil, options or {}, snakTable)
self:UpdateOptions(options)
return self
end
function WdItem:setOptions(newOpts)
self:UpdateOptions(newOpts)
end
function WdItem:getStatements(pid, opts)
local mergedOpts = mergeOptions(self.options, opts or {})
local statements
local ret = WdStatements:new()
ret.parent = self
ret.filtered_by = {}
ret._statements = {}
ret.pid = pid
if self.snak and self.snak[pid] then
statements = self.snak[pid]
elseif not self.qid or not mw.wikibase then
statements = {}
elseif mergedOpts.reqranks and mergedOpts.reqranks.best then
statements = mw.wikibase.getBestStatements(self.qid, pid) or {}
else
statements = mw.wikibase.getAllStatements(self.qid, pid) or {}
local filtered_statements = {}
if not (mergedOpts.reqranks.deprecated == true and mergedOpts.reqranks.preferred == true and mergedOpts.reqranks.normal == true) then
for _,s in pairs(statements) do
if mergedOpts.reqranks[s.rank] then
table.insert(filtered_statements,s)
end
end
end
statements = filtered_statements
end
if #statements > 0 and mergedOpts.qualifiedaspossible and mergedOpts.qualifiedaspossible ~= {} then
local filtered_statements = {}
for q,qv in pairs(mergedOpts.qualifiedaspossible) do
filtered_statements = filterbyqualifier(statements, q, qv)
if #filtered_statements > 0 then
table.insert(ret.filtered_by, {[q] = qv})
statements = filtered_statements
end
end
end
if #statements > 0 and mergedOpts.qualified and mergedOpts.qualified ~= {} then
for q,qv in pairs(mergedOpts.qualified) do
statements = filterbyqualifier(statements, q, qv)
table.insert(ret.filtered_by, {[q] = qv})
if #statements == 0 then break; end
end
end
ret._statements = statements
return ret
end
function WdItem:getValue(pid, opts)
local mergedOpts = mergeOptions(self.options, opts)
local statements = self:getStatements(pid, mergedOpts):getStatmentsTable()
if not statements or #statements == 0 then
return nil
end
local qualID = mw.text.trim(mergedOpts.qual or ""):upper()
if qualID == "" then qualID = nil end
local out = propertyvalueandquals(statements, mergedOpts, qualID)
return assembleoutput(out, mergedOpts, self.qid, pid)
end
function WdItem:getValueFromSnaks(pid, opts)
if not self.snak or not self.snak[pid] then
return nil
end
local mergedOpts = mergeOptions(self.options, opts)
local props = self.snak[pid]
local out = propertyvalueandquals(props, mergedOpts)
return assembleoutput(out, mergedOpts, nil, pid)
end
function WdItem:getPropertyIDsTable(pid, opts)
local mergedOpts = mergeOptions(self.options, opts)
mergedOpts.noicon = tostring(parseParam(mergedOpts.noicon or "", true))
local statements = self:getStatements(pid, opts)
if not statements or #statements == 0 then return {} end
local onlysrc = parseParam(mergedOpts.onlysourced or mergedOpts.onlysourced, true)
local maxvals = tonumber(mergedOpts.maxvals) or 0
local out = {}
for i, v in ipairs(statements) do
local snak = v.mainsnak or v
if (snak.datatype == "wikibase-item")
and (v.rank and mergedOpts.reqranks[v.rank:sub(1, 1)])
and (snak.snaktype == "value")
and (sourced(v) or not onlysrc) then
out[#out+1] = snak.datavalue.value.id
end
if maxvals > 0 and #out >= maxvals then break end
end
return out
end
function WdItem:getPropertyIDs(pid, opts)
local out = WdItem:getPropertyIDsTable(pid, opts)
if #out == 0 then
return nil
end
return assembleoutput(out, mergeOptions(self.options, opts), self.qid, pid)
end
function WdItem:getPropOfProp(prop1, prop2, opts)
local mergedOpts = mergeOptions(self.options, opts)
if not self.qid then return nil end
local maxvals = tonumber(mergedOpts.maxvals) or 0
local prop1Values = self:getStatements(prop1, opts):getRawValue()
if #prop1Values == 0 then return nil end
local out = {}
for k, qid2 in ipairs(prop1Values) do
local item2 = WdItem:new(qid2, mergedOpts)
local prop2Values = item2:getStatements(prop2):getStatmentsTable()
if prop2Values and prop2Values[1] then
local out2 = propertyvalueandquals(prop2Values, mergedOpts, mergedOpts.qual)
out[#out+1] = assembleoutput(out2, mergedOpts, qid2, prop2)
end
if maxvals > 0 and #out >= maxvals then break end
end
return assembleoutput(out, mergedOpts, self.qid, prop1)
end
function WdItem:getRawPropOfProp(prop1, prop2, opts)
local mergedOpts = mergeOptions(self.options, opts)
if not self.qid then return nil end
local prop1Values = self:getStatements(prop1, opts):getRawValue()
if #prop1Values == 0 then return nil end
local out = {}
for k, qid2 in ipairs(prop1Values) do
local item2 = WdItem:new(qid2, mergedOpts)
local prop2Values = item2:getStatements(prop2):getRawValue()
for _,val in ipairs(prop2Values) do
if not in_array(val,out) then
table.insert(out,val)
end
end
end
return out
end
function WdItem:getLangOfProp(pid)
if not pid then return {}; end
local out = {}
local props = self.snak and self.snak[pid] or (self.qid and mw.wikibase.getAllStatements(self.qid, pid)) or {}
for _, v in ipairs(props) do
local datasnak = v.mainsnak or v
if datasnak.datatype == "monolingualtext" and datasnak.datavalue then
out[#out + 1] = datasnak.datavalue.value.language
end
end
return out
end
function WdItem:followQid(props, all)
all = parseParam(all, false)
props = (props or ""):upper()
if not self.qid then return nil end
if props == "" then return self.qid end
local out = {}
for p in mw.text.gsplit(props, "%p") do
p = mw.text.trim(p)
for i, v in ipairs(mw.wikibase.getBestStatements(self.qid, p)) do
local linkedid = v.mainsnak.datavalue and v.mainsnak.datavalue.value and v.mainsnak.datavalue.value.id
if linkedid then
if all then
out[#out+1] = linkedid
else
return WdItem.WdItem:new(linkedid)
end
end
end
end
if #out > 0 then
return table.concat(out, " ")
else
return self
end
end
-------------------------------------------------------------------------------
-- Public API - WdItem Constructors
-------------------------------------------------------------------------------
p.WdItem = WdItem
function p.newItem(qid, opts, snak )
return WdItem:new(qid, opts, snak)
end
function p.newSnakItem(snakTable, opts)
return WdItem:newFromSnaks(snakTable, opts)
end
return p
ebo6q1388a5tyszork79ryyo2iavr9e
وحدة:Cite Q/config
828
235800
1097666
1097286
2026-07-27T21:24:08Z
حبيشان
31560
1097666
Scribunto
text/plain
local config_t = {
linksproject = "",
wikilinkprefix = ""
}
local aliases_t = {
['accessdate'] = {'تاريخ-الوصول','تاريخ الوصول', 'تاريخ وصول', 'access-date', 'accessdate'},
['agency'] = {'وكالة', 'agency'},
['archivedate'] = {'تاريخ-الأرشيف', 'تاريخ أرشيف', 'تاريخ الأرشيف', 'archive-date', 'archivedate'},
['archive-format'] = {'صيغة-الأرشيف', 'صيغة الأرشيف', 'archive-format'},
['archive-url'] = {'مسار-الأرشيف', 'مسار أرشيف', 'مسار الأرشيف', 'archive-url', 'archiveurl'},
['article-number'] = {'رقم-المقالة', 'article-number'},
['asin-tld'] = 'asin-tld',
['at'] = {'في', 'at'},
--##TOREVISE
['authors'] = {'المؤلفون', 'المؤلفين', 'authors', 'people', 'host', 'credits', 'أشخاص'},
['book-title'] = {'عنوان الكتاب', 'book-title', 'booktitle', 'عنوان المؤتمر'},
['cartography'] = 'cartography',
['chapter'] = {'الفصل', 'chapter', 'contribution', 'entry', 'article', 'section'},
['chapter-format'] = {'صيغة-الفصل', 'صيغة الفصل', 'تنسيق الفصل', 'chapter-format', 'contribution-format', 'entry-format',
'article-format', 'section-format'},
['chapter-url'] = {'مسار-الفصل', 'مسار الفصل', 'chapter-url', 'contribution-url', 'entry-url', 'article-url', 'section-url'}, -- Used by InternetArchiveBot
['chapter-url-access'] = {'chapter-url-access', 'contribution-url-access',
'entry-url-access', 'article-url-access', 'section-url-access'}, -- Used by InternetArchiveBot
['class'] = {'صنف', 'class'}, -- cite arxiv and arxiv identifier
['collaboration'] = 'collaboration',
['conference'] = {'اسم-المؤتمر', 'اسم المؤتمر', 'conference'},
['conference-format'] = 'conference-format',
['conference-url'] = {'مسار-المؤتمر', 'مسار المؤتمر', 'conference-url'}, -- Used by InternetArchiveBot
['date'] = {'تاريخ', 'التاريخ', 'date', 'air-date', 'airdate'},
['degree'] = {'الدرجة', 'degree'},
['df'] = 'df',
['display-authors'] = {'إظهار-المؤلفين', 'إظهار المؤلفين', 'display-authors', 'display-subjects'},
['display-contributors'] = 'display-contributors',
['display-editors'] = {'إظهار-المحررين', 'إظهار المحررين', 'display-editors'},
['display-interviewers'] = 'display-interviewers',
['display-translators'] = 'display-translators',
['docket'] = 'docket',
['doi-broken-date'] = 'doi-broken-date',
['edition'] = {'طبعة', 'الإصدار', 'الاصدار', 'إصدار', 'اصدار', 'الطبعة', 'رقم الطبعة', 'edition'},
['pmc-embargo-date'] = 'pmc-embargo-date',
['encyclopedia'] = {'موسوعة', 'encyclopedia', 'encyclopaedia', 'اسم المعجم', 'dictionary', 'اسم الموسوعة'}, -- cite encyclopedia only
['episode'] = {'الحلقة', 'episode'}, -- cite serial only TODO: make available to cite episode?
['format'] = {'صيغة', 'التنسيق', 'format', 'تنسيق', 'الصيغة'},
['hijri-date'] = {'التاريخ الهجري', 'تاريخ هجري', 'hijri-date'},
['id'] = {'id', 'ID', 'المعرف'},
['inset'] = {'inset', 'مجموعة'},
['issue'] = {'العدد', 'issue', 'number'},
['language'] = {'لغة', 'اللغة', 'language', 'lang'},
['mailing-list'] = {'القائمة البريدية', 'mailing-list'}, -- cite mailing list only
['map'] = {'الخريطة', 'map'}, -- cite map only
['map-format'] = {'صيغة الخريطة', 'map-format'}, -- cite map only
['map-url'] = {'مسار الخريطة', 'map-url'}, -- cite map only -- Used by InternetArchiveBot
['map-url-access'] = 'map-url-access', -- cite map only -- Used by InternetArchiveBot
['minutes'] = {'دقيقة', 'minutes'},
['mode'] = 'mode',
['name-list-style'] = 'name-list-style',
['network'] = {'الشبكة', 'network'},
['newsgroup'] = {'اسم المجموعة', 'newsgroup'}, -- cite newsgroup only
['nopp'] = {'no-pp', 'nopp'},
['no-tracking'] = {'no-tracking', 'template-doc-demo'},
['number'] = 'number', -- this case only for cite techreport
['orig-date'] = {'orig-date', 'orig-year', 'origyear', 'سنة النشر الأصلية'},
['others'] = {'آخرون','others', 'المحاور', 'المحاورون', 'المحقق'},
['page'] = {'صفحة', 'p', 'الصفحة', 'page', 'الصفحة', 'رقم الصفحة', 'رقم صفحة','ص'}, -- Used by InternetArchiveBot
['pages'] = {'صفحات', 'الصفحات', 'pp', 'أرقام الصفحات', 'أرقم صفحات', 'pages'}, -- Used by InternetArchiveBot
['journal'] = {
'صحيفة',
'journal',
'دورية محكمة',
'مجلة',
'magazine',
'اسم المجلة',
'newspaper',
'جريدة',
'اسم الصحيفة',
'دورية',
'periodical',
'موقع',
'website',
'الموقع',
'عمل',
'work',
'العمل',
'من عمل',
},
['place'] = { 'مكان', 'place', 'المكان', 'مقر', 'المقر', 'location'},
['postscript'] = 'postscript',
['publication-date'] = {'تاريخ-النشر', 'تاريخ النشر', 'publication-date'},
['publication-place'] = {'مكان-النشر', 'مكان النشر', 'publication-place'},
['publisher'] = {'ناشر', 'publisher', 'الناشر', 'institution', 'مصدر', 'الموزع', 'المصدر', 'المؤسسة'},
['quote'] = {'اقتباس', 'quote', 'quotation'},
['quote-page'] = 'quote-page',
['quote-pages'] = 'quote-pages',
['ref'] = {'مرجع', 'ref'},
['scale'] = {'المقياس', 'scale'},
['script-chapter'] = {'script-chapter', 'script-contribution', 'script-entry',
'script-article', 'script-section'},
['script-encyclopedia'] = {'script-encyclopedia', 'script-encyclopaedia'}, -- cite encyclopedia only
['script-map'] = 'script-map',
['script-journal'] = {'script-journal', 'script-magazine', 'script-newspaper',
'script-periodical', 'script-website', 'script-work'},
['script-quote'] = 'script-quote',
['script-title'] = 'script-title', -- Used by InternetArchiveBot
['season'] = {'الموسم', 'season'},
['sections'] = {'الأقسام', 'sections'}, -- cite map only
['series'] = {'سلسلة', 'series', 'version'},
['series-link'] = {'وصلة-سلسلة', 'وصلة سلسلة', 'series-link', 'مسار المسلسل'},
['series-number'] = {'رقم-سلسلة', 'رقم سلسلة', 'series-number', 'series-no'},
['sheet'] = {'ورقة', 'sheet'}, -- cite map only
['sheets'] = {'أوراق', 'sheets'}, -- cite map only
['station'] = {'محطة', 'station'},
['time'] = {'الوقت', 'time'},
['time-caption'] = 'time-caption',
['title'] = {'عنوان', 'title', 'العنوان'},
['title-link'] = {'وصلة-العنوان', 'وصلة العنوان', 'title-link', 'episode-link', 'وصلة الحلقة'},
['title-note'] = {'title-note', 'department'},
['type'] = {'النوع', 'type', 'medium'},
['trans-chapter'] = {'trans-article', 'trans-chapter', 'trans-contribution',
'trans-entry', 'trans-section'},
['transcript'] = 'transcript',
['transcript-format'] = 'transcript-format',
['transcript-url'] = 'transcript-url', -- Used by InternetArchiveBot
['trans-encyclopedia'] = {'trans-encyclopedia', 'trans-encyclopaedia'}, -- cite encyclopedia only
['trans-map'] = 'trans-map', -- cite map only
['trans-journal'] = {'trans-journal', 'trans-magazine', 'trans-newspaper',
'trans-periodical', 'trans-website', 'trans-work'},
['trans-quote'] = 'trans-quote',
['trans-title'] = {'عنوان مترجم', 'العنوان بالعربي', 'العنوان الأجنبي', 'عنوان أجنبي', 'trans-title', 'العنوان المترجم'}, -- Used by InternetArchiveBot
['url'] = {'مسار', 'المسار','وصلة', 'url', 'URL'}, -- Used by InternetArchiveBot
['url-access'] = {'url-access', 'التسجيل'}, -- Used by InternetArchiveBot
['url-status'] = {'url-status','حالة المسار'}, -- Used by InternetArchiveBot
['vauthors'] = {'vauthors', 'عدة مؤلفين'},
['veditors'] = {'veditors', 'عدة محررين' },
['via'] = {'عبر', 'via'},
['volume'] = {'المجلد', 'volume', 'الجزء', 'ج'},
['wikidatacite'] = 'wikidatacite',
['year'] = {'سنة', 'year', 'السنة'},
}
local i18n_t = {
["ar"] = {
illustrator = "رسم",
composer = "تلحين",
animator = "رسم الرسوم المتحركة",
director = "إخراج",
screenwriter = "سيناريو",
signatory = "توقيع",
presenter = "تقديم",
performer = "أداء",
annotator = "تحقيق",
reviewer = "مراجعة",
unknown = "مجهول",
supervisor = "إشراف",
["unknown-publication-date"] = '<abbr class="abbr" title="دون تاريخ">د.ت.</abbr>',
["unknown-publisher"] = '<abbr class="abbr" title="دون ناشر">د.ن.</abbr>',
wikidata = "ويكي بيانات"
},
["cite_q"] = "{{استشهاد بويكي بيانات|",
["erratum"] = "(erratum)",
["unknown-author"] = {
ar = "غير معروف",
en = "Anonymous",
fr = "Aanonyme",
de = "Anonymus",
es = "Anónimo"
},
["wdq"] = "[[ويكي بيانات|QID]]", -- go through "WDQ (identifier)" redirect to reduce clutter in "What links here" and improve reverse lookup. Keep in sync with {{QID}}.
["wikisource"] = "arwikisource",
["errors"] = {
["local-article-not-found"] = "المقال المحلي غير موجود.",
["no-label-or-title"] = "لا عنون أو تسمية: ",
},
-- Next Line Edited
["unknown-author-trackingcat"] = "", -- [[تصنيف:Cite Q - author unknown]]
["months"] = {
"January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
},
["ordinal"] = {
[1] = "st",
[2] = "nd",
[3] = "rd",
["default"] = "th"
},
["trackingcats"] = {
["erratum"] = "[[تصنيف:استشهاد بويكي بيانات:الاستشهاد يعمل مع خطأ]]",
["missing-wikidata"] = "[[تصنيف:مقالات مع بيانات ويكي بيانات نقاصة]]", -- TODO: point to a {{cite q}}-specific category; this one is specific to Module:WikidataIB
['no-label-or-title'] = '[[تصنيف:استشهاد بويكي بيانات:يفتقر إلى عنوان أو تسمية]]',
["retracted"] = "[[تصنيف:الاستشهاد بويكي بيانات: الاستشهاد بعمل مسحوب]]<!-- retracted -->",
["replaced"] = "[[تصنيف:الاستشهاد بويكي بيانات: الاستشهاد بعمل مستبدل]]<!-- replaced -->",
["unknown-author"] = "", -- [[Category:Cite Q - author unknown]] removed as misplaced; someone is welcome to restore it if it is placed outside of the template parameter value
["unknown-template"] = "[[تصنيف:الاستشهاد بويكي بيانات:قالب مجهول]]",
},
}
local rejected_t = {
sources = {
Q465 = true,
Q15241312 = true,
Q52 = true
},
properties = { "P1800", "P1566", "P21"},
instances = {
Q5 = true, -- Human is not a direct reference
Q184188 = true,
Q1250464 = true,
-- inatance of refference DBs
Q8513 = true,
Q17152639 = true,
Q7094076 = true,
Q5535082 = true,
Q856638= true,
Q1982918 = true,
Q36524 = true,
Q36218176 = true,
Q526334 = true,
Q5227411 = true
}
}
-- Table of simple properties that can be fetched in roughly the same way:
-- id = PXXX
-- maxvals = maximum number of multiple values (0 for all)
-- linked = "no" suppresses linking
-- populate_from_journal = true/false determines whether to look in a journal where the source is published
-- rank = "best", "preferred", normal, etc. determines how Wikidata ranks are treated
-- others = true - the value for the property goes to "others" section
local simple_properties_t = {
-- Next Line Edited
publisher = {id = "P123", maxvals = 3},
oclc = {id = "P243", maxvals = 1},
['publication-place'] = {id = "P291", maxvals = 0, linked = false}, -- publication place (don't put into |place=; is treated specially in {{citation}} if both are given)
doi = {id = "P356", maxvals = 1}, -- take care of |doi-broken-date= (WD "reason for deprecation"/"stated as") and |doi-access= (WD "access status")?
issue = {id = "P433", maxvals = 0, populate_from_journal = true}, -- distinguish from |number= ("P1545"?) if both are given (still blocked by {{citation}}, but will be supported in the future)
pmid = {id = "P698", maxvals = 1},
-- gbooks = {id = "P675", maxvals = 1}, -- to be added to {{citation}}
-- ia = {id = "P724", maxvals = 1}, -- to be added to {{citation}}
arxiv = {id = "P818", maxvals = 1},
bibcode = {id = "P819", maxvals = 1}, -- take care of |bibcode-access=?
jstor = {id = "P888", maxvals = 1}, -- take care of |jstor-access=?
mr = {id = "P889", maxvals = 1},
rfc = {id = "P892", maxvals = 1},
zbl = {id = "P894", maxvals = 1},
ssrn = {id = "P893", maxvals = 1},
place = {id = "P1071", maxvals = 0, linked = false}, -- written-at place
-- ['total-pages'] = {id = "P1104", maxvals = 0, linked = 'no'}, -- to be added to {{citation}} / COinS &rft.tpages=
-- coden = {id = "P1159", maxvals = 1}, -- to be added to {{citation}} / COinS &rft.coden=
s2cid = {id = "P8299", maxvals = 1}, -- take care of |s2cid-access=?
pmc = {id = "P932", maxvals = 1}, -- take care of |pmc-embargo-date= (WD "reason for deprecation")?
lccn = {id = "P1144", maxvals = 1},
hdl = {id = "P1184", maxvals = 1}, -- take care of |hdl-access=?
ismn = {id = "P1208", maxvals = 1},
journal = {id = "P1433", maxvals = 1},
citeseerx = {id = "P3784", maxvals = 1},
osti = {id = "P3894", maxvals = 1}, -- take care of |osti-access=?
biorxiv = {id = "P3951", maxvals = 1},
asin = {id = "P5749", maxvals = 1}, -- What about |asin-tld=? (WD examples resolve to .com at present, but may change)
-- ['catalog-number'] = {id = "P528", maxvals = 0}, -- to be added to {{citation}} / COinS &rft.artnum=
isbn = {id = "P212", maxvals = 1, populate_from_journal = true}, -- ISBN 13
issn = {id = "P236", maxvals = 1, populate_from_journal = true}, -- distinguish from |eissn= for electronic issues?
-- jfm = {id = "P?", maxvals = 1}, -- Jahrbuch über die Fortschritte der Mathematik (not Zbl)
-- sbn = {id = "P?", maxvals = 1}, -- Standard Book Number (predecessor of ISBN, not ICCU)
-- message-id = {id = "P?", maxvals = 1}, -- Usenet message ID
chapter = {id = "P792", maxvals = 1, no_vol_qual=true},
['publication-date'] = {id = "P577", maxvals = 1, populate_from_journal = true}, -- publication date (don't use |date=; is treated specially in {{citation}} if both are given.)
series = {id = "P179", maxvals = 1, populate_from_journal = true, qual = "P1545"},
version = {id = "P348", maxvals = 0},
edition = {id = "P393", maxvals = 0},
volume = {id = "P478", maxvals = 0, populate_from_journal = true, no_vol_qual=true},
-- part = {id = "P1545"?, maxvals = 0}, -- to be added to {{citation}} / COinS &rft.part=
title = {id = "P1476", rank="p n"},
-- url = {id = "P953", maxvals = 1}, -- deal with this along with archive-url
pages = {id = "P304", maxvals = 0, populate_from_journal = true, no_vol_qual=true},
at = {id = "P958", maxvals = 0, populate_from_journal = true, no_vol_qual=true}, -- also incorporate lines (P7421) and columns (P3903) into this (cite map also supports |section=)
-- sheets = {id = "P7416", maxvals = 0, populate_from_journal = true},
-- interviewer = {id = "P?", maxvals = 0}, -- does **not** go to "others" section! Multiple interviewers should be n-enumerated
illustrator = {id = "P110", maxvals = 10, others = true}, -- goes to "others" section
-- foreword and afterword, when contributions to another author's work, are contributions so belong in |contribution=;
-- the writer's name goes in |contributor=; requires |title= and |author=
-- However, this might need to add support for multiple contributors and their roles to {{citation}}, see Help_talk:Citation_Style_1#Others
-- foreword = {id = "P2679", maxvals = 10, others = true}, -- goes to "others" section
-- afterword = {id = "P2680", maxvals = 10, others = true}, -- goes to "others" section
composer = {id = "P86", maxvals = 10, others = true}, -- goes to "others" section
animator = {id = "P6942", maxvals = 10, others = true}, -- goes to "others" section
director = {id = "P57", maxvals = 10, others = true}, -- goes to "others" section
screenwriter = {id = "P58", maxvals = 10, others = true}, -- goes to "others" section
signatory = {id = "P1891", maxvals = 10, others = true}, -- goes to "others" section
presenter = {id = "P371", maxvals = 10, others = true}, -- goes to "others" section
performer = {id = "P175", maxvals = 10, others = true}, -- goes to "others" section
-- next 2 lines added for Arabic Wikipedia
annotator = {id ="P11105", maxvals = 10, others = true}, -- goes to "others" section
reviewer = {id ="P4032", maxvals = 10, others = true}, -- goes to "others" section
supervisor = {id ="P7604", maxvals = 3, others = true}, -- goes to "others" section
['hijri-date'] = {id = "P577", maxvals = 3, hijri=true},
}
local used_args_t = {accessdate=true, language=true, mode=true, ol=true, other=true, ['display-authors']=true, ['display-editors']=true, ['archive-url']=true,
['archive-date']=true, url=true, title=true, page=true, pages = true, volume=true}
-- all_used_properties
local used_properties_t = {
P1071 = {arg= "place", maxvals = 0, linked = false}, -- written-at place
P110 = {arg= "illustrator", maxvals = 10, others = true}, -- goes to "others" section
P11105 = {arg= "annotator", maxvals = 10, others = true}, -- goes to "others" section
P1144 = {arg= "lccn", maxvals = 1},
P1184 = {arg= "hdl", maxvals = 1}, -- take care of |hdl-access=?
P1208 = {arg= "ismn", maxvals = 1},
P123 = {arg= "publisher", maxvals = 3},
P1433 = {arg= "journal", maxvals = 1},
P1476 = {arg= "title", rank="p n"},
P1680 = true,
P175 = {arg= "performer", maxvals = 10, others = true}, -- goes to "others" section
P179 = {arg= "series", maxvals = 1, populate_from_journal = true},
P1891 = {arg= "signatory", maxvals = 10, others = true}, -- goes to "others" section
P1932 = true,
P2093 = true, -- author string
P212 = {arg= "isbn", maxvals = 1, populate_from_journal = true}, -- ISBN 13
P236 = {arg= "issn", maxvals = 1, populate_from_journal = true}, -- distinguish from |eissn= for electronic issues?
P243 = {arg= "oclc", maxvals = 1},
P2699 = true,
P291 = {arg= "publication-place", maxvals = 0, linked = false}, -- publication place (don't put into |place=; is treated specially in {{citation}} if both are given)
P304 = {arg= "pages", maxvals = 0, populate_from_journal = true},
P348 = {arg= "version", maxvals = 0},
P356 = {arg= "doi", maxvals = 1}, -- take care of |doi-broken-date= (WD "reason for deprecation"/"stated as") and |doi-access= (WD "access status")?
P371 = {arg= "presenter", maxvals = 10, others = true}, -- goes to "others" section
P3784 = {arg= "citeseerx", maxvals = 1},
P3894 = {arg= "osti", maxvals = 1}, -- take care of |osti-access=?
P393 = {arg= "edition", maxvals = 0},
P3951 = {arg= "biorxiv", maxvals = 1},
P4032 = {arg= "reviewer", maxvals = 10, others = true}, -- goes to "others" section
P407 = true,
P433 = {arg= "issue", maxvals = 0, populate_from_journal = true}, -- distinguish from |number= ("P1545"?) if both are given (still blocked by {{citation}}, but will be supported in the future)
P478 = {arg= "volume", maxvals = 0, populate_from_journal = true},
P50 = true, -- author
P57 = {arg= "director", maxvals = 10, others = true}, -- goes to "others" section
P5749 = {arg= "asin", maxvals = 1}, -- What about |asin-tld=? (WD examples resolve to .com at present, but may change)
P5769 = true, --editor
P577 = {arg= "publication-date", maxvals = 1, populate_from_journal = true}, -- publication date (don't use |date=; is treated specially in {{citation}} if both are given.)
P58 = {arg= "screenwriter", maxvals = 10, others = true}, -- goes to "others" section
P655 = true,
P6942 = {arg= "animator", maxvals = 10, others = true}, -- goes to "others" section
P698 = {arg= "pmid", maxvals = 1},
P7604 = {arg ="supervisor", maxvals = 3, others = true}, -- goes to "others" section
P792 = {arg= "chapter", maxvals = 1},
P818 = {arg= "arxiv", maxvals = 1},
P819 = {arg= "bibcode", maxvals = 1}, -- take care of |bibcode-access=?
P8299 = {arg= "s2cid", maxvals = 1}, -- take care of |s2cid-access=?
P856 = true,
P86 = {arg= "composer", maxvals = 10, others = true}, -- goes to "others" section
P888 = {arg= "jstor", maxvals = 1}, -- take care of |jstor-access=?
P889 = {arg= "mr", maxvals = 1},
P892 = {arg= "rfc", maxvals = 1},
P893 = {arg= "ssrn", maxvals = 1},
P894 = {arg= "zbl", maxvals = 1},
P932 = {arg= "pmc", maxvals = 1}, -- take care of |pmc-embargo-date= (WD "reason for deprecation")?
P953 = true,
P958 = {arg= "at", maxvals = 0, populate_from_journal = true}, -- also incorporate lines (P7421) and columns (P3903) into this (cite map also supports |section=)
P98 = true,
P854 = true,
}
return {
aliases_t = aliases_t,
i18n_t = i18n_t,
rejected_t = rejected_t,
simple_properties_t = simple_properties_t,
used_args_t = used_args_t,
used_properties_t = used_properties_t,
config_t = config_t
}
7d11rvvt8t31dtznqotdcbudwntazk8
1097668
1097666
2026-07-27T21:54:08Z
حبيشان
31560
1097668
Scribunto
text/plain
local config_t = {
linksproject = "",
wikilinkprefix = ""
}
local aliases_t = {
['accessdate'] = {'تاريخ-الوصول','تاريخ الوصول', 'تاريخ وصول', 'access-date', 'accessdate'},
['agency'] = {'وكالة', 'agency'},
['archivedate'] = {'تاريخ-الأرشيف', 'تاريخ أرشيف', 'تاريخ الأرشيف', 'archive-date', 'archivedate'},
['archive-format'] = {'صيغة-الأرشيف', 'صيغة الأرشيف', 'archive-format'},
['archive-url'] = {'مسار-الأرشيف', 'مسار أرشيف', 'مسار الأرشيف', 'archive-url', 'archiveurl'},
['article-number'] = {'رقم-المقالة', 'article-number'},
['asin-tld'] = 'asin-tld',
['at'] = {'في', 'at'},
--##TOREVISE
['authors'] = {'المؤلفون', 'المؤلفين', 'authors', 'people', 'host', 'credits', 'أشخاص'},
['book-title'] = {'عنوان الكتاب', 'book-title', 'booktitle', 'عنوان المؤتمر'},
['cartography'] = 'cartography',
['chapter'] = {'الفصل', 'chapter', 'contribution', 'entry', 'article', 'section'},
['chapter-format'] = {'صيغة-الفصل', 'صيغة الفصل', 'تنسيق الفصل', 'chapter-format', 'contribution-format', 'entry-format',
'article-format', 'section-format'},
['chapter-url'] = {'مسار-الفصل', 'مسار الفصل', 'chapter-url', 'contribution-url', 'entry-url', 'article-url', 'section-url'}, -- Used by InternetArchiveBot
['chapter-url-access'] = {'chapter-url-access', 'contribution-url-access',
'entry-url-access', 'article-url-access', 'section-url-access'}, -- Used by InternetArchiveBot
['class'] = {'صنف', 'class'}, -- cite arxiv and arxiv identifier
['collaboration'] = 'collaboration',
['conference'] = {'اسم-المؤتمر', 'اسم المؤتمر', 'conference'},
['conference-format'] = 'conference-format',
['conference-url'] = {'مسار-المؤتمر', 'مسار المؤتمر', 'conference-url'}, -- Used by InternetArchiveBot
['date'] = {'تاريخ', 'التاريخ', 'date', 'air-date', 'airdate'},
['degree'] = {'الدرجة', 'degree'},
['df'] = 'df',
['display-authors'] = {'إظهار-المؤلفين', 'إظهار المؤلفين', 'display-authors', 'display-subjects'},
['display-contributors'] = 'display-contributors',
['display-editors'] = {'إظهار-المحررين', 'إظهار المحررين', 'display-editors'},
['display-interviewers'] = 'display-interviewers',
['display-translators'] = 'display-translators',
['docket'] = 'docket',
['doi-broken-date'] = 'doi-broken-date',
['edition'] = {'طبعة', 'الإصدار', 'الاصدار', 'إصدار', 'اصدار', 'الطبعة', 'رقم الطبعة', 'edition'},
['pmc-embargo-date'] = 'pmc-embargo-date',
['encyclopedia'] = {'موسوعة', 'encyclopedia', 'encyclopaedia', 'اسم المعجم', 'dictionary', 'اسم الموسوعة'}, -- cite encyclopedia only
['episode'] = {'الحلقة', 'episode'}, -- cite serial only TODO: make available to cite episode?
['format'] = {'صيغة', 'التنسيق', 'format', 'تنسيق', 'الصيغة'},
['hijri-date'] = {'التاريخ الهجري', 'تاريخ هجري', 'hijri-date'},
['id'] = {'id', 'ID', 'المعرف'},
['inset'] = {'inset', 'مجموعة'},
['issue'] = {'العدد', 'issue', 'number'},
['language'] = {'لغة', 'اللغة', 'language', 'lang'},
['mailing-list'] = {'القائمة البريدية', 'mailing-list'}, -- cite mailing list only
['map'] = {'الخريطة', 'map'}, -- cite map only
['map-format'] = {'صيغة الخريطة', 'map-format'}, -- cite map only
['map-url'] = {'مسار الخريطة', 'map-url'}, -- cite map only -- Used by InternetArchiveBot
['map-url-access'] = 'map-url-access', -- cite map only -- Used by InternetArchiveBot
['minutes'] = {'دقيقة', 'minutes'},
['mode'] = 'mode',
['name-list-style'] = 'name-list-style',
['network'] = {'الشبكة', 'network'},
['newsgroup'] = {'اسم المجموعة', 'newsgroup'}, -- cite newsgroup only
['nopp'] = {'no-pp', 'nopp'},
['no-tracking'] = {'no-tracking', 'template-doc-demo'},
['number'] = 'number', -- this case only for cite techreport
['orig-date'] = {'orig-date', 'orig-year', 'origyear', 'سنة النشر الأصلية'},
['others'] = {'آخرون','others', 'المحاور', 'المحاورون', 'المحقق'},
['page'] = {'صفحة', 'p', 'الصفحة', 'page', 'الصفحة', 'رقم الصفحة', 'رقم صفحة','ص'}, -- Used by InternetArchiveBot
['pages'] = {'صفحات', 'الصفحات', 'pp', 'أرقام الصفحات', 'أرقم صفحات', 'pages'}, -- Used by InternetArchiveBot
['journal'] = {
'صحيفة',
'journal',
'دورية محكمة',
'مجلة',
'magazine',
'اسم المجلة',
'newspaper',
'جريدة',
'اسم الصحيفة',
'دورية',
'periodical',
'موقع',
'website',
'الموقع',
'عمل',
'work',
'العمل',
'من عمل',
},
['place'] = { 'مكان', 'place', 'المكان', 'مقر', 'المقر', 'location'},
['postscript'] = 'postscript',
['publication-date'] = {'تاريخ-النشر', 'تاريخ النشر', 'publication-date'},
['publication-place'] = {'مكان-النشر', 'مكان النشر', 'publication-place'},
['publisher'] = {'ناشر', 'publisher', 'الناشر', 'institution', 'مصدر', 'الموزع', 'المصدر', 'المؤسسة'},
['quote'] = {'اقتباس', 'quote', 'quotation'},
['quote-page'] = 'quote-page',
['quote-pages'] = 'quote-pages',
['ref'] = {'مرجع', 'ref'},
['scale'] = {'المقياس', 'scale'},
['script-chapter'] = {'script-chapter', 'script-contribution', 'script-entry',
'script-article', 'script-section'},
['script-encyclopedia'] = {'script-encyclopedia', 'script-encyclopaedia'}, -- cite encyclopedia only
['script-map'] = 'script-map',
['script-journal'] = {'script-journal', 'script-magazine', 'script-newspaper',
'script-periodical', 'script-website', 'script-work'},
['script-quote'] = 'script-quote',
['script-title'] = 'script-title', -- Used by InternetArchiveBot
['season'] = {'الموسم', 'season'},
['sections'] = {'الأقسام', 'sections'}, -- cite map only
['series'] = {'سلسلة', 'series', 'version'},
['series-link'] = {'وصلة-سلسلة', 'وصلة سلسلة', 'series-link', 'مسار المسلسل'},
['series-number'] = {'رقم-سلسلة', 'رقم سلسلة', 'series-number', 'series-no'},
['sheet'] = {'ورقة', 'sheet'}, -- cite map only
['sheets'] = {'أوراق', 'sheets'}, -- cite map only
['station'] = {'محطة', 'station'},
['time'] = {'الوقت', 'time'},
['time-caption'] = 'time-caption',
['title'] = {'عنوان', 'title', 'العنوان'},
['title-link'] = {'وصلة-العنوان', 'وصلة العنوان', 'title-link', 'episode-link', 'وصلة الحلقة'},
['title-note'] = {'title-note', 'department'},
['type'] = {'النوع', 'type', 'medium'},
['trans-chapter'] = {'trans-article', 'trans-chapter', 'trans-contribution',
'trans-entry', 'trans-section'},
['transcript'] = 'transcript',
['transcript-format'] = 'transcript-format',
['transcript-url'] = 'transcript-url', -- Used by InternetArchiveBot
['trans-encyclopedia'] = {'trans-encyclopedia', 'trans-encyclopaedia'}, -- cite encyclopedia only
['trans-map'] = 'trans-map', -- cite map only
['trans-journal'] = {'trans-journal', 'trans-magazine', 'trans-newspaper',
'trans-periodical', 'trans-website', 'trans-work'},
['trans-quote'] = 'trans-quote',
['trans-title'] = {'عنوان مترجم', 'العنوان بالعربي', 'العنوان الأجنبي', 'عنوان أجنبي', 'trans-title', 'العنوان المترجم'}, -- Used by InternetArchiveBot
['url'] = {'مسار', 'المسار','وصلة', 'url', 'URL'}, -- Used by InternetArchiveBot
['url-access'] = {'url-access', 'التسجيل'}, -- Used by InternetArchiveBot
['url-status'] = {'url-status','حالة المسار'}, -- Used by InternetArchiveBot
['vauthors'] = {'vauthors', 'عدة مؤلفين'},
['veditors'] = {'veditors', 'عدة محررين' },
['via'] = {'عبر', 'via'},
['volume'] = {'المجلد', 'volume', 'الجزء', 'ج'},
['wikidatacite'] = 'wikidatacite',
['year'] = {'سنة', 'year', 'السنة'},
}
local i18n_t = {
["ar"] = {
illustrator = "رسم",
composer = "تلحين",
animator = "رسم الرسوم المتحركة",
director = "إخراج",
screenwriter = "سيناريو",
signatory = "توقيع",
presenter = "تقديم",
performer = "أداء",
annotator = "تحقيق",
reviewer = "مراجعة",
unknown = "مجهول",
supervisor = "إشراف",
["unknown-publication-date"] = '<abbr class="abbr" title="دون تاريخ">د.ت.</abbr>',
["unknown-publisher"] = '<abbr class="abbr" title="دون ناشر">د.ن.</abbr>',
wikidata = "ويكي بيانات"
},
["cite_q"] = "{{استشهاد بويكي بيانات|",
["erratum"] = "(erratum)",
["unknown-author"] = {
ar = "غير معروف",
en = "Anonymous",
fr = "Aanonyme",
de = "Anonymus",
es = "Anónimo"
},
["wdq"] = "[[ويكي بيانات|QID]]", -- go through "WDQ (identifier)" redirect to reduce clutter in "What links here" and improve reverse lookup. Keep in sync with {{QID}}.
["wikisource"] = "arwikisource",
["errors"] = {
["local-article-not-found"] = "المقال المحلي غير موجود.",
["no-label-or-title"] = "لا عنون أو تسمية: ",
},
-- Next Line Edited
["unknown-author-trackingcat"] = "", -- [[تصنيف:Cite Q - author unknown]]
["months"] = {
"January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
},
["ordinal"] = {
[1] = "st",
[2] = "nd",
[3] = "rd",
["default"] = "th"
},
["trackingcats"] = {
["erratum"] = "[[تصنيف:استشهاد بويكي بيانات:الاستشهاد يعمل مع خطأ]]",
["missing-wikidata"] = "[[تصنيف:مقالات مع بيانات ويكي بيانات نقاصة]]", -- TODO: point to a {{cite q}}-specific category; this one is specific to Module:WikidataIB
['no-label-or-title'] = '[[تصنيف:استشهاد بويكي بيانات:يفتقر إلى عنوان أو تسمية]]',
["retracted"] = "[[تصنيف:الاستشهاد بويكي بيانات: الاستشهاد بعمل مسحوب]]<!-- retracted -->",
["replaced"] = "[[تصنيف:الاستشهاد بويكي بيانات: الاستشهاد بعمل مستبدل]]<!-- replaced -->",
["unknown-author"] = "", -- [[Category:Cite Q - author unknown]] removed as misplaced; someone is welcome to restore it if it is placed outside of the template parameter value
["unknown-template"] = "[[تصنيف:الاستشهاد بويكي بيانات:قالب مجهول]]",
},
}
local rejected_t = {
sources = {
Q465 = true,
Q15241312 = true,
Q52 = true
},
properties = { "P1800", "P1566", "P21"},
instances = {
Q5 = true, -- Human is not a direct reference
Q184188 = true,
Q1250464 = true,
-- inatance of refference DBs
Q8513 = true,
Q17152639 = true,
Q7094076 = true,
Q5535082 = true,
Q856638= true,
Q1982918 = true,
Q36524 = true,
Q36218176 = true,
Q526334 = true,
Q5227411 = true
}
}
-- Table of simple properties that can be fetched in roughly the same way:
-- id = PXXX
-- maxvals = maximum number of multiple values (0 for all)
-- linked = "no" suppresses linking
-- populate_from_journal = true/false determines whether to look in a journal where the source is published
-- rank = "best", "preferred", normal, etc. determines how Wikidata ranks are treated
-- others = true - the value for the property goes to "others" section
local simple_properties_t = {
-- Next Line Edited
publisher = {id = "P123", maxvals = 3},
oclc = {id = "P243", maxvals = 1},
['publication-place'] = {id = "P291", maxvals = 0, linked = false}, -- publication place (don't put into |place=; is treated specially in {{citation}} if both are given)
doi = {id = "P356", maxvals = 1}, -- take care of |doi-broken-date= (WD "reason for deprecation"/"stated as") and |doi-access= (WD "access status")?
issue = {id = "P433", maxvals = 0, populate_from_journal = true}, -- distinguish from |number= ("P1545"?) if both are given (still blocked by {{citation}}, but will be supported in the future)
pmid = {id = "P698", maxvals = 1},
-- gbooks = {id = "P675", maxvals = 1}, -- to be added to {{citation}}
-- ia = {id = "P724", maxvals = 1}, -- to be added to {{citation}}
arxiv = {id = "P818", maxvals = 1},
bibcode = {id = "P819", maxvals = 1}, -- take care of |bibcode-access=?
jstor = {id = "P888", maxvals = 1}, -- take care of |jstor-access=?
mr = {id = "P889", maxvals = 1},
rfc = {id = "P892", maxvals = 1},
zbl = {id = "P894", maxvals = 1},
ssrn = {id = "P893", maxvals = 1},
place = {id = "P1071", maxvals = 0, linked = false}, -- written-at place
-- ['total-pages'] = {id = "P1104", maxvals = 0, linked = 'no'}, -- to be added to {{citation}} / COinS &rft.tpages=
-- coden = {id = "P1159", maxvals = 1}, -- to be added to {{citation}} / COinS &rft.coden=
s2cid = {id = "P8299", maxvals = 1}, -- take care of |s2cid-access=?
pmc = {id = "P932", maxvals = 1}, -- take care of |pmc-embargo-date= (WD "reason for deprecation")?
lccn = {id = "P1144", maxvals = 1},
hdl = {id = "P1184", maxvals = 1}, -- take care of |hdl-access=?
ismn = {id = "P1208", maxvals = 1},
journal = {id = "P1433", maxvals = 1},
citeseerx = {id = "P3784", maxvals = 1},
osti = {id = "P3894", maxvals = 1}, -- take care of |osti-access=?
biorxiv = {id = "P3951", maxvals = 1},
asin = {id = "P5749", maxvals = 1}, -- What about |asin-tld=? (WD examples resolve to .com at present, but may change)
-- ['catalog-number'] = {id = "P528", maxvals = 0}, -- to be added to {{citation}} / COinS &rft.artnum=
isbn = {id = "P212", maxvals = 1, populate_from_journal = true}, -- ISBN 13
issn = {id = "P236", maxvals = 1, populate_from_journal = true}, -- distinguish from |eissn= for electronic issues?
-- jfm = {id = "P?", maxvals = 1}, -- Jahrbuch über die Fortschritte der Mathematik (not Zbl)
-- sbn = {id = "P?", maxvals = 1}, -- Standard Book Number (predecessor of ISBN, not ICCU)
-- message-id = {id = "P?", maxvals = 1}, -- Usenet message ID
chapter = {id = "P792", maxvals = 1, no_vol_qual=true},
['publication-date'] = {id = "P577", maxvals = 1, populate_from_journal = true}, -- publication date (don't use |date=; is treated specially in {{citation}} if both are given.)
series = {id = "P179", maxvals = 1, populate_from_journal = true, qual = "P1545"},
version = {id = "P348", maxvals = 0},
edition = {id = "P393", maxvals = 0},
volume = {id = "P478", maxvals = 0, populate_from_journal = true, no_vol_qual=true},
-- part = {id = "P1545"?, maxvals = 0}, -- to be added to {{citation}} / COinS &rft.part=
title = {id = "P1476", rank="p n"},
-- url = {id = "P953", maxvals = 1}, -- deal with this along with archive-url
pages = {id = "P304", maxvals = 0, populate_from_journal = true, no_vol_qual=true},
at = {id = "P958", maxvals = 0, populate_from_journal = true, no_vol_qual=true}, -- also incorporate lines (P7421) and columns (P3903) into this (cite map also supports |section=)
-- sheets = {id = "P7416", maxvals = 0, populate_from_journal = true},
-- interviewer = {id = "P?", maxvals = 0}, -- does **not** go to "others" section! Multiple interviewers should be n-enumerated
illustrator = {id = "P110", maxvals = 10, others = true}, -- goes to "others" section
-- foreword and afterword, when contributions to another author's work, are contributions so belong in |contribution=;
-- the writer's name goes in |contributor=; requires |title= and |author=
-- However, this might need to add support for multiple contributors and their roles to {{citation}}, see Help_talk:Citation_Style_1#Others
-- foreword = {id = "P2679", maxvals = 10, others = true}, -- goes to "others" section
-- afterword = {id = "P2680", maxvals = 10, others = true}, -- goes to "others" section
composer = {id = "P86", maxvals = 10, others = true}, -- goes to "others" section
animator = {id = "P6942", maxvals = 10, others = true}, -- goes to "others" section
director = {id = "P57", maxvals = 10, others = true}, -- goes to "others" section
screenwriter = {id = "P58", maxvals = 10, others = true}, -- goes to "others" section
signatory = {id = "P1891", maxvals = 10, others = true}, -- goes to "others" section
presenter = {id = "P371", maxvals = 10, others = true}, -- goes to "others" section
performer = {id = "P175", maxvals = 10, others = true}, -- goes to "others" section
-- next 2 lines added for Arabic Wikipedia
annotator = {id ="P11105", maxvals = 10, others = true}, -- goes to "others" section
reviewer = {id ="P4032", maxvals = 10, others = true}, -- goes to "others" section
supervisor = {id ="P7604", maxvals = 3, others = true}, -- goes to "others" section
}
local used_args_t = {accessdate=true, language=true, mode=true, ol=true, other=true, ['display-authors']=true, ['display-editors']=true, ['archive-url']=true,
['archive-date']=true, url=true, title=true, page=true, pages = true, volume=true}
-- all_used_properties
local used_properties_t = { P1680 = true, P1932 = true, P2699 = true, P407 = true, P2093 = true, -- author string
P50 = true, -- author
P5769 = true, --editor
P655 = true, P856 = true, P953 = true, P98 = true, P854 = true,
}
for k,v in pairs(simple_properties_t) do
used_properties_t[v.id] = {
arg = k,
maxvals = v.maxvals,
linked = v.linked,
others = v.others,
populate_from_journal = v.populate_from_journal
}
end
simple_properties_t['hijri-date'] = {id = "P577", maxvals = 1, hijri=true}
return {
aliases_t = aliases_t,
i18n_t = i18n_t,
rejected_t = rejected_t,
simple_properties_t = simple_properties_t,
used_args_t = used_args_t,
used_properties_t = used_properties_t,
config_t = config_t,
}
nyfs053a04x8o05g5t18wkztniky0md
ويكاموس:الميدان/أرشيف/2026
4
237535
1097663
1090231
2026-07-27T21:07:04Z
حبيشان
31560
أرشقة الميدان
1097663
wikitext
text/x-wiki
{{أرشيف صفحة رئيسية|ويكاموس:الميدان}}
== Thank You for Last Year – Join Wiki Loves Ramadan 2026 ==
Dear Wikimedia communities,
We hope you are doing well, and we wish you a happy New Year.
''Last year, we captured light. This year, we’ll capture legacy.''
In 2025, communities around the world shared the glow of Ramadan nights and the warmth of collective iftars. In 2026, ''Wiki Loves Ramadan'' is expanding, bringing more stories, more cultures, and deeper global connections across Wikimedia projects.
We invite you to explore the ''Wiki Loves Ramadan 2026'' [[m:Special:MyLanguage/Wiki Loves Ramadan 2026|Meta page]] to learn how you can participate and [[m:Special:MyLanguage/Wiki Loves Ramadan 2026/Participating communities|sign up]] your community.
📷 ''Photo campaign on '' [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan 2026|Wikimedia Commons]]
If you have questions about the project, please refer to the FAQs:
* [[m:Special:MyLanguage/Wiki Loves Ramadan/FAQ/|Meta-Wiki]]
* [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan/FAQ|Wikimedia Commons]]
''Early registration for updates is now open via the '''[[m:Special:RegisterForEvent/2710|Event page]]'''''
''Stay connected and receive updates:''
* [https://t.me/WikiLovesRamadan Telegram channel]
* [https://lists.wikimedia.org/postorius/lists/wikilovesramadan.lists.wikimedia.org/ Mailing list]
We look forward to collaborating with you and your community.
'''The Wiki Loves Ramadan 2026 Organizing Team''' 19:45، 16 يناير 2026 (ت ع م)
<!-- الرسالة التي أرسلها User:ZI Jony@metawiki باستخدام القائمة في https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29879549 -->
== <span lang="en" dir="ltr">Annual review of the Universal Code of Conduct and Enforcement Guidelines</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
I am writing to you to let you know the annual review period for the Universal Code of Conduct and Enforcement Guidelines is open now. You can make suggestions for changes through 9 February 2026. This is the first step of several to be taken for the annual review. [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2026|Read more information and find a conversation to join on the UCoC page on Meta]].
The [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|you may review the U4C Charter]].
Please share this information with other members in your community wherever else might be appropriate.
-- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]])<section end="announcement-content" />
</div>
21:02، 19 يناير 2026 (ت ع م)
<!-- الرسالة التي أرسلها User:Keegan (WMF)@metawiki باستخدام القائمة في https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 -->
== قوالب جديدة + إنشاء صفحات الأفعال ==
في إطار إثراء ويكاموس، أنشأنا في الفترة الأخيرة وحدات وقوالب جديدة، من أهمها [[قالب:تصريف]]، الذي صار واسع الاستعمال بفضل تدريبات ومسابقة [[ويكاموس:مشروع إحياء ويكاموس العربي 2025|مشروع إحياء ويكاموس العربي 2025]] (الشكر مرة أخرى للزملاء القائمين على المشروع).
ثم عملنا على الربط بين ويكي بيانات وويكاموس. سبقني الزميل {{مس|Mr. Ibrahem}}، مشكورا، بإنشاء آلاف الجذور والأفعال والأسماء في ويكي بيانات. ثم أضفت جذورا وأفعالا أخرى، مع أوزانها الصرفية وخاصية اللزوم والتعدية. يُمَكِّن [[قالب:صندوق معلومات فعل]] من استيراد خاصيات الأفعال من ويكي بيانات، ثم إظهارها مع معلومات أخرى (المصدر، اسم الفاعل، اسم المفعول) في صندوق معلومات داخل صفحات ويكاموس.
كذلك أنشأنا [[قالب:معجمية]] الذي يستورد معاني الكلمات، مع مراجعها وأمثلة استخدامها، من ويكي بيانات إلى ويكاموس. عددتُ في صفحة [[ويكاموس:ويكي بيانات]] امتيازات الاعتماد على ويكي بيانات، وطبيعة الربط بين المشروعين، وطرق المُساهمة.
المراحل القادمة:
* إنشاء صفحات الأفعال غير الموجودة في ويكاموس، بالصيغة التالية:
** <syntaxhighlight lang="wikitext" dir="rtl">
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L12345}} <!-- جديد -->
=== المعاني ===
'''فَعَلَ''' {{نصر}}.
{{معجمية|L12345|معاني}} <!-- جديد -->
=== النطق ===
* {{أصد-عر|فَعَلَ}}
=== التصريفات ===
{{تصريف|جذر=فعل|وزن=فعَل يفعُل}}
=== المراجع ===
{{مراجع}}
</syntaxhighlight>
** مثال لصفحات تستورد المعاني في ويكي بيانات: [[أَدْرَجَ]]، [[أَبْحَرَ]].
** مثال لصفحات تستعمل [[قالب:معجمية]]، لكن ليس لها معاني في ويكي بيانات (في تاريخ كتابة هذه السطور): [[اِسْتَبْحَرَ]]، [[تَأَبَّتَ]]. وهكذا سيكون حال أغلب الصفحات التي ستُنشأ.
* في مرحلة ثانية، إضافة المعاني إلى ويكي بيانات، وهي عملية ستستغرق وقتا طويلا، إذ تتطلّب تفكيرا معمّقا في المنهجية، وتحضير أدوات للبحث في المعاجم، إضافة إلى مراجعة يدوية للمعاني قبل إدخالها. وقد بدأنا بالفعل التفكير في آلية العمل، بالتعاون مع زملاء آخرين.
هل من ملاحظات أو اقتراحات أو اعتراضات أو أفكار ؟ [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 22:30، 17 يناير 2026 (ت ع م)
:إشارة إلى الناشطين في المشروع @[[مستخدم:حبيشان|حبيشان]] @[[مستخدم:Najem Ajem|Najem Ajem]] @[[مستخدم:Nehaoua|Nehaoua]] @[[مستخدم:Avicenno|Avicenno]] @[[مستخدم:أبو هشام|أبو هشام]] @[[مستخدم:القلموني|القلموني]] @[[مستخدم:RASHEEDYE|RASHEEDYE]] @[[مستخدم:كريم أحمد|كريم أحمد]] [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:44، 20 يناير 2026 (ت ع م)
:أشكرك @[[مستخدم:ForzaGreen|ForzaGreen]] على هذه المساهمات الرائعة، أرجو عدم حذف المحتوى الحالي وإحلال قوالب ويكي بيانات مكانه، التعديل المباشر في ويكاموس أسهل لأكثر مستخدمين من ويكي بيانات، والمشاركات في المشروع ضعيفة لذا نريد التشجيع للمساهمة من أي طريق سواء عبر ويكاموس مباشرة أو عبر ويكي بيانات كلا بما يحسنه.
:هناك ملاحظات تقنية سيكون مكانها نقاش الوحدة. [[مستخدم:حبيشان|حبيشان]]<sup>('''[[نقاش المستخدم:حبيشان|ن]]''')</sup> 13:00، الأربعاء 2 شعبان 1447هـ (+3) 10:00، 21 يناير 2026 (ت ع م)
::شكرا @[[مستخدم:حبيشان|حبيشان]] على الملاحظة. طبعا لن يُحذف المحتوى الحالي. سيُستعمل [[قالب:معجمية]] فقط في الصفحات الجديدة. غيرت صفحة [[أَدْرَجَ]] فقط كمثال. في الصفحات الموجودة سيُضاف [[قالب:صندوق معلومات فعل]] وسيُعتمد [[قالب:تصريف]] بدل القالب القديم، أما المعاني فستبقى كما هي. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 13:49، 21 يناير 2026 (ت ع م)
:شكرا لك {{ر|ForzaGreen|س=وائل}} ولباقي الزملاء على الاهتمام بربط ويكاموس مع ويكي بيانات. هذا عمل رائع، وأنا متوافق مع خطة عملكم. [[مستخدم:Najem Ajem|'''<span style="color:#00008B">--الناجم العاجم</span>''']] [[نقاش المستخدم:Najem Ajem|'''<span style="color:#00008B">''❄''</span>''']] 14:12، 22 يناير 2026 (ت ع م)
::شكرا للإشارة، {{أتفق}} فالفكرة رائعة وستثري المشروع، ولدي سؤال هل يمكن الربط بين المشروعين من ويكي بيانات؟ شكرا. [[مستخدم:أبو هشام|أبو هشام]] <sup>[[نقاش المستخدم:أبو هشام|«نقاش»]]</sup> 09:16، 2 فبراير 2026 (ت ع م)
:::شكرا @[[مستخدم:أبو هشام|أبو هشام]] على أسئلتك في [https://ar.wiktionary.org/wiki/%D9%88%D9%8A%D9%83%D8%A7%D9%85%D9%88%D8%B3:%D8%B7%D9%84%D8%A8_%D8%B5%D9%84%D8%A7%D8%AD%D9%8A%D8%A9_%D8%A8%D9%88%D8%AA#c-%D8%A3%D8%A8%D9%88_%D9%87%D8%B4%D8%A7%D9%85-20260202102100-ForzaGreen-20260201235800 صفحة طلب صلاحية البوت].
:::- عن سؤالك: ''هل يمكن الربط بين المشروعين من ويكي بيانات وليس من ويكاموس؟'' -> لا يمكن. ميزة ويكي بيانات أنها قاعدة بيانات، نستغلها لتخزين بيانات مُهيكَلة ومُرتبة. وبالتالي يسهل استيراد هذه البيانات برمجيا في ويكاموس.
:::- عن اقتراحك ''فصل التعريف بالمفردة عن المعاني وإضافة مصدر للتعريف إن أمكن''. -> لم أفهم. على كل حال، استعمال قالب {{قا|معجمية}} يبقى مسألة اختيارية لمن أراد أن يسحب المعلومات من معجميات ويكي بيانات.
:::- ''هل ستُزال جملة (هذه الكلمة لا تحتوي على معانٍ....إلخ) تلقائيا عند تطوير المفردة وإضافة المعاني في ويكاموس؟'' -> نعم، الجملة تُزال تلقائيا عند إضافة المعاني في ويكي بيانات، وليس في ويكاموس. وهذه أهم ميزات القالب. خذ مثلا مثال صفحة [[حَارَبَ]] (ليس لها معاني في حين كتابة هذه السطور). أضف لها معاني في ويكي بيانات، فستظهر لك في ويكاموس. انظر فقرة [[ويكاموس:ويكي بيانات#استيراد المعاني|ويكاموس:ويكي بيانات#استيراد المعاني]] لكيفية إضافة المعاني في ويكي بيانات.
:::- ''* من أين جاءت هذه الجملة (جريمة قتل على ويكيبيديا) في هذه المفردة ([[أَدْرَجَ]])؟'' -> جاءت من ويكي بيانات، من خاصية ([[wikidata:P:P9970|مُسند إلى]]). تُستعمل الخاصية لربط المعنى مع عنصر (وليس وحدة معجمية) في ويكي بيانات. إن كان للعنصر مقالة في ويكيبيديا، فستظهر في ويكاموس. شرحت هذا كذلك في صفحة [[ويكاموس:ويكي بيانات]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 21:57، 2 فبراير 2026 (ت ع م)
هذا مثال لما أقصده، قد تحتاج إلى إنشاء قالب للتعريف بالمفردة وإزالة التعريف من قالب معجمية أو إنشاء قالب للمعاني وظيفته استيراد المعاني:
* <syntaxhighlight lang="wikitext" dir="rtl">
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل}}
=== التعريف ===
هنا يكون التعريف بالمفردة باستخدام قالب للتعريف فقط.(مرجع)
=== المعاني ===
هنا تذكر المعاني باستخدام قالب وظيفته استيراد المعاني فقط أو يضيفها المحررون.
=== النطق ===
* {{أصد-عر|فَعَلَ}}
=== التصريفات ===
{{تصريف|جذر=فعل|وزن=فعَل يفعُل}}
=== المراجع ===
{{مراجع}}
</syntaxhighlight>
:هذا مجرد اقتراح، ويمكن الاستغناء عن قسم التعريف (=== التعريف ===) وذكره بعد صندوق المعلومات مباشرة.
* <syntaxhighlight lang="wikitext" dir="rtl">
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل}}
هنا يكون التعريف بالمفردة باستخدام قالب للتعريف فقط.(مرجع)
=== المعاني ===
هنا تذكر المعاني باستخدام قالب وظيفته استيراد المعاني فقط أو يضيفها المحررون.
=== النطق ===
* {{أصد-عر|فَعَلَ}}
=== التصريفات ===
{{تصريف|جذر=فعل|وزن=فعَل يفعُل}}
=== المراجع ===
{{مراجع}}
</syntaxhighlight>
:اقتراحي الآخر هو إنشاء صفحات للمفردات التي لها معان في ويكي بيانات فقط لأن الصفحات التي تقتصر على القوالب فقط ستكون فارغة أو شبه فارغة، شكرا لجهودكم. [[مستخدم:أبو هشام|أبو هشام]] <sup>[[نقاش المستخدم:أبو هشام|«نقاش»]]</sup> 13:00، 3 فبراير 2026 (ت ع م)
::{{ر|ForzaGreen}} أرى أن التنسيق الذي اقترحتَه جيد، إذ يضاف صندوق المعلومات وقالب {{قا|معجمية}} بدون الحاجة لإضافة أي قسم جديد. [[مستخدم:Najem Ajem|'''<span style="color:#00008B">--الناجم العاجم</span>''']] [[نقاش المستخدم:Najem Ajem|'''<span style="color:#00008B">''❄''</span>''']] 12:48، 5 فبراير 2026 (ت ع م)
::{{ر|أبو هشام}} صفحات الأفعال المضافة ستتضمن معلومات منظمة عن النطق والصرف والنحو، <s>أما قسم المعاني الذي سيكون شبه فارغ فهو سيدفع المحررين إلى شيء من الحماس ويجعلهم يفكرون بإضافة المعاني سواء في المحرر أو في ويكي بيانات، إذ لا بأس بهذا.</s> والعديد من الويكاموسات الأجنبية فيها صفحات "شبه فارغة" كثيرة. [[مستخدم:Najem Ajem|'''<span style="color:#00008B">--الناجم العاجم</span>''']] [[نقاش المستخدم:Najem Ajem|'''<span style="color:#00008B">''❄''</span>''']] 12:48، 5 فبراير 2026 (ت ع م)
:::فعلا الصفحات المُقترحة تتضمن عدة معلومات (الجذر، الأوزان الصرفية، التعدية، المصادر، اسما الفاعل والمفعول، التصريف، النطق..)، لكن أتَفَهَّم كذلك رأي الزملاء بأن المعاني هي الركن الأساسي في المعجم. حاليا لن أُنشئ صفحات الأفعال الأساسية. قد أُعدِّل صفحات الأفعال الموجودة لإضافة {{قا|صندوق معلومات فعل}} و{{قا|تصريف}}. كذلك قد أُنشئ الصفحات الثانوية، من قبيل [[أَكْتُبُ]]، [[نَكْتُبُ]]، [[اُكْتُبْ]]... [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 08:56، 6 فبراير 2026 (ت ع م)
== Action Required: Update templates/modules for electoral maps (Migrating from P1846 to P14226) ==
<div lang="en" dir="ltr" class="mw-content-ltr">
Hello everyone,
This is a notice regarding an ongoing data migration on Wikidata that may affect your election-related templates and Lua modules (such as <code>Module:Itemgroup/list</code>).
'''The Change:'''<br />
Currently, many templates pull electoral maps from Wikidata using the property [[:d:Property:P1846|P1846]], combined with the qualifier [[:d:Property:P180|P180]]: [[:d:Q19571328|Q19571328]].
We are migrating this data (across roughly 4,000 items) to a newly created, dedicated property: '''[[:d:Property:P14226|P14226]]'''.
'''What You Need To Do:'''<br />
To ensure your templates and infoboxes do not break or lose their maps, please update your local code to fetch data from [[:d:Property:P14226|P14226]] instead of the old [[:d:Property:P1846|P1846]] + [[:d:Property:P180|P180]] structure. A [[m:Wikidata/Property Migration: P1846 to P14226/List|list of pages]] was generated using Wikimedia Global Search.
'''Deadline:'''<br />
We are temporarily retaining the old data on [[:d:Property:P1846|P1846]] to allow for a smooth transition. However, to complete the data cleanup on Wikidata, the old [[:d:Property:P1846|P1846]] statements will be removed after '''May 1, 2026'''. Please update your modules and templates before this date to prevent any disruption to your wiki's election articles.
Let us know if you have any questions or need assistance with the query logic. Thank you for your help! [[User:ZI Jony|ZI Jony]] using [[مستخدم:MediaWiki message delivery|MediaWiki message delivery]] ([[نقاش المستخدم:MediaWiki message delivery|نقاش]]) 17:12، 3 أبريل 2026 (ت ع م)
</div><!-- الرسالة التي أرسلها User:ZI Jony@metawiki باستخدام القائمة في https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29941252 -->
== Request for comment (global AI policy) ==
<div lang="en" dir="ltr" class="mw-content-ltr">
Apologies for writing in English. {{int:Please-translate}}<br />
A [[:m:Requests for comment/Artificial intelligence policy|request for comment]] is currently being held to decide on a global AI policy. {{int:Feedback-thanks-title}}
[[مستخدم:MediaWiki message delivery|MediaWiki message delivery]] ([[نقاش المستخدم:MediaWiki message delivery|نقاش]]) 00:58، 26 أبريل 2026 (ت ع م)
</div><!-- الرسالة التي أرسلها User:Codename Noreste@metawiki باستخدام القائمة في https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30424282 -->
== تجربة إضافة الاستشهاد الآلي بويكي بيانات، مع طلب جعلها افتراضية ==
بفضل الله طورت إضافة الاستشهاد الآلي بالشاملة لتشمل المواقع والمعرفات التالية:
* موقع أرشيف Archive - مع الجزء والصفحة
* موقع تراث app.turath.io - مع الجزء والصفحة
* معرف ردمك isbn
* معرف دوي DOI
* arXiv
* bibcode
* biorxiv
* zbMATH
* jstor
* Academia
* mandumah
* eMarefa
* mathscinet
* oclc
* openlibrary
* osti
* PMC
* PubMed
* rfc
* ssrn
* s2pid
* Google Books - مع الجزء
* ResearchGate
* أي موقع آخر إذا وضع في خاصية {{P|953}}
معرفات ردمك ودوي وعزو برنامج وموقع الشاملة وتراث يمكن وضعه بدون مباشرة، لكن بقية المعرفات الأخرى لا بد أن يكون هناك رابط من موقع المعرف.
يشترط أن يكون المرجع موجودًا في ويكي بيانات أنه معرف بذلك المعرف.
يمكن الإضافة على هذه المعرفات إذا كان لها استخدام واسع.
لتجربة الإضافة اضغط على هذا الرابط:
{{تفعيل إضافة|auto-cite-wikidata-loader|block=1}}
مع التأكد من إلغاء تفعيل إضافة (الاستشهاد الآلي بالشاملة) ويكن ذلك عبر الرابط التالي:
{{تفعيل إضافة|auto-cite-shamela-loader|block=1|تعطيل=1}}
بعد تجربة الإضافة ستستبدل بإضافة الاستشهاد بالشاملة، وكذلك أطلب جعلها إضافة افتراضية لتسهيل الاستشهاد على المبتدئين. [[مستخدم:حبيشان|حبيشان]]<sup>('''[[نقاش المستخدم:حبيشان|ن]]''')</sup> 18:44، الثلاثاء 11 ذو القعدة 1447هـ (+3) 15:44، 28 أبريل 2026 (ت ع م)
:{{مع}} جعل الإضافة افتراضية. شكرا لك. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 13:53، 29 أبريل 2026 (ت ع م)
:{{تم}}، لعدم الاعتراض. [[مستخدم:حبيشان|حبيشان]]<sup>('''[[نقاش المستخدم:حبيشان|ن]]''')</sup> 22:16، الثلاثاء 25 ذو القعدة 1447هـ (+3) 19:16، 12 مايو 2026 (ت ع م)
== دعوة للمشاركة في ندوة تعريفية بأداة إثراء ويكاموس ==
السلام عليكم ورحمة الله،
[[ملف:ArabicWiktionary-WMISLM-Poster.png|تصغير|يسار|ملصق إعلاني للندوة]]
يسعدنا في مجموعة الحضارة الإسلامية دعوتكم لحضور ندوة حول أداة إثراء مشروع ويكاموس، للتعرف على هذا المشروع وآلية العمل عليه وتطويره عبر أداة تقنية متطورة.
لمزيد من المعلومات والتسجيل: [[w:ar:فعالية:جلسة تعريفية بأداة إثراء ويكاموس|جلسة تعريفية بأداة إثراء ويكاموس]]
والسلام خير الختام
{{تحديد}} [[مستخدم:SanBonne|SanBonne]] ([[نقاش المستخدم:SanBonne|نقاش]]) 09:01، 25 مايو 2026 (ت ع م)
== مشكلة تقنية ==
مرحبًا، عند الضغط على مساهمات المستخدم واختبار حسابات الدخول الموحد يظهر رابط بخطأ الرابط والمفروض أنه يفتح [[خاص:تحقق مركزي]]. إشارة @[[مستخدم:Najem Ajem|Najem Ajem]] @[[مستخدم:حبيشان|حبيشان]] [[مستخدم:كريم أحمد|كريم أحمد]] ([[نقاش المستخدم:كريم أحمد|نقاش]]) 12:22، 26 مايو 2026 (ت ع م)
:لو جعلت الخيارات أسفل [[خاص:مساهمات]] مثل ما هي في ويكاموس الإنجليزي فسيكون الوضع أفضل بكثير. [[مستخدم:كريم أحمد|كريم أحمد]] ([[نقاش المستخدم:كريم أحمد|نقاش]]) 12:28، 26 مايو 2026 (ت ع م)
::مرحبا {{ر|كريم أحمد}}، عيد مبارك سعيد. الوصلات الموجودة في الشريط السفلي ل[[خاص:مساهمات]] مطابقة لما هو الوضع عليه في باقي المشاريع، آخر ثلاث وصلات:
:#المساهمات العالمية (Global contributions): وهي وصلة لأداة guc في toolforge.
:#الحسابات (accounts): وهذه هي الوصلة التي تؤدي إلى [[خاص:تحقق مركزي]].
:#المساهمات (edits): وهذه وصلة إلى المساهمات العالمية كأداة guc، لكن معروضة مباشرة على موقع ميتاويكي.
::وبالتالي لا أرى أي مشكلة في هذا. إلا إذا شرحتَ باستفاضة الإشكال الذي تجده، تحياتي [[مستخدم:Najem Ajem|'''<span style="color:#3B82F6">--الناجم العاجم</span>''']] [[نقاش المستخدم:Najem Ajem|'''<span style="color:#3B82F6">''❄''</span>''']] 21:19، 26 مايو 2026 (ت ع م)
::كتبت ردِي بعد مقارنة الواجهة في ويكاموس العربي والإنجليزي، لكن راجعتُ الآن أحدث التغييرات، وأرى أن {{ر|حبيشان}} -مشكورا- حل الإشكال و[[خاص:فرق/1090226|عدل الشريط السفلي]] للمساهمات مسبقا قبل ردِي، لذلك لم أجد أي اختلاف. [[مستخدم:Najem Ajem|'''<span style="color:#3B82F6">--الناجم العاجم</span>''']] [[نقاش المستخدم:Najem Ajem|'''<span style="color:#3B82F6">''❄''</span>''']] 21:37، 26 مايو 2026 (ت ع م)
:::جزيل الشكر @[[مستخدم:Najem Ajem|Najem Ajem]] على الشرح و@[[مستخدم:حبيشان|حبيشان]] على التحديث. هل يمكن إضافة خانة المدخلات المنشئة كما في الإنجليزي؟ وعيد مبارك عليكما. [[مستخدم:كريم أحمد|كريم أحمد]] ([[نقاش المستخدم:كريم أحمد|نقاش]]) 22:34، 26 مايو 2026 (ت ع م)
::::{{تم}} [[مستخدم:Najem Ajem|'''<span style="color:#3B82F6">--الناجم العاجم</span>''']] [[نقاش المستخدم:Najem Ajem|'''<span style="color:#3B82F6">''❄''</span>''']] 19:21، 29 مايو 2026 (ت ع م)
:::::@[[مستخدم:Najem Ajem|Najem Ajem]] صارت أحسن، جزيل الشكر. [[مستخدم:كريم أحمد|كريم أحمد]] ([[نقاش المستخدم:كريم أحمد|نقاش]]) 20:02، 29 مايو 2026 (ت ع م)
== صوت الآن لانتخابات أعضاء لجنة التنسيق لمدونة السلوك العالمية 2026 ==
<section begin="announcement-content" />
يُدعى المصوتون المؤهلون للمشاركة في انتخابات [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|اللجنة التنسيقية لمدونة قواعد السلوك العالمية]] لعام 2026. وتتوفر معلومات إضافية — بما في ذلك التحقق من أهلية التصويت، وتفاصيل آلية الاقتراع، ومعلومات المرشحين، ورابط التصويت — على منصة ميتـا عبر [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|صفحة معلومات انتخابات 2026]]. علماً بأن باب التصويت سيُغلق في 2 يونيو 2026 عند الساعة [https://zonestamp.toolforge.org/1780358400 00:00 بالتوقيت العالمي المنسق].
من فضلك صوت إذا كان حسابك مؤهلاً وستتاح النتائج بحلول 14 يونيو 2026. -- بالتعاون مع لجنة تنسيق مدونة السلوك العالمية،<section end="announcement-content" />
[[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 17:15، 27 مايو 2026 (ت ع م)
<!-- الرسالة التي أرسلها User:Keegan (WMF)@metawiki باستخدام القائمة في https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 -->
== RFC about AI-generated content in Wikimedia Commons ==
<bdi lang="en" dir="ltr">Apologies for writing in English, please help translate this message to your language. You are invited to participate in a [[c:Commons:Requests for comment/Policy update for AI content|request for comment on Wikimedia Commons about a policy update for AI content]]. This may affect files that are uploaded to Wikimedia Commons for use on this project. Thank you. [[m:User:Codename Noreste|Codename Noreste]] ([[m:User talk:Codename Noreste|نقاش]])</bdi> 17:12، 23 يونيو 2026 (ت ع م)
<!-- الرسالة التي أرسلها User:Codename Noreste@metawiki باستخدام القائمة في https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 -->
{{نهاية صفحة أرشيف}}
s6zdbsbsxlspilzickf866wxracmygu
نقاش المستخدم:بشار منير العباسي
3
239921
1097657
1096773
2026-07-27T20:28:02Z
بشار منير العباسي
38947
/* اريد أساسيات المحاسبة المالية */ قسم جديد
1097657
wikitext
text/x-wiki
<div style="width:auto" style="margin-bottom:1.25em;border:1px solid #{{#switch:bleu|bleu=8898BF|vert=97BF87|jaune=AAAA66|or=777777|orange=AA8833|violet=7755AA|saumon=AA8866|sable=AA9955|vertmoyen=88BB55|bleufoncé=1144AA|rouge=AA8866|écarlate=AAAAAA|#default=AAAAAA}}; background:white;padding:0">
<div style="height:8px;margin:0;border:0;border-bottom:1px solid #{{#switch:bleu|bleu=8898BF|vert=97BF87|jaune=AAAA66|or=777777|orange=AA8833|violet=7755AA|saumon=AA8866|sable=AA9955|vertmoyen=88BB55|bleufoncé=1144AA|rouge=AA8866|écarlate=AAAAAA|#default=AAAAAA}};background: #{{#switch:bleu|bleu=C8D8FF|vert=D7FFC7|jaune=FFFFB9|or=FFE040|orange=FFDD88|violet=C9AEF1|saumon=FBDFBE|sable=F1E2AE|vertmoyen=99CC66|bleufoncé=003399|rouge=FFDAB9|écarlate=FF3333|#default=E0E0E0}};font-size:1px"></div>
<div style="padding:5px;font-size:small"><div class="center"><span style="word-spacing:1ex"><small>[[ويكاموس:سفارة|Welcome!]] [[ويكاموس:سفارة|Bienvenue!]] [[ويكاموس:سفارة|Willkommen!]] [[ويكاموس:سفارة|Benvenuti]] [[ويكاموس:سفارة|¡Bienvenido!]] [[ويكاموس:سفارة|ようこそ]] [[ويكاموس:سفارة|Dobrodošli]] [[ويكاموس:سفارة|환영합니다]] [[ويكاموس:سفارة|Добро пожаловать]] [[ويكاموس:سفارة|Bem-vindo!]] [[ويكاموس:سفارة|欢迎]] [[ويكاموس:سفارة|Bonvenon]] [[ويكاموس:سفارة|Welkom]]</small></span></div></div>
<div class="center"><big>'''[[ويكاموس:ترحيب بالقادمين الجدد|مرحبا بك]] في [[ويكاموس]]، بشار منير العباسي !'''</big></div>
{|
|[[ملف:WiktionaryAr.svg|يمين|40بك]]
|
[[ويكاموس]] هو <u>مشروع تحرير جماعي لـ'''قاموس علمي وثقافي''' '''بمختلف اللغات'''</u>. لطلب المساعدة في أي وقت تجد وصلة ([[مساعدة:محتويات|'''مساعدة''']]) في هامش كل صفحة على اليمين.
لا تتردد في قراءة '''الوصايا الأولى''':
* [[ويكاموس:دليل سريع|دليل سريع لتعلم التنسيق]]
* [[مساعدة:إنشاء صفحة جديدة|كيف تنشئ صفحة جديدة]]
* [[ويكاموس:دروس (التحرير)|دروس مفصلة لتعلم التنسيق]]
* [[ويكاموس:صيغة الكتابة|الصيغة الموحدة للكتابة]]
* [[ويكاموس:ويكاموس ليس|مبادئ ويكاموس]]
لا تتردد في زيارة '''[[مستخدم:بشار منير العباسي/ملعبي|ملعبك الخاص]]''' لاحتواء تجاربك وخطواتك الأولى في التحرير والتعديل.
|--
|[[ملف:Presa de decissions.png|يمين|40بك]]
|
يمكنك الاستفسار و[[ويكاموس:أسئلة|طرح الأسئلة]] المتعلقة بطبيعة العمل في ويكاموس.
يمكنك أيضا [{{fullurl:مستخدم:بشار منير العباسي|action=edit}} التعريف] بنفسك في [[مستخدم:بشار منير العباسي|'''صفحتك الشخصية''']]، بكتابة معلومات عنك: [[ويكاموس:بابل|اللغات التي تتكلمها]]، [[ويكاموس:صناديق المستخدم|من أي بلد أنت، ما هي محاور اهتمامك]]...
|---
|[[ملف:Crystal Clear app ktip.png|يمين|40بك]]
|
لا تنس [[ويكاموس:توقيع|'''التوقيع''']] في [[مساعدة:صفحة النقاش|'''صفحات النقاش''']] بكتابة أربع مدّات، هكذا (<nowiki>~~~~</nowiki>). ولكن يجب <u>'''عدم التوقيع في صفحات المقالات القاموسية'''</u>، لأنها تصبح ملكًا للجميع لحظة إنشائها.
نرجو منك ألاّ تنسى [[ويكاموس:حقوق التأليف والنشر|<u>'''عدم النسخ من الشابكة'''</u>]] لأسباب [[ويكاموس:حقوق التأليف والنشر|<u>'''حقوق التأليف والنشر'''</u>]].
|--
|[[ملف:Crystal Clear app amor.png|يمين|40بك]]
|
أخيرا، وهو أهم شيء، نتمى لك أن [[ويكاموس:كن جريئا|'''تتمتع''']] بالمساهمة [[ويكاموس:بوابة المجتمع|'''معنا''']] في هذا المشروع!
إذا كانت لديك أي استفسارات أو أسئلة أخرى، يمكنك طرحها في [[ويكاموس:أسئلة|هذه الصفحة]] أو في صفحة نقاشي.
|}</div></div> --[[مستخدم:Meno25|Meno25]] ([[نقاش المستخدم:Meno25|نقاش]] • [[خاص:مساهمات/Meno25|مساهمات]]) 21:01، 18 يوليو 2026 (ت ع م)
== اريد أساسيات المحاسبة المالية ==
كل ما يخص أساسيات المحاسبة [[مستخدم:بشار منير العباسي|بشار منير العباسي]] ([[نقاش المستخدم:بشار منير العباسي|نقاش]]) 20:28، 27 يوليو 2026 (ت ع م)
t8tjwg690462e4f2rd2511ziv1cp93k
وحدة:WdItem/ملعب
828
240414
1097632
1097394
2026-07-27T14:49:50Z
حبيشان
31560
تفادي خطأ
1097632
Scribunto
text/plain
-- Module: WdItem
-- Object-oriented Wikidata access module for Lua
-- Refactored from WikidataIB for direct Lua usage
require("strict")
local p = {}
-- i18n configuration
local i18n = {
["errors"] = {
["property-not-found"] = "الخاصية غير موجودة.",
["entity-not-found"] = "الكيان على ويكي بيانات غير موجود.",
["unknown-claim-type"] = "نوع الادعاء غير معروف.",
["local-article-not-found"] = "المعرف متاح على ويكي بيانات، ولكن المقال غير متاح على ويكيبيديا",
},
["months"] = {
"January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
},
["Unknown"] = "Unknown",
["NaN"] = "Not a number",
["missinginfocat"] = "[[تصنيف:Articles with missing Wikidata information]]",
["list separator"] = ", ",
["list separator-ar"] = "، ",
}
-- Date precision constants
local dp = {
[6] = "millennium",
[7] = "century",
[8] = "decade",
[9] = "year",
[10] = "month",
[11] = "day",
}
-- local options_aliases = {
-- ["osd"] = "onlysourced",
-- ["wdl"] = "wdlinks",
-- ["uabbr"] = "unitabbr",
-- ["qo"] = "qualsonly",
-- ["lp"] = "linkprefix",
-- ["lprefix"] = "linkprefix",
-- ["qlp"] = "qlinkprefix",
-- ["sn"] = "shortname",
-- ["uselbl"] = "uselabel",
-- ["pd"] = "plaindate",
-- ["qdf"] = "qualifierdateformat",
-- ["df"] = "qualifierdateformat",
-- ["qsn"] = "qshortname"
-- }
-- setmetatable(options_aliases, { __index = function(t, k) return k end })
-------------------------------------------------------------------------------
-- Internal helper functions
-------------------------------------------------------------------------------
local function in_array( needle, haystack )
if needle == nil then
return false
end
for n, v in ipairs( haystack ) do
if v == needle then
return n
end
end
return false
end
local function findLang(langcode)
local langobj
langcode = mw.text.trim(langcode or "")
if langcode ~= "" then
if mw.language.isKnownLanguageTag(langcode) then
langobj = mw.language.new(langcode)
end
else
langobj = mw.language.getContentLanguage()
end
return langobj and langobj.code
end
local function parseParam(param, default)
if param == nil then
return default
end
return param
end
local function setRanks(rank)
rank = (rank or ""):lower()
local ranks = {}
for w in string.gmatch(rank, "%a+") do
if w == "best" or w == "preferred" or w == "normal" or w == "deprecated" then
ranks[w] = true
end
end
if ranks.best or not next(ranks) then
ranks.preferred = true
ranks.normal = true
ranks.deprecated = false
end
return ranks
end
local function labelOrId(id, lang_t)
local langs = lang_t or {}
local label
for _,lang in ipairs(langs) do
label = mw.wikibase.getLabelByLang(id, lang)
if label ~= "" then
break;
end
end
label = label or mw.wikibase.getLabel(id)
if label then
return mw.text.nowiki(label), true
else
return id, false
end
end
local function roundto(x, sf)
if x == 0 then return 0 end
local s = 1
if x < 0 then
x = -x
s = -1
end
if sf < 1 then sf = 1 end
local p = 10 ^ (math.floor(math.log10(x)) - sf + 1)
x = math.floor(x / p + 0.5) * p * s
if x == math.floor(x) then x = math.floor(x) end
return x
end
local function decimalPrecision(x, p)
local s = 1
if x < 0 then
x = -x
s = -1
end
if not tonumber(p) then p = 1e-4
elseif p > 1 then p = 1
elseif p < 1e-6 then p = 1e-6
else p = 10 ^ math.floor(math.log10(p))
end
x = math.floor(x / p + 0.5) * p * s
if x == math.floor(x) then x = math.floor(x) end
if math.abs(x) < 1e-4 then x = string.format("%f", x) end
return x
end
local function decimalToDMS(x, p)
if not tonumber(p) then p = 1e-4 end
local d = math.floor(x)
local ms = (x - d) * 60
if p > 0.5 then
if ms > 30 then d = d + 1 end
ms = 0
end
local m = math.floor(ms)
local s = (ms - m) * 60
if p > 0.008 then
if s > 30 then m = m +1 end
s = 0
elseif p > 0.00014 then
s = math.floor(s + 0.5)
elseif p > 0.000014 then
s = math.floor(10 * s + 0.5) / 10
elseif p > 0.0000014 then
s = math.floor(100 * s + 0.5) / 100
else
s = math.floor(1000 * s + 0.5) / 1000
end
return d, m, s
end
local function rawValue(dataValue)
if dataValue.type == "string" then
return dataValue.value
elseif dataValue.type == "wikibase-entityid" then
return dataValue.value and dataValue.value.id
elseif dataValue.type == "monolingualtext" then
return dataValue.value.text
elseif dataValue.type == "quantity" then
return tonumber(dataValue.value.amount)
elseif dataValue.type == 'time' then
return dataValue.value.time
elseif dataValue.type == "globecoordinate" then
return dataValue.value.latitude .. '/' .. dataValue.value.longitude
end
end
local function compareValue(dataValue, strValue)
return rawValue(dataValue) == strValue
end
local function dateFormat(timestamp, dprec, df, bcf, plaindate, qualifiers, lang, adj, model)
df = (df or ""):lower()
if df == "ymd" then
if timestamp:sub(1,1) == "+" then
return timestamp:sub(2,11)
else
local yr = tonumber(timestamp:sub(2,5)) - 1
yr = ("000" .. yr):sub(-4)
if yr ~= "0000" then yr = "-" .. yr end
return yr .. timestamp:sub(6,11)
end
end
timestamp = timestamp:gsub("%-00%-00T", "-01-01T")
dprec = dprec or 11
if df == "y" and dprec > 9 then dprec = 9 end
dprec = dprec>11 and 11 or dprec
dprec = dprec<6 and 6 or dprec
bcf = (bcf or ""):upper()
plaindate = (plaindate or ""):sub(1,1):lower()
if plaindate == "" or plaindate == "n" or plaindate == "f" or plaindate == "0" then plaindate = false end
lang = lang or findLang()
adj = adj or ""
local bc = timestamp:sub(1, 1)=="-" and "BC" or ""
local year, month, day = timestamp:match("[+-](%d*)-(%d*)-(%d*)T")
local iso = tonumber(year)
if dprec == 6 then iso = math.floor( (iso - 1) / 1000 ) + 1 end
if dprec == 7 then iso = math.floor( (iso - 1) / 100 ) + 1 end
if dprec == 8 then iso = math.floor( iso / 10 ) .. "0" end
if dprec == 10 then iso = year .. "-" .. month end
if dprec == 11 then iso = year .. "-" .. month .. "-" .. day end
local sc = not plaindate and qualifiers and qualifiers.P1480
if sc then
for k1, v1 in pairs(sc) do
if v1.datavalue and v1.datavalue.value.id == "Q5727902" then
adj = "circa"
break
end
end
end
local calendarmodel = ""
if tonumber(year) > 1582 and dprec > 8 and not plaindate and model == "http://www.wikidata.org/entity/Q1985786" then
calendarmodel = "julian"
end
-- Simplified date formatting (complex date module not available)
local fdate = tostring(iso)
if bc ~= "" then
fdate = fdate .. " " .. (bcf == "BC" and "BC" or "BCE")
end
if adj == "circa" then
fdate = "c. " .. fdate
end
return fdate
end
local function hijriFormat(qualifiers, dateformat, lang)
if not (qualifiers and qualifiers.P4241) then return; end
local year, month, day
local val
local qhmonths = {["Q1952053"]=1,["Q489557"]=2, ["Q474167"] = 3, ["Q273815"] = 4, ["Q852002"] = 5, ["Q822218"] = 6,
["Q194210"] = 7, ["Q220914"] = 8, ["Q8867089"]=9, ["Q685440"]=10,["Q150853"]=11,["Q186022"]=12 }
local hmonths = {"محرم","صفر","ربيع الأول","ربيع الآخر","جمادى الأولى","جمادى الآخرة","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة"}
local hmonths_inv = {["محرم"] = 1, ["صفر"]=2, ["ربيع الأول"]=3, ["ربيع الآخر"]=4, ["جمادى الأولى"]=5, ["جمادى الآخرة"]=6, ["رجب"]=7, ["شعبان"]=8, ["رمضان"]=9, ["شوال"]=10, ["ذو القعدة"]=11, ["ذو الحجة"]=12}
for _, item in ipairs(qualifiers.P4241) do
local timeQ = item.datavalue and item.datavalue.value and item.datavalue.value.id
local hastime = false
if timeQ then
local timeQt = mw.wikibase.getBestStatements(timeQ, "P361")
for _,timeQsnak in pairs(timeQt) do
local timeType = timeQsnak.mainsnak and timeQsnak.mainsnak.datavalue and timeQsnak.mainsnak.datavalue.value and timeQsnak.mainsnak.datavalue.value.id
if timeType == "Q28892" then
local timeLableAr = mw.wikibase.getLabelByLang(timeQ, "ar")
if timeLableAr then
year = mw.ustring.match(timeLableAr, "^(%d+) *هـ$")
end
if not year then
local timeLableEn = mw.wikibase.getLabelByLang(timeQ, "en")
if timeLableEn then
year = mw.ustring.match(timeLableAr, "^(%d+) *AH$")
end
end
hastime=true
elseif qhmonths[timeType] then
month = qhmonths[timeType]
if month>0 and month<13 then
month = hmonths[month]
end
local timeLableAr = mw.wikibase.getLabelByLang(timeQ, "ar")
if timeLableAr then
day = mw.ustring.match(timeLableAr, "^(%d+) *%a+$")
end
if not day then
local timeLableEn = mw.wikibase.getLabelByLang(timeQ, "en")
if timeLableEn then
day = mw.ustring.match(timeLableAr, "^(%d+) *%a+$")
end
end
hastime=true
end
end
if not hastime then
timeQt = mw.wikibase.getBestStatements(timeQ, "P31")
if "Q125390868" == (timeQt[1].mainsnak and timeQt[1].mainsnak.datavalue and timeQt[1].mainsnak.datavalue.value and timeQt[1].mainsnak.datavalue.value.id ) then
val = mw.wikibase.getLabelByLang(timeQ, "ar")
month, year = mw.ustring.match(val, "^(%a[%a ]+%a) *(%d+) *هـ?$")
end
end
end
end
if year then
if dateformat == "y" or not month then
return year;
elseif day and month then
return day .. ' ' .. month .. ' ' .. year;
elseif month then
return month .. ' ' .. year;
end
end
return nil;
end
local function sourced(claim)
if claim.references then
for kr, vr in pairs(claim.references) do
local ref = mw.wikibase.renderSnaks(vr.snaks)
if not ref:find("Wiki") then
return true
end
end
end
end
local function linkedItem(id, args)
local linkprefix = (args.linkprefix or ""):gsub('"', '')
local lpostfix = (args.lpostfix or ""):gsub('"', '')
local prefix = (args.prefix or ""):gsub('"', '')
local postfix = (args.postfix or ""):gsub('"', '')
local wikilinkprefix = (args.wikilinkprefix or ""):gsub('"', '')
local dtxt = args.dtxt
local uselabel = parseParam( args.uselabel, true)
local langs = (args.langs and #args.langs>0) and args.langs or { args.lang }
local disp
local sitelink = mw.wikibase.getSitelink(id, args.linksproject)
local label, islabel
if dtxt then
label, islabel = dtxt, true
else
label, islabel = labelOrId(id, langs)
end
if sitelink then
if not uselabel then
local pos = sitelink:find(":") or 0
local slink = sitelink
if pos > 0 then
local pfx = sitelink:sub(1,pos-1)
if mw.site.namespaces[pfx] then
slink = sitelink:sub(pos+1)
end
end
slink = slink:gsub("%s%(.+%)$", ""):gsub(",.+$", "")
if label:find("^%u") then
label = slink:gsub("^(%l)", string.upper)
else
label = slink:gsub("^(%u)", string.lower)
end
end
disp = "[[" .. wikilinkprefix .. sitelink .. lpostfix .. "|" .. prefix .. label .. postfix .. "]]"
elseif islabel then
disp = prefix .. label .. postfix
else
disp = prefix .. label .. postfix .. i18n.missinginfocat
end
return disp
end
local function rendersnak(propval, args, linked, lpre, lpost, pre, post, unitabbr, filter)
lpre = lpre or ""
lpost = lpost or ""
pre = pre or ""
post = post or ""
args.lang = args.lang or (args.langs and args.langs[1]) or findLang();
local langs = (args.langs and #args.langs>0) and args.langs or {args.lang }
local snak = propval.mainsnak or propval
local dtype = snak.datatype
local dv = snak.datavalue
dv = dv and dv.value
local val, mlt
local namedas;
namedas = propval.qualifiers and propval.qualifiers.P1932 and propval.qualifiers.P1932[1].datavalue and propval.qualifiers.P1932[1].datavalue.value or nil
args.dtxt = namedas
if propval.rank and not args.reqranks[propval.rank] then
return nil
elseif snak.snaktype == "somevalue" then
val = namedas or i18n["Unknown"]
elseif snak.snaktype == "novalue" then
-- return nothing
elseif dtype == "wikibase-item" then
local qnumber = dv.id
if linked then
val = linkedItem(qnumber, args)
else
if namedas then
val = pre .. namedas .. post
else
local label, islabel = labelOrId(qnumber, langs)
val = pre .. label .. post
end
end
elseif dtype == "time" then
if args.hijri then
val = hijriFormat(propval.qualifiers, args.df, args.lang)
else
val = dateFormat(dv.time, dv.precision, args.df, args.bc, args.plaindate, propval.qualifiers, args.lang, "", dv.calendarmodel)
end
elseif dtype == "commonsMedia" or dtype == "external-id" or dtype == "string" or dtype == "url" then
if (lpre == "" or lpre == ":") and lpost == "" then
val = pre .. dv .. post
elseif dtype == "external-id" then
val = "[" .. lpre .. dv .. lpost .. " " .. pre .. dv .. post .. "]"
else
val = "[[" .. lpre .. dv .. lpost .. "|" .. pre .. dv .. post .. "]]"
end
elseif dtype == "quantity" then
local amount = tonumber(dv.amount) or i18n["NaN"]
local unit = ""
local unitqid = string.match(dv.unit, "(Q%d+)")
if filter and unitqid ~= filter then return nil end
if unitqid then
local uname = labelOrId(unitqid, langs) or ""
if uname ~= "" then unit = " " .. uname end
end
val = tostring(amount) .. unit
elseif dtype == "globe-coordinate" then
local lat, long, prec = dv.latitude, dv.longitude, dv.precision
local show = (args.show or ""):lower()
if show == "lat" then
val = decimalPrecision(lat, prec)
elseif show == "lon" then
val = decimalPrecision(long, prec)
elseif show == "longlat" then
val = decimalPrecision(long, prec) .. ", " .. decimalPrecision(lat, prec)
else
local ns = lat < 0 and "S" or "N"
local ew = long < 0 and "W" or "E"
if lat < 0 then lat = -lat end
if long < 0 then long = -long end
val = decimalPrecision(lat, prec) .. "°" .. ns .. " " .. decimalPrecision(long, prec) .. "°" .. ew
end
elseif dtype == "monolingualtext" then
val = pre .. dv.text .. post
mlt = dv.language
else
val = "unknown data type: " .. dtype
end
return val, mlt
end
local function assembleoutput(out, args, entityID, propertyID)
local sorted = parseParam(args.sorted, false)
local noicon = parseParam(args.noicon, false)
local list = args.list or ""
local separator = args.sep or ""
separator = string.gsub(separator, '"', '')
if separator == "" then
local rtl_lang = {ar = true, fa = true, ur = true, ku = true, he = true}
separator = rtl_lang[args.lang] and i18n["list separator-ar"] or i18n["list separator"]
end
local strout
if #out > 0 then
if sorted then table.sort(out) end
if list == "" then
strout = table.concat(out, separator)
elseif list:lower() == "prose" then
strout = mw.text.listToText(out)
else
strout = mw.getCurrentFrame():expandTemplate{title = list, args = out}
end
else
strout = nil
end
return strout
end
local function propertyvalueandquals(objproperty, args, qualID)
-- needs this style of declaration because it's re-entrant
-- onlysourced is a boolean passed to return only values sourced to other than Wikipedia
-- if nothing or an empty string is passed set it true
local onlysrc = parseParam(args.onlysourced, false)
-- linked is a a boolean that enables the link to a local page via sitelink
-- if nothing or an empty string is passed set it true
local linked = parseParam(args.linked, true)
-- prefix is a string that may be nil, empty (""), or a string of characters
-- this is prefixed to each value
-- useful when when multiple values are returned
-- any double-quotes " are stripped out, so that spaces may be passed
local prefix = (args.prefix or ""):gsub('"', '')
-- postfix is a string that may be nil, empty (""), or a string of characters
-- this is postfixed to each value
-- useful when when multiple values are returned
-- any double-quotes " are stripped out, so that spaces may be passed
local postfix = (args.postfix or ""):gsub('"', '')
-- linkprefix is a string that may be nil, empty (""), or a string of characters
-- this creates a link and is then prefixed to each value
-- useful when when multiple values are returned and indirect links are needed
-- any double-quotes " are stripped out, so that spaces may be passed
local linkprefix = (args.linkprefix or ""):gsub('"', '')
-- linkpostfix is a string that may be nil, empty (""), or a string of characters
-- this is postfixed to each value when linking is enabled with linkprefix
-- useful when when multiple values are returned
-- any double-quotes " are stripped out, so that spaces may be passed
local lpostfix = (args.linkpostfix or ""):gsub('"', '')
-- wdlinks is a boolean passed to enable links to Wikidata when no article exists
-- if nothing or an empty string is passed set it false
local wdlinks = parseParam(args.wdlinks, false)
-- unitabbr is a boolean passed to enable unit abbreviations for common units
-- if nothing or an empty string is passed set it false
local unitabbr = parseParam(args.unitabbr, false)
-- qualsonly is a boolean passed to return just the qualifiers
-- if nothing or an empty string is passed set it false
local qualsonly = parseParam(args.qualsonly, false)
-- maxvals is a string that may be nil, empty (""), or a number
-- this determines how many items may be returned when multiple values are available
-- setting it = 1 is useful where the returned string is used within another call, e.g. image
local maxvals = tonumber(args.maxvals) or 0
-- plaindate boolean
-- to disable/enable "sourcing cirumstances" or use adjectival form for the plain date
local plaindate = args.plaindate or false
args.plaindate = plaindate
-- allow qualifiers to have a different date format; default to year unless qualsonly is set
args.qualifierdateformat = args.qualifierdateformat or (not qualsonly and "y")
local lang = args.lang or (args.langs and args.langs[1]) or findLang()
-- qualID is a string list of wanted qualifiers or "ALL"
qualID = qualID or ""
-- capitalise list of wanted qualifiers and substitute "DATES"
qualID = qualID:upper():gsub("DATES", "P580, P582")
local allflag = (qualID == "ALL")
-- create table of wanted qualifiers as key
local qwanted = {}
-- create sequence of wanted qualifiers
local qorder = {}
for q in mw.text.gsplit(qualID, "%p") do -- split at punctuation and iterate
local qtrim = mw.text.trim(q)
if qtrim ~= "" then
qwanted[mw.text.trim(q)] = true
qorder[#qorder+1] = qtrim
end
end
-- qsep is the output separator for rendering qualifier list
local qsep = (args.qsep or ""):gsub('"', '')
-- qargs are the arguments to supply to assembleoutput()
local qargs = {
["onlysourced"] = "false",
["linked"] = tostring(linked),
["prefix"] = args.qprefix,
["postfix"] = args.qpostfix,
["linkprefix"] = args.qlinkprefix,
["linkpostfix"] = args.qlinkpostfix,
["wdlinks"] = "false",
["unitabbr"] = tostring(unitabbr),
["maxvals"] = 0,
["sorted"] = tostring(args.qsorted),
["noicon"] = "true",
["list"] = args.qlist,
["sep"] = qsep,
-- ["langobj"] = args.langobj,
["lang"] = lang,
langs = args.langs,
["df"] = args.qualifierdateformat,
["shortname"] = parseParam(args.qshortname, false),
}
-- all proper values of a Wikidata property will be the same type as the first
-- qualifiers don't have a mainsnak, properties do
--#Modified line
local datatype = objproperty[1].datatype or (objproperty[1].mainsnak and objproperty[1].mainsnak.datatype)
-- out[] holds the a list of returned values for this property
-- mlt[] holds the language code if the datatype is monolingual text
local out = {}
local mlt = {}
for k, v in ipairs(objproperty) do
local hasvalue = true
if (onlysrc and not sourced(v)) then
-- no value: it isn't sourced when onlysourced=true
hasvalue = false
else
local val, lcode = rendersnak(v, args, linked, linkprefix, lpostfix, prefix, postfix, unitabbr)
if not val then
hasvalue = false -- rank doesn't match
elseif qualsonly and qualID then
-- suppress value returned: only qualifiers are requested
else
out[#out+1], mlt[#out+1] = val, lcode
end
end
-- See if qualifiers are to be returned:
local snak = v.mainsnak or v
if hasvalue and v.qualifiers and qualID ~= "" and snak.snaktype~="novalue" then
-- collect all wanted qualifier values returned in qlist, indexed by propertyID
local qlist = {}
local timestart, timeend = "", ""
-- loop through qualifiers
for k1, v1 in pairs(v.qualifiers) do
if allflag or qwanted[k1] then
if k1 == "P1326" then
local ts = v1[1].datavalue.value.time
local dp = v1[1].datavalue.value.precision
qlist[k1] = dateFormat(ts, dp, args.qualifierdateformat, args.bc, plaindate, "", lang, "before")
elseif k1 == "P1319" then
local ts = v1[1].datavalue.value.time
local dp = v1[1].datavalue.value.precision
qlist[k1] = dateFormat(ts, dp, args.qualifierdateformat, args.bc, plaindate, "", lang, "after")
elseif k1 == "P580" then
timestart = propertyvalueandquals(v1, qargs)[1] or "" -- treat only one start time as valid
elseif k1 == "P582" then
timeend = propertyvalueandquals(v1, qargs)[1] or "" -- treat only one end time as valid
else
local q = assembleoutput(propertyvalueandquals(v1, qargs), qargs)
-- we already deal with circa via 'sourcing circumstances' if the datatype was time
-- circa may be either linked or unlinked *** internationalise later ***
if datatype ~= "time" or q ~= "circa" and not (type(q) == "string" and q:find("circa]]")) then
qlist[k1] = q
end
end
end -- of test for wanted
end -- of loop through qualifiers
-- set date separator
local t = timestart .. timeend
-- *** internationalise date separators later ***
local dsep = "–"
if t:find("%s") or t:find(" ") then dsep = " – " end
-- set the order for the list of qualifiers returned; start time and end time go last
if next(qlist) then
local qlistout = {}
if allflag then
for k2, v2 in pairs(qlist) do
qlistout[#qlistout+1] = v2
end
else
for i2, v2 in ipairs(qorder) do
qlistout[#qlistout+1] = qlist[v2]
end
end
if t ~= "" then
qlistout[#qlistout+1] = timestart .. dsep .. timeend
end
local qstr = assembleoutput(qlistout, qargs)
if qualsonly then
out[#out+1] = qstr
else
out[#out] = out[#out] .. " (" .. qstr .. ")"
end
elseif t ~= "" then
if qualsonly then
if timestart == "" then
out[#out+1] = timeend
elseif timeend == "" then
out[#out+1] = timestart
else
out[#out+1] = timestart .. dsep .. timeend
end
else
out[#out] = out[#out] .. " (" .. timestart .. dsep .. timeend .. ")"
end
end
end -- of test for qualifiers wanted
if maxvals > 0 and #out >= maxvals then break end
end -- of for each value loop
-- we need to pick one value to return if the datatype was "monolingualtext"
-- if there's only one value, use that
-- otherwise look through the fallback languages for a match
if datatype == "monolingualtext" and #out >1 then
lang = mw.text.split( lang, '-', true )[1]
local fbtbl = mw.language.getFallbacksFor( lang )
table.insert( fbtbl, 1, lang )
local bestval = ""
local found = false
for idx1, lang1 in ipairs(fbtbl) do
for idx2, lang2 in ipairs(mlt) do
if (lang1 == lang2) and not found then
bestval = out[idx2]
found = true
break
end
end -- loop through values of property
end -- loop through fallback languages
if found then
-- replace output table with a table containing the best value
out = { bestval }
else
-- more than one value and none of them on the list of fallback languages
-- sod it, just give them the first one
out = { out[1] }
end
end
return out
end
local function mergeOptions(defaults, overrides)
overrides = overrides or {}
defaults = defaults or {}
local result = {}
for k, v in pairs(defaults) do
result[k] = v
end
for k, v in pairs(overrides) do
result[k] = v
if k == 'rank' then
result.reqranks = setRanks(v)
end
end
return result
end
local function filterbyqualifier(statements,qual,value)
local filtered_statements = {}
for _, statement in ipairs(statements) do
if statement.qualifiers and statement.qualifiers[qual] then
if '*' == value then
table.insert(filtered_statements, statement)
else
for _, q in ipairs(statement.qualifiers[qual]) do
if q.datavalue and (rawValue(q.datavalue) == value) then
table.insert(filtered_statements, statement)
break
end
end
end
end
end
return filtered_statements
end
local function orderbyrank(statements)
local pref_count = 0
local sorted_statements = {}
for k,v in ipairs(statements) do
if v.rank == 'preferred' then
pref_count = pref_count + 1
table.insert(sorted_statements, pref_count, v)
else
table.insert(sorted_statements, v)
end
end
return sorted_statements
end
-------------------------------------------------------------------------------
-- helper class functions
-------------------------------------------------------------------------------
local function class()
local c = {}
c.__index = c
function c:new(...)
local o = setmetatable({}, c)
if o.init then o:init(...) end
return o
end
return c
end
-------------------------------------------------------------------------------
-- Statement Class Definition
-------------------------------------------------------------------------------
local WdStatement = class()
function WdStatement:getValue(opts)
local mergedOpts = mergeOptions(self.parent.options, opts)
local statement = self._statement
if not statement then
return nil
end
local qualID = mw.text.trim(mergedOpts.qual or ""):upper()
if qualID == "" then qualID = nil end
local out = propertyvalueandquals({statement}, mergedOpts, qualID)
return assembleoutput(out, mergedOpts, self.parent.qid, self.pid)
end
function WdStatement:getRawValue()
if not self._statement then
return nil
end
local datasnak = self._statement.mainsnak or self._statement
if datasnak.snaktype == "value" then
return rawValue(datasnak.datavalue)
else
return datasnak.snaktype
end
end
function WdStatement:getRawQual(qualID)
local ret = {}
local s = self._statement
if s.qualifiers and s.qualifiers[qualID] then
for _,q in pairs(s.qualifiers[qualID]) do
if q.snaktype == "value" then
table.insert(ret, rawValue(q.datavalue))
else
table.insert(ret, q.snaktype)
end
end
end
return ret
end
-------------------------------------------------------------------------------
-- Statements Class Definition
-------------------------------------------------------------------------------
local WdStatements = class()
function WdStatements:getStatmentsTable()
return self._statements
end
function WdStatements:count()
return #self._statements
end
function WdStatements:getFilters()
return self.filtered_by
end
function WdStatements:filter(filter_t)
local statements = self._statements
if #statements == 0 then return self; end
local ret = WdStatements:new()
ret.parent = self.parent
ret.filtered_by = {}
for _,v in ipairs(self.filtered_by) do
table.insert(ret.filtered_by, v)
end
local filtered_statements = {}
for k,v in pairs(filter_t) do
filtered_statements = filterbyqualifier(statements, k, v)
table.insert(ret.filtered_by, {[k] = v})
if #filtered_statements == 0 then
break;
else
statements = filtered_statements
end
end
ret._statements = filtered_statements
return ret
end
function WdStatements:getValue(opts)
local mergedOpts = mergeOptions(self.parent.options, opts)
local statements = self._statements
if not statements or #statements == 0 then
return nil
end
local qualID = mw.text.trim(mergedOpts.qual or ""):upper()
if qualID == "" then qualID = nil end
local out = propertyvalueandquals(statements, mergedOpts, qualID)
return assembleoutput(out, mergedOpts, self.parent.qid, self.pid)
end
function WdStatements:getQual(qualID, opts)
local mergedOpts = mergeOptions(self.parent.options, opts)
local statements = self._statements
if not statements or #statements == 0 then
return nil
end
local out = propertyvalueandquals(statements, mergedOpts, qualID)
return assembleoutput(out, mergedOpts, self.parent.qid, self.pid)
end
function WdStatements:getRawQual(qualID)
local ret = {}
for _,s in pairs(self._statements) do
local qual_t = {}
if s.qualifiers and s.qualifiers[qualID] then
for _,q in pairs(s.qualifiers[qualID]) do
if q.snaktype == "value" then
table.insert(qual_t, rawValue(q.datavalue))
else
table.insert(qual_t, q.snaktype)
end
end
end
table.insert(ret,qual_t)
end
return ret
end
function WdStatements:getRawValue()
local ret = {}
for _,v in pairs(self._statements) do
local datasnak = v.mainsnak or v
if datasnak.snaktype=="value" then
table.insert(ret, rawValue(datasnak.datavalue))
else
table.insert(ret, datasnak.snaktype)
end
end
return ret
end
function WdStatements:get(index)
local ret = WdStatement:new()
ret.parent = self.parent
ret.filtered_by = ret.filtered_by
ret._statement = self._statements[index]
ret.pid = ret.pid
return ret
end
function WdStatements:iter()
local i = 0
local n = self._statements and #self._statements or 0
return function()
i = i + 1
if i <= n then
return i, self:get(i)
end
end
end
function WdStatements:ipairs()
return self:iter()
end
function WdStatements:getBestOne()
local orderd_statements = orderbyrank(self._statements)
local ret = WdStatement:new() --setmetatable({}, WdStatement)
ret.parent = self.parent
ret.filtered_by = ret.filtered_by
ret._statement = orderd_statements[1]
ret.pid = ret.pid
return ret
end
-------------------------------------------------------------------------------
-- WdItem Class Definition
-------------------------------------------------------------------------------
local WdItem = class()
function WdItem:__tostring()
return "WdItem: " .. (self.qid or "no QID")
end
function WdItem:UpdateOptions(in_newOpts)
local newOpts = in_newOpts or {}
for k, v in pairs(newOpts or {}) do
self.options[k] = v
end
-- Set default options
if newOpts.lang then
self.options.lang = findLang(newOpts.lang)
end
if (newOpts.lang and not self.options.lang) or
(not newOpts.lang and newOpts.langs and #newOpts.langs > 0) then
for _, l in ipairs(newOpts.langs) do
self.options.lang = findLang(l)
if self.options.lang then
break;
end
end
end
if not self.options.lang then
self.options.lang = findLang();
end
if newOpts.rank then
self.options.reqranks = setRanks(self.options.rank)
end
if not self.options.reqranks then
self.options.reqranks = setRanks('preferred normal')
end
end
function WdItem:init(qid, options,snak)
if qid == "" then qid = nil; end
self.qid = qid
self.snak = snak
self.options = options or {}
self:UpdateOptions(options)
return self
end
function WdItem:newFromSnaks(snakTable, options)
local self = WdItem:new(nil, options or {}, snakTable)
self:UpdateOptions(options)
return self
end
function WdItem:setOptions(newOpts)
self:UpdateOptions(newOpts)
end
function WdItem:getStatements(pid, opts)
local mergedOpts = mergeOptions(self.options, opts or {})
local statements
local ret = WdStatements:new()
ret.parent = self
ret.filtered_by = {}
ret._statements = {}
ret.pid = pid
if self.snak and self.snak[pid] then
statements = self.snak[pid]
elseif not self.qid or not mw.wikibase then
statements = {}
elseif mergedOpts.reqranks and mergedOpts.reqranks.best then
statements = mw.wikibase.getBestStatements(self.qid, pid) or {}
else
statements = mw.wikibase.getAllStatements(self.qid, pid) or {}
local filtered_statements = {}
if not (mergedOpts.reqranks.deprecated == true and mergedOpts.reqranks.preferred == true and mergedOpts.reqranks.normal == true) then
for _,s in pairs(statements) do
if mergedOpts.reqranks[s.rank] then
table.insert(filtered_statements,s)
end
end
end
statements = filtered_statements
end
if #statements > 0 and mergedOpts.qualifiedaspossible and mergedOpts.qualifiedaspossible ~= {} then
local filtered_statements = {}
for q,qv in pairs(mergedOpts.qualifiedaspossible) do
filtered_statements = filterbyqualifier(statements, q, qv)
if #filtered_statements > 0 then
table.insert(ret.filtered_by, {[q] = qv})
statements = filtered_statements
end
end
end
if #statements > 0 and mergedOpts.qualified and mergedOpts.qualified ~= {} then
for q,qv in pairs(mergedOpts.qualified) do
statements = filterbyqualifier(statements, q, qv)
table.insert(ret.filtered_by, {[q] = qv})
if #statements == 0 then break; end
end
end
ret._statements = statements
return ret
end
function WdItem:getValue(pid, opts)
local mergedOpts = mergeOptions(self.options, opts)
local statements = self:getStatements(pid, mergedOpts):getStatmentsTable()
if not statements or #statements == 0 then
return nil
end
local qualID = mw.text.trim(mergedOpts.qual or ""):upper()
if qualID == "" then qualID = nil end
local out = propertyvalueandquals(statements, mergedOpts, qualID)
return assembleoutput(out, mergedOpts, self.qid, pid)
end
function WdItem:getValueFromSnaks(pid, opts)
if not self.snak or not self.snak[pid] then
return nil
end
local mergedOpts = mergeOptions(self.options, opts)
local props = self.snak[pid]
local out = propertyvalueandquals(props, mergedOpts)
return assembleoutput(out, mergedOpts, nil, pid)
end
function WdItem:getPropertyIDsTable(pid, opts)
local mergedOpts = mergeOptions(self.options, opts)
mergedOpts.noicon = tostring(parseParam(mergedOpts.noicon or "", true))
local statements = self:getStatements(pid, opts)
if not statements or #statements == 0 then return {} end
local onlysrc = parseParam(mergedOpts.onlysourced or mergedOpts.onlysourced, true)
local maxvals = tonumber(mergedOpts.maxvals) or 0
local out = {}
for i, v in ipairs(statements) do
local snak = v.mainsnak or v
if (snak.datatype == "wikibase-item")
and (v.rank and mergedOpts.reqranks[v.rank:sub(1, 1)])
and (snak.snaktype == "value")
and (sourced(v) or not onlysrc) then
out[#out+1] = snak.datavalue.value.id
end
if maxvals > 0 and #out >= maxvals then break end
end
return out
end
function WdItem:getPropertyIDs(pid, opts)
local out = WdItem:getPropertyIDsTable(pid, opts)
if #out == 0 then
return nil
end
return assembleoutput(out, mergeOptions(self.options, opts), self.qid, pid)
end
function WdItem:getPropOfProp(prop1, prop2, opts)
local mergedOpts = mergeOptions(self.options, opts)
if not self.qid then return nil end
local maxvals = tonumber(mergedOpts.maxvals) or 0
local prop1Values = self:getStatements(prop1, opts):getRawValue()
if #prop1Values == 0 then return nil end
local out = {}
for k, qid2 in ipairs(prop1Values) do
local item2 = WdItem:new(qid2, mergedOpts)
local prop2Values = item2:getStatements(prop2):getStatmentsTable()
if prop2Values and prop2Values[1] then
local out2 = propertyvalueandquals(prop2Values, mergedOpts, mergedOpts.qual)
out[#out+1] = assembleoutput(out2, mergedOpts, qid2, prop2)
end
if maxvals > 0 and #out >= maxvals then break end
end
return assembleoutput(out, mergedOpts, self.qid, prop1)
end
function WdItem:getRawPropOfProp(prop1, prop2, opts)
local mergedOpts = mergeOptions(self.options, opts)
if not self.qid then return nil end
local prop1Values = self:getStatements(prop1, opts):getRawValue()
if #prop1Values == 0 then return nil end
local out = {}
for k, qid2 in ipairs(prop1Values) do
local item2 = WdItem:new(qid2, mergedOpts)
local prop2Values = item2:getStatements(prop2):getRawValue()
for _,val in ipairs(prop2Values) do
if not in_array(val,out) then
table.insert(out,val)
end
end
end
return out
end
function WdItem:getLangOfProp(pid)
if not pid then return {}; end
local out = {}
local props = self.snak and self.snak[pid] or (self.qid and mw.wikibase.getAllStatements(self.qid, pid)) or {}
for _, v in ipairs(props) do
local datasnak = v.mainsnak or v
if datasnak.datatype == "monolingualtext" and datasnak.datavalue then
out[#out + 1] = datasnak.datavalue.value.language
end
end
return out
end
function WdItem:followQid(props, all)
all = parseParam(all, false)
props = (props or ""):upper()
if not self.qid then return nil end
if props == "" then return self.qid end
local out = {}
for p in mw.text.gsplit(props, "%p") do
p = mw.text.trim(p)
for i, v in ipairs(mw.wikibase.getBestStatements(self.qid, p)) do
local linkedid = v.mainsnak.datavalue and v.mainsnak.datavalue.value and v.mainsnak.datavalue.value.id
if linkedid then
if all then
out[#out+1] = linkedid
else
return WdItem.WdItem:new(linkedid)
end
end
end
end
if #out > 0 then
return table.concat(out, " ")
else
return self
end
end
-------------------------------------------------------------------------------
-- Public API - WdItem Constructors
-------------------------------------------------------------------------------
p.WdItem = WdItem
function p.newItem(qid, opts, snak )
return WdItem:new(qid, opts, snak)
end
function p.newSnakItem(snakTable, opts)
return WdItem:newFromSnaks(snakTable, opts)
end
return p
sl8ytq6f4wnzbkh2177hkyqqwswied1
1097658
1097632
2026-07-27T20:32:13Z
حبيشان
31560
1097658
Scribunto
text/plain
-- Module: WdItem
-- Object-oriented Wikidata access module for Lua
-- Refactored from WikidataIB for direct Lua usage
require("strict")
local p = {}
-- i18n configuration
local i18n = {
["errors"] = {
["property-not-found"] = "الخاصية غير موجودة.",
["entity-not-found"] = "الكيان على ويكي بيانات غير موجود.",
["unknown-claim-type"] = "نوع الادعاء غير معروف.",
["local-article-not-found"] = "المعرف متاح على ويكي بيانات، ولكن المقال غير متاح على ويكيبيديا",
},
["months"] = {
"January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
},
["Unknown"] = "Unknown",
["NaN"] = "Not a number",
["missinginfocat"] = "[[تصنيف:Articles with missing Wikidata information]]",
["list separator"] = ", ",
["list separator-ar"] = "، ",
}
-- Date precision constants
local dp = {
[6] = "millennium",
[7] = "century",
[8] = "decade",
[9] = "year",
[10] = "month",
[11] = "day",
}
-- local options_aliases = {
-- ["osd"] = "onlysourced",
-- ["wdl"] = "wdlinks",
-- ["uabbr"] = "unitabbr",
-- ["qo"] = "qualsonly",
-- ["lp"] = "linkprefix",
-- ["lprefix"] = "linkprefix",
-- ["qlp"] = "qlinkprefix",
-- ["sn"] = "shortname",
-- ["uselbl"] = "uselabel",
-- ["pd"] = "plaindate",
-- ["qdf"] = "qualifierdateformat",
-- ["df"] = "qualifierdateformat",
-- ["qsn"] = "qshortname"
-- }
-- setmetatable(options_aliases, { __index = function(t, k) return k end })
-------------------------------------------------------------------------------
-- Internal helper functions
-------------------------------------------------------------------------------
local function in_array( needle, haystack )
if needle == nil then
return false
end
for n, v in ipairs( haystack ) do
if v == needle then
return n
end
end
return false
end
local function findLang(langcode)
local langobj
langcode = mw.text.trim(langcode or "")
if langcode ~= "" then
if mw.language.isKnownLanguageTag(langcode) then
langobj = mw.language.new(langcode)
end
else
langobj = mw.language.getContentLanguage()
end
return langobj and langobj.code
end
local function parseParam(param, default)
if param == nil then
return default
end
return param
end
local function setRanks(rank)
rank = (rank or ""):lower()
local ranks = {}
for w in string.gmatch(rank, "%a+") do
if w == "best" or w == "preferred" or w == "normal" or w == "deprecated" then
ranks[w] = true
end
end
if ranks.best or not next(ranks) then
ranks.preferred = true
ranks.normal = true
ranks.deprecated = false
end
return ranks
end
local function labelOrId(id, lang_t)
local langs = lang_t or {}
local label
for _,lang in ipairs(langs) do
label = mw.wikibase.getLabelByLang(id, lang)
if label ~= "" then
break;
end
end
label = label or mw.wikibase.getLabel(id)
if label then
return mw.text.nowiki(label), true
else
return id, false
end
end
local function roundto(x, sf)
if x == 0 then return 0 end
local s = 1
if x < 0 then
x = -x
s = -1
end
if sf < 1 then sf = 1 end
local p = 10 ^ (math.floor(math.log10(x)) - sf + 1)
x = math.floor(x / p + 0.5) * p * s
if x == math.floor(x) then x = math.floor(x) end
return x
end
local function decimalPrecision(x, p)
local s = 1
if x < 0 then
x = -x
s = -1
end
if not tonumber(p) then p = 1e-4
elseif p > 1 then p = 1
elseif p < 1e-6 then p = 1e-6
else p = 10 ^ math.floor(math.log10(p))
end
x = math.floor(x / p + 0.5) * p * s
if x == math.floor(x) then x = math.floor(x) end
if math.abs(x) < 1e-4 then x = string.format("%f", x) end
return x
end
local function decimalToDMS(x, p)
if not tonumber(p) then p = 1e-4 end
local d = math.floor(x)
local ms = (x - d) * 60
if p > 0.5 then
if ms > 30 then d = d + 1 end
ms = 0
end
local m = math.floor(ms)
local s = (ms - m) * 60
if p > 0.008 then
if s > 30 then m = m +1 end
s = 0
elseif p > 0.00014 then
s = math.floor(s + 0.5)
elseif p > 0.000014 then
s = math.floor(10 * s + 0.5) / 10
elseif p > 0.0000014 then
s = math.floor(100 * s + 0.5) / 100
else
s = math.floor(1000 * s + 0.5) / 1000
end
return d, m, s
end
local function rawValue(dataValue)
if dataValue.type == "string" then
return dataValue.value
elseif dataValue.type == "wikibase-entityid" then
return dataValue.value and dataValue.value.id
elseif dataValue.type == "monolingualtext" then
return dataValue.value.text
elseif dataValue.type == "quantity" then
return tonumber(dataValue.value.amount)
elseif dataValue.type == 'time' then
return dataValue.value.time
elseif dataValue.type == "globecoordinate" then
return dataValue.value.latitude .. '/' .. dataValue.value.longitude
end
end
local function compareValue(dataValue, strValue)
return rawValue(dataValue) == strValue
end
local function dateFormat(timestamp, dprec, df, bcf, plaindate, qualifiers, lang, adj, model)
df = (df or ""):lower()
if df == "ymd" then
if timestamp:sub(1,1) == "+" then
return timestamp:sub(2,11)
else
local yr = tonumber(timestamp:sub(2,5)) - 1
yr = ("000" .. yr):sub(-4)
if yr ~= "0000" then yr = "-" .. yr end
return yr .. timestamp:sub(6,11)
end
end
timestamp = timestamp:gsub("%-00%-00T", "-01-01T")
dprec = dprec or 11
if df == "y" and dprec > 9 then dprec = 9 end
dprec = dprec>11 and 11 or dprec
dprec = dprec<6 and 6 or dprec
bcf = (bcf or ""):upper()
plaindate = (plaindate or ""):sub(1,1):lower()
if plaindate == "" or plaindate == "n" or plaindate == "f" or plaindate == "0" then plaindate = false end
lang = lang or findLang()
adj = adj or ""
local bc = timestamp:sub(1, 1)=="-" and "BC" or ""
local year, month, day = timestamp:match("[+-](%d*)-(%d*)-(%d*)T")
local iso = tonumber(year)
if df == 'tt' then
return {
year = tonumber(timestamp:match("^([+-]%d*)-")) or 0,
month = tonumber(month) or 0,
day = tonumber(day) or 0
}
end
if dprec == 6 then iso = math.floor( (iso - 1) / 1000 ) + 1 end
if dprec == 7 then iso = math.floor( (iso - 1) / 100 ) + 1 end
if dprec == 8 then iso = math.floor( iso / 10 ) .. "0" end
if dprec == 10 then iso = year .. "-" .. month end
if dprec == 11 then iso = year .. "-" .. month .. "-" .. day end
local sc = not plaindate and qualifiers and qualifiers.P1480
if sc then
for k1, v1 in pairs(sc) do
if v1.datavalue and v1.datavalue.value.id == "Q5727902" then
adj = "circa"
break
end
end
end
local calendarmodel = ""
if tonumber(year) > 1582 and dprec > 8 and not plaindate and model == "http://www.wikidata.org/entity/Q1985786" then
calendarmodel = "julian"
end
-- Simplified date formatting (complex date module not available)
local fdate = tostring(iso)
if bc ~= "" then
fdate = fdate .. " " .. (bcf == "BC" and "BC" or "BCE")
end
if adj == "circa" then
fdate = "c. " .. fdate
end
return fdate
end
local function hijriFormat(qualifiers, dateformat, lang)
if not (qualifiers and qualifiers.P4241) then return; end
local year, month, monthno, day
local val
local qhmonths = {["Q1952053"]=1,["Q489557"]=2, ["Q474167"] = 3, ["Q273815"] = 4, ["Q852002"] = 5, ["Q822218"] = 6,
["Q194210"] = 7, ["Q220914"] = 8, ["Q8867089"]=9, ["Q685440"]=10,["Q150853"]=11,["Q186022"]=12 }
local hmonths = {"محرم","صفر","ربيع الأول","ربيع الآخر","جمادى الأولى","جمادى الآخرة","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة"}
local hmonths_inv = {["محرم"] = 1, ["صفر"]=2, ["ربيع الأول"]=3, ["ربيع الآخر"]=4, ["جمادى الأولى"]=5, ["جمادى الآخرة"]=6, ["رجب"]=7, ["شعبان"]=8, ["رمضان"]=9, ["شوال"]=10, ["ذو القعدة"]=11, ["ذو الحجة"]=12}
for _, item in ipairs(qualifiers.P4241) do
local timeQ = item.datavalue and item.datavalue.value and item.datavalue.value.id
local hastime = false
if timeQ then
local timeQt = mw.wikibase.getBestStatements(timeQ, "P361")
for _,timeQsnak in pairs(timeQt) do
local timeType = timeQsnak.mainsnak and timeQsnak.mainsnak.datavalue and timeQsnak.mainsnak.datavalue.value and timeQsnak.mainsnak.datavalue.value.id
if timeType == "Q28892" then
local timeLableAr = mw.wikibase.getLabelByLang(timeQ, "ar")
if timeLableAr then
year = mw.ustring.match(timeLableAr, "^(%d+) *هـ$")
end
if not year then
local timeLableEn = mw.wikibase.getLabelByLang(timeQ, "en")
if timeLableEn then
year = mw.ustring.match(timeLableAr, "^(%d+) *AH$")
end
end
hastime=true
elseif qhmonths[timeType] then
monthno = qhmonths[timeType]
if monthno>0 and monthno<13 then
month = hmonths[monthno]
end
local timeLableAr = mw.wikibase.getLabelByLang(timeQ, "ar")
if timeLableAr then
day = mw.ustring.match(timeLableAr, "^(%d+) *%a+$")
end
if not day then
local timeLableEn = mw.wikibase.getLabelByLang(timeQ, "en")
if timeLableEn then
day = mw.ustring.match(timeLableAr, "^(%d+) *%a+$")
end
end
hastime=true
end
end
if not hastime then
timeQt = mw.wikibase.getBestStatements(timeQ, "P31")
if "Q125390868" == (timeQt[1].mainsnak and timeQt[1].mainsnak.datavalue and timeQt[1].mainsnak.datavalue.value and timeQt[1].mainsnak.datavalue.value.id ) then
val = mw.wikibase.getLabelByLang(timeQ, "ar")
month, year = mw.ustring.match(val, "^(%a[%a ]+%a) *(%d+) *هـ?$")
monthno = hmonths_inv[month]
end
end
end
end
if year then
if dateformat == "tt" then
return {year = tonumber(year) or 0,
month = monthno or 0,
day = tonumber(day) or 0,
monthname = month or ''}
elseif dateformat == "y" or not month then
return year;
elseif day and month then
if dateformat == 'ymd' then
return string.format("%04d-%02d-%02d", tonumber(year), monthno, tonumber(day));
else
return day .. ' ' .. month .. ' ' .. year;
end
elseif month then
return month .. ' ' .. year;
end
end
return nil;
end
local function rawValueOrDF (statement, opt)
local datasnak = statement.mainsnak or statement
if (datasnak.datavalue and datasnak.datavalue.type == 'time') and (opt.hijri or opt.df) then
if opt.hijri then
return statement.qualifiers and hijriFormat(statement.qualifiers, opt.df) or nil
elseif opt.df then
local dv = datasnak.datavalue.value
return dateFormat(dv.time, dv.precision, opt.df, opt.bc, opt.plaindate, statement.qualifiers, opt.lang, "", dv.calendarmodel)
end
else
return rawValue(datasnak.datavalue)
end
end
local function sourced(claim)
if claim.references then
for kr, vr in pairs(claim.references) do
local ref = mw.wikibase.renderSnaks(vr.snaks)
if not ref:find("Wiki") then
return true
end
end
end
end
local function linkedItem(id, args)
local linkprefix = (args.linkprefix or ""):gsub('"', '')
local lpostfix = (args.lpostfix or ""):gsub('"', '')
local prefix = (args.prefix or ""):gsub('"', '')
local postfix = (args.postfix or ""):gsub('"', '')
local wikilinkprefix = (args.wikilinkprefix or ""):gsub('"', '')
local dtxt = args.dtxt
local uselabel = parseParam( args.uselabel, true)
local langs = (args.langs and #args.langs>0) and args.langs or { args.lang }
local disp
local sitelink = mw.wikibase.getSitelink(id, args.linksproject)
local label, islabel
if dtxt then
label, islabel = dtxt, true
else
label, islabel = labelOrId(id, langs)
end
if sitelink then
if not uselabel then
local pos = sitelink:find(":") or 0
local slink = sitelink
if pos > 0 then
local pfx = sitelink:sub(1,pos-1)
if mw.site.namespaces[pfx] then
slink = sitelink:sub(pos+1)
end
end
slink = slink:gsub("%s%(.+%)$", ""):gsub(",.+$", "")
if label:find("^%u") then
label = slink:gsub("^(%l)", string.upper)
else
label = slink:gsub("^(%u)", string.lower)
end
end
disp = "[[" .. wikilinkprefix .. sitelink .. lpostfix .. "|" .. prefix .. label .. postfix .. "]]"
elseif islabel then
disp = prefix .. label .. postfix
else
disp = prefix .. label .. postfix .. i18n.missinginfocat
end
return disp
end
local function rendersnak(propval, args, linked, lpre, lpost, pre, post, unitabbr, filter)
lpre = lpre or ""
lpost = lpost or ""
pre = pre or ""
post = post or ""
args.lang = args.lang or (args.langs and args.langs[1]) or findLang();
local langs = (args.langs and #args.langs>0) and args.langs or {args.lang }
local snak = propval.mainsnak or propval
local dtype = snak.datatype
local dv = snak.datavalue
dv = dv and dv.value
local val, mlt
local namedas;
namedas = propval.qualifiers and propval.qualifiers.P1932 and propval.qualifiers.P1932[1].datavalue and propval.qualifiers.P1932[1].datavalue.value or nil
args.dtxt = namedas
if propval.rank and not args.reqranks[propval.rank] then
return nil
elseif snak.snaktype == "somevalue" then
val = namedas or i18n["Unknown"]
elseif snak.snaktype == "novalue" then
-- return nothing
elseif dtype == "wikibase-item" then
local qnumber = dv.id
if linked then
val = linkedItem(qnumber, args)
else
if namedas then
val = pre .. namedas .. post
else
local label, islabel = labelOrId(qnumber, langs)
val = pre .. label .. post
end
end
elseif dtype == "time" then
if args.hijri then
val = hijriFormat(propval.qualifiers, args.df, args.lang)
else
val = dateFormat(dv.time, dv.precision, args.df, args.bc, args.plaindate, propval.qualifiers, args.lang, "", dv.calendarmodel)
end
elseif dtype == "commonsMedia" or dtype == "external-id" or dtype == "string" or dtype == "url" then
if (lpre == "" or lpre == ":") and lpost == "" then
val = pre .. dv .. post
elseif dtype == "external-id" then
val = "[" .. lpre .. dv .. lpost .. " " .. pre .. dv .. post .. "]"
else
val = "[[" .. lpre .. dv .. lpost .. "|" .. pre .. dv .. post .. "]]"
end
elseif dtype == "quantity" then
local amount = tonumber(dv.amount) or i18n["NaN"]
local unit = ""
local unitqid = string.match(dv.unit, "(Q%d+)")
if filter and unitqid ~= filter then return nil end
if unitqid then
local uname = labelOrId(unitqid, langs) or ""
if uname ~= "" then unit = " " .. uname end
end
val = tostring(amount) .. unit
elseif dtype == "globe-coordinate" then
local lat, long, prec = dv.latitude, dv.longitude, dv.precision
local show = (args.show or ""):lower()
if show == "lat" then
val = decimalPrecision(lat, prec)
elseif show == "lon" then
val = decimalPrecision(long, prec)
elseif show == "longlat" then
val = decimalPrecision(long, prec) .. ", " .. decimalPrecision(lat, prec)
else
local ns = lat < 0 and "S" or "N"
local ew = long < 0 and "W" or "E"
if lat < 0 then lat = -lat end
if long < 0 then long = -long end
val = decimalPrecision(lat, prec) .. "°" .. ns .. " " .. decimalPrecision(long, prec) .. "°" .. ew
end
elseif dtype == "monolingualtext" then
val = pre .. dv.text .. post
mlt = dv.language
else
val = "unknown data type: " .. dtype
end
return val, mlt
end
local function assembleoutput(out, args, entityID, propertyID)
local sorted = parseParam(args.sorted, false)
local noicon = parseParam(args.noicon, false)
local list = args.list or ""
local separator = args.sep or ""
separator = string.gsub(separator, '"', '')
if separator == "" then
local rtl_lang = {ar = true, fa = true, ur = true, ku = true, he = true}
separator = rtl_lang[args.lang] and i18n["list separator-ar"] or i18n["list separator"]
end
local strout
if #out > 0 then
if sorted then table.sort(out) end
if list == "" then
strout = table.concat(out, separator)
elseif list:lower() == "prose" then
strout = mw.text.listToText(out)
else
strout = mw.getCurrentFrame():expandTemplate{title = list, args = out}
end
else
strout = nil
end
return strout
end
local function propertyvalueandquals(objproperty, args, qualID)
-- needs this style of declaration because it's re-entrant
-- onlysourced is a boolean passed to return only values sourced to other than Wikipedia
-- if nothing or an empty string is passed set it true
local onlysrc = parseParam(args.onlysourced, false)
-- linked is a a boolean that enables the link to a local page via sitelink
-- if nothing or an empty string is passed set it true
local linked = parseParam(args.linked, true)
-- prefix is a string that may be nil, empty (""), or a string of characters
-- this is prefixed to each value
-- useful when when multiple values are returned
-- any double-quotes " are stripped out, so that spaces may be passed
local prefix = (args.prefix or ""):gsub('"', '')
-- postfix is a string that may be nil, empty (""), or a string of characters
-- this is postfixed to each value
-- useful when when multiple values are returned
-- any double-quotes " are stripped out, so that spaces may be passed
local postfix = (args.postfix or ""):gsub('"', '')
-- linkprefix is a string that may be nil, empty (""), or a string of characters
-- this creates a link and is then prefixed to each value
-- useful when when multiple values are returned and indirect links are needed
-- any double-quotes " are stripped out, so that spaces may be passed
local linkprefix = (args.linkprefix or ""):gsub('"', '')
-- linkpostfix is a string that may be nil, empty (""), or a string of characters
-- this is postfixed to each value when linking is enabled with linkprefix
-- useful when when multiple values are returned
-- any double-quotes " are stripped out, so that spaces may be passed
local lpostfix = (args.linkpostfix or ""):gsub('"', '')
-- wdlinks is a boolean passed to enable links to Wikidata when no article exists
-- if nothing or an empty string is passed set it false
local wdlinks = parseParam(args.wdlinks, false)
-- unitabbr is a boolean passed to enable unit abbreviations for common units
-- if nothing or an empty string is passed set it false
local unitabbr = parseParam(args.unitabbr, false)
-- qualsonly is a boolean passed to return just the qualifiers
-- if nothing or an empty string is passed set it false
local qualsonly = parseParam(args.qualsonly, false)
-- maxvals is a string that may be nil, empty (""), or a number
-- this determines how many items may be returned when multiple values are available
-- setting it = 1 is useful where the returned string is used within another call, e.g. image
local maxvals = tonumber(args.maxvals) or 0
-- plaindate boolean
-- to disable/enable "sourcing cirumstances" or use adjectival form for the plain date
local plaindate = args.plaindate or false
args.plaindate = plaindate
-- allow qualifiers to have a different date format; default to year unless qualsonly is set
args.qualifierdateformat = args.qualifierdateformat or (not qualsonly and "y")
local lang = args.lang or (args.langs and args.langs[1]) or findLang()
-- qualID is a string list of wanted qualifiers or "ALL"
qualID = qualID or ""
-- capitalise list of wanted qualifiers and substitute "DATES"
qualID = qualID:upper():gsub("DATES", "P580, P582")
local allflag = (qualID == "ALL")
-- create table of wanted qualifiers as key
local qwanted = {}
-- create sequence of wanted qualifiers
local qorder = {}
for q in mw.text.gsplit(qualID, "%p") do -- split at punctuation and iterate
local qtrim = mw.text.trim(q)
if qtrim ~= "" then
qwanted[mw.text.trim(q)] = true
qorder[#qorder+1] = qtrim
end
end
-- qsep is the output separator for rendering qualifier list
local qsep = (args.qsep or ""):gsub('"', '')
-- qargs are the arguments to supply to assembleoutput()
local qargs = {
["onlysourced"] = "false",
["linked"] = tostring(linked),
["prefix"] = args.qprefix,
["postfix"] = args.qpostfix,
["linkprefix"] = args.qlinkprefix,
["linkpostfix"] = args.qlinkpostfix,
["wdlinks"] = "false",
["unitabbr"] = tostring(unitabbr),
["maxvals"] = 0,
["sorted"] = tostring(args.qsorted),
["noicon"] = "true",
["list"] = args.qlist,
["sep"] = qsep,
-- ["langobj"] = args.langobj,
["lang"] = lang,
langs = args.langs,
["df"] = args.qualifierdateformat,
["shortname"] = parseParam(args.qshortname, false),
}
-- all proper values of a Wikidata property will be the same type as the first
-- qualifiers don't have a mainsnak, properties do
--#Modified line
local datatype = objproperty[1].datatype or (objproperty[1].mainsnak and objproperty[1].mainsnak.datatype)
-- out[] holds the a list of returned values for this property
-- mlt[] holds the language code if the datatype is monolingual text
local out = {}
local mlt = {}
for k, v in ipairs(objproperty) do
local hasvalue = true
if (onlysrc and not sourced(v)) then
-- no value: it isn't sourced when onlysourced=true
hasvalue = false
else
local val, lcode = rendersnak(v, args, linked, linkprefix, lpostfix, prefix, postfix, unitabbr)
if not val then
hasvalue = false -- rank doesn't match
elseif qualsonly and qualID then
-- suppress value returned: only qualifiers are requested
else
out[#out+1], mlt[#out+1] = val, lcode
end
end
-- See if qualifiers are to be returned:
local snak = v.mainsnak or v
if hasvalue and v.qualifiers and qualID ~= "" and snak.snaktype~="novalue" then
-- collect all wanted qualifier values returned in qlist, indexed by propertyID
local qlist = {}
local timestart, timeend = "", ""
-- loop through qualifiers
for k1, v1 in pairs(v.qualifiers) do
if allflag or qwanted[k1] then
if k1 == "P1326" then
local ts = v1[1].datavalue.value.time
local dp = v1[1].datavalue.value.precision
qlist[k1] = dateFormat(ts, dp, args.qualifierdateformat, args.bc, plaindate, "", lang, "before")
elseif k1 == "P1319" then
local ts = v1[1].datavalue.value.time
local dp = v1[1].datavalue.value.precision
qlist[k1] = dateFormat(ts, dp, args.qualifierdateformat, args.bc, plaindate, "", lang, "after")
elseif k1 == "P580" then
timestart = propertyvalueandquals(v1, qargs)[1] or "" -- treat only one start time as valid
elseif k1 == "P582" then
timeend = propertyvalueandquals(v1, qargs)[1] or "" -- treat only one end time as valid
else
local q = assembleoutput(propertyvalueandquals(v1, qargs), qargs)
-- we already deal with circa via 'sourcing circumstances' if the datatype was time
-- circa may be either linked or unlinked *** internationalise later ***
if datatype ~= "time" or q ~= "circa" and not (type(q) == "string" and q:find("circa]]")) then
qlist[k1] = q
end
end
end -- of test for wanted
end -- of loop through qualifiers
-- set date separator
local t = timestart .. timeend
-- *** internationalise date separators later ***
local dsep = "–"
if t:find("%s") or t:find(" ") then dsep = " – " end
-- set the order for the list of qualifiers returned; start time and end time go last
if next(qlist) then
local qlistout = {}
if allflag then
for k2, v2 in pairs(qlist) do
qlistout[#qlistout+1] = v2
end
else
for i2, v2 in ipairs(qorder) do
qlistout[#qlistout+1] = qlist[v2]
end
end
if t ~= "" then
qlistout[#qlistout+1] = timestart .. dsep .. timeend
end
local qstr = assembleoutput(qlistout, qargs)
if qualsonly then
out[#out+1] = qstr
else
out[#out] = out[#out] .. " (" .. qstr .. ")"
end
elseif t ~= "" then
if qualsonly then
if timestart == "" then
out[#out+1] = timeend
elseif timeend == "" then
out[#out+1] = timestart
else
out[#out+1] = timestart .. dsep .. timeend
end
else
out[#out] = out[#out] .. " (" .. timestart .. dsep .. timeend .. ")"
end
end
end -- of test for qualifiers wanted
if maxvals > 0 and #out >= maxvals then break end
end -- of for each value loop
-- we need to pick one value to return if the datatype was "monolingualtext"
-- if there's only one value, use that
-- otherwise look through the fallback languages for a match
if datatype == "monolingualtext" and #out >1 then
lang = mw.text.split( lang, '-', true )[1]
local fbtbl = mw.language.getFallbacksFor( lang )
table.insert( fbtbl, 1, lang )
local bestval = ""
local found = false
for idx1, lang1 in ipairs(fbtbl) do
for idx2, lang2 in ipairs(mlt) do
if (lang1 == lang2) and not found then
bestval = out[idx2]
found = true
break
end
end -- loop through values of property
end -- loop through fallback languages
if found then
-- replace output table with a table containing the best value
out = { bestval }
else
-- more than one value and none of them on the list of fallback languages
-- sod it, just give them the first one
out = { out[1] }
end
end
return out
end
local function mergeOptions(defaults, overrides)
overrides = overrides or {}
defaults = defaults or {}
local result = {}
for k, v in pairs(defaults) do
result[k] = v
end
for k, v in pairs(overrides) do
result[k] = v
if k == 'rank' then
result.reqranks = setRanks(v)
end
end
return result
end
local function filterbyqualifier(statements,qual,value)
local filtered_statements = {}
for _, statement in ipairs(statements) do
if statement.qualifiers and statement.qualifiers[qual] then
if '*' == value then
table.insert(filtered_statements, statement)
else
for _, q in ipairs(statement.qualifiers[qual]) do
if q.datavalue and (rawValue(q.datavalue) == value) then
table.insert(filtered_statements, statement)
break
end
end
end
end
end
return filtered_statements
end
local function orderbyrank(statements)
local pref_count = 0
local sorted_statements = {}
for k,v in ipairs(statements) do
if v.rank == 'preferred' then
pref_count = pref_count + 1
table.insert(sorted_statements, pref_count, v)
else
table.insert(sorted_statements, v)
end
end
return sorted_statements
end
-------------------------------------------------------------------------------
-- helper class functions
-------------------------------------------------------------------------------
local function class()
local c = {}
c.__index = c
function c:new(...)
local o = setmetatable({}, c)
if o.init then o:init(...) end
return o
end
return c
end
-------------------------------------------------------------------------------
-- Statement Class Definition
-------------------------------------------------------------------------------
local WdStatement = class()
function WdStatement:getValue(opts)
local mergedOpts = mergeOptions(self.parent.options, opts)
local statement = self._statement
if not statement then
return nil
end
local qualID = mw.text.trim(mergedOpts.qual or ""):upper()
if qualID == "" then qualID = nil end
local out = propertyvalueandquals({statement}, mergedOpts, qualID)
return assembleoutput(out, mergedOpts, self.parent.qid, self.pid)
end
function WdStatement:getRawValue(opts)
local mergedOpts = mergeOptions(self.parent.options, opts)
if not self._statement then
return nil
end
local datasnak = self._statement.mainsnak or self._statement
if datasnak.snaktype == "value" then
return rawValueOrDF(self._statement, mergedOpts)
else
return datasnak.snaktype
end
end
function WdStatement:getRawQual(qualID)
local ret = {}
local s = self._statement
if s.qualifiers and s.qualifiers[qualID] then
for _,q in pairs(s.qualifiers[qualID]) do
if q.snaktype == "value" then
table.insert(ret, rawValueOrDF(q, self.parent.options))
else
table.insert(ret, q.snaktype)
end
end
end
return ret
end
-------------------------------------------------------------------------------
-- Statements Class Definition
-------------------------------------------------------------------------------
local WdStatements = class()
function WdStatements:getStatmentsTable()
return self._statements
end
function WdStatements:count()
return #self._statements
end
function WdStatements:getFilters()
return self.filtered_by
end
function WdStatements:filter(filter_t)
local statements = self._statements
if #statements == 0 then return self; end
local ret = WdStatements:new()
ret.parent = self.parent
ret.filtered_by = {}
for _,v in ipairs(self.filtered_by) do
table.insert(ret.filtered_by, v)
end
local filtered_statements = {}
for k,v in pairs(filter_t) do
filtered_statements = filterbyqualifier(statements, k, v)
table.insert(ret.filtered_by, {[k] = v})
if #filtered_statements == 0 then
break;
else
statements = filtered_statements
end
end
ret._statements = filtered_statements
return ret
end
function WdStatements:getValue(opts)
local mergedOpts = mergeOptions(self.parent.options, opts)
local statements = self._statements
if not statements or #statements == 0 then
return nil
end
local qualID = mw.text.trim(mergedOpts.qual or ""):upper()
if qualID == "" then qualID = nil end
local out = propertyvalueandquals(statements, mergedOpts, qualID)
return assembleoutput(out, mergedOpts, self.parent.qid, self.pid)
end
function WdStatements:getQual(qualID, opts)
local mergedOpts = mergeOptions(self.parent.options, opts)
local statements = self._statements
if not statements or #statements == 0 then
return nil
end
local out = propertyvalueandquals(statements, mergedOpts, qualID)
return assembleoutput(out, mergedOpts, self.parent.qid, self.pid)
end
function WdStatements:getRawQual(qualID)
local ret = {}
for _,s in pairs(self._statements) do
local qual_t = {}
if s.qualifiers and s.qualifiers[qualID] then
for _,q in pairs(s.qualifiers[qualID]) do
if q.snaktype == "value" then
table.insert(qual_t, rawValueOrDF(q, self.parent.options))
else
table.insert(qual_t, q.snaktype)
end
end
end
table.insert(ret,qual_t)
end
return ret
end
function WdStatements:getRawValue(opts)
local mergedOpts = mergeOptions(self.parent.options, opts)
local ret = {}
for _,v in pairs(self._statements) do
local datasnak = v.mainsnak or v
if datasnak.snaktype=="value" then
table.insert(ret, rawValueOrDF(v, mergedOpts))
else
table.insert(ret, datasnak.snaktype)
end
end
return ret
end
function WdStatements:get(index)
local ret = WdStatement:new()
ret.parent = self.parent
ret.filtered_by = ret.filtered_by
ret._statement = self._statements[index]
ret.pid = ret.pid
return ret
end
function WdStatements:iter()
local i = 0
local n = self._statements and #self._statements or 0
return function()
i = i + 1
if i <= n then
return i, self:get(i)
end
end
end
function WdStatements:ipairs()
return self:iter()
end
function WdStatements:getBestOne()
local orderd_statements = orderbyrank(self._statements)
local ret = WdStatement:new() --setmetatable({}, WdStatement)
ret.parent = self.parent
ret.filtered_by = ret.filtered_by
ret._statement = orderd_statements[1]
ret.pid = ret.pid
return ret
end
-------------------------------------------------------------------------------
-- WdItem Class Definition
-------------------------------------------------------------------------------
local WdItem = class()
function WdItem:__tostring()
return "WdItem: " .. (self.qid or "no QID")
end
function WdItem:UpdateOptions(in_newOpts)
local newOpts = in_newOpts or {}
for k, v in pairs(newOpts or {}) do
self.options[k] = v
end
-- Set default options
if newOpts.lang then
self.options.lang = findLang(newOpts.lang)
end
if (newOpts.lang and not self.options.lang) or
(not newOpts.lang and newOpts.langs and #newOpts.langs > 0) then
for _, l in ipairs(newOpts.langs) do
self.options.lang = findLang(l)
if self.options.lang then
break;
end
end
end
if not self.options.lang then
self.options.lang = findLang();
end
if newOpts.rank then
self.options.reqranks = setRanks(self.options.rank)
end
if not self.options.reqranks then
self.options.reqranks = setRanks('preferred normal')
end
end
function WdItem:init(qid, options,snak)
if qid == "" then qid = nil; end
self.qid = qid
self.snak = snak
self.options = options or {}
self:UpdateOptions(options)
return self
end
function WdItem:newFromSnaks(snakTable, options)
local self = WdItem:new(nil, options or {}, snakTable)
self:UpdateOptions(options)
return self
end
function WdItem:setOptions(newOpts)
self:UpdateOptions(newOpts)
end
function WdItem:getStatements(pid, opts)
local mergedOpts = mergeOptions(self.options, opts or {})
local statements
local ret = WdStatements:new()
ret.parent = self
ret.filtered_by = {}
ret._statements = {}
ret.pid = pid
if self.snak and self.snak[pid] then
statements = self.snak[pid]
elseif not self.qid or not mw.wikibase then
statements = {}
elseif mergedOpts.reqranks and mergedOpts.reqranks.best then
statements = mw.wikibase.getBestStatements(self.qid, pid) or {}
else
statements = mw.wikibase.getAllStatements(self.qid, pid) or {}
local filtered_statements = {}
if not (mergedOpts.reqranks.deprecated == true and mergedOpts.reqranks.preferred == true and mergedOpts.reqranks.normal == true) then
for _,s in pairs(statements) do
if mergedOpts.reqranks[s.rank] then
table.insert(filtered_statements,s)
end
end
end
statements = filtered_statements
end
if #statements > 0 and mergedOpts.qualifiedaspossible and mergedOpts.qualifiedaspossible ~= {} then
local filtered_statements = {}
for q,qv in pairs(mergedOpts.qualifiedaspossible) do
filtered_statements = filterbyqualifier(statements, q, qv)
if #filtered_statements > 0 then
table.insert(ret.filtered_by, {[q] = qv})
statements = filtered_statements
end
end
end
if #statements > 0 and mergedOpts.qualified and mergedOpts.qualified ~= {} then
for q,qv in pairs(mergedOpts.qualified) do
statements = filterbyqualifier(statements, q, qv)
table.insert(ret.filtered_by, {[q] = qv})
if #statements == 0 then break; end
end
end
ret._statements = statements
return ret
end
function WdItem:getValue(pid, opts)
local mergedOpts = mergeOptions(self.options, opts)
local statements = self:getStatements(pid, mergedOpts):getStatmentsTable()
if not statements or #statements == 0 then
return nil
end
local qualID = mw.text.trim(mergedOpts.qual or ""):upper()
if qualID == "" then qualID = nil end
local out = propertyvalueandquals(statements, mergedOpts, qualID)
return assembleoutput(out, mergedOpts, self.qid, pid)
end
function WdItem:getValueFromSnaks(pid, opts)
if not self.snak or not self.snak[pid] then
return nil
end
local mergedOpts = mergeOptions(self.options, opts)
local props = self.snak[pid]
local out = propertyvalueandquals(props, mergedOpts)
return assembleoutput(out, mergedOpts, nil, pid)
end
function WdItem:getPropertyIDsTable(pid, opts)
local mergedOpts = mergeOptions(self.options, opts)
mergedOpts.noicon = tostring(parseParam(mergedOpts.noicon or "", true))
local statements = self:getStatements(pid, opts)
if not statements or #statements == 0 then return {} end
local onlysrc = parseParam(mergedOpts.onlysourced or mergedOpts.onlysourced, true)
local maxvals = tonumber(mergedOpts.maxvals) or 0
local out = {}
for i, v in ipairs(statements) do
local snak = v.mainsnak or v
if (snak.datatype == "wikibase-item")
and (v.rank and mergedOpts.reqranks[v.rank:sub(1, 1)])
and (snak.snaktype == "value")
and (sourced(v) or not onlysrc) then
out[#out+1] = snak.datavalue.value.id
end
if maxvals > 0 and #out >= maxvals then break end
end
return out
end
function WdItem:getPropertyIDs(pid, opts)
local out = WdItem:getPropertyIDsTable(pid, opts)
if #out == 0 then
return nil
end
return assembleoutput(out, mergeOptions(self.options, opts), self.qid, pid)
end
function WdItem:getPropOfProp(prop1, prop2, opts)
local mergedOpts = mergeOptions(self.options, opts)
if not self.qid then return nil end
local maxvals = tonumber(mergedOpts.maxvals) or 0
local prop1Values = self:getStatements(prop1, opts):getRawValue()
if #prop1Values == 0 then return nil end
local out = {}
for k, qid2 in ipairs(prop1Values) do
local item2 = WdItem:new(qid2, mergedOpts)
local prop2Values = item2:getStatements(prop2):getStatmentsTable()
if prop2Values and prop2Values[1] then
local out2 = propertyvalueandquals(prop2Values, mergedOpts, mergedOpts.qual)
out[#out+1] = assembleoutput(out2, mergedOpts, qid2, prop2)
end
if maxvals > 0 and #out >= maxvals then break end
end
return assembleoutput(out, mergedOpts, self.qid, prop1)
end
function WdItem:getRawPropOfProp(prop1, prop2, opts)
local mergedOpts = mergeOptions(self.options, opts)
if not self.qid then return nil end
local prop1Values = self:getStatements(prop1, opts):getRawValue()
if #prop1Values == 0 then return nil end
local out = {}
for k, qid2 in ipairs(prop1Values) do
local item2 = WdItem:new(qid2, mergedOpts)
local prop2Values = item2:getStatements(prop2):getRawValue()
for _,val in ipairs(prop2Values) do
if not in_array(val,out) then
table.insert(out,val)
end
end
end
return out
end
function WdItem:getLangOfProp(pid)
if not pid then return {}; end
local out = {}
local props = self.snak and self.snak[pid] or (self.qid and mw.wikibase.getAllStatements(self.qid, pid)) or {}
for _, v in ipairs(props) do
local datasnak = v.mainsnak or v
if datasnak.datatype == "monolingualtext" and datasnak.datavalue then
out[#out + 1] = datasnak.datavalue.value.language
end
end
return out
end
function WdItem:followQid(props, all)
all = parseParam(all, false)
props = (props or ""):upper()
if not self.qid then return nil end
if props == "" then return self.qid end
local out = {}
for p in mw.text.gsplit(props, "%p") do
p = mw.text.trim(p)
for i, v in ipairs(mw.wikibase.getBestStatements(self.qid, p)) do
local linkedid = v.mainsnak.datavalue and v.mainsnak.datavalue.value and v.mainsnak.datavalue.value.id
if linkedid then
if all then
out[#out+1] = linkedid
else
return WdItem.WdItem:new(linkedid)
end
end
end
end
if #out > 0 then
return table.concat(out, " ")
else
return self
end
end
-------------------------------------------------------------------------------
-- Public API - WdItem Constructors
-------------------------------------------------------------------------------
p.WdItem = WdItem
function p.newItem(qid, opts, snak )
return WdItem:new(qid, opts, snak)
end
function p.newSnakItem(snakTable, opts)
return WdItem:newFromSnaks(snakTable, opts)
end
return p
ebo6q1388a5tyszork79ryyo2iavr9e
وحدة:Cite Q/config/ملعب
828
240415
1097667
1097363
2026-07-27T21:53:53Z
حبيشان
31560
1097667
Scribunto
text/plain
local config_t = {
linksproject = "",
wikilinkprefix = ""
}
local aliases_t = {
['accessdate'] = {'تاريخ-الوصول','تاريخ الوصول', 'تاريخ وصول', 'access-date', 'accessdate'},
['agency'] = {'وكالة', 'agency'},
['archivedate'] = {'تاريخ-الأرشيف', 'تاريخ أرشيف', 'تاريخ الأرشيف', 'archive-date', 'archivedate'},
['archive-format'] = {'صيغة-الأرشيف', 'صيغة الأرشيف', 'archive-format'},
['archive-url'] = {'مسار-الأرشيف', 'مسار أرشيف', 'مسار الأرشيف', 'archive-url', 'archiveurl'},
['article-number'] = {'رقم-المقالة', 'article-number'},
['asin-tld'] = 'asin-tld',
['at'] = {'في', 'at'},
--##TOREVISE
['authors'] = {'المؤلفون', 'المؤلفين', 'authors', 'people', 'host', 'credits', 'أشخاص'},
['book-title'] = {'عنوان الكتاب', 'book-title', 'booktitle', 'عنوان المؤتمر'},
['cartography'] = 'cartography',
['chapter'] = {'الفصل', 'chapter', 'contribution', 'entry', 'article', 'section'},
['chapter-format'] = {'صيغة-الفصل', 'صيغة الفصل', 'تنسيق الفصل', 'chapter-format', 'contribution-format', 'entry-format',
'article-format', 'section-format'},
['chapter-url'] = {'مسار-الفصل', 'مسار الفصل', 'chapter-url', 'contribution-url', 'entry-url', 'article-url', 'section-url'}, -- Used by InternetArchiveBot
['chapter-url-access'] = {'chapter-url-access', 'contribution-url-access',
'entry-url-access', 'article-url-access', 'section-url-access'}, -- Used by InternetArchiveBot
['class'] = {'صنف', 'class'}, -- cite arxiv and arxiv identifier
['collaboration'] = 'collaboration',
['conference'] = {'اسم-المؤتمر', 'اسم المؤتمر', 'conference'},
['conference-format'] = 'conference-format',
['conference-url'] = {'مسار-المؤتمر', 'مسار المؤتمر', 'conference-url'}, -- Used by InternetArchiveBot
['date'] = {'تاريخ', 'التاريخ', 'date', 'air-date', 'airdate'},
['degree'] = {'الدرجة', 'degree'},
['df'] = 'df',
['display-authors'] = {'إظهار-المؤلفين', 'إظهار المؤلفين', 'display-authors', 'display-subjects'},
['display-contributors'] = 'display-contributors',
['display-editors'] = {'إظهار-المحررين', 'إظهار المحررين', 'display-editors'},
['display-interviewers'] = 'display-interviewers',
['display-translators'] = 'display-translators',
['docket'] = 'docket',
['doi-broken-date'] = 'doi-broken-date',
['edition'] = {'طبعة', 'الإصدار', 'الاصدار', 'إصدار', 'اصدار', 'الطبعة', 'رقم الطبعة', 'edition'},
['pmc-embargo-date'] = 'pmc-embargo-date',
['encyclopedia'] = {'موسوعة', 'encyclopedia', 'encyclopaedia', 'اسم المعجم', 'dictionary', 'اسم الموسوعة'}, -- cite encyclopedia only
['episode'] = {'الحلقة', 'episode'}, -- cite serial only TODO: make available to cite episode?
['format'] = {'صيغة', 'التنسيق', 'format', 'تنسيق', 'الصيغة'},
['hijri-date'] = {'التاريخ الهجري', 'تاريخ هجري', 'hijri-date'},
['id'] = {'id', 'ID', 'المعرف'},
['inset'] = {'inset', 'مجموعة'},
['issue'] = {'العدد', 'issue', 'number'},
['language'] = {'لغة', 'اللغة', 'language', 'lang'},
['mailing-list'] = {'القائمة البريدية', 'mailing-list'}, -- cite mailing list only
['map'] = {'الخريطة', 'map'}, -- cite map only
['map-format'] = {'صيغة الخريطة', 'map-format'}, -- cite map only
['map-url'] = {'مسار الخريطة', 'map-url'}, -- cite map only -- Used by InternetArchiveBot
['map-url-access'] = 'map-url-access', -- cite map only -- Used by InternetArchiveBot
['minutes'] = {'دقيقة', 'minutes'},
['mode'] = 'mode',
['name-list-style'] = 'name-list-style',
['network'] = {'الشبكة', 'network'},
['newsgroup'] = {'اسم المجموعة', 'newsgroup'}, -- cite newsgroup only
['nopp'] = {'no-pp', 'nopp'},
['no-tracking'] = {'no-tracking', 'template-doc-demo'},
['number'] = 'number', -- this case only for cite techreport
['orig-date'] = {'orig-date', 'orig-year', 'origyear', 'سنة النشر الأصلية'},
['others'] = {'آخرون','others', 'المحاور', 'المحاورون', 'المحقق'},
['page'] = {'صفحة', 'p', 'الصفحة', 'page', 'الصفحة', 'رقم الصفحة', 'رقم صفحة','ص'}, -- Used by InternetArchiveBot
['pages'] = {'صفحات', 'الصفحات', 'pp', 'أرقام الصفحات', 'أرقم صفحات', 'pages'}, -- Used by InternetArchiveBot
['journal'] = {
'صحيفة',
'journal',
'دورية محكمة',
'مجلة',
'magazine',
'اسم المجلة',
'newspaper',
'جريدة',
'اسم الصحيفة',
'دورية',
'periodical',
'موقع',
'website',
'الموقع',
'عمل',
'work',
'العمل',
'من عمل',
},
['place'] = { 'مكان', 'place', 'المكان', 'مقر', 'المقر', 'location'},
['postscript'] = 'postscript',
['publication-date'] = {'تاريخ-النشر', 'تاريخ النشر', 'publication-date'},
['publication-place'] = {'مكان-النشر', 'مكان النشر', 'publication-place'},
['publisher'] = {'ناشر', 'publisher', 'الناشر', 'institution', 'مصدر', 'الموزع', 'المصدر', 'المؤسسة'},
['quote'] = {'اقتباس', 'quote', 'quotation'},
['quote-page'] = 'quote-page',
['quote-pages'] = 'quote-pages',
['ref'] = {'مرجع', 'ref'},
['scale'] = {'المقياس', 'scale'},
['script-chapter'] = {'script-chapter', 'script-contribution', 'script-entry',
'script-article', 'script-section'},
['script-encyclopedia'] = {'script-encyclopedia', 'script-encyclopaedia'}, -- cite encyclopedia only
['script-map'] = 'script-map',
['script-journal'] = {'script-journal', 'script-magazine', 'script-newspaper',
'script-periodical', 'script-website', 'script-work'},
['script-quote'] = 'script-quote',
['script-title'] = 'script-title', -- Used by InternetArchiveBot
['season'] = {'الموسم', 'season'},
['sections'] = {'الأقسام', 'sections'}, -- cite map only
['series'] = {'سلسلة', 'series', 'version'},
['series-link'] = {'وصلة-سلسلة', 'وصلة سلسلة', 'series-link', 'مسار المسلسل'},
['series-number'] = {'رقم-سلسلة', 'رقم سلسلة', 'series-number', 'series-no'},
['sheet'] = {'ورقة', 'sheet'}, -- cite map only
['sheets'] = {'أوراق', 'sheets'}, -- cite map only
['station'] = {'محطة', 'station'},
['time'] = {'الوقت', 'time'},
['time-caption'] = 'time-caption',
['title'] = {'عنوان', 'title', 'العنوان'},
['title-link'] = {'وصلة-العنوان', 'وصلة العنوان', 'title-link', 'episode-link', 'وصلة الحلقة'},
['title-note'] = {'title-note', 'department'},
['type'] = {'النوع', 'type', 'medium'},
['trans-chapter'] = {'trans-article', 'trans-chapter', 'trans-contribution',
'trans-entry', 'trans-section'},
['transcript'] = 'transcript',
['transcript-format'] = 'transcript-format',
['transcript-url'] = 'transcript-url', -- Used by InternetArchiveBot
['trans-encyclopedia'] = {'trans-encyclopedia', 'trans-encyclopaedia'}, -- cite encyclopedia only
['trans-map'] = 'trans-map', -- cite map only
['trans-journal'] = {'trans-journal', 'trans-magazine', 'trans-newspaper',
'trans-periodical', 'trans-website', 'trans-work'},
['trans-quote'] = 'trans-quote',
['trans-title'] = {'عنوان مترجم', 'العنوان بالعربي', 'العنوان الأجنبي', 'عنوان أجنبي', 'trans-title', 'العنوان المترجم'}, -- Used by InternetArchiveBot
['url'] = {'مسار', 'المسار','وصلة', 'url', 'URL'}, -- Used by InternetArchiveBot
['url-access'] = {'url-access', 'التسجيل'}, -- Used by InternetArchiveBot
['url-status'] = {'url-status','حالة المسار'}, -- Used by InternetArchiveBot
['vauthors'] = {'vauthors', 'عدة مؤلفين'},
['veditors'] = {'veditors', 'عدة محررين' },
['via'] = {'عبر', 'via'},
['volume'] = {'المجلد', 'volume', 'الجزء', 'ج'},
['wikidatacite'] = 'wikidatacite',
['year'] = {'سنة', 'year', 'السنة'},
}
local i18n_t = {
["ar"] = {
illustrator = "رسم",
composer = "تلحين",
animator = "رسم الرسوم المتحركة",
director = "إخراج",
screenwriter = "سيناريو",
signatory = "توقيع",
presenter = "تقديم",
performer = "أداء",
annotator = "تحقيق",
reviewer = "مراجعة",
unknown = "مجهول",
supervisor = "إشراف",
["unknown-publication-date"] = '<abbr class="abbr" title="دون تاريخ">د.ت.</abbr>',
["unknown-publisher"] = '<abbr class="abbr" title="دون ناشر">د.ن.</abbr>',
wikidata = "ويكي بيانات"
},
["cite_q"] = "{{استشهاد بويكي بيانات|",
["erratum"] = "(erratum)",
["unknown-author"] = {
ar = "غير معروف",
en = "Anonymous",
fr = "Aanonyme",
de = "Anonymus",
es = "Anónimo"
},
["wdq"] = "[[ويكي بيانات|QID]]", -- go through "WDQ (identifier)" redirect to reduce clutter in "What links here" and improve reverse lookup. Keep in sync with {{QID}}.
["wikisource"] = "arwikisource",
["errors"] = {
["local-article-not-found"] = "المقال المحلي غير موجود.",
["no-label-or-title"] = "لا عنون أو تسمية: ",
},
-- Next Line Edited
["unknown-author-trackingcat"] = "", -- [[تصنيف:Cite Q - author unknown]]
["months"] = {
"January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
},
["ordinal"] = {
[1] = "st",
[2] = "nd",
[3] = "rd",
["default"] = "th"
},
["trackingcats"] = {
["erratum"] = "[[تصنيف:استشهاد بويكي بيانات:الاستشهاد يعمل مع خطأ]]",
["missing-wikidata"] = "[[تصنيف:مقالات مع بيانات ويكي بيانات نقاصة]]", -- TODO: point to a {{cite q}}-specific category; this one is specific to Module:WikidataIB
['no-label-or-title'] = '[[تصنيف:استشهاد بويكي بيانات:يفتقر إلى عنوان أو تسمية]]',
["retracted"] = "[[تصنيف:الاستشهاد بويكي بيانات: الاستشهاد بعمل مسحوب]]<!-- retracted -->",
["replaced"] = "[[تصنيف:الاستشهاد بويكي بيانات: الاستشهاد بعمل مستبدل]]<!-- replaced -->",
["unknown-author"] = "", -- [[Category:Cite Q - author unknown]] removed as misplaced; someone is welcome to restore it if it is placed outside of the template parameter value
["unknown-template"] = "[[تصنيف:الاستشهاد بويكي بيانات:قالب مجهول]]",
},
}
local rejected_t = {
sources = {
Q465 = true,
Q15241312 = true,
Q52 = true
},
properties = { "P1800", "P1566", "P21"},
instances = {
Q5 = true, -- Human is not a direct reference
Q184188 = true,
Q1250464 = true,
-- inatance of refference DBs
Q8513 = true,
Q17152639 = true,
Q7094076 = true,
Q5535082 = true,
Q856638= true,
Q1982918 = true,
Q36524 = true,
Q36218176 = true,
Q526334 = true,
Q5227411 = true
}
}
-- Table of simple properties that can be fetched in roughly the same way:
-- id = PXXX
-- maxvals = maximum number of multiple values (0 for all)
-- linked = "no" suppresses linking
-- populate_from_journal = true/false determines whether to look in a journal where the source is published
-- rank = "best", "preferred", normal, etc. determines how Wikidata ranks are treated
-- others = true - the value for the property goes to "others" section
local simple_properties_t = {
-- Next Line Edited
publisher = {id = "P123", maxvals = 3},
oclc = {id = "P243", maxvals = 1},
['publication-place'] = {id = "P291", maxvals = 0, linked = false}, -- publication place (don't put into |place=; is treated specially in {{citation}} if both are given)
doi = {id = "P356", maxvals = 1}, -- take care of |doi-broken-date= (WD "reason for deprecation"/"stated as") and |doi-access= (WD "access status")?
issue = {id = "P433", maxvals = 0, populate_from_journal = true}, -- distinguish from |number= ("P1545"?) if both are given (still blocked by {{citation}}, but will be supported in the future)
pmid = {id = "P698", maxvals = 1},
-- gbooks = {id = "P675", maxvals = 1}, -- to be added to {{citation}}
-- ia = {id = "P724", maxvals = 1}, -- to be added to {{citation}}
arxiv = {id = "P818", maxvals = 1},
bibcode = {id = "P819", maxvals = 1}, -- take care of |bibcode-access=?
jstor = {id = "P888", maxvals = 1}, -- take care of |jstor-access=?
mr = {id = "P889", maxvals = 1},
rfc = {id = "P892", maxvals = 1},
zbl = {id = "P894", maxvals = 1},
ssrn = {id = "P893", maxvals = 1},
place = {id = "P1071", maxvals = 0, linked = false}, -- written-at place
-- ['total-pages'] = {id = "P1104", maxvals = 0, linked = 'no'}, -- to be added to {{citation}} / COinS &rft.tpages=
-- coden = {id = "P1159", maxvals = 1}, -- to be added to {{citation}} / COinS &rft.coden=
s2cid = {id = "P8299", maxvals = 1}, -- take care of |s2cid-access=?
pmc = {id = "P932", maxvals = 1}, -- take care of |pmc-embargo-date= (WD "reason for deprecation")?
lccn = {id = "P1144", maxvals = 1},
hdl = {id = "P1184", maxvals = 1}, -- take care of |hdl-access=?
ismn = {id = "P1208", maxvals = 1},
journal = {id = "P1433", maxvals = 1},
citeseerx = {id = "P3784", maxvals = 1},
osti = {id = "P3894", maxvals = 1}, -- take care of |osti-access=?
biorxiv = {id = "P3951", maxvals = 1},
asin = {id = "P5749", maxvals = 1}, -- What about |asin-tld=? (WD examples resolve to .com at present, but may change)
-- ['catalog-number'] = {id = "P528", maxvals = 0}, -- to be added to {{citation}} / COinS &rft.artnum=
isbn = {id = "P212", maxvals = 1, populate_from_journal = true}, -- ISBN 13
issn = {id = "P236", maxvals = 1, populate_from_journal = true}, -- distinguish from |eissn= for electronic issues?
-- jfm = {id = "P?", maxvals = 1}, -- Jahrbuch über die Fortschritte der Mathematik (not Zbl)
-- sbn = {id = "P?", maxvals = 1}, -- Standard Book Number (predecessor of ISBN, not ICCU)
-- message-id = {id = "P?", maxvals = 1}, -- Usenet message ID
chapter = {id = "P792", maxvals = 1, no_vol_qual=true},
['publication-date'] = {id = "P577", maxvals = 1, populate_from_journal = true}, -- publication date (don't use |date=; is treated specially in {{citation}} if both are given.)
series = {id = "P179", maxvals = 1, populate_from_journal = true, qual = "P1545"},
version = {id = "P348", maxvals = 0},
edition = {id = "P393", maxvals = 0},
volume = {id = "P478", maxvals = 0, populate_from_journal = true, no_vol_qual=true},
-- part = {id = "P1545"?, maxvals = 0}, -- to be added to {{citation}} / COinS &rft.part=
title = {id = "P1476", rank="p n"},
-- url = {id = "P953", maxvals = 1}, -- deal with this along with archive-url
pages = {id = "P304", maxvals = 0, populate_from_journal = true, no_vol_qual=true},
at = {id = "P958", maxvals = 0, populate_from_journal = true, no_vol_qual=true}, -- also incorporate lines (P7421) and columns (P3903) into this (cite map also supports |section=)
-- sheets = {id = "P7416", maxvals = 0, populate_from_journal = true},
-- interviewer = {id = "P?", maxvals = 0}, -- does **not** go to "others" section! Multiple interviewers should be n-enumerated
illustrator = {id = "P110", maxvals = 10, others = true}, -- goes to "others" section
-- foreword and afterword, when contributions to another author's work, are contributions so belong in |contribution=;
-- the writer's name goes in |contributor=; requires |title= and |author=
-- However, this might need to add support for multiple contributors and their roles to {{citation}}, see Help_talk:Citation_Style_1#Others
-- foreword = {id = "P2679", maxvals = 10, others = true}, -- goes to "others" section
-- afterword = {id = "P2680", maxvals = 10, others = true}, -- goes to "others" section
composer = {id = "P86", maxvals = 10, others = true}, -- goes to "others" section
animator = {id = "P6942", maxvals = 10, others = true}, -- goes to "others" section
director = {id = "P57", maxvals = 10, others = true}, -- goes to "others" section
screenwriter = {id = "P58", maxvals = 10, others = true}, -- goes to "others" section
signatory = {id = "P1891", maxvals = 10, others = true}, -- goes to "others" section
presenter = {id = "P371", maxvals = 10, others = true}, -- goes to "others" section
performer = {id = "P175", maxvals = 10, others = true}, -- goes to "others" section
-- next 2 lines added for Arabic Wikipedia
annotator = {id ="P11105", maxvals = 10, others = true}, -- goes to "others" section
reviewer = {id ="P4032", maxvals = 10, others = true}, -- goes to "others" section
supervisor = {id ="P7604", maxvals = 3, others = true}, -- goes to "others" section
}
local used_args_t = {accessdate=true, language=true, mode=true, ol=true, other=true, ['display-authors']=true, ['display-editors']=true, ['archive-url']=true,
['archive-date']=true, url=true, title=true, page=true, pages = true, volume=true}
-- all_used_properties
local used_properties_t = { P1680 = true, P1932 = true, P2699 = true, P407 = true, P2093 = true, -- author string
P50 = true, -- author
P5769 = true, --editor
P655 = true, P856 = true, P953 = true, P98 = true, P854 = true,
}
for k,v in pairs(simple_properties_t) do
used_properties_t[v.id] = {
arg = k,
maxvals = v.maxvals,
linked = v.linked,
others = v.others,
populate_from_journal = v.populate_from_journal
}
end
simple_properties_t['hijri-date'] = {id = "P577", maxvals = 1, hijri=true}
return {
aliases_t = aliases_t,
i18n_t = i18n_t,
rejected_t = rejected_t,
simple_properties_t = simple_properties_t,
used_args_t = used_args_t,
used_properties_t = used_properties_t,
config_t = config_t,
}
nyfs053a04x8o05g5t18wkztniky0md
نقاش ويكاموس:ويكي بيانات
5
240649
1097629
1097626
2026-07-27T14:40:22Z
أبو هشام
20788
/* بلاغ من أداة مراجعة المعاني: اِسْتَجَاشَ (L1534157) */ قسم جديد
1097629
wikitext
text/x-wiki
== بلاغ من أداة مراجعة المعاني: اِسْتَرَقَ (L1480330) ==
'''اِسْتَرَقَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1480330|18بك|ويكي بيانات: L1480330]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَرَقَ|18بك|صفحة ويكاموس]] · الجذر: سرق · ([[toolforge:ar-senses/review/L1480330|رابط المُفردة في الأداة]])
كانت هناك مشكلة في صندوق المعلومات في ويكاموس بعد إنشاء الصفحات لجميع المفردات من جذر س ر ق: [[اِسْتَرَقَ]]، [[اِنْسَرَقَ]]، [[تَسَرَّقَ]]. --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 00:33، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. شكرا لك {{مس|إسلام}} التبليغ. فعلا كان هناك خلل في محارف الجذر [https://www.wikidata.org/wiki/Lexeme:L1012573 س ر ق] في ويكي بيانات. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:23، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: حَلَّى (L1534604) ==
'''حَلَّى''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534604|18بك|ويكي بيانات: L1534604]] [[ملف:Wiktionary-logo.svg|وصلة=حَلَّى|18بك|صفحة ويكاموس]] · الجذر: حلو · ([[toolforge:ar-senses/review/L1534604|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:27، 27 يوليو 2026 (ت ع م)
:شكرا لك @[[مستخدم:رِفْد|رِفْد]] على الإبلاغ. المشكلة في الفعل حَلَّى (وأفعال آخرين) أَنَّه يُوَلَّدُ من جذرين: ح-ل-ي و ح-ل-و. في ويكي بيانات توجد وحدتان معجميتان، واحدة لكل فعل، لكن في ويكاموس لا يُمكن إنشاء صفحتين بنفس الاسم. سأفكر في حل لهذه المشكلة وأوافيك بالجديد. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:28، 27 يوليو 2026 (ت ع م)
::حالة أخرى حيث يشترك جذران في نفس صيغة الفعل:
::* جذر ت-ل-و على وزن تفعّل => [[تَتَلَّى]] ([https://ar-senses.toolforge.org/review/L1533461 رابط المُفردة في الأداة]).
::* جذر ت-ل-ي على وزن تفعّل => [[تَتَلَّى]]
::[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:42، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: آرَنَ (L1532612) ==
'''آرَنَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1532612|18بك|ويكي بيانات: L1532612]] [[ملف:Wiktionary-logo.svg|وصلة=آرَنَ|18بك|صفحة ويكاموس]] · الجذر: أرن · ([[toolforge:ar-senses/review/L1532612|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:36، 27 يوليو 2026 (ت ع م)
:شكرا لك {{مس|رِفْد}} على التبليغ، المشكل سببه حالة خاصة حيث صيغة الفعل هي نفسها على وزنين:
:* جذر ء ر ن، على وزن أفعل => آرَنَ
:* جذر ء ر ن، على وزن فاعل => آرَنَ
:[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:38، 27 يوليو 2026 (ت ع م)
::{{أصلح}} ونُشِر في ويكاموس: [[آرَنَ]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:39، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: دَمْشَقَ (L1535560) ==
'''دَمْشَقَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1535560|18بك|ويكي بيانات: L1535560]] [[ملف:Wiktionary-logo.svg|وصلة=دَمْشَقَ|18بك|صفحة ويكاموس]] · الجذر: دمشق · ([[toolforge:ar-senses/review/L1535560|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''أثناء محاولة الإضافة في ويكي بيانات يظهر: invalid literal for int0 with :خطأ في النشر بويكي بيانات 'base 10: 'None'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:45، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. شكرا لك على التبليغ أخي {{مس|رِفْد}}. المُشكلة كانت بسبب مُعرف خاطئ لأحد المعاجم في قاعدة البيانات. أعدت إنشاء المعاني في ويكي بيانات وأنشأت الصفحة في ويكاموس: [[دَمْشَقَ]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:48، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: أَبَانَ (L1477016) ==
'''أَبَانَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1477016|18بك|ويكي بيانات: L1477016]] [[ملف:Wiktionary-logo.svg|وصلة=أَبَانَ|18بك|صفحة ويكاموس]] · الجذر: بين · ([[toolforge:ar-senses/review/L1477016|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:52، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. فعلا [[أَبَانَ|الصفحة]] كانت موجودة سَلَفًا، وكان المفروض من الأداة أن لا تُعطيك خيار إنشائها. المشكل كان مصدرة خطأ في تصريف الأجوف اليائي على وزن أفعل، فكانت الخوارزمية تقترح كلمة "أَبْيَنَ" (خطأ) بدل "أَبَانَ" (صحيح). [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:57، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: اِسْتَجَاشَ (L1534157) ==
'''اِسْتَجَاشَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534157|18بك|ويكي بيانات: L1534157]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَجَاشَ|18بك|صفحة ويكاموس]] · الجذر: جيش · ([[toolforge:ar-senses/review/L1534157|رابط المُفردة في الأداة]])
<!-- اكتب وصف المشكلة هنا، قبل التوقيع. رجاءً لا تغيّر عنوان الموضوع ولا السطر الذي فوق هذا التعليق، فالأداة تعتمد عليهما في ربط النقاش بالمفردة. --> المعنى الثاني غير موجود في المصدر في صفحة المفردة (ص=603) والحديث الموجود في صفحة 115 غير مفسر بهذا المعنى أيضا. --[[مستخدم:أبو هشام|أبو هشام]] <sup>[[نقاش المستخدم:أبو هشام|«نقاش»]]</sup> 14:40، 27 يوليو 2026 (ت ع م)
ah9sjmlwndejhm708ka8xe8w6h682n4
1097630
1097629
2026-07-27T14:41:54Z
أبو هشام
20788
/* */ تنسيق
1097630
wikitext
text/x-wiki
== بلاغ من أداة مراجعة المعاني: اِسْتَرَقَ (L1480330) ==
'''اِسْتَرَقَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1480330|18بك|ويكي بيانات: L1480330]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَرَقَ|18بك|صفحة ويكاموس]] · الجذر: سرق · ([[toolforge:ar-senses/review/L1480330|رابط المُفردة في الأداة]])
كانت هناك مشكلة في صندوق المعلومات في ويكاموس بعد إنشاء الصفحات لجميع المفردات من جذر س ر ق: [[اِسْتَرَقَ]]، [[اِنْسَرَقَ]]، [[تَسَرَّقَ]]. --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 00:33، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. شكرا لك {{مس|إسلام}} التبليغ. فعلا كان هناك خلل في محارف الجذر [https://www.wikidata.org/wiki/Lexeme:L1012573 س ر ق] في ويكي بيانات. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:23، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: حَلَّى (L1534604) ==
'''حَلَّى''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534604|18بك|ويكي بيانات: L1534604]] [[ملف:Wiktionary-logo.svg|وصلة=حَلَّى|18بك|صفحة ويكاموس]] · الجذر: حلو · ([[toolforge:ar-senses/review/L1534604|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:27، 27 يوليو 2026 (ت ع م)
:شكرا لك @[[مستخدم:رِفْد|رِفْد]] على الإبلاغ. المشكلة في الفعل حَلَّى (وأفعال آخرين) أَنَّه يُوَلَّدُ من جذرين: ح-ل-ي و ح-ل-و. في ويكي بيانات توجد وحدتان معجميتان، واحدة لكل فعل، لكن في ويكاموس لا يُمكن إنشاء صفحتين بنفس الاسم. سأفكر في حل لهذه المشكلة وأوافيك بالجديد. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:28، 27 يوليو 2026 (ت ع م)
::حالة أخرى حيث يشترك جذران في نفس صيغة الفعل:
::* جذر ت-ل-و على وزن تفعّل => [[تَتَلَّى]] ([https://ar-senses.toolforge.org/review/L1533461 رابط المُفردة في الأداة]).
::* جذر ت-ل-ي على وزن تفعّل => [[تَتَلَّى]]
::[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:42، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: آرَنَ (L1532612) ==
'''آرَنَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1532612|18بك|ويكي بيانات: L1532612]] [[ملف:Wiktionary-logo.svg|وصلة=آرَنَ|18بك|صفحة ويكاموس]] · الجذر: أرن · ([[toolforge:ar-senses/review/L1532612|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:36، 27 يوليو 2026 (ت ع م)
:شكرا لك {{مس|رِفْد}} على التبليغ، المشكل سببه حالة خاصة حيث صيغة الفعل هي نفسها على وزنين:
:* جذر ء ر ن، على وزن أفعل => آرَنَ
:* جذر ء ر ن، على وزن فاعل => آرَنَ
:[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:38، 27 يوليو 2026 (ت ع م)
::{{أصلح}} ونُشِر في ويكاموس: [[آرَنَ]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:39، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: دَمْشَقَ (L1535560) ==
'''دَمْشَقَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1535560|18بك|ويكي بيانات: L1535560]] [[ملف:Wiktionary-logo.svg|وصلة=دَمْشَقَ|18بك|صفحة ويكاموس]] · الجذر: دمشق · ([[toolforge:ar-senses/review/L1535560|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''أثناء محاولة الإضافة في ويكي بيانات يظهر: invalid literal for int0 with :خطأ في النشر بويكي بيانات 'base 10: 'None'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:45، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. شكرا لك على التبليغ أخي {{مس|رِفْد}}. المُشكلة كانت بسبب مُعرف خاطئ لأحد المعاجم في قاعدة البيانات. أعدت إنشاء المعاني في ويكي بيانات وأنشأت الصفحة في ويكاموس: [[دَمْشَقَ]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:48، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: أَبَانَ (L1477016) ==
'''أَبَانَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1477016|18بك|ويكي بيانات: L1477016]] [[ملف:Wiktionary-logo.svg|وصلة=أَبَانَ|18بك|صفحة ويكاموس]] · الجذر: بين · ([[toolforge:ar-senses/review/L1477016|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:52، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. فعلا [[أَبَانَ|الصفحة]] كانت موجودة سَلَفًا، وكان المفروض من الأداة أن لا تُعطيك خيار إنشائها. المشكل كان مصدرة خطأ في تصريف الأجوف اليائي على وزن أفعل، فكانت الخوارزمية تقترح كلمة "أَبْيَنَ" (خطأ) بدل "أَبَانَ" (صحيح). [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:57، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: اِسْتَجَاشَ (L1534157) ==
'''اِسْتَجَاشَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534157|18بك|ويكي بيانات: L1534157]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَجَاشَ|18بك|صفحة ويكاموس]] · الجذر: جيش · ([[toolforge:ar-senses/review/L1534157|رابط المُفردة في الأداة]])
المعنى الثاني غير موجود في المصدر في صفحة المفردة (ص=603) والحديث الموجود في صفحة 115 غير مفسر بهذا المعنى أيضا. --[[مستخدم:أبو هشام|أبو هشام]] <sup>[[نقاش المستخدم:أبو هشام|«نقاش»]]</sup> 14:40، 27 يوليو 2026 (ت ع م)
<!-- اكتب وصف المشكلة هنا، قبل التوقيع. رجاءً لا تغيّر عنوان الموضوع ولا السطر الذي فوق هذا التعليق، فالأداة تعتمد عليهما في ربط النقاش بالمفردة. -->
4qr4av7hek9ss5bq9fyqv9fbv6o77hz
1097640
1097630
2026-07-27T15:23:16Z
إسلام
12622
/* بلاغ من أداة مراجعة المعاني: اِسْتَبَعَ (L1536765) */ قسم جديد
1097640
wikitext
text/x-wiki
== بلاغ من أداة مراجعة المعاني: اِسْتَرَقَ (L1480330) ==
'''اِسْتَرَقَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1480330|18بك|ويكي بيانات: L1480330]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَرَقَ|18بك|صفحة ويكاموس]] · الجذر: سرق · ([[toolforge:ar-senses/review/L1480330|رابط المُفردة في الأداة]])
كانت هناك مشكلة في صندوق المعلومات في ويكاموس بعد إنشاء الصفحات لجميع المفردات من جذر س ر ق: [[اِسْتَرَقَ]]، [[اِنْسَرَقَ]]، [[تَسَرَّقَ]]. --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 00:33، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. شكرا لك {{مس|إسلام}} التبليغ. فعلا كان هناك خلل في محارف الجذر [https://www.wikidata.org/wiki/Lexeme:L1012573 س ر ق] في ويكي بيانات. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:23، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: حَلَّى (L1534604) ==
'''حَلَّى''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534604|18بك|ويكي بيانات: L1534604]] [[ملف:Wiktionary-logo.svg|وصلة=حَلَّى|18بك|صفحة ويكاموس]] · الجذر: حلو · ([[toolforge:ar-senses/review/L1534604|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:27، 27 يوليو 2026 (ت ع م)
:شكرا لك @[[مستخدم:رِفْد|رِفْد]] على الإبلاغ. المشكلة في الفعل حَلَّى (وأفعال آخرين) أَنَّه يُوَلَّدُ من جذرين: ح-ل-ي و ح-ل-و. في ويكي بيانات توجد وحدتان معجميتان، واحدة لكل فعل، لكن في ويكاموس لا يُمكن إنشاء صفحتين بنفس الاسم. سأفكر في حل لهذه المشكلة وأوافيك بالجديد. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:28، 27 يوليو 2026 (ت ع م)
::حالة أخرى حيث يشترك جذران في نفس صيغة الفعل:
::* جذر ت-ل-و على وزن تفعّل => [[تَتَلَّى]] ([https://ar-senses.toolforge.org/review/L1533461 رابط المُفردة في الأداة]).
::* جذر ت-ل-ي على وزن تفعّل => [[تَتَلَّى]]
::[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:42، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: آرَنَ (L1532612) ==
'''آرَنَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1532612|18بك|ويكي بيانات: L1532612]] [[ملف:Wiktionary-logo.svg|وصلة=آرَنَ|18بك|صفحة ويكاموس]] · الجذر: أرن · ([[toolforge:ar-senses/review/L1532612|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:36، 27 يوليو 2026 (ت ع م)
:شكرا لك {{مس|رِفْد}} على التبليغ، المشكل سببه حالة خاصة حيث صيغة الفعل هي نفسها على وزنين:
:* جذر ء ر ن، على وزن أفعل => آرَنَ
:* جذر ء ر ن، على وزن فاعل => آرَنَ
:[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:38، 27 يوليو 2026 (ت ع م)
::{{أصلح}} ونُشِر في ويكاموس: [[آرَنَ]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:39، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: دَمْشَقَ (L1535560) ==
'''دَمْشَقَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1535560|18بك|ويكي بيانات: L1535560]] [[ملف:Wiktionary-logo.svg|وصلة=دَمْشَقَ|18بك|صفحة ويكاموس]] · الجذر: دمشق · ([[toolforge:ar-senses/review/L1535560|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''أثناء محاولة الإضافة في ويكي بيانات يظهر: invalid literal for int0 with :خطأ في النشر بويكي بيانات 'base 10: 'None'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:45، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. شكرا لك على التبليغ أخي {{مس|رِفْد}}. المُشكلة كانت بسبب مُعرف خاطئ لأحد المعاجم في قاعدة البيانات. أعدت إنشاء المعاني في ويكي بيانات وأنشأت الصفحة في ويكاموس: [[دَمْشَقَ]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:48، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: أَبَانَ (L1477016) ==
'''أَبَانَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1477016|18بك|ويكي بيانات: L1477016]] [[ملف:Wiktionary-logo.svg|وصلة=أَبَانَ|18بك|صفحة ويكاموس]] · الجذر: بين · ([[toolforge:ar-senses/review/L1477016|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:52، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. فعلا [[أَبَانَ|الصفحة]] كانت موجودة سَلَفًا، وكان المفروض من الأداة أن لا تُعطيك خيار إنشائها. المشكل كان مصدرة خطأ في تصريف الأجوف اليائي على وزن أفعل، فكانت الخوارزمية تقترح كلمة "أَبْيَنَ" (خطأ) بدل "أَبَانَ" (صحيح). [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:57، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: اِسْتَجَاشَ (L1534157) ==
'''اِسْتَجَاشَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534157|18بك|ويكي بيانات: L1534157]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَجَاشَ|18بك|صفحة ويكاموس]] · الجذر: جيش · ([[toolforge:ar-senses/review/L1534157|رابط المُفردة في الأداة]])
المعنى الثاني غير موجود في المصدر في صفحة المفردة (ص=603) والحديث الموجود في صفحة 115 غير مفسر بهذا المعنى أيضا. --[[مستخدم:أبو هشام|أبو هشام]] <sup>[[نقاش المستخدم:أبو هشام|«نقاش»]]</sup> 14:40، 27 يوليو 2026 (ت ع م)
<!-- اكتب وصف المشكلة هنا، قبل التوقيع. رجاءً لا تغيّر عنوان الموضوع ولا السطر الذي فوق هذا التعليق، فالأداة تعتمد عليهما في ربط النقاش بالمفردة. -->
== بلاغ من أداة مراجعة المعاني: اِسْتَبَعَ (L1536765) ==
'''اِسْتَبَعَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1536765|18بك|ويكي بيانات: L1536765]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَبَعَ|18بك|صفحة ويكاموس]] · الجذر: سبع · ([[toolforge:ar-senses/review/L1536765|رابط المُفردة في الأداة]])
صندوق المعلومات في ويكاموس لا يظهر بشكل صحيح.--[[مستخدم:إسلام|إسلام]] ([[نقاش المستخدم:إسلام|نقاش]]) 15:23، 27 يوليو 2026 (ت ع م)
djjlmi0edtw9ldn4zotc9dscv5gqdjq
1097644
1097640
2026-07-27T15:48:04Z
أبو هشام
20788
/* بلاغ من أداة مراجعة المعاني: جَوَّهَ (L1534145) */ قسم جديد
1097644
wikitext
text/x-wiki
== بلاغ من أداة مراجعة المعاني: اِسْتَرَقَ (L1480330) ==
'''اِسْتَرَقَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1480330|18بك|ويكي بيانات: L1480330]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَرَقَ|18بك|صفحة ويكاموس]] · الجذر: سرق · ([[toolforge:ar-senses/review/L1480330|رابط المُفردة في الأداة]])
كانت هناك مشكلة في صندوق المعلومات في ويكاموس بعد إنشاء الصفحات لجميع المفردات من جذر س ر ق: [[اِسْتَرَقَ]]، [[اِنْسَرَقَ]]، [[تَسَرَّقَ]]. --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 00:33، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. شكرا لك {{مس|إسلام}} التبليغ. فعلا كان هناك خلل في محارف الجذر [https://www.wikidata.org/wiki/Lexeme:L1012573 س ر ق] في ويكي بيانات. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:23، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: حَلَّى (L1534604) ==
'''حَلَّى''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534604|18بك|ويكي بيانات: L1534604]] [[ملف:Wiktionary-logo.svg|وصلة=حَلَّى|18بك|صفحة ويكاموس]] · الجذر: حلو · ([[toolforge:ar-senses/review/L1534604|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:27، 27 يوليو 2026 (ت ع م)
:شكرا لك @[[مستخدم:رِفْد|رِفْد]] على الإبلاغ. المشكلة في الفعل حَلَّى (وأفعال آخرين) أَنَّه يُوَلَّدُ من جذرين: ح-ل-ي و ح-ل-و. في ويكي بيانات توجد وحدتان معجميتان، واحدة لكل فعل، لكن في ويكاموس لا يُمكن إنشاء صفحتين بنفس الاسم. سأفكر في حل لهذه المشكلة وأوافيك بالجديد. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:28، 27 يوليو 2026 (ت ع م)
::حالة أخرى حيث يشترك جذران في نفس صيغة الفعل:
::* جذر ت-ل-و على وزن تفعّل => [[تَتَلَّى]] ([https://ar-senses.toolforge.org/review/L1533461 رابط المُفردة في الأداة]).
::* جذر ت-ل-ي على وزن تفعّل => [[تَتَلَّى]]
::[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:42، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: آرَنَ (L1532612) ==
'''آرَنَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1532612|18بك|ويكي بيانات: L1532612]] [[ملف:Wiktionary-logo.svg|وصلة=آرَنَ|18بك|صفحة ويكاموس]] · الجذر: أرن · ([[toolforge:ar-senses/review/L1532612|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:36، 27 يوليو 2026 (ت ع م)
:شكرا لك {{مس|رِفْد}} على التبليغ، المشكل سببه حالة خاصة حيث صيغة الفعل هي نفسها على وزنين:
:* جذر ء ر ن، على وزن أفعل => آرَنَ
:* جذر ء ر ن، على وزن فاعل => آرَنَ
:[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:38، 27 يوليو 2026 (ت ع م)
::{{أصلح}} ونُشِر في ويكاموس: [[آرَنَ]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:39، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: دَمْشَقَ (L1535560) ==
'''دَمْشَقَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1535560|18بك|ويكي بيانات: L1535560]] [[ملف:Wiktionary-logo.svg|وصلة=دَمْشَقَ|18بك|صفحة ويكاموس]] · الجذر: دمشق · ([[toolforge:ar-senses/review/L1535560|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''أثناء محاولة الإضافة في ويكي بيانات يظهر: invalid literal for int0 with :خطأ في النشر بويكي بيانات 'base 10: 'None'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:45، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. شكرا لك على التبليغ أخي {{مس|رِفْد}}. المُشكلة كانت بسبب مُعرف خاطئ لأحد المعاجم في قاعدة البيانات. أعدت إنشاء المعاني في ويكي بيانات وأنشأت الصفحة في ويكاموس: [[دَمْشَقَ]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:48، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: أَبَانَ (L1477016) ==
'''أَبَانَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1477016|18بك|ويكي بيانات: L1477016]] [[ملف:Wiktionary-logo.svg|وصلة=أَبَانَ|18بك|صفحة ويكاموس]] · الجذر: بين · ([[toolforge:ar-senses/review/L1477016|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:52، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. فعلا [[أَبَانَ|الصفحة]] كانت موجودة سَلَفًا، وكان المفروض من الأداة أن لا تُعطيك خيار إنشائها. المشكل كان مصدرة خطأ في تصريف الأجوف اليائي على وزن أفعل، فكانت الخوارزمية تقترح كلمة "أَبْيَنَ" (خطأ) بدل "أَبَانَ" (صحيح). [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:57، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: اِسْتَجَاشَ (L1534157) ==
'''اِسْتَجَاشَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534157|18بك|ويكي بيانات: L1534157]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَجَاشَ|18بك|صفحة ويكاموس]] · الجذر: جيش · ([[toolforge:ar-senses/review/L1534157|رابط المُفردة في الأداة]])
المعنى الثاني غير موجود في المصدر في صفحة المفردة (ص=603) والحديث الموجود في صفحة 115 غير مفسر بهذا المعنى أيضا. --[[مستخدم:أبو هشام|أبو هشام]] <sup>[[نقاش المستخدم:أبو هشام|«نقاش»]]</sup> 14:40، 27 يوليو 2026 (ت ع م)
<!-- اكتب وصف المشكلة هنا، قبل التوقيع. رجاءً لا تغيّر عنوان الموضوع ولا السطر الذي فوق هذا التعليق، فالأداة تعتمد عليهما في ربط النقاش بالمفردة. -->
== بلاغ من أداة مراجعة المعاني: اِسْتَبَعَ (L1536765) ==
'''اِسْتَبَعَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1536765|18بك|ويكي بيانات: L1536765]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَبَعَ|18بك|صفحة ويكاموس]] · الجذر: سبع · ([[toolforge:ar-senses/review/L1536765|رابط المُفردة في الأداة]])
صندوق المعلومات في ويكاموس لا يظهر بشكل صحيح.--[[مستخدم:إسلام|إسلام]] ([[نقاش المستخدم:إسلام|نقاش]]) 15:23، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: جَوَّهَ (L1534145) ==
'''جَوَّهَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534145|18بك|ويكي بيانات: L1534145]] [[ملف:Wiktionary-logo.svg|وصلة=جَوَّهَ|18بك|صفحة ويكاموس]] · الجذر: جوه · ([[toolforge:ar-senses/review/L1534145|رابط المُفردة في الأداة]])
المعنى بهذا التصريف خطأ، لم أعثر على جوّه فلانا أي جعله وجيها، ولم أجد جوّه السقاء أي رقعه بل وجدت جواه في معجم متن اللغة.
<!-- اكتب وصف المشكلة هنا، قبل التوقيع. رجاءً لا تغيّر عنوان الموضوع ولا السطر الذي فوق هذا التعليق، فالأداة تعتمد عليهما في ربط النقاش بالمفردة. --> --[[مستخدم:أبو هشام|أبو هشام]] <sup>[[نقاش المستخدم:أبو هشام|«نقاش»]]</sup> 15:48، 27 يوليو 2026 (ت ع م)
tu5dqfhh342w3ctklscuz9ccdoiii9y
1097655
1097644
2026-07-27T19:32:28Z
ForzaGreen
28665
/* بلاغ من أداة مراجعة المعاني: اِسْتَبَعَ (L1536765) */ ردّ
1097655
wikitext
text/x-wiki
== بلاغ من أداة مراجعة المعاني: اِسْتَرَقَ (L1480330) ==
'''اِسْتَرَقَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1480330|18بك|ويكي بيانات: L1480330]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَرَقَ|18بك|صفحة ويكاموس]] · الجذر: سرق · ([[toolforge:ar-senses/review/L1480330|رابط المُفردة في الأداة]])
كانت هناك مشكلة في صندوق المعلومات في ويكاموس بعد إنشاء الصفحات لجميع المفردات من جذر س ر ق: [[اِسْتَرَقَ]]، [[اِنْسَرَقَ]]، [[تَسَرَّقَ]]. --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 00:33، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. شكرا لك {{مس|إسلام}} التبليغ. فعلا كان هناك خلل في محارف الجذر [https://www.wikidata.org/wiki/Lexeme:L1012573 س ر ق] في ويكي بيانات. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:23، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: حَلَّى (L1534604) ==
'''حَلَّى''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534604|18بك|ويكي بيانات: L1534604]] [[ملف:Wiktionary-logo.svg|وصلة=حَلَّى|18بك|صفحة ويكاموس]] · الجذر: حلو · ([[toolforge:ar-senses/review/L1534604|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:27، 27 يوليو 2026 (ت ع م)
:شكرا لك @[[مستخدم:رِفْد|رِفْد]] على الإبلاغ. المشكلة في الفعل حَلَّى (وأفعال آخرين) أَنَّه يُوَلَّدُ من جذرين: ح-ل-ي و ح-ل-و. في ويكي بيانات توجد وحدتان معجميتان، واحدة لكل فعل، لكن في ويكاموس لا يُمكن إنشاء صفحتين بنفس الاسم. سأفكر في حل لهذه المشكلة وأوافيك بالجديد. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:28، 27 يوليو 2026 (ت ع م)
::حالة أخرى حيث يشترك جذران في نفس صيغة الفعل:
::* جذر ت-ل-و على وزن تفعّل => [[تَتَلَّى]] ([https://ar-senses.toolforge.org/review/L1533461 رابط المُفردة في الأداة]).
::* جذر ت-ل-ي على وزن تفعّل => [[تَتَلَّى]]
::[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:42، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: آرَنَ (L1532612) ==
'''آرَنَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1532612|18بك|ويكي بيانات: L1532612]] [[ملف:Wiktionary-logo.svg|وصلة=آرَنَ|18بك|صفحة ويكاموس]] · الجذر: أرن · ([[toolforge:ar-senses/review/L1532612|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:36، 27 يوليو 2026 (ت ع م)
:شكرا لك {{مس|رِفْد}} على التبليغ، المشكل سببه حالة خاصة حيث صيغة الفعل هي نفسها على وزنين:
:* جذر ء ر ن، على وزن أفعل => آرَنَ
:* جذر ء ر ن، على وزن فاعل => آرَنَ
:[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:38، 27 يوليو 2026 (ت ع م)
::{{أصلح}} ونُشِر في ويكاموس: [[آرَنَ]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:39، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: دَمْشَقَ (L1535560) ==
'''دَمْشَقَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1535560|18بك|ويكي بيانات: L1535560]] [[ملف:Wiktionary-logo.svg|وصلة=دَمْشَقَ|18بك|صفحة ويكاموس]] · الجذر: دمشق · ([[toolforge:ar-senses/review/L1535560|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''أثناء محاولة الإضافة في ويكي بيانات يظهر: invalid literal for int0 with :خطأ في النشر بويكي بيانات 'base 10: 'None'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:45، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. شكرا لك على التبليغ أخي {{مس|رِفْد}}. المُشكلة كانت بسبب مُعرف خاطئ لأحد المعاجم في قاعدة البيانات. أعدت إنشاء المعاني في ويكي بيانات وأنشأت الصفحة في ويكاموس: [[دَمْشَقَ]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:48، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: أَبَانَ (L1477016) ==
'''أَبَانَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1477016|18بك|ويكي بيانات: L1477016]] [[ملف:Wiktionary-logo.svg|وصلة=أَبَانَ|18بك|صفحة ويكاموس]] · الجذر: بين · ([[toolforge:ar-senses/review/L1477016|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:52، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. فعلا [[أَبَانَ|الصفحة]] كانت موجودة سَلَفًا، وكان المفروض من الأداة أن لا تُعطيك خيار إنشائها. المشكل كان مصدرة خطأ في تصريف الأجوف اليائي على وزن أفعل، فكانت الخوارزمية تقترح كلمة "أَبْيَنَ" (خطأ) بدل "أَبَانَ" (صحيح). [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:57، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: اِسْتَجَاشَ (L1534157) ==
'''اِسْتَجَاشَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534157|18بك|ويكي بيانات: L1534157]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَجَاشَ|18بك|صفحة ويكاموس]] · الجذر: جيش · ([[toolforge:ar-senses/review/L1534157|رابط المُفردة في الأداة]])
المعنى الثاني غير موجود في المصدر في صفحة المفردة (ص=603) والحديث الموجود في صفحة 115 غير مفسر بهذا المعنى أيضا. --[[مستخدم:أبو هشام|أبو هشام]] <sup>[[نقاش المستخدم:أبو هشام|«نقاش»]]</sup> 14:40، 27 يوليو 2026 (ت ع م)
<!-- اكتب وصف المشكلة هنا، قبل التوقيع. رجاءً لا تغيّر عنوان الموضوع ولا السطر الذي فوق هذا التعليق، فالأداة تعتمد عليهما في ربط النقاش بالمفردة. -->
== بلاغ من أداة مراجعة المعاني: اِسْتَبَعَ (L1536765) ==
'''اِسْتَبَعَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1536765|18بك|ويكي بيانات: L1536765]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَبَعَ|18بك|صفحة ويكاموس]] · الجذر: سبع · ([[toolforge:ar-senses/review/L1536765|رابط المُفردة في الأداة]])
صندوق المعلومات في ويكاموس لا يظهر بشكل صحيح.--[[مستخدم:إسلام|إسلام]] ([[نقاش المستخدم:إسلام|نقاش]]) 15:23، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. كان المشكل من ويكي بيانات في الوحدة المعجمية للجذر [[d:Lexeme:L5309|س ب ع]]. المشكل نفسه الذي كان في جذر [[d:Lexeme:L1012573|س ر ق]] سابقا. سأبحث إمكانية تصحيح كل الجذور في ويكي بيانات آليا. شكرا لك @[[مستخدم:إسلام|إسلام]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 19:32، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: جَوَّهَ (L1534145) ==
'''جَوَّهَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534145|18بك|ويكي بيانات: L1534145]] [[ملف:Wiktionary-logo.svg|وصلة=جَوَّهَ|18بك|صفحة ويكاموس]] · الجذر: جوه · ([[toolforge:ar-senses/review/L1534145|رابط المُفردة في الأداة]])
المعنى بهذا التصريف خطأ، لم أعثر على جوّه فلانا أي جعله وجيها، ولم أجد جوّه السقاء أي رقعه بل وجدت جواه في معجم متن اللغة.
<!-- اكتب وصف المشكلة هنا، قبل التوقيع. رجاءً لا تغيّر عنوان الموضوع ولا السطر الذي فوق هذا التعليق، فالأداة تعتمد عليهما في ربط النقاش بالمفردة. --> --[[مستخدم:أبو هشام|أبو هشام]] <sup>[[نقاش المستخدم:أبو هشام|«نقاش»]]</sup> 15:48، 27 يوليو 2026 (ت ع م)
7xco5ae342lrpm6tlkrzpbfcmnvca36
1097656
1097655
2026-07-27T19:33:09Z
ForzaGreen
28665
/* بلاغ من أداة مراجعة المعاني: جَوَّهَ (L1534145) */ تصحيح نسق النص
1097656
wikitext
text/x-wiki
== بلاغ من أداة مراجعة المعاني: اِسْتَرَقَ (L1480330) ==
'''اِسْتَرَقَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1480330|18بك|ويكي بيانات: L1480330]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَرَقَ|18بك|صفحة ويكاموس]] · الجذر: سرق · ([[toolforge:ar-senses/review/L1480330|رابط المُفردة في الأداة]])
كانت هناك مشكلة في صندوق المعلومات في ويكاموس بعد إنشاء الصفحات لجميع المفردات من جذر س ر ق: [[اِسْتَرَقَ]]، [[اِنْسَرَقَ]]، [[تَسَرَّقَ]]. --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 00:33، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. شكرا لك {{مس|إسلام}} التبليغ. فعلا كان هناك خلل في محارف الجذر [https://www.wikidata.org/wiki/Lexeme:L1012573 س ر ق] في ويكي بيانات. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:23، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: حَلَّى (L1534604) ==
'''حَلَّى''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534604|18بك|ويكي بيانات: L1534604]] [[ملف:Wiktionary-logo.svg|وصلة=حَلَّى|18بك|صفحة ويكاموس]] · الجذر: حلو · ([[toolforge:ar-senses/review/L1534604|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:27، 27 يوليو 2026 (ت ع م)
:شكرا لك @[[مستخدم:رِفْد|رِفْد]] على الإبلاغ. المشكلة في الفعل حَلَّى (وأفعال آخرين) أَنَّه يُوَلَّدُ من جذرين: ح-ل-ي و ح-ل-و. في ويكي بيانات توجد وحدتان معجميتان، واحدة لكل فعل، لكن في ويكاموس لا يُمكن إنشاء صفحتين بنفس الاسم. سأفكر في حل لهذه المشكلة وأوافيك بالجديد. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:28، 27 يوليو 2026 (ت ع م)
::حالة أخرى حيث يشترك جذران في نفس صيغة الفعل:
::* جذر ت-ل-و على وزن تفعّل => [[تَتَلَّى]] ([https://ar-senses.toolforge.org/review/L1533461 رابط المُفردة في الأداة]).
::* جذر ت-ل-ي على وزن تفعّل => [[تَتَلَّى]]
::[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:42، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: آرَنَ (L1532612) ==
'''آرَنَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1532612|18بك|ويكي بيانات: L1532612]] [[ملف:Wiktionary-logo.svg|وصلة=آرَنَ|18بك|صفحة ويكاموس]] · الجذر: أرن · ([[toolforge:ar-senses/review/L1532612|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:36، 27 يوليو 2026 (ت ع م)
:شكرا لك {{مس|رِفْد}} على التبليغ، المشكل سببه حالة خاصة حيث صيغة الفعل هي نفسها على وزنين:
:* جذر ء ر ن، على وزن أفعل => آرَنَ
:* جذر ء ر ن، على وزن فاعل => آرَنَ
:[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:38، 27 يوليو 2026 (ت ع م)
::{{أصلح}} ونُشِر في ويكاموس: [[آرَنَ]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:39، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: دَمْشَقَ (L1535560) ==
'''دَمْشَقَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1535560|18بك|ويكي بيانات: L1535560]] [[ملف:Wiktionary-logo.svg|وصلة=دَمْشَقَ|18بك|صفحة ويكاموس]] · الجذر: دمشق · ([[toolforge:ar-senses/review/L1535560|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''أثناء محاولة الإضافة في ويكي بيانات يظهر: invalid literal for int0 with :خطأ في النشر بويكي بيانات 'base 10: 'None'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:45، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. شكرا لك على التبليغ أخي {{مس|رِفْد}}. المُشكلة كانت بسبب مُعرف خاطئ لأحد المعاجم في قاعدة البيانات. أعدت إنشاء المعاني في ويكي بيانات وأنشأت الصفحة في ويكاموس: [[دَمْشَقَ]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:48، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: أَبَانَ (L1477016) ==
'''أَبَانَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1477016|18بك|ويكي بيانات: L1477016]] [[ملف:Wiktionary-logo.svg|وصلة=أَبَانَ|18بك|صفحة ويكاموس]] · الجذر: بين · ([[toolforge:ar-senses/review/L1477016|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:52، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. فعلا [[أَبَانَ|الصفحة]] كانت موجودة سَلَفًا، وكان المفروض من الأداة أن لا تُعطيك خيار إنشائها. المشكل كان مصدرة خطأ في تصريف الأجوف اليائي على وزن أفعل، فكانت الخوارزمية تقترح كلمة "أَبْيَنَ" (خطأ) بدل "أَبَانَ" (صحيح). [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:57، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: اِسْتَجَاشَ (L1534157) ==
'''اِسْتَجَاشَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534157|18بك|ويكي بيانات: L1534157]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَجَاشَ|18بك|صفحة ويكاموس]] · الجذر: جيش · ([[toolforge:ar-senses/review/L1534157|رابط المُفردة في الأداة]])
المعنى الثاني غير موجود في المصدر في صفحة المفردة (ص=603) والحديث الموجود في صفحة 115 غير مفسر بهذا المعنى أيضا. --[[مستخدم:أبو هشام|أبو هشام]] <sup>[[نقاش المستخدم:أبو هشام|«نقاش»]]</sup> 14:40، 27 يوليو 2026 (ت ع م)
<!-- اكتب وصف المشكلة هنا، قبل التوقيع. رجاءً لا تغيّر عنوان الموضوع ولا السطر الذي فوق هذا التعليق، فالأداة تعتمد عليهما في ربط النقاش بالمفردة. -->
== بلاغ من أداة مراجعة المعاني: اِسْتَبَعَ (L1536765) ==
'''اِسْتَبَعَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1536765|18بك|ويكي بيانات: L1536765]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَبَعَ|18بك|صفحة ويكاموس]] · الجذر: سبع · ([[toolforge:ar-senses/review/L1536765|رابط المُفردة في الأداة]])
صندوق المعلومات في ويكاموس لا يظهر بشكل صحيح.--[[مستخدم:إسلام|إسلام]] ([[نقاش المستخدم:إسلام|نقاش]]) 15:23، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. كان المشكل من ويكي بيانات في الوحدة المعجمية للجذر [[d:Lexeme:L5309|س ب ع]]. المشكل نفسه الذي كان في جذر [[d:Lexeme:L1012573|س ر ق]] سابقا. سأبحث إمكانية تصحيح كل الجذور في ويكي بيانات آليا. شكرا لك @[[مستخدم:إسلام|إسلام]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 19:32، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: جَوَّهَ (L1534145) ==
'''جَوَّهَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534145|18بك|ويكي بيانات: L1534145]] [[ملف:Wiktionary-logo.svg|وصلة=جَوَّهَ|18بك|صفحة ويكاموس]] · الجذر: جوه · ([[toolforge:ar-senses/review/L1534145|رابط المُفردة في الأداة]])
المعنى بهذا التصريف خطأ، لم أعثر على جوّه فلانا أي جعله وجيها، ولم أجد جوّه السقاء أي رقعه بل وجدت جواه في معجم متن اللغة. --[[مستخدم:أبو هشام|أبو هشام]] <sup>[[نقاش المستخدم:أبو هشام|«نقاش»]]</sup> 15:48، 27 يوليو 2026 (ت ع م)
2xeygl5eowdu72rtytb783r3pds2gtb
1097669
1097656
2026-07-27T22:26:00Z
ForzaGreen
28665
/* بلاغ من أداة مراجعة المعاني: اِسْتَبَعَ (L1536765) */ ردّ
1097669
wikitext
text/x-wiki
== بلاغ من أداة مراجعة المعاني: اِسْتَرَقَ (L1480330) ==
'''اِسْتَرَقَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1480330|18بك|ويكي بيانات: L1480330]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَرَقَ|18بك|صفحة ويكاموس]] · الجذر: سرق · ([[toolforge:ar-senses/review/L1480330|رابط المُفردة في الأداة]])
كانت هناك مشكلة في صندوق المعلومات في ويكاموس بعد إنشاء الصفحات لجميع المفردات من جذر س ر ق: [[اِسْتَرَقَ]]، [[اِنْسَرَقَ]]، [[تَسَرَّقَ]]. --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 00:33، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. شكرا لك {{مس|إسلام}} التبليغ. فعلا كان هناك خلل في محارف الجذر [https://www.wikidata.org/wiki/Lexeme:L1012573 س ر ق] في ويكي بيانات. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:23، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: حَلَّى (L1534604) ==
'''حَلَّى''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534604|18بك|ويكي بيانات: L1534604]] [[ملف:Wiktionary-logo.svg|وصلة=حَلَّى|18بك|صفحة ويكاموس]] · الجذر: حلو · ([[toolforge:ar-senses/review/L1534604|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:27، 27 يوليو 2026 (ت ع م)
:شكرا لك @[[مستخدم:رِفْد|رِفْد]] على الإبلاغ. المشكلة في الفعل حَلَّى (وأفعال آخرين) أَنَّه يُوَلَّدُ من جذرين: ح-ل-ي و ح-ل-و. في ويكي بيانات توجد وحدتان معجميتان، واحدة لكل فعل، لكن في ويكاموس لا يُمكن إنشاء صفحتين بنفس الاسم. سأفكر في حل لهذه المشكلة وأوافيك بالجديد. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:28، 27 يوليو 2026 (ت ع م)
::حالة أخرى حيث يشترك جذران في نفس صيغة الفعل:
::* جذر ت-ل-و على وزن تفعّل => [[تَتَلَّى]] ([https://ar-senses.toolforge.org/review/L1533461 رابط المُفردة في الأداة]).
::* جذر ت-ل-ي على وزن تفعّل => [[تَتَلَّى]]
::[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:42، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: آرَنَ (L1532612) ==
'''آرَنَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1532612|18بك|ويكي بيانات: L1532612]] [[ملف:Wiktionary-logo.svg|وصلة=آرَنَ|18بك|صفحة ويكاموس]] · الجذر: أرن · ([[toolforge:ar-senses/review/L1532612|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:36، 27 يوليو 2026 (ت ع م)
:شكرا لك {{مس|رِفْد}} على التبليغ، المشكل سببه حالة خاصة حيث صيغة الفعل هي نفسها على وزنين:
:* جذر ء ر ن، على وزن أفعل => آرَنَ
:* جذر ء ر ن، على وزن فاعل => آرَنَ
:[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:38، 27 يوليو 2026 (ت ع م)
::{{أصلح}} ونُشِر في ويكاموس: [[آرَنَ]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:39، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: دَمْشَقَ (L1535560) ==
'''دَمْشَقَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1535560|18بك|ويكي بيانات: L1535560]] [[ملف:Wiktionary-logo.svg|وصلة=دَمْشَقَ|18بك|صفحة ويكاموس]] · الجذر: دمشق · ([[toolforge:ar-senses/review/L1535560|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''أثناء محاولة الإضافة في ويكي بيانات يظهر: invalid literal for int0 with :خطأ في النشر بويكي بيانات 'base 10: 'None'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:45، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. شكرا لك على التبليغ أخي {{مس|رِفْد}}. المُشكلة كانت بسبب مُعرف خاطئ لأحد المعاجم في قاعدة البيانات. أعدت إنشاء المعاني في ويكي بيانات وأنشأت الصفحة في ويكاموس: [[دَمْشَقَ]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:48، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: أَبَانَ (L1477016) ==
'''أَبَانَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1477016|18بك|ويكي بيانات: L1477016]] [[ملف:Wiktionary-logo.svg|وصلة=أَبَانَ|18بك|صفحة ويكاموس]] · الجذر: بين · ([[toolforge:ar-senses/review/L1477016|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:52، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. فعلا [[أَبَانَ|الصفحة]] كانت موجودة سَلَفًا، وكان المفروض من الأداة أن لا تُعطيك خيار إنشائها. المشكل كان مصدرة خطأ في تصريف الأجوف اليائي على وزن أفعل، فكانت الخوارزمية تقترح كلمة "أَبْيَنَ" (خطأ) بدل "أَبَانَ" (صحيح). [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:57، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: اِسْتَجَاشَ (L1534157) ==
'''اِسْتَجَاشَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534157|18بك|ويكي بيانات: L1534157]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَجَاشَ|18بك|صفحة ويكاموس]] · الجذر: جيش · ([[toolforge:ar-senses/review/L1534157|رابط المُفردة في الأداة]])
المعنى الثاني غير موجود في المصدر في صفحة المفردة (ص=603) والحديث الموجود في صفحة 115 غير مفسر بهذا المعنى أيضا. --[[مستخدم:أبو هشام|أبو هشام]] <sup>[[نقاش المستخدم:أبو هشام|«نقاش»]]</sup> 14:40، 27 يوليو 2026 (ت ع م)
<!-- اكتب وصف المشكلة هنا، قبل التوقيع. رجاءً لا تغيّر عنوان الموضوع ولا السطر الذي فوق هذا التعليق، فالأداة تعتمد عليهما في ربط النقاش بالمفردة. -->
== بلاغ من أداة مراجعة المعاني: اِسْتَبَعَ (L1536765) ==
'''اِسْتَبَعَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1536765|18بك|ويكي بيانات: L1536765]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَبَعَ|18بك|صفحة ويكاموس]] · الجذر: سبع · ([[toolforge:ar-senses/review/L1536765|رابط المُفردة في الأداة]])
صندوق المعلومات في ويكاموس لا يظهر بشكل صحيح.--[[مستخدم:إسلام|إسلام]] ([[نقاش المستخدم:إسلام|نقاش]]) 15:23، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. كان المشكل من ويكي بيانات في الوحدة المعجمية للجذر [[d:Lexeme:L5309|س ب ع]]. المشكل نفسه الذي كان في جذر [[d:Lexeme:L1012573|س ر ق]] سابقا. سأبحث إمكانية تصحيح كل الجذور في ويكي بيانات آليا. شكرا لك @[[مستخدم:إسلام|إسلام]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 19:32، 27 يوليو 2026 (ت ع م)
::أصلحت المشكل في جذرين آخرين هما [https://www.wikidata.org/wiki/Lexeme:L705777 س ه ل] و [https://www.wikidata.org/wiki/Lexeme:L1012576 ر ك ب]. باقي الجذور سليمة. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 22:26، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: جَوَّهَ (L1534145) ==
'''جَوَّهَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534145|18بك|ويكي بيانات: L1534145]] [[ملف:Wiktionary-logo.svg|وصلة=جَوَّهَ|18بك|صفحة ويكاموس]] · الجذر: جوه · ([[toolforge:ar-senses/review/L1534145|رابط المُفردة في الأداة]])
المعنى بهذا التصريف خطأ، لم أعثر على جوّه فلانا أي جعله وجيها، ولم أجد جوّه السقاء أي رقعه بل وجدت جواه في معجم متن اللغة. --[[مستخدم:أبو هشام|أبو هشام]] <sup>[[نقاش المستخدم:أبو هشام|«نقاش»]]</sup> 15:48، 27 يوليو 2026 (ت ع م)
qvqsrnrxk15bc4731euyb7yel0vglu7
1097671
1097669
2026-07-28T09:23:44Z
أبو هشام
20788
/* بلاغ من أداة مراجعة المعاني: جَوْرَبَ (L1487159) */ قسم جديد
1097671
wikitext
text/x-wiki
== بلاغ من أداة مراجعة المعاني: اِسْتَرَقَ (L1480330) ==
'''اِسْتَرَقَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1480330|18بك|ويكي بيانات: L1480330]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَرَقَ|18بك|صفحة ويكاموس]] · الجذر: سرق · ([[toolforge:ar-senses/review/L1480330|رابط المُفردة في الأداة]])
كانت هناك مشكلة في صندوق المعلومات في ويكاموس بعد إنشاء الصفحات لجميع المفردات من جذر س ر ق: [[اِسْتَرَقَ]]، [[اِنْسَرَقَ]]، [[تَسَرَّقَ]]. --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 00:33، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. شكرا لك {{مس|إسلام}} التبليغ. فعلا كان هناك خلل في محارف الجذر [https://www.wikidata.org/wiki/Lexeme:L1012573 س ر ق] في ويكي بيانات. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:23، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: حَلَّى (L1534604) ==
'''حَلَّى''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534604|18بك|ويكي بيانات: L1534604]] [[ملف:Wiktionary-logo.svg|وصلة=حَلَّى|18بك|صفحة ويكاموس]] · الجذر: حلو · ([[toolforge:ar-senses/review/L1534604|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:27، 27 يوليو 2026 (ت ع م)
:شكرا لك @[[مستخدم:رِفْد|رِفْد]] على الإبلاغ. المشكلة في الفعل حَلَّى (وأفعال آخرين) أَنَّه يُوَلَّدُ من جذرين: ح-ل-ي و ح-ل-و. في ويكي بيانات توجد وحدتان معجميتان، واحدة لكل فعل، لكن في ويكاموس لا يُمكن إنشاء صفحتين بنفس الاسم. سأفكر في حل لهذه المشكلة وأوافيك بالجديد. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:28، 27 يوليو 2026 (ت ع م)
::حالة أخرى حيث يشترك جذران في نفس صيغة الفعل:
::* جذر ت-ل-و على وزن تفعّل => [[تَتَلَّى]] ([https://ar-senses.toolforge.org/review/L1533461 رابط المُفردة في الأداة]).
::* جذر ت-ل-ي على وزن تفعّل => [[تَتَلَّى]]
::[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:42، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: آرَنَ (L1532612) ==
'''آرَنَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1532612|18بك|ويكي بيانات: L1532612]] [[ملف:Wiktionary-logo.svg|وصلة=آرَنَ|18بك|صفحة ويكاموس]] · الجذر: أرن · ([[toolforge:ar-senses/review/L1532612|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:36، 27 يوليو 2026 (ت ع م)
:شكرا لك {{مس|رِفْد}} على التبليغ، المشكل سببه حالة خاصة حيث صيغة الفعل هي نفسها على وزنين:
:* جذر ء ر ن، على وزن أفعل => آرَنَ
:* جذر ء ر ن، على وزن فاعل => آرَنَ
:[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:38، 27 يوليو 2026 (ت ع م)
::{{أصلح}} ونُشِر في ويكاموس: [[آرَنَ]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:39، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: دَمْشَقَ (L1535560) ==
'''دَمْشَقَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1535560|18بك|ويكي بيانات: L1535560]] [[ملف:Wiktionary-logo.svg|وصلة=دَمْشَقَ|18بك|صفحة ويكاموس]] · الجذر: دمشق · ([[toolforge:ar-senses/review/L1535560|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''أثناء محاولة الإضافة في ويكي بيانات يظهر: invalid literal for int0 with :خطأ في النشر بويكي بيانات 'base 10: 'None'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:45، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. شكرا لك على التبليغ أخي {{مس|رِفْد}}. المُشكلة كانت بسبب مُعرف خاطئ لأحد المعاجم في قاعدة البيانات. أعدت إنشاء المعاني في ويكي بيانات وأنشأت الصفحة في ويكاموس: [[دَمْشَقَ]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:48، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: أَبَانَ (L1477016) ==
'''أَبَانَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1477016|18بك|ويكي بيانات: L1477016]] [[ملف:Wiktionary-logo.svg|وصلة=أَبَانَ|18بك|صفحة ويكاموس]] · الجذر: بين · ([[toolforge:ar-senses/review/L1477016|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:52، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. فعلا [[أَبَانَ|الصفحة]] كانت موجودة سَلَفًا، وكان المفروض من الأداة أن لا تُعطيك خيار إنشائها. المشكل كان مصدرة خطأ في تصريف الأجوف اليائي على وزن أفعل، فكانت الخوارزمية تقترح كلمة "أَبْيَنَ" (خطأ) بدل "أَبَانَ" (صحيح). [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:57، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: اِسْتَجَاشَ (L1534157) ==
'''اِسْتَجَاشَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534157|18بك|ويكي بيانات: L1534157]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَجَاشَ|18بك|صفحة ويكاموس]] · الجذر: جيش · ([[toolforge:ar-senses/review/L1534157|رابط المُفردة في الأداة]])
المعنى الثاني غير موجود في المصدر في صفحة المفردة (ص=603) والحديث الموجود في صفحة 115 غير مفسر بهذا المعنى أيضا. --[[مستخدم:أبو هشام|أبو هشام]] <sup>[[نقاش المستخدم:أبو هشام|«نقاش»]]</sup> 14:40، 27 يوليو 2026 (ت ع م)
<!-- اكتب وصف المشكلة هنا، قبل التوقيع. رجاءً لا تغيّر عنوان الموضوع ولا السطر الذي فوق هذا التعليق، فالأداة تعتمد عليهما في ربط النقاش بالمفردة. -->
== بلاغ من أداة مراجعة المعاني: اِسْتَبَعَ (L1536765) ==
'''اِسْتَبَعَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1536765|18بك|ويكي بيانات: L1536765]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَبَعَ|18بك|صفحة ويكاموس]] · الجذر: سبع · ([[toolforge:ar-senses/review/L1536765|رابط المُفردة في الأداة]])
صندوق المعلومات في ويكاموس لا يظهر بشكل صحيح.--[[مستخدم:إسلام|إسلام]] ([[نقاش المستخدم:إسلام|نقاش]]) 15:23، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. كان المشكل من ويكي بيانات في الوحدة المعجمية للجذر [[d:Lexeme:L5309|س ب ع]]. المشكل نفسه الذي كان في جذر [[d:Lexeme:L1012573|س ر ق]] سابقا. سأبحث إمكانية تصحيح كل الجذور في ويكي بيانات آليا. شكرا لك @[[مستخدم:إسلام|إسلام]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 19:32، 27 يوليو 2026 (ت ع م)
::أصلحت المشكل في جذرين آخرين هما [https://www.wikidata.org/wiki/Lexeme:L705777 س ه ل] و [https://www.wikidata.org/wiki/Lexeme:L1012576 ر ك ب]. باقي الجذور سليمة. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 22:26، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: جَوَّهَ (L1534145) ==
'''جَوَّهَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534145|18بك|ويكي بيانات: L1534145]] [[ملف:Wiktionary-logo.svg|وصلة=جَوَّهَ|18بك|صفحة ويكاموس]] · الجذر: جوه · ([[toolforge:ar-senses/review/L1534145|رابط المُفردة في الأداة]])
المعنى بهذا التصريف خطأ، لم أعثر على جوّه فلانا أي جعله وجيها، ولم أجد جوّه السقاء أي رقعه بل وجدت جواه في معجم متن اللغة. --[[مستخدم:أبو هشام|أبو هشام]] <sup>[[نقاش المستخدم:أبو هشام|«نقاش»]]</sup> 15:48، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: جَوْرَبَ (L1487159) ==
'''جَوْرَبَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1487159|18بك|ويكي بيانات: L1487159]] [[ملف:Wiktionary-logo.svg|وصلة=جَوْرَبَ|18بك|صفحة ويكاموس]] · الجذر: جورب · ([[toolforge:ar-senses/review/L1487159|رابط المُفردة في الأداة]])
خطأ في صندوق المعلومات. --[[مستخدم:أبو هشام|أبو هشام]] <sup>[[نقاش المستخدم:أبو هشام|«نقاش»]]</sup> 09:23، 28 يوليو 2026 (ت ع م)
g8wra3pvtrzhpmqlo873h3ijnwbyagj
1097680
1097671
2026-07-28T11:42:59Z
إسلام
12622
/* بلاغ من أداة مراجعة المعاني: اِسْتَبَعَ (L1536765) */ ردّ
1097680
wikitext
text/x-wiki
== بلاغ من أداة مراجعة المعاني: اِسْتَرَقَ (L1480330) ==
'''اِسْتَرَقَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1480330|18بك|ويكي بيانات: L1480330]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَرَقَ|18بك|صفحة ويكاموس]] · الجذر: سرق · ([[toolforge:ar-senses/review/L1480330|رابط المُفردة في الأداة]])
كانت هناك مشكلة في صندوق المعلومات في ويكاموس بعد إنشاء الصفحات لجميع المفردات من جذر س ر ق: [[اِسْتَرَقَ]]، [[اِنْسَرَقَ]]، [[تَسَرَّقَ]]. --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 00:33، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. شكرا لك {{مس|إسلام}} التبليغ. فعلا كان هناك خلل في محارف الجذر [https://www.wikidata.org/wiki/Lexeme:L1012573 س ر ق] في ويكي بيانات. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:23، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: حَلَّى (L1534604) ==
'''حَلَّى''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534604|18بك|ويكي بيانات: L1534604]] [[ملف:Wiktionary-logo.svg|وصلة=حَلَّى|18بك|صفحة ويكاموس]] · الجذر: حلو · ([[toolforge:ar-senses/review/L1534604|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:27، 27 يوليو 2026 (ت ع م)
:شكرا لك @[[مستخدم:رِفْد|رِفْد]] على الإبلاغ. المشكلة في الفعل حَلَّى (وأفعال آخرين) أَنَّه يُوَلَّدُ من جذرين: ح-ل-ي و ح-ل-و. في ويكي بيانات توجد وحدتان معجميتان، واحدة لكل فعل، لكن في ويكاموس لا يُمكن إنشاء صفحتين بنفس الاسم. سأفكر في حل لهذه المشكلة وأوافيك بالجديد. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:28، 27 يوليو 2026 (ت ع م)
::حالة أخرى حيث يشترك جذران في نفس صيغة الفعل:
::* جذر ت-ل-و على وزن تفعّل => [[تَتَلَّى]] ([https://ar-senses.toolforge.org/review/L1533461 رابط المُفردة في الأداة]).
::* جذر ت-ل-ي على وزن تفعّل => [[تَتَلَّى]]
::[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:42، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: آرَنَ (L1532612) ==
'''آرَنَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1532612|18بك|ويكي بيانات: L1532612]] [[ملف:Wiktionary-logo.svg|وصلة=آرَنَ|18بك|صفحة ويكاموس]] · الجذر: أرن · ([[toolforge:ar-senses/review/L1532612|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:36، 27 يوليو 2026 (ت ع م)
:شكرا لك {{مس|رِفْد}} على التبليغ، المشكل سببه حالة خاصة حيث صيغة الفعل هي نفسها على وزنين:
:* جذر ء ر ن، على وزن أفعل => آرَنَ
:* جذر ء ر ن، على وزن فاعل => آرَنَ
:[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:38، 27 يوليو 2026 (ت ع م)
::{{أصلح}} ونُشِر في ويكاموس: [[آرَنَ]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:39، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: دَمْشَقَ (L1535560) ==
'''دَمْشَقَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1535560|18بك|ويكي بيانات: L1535560]] [[ملف:Wiktionary-logo.svg|وصلة=دَمْشَقَ|18بك|صفحة ويكاموس]] · الجذر: دمشق · ([[toolforge:ar-senses/review/L1535560|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''أثناء محاولة الإضافة في ويكي بيانات يظهر: invalid literal for int0 with :خطأ في النشر بويكي بيانات 'base 10: 'None'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:45، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. شكرا لك على التبليغ أخي {{مس|رِفْد}}. المُشكلة كانت بسبب مُعرف خاطئ لأحد المعاجم في قاعدة البيانات. أعدت إنشاء المعاني في ويكي بيانات وأنشأت الصفحة في ويكاموس: [[دَمْشَقَ]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:48، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: أَبَانَ (L1477016) ==
'''أَبَانَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1477016|18بك|ويكي بيانات: L1477016]] [[ملف:Wiktionary-logo.svg|وصلة=أَبَانَ|18بك|صفحة ويكاموس]] · الجذر: بين · ([[toolforge:ar-senses/review/L1477016|رابط المُفردة في الأداة]])
إبلاغ من الزميل {{مس|رِفْد}}: ''لا يمكن نشرها في ويكاموس عند الضغط على زر النشر يظهر: "خطأ: الصفحة موجودة بالفعل".'' --[[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:52، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. فعلا [[أَبَانَ|الصفحة]] كانت موجودة سَلَفًا، وكان المفروض من الأداة أن لا تُعطيك خيار إنشائها. المشكل كان مصدرة خطأ في تصريف الأجوف اليائي على وزن أفعل، فكانت الخوارزمية تقترح كلمة "أَبْيَنَ" (خطأ) بدل "أَبَانَ" (صحيح). [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 11:57، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: اِسْتَجَاشَ (L1534157) ==
'''اِسْتَجَاشَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534157|18بك|ويكي بيانات: L1534157]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَجَاشَ|18بك|صفحة ويكاموس]] · الجذر: جيش · ([[toolforge:ar-senses/review/L1534157|رابط المُفردة في الأداة]])
المعنى الثاني غير موجود في المصدر في صفحة المفردة (ص=603) والحديث الموجود في صفحة 115 غير مفسر بهذا المعنى أيضا. --[[مستخدم:أبو هشام|أبو هشام]] <sup>[[نقاش المستخدم:أبو هشام|«نقاش»]]</sup> 14:40، 27 يوليو 2026 (ت ع م)
<!-- اكتب وصف المشكلة هنا، قبل التوقيع. رجاءً لا تغيّر عنوان الموضوع ولا السطر الذي فوق هذا التعليق، فالأداة تعتمد عليهما في ربط النقاش بالمفردة. -->
== بلاغ من أداة مراجعة المعاني: اِسْتَبَعَ (L1536765) ==
'''اِسْتَبَعَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1536765|18بك|ويكي بيانات: L1536765]] [[ملف:Wiktionary-logo.svg|وصلة=اِسْتَبَعَ|18بك|صفحة ويكاموس]] · الجذر: سبع · ([[toolforge:ar-senses/review/L1536765|رابط المُفردة في الأداة]])
صندوق المعلومات في ويكاموس لا يظهر بشكل صحيح.--[[مستخدم:إسلام|إسلام]] ([[نقاش المستخدم:إسلام|نقاش]]) 15:23، 27 يوليو 2026 (ت ع م)
:{{أصلح}}. كان المشكل من ويكي بيانات في الوحدة المعجمية للجذر [[d:Lexeme:L5309|س ب ع]]. المشكل نفسه الذي كان في جذر [[d:Lexeme:L1012573|س ر ق]] سابقا. سأبحث إمكانية تصحيح كل الجذور في ويكي بيانات آليا. شكرا لك @[[مستخدم:إسلام|إسلام]]. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 19:32، 27 يوليو 2026 (ت ع م)
::أصلحت المشكل في جذرين آخرين هما [https://www.wikidata.org/wiki/Lexeme:L705777 س ه ل] و [https://www.wikidata.org/wiki/Lexeme:L1012576 ر ك ب]. باقي الجذور سليمة. [[مستخدم:ForzaGreen|وائل]] ([[نقاش المستخدم:ForzaGreen|نقاش]]) 22:26، 27 يوليو 2026 (ت ع م)
:::@[[مستخدم:ForzaGreen|ForzaGreen]] شكرا جزيلا [[مستخدم:إسلام|إسلام]] ([[نقاش المستخدم:إسلام|نقاش]]) 11:42، 28 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: جَوَّهَ (L1534145) ==
'''جَوَّهَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1534145|18بك|ويكي بيانات: L1534145]] [[ملف:Wiktionary-logo.svg|وصلة=جَوَّهَ|18بك|صفحة ويكاموس]] · الجذر: جوه · ([[toolforge:ar-senses/review/L1534145|رابط المُفردة في الأداة]])
المعنى بهذا التصريف خطأ، لم أعثر على جوّه فلانا أي جعله وجيها، ولم أجد جوّه السقاء أي رقعه بل وجدت جواه في معجم متن اللغة. --[[مستخدم:أبو هشام|أبو هشام]] <sup>[[نقاش المستخدم:أبو هشام|«نقاش»]]</sup> 15:48، 27 يوليو 2026 (ت ع م)
== بلاغ من أداة مراجعة المعاني: جَوْرَبَ (L1487159) ==
'''جَوْرَبَ''' [[ملف:Wikidata Favicon color.svg|وصلة=d:Lexeme:L1487159|18بك|ويكي بيانات: L1487159]] [[ملف:Wiktionary-logo.svg|وصلة=جَوْرَبَ|18بك|صفحة ويكاموس]] · الجذر: جورب · ([[toolforge:ar-senses/review/L1487159|رابط المُفردة في الأداة]])
خطأ في صندوق المعلومات. --[[مستخدم:أبو هشام|أبو هشام]] <sup>[[نقاش المستخدم:أبو هشام|«نقاش»]]</sup> 09:23، 28 يوليو 2026 (ت ع م)
srqcffw91yl8ruhnvw4n5hajhxg10nl
جَايَضَ
0
240651
1097628
2026-07-27T14:14:15Z
أبو هشام
20788
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097628
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1534159}}
=== المعاني ===
'''جَايَضَ''' {{فاعل}}
{{معجمية|L1534159|معاني}}
=== النطق ===
* {{أصد-عر|جَايَضَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=جيض|وزن=فاعل}}
=== المراجع ===
{{مراجع}}
t85w7osz63byplwqhkr9f5j47wjirjm
اِسْتَجَاشَ
0
240652
1097631
2026-07-27T14:43:14Z
أبو هشام
20788
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097631
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1534157}}
=== المعاني ===
'''اِسْتَجَاشَ''' {{استفعل}}
{{معجمية|L1534157|معاني}}
=== النطق ===
* {{أصد-عر|اِسْتَجَاشَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=جيش|وزن=استفعل}}
=== المراجع ===
{{مراجع}}
72ofe7o2fllj5qvzjtvqakujry0ihjq
أَجَاءَ
0
240653
1097633
2026-07-27T14:53:07Z
أبو هشام
20788
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097633
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1534153}}
=== المعاني ===
'''أَجَاءَ''' {{أفعل}}
{{معجمية|L1534153|معاني}}
=== النطق ===
* {{أصد-عر|أَجَاءَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=جيأ|وزن=أفعل}}
=== المراجع ===
{{مراجع}}
2boffuz64t3ufd9afalq1ja68m1d784
جَايَأَ
0
240654
1097634
2026-07-27T15:06:40Z
أبو هشام
20788
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097634
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1534154}}
=== المعاني ===
'''جَايَأَ''' {{فاعل}}
{{معجمية|L1534154|معاني}}
=== النطق ===
* {{أصد-عر|جَايَأَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=جيأ|وزن=فاعل}}
=== المراجع ===
{{مراجع}}
htt3i3rwttltwyxnfkgkzxu42iub2iw
تَسَدَّرَ
0
240655
1097635
2026-07-27T15:16:38Z
إسلام
12622
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097635
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1497805}}
=== المعاني ===
'''تَسَدَّرَ''' {{تفعّل}}
{{معجمية|L1497805|معاني}}
=== النطق ===
* {{أصد-عر|تَسَدَّرَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=سدر|وزن=تفعّل}}
=== المراجع ===
{{مراجع}}
n5sc2u5arn1kycb3bfiaxptl9o0v1xw
سَرْبَطَ
0
240656
1097636
2026-07-27T15:17:28Z
إسلام
12622
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097636
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1536868}}
=== المعاني ===
'''سَرْبَطَ''' {{فعلل}}
{{معجمية|L1536868|معاني}}
=== النطق ===
* {{أصد-عر|سَرْبَطَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=سربط|وزن=فعلل}}
=== المراجع ===
{{مراجع}}
tsmuczcweste58ss7em029vpgnnrw55
اِسْتَسْرَجَ
0
240657
1097637
2026-07-27T15:18:03Z
إسلام
12622
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097637
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1536869}}
=== المعاني ===
'''اِسْتَسْرَجَ''' {{استفعل}}
{{معجمية|L1536869|معاني}}
=== النطق ===
* {{أصد-عر|اِسْتَسْرَجَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=سرج|وزن=استفعل}}
=== المراجع ===
{{مراجع}}
cju5mqdvnj2dzbmtipc70hdiojk49ma
اِجْتَوَى
0
240658
1097638
2026-07-27T15:19:18Z
أبو هشام
20788
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097638
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1534150}}
=== المعاني ===
'''اِجْتَوَى''' {{افتعل}}
{{معجمية|L1534150|معاني}}
=== النطق ===
* {{أصد-عر|اِجْتَوَى}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=جوي|وزن=افتعل}}
=== المراجع ===
{{مراجع}}
njxni0wqdl2soyqzivwyt2xoszs962j
سَرْجَنَ
0
240659
1097639
2026-07-27T15:20:53Z
إسلام
12622
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097639
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1536870}}
=== المعاني ===
'''سَرْجَنَ''' {{فعلل}}
{{معجمية|L1536870|معاني}}
=== النطق ===
* {{أصد-عر|سَرْجَنَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=سرجن|وزن=فعلل}}
=== المراجع ===
{{مراجع}}
remkm43mvnp9kxzmubr97qrueptso8h
سَرْدَحَ
0
240660
1097641
2026-07-27T15:25:27Z
إسلام
12622
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097641
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1536876}}
=== المعاني ===
'''سَرْدَحَ''' {{فعلل}}
{{معجمية|L1536876|معاني}}
=== النطق ===
* {{أصد-عر|سَرْدَحَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=سردح|وزن=فعلل}}
=== المراجع ===
{{مراجع}}
1mxrno7vknmqd91j3jwaic0qmboqtet
سَرْدَقَ
0
240661
1097642
2026-07-27T15:26:23Z
إسلام
12622
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097642
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1496324}}
=== المعاني ===
'''سَرْدَقَ''' {{فعلل}}
{{معجمية|L1496324|معاني}}
=== النطق ===
* {{أصد-عر|سَرْدَقَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=سردق|وزن=فعلل}}
=== المراجع ===
{{مراجع}}
7nlt4yityclqx1hw6olsrr652r57cxj
جَوِيَ
0
240662
1097643
2026-07-27T15:34:02Z
أبو هشام
20788
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097643
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1488000}}
=== المعاني ===
'''جَوِيَ''' {{سمع}}
{{معجمية|L1488000|معاني}}
=== النطق ===
* {{أصد-عر|جَوِيَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=جوي|وزن=فعِل يفعَل}}
=== المراجع ===
{{مراجع}}
eyykcv0343oy8tndgk5oc62djdhhutq
تَجَوَّنَ
0
240663
1097645
2026-07-27T16:10:04Z
أبو هشام
20788
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097645
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1534142}}
=== المعاني ===
'''تَجَوَّنَ''' {{تفعّل}}
{{معجمية|L1534142|معاني}}
=== النطق ===
* {{أصد-عر|تَجَوَّنَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=جون|وزن=تفعّل}}
=== المراجع ===
{{مراجع}}
jkgn6d9ej4xx494jcucg1e93xbsstbp
أَجَالَ
0
240664
1097646
2026-07-27T16:26:05Z
أبو هشام
20788
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097646
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1496350}}
=== المعاني ===
'''أَجَالَ''' {{أفعل}}
{{معجمية|L1496350|معاني}}
=== النطق ===
* {{أصد-عر|أَجَالَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=جول|وزن=أفعل}}
=== المراجع ===
{{مراجع}}
1xmnnklbvl89c9mjdyiyezwccax4930
اِجْتَالَ
0
240665
1097647
2026-07-27T16:37:23Z
أبو هشام
20788
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097647
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1534138}}
=== المعاني ===
'''اِجْتَالَ''' {{افتعل}}
{{معجمية|L1534138|معاني}}
=== النطق ===
* {{أصد-عر|اِجْتَالَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=جول|وزن=افتعل}}
=== المراجع ===
{{مراجع}}
bzycsy7cxtufxi7zazfjrgpfcz3vbd9
اِسْتَجَالَ
0
240666
1097648
2026-07-27T16:49:31Z
أبو هشام
20788
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097648
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1534137}}
=== المعاني ===
'''اِسْتَجَالَ''' {{استفعل}}
{{معجمية|L1534137|معاني}}
=== النطق ===
* {{أصد-عر|اِسْتَجَالَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=جول|وزن=استفعل}}
=== المراجع ===
{{مراجع}}
oi4zkoemu2j59rns43qznl0v9x0vku4
اِنْجَالَ
0
240667
1097649
2026-07-27T17:09:04Z
أبو هشام
20788
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097649
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1497518}}
=== المعاني ===
'''اِنْجَالَ''' {{انفعل}}
{{معجمية|L1497518|معاني}}
=== النطق ===
* {{أصد-عر|اِنْجَالَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=جول|وزن=انفعل}}
=== المراجع ===
{{مراجع}}
2mpydrq4qfd1gtj1m9zp5f5llqrmrop
تَجَاوَلَ
0
240668
1097650
2026-07-27T17:10:16Z
أبو هشام
20788
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097650
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1534139}}
=== المعاني ===
'''تَجَاوَلَ''' {{تفاعل}}
{{معجمية|L1534139|معاني}}
=== النطق ===
* {{أصد-عر|تَجَاوَلَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=جول|وزن=تفاعل}}
=== المراجع ===
{{مراجع}}
k6wazk0s3sc6287a84j6331l1mgr3bk
جَاوَلَ
0
240669
1097651
2026-07-27T17:11:52Z
أبو هشام
20788
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097651
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1534140}}
=== المعاني ===
'''جَاوَلَ''' {{فاعل}}
{{معجمية|L1534140|معاني}}
=== النطق ===
* {{أصد-عر|جَاوَلَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=جول|وزن=فاعل}}
=== المراجع ===
{{مراجع}}
pxlkttuty9ahh2af1llvxvv1arse3ox
تَجَوَّشَ
0
240670
1097652
2026-07-27T17:14:11Z
أبو هشام
20788
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097652
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1534130}}
=== المعاني ===
'''تَجَوَّشَ''' {{تفعّل}}
{{معجمية|L1534130|معاني}}
=== النطق ===
* {{أصد-عر|تَجَوَّشَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=جوش|وزن=تفعّل}}
=== المراجع ===
{{مراجع}}
gcxxtpms32inwqc9oarg7ro2qaybwn3
تَجَوَّظَ
0
240671
1097653
2026-07-27T17:16:04Z
أبو هشام
20788
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097653
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1534131}}
=== المعاني ===
'''تَجَوَّظَ''' {{تفعّل}}
{{معجمية|L1534131|معاني}}
=== النطق ===
* {{أصد-عر|تَجَوَّظَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=جوظ|وزن=تفعّل}}
=== المراجع ===
{{مراجع}}
d7e90r0h9ni0ed34ync4fyuemgtl0rs
تَجَوْرَبَ
0
240672
1097654
2026-07-27T17:23:10Z
أبو هشام
20788
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097654
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1492029}}
=== المعاني ===
'''تَجَوْرَبَ''' {{تفعلل}}
{{معجمية|L1492029|معاني}}
=== النطق ===
* {{أصد-عر|تَجَوْرَبَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=جورب|وزن=تفعلل}}
=== المراجع ===
{{مراجع}}
jfepmor9tqdl6rv1n1116o4qlnvjsn7
نقاش المستخدم:ⵣⵉⵔⵉ ⴰⵎⵖⵏⴰⵙ
3
240673
1097660
2026-07-27T20:39:38Z
Mfield
38262
نقل Mfield صفحة [[نقاش المستخدم:ⵣⵉⵔⵉ ⴰⵎⵖⵏⴰⵙ]] إلى [[نقاش المستخدم:Zack Prime]]: نُقِلت الصفحة آليا عند إعادة تسمية المستخدم «[[Special:CentralAuth/ⵣⵉⵔⵉ ⴰⵎⵖⵏⴰⵙ|ⵣⵉⵔⵉ ⴰⵎⵖⵏⴰⵙ]]» إلى «[[Special:CentralAuth/Zack Prime|Zack Prime]]».
1097660
wikitext
text/x-wiki
#تحويل [[نقاش المستخدم:Zack Prime]]
s2fpnb6lifhk7iu6u96vopqojhi7yic
جَوْرَبَ
0
240674
1097670
2026-07-28T09:22:04Z
أبو هشام
20788
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097670
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1487159}}
=== المعاني ===
'''جَوْرَبَ''' {{فعلل}}
{{معجمية|L1487159|معاني}}
=== النطق ===
* {{أصد-عر|جَوْرَبَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=جورب|وزن=فعلل}}
=== المراجع ===
{{مراجع}}
s8ecbe2mpg72aqydkajjtirqr2vwfem
اِسْتَجَاعَ
0
240675
1097672
2026-07-28T09:27:36Z
أبو هشام
20788
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097672
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1534133}}
=== المعاني ===
'''اِسْتَجَاعَ''' {{استفعل}}
{{معجمية|L1534133|معاني}}
=== النطق ===
* {{أصد-عر|اِسْتَجَاعَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=جوع|وزن=استفعل}}
=== المراجع ===
{{مراجع}}
3ylqtn47gaqybnc65c3rpymqte8juhh
تَجَوَّعَ
0
240676
1097673
2026-07-28T09:31:53Z
أبو هشام
20788
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097673
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1496510}}
=== المعاني ===
'''تَجَوَّعَ''' {{تفعّل}}
{{معجمية|L1496510|معاني}}
=== النطق ===
* {{أصد-عر|تَجَوَّعَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=جوع|وزن=تفعّل}}
=== المراجع ===
{{مراجع}}
l46i73s5sirt52p9k1d7idavxq7efum
سَرْدَكَ
0
240677
1097674
2026-07-28T11:31:54Z
إسلام
12622
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097674
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1536877}}
=== المعاني ===
'''سَرْدَكَ''' {{فعلل}}
{{معجمية|L1536877|معاني}}
=== النطق ===
* {{أصد-عر|سَرْدَكَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=سردك|وزن=فعلل}}
=== المراجع ===
{{مراجع}}
e52wz5o7p1abmqam67uvov4609nbctd
اِسْتَرَطَ
0
240678
1097675
2026-07-28T11:38:27Z
إسلام
12622
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097675
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1536884}}
=== المعاني ===
'''اِسْتَرَطَ''' {{افتعل}}
{{معجمية|L1536884|معاني}}
=== النطق ===
* {{أصد-عر|اِسْتَرَطَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=سرط|وزن=افتعل}}
=== المراجع ===
{{مراجع}}
1ai2ilbtyieo9z2i6eitnk12nwzrs95
اِنْسَرَطَ
0
240679
1097676
2026-07-28T11:39:08Z
إسلام
12622
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097676
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1536885}}
=== المعاني ===
'''اِنْسَرَطَ''' {{انفعل}}
{{معجمية|L1536885|معاني}}
=== النطق ===
* {{أصد-عر|اِنْسَرَطَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=سرط|وزن=انفعل}}
=== المراجع ===
{{مراجع}}
6ij3h5ijcb5sz5jxjlz8y7yq49oqj6r
تَسَرَّطَ
0
240680
1097677
2026-07-28T11:39:32Z
إسلام
12622
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097677
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1536886}}
=== المعاني ===
'''تَسَرَّطَ''' {{تفعّل}}
{{معجمية|L1536886|معاني}}
=== النطق ===
* {{أصد-عر|تَسَرَّطَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=سرط|وزن=تفعّل}}
=== المراجع ===
{{مراجع}}
q6tbgmstt5un48x83roxe3ur0cjmz35
سَرْطَلَ
0
240681
1097678
2026-07-28T11:41:00Z
إسلام
12622
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097678
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1536888}}
=== المعاني ===
'''سَرْطَلَ''' {{فعلل}}
{{معجمية|L1536888|معاني}}
=== النطق ===
* {{أصد-عر|سَرْطَلَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=سرطل|وزن=فعلل}}
=== المراجع ===
{{مراجع}}
9cvtoxdvbeuai3i8yblfo2klofuy9tb
سَرْطَمَ
0
240682
1097679
2026-07-28T11:41:50Z
إسلام
12622
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097679
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1536889}}
=== المعاني ===
'''سَرْطَمَ''' {{فعلل}}
{{معجمية|L1536889|معاني}}
=== النطق ===
* {{أصد-عر|سَرْطَمَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=سرطم|وزن=فعلل}}
=== المراجع ===
{{مراجع}}
4bkk00dggk4icqy108ypb3nnhunoeo6
تَسَرْعَفَ
0
240683
1097681
2026-07-28T11:46:17Z
إسلام
12622
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097681
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1536893}}
=== المعاني ===
'''تَسَرْعَفَ''' {{تفعلل}}
{{معجمية|L1536893|معاني}}
=== النطق ===
* {{أصد-عر|تَسَرْعَفَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=سرعف|وزن=تفعلل}}
=== المراجع ===
{{مراجع}}
agz7rl1sx93zlmhadv95jbsmps9lwch
سَرْعَفَ
0
240684
1097682
2026-07-28T11:47:04Z
إسلام
12622
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097682
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1536892}}
=== المعاني ===
'''سَرْعَفَ''' {{فعلل}}
{{معجمية|L1536892|معاني}}
=== النطق ===
* {{أصد-عر|سَرْعَفَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=سرعف|وزن=فعلل}}
=== المراجع ===
{{مراجع}}
99jrfdlrh0rp7cl4s0h3e3p6bj3c3hu
سَرْقَنَ
0
240685
1097683
2026-07-28T11:48:15Z
إسلام
12622
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097683
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1536896}}
=== المعاني ===
'''سَرْقَنَ''' {{فعلل}}
{{معجمية|L1536896|معاني}}
=== النطق ===
* {{أصد-عر|سَرْقَنَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=سرقن|وزن=فعلل}}
=== المراجع ===
{{مراجع}}
ndz6qm0xvjvwj1kymi44p3s1p1nd3z0
تَسَرْمَطَ
0
240686
1097684
2026-07-28T11:49:32Z
إسلام
12622
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097684
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1536900}}
=== المعاني ===
'''تَسَرْمَطَ''' {{تفعلل}}
{{معجمية|L1536900|معاني}}
=== النطق ===
* {{أصد-عر|تَسَرْمَطَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=سرمط|وزن=تفعلل}}
=== المراجع ===
{{مراجع}}
bw77jo8r1q9s6ck7gud65ec7junxix0
سَطَأَ
0
240687
1097685
2026-07-28T11:54:33Z
إسلام
12622
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097685
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1545000}}
=== المعاني ===
'''سَطَأَ''' {{فتح}}
{{معجمية|L1545000|معاني}}
=== النطق ===
* {{أصد-عر|سَطَأَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=سطأ|وزن=فعَل يفعَل}}
=== المراجع ===
{{مراجع}}
p65iek772ljaekv5icusg2iqriv0xl8
اِنْسَعَبَ
0
240688
1097686
2026-07-28T11:55:55Z
إسلام
12622
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097686
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1536916}}
=== المعاني ===
'''اِنْسَعَبَ''' {{انفعل}}
{{معجمية|L1536916|معاني}}
=== النطق ===
* {{أصد-عر|اِنْسَعَبَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=سعب|وزن=انفعل}}
=== المراجع ===
{{مراجع}}
lpl34ybsloz2w2jmszqw6qfrx8up5et
تَسَعَّبَ
0
240689
1097687
2026-07-28T11:56:18Z
إسلام
12622
إنشاء صفحة فعل من بيانات المعاجم (ar-senses tool)
1097687
wikitext
text/x-wiki
== {{اللغة|عربية}} ==
{{صندوق معلومات فعل|L1536917}}
=== المعاني ===
'''تَسَعَّبَ''' {{تفعّل}}
{{معجمية|L1536917|معاني}}
=== النطق ===
* {{أصد-عر|تَسَعَّبَ}}
{{-}}
=== التصريفات ===
{{تصريف|جذر=سعب|وزن=تفعّل}}
=== المراجع ===
{{مراجع}}
8ydtxzu870uz6mjrfpzl7ayo5jqr0gz