ويكي كتب 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 2721 270784 270698 2026-10-12T23:06:33Z MenoBot 3009 بوت: تغييرات تجميلية 270784 wikitext text/x-wiki * [[تاريخ الإسلام]] * [[تاريخ الشرق الأوسط]] * [[تاريخ أوروبا]] * [[تاريخ أمريكا]] * [[التاريخ/تاريخ آسيا|تاريخ آسيا]] * [[تاريخ أفريقيا]] * [[قالب: شخصيات تاريخية|شخصيات تاريخية]] [[تصنيف:إنسانيات]] [[تصنيف:تاريخ]] [[تصنيف:علوم اجتماعية]] [[تصنيف:علوم إنسانية]] c9s5qtgzg7jxjpeo5rmqi6wgshzrc92 تصنيف:تجاوزات الدوال المكلفة 14 30562 270788 270674 2026-10-12T23:22:14Z MenoBot 3009 بوت: تغييرات تجميلية 270788 wikitext text/x-wiki {{تصنيف مخفي}} {{تصنيف كومنز|Pages with too many expensive parser function calls}} [[تصنيف:ويكي الكتب]] ca1eib308v8ntgde2b8d85wbm7zl22d تصنيف:تجاوزات حجم التضمين بعد التوسيع 14 30564 270790 270676 2026-10-12T23:22:16Z MenoBot 3009 بوت: تغييرات تجميلية 270790 wikitext text/x-wiki {{تصنيف مخفي}} {{تصنيف كومنز|Pages where template include size is exceeded}} [[تصنيف:ويكي الكتب]] 1uryo4z0sk41bal6eci7nenuvicjp1x تصنيف:تجاوزات تعداد العقد 14 30565 270789 270675 2026-10-12T23:22:15Z MenoBot 3009 بوت: تغييرات تجميلية 270789 wikitext text/x-wiki {{تصنيف مخفي}} {{تصنيف كومنز|Pages where node count is exceeded}} [[تصنيف:ويكي الكتب]] t03x2c0daek0vmq9acr5rcefz5n9feb تصنيف:تجاوزات عمق التوسيع 14 30566 270791 270677 2026-10-12T23:22:17Z MenoBot 3009 بوت: تغييرات تجميلية 270791 wikitext text/x-wiki {{تصنيف مخفي}} {{تصنيف كومنز|Pages where expansion depth is exceeded}} [[تصنيف:ويكي الكتب]] 2f2fctck9y0lyeru2afq3dzptpzgrlp تصنيف:أنماط صفحات أنماط القالب بأخطاء 14 44734 270786 270669 2026-10-12T23:22:12Z MenoBot 3009 بوت: تغييرات تجميلية 270786 wikitext text/x-wiki {{تصنيف مخفي}} [[تصنيف:ويكي الكتب]] cx8hbav0n0kl0shzaenc0gutg0avys6 تصنيف:ملفات بلا رخصة قابلة للقراءة الآلية 14 44736 270793 270692 2026-10-12T23:22:27Z MenoBot 3009 بوت: تغييرات تجميلية 270793 wikitext text/x-wiki {{تصنيف مخفي}} {{تصنيف كومنز|Files with no machine-readable license}} [[تصنيف:ويكي الكتب]] jnk3s281o7rrtcfe94bl88iukftcuzl تصنيف:ملفات بلا وصف قابل للقراءة الآلية 14 44737 270795 270694 2026-10-12T23:22:29Z MenoBot 3009 بوت: تغييرات تجميلية 270795 wikitext text/x-wiki {{تصنيف مخفي}} {{تصنيف كومنز|Files with no machine-readable description}} [[تصنيف:ويكي الكتب]] ndw7nnt9gi05zqd5ghrzvwikd1ngymm تصنيف:ملفات بلا اسم مؤلف قابل للقراءة الآلية 14 44738 270792 270691 2026-10-12T23:22:26Z MenoBot 3009 بوت: تغييرات تجميلية 270792 wikitext text/x-wiki {{تصنيف مخفي}} {{تصنيف كومنز|Files with no machine-readable author}} [[تصنيف:ويكي الكتب]] 8xml0xe3n6vm86or89g8w1j4f897gb7 تصنيف:ملفات بلا مصدر قابل للقراءة الآلية 14 44739 270794 270693 2026-10-12T23:22:28Z MenoBot 3009 بوت: تغييرات تجميلية 270794 wikitext text/x-wiki {{تصنيف مخفي}} {{تصنيف كومنز|Files with no machine-readable source}} [[تصنيف:ويكي الكتب]] h1azzbgxq6wsyq31xgnmoamf4i4g6p9 تصنيف:الصفحات التي تستخدم وصلات ISBN السحرية 14 44751 270787 270672 2026-10-12T23:22:13Z MenoBot 3009 بوت: تغييرات تجميلية 270787 wikitext text/x-wiki {{تصنيف مخفي}} {{تصنيف كومنز|Pages using ISBN magic links}} [[تصنيف:ويكي الكتب]] px7pmz4j7rh2zdkfqd9u4owmkhlbjlq البرمجة بلغة جافا/التركيب النحوي 0 44887 270783 270739 2026-10-12T23:06:32Z MenoBot 3009 بوت: تغييرات تجميلية 270783 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>''': تضمن تنفيذ الكود مرة واحدة على الأقل قبل فحص الشرط. == انظر أيضاً == * [[البرمجة بلغة جافا/أساسيات جافا|أساسيات جافا]] [[تصنيف:البرمجة بلغة جافا]] dr58e4nbwx7q5c0ozy1rz73n2r9mttl وحدة:Message box 828 45655 270770 270757 2026-10-12T12:38:45Z SanBonne 34889 270770 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 ---------------------------------------------------------------------- -- دالة مخصصة لصناديق رسائل الكتب (bookbox) ---------------------------------------------------------------------- function p.bookbox(frame) local args = frame:getParent().args if not args['نص'] and not args['text'] then args = frame.args end local boxType = args['نوع'] or args['type'] local image = args['صورة'] or args['image'] local text = args['نص'] or args['text'] or '' local textSmall = args['تفاصيل'] or args['text_small'] -- 1. معالجة الصورة: إضافة الأقواس والتصغير فقط if image and image ~= '' and image ~= 'none' then image = '[[' .. image .. '|تصغير]]' -- يمكنك استخدام 'thumb' بدلاً من 'تصغير' end -- 2. معالجة النص: عنوان عريض بالمنتصف، وتفاصيل بخط عادي (RTL) local formattedText = '<div style="text-align: center;"><div style="font-size: 115%; font-weight: bold;">' .. text .. '</div>' if textSmall and textSmall ~= '' then formattedText = formattedText .. '<div dir="rtl" style="font-size: 100%; font-weight: normal; margin-top: 5px;">' .. textSmall .. '</div>' end formattedText = formattedText .. '</div>' -- 3. تمرير المعلمات الجاهزة إلى دالة ombox الأصلية local finalArgs = { type = boxType, image = image, text = formattedText } local newFrame = frame:newChild{ title = 'bookbox', args = finalArgs } return p.ombox(newFrame) 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) j6yw4fapp6xm71pm0yarbh77ez3nlwf 270771 270770 2026-10-12T12:45:00Z SanBonne 34889 270771 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' } local p, mt = {}, {} -------------------------------------------------------------------------------- -- Helper functions -------------------------------------------------------------------------------- local function getTitleObject(...) -- Protect against errors caused by the expensive function limit. local success, title = pcall(mw.title.new, ...) if success then return title end end local function union(t1, t2) -- Return the union of two arrays. local values = {} for _, value in ipairs(t1) do values[value] = true end for _, value in ipairs(t2) do values[value] = true end local result = {} for value in pairs(values) do table.insert(result, value) end table.sort(result) return result end local function getArgNums(args, prefix) local numbers = {} for key in pairs(args) do local number = mw.ustring.match( tostring(key), '^' .. prefix .. '([1-9]%d*)$' ) if number then table.insert(numbers, tonumber(number)) end end table.sort(numbers) return numbers end -------------------------------------------------------------------------------- -- MessageBox class -------------------------------------------------------------------------------- local MessageBox = {} MessageBox.__index = MessageBox function MessageBox.new(boxType, args, cfg) args = args or {} local obj = {} obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle() -- Select the configuration for the requested box type. obj.cfg = cfg[boxType] if not obj.cfg then local namespace = obj.title.namespace if args.demospace and args.demospace ~= '' then local demospace = string.lower(args.demospace) if DEMOSPACES[demospace] then obj.cfg = cfg[DEMOSPACES[demospace]] elseif string.find(demospace, 'talk') then obj.cfg = cfg.tmbox else obj.cfg = cfg.ombox end elseif namespace == 0 then obj.cfg = cfg.ambox elseif namespace == 6 then obj.cfg = cfg.imbox elseif namespace == 14 then obj.cfg = cfg.cmbox else local namespaceData = mw.site.namespaces[namespace] if namespaceData and namespaceData.isTalk then obj.cfg = cfg.tmbox else obj.cfg = cfg.ombox end end end -- Remove blank arguments except those explicitly allowed by the config. local filteredArgs = {} for key, value in pairs(args) do if value ~= '' then filteredArgs[key] = value end end for _, parameter in ipairs(obj.cfg.allowBlankParams or {}) do filteredArgs[parameter] = args[parameter] end obj.args = filteredArgs -- Initialize internal state. obj.categories = {} obj.classes = {} obj.hasCategories = false return setmetatable(obj, MessageBox) end function MessageBox:addCat(namespace, category, sort) if not category then return end local categoryLink if sort then categoryLink = string.format( '[[Category:%s|%s]]', category, sort ) else categoryLink = string.format('[[Category:%s]]', category) end self.hasCategories = true self.categories[namespace] = self.categories[namespace] or {} table.insert(self.categories[namespace], categoryLink) end function MessageBox:addClass(class) if class then table.insert(self.classes, class) end end function MessageBox:setParameters() local args = self.args local cfg = self.cfg -- Message type. 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 -- Detect incorrect substitution. self.isSubstituted = cfg.substCheck and args.subst == 'SUBST' -- Determine whether to use the small layout. self.isSmall = cfg.allowSmall and ( (cfg.smallParam and args.small == cfg.smallParam) or (not cfg.smallParam and yesno(args.small)) ) -- 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 self.textstyle = args.textstyle -- Image classes. self.imageRightClass = args.imagerightclass or args.imageclass self.imageLeftClass = args.imageleftclass or args.imageclass -- Determine whether this is the template page. 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 -- Collapsible text fields. if self.useCollapsibleTextFields then if self.isSmall and args.smalltext then self.issue = args.smalltext else local section if args.sect == '' then section = 'This ' .. (cfg.sectionDefault or 'page') elseif type(args.sect) == 'string' then section = 'This ' .. args.sect end local issue = args.issue if type(issue) ~= 'string' or issue == '' then issue = nil end local text = args.text if type(text) ~= 'string' then text = nil end self.issue = table.concat({ section or '', issue or '', text or '' }, ' '):gsub('^%s*(.-)%s*$', '%1') end -- Discussion links. local talk = args.talk 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 local talkTitle = getTitleObject(talk) local talkIsPage = talkTitle and talkTitle.isTalkPage if not talkIsPage then 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 = talkIsPage and talk or (talkTitle.prefixedText .. '#' .. talk) talkText = string.format('([[%s|talk]])', talkLink) elseif talkIsPage then talkText = string.format( 'Relevant discussion may be found on [[%s|%s]].', talk, talkTitle.prefixedText ) else talkText = string.format( 'Relevant discussion may be found on the [[%s#%s|talk page]].', talkTitle.prefixedText, talk ) end self.talk = talkText end end -- Additional text fields. 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 -- Main text. if self.isSmall then self.text = args.smalltext or args.text else self.text = args.text end -- Below row. self.below = cfg.below and args.below -- Image settings. self.imageCellDiv = not self.isSmall and cfg.imageCellDiv self.imageEmptyCell = cfg.imageEmptyCell -- Left image. 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' local linkOption = self.typeImageNeedsLink and '' or '|link=' self.imageLeft = string.format( '[[File:%s|%s%s|alt=]]', self.typeImage or 'Information icon4.svg', imageSize, linkOption ) end end -- Right image. local imageRight = self.isSmall and args.smallimageright or args.imageright if not (cfg.imageRightNone and imageRight == 'none') then self.imageRight = imageRight end -- TemplateStyles. self.base_templatestyles = cfg.templatestyles self.templatestyles = args.templatestyles end -------------------------------------------------------------------------------- -- Category handling -------------------------------------------------------------------------------- function MessageBox:setMainspaceCategories() local args = self.args local cfg = self.cfg if not cfg.allowMainspaceCategories then return end local numbers = {} for _, prefix in ipairs({ 'cat', 'category', 'all' }) do args[prefix .. '1'] = args[prefix] numbers = union(numbers, getArgNums(args, prefix)) end local date = args.date local preposition = 'from' for _, number in ipairs(numbers) do local mainCategory = args['cat' .. number] or args['category' .. number] local allCategory = args['all' .. number] if type(mainCategory) ~= 'string' then mainCategory = nil end if type(allCategory) ~= 'string' then allCategory = nil end if mainCategory and date and date ~= '' then local categoryTitle = string.format( '%s %s %s', mainCategory, preposition, date ) self:addCat(0, categoryTitle) local title = getTitleObject('Category:' .. categoryTitle) if not title or not title.exists then self:addCat( 0, 'Articles with invalid date parameter in template' ) end elseif mainCategory and (not date or date == '') then self:addCat(0, mainCategory) end if allCategory then self:addCat(0, allCategory) end end end function MessageBox:setTemplateCategories() local args = self.args local cfg = self.cfg -- 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 -- Template error categories. if cfg.templateErrorCategory then local errorCategory = cfg.templateErrorCategory local category local sort if not self.name and not self.title.isSubpage then category = errorCategory elseif self.isTemplatePage then local params = cfg.templateErrorParamsToCheck or {} local missingCount = 0 for _, parameter in ipairs(params) do if not args[parameter] then missingCount = missingCount + 1 end end if missingCount > 0 then category = errorCategory sort = tostring(missingCount) end if self.categoryNums and #self.categoryNums > 0 then category = errorCategory sort = 'C' end end self:addCat(10, category, sort) end end function MessageBox:setAllNamespaceCategories() if self.invalidTypeError then local sort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText self:addCat( 'all', 'Wikipedia message box parameter needs fixing', sort ) 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 return '' end 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 -------------------------------------------------------------------------------- -- Rendering -------------------------------------------------------------------------------- function MessageBox:export() local root = mw.html.create() -- Substitution warning. 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 } })) -- Optional custom TemplateStyles sheet. if self.templatestyles then root:wikitext(frame:extensionTag({ name = 'templatestyles', args = { src = self.templatestyles } })) end -- Message box table. local boxTable = root:tag('table') :attr('id', self.id) :cssText(self.style) :attr('role', 'presentation') for _, class in ipairs(self.classes) do boxTable:addClass(class) end if self.attrs then boxTable:attr(self.attrs) end local row = boxTable:tag('tr') -- Left image. if self.imageLeft then local imageCell = row:tag('td'):addClass('mbox-image') if self.imageCellDiv then imageCell = imageCell:tag('div'):addClass('mbox-image-div') end imageCell :addClass(self.imageLeftClass) :wikitext(self.imageLeft) elseif self.imageEmptyCell then row:tag('td'):addClass('mbox-empty-cell') end -- Message text. local textCell = row:tag('td'):addClass('mbox-text') if self.useCollapsibleTextFields then textCell:cssText(self.textstyle) local textDiv = textCell:tag('div') :addClass('mbox-text-span') :wikitext(self.issue) if self.talk or self.fix then local hiddenSpan = textDiv:tag('span') :addClass('hide-when-compact') hiddenSpan:wikitext(self.talk and (' ' .. self.talk)) hiddenSpan:wikitext(self.fix and (' ' .. self.fix)) end textDiv:wikitext(self.date and (' ' .. self.date)) if self.info and not self.isSmall then textDiv:tag('span') :addClass('hide-when-compact') :wikitext(' ' .. self.info) end if self.removalNotice then textDiv:tag('span') :addClass('hide-when-compact') :tag('i') :wikitext(string.format(' (%s)', self.removalNotice)) end else textCell :cssText(self.textstyle) :wikitext(self.text) end -- Right image. if self.imageRight then local imageCell = row:tag('td'):addClass('mbox-imageright') if self.imageCellDiv then imageCell = imageCell:tag('div'):addClass('mbox-image-div') end imageCell :addClass(self.imageRightClass) :wikitext(self.imageRight) end -- 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) :wikitext(self.below) end -- Invalid type warning. 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 root:wikitext(self:renderCategories()) return tostring(root) end -------------------------------------------------------------------------------- -- Book message box (bookbox) -------------------------------------------------------------------------------- function p.bookbox(frame) local args = frame:getParent().args if not args['نص'] and not args.text then args = frame.args end local boxType = args['نوع'] or args.type local image = args['صورة'] or args.image local text = args['نص'] or args.text or '' local smallText = args['تفاصيل'] or args.text_small -- Format the image. if image and image ~= '' and image ~= 'none' then image = '[[' .. image .. '|تصغير]]' end -- Format the main text and optional details. local formattedText = string.format( '<div style="text-align: center;"><div style="font-size: 115%%; font-weight: bold;">%s</div>', text ) if smallText and smallText ~= '' then formattedText = formattedText .. string.format( '<div dir="rtl" style="font-size: 100%%; font-weight: normal; margin-top: 5px;">%s</div>', smallText ) end formattedText = formattedText .. '</div>' -- Pass the formatted arguments to the original ombox. local newFrame = frame:newChild({ title = 'bookbox', args = { type = boxType, image = image, text = formattedText } }) return p.ombox(newFrame) end -------------------------------------------------------------------------------- -- Public exports -------------------------------------------------------------------------------- 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, key) return function(frame) if not getArgs then getArgs = require('Module:Arguments').getArgs end return t.main(key, getArgs(frame, { trim = false, removeBlanks = false })) end end return setmetatable(p, mt) an907cw1bw1cx4ilv3ae5srre4o8tc2 وحدة:Message box/configuration 828 45807 270764 270761 2026-10-12T12:18:06Z SanBonne 34889 270764 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', templatestyles = 'وحدة:Message_box/ambox.css', 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', templatestyles = 'وحدة:Message_box/cmbox.css', 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', templatestyles = 'وحدة:Message_box/ombox.css', showInvalidTypeError = true, classes = {'ombox'}, imageEmptyCell = true, imageRightNone = true } -- الأسماء البديلة للأنواع (التعرف على الكلمات العربية) cfg.typeAliases = { ['سريع'] = 'speedy', ['حذف'] = 'delete', ['محتوى'] = 'content', ['أسلوب'] = 'style', ['تنسيق'] = 'style', ['ملاحظة'] = 'notice', ['نقل'] = 'move', ['حماية'] = 'protection' } return cfg blrohdxknuwm809jip89lbhxg0lov86 270767 270764 2026-10-12T12:28:28Z SanBonne 34889 270767 Scribunto text/plain --------------------------------------------------------------------------------- -- تكوين صندوق الرسالة (Message box) -- -- -- -- يحتوي هذا الموديول على بيانات التكوين لـ [[وحدة:Message box]]. -- --------------------------------------------------------------------------------- local cfg = {} -- 1. إعدادات صناديق المقالات والكتب (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', templatestyles = 'وحدة:Message_box/ambox.css', 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, } -- 2. إعدادات صناديق التصنيفات (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', templatestyles = 'وحدة:Message_box/cmbox.css', showInvalidTypeError = true, classes = {'cmbox'}, imageEmptyCell = true } -- 3. إعدادات صناديق النظام (fmbox) cfg.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', templatestyles = 'وحدة:Message_box/fmbox.css', showInvalidTypeError = true, classes = {'fmbox'}, imageEmptyCell = false, imageRightNone = false } -- 4. إعدادات صناديق الملفات والصور (imbox) cfg.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', image = 'Imbox license.png' }, featured = { class = 'imbox-featured', image = 'Cscr-featured.svg' }, notice = { class = 'imbox-notice', image = 'Information icon4.svg' } }, default = 'notice', templatestyles = 'وحدة:Message_box/imbox.css', showInvalidTypeError = true, classes = {'imbox'}, imageEmptyCell = true, below = true, templateCategoryRequireName = true } -- 5. إعدادات الصناديق العامة (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', templatestyles = 'وحدة:Message_box/ombox.css', showInvalidTypeError = true, classes = {'ombox'}, imageEmptyCell = true, imageRightNone = true } -- 6. إعدادات صناديق صفحات النقاش (tmbox) cfg.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', templatestyles = 'وحدة:Message_box/tmbox.css', showInvalidTypeError = true, classes = {'tmbox'}, imageRightNone = true, imageEmptyCell = true, allowSmall = true, smallParam = 'small', smallClass = 'mbox-small', templateCategoryRequireName = true } -- 7. الأسماء البديلة للأنواع (لغات أخرى أو مرادفات) -- التعرف التلقائي على الكلمات العربية لجميع الصناديق أعلاه cfg.typeAliases = { ['سريع'] = 'speedy', ['حذف'] = 'delete', ['محتوى'] = 'content', ['أسلوب'] = 'style', ['تنسيق'] = 'style', ['ملاحظة'] = 'notice', ['نقل'] = 'move', ['حماية'] = 'protection', ['ترخيص'] = 'license', ['مختارة'] = 'featured', ['تحذير'] = 'warning', ['نظام'] = 'system' } return cfg o143eij018ys4xtqtj8ho9pujykz127 قالب:تطوير مقالة 10 46927 270769 97147 2026-10-12T12:34:24Z SanBonne 34889 270769 wikitext text/x-wiki {{صندوق رسالة كتاب | نوع = notice | صورة = Ambox warning blue construction.svg | نص = تطوير كتاب | تفاصيل = إذا كان لديك أي استفسار أو تساؤل، فضلاً ضعه في صفحة النقاش قبل إجراء أي تعديل عليه أو ترشيحه للحذف.<!-- نص إضافي أو تفصيلي يظهر بخط أصغر --> }} <noinclude> [[تصنيف:قوالب]] </noinclude> 1811ab9678727p85dnp11ei5nb0qcra تصنيف:Pages using DynamicPageList 14 50282 270785 270671 2026-10-12T23:22:10Z MenoBot 3009 بوت: تغييرات تجميلية 270785 wikitext text/x-wiki {{تصنيف مخفي}} g5syx9bwyo4kdpr5piwvbc0p7rnp5jp البرمجة بلغة جافا/أساسيات جافا 0 57829 270782 270732 2026-10-12T22:49:34Z MenoBot 3009 بوت: تغييرات تجميلية 270782 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)]] * [[البرمجة بلغة جافا/الاستثناءات|معالجة الاستثناءات والأخطاء]] [[تصنيف:البرمجة بلغة جافا]] [[تصنيف:لغات البرمجة]] r1n7hpgq75po6iuqegik5fu1mcqrfps قالب:صندوق رسالة كتاب 10 57833 270762 270760 2026-10-12T12:14:34Z SanBonne 34889 270762 wikitext text/x-wiki {{#invoke:Message box|ombox | type = {{{نوع|{{{{type|}}}}} | image = {{{صورة|{{{{image|}}}}} | text = {{{نص|{{{text|}}}}}} | text_small = {{{تفاصيل|{{{text_small|}}}}}} }}<!-- --><noinclude> {{توثيق}} </noinclude> mj8y7mfd6ga5nwdv4sif3eh37jgkhsc 270763 270762 2026-10-12T12:14:57Z SanBonne 34889 270763 wikitext text/x-wiki {{#invoke:Message box|ombox | type = {{{نوع|{{{{type|}}}} | image = {{{صورة|{{{{image|}}}} | text = {{{نص|{{{text|}}}}}} | text_small = {{{تفاصيل|{{{text_small|}}}}}} }}<!-- --><noinclude> {{توثيق}} </noinclude> jwij8u5ez1ga5ybu2cmj5gvpqaf3qac 270765 270763 2026-10-12T12:19:23Z SanBonne 34889 270765 wikitext text/x-wiki {{#invoke:Message box|ombox | type = {{{نوع|{{{type|}}}}}} | image = {{{صورة|{{{image|}}}}}} | text = {{{نص|{{{text|}}}}}} | text_small = {{{تفاصيل|{{{text_small|}}}}}} }}<!-- --><noinclude> {{توثيق}} </noinclude> tu80vxwzj203ymduk260cli1hb454wy 270766 270765 2026-10-12T12:22:54Z SanBonne 34889 270766 wikitext text/x-wiki {{#invoke:Message box|ombox | type = {{{نوع|{{{type|}}}}}} | image = {{{صورة|{{{image|}}}}}} | text = <div style="text-align: center;"> <div style="font-size: 115%; font-weight: bold;">{{{نص|{{{text|}}}}}}</div> {{#if: {{{تفاصيل|{{{text_small|}}}}}} | <div dir="rtl" style="font-size: 100%; font-weight: normal; margin-top: 5px;">{{{تفاصيل|{{{text_small|}}}}}}</div> }} </div> }}<!-- --><noinclude> {{توثيق}} </noinclude> 40mul08uokbx3poiito2klc312uj5sf 270768 270766 2026-10-12T12:33:26Z SanBonne 34889 270768 wikitext text/x-wiki {{#invoke:Message box|ombox | type = {{{نوع|{{{type|}}}}}} | image = {{#if:{{{صورة|{{{image|}}}}}} | {{#ifeq:{{{صورة|{{{image}}}}}}|none | none | [[ملف:{{{صورة|{{{image}}}}}}|50px]]}} }} | text = <div style="text-align: center;"> <div style="font-size: 115%; font-weight: bold;">{{{نص|{{{text|}}}}}}</div> {{#if: {{{تفاصيل|{{{text_small|}}}}}} | <div dir="rtl" style="font-size: 100%; font-weight: normal; margin-top: 5px;">{{{تفاصيل|{{{text_small|}}}}}}</div> }} </div> }}<!-- --><noinclude> {{توثيق}} </noinclude> kseu2keilt9kutj3pk8w7sqk6ulaewu نقاش المستخدم:~2026-54563-27 3 57840 270772 2026-10-12T22:32:59Z MenoBot 3009 مرحبا! 270772 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>'''[[ويكي الكتب:ترحيب بالقادمين الجدد|مرحباً بك]] في [[ويكي الكتب:حول|ويكي الكتب]]، &#126;2026-54563-27 !'''</big></center> {| |[[ملف:Wikibooks-logo.svg|40px]] | ويكي الكتب هو مشروع شقيق [[w:|لويكيبيديا]] يضم كتبا تعليمية [[w:رخصة جنو للوثائق الحرة|برخصة جنو للوثائق الحرة]] يتشارك الجميع في تحريرها وتعديلها. إذا كانت هذه مساهمتك الأولى في أنظمة [[w:ويكي|ويكي]] فيمكنك تجربة تحرير النصوص في [[ويكي الكتب:ملعب|ساحة التجربة]]، كما أن هناك [[كتاب نموذجي|قالب نموذجي]] يمكنه مساعدتك في تنسيق كتابك. لا تنقل أي محتوى ذي [[w:حقوق التأليف والنشر|حقوق تأليف ونشر]] هنا. |-- |[[ملف:Nuvola apps bookcase.png|30px]] | هنالك مشروع شقيق يدعى '''[[s:|ويكي مصدر]]''' لوضع '''[[s:ويكي_مصدر:على_ماذا_تحتوي_ويكي_مصدر|الكتب التراثية]] أو تلك الموضوعة من قبل مؤلفيها الأصليين تحت رخصة الوثائق الحرة'''. لكتابة '''المقالات الموسوعية''' القصيرة يرجى التوجه '''[[w:|لويكيبيديا]]'''. |-- |[[ملف:Presa de decissions.png|يمين|40بك]] | يمكنك التعريف بنفسك في [[مستخدم:&#126;2026-54563-27|'''صفحتك الشخصية''']]، بكتابة معلومات عنك: [[w:ويكيبيديا:بابل|اللغات التي تتكلمها]]، [[w:ويكيبيديا:صناديق المستخدم|من أي بلد أنت، ما هي محاور اهتمامك]]... |--- |[[ملف:Crystal Clear app ktip.png|يمين|40بك]] | لا تنس [[w:ويكيبيديا:توقيع|'''التوقيع''']] في [[w:ويكيبيديا:صفحة النقاش|'''صفحات النقاش''']] بكتابة أربع مدّات، هكذا (<nowiki>~~~~</nowiki>). ولكن يجب <u>'''عدم التوقيع في صفحات الكتاب'''</u>، لأنها تصبح ملكا للجميع لحظة إنشائها. |-- |[[ملف:Crystal Clear app lphoto.png|يمين|40بك]] | نرحب بمساهمتك في [[w:ويكيبيديا:رفع الصور|رفع الصور]] لإثراء المقالات، مع الأخذ بعين الاعتبار احترام القوانين الصارمة المتعلقة [[w:ويكيبيديا:سياسة استعمال الصور|باستعمال الصور]] واحترام [[w:ويكيبيديا:حقوق التأليف والنشر|'''حقوق التأليف والنشر''']]. يوجد أيضا ويكيبيديون متطوعون في [[w:ويكيبيديا:ورشة الصور|ورشة الصور]] لتحسين صورك وترجمة الصور المطلوبة. |-- |[[ملف:Crystal Clear app amor.png|يمين|40بك]] | أخيرا، وهو أهم شيء، نرجو منك أن [[w:ويكيبيديا:كن جريئا|'''تتمتع''']] بالمساهمة [[ويكي الكتب:بوابة المجتمع|'''معنا''']] في هذا المشروع! إذا كانت لديك أي استفسارات أو أسئلة أخرى، يمكنك [[w:مساعدة:محتويات/أين أطرح سؤالي؟|طرحها]] في هذه الصفحة أو في صفحة نقاشي. |}</div></div> --[[مستخدم:Meno25|Meno25]] ([[نقاش المستخدم:Meno25|نقاش]] • [[خاص:مساهمات/Meno25|مساهمات]]) 22:32، 12 أكتوبر 2026 (ت ع م) enqr5iw0lb5uohvveuhss0dci8z9lp3 نقاش المستخدم:Ibrahim Confusion 3 57841 270773 2026-10-12T22:33:01Z MenoBot 3009 مرحبا! 270773 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>'''[[ويكي الكتب:ترحيب بالقادمين الجدد|مرحباً بك]] في [[ويكي الكتب:حول|ويكي الكتب]]، Ibrahim Confusion !'''</big></center> {| |[[ملف:Wikibooks-logo.svg|40px]] | ويكي الكتب هو مشروع شقيق [[w:|لويكيبيديا]] يضم كتبا تعليمية [[w:رخصة جنو للوثائق الحرة|برخصة جنو للوثائق الحرة]] يتشارك الجميع في تحريرها وتعديلها. إذا كانت هذه مساهمتك الأولى في أنظمة [[w:ويكي|ويكي]] فيمكنك تجربة تحرير النصوص في [[ويكي الكتب:ملعب|ساحة التجربة]]، كما أن هناك [[كتاب نموذجي|قالب نموذجي]] يمكنه مساعدتك في تنسيق كتابك. لا تنقل أي محتوى ذي [[w:حقوق التأليف والنشر|حقوق تأليف ونشر]] هنا. |-- |[[ملف:Nuvola apps bookcase.png|30px]] | هنالك مشروع شقيق يدعى '''[[s:|ويكي مصدر]]''' لوضع '''[[s:ويكي_مصدر:على_ماذا_تحتوي_ويكي_مصدر|الكتب التراثية]] أو تلك الموضوعة من قبل مؤلفيها الأصليين تحت رخصة الوثائق الحرة'''. لكتابة '''المقالات الموسوعية''' القصيرة يرجى التوجه '''[[w:|لويكيبيديا]]'''. |-- |[[ملف:Presa de decissions.png|يمين|40بك]] | يمكنك التعريف بنفسك في [[مستخدم:Ibrahim Confusion|'''صفحتك الشخصية''']]، بكتابة معلومات عنك: [[w:ويكيبيديا:بابل|اللغات التي تتكلمها]]، [[w:ويكيبيديا:صناديق المستخدم|من أي بلد أنت، ما هي محاور اهتمامك]]... |--- |[[ملف:Crystal Clear app ktip.png|يمين|40بك]] | لا تنس [[w:ويكيبيديا:توقيع|'''التوقيع''']] في [[w:ويكيبيديا:صفحة النقاش|'''صفحات النقاش''']] بكتابة أربع مدّات، هكذا (<nowiki>~~~~</nowiki>). ولكن يجب <u>'''عدم التوقيع في صفحات الكتاب'''</u>، لأنها تصبح ملكا للجميع لحظة إنشائها. |-- |[[ملف:Crystal Clear app lphoto.png|يمين|40بك]] | نرحب بمساهمتك في [[w:ويكيبيديا:رفع الصور|رفع الصور]] لإثراء المقالات، مع الأخذ بعين الاعتبار احترام القوانين الصارمة المتعلقة [[w:ويكيبيديا:سياسة استعمال الصور|باستعمال الصور]] واحترام [[w:ويكيبيديا:حقوق التأليف والنشر|'''حقوق التأليف والنشر''']]. يوجد أيضا ويكيبيديون متطوعون في [[w:ويكيبيديا:ورشة الصور|ورشة الصور]] لتحسين صورك وترجمة الصور المطلوبة. |-- |[[ملف:Crystal Clear app amor.png|يمين|40بك]] | أخيرا، وهو أهم شيء، نرجو منك أن [[w:ويكيبيديا:كن جريئا|'''تتمتع''']] بالمساهمة [[ويكي الكتب:بوابة المجتمع|'''معنا''']] في هذا المشروع! إذا كانت لديك أي استفسارات أو أسئلة أخرى، يمكنك [[w:مساعدة:محتويات/أين أطرح سؤالي؟|طرحها]] في هذه الصفحة أو في صفحة نقاشي. |}</div></div> --[[مستخدم:Meno25|Meno25]] ([[نقاش المستخدم:Meno25|نقاش]] • [[خاص:مساهمات/Meno25|مساهمات]]) 22:33، 12 أكتوبر 2026 (ت ع م) rpsflzs3xcyq756xnh4uj9za2xxk9bi نقاش المستخدم:Khawla.raghib 3 57842 270774 2026-10-12T22:33:04Z MenoBot 3009 مرحبا! 270774 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>'''[[ويكي الكتب:ترحيب بالقادمين الجدد|مرحباً بك]] في [[ويكي الكتب:حول|ويكي الكتب]]، Khawla.raghib !'''</big></center> {| |[[ملف:Wikibooks-logo.svg|40px]] | ويكي الكتب هو مشروع شقيق [[w:|لويكيبيديا]] يضم كتبا تعليمية [[w:رخصة جنو للوثائق الحرة|برخصة جنو للوثائق الحرة]] يتشارك الجميع في تحريرها وتعديلها. إذا كانت هذه مساهمتك الأولى في أنظمة [[w:ويكي|ويكي]] فيمكنك تجربة تحرير النصوص في [[ويكي الكتب:ملعب|ساحة التجربة]]، كما أن هناك [[كتاب نموذجي|قالب نموذجي]] يمكنه مساعدتك في تنسيق كتابك. لا تنقل أي محتوى ذي [[w:حقوق التأليف والنشر|حقوق تأليف ونشر]] هنا. |-- |[[ملف:Nuvola apps bookcase.png|30px]] | هنالك مشروع شقيق يدعى '''[[s:|ويكي مصدر]]''' لوضع '''[[s:ويكي_مصدر:على_ماذا_تحتوي_ويكي_مصدر|الكتب التراثية]] أو تلك الموضوعة من قبل مؤلفيها الأصليين تحت رخصة الوثائق الحرة'''. لكتابة '''المقالات الموسوعية''' القصيرة يرجى التوجه '''[[w:|لويكيبيديا]]'''. |-- |[[ملف:Presa de decissions.png|يمين|40بك]] | يمكنك التعريف بنفسك في [[مستخدم:Khawla.raghib|'''صفحتك الشخصية''']]، بكتابة معلومات عنك: [[w:ويكيبيديا:بابل|اللغات التي تتكلمها]]، [[w:ويكيبيديا:صناديق المستخدم|من أي بلد أنت، ما هي محاور اهتمامك]]... |--- |[[ملف:Crystal Clear app ktip.png|يمين|40بك]] | لا تنس [[w:ويكيبيديا:توقيع|'''التوقيع''']] في [[w:ويكيبيديا:صفحة النقاش|'''صفحات النقاش''']] بكتابة أربع مدّات، هكذا (<nowiki>~~~~</nowiki>). ولكن يجب <u>'''عدم التوقيع في صفحات الكتاب'''</u>، لأنها تصبح ملكا للجميع لحظة إنشائها. |-- |[[ملف:Crystal Clear app lphoto.png|يمين|40بك]] | نرحب بمساهمتك في [[w:ويكيبيديا:رفع الصور|رفع الصور]] لإثراء المقالات، مع الأخذ بعين الاعتبار احترام القوانين الصارمة المتعلقة [[w:ويكيبيديا:سياسة استعمال الصور|باستعمال الصور]] واحترام [[w:ويكيبيديا:حقوق التأليف والنشر|'''حقوق التأليف والنشر''']]. يوجد أيضا ويكيبيديون متطوعون في [[w:ويكيبيديا:ورشة الصور|ورشة الصور]] لتحسين صورك وترجمة الصور المطلوبة. |-- |[[ملف:Crystal Clear app amor.png|يمين|40بك]] | أخيرا، وهو أهم شيء، نرجو منك أن [[w:ويكيبيديا:كن جريئا|'''تتمتع''']] بالمساهمة [[ويكي الكتب:بوابة المجتمع|'''معنا''']] في هذا المشروع! إذا كانت لديك أي استفسارات أو أسئلة أخرى، يمكنك [[w:مساعدة:محتويات/أين أطرح سؤالي؟|طرحها]] في هذه الصفحة أو في صفحة نقاشي. |}</div></div> --[[مستخدم:Meno25|Meno25]] ([[نقاش المستخدم:Meno25|نقاش]] • [[خاص:مساهمات/Meno25|مساهمات]]) 22:33، 12 أكتوبر 2026 (ت ع م) 9x598hyg6gpp54xluprml7e54z7q4wi نقاش المستخدم:Abdullh1407 3 57843 270775 2026-10-12T22:33:06Z MenoBot 3009 مرحبا! 270775 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>'''[[ويكي الكتب:ترحيب بالقادمين الجدد|مرحباً بك]] في [[ويكي الكتب:حول|ويكي الكتب]]، Abdullh1407 !'''</big></center> {| |[[ملف:Wikibooks-logo.svg|40px]] | ويكي الكتب هو مشروع شقيق [[w:|لويكيبيديا]] يضم كتبا تعليمية [[w:رخصة جنو للوثائق الحرة|برخصة جنو للوثائق الحرة]] يتشارك الجميع في تحريرها وتعديلها. إذا كانت هذه مساهمتك الأولى في أنظمة [[w:ويكي|ويكي]] فيمكنك تجربة تحرير النصوص في [[ويكي الكتب:ملعب|ساحة التجربة]]، كما أن هناك [[كتاب نموذجي|قالب نموذجي]] يمكنه مساعدتك في تنسيق كتابك. لا تنقل أي محتوى ذي [[w:حقوق التأليف والنشر|حقوق تأليف ونشر]] هنا. |-- |[[ملف:Nuvola apps bookcase.png|30px]] | هنالك مشروع شقيق يدعى '''[[s:|ويكي مصدر]]''' لوضع '''[[s:ويكي_مصدر:على_ماذا_تحتوي_ويكي_مصدر|الكتب التراثية]] أو تلك الموضوعة من قبل مؤلفيها الأصليين تحت رخصة الوثائق الحرة'''. لكتابة '''المقالات الموسوعية''' القصيرة يرجى التوجه '''[[w:|لويكيبيديا]]'''. |-- |[[ملف:Presa de decissions.png|يمين|40بك]] | يمكنك التعريف بنفسك في [[مستخدم:Abdullh1407|'''صفحتك الشخصية''']]، بكتابة معلومات عنك: [[w:ويكيبيديا:بابل|اللغات التي تتكلمها]]، [[w:ويكيبيديا:صناديق المستخدم|من أي بلد أنت، ما هي محاور اهتمامك]]... |--- |[[ملف:Crystal Clear app ktip.png|يمين|40بك]] | لا تنس [[w:ويكيبيديا:توقيع|'''التوقيع''']] في [[w:ويكيبيديا:صفحة النقاش|'''صفحات النقاش''']] بكتابة أربع مدّات، هكذا (<nowiki>~~~~</nowiki>). ولكن يجب <u>'''عدم التوقيع في صفحات الكتاب'''</u>، لأنها تصبح ملكا للجميع لحظة إنشائها. |-- |[[ملف:Crystal Clear app lphoto.png|يمين|40بك]] | نرحب بمساهمتك في [[w:ويكيبيديا:رفع الصور|رفع الصور]] لإثراء المقالات، مع الأخذ بعين الاعتبار احترام القوانين الصارمة المتعلقة [[w:ويكيبيديا:سياسة استعمال الصور|باستعمال الصور]] واحترام [[w:ويكيبيديا:حقوق التأليف والنشر|'''حقوق التأليف والنشر''']]. يوجد أيضا ويكيبيديون متطوعون في [[w:ويكيبيديا:ورشة الصور|ورشة الصور]] لتحسين صورك وترجمة الصور المطلوبة. |-- |[[ملف:Crystal Clear app amor.png|يمين|40بك]] | أخيرا، وهو أهم شيء، نرجو منك أن [[w:ويكيبيديا:كن جريئا|'''تتمتع''']] بالمساهمة [[ويكي الكتب:بوابة المجتمع|'''معنا''']] في هذا المشروع! إذا كانت لديك أي استفسارات أو أسئلة أخرى، يمكنك [[w:مساعدة:محتويات/أين أطرح سؤالي؟|طرحها]] في هذه الصفحة أو في صفحة نقاشي. |}</div></div> --[[مستخدم:Meno25|Meno25]] ([[نقاش المستخدم:Meno25|نقاش]] • [[خاص:مساهمات/Meno25|مساهمات]]) 22:33، 12 أكتوبر 2026 (ت ع م) 81tdhpa963fq466aqducj59vtgguoxs نقاش المستخدم:Hamid Hassani 3 57844 270776 2026-10-12T22:33:08Z MenoBot 3009 مرحبا! 270776 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>'''[[ويكي الكتب:ترحيب بالقادمين الجدد|مرحباً بك]] في [[ويكي الكتب:حول|ويكي الكتب]]، Hamid Hassani !'''</big></center> {| |[[ملف:Wikibooks-logo.svg|40px]] | ويكي الكتب هو مشروع شقيق [[w:|لويكيبيديا]] يضم كتبا تعليمية [[w:رخصة جنو للوثائق الحرة|برخصة جنو للوثائق الحرة]] يتشارك الجميع في تحريرها وتعديلها. إذا كانت هذه مساهمتك الأولى في أنظمة [[w:ويكي|ويكي]] فيمكنك تجربة تحرير النصوص في [[ويكي الكتب:ملعب|ساحة التجربة]]، كما أن هناك [[كتاب نموذجي|قالب نموذجي]] يمكنه مساعدتك في تنسيق كتابك. لا تنقل أي محتوى ذي [[w:حقوق التأليف والنشر|حقوق تأليف ونشر]] هنا. |-- |[[ملف:Nuvola apps bookcase.png|30px]] | هنالك مشروع شقيق يدعى '''[[s:|ويكي مصدر]]''' لوضع '''[[s:ويكي_مصدر:على_ماذا_تحتوي_ويكي_مصدر|الكتب التراثية]] أو تلك الموضوعة من قبل مؤلفيها الأصليين تحت رخصة الوثائق الحرة'''. لكتابة '''المقالات الموسوعية''' القصيرة يرجى التوجه '''[[w:|لويكيبيديا]]'''. |-- |[[ملف:Presa de decissions.png|يمين|40بك]] | يمكنك التعريف بنفسك في [[مستخدم:Hamid Hassani|'''صفحتك الشخصية''']]، بكتابة معلومات عنك: [[w:ويكيبيديا:بابل|اللغات التي تتكلمها]]، [[w:ويكيبيديا:صناديق المستخدم|من أي بلد أنت، ما هي محاور اهتمامك]]... |--- |[[ملف:Crystal Clear app ktip.png|يمين|40بك]] | لا تنس [[w:ويكيبيديا:توقيع|'''التوقيع''']] في [[w:ويكيبيديا:صفحة النقاش|'''صفحات النقاش''']] بكتابة أربع مدّات، هكذا (<nowiki>~~~~</nowiki>). ولكن يجب <u>'''عدم التوقيع في صفحات الكتاب'''</u>، لأنها تصبح ملكا للجميع لحظة إنشائها. |-- |[[ملف:Crystal Clear app lphoto.png|يمين|40بك]] | نرحب بمساهمتك في [[w:ويكيبيديا:رفع الصور|رفع الصور]] لإثراء المقالات، مع الأخذ بعين الاعتبار احترام القوانين الصارمة المتعلقة [[w:ويكيبيديا:سياسة استعمال الصور|باستعمال الصور]] واحترام [[w:ويكيبيديا:حقوق التأليف والنشر|'''حقوق التأليف والنشر''']]. يوجد أيضا ويكيبيديون متطوعون في [[w:ويكيبيديا:ورشة الصور|ورشة الصور]] لتحسين صورك وترجمة الصور المطلوبة. |-- |[[ملف:Crystal Clear app amor.png|يمين|40بك]] | أخيرا، وهو أهم شيء، نرجو منك أن [[w:ويكيبيديا:كن جريئا|'''تتمتع''']] بالمساهمة [[ويكي الكتب:بوابة المجتمع|'''معنا''']] في هذا المشروع! إذا كانت لديك أي استفسارات أو أسئلة أخرى، يمكنك [[w:مساعدة:محتويات/أين أطرح سؤالي؟|طرحها]] في هذه الصفحة أو في صفحة نقاشي. |}</div></div> --[[مستخدم:Meno25|Meno25]] ([[نقاش المستخدم:Meno25|نقاش]] • [[خاص:مساهمات/Meno25|مساهمات]]) 22:33، 12 أكتوبر 2026 (ت ع م) 2u3s9ar16yayelj6z0mg9sh5ki8v8g0 نقاش المستخدم:المنصوري ابو جنات 3 57845 270777 2026-10-12T22:33:10Z MenoBot 3009 مرحبا! 270777 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>'''[[ويكي الكتب:ترحيب بالقادمين الجدد|مرحباً بك]] في [[ويكي الكتب:حول|ويكي الكتب]]، المنصوري ابو جنات !'''</big></center> {| |[[ملف:Wikibooks-logo.svg|40px]] | ويكي الكتب هو مشروع شقيق [[w:|لويكيبيديا]] يضم كتبا تعليمية [[w:رخصة جنو للوثائق الحرة|برخصة جنو للوثائق الحرة]] يتشارك الجميع في تحريرها وتعديلها. إذا كانت هذه مساهمتك الأولى في أنظمة [[w:ويكي|ويكي]] فيمكنك تجربة تحرير النصوص في [[ويكي الكتب:ملعب|ساحة التجربة]]، كما أن هناك [[كتاب نموذجي|قالب نموذجي]] يمكنه مساعدتك في تنسيق كتابك. لا تنقل أي محتوى ذي [[w:حقوق التأليف والنشر|حقوق تأليف ونشر]] هنا. |-- |[[ملف:Nuvola apps bookcase.png|30px]] | هنالك مشروع شقيق يدعى '''[[s:|ويكي مصدر]]''' لوضع '''[[s:ويكي_مصدر:على_ماذا_تحتوي_ويكي_مصدر|الكتب التراثية]] أو تلك الموضوعة من قبل مؤلفيها الأصليين تحت رخصة الوثائق الحرة'''. لكتابة '''المقالات الموسوعية''' القصيرة يرجى التوجه '''[[w:|لويكيبيديا]]'''. |-- |[[ملف:Presa de decissions.png|يمين|40بك]] | يمكنك التعريف بنفسك في [[مستخدم:المنصوري ابو جنات|'''صفحتك الشخصية''']]، بكتابة معلومات عنك: [[w:ويكيبيديا:بابل|اللغات التي تتكلمها]]، [[w:ويكيبيديا:صناديق المستخدم|من أي بلد أنت، ما هي محاور اهتمامك]]... |--- |[[ملف:Crystal Clear app ktip.png|يمين|40بك]] | لا تنس [[w:ويكيبيديا:توقيع|'''التوقيع''']] في [[w:ويكيبيديا:صفحة النقاش|'''صفحات النقاش''']] بكتابة أربع مدّات، هكذا (<nowiki>~~~~</nowiki>). ولكن يجب <u>'''عدم التوقيع في صفحات الكتاب'''</u>، لأنها تصبح ملكا للجميع لحظة إنشائها. |-- |[[ملف:Crystal Clear app lphoto.png|يمين|40بك]] | نرحب بمساهمتك في [[w:ويكيبيديا:رفع الصور|رفع الصور]] لإثراء المقالات، مع الأخذ بعين الاعتبار احترام القوانين الصارمة المتعلقة [[w:ويكيبيديا:سياسة استعمال الصور|باستعمال الصور]] واحترام [[w:ويكيبيديا:حقوق التأليف والنشر|'''حقوق التأليف والنشر''']]. يوجد أيضا ويكيبيديون متطوعون في [[w:ويكيبيديا:ورشة الصور|ورشة الصور]] لتحسين صورك وترجمة الصور المطلوبة. |-- |[[ملف:Crystal Clear app amor.png|يمين|40بك]] | أخيرا، وهو أهم شيء، نرجو منك أن [[w:ويكيبيديا:كن جريئا|'''تتمتع''']] بالمساهمة [[ويكي الكتب:بوابة المجتمع|'''معنا''']] في هذا المشروع! إذا كانت لديك أي استفسارات أو أسئلة أخرى، يمكنك [[w:مساعدة:محتويات/أين أطرح سؤالي؟|طرحها]] في هذه الصفحة أو في صفحة نقاشي. |}</div></div> --[[مستخدم:Meno25|Meno25]] ([[نقاش المستخدم:Meno25|نقاش]] • [[خاص:مساهمات/Meno25|مساهمات]]) 22:33، 12 أكتوبر 2026 (ت ع م) jr51eqoheg3kj2yqpm602lupr9jfg50 نقاش المستخدم:QalamMystery 3 57846 270778 2026-10-12T22:33:12Z MenoBot 3009 مرحبا! 270778 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>'''[[ويكي الكتب:ترحيب بالقادمين الجدد|مرحباً بك]] في [[ويكي الكتب:حول|ويكي الكتب]]، QalamMystery !'''</big></center> {| |[[ملف:Wikibooks-logo.svg|40px]] | ويكي الكتب هو مشروع شقيق [[w:|لويكيبيديا]] يضم كتبا تعليمية [[w:رخصة جنو للوثائق الحرة|برخصة جنو للوثائق الحرة]] يتشارك الجميع في تحريرها وتعديلها. إذا كانت هذه مساهمتك الأولى في أنظمة [[w:ويكي|ويكي]] فيمكنك تجربة تحرير النصوص في [[ويكي الكتب:ملعب|ساحة التجربة]]، كما أن هناك [[كتاب نموذجي|قالب نموذجي]] يمكنه مساعدتك في تنسيق كتابك. لا تنقل أي محتوى ذي [[w:حقوق التأليف والنشر|حقوق تأليف ونشر]] هنا. |-- |[[ملف:Nuvola apps bookcase.png|30px]] | هنالك مشروع شقيق يدعى '''[[s:|ويكي مصدر]]''' لوضع '''[[s:ويكي_مصدر:على_ماذا_تحتوي_ويكي_مصدر|الكتب التراثية]] أو تلك الموضوعة من قبل مؤلفيها الأصليين تحت رخصة الوثائق الحرة'''. لكتابة '''المقالات الموسوعية''' القصيرة يرجى التوجه '''[[w:|لويكيبيديا]]'''. |-- |[[ملف:Presa de decissions.png|يمين|40بك]] | يمكنك التعريف بنفسك في [[مستخدم:QalamMystery|'''صفحتك الشخصية''']]، بكتابة معلومات عنك: [[w:ويكيبيديا:بابل|اللغات التي تتكلمها]]، [[w:ويكيبيديا:صناديق المستخدم|من أي بلد أنت، ما هي محاور اهتمامك]]... |--- |[[ملف:Crystal Clear app ktip.png|يمين|40بك]] | لا تنس [[w:ويكيبيديا:توقيع|'''التوقيع''']] في [[w:ويكيبيديا:صفحة النقاش|'''صفحات النقاش''']] بكتابة أربع مدّات، هكذا (<nowiki>~~~~</nowiki>). ولكن يجب <u>'''عدم التوقيع في صفحات الكتاب'''</u>، لأنها تصبح ملكا للجميع لحظة إنشائها. |-- |[[ملف:Crystal Clear app lphoto.png|يمين|40بك]] | نرحب بمساهمتك في [[w:ويكيبيديا:رفع الصور|رفع الصور]] لإثراء المقالات، مع الأخذ بعين الاعتبار احترام القوانين الصارمة المتعلقة [[w:ويكيبيديا:سياسة استعمال الصور|باستعمال الصور]] واحترام [[w:ويكيبيديا:حقوق التأليف والنشر|'''حقوق التأليف والنشر''']]. يوجد أيضا ويكيبيديون متطوعون في [[w:ويكيبيديا:ورشة الصور|ورشة الصور]] لتحسين صورك وترجمة الصور المطلوبة. |-- |[[ملف:Crystal Clear app amor.png|يمين|40بك]] | أخيرا، وهو أهم شيء، نرجو منك أن [[w:ويكيبيديا:كن جريئا|'''تتمتع''']] بالمساهمة [[ويكي الكتب:بوابة المجتمع|'''معنا''']] في هذا المشروع! إذا كانت لديك أي استفسارات أو أسئلة أخرى، يمكنك [[w:مساعدة:محتويات/أين أطرح سؤالي؟|طرحها]] في هذه الصفحة أو في صفحة نقاشي. |}</div></div> --[[مستخدم:Meno25|Meno25]] ([[نقاش المستخدم:Meno25|نقاش]] • [[خاص:مساهمات/Meno25|مساهمات]]) 22:33، 12 أكتوبر 2026 (ت ع م) qs68l5voqacv69mvyjuk0qlov7b2cy8 نقاش المستخدم:عبدالكريم711 3 57847 270779 2026-10-12T22:33:15Z MenoBot 3009 مرحبا! 270779 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>'''[[ويكي الكتب:ترحيب بالقادمين الجدد|مرحباً بك]] في [[ويكي الكتب:حول|ويكي الكتب]]، عبدالكريم711 !'''</big></center> {| |[[ملف:Wikibooks-logo.svg|40px]] | ويكي الكتب هو مشروع شقيق [[w:|لويكيبيديا]] يضم كتبا تعليمية [[w:رخصة جنو للوثائق الحرة|برخصة جنو للوثائق الحرة]] يتشارك الجميع في تحريرها وتعديلها. إذا كانت هذه مساهمتك الأولى في أنظمة [[w:ويكي|ويكي]] فيمكنك تجربة تحرير النصوص في [[ويكي الكتب:ملعب|ساحة التجربة]]، كما أن هناك [[كتاب نموذجي|قالب نموذجي]] يمكنه مساعدتك في تنسيق كتابك. لا تنقل أي محتوى ذي [[w:حقوق التأليف والنشر|حقوق تأليف ونشر]] هنا. |-- |[[ملف:Nuvola apps bookcase.png|30px]] | هنالك مشروع شقيق يدعى '''[[s:|ويكي مصدر]]''' لوضع '''[[s:ويكي_مصدر:على_ماذا_تحتوي_ويكي_مصدر|الكتب التراثية]] أو تلك الموضوعة من قبل مؤلفيها الأصليين تحت رخصة الوثائق الحرة'''. لكتابة '''المقالات الموسوعية''' القصيرة يرجى التوجه '''[[w:|لويكيبيديا]]'''. |-- |[[ملف:Presa de decissions.png|يمين|40بك]] | يمكنك التعريف بنفسك في [[مستخدم:عبدالكريم711|'''صفحتك الشخصية''']]، بكتابة معلومات عنك: [[w:ويكيبيديا:بابل|اللغات التي تتكلمها]]، [[w:ويكيبيديا:صناديق المستخدم|من أي بلد أنت، ما هي محاور اهتمامك]]... |--- |[[ملف:Crystal Clear app ktip.png|يمين|40بك]] | لا تنس [[w:ويكيبيديا:توقيع|'''التوقيع''']] في [[w:ويكيبيديا:صفحة النقاش|'''صفحات النقاش''']] بكتابة أربع مدّات، هكذا (<nowiki>~~~~</nowiki>). ولكن يجب <u>'''عدم التوقيع في صفحات الكتاب'''</u>، لأنها تصبح ملكا للجميع لحظة إنشائها. |-- |[[ملف:Crystal Clear app lphoto.png|يمين|40بك]] | نرحب بمساهمتك في [[w:ويكيبيديا:رفع الصور|رفع الصور]] لإثراء المقالات، مع الأخذ بعين الاعتبار احترام القوانين الصارمة المتعلقة [[w:ويكيبيديا:سياسة استعمال الصور|باستعمال الصور]] واحترام [[w:ويكيبيديا:حقوق التأليف والنشر|'''حقوق التأليف والنشر''']]. يوجد أيضا ويكيبيديون متطوعون في [[w:ويكيبيديا:ورشة الصور|ورشة الصور]] لتحسين صورك وترجمة الصور المطلوبة. |-- |[[ملف:Crystal Clear app amor.png|يمين|40بك]] | أخيرا، وهو أهم شيء، نرجو منك أن [[w:ويكيبيديا:كن جريئا|'''تتمتع''']] بالمساهمة [[ويكي الكتب:بوابة المجتمع|'''معنا''']] في هذا المشروع! إذا كانت لديك أي استفسارات أو أسئلة أخرى، يمكنك [[w:مساعدة:محتويات/أين أطرح سؤالي؟|طرحها]] في هذه الصفحة أو في صفحة نقاشي. |}</div></div> --[[مستخدم:Meno25|Meno25]] ([[نقاش المستخدم:Meno25|نقاش]] • [[خاص:مساهمات/Meno25|مساهمات]]) 22:33، 12 أكتوبر 2026 (ت ع م) tjamyc58g27fcnkc22jx3aeeujmyuws نقاش المستخدم:এম আতিক হাসান 3 57848 270780 2026-10-12T22:33:17Z MenoBot 3009 مرحبا! 270780 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>'''[[ويكي الكتب:ترحيب بالقادمين الجدد|مرحباً بك]] في [[ويكي الكتب:حول|ويكي الكتب]]، এম আতিক হাসান !'''</big></center> {| |[[ملف:Wikibooks-logo.svg|40px]] | ويكي الكتب هو مشروع شقيق [[w:|لويكيبيديا]] يضم كتبا تعليمية [[w:رخصة جنو للوثائق الحرة|برخصة جنو للوثائق الحرة]] يتشارك الجميع في تحريرها وتعديلها. إذا كانت هذه مساهمتك الأولى في أنظمة [[w:ويكي|ويكي]] فيمكنك تجربة تحرير النصوص في [[ويكي الكتب:ملعب|ساحة التجربة]]، كما أن هناك [[كتاب نموذجي|قالب نموذجي]] يمكنه مساعدتك في تنسيق كتابك. لا تنقل أي محتوى ذي [[w:حقوق التأليف والنشر|حقوق تأليف ونشر]] هنا. |-- |[[ملف:Nuvola apps bookcase.png|30px]] | هنالك مشروع شقيق يدعى '''[[s:|ويكي مصدر]]''' لوضع '''[[s:ويكي_مصدر:على_ماذا_تحتوي_ويكي_مصدر|الكتب التراثية]] أو تلك الموضوعة من قبل مؤلفيها الأصليين تحت رخصة الوثائق الحرة'''. لكتابة '''المقالات الموسوعية''' القصيرة يرجى التوجه '''[[w:|لويكيبيديا]]'''. |-- |[[ملف:Presa de decissions.png|يمين|40بك]] | يمكنك التعريف بنفسك في [[مستخدم:এম আতিক হাসান|'''صفحتك الشخصية''']]، بكتابة معلومات عنك: [[w:ويكيبيديا:بابل|اللغات التي تتكلمها]]، [[w:ويكيبيديا:صناديق المستخدم|من أي بلد أنت، ما هي محاور اهتمامك]]... |--- |[[ملف:Crystal Clear app ktip.png|يمين|40بك]] | لا تنس [[w:ويكيبيديا:توقيع|'''التوقيع''']] في [[w:ويكيبيديا:صفحة النقاش|'''صفحات النقاش''']] بكتابة أربع مدّات، هكذا (<nowiki>~~~~</nowiki>). ولكن يجب <u>'''عدم التوقيع في صفحات الكتاب'''</u>، لأنها تصبح ملكا للجميع لحظة إنشائها. |-- |[[ملف:Crystal Clear app lphoto.png|يمين|40بك]] | نرحب بمساهمتك في [[w:ويكيبيديا:رفع الصور|رفع الصور]] لإثراء المقالات، مع الأخذ بعين الاعتبار احترام القوانين الصارمة المتعلقة [[w:ويكيبيديا:سياسة استعمال الصور|باستعمال الصور]] واحترام [[w:ويكيبيديا:حقوق التأليف والنشر|'''حقوق التأليف والنشر''']]. يوجد أيضا ويكيبيديون متطوعون في [[w:ويكيبيديا:ورشة الصور|ورشة الصور]] لتحسين صورك وترجمة الصور المطلوبة. |-- |[[ملف:Crystal Clear app amor.png|يمين|40بك]] | أخيرا، وهو أهم شيء، نرجو منك أن [[w:ويكيبيديا:كن جريئا|'''تتمتع''']] بالمساهمة [[ويكي الكتب:بوابة المجتمع|'''معنا''']] في هذا المشروع! إذا كانت لديك أي استفسارات أو أسئلة أخرى، يمكنك [[w:مساعدة:محتويات/أين أطرح سؤالي؟|طرحها]] في هذه الصفحة أو في صفحة نقاشي. |}</div></div> --[[مستخدم:Meno25|Meno25]] ([[نقاش المستخدم:Meno25|نقاش]] • [[خاص:مساهمات/Meno25|مساهمات]]) 22:33، 12 أكتوبر 2026 (ت ع م) mvofyqvcmcz06fi0go8crprlmp2g4mx نقاش المستخدم:Kent Wang 3 57849 270781 2026-10-12T22:33:19Z MenoBot 3009 مرحبا! 270781 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>'''[[ويكي الكتب:ترحيب بالقادمين الجدد|مرحباً بك]] في [[ويكي الكتب:حول|ويكي الكتب]]، Kent Wang !'''</big></center> {| |[[ملف:Wikibooks-logo.svg|40px]] | ويكي الكتب هو مشروع شقيق [[w:|لويكيبيديا]] يضم كتبا تعليمية [[w:رخصة جنو للوثائق الحرة|برخصة جنو للوثائق الحرة]] يتشارك الجميع في تحريرها وتعديلها. إذا كانت هذه مساهمتك الأولى في أنظمة [[w:ويكي|ويكي]] فيمكنك تجربة تحرير النصوص في [[ويكي الكتب:ملعب|ساحة التجربة]]، كما أن هناك [[كتاب نموذجي|قالب نموذجي]] يمكنه مساعدتك في تنسيق كتابك. لا تنقل أي محتوى ذي [[w:حقوق التأليف والنشر|حقوق تأليف ونشر]] هنا. |-- |[[ملف:Nuvola apps bookcase.png|30px]] | هنالك مشروع شقيق يدعى '''[[s:|ويكي مصدر]]''' لوضع '''[[s:ويكي_مصدر:على_ماذا_تحتوي_ويكي_مصدر|الكتب التراثية]] أو تلك الموضوعة من قبل مؤلفيها الأصليين تحت رخصة الوثائق الحرة'''. لكتابة '''المقالات الموسوعية''' القصيرة يرجى التوجه '''[[w:|لويكيبيديا]]'''. |-- |[[ملف:Presa de decissions.png|يمين|40بك]] | يمكنك التعريف بنفسك في [[مستخدم:Kent Wang|'''صفحتك الشخصية''']]، بكتابة معلومات عنك: [[w:ويكيبيديا:بابل|اللغات التي تتكلمها]]، [[w:ويكيبيديا:صناديق المستخدم|من أي بلد أنت، ما هي محاور اهتمامك]]... |--- |[[ملف:Crystal Clear app ktip.png|يمين|40بك]] | لا تنس [[w:ويكيبيديا:توقيع|'''التوقيع''']] في [[w:ويكيبيديا:صفحة النقاش|'''صفحات النقاش''']] بكتابة أربع مدّات، هكذا (<nowiki>~~~~</nowiki>). ولكن يجب <u>'''عدم التوقيع في صفحات الكتاب'''</u>، لأنها تصبح ملكا للجميع لحظة إنشائها. |-- |[[ملف:Crystal Clear app lphoto.png|يمين|40بك]] | نرحب بمساهمتك في [[w:ويكيبيديا:رفع الصور|رفع الصور]] لإثراء المقالات، مع الأخذ بعين الاعتبار احترام القوانين الصارمة المتعلقة [[w:ويكيبيديا:سياسة استعمال الصور|باستعمال الصور]] واحترام [[w:ويكيبيديا:حقوق التأليف والنشر|'''حقوق التأليف والنشر''']]. يوجد أيضا ويكيبيديون متطوعون في [[w:ويكيبيديا:ورشة الصور|ورشة الصور]] لتحسين صورك وترجمة الصور المطلوبة. |-- |[[ملف:Crystal Clear app amor.png|يمين|40بك]] | أخيرا، وهو أهم شيء، نرجو منك أن [[w:ويكيبيديا:كن جريئا|'''تتمتع''']] بالمساهمة [[ويكي الكتب:بوابة المجتمع|'''معنا''']] في هذا المشروع! إذا كانت لديك أي استفسارات أو أسئلة أخرى، يمكنك [[w:مساعدة:محتويات/أين أطرح سؤالي؟|طرحها]] في هذه الصفحة أو في صفحة نقاشي. |}</div></div> --[[مستخدم:Meno25|Meno25]] ([[نقاش المستخدم:Meno25|نقاش]] • [[خاص:مساهمات/Meno25|مساهمات]]) 22:33، 12 أكتوبر 2026 (ت ع م) 5zbyo04978isvsmag95oz3iozmspibp