ویکیواژه
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:صفحه_اصلی|ویکینبشته]]
|}
امیدوارم از ''[[ویکیواژه:ویکیواژه نویسان|ویکیواژه نویس]]'' بودن لذت ببرید! لطفاً در صفحات گفتگو نام خود را با چهار علامت مدک امضا کنید، (~~~~)، با این کار نام شما و تاریخ به عنوان امضا درج خواهد شد. در صورتی که سوال داشتید، به صفحهٔ [[ویکیواژه:قهوهخانه|قهوهخانه]] بروید، یا اینکه از من در صفحهٔ بحثم بپرسید. باز هم خوش آمد میگویم!شاد باشید![[کاربر:فلورانس|فلورانس]] ([[بحث کاربر:فلورانس|بحث]]) ۱ سپتامبر ۲۰۱۵، ساعت ۱۰:۴۸ (UTC)
==گشت خودکار==
با سلام و درود، دسترسی گشت خودکار را به دسترسی های شما افزودم ، در صورتی که قصد گشت زنی و همچنین ماندگاری در ویکی واژه را نیز داشته باشید اطلاع دهید تا در اولین فرصت گشت زن و واگردان را نیز به دسترسی های شما اضافه کنم، ارادتمند --[[کاربر:فلورانس|فلورانس]] ([[بحث کاربر:فلورانس|بحث]]) ۵ سپتامبر ۲۰۱۵، ساعت ۱۰:۴۳ (UTC)
== جشنواره ویکیواژه ==
__NOTOC__
{{ویکیواژه:جشنواره ویکیواژه/بالا}}
{|cellspacing="0" cellpadding="0" style="margin-top:0.6em"
|-
|style="font-size:0.6em;line-height:0.6em"|
|-
| valign="top"|
{{نوار رنگ
|عنوان={{Color|white|'''ویکیواژه چه چیزی نیست'''}}
|تصویر=Crystal Project kedit.png
|رنگ=Dark Blue
|محتوا=
ویکیواژه یک [[واژهنامه]] برخط است، همچنین یک اجتماع برخط نیز هست، اگرچه این هدف آن نیست. بنابراین، چیزهایی وجود دارد که شامل ویکیواژه نمیشود.
#ویکیواژه یک [[دانشنامه]]، [[شجرهنامه]] یا یک [[اطلس]] نیست.
#ویکیواژه [[داور|داوری]] نیست که مشخص کند چه چیزی در زبان فارسی خوب، درست، قابل قبول، مناسب است.
#ویکیواژه یک [[گوی بلورین]] نیست. ویکیواژه سعی نمیکند که کلمههای آینده را پیشگویی کند. آن معمولا بر اصل اثباتپذیری در طی چندین سال استفاده، استوار است.
#ویکیواژه به مانند کاغذ نیست.
#ویکیواژه یک '''تریبون سخنرانی'''، '''اتاقهای گفتگو''' و یا یک '''فروم بحث''' نیست.
#ویکیواژه یک وبگاه آینه یا انباری برای پیوندها، تصاویر و پروندههای صوتی-تصویری نیست.
#ویکیواژه یک میزبان رایگان، وبنوشت، فراهمکنندهٔ فضای وب و یا وبگاه ارتباطات اجتماعی نیست.
#ویکیواژه میدان جنگ نیست. از هر کاربری انتظار میرود که با دیگران مؤدبانه، با آرامش و همراه با روح همکاری رفتار کند. به کسانی که نظرات ناموافقی با شما دارند توهین و اذیت نکنید و آنها را نترسانید. به جای این کار با هوشمندی به قضیه نگاه کنید و گفتگویی مؤدبانه را آغاز کنید. صرف اینکه رفتار یک کاربر نسبت به شما همراه با بیادبی، عدم حفظ آرامش، عدم همکاری، توهینآمیز، اذیتکننده و یا ترسبرانگیز است، عذر موجهی برای انتقام شما از او و به روش او تلقی نمیشود. در این گونه موارد یکی از این دو کار را انجام دهید: ۱- تنها به واقعیات مطرحشده پاسخ دهید و مطالب توهینآمیز آن را ندیده بگیرید. ۲- کل پیغام توهینآمیز را نادیده انگارید.
#ویکیواژه سانسور شده نیست.
#ویکیواژه [[تک زبانه]] نیست. ویکیواژه، واژهنامهای است در یک زبان نوشته میشود و تمام واژههای زبانها را پوشش میدهد.}}
|style="padding:4px;font-size:1px"|
|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:صفحه_اصلی|ویکینبشته]]
|}
امیدوارم از ''[[ویکیواژه:ویکیواژه نویسان|ویکیواژه نویس]]'' بودن لذت ببرید! لطفاً در صفحات گفتگو نام خود را با چهار علامت مدک امضا کنید، (~~~~)، با این کار نام شما و تاریخ به عنوان امضا درج خواهد شد. در صورتی که سوال داشتید، به صفحهٔ [[ویکیواژه:قهوهخانه|قهوهخانه]] بروید، یا اینکه از من در صفحهٔ بحثم بپرسید. باز هم خوش آمد میگویم! شاد باشید!
-- [[کاربر: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:صفحه_اصلی|ویکینبشته]]
|}
امیدوارم از ''[[ویکیواژه:ویکیواژه نویسان|ویکیواژه نویس]]'' بودن لذت ببرید! لطفاً در صفحات گفتگو نام خود را با چهار علامت مدک امضا کنید، (~~~~)، با این کار نام شما و تاریخ به عنوان امضا درج خواهد شد. در صورتی که سوال داشتید، به صفحهٔ [[ویکیواژه:قهوهخانه|قهوهخانه]] بروید، یا اینکه از من در صفحهٔ بحثم بپرسید. باز هم خوش آمد میگویم! شاد باشید!
-- [[کاربر: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:صفحه_اصلی|ویکینبشته]]
|}
امیدوارم از ''[[ویکیواژه:ویکیواژه نویسان|ویکیواژه نویس]]'' بودن لذت ببرید! لطفاً در صفحات گفتگو نام خود را با چهار علامت مدک امضا کنید، (~~~~)، با این کار نام شما و تاریخ به عنوان امضا درج خواهد شد. در صورتی که سوال داشتید، به صفحهٔ [[ویکیواژه:قهوهخانه|قهوهخانه]] بروید، یا اینکه از من در صفحهٔ بحثم بپرسید. باز هم خوش آمد میگویم! شاد باشید!
-- [[کاربر:The.shahab|The.shahab]] ([[بحث کاربر:The.shahab|بحث]]) ۷ ژوئیهٔ ۲۰۲۶، ساعت ۱۴:۴۳ (UTC) ۲۹ اوت ۲۰۲۶، ساعت ۲۱:۰۳ (UTC)
hhmvcuil7m3nr6q4vszf40dkrpe9v6u