ويكي كتب
arwikibooks
https://ar.wikibooks.org/wiki/%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.23
first-letter
ميديا
خاص
نقاش
مستخدم
نقاش المستخدم
ويكي كتب
نقاش ويكي كتب
ملف
نقاش الملف
ميدياويكي
نقاش ميدياويكي
قالب
نقاش القالب
مساعدة
نقاش المساعدة
تصنيف
نقاش التصنيف
نص زمني
نقاش النص الزمني
وحدة
نقاش الوحدة
فعالية
نقاش فعالية
البرمجة بلغة جافا
0
1538
270726
226479
2026-10-11T20:35:05Z
SanBonne
34889
/* الموضوعات و الدروس */
270726
wikitext
text/x-wiki
__NOTOC__
<small>[[لغات البرمجة الحاسوبية|<< لغات البرمجة الحاسوبية]]</small>
<div style="display:block; padding:0.3em; background-color:#66FCCF; border:1px solid #aaa; -moz-border-radius-topright:0.4em; -moz-border-radius-topleft:0.4em; text-align:right; font-size:75%;"><br />
<div style="font-size:250%; text-align:center;">'''البرمجة مع جافا Java'''</div><br /></div>
<br />
{{ويكيبيديا|جافا}}
== ما هي جافا؟ ==
جافا عبارة عن لغة برمجة كينونية مشتقة من لغة سي بلس بلس، و لكنها تمتاز عن اللغات الأخرى بأنها تمكنك من كتابة برنامج مرة واحدة فقط و من ثم تستطيع أن تشغل البرنامج على أي جهاز كمبيوتر آخر، حتى إذا كان من نوع آخر أو يعمل على نظام تشغيل مختلف، بدون الحاجة لإعادة تركيب البرنامج. الهدف الأساسي لنشأة جافا هو إيجاد لغة مشابهة للغة سي+ + من حيث التركيب النحوي ، كائنية التوجه، و مصممة للعمل علي اّلة إفتراضية بحيث لا تحتاج إلي الترجمة من جديد عند استخدام برامجها على منصة تشغيل أو نظام تشغيل جديد، حيث قامت شركة صن بإنشاء الاّت افتراضية لتشغيل جافا على معظم منصات و نظم التشغيل الموجودة حاليا، فأصبح من الممكن ترجمة البرنامج مرة واحدة ثم تشغيله على نظم مختلفة أو ما أسمته صن ب إكتب مرة واحدة ، شغل في أي مكان (الإنجليزية: Write Once, run anywhere).
هنالك ثلاثة مستويات من جافا:
1) (Java 2 Standard Edition (J2SE: النسخة الرئيسة من جافا، و تستخدم عادة لكتابة برامج للكمبيوتر الشخصي.
2) (Java 2 Enterprise Edition (J2EE: النسخة الأكبر من جافا. تشمل النسخة الرئيسة. تستخدم عادة لكتابة برامج كبيرة للشركات أو لكتابة مواقع الإنترنت.
3) (Java 2 Micro Edition (J2ME: النسخة الأصغر من جافا، و تستخدم لكتابة برامج للأجهزة الصغيرة مثل الهواتف النقالة و المساعدات الشخصية الرقمية (PDA).
جميع هذه المستويات تتعامل مع نفس أسلوب البرمجة، و لكنها تختلف بشكل رئيسي من ناحية المكتبات الجاهزة (API) و بعض الأشياء الأخرى غير الأساسية.
== نبذة عن تاريخ جافا: ==
في عام 1991 قامت شركة صن مايكروسيستمز (Sun Microsystem) بتمويل بحث لإنشاء لغة برمجة لتطوير الأدوات الإلكترونية الذكية، و كنتيجة لهذا البحث ظهرت لغة برمجة مبنية على لغة سي بلس بلس (++C) أطلق عليها مخترعها جيمس غوسلنغ (James Gosling) اسم أوك (Oak). و لكن بعد ذلك تم اكتشاف أن هنالك لغة برمجة تدعى أوك. لذا، و أثناء زيارة بعض موظفي شركة صن مقهى محلي، تم إقتراح اسم جافا (Java) و تم اختياره.
في هذه الأثناء كان المشروع الذي بنيت هذه اللغة من أجله يواجه بعض الصعوبات، حيث أن سوق الإلكترونيات الذكية لم ينمو كما كان هو متوقع. و لكن شاء الله أن الشبكة العنكبوتية (World Wide Web) بدأت بالإنتشار في عام 1993 و أدركت شركة صن فائدة جافا لإضافة المحتوى الحيوي (Dynamic Content) و الصور المتحركة (Animation) إلى صفحات الشبكة.
في شهر مايو من عام 1995 قامت شركة صن بالإعلان عن جافا رسميا، و كان إقبال القطاع التكنولوجي و قطاع الأعمال عليها كبير بسبب الاهتمام الكبير بالشبكة العنكبوتية.
الآن، يمكنك أن تجد جافا في برامج للشركات، أو تجدها تحسن الصفحات على الإنترنت، أو في برامج للأجهزة الإستهلاكية مثل الهواتف النقالة و غيرها الكثير و تعتبر ال java من أقوى
لغات البرمجه .
== الموضوعات و الدروس ==
{{برمجة:جافا}}
[[برمجة جافا/التركيب النحوي|برمجة جافا:التركيب النحوي]]
[[جافا/أساسيات 1|برمجة:جافا:أساسيات 1]]: ما هي أنواع البرامج في جافا؟ ما الفرق بين Application و Applet؟ ما معنى Class؟
[[جافا/أساسيات 2|برمجة:جافا:أساسيات 2]]: كيف نعرّف المتغيرات؟ العمليات الحسابية و العمليات المنطقية.
[[جافا/أساسيات 3|برمجة:جافا:أساسيات 3]]: جمل الاختيار و جمل الدوران.
[[جافا/أساسيات 4|برمجة:جافا:أساسيات 4]]: Methods و Arrays.
[[برمجة:جافا:تدريب 1]]: كتابة بعض البرامج مع شرح وافي.
[[برمجة:جافا:البرمجة الكينونية 1]]: مفهومها و أساسياتها.
[[جافا/البرمجة الكينونية 2|برمجة:جافا:البرمجة الكينونية 2]]: التوارث (Inheritance).
[[جافا/البرمجة الكينونية 3|برمجة:جافا:البرمجة الكينونية 3]]: التحول (Polymorphism).
[[برمجة:جافا:تدريب 2]]: كتابة بعض البرامج لشرح البرمجة الكينونية.
[[جافا/الأخطاء (Exceptions)|برمجة:جافا:الأخطاء (Exceptions)]]: ما معنى Exception؟ ما تأثيره؟ كيف نتفاداه و كيف نتعامل معه؟
{{تصنيف كومنز|Java (programming language)}}
[[تصنيف:معلوماتية]]
[[تصنيف:لغات البرمجة]]
[[تصنيف:جافا (كتاب)]]
[[تصنيف:قائمة الكتب]]
2p31k6qxe95l2g7mklwbkckldqybd10
270735
270726
2026-10-11T20:41:34Z
SanBonne
34889
نقلت SanBonne صفحة [[برمجة جافا]] إلى [[البرمجة بلغة جافا]]: عنوان مكتوب بشكل خاطئ
270726
wikitext
text/x-wiki
__NOTOC__
<small>[[لغات البرمجة الحاسوبية|<< لغات البرمجة الحاسوبية]]</small>
<div style="display:block; padding:0.3em; background-color:#66FCCF; border:1px solid #aaa; -moz-border-radius-topright:0.4em; -moz-border-radius-topleft:0.4em; text-align:right; font-size:75%;"><br />
<div style="font-size:250%; text-align:center;">'''البرمجة مع جافا Java'''</div><br /></div>
<br />
{{ويكيبيديا|جافا}}
== ما هي جافا؟ ==
جافا عبارة عن لغة برمجة كينونية مشتقة من لغة سي بلس بلس، و لكنها تمتاز عن اللغات الأخرى بأنها تمكنك من كتابة برنامج مرة واحدة فقط و من ثم تستطيع أن تشغل البرنامج على أي جهاز كمبيوتر آخر، حتى إذا كان من نوع آخر أو يعمل على نظام تشغيل مختلف، بدون الحاجة لإعادة تركيب البرنامج. الهدف الأساسي لنشأة جافا هو إيجاد لغة مشابهة للغة سي+ + من حيث التركيب النحوي ، كائنية التوجه، و مصممة للعمل علي اّلة إفتراضية بحيث لا تحتاج إلي الترجمة من جديد عند استخدام برامجها على منصة تشغيل أو نظام تشغيل جديد، حيث قامت شركة صن بإنشاء الاّت افتراضية لتشغيل جافا على معظم منصات و نظم التشغيل الموجودة حاليا، فأصبح من الممكن ترجمة البرنامج مرة واحدة ثم تشغيله على نظم مختلفة أو ما أسمته صن ب إكتب مرة واحدة ، شغل في أي مكان (الإنجليزية: Write Once, run anywhere).
هنالك ثلاثة مستويات من جافا:
1) (Java 2 Standard Edition (J2SE: النسخة الرئيسة من جافا، و تستخدم عادة لكتابة برامج للكمبيوتر الشخصي.
2) (Java 2 Enterprise Edition (J2EE: النسخة الأكبر من جافا. تشمل النسخة الرئيسة. تستخدم عادة لكتابة برامج كبيرة للشركات أو لكتابة مواقع الإنترنت.
3) (Java 2 Micro Edition (J2ME: النسخة الأصغر من جافا، و تستخدم لكتابة برامج للأجهزة الصغيرة مثل الهواتف النقالة و المساعدات الشخصية الرقمية (PDA).
جميع هذه المستويات تتعامل مع نفس أسلوب البرمجة، و لكنها تختلف بشكل رئيسي من ناحية المكتبات الجاهزة (API) و بعض الأشياء الأخرى غير الأساسية.
== نبذة عن تاريخ جافا: ==
في عام 1991 قامت شركة صن مايكروسيستمز (Sun Microsystem) بتمويل بحث لإنشاء لغة برمجة لتطوير الأدوات الإلكترونية الذكية، و كنتيجة لهذا البحث ظهرت لغة برمجة مبنية على لغة سي بلس بلس (++C) أطلق عليها مخترعها جيمس غوسلنغ (James Gosling) اسم أوك (Oak). و لكن بعد ذلك تم اكتشاف أن هنالك لغة برمجة تدعى أوك. لذا، و أثناء زيارة بعض موظفي شركة صن مقهى محلي، تم إقتراح اسم جافا (Java) و تم اختياره.
في هذه الأثناء كان المشروع الذي بنيت هذه اللغة من أجله يواجه بعض الصعوبات، حيث أن سوق الإلكترونيات الذكية لم ينمو كما كان هو متوقع. و لكن شاء الله أن الشبكة العنكبوتية (World Wide Web) بدأت بالإنتشار في عام 1993 و أدركت شركة صن فائدة جافا لإضافة المحتوى الحيوي (Dynamic Content) و الصور المتحركة (Animation) إلى صفحات الشبكة.
في شهر مايو من عام 1995 قامت شركة صن بالإعلان عن جافا رسميا، و كان إقبال القطاع التكنولوجي و قطاع الأعمال عليها كبير بسبب الاهتمام الكبير بالشبكة العنكبوتية.
الآن، يمكنك أن تجد جافا في برامج للشركات، أو تجدها تحسن الصفحات على الإنترنت، أو في برامج للأجهزة الإستهلاكية مثل الهواتف النقالة و غيرها الكثير و تعتبر ال java من أقوى
لغات البرمجه .
== الموضوعات و الدروس ==
{{برمجة:جافا}}
[[برمجة جافا/التركيب النحوي|برمجة جافا:التركيب النحوي]]
[[جافا/أساسيات 1|برمجة:جافا:أساسيات 1]]: ما هي أنواع البرامج في جافا؟ ما الفرق بين Application و Applet؟ ما معنى Class؟
[[جافا/أساسيات 2|برمجة:جافا:أساسيات 2]]: كيف نعرّف المتغيرات؟ العمليات الحسابية و العمليات المنطقية.
[[جافا/أساسيات 3|برمجة:جافا:أساسيات 3]]: جمل الاختيار و جمل الدوران.
[[جافا/أساسيات 4|برمجة:جافا:أساسيات 4]]: Methods و Arrays.
[[برمجة:جافا:تدريب 1]]: كتابة بعض البرامج مع شرح وافي.
[[برمجة:جافا:البرمجة الكينونية 1]]: مفهومها و أساسياتها.
[[جافا/البرمجة الكينونية 2|برمجة:جافا:البرمجة الكينونية 2]]: التوارث (Inheritance).
[[جافا/البرمجة الكينونية 3|برمجة:جافا:البرمجة الكينونية 3]]: التحول (Polymorphism).
[[برمجة:جافا:تدريب 2]]: كتابة بعض البرامج لشرح البرمجة الكينونية.
[[جافا/الأخطاء (Exceptions)|برمجة:جافا:الأخطاء (Exceptions)]]: ما معنى Exception؟ ما تأثيره؟ كيف نتفاداه و كيف نتعامل معه؟
{{تصنيف كومنز|Java (programming language)}}
[[تصنيف:معلوماتية]]
[[تصنيف:لغات البرمجة]]
[[تصنيف:جافا (كتاب)]]
[[تصنيف:قائمة الكتب]]
2p31k6qxe95l2g7mklwbkckldqybd10
قالب:Fmbox
10
11989
270756
37805
2026-10-12T09:57:29Z
SanBonne
34889
270756
wikitext
text/x-wiki
{{#invoke:Message box|fmbox|plainlinks={{{plainlinks|yes}}}}} <noinclude>
{{توثيق}}
</noinclude>
9qjxhprv1ydevmbxmi5atec5xndtp7j
قالب:صندوق رسالة مقالة
10
39408
270742
218648
2026-10-12T09:43:30Z
SanBonne
34889
270742
wikitext
text/x-wiki
{#switch:{{{small|}}}
| left =
{{صندوق رسالة مقالة/أساس
| small = left
| type = {{{type|}}}
| image = {{#if:{{{smallimage|}}}
| {{{smallimage}}}
| {{{image|}}}
}}
| imageright = {{#if:{{{smallimageright|}}}
| {{{smallimageright}}}
| {{{imageright|}}}
}}
| style = {{{style|}}}
| textstyle = {{{textstyle|}}}
| text = {{#if:{{{smalltext|}}}
| {{{smalltext}}}
| {{{text}}}
}}
}}
| #default =
{{صندوق رسالة مقالة/أساس
| type = {{{type|}}}
| image = {{{image|}}}
| imageright = {{{imageright|}}}
| style = {{{style|}}}
| textstyle = {{{textstyle|}}}
| text = {{{text}}}
}}
}}<!--{{صندوق رسالة مقالة}} end--><noinclude>
{{توثيق}}
[[تصنيف:استبعاد في المطبوعات]]
</noinclude>
i6vfz7zabqj5bjy3fpst41lizpypnr9
270743
270742
2026-10-12T09:43:41Z
SanBonne
34889
استرجع تعديلات [[Special:Contributions/SanBonne|SanBonne]] ([[User talk:SanBonne|نقاش]]) حتى آخر مراجعة ل[[User:MenoBot|MenoBot]]
218648
wikitext
text/x-wiki
<!--{{صندوق رسالة مقالة}} begin-->{{#switch:{{{small|}}}
| left =
{{صندوق رسالة مقالة/أساس
| small = left
| type = {{{type|}}}
| image = {{#if:{{{smallimage|}}}
| {{{smallimage}}}
| {{{image|}}}
}}
| imageright = {{#if:{{{smallimageright|}}}
| {{{smallimageright}}}
| {{{imageright|}}}
}}
| style = {{{style|}}}
| textstyle = {{{textstyle|}}}
| text = {{#if:{{{smalltext|}}}
| {{{smalltext}}}
| {{{text}}}
}}
}}
| #default =
{{صندوق رسالة مقالة/أساس
| type = {{{type|}}}
| image = {{{image|}}}
| imageright = {{{imageright|}}}
| style = {{{style|}}}
| textstyle = {{{textstyle|}}}
| text = {{{text}}}
}}
}}<!--{{صندوق رسالة مقالة}} end--><noinclude>
{{توثيق}}
[[تصنيف:استبعاد في المطبوعات]]
</noinclude>
g5ukst85q4osvehfs1j060p2odbswl1
270744
270743
2026-10-12T09:44:29Z
SanBonne
34889
270744
wikitext
text/x-wiki
{{#switch:{{{small|}}}
| left =
{{صندوق رسالة مقالة/أساس
| small = left
| type = {{{type|}}}
| image = {{#if:{{{smallimage|}}}
| {{{smallimage}}}
| {{{image|}}}
}}
| imageright = {{#if:{{{smallimageright|}}}
| {{{smallimageright}}}
| {{{imageright|}}}
}}
| style = {{{style|}}}
| textstyle = {{{textstyle|}}}
| text = {{#if:{{{smalltext|}}}
| {{{smalltext}}}
| {{{text}}}
}}
}}
| #default =
{{صندوق رسالة مقالة/أساس
| type = {{{type|}}}
| image = {{{image|}}}
| imageright = {{{imageright|}}}
| style = {{{style|}}}
| textstyle = {{{textstyle|}}}
| text = {{{text}}}
}}
}}
<noinclude>
{{توثيق}}
[[تصنيف:استبعاد في المطبوعات]]
</noinclude>
hr5kb70m921oeinom3u9jkuyht7dfp5
270753
270744
2026-10-12T09:53:51Z
SanBonne
34889
تحويل إلى [[قالب:صندوق رسالة كتاب]]
270753
wikitext
text/x-wiki
#تحويل [[قالب:صندوق رسالة كتاب]]
t8pfa5otfi8suedpi44g1vgop0ixcb1
البرمجة بلغة جافا/التركيب النحوي
0
44887
270722
226488
2026-10-11T20:32:48Z
SanBonne
34889
تطوير المقالة
270722
wikitext
text/x-wiki
تحدد '''قواعد التركيب النحوي (Java Syntax)''' في لغة البرمجة جافا الصيغة القياسية والشروط المعيارية لكتابة الأكواد واستخدام الكلمات المفتاحية، والتي ينبغي للـ '''مُترجم (Java Compiler)''' اتباعها لتحويل الشفرة المصدريّة إلى لغة البايت (Bytecode). ترتبط صياغة جافا بصلة وثيقة بلغتي [[C (لغة برمجة)|C]] و[[C++]]، غير أنها فرضت هيكلية صارمة تعتمد كلياً على '''[[برمجة كائنية التوجه|البرمجة كائنية التوجه (OOP)]]''' وتنفيذ نظام '''الأنماط القوية (Strong Typing)'''.
2sldasik7xnxrbqhc45xrsd584wwfww
270723
270722
2026-10-11T20:33:19Z
SanBonne
34889
270723
wikitext
text/x-wiki
تحدد '''قواعد التركيب النحوي (Java Syntax)''' في لغة البرمجة جافا الصيغة القياسية والشروط المعيارية لكتابة الأكواد واستخدام الكلمات المفتاحية، والتي ينبغي للمُترجم (Java Compiler) اتباعها لتحويل الشفرة المصدريّة إلى لغة البايت (Bytecode). ترتبط صياغة جافا بصلة وثيقة بلغتي [[C (لغة برمجة)|C]] و[[C++]]، غير أنها فرضت هيكلية صارمة تعتمد كلياً على '''[[برمجة كائنية التوجه|البرمجة كائنية التوجه (OOP)]]''' وتنفيذ نظام '''الأنماط القوية (Strong Typing)'''.
== الهيكل الأساسي للبرنامج ==
في لغة جافا، لا يمكن تنفيذ أي تعليمات برمجية خارج نطاق '''الفئات (Classes)'''؛ حيث يُكتب كل تطبيق داخل فئة واحدة على الأقل، ويشترط لتنفيذ البرنامج وجود دالة/أسلوب رئيسي يدعى <code>main</code>.
<syntaxhighlight lang="java">
public class SyntaxExample {
public static void main(String[] args) {
System.out.println("مرحباً بك في ويكي الكتب");
}
}
</syntaxhighlight>
* <code>public</code>: محدد وصول يُتيح استخدام الفئة أو الدالة من خارج الحزمة.
* <code>class</code>: الكلمة المفتاحية المخصصة لتعريف الفئة.
* <code>main</code>: نقطة الانطلاق الأساسية للبرنامج عند بدء التشغيل.
togr0g7x598pmwbixk57b80di7nhykl
270724
270723
2026-10-11T20:33:47Z
SanBonne
34889
/* الهيكل الأساسي للبرنامج */
270724
wikitext
text/x-wiki
تحدد '''قواعد التركيب النحوي (Java Syntax)''' في لغة البرمجة جافا الصيغة القياسية والشروط المعيارية لكتابة الأكواد واستخدام الكلمات المفتاحية، والتي ينبغي للمُترجم (Java Compiler) اتباعها لتحويل الشفرة المصدريّة إلى لغة البايت (Bytecode). ترتبط صياغة جافا بصلة وثيقة بلغتي [[C (لغة برمجة)|C]] و[[C++]]، غير أنها فرضت هيكلية صارمة تعتمد كلياً على '''[[برمجة كائنية التوجه|البرمجة كائنية التوجه (OOP)]]''' وتنفيذ نظام '''الأنماط القوية (Strong Typing)'''.
== الهيكل الأساسي للبرنامج ==
في لغة جافا، لا يمكن تنفيذ أي تعليمات برمجية خارج نطاق '''الفئات (Classes)'''؛ حيث يُكتب كل تطبيق داخل فئة واحدة على الأقل، ويشترط لتنفيذ البرنامج وجود دالة/أسلوب رئيسي يدعى <code>main</code>.
<syntaxhighlight lang="java">
public class SyntaxExample {
public static void main(String[] args) {
System.out.println("مرحباً بك في ويكي الكتب");
}
}
</syntaxhighlight>
* <code>public</code>: محدد وصول يُتيح استخدام الفئة أو الدالة من خارج الحزمة.
* <code>class</code>: الكلمة المفتاحية المخصصة لتعريف الفئة.
* <code>main</code>: نقطة الانطلاق الأساسية للبرنامج عند بدء التشغيل.
== عناصر الصياغة البرمجية ==
تتألف شفرة جافا من عدة مكونات تركيبية رئيسية:
=== الكلمات المحجوزة (Keywords) ===
مجموعة من المفردات المعرفة مسبقاً في النظام ولا يُسمح باستخدامها كمعرفات، مثل: <code>class</code>، <code>public</code>، <code>static</code>، <code>void</code>، <code>if</code>، <code>else</code>، <code>while</code>، <code>return</code>.
=== المعرفات (Identifiers) ===
هي الأسماء المُسندة للمتغيرات، الدوال، والفئات. وتخضع للضوابط التالية:
* تتكون من أحرف (A-Z أو a-z)، أو أرقام، أو العلامات (<code>_</code> و <code>$</code>).
* لا يجوز أن تبدأ برقم.
* جافا '''حساسة لحالة الأحرف (Case-Sensitive)'''؛ حيث يُعد <code>Variable</code> مختلفاً عن <code>variable</code>.
=== التعليقات (Comments) ===
تعليمات يُهملها المترجم وتُستخدم للشرح والتأثيث النصي:
* تعليق سطر واحد: <code>// نص التعليق</code>
* تعليق متعدد الأسطر: <code>/* نص التعليق */</code>
* تعليق التوثيق (Javadoc): <code>/** نص التوثيق */</code>
an0o3intw9eb1v0987obauh7qou5rw5
270725
270724
2026-10-11T20:34:13Z
SanBonne
34889
/* عناصر الصياغة البرمجية */
270725
wikitext
text/x-wiki
تحدد '''قواعد التركيب النحوي (Java Syntax)''' في لغة البرمجة جافا الصيغة القياسية والشروط المعيارية لكتابة الأكواد واستخدام الكلمات المفتاحية، والتي ينبغي للمُترجم (Java Compiler) اتباعها لتحويل الشفرة المصدريّة إلى لغة البايت (Bytecode). ترتبط صياغة جافا بصلة وثيقة بلغتي [[C (لغة برمجة)|C]] و[[C++]]، غير أنها فرضت هيكلية صارمة تعتمد كلياً على '''[[برمجة كائنية التوجه|البرمجة كائنية التوجه (OOP)]]''' وتنفيذ نظام '''الأنماط القوية (Strong Typing)'''.
== الهيكل الأساسي للبرنامج ==
في لغة جافا، لا يمكن تنفيذ أي تعليمات برمجية خارج نطاق '''الفئات (Classes)'''؛ حيث يُكتب كل تطبيق داخل فئة واحدة على الأقل، ويشترط لتنفيذ البرنامج وجود دالة/أسلوب رئيسي يدعى <code>main</code>.
<syntaxhighlight lang="java">
public class SyntaxExample {
public static void main(String[] args) {
System.out.println("مرحباً بك في ويكي الكتب");
}
}
</syntaxhighlight>
* <code>public</code>: محدد وصول يُتيح استخدام الفئة أو الدالة من خارج الحزمة.
* <code>class</code>: الكلمة المفتاحية المخصصة لتعريف الفئة.
* <code>main</code>: نقطة الانطلاق الأساسية للبرنامج عند بدء التشغيل.
== عناصر الصياغة البرمجية ==
تتألف شفرة جافا من عدة مكونات تركيبية رئيسية:
=== الكلمات المحجوزة (Keywords) ===
مجموعة من المفردات المعرفة مسبقاً في النظام ولا يُسمح باستخدامها كمعرفات، مثل: <code>class</code>، <code>public</code>، <code>static</code>، <code>void</code>، <code>if</code>، <code>else</code>، <code>while</code>، <code>return</code>.
=== المعرفات (Identifiers) ===
هي الأسماء المُسندة للمتغيرات، الدوال، والفئات. وتخضع للضوابط التالية:
* تتكون من أحرف (A-Z أو a-z)، أو أرقام، أو العلامات (<code>_</code> و <code>$</code>).
* لا يجوز أن تبدأ برقم.
* جافا '''حساسة لحالة الأحرف (Case-Sensitive)'''؛ حيث يُعد <code>Variable</code> مختلفاً عن <code>variable</code>.
=== التعليقات (Comments) ===
تعليمات يُهملها المترجم وتُستخدم للشرح والتأثيث النصي:
* تعليق سطر واحد: <code>// نص التعليق</code>
* تعليق متعدد الأسطر: <code>/* نص التعليق */</code>
* تعليق التوثيق (Javadoc): <code>/** نص التوثيق */</code>
== المتغيرات وأنواع البيانات ==
تنقسم البيانات في لغة جافا إلى فئتين رئيسيتين:
=== الأنواع البدائية (Primitive Data Types) ===
تُخزن القيم الفعلية في الذاكرة المباشرة:
{| class="wikitable"
|-
! النوع !! الحجم !! الوصف
|-
| <code>byte</code> || 1 بايت || أعداد صحيحة صغيرة جداً
|-
| <code>short</code> || 2 بايت || أعداد صحيحة صغيرة
|-
| <code>int</code> || 4 بايت || أعداد صحيحة قياسية
|-
| <code>long</code> || 8 بايت || أعداد صحيحة كبيرة
|-
| <code>float</code> || 4 بايت || أعداد كسرية قياسية
|-
| <code>double</code> || 8 بايت || أعداد كسرية دقيقة
|-
| <code>char</code> || 2 بايت || رمز أو حرف واحد (Unicode)
|-
| <code>boolean</code> || 1 بت || قيمة منطقية (<code>true</code> أو <code>false</code>)
|}
=== الأنواع المرجعية (Reference Data Types) ===
تُشير إلى مواقع الكائنات في الذاكرة (Heap Memory)، ومنها: النصوص (<code>String</code>)، المصفوفات (<code>Arrays</code>)، والكائنات المخصصة (<code>Objects</code>).
<syntaxhighlight lang="java">
int count = 10;
double price = 99.99;
boolean isActive = true;
String title = "التركيب النحوي";
</syntaxhighlight>
== الجمل الشرطية وحلقات التكرار ==
=== التحكم الشرطي ===
تُستخدم التراكيب الشرطية لاتخاذ القرارات بناءً على تحقق شروط منطقية:
<syntaxhighlight lang="java">
if (score >= 50) {
System.out.println("ناجح");
} else {
System.out.println("راسب");
}
</syntaxhighlight>
كما يمكن استخدام تركيب <code>switch</code> للتحقق من قيم متعددة لمتغير واحد.
=== التكرار والتدفق ===
تتضمن لغة جافا ثلاثة هياكل رئيسية للتكرار:
* '''حلقة <code>for</code>''': تُستخدم عند معرفة عدد التكرارات مسبقاً.
* '''حلقة <code>while</code>''': تتكرر طالما تحقق الشرط المنطقي.
* '''حلقة <code>do-while</code>''': تضمن تنفيذ الكود مرة واحدة على الأقل قبل فحص الشرط.
== انظر أيضاً ==
* [[البرمجة بلغة جافا/الأنواع والمطبقات|الأنواع والمطبقات في جافا]]
* [[البرمجة بلغة جافا/الوراثة|الوراثة والواجهات]]
* [[البرمجة بلغة جافا/الاستثناءات|معالجة الاستثناءات]]
1l3iamna5t3bnzprriqzvrka0h5zrzq
270733
270725
2026-10-11T20:40:58Z
SanBonne
34889
نقلت SanBonne صفحة [[برمجة جافا/التركيب النحوي]] إلى [[البرمجة بلغة جافا/التركيب النحوي]]: عنوان مكتوب بشكل خاطئ
270725
wikitext
text/x-wiki
تحدد '''قواعد التركيب النحوي (Java Syntax)''' في لغة البرمجة جافا الصيغة القياسية والشروط المعيارية لكتابة الأكواد واستخدام الكلمات المفتاحية، والتي ينبغي للمُترجم (Java Compiler) اتباعها لتحويل الشفرة المصدريّة إلى لغة البايت (Bytecode). ترتبط صياغة جافا بصلة وثيقة بلغتي [[C (لغة برمجة)|C]] و[[C++]]، غير أنها فرضت هيكلية صارمة تعتمد كلياً على '''[[برمجة كائنية التوجه|البرمجة كائنية التوجه (OOP)]]''' وتنفيذ نظام '''الأنماط القوية (Strong Typing)'''.
== الهيكل الأساسي للبرنامج ==
في لغة جافا، لا يمكن تنفيذ أي تعليمات برمجية خارج نطاق '''الفئات (Classes)'''؛ حيث يُكتب كل تطبيق داخل فئة واحدة على الأقل، ويشترط لتنفيذ البرنامج وجود دالة/أسلوب رئيسي يدعى <code>main</code>.
<syntaxhighlight lang="java">
public class SyntaxExample {
public static void main(String[] args) {
System.out.println("مرحباً بك في ويكي الكتب");
}
}
</syntaxhighlight>
* <code>public</code>: محدد وصول يُتيح استخدام الفئة أو الدالة من خارج الحزمة.
* <code>class</code>: الكلمة المفتاحية المخصصة لتعريف الفئة.
* <code>main</code>: نقطة الانطلاق الأساسية للبرنامج عند بدء التشغيل.
== عناصر الصياغة البرمجية ==
تتألف شفرة جافا من عدة مكونات تركيبية رئيسية:
=== الكلمات المحجوزة (Keywords) ===
مجموعة من المفردات المعرفة مسبقاً في النظام ولا يُسمح باستخدامها كمعرفات، مثل: <code>class</code>، <code>public</code>، <code>static</code>، <code>void</code>، <code>if</code>، <code>else</code>، <code>while</code>، <code>return</code>.
=== المعرفات (Identifiers) ===
هي الأسماء المُسندة للمتغيرات، الدوال، والفئات. وتخضع للضوابط التالية:
* تتكون من أحرف (A-Z أو a-z)، أو أرقام، أو العلامات (<code>_</code> و <code>$</code>).
* لا يجوز أن تبدأ برقم.
* جافا '''حساسة لحالة الأحرف (Case-Sensitive)'''؛ حيث يُعد <code>Variable</code> مختلفاً عن <code>variable</code>.
=== التعليقات (Comments) ===
تعليمات يُهملها المترجم وتُستخدم للشرح والتأثيث النصي:
* تعليق سطر واحد: <code>// نص التعليق</code>
* تعليق متعدد الأسطر: <code>/* نص التعليق */</code>
* تعليق التوثيق (Javadoc): <code>/** نص التوثيق */</code>
== المتغيرات وأنواع البيانات ==
تنقسم البيانات في لغة جافا إلى فئتين رئيسيتين:
=== الأنواع البدائية (Primitive Data Types) ===
تُخزن القيم الفعلية في الذاكرة المباشرة:
{| class="wikitable"
|-
! النوع !! الحجم !! الوصف
|-
| <code>byte</code> || 1 بايت || أعداد صحيحة صغيرة جداً
|-
| <code>short</code> || 2 بايت || أعداد صحيحة صغيرة
|-
| <code>int</code> || 4 بايت || أعداد صحيحة قياسية
|-
| <code>long</code> || 8 بايت || أعداد صحيحة كبيرة
|-
| <code>float</code> || 4 بايت || أعداد كسرية قياسية
|-
| <code>double</code> || 8 بايت || أعداد كسرية دقيقة
|-
| <code>char</code> || 2 بايت || رمز أو حرف واحد (Unicode)
|-
| <code>boolean</code> || 1 بت || قيمة منطقية (<code>true</code> أو <code>false</code>)
|}
=== الأنواع المرجعية (Reference Data Types) ===
تُشير إلى مواقع الكائنات في الذاكرة (Heap Memory)، ومنها: النصوص (<code>String</code>)، المصفوفات (<code>Arrays</code>)، والكائنات المخصصة (<code>Objects</code>).
<syntaxhighlight lang="java">
int count = 10;
double price = 99.99;
boolean isActive = true;
String title = "التركيب النحوي";
</syntaxhighlight>
== الجمل الشرطية وحلقات التكرار ==
=== التحكم الشرطي ===
تُستخدم التراكيب الشرطية لاتخاذ القرارات بناءً على تحقق شروط منطقية:
<syntaxhighlight lang="java">
if (score >= 50) {
System.out.println("ناجح");
} else {
System.out.println("راسب");
}
</syntaxhighlight>
كما يمكن استخدام تركيب <code>switch</code> للتحقق من قيم متعددة لمتغير واحد.
=== التكرار والتدفق ===
تتضمن لغة جافا ثلاثة هياكل رئيسية للتكرار:
* '''حلقة <code>for</code>''': تُستخدم عند معرفة عدد التكرارات مسبقاً.
* '''حلقة <code>while</code>''': تتكرر طالما تحقق الشرط المنطقي.
* '''حلقة <code>do-while</code>''': تضمن تنفيذ الكود مرة واحدة على الأقل قبل فحص الشرط.
== انظر أيضاً ==
* [[البرمجة بلغة جافا/الأنواع والمطبقات|الأنواع والمطبقات في جافا]]
* [[البرمجة بلغة جافا/الوراثة|الوراثة والواجهات]]
* [[البرمجة بلغة جافا/الاستثناءات|معالجة الاستثناءات]]
1l3iamna5t3bnzprriqzvrka0h5zrzq
270738
270733
2026-10-11T20:43:49Z
SanBonne
34889
270738
wikitext
text/x-wiki
تحدد '''قواعد التركيب النحوي (Java Syntax)''' في لغة البرمجة جافا الصيغة القياسية والشروط المعيارية لكتابة الأكواد واستخدام الكلمات المفتاحية، والتي ينبغي للمُترجم (Java Compiler) اتباعها لتحويل الشفرة المصدريّة إلى لغة البايت (Bytecode). ترتبط صياغة جافا بصلة وثيقة بلغتي [[C (لغة برمجة)|C]] و[[C++]]، غير أنها فرضت هيكلية صارمة تعتمد كلياً على '''[[برمجة كائنية التوجه|البرمجة كائنية التوجه (OOP)]]''' وتنفيذ نظام '''الأنماط القوية (Strong Typing)'''.
== الهيكل الأساسي للبرنامج ==
في لغة جافا، لا يمكن تنفيذ أي تعليمات برمجية خارج نطاق '''الفئات (Classes)'''؛ حيث يُكتب كل تطبيق داخل فئة واحدة على الأقل، ويشترط لتنفيذ البرنامج وجود دالة/أسلوب رئيسي يدعى <code>main</code>.
<syntaxhighlight lang="java">
public class SyntaxExample {
public static void main(String[] args) {
System.out.println("مرحباً بك في ويكي الكتب");
}
}
</syntaxhighlight>
* <code>public</code>: محدد وصول يُتيح استخدام الفئة أو الدالة من خارج الحزمة.
* <code>class</code>: الكلمة المفتاحية المخصصة لتعريف الفئة.
* <code>main</code>: نقطة الانطلاق الأساسية للبرنامج عند بدء التشغيل.
== عناصر الصياغة البرمجية ==
تتألف شفرة جافا من عدة مكونات تركيبية رئيسية:
=== الكلمات المحجوزة (Keywords) ===
مجموعة من المفردات المعرفة مسبقاً في النظام ولا يُسمح باستخدامها كمعرفات، مثل: <code>class</code>، <code>public</code>، <code>static</code>، <code>void</code>، <code>if</code>، <code>else</code>، <code>while</code>، <code>return</code>.
=== المعرفات (Identifiers) ===
هي الأسماء المُسندة للمتغيرات، الدوال، والفئات. وتخضع للضوابط التالية:
* تتكون من أحرف (A-Z أو a-z)، أو أرقام، أو العلامات (<code>_</code> و <code>$</code>).
* لا يجوز أن تبدأ برقم.
* جافا '''حساسة لحالة الأحرف (Case-Sensitive)'''؛ حيث يُعد <code>Variable</code> مختلفاً عن <code>variable</code>.
=== التعليقات (Comments) ===
تعليمات يُهملها المترجم وتُستخدم للشرح والتأثيث النصي:
* تعليق سطر واحد: <code>// نص التعليق</code>
* تعليق متعدد الأسطر: <code>/* نص التعليق */</code>
* تعليق التوثيق (Javadoc): <code>/** نص التوثيق */</code>
== المتغيرات وأنواع البيانات ==
تنقسم البيانات في لغة جافا إلى فئتين رئيسيتين:
=== الأنواع البدائية (Primitive Data Types) ===
تُخزن القيم الفعلية في الذاكرة المباشرة:
{| class="wikitable"
|-
! النوع !! الحجم !! الوصف
|-
| <code>byte</code> || 1 بايت || أعداد صحيحة صغيرة جداً
|-
| <code>short</code> || 2 بايت || أعداد صحيحة صغيرة
|-
| <code>int</code> || 4 بايت || أعداد صحيحة قياسية
|-
| <code>long</code> || 8 بايت || أعداد صحيحة كبيرة
|-
| <code>float</code> || 4 بايت || أعداد كسرية قياسية
|-
| <code>double</code> || 8 بايت || أعداد كسرية دقيقة
|-
| <code>char</code> || 2 بايت || رمز أو حرف واحد (Unicode)
|-
| <code>boolean</code> || 1 بت || قيمة منطقية (<code>true</code> أو <code>false</code>)
|}
=== الأنواع المرجعية (Reference Data Types) ===
تُشير إلى مواقع الكائنات في الذاكرة (Heap Memory)، ومنها: النصوص (<code>String</code>)، المصفوفات (<code>Arrays</code>)، والكائنات المخصصة (<code>Objects</code>).
<syntaxhighlight lang="java">
int count = 10;
double price = 99.99;
boolean isActive = true;
String title = "التركيب النحوي";
</syntaxhighlight>
== الجمل الشرطية وحلقات التكرار ==
=== التحكم الشرطي ===
تُستخدم التراكيب الشرطية لاتخاذ القرارات بناءً على تحقق شروط منطقية:
<syntaxhighlight lang="java">
if (score >= 50) {
System.out.println("ناجح");
} else {
System.out.println("راسب");
}
</syntaxhighlight>
كما يمكن استخدام تركيب <code>switch</code> للتحقق من قيم متعددة لمتغير واحد.
=== التكرار والتدفق ===
تتضمن لغة جافا ثلاثة هياكل رئيسية للتكرار:
* '''حلقة <code>for</code>''': تُستخدم عند معرفة عدد التكرارات مسبقاً.
* '''حلقة <code>while</code>''': تتكرر طالما تحقق الشرط المنطقي.
* '''حلقة <code>do-while</code>''': تضمن تنفيذ الكود مرة واحدة على الأقل قبل فحص الشرط.
== انظر أيضاً ==
* [[البرمجة بلغة جافا/الأنواع والمطبقات|الأنواع والمطبقات في جافا]]
* [[البرمجة بلغة جافا/الوراثة|الوراثة والواجهات]]
* [[البرمجة بلغة جافا/الاستثناءات|معالجة الاستثناءات]]
[[تصنيف:البرمجة بلغة جافا]]
p6m9yz8mmuov8kolp21kddtcm8bxtzf
270739
270738
2026-10-11T20:44:32Z
SanBonne
34889
/* انظر أيضاً */
270739
wikitext
text/x-wiki
تحدد '''قواعد التركيب النحوي (Java Syntax)''' في لغة البرمجة جافا الصيغة القياسية والشروط المعيارية لكتابة الأكواد واستخدام الكلمات المفتاحية، والتي ينبغي للمُترجم (Java Compiler) اتباعها لتحويل الشفرة المصدريّة إلى لغة البايت (Bytecode). ترتبط صياغة جافا بصلة وثيقة بلغتي [[C (لغة برمجة)|C]] و[[C++]]، غير أنها فرضت هيكلية صارمة تعتمد كلياً على '''[[برمجة كائنية التوجه|البرمجة كائنية التوجه (OOP)]]''' وتنفيذ نظام '''الأنماط القوية (Strong Typing)'''.
== الهيكل الأساسي للبرنامج ==
في لغة جافا، لا يمكن تنفيذ أي تعليمات برمجية خارج نطاق '''الفئات (Classes)'''؛ حيث يُكتب كل تطبيق داخل فئة واحدة على الأقل، ويشترط لتنفيذ البرنامج وجود دالة/أسلوب رئيسي يدعى <code>main</code>.
<syntaxhighlight lang="java">
public class SyntaxExample {
public static void main(String[] args) {
System.out.println("مرحباً بك في ويكي الكتب");
}
}
</syntaxhighlight>
* <code>public</code>: محدد وصول يُتيح استخدام الفئة أو الدالة من خارج الحزمة.
* <code>class</code>: الكلمة المفتاحية المخصصة لتعريف الفئة.
* <code>main</code>: نقطة الانطلاق الأساسية للبرنامج عند بدء التشغيل.
== عناصر الصياغة البرمجية ==
تتألف شفرة جافا من عدة مكونات تركيبية رئيسية:
=== الكلمات المحجوزة (Keywords) ===
مجموعة من المفردات المعرفة مسبقاً في النظام ولا يُسمح باستخدامها كمعرفات، مثل: <code>class</code>، <code>public</code>، <code>static</code>، <code>void</code>، <code>if</code>، <code>else</code>، <code>while</code>، <code>return</code>.
=== المعرفات (Identifiers) ===
هي الأسماء المُسندة للمتغيرات، الدوال، والفئات. وتخضع للضوابط التالية:
* تتكون من أحرف (A-Z أو a-z)، أو أرقام، أو العلامات (<code>_</code> و <code>$</code>).
* لا يجوز أن تبدأ برقم.
* جافا '''حساسة لحالة الأحرف (Case-Sensitive)'''؛ حيث يُعد <code>Variable</code> مختلفاً عن <code>variable</code>.
=== التعليقات (Comments) ===
تعليمات يُهملها المترجم وتُستخدم للشرح والتأثيث النصي:
* تعليق سطر واحد: <code>// نص التعليق</code>
* تعليق متعدد الأسطر: <code>/* نص التعليق */</code>
* تعليق التوثيق (Javadoc): <code>/** نص التوثيق */</code>
== المتغيرات وأنواع البيانات ==
تنقسم البيانات في لغة جافا إلى فئتين رئيسيتين:
=== الأنواع البدائية (Primitive Data Types) ===
تُخزن القيم الفعلية في الذاكرة المباشرة:
{| class="wikitable"
|-
! النوع !! الحجم !! الوصف
|-
| <code>byte</code> || 1 بايت || أعداد صحيحة صغيرة جداً
|-
| <code>short</code> || 2 بايت || أعداد صحيحة صغيرة
|-
| <code>int</code> || 4 بايت || أعداد صحيحة قياسية
|-
| <code>long</code> || 8 بايت || أعداد صحيحة كبيرة
|-
| <code>float</code> || 4 بايت || أعداد كسرية قياسية
|-
| <code>double</code> || 8 بايت || أعداد كسرية دقيقة
|-
| <code>char</code> || 2 بايت || رمز أو حرف واحد (Unicode)
|-
| <code>boolean</code> || 1 بت || قيمة منطقية (<code>true</code> أو <code>false</code>)
|}
=== الأنواع المرجعية (Reference Data Types) ===
تُشير إلى مواقع الكائنات في الذاكرة (Heap Memory)، ومنها: النصوص (<code>String</code>)، المصفوفات (<code>Arrays</code>)، والكائنات المخصصة (<code>Objects</code>).
<syntaxhighlight lang="java">
int count = 10;
double price = 99.99;
boolean isActive = true;
String title = "التركيب النحوي";
</syntaxhighlight>
== الجمل الشرطية وحلقات التكرار ==
=== التحكم الشرطي ===
تُستخدم التراكيب الشرطية لاتخاذ القرارات بناءً على تحقق شروط منطقية:
<syntaxhighlight lang="java">
if (score >= 50) {
System.out.println("ناجح");
} else {
System.out.println("راسب");
}
</syntaxhighlight>
كما يمكن استخدام تركيب <code>switch</code> للتحقق من قيم متعددة لمتغير واحد.
=== التكرار والتدفق ===
تتضمن لغة جافا ثلاثة هياكل رئيسية للتكرار:
* '''حلقة <code>for</code>''': تُستخدم عند معرفة عدد التكرارات مسبقاً.
* '''حلقة <code>while</code>''': تتكرر طالما تحقق الشرط المنطقي.
* '''حلقة <code>do-while</code>''': تضمن تنفيذ الكود مرة واحدة على الأقل قبل فحص الشرط.
== انظر أيضاً ==
* [[البرمجة بلغة جافا/أساسيات جافا|أساسيات جافا]]
[[تصنيف:البرمجة بلغة جافا]]
4gb5x68hpjjngrggqj954pyi88oeblu
وحدة:Message box
828
45655
270757
218857
2026-10-12T10:04:00Z
SanBonne
34889
270757
Scribunto
text/plain
require('strict')
local getArgs
local yesno = require('Module:Yesno')
local lang = mw.language.getContentLanguage()
local CONFIG_MODULE = 'Module:Message box/configuration'
local DEMOSPACES = {talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getTitleObject(...)
-- Get the title object, passing the function through pcall
-- in case we are over the expensive function count limit.
local success, title = pcall(mw.title.new, ...)
if success then
return title
end
end
local function union(t1, t2)
-- Returns the union of two arrays.
local vals = {}
for i, v in ipairs(t1) do
vals[v] = true
end
for i, v in ipairs(t2) do
vals[v] = true
end
local ret = {}
for k in pairs(vals) do
table.insert(ret, k)
end
table.sort(ret)
return ret
end
local function getArgNums(args, prefix)
local nums = {}
for k, v in pairs(args) do
local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$')
if num then
table.insert(nums, tonumber(num))
end
end
table.sort(nums)
return nums
end
--------------------------------------------------------------------------------
-- Box class definition
--------------------------------------------------------------------------------
local MessageBox = {}
MessageBox.__index = MessageBox
function MessageBox.new(boxType, args, cfg)
args = args or {}
local obj = {}
-- Set the title object and the namespace.
obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()
-- Set the config for our box type.
obj.cfg = cfg[boxType]
if not obj.cfg then
local ns = obj.title.namespace
-- boxType is "mbox" or invalid input
if args.demospace and args.demospace ~= '' then
-- implement demospace parameter of mbox
local demospace = string.lower(args.demospace)
if DEMOSPACES[demospace] then
-- use template from DEMOSPACES
obj.cfg = cfg[DEMOSPACES[demospace]]
elseif string.find( demospace, 'talk' ) then
-- demo as a talk page
obj.cfg = cfg.tmbox
else
-- default to ombox
obj.cfg = cfg.ombox
end
elseif ns == 0 then
obj.cfg = cfg.ambox -- main namespace
elseif ns == 6 then
obj.cfg = cfg.imbox -- file namespace
elseif ns == 14 then
obj.cfg = cfg.cmbox -- category namespace
else
local nsTable = mw.site.namespaces[ns]
if nsTable and nsTable.isTalk then
obj.cfg = cfg.tmbox -- any talk namespace
else
obj.cfg = cfg.ombox -- other namespaces or invalid input
end
end
end
-- Set the arguments, and remove all blank arguments except for the ones
-- listed in cfg.allowBlankParams.
do
local newArgs = {}
for k, v in pairs(args) do
if v ~= '' then
newArgs[k] = v
end
end
for i, param in ipairs(obj.cfg.allowBlankParams or {}) do
newArgs[param] = args[param]
end
obj.args = newArgs
end
-- Define internal data structure.
obj.categories = {}
obj.classes = {}
-- For lazy loading of [[Module:Category handler]].
obj.hasCategories = false
return setmetatable(obj, MessageBox)
end
function MessageBox:addCat(ns, cat, sort)
if not cat then
return nil
end
if sort then
cat = string.format('[[Category:%s|%s]]', cat, sort)
else
cat = string.format('[[Category:%s]]', cat)
end
self.hasCategories = true
self.categories[ns] = self.categories[ns] or {}
table.insert(self.categories[ns], cat)
end
function MessageBox:addClass(class)
if not class then
return nil
end
table.insert(self.classes, class)
end
function MessageBox:setParameters()
local args = self.args
local cfg = self.cfg
-- Get type data.
self.type = args.type
local typeData = cfg.types[self.type]
self.invalidTypeError = cfg.showInvalidTypeError
and self.type
and not typeData
typeData = typeData or cfg.types[cfg.default]
self.typeClass = typeData.class
self.typeImage = typeData.image
self.typeImageNeedsLink = typeData.imageNeedsLink
-- Find if the box has been wrongly substituted.
self.isSubstituted = cfg.substCheck and args.subst == 'SUBST'
-- Find whether we are using a small message box.
self.isSmall = cfg.allowSmall and (
cfg.smallParam and args.small == cfg.smallParam
or not cfg.smallParam and yesno(args.small)
)
-- Add attributes, classes and styles.
self.id = args.id
self.name = args.name
if self.name then
self:addClass('box-' .. string.gsub(self.name,' ','_'))
end
if yesno(args.plainlinks) ~= false then
self:addClass('plainlinks')
end
for _, class in ipairs(cfg.classes or {}) do
self:addClass(class)
end
if self.isSmall then
self:addClass(cfg.smallClass or 'mbox-small')
end
self:addClass(self.typeClass)
self:addClass(args.class)
self.style = args.style
self.attrs = args.attrs
-- Set text style.
self.textstyle = args.textstyle
-- Set image classes.
self.imageRightClass = args.imagerightclass or args.imageclass
self.imageLeftClass = args.imageleftclass or args.imageclass
-- Find if we are on the template page or not. This functionality is only
-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory
-- and cfg.templateCategoryRequireName are set.
self.useCollapsibleTextFields = cfg.useCollapsibleTextFields
if self.useCollapsibleTextFields
or cfg.templateCategory
and cfg.templateCategoryRequireName
then
if self.name then
local templateName = mw.ustring.match(
self.name,
'^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$'
) or self.name
templateName = 'Template:' .. templateName
self.templateTitle = getTitleObject(templateName)
end
self.isTemplatePage = self.templateTitle
and mw.title.equals(self.title, self.templateTitle)
end
-- Process data for collapsible text fields. At the moment these are only
-- used in {{ambox}}.
if self.useCollapsibleTextFields then
-- Get the self.issue value.
if self.isSmall and args.smalltext then
self.issue = args.smalltext
else
local sect
if args.sect == '' then
sect = 'This ' .. (cfg.sectionDefault or 'page')
elseif type(args.sect) == 'string' then
sect = 'This ' .. args.sect
end
local issue = args.issue
issue = type(issue) == 'string' and issue ~= '' and issue or nil
local text = args.text
text = type(text) == 'string' and text or nil
local issues = {}
table.insert(issues, sect)
table.insert(issues, issue)
table.insert(issues, text)
self.issue = table.concat(issues, ' ')
end
-- Get the self.talk value.
local talk = args.talk
-- Show talk links on the template page or template subpages if the talk
-- parameter is blank.
if talk == ''
and self.templateTitle
and (
mw.title.equals(self.templateTitle, self.title)
or self.title:isSubpageOf(self.templateTitle)
)
then
talk = '#'
elseif talk == '' then
talk = nil
end
if talk then
-- If the talk value is a talk page, make a link to that page. Else
-- assume that it's a section heading, and make a link to the talk
-- page of the current page with that section heading.
local talkTitle = getTitleObject(talk)
local talkArgIsTalkPage = true
if not talkTitle or not talkTitle.isTalkPage then
talkArgIsTalkPage = false
talkTitle = getTitleObject(
self.title.text,
mw.site.namespaces[self.title.namespace].talk.id
)
end
if talkTitle and talkTitle.exists then
local talkText
if self.isSmall then
local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. '#' .. talk)
talkText = string.format('([[%s|talk]])', talkLink)
else
talkText = 'Relevant discussion may be found on'
if talkArgIsTalkPage then
talkText = string.format(
'%s [[%s|%s]].',
talkText,
talk,
talkTitle.prefixedText
)
else
talkText = string.format(
'%s the [[%s#%s|talk page]].',
talkText,
talkTitle.prefixedText,
talk
)
end
end
self.talk = talkText
end
end
-- Get other values.
self.fix = args.fix ~= '' and args.fix or nil
local date
if args.date and args.date ~= '' then
date = args.date
elseif args.date == '' and self.isTemplatePage then
date = lang:formatDate('F Y')
end
if date then
self.date = string.format(" <span class='date-container'><i>(<span class='date'>%s</span>)</i></span>", date)
end
self.info = args.info
if yesno(args.removalnotice) then
self.removalNotice = cfg.removalNotice
end
end
-- Set the non-collapsible text field. At the moment this is used by all box
-- types other than ambox, and also by ambox when small=yes.
if self.isSmall then
self.text = args.smalltext or args.text
else
self.text = args.text
end
-- Set the below row.
self.below = cfg.below and args.below
-- General image settings.
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv
self.imageEmptyCell = cfg.imageEmptyCell
-- Left image settings.
local imageLeft = self.isSmall and args.smallimage or args.image
if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none'
or not cfg.imageCheckBlank and imageLeft ~= 'none'
then
self.imageLeft = imageLeft
if not imageLeft then
local imageSize = self.isSmall
and (cfg.imageSmallSize or '30x30px')
or '40x40px'
self.imageLeft = string.format('[[File:%s|%s%s|alt=]]', self.typeImage
or 'Information icon4.svg', imageSize, self.typeImageNeedsLink and "" or "|link=" )
end
end
-- Right image settings.
local imageRight = self.isSmall and args.smallimageright or args.imageright
if not (cfg.imageRightNone and imageRight == 'none') then
self.imageRight = imageRight
end
-- set templatestyles
self.base_templatestyles = cfg.templatestyles
self.templatestyles = args.templatestyles
end
function MessageBox:setMainspaceCategories()
local args = self.args
local cfg = self.cfg
if not cfg.allowMainspaceCategories then
return nil
end
local nums = {}
for _, prefix in ipairs{'cat', 'category', 'all'} do
args[prefix .. '1'] = args[prefix]
nums = union(nums, getArgNums(args, prefix))
end
-- The following is roughly equivalent to the old {{Ambox/category}}.
local date = args.date
date = type(date) == 'string' and date
local preposition = 'from'
for _, num in ipairs(nums) do
local mainCat = args['cat' .. tostring(num)]
or args['category' .. tostring(num)]
local allCat = args['all' .. tostring(num)]
mainCat = type(mainCat) == 'string' and mainCat
allCat = type(allCat) == 'string' and allCat
if mainCat and date and date ~= '' then
local catTitle = string.format('%s %s %s', mainCat, preposition, date)
self:addCat(0, catTitle)
catTitle = getTitleObject('Category:' .. catTitle)
if not catTitle or not catTitle.exists then
self:addCat(0, 'Articles with invalid date parameter in template')
end
elseif mainCat and (not date or date == '') then
self:addCat(0, mainCat)
end
if allCat then
self:addCat(0, allCat)
end
end
end
function MessageBox:setTemplateCategories()
local args = self.args
local cfg = self.cfg
-- Add template categories.
if cfg.templateCategory then
if cfg.templateCategoryRequireName then
if self.isTemplatePage then
self:addCat(10, cfg.templateCategory)
end
elseif not self.title.isSubpage then
self:addCat(10, cfg.templateCategory)
end
end
-- Add template error categories.
if cfg.templateErrorCategory then
local templateErrorCategory = cfg.templateErrorCategory
local templateCat, templateSort
if not self.name and not self.title.isSubpage then
templateCat = templateErrorCategory
elseif self.isTemplatePage then
local paramsToCheck = cfg.templateErrorParamsToCheck or {}
local count = 0
for i, param in ipairs(paramsToCheck) do
if not args[param] then
count = count + 1
end
end
if count > 0 then
templateCat = templateErrorCategory
templateSort = tostring(count)
end
if self.categoryNums and #self.categoryNums > 0 then
templateCat = templateErrorCategory
templateSort = 'C'
end
end
self:addCat(10, templateCat, templateSort)
end
end
function MessageBox:setAllNamespaceCategories()
-- Set categories for all namespaces.
if self.invalidTypeError then
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort)
end
if self.isSubstituted then
self:addCat('all', 'Pages with incorrectly substituted templates')
end
end
function MessageBox:setCategories()
if self.title.namespace == 0 then
self:setMainspaceCategories()
elseif self.title.namespace == 10 then
self:setTemplateCategories()
end
self:setAllNamespaceCategories()
end
function MessageBox:renderCategories()
if not self.hasCategories then
-- No categories added, no need to pass them to Category handler so,
-- if it was invoked, it would return the empty string.
-- So we shortcut and return the empty string.
return ""
end
-- Convert category tables to strings and pass them through
-- [[Module:Category handler]].
return require('Module:Category handler')._main{
main = table.concat(self.categories[0] or {}),
template = table.concat(self.categories[10] or {}),
all = table.concat(self.categories.all or {}),
nocat = self.args.nocat,
page = self.args.page
}
end
function MessageBox:export()
local root = mw.html.create()
-- Add the subst check error.
if self.isSubstituted and self.name then
root:tag('b')
:addClass('error')
:wikitext(string.format(
'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.',
mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}')
))
end
local frame = mw.getCurrentFrame()
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.base_templatestyles },
})
-- Add support for a single custom templatestyles sheet. Undocumented as
-- need should be limited and many templates using mbox are substed; we
-- don't want to spread templatestyles sheets around to arbitrary places
if self.templatestyles then
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.templatestyles },
})
end
-- Create the box table.
local boxTable = root:tag('table')
boxTable:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
boxTable:addClass(class or nil)
end
boxTable
:cssText(self.style or nil)
:attr('role', 'presentation')
if self.attrs then
boxTable:attr(self.attrs)
end
-- Add the left-hand image.
local row = boxTable:tag('tr')
if self.imageLeft then
local imageLeftCell = row:tag('td'):addClass('mbox-image')
if self.imageCellDiv then
-- If we are using a div, redefine imageLeftCell so that the image
-- is inside it. Divs use style="width: 52px;", which limits the
-- image width to 52px. If any images in a div are wider than that,
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):addClass('mbox-image-div')
end
imageLeftCell
:addClass(self.imageLeftClass)
:wikitext(self.imageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
-- some don't. The old template code in templates where empty cells are
-- specified gives the following hint: "No image. Cell with some width
-- or padding necessary for text cell to have 100% width."
row:tag('td')
:addClass('mbox-empty-cell')
end
-- Add the text.
local textCell = row:tag('td'):addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellDiv = textCell:tag('div')
textCellDiv
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if (self.talk or self.fix) then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellDiv:wikitext(self.date and (' ' .. self.date) or nil)
if self.info and not self.isSmall then
textCellDiv
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
if self.removalNotice then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:tag('i')
:wikitext(string.format(" (%s)", self.removalNotice))
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = row:tag('td'):addClass('mbox-imageright')
if self.imageCellDiv then
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
imageRightCell = imageRightCell:tag('div'):addClass('mbox-image-div')
end
imageRightCell
:addClass(self.imageRightClass)
:wikitext(self.imageRight or nil)
end
-- Add the below row.
if self.below then
boxTable:tag('tr')
:tag('td')
:attr('colspan', self.imageRight and '3' or '2')
:addClass('mbox-text')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:addClass('mbox-invalid-type')
:wikitext(string.format(
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p, mt = {}, {}
function p._exportClasses()
-- For testing.
return {
MessageBox = MessageBox
}
end
function p.main(boxType, args, cfgTables)
local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))
box:setParameters()
box:setCategories()
return box:export()
end
function mt.__index(t, k)
return function (frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))
end
end
return setmetatable(p, mt)
ca6g5f6jxmv1y7dh20wx0vvr5b5qk88
وحدة:Message box/configuration
828
45807
270740
218809
2026-10-12T09:34:46Z
SanBonne
34889
270740
Scribunto
text/plain
---------------------------------------------------------------------------------
-- تكوين صندوق الرسالة (Message box) --
-- --
-- يحتوي هذا الموديول على بيانات التكوين لـ [[وحدة:Message box]]. --
---------------------------------------------------------------------------------
return {
ambox = {
types = {
speedy = {
class = 'ambox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ambox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ambox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ambox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ambox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ambox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ambox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'},
allowSmall = true,
smallParam = 'left',
smallClass = 'mbox-small-left',
substCheck = true,
classes = {'metadata', 'ambox'},
imageEmptyCell = true,
imageCheckBlank = true,
imageSmallSize = '20x20px',
imageCellDiv = true,
useCollapsibleTextFields = true,
imageRightNone = true,
sectionDefault = 'article',
allowMainspaceCategories = true,
templateCategory = 'قوالب رسائل الصفحات',
templateCategoryRequireName = true,
templateErrorCategory = 'قوالب رسائل الصفحات بنقص في الوسائط',
templateErrorParamsToCheck = {'issue', 'fix', 'subst'},
removalNotice = '<small>[[مساعدة:إزالة قالب صيانة|تعلم متى وكيف تزيل هذه الرسالة]]</small>',
templatestyles = 'وحدة:Message box/ambox.css'
},
cmbox = {
types = {
speedy = {
class = 'cmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'cmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'cmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'cmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'cmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'cmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'cmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'cmbox'},
imageEmptyCell = true,
templatestyles = 'وحدة:Message box/cmbox.css'
},
fmbox = {
types = {
warning = {
class = 'fmbox-warning',
image = 'Ambox warning pn.svg'
},
editnotice = {
class = 'fmbox-editnotice',
image = 'Information icon4.svg'
},
system = {
class = 'fmbox-system',
image = 'Information icon4.svg'
}
},
default = 'system',
showInvalidTypeError = true,
classes = {'fmbox'},
imageEmptyCell = false,
imageRightNone = false,
templatestyles = 'وحدة:Message box/fmbox.css'
},
imbox = {
types = {
speedy = {
class = 'imbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'imbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'imbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'imbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'imbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'imbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
license = {
class = 'imbox-license licensetpl',
image = 'Imbox-license.svg'
},
["license-related"] = {
class = 'imbox-license',
image = 'Imbox-license.svg'
},
featured = {
class = 'imbox-featured',
image = 'Cscr-featured.svg',
imageNeedsLink = true
},
notice = {
class = 'imbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'imbox'},
imageEmptyCell = true,
below = true,
templateCategory = 'قوالب رسائل الملفات',
templatestyles = 'وحدة:Message box/imbox.css'
},
ombox = {
types = {
speedy = {
class = 'ombox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ombox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ombox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ombox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ombox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ombox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ombox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'ombox'},
allowSmall = true,
imageEmptyCell = true,
imageRightNone = true,
templatestyles = 'وحدة:Message box/ombox.css'
},
tmbox = {
types = {
speedy = {
class = 'tmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'tmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'tmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'tmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'tmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'tmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'tmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'tmbox'},
allowSmall = true,
imageRightNone = true,
imageEmptyCell = true,
templateCategory = 'قوالب رسائل النقاش',
templatestyles = 'وحدة:Message box/tmbox.css'
}
}
adphifdf7ws56n20ov2g2l7hxeeo125
270761
270740
2026-10-12T10:27:21Z
SanBonne
34889
270761
Scribunto
text/plain
---------------------------------------------------------------------------------
-- تكوين صندوق الرسالة (Message box) --
-- --
-- يحتوي هذا الموديول على بيانات التكوين لـ [[وحدة:Message box]]. --
---------------------------------------------------------------------------------
local cfg = {}
-- إعدادات صناديق المقالات والكتب (ambox)
cfg.ambox = {
types = {
speedy = {
class = 'ambox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ambox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ambox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ambox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ambox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ambox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ambox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'},
allowSmall = true,
smallParam = 'left',
smallClass = 'mbox-small-left',
substCheck = true,
classes = {'metadata', 'ambox'},
imageEmptyCell = true,
imageCheckBlank = true,
imageRightNone = true,
sectionDefault = 'كتاب',
allowMainspaceCategories = true,
}
-- إعدادات صناديق التصنيفات (cmbox)
cfg.cmbox = {
types = {
speedy = {
class = 'cmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'cmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'cmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'cmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'cmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'cmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'cmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'cmbox'},
imageEmptyCell = true
}
-- إعدادات الصناديق العامة ونطاقات أخرى (ombox)
cfg.ombox = {
types = {
speedy = {
class = 'ombox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ombox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ombox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ombox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ombox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ombox-protection',
image = 'Imbox protection.png'
},
notice = {
class = 'ombox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'ombox'},
imageEmptyCell = true,
imageRightNone = true
}
-- الأسماء البديلة للأنواع (لغات أخرى أو مرادفات)
-- هنا قمنا بإضافة الكلمات العربية لتتعرف عليها الوحدة تلقائياً
cfg.typeAliases = {
['سريع'] = 'speedy',
['حذف'] = 'delete',
['محتوى'] = 'content',
['أسلوب'] = 'style',
['تنسيق'] = 'style',
['ملاحظة'] = 'notice',
['نقل'] = 'move',
['حماية'] = 'protection'
}
return cfg
66g197oyd760lm69qou5laubgw99fer
البرمجة بلغة جافا/أساسيات جافا
0
57829
270727
2026-10-11T20:38:35Z
SanBonne
34889
أنشأ الصفحة ب'{{عنوان سرية|البرمجة بلغة جافا/أساسيات جافا}} تُعد '''أساسيات جافا ''' حجر الأساس لفهم كيفية بناء وتطوير البرامج والتطبيقات المكتوبة بهذه اللغة. بعد الإلمام بقواعد التركيب النحوي (Syntax)، يجب فهم المفاهيم الجوهرية التي تبني المنطق البرمجي داخل لغة جافا.'
270727
wikitext
text/x-wiki
{{عنوان سرية|البرمجة بلغة جافا/أساسيات جافا}}
تُعد '''أساسيات جافا ''' حجر الأساس لفهم كيفية بناء وتطوير البرامج والتطبيقات المكتوبة بهذه اللغة. بعد الإلمام بقواعد التركيب النحوي (Syntax)، يجب فهم المفاهيم الجوهرية التي تبني المنطق البرمجي داخل لغة جافا.
p6pffen4e41gxewok16a4sb33rx2d2n
270728
270727
2026-10-11T20:39:14Z
SanBonne
34889
270728
wikitext
text/x-wiki
تُعد '''أساسيات جافا ''' حجر الأساس لفهم كيفية بناء وتطوير البرامج والتطبيقات المكتوبة بهذه اللغة. بعد الإلمام بقواعد التركيب النحوي (Syntax)، يجب فهم المفاهيم الجوهرية التي تبني المنطق البرمجي داخل لغة جافا.
== المعاملات والعمليات الحسابية والمنطقية ==
تدعم لغة جافا مجموعة واسعة من المعاملات (Operators) لمعالجة البيانات وتنفيذ العمليات المختلفة:
=== العمليات الحسابية (Arithmetic Operators) ===
تُستخدم لإجراء العمليات الرياضية الأساسية:
* <code>+</code> : الجمع
* <code>-</code> : الطرح
* <code>*</code> : الضرب
* <code>/</code> : القسمة
* <code>%</code> : باقي القسمة (Modulo)
=== المعاملات العلائقية والمقارنة (Relational Operators) ===
تُستخدم لمقارنة القيم وإرجاع نتيجة منطقية (<code>true</code> أو <code>false</code>):
* <code>==</code> : مساوٍ ل:
* <code>!=</code> : لا يساوي
* <code>></code> ، <code><</code> : أكبر من، أصغر من
* <code>>=</code> ، <code><=</code> : أكبر من أو يساوي، أصغر من أو يساوي
=== المعاملات المنطقية (Logical Operators) ===
تُستخدم لربط الشروط المنطقية المتعددة:
* <code>&&</code> : (AND) الشرط المشترك (يتحقق إذا كانت جميع الشروط صحيحة).
* <code>||</code> : (OR) الشرط البديل (يتحقق إذا تحقق شرط واحد على الأقل).
* <code>!</code> : (NOT) العكس المنطقي.
69lfpt36ro15dgpj1h4hcv8d2zd3v2a
270729
270728
2026-10-11T20:39:36Z
SanBonne
34889
/* المعاملات والعمليات الحسابية والمنطقية */
270729
wikitext
text/x-wiki
تُعد '''أساسيات جافا ''' حجر الأساس لفهم كيفية بناء وتطوير البرامج والتطبيقات المكتوبة بهذه اللغة. بعد الإلمام بقواعد التركيب النحوي (Syntax)، يجب فهم المفاهيم الجوهرية التي تبني المنطق البرمجي داخل لغة جافا.
== المعاملات والعمليات الحسابية والمنطقية ==
تدعم لغة جافا مجموعة واسعة من المعاملات (Operators) لمعالجة البيانات وتنفيذ العمليات المختلفة:
=== العمليات الحسابية (Arithmetic Operators) ===
تُستخدم لإجراء العمليات الرياضية الأساسية:
* <code>+</code> : الجمع
* <code>-</code> : الطرح
* <code>*</code> : الضرب
* <code>/</code> : القسمة
* <code>%</code> : باقي القسمة (Modulo)
=== المعاملات العلائقية والمقارنة (Relational Operators) ===
تُستخدم لمقارنة القيم وإرجاع نتيجة منطقية (<code>true</code> أو <code>false</code>):
* <code>==</code> : مساوٍ ل:
* <code>!=</code> : لا يساوي
* <code>></code> ، <code><</code> : أكبر من، أصغر من
* <code>>=</code> ، <code><=</code> : أكبر من أو يساوي، أصغر من أو يساوي
=== المعاملات المنطقية (Logical Operators) ===
تُستخدم لربط الشروط المنطقية المتعددة:
* <code>&&</code> : (AND) الشرط المشترك (يتحقق إذا كانت جميع الشروط صحيحة).
* <code>||</code> : (OR) الشرط البديل (يتحقق إذا تحقق شرط واحد على الأقل).
* <code>!</code> : (NOT) العكس المنطقي.
== نطاق المتغيرات (Variable Scope) ===
يحدد نطاق المتغير (Scope) الجانب أو الكتلة البرمجية التي يمكن فيها الوصول إلى المتغير واستخدامه:
* '''متغيرات الفئة (Class Variables / Fields):''' تُعرف داخل الفئة وخارج الدوال، وتكون متاحة لكافة أساليب الفئة.
* '''المتغيرات المحلية (Local Variables):''' تُعرف داخل الدوال أو الحلقات التكرارية، وتنتهي صلاحيتها بمجرد الخروج من تلك الكتلة البرمجية.
== المصفوفات (Arrays) ===
المصفوفة هي بنية بيانات مخصصة لتخزين مجموعة من العناصر (ذات نوع واحد) تحت اسم متغير واحد وبأحجام ثابتة.
<syntaxhighlight lang="java">
// إعلان وإنشاء مصفوفة تحتوي على 5 أعداد صحيحة
int[] scores = new int[5];
// تعبئة المصفوفة بالقيم مباشرة
String[] days = {"السبت", "الأحد", "الإثنين", "الثلاثاء", "الأربعاء"};
// الوصول إلى عنصر داخل المصفوفة عبر الفهرس (Index)
System.out.println(days[0]); // يطبع "السبت"
</syntaxhighlight>
iujqhrnp20yflfidsumus20pnjtaawo
270730
270729
2026-10-11T20:39:49Z
SanBonne
34889
/* المصفوفات (Arrays) = */
270730
wikitext
text/x-wiki
تُعد '''أساسيات جافا ''' حجر الأساس لفهم كيفية بناء وتطوير البرامج والتطبيقات المكتوبة بهذه اللغة. بعد الإلمام بقواعد التركيب النحوي (Syntax)، يجب فهم المفاهيم الجوهرية التي تبني المنطق البرمجي داخل لغة جافا.
== المعاملات والعمليات الحسابية والمنطقية ==
تدعم لغة جافا مجموعة واسعة من المعاملات (Operators) لمعالجة البيانات وتنفيذ العمليات المختلفة:
=== العمليات الحسابية (Arithmetic Operators) ===
تُستخدم لإجراء العمليات الرياضية الأساسية:
* <code>+</code> : الجمع
* <code>-</code> : الطرح
* <code>*</code> : الضرب
* <code>/</code> : القسمة
* <code>%</code> : باقي القسمة (Modulo)
=== المعاملات العلائقية والمقارنة (Relational Operators) ===
تُستخدم لمقارنة القيم وإرجاع نتيجة منطقية (<code>true</code> أو <code>false</code>):
* <code>==</code> : مساوٍ ل:
* <code>!=</code> : لا يساوي
* <code>></code> ، <code><</code> : أكبر من، أصغر من
* <code>>=</code> ، <code><=</code> : أكبر من أو يساوي، أصغر من أو يساوي
=== المعاملات المنطقية (Logical Operators) ===
تُستخدم لربط الشروط المنطقية المتعددة:
* <code>&&</code> : (AND) الشرط المشترك (يتحقق إذا كانت جميع الشروط صحيحة).
* <code>||</code> : (OR) الشرط البديل (يتحقق إذا تحقق شرط واحد على الأقل).
* <code>!</code> : (NOT) العكس المنطقي.
== نطاق المتغيرات (Variable Scope) ===
يحدد نطاق المتغير (Scope) الجانب أو الكتلة البرمجية التي يمكن فيها الوصول إلى المتغير واستخدامه:
* '''متغيرات الفئة (Class Variables / Fields):''' تُعرف داخل الفئة وخارج الدوال، وتكون متاحة لكافة أساليب الفئة.
* '''المتغيرات المحلية (Local Variables):''' تُعرف داخل الدوال أو الحلقات التكرارية، وتنتهي صلاحيتها بمجرد الخروج من تلك الكتلة البرمجية.
=== المصفوفات (Arrays) ===
المصفوفة هي بنية بيانات مخصصة لتخزين مجموعة من العناصر (ذات نوع واحد) تحت اسم متغير واحد وبأحجام ثابتة.
<syntaxhighlight lang="java">
// إعلان وإنشاء مصفوفة تحتوي على 5 أعداد صحيحة
int[] scores = new int[5];
// تعبئة المصفوفة بالقيم مباشرة
String[] days = {"السبت", "الأحد", "الإثنين", "الثلاثاء", "الأربعاء"};
// الوصول إلى عنصر داخل المصفوفة عبر الفهرس (Index)
System.out.println(days[0]); // يطبع "السبت"
</syntaxhighlight>
q0qs8fsb51kmlcpz4b5vsdeq1c8bbd8
270731
270730
2026-10-11T20:39:56Z
SanBonne
34889
/* نطاق المتغيرات (Variable Scope) = */
270731
wikitext
text/x-wiki
تُعد '''أساسيات جافا ''' حجر الأساس لفهم كيفية بناء وتطوير البرامج والتطبيقات المكتوبة بهذه اللغة. بعد الإلمام بقواعد التركيب النحوي (Syntax)، يجب فهم المفاهيم الجوهرية التي تبني المنطق البرمجي داخل لغة جافا.
== المعاملات والعمليات الحسابية والمنطقية ==
تدعم لغة جافا مجموعة واسعة من المعاملات (Operators) لمعالجة البيانات وتنفيذ العمليات المختلفة:
=== العمليات الحسابية (Arithmetic Operators) ===
تُستخدم لإجراء العمليات الرياضية الأساسية:
* <code>+</code> : الجمع
* <code>-</code> : الطرح
* <code>*</code> : الضرب
* <code>/</code> : القسمة
* <code>%</code> : باقي القسمة (Modulo)
=== المعاملات العلائقية والمقارنة (Relational Operators) ===
تُستخدم لمقارنة القيم وإرجاع نتيجة منطقية (<code>true</code> أو <code>false</code>):
* <code>==</code> : مساوٍ ل:
* <code>!=</code> : لا يساوي
* <code>></code> ، <code><</code> : أكبر من، أصغر من
* <code>>=</code> ، <code><=</code> : أكبر من أو يساوي، أصغر من أو يساوي
=== المعاملات المنطقية (Logical Operators) ===
تُستخدم لربط الشروط المنطقية المتعددة:
* <code>&&</code> : (AND) الشرط المشترك (يتحقق إذا كانت جميع الشروط صحيحة).
* <code>||</code> : (OR) الشرط البديل (يتحقق إذا تحقق شرط واحد على الأقل).
* <code>!</code> : (NOT) العكس المنطقي.
== نطاق المتغيرات (Variable Scope) ==
يحدد نطاق المتغير (Scope) الجانب أو الكتلة البرمجية التي يمكن فيها الوصول إلى المتغير واستخدامه:
* '''متغيرات الفئة (Class Variables / Fields):''' تُعرف داخل الفئة وخارج الدوال، وتكون متاحة لكافة أساليب الفئة.
* '''المتغيرات المحلية (Local Variables):''' تُعرف داخل الدوال أو الحلقات التكرارية، وتنتهي صلاحيتها بمجرد الخروج من تلك الكتلة البرمجية.
=== المصفوفات (Arrays) ===
المصفوفة هي بنية بيانات مخصصة لتخزين مجموعة من العناصر (ذات نوع واحد) تحت اسم متغير واحد وبأحجام ثابتة.
<syntaxhighlight lang="java">
// إعلان وإنشاء مصفوفة تحتوي على 5 أعداد صحيحة
int[] scores = new int[5];
// تعبئة المصفوفة بالقيم مباشرة
String[] days = {"السبت", "الأحد", "الإثنين", "الثلاثاء", "الأربعاء"};
// الوصول إلى عنصر داخل المصفوفة عبر الفهرس (Index)
System.out.println(days[0]); // يطبع "السبت"
</syntaxhighlight>
ityhc13x9zzperxddy6k9vquirsrukh
270732
270731
2026-10-11T20:40:07Z
SanBonne
34889
/* نطاق المتغيرات (Variable Scope) */
270732
wikitext
text/x-wiki
تُعد '''أساسيات جافا ''' حجر الأساس لفهم كيفية بناء وتطوير البرامج والتطبيقات المكتوبة بهذه اللغة. بعد الإلمام بقواعد التركيب النحوي (Syntax)، يجب فهم المفاهيم الجوهرية التي تبني المنطق البرمجي داخل لغة جافا.
== المعاملات والعمليات الحسابية والمنطقية ==
تدعم لغة جافا مجموعة واسعة من المعاملات (Operators) لمعالجة البيانات وتنفيذ العمليات المختلفة:
=== العمليات الحسابية (Arithmetic Operators) ===
تُستخدم لإجراء العمليات الرياضية الأساسية:
* <code>+</code> : الجمع
* <code>-</code> : الطرح
* <code>*</code> : الضرب
* <code>/</code> : القسمة
* <code>%</code> : باقي القسمة (Modulo)
=== المعاملات العلائقية والمقارنة (Relational Operators) ===
تُستخدم لمقارنة القيم وإرجاع نتيجة منطقية (<code>true</code> أو <code>false</code>):
* <code>==</code> : مساوٍ ل:
* <code>!=</code> : لا يساوي
* <code>></code> ، <code><</code> : أكبر من، أصغر من
* <code>>=</code> ، <code><=</code> : أكبر من أو يساوي، أصغر من أو يساوي
=== المعاملات المنطقية (Logical Operators) ===
تُستخدم لربط الشروط المنطقية المتعددة:
* <code>&&</code> : (AND) الشرط المشترك (يتحقق إذا كانت جميع الشروط صحيحة).
* <code>||</code> : (OR) الشرط البديل (يتحقق إذا تحقق شرط واحد على الأقل).
* <code>!</code> : (NOT) العكس المنطقي.
== نطاق المتغيرات (Variable Scope) ==
يحدد نطاق المتغير (Scope) الجانب أو الكتلة البرمجية التي يمكن فيها الوصول إلى المتغير واستخدامه:
* '''متغيرات الفئة (Class Variables / Fields):''' تُعرف داخل الفئة وخارج الدوال، وتكون متاحة لكافة أساليب الفئة.
* '''المتغيرات المحلية (Local Variables):''' تُعرف داخل الدوال أو الحلقات التكرارية، وتنتهي صلاحيتها بمجرد الخروج من تلك الكتلة البرمجية.
=== المصفوفات (Arrays) ===
المصفوفة هي بنية بيانات مخصصة لتخزين مجموعة من العناصر (ذات نوع واحد) تحت اسم متغير واحد وبأحجام ثابتة.
<syntaxhighlight lang="java">
// إعلان وإنشاء مصفوفة تحتوي على 5 أعداد صحيحة
int[] scores = new int[5];
// تعبئة المصفوفة بالقيم مباشرة
String[] days = {"السبت", "الأحد", "الإثنين", "الثلاثاء", "الأربعاء"};
// الوصول إلى عنصر داخل المصفوفة عبر الفهرس (Index)
System.out.println(days[0]); // يطبع "السبت"
</syntaxhighlight>
== إدخال وإخراج البيانات (I/O) ===
تتفاعل برامج جافا مع المستخدمين إما عبر سطر الأوامر (Console) أو واجهات المستخدم الرسومية. لقراءة المدخلات من لوحة المفاتيح، يُستخدم عادةً الصنف <code>Scanner</code>:
<syntaxhighlight lang="java">
import java.util.Scanner;
public class InputExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("أدخل اسمك: ");
String name = scanner.nextLine();
System.out.println("أهلاً بك، " + name);
}
}
</syntaxhighlight>
== انظر أيضاً ==
* [[البرمجة بلغة جافا/التركيب النحوي|التركيب النحوي في جافا]]
* [[البرمجة بلغة جافا/البرمجة كائنية التوجه|مبادئ البرمجة كائنية التوجه (OOP)]]
* [[البرمجة بلغة جافا/الاستثناءات|معالجة الاستثناءات والأخطاء]]
[[تصنيف:البرمجة بلغة جافا]]
[[تصنيف:لغات البرمجة]]
n4ldd59zw1wmyuarvf9erd3vlsvqiaa
برمجة جافا/التركيب النحوي
0
57830
270734
2026-10-11T20:40:58Z
SanBonne
34889
نقلت SanBonne صفحة [[برمجة جافا/التركيب النحوي]] إلى [[البرمجة بلغة جافا/التركيب النحوي]]: عنوان مكتوب بشكل خاطئ
270734
wikitext
text/x-wiki
#تحويل [[البرمجة بلغة جافا/التركيب النحوي]]
8y4sssd1wh1n6w1j9s5yq9ugqoyf87k
برمجة جافا
0
57831
270736
2026-10-11T20:41:34Z
SanBonne
34889
نقلت SanBonne صفحة [[برمجة جافا]] إلى [[البرمجة بلغة جافا]]: عنوان مكتوب بشكل خاطئ
270736
wikitext
text/x-wiki
#تحويل [[البرمجة بلغة جافا]]
7d3075yqhsirwxwslalih35nyjzz1o5
تصنيف:البرمجة بلغة جافا
14
57832
270737
2026-10-11T20:43:05Z
SanBonne
34889
أنشأ الصفحة ب'[[تصنيف:لغات برمجة]]'
270737
wikitext
text/x-wiki
[[تصنيف:لغات برمجة]]
ds59nyaxuxggk7bem8d2ey644ou4bdm
قالب:صندوق رسالة كتاب
10
57833
270741
2026-10-12T09:41:30Z
SanBonne
34889
أنشأ الصفحة ب'{{#invoke:Message box|bmbox}} <noinclude> {{توثيق}} </noinclude>'
270741
wikitext
text/x-wiki
{{#invoke:Message box|bmbox}}
<noinclude>
{{توثيق}}
</noinclude>
rsn3hva887lgz6efwzrzcyno56tw6ci
270749
270741
2026-10-12T09:51:42Z
SanBonne
34889
270749
wikitext
text/x-wiki
{{#invoke:Message box|bmbox}}<noinclude>
{{توثيق}}
</noinclude>
h18rckekrfibxtw4aqq4hiu7raxdnom
270759
270749
2026-10-12T10:08:47Z
SanBonne
34889
270759
wikitext
text/x-wiki
{{#invoke:Message box|ombox
| type = {{{نوع|{{{type|}}}}}}
| image = {{{صورة|{{{image|}}}}}}
| text = {{{نص|{{{text|}}}}}}
| text_small = {{{تفاصيل|{{{text_small|}}}}}}
}}<!--
--><noinclude>
{{توثيق}}
</noinclude>
tu80vxwzj203ymduk260cli1hb454wy
270760
270759
2026-10-12T10:16:24Z
SanBonne
34889
270760
wikitext
text/x-wiki
{{#invoke:Message box|ombox
| type = {{#switch: {{{نوع|{{{type|}}}}}}
| حذف سريع = speedy
| حذف = delete
| محتوى = content
| أسلوب | تنسيق = style
| ملاحظة = notice
| نقل = move
| حماية = protection
| #default = {{{نوع|{{{type|}}}}}}
}}
| image = {{{صورة|{{{image|}}}}}}
| text = {{{نص|{{{text|}}}}}}
| text_small = {{{تفاصيل|{{{text_small|}}}}}}
}}<!--
--><noinclude>
{{توثيق}}
</noinclude>
i9q88wwbvpj17hc819sww8vl31eks4i
قالب:شرح قالب
10
57834
270745
2026-10-12T09:45:27Z
SanBonne
34889
تحويل إلى [[قالب:توثيق]]
270745
wikitext
text/x-wiki
#تحويل [[قالب:توثيق]]
33iidm9x450o81qvqqwg4mw74u676mb
قالب:صندوق رسالة كتاب/شرح
10
57836
270748
2026-10-12T09:51:28Z
SanBonne
34889
أنشأ الصفحة ب'هذا القالب هو صندوق رسائل مخصص لنطاق "كتاب:" في ويكي الكتب، ويعتمد برمجياً على [[وحدة:Message_box]]. == الاستخدام == انسخ الكود التالي وقم بتعبئة الحقول المطلوبة: <pre> {{صندوق رسالة كتاب | نوع = <!-- speedy، delete، content، style، notice، move، protection --> | صورة = <!-- استبدل بصورة مخصصة أو اترك...'
270748
wikitext
text/x-wiki
هذا القالب هو صندوق رسائل مخصص لنطاق "كتاب:" في ويكي الكتب، ويعتمد برمجياً على [[وحدة:Message_box]].
== الاستخدام ==
انسخ الكود التالي وقم بتعبئة الحقول المطلوبة:
<pre>
{{صندوق رسالة كتاب
| نوع = <!-- speedy، delete، content، style، notice، move، protection -->
| صورة = <!-- استبدل بصورة مخصصة أو اتركه فارغاً للصورة الافتراضية للنوع -->
| نص = <!-- النص الرئيسي للرسالة -->
| تفاصيل = <!-- نص إضافي أو تفصيلي يظهر بخط أصغر -->
}}
</pre>
== المعلمات ==
* '''نوع''' أو '''type''': يحدد لون الشريط الجانبي والصورة الافتراضية (مثل: notice للملاحظات، delete للحذف، protection للحماية).
* '''صورة''' أو '''image''': لإضافة صورة مخصصة (اكتب اسم الملف مباشرة مثل: Example.png). لمنع ظهور الصورة استخدم none.
* '''نص''' أو '''text''': الرسالة الأساسية للصندوق.
* '''تفاصيل''' أو '''text_small''': نصوص إضافية أو شروحات مساعدة.
== طالع أيضاً ==
* [[وحدة:Message box/configuration]] - لإدارة وتعديل الأنواع والألوان الافتراضية.
<includeonly>
[[تصنيف:قوالب رسائل كتب]]
</includeonly>
62lpe2ucxomsawv7787bhy4yigjxjoj
قالب:رك
10
57837
270754
2026-10-12T09:56:05Z
SanBonne
34889
تحويل إلى [[قالب:صندوق رسالة كتاب]]
270754
wikitext
text/x-wiki
#تحويل [[قالب:صندوق رسالة كتاب]]
t8pfa5otfi8suedpi44g1vgop0ixcb1
قالب:صندوق رك
10
57838
270755
2026-10-12T09:56:24Z
SanBonne
34889
تحويل إلى [[قالب:صندوق رسالة كتاب]]
270755
wikitext
text/x-wiki
#تحويل [[قالب:صندوق رسالة كتاب]]
t8pfa5otfi8suedpi44g1vgop0ixcb1
وحدة:Message box/ombox.css
828
57839
270758
2026-10-12T10:04:47Z
SanBonne
34889
أنشأ الصفحة ب'/* {{pp|small=y}} */ .ombox { margin: 4px 0; border-collapse: collapse; border: 1px solid #a2a9b1; /* Default "notice" gray */ background-color: var(--background-color-neutral-subtle, #f8f9fa); box-sizing: border-box; color: var(--color-base, #202122); } /* For the "small=yes" option. */ .ombox.mbox-small { font-size: 88%; line-height: 1.25em; } .ombox-speedy { border: 2px solid #b32424; /* Red */ background-color: #fee7e6; /* Pink */ } .om...'
270758
sanitized-css
text/css
/* {{pp|small=y}} */
.ombox {
margin: 4px 0;
border-collapse: collapse;
border: 1px solid #a2a9b1; /* Default "notice" gray */
background-color: var(--background-color-neutral-subtle, #f8f9fa);
box-sizing: border-box;
color: var(--color-base, #202122);
}
/* For the "small=yes" option. */
.ombox.mbox-small {
font-size: 88%;
line-height: 1.25em;
}
.ombox-speedy {
border: 2px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
.ombox-delete {
border: 2px solid #b32424; /* Red */
}
.ombox-content {
border: 1px solid #f28500; /* Orange */
}
.ombox-style {
border: 1px solid #fc3; /* Yellow */
}
.ombox-move {
border: 1px solid #9932cc; /* Purple */
}
.ombox-protection {
border: 2px solid #a2a9b1; /* Gray-gold */
}
.ombox .mbox-text {
border: none;
/* @noflip */
padding: 0.25em 0.9em;
width: 100%;
}
.ombox .mbox-image {
border: none;
/* @noflip */
padding: 2px 0 2px 0.9em;
text-align: center;
}
.ombox .mbox-imageright {
border: none;
/* @noflip */
padding: 2px 0.9em 2px 0;
text-align: center;
}
/* An empty narrow cell */
.ombox .mbox-empty-cell {
border: none;
padding: 0;
width: 1px;
}
.ombox .mbox-invalid-type {
text-align: center;
}
@media (min-width: 720px) {
.ombox {
margin: 4px 10%;
}
.ombox.mbox-small {
/* @noflip */
clear: right;
/* @noflip */
float: right;
/* @noflip */
margin: 4px 0 4px 1em;
width: 238px;
}
}
/** T367463 */
body.skin--responsive table.ombox img {
max-width: none !important;
}
@media screen {
html.skin-theme-clientpref-night .ombox-speedy {
background-color: #310402; /* Dark red, same hue/saturation as light */
}
}
@media screen and (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .ombox-speedy {
background-color: #310402; /* Dark red, same hue/saturation as light */
}
}
aknh3fw7498ygg9b1o85bvfqn56r48n