ویکی‌واژه fawiktionary https://fa.wiktionary.org/wiki/%D9%88%DB%8C%DA%A9%DB%8C%E2%80%8C%D9%88%D8%A7%DA%98%D9%87:%D8%B5%D9%81%D8%AD%D9%87%D9%94_%D8%A7%D8%B5%D9%84%DB%8C MediaWiki 1.47.0-wmf.17 case-sensitive مدیا ویژه بحث کاربر بحث کاربر ویکی‌واژه بحث ویکی‌واژه پرونده بحث پرونده مدیاویکی بحث مدیاویکی الگو بحث الگو راهنما بحث راهنما رده بحث رده پیوست بحث پیوست TimedText TimedText talk پودمان بحث پودمان Event Event talk باشگاه 0 32196 915600 651525 2026-08-29T21:06:24Z The.shahab 17835 ویرایش [[Special:Contributions/Alborzagros|Alborzagros]] ([[User talk:Alborzagros|بحث]]) به آخرین تغییری که [[User:MahdiBot|MahdiBot]] انجام داده بود واگردانده شد 601271 wikitext text/x-wiki ==فارسی== ===اسم مرکب=== # کلوپ، جایی برای ورزش و تفریح. ====منابع==== * فرهنگ لغت معین [[رده:اسم‌های مرکب فارسی]] ====برگردان‌ها==== ;{{ایتالیایی}}: ===اسم=== [[federazione]] ;{{انگلیسی}}: [[club]] *[[indian club]] *[[gymkhana]] *[[service club]] *[[rotarian]] *[[jockey club]] *[[golf club]] *[[country club]] *[[clubhouse]] *[[floorshow]] *[[glee club]] sqxbm2j3drp1blfja15brhb53cp31v6 تاج‌گذاری 0 34862 915573 913965 2026-08-29T17:49:45Z The.shahab 17835 The.shahab صفحهٔ [[تاج گذاری]] را به [[تاج‌گذاری]] منتقل کرد 913965 wikitext text/x-wiki (گُ) ==فارسی== ===ریشه‌شناسی=== # معرب (ح ===اسم مصدر=== # [[آیین]] بر سر نهادن تاج و بر تخت نشستن پادشاهی نو. ====منابع==== * فرهنگ لغت معین [[رده:اسم‌های مصدر معرب-فارسی]] bxwhp652ly8gqosssb0mk5ewiqfmxur تنبور 0 36477 915604 889687 2026-08-30T07:48:13Z The.shahab 17835 بهاری... !!!! 915604 wikitext text/x-wiki ==فارسی== ===ریشه لغت=== {{ویکی‌پدیا|تنبور}} ===آوایش=== */تَنْبور/ ===[[file:Nuvola apps bookcase2.svg|35px]] اسم=== '''تَنبور''' {{موسیقی‌ایرانی}} # سازی است قدیمی که متعلق به غرب ایران و پیروان [[یارسان]] (اهل حق) می باشد و با آن مراسم دینی خود را به جای می آورند . مقامات تنبور شامل : حقانی (دینی) و مجلسی، باستانی می باشد. این ساز با چهار یا پنج انگشت دست راست به تکنیکی که به آن شُر می گویند ، نواخته می شود. {{-}} ---- {{ترجمه-بالا}} *{{انگلیسی}}: [[tambour]] *[[tabor]] {{ترجمه-پایین}} ===منابع=== *فرهنگ بزرگ سخن/ فرهنگ لغت معین [[رده:اسم‌های فارسی]] [[رده:اسم‌های کردی]] apirdoywei205hyvg740u6yj84x9bsu طنبور 0 51131 915598 889686 2026-08-29T21:03:47Z بنیامینیا 47021 /* */ طنبور دارای دو سیم است و در سده معاصر دارای سه سیم شده است 915598 wikitext text/x-wiki طنبور دارای دو سیم است و در سده معاصر دارای سه سیم شده است ==فارسی== [[پرونده:Tambur.jpg|بندانگشتی|245px|چپ]] ===ریشه‌ لغت=== *{{فارسی}} ===آوایش=== */طَنبور/ ===[[file:Nuvola apps bookcase2.svg|35px]] اسم=== '''طنبور''' {{موسیقی‌ایرانی}} #ساز زهی بطول تقریبی هشتاد سانتیمتر با کاسه گلابی شکل کوچک که از یک سطح نازک چوبی پوشیده شده، دارای چهار سیم است، و با تمام انگشت‌های یک دست نواخته می‌شود‌. [[تنبور]]. ====منابع==== *فرهنگ بزرگ سخن/ فرهنگ لغت معین [[رده:اسم‌های فارسی]] [[رده:اسم‌های معرب]] [[رده:اصطلاحات با پیشوند طن]] [[رده:اصطلاحات با پسوند بور]] ic9gaii4r978w8okcrio2rxl6tlgmd1 915603 915598 2026-08-29T21:39:04Z The.shahab 17835 نسخهٔ [[Special:Diff/915598|915598]] از [[Special:Contributions/بنیامینیا|بنیامینیا]] ([[User talk:بنیامینیا|بحث]]) خنثی شد 915603 wikitext text/x-wiki ==فارسی== [[پرونده:Tambur.jpg|بندانگشتی|245px|چپ]] ===ریشه‌ لغت=== *{{فارسی}} ===آوایش=== */طَنبور/ ===[[file:Nuvola apps bookcase2.svg|35px]] اسم=== '''طنبور''' {{موسیقی‌ایرانی}} #ساز زهی بطول تقریبی هشتاد سانتیمتر با کاسه گلابی شکل کوچک که از یک سطح نازک چوبی پوشیده شده، دارای چهار سیم است، و با تمام انگشت‌های یک دست نواخته می‌شود‌. [[تنبور]]. ====منابع==== *فرهنگ بزرگ سخن/ فرهنگ لغت معین [[رده:اسم‌های فارسی]] [[رده:اسم‌های معرب]] [[رده:اصطلاحات با پیشوند طن]] [[رده:اصطلاحات با پسوند بور]] tw0wdykdwu11zowyqtyp9i7hr2vigy0 915605 915603 2026-08-30T07:48:57Z The.shahab 17835 915605 wikitext text/x-wiki ==فارسی== [[پرونده:Tambur.jpg|بندانگشتی|245px|چپ]] ===ریشه‌ لغت=== *{{فارسی}} ===آوایش=== */طَنبور/ ===[[file:Nuvola apps bookcase2.svg|35px]] اسم=== '''طنبور''' #ساز زهی بطول تقریبی هشتاد سانتیمتر با کاسه گلابی شکل کوچک که از یک سطح نازک چوبی پوشیده شده، دارای چهار سیم است، و با تمام انگشت‌های یک دست نواخته می‌شود‌. ====منابع==== *فرهنگ بزرگ سخن/ فرهنگ لغت معین [[رده:اسم‌های فارسی]] [[رده:اسم‌های معرب]] aguyo6ehxrf7ocgw8m0pnf8t6e3e5rb کخ 0 57441 915597 656953 2026-08-29T20:04:50Z WolfCapitan 41989 915597 wikitext text/x-wiki ==فارسی== (کُ) ===اسم=== #نام عام اکثر بندپایان (خصوصاً ردة حشرات و عنکبوتیان و هزارپایان و کرم‌ها) #کرم. ====منابع==== * فرهنگ لغت معین (کَ یا کُ یا کِ) ===اسم=== # لولو، بچه ترسان. # {{مش-نگ}} (کرم، حشره ریز) ====منابع==== * فرهنگ لغت معین [[رده:اسم‌های فارسی]] [[رده:اسم‌های فارسی]] ====برگردان‌ها==== ;{{انگلیسی}}: [[tuberculotoxin]] ==== واژگان نزدیک ==== * [[کخه]] 7hkrfdg6vemhxj34as35t8yb0xdlt35 بحث کاربر:Alborzagros 3 117280 915601 688721 2026-08-29T21:15:49Z The.shahab 17835 /* گرفتن دسترسی گشت خودکار */ بخش جدید 915601 wikitext text/x-wiki == خوش آمدید == [[ویکی‌واژه:تازه‌واردان، خوش آمدید|'''به ویکی‌واژه خوش‌آمدید''']]!<br /> امیدوارم حضوری طولانی مدت در ویکی‌واژه داشته باشید و بتوانیم با همکاری یکدیگر در جهت پیشرفت هر چه بیشتر این وبگاه گام برداریم. ویکی‌واژه منتظر نوشتارهای خوب شماست.<br /> این پیوندها می‌تواند سودمند باشد: {| |- |[[پرونده:Noia 64 apps help index.png|30px|right|link=ویکی‌واژه:راهنما|راهنما]] || [[ویکی‌واژه:راهنما|راهنما]] برای راهنمایی گرفتن |- | [[پرونده:Nuvola apps ksig.png|30px|right|link=ویکی‌واژه:آموزش سریع|آموزش سریع]] || [[ویکی‌واژه:آموزش سریع|آموزش سریع]] |- |||[[راهنما:افزودن سرواژه نو|افزودن سرواژهٔ نو]] راهنمای افزودن سرواژهٔ نو |- |||[[ویکی‌واژه:شیوه‌نامه|شیوه‌نامه]] شیوه‌نامهٔ ویکی‌واژه |- |[[File:Bucket in the sand.svg|right|50px]]||[[ویکی‌واژه:صفحه تمرین|صفحه تمرین]] برای تمرین ویرایش |- | [[پرونده:Nuvola apps chat.png|30px|right|link=ویکی‌واژه:قهوه‌خانه|قهوه‌خانه]]||[[ویکی‌واژه:قهوه‌خانه|قهوه‌خانه]] برای گفتگو دربارهٔ مسائل فنی و سیاست‌ها. |- |[[پرونده:Farsi.svg|30px|right|link=ویکی‌واژه:فارسی‌نویسی|فارسی‌نویسی]]||[[ویکی‌واژه:فارسی‌نویسی|فارسی‌نویسی]] |- |[[پرونده:Nuvola apps agent.svg|30px|right|link=w:ویکی‌پدیا:خودآموز|آموزش پیشرفته]]||[[w:ویکی‌پدیا:خودآموز|آموزش پیشرفته]] |- | |- | |- |'''پروژه‌های دیگر بنیاد'''||[[پرونده:Wikipedia-logo.png|25px|link=w:صفحه_اصلی|ویکی‌پدیا]][[پرونده:HSWikimedia.svg|30px|link=m:Special:Recentchanges|فراویکی]] [[پرونده:HSCommons.svg|30px|link=commons:Special:Recentchanges|ویکی‌انبار]][[پرونده:HSWNews.svg|30px|link=n:ویژه:تغییرات اخیر|ویکی‌خبر]] [[پرونده:HSWBooks.svg|30px|link=b:صفحه_اصلی|ویکی‌نَسک]] [[پرونده:HSWVoyage.svg|30px|link=voy:صفحه_اصلی|ویکی‌سفر]][[پرونده:HSWQuote.svg|30px|link=q:صفحه_اصلی|ویکی‌گفتاورد]][[پرونده:HSWSource.svg|30px|link=s:صفحه_اصلی|ویکی‌نبشته]] |} امیدوارم از ''[[ویکی‌واژه:ویکی‌واژه نویسان|ویکی‌واژه نویس]]'' بودن لذت ببرید! لطفاً در صفحات گفتگو نام خود را با چهار علامت مدک امضا کنید، (~&#126;~~)، با این کار نام شما و تاریخ به عنوان امضا درج خواهد شد. در صورتی که سوال داشتید، به صفحهٔ [[ویکی‌واژه:قهوه‌خانه|قهوه‌خانه]] بروید، یا اینکه از من در صفحهٔ بحثم بپرسید. باز هم خوش آمد می‌گویم!شاد باشید![[کاربر:فلورانس|فلورانس]] ([[بحث کاربر:فلورانس|بحث]]) ‏۱ سپتامبر ۲۰۱۵، ساعت ۱۰:۴۸ (UTC) ==گشت خودکار== با سلام و درود، دسترسی گشت خودکار را به دسترسی های شما افزودم ، در صورتی که قصد گشت زنی و همچنین ماندگاری در ویکی واژه را نیز داشته باشید اطلاع دهید تا در اولین فرصت گشت زن و واگردان را نیز به دسترسی های شما اضافه کنم، ارادتمند --[[کاربر:فلورانس|فلورانس]] ([[بحث کاربر:فلورانس|بحث]]) ‏۵ سپتامبر ۲۰۱۵، ساعت ۱۰:۴۳ (UTC) == جشنواره ویکی‌واژه == __NOTOC__ {{ویکی‌واژه:جشنواره ویکی‌واژه/بالا}} {|cellspacing="0" cellpadding="0" style="margin-top:0.6em" |- |style="font-size:0.6em;line-height:0.6em"|&nbsp; |- | valign="top"| {{نوار رنگ |عنوان={{Color|white|'''ویکی‌واژه چه چیزی نیست'''}} |تصویر=Crystal Project kedit.png |رنگ=Dark Blue |محتوا= ویکی‌واژه یک [[واژه‌نامه]] برخط است، همچنین یک اجتماع برخط نیز هست، اگرچه این هدف آن نیست. بنابراین، چیزهایی وجود دارد که شامل ویکی‌واژه نمی‌شود. #ویکی‌واژه یک [[دانشنامه]]، [[شجره‌نامه]] یا یک [[اطلس]] نیست. #ویکی‌واژه [[داور|داوری]] نیست که مشخص کند چه چیزی در زبان فارسی خوب، درست، قابل قبول، مناسب است. #ویکی‌واژه یک [[گوی بلورین]] نیست. ویکی‌واژه سعی نمی‌کند که کلمه‌های آینده را پیشگویی کند. آن معمولا بر اصل اثبات‌پذیری در طی چندین سال استفاده، استوار است. #ویکی‌واژه به مانند کاغذ نیست. #ویکی‌واژه یک '''تریبون سخنرانی'''، '''اتاق‌های گفتگو''' و یا یک '''فروم بحث''' نیست. #ویکی‌واژه یک وب‌گاه آینه یا انباری برای پیوندها، تصاویر و پرونده‌های صوتی-تصویری نیست. #ویکی‌واژه یک میزبان رایگان، وب‌نوشت، فراهم‌کنندهٔ فضای وب و یا وب‌گاه ارتباطات اجتماعی نیست. #ویکی‌واژه میدان جنگ نیست. از هر کاربری انتظار می‌رود که با دیگران مؤدبانه، با آرامش و همراه با روح همکاری رفتار کند. به کسانی که نظرات ناموافقی با شما دارند توهین و اذیت نکنید و آنها را نترسانید. به جای این کار با هوشمندی به قضیه نگاه کنید و گفتگویی مؤدبانه را آغاز کنید. صرف اینکه رفتار یک کاربر نسبت به شما همراه با بی‌ادبی، عدم حفظ آرامش، عدم همکاری، توهین‌آمیز، اذیت‌کننده و یا ترس‌برانگیز است، عذر موجهی برای انتقام شما از او و به روش او تلقی نمی‌شود. در این گونه موارد یکی از این دو کار را انجام دهید: ۱- تنها به واقعیات مطرح‌شده پاسخ دهید و مطالب توهین‌آمیز آن را ندیده بگیرید. ۲- کل پیغام توهین‌آمیز را نادیده انگارید. #ویکی‌واژه سانسور شده نیست. #ویکی‌واژه [[تک زبانه]] نیست. ویکی‌واژه، واژه‌نامه‌ای است در یک زبان نوشته می‌شود و تمام واژه‌های زبان‌ها را پوشش می‌دهد.}} |style="padding:4px;font-size:1px"|&nbsp; |width="50%" valign="top"| {{نوار رنگ |عنوان={{Color|white|'''ویکی‌واژه:شیوه‌نامه'''}} |تصویر=Crystal Project kedit.png |رنگ=Dark Blue |محتوا= گسترهٔ واژگان زبان‌ها بسیار زیاد است و در بیشتر زبان‌ها، از جمله فارسی، واژه‌های بسیاری هستند که دارای چندین ریشه، آوایش، معنی و روش نوشتن هستند. اگر تفاوت گویش‌ها و لهجه‌ها را نیز بدین بیافزاییم به این نتیجه می‌رسیم که یک واژه‌نامهٔ خوب باید به خوبی این تفاوت‌ها را از هم تفکیک کند. برای بالابردن هماهنگی و یکسان‌سازی ویکی‌واژه بهتر است تمام ویرایش‌ها از شیوه‌نامه‌ای یکسان پیروی کند. این شیوه‌نامه امکان یکدست‌سازی برای ویکی‌واژه فارسی را فراهم می‌کند و پیروی از آن کیفیت جستجوهای پژوهشی را در ویکی‌واژه به عنوان واژه‌نامه‌ای رایانه‌ای بالا می‌برد. توجه کنید که این قوانین تغییرپذیر هستند اما تا هنگامی که تغییر نکرده‌اند، تمام ویکی‌واژه‌نویسان باید از این قوانین پیروی کنند. [[ویکی‌واژه:شیوه‌نامه|'''شیوه‌نامه''']] را حتما بخوانید}} {{نوار رنگ |عنوان={{Color|white|'''ثبت نام در جشنواره'''}} |تصویر=Crystal Project Edit add.png |رنگ=Dark Blue |محتوا=جهت ثبت نام در این جشنواره و اضافه نمودن نام تان در بین کاربران ویکی واژه می توانید از طریق اضافه نمودن نام کاربری تان در [[ویکی‌واژه:جشنواره ویکی‌واژه/کاربران|'''بخش اعضاء''']] اقدام کنید.}} {{نوار رنگ |عنوان={{Color|white|'''سرواژه تان را اضافه کنید'''}} |تصویر=Crystal Project kedit.png |رنگ=Dark Blue |محتوا= برای ساختن یک سرواژهٔ جدید عنوان موردنظر خود را در جعبهٔ زیر وارد کرده و دکمهٔ «ساخت سرواژهٔ نو» را فشار دهید. توجه کنید که عنوان نوشتار شما با محتویات [[ویکی‌واژه:شیوه‌نامه|شیوه‌نامه]] در مورد عنوان‌ها سازگاری داشته باشد.}} <inputbox> type=create default=سرواژه buttonlabel=ساخت سرواژهٔ نو break=no bgcolor= </inputbox> |} --[[کاربر:MediaWiki message delivery|MediaWiki message delivery]] ([[بحث کاربر:MediaWiki message delivery|بحث]]) ‏۵ سپتامبر ۲۰۱۵، ساعت ۲۳:۳۹ (UTC) <!-- پیام توسط کاربر:فلورانس@fawiktionary با استفاده از فهرست در https://fa.wiktionary.org/w/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:%D9%81%D9%84%D9%88%D8%B1%D8%A7%D9%86%D8%B3/%D9%84%DB%8C%D8%B3%D8%AA&oldid=688674 ارسال شده‌است --> == گرفتن دسترسی گشت خودکار == درود. به دلیل ایجاد چندین سرواژهٔ نادرست، نامفهوم و نالازم به زبان فرانسوی، دسترسی گشت خودکار شما گرفته شد. با احترام [[کاربر:The.shahab|The.shahab]] ([[بحث کاربر:The.shahab|بحث]]) ۲۹ اوت ۲۰۲۶، ساعت ۲۱:۱۵ (UTC) fyg2k6l54khbrp6itrnevt5tkhadmvf پودمان:documentations 828 158643 915587 845796 2026-08-29T19:44:22Z WolfCapitan 41989 WolfCapitan صفحهٔ [[پودمان:documentation]] را به [[پودمان:مستندات]] منتقل کرد 845796 Scribunto text/plain local export = {} -- it is either here, or in [[Module:ugly hacks]], and it is not in ugly hacks. function export.CONTENTMODEL() return mw.title.getCurrentTitle().contentModel end local skins = { ["common" ] = ""; ["vector" ] = "Vector"; ["monobook" ] = "Monobook"; ["cologneblue"] = "Cologne Blue"; ["modern" ] = "Modern"; } local Array = require "Module:array" local function compare_pages(page1, page2, text) return "[" .. tostring( mw.uri.fullUrl("Special:ComparePages", { page1 = page1, page2 = page2 })) .. " " .. text .. "]" end local function page_exists(title) local success, title_obj = pcall(mw.title.new, title) return success and title_obj.exists end -- Avoid transcluding [[Module:languages/cache]] everywhere. local lang_cache = setmetatable({}, { __index = function (self, k) return require "Module:languages/cache"[k] end }) local function zh_link(word) return require("Module:links").full_link{ lang = lang_cache.zh, term = word } end local function make_Unicode_data_documentation(title, cats) local subpage, first_three_of_code_point = title.fullText:match("^Module:Unicode data/([^/]+)/(%x%x%x)$") if subpage == "names" or subpage == "images" then local low, high = tonumber(first_three_of_code_point .. "000", 16), tonumber(first_three_of_code_point .. "FFF", 16) return string.format( "This data module contains the %s of " .. "[[Appendix:Unicode|Unicode]] code points within the range U+%04X to U+%04X.", subpage == "images" and "titles of images" or "names", low, high) end end -- This provides categories and documentation for various data modules, so that -- [[Category:Uncategorized modules]] isn’t unnecessarily cluttered. -- It is a list of tables, each of which have the following possible fields: -- `regex` (required): A Lua pattern to match the module's title. If it matches, the data in this entry will be used. -- Any captures in the pattern can by referenced in the `cat` field using %1 for the first capture, %2 for the -- second, etc. (often used for creating the sortkey for the category). In addition, the captures are passed to the -- `process` function as the third and subsequent parameters. -- `process` (optional): This may be a function or a string. If it is a function, it is called as follows: -- process(TITLE, CATS, CAPTURE1, CAPTURE2, ...) -- where: -- * TITLE is a title object describing the module's title; see [https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Title_objects]. -- * CATS is an array object (see [[Module:array]]) of categories that the module will be added to. -- * CAPTURE1, CAPTURE2, ... contain any captures in the `regex` field. -- The return value of `process` should be a string and will be used as the module's documentation. -- If `process` is a string, it is the name of a submodule under 'Module:documentation/functions/' which returns a -- function, of the same type as described above. If `process` is omitted entirely, the module will have no -- documentation. -- `cat` (optional): A string naming the category into which the module should be placed. Captures specified in `regex` -- may be referenced in this string using %1 for the first capture, %2 for the second, etc. Currently, in order to put -- the module into multiple categories, you need to write a `process` function that adds categories to the CATS -- parameter passed in. local module_regex = { { regex = "^Module:languages/.+$", cat = "Language and script modules", }, { regex = "^Module:scripts/.+$", cat = "Language and script modules", }, { regex = "^Module:data tables/data..?.?.?$", cat = "Reference module sharded data tables", }, { regex = "^Module:Quotations/...?.?.?.?.?.?$", cat = "Quotation data modules", }, { regex = "^Module:zh/data/dial%-pron/.+$", cat = "Chinese dialectal pronunciation data modules", process = "zh dial or syn", }, { regex = "^Module:zh/data/dial%-syn/.+$", cat = "Chinese dialectal synonyms data modules", process = "zh dial or syn", }, { regex = "^Module:zh/data/glyph%-data/.+$", cat = "Chinese historical character forms data modules", process = function(title, cats) local character = title.fullText:match("^Module:zh/data/glyph%-data/(.+)") if character then return ("This module contains data on historical forms of the Chinese character %s.") :format(zh_link(character)) end end, }, { regex = "^Module:zh/data/ltc%-pron/(.+)$", cat = "Middle Chinese pronunciation data modules|%1", process = "zh data", }, { regex = "^Module:zh/data/och%-pron%-BS/(.+)$", cat = "Old Chinese (Baxter-Sagart) pronunciation data modules|%1", process = "zh data", }, { regex = "^Module:zh/data/och%-pron%-ZS/(.+)$", cat = "Old Chinese (Zhengzhang) pronunciation data modules|%1", process = "zh data", }, { -- capture rest of zh/data submodules regex = "^Module:zh/data/(.+)$", cat = "Chinese data modules|%1", }, { regex = "^Module:mul/guoxue%-data/cjk%-?(.*)$", process = "guoxue-data", }, { regex = "^Module:Unicode data/(.+)$", cat = "Unicode data modules|%1", process = make_Unicode_data_documentation, }, { regex = "^Module:number list/data/(.+)$", process = "number list", }, { regex = "^Module:accel/(.+)$", process = function(title, cats) local lang_code = title.subpageText local lang = lang_cache[lang_code] if lang then cats:insert(lang:getCanonicalName() .. " modules|accel") cats:insert(("Accel submodules|%s"):format(lang:getCanonicalName())) return ("This module contains new entry creation rules for %s; see [[WT:ACCEL]] for an overview, and [[Module:accel]] for information on creating new rules.") :format(lang:makeCategoryLink()) end end, }, { regex = "^Module:inc%-ash/dial/data/(.+)$", cat = "Ashokan Prakrit modules|%1", process = function(title, cats) local word = title.fullText:match("^Module:inc%-ash/dial/data/(.+)$") if word then local lang = lang_cache["inc-ash"] return ("This module contains data on the pronunciation of %s in dialects of %s.") :format(require("Module:links").full_link({ term = word, lang = lang }, "term"), lang:makeCategoryLink()) end end, }, { regex = "^Module:[%l-]+:Dialects$", process = function(title, cats) local content = title:getContent() local has_aliases = content:find("aliases") ~= nil return mw.getCurrentFrame():expandTemplate { title = "dialectal data module", args = { ["labels-aliases"] = has_aliases }, } end, }, { regex = "^.+%-translit$", process = "translit", }, { regex = "^Module:category tree/poscatboiler/data/lang%-specific/(.+)$", process = function(title, cats, lang_code) local lang = lang_cache[lang_code] if lang then local langname = lang:getCanonicalName() cats:insert("Category tree data modules/poscatboiler|" .. langname) cats:insert(langname .. " modules") cats:insert(langname .. " data modules") return "This module handles generating the descriptions and categorization for " .. langname .. " category pages " .. "of the format \"" .. langname .. " LABEL\" where LABEL can be any text. Examples are " .. "[[:Category:Bulgarian conjugation 2.1 verbs]] and [[:Category:Russian velar-stem neuter-form nouns]]. " .. "This module is part of the poscatboiler system, which is a general framework for generating the " .. "descriptions and categorization of category pages.\n\n" .. "For more information, see [[Module:category tree/poscatboiler/data/lang-specific/documentation]]." end end }, { regex = "^Module:category tree/poscatboiler/data/(.+)$", cat = "Category tree data modules/poscatboiler|%1", }, { regex = "^Module:ja/data/(.+)$", cat = "Japanese data modules|%1", }, { regex = "^Module:Swadesh/data/(.+)$", cat = "Swadesh modules|%1", }, { regex = "^Module:typing%-aids", process = function(title, cats) local data_suffix = title.fullText:match("^Module:typing%-aids/data/(.+)$") if data_suffix then cats:insert("Data modules") if data_suffix:find "^[%l-]+$" then local lang = require "Module:languages".getByCode(data_suffix) if lang then cats:insert(lang:getCanonicalName() .. " modules") end elseif data_suffix:find "^%u%l%l%l$" then local script = require "Module:scripts".getByCode(data_suffix) if script then cats:insert(script:getCategoryName()) end end end end, }, { regex = "^Module:R:([a-z%-]+):(.+)$", process = function(title, cats, lang_code, refname) local lang = lang_cache[lang_code] if lang then cats:insert(lang:getCanonicalName() .. " modules|" .. refname) cats:insert(("Reference modules|%s"):format(lang:getCanonicalName())) return mw.getCurrentFrame():preprocess("This module implements the reference template {{temp|R:" .. lang_code .. ":" .. refname .. "}}.") end end, }, } function export.show(frame) local params = { ["hr"] = {}, ["for"] = {}, ["from"] = {}, ["notsubpage"] = { type = "boolean", default = false }, ["nodoc"] = { type = "boolean", default = false }, } local args = require("Module:parameters").process(frame.args, params) local output = Array('\n<div class="documentation" style="display:block; clear:both">\n') local cats = Array() local nodoc = args.nodoc if (not args.hr) or (args.hr == "above") then output:insert("----\n") end local title = ((args['for'] ~= "") and args['for']) and mw.title.new(args['for']) or mw.title.getCurrentTitle() local doc_title = mw.title.new((args['from'] ~= "") and args['from'] or (title.fullText .. '/documentation')) local contentModel = title.contentModel local pagetype = mw.getContentLanguage():lcfirst(title.nsText) .. " page" local preload, fallback_docs, doc_content, doc_content_module, old_doc_title, user_name, skin_name, needs_doc if contentModel == "javascript" then pagetype = "script" if title.nsText == 'MediaWiki' then if title.text:find('Gadget-') then preload = 'Template:documentation/preloadGadget' else preload = 'Template:documentation/preloadMediaWikiJavaScript' end else preload = 'Template:documentation/preloadTemplate' -- XXX end if title.nsText == 'User' then user_name = title.rootText end elseif contentModel == "css" then pagetype = "style sheet" preload = 'Template:documentation/preloadTemplate' -- XXX if title.nsText == 'User' then user_name = title.rootText end elseif contentModel == "Scribunto" then pagetype = "module" user_name = title.rootText:match("^[Uu]ser:(.+)") if user_name then preload = 'Template:documentation/preloadModuleSandbox' else preload = 'Template:documentation/preloadModule' end elseif title.nsText == "Template" then pagetype = "template" preload = 'Template:documentation/preloadTemplate' elseif title.nsText == "Wiktionary" then pagetype = "project page" preload = 'Template:documentation/preloadTemplate' -- XXX end if doc_title.isRedirect then old_doc_title = doc_title doc_title = mw.title.new(string.match(doc_title:getContent(), "^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[([^%[%]]-)%]%]")) end output:insert("<dl class=\"plainlinks\" style=\"font-size: smaller;\">") if doc_title.exists then output:insert( "<dd><i style=\"font-size: larger;\">The following " .. "[[Help:Documenting templates and modules|documentation]] is located at [[" .. doc_title.fullText .. "]]. " .. "<sup>[[" .. doc_title:fullUrl { action = 'edit' } .. " edit]]</sup> </i></dd>") else if contentModel == "Scribunto" then local automatic_cats = nil if user_name then fallback_docs = "documentation/fallback/user module" automatic_cats = {"User sandbox modules"} else for _, data in ipairs(module_regex) do local captures = {mw.ustring.match(title.fullText, data.regex)} if #captures > 0 then local cat local process_function if type(data.process) == "function" then process_function = data.process elseif type(data.process) == "string" then doc_content_module = "Module:documentation/functions/" .. data.process process_function = require(doc_content_module) end if process_function then doc_content = process_function(title, cats, unpack(captures)) end cat = data.cat if cat then if type(cat) == "string" then cat = {cat} end for _, c in ipairs(cat) do -- gsub() and Lua :gsub() return two arguments, which causes all sorts of problems. -- Terrible design, there should have been a separate two-argument function. local gsub_sucks = mw.ustring.gsub(title.fullText, data.regex, c) table.insert(cats, gsub_sucks) end end break end end end if not automatic_cats then local success, auto_cats = pcall(require("Module:module categorization").categorize, frame, true) if success then for _, category in ipairs(auto_cats) do cats:insert(category) end end end if title.subpageText == "templates" then cats:insert("Template interface modules") end if automatic_cats then for _, c in ipairs(automatic_cats) do cats:insert(c) end end -- meaning module is not in user’s sandbox or one of many datamodule boring series needs_doc = not (automatic_cats or doc_content or fallback_docs) elseif title.nsText == "Template" then --cats:insert("Uncategorized templates") needs_doc = not (fallback_docs or nodoc) elseif (contentModel == "css") or (contentModel == "javascript") then if user_name then skin_name = skins[title.text:sub(#title.rootText + 1):match("^/([a-z]+)%.[jc]ss?$")] if skin_name then fallback_docs = 'documentation/fallback/user ' .. contentModel end end end if doc_content then output:insert( "<dd><i style=\"font-size: larger;\">The following " .. "[[Help:Documenting templates and modules|documentation]] is " .. "generated by [[" .. (doc_content_module or "Module:documentation") .. "]]. <sup>[[" .. mw.title.new("Module:documentation"):fullUrl { action = 'edit' } .. " edit]]</sup> </i></dd>") elseif not nodoc then output:insert( "<dd><i style=\"font-size: larger;\">This " .. pagetype .. " lacks a [[Help:Documenting templates and modules|documentation subpage]]. " .. (fallback_docs and "You may " or "Please ") .. "[" .. doc_title:fullUrl { action = 'edit', preload = preload } .. " create it].</i></dd>\n") end end if title.fullText:match("^MediaWiki:Gadget%-") then local is_gadget = false local gadget_list = mw.title.new("MediaWiki:Gadgets-definition"):getContent() for line in mw.text.gsplit(gadget_list, "\n") do local gadget, opts, items = line:match("^%*%s*([A-Za-z][A-Za-z0-9_%-]*)%[(.-)%]|(.+)$") -- opts is unused if not gadget then gadget, items = line:match("^%*%s*([A-Za-z][A-Za-z0-9_%-]*)|(.+)$") end if gadget then items = Array(mw.text.split(items, "|")) for i, item in ipairs(items) do if title.fullText == ("MediaWiki:Gadget-" .. item) then is_gadget = true output:insert("<dd> ''This script is a part of the <code>") output:insert(gadget) output:insert("</code> gadget ([") output:insert(tostring(mw.uri.fullUrl('MediaWiki:Gadgets-definition', 'action=edit'))) output:insert(" edit definitions])'' <dl>") output:insert("<dd> ''Description ([") output:insert(tostring(mw.uri.fullUrl('MediaWiki:Gadget-' .. gadget, 'action=edit'))) output:insert(" edit])'': ") local gadget_description = mw.message.new('Gadget-' .. gadget):plain() gadget_description = frame:preprocess(gadget_description) output:insert(gadget_description) output:insert(" </dd>") items:remove(i) if #items > 0 then for j, item in ipairs(items) do items[j] = '[[MediaWiki:Gadget-' .. item .. '|' .. item .. ']]' end output:insert("<dd> ''Other parts'': ") output:insert(mw.text.listToText(items)) output:insert("</dd>") end output:insert("</dl></dd>") break end end end end if not is_gadget then output:insert("<dd> ''This script is not a part of any [") output:insert(tostring(mw.uri.fullUrl('Special:Gadgets', 'uselang=en'))) output:insert(' gadget] ([') output:insert(tostring(mw.uri.fullUrl('MediaWiki:Gadgets-definition', 'action=edit'))) output:insert(' edit definitions]).</dd>') -- else -- cats:insert("Wiktionary gadgets") end end if old_doc_title then output:insert("<dd> ''Redirected from'' [") output:insert(old_doc_title:fullUrl { redirect = 'no' }) output:insert(" ") output:insert(old_doc_title.fullText) output:insert("] ([") output:insert(old_doc_title:fullUrl { action = 'edit' }) output:insert(" edit]).</dd>\n") end local links = Array() if title.isSubpage and not args.notsubpage then links:insert("[[:" .. title.nsText .. ":" .. title.rootText .. "|root page]]") links:insert("[[Special:PrefixIndex/" .. title.nsText .. ":" .. title.rootText .. "/|root page’s subpages]]") else links:insert("[[Special:PrefixIndex/" .. title.fullText .. "/|subpage list]]") end links:insert( '[' .. tostring(mw.uri.fullUrl('Special:WhatLinksHere/' .. title.fullText, 'hidetrans=1&hideredirs=1')) .. ' links]') if contentModel ~= "Scribunto" then links:insert( '[' .. tostring(mw.uri.fullUrl('Special:WhatLinksHere/' .. title.fullText, 'hidelinks=1&hidetrans=1')) .. ' redirects]') end if (contentModel == "javascript") or (contentModel == "css") then if user_name then links:insert("[[Special:MyPage" .. title.text:sub(#title.rootText + 1) .. "|your own]]") end else links:insert( '[' .. tostring(mw.uri.fullUrl('Special:WhatLinksHere/' .. title.fullText, 'hidelinks=1&hideredirs=1')) .. ' transclusions]') end if contentModel == "Scribunto" then local is_testcases = title.isSubpage and title.subpageText == "testcases" local without_subpage = title.nsText .. ":" .. title.baseText if is_testcases then links:insert("[[:" .. without_subpage .. "|tested module]]") else links:insert("[[" .. title.fullText .. "/testcases|testcases]]") end if user_name then links:insert("[[User:" .. user_name .. "|user page]]") links:insert("[[User talk:" .. user_name .. "|user talk page]]") links:insert("[[Special:PrefixIndex/User:" .. user_name .. "/|userspace]]") else -- If sandbox module, add a link to the module that this is a sandbox of. -- Exclude user sandbox modules like [[User:Dine2016/sandbox]]. if title.text:find("/sandbox%d*%f[/%z]") then cats:insert("Sandbox modules") -- Sandbox modules don’t really need documentation. needs_doc = false -- Will behave badly if “/sandbox” occurs twice in title! local sandbox_of = title.fullText:gsub("/sandbox%d*%f[/%z]", "") local diff if page_exists(sandbox_of) then diff = " (" .. compare_pages(title.fullText, sandbox_of, "diff") .. ")" else require("Module:debug").track("documentation/no sandbox of") end links:insert("[[:" .. sandbox_of .. "|sandbox of]]" .. (diff or "")) -- If not a sandbox module, add link to sandbox module. -- Sometimes there are multiple sandboxes for a single module: -- [[Module:sa-pronunc/sandbox]], [[Module:sa-pronunc/sandbox2]]. -- Occasionally sandbox modules have their own subpages that are also -- sandboxes: [[Module:grc-decl/sandbox/decl]]. else local sandbox_title if title.fullText:find("^Module:grc%-decl/") then sandbox_title = title.fullText:gsub("^Module:grc%-decl/", "Module:grc-decl/sandbox/") elseif is_testcases then sandbox_title = title.fullText:gsub("/testcases", "/sandbox/testcases") else sandbox_title = title.fullText .. "/sandbox" end local sandbox_link = "[[:" .. sandbox_title .. "|sandbox]]" local diff if page_exists(sandbox_title) then diff = " (" .. compare_pages(title.fullText, sandbox_title, "diff") .. ")" end links:insert(sandbox_link .. (diff or "")) end end end if title.nsText == "Template" then -- Error search: all(any namespace), hastemplate (show pages using the template), insource (show source code), incategory (any/specific error) -- [[mw:Help:CirrusSearch]], [[w:Help:Searching/Regex]] -- apparently same with/without: &profile=advanced&fulltext=1 local errorq = 'searchengineselect=mediawiki&search=all: hastemplate:\"'..title.rootText..'\" insource:\"'..title.rootText..'\" incategory:' local eincategory = "Pages_with_module_errors|ParserFunction_errors|DisplayTitle_errors|Pages_with_ISBN_errors|Pages_with_ISSN_errors|Pages_with_reference_errors|Pages_with_syntax_highlighting_errors|Pages_with_TemplateStyles_errors" links:insert( '[' .. tostring(mw.uri.fullUrl('Special:Search', errorq..eincategory )) .. ' errors]' .. ' (' .. '[' .. tostring(mw.uri.fullUrl('Special:Search', errorq..'ParserFunction_errors' )) .. ' parser]' .. '/' .. '[' .. tostring(mw.uri.fullUrl('Special:Search', errorq..'Pages_with_module_errors' )) .. ' module]' .. ')' ) if title.isSubpage and title.text:find("/sandbox%d*%f[/%z]") then -- This is a sandbox template. -- At the moment there are no user sandbox templates with subpage -- “/sandbox”. cats:insert("Sandbox templates") -- Sandbox templates don’t really need documentation. needs_doc = false -- Will behave badly if “/sandbox” occurs twice in title! local sandbox_of = title.fullText:gsub("/sandbox%d*%f[/%z]", "") local diff if page_exists(sandbox_of) then diff = " (" .. compare_pages(title.fullText, sandbox_of, "diff") .. ")" else require("Module:debug").track("documentation/no sandbox of") end links:insert("[[:" .. sandbox_of .. "|sandbox of]]" .. (diff or "")) else -- This is a template that can have a sandbox. local sandbox_title = title.fullText .. "/sandbox" local diff if page_exists(sandbox_title) then diff = " (" .. compare_pages(title.fullText, sandbox_title, "diff") .. ")" end links:insert("[[:" .. sandbox_title .. "|sandbox]]" .. (diff or "")) end end if #links > 0 then output:insert("<dd> ''Useful links'': " .. links:concat(" • ") .. "</dd>") end output:insert("</dl>\n") -- Show error from [[Module:category tree/topic cat/data]] on its submodules' -- documentation to, for instance, warn about duplicate labels. if title.fullText:find("Module:category tree/topic cat/data", 1, true) == 1 then local ok, err = pcall(require, "Module:category tree/topic cat/data") if not ok then output:insert('<span class="error">' .. err .. '</span>\n\n') end end if doc_title.exists then -- Override automatic documentation, if present. doc_content = frame:expandTemplate { title = doc_title.fullText } elseif not doc_content and fallback_docs then doc_content = frame:expandTemplate { title = fallback_docs; args = { ['user'] = user_name; ['page'] = title.fullText; ['skin name'] = skin_name; } } end if doc_content then output:insert(doc_content) end output:insert(('\n<%s style="clear: both;" />'):format(args.hr == "below" and "hr" or "br")) if not cats[1] and not doc_content then if contentModel == "Scribunto" then cats:insert("Uncategorized modules") -- elseif title.nsText == "Template" then -- cats:insert("Uncategorized templates") end end if needs_doc then cats:insert("Templates and modules needing documentation") end for _, cat in ipairs(cats) do output:insert("[[Category:" .. cat .. "]]") end output:insert("</div>\n") return output:concat() end -- Used by {{translit module documentation}}. function export.translitModuleLangList(frame) local pagename, subpage if frame.args[1] then pagename = frame.args[1] else local title = mw.title.getCurrentTitle() subpage = title.subpageText pagename = title.text if subpage ~= pagename then pagename = title.rootText end end local translitModule = pagename local languageObjects = require("Module:languages/byTranslitModule")(translitModule) local codeInPagename = pagename:match("^([%l-]+)%-.*translit$") local categories = Array() local codeInPagenameInList = false if codeInPagename then if languageObjects[1] and subpage ~= "documentation" then local agreement = languageObjects[2] and "s" or "" categories:insert("[[Category:Transliteration modules used by " .. #languageObjects .. " language" .. agreement .. "]]") end languageObjects = Array(languageObjects) :filter( function (lang) local result = lang:getCode() ~= codeInPagename codeInPagenameInList = codeInPagenameInList or result return result end) end if subpage ~= "documentation" then for script_code in pagename:gmatch("%f[^-%z]%u%l%l%l%f[-]") do local script = require "Module:scripts".getByCode(script_code) if script then categories:insert("[[Category:" .. script:getCategoryName() .. "]]") end end end if subpage ~= "documentation" and not page_exists("Module:" .. pagename .. "/testcases") then categories:insert("[[Category:Transliteration modules without a testcases subpage]]") end if not languageObjects[1] then return categories:concat() end local langs = Array(languageObjects) :sort( function(lang1, lang2) return lang1:getCode() < lang2:getCode() end) -- This will not error because languageObjects is not empty. :map(languageObjects[1].makeCategoryLink) :serial_comma_join() return "It is " .. ( codeInPagenameInList and "also" or "" ) .. " used to transliterate " .. langs .. "." .. categories:concat() end return export 336j4iird08ev5f8xj0ywmbvtt1ssdt 915589 915587 2026-08-29T19:49:09Z WolfCapitan 41989 WolfCapitan صفحهٔ [[پودمان:مستندات]] را به [[پودمان:documentation]] که تغییرمسیر بود منتقل کرد 845796 Scribunto text/plain local export = {} -- it is either here, or in [[Module:ugly hacks]], and it is not in ugly hacks. function export.CONTENTMODEL() return mw.title.getCurrentTitle().contentModel end local skins = { ["common" ] = ""; ["vector" ] = "Vector"; ["monobook" ] = "Monobook"; ["cologneblue"] = "Cologne Blue"; ["modern" ] = "Modern"; } local Array = require "Module:array" local function compare_pages(page1, page2, text) return "[" .. tostring( mw.uri.fullUrl("Special:ComparePages", { page1 = page1, page2 = page2 })) .. " " .. text .. "]" end local function page_exists(title) local success, title_obj = pcall(mw.title.new, title) return success and title_obj.exists end -- Avoid transcluding [[Module:languages/cache]] everywhere. local lang_cache = setmetatable({}, { __index = function (self, k) return require "Module:languages/cache"[k] end }) local function zh_link(word) return require("Module:links").full_link{ lang = lang_cache.zh, term = word } end local function make_Unicode_data_documentation(title, cats) local subpage, first_three_of_code_point = title.fullText:match("^Module:Unicode data/([^/]+)/(%x%x%x)$") if subpage == "names" or subpage == "images" then local low, high = tonumber(first_three_of_code_point .. "000", 16), tonumber(first_three_of_code_point .. "FFF", 16) return string.format( "This data module contains the %s of " .. "[[Appendix:Unicode|Unicode]] code points within the range U+%04X to U+%04X.", subpage == "images" and "titles of images" or "names", low, high) end end -- This provides categories and documentation for various data modules, so that -- [[Category:Uncategorized modules]] isn’t unnecessarily cluttered. -- It is a list of tables, each of which have the following possible fields: -- `regex` (required): A Lua pattern to match the module's title. If it matches, the data in this entry will be used. -- Any captures in the pattern can by referenced in the `cat` field using %1 for the first capture, %2 for the -- second, etc. (often used for creating the sortkey for the category). In addition, the captures are passed to the -- `process` function as the third and subsequent parameters. -- `process` (optional): This may be a function or a string. If it is a function, it is called as follows: -- process(TITLE, CATS, CAPTURE1, CAPTURE2, ...) -- where: -- * TITLE is a title object describing the module's title; see [https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Title_objects]. -- * CATS is an array object (see [[Module:array]]) of categories that the module will be added to. -- * CAPTURE1, CAPTURE2, ... contain any captures in the `regex` field. -- The return value of `process` should be a string and will be used as the module's documentation. -- If `process` is a string, it is the name of a submodule under 'Module:documentation/functions/' which returns a -- function, of the same type as described above. If `process` is omitted entirely, the module will have no -- documentation. -- `cat` (optional): A string naming the category into which the module should be placed. Captures specified in `regex` -- may be referenced in this string using %1 for the first capture, %2 for the second, etc. Currently, in order to put -- the module into multiple categories, you need to write a `process` function that adds categories to the CATS -- parameter passed in. local module_regex = { { regex = "^Module:languages/.+$", cat = "Language and script modules", }, { regex = "^Module:scripts/.+$", cat = "Language and script modules", }, { regex = "^Module:data tables/data..?.?.?$", cat = "Reference module sharded data tables", }, { regex = "^Module:Quotations/...?.?.?.?.?.?$", cat = "Quotation data modules", }, { regex = "^Module:zh/data/dial%-pron/.+$", cat = "Chinese dialectal pronunciation data modules", process = "zh dial or syn", }, { regex = "^Module:zh/data/dial%-syn/.+$", cat = "Chinese dialectal synonyms data modules", process = "zh dial or syn", }, { regex = "^Module:zh/data/glyph%-data/.+$", cat = "Chinese historical character forms data modules", process = function(title, cats) local character = title.fullText:match("^Module:zh/data/glyph%-data/(.+)") if character then return ("This module contains data on historical forms of the Chinese character %s.") :format(zh_link(character)) end end, }, { regex = "^Module:zh/data/ltc%-pron/(.+)$", cat = "Middle Chinese pronunciation data modules|%1", process = "zh data", }, { regex = "^Module:zh/data/och%-pron%-BS/(.+)$", cat = "Old Chinese (Baxter-Sagart) pronunciation data modules|%1", process = "zh data", }, { regex = "^Module:zh/data/och%-pron%-ZS/(.+)$", cat = "Old Chinese (Zhengzhang) pronunciation data modules|%1", process = "zh data", }, { -- capture rest of zh/data submodules regex = "^Module:zh/data/(.+)$", cat = "Chinese data modules|%1", }, { regex = "^Module:mul/guoxue%-data/cjk%-?(.*)$", process = "guoxue-data", }, { regex = "^Module:Unicode data/(.+)$", cat = "Unicode data modules|%1", process = make_Unicode_data_documentation, }, { regex = "^Module:number list/data/(.+)$", process = "number list", }, { regex = "^Module:accel/(.+)$", process = function(title, cats) local lang_code = title.subpageText local lang = lang_cache[lang_code] if lang then cats:insert(lang:getCanonicalName() .. " modules|accel") cats:insert(("Accel submodules|%s"):format(lang:getCanonicalName())) return ("This module contains new entry creation rules for %s; see [[WT:ACCEL]] for an overview, and [[Module:accel]] for information on creating new rules.") :format(lang:makeCategoryLink()) end end, }, { regex = "^Module:inc%-ash/dial/data/(.+)$", cat = "Ashokan Prakrit modules|%1", process = function(title, cats) local word = title.fullText:match("^Module:inc%-ash/dial/data/(.+)$") if word then local lang = lang_cache["inc-ash"] return ("This module contains data on the pronunciation of %s in dialects of %s.") :format(require("Module:links").full_link({ term = word, lang = lang }, "term"), lang:makeCategoryLink()) end end, }, { regex = "^Module:[%l-]+:Dialects$", process = function(title, cats) local content = title:getContent() local has_aliases = content:find("aliases") ~= nil return mw.getCurrentFrame():expandTemplate { title = "dialectal data module", args = { ["labels-aliases"] = has_aliases }, } end, }, { regex = "^.+%-translit$", process = "translit", }, { regex = "^Module:category tree/poscatboiler/data/lang%-specific/(.+)$", process = function(title, cats, lang_code) local lang = lang_cache[lang_code] if lang then local langname = lang:getCanonicalName() cats:insert("Category tree data modules/poscatboiler|" .. langname) cats:insert(langname .. " modules") cats:insert(langname .. " data modules") return "This module handles generating the descriptions and categorization for " .. langname .. " category pages " .. "of the format \"" .. langname .. " LABEL\" where LABEL can be any text. Examples are " .. "[[:Category:Bulgarian conjugation 2.1 verbs]] and [[:Category:Russian velar-stem neuter-form nouns]]. " .. "This module is part of the poscatboiler system, which is a general framework for generating the " .. "descriptions and categorization of category pages.\n\n" .. "For more information, see [[Module:category tree/poscatboiler/data/lang-specific/documentation]]." end end }, { regex = "^Module:category tree/poscatboiler/data/(.+)$", cat = "Category tree data modules/poscatboiler|%1", }, { regex = "^Module:ja/data/(.+)$", cat = "Japanese data modules|%1", }, { regex = "^Module:Swadesh/data/(.+)$", cat = "Swadesh modules|%1", }, { regex = "^Module:typing%-aids", process = function(title, cats) local data_suffix = title.fullText:match("^Module:typing%-aids/data/(.+)$") if data_suffix then cats:insert("Data modules") if data_suffix:find "^[%l-]+$" then local lang = require "Module:languages".getByCode(data_suffix) if lang then cats:insert(lang:getCanonicalName() .. " modules") end elseif data_suffix:find "^%u%l%l%l$" then local script = require "Module:scripts".getByCode(data_suffix) if script then cats:insert(script:getCategoryName()) end end end end, }, { regex = "^Module:R:([a-z%-]+):(.+)$", process = function(title, cats, lang_code, refname) local lang = lang_cache[lang_code] if lang then cats:insert(lang:getCanonicalName() .. " modules|" .. refname) cats:insert(("Reference modules|%s"):format(lang:getCanonicalName())) return mw.getCurrentFrame():preprocess("This module implements the reference template {{temp|R:" .. lang_code .. ":" .. refname .. "}}.") end end, }, } function export.show(frame) local params = { ["hr"] = {}, ["for"] = {}, ["from"] = {}, ["notsubpage"] = { type = "boolean", default = false }, ["nodoc"] = { type = "boolean", default = false }, } local args = require("Module:parameters").process(frame.args, params) local output = Array('\n<div class="documentation" style="display:block; clear:both">\n') local cats = Array() local nodoc = args.nodoc if (not args.hr) or (args.hr == "above") then output:insert("----\n") end local title = ((args['for'] ~= "") and args['for']) and mw.title.new(args['for']) or mw.title.getCurrentTitle() local doc_title = mw.title.new((args['from'] ~= "") and args['from'] or (title.fullText .. '/documentation')) local contentModel = title.contentModel local pagetype = mw.getContentLanguage():lcfirst(title.nsText) .. " page" local preload, fallback_docs, doc_content, doc_content_module, old_doc_title, user_name, skin_name, needs_doc if contentModel == "javascript" then pagetype = "script" if title.nsText == 'MediaWiki' then if title.text:find('Gadget-') then preload = 'Template:documentation/preloadGadget' else preload = 'Template:documentation/preloadMediaWikiJavaScript' end else preload = 'Template:documentation/preloadTemplate' -- XXX end if title.nsText == 'User' then user_name = title.rootText end elseif contentModel == "css" then pagetype = "style sheet" preload = 'Template:documentation/preloadTemplate' -- XXX if title.nsText == 'User' then user_name = title.rootText end elseif contentModel == "Scribunto" then pagetype = "module" user_name = title.rootText:match("^[Uu]ser:(.+)") if user_name then preload = 'Template:documentation/preloadModuleSandbox' else preload = 'Template:documentation/preloadModule' end elseif title.nsText == "Template" then pagetype = "template" preload = 'Template:documentation/preloadTemplate' elseif title.nsText == "Wiktionary" then pagetype = "project page" preload = 'Template:documentation/preloadTemplate' -- XXX end if doc_title.isRedirect then old_doc_title = doc_title doc_title = mw.title.new(string.match(doc_title:getContent(), "^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[([^%[%]]-)%]%]")) end output:insert("<dl class=\"plainlinks\" style=\"font-size: smaller;\">") if doc_title.exists then output:insert( "<dd><i style=\"font-size: larger;\">The following " .. "[[Help:Documenting templates and modules|documentation]] is located at [[" .. doc_title.fullText .. "]]. " .. "<sup>[[" .. doc_title:fullUrl { action = 'edit' } .. " edit]]</sup> </i></dd>") else if contentModel == "Scribunto" then local automatic_cats = nil if user_name then fallback_docs = "documentation/fallback/user module" automatic_cats = {"User sandbox modules"} else for _, data in ipairs(module_regex) do local captures = {mw.ustring.match(title.fullText, data.regex)} if #captures > 0 then local cat local process_function if type(data.process) == "function" then process_function = data.process elseif type(data.process) == "string" then doc_content_module = "Module:documentation/functions/" .. data.process process_function = require(doc_content_module) end if process_function then doc_content = process_function(title, cats, unpack(captures)) end cat = data.cat if cat then if type(cat) == "string" then cat = {cat} end for _, c in ipairs(cat) do -- gsub() and Lua :gsub() return two arguments, which causes all sorts of problems. -- Terrible design, there should have been a separate two-argument function. local gsub_sucks = mw.ustring.gsub(title.fullText, data.regex, c) table.insert(cats, gsub_sucks) end end break end end end if not automatic_cats then local success, auto_cats = pcall(require("Module:module categorization").categorize, frame, true) if success then for _, category in ipairs(auto_cats) do cats:insert(category) end end end if title.subpageText == "templates" then cats:insert("Template interface modules") end if automatic_cats then for _, c in ipairs(automatic_cats) do cats:insert(c) end end -- meaning module is not in user’s sandbox or one of many datamodule boring series needs_doc = not (automatic_cats or doc_content or fallback_docs) elseif title.nsText == "Template" then --cats:insert("Uncategorized templates") needs_doc = not (fallback_docs or nodoc) elseif (contentModel == "css") or (contentModel == "javascript") then if user_name then skin_name = skins[title.text:sub(#title.rootText + 1):match("^/([a-z]+)%.[jc]ss?$")] if skin_name then fallback_docs = 'documentation/fallback/user ' .. contentModel end end end if doc_content then output:insert( "<dd><i style=\"font-size: larger;\">The following " .. "[[Help:Documenting templates and modules|documentation]] is " .. "generated by [[" .. (doc_content_module or "Module:documentation") .. "]]. <sup>[[" .. mw.title.new("Module:documentation"):fullUrl { action = 'edit' } .. " edit]]</sup> </i></dd>") elseif not nodoc then output:insert( "<dd><i style=\"font-size: larger;\">This " .. pagetype .. " lacks a [[Help:Documenting templates and modules|documentation subpage]]. " .. (fallback_docs and "You may " or "Please ") .. "[" .. doc_title:fullUrl { action = 'edit', preload = preload } .. " create it].</i></dd>\n") end end if title.fullText:match("^MediaWiki:Gadget%-") then local is_gadget = false local gadget_list = mw.title.new("MediaWiki:Gadgets-definition"):getContent() for line in mw.text.gsplit(gadget_list, "\n") do local gadget, opts, items = line:match("^%*%s*([A-Za-z][A-Za-z0-9_%-]*)%[(.-)%]|(.+)$") -- opts is unused if not gadget then gadget, items = line:match("^%*%s*([A-Za-z][A-Za-z0-9_%-]*)|(.+)$") end if gadget then items = Array(mw.text.split(items, "|")) for i, item in ipairs(items) do if title.fullText == ("MediaWiki:Gadget-" .. item) then is_gadget = true output:insert("<dd> ''This script is a part of the <code>") output:insert(gadget) output:insert("</code> gadget ([") output:insert(tostring(mw.uri.fullUrl('MediaWiki:Gadgets-definition', 'action=edit'))) output:insert(" edit definitions])'' <dl>") output:insert("<dd> ''Description ([") output:insert(tostring(mw.uri.fullUrl('MediaWiki:Gadget-' .. gadget, 'action=edit'))) output:insert(" edit])'': ") local gadget_description = mw.message.new('Gadget-' .. gadget):plain() gadget_description = frame:preprocess(gadget_description) output:insert(gadget_description) output:insert(" </dd>") items:remove(i) if #items > 0 then for j, item in ipairs(items) do items[j] = '[[MediaWiki:Gadget-' .. item .. '|' .. item .. ']]' end output:insert("<dd> ''Other parts'': ") output:insert(mw.text.listToText(items)) output:insert("</dd>") end output:insert("</dl></dd>") break end end end end if not is_gadget then output:insert("<dd> ''This script is not a part of any [") output:insert(tostring(mw.uri.fullUrl('Special:Gadgets', 'uselang=en'))) output:insert(' gadget] ([') output:insert(tostring(mw.uri.fullUrl('MediaWiki:Gadgets-definition', 'action=edit'))) output:insert(' edit definitions]).</dd>') -- else -- cats:insert("Wiktionary gadgets") end end if old_doc_title then output:insert("<dd> ''Redirected from'' [") output:insert(old_doc_title:fullUrl { redirect = 'no' }) output:insert(" ") output:insert(old_doc_title.fullText) output:insert("] ([") output:insert(old_doc_title:fullUrl { action = 'edit' }) output:insert(" edit]).</dd>\n") end local links = Array() if title.isSubpage and not args.notsubpage then links:insert("[[:" .. title.nsText .. ":" .. title.rootText .. "|root page]]") links:insert("[[Special:PrefixIndex/" .. title.nsText .. ":" .. title.rootText .. "/|root page’s subpages]]") else links:insert("[[Special:PrefixIndex/" .. title.fullText .. "/|subpage list]]") end links:insert( '[' .. tostring(mw.uri.fullUrl('Special:WhatLinksHere/' .. title.fullText, 'hidetrans=1&hideredirs=1')) .. ' links]') if contentModel ~= "Scribunto" then links:insert( '[' .. tostring(mw.uri.fullUrl('Special:WhatLinksHere/' .. title.fullText, 'hidelinks=1&hidetrans=1')) .. ' redirects]') end if (contentModel == "javascript") or (contentModel == "css") then if user_name then links:insert("[[Special:MyPage" .. title.text:sub(#title.rootText + 1) .. "|your own]]") end else links:insert( '[' .. tostring(mw.uri.fullUrl('Special:WhatLinksHere/' .. title.fullText, 'hidelinks=1&hideredirs=1')) .. ' transclusions]') end if contentModel == "Scribunto" then local is_testcases = title.isSubpage and title.subpageText == "testcases" local without_subpage = title.nsText .. ":" .. title.baseText if is_testcases then links:insert("[[:" .. without_subpage .. "|tested module]]") else links:insert("[[" .. title.fullText .. "/testcases|testcases]]") end if user_name then links:insert("[[User:" .. user_name .. "|user page]]") links:insert("[[User talk:" .. user_name .. "|user talk page]]") links:insert("[[Special:PrefixIndex/User:" .. user_name .. "/|userspace]]") else -- If sandbox module, add a link to the module that this is a sandbox of. -- Exclude user sandbox modules like [[User:Dine2016/sandbox]]. if title.text:find("/sandbox%d*%f[/%z]") then cats:insert("Sandbox modules") -- Sandbox modules don’t really need documentation. needs_doc = false -- Will behave badly if “/sandbox” occurs twice in title! local sandbox_of = title.fullText:gsub("/sandbox%d*%f[/%z]", "") local diff if page_exists(sandbox_of) then diff = " (" .. compare_pages(title.fullText, sandbox_of, "diff") .. ")" else require("Module:debug").track("documentation/no sandbox of") end links:insert("[[:" .. sandbox_of .. "|sandbox of]]" .. (diff or "")) -- If not a sandbox module, add link to sandbox module. -- Sometimes there are multiple sandboxes for a single module: -- [[Module:sa-pronunc/sandbox]], [[Module:sa-pronunc/sandbox2]]. -- Occasionally sandbox modules have their own subpages that are also -- sandboxes: [[Module:grc-decl/sandbox/decl]]. else local sandbox_title if title.fullText:find("^Module:grc%-decl/") then sandbox_title = title.fullText:gsub("^Module:grc%-decl/", "Module:grc-decl/sandbox/") elseif is_testcases then sandbox_title = title.fullText:gsub("/testcases", "/sandbox/testcases") else sandbox_title = title.fullText .. "/sandbox" end local sandbox_link = "[[:" .. sandbox_title .. "|sandbox]]" local diff if page_exists(sandbox_title) then diff = " (" .. compare_pages(title.fullText, sandbox_title, "diff") .. ")" end links:insert(sandbox_link .. (diff or "")) end end end if title.nsText == "Template" then -- Error search: all(any namespace), hastemplate (show pages using the template), insource (show source code), incategory (any/specific error) -- [[mw:Help:CirrusSearch]], [[w:Help:Searching/Regex]] -- apparently same with/without: &profile=advanced&fulltext=1 local errorq = 'searchengineselect=mediawiki&search=all: hastemplate:\"'..title.rootText..'\" insource:\"'..title.rootText..'\" incategory:' local eincategory = "Pages_with_module_errors|ParserFunction_errors|DisplayTitle_errors|Pages_with_ISBN_errors|Pages_with_ISSN_errors|Pages_with_reference_errors|Pages_with_syntax_highlighting_errors|Pages_with_TemplateStyles_errors" links:insert( '[' .. tostring(mw.uri.fullUrl('Special:Search', errorq..eincategory )) .. ' errors]' .. ' (' .. '[' .. tostring(mw.uri.fullUrl('Special:Search', errorq..'ParserFunction_errors' )) .. ' parser]' .. '/' .. '[' .. tostring(mw.uri.fullUrl('Special:Search', errorq..'Pages_with_module_errors' )) .. ' module]' .. ')' ) if title.isSubpage and title.text:find("/sandbox%d*%f[/%z]") then -- This is a sandbox template. -- At the moment there are no user sandbox templates with subpage -- “/sandbox”. cats:insert("Sandbox templates") -- Sandbox templates don’t really need documentation. needs_doc = false -- Will behave badly if “/sandbox” occurs twice in title! local sandbox_of = title.fullText:gsub("/sandbox%d*%f[/%z]", "") local diff if page_exists(sandbox_of) then diff = " (" .. compare_pages(title.fullText, sandbox_of, "diff") .. ")" else require("Module:debug").track("documentation/no sandbox of") end links:insert("[[:" .. sandbox_of .. "|sandbox of]]" .. (diff or "")) else -- This is a template that can have a sandbox. local sandbox_title = title.fullText .. "/sandbox" local diff if page_exists(sandbox_title) then diff = " (" .. compare_pages(title.fullText, sandbox_title, "diff") .. ")" end links:insert("[[:" .. sandbox_title .. "|sandbox]]" .. (diff or "")) end end if #links > 0 then output:insert("<dd> ''Useful links'': " .. links:concat(" • ") .. "</dd>") end output:insert("</dl>\n") -- Show error from [[Module:category tree/topic cat/data]] on its submodules' -- documentation to, for instance, warn about duplicate labels. if title.fullText:find("Module:category tree/topic cat/data", 1, true) == 1 then local ok, err = pcall(require, "Module:category tree/topic cat/data") if not ok then output:insert('<span class="error">' .. err .. '</span>\n\n') end end if doc_title.exists then -- Override automatic documentation, if present. doc_content = frame:expandTemplate { title = doc_title.fullText } elseif not doc_content and fallback_docs then doc_content = frame:expandTemplate { title = fallback_docs; args = { ['user'] = user_name; ['page'] = title.fullText; ['skin name'] = skin_name; } } end if doc_content then output:insert(doc_content) end output:insert(('\n<%s style="clear: both;" />'):format(args.hr == "below" and "hr" or "br")) if not cats[1] and not doc_content then if contentModel == "Scribunto" then cats:insert("Uncategorized modules") -- elseif title.nsText == "Template" then -- cats:insert("Uncategorized templates") end end if needs_doc then cats:insert("Templates and modules needing documentation") end for _, cat in ipairs(cats) do output:insert("[[Category:" .. cat .. "]]") end output:insert("</div>\n") return output:concat() end -- Used by {{translit module documentation}}. function export.translitModuleLangList(frame) local pagename, subpage if frame.args[1] then pagename = frame.args[1] else local title = mw.title.getCurrentTitle() subpage = title.subpageText pagename = title.text if subpage ~= pagename then pagename = title.rootText end end local translitModule = pagename local languageObjects = require("Module:languages/byTranslitModule")(translitModule) local codeInPagename = pagename:match("^([%l-]+)%-.*translit$") local categories = Array() local codeInPagenameInList = false if codeInPagename then if languageObjects[1] and subpage ~= "documentation" then local agreement = languageObjects[2] and "s" or "" categories:insert("[[Category:Transliteration modules used by " .. #languageObjects .. " language" .. agreement .. "]]") end languageObjects = Array(languageObjects) :filter( function (lang) local result = lang:getCode() ~= codeInPagename codeInPagenameInList = codeInPagenameInList or result return result end) end if subpage ~= "documentation" then for script_code in pagename:gmatch("%f[^-%z]%u%l%l%l%f[-]") do local script = require "Module:scripts".getByCode(script_code) if script then categories:insert("[[Category:" .. script:getCategoryName() .. "]]") end end end if subpage ~= "documentation" and not page_exists("Module:" .. pagename .. "/testcases") then categories:insert("[[Category:Transliteration modules without a testcases subpage]]") end if not languageObjects[1] then return categories:concat() end local langs = Array(languageObjects) :sort( function(lang1, lang2) return lang1:getCode() < lang2:getCode() end) -- This will not error because languageObjects is not empty. :map(languageObjects[1].makeCategoryLink) :serial_comma_join() return "It is " .. ( codeInPagenameInList and "also" or "" ) .. " used to transliterate " .. langs .. "." .. categories:concat() end return export 336j4iird08ev5f8xj0ywmbvtt1ssdt 915591 915589 2026-08-29T19:51:31Z WolfCapitan 41989 WolfCapitan صفحهٔ [[پودمان:documentation]] را به [[پودمان:documentations]] منتقل کرد 845796 Scribunto text/plain local export = {} -- it is either here, or in [[Module:ugly hacks]], and it is not in ugly hacks. function export.CONTENTMODEL() return mw.title.getCurrentTitle().contentModel end local skins = { ["common" ] = ""; ["vector" ] = "Vector"; ["monobook" ] = "Monobook"; ["cologneblue"] = "Cologne Blue"; ["modern" ] = "Modern"; } local Array = require "Module:array" local function compare_pages(page1, page2, text) return "[" .. tostring( mw.uri.fullUrl("Special:ComparePages", { page1 = page1, page2 = page2 })) .. " " .. text .. "]" end local function page_exists(title) local success, title_obj = pcall(mw.title.new, title) return success and title_obj.exists end -- Avoid transcluding [[Module:languages/cache]] everywhere. local lang_cache = setmetatable({}, { __index = function (self, k) return require "Module:languages/cache"[k] end }) local function zh_link(word) return require("Module:links").full_link{ lang = lang_cache.zh, term = word } end local function make_Unicode_data_documentation(title, cats) local subpage, first_three_of_code_point = title.fullText:match("^Module:Unicode data/([^/]+)/(%x%x%x)$") if subpage == "names" or subpage == "images" then local low, high = tonumber(first_three_of_code_point .. "000", 16), tonumber(first_three_of_code_point .. "FFF", 16) return string.format( "This data module contains the %s of " .. "[[Appendix:Unicode|Unicode]] code points within the range U+%04X to U+%04X.", subpage == "images" and "titles of images" or "names", low, high) end end -- This provides categories and documentation for various data modules, so that -- [[Category:Uncategorized modules]] isn’t unnecessarily cluttered. -- It is a list of tables, each of which have the following possible fields: -- `regex` (required): A Lua pattern to match the module's title. If it matches, the data in this entry will be used. -- Any captures in the pattern can by referenced in the `cat` field using %1 for the first capture, %2 for the -- second, etc. (often used for creating the sortkey for the category). In addition, the captures are passed to the -- `process` function as the third and subsequent parameters. -- `process` (optional): This may be a function or a string. If it is a function, it is called as follows: -- process(TITLE, CATS, CAPTURE1, CAPTURE2, ...) -- where: -- * TITLE is a title object describing the module's title; see [https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Title_objects]. -- * CATS is an array object (see [[Module:array]]) of categories that the module will be added to. -- * CAPTURE1, CAPTURE2, ... contain any captures in the `regex` field. -- The return value of `process` should be a string and will be used as the module's documentation. -- If `process` is a string, it is the name of a submodule under 'Module:documentation/functions/' which returns a -- function, of the same type as described above. If `process` is omitted entirely, the module will have no -- documentation. -- `cat` (optional): A string naming the category into which the module should be placed. Captures specified in `regex` -- may be referenced in this string using %1 for the first capture, %2 for the second, etc. Currently, in order to put -- the module into multiple categories, you need to write a `process` function that adds categories to the CATS -- parameter passed in. local module_regex = { { regex = "^Module:languages/.+$", cat = "Language and script modules", }, { regex = "^Module:scripts/.+$", cat = "Language and script modules", }, { regex = "^Module:data tables/data..?.?.?$", cat = "Reference module sharded data tables", }, { regex = "^Module:Quotations/...?.?.?.?.?.?$", cat = "Quotation data modules", }, { regex = "^Module:zh/data/dial%-pron/.+$", cat = "Chinese dialectal pronunciation data modules", process = "zh dial or syn", }, { regex = "^Module:zh/data/dial%-syn/.+$", cat = "Chinese dialectal synonyms data modules", process = "zh dial or syn", }, { regex = "^Module:zh/data/glyph%-data/.+$", cat = "Chinese historical character forms data modules", process = function(title, cats) local character = title.fullText:match("^Module:zh/data/glyph%-data/(.+)") if character then return ("This module contains data on historical forms of the Chinese character %s.") :format(zh_link(character)) end end, }, { regex = "^Module:zh/data/ltc%-pron/(.+)$", cat = "Middle Chinese pronunciation data modules|%1", process = "zh data", }, { regex = "^Module:zh/data/och%-pron%-BS/(.+)$", cat = "Old Chinese (Baxter-Sagart) pronunciation data modules|%1", process = "zh data", }, { regex = "^Module:zh/data/och%-pron%-ZS/(.+)$", cat = "Old Chinese (Zhengzhang) pronunciation data modules|%1", process = "zh data", }, { -- capture rest of zh/data submodules regex = "^Module:zh/data/(.+)$", cat = "Chinese data modules|%1", }, { regex = "^Module:mul/guoxue%-data/cjk%-?(.*)$", process = "guoxue-data", }, { regex = "^Module:Unicode data/(.+)$", cat = "Unicode data modules|%1", process = make_Unicode_data_documentation, }, { regex = "^Module:number list/data/(.+)$", process = "number list", }, { regex = "^Module:accel/(.+)$", process = function(title, cats) local lang_code = title.subpageText local lang = lang_cache[lang_code] if lang then cats:insert(lang:getCanonicalName() .. " modules|accel") cats:insert(("Accel submodules|%s"):format(lang:getCanonicalName())) return ("This module contains new entry creation rules for %s; see [[WT:ACCEL]] for an overview, and [[Module:accel]] for information on creating new rules.") :format(lang:makeCategoryLink()) end end, }, { regex = "^Module:inc%-ash/dial/data/(.+)$", cat = "Ashokan Prakrit modules|%1", process = function(title, cats) local word = title.fullText:match("^Module:inc%-ash/dial/data/(.+)$") if word then local lang = lang_cache["inc-ash"] return ("This module contains data on the pronunciation of %s in dialects of %s.") :format(require("Module:links").full_link({ term = word, lang = lang }, "term"), lang:makeCategoryLink()) end end, }, { regex = "^Module:[%l-]+:Dialects$", process = function(title, cats) local content = title:getContent() local has_aliases = content:find("aliases") ~= nil return mw.getCurrentFrame():expandTemplate { title = "dialectal data module", args = { ["labels-aliases"] = has_aliases }, } end, }, { regex = "^.+%-translit$", process = "translit", }, { regex = "^Module:category tree/poscatboiler/data/lang%-specific/(.+)$", process = function(title, cats, lang_code) local lang = lang_cache[lang_code] if lang then local langname = lang:getCanonicalName() cats:insert("Category tree data modules/poscatboiler|" .. langname) cats:insert(langname .. " modules") cats:insert(langname .. " data modules") return "This module handles generating the descriptions and categorization for " .. langname .. " category pages " .. "of the format \"" .. langname .. " LABEL\" where LABEL can be any text. Examples are " .. "[[:Category:Bulgarian conjugation 2.1 verbs]] and [[:Category:Russian velar-stem neuter-form nouns]]. " .. "This module is part of the poscatboiler system, which is a general framework for generating the " .. "descriptions and categorization of category pages.\n\n" .. "For more information, see [[Module:category tree/poscatboiler/data/lang-specific/documentation]]." end end }, { regex = "^Module:category tree/poscatboiler/data/(.+)$", cat = "Category tree data modules/poscatboiler|%1", }, { regex = "^Module:ja/data/(.+)$", cat = "Japanese data modules|%1", }, { regex = "^Module:Swadesh/data/(.+)$", cat = "Swadesh modules|%1", }, { regex = "^Module:typing%-aids", process = function(title, cats) local data_suffix = title.fullText:match("^Module:typing%-aids/data/(.+)$") if data_suffix then cats:insert("Data modules") if data_suffix:find "^[%l-]+$" then local lang = require "Module:languages".getByCode(data_suffix) if lang then cats:insert(lang:getCanonicalName() .. " modules") end elseif data_suffix:find "^%u%l%l%l$" then local script = require "Module:scripts".getByCode(data_suffix) if script then cats:insert(script:getCategoryName()) end end end end, }, { regex = "^Module:R:([a-z%-]+):(.+)$", process = function(title, cats, lang_code, refname) local lang = lang_cache[lang_code] if lang then cats:insert(lang:getCanonicalName() .. " modules|" .. refname) cats:insert(("Reference modules|%s"):format(lang:getCanonicalName())) return mw.getCurrentFrame():preprocess("This module implements the reference template {{temp|R:" .. lang_code .. ":" .. refname .. "}}.") end end, }, } function export.show(frame) local params = { ["hr"] = {}, ["for"] = {}, ["from"] = {}, ["notsubpage"] = { type = "boolean", default = false }, ["nodoc"] = { type = "boolean", default = false }, } local args = require("Module:parameters").process(frame.args, params) local output = Array('\n<div class="documentation" style="display:block; clear:both">\n') local cats = Array() local nodoc = args.nodoc if (not args.hr) or (args.hr == "above") then output:insert("----\n") end local title = ((args['for'] ~= "") and args['for']) and mw.title.new(args['for']) or mw.title.getCurrentTitle() local doc_title = mw.title.new((args['from'] ~= "") and args['from'] or (title.fullText .. '/documentation')) local contentModel = title.contentModel local pagetype = mw.getContentLanguage():lcfirst(title.nsText) .. " page" local preload, fallback_docs, doc_content, doc_content_module, old_doc_title, user_name, skin_name, needs_doc if contentModel == "javascript" then pagetype = "script" if title.nsText == 'MediaWiki' then if title.text:find('Gadget-') then preload = 'Template:documentation/preloadGadget' else preload = 'Template:documentation/preloadMediaWikiJavaScript' end else preload = 'Template:documentation/preloadTemplate' -- XXX end if title.nsText == 'User' then user_name = title.rootText end elseif contentModel == "css" then pagetype = "style sheet" preload = 'Template:documentation/preloadTemplate' -- XXX if title.nsText == 'User' then user_name = title.rootText end elseif contentModel == "Scribunto" then pagetype = "module" user_name = title.rootText:match("^[Uu]ser:(.+)") if user_name then preload = 'Template:documentation/preloadModuleSandbox' else preload = 'Template:documentation/preloadModule' end elseif title.nsText == "Template" then pagetype = "template" preload = 'Template:documentation/preloadTemplate' elseif title.nsText == "Wiktionary" then pagetype = "project page" preload = 'Template:documentation/preloadTemplate' -- XXX end if doc_title.isRedirect then old_doc_title = doc_title doc_title = mw.title.new(string.match(doc_title:getContent(), "^#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[([^%[%]]-)%]%]")) end output:insert("<dl class=\"plainlinks\" style=\"font-size: smaller;\">") if doc_title.exists then output:insert( "<dd><i style=\"font-size: larger;\">The following " .. "[[Help:Documenting templates and modules|documentation]] is located at [[" .. doc_title.fullText .. "]]. " .. "<sup>[[" .. doc_title:fullUrl { action = 'edit' } .. " edit]]</sup> </i></dd>") else if contentModel == "Scribunto" then local automatic_cats = nil if user_name then fallback_docs = "documentation/fallback/user module" automatic_cats = {"User sandbox modules"} else for _, data in ipairs(module_regex) do local captures = {mw.ustring.match(title.fullText, data.regex)} if #captures > 0 then local cat local process_function if type(data.process) == "function" then process_function = data.process elseif type(data.process) == "string" then doc_content_module = "Module:documentation/functions/" .. data.process process_function = require(doc_content_module) end if process_function then doc_content = process_function(title, cats, unpack(captures)) end cat = data.cat if cat then if type(cat) == "string" then cat = {cat} end for _, c in ipairs(cat) do -- gsub() and Lua :gsub() return two arguments, which causes all sorts of problems. -- Terrible design, there should have been a separate two-argument function. local gsub_sucks = mw.ustring.gsub(title.fullText, data.regex, c) table.insert(cats, gsub_sucks) end end break end end end if not automatic_cats then local success, auto_cats = pcall(require("Module:module categorization").categorize, frame, true) if success then for _, category in ipairs(auto_cats) do cats:insert(category) end end end if title.subpageText == "templates" then cats:insert("Template interface modules") end if automatic_cats then for _, c in ipairs(automatic_cats) do cats:insert(c) end end -- meaning module is not in user’s sandbox or one of many datamodule boring series needs_doc = not (automatic_cats or doc_content or fallback_docs) elseif title.nsText == "Template" then --cats:insert("Uncategorized templates") needs_doc = not (fallback_docs or nodoc) elseif (contentModel == "css") or (contentModel == "javascript") then if user_name then skin_name = skins[title.text:sub(#title.rootText + 1):match("^/([a-z]+)%.[jc]ss?$")] if skin_name then fallback_docs = 'documentation/fallback/user ' .. contentModel end end end if doc_content then output:insert( "<dd><i style=\"font-size: larger;\">The following " .. "[[Help:Documenting templates and modules|documentation]] is " .. "generated by [[" .. (doc_content_module or "Module:documentation") .. "]]. <sup>[[" .. mw.title.new("Module:documentation"):fullUrl { action = 'edit' } .. " edit]]</sup> </i></dd>") elseif not nodoc then output:insert( "<dd><i style=\"font-size: larger;\">This " .. pagetype .. " lacks a [[Help:Documenting templates and modules|documentation subpage]]. " .. (fallback_docs and "You may " or "Please ") .. "[" .. doc_title:fullUrl { action = 'edit', preload = preload } .. " create it].</i></dd>\n") end end if title.fullText:match("^MediaWiki:Gadget%-") then local is_gadget = false local gadget_list = mw.title.new("MediaWiki:Gadgets-definition"):getContent() for line in mw.text.gsplit(gadget_list, "\n") do local gadget, opts, items = line:match("^%*%s*([A-Za-z][A-Za-z0-9_%-]*)%[(.-)%]|(.+)$") -- opts is unused if not gadget then gadget, items = line:match("^%*%s*([A-Za-z][A-Za-z0-9_%-]*)|(.+)$") end if gadget then items = Array(mw.text.split(items, "|")) for i, item in ipairs(items) do if title.fullText == ("MediaWiki:Gadget-" .. item) then is_gadget = true output:insert("<dd> ''This script is a part of the <code>") output:insert(gadget) output:insert("</code> gadget ([") output:insert(tostring(mw.uri.fullUrl('MediaWiki:Gadgets-definition', 'action=edit'))) output:insert(" edit definitions])'' <dl>") output:insert("<dd> ''Description ([") output:insert(tostring(mw.uri.fullUrl('MediaWiki:Gadget-' .. gadget, 'action=edit'))) output:insert(" edit])'': ") local gadget_description = mw.message.new('Gadget-' .. gadget):plain() gadget_description = frame:preprocess(gadget_description) output:insert(gadget_description) output:insert(" </dd>") items:remove(i) if #items > 0 then for j, item in ipairs(items) do items[j] = '[[MediaWiki:Gadget-' .. item .. '|' .. item .. ']]' end output:insert("<dd> ''Other parts'': ") output:insert(mw.text.listToText(items)) output:insert("</dd>") end output:insert("</dl></dd>") break end end end end if not is_gadget then output:insert("<dd> ''This script is not a part of any [") output:insert(tostring(mw.uri.fullUrl('Special:Gadgets', 'uselang=en'))) output:insert(' gadget] ([') output:insert(tostring(mw.uri.fullUrl('MediaWiki:Gadgets-definition', 'action=edit'))) output:insert(' edit definitions]).</dd>') -- else -- cats:insert("Wiktionary gadgets") end end if old_doc_title then output:insert("<dd> ''Redirected from'' [") output:insert(old_doc_title:fullUrl { redirect = 'no' }) output:insert(" ") output:insert(old_doc_title.fullText) output:insert("] ([") output:insert(old_doc_title:fullUrl { action = 'edit' }) output:insert(" edit]).</dd>\n") end local links = Array() if title.isSubpage and not args.notsubpage then links:insert("[[:" .. title.nsText .. ":" .. title.rootText .. "|root page]]") links:insert("[[Special:PrefixIndex/" .. title.nsText .. ":" .. title.rootText .. "/|root page’s subpages]]") else links:insert("[[Special:PrefixIndex/" .. title.fullText .. "/|subpage list]]") end links:insert( '[' .. tostring(mw.uri.fullUrl('Special:WhatLinksHere/' .. title.fullText, 'hidetrans=1&hideredirs=1')) .. ' links]') if contentModel ~= "Scribunto" then links:insert( '[' .. tostring(mw.uri.fullUrl('Special:WhatLinksHere/' .. title.fullText, 'hidelinks=1&hidetrans=1')) .. ' redirects]') end if (contentModel == "javascript") or (contentModel == "css") then if user_name then links:insert("[[Special:MyPage" .. title.text:sub(#title.rootText + 1) .. "|your own]]") end else links:insert( '[' .. tostring(mw.uri.fullUrl('Special:WhatLinksHere/' .. title.fullText, 'hidelinks=1&hideredirs=1')) .. ' transclusions]') end if contentModel == "Scribunto" then local is_testcases = title.isSubpage and title.subpageText == "testcases" local without_subpage = title.nsText .. ":" .. title.baseText if is_testcases then links:insert("[[:" .. without_subpage .. "|tested module]]") else links:insert("[[" .. title.fullText .. "/testcases|testcases]]") end if user_name then links:insert("[[User:" .. user_name .. "|user page]]") links:insert("[[User talk:" .. user_name .. "|user talk page]]") links:insert("[[Special:PrefixIndex/User:" .. user_name .. "/|userspace]]") else -- If sandbox module, add a link to the module that this is a sandbox of. -- Exclude user sandbox modules like [[User:Dine2016/sandbox]]. if title.text:find("/sandbox%d*%f[/%z]") then cats:insert("Sandbox modules") -- Sandbox modules don’t really need documentation. needs_doc = false -- Will behave badly if “/sandbox” occurs twice in title! local sandbox_of = title.fullText:gsub("/sandbox%d*%f[/%z]", "") local diff if page_exists(sandbox_of) then diff = " (" .. compare_pages(title.fullText, sandbox_of, "diff") .. ")" else require("Module:debug").track("documentation/no sandbox of") end links:insert("[[:" .. sandbox_of .. "|sandbox of]]" .. (diff or "")) -- If not a sandbox module, add link to sandbox module. -- Sometimes there are multiple sandboxes for a single module: -- [[Module:sa-pronunc/sandbox]], [[Module:sa-pronunc/sandbox2]]. -- Occasionally sandbox modules have their own subpages that are also -- sandboxes: [[Module:grc-decl/sandbox/decl]]. else local sandbox_title if title.fullText:find("^Module:grc%-decl/") then sandbox_title = title.fullText:gsub("^Module:grc%-decl/", "Module:grc-decl/sandbox/") elseif is_testcases then sandbox_title = title.fullText:gsub("/testcases", "/sandbox/testcases") else sandbox_title = title.fullText .. "/sandbox" end local sandbox_link = "[[:" .. sandbox_title .. "|sandbox]]" local diff if page_exists(sandbox_title) then diff = " (" .. compare_pages(title.fullText, sandbox_title, "diff") .. ")" end links:insert(sandbox_link .. (diff or "")) end end end if title.nsText == "Template" then -- Error search: all(any namespace), hastemplate (show pages using the template), insource (show source code), incategory (any/specific error) -- [[mw:Help:CirrusSearch]], [[w:Help:Searching/Regex]] -- apparently same with/without: &profile=advanced&fulltext=1 local errorq = 'searchengineselect=mediawiki&search=all: hastemplate:\"'..title.rootText..'\" insource:\"'..title.rootText..'\" incategory:' local eincategory = "Pages_with_module_errors|ParserFunction_errors|DisplayTitle_errors|Pages_with_ISBN_errors|Pages_with_ISSN_errors|Pages_with_reference_errors|Pages_with_syntax_highlighting_errors|Pages_with_TemplateStyles_errors" links:insert( '[' .. tostring(mw.uri.fullUrl('Special:Search', errorq..eincategory )) .. ' errors]' .. ' (' .. '[' .. tostring(mw.uri.fullUrl('Special:Search', errorq..'ParserFunction_errors' )) .. ' parser]' .. '/' .. '[' .. tostring(mw.uri.fullUrl('Special:Search', errorq..'Pages_with_module_errors' )) .. ' module]' .. ')' ) if title.isSubpage and title.text:find("/sandbox%d*%f[/%z]") then -- This is a sandbox template. -- At the moment there are no user sandbox templates with subpage -- “/sandbox”. cats:insert("Sandbox templates") -- Sandbox templates don’t really need documentation. needs_doc = false -- Will behave badly if “/sandbox” occurs twice in title! local sandbox_of = title.fullText:gsub("/sandbox%d*%f[/%z]", "") local diff if page_exists(sandbox_of) then diff = " (" .. compare_pages(title.fullText, sandbox_of, "diff") .. ")" else require("Module:debug").track("documentation/no sandbox of") end links:insert("[[:" .. sandbox_of .. "|sandbox of]]" .. (diff or "")) else -- This is a template that can have a sandbox. local sandbox_title = title.fullText .. "/sandbox" local diff if page_exists(sandbox_title) then diff = " (" .. compare_pages(title.fullText, sandbox_title, "diff") .. ")" end links:insert("[[:" .. sandbox_title .. "|sandbox]]" .. (diff or "")) end end if #links > 0 then output:insert("<dd> ''Useful links'': " .. links:concat(" • ") .. "</dd>") end output:insert("</dl>\n") -- Show error from [[Module:category tree/topic cat/data]] on its submodules' -- documentation to, for instance, warn about duplicate labels. if title.fullText:find("Module:category tree/topic cat/data", 1, true) == 1 then local ok, err = pcall(require, "Module:category tree/topic cat/data") if not ok then output:insert('<span class="error">' .. err .. '</span>\n\n') end end if doc_title.exists then -- Override automatic documentation, if present. doc_content = frame:expandTemplate { title = doc_title.fullText } elseif not doc_content and fallback_docs then doc_content = frame:expandTemplate { title = fallback_docs; args = { ['user'] = user_name; ['page'] = title.fullText; ['skin name'] = skin_name; } } end if doc_content then output:insert(doc_content) end output:insert(('\n<%s style="clear: both;" />'):format(args.hr == "below" and "hr" or "br")) if not cats[1] and not doc_content then if contentModel == "Scribunto" then cats:insert("Uncategorized modules") -- elseif title.nsText == "Template" then -- cats:insert("Uncategorized templates") end end if needs_doc then cats:insert("Templates and modules needing documentation") end for _, cat in ipairs(cats) do output:insert("[[Category:" .. cat .. "]]") end output:insert("</div>\n") return output:concat() end -- Used by {{translit module documentation}}. function export.translitModuleLangList(frame) local pagename, subpage if frame.args[1] then pagename = frame.args[1] else local title = mw.title.getCurrentTitle() subpage = title.subpageText pagename = title.text if subpage ~= pagename then pagename = title.rootText end end local translitModule = pagename local languageObjects = require("Module:languages/byTranslitModule")(translitModule) local codeInPagename = pagename:match("^([%l-]+)%-.*translit$") local categories = Array() local codeInPagenameInList = false if codeInPagename then if languageObjects[1] and subpage ~= "documentation" then local agreement = languageObjects[2] and "s" or "" categories:insert("[[Category:Transliteration modules used by " .. #languageObjects .. " language" .. agreement .. "]]") end languageObjects = Array(languageObjects) :filter( function (lang) local result = lang:getCode() ~= codeInPagename codeInPagenameInList = codeInPagenameInList or result return result end) end if subpage ~= "documentation" then for script_code in pagename:gmatch("%f[^-%z]%u%l%l%l%f[-]") do local script = require "Module:scripts".getByCode(script_code) if script then categories:insert("[[Category:" .. script:getCategoryName() .. "]]") end end end if subpage ~= "documentation" and not page_exists("Module:" .. pagename .. "/testcases") then categories:insert("[[Category:Transliteration modules without a testcases subpage]]") end if not languageObjects[1] then return categories:concat() end local langs = Array(languageObjects) :sort( function(lang1, lang2) return lang1:getCode() < lang2:getCode() end) -- This will not error because languageObjects is not empty. :map(languageObjects[1].makeCategoryLink) :serial_comma_join() return "It is " .. ( codeInPagenameInList and "also" or "" ) .. " used to transliterate " .. langs .. "." .. categories:concat() end return export 336j4iird08ev5f8xj0ywmbvtt1ssdt یره 0 180183 915596 820089 2026-08-29T20:00:53Z WolfCapitan 41989 915596 wikitext text/x-wiki == فارسی == === اسم === #{{مش-نگ}} [[یارو]] nz0ggrw71q2hnsx44k5g81mzvv4p3uq الگو:صفحهٔ اصلی:بالا 10 192000 915602 844837 2026-08-29T21:23:55Z The.shahab 17835 /* */ 915602 wikitext text/x-wiki <noinclude><templatestyles src="الگو:صفحهٔ اصلی/OOUI/styles.css" /></noinclude> <templatestyles src="الگو:صفحهٔ اصلی:بالا/OOUI/styles.css" /> <div class="main-top"> <div class="main-top-right"> <h1 class="main-top-header">به [[ویکی‌واژه]] [[وو:تازه‌واردان، خوش آمدید|خوش‌آمدید]]،</h1> <br />[[واژه‌نامه|واژه‌نامهٔ]] آزادی که [[ویکی‌واژه:آشنایی|همه می‌توانند آن را ویرایش کنند]] <div class="main-top-mobileSearch">دارای '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' [[ویکی‌واژه:سرواژه چیست؟|سرواژه]] با آوایش [[فارسی]]</div> </div> <div class="main-top-left main-plainlist"> <p class="main-top-articleCount">دارای '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' [[ویکی‌واژه:سرواژه چیست؟|سرواژه]] با آوایش [[فارسی]]</p> <ul style="display: flex;"> <li>[[ویکی‌واژه:درباره|<span class="mw-ui-button mw-ui-quiet">دربارهٔ ویکی‌واژه</span>]]</li> <li>[[ویکی‌واژه:راهنما|<span class="mw-ui-button mw-ui-quiet">راهنمای ویکی‌واژه</span>]]</li> <li>[[ویکی‌واژه:سیاست‌ها و رهنمودها|<span class="mw-ui-button mw-ui-quiet">سیاست‌ها و رهنمودها</span>]]</li> </ul> </div> </div> 65lqum4c26rclmxm2htilq6aw2q5tix بحث کاربر:WolfCapitan 3 208460 915580 909260 2026-08-29T19:02:11Z WolfCapitan 41989 /* دعوت به نظرخواهی */ پاسخ 915580 wikitext text/x-wiki == خوش آمدید == [[ویکی‌واژه:تازه‌واردان، خوش آمدید|'''به ویکی‌واژه خوش‌آمدید''']]!<br /> امیدوارم حضوری طولانی مدت در ویکی‌واژه داشته باشید و بتوانیم با همکاری یکدیگر در جهت پیشرفت هر چه بیشتر این وبگاه گام برداریم. ویکی‌واژه منتظر نوشتارهای خوب شماست.<br /> این پیوندها می‌تواند سودمند باشد: {| |- |[[پرونده:Noia 64 apps help index.png|30px|right|link=ویکی‌واژه:راهنما|راهنما]] || [[ویکی‌واژه:راهنما|راهنما]] برای راهنمایی گرفتن |- | [[پرونده:Nuvola apps ksig.png|30px|right|link=ویکی‌واژه:آموزش سریع|آموزش سریع]] || [[ویکی‌واژه:آموزش سریع|آموزش سریع]] |- |||[[راهنما:افزودن سرواژه نو|افزودن سرواژهٔ نو]] راهنمای افزودن سرواژهٔ نو |- |||[[ویکی‌واژه:شیوه‌نامه|شیوه‌نامه]] شیوه‌نامهٔ ویکی‌واژه |- |[[File:Bucket in the sand.svg|right|50px]]||[[ویکی‌واژه:صفحه تمرین|صفحه تمرین]] برای تمرین ویرایش |- | [[پرونده:Nuvola apps chat.png|30px|right|link=ویکی‌واژه:قهوه‌خانه|قهوه‌خانه]]||[[ویکی‌واژه:قهوه‌خانه|قهوه‌خانه]] برای گفتگو دربارهٔ مسائل فنی و سیاست‌ها. |- |[[پرونده:Farsi.svg|30px|right|link=ویکی‌واژه:فارسی‌نویسی|فارسی‌نویسی]]||[[ویکی‌واژه:فارسی‌نویسی|فارسی‌نویسی]] |- |[[پرونده:Nuvola apps agent.svg|30px|right|link=w:ویکی‌پدیا:خودآموز|آموزش پیشرفته]]||[[w:ویکی‌پدیا:خودآموز|آموزش پیشرفته]] |- | |- | |- |'''پروژه‌های دیگر بنیاد'''||[[پرونده:Wikipedia-logo.png|25px|link=w:صفحه_اصلی|ویکی‌پدیا]][[پرونده:HSWikimedia.svg|30px|link=m:Special:Recentchanges|فراویکی]] [[پرونده:HSCommons.svg|30px|link=commons:Special:Recentchanges|ویکی‌انبار]][[پرونده:HSWNews.svg|30px|link=n:ویژه:تغییرات اخیر|ویکی‌خبر]] [[پرونده:HSWBooks.svg|30px|link=b:صفحه_اصلی|ویکی‌نَسک]] [[پرونده:HSWVoyage.svg|30px|link=voy:صفحه_اصلی|ویکی‌سفر]][[پرونده:HSWQuote.svg|30px|link=q:صفحه_اصلی|ویکی‌گفتاورد]][[پرونده:HSWSource.svg|30px|link=s:صفحه_اصلی|ویکی‌نبشته]] |} امیدوارم از ''[[ویکی‌واژه:ویکی‌واژه نویسان|ویکی‌واژه نویس]]'' بودن لذت ببرید! لطفاً در صفحات گفتگو نام خود را با چهار علامت مدک امضا کنید، (~&#126;~~)، با این کار نام شما و تاریخ به عنوان امضا درج خواهد شد. در صورتی که سوال داشتید، به صفحهٔ [[ویکی‌واژه:قهوه‌خانه|قهوه‌خانه]] بروید، یا اینکه از من در صفحهٔ بحثم بپرسید. باز هم خوش آمد می‌گویم!&nbsp;شاد باشید! -- [[کاربر:AFlorence|'''فلورانس''']] ([[بحث کاربر:AFlorence|بحث]]) ‏۶ سپتامبر ۲۰۲۴، ساعت ۰۶:۲۸ (UTC) == دعوت به نظرخواهی == @[[کاربر:WolfCapitan|WolfCapitan]] درود. ضمن سپاسگزاری برای ویرایش‌های مفید شما، دعوت می‌کنم که در نظرخواهی برای تمدید مدیریت من در ویکی‌واژه فارسی (در [https://fa.wiktionary.org/wiki/%D9%88%DB%8C%DA%A9%DB%8C%E2%80%8C%D9%88%D8%A7%DA%98%D9%87:%D8%AF%D8%B1%D8%AE%D9%88%D8%A7%D8%B3%D8%AA%E2%80%8C%D9%87%D8%A7%DB%8C_%D9%85%D8%AF%DB%8C%D8%B1_%D8%B4%D8%AF%D9%86/The.shahab_(%D8%A8%D8%A7%D8%B1_%D8%AF%D9%88%D9%85) اینجا]) شرکت بفرمایید‌. با احترام [[کاربر:The.shahab|The.shahab]] ([[بحث کاربر:The.shahab|بحث]]) ۱۵ اوت ۲۰۲۶، ساعت ۱۲:۲۰ (UTC) :درود گرامی @[[کاربر:The.shahab|The.shahab]]، بنده نظرم را اعلام کردم{{سخ}} :جسارتا سوالی که پیش آمده چرا هنوز [[ویکی‌واژه:تازه‌واردان، خوش آمدید]] ایجاد نشده و در صفحه اصلی به رنگ سرخ است؟ اگر مایل باشید ایجادش کنم به نظرم بسیار کاربردی و مهم است [[کاربر:WolfCapitan|WolfCapitan]] ([[بحث کاربر:WolfCapitan|بحث]]) ۱۵ اوت ۲۰۲۶، ساعت ۱۵:۴۳ (UTC) ::@[[کاربر:WolfCapitan|WolfCapitan]] درود. سپاس برای رأی موافق. اگر تاکنون ایجاد نشده، کوتاهی همه بوده. لطف می‌کنید درستش کنید. [[کاربر:The.shahab|The.shahab]] ([[بحث کاربر:The.shahab|بحث]]) ۱۵ اوت ۲۰۲۶، ساعت ۱۶:۱۲ (UTC) :::@[[کاربر:The.shahab|The.shahab]] درود گرامی 2تا صفحه و یک الگو ایجاد کردم لطفا بررسی اش کنید [[کاربر:WolfCapitan|WolfCapitan]] ([[بحث کاربر:WolfCapitan|بحث]]) ۲۹ اوت ۲۰۲۶، ساعت ۱۹:۰۲ (UTC) kzgnr62iepdsdsxg43ua8vw28a09c4r 915581 915580 2026-08-29T19:33:29Z The.shahab 17835 /* دعوت به نظرخواهی */ پاسخ 915581 wikitext text/x-wiki == خوش آمدید == [[ویکی‌واژه:تازه‌واردان، خوش آمدید|'''به ویکی‌واژه خوش‌آمدید''']]!<br /> امیدوارم حضوری طولانی مدت در ویکی‌واژه داشته باشید و بتوانیم با همکاری یکدیگر در جهت پیشرفت هر چه بیشتر این وبگاه گام برداریم. ویکی‌واژه منتظر نوشتارهای خوب شماست.<br /> این پیوندها می‌تواند سودمند باشد: {| |- |[[پرونده:Noia 64 apps help index.png|30px|right|link=ویکی‌واژه:راهنما|راهنما]] || [[ویکی‌واژه:راهنما|راهنما]] برای راهنمایی گرفتن |- | [[پرونده:Nuvola apps ksig.png|30px|right|link=ویکی‌واژه:آموزش سریع|آموزش سریع]] || [[ویکی‌واژه:آموزش سریع|آموزش سریع]] |- |||[[راهنما:افزودن سرواژه نو|افزودن سرواژهٔ نو]] راهنمای افزودن سرواژهٔ نو |- |||[[ویکی‌واژه:شیوه‌نامه|شیوه‌نامه]] شیوه‌نامهٔ ویکی‌واژه |- |[[File:Bucket in the sand.svg|right|50px]]||[[ویکی‌واژه:صفحه تمرین|صفحه تمرین]] برای تمرین ویرایش |- | [[پرونده:Nuvola apps chat.png|30px|right|link=ویکی‌واژه:قهوه‌خانه|قهوه‌خانه]]||[[ویکی‌واژه:قهوه‌خانه|قهوه‌خانه]] برای گفتگو دربارهٔ مسائل فنی و سیاست‌ها. |- |[[پرونده:Farsi.svg|30px|right|link=ویکی‌واژه:فارسی‌نویسی|فارسی‌نویسی]]||[[ویکی‌واژه:فارسی‌نویسی|فارسی‌نویسی]] |- |[[پرونده:Nuvola apps agent.svg|30px|right|link=w:ویکی‌پدیا:خودآموز|آموزش پیشرفته]]||[[w:ویکی‌پدیا:خودآموز|آموزش پیشرفته]] |- | |- | |- |'''پروژه‌های دیگر بنیاد'''||[[پرونده:Wikipedia-logo.png|25px|link=w:صفحه_اصلی|ویکی‌پدیا]][[پرونده:HSWikimedia.svg|30px|link=m:Special:Recentchanges|فراویکی]] [[پرونده:HSCommons.svg|30px|link=commons:Special:Recentchanges|ویکی‌انبار]][[پرونده:HSWNews.svg|30px|link=n:ویژه:تغییرات اخیر|ویکی‌خبر]] [[پرونده:HSWBooks.svg|30px|link=b:صفحه_اصلی|ویکی‌نَسک]] [[پرونده:HSWVoyage.svg|30px|link=voy:صفحه_اصلی|ویکی‌سفر]][[پرونده:HSWQuote.svg|30px|link=q:صفحه_اصلی|ویکی‌گفتاورد]][[پرونده:HSWSource.svg|30px|link=s:صفحه_اصلی|ویکی‌نبشته]] |} امیدوارم از ''[[ویکی‌واژه:ویکی‌واژه نویسان|ویکی‌واژه نویس]]'' بودن لذت ببرید! لطفاً در صفحات گفتگو نام خود را با چهار علامت مدک امضا کنید، (~&#126;~~)، با این کار نام شما و تاریخ به عنوان امضا درج خواهد شد. در صورتی که سوال داشتید، به صفحهٔ [[ویکی‌واژه:قهوه‌خانه|قهوه‌خانه]] بروید، یا اینکه از من در صفحهٔ بحثم بپرسید. باز هم خوش آمد می‌گویم!&nbsp;شاد باشید! -- [[کاربر:AFlorence|'''فلورانس''']] ([[بحث کاربر:AFlorence|بحث]]) ‏۶ سپتامبر ۲۰۲۴، ساعت ۰۶:۲۸ (UTC) == دعوت به نظرخواهی == @[[کاربر:WolfCapitan|WolfCapitan]] درود. ضمن سپاسگزاری برای ویرایش‌های مفید شما، دعوت می‌کنم که در نظرخواهی برای تمدید مدیریت من در ویکی‌واژه فارسی (در [https://fa.wiktionary.org/wiki/%D9%88%DB%8C%DA%A9%DB%8C%E2%80%8C%D9%88%D8%A7%DA%98%D9%87:%D8%AF%D8%B1%D8%AE%D9%88%D8%A7%D8%B3%D8%AA%E2%80%8C%D9%87%D8%A7%DB%8C_%D9%85%D8%AF%DB%8C%D8%B1_%D8%B4%D8%AF%D9%86/The.shahab_(%D8%A8%D8%A7%D8%B1_%D8%AF%D9%88%D9%85) اینجا]) شرکت بفرمایید‌. با احترام [[کاربر:The.shahab|The.shahab]] ([[بحث کاربر:The.shahab|بحث]]) ۱۵ اوت ۲۰۲۶، ساعت ۱۲:۲۰ (UTC) :درود گرامی @[[کاربر:The.shahab|The.shahab]]، بنده نظرم را اعلام کردم{{سخ}} :جسارتا سوالی که پیش آمده چرا هنوز [[ویکی‌واژه:تازه‌واردان، خوش آمدید]] ایجاد نشده و در صفحه اصلی به رنگ سرخ است؟ اگر مایل باشید ایجادش کنم به نظرم بسیار کاربردی و مهم است [[کاربر:WolfCapitan|WolfCapitan]] ([[بحث کاربر:WolfCapitan|بحث]]) ۱۵ اوت ۲۰۲۶، ساعت ۱۵:۴۳ (UTC) ::@[[کاربر:WolfCapitan|WolfCapitan]] درود. سپاس برای رأی موافق. اگر تاکنون ایجاد نشده، کوتاهی همه بوده. لطف می‌کنید درستش کنید. [[کاربر:The.shahab|The.shahab]] ([[بحث کاربر:The.shahab|بحث]]) ۱۵ اوت ۲۰۲۶، ساعت ۱۶:۱۲ (UTC) :::@[[کاربر:The.shahab|The.shahab]] درود گرامی 2تا صفحه و یک الگو ایجاد کردم لطفا بررسی اش کنید [[کاربر:WolfCapitan|WolfCapitan]] ([[بحث کاربر:WolfCapitan|بحث]]) ۲۹ اوت ۲۰۲۶، ساعت ۱۹:۰۲ (UTC) ::::@[[کاربر:WolfCapitan|WolfCapitan]] گرامی ::::درود و سپاس برای مشارکت مفید شما. اولاً الگویی که درست کردید، بهتر است نامش «سرنویس» (مشابه ویکی‌پدیای فارسی) باشد. همچنین ظاهرش هیچ مناسب نیست چون توضیحی ندارد (البته نسخهٔ وپ فارسی‌اش هم دستکمی از آن ندارد). صفحهٔ خوش‌آمدگویی را گویا از روی ویکی‌واژهٔ انگلیسی نوشته‌اید و البته خوب و مرتب هم از آب درآمده است. در خصوص [[ویکی‌واژه:ویکی‌واژه برای ویرایشگران ویکی‌پدیا]]، اگر حوصله کنید و بقیه صفحه را هم از وو انگلیسی ترجمه کنید، عالی خواهد شد. ::::با احترام ::::[[کاربر:The.shahab|The.shahab]] ([[بحث کاربر:The.shahab|بحث]]) ۲۹ اوت ۲۰۲۶، ساعت ۱۹:۳۳ (UTC) 8atz5p4vnilfuabjxy5fmmd955yojuk جاویدنام 0 219551 915593 915554 2026-08-29T19:56:48Z WolfCapitan 41989 915593 wikitext text/x-wiki '''جاویدنام''' === ریشه === * [[جاوید]] + [[نام]] === اسم === * (ص مرکب) آنکه نامش همیشه باقی ماند؛ پاینده نام، [[شهید]]<ref>https://vajehyab.com/dehkhoda/%D8%AC%D8%A7%D9%88%DB%8C%D8%AF%D9%86%D8%A7%D9%85</ref> nlysrqxr8eypob3uaquptd8a95jt1ho تاج گذاری 0 219644 915574 2026-08-29T17:49:45Z The.shahab 17835 The.shahab صفحهٔ [[تاج گذاری]] را به [[تاج‌گذاری]] منتقل کرد 915574 wikitext text/x-wiki #تغییر_مسیر [[تاج‌گذاری]] btphnqhytfgn2pwijvtn8qm9q4qk6td ویکی‌واژه:ویکی‌واژه برای ویرایشگران ویکی‌پدیا 4 219645 915575 2026-08-29T18:33:49Z WolfCapitan 41989 صفحه‌ای تازه حاوی «{{shortcut|وو:وپ}} ویکی‌واژه و ویکی‌پدیا پروژه‌های خواهر هستند؛ هر دو ویکی هستند و ظاهر مشابهی دارند. شیوهٔ کار ما در اینجا از برخی جهات شبیه شیوهٔ کار در ویکی‌پدیا است، اما از جهات دیگر تفاوت زیادی دارد. به‌عنوان یک قاعدهٔ کلی، '''ویکی‌واژه ویکی...» ایجاد کرد 915575 wikitext text/x-wiki {{shortcut|وو:وپ}} ویکی‌واژه و ویکی‌پدیا پروژه‌های خواهر هستند؛ هر دو ویکی هستند و ظاهر مشابهی دارند. شیوهٔ کار ما در اینجا از برخی جهات شبیه شیوهٔ کار در ویکی‌پدیا است، اما از جهات دیگر تفاوت زیادی دارد. به‌عنوان یک قاعدهٔ کلی، '''ویکی‌واژه ویکی‌پدیا نیست'''؛ برخی از سیاست‌های ما با برخی سیاست‌های ویکی‌پدیا مشابه هستند و برخی دیگر کاملاً متفاوت‌اند. هیچ‌یک از سیاست‌های ویکی‌پدیا در اینجا اعمال نمی‌شوند، اما البته ویکی‌واژه گاهی سیاست‌هایی دارد که مشابه نمونه‌های موجود در ویکی‌پدیا هستند (مانند [[ویکی‌واژه:نزاکت]]). این صفحه به‌عنوان راهنمایی برای افرادی در نظر گرفته شده است که تجربه‌ای در ویرایش ویکی‌پدیای فارسی دارند، اما تجربهٔ کمی یا هیچ تجربه‌ای در ویکی‌واژهٔ فارسی ندارند. ویکی‌واژه، مانند ویکی‌پدیا، چندین سیاست و راهنما دربارهٔ مواردی دارد که می‌توان آنها را در آن گنجاند. نه ویکی‌واژه و نه ویکی‌پدیا برای افزودن بی‌ضابطهٔ هر نوع اطلاعاتی در نظر گرفته نشده‌اند. هر دو پروژه به نوعی راستی‌آزمایی نیاز دارند تا اطمینان حاصل شود اطلاعات ارائه‌شده دقیق است، و هیچ‌یک از این دو پروژه برای «چیزهایی که یک روز ساخته شده‌اند» نیستند. با این حال، از آنجا که ویکی‌واژه یک واژه‌نامه است و نه یک دانشنامه، طبیعتاً قوانین متفاوتی دربارهٔ گنجاندن اصطلاحات دارد که از جهات مهمی با سیاست‌های ویکی‌پدیا تفاوت دارند. مهم‌ترین سیاست در ویکی‌واژه، [[معیارهای گنجاندن]] ما است. این معیارها «متن مقدس» ما هستند و ابزار اصلی‌ای به شمار می‌روند که بر اساس آن محتوای ویکی‌واژه را ارزیابی می‌کنیم. این معیارها مشابه سیاست‌های ویکی‌پدیا دربارهٔ [[w:Wikipedia:تأییدپذیری|قابل‌راستی‌آزمایی بودن]] و [[w:Wikipedia:سرشناسی|سرشناسی]] هستند. 1hfiudp77h83pnxvr9vu7tw4wk4hv9j ویکی‌واژه:وپ 4 219646 915576 2026-08-29T18:34:48Z WolfCapitan 41989 تغییرمسیر به [[ویکی‌واژه:ویکی‌واژه برای ویرایشگران ویکی‌پدیا]] 915576 wikitext text/x-wiki #تغییرمسیر [[ویکی‌واژه:ویکی‌واژه برای ویرایشگران ویکی‌پدیا]] qawx0xuxyfzcvo3bwjokq1lpdn16ljx الگو:سرنویس 10 219647 915577 2026-08-29T18:41:45Z WolfCapitan 41989 صفحه‌ای تازه حاوی «<div class="hatnote" style="padding-left: 1.6em; margin-bottom: 0.5em">{{#if:{{{intro|}}}|{{{intro}}} <nowiki/>}}<span style="font-style: italic;">{{{1}}}</span></div><noinclude>{{documentation}} </noinclude>» ایجاد کرد 915577 wikitext text/x-wiki <div class="hatnote" style="padding-left: 1.6em; margin-bottom: 0.5em">{{#if:{{{intro|}}}|{{{intro}}} <nowiki/>}}<span style="font-style: italic;">{{{1}}}</span></div><noinclude>{{documentation}} </noinclude> ezi0us0yhgrqjwq9p0x37y1ucyq5myr 915582 915577 2026-08-29T19:34:46Z WolfCapitan 41989 WolfCapitan صفحهٔ [[الگو:سرنوشته]] را به [[الگو:سرنویس]] منتقل کرد 915577 wikitext text/x-wiki <div class="hatnote" style="padding-left: 1.6em; margin-bottom: 0.5em">{{#if:{{{intro|}}}|{{{intro}}} <nowiki/>}}<span style="font-style: italic;">{{{1}}}</span></div><noinclude>{{documentation}} </noinclude> ezi0us0yhgrqjwq9p0x37y1ucyq5myr ویکی‌واژه:تازه‌واردان، خوش آمدید 4 219648 915578 2026-08-29T18:58:41Z WolfCapitan 41989 صفحه‌ای تازه حاوی «{{سرنوشته|اگر ویرایشگری از [[w:|ویکی‌پدیا]] هستید، ببینید: [[ویکی‌واژه:ویکی‌واژه برای ویرایشگران ویکی‌پدیا|ویکی‌واژه برای ویرایشگران ویکی‌پدیا]]}} {{shortcut|ویکی‌واژه:درباره|ویکی‌واژه:خوش آمدید}} سلام، خوش آمدید و از شما سپاسگزاریم که نخستین گا...» ایجاد کرد 915578 wikitext text/x-wiki {{سرنوشته|اگر ویرایشگری از [[w:|ویکی‌پدیا]] هستید، ببینید: [[ویکی‌واژه:ویکی‌واژه برای ویرایشگران ویکی‌پدیا|ویکی‌واژه برای ویرایشگران ویکی‌پدیا]]}} {{shortcut|ویکی‌واژه:درباره|ویکی‌واژه:خوش آمدید}} سلام، خوش آمدید و از شما سپاسگزاریم که نخستین گام را برای بهتر کردن ویکی‌واژه برداشته‌اید! اگر نمی‌دانید ویکی‌واژه چیست، لطفاً به [[ویکی‌واژه:صفحهٔ اصلی|صفحهٔ اصلی]] مراجعه کنید. این صفحه برای ارائهٔ حداقل اطلاعات لازم به کاربران تازه‌وارد طراحی شده است تا بتوانند ویرایش را به‌طور مؤثر و بدون ایجاد مشکل آغاز کنند. همهٔ مشارکت‌ها، صرف‌نظر از میزان تخصص شما، مورد استقبال هستند! == پیش‌نیازها == پیش از شروع، مهم است که با برخی قوانین کلی آشنا باشید. از جمله: * همهٔ مدخل‌ها مشمول معیارهای گنجاندن ما هستند. اساساً، ما فقط واژه‌ها و تعریف‌های آنها را بر اساس شیوه‌ای که واقعاً مورد استفاده قرار گرفته‌اند ثبت می‌کنیم؛ صرف‌نظر از اینکه چقدر غیررسمی، از نظر دستوری نادرست یا توهین‌آمیز باشند. ** ما اصطلاحات را تجویز یا منع نمی‌کنیم؛ در عوض، فقط ثبت می‌کنیم که یک جامعهٔ زبانی چنین کاری را انجام داده است. ** ما واژه‌های شبح (واژه‌هایی که در اصل بی‌معنا هستند و در زندگی واقعی استفاده نمی‌شوند) را ایجاد نمی‌کنیم، صرف‌نظر از اینکه ممکن است چقدر بدیهی یا منطقی به نظر برسند؛ همان‌گونه که برخی فرهنگ‌های لغت دیگر در گذشته چنین کرده‌اند. * ما از الگوی دقیق مدخل‌ها پیروی می‌کنیم؛ هر عنوان بخش سیاست مخصوص به خود را دارد. برای یک کاربر مبتدی، دانستن موارد زیر کافی است: ** توصیه می‌شود یک مدخل مشابه در زبان خود را کپی کرده و تغییرات لازم را در آن اعمال کنید. هرچه کنجکاوی شما بیشتر شد، به سیاست مربوطه مراجعه کنید. ** عنوان‌هایی ایجاد نکنید که پیش از آن هرگز استفاده نشده‌اند. اگر می‌خواهید تغییری ایجاد کنید، با جامعهٔ زبانی مشورت کنید. == ویرایش ویکی‌واژه == اکنون که این موارد را پشت سر گذاشتیم، می‌توانید سفر ویرایشی خود را آغاز کنید! ویکی‌واژه ممکن است در ابتدا به دلیل حجم عظیم محتوای آن بسیار گیج‌کننده به نظر برسد و شاید ندانید از کجا شروع کنید. در اینجا چند پیشنهاد برای شروع وجود دارد: یک صفحهٔ تصادفی از یک کتاب را باز کنید و واژه‌ای را که توجه شما را جلب می‌کند انتخاب کنید (یا از یک مقالهٔ خبری، پست ردیت و...؛ محدودیتی وجود ندارد). در حال یادگیری یک زبان خارجی هستید؟ بررسی کنید که آیا پوشش واژه‌های ما با چیزهایی که آموخته‌اید مطابقت دارد یا خیر! آیا نقل‌قول موردعلاقه‌ای دارید که واژه‌ای را به‌خوبی نشان دهد؟ آن را اضافه کنید! آیا می‌دانید واژه‌ای در زبان مادری‌تان چگونه تلفظ می‌شود؟ آن را ضبط کنید! همین حالا می‌توانید وارد عمل شوید و یک تعریف را اضافه یا اصلاح کنید، جملات نمونه اضافه کنید، یا به ما در قالب‌بندی و دسته‌بندی صحیح مدخل‌ها کمک کنید. حتی می‌توانید برای اصطلاحی که هنوز مدخلی ندارد، یک صفحه ایجاد کنید. از جسارت در ویرایش صفحات نترسید! با این حال، اگر از تغییر کار شخص دیگری مطمئن نیستید، هیچ اشکالی ندارد که در میز اطلاعات درخواست کمک یا راستی‌آزمایی کنید؛ افراد اینجا می‌خواهند کمک کنند! چگونه اجازه دادن به همه برای ویرایش می‌تواند به‌جای ایجاد آشفتگی کامل، به تولید محتوایی باکیفیت منجر شود؟ زیرا باز گذاشتن ویکی برای همه، امکان ایجاد تعداد زیادی مدخل خوب و بهبود مستمر آنها را فراهم می‌کند. تمام تغییرات ثبت می‌شوند؛ بنابراین حتی ویرایش‌های غیرمفید نیز می‌توانند به‌راحتی توسط کاربران دیگر بازگردانده شوند. به بیان ساده: «با داشتن چشم‌های کافی، همهٔ خطاها سطحی هستند.» در همین راستا، لطفاً با ارائهٔ یک نقل‌قول یا استناد به یک منبع به ما کمک کنید تا بفهمیم چگونه به معنای یک واژه پی برده‌اید. هرچه اطلاعات دقیق‌تر باشد، بهتر است! == هنجارها و آداب == یکی از نکات مهمی که باید بدانید این است که ما برخی هنجارهای فرهنگی را از پروژهٔ خواهرمان، ویکی‌پدیا، وام گرفته‌ایم که باید به آنها احترام بگذارید: ما تلاش می‌کنیم بیهوده بحث و جدل نکنیم. اینجا یک انجمن مناظره نیست. پس از یک گفت‌وگوی متمدنانه و منطقی، تلاش می‌کنیم به یک اجماع گسترده برسیم تا برای خوانندگان آینده، خلاصه‌ای دقیق و بی‌طرفانه از تمام واقعیت‌های مرتبط ارائه کنیم. ما تلاش می‌کنیم مدخل‌ها را تا حد امکان بدون سوگیری ارائه کنیم؛ به این معنا که تعریف‌ها یا توضیحات، حتی دربارهٔ موضوعات بحث‌برانگیز، قرار نیست بستری برای تبلیغ یا موعظه به هر شکلی باشند. به خاطر داشته باشید که اینجا یک فرهنگ لغت است؛ بنابراین موارد زیادی وجود دارد که ویکی‌واژه نیست. اگر در هر مقطعی از تغییر دادن کار شخص دیگری احساس راحتی نمی‌کنید و می‌خواهید دربارهٔ یک مدخل یا صفحهٔ دیگر نظری (یا پرسش یا توضیحی) اضافه کنید، محل مناسب برای این کار صفحهٔ بحث آن است (بسته به پوستهٔ ظاهری مورد استفاده، روی زبانهٔ «بحث» در بالای صفحه یا بخش دیگری کلیک کنید). البته توجه داشته باشید که ما تلاش می‌کنیم بحث‌ها را بر بهبود این فرهنگ لغت متمرکز نگه داریم. ما اکیداً توصیه می‌کنیم یک حساب کاربری ایجاد کنید تا بتوانید با دیگران ارتباط و تعامل سازنده برقرار کنید، از راهنمایی و مربی‌گری بهره‌مند شوید، در شکل‌دهی به رویه‌های ویکی‌واژه، چه در بخشی از آن و چه در کل پروژه، مشارکت کنید و از همه مهم‌تر، به عضوی از جامعه تبدیل شوید! == برای اطلاعات بیشتر == اطلاعات مقدماتی و توضیحات بیشتری دربارهٔ هنجارهای جامعه را می‌توانید در صفحات زیر پیدا کنید: * [[ویکی‌واژه:سیاست‌ها و رهنمودها]] * [[w:ویکی‌پدیا:هنگام مجادلهٔ ویرایشی، خونسرد بمانید]] * [[ویکی‌واژه:پرسش‌های رایج]] * [[ویکی‌واژه:خودآموز]] * [[ویکی‌واژه:آموزش سریع]] برای سیاست‌ها، راهنماهای سبک یا دستورالعمل‌های بیشتر، به [[راهنما:درون‌مایه]] یا [[ویکی‌واژه:درگاه کاربران]] مراجعه کنید. t9gfpdoeuxfjr9wecg5fferkfoag1z0 ویکی‌واژه:خوش آمدید 4 219649 915579 2026-08-29T18:59:08Z WolfCapitan 41989 تغییرمسیر به [[ویکی‌واژه:تازه‌واردان، خوش آمدید]] 915579 wikitext text/x-wiki #تغییرمسیر [[ویکی‌واژه:تازه‌واردان، خوش آمدید]] do3kjlkv6xwnede0i26bsv9smf5z509 الگو:سرنوشته 10 219650 915583 2026-08-29T19:34:46Z WolfCapitan 41989 WolfCapitan صفحهٔ [[الگو:سرنوشته]] را به [[الگو:سرنویس]] منتقل کرد 915583 wikitext text/x-wiki #تغییر_مسیر [[الگو:سرنویس]] a81aalkrkjt7ba5g02g44u4653spbuk الگو:سرنویس/documentation 10 219651 915584 2026-08-29T19:42:25Z WolfCapitan 41989 صفحه‌ای تازه حاوی « <templatedata> { "params": {}, "description": "" } </templatedata> {{documentation subpage}} این الگو صرفاً متنی را برای قرار گرفتن در بالای هر صفحه، به‌منظور ابهام‌زدایی، قالب‌بندی می‌کند. <code><nowiki>{{سرنویس|این یک مثالی از سرنویس است.}}</nowiki></code> ایجاد می‌کند: {{سرنویس|این یک مثالی...» ایجاد کرد 915584 wikitext text/x-wiki <templatedata> { "params": {}, "description": "" } </templatedata> {{documentation subpage}} این الگو صرفاً متنی را برای قرار گرفتن در بالای هر صفحه، به‌منظور ابهام‌زدایی، قالب‌بندی می‌کند. <code><nowiki>{{سرنویس|این یک مثالی از سرنویس است.}}</nowiki></code> ایجاد می‌کند: {{سرنویس|این یک مثالی از سرنویس است.}} dezbq5kvsed09cn55o8ra82rmtql3kj 915585 915584 2026-08-29T19:43:23Z WolfCapitan 41989 WolfCapitan صفحهٔ [[الگو:سرنویس/documentation]] را به [[الگو:سرنویس/مستندات]] منتقل کرد 915584 wikitext text/x-wiki <templatedata> { "params": {}, "description": "" } </templatedata> {{documentation subpage}} این الگو صرفاً متنی را برای قرار گرفتن در بالای هر صفحه، به‌منظور ابهام‌زدایی، قالب‌بندی می‌کند. <code><nowiki>{{سرنویس|این یک مثالی از سرنویس است.}}</nowiki></code> ایجاد می‌کند: {{سرنویس|این یک مثالی از سرنویس است.}} dezbq5kvsed09cn55o8ra82rmtql3kj 915594 915585 2026-08-29T19:58:55Z WolfCapitan 41989 WolfCapitan صفحهٔ [[الگو:سرنویس/مستندات]] را به [[الگو:سرنویس/documentation]] که تغییرمسیر بود منتقل کرد 915584 wikitext text/x-wiki <templatedata> { "params": {}, "description": "" } </templatedata> {{documentation subpage}} این الگو صرفاً متنی را برای قرار گرفتن در بالای هر صفحه، به‌منظور ابهام‌زدایی، قالب‌بندی می‌کند. <code><nowiki>{{سرنویس|این یک مثالی از سرنویس است.}}</nowiki></code> ایجاد می‌کند: {{سرنویس|این یک مثالی از سرنویس است.}} dezbq5kvsed09cn55o8ra82rmtql3kj پودمان:مستندات 828 219654 915590 2026-08-29T19:49:09Z WolfCapitan 41989 WolfCapitan صفحهٔ [[پودمان:مستندات]] را به [[پودمان:documentation]] که تغییرمسیر بود منتقل کرد 915590 Scribunto text/plain return require [[پودمان:documentation]] 4ds52ss5sn2a7iw324c8pq4idw152j3 پودمان:documentation 828 219655 915592 2026-08-29T19:51:32Z WolfCapitan 41989 WolfCapitan صفحهٔ [[پودمان:documentation]] را به [[پودمان:documentations]] منتقل کرد 915592 Scribunto text/plain return require [[پودمان:documentations]] mcu9rpyevk23t5ixzelvodg1pdsg882 الگو:سرنویس/مستندات 10 219656 915595 2026-08-29T19:58:55Z WolfCapitan 41989 WolfCapitan صفحهٔ [[الگو:سرنویس/مستندات]] را به [[الگو:سرنویس/documentation]] که تغییرمسیر بود منتقل کرد 915595 wikitext text/x-wiki #تغییر_مسیر [[الگو:سرنویس/documentation]] c2urin1czjsdtxgjf5j2t06tfvp6l31 بحث کاربر:بنیامینیا 3 219657 915599 2026-08-29T21:03:48Z پیام به کاربر جدید 26498 افزودن [[الگو:خوشامدید|پیام خوش‌آمد]] به صفحهٔ بحث کاربر تازه 915599 wikitext text/x-wiki == خوش آمدید == '''به ویکی‌واژه خوش‌آمدید''' امیدوارم حضوری طولانی مدت در ویکی‌واژه داشته باشید و بتوانیم با همکاری یکدیگر در جهت پیشرفت هر چه بیشتر این وبگاه گام برداریم. ویکی‌واژه منتظر نوشتارهای خوب شماست.<br /> این پیوندها می‌تواند سودمند باشد: {| |- |[[پرونده:Noia 64 apps help index.png|30px|right|link=ویکی‌واژه:راهنما|راهنما]] || [[ویکی‌واژه:راهنما|راهنما]] برای راهنمایی گرفتن |- | [[پرونده:Nuvola apps ksig.png|30px|right|link=ویکی‌واژه:آموزش سریع|آموزش سریع]] || [[ویکی‌واژه:آموزش سریع|آموزش سریع]] |- |||[[راهنما:افزودن سرواژه نو|افزودن سرواژهٔ نو]] راهنمای افزودن سرواژهٔ نو |- |||[[ویکی‌واژه:شیوه‌نامه|شیوه‌نامه]] شیوه‌نامهٔ ویکی‌واژه |- |[[File:Bucket in the sand.svg|right|50px]]||[[ویکی‌واژه:صفحه تمرین|صفحه تمرین]] برای تمرین ویرایش |- | [[پرونده:Nuvola apps chat.png|30px|right|link=ویکی‌واژه:قهوه‌خانه|قهوه‌خانه]]||[[ویکی‌واژه:قهوه‌خانه|قهوه‌خانه]] برای گفتگو دربارهٔ مسائل فنی و سیاست‌ها. |- |[[پرونده:Farsi.svg|30px|right|link=ویکی‌واژه:فارسی‌نویسی|فارسی‌نویسی]]||[[ویکی‌واژه:فارسی‌نویسی|فارسی‌نویسی]] |- |[[پرونده:Nuvola apps agent.svg|30px|right|link=w:ویکی‌پدیا:خودآموز|آموزش پیشرفته]]||[[w:ویکی‌پدیا:خودآموز|آموزش پیشرفته]] |- | |- | |- |'''پروژه‌های دیگر بنیاد'''||[[پرونده:Wikipedia-logo.png|25px|link=w:صفحه_اصلی|ویکی‌پدیا]][[پرونده:HSWikimedia.svg|30px|link=m:Special:Recentchanges|فراویکی]] [[پرونده:HSCommons.svg|30px|link=commons:Special:Recentchanges|ویکی‌انبار]][[پرونده:HSWNews.svg|30px|link=n:ویژه:تغییرات اخیر|ویکی‌خبر]] [[پرونده:HSWBooks.svg|30px|link=b:صفحه_اصلی|ویکی‌نَسک]] [[پرونده:HSWVoyage.svg|30px|link=voy:صفحه_اصلی|ویکی‌سفر]][[پرونده:HSWQuote.svg|30px|link=q:صفحه_اصلی|ویکی‌گفتاورد]][[پرونده:HSWSource.svg|30px|link=s:صفحه_اصلی|ویکی‌نبشته]] |} امیدوارم از ''[[ویکی‌واژه:ویکی‌واژه نویسان|ویکی‌واژه نویس]]'' بودن لذت ببرید! لطفاً در صفحات گفتگو نام خود را با چهار علامت مدک امضا کنید، (~&#126;~~)، با این کار نام شما و تاریخ به عنوان امضا درج خواهد شد. در صورتی که سوال داشتید، به صفحهٔ [[ویکی‌واژه:قهوه‌خانه|قهوه‌خانه]] بروید، یا اینکه از من در صفحهٔ بحثم بپرسید. باز هم خوش آمد می‌گویم!&nbsp;شاد باشید! -- [[کاربر:The.shahab|The.shahab]] ([[بحث کاربر:The.shahab|بحث]]) ۷ ژوئیهٔ ۲۰۲۶، ساعت ۱۴:۴۳ (UTC) ۲۹ اوت ۲۰۲۶، ساعت ۲۱:۰۳ (UTC) hhmvcuil7m3nr6q4vszf40dkrpe9v6u