ويكاموس 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]]&nbsp;<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 ('&#39;', '\''); -- 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 = "&ndash;" if t:find("%s") or t:find("&nbsp;") then dsep = " &ndash; " 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 = "&ndash;" if t:find("%s") or t:find("&nbsp;") then dsep = " &ndash; " 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 = "&ndash;" if t:find("%s") or t:find("&nbsp;") then dsep = " &ndash; " 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