Wiktionary thwiktionary https://th.wiktionary.org/wiki/%E0%B8%A7%E0%B8%B4%E0%B8%81%E0%B8%B4%E0%B8%9E%E0%B8%88%E0%B8%99%E0%B8%B2%E0%B8%99%E0%B8%B8%E0%B8%81%E0%B8%A3%E0%B8%A1:%E0%B8%AB%E0%B8%99%E0%B9%89%E0%B8%B2%E0%B8%AB%E0%B8%A5%E0%B8%B1%E0%B8%81 MediaWiki 1.47.0-wmf.6 case-sensitive สื่อ พิเศษ พูดคุย ผู้ใช้ คุยกับผู้ใช้ วิกิพจนานุกรม คุยเรื่องวิกิพจนานุกรม ไฟล์ คุยเรื่องไฟล์ มีเดียวิกิ คุยเรื่องมีเดียวิกิ แม่แบบ คุยเรื่องแม่แบบ วิธีใช้ คุยเรื่องวิธีใช้ หมวดหมู่ คุยเรื่องหมวดหมู่ ภาคผนวก คุยเรื่องภาคผนวก ดัชนี คุยเรื่องดัชนี สัมผัส คุยเรื่องสัมผัส อรรถาภิธาน คุยเรื่องอรรถาภิธาน TimedText TimedText talk มอดูล คุยเรื่องมอดูล Event Event talk ၽႂ် 0 9230 5724864 1893576 2026-06-16T09:32:58Z Alifshinobi 397 /* รากศัพท์ */ 5724864 wikitext text/x-wiki {{also/auto}} == ภาษาไทใหญ่ == === รากศัพท์ === ร่วมเชื้อสายกับ{{cog|nod|ᨹᩲ}}, {{cog|tts|ใผ}} หรือ {{m|tts|ไผ}}, {{cog|lo|ໃຜ}}, {{cog|khb|ᦺᦕ}}, {{cog|blt|ꪻꪠ}}, {{cog|tdd|ᥚᥬᥴ}}, {{cog|aio|ၸၞ်}}, {{cog|aho|𑜇𑜧}} หรือ {{m|aho|𑜇𑜨𑜧}} === การออกเสียง === {{shn-pron}} === คำสรรพนาม === {{shn-pronoun}} # [[ใคร]] ryorquwaprxkfylv0ffg2htwvpzlay9 ဝႆႉ 0 9275 5724800 5724775 2026-06-15T21:00:43Z Alifshinobi 397 /* รากศัพท์ */ 5724800 wikitext text/x-wiki {{also/auto}} == ภาษาไทใหญ่ == === รากศัพท์ === {{inh+|shn|tai-swe-pro|*waj/aɰꟲ²}}; ร่วมเชื้อสายกับ{{cog|th|ไว้}}, {{cog|nod|ᩅᩱ᩶,ᩅᩱ᩠᩶ᨿ}}, {{cog|lo|ໄວ້}}, {{cog|khb|ᦺᦞᧉ}}, {{cog|blt|ꪼꪫ꫁}}, {{cog|twh|ꪼꪫꫂ}}, {{cog|tdd|ᥝᥭᥳ}}, {{cog|aho|𑜈𑜩,𑜚𑜩,𑜉𑜩}} === การออกเสียง === {{shn-pron}} * ไว่ (โทสั้น) === คำกริยา === {{shn-verb}} # [[ไว้]] (เก็บ) sa1wjm00ytqia06ypsjsqql341ajkjw ใบ 0 10198 5724866 5029618 2026-06-16T09:35:38Z Alifshinobi 397 /* รากศัพท์ */ 5724866 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === รูปแบบอื่น === * {{alt|th|ไบ||เลิกใช้}} === รากศัพท์ === {{inh+|th|tai-pro|*ɓaɰᴬ}}; ร่วมเชื้อสายกับ{{cog|lo|ໃບ}}, {{cog|nod|ᨷᩱ}}, {{cog|khb|ᦺᦢ}}, {{cog|blt|ꪻꪚ}}, {{cog|twh|ꪻꪚ}}, {{cog|shn|မႂ်}} หรือ {{m|shn|ဝႂ်}}, {{cog|aho|𑜈𑜧}}, {{m|aho|𑜈𑜨𑜧}}, {{m|aho|𑜉𑜧}}, หรือ {{m|aho|𑜉𑜨𑜧}}, {{cog|za|mbaw}}, {{cog|skb|เบ๋อ}}; เทียบ{{cog|qfa-onb-pro|*ɓəːᴬ²}}, {{cog|qfa-lic-pro|*ɓɯː}} === การออกเสียง === {{th-pron}} === คำนาม === {{th-noun|*}} # [[ส่วน]][[ของ]][[พืช]][[ที่]][[ติด]][[อยู่]][[กับ]][[กิ่ง]][[หรือ]][[ลำต้น]] [[โดย]][[มาก]][[มี]][[ลักษณะ]][[เป็น]][[แผ่น]][[แบน]] ๆ [[รูปร่าง]][[ต่าง ๆ]] [[กัน]] มี[[ก้าน]]ใบหรือ[[ไม่]]มี[[ก็]][[ได้]] [[มัก]]มี[[สี]][[เขียว]] # [[สิ่ง]]ที่[[ทำ]][[ด้วย]][[ผืน]][[ผ้า]][[เป็นต้น]] [[สำหรับ]][[ขึง]]ที่[[เสา]][[กระโดง]][[เพื่อ]][[รับ]][[ลม]] # แผ่น[[เอกสาร]]หรือ[[หนังสือ]][[สำคัญ]]ต่าง ๆ #: {{ux|th|ใบขับขี่}} #: {{ux|th|ใบทะเบียน}} # [[เรียก]]ของที่เป็นแผ่น ๆ #: {{ux|th|ใบหนังสือ}} #: {{ux|th|ใบมีด}} #: {{ux|th|ใบหู}} #: {{ux|th|ทองใบ}} ==== คำแปลภาษาอื่น ==== {{trans-see|ส่วนของพืชที่ติดอยู่กับกิ่งหรือลำต้น|ใบไม้}} === คำลักษณนาม === {{th-cls}} # [[ใช้]]เรียก[[ผลไม้]] [[ภาชนะ]] [[เครื่องใช้]][[บาง]][[อย่าง]] หรือแผ่นเอกสาร #: {{ux|th|มะม่วง 2 ใบ}} #: {{ux|th|ถ้วย 3 ใบ}} #: {{ux|th|ตู้ 4 ใบ}} #: {{ux|th|ใบขับขี่ 5 ใบ}} == ภาษาคำเมือง == === คำนาม === {{nod-noun}} # {{alternative form of|nod|ᨷᩱ}} boq6mavupsxh0863qk0yuzjwvceq5q6 shirt 0 13808 5724860 1256741 2026-06-16T08:34:05Z Apisite 10648 5724860 wikitext text/x-wiki == ภาษาอังกฤษ == === คำนาม === {{en-noun}} # [[เสื้อ]] mq9tpeo6onx3znm86inw8lcdyontogx เที่ยง 0 17776 5724867 2442742 2026-06-16T10:58:07Z OctraBot 3198 /* รากศัพท์ */ 5724867 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === รากศัพท์ === จาก{{der|th|ltc|-}} {{ltc-l|定|id=1}}; ร่วมเชื้อสายกับ{{cog|nod|ᨴ᩠ᨿ᩵ᨦ}}, {{cog|kkh|ᨴ᩠ᨿ᩵ᨦ}}, {{cog|lo|ທ່ຽງ}}, {{cog|khb|ᦵᦑᧂᧈ}}, {{cog|shn|တဵင်ႈ}}, {{cog|aho|𑜄𑜢𑜂𑜫}}, {{cog|zhn|dingh}} หรือ {{m|zhn|dingq}}, {{cog|zzj|tingq}}, {{cog|skb|เถี้ยง}} === การออกเสียง === {{th-pron}} === คำคุณศัพท์ === {{th-adj}} # [[ตรง]] #: {{ux|th|กิโลนี้ไม่เที่ยง}} # [[แน่นอน]] #: {{ux|th|สังขารไม่เที่ยง}} # [[ที่]][[สะท้อน]]ตรง[[กับ]][[ความ]][[เป็น]][[จริง]] [[ใน]][[คำ]][[ว่า]] [[กระจก]]เที่ยง # [[แน่]], [[แม่นยำ]], ในคำว่า [[มือ]]เที่ยง === คำกริยาวิเศษณ์ === {{th-adv}} # ตรง #: {{ux|th|นาฬิกาเดินเที่ยง}} # แน่นอน ==== ลูกคำ ==== {{col4|th|เที่ยงตรง|เที่ยงธรรม|เที่ยงแท้|มือเที่ยง}} === คำนาม === {{th-noun}} # [[เรียก]][[เวลา]][[กึ่งกลาง]][[ของ]][[กลางวัน]]ที่[[พระอาทิตย์]][[อยู่]]ตรง[[ศีรษะ]]ว่า เที่ยง [[หรือ]] [[เที่ยงวัน]] ตรงกับ 12 [[นาฬิกา]] # เรียกเวลากึ่งกลางของ[[กลางคืน]]ว่า [[เที่ยงคืน]] ตรงกับ 24 นาฬิกา หรือ 0 นาฬิกา ==== ลูกคำ ==== {{col4|th|เที่ยง ๆ|เที่ยงคืน|เที่ยงตรง|เที่ยงวัน|ไกลปืนเที่ยง|อาหารเที่ยง|มื้อเที่ยง|ข้าวเที่ยง|บานเที่ยง|เอื้องศรีเที่ยง|เที่ยงสุริยะ}} {{topics|th|เวลา}} 3m6dbtwv7yny21zbtkrr2oofcuzbbnt 5724872 5724867 2026-06-16T11:03:10Z OctraBot 3198 /* รากศัพท์ */ 5724872 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === รากศัพท์ === {{inh+|th|tai-swe-pro|*diəŋᴮ⁴||เที่ยงวัน, เที่ยงคืน}} (Jonsson, 1991), จาก{{der|th|ltc|-}} {{ltc-l|定|id=1}}; ร่วมเชื้อสายกับ{{cog|nod|ᨴ᩠ᨿ᩵ᨦ}}, {{cog|kkh|ᨴ᩠ᨿ᩵ᨦ}}, {{cog|lo|ທ່ຽງ}}, {{cog|khb|ᦵᦑᧂᧈ}}, {{cog|shn|တဵင်ႈ}}, {{cog|aho|𑜄𑜢𑜂𑜫}}, {{cog|zhn|dingh}} หรือ {{m|zhn|dingq}}, {{cog|zzj|tingq}}, {{cog|skb|เถี้ยง}} === การออกเสียง === {{th-pron}} === คำคุณศัพท์ === {{th-adj}} # [[ตรง]] #: {{ux|th|กิโลนี้ไม่เที่ยง}} # [[แน่นอน]] #: {{ux|th|สังขารไม่เที่ยง}} # [[ที่]][[สะท้อน]]ตรง[[กับ]][[ความ]][[เป็น]][[จริง]] [[ใน]][[คำ]][[ว่า]] [[กระจก]]เที่ยง # [[แน่]], [[แม่นยำ]], ในคำว่า [[มือ]]เที่ยง === คำกริยาวิเศษณ์ === {{th-adv}} # ตรง #: {{ux|th|นาฬิกาเดินเที่ยง}} # แน่นอน ==== ลูกคำ ==== {{col4|th|เที่ยงตรง|เที่ยงธรรม|เที่ยงแท้|มือเที่ยง}} === คำนาม === {{th-noun}} # [[เรียก]][[เวลา]][[กึ่งกลาง]][[ของ]][[กลางวัน]]ที่[[พระอาทิตย์]][[อยู่]]ตรง[[ศีรษะ]]ว่า เที่ยง [[หรือ]] [[เที่ยงวัน]] ตรงกับ 12 [[นาฬิกา]] # เรียกเวลากึ่งกลางของ[[กลางคืน]]ว่า [[เที่ยงคืน]] ตรงกับ 24 นาฬิกา หรือ 0 นาฬิกา ==== ลูกคำ ==== {{col4|th|เที่ยง ๆ|เที่ยงคืน|เที่ยงตรง|เที่ยงวัน|ไกลปืนเที่ยง|อาหารเที่ยง|มื้อเที่ยง|ข้าวเที่ยง|บานเที่ยง|เอื้องศรีเที่ยง|เที่ยงสุริยะ}} {{topics|th|เวลา}} c1uqbjk96001xy0o4dniw4th9k744d9 5724873 5724872 2026-06-16T11:03:19Z OctraBot 3198 /* รากศัพท์ */ 5724873 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === รากศัพท์ === {{inh+|th|tai-swe-pro|*diəŋᴮ⁴||เที่ยงวัน, เที่ยงคืน}} (Jonsson, 1991), จาก{{der|th|ltc|-}} {{ltc-l|定|id=1}}; ร่วมเชื้อสายกับ{{cog|nod|ᨴ᩠ᨿ᩵ᨦ}}, {{cog|kkh|ᨴ᩠ᨿ᩵ᨦ}}, {{cog|lo|ທ່ຽງ}}, {{cog|khb|ᦵᦑᧂᧈ}}, {{cog|shn|တဵင်ႈ}}, {{cog|aho|𑜄𑜢𑜂𑜫}}, {{cog|zhn|dingh}} หรือ {{m|zhn|dingq}}, {{cog|zzj|tingq}}, {{cog|skb|เถี้ยง}} === การออกเสียง === {{th-pron}} === คำคุณศัพท์ === {{th-adj}} # [[ตรง]] #: {{ux|th|กิโลนี้ไม่เที่ยง}} # [[แน่นอน]] #: {{ux|th|สังขารไม่เที่ยง}} # [[ที่]][[สะท้อน]]ตรง[[กับ]][[ความ]][[เป็น]][[จริง]] [[ใน]][[คำ]][[ว่า]] [[กระจก]]เที่ยง # [[แน่]], [[แม่นยำ]], ในคำว่า [[มือ]]เที่ยง === คำกริยาวิเศษณ์ === {{th-adv}} # ตรง #: {{ux|th|นาฬิกาเดินเที่ยง}} # แน่นอน ==== ลูกคำ ==== {{col4|th|เที่ยงตรง|เที่ยงธรรม|เที่ยงแท้|มือเที่ยง}} === คำนาม === {{th-noun}} # [[เรียก]][[เวลา]][[กึ่งกลาง]][[ของ]][[กลางวัน]]ที่[[พระอาทิตย์]][[อยู่]]ตรง[[ศีรษะ]]ว่า เที่ยง [[หรือ]] [[เที่ยงวัน]] ตรงกับ 12 [[นาฬิกา]] # เรียกเวลากึ่งกลางของ[[กลางคืน]]ว่า [[เที่ยงคืน]] ตรงกับ 24 นาฬิกา หรือ 0 นาฬิกา ==== ลูกคำ ==== {{col4|th|เที่ยง ๆ|เที่ยงคืน|เที่ยงตรง|เที่ยงวัน|ไกลปืนเที่ยง|อาหารเที่ยง|มื้อเที่ยง|ข้าวเที่ยง|บานเที่ยง|เอื้องศรีเที่ยง|เที่ยงสุริยะ}} {{topics|th|เวลา}} c5amqoiou5tdp5huv9akrrs0s0p1uvz ไท 0 17849 5724804 5721566 2026-06-16T01:19:58Z OctraBot 3198 /* รากศัพท์ 1 */ 5724804 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === รากศัพท์ 1 === {{inh+|th|tai-swe-pro|*dajᴬ²}}, จาก{{inh|th|tai-pro|*ɗwɤːjᴬ||อิสระ}}; ร่วมเชื้อสายกับ{{cog|tts|ไท}}, {{cog|nod|ᨴᩱ}}, {{cog|lo|ໄທ,ໄຕ}} ที่เลิกใช้แล้ว, {{cog|nyw|ไท}}, {{cog|khb|ᦺᦑ}}, {{cog|blt|ꪼꪕ}}, {{cog|shn|တႆး}}, {{cog|tdd|ᥖᥭᥰ}}, {{cog|aio|တႝ}}, {{cog|phk|တႝ}}, {{cog|aho|𑜄𑜩}} ซึ่งเมื่อใช้เดี่ยว ๆ จะหมายถึงกลุ่มชาติพันธุ์ไทนั้น ๆ <!--Don't add ꪼꪗ here because it is loanword of ไทย--> ==== รูปแบบอื่น ==== * {{alt|th|ไต||พบได้ยาก}} ==== การออกเสียง ==== {{th-pron}} ==== คำนาม ==== {{th-noun}} # ชนเชื้อชาติไท มีหลาย[[สาขา]]ด้วยกัน เช่น ไทใหญ่ ไทดำ ไทขาว # {{lb|th|โบราณ}} [[ไทย]], [[สยาม]] #: {{ux|th|ปี[[โถะ]][[หน]]ไท[[กัด]][[เหมา]]}} (ประชุมจารึกสยาม ภาคที่ 1 จารึกสุโขทัย) # ความมี[[อิสระ]]ในตัว, ความไม่เป็น[[ทาส]] ===== ลูกคำ ===== {{col4|th |ไทดำ |ไทใต้คง |ไทน้อย |ไทพวน |ไทยวน |ไทลื้อ |ไทใหญ่ |ไทหลวง |ผู้ไท }} ==== ดูเพิ่ม ==== {{col4|th |ไทย }} === รากศัพท์ 2 === แผลงมาจาก {{m|th|ไท้}} ==== การออกเสียง ==== {{th-pron}} ==== คำนาม ==== {{th-noun}} # ผู้เป็นใหญ่ #: {{ux|th|ท้าวไท}} === รากศัพท์ 3 === {{bor+|th|en|tie}} === การออกเสียง === {{th-pron|ไท|ไท้}} === คำนาม === {{th-noun}} # [[เน็กไท]] ผ้าที่ใช้ผูกคอเสื้อ[[เชิ้ต]] มักผูกเป็นปมรูปสามเหลี่ยมให้มีชายยาวลงมาประมาณเอว #: {{ux|th|พอเขาผูก'''ไท'''แล้วดูดีขึ้นเป็นกอง}} ===== คำพ้องความ ===== {{col4|th |เน็กไท }} {{topics|th|ไทย}} == ภาษาคำเมือง == === คำวิสามานยนาม === {{nod-proper noun}} # {{alternative form of|nod|ᨴᩱ}} === คำนาม === {{nod-noun}} # {{alternative form of|nod|ᨴᩱ}} {{topics|nod|ไทย}} == ภาษาญ้อ == === รูปแบบอื่น === * {{alt|nyw|𞛍𞛮|sc=Tayo}} * {{alt|nyw|ไต}} === การออกเสียง === * {{IPA|nyw|/tʰaj˨˨/|a=สว่างแดนดิน}} === คำนาม === {{nyw-noun}} # [[ไท#ภาษาไทย|ไท]] == ภาษาอีสาน == === การออกเสียง === * {{IPA|tts|/tʰaj˧˦˩/|a=ขอนแก่น}} * {{คำอ่านไทย|ไท่<sup>สูง-ตก}} (ประมาณ) === คำนาม === {{tts-noun}} # [[ไท#ภาษาไทย|ไท]] n8t715vs4vupotd7suskfuu8vynwn5j 5724805 5724804 2026-06-16T01:21:53Z OctraBot 3198 /* รากศัพท์ 1 */ 5724805 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === รากศัพท์ 1 === {{inh+|th|tai-swe-pro|*dajᴬ²}}, จาก{{inh|th|tai-pro|*ɗwɤːjᴬ||อิสระ}}; ร่วมเชื้อสายกับ{{cog|tts|ไท}}, {{cog|nod|ᨴᩱ}}, {{cog|lo|ໄທ,ໄຕ<q:เลิกใช้>}}, {{cog|nyw|ไท}}, {{cog|khb|ᦺᦑ}}, {{cog|blt|ꪼꪕ}}, {{cog|shn|တႆး}}, {{cog|tdd|ᥖᥭᥰ}}, {{cog|aio|တႝ}}, {{cog|phk|တႝ}}, {{cog|aho|𑜄𑜩}} ซึ่งเมื่อใช้เดี่ยว ๆ จะหมายถึงกลุ่มชาติพันธุ์ไทนั้น ๆ <!--Don't add ꪼꪗ here because it is loanword of ไทย--> ==== รูปแบบอื่น ==== * {{alt|th|ไต||พบได้ยาก}} ==== การออกเสียง ==== {{th-pron}} ==== คำนาม ==== {{th-noun}} # ชนเชื้อชาติไท มีหลาย[[สาขา]]ด้วยกัน เช่น ไทใหญ่ ไทดำ ไทขาว # {{lb|th|โบราณ}} [[ไทย]], [[สยาม]] #: {{ux|th|ปี[[โถะ]][[หน]]ไท[[กัด]][[เหมา]]}} (ประชุมจารึกสยาม ภาคที่ 1 จารึกสุโขทัย) # ความมี[[อิสระ]]ในตัว, ความไม่เป็น[[ทาส]] ===== ลูกคำ ===== {{col4|th |ไทดำ |ไทใต้คง |ไทน้อย |ไทพวน |ไทยวน |ไทลื้อ |ไทใหญ่ |ไทหลวง |ผู้ไท }} ==== ดูเพิ่ม ==== {{col4|th |ไทย }} === รากศัพท์ 2 === แผลงมาจาก {{m|th|ไท้}} ==== การออกเสียง ==== {{th-pron}} ==== คำนาม ==== {{th-noun}} # ผู้เป็นใหญ่ #: {{ux|th|ท้าวไท}} === รากศัพท์ 3 === {{bor+|th|en|tie}} === การออกเสียง === {{th-pron|ไท|ไท้}} === คำนาม === {{th-noun}} # [[เน็กไท]] ผ้าที่ใช้ผูกคอเสื้อ[[เชิ้ต]] มักผูกเป็นปมรูปสามเหลี่ยมให้มีชายยาวลงมาประมาณเอว #: {{ux|th|พอเขาผูก'''ไท'''แล้วดูดีขึ้นเป็นกอง}} ===== คำพ้องความ ===== {{col4|th |เน็กไท }} {{topics|th|ไทย}} == ภาษาคำเมือง == === คำวิสามานยนาม === {{nod-proper noun}} # {{alternative form of|nod|ᨴᩱ}} === คำนาม === {{nod-noun}} # {{alternative form of|nod|ᨴᩱ}} {{topics|nod|ไทย}} == ภาษาญ้อ == === รูปแบบอื่น === * {{alt|nyw|𞛍𞛮|sc=Tayo}} * {{alt|nyw|ไต}} === การออกเสียง === * {{IPA|nyw|/tʰaj˨˨/|a=สว่างแดนดิน}} === คำนาม === {{nyw-noun}} # [[ไท#ภาษาไทย|ไท]] == ภาษาอีสาน == === การออกเสียง === * {{IPA|tts|/tʰaj˧˦˩/|a=ขอนแก่น}} * {{คำอ่านไทย|ไท่<sup>สูง-ตก}} (ประมาณ) === คำนาม === {{tts-noun}} # [[ไท#ภาษาไทย|ไท]] j2b8x54b5ijvfy1yxl5yivjr7nmjjlj 5724806 5724805 2026-06-16T01:24:01Z OctraBot 3198 /* ภาษาคำเมือง */ 5724806 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === รากศัพท์ 1 === {{inh+|th|tai-swe-pro|*dajᴬ²}}, จาก{{inh|th|tai-pro|*ɗwɤːjᴬ||อิสระ}}; ร่วมเชื้อสายกับ{{cog|tts|ไท}}, {{cog|nod|ᨴᩱ}}, {{cog|lo|ໄທ,ໄຕ<q:เลิกใช้>}}, {{cog|nyw|ไท}}, {{cog|khb|ᦺᦑ}}, {{cog|blt|ꪼꪕ}}, {{cog|shn|တႆး}}, {{cog|tdd|ᥖᥭᥰ}}, {{cog|aio|တႝ}}, {{cog|phk|တႝ}}, {{cog|aho|𑜄𑜩}} ซึ่งเมื่อใช้เดี่ยว ๆ จะหมายถึงกลุ่มชาติพันธุ์ไทนั้น ๆ <!--Don't add ꪼꪗ here because it is loanword of ไทย--> ==== รูปแบบอื่น ==== * {{alt|th|ไต||พบได้ยาก}} ==== การออกเสียง ==== {{th-pron}} ==== คำนาม ==== {{th-noun}} # ชนเชื้อชาติไท มีหลาย[[สาขา]]ด้วยกัน เช่น ไทใหญ่ ไทดำ ไทขาว # {{lb|th|โบราณ}} [[ไทย]], [[สยาม]] #: {{ux|th|ปี[[โถะ]][[หน]]ไท[[กัด]][[เหมา]]}} (ประชุมจารึกสยาม ภาคที่ 1 จารึกสุโขทัย) # ความมี[[อิสระ]]ในตัว, ความไม่เป็น[[ทาส]] ===== ลูกคำ ===== {{col4|th |ไทดำ |ไทใต้คง |ไทน้อย |ไทพวน |ไทยวน |ไทลื้อ |ไทใหญ่ |ไทหลวง |ผู้ไท }} ==== ดูเพิ่ม ==== {{col4|th |ไทย }} === รากศัพท์ 2 === แผลงมาจาก {{m|th|ไท้}} ==== การออกเสียง ==== {{th-pron}} ==== คำนาม ==== {{th-noun}} # ผู้เป็นใหญ่ #: {{ux|th|ท้าวไท}} === รากศัพท์ 3 === {{bor+|th|en|tie}} === การออกเสียง === {{th-pron|ไท|ไท้}} === คำนาม === {{th-noun}} # [[เน็กไท]] ผ้าที่ใช้ผูกคอเสื้อ[[เชิ้ต]] มักผูกเป็นปมรูปสามเหลี่ยมให้มีชายยาวลงมาประมาณเอว #: {{ux|th|พอเขาผูก'''ไท'''แล้วดูดีขึ้นเป็นกอง}} ===== คำพ้องความ ===== {{col4|th |เน็กไท }} {{topics|th|ไทย}} == ภาษาคำเมือง == === คำวิสามานยนาม === {{nod-proper noun}} # {{alternative spelling of|nod|ᨴᩱ}} === คำนาม === {{nod-noun}} # {{alternative spelling of|nod|ᨴᩱ}} {{topics|nod|ไทย}} == ภาษาญ้อ == === รูปแบบอื่น === * {{alt|nyw|𞛍𞛮|sc=Tayo}} * {{alt|nyw|ไต}} === การออกเสียง === * {{IPA|nyw|/tʰaj˨˨/|a=สว่างแดนดิน}} === คำนาม === {{nyw-noun}} # [[ไท#ภาษาไทย|ไท]] == ภาษาอีสาน == === การออกเสียง === * {{IPA|tts|/tʰaj˧˦˩/|a=ขอนแก่น}} * {{คำอ่านไทย|ไท่<sup>สูง-ตก}} (ประมาณ) === คำนาม === {{tts-noun}} # [[ไท#ภาษาไทย|ไท]] b8ah1uim10qqbexs29yg0bza0en2eng 5724814 5724806 2026-06-16T01:43:51Z OctraBot 3198 /* ภาษาไทย */ 5724814 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === การออกเสียง === {{th-pron|ไท|ไท้:เพิ่มเติมสำหรับ<br>รากศัพท์ 3}} === รากศัพท์ 1 === {{inh+|th|tai-swe-pro|*dajᴬ²}}, จาก{{inh|th|tai-pro|*ɗwɤːjᴬ||อิสระ}}; ร่วมเชื้อสายกับ{{cog|tts|ไท}}, {{cog|nod|ᨴᩱ}}, {{cog|lo|ໄທ,ໄຕ<q:เลิกใช้>}}, {{cog|nyw|ไท}}, {{cog|khb|ᦺᦑ}}, {{cog|blt|ꪼꪕ}}, {{cog|shn|တႆး}}, {{cog|tdd|ᥖᥭᥰ}}, {{cog|aio|တႝ}}, {{cog|phk|တႝ}}, {{cog|aho|𑜄𑜩}} ซึ่งเมื่อใช้เดี่ยว ๆ จะหมายถึงกลุ่มชาติพันธุ์ไทนั้น ๆ <!--Don't add ꪼꪗ here because it is loanword of ไทย--> ==== รูปแบบอื่น ==== * {{alt|th|ไต||พบได้ยาก}} ==== คำนาม ==== {{th-noun}} # ชนเชื้อชาติไท มีหลาย[[สาขา]]ด้วยกัน เช่น ไทใหญ่ ไทดำ ไทขาว # {{lb|th|โบราณ}} [[ไทย]], [[สยาม]] #: {{ux|th|ปี[[โถะ]][[หน]]ไท[[กัด]][[เหมา]]}} (ประชุมจารึกสยาม ภาคที่ 1 จารึกสุโขทัย) # ความมี[[อิสระ]]ในตัว, ความไม่เป็น[[ทาส]] ===== ลูกคำ ===== {{col4|th |ไทดำ |ไทใต้คง |ไทน้อย |ไทพวน |ไทยวน |ไทลื้อ |ไทใหญ่ |ไทหลวง |ผู้ไท }} ==== ดูเพิ่ม ==== {{col4|th |ไทย }} === รากศัพท์ 2 === แผลงมาจาก {{m|th|ไท้}} ==== คำนาม ==== {{th-noun}} # ผู้เป็นใหญ่ #: {{ux|th|ท้าวไท}} === รากศัพท์ 3 === {{bor+|th|en|tie}} === คำนาม === {{th-noun}} # [[เน็กไท]] ผ้าที่ใช้ผูกคอเสื้อ[[เชิ้ต]] มักผูกเป็นปมรูปสามเหลี่ยมให้มีชายยาวลงมาประมาณเอว #: {{ux|th|พอเขาผูก'''ไท'''แล้วดูดีขึ้นเป็นกอง}} ===== คำพ้องความ ===== {{col4|th |เน็กไท }} {{topics|th|ไทย}} == ภาษาคำเมือง == === คำวิสามานยนาม === {{nod-proper noun}} # {{alternative spelling of|nod|ᨴᩱ}} === คำนาม === {{nod-noun}} # {{alternative spelling of|nod|ᨴᩱ}} {{topics|nod|ไทย}} == ภาษาญ้อ == === รูปแบบอื่น === * {{alt|nyw|𞛍𞛮|sc=Tayo}} * {{alt|nyw|ไต}} === การออกเสียง === * {{IPA|nyw|/tʰaj˨˨/|a=สว่างแดนดิน}} === คำนาม === {{nyw-noun}} # [[ไท#ภาษาไทย|ไท]] == ภาษาอีสาน == === การออกเสียง === * {{IPA|tts|/tʰaj˧˦˩/|a=ขอนแก่น}} * {{คำอ่านไทย|ไท่<sup>สูง-ตก}} (ประมาณ) === คำนาม === {{tts-noun}} # [[ไท#ภาษาไทย|ไท]] i9c8eomqiigvl36ke95kt4gddhsze5g 5724815 5724814 2026-06-16T01:48:39Z OctraBot 3198 /* คำนาม */ 5724815 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === การออกเสียง === {{th-pron|ไท|ไท้:เพิ่มเติมสำหรับ<br>รากศัพท์ 3}} === รากศัพท์ 1 === {{inh+|th|tai-swe-pro|*dajᴬ²}}, จาก{{inh|th|tai-pro|*ɗwɤːjᴬ||อิสระ}}; ร่วมเชื้อสายกับ{{cog|tts|ไท}}, {{cog|nod|ᨴᩱ}}, {{cog|lo|ໄທ,ໄຕ<q:เลิกใช้>}}, {{cog|nyw|ไท}}, {{cog|khb|ᦺᦑ}}, {{cog|blt|ꪼꪕ}}, {{cog|shn|တႆး}}, {{cog|tdd|ᥖᥭᥰ}}, {{cog|aio|တႝ}}, {{cog|phk|တႝ}}, {{cog|aho|𑜄𑜩}} ซึ่งเมื่อใช้เดี่ยว ๆ จะหมายถึงกลุ่มชาติพันธุ์ไทนั้น ๆ <!--Don't add ꪼꪗ here because it is loanword of ไทย--> ==== รูปแบบอื่น ==== * {{alt|th|ไต||พบได้ยาก}} ==== คำนาม ==== {{th-noun}} # ชนเชื้อชาติไท มีหลาย[[สาขา]]ด้วยกัน เช่น ไทใหญ่ ไทดำ ไทขาว # {{lb|th|โบราณ}} [[ไทย]], [[สยาม]] #: {{ux|th|ปี[[โถะ]][[หน]]ไท[[กัด]][[เหมา]]}} (ประชุมจารึกสยาม ภาคที่ 1 จารึกสุโขทัย) # ความมี[[อิสระ]]ในตัว, ความไม่เป็น[[ทาส]] ===== ลูกคำ ===== {{col4|th |ไทดำ |ไทใต้คง |ไทน้อย |ไทพวน |ไทยวน |ไทลื้อ |ไทใหญ่ |ไทหลวง |ผู้ไท }} ==== ดูเพิ่ม ==== {{col4|th |ไทย }} === รากศัพท์ 2 === แผลงมาจาก {{m|th|ไท้}} ==== คำนาม ==== {{th-noun}} # {{lb|th|กลอน}} ผู้เป็นใหญ่ #: {{ux|th|ท้าวไท}} === รากศัพท์ 3 === {{bor+|th|en|tie}} === คำนาม === {{th-noun}} # [[เน็กไท]] ผ้าที่ใช้ผูกคอเสื้อ[[เชิ้ต]] มักผูกเป็นปมรูปสามเหลี่ยมให้มีชายยาวลงมาประมาณเอว #: {{ux|th|พอเขาผูก'''ไท'''แล้วดูดีขึ้นเป็นกอง}} ===== คำพ้องความ ===== {{col4|th |เน็กไท }} {{topics|th|ไทย}} == ภาษาคำเมือง == === คำวิสามานยนาม === {{nod-proper noun}} # {{alternative spelling of|nod|ᨴᩱ}} === คำนาม === {{nod-noun}} # {{alternative spelling of|nod|ᨴᩱ}} {{topics|nod|ไทย}} == ภาษาญ้อ == === รูปแบบอื่น === * {{alt|nyw|𞛍𞛮|sc=Tayo}} * {{alt|nyw|ไต}} === การออกเสียง === * {{IPA|nyw|/tʰaj˨˨/|a=สว่างแดนดิน}} === คำนาม === {{nyw-noun}} # [[ไท#ภาษาไทย|ไท]] == ภาษาอีสาน == === การออกเสียง === * {{IPA|tts|/tʰaj˧˦˩/|a=ขอนแก่น}} * {{คำอ่านไทย|ไท่<sup>สูง-ตก}} (ประมาณ) === คำนาม === {{tts-noun}} # [[ไท#ภาษาไทย|ไท]] bhodajk1so0wtrlbkd5mj7eb5pn96hh 5724816 5724815 2026-06-16T01:52:12Z OctraBot 3198 /* การออกเสียง */ 5724816 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === การออกเสียง === {{th-pron|ไท|ไท้:เพิ่มเติม<br>สำหรับรากศัพท์ 3}} === รากศัพท์ 1 === {{inh+|th|tai-swe-pro|*dajᴬ²}}, จาก{{inh|th|tai-pro|*ɗwɤːjᴬ||อิสระ}}; ร่วมเชื้อสายกับ{{cog|tts|ไท}}, {{cog|nod|ᨴᩱ}}, {{cog|lo|ໄທ,ໄຕ<q:เลิกใช้>}}, {{cog|nyw|ไท}}, {{cog|khb|ᦺᦑ}}, {{cog|blt|ꪼꪕ}}, {{cog|shn|တႆး}}, {{cog|tdd|ᥖᥭᥰ}}, {{cog|aio|တႝ}}, {{cog|phk|တႝ}}, {{cog|aho|𑜄𑜩}} ซึ่งเมื่อใช้เดี่ยว ๆ จะหมายถึงกลุ่มชาติพันธุ์ไทนั้น ๆ <!--Don't add ꪼꪗ here because it is loanword of ไทย--> ==== รูปแบบอื่น ==== * {{alt|th|ไต||พบได้ยาก}} ==== คำนาม ==== {{th-noun}} # ชนเชื้อชาติไท มีหลาย[[สาขา]]ด้วยกัน เช่น ไทใหญ่ ไทดำ ไทขาว # {{lb|th|โบราณ}} [[ไทย]], [[สยาม]] #: {{ux|th|ปี[[โถะ]][[หน]]ไท[[กัด]][[เหมา]]}} (ประชุมจารึกสยาม ภาคที่ 1 จารึกสุโขทัย) # ความมี[[อิสระ]]ในตัว, ความไม่เป็น[[ทาส]] ===== ลูกคำ ===== {{col4|th |ไทดำ |ไทใต้คง |ไทน้อย |ไทพวน |ไทยวน |ไทลื้อ |ไทใหญ่ |ไทหลวง |ผู้ไท }} ==== ดูเพิ่ม ==== {{col4|th |ไทย }} === รากศัพท์ 2 === แผลงมาจาก {{m|th|ไท้}} ==== คำนาม ==== {{th-noun}} # {{lb|th|กลอน}} ผู้เป็นใหญ่ #: {{ux|th|ท้าวไท}} === รากศัพท์ 3 === {{bor+|th|en|tie}} === คำนาม === {{th-noun}} # [[เน็กไท]] ผ้าที่ใช้ผูกคอเสื้อ[[เชิ้ต]] มักผูกเป็นปมรูปสามเหลี่ยมให้มีชายยาวลงมาประมาณเอว #: {{ux|th|พอเขาผูก'''ไท'''แล้วดูดีขึ้นเป็นกอง}} ===== คำพ้องความ ===== {{col4|th |เน็กไท }} {{topics|th|ไทย}} == ภาษาคำเมือง == === คำวิสามานยนาม === {{nod-proper noun}} # {{alternative spelling of|nod|ᨴᩱ}} === คำนาม === {{nod-noun}} # {{alternative spelling of|nod|ᨴᩱ}} {{topics|nod|ไทย}} == ภาษาญ้อ == === รูปแบบอื่น === * {{alt|nyw|𞛍𞛮|sc=Tayo}} * {{alt|nyw|ไต}} === การออกเสียง === * {{IPA|nyw|/tʰaj˨˨/|a=สว่างแดนดิน}} === คำนาม === {{nyw-noun}} # [[ไท#ภาษาไทย|ไท]] == ภาษาอีสาน == === การออกเสียง === * {{IPA|tts|/tʰaj˧˦˩/|a=ขอนแก่น}} * {{คำอ่านไทย|ไท่<sup>สูง-ตก}} (ประมาณ) === คำนาม === {{tts-noun}} # [[ไท#ภาษาไทย|ไท]] ht5e78e80pmzvm1w9zi0pl5vtxwet9z 5724817 5724816 2026-06-16T02:03:42Z OctraBot 3198 /* การออกเสียง */ 5724817 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === การออกเสียง === {{th-pron|ไท|ไท้:สำหรับรากศัพท์ 3 ด้วย}} === รากศัพท์ 1 === {{inh+|th|tai-swe-pro|*dajᴬ²}}, จาก{{inh|th|tai-pro|*ɗwɤːjᴬ||อิสระ}}; ร่วมเชื้อสายกับ{{cog|tts|ไท}}, {{cog|nod|ᨴᩱ}}, {{cog|lo|ໄທ,ໄຕ<q:เลิกใช้>}}, {{cog|nyw|ไท}}, {{cog|khb|ᦺᦑ}}, {{cog|blt|ꪼꪕ}}, {{cog|shn|တႆး}}, {{cog|tdd|ᥖᥭᥰ}}, {{cog|aio|တႝ}}, {{cog|phk|တႝ}}, {{cog|aho|𑜄𑜩}} ซึ่งเมื่อใช้เดี่ยว ๆ จะหมายถึงกลุ่มชาติพันธุ์ไทนั้น ๆ <!--Don't add ꪼꪗ here because it is loanword of ไทย--> ==== รูปแบบอื่น ==== * {{alt|th|ไต||พบได้ยาก}} ==== คำนาม ==== {{th-noun}} # ชนเชื้อชาติไท มีหลาย[[สาขา]]ด้วยกัน เช่น ไทใหญ่ ไทดำ ไทขาว # {{lb|th|โบราณ}} [[ไทย]], [[สยาม]] #: {{ux|th|ปี[[โถะ]][[หน]]ไท[[กัด]][[เหมา]]}} (ประชุมจารึกสยาม ภาคที่ 1 จารึกสุโขทัย) # ความมี[[อิสระ]]ในตัว, ความไม่เป็น[[ทาส]] ===== ลูกคำ ===== {{col4|th |ไทดำ |ไทใต้คง |ไทน้อย |ไทพวน |ไทยวน |ไทลื้อ |ไทใหญ่ |ไทหลวง |ผู้ไท }} ==== ดูเพิ่ม ==== {{col4|th |ไทย }} === รากศัพท์ 2 === แผลงมาจาก {{m|th|ไท้}} ==== คำนาม ==== {{th-noun}} # {{lb|th|กลอน}} ผู้เป็นใหญ่ #: {{ux|th|ท้าวไท}} === รากศัพท์ 3 === {{bor+|th|en|tie}} === คำนาม === {{th-noun}} # [[เน็กไท]] ผ้าที่ใช้ผูกคอเสื้อ[[เชิ้ต]] มักผูกเป็นปมรูปสามเหลี่ยมให้มีชายยาวลงมาประมาณเอว #: {{ux|th|พอเขาผูก'''ไท'''แล้วดูดีขึ้นเป็นกอง}} ===== คำพ้องความ ===== {{col4|th |เน็กไท }} {{topics|th|ไทย}} == ภาษาคำเมือง == === คำวิสามานยนาม === {{nod-proper noun}} # {{alternative spelling of|nod|ᨴᩱ}} === คำนาม === {{nod-noun}} # {{alternative spelling of|nod|ᨴᩱ}} {{topics|nod|ไทย}} == ภาษาญ้อ == === รูปแบบอื่น === * {{alt|nyw|𞛍𞛮|sc=Tayo}} * {{alt|nyw|ไต}} === การออกเสียง === * {{IPA|nyw|/tʰaj˨˨/|a=สว่างแดนดิน}} === คำนาม === {{nyw-noun}} # [[ไท#ภาษาไทย|ไท]] == ภาษาอีสาน == === การออกเสียง === * {{IPA|tts|/tʰaj˧˦˩/|a=ขอนแก่น}} * {{คำอ่านไทย|ไท่<sup>สูง-ตก}} (ประมาณ) === คำนาม === {{tts-noun}} # [[ไท#ภาษาไทย|ไท]] lkvfto6lfm6hfr0s78qn1ege1knoi7j 5724818 5724817 2026-06-16T02:04:19Z OctraBot 3198 /* การออกเสียง */ 5724818 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === การออกเสียง === {{th-pron|ไท|ไท้:สำหรับรากศัพท์ 3 อีกด้วย}} === รากศัพท์ 1 === {{inh+|th|tai-swe-pro|*dajᴬ²}}, จาก{{inh|th|tai-pro|*ɗwɤːjᴬ||อิสระ}}; ร่วมเชื้อสายกับ{{cog|tts|ไท}}, {{cog|nod|ᨴᩱ}}, {{cog|lo|ໄທ,ໄຕ<q:เลิกใช้>}}, {{cog|nyw|ไท}}, {{cog|khb|ᦺᦑ}}, {{cog|blt|ꪼꪕ}}, {{cog|shn|တႆး}}, {{cog|tdd|ᥖᥭᥰ}}, {{cog|aio|တႝ}}, {{cog|phk|တႝ}}, {{cog|aho|𑜄𑜩}} ซึ่งเมื่อใช้เดี่ยว ๆ จะหมายถึงกลุ่มชาติพันธุ์ไทนั้น ๆ <!--Don't add ꪼꪗ here because it is loanword of ไทย--> ==== รูปแบบอื่น ==== * {{alt|th|ไต||พบได้ยาก}} ==== คำนาม ==== {{th-noun}} # ชนเชื้อชาติไท มีหลาย[[สาขา]]ด้วยกัน เช่น ไทใหญ่ ไทดำ ไทขาว # {{lb|th|โบราณ}} [[ไทย]], [[สยาม]] #: {{ux|th|ปี[[โถะ]][[หน]]ไท[[กัด]][[เหมา]]}} (ประชุมจารึกสยาม ภาคที่ 1 จารึกสุโขทัย) # ความมี[[อิสระ]]ในตัว, ความไม่เป็น[[ทาส]] ===== ลูกคำ ===== {{col4|th |ไทดำ |ไทใต้คง |ไทน้อย |ไทพวน |ไทยวน |ไทลื้อ |ไทใหญ่ |ไทหลวง |ผู้ไท }} ==== ดูเพิ่ม ==== {{col4|th |ไทย }} === รากศัพท์ 2 === แผลงมาจาก {{m|th|ไท้}} ==== คำนาม ==== {{th-noun}} # {{lb|th|กลอน}} ผู้เป็นใหญ่ #: {{ux|th|ท้าวไท}} === รากศัพท์ 3 === {{bor+|th|en|tie}} === คำนาม === {{th-noun}} # [[เน็กไท]] ผ้าที่ใช้ผูกคอเสื้อ[[เชิ้ต]] มักผูกเป็นปมรูปสามเหลี่ยมให้มีชายยาวลงมาประมาณเอว #: {{ux|th|พอเขาผูก'''ไท'''แล้วดูดีขึ้นเป็นกอง}} ===== คำพ้องความ ===== {{col4|th |เน็กไท }} {{topics|th|ไทย}} == ภาษาคำเมือง == === คำวิสามานยนาม === {{nod-proper noun}} # {{alternative spelling of|nod|ᨴᩱ}} === คำนาม === {{nod-noun}} # {{alternative spelling of|nod|ᨴᩱ}} {{topics|nod|ไทย}} == ภาษาญ้อ == === รูปแบบอื่น === * {{alt|nyw|𞛍𞛮|sc=Tayo}} * {{alt|nyw|ไต}} === การออกเสียง === * {{IPA|nyw|/tʰaj˨˨/|a=สว่างแดนดิน}} === คำนาม === {{nyw-noun}} # [[ไท#ภาษาไทย|ไท]] == ภาษาอีสาน == === การออกเสียง === * {{IPA|tts|/tʰaj˧˦˩/|a=ขอนแก่น}} * {{คำอ่านไทย|ไท่<sup>สูง-ตก}} (ประมาณ) === คำนาม === {{tts-noun}} # [[ไท#ภาษาไทย|ไท]] mwjjb7sr32a4fhb9kzapyyu1fwsx2hr alzarsi 0 25187 5724881 1174298 2026-06-16T11:50:44Z OctraBot 3198 /* ภาษาอิตาลี */ เก็บกวาด 5724881 wikitext text/x-wiki == ภาษาอิตาลี == === การออกเสียง === {{it-pr|altsàrsi<audio:LL-Q652 (ita)-Exilexi-alzarsi.wav>}} === คำกริยา === {{it-verb|à}} # {{reflexive of|it|alzare}} # [[ยืน]], [[ลุก]], ลุก[[ขึ้น]]ยืน, [[ยก]][[ตัว]]ขึ้น, (เครื่องบิน) [[บิน]]ขึ้น # ลุก (ออกจากเตียง) # ขึ้น ==== การผันรูป ==== {{it-conj|à}} ==== คำพ้องความ ==== * {{l|it|levarsi}}, {{l|it|sollevarsi}} ==== คำตรงข้าม ==== * {{l|it|abbassarsi}} oqs91n5hdm4ed64nwlkr4d85wfj03zq lavarsi 0 25777 5724876 1275990 2026-06-16T11:13:33Z OctraBot 3198 /* ภาษาอิตาลี */ เก็บกวาด 5724876 wikitext text/x-wiki == ภาษาอิตาลี == === การออกเสียง === {{it-pr}} === คำกริยา === {{it-verb|à}} # {{reflexive of|it|lavare}} # [[ล้าง]] (ตัวเขาเอง) #: {{uxi|it|lavarsi le mani|t=to wash one's hands}} #: {{uxi|it|lavarsene le mani|t=to wash one's hands of (take no responsibility for)}} #: {{uxi|it|se ne lavano le mani|t=to wash one's hands of (take no responsibility for)}} ==== การผันรูป ==== {{it-conj|à}} ==== คำเกี่ยวข้อง ==== * {{l|it|lavarsene}} === คำสลับอักษร === * {{anagrams|it|a=aailrsv|rivalsa}} ==คำสลับอักษร== * [[rivalsa]] qud0ujaqnxztt7btkd0qze9lpq9ityt 5724878 5724876 2026-06-16T11:14:27Z OctraBot 3198 /* คำสลับอักษร */ 5724878 wikitext text/x-wiki == ภาษาอิตาลี == === การออกเสียง === {{it-pr}} === คำกริยา === {{it-verb|à}} # {{reflexive of|it|lavare}} # [[ล้าง]] (ตัวเขาเอง) #: {{uxi|it|lavarsi le mani|t=to wash one's hands}} #: {{uxi|it|lavarsene le mani|t=to wash one's hands of (take no responsibility for)}} #: {{uxi|it|se ne lavano le mani|t=to wash one's hands of (take no responsibility for)}} ==== การผันรูป ==== {{it-conj|à}} ==== คำเกี่ยวข้อง ==== * {{l|it|lavarsene}} === คำสลับอักษร === * {{anagrams|it|a=aailrsv|rivalsa}} juzgr7elod8rb36kjqutslwvhoqmag4 ไว้ 0 33294 5724799 5724769 2026-06-15T21:00:32Z Alifshinobi 397 /* รากศัพท์ */ 5724799 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === รากศัพท์ === {{inh+|th|tai-swe-pro|*waj/aɰꟲ²}}; ร่วมเชื้อสายกับ{{cog|nod|ᩅᩱ᩶,ᩅᩱ᩠᩶ᨿ}}, {{cog|lo|ໄວ້}}, {{cog|khb|ᦺᦞᧉ}}, {{cog|blt|ꪼꪫ꫁}}, {{cog|twh|ꪼꪫꫂ}}, {{cog|shn|ဝႆႉ}}, {{cog|tdd|ᥝᥭᥳ}}, {{cog|aho|𑜈𑜩,𑜚𑜩,𑜉𑜩}} === การออกเสียง === {{th-pron}} === คำกริยา === {{th-verb}} # [[เก็บ]][[เข้า]][[ที่]], [[เอา]]เข้าที่ #: {{ux|th|เอาของไปไว้ที่}} # [[วาง]] #: {{ux|th|เอาไว้ตรงนั้นแหละ}} #: {{ux|th|ไว้ของให้เป็นที่}} # ให้[[มี]][[อยู่]], ให้[[ดำรง]]อยู่, [[รักษา]] #: {{ux|th|ไว้จุก}} #: {{ux|th|ไว้หนวด}} #: {{ux|th|ไว้ชีวิต}} #: {{ux|th|ไว้ยศ}} === คำอนุภาค === {{th-particle}} # [[บาง]][[ที]][[ใช้]][[ประกอบ]][[ท้าย]][[กริยา]]บาง[[คำ]][[เพื่อ]][[ให้]][[ความหมาย]][[สมบูรณ์]][[หรือ]][[หนักแน่น]][[ยิ่ง]][[ขึ้น]] #: {{ux|th|เก็บไว้}} #: {{ux|th|รักษาไว้}} #: {{ux|th|ปลูกไว้}} == ภาษาคำเมือง == === การออกเสียง === * {{IPA|nod|/waj˦˥/|a=เชียงใหม่}} === คำกริยา === {{nod-verb}} # {{lb|nod|สกรรม}} {{alternative form of|nod|ᩅᩱ᩶}} ftikp3r9h4o156zww2d0a1yucbjz507 ไหว 0 33828 5724865 5724757 2026-06-16T09:34:22Z Alifshinobi 397 /* รากศัพท์ */ 5724865 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === รากศัพท์ === {{inh+|th|tai-pro|*C̥.wajᴬ}}; ร่วมเชื้อสายกับ{{cog|tts|ไหว}}, {{cog|lo|ໄຫວ}}, {{cog|nod|ᩉ᩠ᩅᩱ}}, {{cog|khb|ᦺᦛ}}, {{cog|blt|ꪼꪪ}}, {{cog|shn|ဝႆ}}, {{cog|phk|ဝႝ}}, {{cog|aho|*𑜈𑜩}}, {{cog|zhn|vae}}, {{cog|zzj|vaej}} === การออกเสียง === {{th-pron|ไหฺว}} === คำกริยา === {{th-verb|~}} # [[สั่น]], [[สะเทือน]], [[กระดิก]] #: {{ux|th|ใบไม้'''ไหว'''}} ==== ลูกคำ ==== {{col|th|เคลื่อนไหว|ชายไหว|ดอกไม้ไหว|แผ่นดินไหว|พริบไหว|มีทองเท่าหนวดกุ้งนอนสะดุ้งจนเรือนไหว|หวั่นไหว|ไหวตัว|ไหวติง|ไหวทัน|ไหวพริบ|ไหว ๆ|อ่อนไหว}} === คำกริยาวิเศษณ์ === {{th-adv}} # [[สามารถ]][[ทำ]][[ได้]], [[เป็น]][[ไป]][[ได้]][[ที่]][[จะ]]ทำ #: {{ux|th|เดิน'''ไหว'''}} #: {{ux|th|สู้'''ไหว'''}} #: {{ux|th|กิน'''ไหว'''}} === คำคุณศัพท์ === {{th-adj|-}} # {{lb|th|slang}} [[ตกลง]]; [[ดี]]; [[โอเค]] ==== ลูกคำ ==== {{col|th|ไม่หวาดไม่ไหว|ไม่ไหว|ยังไหว|หวาดไหว}} == ภาษาคำเมือง == === การออกเสียง === * {{IPA|nod|/waj˨˦/|a=เชียงใหม่}} === คำกริยา === {{nod-verb}} # {{lb|nod|อกรรม}} {{alternative form of|nod|ᩉ᩠ᩅᩱ}} thnwk3hox1krrwk2dwysiz06rrncpgk ดาย 0 33884 5724859 1881823 2026-06-16T08:24:22Z Alifshinobi 397 5724859 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === การออกเสียง === {{th-pron}} === รากศัพท์ 1 === {{inh+|th|tai-pro|*ɓlaːjᴬ}}; ร่วมเชื้อสายกับ{{cog|blt|ꪚꪱꪥ}}, {{cog|twh|ꪚꪱꪥ}}, {{cog|zhn|ndai}}, {{cog|zzj|mbyai|tr=บลาย|t=ตัดหญ้า, ถอนหญ้า}} ==== คำกริยา ==== {{th-verb}} # [[ใช้]][[มีด]][[หรือ]][[จอบ]][[เป็นต้น]][[ถาก]][[ต้น]][[หญ้า]][[เพื่อ]][[ให้]][[เตียน]] === รากศัพท์ 2 === ร่วมเชื้อสายกับ{{cog|lo|ດາຍ}}, {{cog|nod|ᨯᩣ᩠ᨿ}}, {{cog|kkh|ᨯᩣ᩠ᨿ}}, {{cog|khb|ᦡᦻ}}, {{cog|shn|လၢႆ}}, {{cog|za|ndai}} ==== คำกริยาวิเศษณ์ ==== {{th-adv|-}} # [[ดะ]][[ไป]], [[ตะลุย]] #: {{ux|th|กินดาย}} # [[เพิกเฉย]], [[ไม่]][[เอาใจใส่]] #: {{ux|th|ดูดาย}} # [[ทีเดียว]], [[เท่านั้น]] #: {{ux|th|เดียวดาย}} #: {{ux|th|เปล่าดาย}} #: {{ux|th|พู้นมาดาย}} (จารึกสยาม) # [[ง่าย]] #: {{ux|th|สะดวกดาย}} # [[โดด]], [[เดี่ยว]], [[เลย]], [[ถ่าย]][[เดียว]] (มักใช้ในที่สุดประโยค) 1p3pmktf1z7qpnb6xv5sb6w0krfb0s9 สาย 0 34578 5724861 5686327 2026-06-16T09:25:16Z Alifshinobi 397 /* คำนาม */ 5724861 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === การออกเสียง === {{th-pron}} === รากศัพท์ 1 === ร่วมเชื้อสายกับ{{cog|nod|ᩈᩣ᩠ᨿ}}, {{m|nod|ᨡ᩠ᩅᩣ᩠ᨿ}}, {{cog|lo|ສາຍ}}, {{m|lo|ສວາຍ}}, {{cog|blt|ꪎꪱꪥ}}, {{cog|za|sai}}, {{cog|zzj|svai}} ==== คำนาม ==== {{th-noun}} # [[เวลา]][[ระหว่าง]][[เช้า]][[กับ]][[เที่ยง]][[ประมาณ]] 9.00 [[น.]] [[ถึง]] 10.00 น. #: {{ux|th|พอสายก็ออกเดินทาง}} ==== คำกริยาวิเศษณ์ ==== {{th-adv}} # [[ช้า]][[กว่า]]เวลา[[ที่]][[กำหนด]], [[ล่าช้า]] #: {{ux|th|มาทำงานสาย}} # {{lb|th|โดยปริยาย}} [[พ้น]]เวลาที่[[จะ]][[แก้ไข]], [[สุด]]ที่จะแก้ไข[[ได้]] #: {{ux|th|เรื่องนี้ทำอะไรไม่ได้ สายเกินไปเสียแล้ว}} === รากศัพท์ 2 === {{inh+|th|tai-pro|*saːjᴬ}}; ร่วมเชื้อสายกับ{{cog|nod|ᩈᩣ᩠ᨿ}}, {{cog|lo|ສາຍ}}, {{cog|khb|ᦉᦻ}}, {{cog|blt|ꪎꪱꪥ}}, {{cog|twh|ꪎꪱꪥ}}, {{cog|tyr|ꪎꪱꪥ}}, {{cog|shn|သၢႆ}}, {{cog|tdd|ᥔᥣᥭᥴ}}, {{cog|aio|ꩬႝ}}, {{cog|phk|ꩬႝ}}, {{cog|aho|𑜏𑜩}}, {{cog|za|sai}}, {{cog|zzj|sai}} ==== คำนาม ==== {{th-noun|*}} # [[สิ่ง]]ที่[[มี]][[ลักษณะ]][[เป็น]][[เส้น]]เป็น[[แนว]][[ยาว]] #: {{ux|th|สายสร้อย}} #: {{ux|th|สายไฟฟ้า}} #: {{ux|th|สายรุ้ง}} #: {{ux|th|สายนาฬิกา}} #: {{ux|th|สายเข็มขัด}} # [[ทาง]], [[เส้นทาง]] #: {{ux|th|รถไฟสายเหนือ}} #: {{ux|th|รถไฟสายใต้}} # {{lb|th|โดยปริยาย}} สิ่งที่มีลักษณะ[[คล้ายคลึง]][[เช่น]][[นั้น]] #: {{ux|th|สายการบิน}} #: {{ux|th|สายการเดินเรือ}} #: {{ux|th|สายงาน}} # [[ญาติ]]ที่[[สืบ]][[มา]][[จาก]][[ต้น]][[วงศ์]][[หรือ]]ต้น[[สกุล]][[เดียว]][[กัน]] [[แล้ว]][[แยก]]เป็นสกุล[[ย่อย]][[ออก]][[ไป]] # {{lb|th|ปาก}} {{clipping of|th|สายลับ}} #: {{ux|th|ระวังคนใช้เป็นสายให้โจร}} ==== คำลักษณนาม ==== {{th-cls}} # [[เรียก]]สิ่งที่เป็นแนวหรือเส้นยาว #: {{ux|th|สายสะพาย 2 สาย}} #: {{ux|th|ทาง 3 สาย}} {{topics|th|เวลา}} l74wvntn9ogfmxb94o2idbdxaid83ma มอดูล:labels/data 828 37614 5724846 5720954 2026-06-16T04:34:35Z OctraBot 3198 5724846 Scribunto text/plain local labels = {} -- Grammatical labels labels["คำย่อ"] = { aliases = {"abbreviation"}, glossary = true, pos_categories = "คำย่อ", } labels["อาการนาม"] = { aliases = {"abstract noun"}, display = "อาการนาม", glossary = true, pos_categories = "คำอาการนาม", } labels["อักษรย่อรวมพยางค์"] = { aliases = {"acronym"}, glossary = true, pos_categories = "อักษรย่อรวมพยางค์", } labels["กรรตุวาจก"] = { aliases = {"active", "in the active", "active voice"}, glossary = true, } labels["สกรรมและอกรรม"] = { aliases = {"ambitransitive", "อกรรมและสกรรม"}, glossary = true, pos_categories = {"คำสกรรมกริยา", "คำอกรรมกริยา"}, } labels["angry register"] = { aliases = {"angry", "anger", "said in anger"}, glossary = true, pos_categories = "angry register terms", } labels["มีชีวิต"] = { aliases = {"animate"}, glossary = true, } labels["บอกเล่า"] = { aliases = {"indicative", "in the indicative", "indicative mood"}, glossary = "มาลาบอกเล่า", } labels["สมมุติ"] = { aliases = {"subjunctive", "in the subjunctive", "subjunctive mood"}, glossary = "มาลาสมมุติ", } labels["สั่ง"] = { aliases = {"imperative", "in the imperative", "imperative mood", "คำสั่ง"}, glossary = "มาลาสั่ง", } labels["ขอร้อง"] = { aliases = {"jussive", "in the jussive", "jussive mood", "ร้องขอ"}, glossary = "มาลาขอร้อง", } labels["atelic"] = { glossary = true, } labels["attenuative"] = { pos_categories = "attenuative verbs", } labels["attributive"] = { glossary = true, } labels["attributively"] = { glossary = "attributive", } labels["ช่วย"] = { aliases = {"auxiliary", "กริยาช่วย", "คำกริยาช่วย", "คำช่วยกริยา", "กริยานุเคราะห์", "คำกริยานุเคราะห์"}, glossary = true, pos_categories = "คำกริยาช่วย", } labels["จำนวนเชิงการนับ"] = { aliases = {"cardinal", "cardinal number", "เชิงการนับ"}, display = "[[จำนวนเชิงการนับ]]", pos_categories = "จำนวนเชิงการนับ", } labels["catenative"] = { glossary = "catenative verb", } labels["causative"] = { glossary = true, } labels["causative verb"] = { display = "causative", glossary = true, pos_categories = "causative verbs", } labels["cognate object"] = { aliases = {"with cognate object"}, display = "with [[w:Cognate object|cognate object]]", pos_categories = "verbs used with cognate objects", } labels["สมุหนาม"] = { aliases = {"collective"}, glossary = true, display = "สมุหนาม", pos_categories = "คำสมุหนาม", } labels["collectively"] = { glossary = "collective", display = "สมุหนาม", pos_categories = "คำสมุหนาม", } labels["collective number"] = { aliases = {"collective numeral"}, display = "[[collective number]]", pos_categories = "collective numbers", } labels["control verb"] = { aliases = {"control"}, Wikipedia = true, pos_categories = "control verbs", } labels["เพศรวม"] = { aliases = {"common", "รวม"}, glossary = true, } labels["เปรียบเทียบได้"] = { aliases = {"comparable"}, glossary = true, } labels["completive"] = { pos_categories = "completive verbs", } labels["เชื่อม"] = { aliases = {"copular"}, display = "[[คำกริยาเชื่อม|เชื่อม]]", pos_categories = "คำกริยาเชื่อม", } labels["นับได้"] = { aliases = {"countable"}, glossary = true, pos_categories = "คำนามนับได้", } labels["cumulative"] = { pos_categories = "cumulative verbs", } labels["delimitative"] = { pos_categories = "delimitative verbs", } labels["deponent"] = { glossary = true, pos_categories = "deponent verbs", } labels["distributive"] = { pos_categories = "distributive verbs", } labels["distributive number"] = { aliases = {"distributive numeral"}, display = "[[distributive number]]", pos_categories = "distributive numbers", } labels["ทวิกรรม"] = { aliases = {"ditransitive", "ทวิกรรมกริยา"}, glossary = true, pos_categories = "คำทวิกรรมกริยา", } labels["dysphemistic"] = { aliases = {"dysphemism"}, glossary = true, pos_categories = "dysphemisms", } labels["by ellipsis"] = { aliases = {"ellipsis"}, glossary = "ellipsis", pos_categories = "ellipses", } labels["emphatic"] = { glossary = true, } labels["ergative"] = { glossary = true, pos_categories = "ergative verbs", } labels["expressive"] = { glossary = true, pos_categories = "expressive terms", } labels["by extension"] = { aliases = {"hence"}, } labels["เพศหญิง"] = { aliases = {"feminine", "หญิง"}, glossary = true, } labels["focus"] = { glossary = true, pos_categories = "focus adverbs", } labels["fractional"] = { aliases = {"fractional number", "fractional numeral"}, display = "[[fractional number]]", pos_categories = "fractional numbers", } labels["frequentative"] = { glossary = true, pos_categories = "frequentative verbs", } labels["hedge"] = { aliases = {"hedges"}, glossary = true, pos_categories = "hedges", } labels["ideophonic"] = { aliases = {"ideophone"}, glossary = true, } labels["สำนวน"] = { aliases = {"idiomatic", "idiom", "idiomatically", "สำ"}, glossary = true, pos_categories = "สำนวน", } labels["imperfect"] = { glossary = true, } labels["ไม่สมบูรณ์"] = { aliases = {"imperfective"}, glossary = true, pos_categories = "คำกริยาไม่สมบูรณ์", } labels["อบุรุษ"] = { aliases = {"impersonal", "impersonal verbs", "อบุรุษกริยา", "คำอบุรุษกริยา"}, glossary = true, pos_categories = "คำอบุรุษกริยา", } labels["ในรูปเอกพจน์"] = { aliases = {"in singular", "in the singular"}, display = "ในรูป[[เอกพจน์]]", } labels["ในรูปทวิพจน์"] = { aliases = {"in dual", "in the dual"}, display = "ในรูป[[ทวิพจน์]]", } labels["ในรูปพหูพจน์"] = { aliases = {"in plural"}, display = "ในรูป[[ภาคผนวก:อภิธานศัพท์#พหูพจน์|พหูพจน์]]", } labels["ไม่มีชีวิต"] = { aliases = {"inanimate"}, glossary = true, } labels["inchoative"] = { pos_categories = "inchoative verbs", } labels["ไม่ชี้เฉพาะ"] = { aliases = {"indef", "indefinite"}, glossary = true, } labels["อักษรย่อ"] = { aliases = {"initialism"}, glossary = true, pos_categories = "อักษรย่อ", } labels["intensive verb"] = { display = "intensive", pos_categories = "intensive verbs", } labels["อกรรม"] = { aliases = {"intransitive", "อกรรมกริยา"}, glossary = true, pos_categories = "คำอกรรมกริยา", } labels["ไอพีเอ"] = { aliases = {"IPA", "International Phonetic Alphabet", "สัทอักษรสากล"}, Wikipedia = "สัทอักษรสากล", plain_categories = "สัญลักษณ์สำหรับสัทอักษรสากล", } labels["iterative"] = { glossary = true, pos_categories = "iterative verbs", } labels["litotes"] = { aliases = {"litote", "litotic", "litotical"}, glossary = true, pos_categories = true, } labels["เพศชาย"] = { aliases = {"masculine", "ชาย"}, glossary = true, } labels["mediopassive"] = { aliases = {"in the mediopassive", "in mediopassive"}, glossary = true, } labels["meiosis"] = { aliases = {"meioses", "meiotic"}, glossary = true, pos_categories = "meioses", } labels["middle voice"] = { aliases = {"middle", "in the middle", "in the middle voice"}, glossary = true, } labels["รูปสะกดผิด"] = { aliases = {"misspelling", "สะกดผิด"}, display = "[[รูปสะกดผิด]]", } labels["mnemonic"] = { display = "[[mnemonic]]", pos_categories = "mnemonics", } labels["modal"] = { Wikipedia = "Modality (linguistics)", } labels["NAPA"] = { aliases = {"Americanist_phonetic_notation"}, Wikipedia = "Americanist_phonetic_notation", plain_categories = "NAPA symbols", } labels["always in the negative"] = { glossary = "negative polarity item", pos_categories = "negative polarity items", } labels["chiefly in the negative"] = { aliases = {"chiefly used in the negative", "negative polarity", "negative polarity item", "usually in the negative", "usually used in the negative"}, glossary = "negative polarity item", pos_categories = "negative polarity items", } labels["chiefly in the negative plural"] = { aliases = {"chiefly used in the negative plural", "negative polarity plural", "negative polarity plural item", "usually in the negative plural", "usually used in the negative plural"}, display = "chiefly in the [[Appendix:Glossary#negative polarity item|negative]] [[Appendix:Glossary#plural|plural]]", pos_categories = "negative polarity items", } labels["chiefly in the positive"] = { aliases = {"chiefly used in the positive", "positive polarity", "positive polarity item", "usually in the positive", "usually used in the positive"}, glossary = "positive polarity item", -- pos_categories = {"positive polarity items"}, } labels["chiefly in the positive plural"] = { aliases = {"chiefly used in the positive plural", "positive polarity plural", "positive polarity plural item", "usually in the positive plural", "usually used in the positive plural"}, display = "chiefly in the [[Appendix:Glossary#positive polarity item|positive]] [[Appendix:Glossary#plural|plural]]", -- pos_categories = "positive polarity items", } labels["เพศกลาง"] = { aliases = {"neuter", "กลาง"}, glossary = true, } -- British English ("ise") labels["nominalised"] = { aliases = {"nominalisation", "substantivised", "substantivisation"}, glossary = "nominalization", pos_categories = "nominalized adjectives", } -- American English ("ize") labels["nominalized"] = { aliases = {"nominalization", "substantivized", "substantivization"}, glossary = "nominalization", pos_categories = "nominalized adjectives", } labels["เปรียบเทียบไม่ได้"] = { aliases = {"not comparable", "notcomp", "uncomparable"}, glossary = "เปรียบเทียบไม่ได้", } labels["เลียนเสียง"] = { aliases = {"onomatopoeia", "onomatopoeic", "เลียนเสียงธรรมชาติ"}, glossary = true, pos_categories = "ศัพท์ที่เลียนเสียงธรรมชาติ", } labels["เชิงอันดับที่"] = { aliases = {"ordinal", "ordinal numbers", "จำนวนเชิงอันดับที่"}, display = "[[จำนวนเชิงอันดับที่]]", pos_categories = "จำนวนเชิงอันดับที่", } labels["partitive verb"] = { display = "[[ภาคผนวก:อภิธานศัพท์#สกรรม|สกรรม]], มักจะ[[ภาคผนวก:คำกริยามีจุดจบและไม่มีจุดจบภาษาฟินนิก|ไม่มีจุดจบ]]", pos_categories = "คำสกรรมกริยา", -- = "partitive verbs", } labels["perfect"] = { glossary = true, } labels["รูปกริยาขยาย"] = { aliases = {"participle"}, glossary = true, } labels["กรรมวาจก"] = { aliases = {"passive", "in the passive", "passive voice"}, glossary = true, } labels["perfect"] = { glossary = true, } labels["สมบูรณ์"] = { glossary = true, pos_categories = "คำกริยาสมบูรณ์", } labels["พหูพจน์เท่านั้น"] = { aliases = {"plural only", "pluralonly", "plurale tantum"}, pos_categories = "คำนามพหูพจน์เท่านั้น", } labels["possessional adjective"] = { aliases = {"possessional", "possessional adjectives"}, display = "possessional", glossary = true, pos_categories = "possessional adjectives", } labels["สรรพนามแสดงความเป็นเจ้าของ"] = { aliases = {"possessive pronoun", "possessive determiner"}, display = "แสดงความเป็นเจ้าของ", glossary = "possessive determiner", pos_categories = "คำสรรพนามแสดงความเป็นเจ้าของ", } labels["postpositive"] = { glossary = true, } labels["ภาคแสดง"] = { aliases = {"predicative"}, glossary = true, } labels["predicatively"] = { glossary = "ภาคแสดง", } labels["prescriptive"] = { aliases = {"normative", "prescribed"}, glossary = true, } labels["privative"] = { pos_categories = "privative verbs", } labels["procedure word"] = { display = "[[procedure word]]", } labels["productive"] = { glossary = true, } -- TODO: This label is probably inappropriate for many languages labels["pronominal"] = { glossary = "pronominal verb", } labels["pro-verb"] = { Wikipedia = true, } labels["reciprocal"] = { glossary = true, pos_categories = "reciprocal verbs", } labels["สะท้อน"] = { aliases = {"reflexive", "คำกริยาสะท้อน", "กริยาสะท้อน"}, glossary = true, pos_categories = "คำกริยาสะท้อน", } labels["คำสรรพนามสะท้อน"] = { aliases = {"reflexive pronoun", "สรรพนามสะท้อน"}, glossary = "สะท้อน", pos_categories = "คำสรรพนามสะท้อน", } labels["สัมพันธ์"] = { aliases = {"relational adjective", "relational", "คำคุณศัพท์สัมพันธ์", "คุณศัพท์สัมพันธ์"}, glossary = true, pos_categories = "คำคุณศัพท์สัมพันธ์", } labels["repetitive"] = { pos_categories = "repetitive verbs", } labels["respelling"] = { glossary = true, } labels["reversative"] = { pos_categories = "reversative verbs", } labels["rhetorical question"] = { glossary = true, pos_categories = "rhetorical questions", } labels["saturative"] = { aliases = {"sative"}, pos_categories = "saturative verbs", } labels["semelfactive"] = { glossary = true, pos_categories = "semelfactive verbs", } labels["sentence adverb"] = { glossary = true, pos_categories = "sentence adverbs", } labels["set phrase"] = { display = "[[set phrase]]", } labels["simile"] = { glossary = true, pos_categories = "similes", } labels["เอกพจน์เท่านั้น"] = { aliases = {"singular only", "singulare tantum", "no plural"}, display = "เอกพจน์เท่านั้น", pos_categories = "คำนามเอกพจน์เท่านั้น", } labels["snowclone"] = { glossary = true, pos_categories = "snowclones", } labels["สภาว"] = { aliases = {"stative", "stative verb", "สภาวกริยา"}, glossary = true, pos_categories = "คำสภาวกริยา", } labels["strictly"] = { aliases = {"strict", "narrowly", "narrow"}, glossary = true, } labels["substantive"] = { glossary = true, track = true, } labels["terminative"] = { pos_categories = "terminative verbs", } labels["สกรรม"] = { aliases = {"transitive", "สกรรมกริยา"}, glossary = true, pos_categories = "คำสกรรมกริยา", } labels["unaccusative"] = { Wikipedia = "Unaccusative verb", } labels["นับไม่ได้"] = { aliases = {"uncountable"}, glossary = true, pos_categories = "คำนามนับไม่ได้", } labels["unergative"] = { Wikipedia = "Unergative verb", } labels["UPA"] = { aliases = {"Uralic Phonetic Alphabet"}, Wikipedia = "Uralic Phonetic Alphabet", plain_categories = "UPA symbols", } labels["usually plural"] = { aliases = {"usually in the plural", "usually in plural"}, display = "usually in the [[Appendix:Glossary#plural|plural]]", deprecated = true, } -- Usage labels labels["โฟร์แชน"] = { aliases = {"4chan", "4chan slang"}, display = "สแลง[[w:โฟร์แชน|โฟร์แชน]]", pos_categories = "สแลงโฟร์แชน", } labels["4chan lgbt"] = { aliases = {"tttt"}, display = "[[w:4chan|4chan]] /lgbt/ slang", pos_categories = "4chan /lgbt/ slang", } labels["ACG"] = { display = "[[ACG]]", -- see also "fandom slang" pos_categories = "fandom slang", } labels["endearing"] = { aliases = {"affectionate"}, display = "[[endearing]]", -- should be "terms with X senses", leaving "X terms" to the term-context temp pos_categories = "endearing terms", } labels["pre-classical"] = { aliases = {"Pre-classical", "pre-Classical", "Pre-Classical", "Preclassical", "preclassical", "ante-classical", "Ante-classical", "ante-Classical", "Ante-Classical", "Anteclassical", "anteclassical"}, display = "pre-Classical", regional_categories = true, } labels["anti-LGBTQ slur"] = { -- don't add aliases "homophobia" or "transphobia" because these could be topical categories aliases = {"homophobic", "transphobic"}, display = "anti-[[LGBTQ]] [[slur]]", pos_categories = "anti-LGBTQ slurs", } labels["โบราณ"] = { aliases = {"archaic", "antiquated", "โบ"}, glossary = true, sense_categories = true, } labels["รูปโบราณ"] = { aliases = {"archaic form"}, glossary = "โบราณ", display = "โบราณ", pos_categories = "รูปโบราณ", } labels["Australian slang"] = { regional_categories = "Australian", plain_categories = true, } labels["avoidance"] = { glossary = true, } labels["back slang"] = { aliases = {"backslang", "back-slang"}, glossary = "backslang", pos_categories = true, } labels["Bargoens"] = { Wikipedia = true, plain_categories = true, } labels["Braille"] = { Wikipedia = true, } labels["British slang"] = { aliases = {"UK slang"}, plain_categories = true, } labels["Cambridge University slang"] = { aliases = {"University of Cambridge slang", "Cantab slang"}, display = "[[w:University of Cambridge|Cambridge University]] [[slang]]", topical_categories = "Universities", plain_categories = true, } labels["cant"] = { aliases = {"argot", "cryptolect"}, display = "[[cant]]", pos_categories = true, } labels["capitalized"] = { aliases = {"capitalised"}, display = "[[capitalisation|capitalized]]", } labels["Castilianism"] = { aliases = {"Hispanicism"}, display = "[[Castilianism]]", } labels["ภาษาเด็ก"] = { aliases = {"childish", "baby talk", "child language", "infantile", "เด็ก"}, display = "[[ภาษาเด็ก]]", -- should be "terms with X senses", leaving "X terms" to the term-context temp? pos_categories = "ศัพท์ที่เป็นภาษาเด็ก", } labels["chu Nom"] = { display = "[[Vietnamese]] [[chữ Nôm]]", plain_categories = "Vietnamese Han tu", } labels["Cockney rhyming slang"] = { display = "[[Cockney rhyming slang]]", plain_categories = true, } labels["ภาษาปาก"] = { aliases = {"colloquial", "colloquially", "ภาษาพูด", "ปาก", "พูด"}, glossary = true, pos_categories = "ศัพท์ที่เป็นภาษาปาก", } -- FIXME! The following two are apparently for Persian but probably don't belong in this file. labels["colloquial-um"] = { glossary = "ภาษาปาก", pos_categories = "colloquialisms containing sequence um", } labels["colloquial-un"] = { glossary = "ภาษาปาก", pos_categories = "colloquialisms containing sequence un", } labels["corporate jargon"] = { aliases = {"business jargon", "corporatese", "businessese", "corporate speak", "business speak"}, display = "[[corporate]] [[jargon]]", pos_categories = true, } labels["costermongers"] = { aliases = {"coster", "costers", "costermonger", "costermongers back slang", "costermongers' back slang"}, display = "[[Appendix:Costermongers' back slang|costermongers]]", plain_categories = "Costermongers' back slang", } labels["criminal slang"] = { aliases = {"thieves' cant", "Thieves' Cant", "thieves cant", "thieves'", "thieves", "thieves' cant"}, -- Thieves' Cant is English-only, so defined in the English submodule; if other languages try to use it, it's just criminal slang display = "[[criminal]] [[slang]]", topical_categories = "Crime", pos_categories = true, } labels["ล้าสมัย"] = { aliases = {"dated", "old-fashioned", "ล้า"}, glossary = true, -- should be "terms with X senses", leaving "X terms" to the term-context temp pos_categories = "ศัพท์ที่ล้าสมัย", } labels["dated form"] = { glossary = "dated", pos_categories = "dated forms", } -- combine with previous? labels["นัยล้าสมัย"] = { aliases = {"dated sense", "นัยล้า"}, glossary = "dated", sense_categories = "ล้าสมัย", } labels["ดูหมิ่น"] = { aliases = {"derogatory", "pejorative", "derogative", "disparaging", "หมิ่น", "ดูถูก", "หมิ่นประมาท"}, display = "[[ดูหมิ่น]]", -- should be "terms with X senses", leaving "X terms" to the term-context temp pos_categories = "ศัพท์ที่ดูหมิ่น", } --[=[ merged down labels["dialect"] = {-- separated from "dialectal" so e.g. "obsolete|outside|the|_|dialect|of..." displays right glossary = "ภาษาถิ่น", pos_categories = {"ศัพท์ที่เป็นภาษาถิ่น"}, } --]=] labels["ภาษาถิ่น"] = { aliases = {"dialect", "dialects", "dialectal", "ถิ่น", "เฉพาะถิ่น", "ภาษาเฉพาะถิ่น"}, glossary = true, -- should be "terms with X senses", leaving "X terms" to the term-context temp pos_categories = "ศัพท์ที่เป็นภาษาถิ่น", } --[=[ merged up labels["dialects"] = {-- separated from "dialectal" so e.g. "obsolete|outside|dialects" displays right glossary = "ภาษาถิ่น", pos_categories = {"ศัพท์ที่เป็นภาษาถิ่น"}, } --]=] labels["dis legomenon"] = { display = "[[dis legomenon]]", pos_categories = "dis legomena", } labels["dismissal"] = { display = "[[dismissal]]", pos_categories = "dismissals", } labels["drag slang"] = { aliases = {"Drag Race slang"}, display = "[[drag]] [[slang]]", pos_categories = "drag slang", } labels["solemn"] = { glossary = true, pos_categories = "solemn terms", } labels["ecclesiastical"] = { pos_categories = "ecclesiastical terms", } labels["ethnic slur"] = { aliases = {"racial slur"}, display = "[[ethnic]] [[slur]]", pos_categories = "ethnic slurs", } labels["เสาวพจน์"] = { aliases = {"รื่นหู", "นุ่มนวล", "สละสลวย", "euphemistic", "euphemism"}, glossary = "เสาวพจน์", pos_categories = "เสาวพจน์", } labels["eye dialect"] = { display = "[[eye dialect]]", pos_categories = true, } labels["familiar"] = { glossary = true, -- should be "terms with X senses", leaving "X terms" to the term-context temp? pos_categories = "familiar terms", } labels["fandom slang"] = { aliases = {"fandom"}, display = "[[fandom]] [[slang]]", pos_categories = true, } --[=[ merged down labels["figurative"] = { aliases = {"metaphorical", "metaphoric", "metaphor"}, glossary = "ในเชิงเปรียบเทียบ", } --]=] labels["ในเชิงเปรียบเทียบ"] = { aliases = {"metaphorically", "metaphorical", "metaphoric", "metaphor", "figuratively", "figurative", "ภาพพจน์", "เปรียบเทียบ", "อุปมาอุปไมย", "อุปลักษณ์", "โดยปริยาย"}, glossary = "ในเชิงเปรียบเทียบ", } labels["folk poetic"] = { -- should be "terms with X senses", leaving "X terms" to the term-context temp pos_categories = {"folk poetic terms", "poetic terms"}, } labels["ทางการ"] = { aliases = {"formal", "เป็นทางการ"}, glossary = true, -- should be "terms with X senses", leaving "X terms" to the term-context temp? pos_categories = "ศัพท์ที่เป็นทางการ", } labels["gay slang"] = { display = "[[gay]] [[slang]]", pos_categories = true, } labels["gender critical slang"] = { aliases = {"gender-critical slang", "GC slang", "TERF slang"}, display = "[[gender-critical]] [[slang]]", pos_categories = "gender-critical slang", } labels["ไม่ระบุเพศ"] = { aliases = {"gender-neutral"}, glossary = "ไม่ระบุเพศ", pos_categories = "ศัพท์ที่ไม่ระบุเพศ", } labels["genericized trademark"] = { aliases = {"generic trademark", "proprietary eponym"}, display = "[[genericized trademark]]", pos_categories = "genericized trademarks", } labels["ghost word"] = { aliases = {"ghost"}, display = "ghost word", glossary = true, pos_categories = "ghost words", } labels["hapax legomenon"] = { aliases = {"hapax"}, display = "hapax legomenon", glossary = true, pos_categories = "hapax legomena", } labels["higher register"] = { aliases = {"high register", "elevated register", "elevated"}, glossary = "higher register", pos_categories = "higher register terms", } labels["historical"] = { aliases = {"historic"}, glossary = true, sense_categories = true, } labels["non-native speakers"] = {-- language-agnostic version aliases = {"NNS"}, display = "[[non-native speaker]]s", -- so preceded by "used by", "error by children and", etc? or reword? regional_categories = {"Non-native speakers'"}, } labels["non-native speakers' English"] = { aliases = {"NNES", "NNSE"}, display = "[[non-native speaker]]s' English", regional_categories = "Non-native speakers'", } -- used exclusively by languages that use the "Jpan" script code labels["historical hiragana"] = { pos_categories = true, } -- used exclusively by languages that use the "Jpan" script code labels["historical katakana"] = { pos_categories = true, } -- applies to Japanese and Korean, etc., please do not confuse with "polite" labels["honorific"] = { Wikipedia = "Honorifics (linguistics)", -- should be "terms with X senses", leaving "X terms" to the term-context temp? pos_categories = "honorific terms", } -- for Ancient Greek labels["Homeric epithet"] = { display = "[[Homeric Greek|Homeric]] [[w:Epithets in Homer|epithet]]", omit_postComma = true, plain_categories = "Epic Greek", } -- applies to Japanese and Korean, etc. labels["humble"] = { -- should be "terms with X senses", leaving "X terms" to the term-context temp? display = "[[humble]]", pos_categories = "humble terms", } -- for Akkadian labels["in hendiadys"] = { aliases = {"hendiadys"}, pos_categories = "hendiadys", } labels["ขำขัน"] = { -- should be "terms with X senses", leaving "X terms" to the term-context temp; NB and cf a similar "jocular" label further up on this page aliases = {"humorous", "humorously", "jocular", "ตลก"}, display = "[[ขำขัน]]", pos_categories = "ศัพท์ที่ขำขัน", } labels["อติพจน์"] = { aliases = {"hyperbolic", "hyperbole", "เกินจริง"}, glossary = true, pos_categories = "อติพจน์", } labels["แก้ไขเกินเหตุ"] = { aliases = {"hypercorrect", "hypercorrections", "การแก้ไขเกินเหตุ"}, glossary = true, pos_categories = "ศัพท์ที่แก้ไขเกินเหตุ", } labels["hyperforeign"] = { glossary = true, pos_categories = "hyperforeign terms", } labels["imperial"] = { aliases = {"emperor", "empress"}, pos_categories = "royal terms", } labels["incel slang"] = { display = "[[incel]] [[slang]]", pos_categories = true, } labels["ไม่ทางการ"] = { aliases = {"informal", "informally", "ไม่เป็นทางการ"}, glossary = true, -- should be "terms with X senses", leaving "X terms" to the term-context temp pos_categories = "ศัพท์ที่ไม่เป็นทางการ", } labels["สแลงอินเทอร์เน็ต"] = { aliases = {"Internet slang", "internet slang"}, display = "[[สแลง]][[อินเทอร์เน็ต]]", pos_categories = "สแลงอินเทอร์เน็ต", } labels["ไออาร์ซี"] = { aliases = {"IRC"}, display = "[[ไออาร์ซี]]", pos_categories = "สแลงอินเทอร์เน็ต", } labels["ironic"] = { display = "[[irony|ironic]]", } -- Not the same as "journalism", which maps to a topical category (e.g. [[:Category:en:Journalism]], instead of [[:Category:English journalistic terms]]). labels["ภาษาข่าว"] = { aliases = {"journalese", "journalistic"}, display = "[[ภาษาข่าว]]", pos_categories = "ศัพท์ที่เป็นภาษาข่าว", } labels["leet"] = { aliases = {"leetspeak"}, display = "[[leetspeak]]", pos_categories = true, } labels["LGBTQ slang"] = { aliases = {"LGBT slang"}, display = "[[LGBTQ]] [[slang]]", pos_categories = true, } labels["literal"] = { glossary = "literally", } labels["literally"] = { glossary = "literally", } labels["ภาษาหนังสือ"] = { -- should be "terms with X senses", leaving "X terms" to the term-context temp aliases = {"literary", "bookish", "ภาษาเขียน", "ภาษาแบบแผน", "หนังสือ", "เขียน", "แบบแผน", "แบบ"}, glossary = true, pos_categories = "ศัพท์ที่เป็นภาษาหนังสือ", } labels["loosely"] = { aliases = {"loose", "broadly", "broad"}, glossary = true, } labels["Lubunyaca"] = { display = "[[Lubunyaca]]", pos_categories = true, } labels["medical slang"] = { display = "[[medical]] [[slang]]", pos_categories = true, } -- for Awetí, Karajá, etc., where men and women use different words labels["men's speech"] = { aliases = {"male speech"}, glossary = "men's speech", pos_categories = "men's speech terms", } labels["metonymically"] = { aliases = {"metonymic", "metonymy", "metonym"}, glossary = true, pos_categories = "metonyms", } labels["military slang"] = { display = "[[military]] [[slang]]", pos_categories = true, } labels["คำสบถแปลง"] = { aliases = {"minced oath"}, display = "[[คำสบถแปลง]]", pos_categories = "คำสบถแปลง", } labels["multiplicative"] = { aliases = {"multiplicative number", "multiplicative numeral"}, display = "[[multiplicative number]]", pos_categories = "multiplicative numbers", } labels["multiplicity slang"] = { display = "{{l|en|multiplicity|id=multiple personalities}} [[slang]]", pos_categories = true, } labels["nativising coinage"] = { display = "[[w:Linguistic purism in Korean|nativising coinage]]", pos_categories = "nativising coinages", } labels["naval slang"] = { aliases = {"navy slang"}, display = "[[naval]] [[slang]]", pos_categories = true, } labels["นวศัพท์"] = { aliases = {"neologism", "neologistic", "ศัพท์ใหม่"}, glossary = true, pos_categories = "นวศัพท์", } labels["neopronoun"] = { display = "[[neopronoun]]", -- pos_categories = {"neopronouns"}, } labels["no longer productive"] = { display = "no longer [[Appendix:Glossary#productive|productive]]", } labels["nonce word"] = { -- should be "terms with X senses", leaving "X terms" to the term-context temp? aliases = {"nonce"}, glossary = true, pos_categories = "nonce terms", } labels["ภาษาไม่มาตรฐาน"] = { aliases = {"non-standard", "nonstandard", "substandard", "sub-standard", "ไม่มาตรฐาน"}, glossary = true, -- should be "terms with X senses", leaving "X terms" to the term-context temp pos_categories = "ศัพท์ที่เป็นภาษาไม่มาตรฐาน", } labels["nonstandard form"] = { aliases = {"non-standard form", "substandard form", "sub-standard form"}, glossary = "nonstandard", pos_categories = "nonstandard forms", } labels["เลิกใช้"] = { aliases = {"obsolete", "เลิก"}, glossary = true, sense_categories = true, } labels["obsolete term"] = { glossary = "obsolete", -- combine with previous two, q.v. pos_categories = "obsolete terms", } labels["ล่วงเกิน"] = { aliases = {"offensive", "ล่วงละเมิด", "โจมตี", "รุกราน", "ก้าวร้าว"}, glossary = true, -- should be "terms with X senses", leaving "X terms" to the term-context temp pos_categories = "ศัพท์ที่ล่วงเกิน", } labels["officialese"] = { aliases = {"bureaucratic"}, display = "[[officialese]]", pos_categories = "officialese terms", } labels["OpenStreetMap"] = { aliases = {"osm", "OSM"}, Wikipedia = true, pos_categories = "OpenStreetMap jargon", } labels["Oxbridge slang"] = { display = "[[w:Oxbridge|Oxbridge]] [[slang]]", topical_categories = "Universities", plain_categories = {"Cambridge University slang", "Oxford University slang"}, } labels["Oxford University slang"] = { aliases = {"University of Oxford slang", "Oxon slang"}, display = "[[w:University of Oxford|Oxford University]] [[slang]]", topical_categories = "Universities", plain_categories = true, } labels["ร้อยกรอง"] = { aliases = {"poi"}, -- Only used in Ancient Greek as a holdover from [[Module:grc:Dialects]]. -- should be "terms with X senses", leaving "X terms" to the term-context temp aliases = {"poetic", "กลอน", "กวี"}, glossary = true, pos_categories = "ศัพท์ที่ใช้ในบทร้อยกรอง", } labels["สุภาพ"] = { aliases = {"polite"}, pos_categories = "ศัพท์ที่สุภาพ", } labels["post-classical"] = { aliases = {"Post-classical", "post-Classical", "Post-Classical", "Postclassical", "postclassical"}, display = "post-Classical", regional_categories = true, } labels["prison slang"] = { display = "[[prison]] [[slang]]", pos_categories = true, } labels["ไม่ควรใช้"] = { aliases = {"proscribed", "ห้ามใช้", "ต้องห้าม"}, glossary = true, pos_categories = "ศัพท์ที่ไม่ควรใช้", } labels["puristic"] = { aliases = {"purism"}, Wikipedia = "Linguistic purism", pos_categories = "puristic terms", } labels["radio slang"] = { display = "[[radio]] [[slang]]", pos_categories = true, } labels["Reddit slang"] = { display = "[[Reddit]] [[slang]]", pos_categories = true, } labels["พบได้ยาก"] = { aliases = {"rare", "rare sense", "พบยาก", "พบน้อย", "พบได้น้อย", "หายาก", "ใช้ไม่บ่อย"}, glossary = true, sense_categories = true, } labels["rare term"] = { display = "rare", -- see comments about "obsolete" pos_categories = "rare terms", } -- cf Cockney rhyming slang labels["rhyming slang"] = { display = "[[rhyming slang]]", pos_categories = true, } labels["religious slur"] = { aliases = {"sectarian slur"}, display = "[[religious]] [[slur]]", pos_categories = "religious slurs", } labels["นิวัตนาม"] = { aliases = {"retronym", "retro"}, glossary = true, pos_categories = "คำนิวัตนาม", } labels["reverential"] = { -- should be "terms with X senses", leaving "X terms" to the term-context temp? display = "[[reverential]]", pos_categories = "reverential terms", } labels["ราชาศัพท์"] = { aliases = {"regal", "royal"}, pos_categories = "ราชาศัพท์", } labels["rustic"] = { glossary = true, -- should be "terms with X senses", leaving "X terms" to the term-context temp? aliases = {"rural"}, pos_categories = "rustic terms", } labels["เสียดสี"] = { aliases = {"ประชด", "ประชดประชัน", "เหน็บแนม", "sarcastic", "sarcasm"}, display = "[[เสียดสี]]", pos_categories = "ศัพท์ที่เสียดสี", } labels["school slang"] = { aliases = {"public school slang"}, display = "[[school]] [[slang]]", pos_categories = true, } labels["self-deprecatory"] = { aliases = {"self-deprecating"}, display = "[[self-deprecatory]]", -- should be "terms with X senses", leaving "X terms" to the term-context temp? pos_categories = "self-deprecatory terms", } -- Swahili Sheng cant / argot -- should this be in a language-specific module? labels["Sheng"] = { Wikipedia = "Sheng slang", plain_categories = true, } labels["siglum"] = { aliases = {"sigla"}, glossary = true, pos_categories = "sigla", } labels["สแลง"] = { aliases = {"slang"}, glossary = true, pos_categories = true, } labels["university slang"] = { aliases = {"college slang", "student slang"}, display = "[[university]] [[slang]]", topical_categories = "Universities", pos_categories = "student slang", } labels["Stenoscript"] = { aliases = {"stenoscript"}, display = "[[Stenoscript]]", pos_categories = "Stenoscript abbreviations", } labels["superseded"] = { glossary = true } labels["swear word"] = { aliases = {"profanity", "expletive"}, pos_categories = "swear words", } labels["syncopated"] = { aliases = {"syncope", "syncopic", "syncopation"}, glossary = true, pos_categories = "syncopic forms", } labels["synecdochically"] = { aliases = {"synecdochic", "synecdochical", "synecdoche"}, glossary = true, pos_categories = "synecdoches", } labels["ศัพท์เฉพาะ"] = { aliases = {"technical"}, display = "[[ศัพท์เฉพาะ]]", pos_categories = "ศัพท์เฉพาะ", } labels["telic"] = { glossary = true, } labels["text messaging"] = { aliases = {"texting"}, display = "[[text messaging]]", pos_categories = "text messaging slang", } labels["tone indicator"] = { display = "[[tone indicator]]", pos_categories = "tone indicators", } labels["เครื่องหมายการค้า"] = { aliases = {"trademark", "ยี่ห้อ"}, display = "[[เครื่องหมายการค้า]]", pos_categories = true, } labels["transferred sense"] = { glossary = true, pos_categories = "terms with transferred senses", } labels["transferred senses"] = { display = "[[transferred sense#English|transferred senses]]", pos_categories = "terms with transferred senses", } labels["transgender slang"] = { aliases = {"trans slang"}, display = "[[transgender]] [[slang]]", pos_categories = true, } labels["Twitch-speak"] = { display = "[[Twitch-speak]]", pos_categories = true, } labels["uds."] = { display = "[[Appendix:Spanish pronouns#Ustedes and vosotros|used formally in Spain]]", } labels["uncommon"] = { glossary = true, sense_categories = true, } labels["used only in songs"] = { aliases = {"only used in songs", "songs"}, pos_categories = "terms used only in songs", display = "used only in [[song]]s", } labels["used only in tales"] = { aliases = {"only used in tales", "tales"}, pos_categories = "terms used only in tales", display = "used only in [[tale]]s", } labels["verlan"] = { glossary = true, plain_categories = true, } labels["very rare"] = { display = "very [[Appendix:Glossary#rare|rare]]", sense_categories = "rare", } labels["หยาบคาย"] = { aliases = {"vulgar", "coarse", "obscene", "profane", "หยาบ", "ไม่สุภาพ"}, glossary = true, pos_categories = "ศัพท์ที่หยาบคาย", } labels["vesre"] = { Wikipedia = true, plain_categories = true, } labels["youth slang"] = { display = "[[youth]] [[slang]]", pos_categories = "slang", } labels["2channel slang"] = { aliases = {"2channel", "2ch slang"}, display ="[[w:2channel|2channel]] [[slang]]", pos_categories = {"สแลงอินเทอร์เน็ต" , "2channel slang"}, } -- for Awetí, Karajá, etc., where men & women use different words labels["women's speech"] = { aliases = {"female speech"}, glossary = "women's speech", pos_categories = "women's speech terms", } -- terms applying to Old Norse skaldic poetry labels["kenning"] = { aliases = {"Kenning"}, Wikipedia = "Kenning", pos_categories = "kennings", } labels["heiti"] = { aliases = {"Heiti"}, Wikipedia = "Heiti", pos_categories = true, } return require("Module:labels").finalize_data(labels) 4ric3o4e78g5xsbtr6fg6ljbga8swr2 เน็ต 0 50258 5724820 4756629 2026-06-16T02:17:35Z OctraBot 3198 /* ภาษาไทย */ 5724820 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === รากศัพท์ 1 === {{bor+|th|en|net||ตาข่าย}} ==== การออกเสียง ==== {{th-pron|เน็ด}} ==== คำนาม ==== {{th-noun}} # {{lb|th|กีฬา}} [[ตาข่าย]] (โดยเฉพาะสำหรับกีฬา) === รากศัพท์ 2 === {{clipping|th|อินเทอร์เน็ต}}, จาก{{der|th|en|Internet}} ==== การออกเสียง ==== {{th-pron|เหฺน็ด}} ==== คำวิสามานยนาม ==== {{th-proper noun}} # {{lb|th|ปาก}} {{synonym of|th|อินเทอร์เน็ต}} {{topics|th|อินเทอร์เน็ต}} fq7atp7plf1vhlrt2wmnv2ll8uhlpuw 5724821 5724820 2026-06-16T02:18:04Z OctraBot 3198 /* คำนาม */ 5724821 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === รากศัพท์ 1 === {{bor+|th|en|net||ตาข่าย}} ==== การออกเสียง ==== {{th-pron|เน็ด}} ==== คำนาม ==== {{th-noun}} # {{lb|th|ปาก|กีฬา}} [[ตาข่าย]] === รากศัพท์ 2 === {{clipping|th|อินเทอร์เน็ต}}, จาก{{der|th|en|Internet}} ==== การออกเสียง ==== {{th-pron|เหฺน็ด}} ==== คำวิสามานยนาม ==== {{th-proper noun}} # {{lb|th|ปาก}} {{synonym of|th|อินเทอร์เน็ต}} {{topics|th|อินเทอร์เน็ต}} 9dkcj5g9v3buh7t0yilqidwuvkx0jm7 5724822 5724821 2026-06-16T02:23:04Z OctraBot 3198 5724822 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == ==== การออกเสียง ==== {{th-pron|เน็ด:สำหรับรากศัพท์ 1|เหฺน็ด:สำหรับรากศัพท์ 2}} === รากศัพท์ 1 === {{bor+|th|en|net||ตาข่าย}} ==== คำนาม ==== {{th-noun}} # {{lb|th|ปาก|กีฬา}} [[ตาข่าย]] === รากศัพท์ 2 === {{clipping|th|อินเทอร์เน็ต}}, จาก{{der|th|en|Internet}} ==== คำวิสามานยนาม ==== {{th-proper noun}} # {{lb|th|ปาก}} {{synonym of|th|อินเทอร์เน็ต}} {{topics|th|อินเทอร์เน็ต}} hz9szv7vebonx7vwgvjpo6h0k0n6uit 5724823 5724822 2026-06-16T02:23:45Z OctraBot 3198 /* การออกเสียง */ 5724823 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === การออกเสียง === {{th-pron|เน็ด:สำหรับรากศัพท์ 1|เหฺน็ด:สำหรับรากศัพท์ 2}} === รากศัพท์ 1 === {{bor+|th|en|net||ตาข่าย}} ==== คำนาม ==== {{th-noun}} # {{lb|th|ปาก|กีฬา}} [[ตาข่าย]] === รากศัพท์ 2 === {{clipping|th|อินเทอร์เน็ต}}, จาก{{der|th|en|Internet}} ==== คำวิสามานยนาม ==== {{th-proper noun}} # {{lb|th|ปาก}} {{synonym of|th|อินเทอร์เน็ต}} {{topics|th|อินเทอร์เน็ต}} 3wg5usrt45nj635b9hq9l7ywv6n2ema 5724824 5724823 2026-06-16T02:31:25Z OctraBot 3198 /* คำนาม */ 5724824 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === การออกเสียง === {{th-pron|เน็ด:สำหรับรากศัพท์ 1|เหฺน็ด:สำหรับรากศัพท์ 2}} === รากศัพท์ 1 === {{bor+|th|en|net||ตาข่าย}} ==== คำนาม ==== {{th-noun}} # {{lb|th|ปาก|กีฬา}} [[ตาข่าย]] # {{lb|th|ปาก|เศรษฐศาสตร์}} [[ปริมาณ]][[สุทธิ]] เช่น [[รายได้]]สุทธิ [[กำไร]]สุทธิ [[น้ำหนัก]]สุทธิ === รากศัพท์ 2 === {{clipping|th|อินเทอร์เน็ต}}, จาก{{der|th|en|Internet}} ==== คำวิสามานยนาม ==== {{th-proper noun}} # {{lb|th|ปาก}} {{synonym of|th|อินเทอร์เน็ต}} {{topics|th|อินเทอร์เน็ต}} tg4yegbu1lx22a8895bt7ttz5lqlyzb 5724825 5724824 2026-06-16T02:34:17Z OctraBot 3198 /* รากศัพท์ 1 */ 5724825 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === การออกเสียง === {{th-pron|เน็ด:สำหรับรากศัพท์ 1|เหฺน็ด:สำหรับรากศัพท์ 2}} === รากศัพท์ 1 === {{bor+|th|en|net||ตาข่าย; สุทธิ, ปริมาณสุทธิ}} ==== คำนาม ==== {{th-noun}} # {{lb|th|ปาก|กีฬา}} [[ตาข่าย]] # {{lb|th|ปาก|เศรษฐศาสตร์}} [[ปริมาณ]][[สุทธิ]] เช่น [[รายได้]]สุทธิ [[กำไร]]สุทธิ [[น้ำหนัก]]สุทธิ === รากศัพท์ 2 === {{clipping|th|อินเทอร์เน็ต}}, จาก{{der|th|en|Internet}} ==== คำวิสามานยนาม ==== {{th-proper noun}} # {{lb|th|ปาก}} {{synonym of|th|อินเทอร์เน็ต}} {{topics|th|อินเทอร์เน็ต}} o5uqjf5bk98ly1f2itq9edt133shh98 5724826 5724825 2026-06-16T02:37:35Z OctraBot 3198 /* คำนาม */ 5724826 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === การออกเสียง === {{th-pron|เน็ด:สำหรับรากศัพท์ 1|เหฺน็ด:สำหรับรากศัพท์ 2}} === รากศัพท์ 1 === {{bor+|th|en|net||ตาข่าย; สุทธิ, ปริมาณสุทธิ}} ==== คำนาม ==== {{th-noun}} # {{lb|th|ปาก|กีฬา}} [[ตาข่าย]] {{gl|ที่แบ่งครึ่งสนาม}} # {{lb|th|ปาก|เศรษฐศาสตร์}} [[ปริมาณ]][[สุทธิ]] เช่น [[รายได้]]สุทธิ [[กำไร]]สุทธิ [[น้ำหนัก]]สุทธิ === รากศัพท์ 2 === {{clipping|th|อินเทอร์เน็ต}}, จาก{{der|th|en|Internet}} ==== คำวิสามานยนาม ==== {{th-proper noun}} # {{lb|th|ปาก}} {{synonym of|th|อินเทอร์เน็ต}} {{topics|th|อินเทอร์เน็ต}} m535ig5463w6vclw6hxzppf0zk2h7wj 5724830 5724826 2026-06-16T03:05:01Z OctraBot 3198 /* คำนาม */ 5724830 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === การออกเสียง === {{th-pron|เน็ด:สำหรับรากศัพท์ 1|เหฺน็ด:สำหรับรากศัพท์ 2}} === รากศัพท์ 1 === {{bor+|th|en|net||ตาข่าย; สุทธิ, ปริมาณสุทธิ}} ==== คำนาม ==== {{th-noun}} # {{lb|th|ปาก|กีฬา}} [[ตาข่าย]] {{gl|ที่แบ่งครึ่งสนาม}} # {{lb|th|ปาก}} [[ปริมาณ]][[สุทธิ]] เช่น [[รายได้]]สุทธิ [[กำไร]]สุทธิ [[น้ำหนัก]]สุทธิ === รากศัพท์ 2 === {{clipping|th|อินเทอร์เน็ต}}, จาก{{der|th|en|Internet}} ==== คำวิสามานยนาม ==== {{th-proper noun}} # {{lb|th|ปาก}} {{synonym of|th|อินเทอร์เน็ต}} {{topics|th|อินเทอร์เน็ต}} cks29x697lcx138w22l3ztsjmh893j1 คาว 0 50486 5724796 5724785 2026-06-15T16:49:48Z Alifshinobi 397 /* คำนาม */ 5724796 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === รูปแบบอื่น === * {{q|เลิกใช้}} [[ฅาว]] === รากศัพท์ === {{inh+|th|tai-pro|*ɣaːwᴬ}}; ร่วมเชื้อสายกับ{{cog|lo|ຄາວ}}, {{cog|nod|ᨤᩣ᩠ᩅ}}, {{cog|khb|ᦆᦱᧁ}}, {{cog|shn|ၶႅဝ်း}}, {{cog|tdd|ᥑᥦᥝᥰ}} หรือ {{m|tdd|ᥔᥦᥝᥰ}}, {{cog|skb|กฺ๊าว}}; เทียบ{{cog|qfa-lic-pro|*kʰaːw}} === การออกเสียง === {{th-pron}} === คำนาม === {{th-noun}} # [[กลิ่น]][[เหม็น]][[อย่าง]][[หนึ่ง]]อย่างกลิ่น[[ปลา]][[สด]][[เนื้อ]]สด # {{lb|th|โดยปริยาย}} [[ความเสื่อมเสีย]] [[ความมัวหมอง]] [[มลทิน]] #: {{ux|th|ราคีคาว}} #: {{ux|th|คนนั้นยังมีคาว}} # [[เรียก]][[กับข้าว]][[ว่า]] [[ของคาว]], [[คู่]][[กับ]] [[ขนม]] ว่า [[ของหวาน]] == ภาษาเขมรเหนือ == === รากศัพท์ === {{bor+|kxm|th|ข่าว}} === การออกเสียง === * {{IPA|kxm|/kʰaːw/}} === คำนาม === {{kxm-noun}} # [[ข่าว]] s9im7sdrqkez3crhv09kq13qiux6nta 5724858 5724796 2026-06-16T05:41:17Z OctraBot 3198 /* รูปแบบอื่น */ 5724858 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === รูปแบบอื่น === * {{alt|th|ฅาว||เลิกใช้}} === รากศัพท์ === {{inh+|th|tai-pro|*ɣaːwᴬ}}; ร่วมเชื้อสายกับ{{cog|lo|ຄາວ}}, {{cog|nod|ᨤᩣ᩠ᩅ}}, {{cog|khb|ᦆᦱᧁ}}, {{cog|shn|ၶႅဝ်း}}, {{cog|tdd|ᥑᥦᥝᥰ}} หรือ {{m|tdd|ᥔᥦᥝᥰ}}, {{cog|skb|กฺ๊าว}}; เทียบ{{cog|qfa-lic-pro|*kʰaːw}} === การออกเสียง === {{th-pron}} === คำนาม === {{th-noun}} # [[กลิ่น]][[เหม็น]][[อย่าง]][[หนึ่ง]]อย่างกลิ่น[[ปลา]][[สด]][[เนื้อ]]สด # {{lb|th|โดยปริยาย}} [[ความเสื่อมเสีย]] [[ความมัวหมอง]] [[มลทิน]] #: {{ux|th|ราคีคาว}} #: {{ux|th|คนนั้นยังมีคาว}} # [[เรียก]][[กับข้าว]][[ว่า]] [[ของคาว]], [[คู่]][[กับ]] [[ขนม]] ว่า [[ของหวาน]] == ภาษาเขมรเหนือ == === รากศัพท์ === {{bor+|kxm|th|ข่าว}} === การออกเสียง === * {{IPA|kxm|/kʰaːw/}} === คำนาม === {{kxm-noun}} # [[ข่าว]] jhtoplc16jpwwnuvcuehwa1cvwdgvwh มอดูล:category tree/สมบัติเชิงบริบท 828 50719 5724849 5713288 2026-06-16T04:42:30Z OctraBot 3198 5724849 Scribunto text/plain local labels = {} local raw_categories = {} local string_utilities_module = "Module:string utilities" local ucfirst = require(string_utilities_module).ucfirst ----------------------------------------------------------------------------- -- -- -- LABELS -- -- -- ----------------------------------------------------------------------------- labels["ศัพท์แบ่งตามการใช้"] = { description = "{{{langname}}} terms categorized by the manner and context in which they are used by speakers.", umbrella_parents = "มูลฐาน", parents = {{name = "{{{langcat}}}", raw = true}}, } labels["terms by usage"] = labels["ศัพท์แบ่งตามการใช้"] local function generate_category_with_senses(typ, desc, distinguish, other_types_in_group) if distinguish then distinguish = "\n\n" .. distinguish else distinguish = "" end local function make_preceding(pos) if not other_types_in_group then return nil end local cats = {} for _, other_type in ipairs(other_types_in_group) do local poscat = require("Module:th-utilities").th_categorize(pos, "{{{langcat}}}") --th table.insert(cats, ("หมวดหมู่:" .. poscat):format(other_type)) end return ("{{also|%s}}"):format(table.concat(cats, "|")) end local function make_umbrella_preceding(pos) if not other_types_in_group then return nil end local cats = {} for _, other_type in ipairs(other_types_in_group) do table.insert(cats, "หมวดหมู่:" .. ucfirst((pos .. "แบ่งตามภาษา"):format(other_type))) end return ("{{also|%s}}"):format(table.concat(cats, "|")) end labels[("ศัพท์%s"):format(typ)] = { -- out of ศัพท์ภาษาXที่... description = ("{{{langname}}} terms that %s."):format(desc), additional = ("To categorize into this category, use {{tl|tlb|{{{langcode}}}|%s}} (template '''tlb''', not '''lb'''), " .. "which should typically be placed next to the headword.\n\nIf the term is merely a variant (alternative form) of a term " .. "in general use, it should be categorized instead in {{cl|{{{langname}}} %s forms}} (using " .. "{{tl|%s form of|{{{langcode}}}|...}} or {{tl|%s spelling of|{{{langcode}}}|...}}). If only some senses of the term are %s, " .. "it should be categorized instead in {{cl|{{{langname}}} terms with %s senses}}, using {{tl|lb|{{{langcode}}}|%s}} " .. "(template '''lb''' instead of '''tlb'''), which should typically be placed next to the individual sense.%s"):format( typ, typ, typ, typ, typ, typ, typ, distinguish:gsub("POS", "terms")), parents = {"ศัพท์แบ่งตามการใช้"}, preceding = make_preceding("ศัพท์%s"), umbrella = { preceding = make_umbrella_preceding("ศัพท์%s"), additional = ("To categorize into this category, use <code><nowiki>{{</nowiki>tlb|<var>langcode</var>|%s}}</code> " .. "(template '''tlb''', not '''lb'''), which should typically be placed next to the headword. " .. "(<code><var>langcode</var></code> is the appropriate language code for the language in question; see [[Wiktionary:List of languages]].)\n\n" .. "If the term is merely a variant (alternative form) of a term in general use, it should be categorized instead in " .. "{{cl|<var>langname</var> %s forms}} (using <code><nowiki>{{</nowiki>%s form of|<var>langcode</var>|...}}</code> " .. "or <code><nowiki>{{</nowiki>%s spelling of|<var>langcode</var>|...}}</code>). " .. "If only some senses of the term are %s, it should be categorized instead in {{cl|<var>langname</var> terms with %s senses}}, " .. "using <code><nowiki>{{</nowiki>lb|<var>langcode</var>|%s}}</code> (template '''lb''' instead of '''tlb'''), which should " .. "typically be placed next to the individual sense.%s"):format( typ, typ, typ, typ, typ, typ, typ, distinguish:gsub("POS", "terms")), } } labels[("ศัพท์ที่มีนัย%s"):format(typ)] = { description = ("{{{langname}}} terms with individual senses that %s."):format(desc), additional = ("To categorize into this category, use {{tl|lb|{{{langcode}}}|%s}} (template '''lb''', not '''tlb'''), " .. "which should typically be placed next to the individual sense.\n\nIf the term itself, in all its senses, is %s, " .. "it should be placed in {{cl|{{{langname}}} %s terms}} instead, using {{tl|tlb|{{{langcode}}}|%s}} " .. "(template '''tlb''' instead of '''lb'''), which should typically be placed next to the headword. " .. "If the term is merely a variant (alternative form) of a term in general use, it should be categorized in " .. "{{cl|{{{langname}}} %s forms}} (using {{tl|%s form of|{{{langcode}}}|...}} or {{tl|%s spelling of|{{{langcode}}}|...}}).%s"):format( typ, typ, typ, typ, typ, typ, typ, distinguish:gsub("POS", "senses")), parents = {{name = "ศัพท์แบ่งตามการใช้", sort = ("มีนัย%s"):format(typ)}}, breadcrumb = ("มีนัย%s"):format(typ), preceding = make_preceding("ศัพท์ที่มีนัย%s"), umbrella = { preceding = make_umbrella_preceding("ศัพท์ที่มีนัย%s"), additional = ("To categorize into this category, use <code><nowiki>{{</nowiki>lb|<var>langcode</var>|%s}}</code> " .. "(template '''lb''', not '''tlb'''), which should typically be placed next to the individual sense. " .. "(<code><var>langcode</var></code> is the appropriate language code for the language in question; see [[Wiktionary:List of languages]].)\n\n" .. "If the term itself, in all its senses, is %s, it should be placed in {{cl|<var>langname</var> %s terms}} instead, using " .. "<code><nowiki>{{</nowiki>tlb|<var>langcode</var>|%s}}</code> (template '''tlb''' instead of '''lb'''), which should " .. "typically be placed next to the headword. If the term is merely a variant (alternative form) of a term in general use, " .. "it should be categorized in {{cl|<var>langname</var> %s forms}} (using <code><nowiki>{{</nowiki>%s form of|<var>langcode</var>|...}}</code> " .. "or <code><nowiki>{{</nowiki>%s spelling of|<var>langcode</var>|...}}</code>.%s"):format( typ, typ, typ, typ, typ, typ, typ, distinguish:gsub("POS", "senses")), } } labels[("รูป%s"):format(typ)] = { description = ("{{{langname}}} forms that %s; and serve as alternative forms of the same terms in general use."):format(desc), additional = ("To categorize into this category, use {{tl|%s form of|{{{langcode}}}|...}} or {{tl|%s spelling of|{{{langcode}}}|...}}.\n\n" .. "If the term is not merely a variant (alternative form) of a term in general use, it should be placed in {{cl|{{{langname}}} %s terms}} " .. "instead; to do this, use {{tl|tlb|{{{langcode}}}|%s}} (template '''tlb''', not '''lb'''), which should typically be placed next to the " .. "headword. If only some senses of the term are %s, it should be categorized instead in {{cl|{{{langname}}} terms with %s senses}}, " .. "using {{tl|lb|{{{langcode}}}|%s}} (template '''lb''' instead of '''tlb'''), which should typically be placed next to the individual sense.%s"):format( typ, typ, typ, typ, typ, typ, typ, distinguish:gsub("POS", "forms")), parents = {{name = ("ศัพท์%s"):format(typ), sort = "รูป"}}, breadcrumb = "รูป", preceding = make_preceding("รูป%s"), umbrella = { preceding = make_umbrella_preceding("รูป%s"), additional = ("To categorize into this category, use <code><nowiki>{{</nowiki>%s form of|<var>langcode</var>|...}}</code> " .. "or <code><nowiki>{{</nowiki>%s spelling of|<var>langcode</var>|...}}</code>. (<code><var>langcode</var></code> is the " .. "appropriate language code for the language in question; see [[Wiktionary:List of languages]].)\n\n" .. "If the term is not merely a variant (alternative form) of a term in general use, it should be placed in {{cl|<var>langname</var> %s terms}} " .. "instead; to do this, use <code><nowiki>{{</nowiki>lb|<var>langcode</var>|%s}}</code> (template '''tlb''', not '''lb'''), " .. "which should typically be placed next to the headword. If only some senses of the term are %s, it should be categorized instead " .. "in {{cl|<var>langname</var> terms with %s senses}}, using <code><nowiki>{{</nowiki>lb|<var>langcode</var>|%s}}</code> " .. "(template '''lb''' instead of '''tlb'''), which should typically be placed next to the individual sense.%s"):format( typ, typ, typ, typ, typ, typ, typ, distinguish:gsub("POS", "forms")), } } end local function generate_related_categories_with_senses(info) for typ, spec in pairs(info) do local other_types = {} for other_type, _ in pairs(info) do if other_type ~= typ then table.insert(other_types, other_type) end end table.sort(other_types) generate_category_with_senses(typ, spec.desc, spec.distinguish, other_types) end end generate_related_categories_with_senses { ["โบราณ"] = { desc = "are no longer in general use but still encountered in older literature, sometimes still used for special effect, and typically recognized by native speakers", distinguish = "Archaic POS should be distinguished from dated POS, which are merely [[unfashionable]] and [[anachronistic]] but still sometimes used, especially by older speakers; and on the other hand from obsolete POS, which are no longer in use at all and are not usually recognized by native speakers.", }, ["ล้าสมัย"] = { desc = "are no longer fashionable and thus are [[anachronistic]], but still sometimes in use, especially by older speakers", distinguish = "Dated POS should be distinguished from archaic POS, which are no longer in use (except occasionally for special effect) but are still sometimes encountered in older literature and are typically recognized by native speakers; and obsolete POS, which are no longer in use at all and are not usually recognized by native speakers.", }, ["เลิกใช้"] = { desc = "are no longer in use and not usually recognized by native speakers, but still sometimes found in older literature", distinguish = "Obsolete POS should be distinguished from archaic POS, which, although no longer in general use, are still occasionally used for special effect and are typically recognized by native speakers; and dated POS, which are merely [[unfashionable]] and [[anachronistic]] but still sometimes used, especially by older speakers.", }, } generate_related_categories_with_senses { ["พบได้ยาก"] = { desc = "are rarely found in general use and may not be recognized by some native speakers", distinguish = "Rare POS should be distinguished from uncommon POS, which are not common but used enough to be generally recognized.", }, ["ไม่สามัญ"] = { desc = "are in general use but not common", distinguish = "Uncommon POS should be distinguished from rare POS, which are infrequent enough that they are sometimes not recognized by native speakers.", }, } labels["2channel slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to users of the website {{w|2channel}}.", parents = {"สแลงอินเทอร์เน็ต"}, } labels["4chan slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to users of the website {{w|4chan}}.", parents = {"สแลงอินเทอร์เน็ต"}, } labels["4chan /lgbt/ slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to users of the /lgbt/ board of the website {{w|4chan}}.", parents = {"4chan slang", "สแลงแอลจีบีทีคิว"}, } labels["angry register terms"] = { description = "{{{langname}}} terms belonging to an angry linguistic register, used only when the speaker is angry.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["anti-LGBTQ slurs"] = { description = "{{{langname}}} terms that are intended to offend [[LGBTQ]] people.", parents = {"ศัพท์ที่ล่วงเกิน"}, } labels["autological terms"] = { description = "{{{langname}}} terms that possess the property they themselves describe.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["back slang"] = { description = "{{{langname}}} terms in which the written word is spoken phonemically backwards to form a coded language.", parents = {"cant"}, } labels["cant"] = { description = "{{{langname}}} terms used to form secret languages that are typically restricted to members of a specific group.", parents = {"สแลง"}, } labels["censored spellings"] = { description = "{{{langname}}} spellings where some characters have been changed in an effort to reduce the shock value of the original term.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["ศัพท์ที่เป็นภาษาเด็ก"] = { description = "{{{langname}}} terms that are typically only used by, or to, children.", parents = {"ศัพท์แบ่งตามการใช้", "ศัพท์ที่ไม่เป็นทางการ"}, } labels["childish terms"] = labels["ศัพท์ที่เป็นภาษาเด็ก"] labels["ศัพท์ที่เป็นภาษาปาก"] = { description = "{{{langname}}} terms that are likely to be used primarily in casual conversation rather than in more formal written works, speeches, and discourse.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["colloquialisms"] = labels["ศัพท์ที่เป็นภาษาปาก"] labels["corporate jargon"] = { description = "{{{langname}}} terms (typically for non-business-specific concepts) that are used especially in a [[business]] or [[corporate]] [[context]].", additional = "See also [[:หมวดหมู่:กิจการ]], [[:หมวดหมู่:ธุรกิจ]] and language-specific categories thereof for terms related to business-specific concepts.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["criminal slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to criminals.", parents = {"สแลง"}, } labels["ศัพท์ที่ดูหมิ่น"] = { description = "{{{langname}}} terms that are intended to [[disparage]], [[demean]], [[insult]] or [[offend]].", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["derogatory terms"] = labels["ศัพท์ที่ดูหมิ่น"] labels["dialectal terms"] = { description = "{{{langname}}} terms that are not used in standard language but only in dialects.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["dis legomena"] = { description = "{{{langname}}} terms that are attested only twice in the entire corpus.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["drag slang"] = { description = "{{{langname}}} [[slang]] terms used in the [[drag]] community.", parents = {"สแลงแอลจีบีทีคิว"}, } labels["ecclesiastical terms"] = { description = "{{{langname}}} terms used only by religious figures.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["eggcorns"] = { description = "{{{langname}}} [[eggcorn]]s, terms which are misconstructed.", parents = {"misconstructions"}, } labels["emoticons"] = { description = "{{{langname}}} characters, or sequences of characters, that imitate expressions and other objects by means of [[pareidolia]].", parents = {"สแลงอินเทอร์เน็ต", "text messaging slang"}, } labels["endearing terms"] = { description = "{{{langname}}} terms that are used to show affection or endearment to another person.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["ethnic slurs"] = { description = "{{{langname}}} terms that are intended to offend certain ethnic groups.", parents = {"ศัพท์ที่ล่วงเกิน"}, } labels["expressive terms"] = { description = "{{{langname}}} terms with additional expressive content compared with the basic meaning of the term.", additional = "This term is common in Slavic lexicography and is found in most Czech, Slovak and Polish dictionaries, but there is no exact equivalent in English lexicography. The closest equivalents might be a combination of ''colloquial'' and either ''endearing'' or ''pejorative'', as the case may be.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["eye dialect"] = { description = "{{{langname}}} nonstandard spellings, which however do not change pronunciation, deliberately used by an author to indicate that the speaker uses a nonstandard or dialectal speech.", parents = {"nonstandard forms", "ศัพท์แบ่งตามสมบัติเชิงอักขรวิธี"}, } labels["familiar terms"] = { description = "{{{langname}}} terms whose use is typically to contexts of friendly intimacy.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["fandom slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to fans of one or more works of fiction.", parents = {"สแลง"}, } labels["filter-avoidance spellings"] = { description = "Deliberate misspellings of {{{langname}}} terms that are used to avoid [[w:Wordfilter|wordfilters]].", parents = {"รูปเจตนาสะกดผิด"}, } labels["folk poetic terms"] = { description = "{{{langname}}} terms whose usage is typically restricted to works of oral or folk poetry.", parents = {"ศัพท์แบ่งตามการใช้", "ศัพท์ที่ใช้ในบทร้อยกรอง"}, } labels["ศัพท์ที่เป็นทางการ"] = { description = "{{{langname}}} terms whose use is typically restricted to polite, ceremonious, non-casual contexts.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["formal terms"] = labels["ศัพท์ที่เป็นทางการ"] labels["gay slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to homosexual people.", parents = {"สแลงแอลจีบีทีคิว"}, } labels["gender-critical slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to gender-critical feminists.", parents = {"สแลง", "หมวดหมู่:{{{langcode}}}:Gender-critical feminism"}, } labels["ศัพท์ที่ไม่ระบุเพศ"] = { description = "{{{langname}}} terms that are applicable to all people, independent of gender.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["gender-neutral terms"] = labels["ศัพท์ที่ไม่ระบุเพศ"] labels["graffiti slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to creators of [[graffiti#Noun|graffiti]].", parents = {"สแลง", "หมวดหมู่:{{{langcode}}}:ศิลปะ"}, } labels["higher register terms"] = { description = "{{{langname}}} terms belonging to a higher linguistic register, such as literary terms; such terms are somewhat less common or known.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["historical terms"] = { description = "{{{langname}}} terms that refer to obsolete things or concepts.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["honorific terms"] = { description = "{{{langname}}} [[honorific]] terms, which are used to show deference and respect.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["ศัพท์ที่สุภาพ"] = { description = "{{{langname}}} [[polite]] terms, which are used to show deference and respect.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["polite terms"] = labels["ศัพท์ที่สุภาพ"] labels["hapax legomena"] = { description = "{{{langname}}} terms that are attested only once in the entire corpus.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["humble terms"] = { description = "{{{langname}}} [[humble]] terms, which are used to show humility towards the addressee, indicating that the speaker has a lower social standing.", parents = {"honorific terms"}, } labels["hypercorrections"] = { description = "{{{langname}}} forms of other terms by misapplications of grammatical or orthographical rules.", parents = {"ศัพท์ที่ไม่เป็นมาตรฐาน", "nonstandard forms"}, } labels["hyperforeign terms"] = { description = "{{{langname}}} terms created by misapplying the perceived grammatical, orthographical or phonetical rules of another language.", parents = {"hypercorrections"}, } labels["incel slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to incels.", parents = {"สแลง", "หมวดหมู่:{{{langcode}}}:Incel community"}, } labels["imperfective forms"] = { description = "{{{langname}}} verbs that serve as imperfective variants of perfective verbs, sharing the same base set of meanings.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["informal forms"] = { description = "{{{langname}}} terms that can be used in casual, non-ceremonious conversations as alternative forms of other terms.", additional = "Informal non-lemma form variants also belong here.", parents = {"ศัพท์ที่ไม่เป็นทางการ"}, } labels["ศัพท์ที่ไม่เป็นทางการ"] = { description = "{{{langname}}} terms whose use is typically restricted to casual, non‐ceremonious conversations.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["informal terms"] = labels["ศัพท์ที่ไม่เป็นทางการ"] labels["รูปเจตนาสะกดผิด"] = { description = "Deliberate misspellings of {{{langname}}} terms.", parents = {"รูปสะกดผิด"}, } labels["deliberate misspellings"] = labels["รูปเจตนาสะกดผิด"] labels["internet laughter slang"] = { description = "{{{langname}}} [[slang]] terms that are used as substitutes for laughter in internet-related contexts.", additional = "::''Note: The majority of items that <u>could</u> be here do not meet Wiktionary's [[WT:CFI|criteria for inclusion]].''", parents = {"สแลงอินเทอร์เน็ต"}, } labels["สแลงอินเทอร์เน็ต"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to internet users.", parents = {"สแลง"}, } labels["internet slang"] = labels["สแลงอินเทอร์เน็ต"] labels["ศัพท์ที่ขำขัน"] = { description = "{{{langname}}} terms that are humorous, amusing or joking.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["humorous terms"] = labels["ศัพท์ที่ขำขัน"] labels["ศัพท์ที่เป็นภาษาข่าว"] = { description = "{{{langname}}} terms that are used especially in [[journalistic]] language, i.e. in newspapers and magazines.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["journalistic terms"] = labels["ศัพท์ที่เป็นภาษาข่าว"] labels["kennings"] = { description = "{{{langname}}} metaphorical compounds or phrases describing basic objects in an allusive fashion, used especially in Germanic poetry.", parents = {"ศัพท์ที่ใช้ในบทร้อยกรอง"}, } labels["leetspeak"] = { description = "{{{langname}}} which are used in [[leetspeak]], a variety of internet slang that focuses on substitution of letters by other characters which are similar in appearance.", parents = {"สแลงอินเทอร์เน็ต"}, } labels["สแลงแอลจีบีทีคิว"] = { description = "{{{langname}}} [[slang]] terms which are used predominantly among [[LGBTQ]] people.", parents = {"สแลง", "Category:{{{langcode}}}:แอลจีบีทีคิว"}, } labels["LGBTQ slang"] = labels["สแลงแอลจีบีทีคิว"] labels["ศัพท์ที่เป็นภาษาหนังสือ"] = { description = "{{{langname}}} terms whose usage is typically restricted to works of literature.", parents = {"higher register terms"}, } labels["literary terms"] = labels["ศัพท์ที่เป็นภาษาหนังสือ"] labels["สแลงการแพทย์"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to medical doctors, such as physicians and surgeons.", parents = {"สแลง"}, } labels["medical slang"] = labels["สแลงการแพทย์"] labels["สแลงการทหาร"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to military personnel.", parents = {"สแลง"}, } labels["military slang"] = labels["สแลงการทหาร"] labels["misconstructions"] = { description = "Terms wrongly built due to a misunderstanding of their parts.", parents = {"nonstandard forms"}, } labels["misromanizations"] = { description = "Common misromanizations of {{{langname}}} terms.", parents = {"nonstandard forms"}, } labels["รูปสะกดผิด"] = { description = "Common accidental misspellings of {{{langname}}} terms and some terms which are deliberate misspellings.", parents = {"nonstandard forms"}, } labels["misspellings"] = labels["รูปสะกดผิด"] labels["multiplicity slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to the {{l|en|multiplicity|id=multiple personalities}} [[community]].", parents = {"สแลง", "Category:{{{langcode}}}:Multiplicity (psychology)"}, } labels["naval slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to naval personnel.", parents = {"สแลงการทหาร"}, } labels["nonstandard forms"] = { description = "{{{langname}}} forms of standard terms that are considered improper, incorrect or commonly misused.", parents = {"ศัพท์ที่ไม่เป็นมาตรฐาน"}, } labels["ศัพท์ที่ไม่เป็นมาตรฐาน"] = { description = "{{{langname}}} terms that are considered improper, incorrect or commonly misused.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["nonstandard terms"] = labels["ศัพท์ที่ไม่เป็นมาตรฐาน"] labels["numismatic slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to numismatists.", parents = {"สแลง", "หมวดหมู่:{{{langcode}}}:เงินตรา"}, } labels["ศัพท์ที่ล่วงเกิน"] = { description = "{{{langname}}} terms that are typically considered to offend people.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["offensive terms"] = labels["ศัพท์ที่ล่วงเกิน"] labels["officialese terms"] = { description = "{{{langname}}} terms that are chiefly used by official sources, and are often bureaucratic-sounding.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["oxymorons"] = { description = "{{{langname}}} terms that are juxtapositions of opposing ideas.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["perfective forms"] = { description = "{{{langname}}} verbs that serve as perfective variants of imperfective verbs, sharing the same base set of meanings.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["placeholder terms"] = { description = "{{{langname}}} terms used to refer to items for which one does not know or cannot recall the name, or is unable to or does not care to specify precisely.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["poetic forms"] = { description = "{{{langname}}} terms that can be used in works of poetry as poetic alternative forms of other terms.", additional = "Poetic non-lemma form variants also belong here.", parents = {"ศัพท์ที่ใช้ในบทร้อยกรอง"}, } labels["ศัพท์ที่ใช้ในบทร้อยกรอง"] = { description = "{{{langname}}} terms whose usage is typically restricted to works of poetry.", parents = {"ศัพท์แบ่งตามการใช้", "ศัพท์ที่เป็นภาษาหนังสือ"}, } labels["poetic terms"] = labels["ศัพท์ที่ใช้ในบทร้อยกรอง"] labels["post-nominal letters"] = { description = "{{{langname}}} Post-nominal letters - also called post-nominal initials, post-nominal titles or designatory letters are letters placed after the name of a person to indicate that the individual holds a position, educational degree, accreditation, office, military decoration, or honour, or is a member of a religious institute or fraternity.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["prison slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to detainees in correctional institutions.", parents = {"สแลง"}, } labels["ศัพท์ที่ไม่ควรใช้"] = { description = "{{{langname}}} terms whose usage is proscribed; thus, they are considered wrong according to prescriptive sources.", parents = {"ศัพท์แบ่งตามการใช้", "ศัพท์ที่ไม่เป็นมาตรฐาน"}, } labels["proscribed terms"] = labels["ศัพท์ที่ไม่ควรใช้"] labels["puristic terms"] = { description = "{{{langname}}} terms adopted for [[w:Linguistic purism|linguistic purism]].", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["สแลงวิทยุ"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to radio communication.", parents = {"สแลง"}, } labels["radio slang"] = labels["สแลงวิทยุ"] labels["Reddit slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to users of the website {{w|Reddit}}.", parents = {"สแลงอินเทอร์เน็ต"}, } labels["religious slurs"] = { description = "{{{langname}}} terms that are intended to offend members of certain religions.", parents = {"ศัพท์ที่ล่วงเกิน"}, } labels["reverential terms"] = { description = "{{{langname}}} [[reverential]] terms, which are used to exalt the addressee, indicating that they have a higher social standing than the speaker.", parents = {"honorific terms"}, } labels["ราชาศัพท์"] = { description = "{{{langname}}} terms used only by royalty.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["royal terms"] = labels["ราชาศัพท์"] labels["rustic terms"] = { description = "{{{langname}}} terms whose use is typically restricted rural speech.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["สแลงโรงเรียน"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to schools and school pupils.", parents = {"สแลง"}, } labels["school slang"] = labels["สแลงโรงเรียน"] labels["self-deprecatory terms"] = { description = "{{{langname}}} [[self-deprecatory]] terms.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["รูปสั้น"] = { description = "{{{langname}}} terms that are [[short form]]s of other terms, often used informally.", parents = {"ศัพท์แบ่งตามการใช้", "การย่อ"}, } labels["short forms"] = labels["รูปสั้น"] labels["สแลง"] = { description = "{{{langname}}} [[colloquial]] terms that are typically used to mark membership in a cultural subgroup.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["slang"] = labels["สแลง"] labels["solemn terms"] = { description = "{{{langname}}} terms that are used to instill a sense of somberness.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["สแลงนักเรียน"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to colleges, universities, and their students.", parents = {"สแลง"}, } labels["student slang"] = labels["สแลงนักเรียน"] labels["superseded forms"] = { description = "{{{langname}}} forms that have been superseded by other forms due to changes in spelling conventions.", parents = {"ศัพท์แบ่งตามการใช้", "ศัพท์แบ่งตามสมบัติเชิงอักขรวิธี"}, } labels["swear words"] = { description = "{{{langname}}} terms that are used to swear, such as to express strong anger or frustration.", parents = {"ศัพท์ที่หยาบคาย"}, } labels["technical terms"] = { description = "{{{langname}}} terms that are usually or exclusively used in technical/scientific writing.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["terms of address"] = { description = "{{{langname}}} terms used to refer to another person.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["terms used in hendiadys"] = { description = "{{{langname}}} words or senses which are used only in {{w|hendiadys}}.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["terms with historical senses"] = { description = "{{{langname}}} terms with senses that refer to things or concepts mainly known for their historical value.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["terms with transferred senses"] = { description = "{{{langname}}} terms with [[Appendix:Glossary#transferred senses|transferred senses]].", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["ศัพท์ที่มีความหมายไม่แน่นอน"] = { description = "{{{langname}}} terms whose meaning is unknown or disputed.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["terms with uncertain meaning"] = labels["ศัพท์ที่มีความหมายไม่แน่นอน"] labels["text messaging slang"] = { description = "{{{langname}}} terms used for [[text messaging]] on mobile phones or similar devices, usually consisting of heavily abbreviated forms.", parents = {"สแลง"}, } labels["tone indicators"] = { description = "{{{langname}}} symbols used to denote or clarify the intent of a preceeding or occasionally following message.", parents = {"สแลงอินเทอร์เน็ต"}, } labels["เครื่องหมายการค้า"] = { description = "{{{langname}}} terms that identify legal entities, their products and services, by means of legal protection — to some extent, in a number of jurisdictions — against unauthorized use of the terms.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["trademarks"] = labels["เครื่องหมายการค้า"] labels["transgender slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to transgender people.", parents = {"สแลงแอลจีบีทีคิว", "หมวดหมู่:{{{langcode}}}:Transgender"}, } labels["TV Tropes slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to users of the website {{w|TV Tropes}}.", parents = {"สแลงอินเทอร์เน็ต"}, } labels["umlautless spellings"] = { description = "{{{langname}}} terms that are the result of the original terms' [[umlaut]]s being substituted.", parents = {"nonstandard forms", "ศัพท์แบ่งตามสมบัติเชิงอักขรวิธี"}, } labels["สแลงยูสเน็ต"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to users of {{w|Usenet}}.", parents = {"สแลงอินเทอร์เน็ต"}, } labels["Usenet slang"] = labels["สแลงยูสเน็ต"] labels["ศัพท์ที่ผู้ชายใช้"] = { description = "{{{langname}}} terms and forms used in [[Appendix:Glossary#men's speech|men's speech]].", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["men's speech terms"] = labels["ศัพท์ที่ผู้ชายใช้"] labels["ศัพท์ที่ผู้หญิงใช้"] = { description = "{{{langname}}} terms and forms used in [[Appendix:Glossary#women's speech|women's speech]].", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["women's speech terms"] = labels["ศัพท์ที่ผู้หญิงใช้"] labels["ศัพท์ที่หยาบคาย"] = { description = "{{{langname}}} terms whose tone (rather than the meaning) is offensive to polite company.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["vulgarities"] = labels["ศัพท์ที่หยาบคาย"] -- ให้เข้ากับ ศัพท์ที่สุภาพ -- Add 'umbrella_parents' key if not already present. for key, data in pairs(labels) do if not data.umbrella_parents then data.umbrella_parents = "หมวดหมู่ย่อยของศัพท์แบ่งตามการใช้แบ่งตามภาษา" end end ----------------------------------------------------------------------------- -- -- -- RAW CATEGORIES -- -- -- ----------------------------------------------------------------------------- raw_categories["หมวดหมู่ย่อยของศัพท์แบ่งตามการใช้แบ่งตามภาษา"] = { description = "Umbrella categories covering topics related to terms categorized by their usage, such as slang, obsolete or archaic forms and vulgarities.", additional = "{{{umbrella_meta_msg}}}", parents = { "หมวดหมู่ใหญ่รวมหัวข้อ", {name = "ศัพท์แบ่งตามการใช้", is_label = true, sort = " "}, }, } return {LABELS = labels, RAW_CATEGORIES = raw_categories} ftcappzrqjle2v4weutmyiq89cid6is 5724850 5724849 2026-06-16T04:43:18Z OctraBot 3198 5724850 Scribunto text/plain local labels = {} local raw_categories = {} local string_utilities_module = "Module:string utilities" local ucfirst = require(string_utilities_module).ucfirst ----------------------------------------------------------------------------- -- -- -- LABELS -- -- -- ----------------------------------------------------------------------------- labels["ศัพท์แบ่งตามการใช้"] = { description = "{{{langname}}} terms categorized by the manner and context in which they are used by speakers.", umbrella_parents = "มูลฐาน", parents = {{name = "{{{langcat}}}", raw = true}}, } labels["terms by usage"] = labels["ศัพท์แบ่งตามการใช้"] local function generate_category_with_senses(typ, desc, distinguish, other_types_in_group) if distinguish then distinguish = "\n\n" .. distinguish else distinguish = "" end local function make_preceding(pos) if not other_types_in_group then return nil end local cats = {} for _, other_type in ipairs(other_types_in_group) do local poscat = require("Module:th-utilities").th_categorize(pos, "{{{langcat}}}") --th table.insert(cats, ("หมวดหมู่:" .. poscat):format(other_type)) end return ("{{also|%s}}"):format(table.concat(cats, "|")) end local function make_umbrella_preceding(pos) if not other_types_in_group then return nil end local cats = {} for _, other_type in ipairs(other_types_in_group) do table.insert(cats, "หมวดหมู่:" .. ucfirst((pos .. "แบ่งตามภาษา"):format(other_type))) end return ("{{also|%s}}"):format(table.concat(cats, "|")) end labels[("ศัพท์%s"):format(typ)] = { -- out of ศัพท์ภาษาXที่... description = ("{{{langname}}} terms that %s."):format(desc), additional = ("To categorize into this category, use {{tl|tlb|{{{langcode}}}|%s}} (template '''tlb''', not '''lb'''), " .. "which should typically be placed next to the headword.\n\nIf the term is merely a variant (alternative form) of a term " .. "in general use, it should be categorized instead in {{cl|{{{langname}}} %s forms}} (using " .. "{{tl|%s form of|{{{langcode}}}|...}} or {{tl|%s spelling of|{{{langcode}}}|...}}). If only some senses of the term are %s, " .. "it should be categorized instead in {{cl|{{{langname}}} terms with %s senses}}, using {{tl|lb|{{{langcode}}}|%s}} " .. "(template '''lb''' instead of '''tlb'''), which should typically be placed next to the individual sense.%s"):format( typ, typ, typ, typ, typ, typ, typ, distinguish:gsub("POS", "terms")), parents = {"ศัพท์แบ่งตามการใช้"}, preceding = make_preceding("ศัพท์%s"), umbrella = { preceding = make_umbrella_preceding("ศัพท์%s"), additional = ("To categorize into this category, use <code><nowiki>{{</nowiki>tlb|<var>langcode</var>|%s}}</code> " .. "(template '''tlb''', not '''lb'''), which should typically be placed next to the headword. " .. "(<code><var>langcode</var></code> is the appropriate language code for the language in question; see [[Wiktionary:List of languages]].)\n\n" .. "If the term is merely a variant (alternative form) of a term in general use, it should be categorized instead in " .. "{{cl|<var>langname</var> %s forms}} (using <code><nowiki>{{</nowiki>%s form of|<var>langcode</var>|...}}</code> " .. "or <code><nowiki>{{</nowiki>%s spelling of|<var>langcode</var>|...}}</code>). " .. "If only some senses of the term are %s, it should be categorized instead in {{cl|<var>langname</var> terms with %s senses}}, " .. "using <code><nowiki>{{</nowiki>lb|<var>langcode</var>|%s}}</code> (template '''lb''' instead of '''tlb'''), which should " .. "typically be placed next to the individual sense.%s"):format( typ, typ, typ, typ, typ, typ, typ, distinguish:gsub("POS", "terms")), } } labels[("ศัพท์ที่มีนัย%s"):format(typ)] = { description = ("{{{langname}}} terms with individual senses that %s."):format(desc), additional = ("To categorize into this category, use {{tl|lb|{{{langcode}}}|%s}} (template '''lb''', not '''tlb'''), " .. "which should typically be placed next to the individual sense.\n\nIf the term itself, in all its senses, is %s, " .. "it should be placed in {{cl|{{{langname}}} %s terms}} instead, using {{tl|tlb|{{{langcode}}}|%s}} " .. "(template '''tlb''' instead of '''lb'''), which should typically be placed next to the headword. " .. "If the term is merely a variant (alternative form) of a term in general use, it should be categorized in " .. "{{cl|{{{langname}}} %s forms}} (using {{tl|%s form of|{{{langcode}}}|...}} or {{tl|%s spelling of|{{{langcode}}}|...}}).%s"):format( typ, typ, typ, typ, typ, typ, typ, distinguish:gsub("POS", "senses")), parents = {{name = "ศัพท์แบ่งตามการใช้", sort = ("มีนัย%s"):format(typ)}}, breadcrumb = ("มีนัย%s"):format(typ), preceding = make_preceding("ศัพท์ที่มีนัย%s"), umbrella = { preceding = make_umbrella_preceding("ศัพท์ที่มีนัย%s"), additional = ("To categorize into this category, use <code><nowiki>{{</nowiki>lb|<var>langcode</var>|%s}}</code> " .. "(template '''lb''', not '''tlb'''), which should typically be placed next to the individual sense. " .. "(<code><var>langcode</var></code> is the appropriate language code for the language in question; see [[Wiktionary:List of languages]].)\n\n" .. "If the term itself, in all its senses, is %s, it should be placed in {{cl|<var>langname</var> %s terms}} instead, using " .. "<code><nowiki>{{</nowiki>tlb|<var>langcode</var>|%s}}</code> (template '''tlb''' instead of '''lb'''), which should " .. "typically be placed next to the headword. If the term is merely a variant (alternative form) of a term in general use, " .. "it should be categorized in {{cl|<var>langname</var> %s forms}} (using <code><nowiki>{{</nowiki>%s form of|<var>langcode</var>|...}}</code> " .. "or <code><nowiki>{{</nowiki>%s spelling of|<var>langcode</var>|...}}</code>.%s"):format( typ, typ, typ, typ, typ, typ, typ, distinguish:gsub("POS", "senses")), } } labels[("รูป%s"):format(typ)] = { description = ("{{{langname}}} forms that %s; and serve as alternative forms of the same terms in general use."):format(desc), additional = ("To categorize into this category, use {{tl|%s form of|{{{langcode}}}|...}} or {{tl|%s spelling of|{{{langcode}}}|...}}.\n\n" .. "If the term is not merely a variant (alternative form) of a term in general use, it should be placed in {{cl|{{{langname}}} %s terms}} " .. "instead; to do this, use {{tl|tlb|{{{langcode}}}|%s}} (template '''tlb''', not '''lb'''), which should typically be placed next to the " .. "headword. If only some senses of the term are %s, it should be categorized instead in {{cl|{{{langname}}} terms with %s senses}}, " .. "using {{tl|lb|{{{langcode}}}|%s}} (template '''lb''' instead of '''tlb'''), which should typically be placed next to the individual sense.%s"):format( typ, typ, typ, typ, typ, typ, typ, distinguish:gsub("POS", "forms")), parents = {{name = ("ศัพท์%s"):format(typ), sort = "รูป"}}, breadcrumb = "รูป", preceding = make_preceding("รูป%s"), umbrella = { preceding = make_umbrella_preceding("รูป%s"), additional = ("To categorize into this category, use <code><nowiki>{{</nowiki>%s form of|<var>langcode</var>|...}}</code> " .. "or <code><nowiki>{{</nowiki>%s spelling of|<var>langcode</var>|...}}</code>. (<code><var>langcode</var></code> is the " .. "appropriate language code for the language in question; see [[Wiktionary:List of languages]].)\n\n" .. "If the term is not merely a variant (alternative form) of a term in general use, it should be placed in {{cl|<var>langname</var> %s terms}} " .. "instead; to do this, use <code><nowiki>{{</nowiki>lb|<var>langcode</var>|%s}}</code> (template '''tlb''', not '''lb'''), " .. "which should typically be placed next to the headword. If only some senses of the term are %s, it should be categorized instead " .. "in {{cl|<var>langname</var> terms with %s senses}}, using <code><nowiki>{{</nowiki>lb|<var>langcode</var>|%s}}</code> " .. "(template '''lb''' instead of '''tlb'''), which should typically be placed next to the individual sense.%s"):format( typ, typ, typ, typ, typ, typ, typ, distinguish:gsub("POS", "forms")), } } end local function generate_related_categories_with_senses(info) for typ, spec in pairs(info) do local other_types = {} for other_type, _ in pairs(info) do if other_type ~= typ then table.insert(other_types, other_type) end end table.sort(other_types) generate_category_with_senses(typ, spec.desc, spec.distinguish, other_types) end end generate_related_categories_with_senses { ["โบราณ"] = { desc = "are no longer in general use but still encountered in older literature, sometimes still used for special effect, and typically recognized by native speakers", distinguish = "Archaic POS should be distinguished from dated POS, which are merely [[unfashionable]] and [[anachronistic]] but still sometimes used, especially by older speakers; and on the other hand from obsolete POS, which are no longer in use at all and are not usually recognized by native speakers.", }, ["ล้าสมัย"] = { desc = "are no longer fashionable and thus are [[anachronistic]], but still sometimes in use, especially by older speakers", distinguish = "Dated POS should be distinguished from archaic POS, which are no longer in use (except occasionally for special effect) but are still sometimes encountered in older literature and are typically recognized by native speakers; and obsolete POS, which are no longer in use at all and are not usually recognized by native speakers.", }, ["เลิกใช้"] = { desc = "are no longer in use and not usually recognized by native speakers, but still sometimes found in older literature", distinguish = "Obsolete POS should be distinguished from archaic POS, which, although no longer in general use, are still occasionally used for special effect and are typically recognized by native speakers; and dated POS, which are merely [[unfashionable]] and [[anachronistic]] but still sometimes used, especially by older speakers.", }, } generate_related_categories_with_senses { ["พบได้ยาก"] = { desc = "are rarely found in general use and may not be recognized by some native speakers", distinguish = "Rare POS should be distinguished from uncommon POS, which are not common but used enough to be generally recognized.", }, ["ไม่สามัญ"] = { desc = "are in general use but not common", distinguish = "Uncommon POS should be distinguished from rare POS, which are infrequent enough that they are sometimes not recognized by native speakers.", }, } labels["2channel slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to users of the website {{w|2channel}}.", parents = {"สแลงอินเทอร์เน็ต"}, } labels["4chan slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to users of the website {{w|4chan}}.", parents = {"สแลงอินเทอร์เน็ต"}, } labels["4chan /lgbt/ slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to users of the /lgbt/ board of the website {{w|4chan}}.", parents = {"4chan slang", "สแลงแอลจีบีทีคิว"}, } labels["angry register terms"] = { description = "{{{langname}}} terms belonging to an angry linguistic register, used only when the speaker is angry.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["anti-LGBTQ slurs"] = { description = "{{{langname}}} terms that are intended to offend [[LGBTQ]] people.", parents = {"ศัพท์ที่ล่วงเกิน"}, } labels["autological terms"] = { description = "{{{langname}}} terms that possess the property they themselves describe.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["back slang"] = { description = "{{{langname}}} terms in which the written word is spoken phonemically backwards to form a coded language.", parents = {"cant"}, } labels["cant"] = { description = "{{{langname}}} terms used to form secret languages that are typically restricted to members of a specific group.", parents = {"สแลง"}, } labels["censored spellings"] = { description = "{{{langname}}} spellings where some characters have been changed in an effort to reduce the shock value of the original term.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["ศัพท์ที่เป็นภาษาเด็ก"] = { description = "{{{langname}}} terms that are typically only used by, or to, children.", parents = {"ศัพท์แบ่งตามการใช้", "ศัพท์ที่ไม่เป็นทางการ"}, } labels["childish terms"] = labels["ศัพท์ที่เป็นภาษาเด็ก"] labels["ศัพท์ที่เป็นภาษาปาก"] = { description = "{{{langname}}} terms that are likely to be used primarily in casual conversation rather than in more formal written works, speeches, and discourse.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["colloquialisms"] = labels["ศัพท์ที่เป็นภาษาปาก"] labels["corporate jargon"] = { description = "{{{langname}}} terms (typically for non-business-specific concepts) that are used especially in a [[business]] or [[corporate]] [[context]].", additional = "See also [[:หมวดหมู่:กิจการ]], [[:หมวดหมู่:ธุรกิจ]] and language-specific categories thereof for terms related to business-specific concepts.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["criminal slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to criminals.", parents = {"สแลง"}, } labels["ศัพท์ที่ดูหมิ่น"] = { description = "{{{langname}}} terms that are intended to [[disparage]], [[demean]], [[insult]] or [[offend]].", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["derogatory terms"] = labels["ศัพท์ที่ดูหมิ่น"] labels["dialectal terms"] = { description = "{{{langname}}} terms that are not used in standard language but only in dialects.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["dis legomena"] = { description = "{{{langname}}} terms that are attested only twice in the entire corpus.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["drag slang"] = { description = "{{{langname}}} [[slang]] terms used in the [[drag]] community.", parents = {"สแลงแอลจีบีทีคิว"}, } labels["ecclesiastical terms"] = { description = "{{{langname}}} terms used only by religious figures.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["eggcorns"] = { description = "{{{langname}}} [[eggcorn]]s, terms which are misconstructed.", parents = {"misconstructions"}, } labels["emoticons"] = { description = "{{{langname}}} characters, or sequences of characters, that imitate expressions and other objects by means of [[pareidolia]].", parents = {"สแลงอินเทอร์เน็ต", "text messaging slang"}, } labels["endearing terms"] = { description = "{{{langname}}} terms that are used to show affection or endearment to another person.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["ethnic slurs"] = { description = "{{{langname}}} terms that are intended to offend certain ethnic groups.", parents = {"ศัพท์ที่ล่วงเกิน"}, } labels["expressive terms"] = { description = "{{{langname}}} terms with additional expressive content compared with the basic meaning of the term.", additional = "This term is common in Slavic lexicography and is found in most Czech, Slovak and Polish dictionaries, but there is no exact equivalent in English lexicography. The closest equivalents might be a combination of ''colloquial'' and either ''endearing'' or ''pejorative'', as the case may be.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["eye dialect"] = { description = "{{{langname}}} nonstandard spellings, which however do not change pronunciation, deliberately used by an author to indicate that the speaker uses a nonstandard or dialectal speech.", parents = {"nonstandard forms", "ศัพท์แบ่งตามสมบัติเชิงอักขรวิธี"}, } labels["familiar terms"] = { description = "{{{langname}}} terms whose use is typically to contexts of friendly intimacy.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["fandom slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to fans of one or more works of fiction.", parents = {"สแลง"}, } labels["filter-avoidance spellings"] = { description = "Deliberate misspellings of {{{langname}}} terms that are used to avoid [[w:Wordfilter|wordfilters]].", parents = {"รูปเจตนาสะกดผิด"}, } labels["folk poetic terms"] = { description = "{{{langname}}} terms whose usage is typically restricted to works of oral or folk poetry.", parents = {"ศัพท์แบ่งตามการใช้", "ศัพท์ที่ใช้ในบทร้อยกรอง"}, } labels["ศัพท์ที่เป็นทางการ"] = { description = "{{{langname}}} terms whose use is typically restricted to polite, ceremonious, non-casual contexts.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["formal terms"] = labels["ศัพท์ที่เป็นทางการ"] labels["gay slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to homosexual people.", parents = {"สแลงแอลจีบีทีคิว"}, } labels["gender-critical slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to gender-critical feminists.", parents = {"สแลง", "หมวดหมู่:{{{langcode}}}:Gender-critical feminism"}, } -- [[มอดูล:gender and number/data]] labels["ศัพท์ที่ไม่ระบุเพศ"] = { description = "{{{langname}}} terms that are applicable to all people, independent of gender.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["gender-neutral terms"] = labels["ศัพท์ที่ไม่ระบุเพศ"] labels["graffiti slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to creators of [[graffiti#Noun|graffiti]].", parents = {"สแลง", "หมวดหมู่:{{{langcode}}}:ศิลปะ"}, } labels["higher register terms"] = { description = "{{{langname}}} terms belonging to a higher linguistic register, such as literary terms; such terms are somewhat less common or known.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["historical terms"] = { description = "{{{langname}}} terms that refer to obsolete things or concepts.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["honorific terms"] = { description = "{{{langname}}} [[honorific]] terms, which are used to show deference and respect.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["ศัพท์ที่สุภาพ"] = { description = "{{{langname}}} [[polite]] terms, which are used to show deference and respect.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["polite terms"] = labels["ศัพท์ที่สุภาพ"] labels["hapax legomena"] = { description = "{{{langname}}} terms that are attested only once in the entire corpus.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["humble terms"] = { description = "{{{langname}}} [[humble]] terms, which are used to show humility towards the addressee, indicating that the speaker has a lower social standing.", parents = {"honorific terms"}, } labels["hypercorrections"] = { description = "{{{langname}}} forms of other terms by misapplications of grammatical or orthographical rules.", parents = {"ศัพท์ที่ไม่เป็นมาตรฐาน", "nonstandard forms"}, } labels["hyperforeign terms"] = { description = "{{{langname}}} terms created by misapplying the perceived grammatical, orthographical or phonetical rules of another language.", parents = {"hypercorrections"}, } labels["incel slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to incels.", parents = {"สแลง", "หมวดหมู่:{{{langcode}}}:Incel community"}, } labels["imperfective forms"] = { description = "{{{langname}}} verbs that serve as imperfective variants of perfective verbs, sharing the same base set of meanings.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["informal forms"] = { description = "{{{langname}}} terms that can be used in casual, non-ceremonious conversations as alternative forms of other terms.", additional = "Informal non-lemma form variants also belong here.", parents = {"ศัพท์ที่ไม่เป็นทางการ"}, } labels["ศัพท์ที่ไม่เป็นทางการ"] = { description = "{{{langname}}} terms whose use is typically restricted to casual, non‐ceremonious conversations.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["informal terms"] = labels["ศัพท์ที่ไม่เป็นทางการ"] labels["รูปเจตนาสะกดผิด"] = { description = "Deliberate misspellings of {{{langname}}} terms.", parents = {"รูปสะกดผิด"}, } labels["deliberate misspellings"] = labels["รูปเจตนาสะกดผิด"] labels["internet laughter slang"] = { description = "{{{langname}}} [[slang]] terms that are used as substitutes for laughter in internet-related contexts.", additional = "::''Note: The majority of items that <u>could</u> be here do not meet Wiktionary's [[WT:CFI|criteria for inclusion]].''", parents = {"สแลงอินเทอร์เน็ต"}, } labels["สแลงอินเทอร์เน็ต"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to internet users.", parents = {"สแลง"}, } labels["internet slang"] = labels["สแลงอินเทอร์เน็ต"] labels["ศัพท์ที่ขำขัน"] = { description = "{{{langname}}} terms that are humorous, amusing or joking.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["humorous terms"] = labels["ศัพท์ที่ขำขัน"] labels["ศัพท์ที่เป็นภาษาข่าว"] = { description = "{{{langname}}} terms that are used especially in [[journalistic]] language, i.e. in newspapers and magazines.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["journalistic terms"] = labels["ศัพท์ที่เป็นภาษาข่าว"] labels["kennings"] = { description = "{{{langname}}} metaphorical compounds or phrases describing basic objects in an allusive fashion, used especially in Germanic poetry.", parents = {"ศัพท์ที่ใช้ในบทร้อยกรอง"}, } labels["leetspeak"] = { description = "{{{langname}}} which are used in [[leetspeak]], a variety of internet slang that focuses on substitution of letters by other characters which are similar in appearance.", parents = {"สแลงอินเทอร์เน็ต"}, } labels["สแลงแอลจีบีทีคิว"] = { description = "{{{langname}}} [[slang]] terms which are used predominantly among [[LGBTQ]] people.", parents = {"สแลง", "Category:{{{langcode}}}:แอลจีบีทีคิว"}, } labels["LGBTQ slang"] = labels["สแลงแอลจีบีทีคิว"] labels["ศัพท์ที่เป็นภาษาหนังสือ"] = { description = "{{{langname}}} terms whose usage is typically restricted to works of literature.", parents = {"higher register terms"}, } labels["literary terms"] = labels["ศัพท์ที่เป็นภาษาหนังสือ"] labels["สแลงการแพทย์"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to medical doctors, such as physicians and surgeons.", parents = {"สแลง"}, } labels["medical slang"] = labels["สแลงการแพทย์"] labels["สแลงการทหาร"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to military personnel.", parents = {"สแลง"}, } labels["military slang"] = labels["สแลงการทหาร"] labels["misconstructions"] = { description = "Terms wrongly built due to a misunderstanding of their parts.", parents = {"nonstandard forms"}, } labels["misromanizations"] = { description = "Common misromanizations of {{{langname}}} terms.", parents = {"nonstandard forms"}, } labels["รูปสะกดผิด"] = { description = "Common accidental misspellings of {{{langname}}} terms and some terms which are deliberate misspellings.", parents = {"nonstandard forms"}, } labels["misspellings"] = labels["รูปสะกดผิด"] labels["multiplicity slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to the {{l|en|multiplicity|id=multiple personalities}} [[community]].", parents = {"สแลง", "Category:{{{langcode}}}:Multiplicity (psychology)"}, } labels["naval slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to naval personnel.", parents = {"สแลงการทหาร"}, } labels["nonstandard forms"] = { description = "{{{langname}}} forms of standard terms that are considered improper, incorrect or commonly misused.", parents = {"ศัพท์ที่ไม่เป็นมาตรฐาน"}, } labels["ศัพท์ที่ไม่เป็นมาตรฐาน"] = { description = "{{{langname}}} terms that are considered improper, incorrect or commonly misused.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["nonstandard terms"] = labels["ศัพท์ที่ไม่เป็นมาตรฐาน"] labels["numismatic slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to numismatists.", parents = {"สแลง", "หมวดหมู่:{{{langcode}}}:เงินตรา"}, } labels["ศัพท์ที่ล่วงเกิน"] = { description = "{{{langname}}} terms that are typically considered to offend people.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["offensive terms"] = labels["ศัพท์ที่ล่วงเกิน"] labels["officialese terms"] = { description = "{{{langname}}} terms that are chiefly used by official sources, and are often bureaucratic-sounding.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["oxymorons"] = { description = "{{{langname}}} terms that are juxtapositions of opposing ideas.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["perfective forms"] = { description = "{{{langname}}} verbs that serve as perfective variants of imperfective verbs, sharing the same base set of meanings.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["placeholder terms"] = { description = "{{{langname}}} terms used to refer to items for which one does not know or cannot recall the name, or is unable to or does not care to specify precisely.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["poetic forms"] = { description = "{{{langname}}} terms that can be used in works of poetry as poetic alternative forms of other terms.", additional = "Poetic non-lemma form variants also belong here.", parents = {"ศัพท์ที่ใช้ในบทร้อยกรอง"}, } labels["ศัพท์ที่ใช้ในบทร้อยกรอง"] = { description = "{{{langname}}} terms whose usage is typically restricted to works of poetry.", parents = {"ศัพท์แบ่งตามการใช้", "ศัพท์ที่เป็นภาษาหนังสือ"}, } labels["poetic terms"] = labels["ศัพท์ที่ใช้ในบทร้อยกรอง"] labels["post-nominal letters"] = { description = "{{{langname}}} Post-nominal letters - also called post-nominal initials, post-nominal titles or designatory letters are letters placed after the name of a person to indicate that the individual holds a position, educational degree, accreditation, office, military decoration, or honour, or is a member of a religious institute or fraternity.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["prison slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to detainees in correctional institutions.", parents = {"สแลง"}, } labels["ศัพท์ที่ไม่ควรใช้"] = { description = "{{{langname}}} terms whose usage is proscribed; thus, they are considered wrong according to prescriptive sources.", parents = {"ศัพท์แบ่งตามการใช้", "ศัพท์ที่ไม่เป็นมาตรฐาน"}, } labels["proscribed terms"] = labels["ศัพท์ที่ไม่ควรใช้"] labels["puristic terms"] = { description = "{{{langname}}} terms adopted for [[w:Linguistic purism|linguistic purism]].", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["สแลงวิทยุ"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to radio communication.", parents = {"สแลง"}, } labels["radio slang"] = labels["สแลงวิทยุ"] labels["Reddit slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to users of the website {{w|Reddit}}.", parents = {"สแลงอินเทอร์เน็ต"}, } labels["religious slurs"] = { description = "{{{langname}}} terms that are intended to offend members of certain religions.", parents = {"ศัพท์ที่ล่วงเกิน"}, } labels["reverential terms"] = { description = "{{{langname}}} [[reverential]] terms, which are used to exalt the addressee, indicating that they have a higher social standing than the speaker.", parents = {"honorific terms"}, } labels["ราชาศัพท์"] = { description = "{{{langname}}} terms used only by royalty.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["royal terms"] = labels["ราชาศัพท์"] labels["rustic terms"] = { description = "{{{langname}}} terms whose use is typically restricted rural speech.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["สแลงโรงเรียน"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to schools and school pupils.", parents = {"สแลง"}, } labels["school slang"] = labels["สแลงโรงเรียน"] labels["self-deprecatory terms"] = { description = "{{{langname}}} [[self-deprecatory]] terms.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["รูปสั้น"] = { description = "{{{langname}}} terms that are [[short form]]s of other terms, often used informally.", parents = {"ศัพท์แบ่งตามการใช้", "การย่อ"}, } labels["short forms"] = labels["รูปสั้น"] labels["สแลง"] = { description = "{{{langname}}} [[colloquial]] terms that are typically used to mark membership in a cultural subgroup.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["slang"] = labels["สแลง"] labels["solemn terms"] = { description = "{{{langname}}} terms that are used to instill a sense of somberness.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["สแลงนักเรียน"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to colleges, universities, and their students.", parents = {"สแลง"}, } labels["student slang"] = labels["สแลงนักเรียน"] labels["superseded forms"] = { description = "{{{langname}}} forms that have been superseded by other forms due to changes in spelling conventions.", parents = {"ศัพท์แบ่งตามการใช้", "ศัพท์แบ่งตามสมบัติเชิงอักขรวิธี"}, } labels["swear words"] = { description = "{{{langname}}} terms that are used to swear, such as to express strong anger or frustration.", parents = {"ศัพท์ที่หยาบคาย"}, } labels["technical terms"] = { description = "{{{langname}}} terms that are usually or exclusively used in technical/scientific writing.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["terms of address"] = { description = "{{{langname}}} terms used to refer to another person.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["terms used in hendiadys"] = { description = "{{{langname}}} words or senses which are used only in {{w|hendiadys}}.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["terms with historical senses"] = { description = "{{{langname}}} terms with senses that refer to things or concepts mainly known for their historical value.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["terms with transferred senses"] = { description = "{{{langname}}} terms with [[Appendix:Glossary#transferred senses|transferred senses]].", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["ศัพท์ที่มีความหมายไม่แน่นอน"] = { description = "{{{langname}}} terms whose meaning is unknown or disputed.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["terms with uncertain meaning"] = labels["ศัพท์ที่มีความหมายไม่แน่นอน"] labels["text messaging slang"] = { description = "{{{langname}}} terms used for [[text messaging]] on mobile phones or similar devices, usually consisting of heavily abbreviated forms.", parents = {"สแลง"}, } labels["tone indicators"] = { description = "{{{langname}}} symbols used to denote or clarify the intent of a preceeding or occasionally following message.", parents = {"สแลงอินเทอร์เน็ต"}, } labels["เครื่องหมายการค้า"] = { description = "{{{langname}}} terms that identify legal entities, their products and services, by means of legal protection — to some extent, in a number of jurisdictions — against unauthorized use of the terms.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["trademarks"] = labels["เครื่องหมายการค้า"] labels["transgender slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to transgender people.", parents = {"สแลงแอลจีบีทีคิว", "หมวดหมู่:{{{langcode}}}:Transgender"}, } labels["TV Tropes slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to users of the website {{w|TV Tropes}}.", parents = {"สแลงอินเทอร์เน็ต"}, } labels["umlautless spellings"] = { description = "{{{langname}}} terms that are the result of the original terms' [[umlaut]]s being substituted.", parents = {"nonstandard forms", "ศัพท์แบ่งตามสมบัติเชิงอักขรวิธี"}, } labels["สแลงยูสเน็ต"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to users of {{w|Usenet}}.", parents = {"สแลงอินเทอร์เน็ต"}, } labels["Usenet slang"] = labels["สแลงยูสเน็ต"] labels["ศัพท์ที่ผู้ชายใช้"] = { description = "{{{langname}}} terms and forms used in [[Appendix:Glossary#men's speech|men's speech]].", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["men's speech terms"] = labels["ศัพท์ที่ผู้ชายใช้"] labels["ศัพท์ที่ผู้หญิงใช้"] = { description = "{{{langname}}} terms and forms used in [[Appendix:Glossary#women's speech|women's speech]].", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["women's speech terms"] = labels["ศัพท์ที่ผู้หญิงใช้"] labels["ศัพท์ที่หยาบคาย"] = { description = "{{{langname}}} terms whose tone (rather than the meaning) is offensive to polite company.", parents = {"ศัพท์แบ่งตามการใช้"}, } labels["vulgarities"] = labels["ศัพท์ที่หยาบคาย"] -- ให้เข้ากับ ศัพท์ที่สุภาพ -- Add 'umbrella_parents' key if not already present. for key, data in pairs(labels) do if not data.umbrella_parents then data.umbrella_parents = "หมวดหมู่ย่อยของศัพท์แบ่งตามการใช้แบ่งตามภาษา" end end ----------------------------------------------------------------------------- -- -- -- RAW CATEGORIES -- -- -- ----------------------------------------------------------------------------- raw_categories["หมวดหมู่ย่อยของศัพท์แบ่งตามการใช้แบ่งตามภาษา"] = { description = "Umbrella categories covering topics related to terms categorized by their usage, such as slang, obsolete or archaic forms and vulgarities.", additional = "{{{umbrella_meta_msg}}}", parents = { "หมวดหมู่ใหญ่รวมหัวข้อ", {name = "ศัพท์แบ่งตามการใช้", is_label = true, sort = " "}, }, } return {LABELS = labels, RAW_CATEGORIES = raw_categories} 4ka0frgmlm0hwc8nj1q2xtlgfzw23ad ᦆᦱᧁ 0 168710 5724798 5723716 2026-06-15T18:21:21Z Alifshinobi 397 /* ภาษาไทลื้อ */ 5724798 wikitext text/x-wiki == ภาษาไทลื้อ == === การออกเสียง === {{khb-pron}} === รากศัพท์ 1 === {{inh+|khb|tai-pro|*ɣaːwᴬ}}; ร่วมเชื้อสายกับ{{cog|th|คาว}}, {{cog|lo|ຄາວ}}, {{cog|nod|ᨤᩣ᩠ᩅ}}, {{cog|shn|ၶႅဝ်း}}, {{cog|tdd|ᥑᥦᥝᥰ}} หรือ {{m|tdd|ᥔᥦᥝᥰ}}, {{cog|skb|กฺ๊าว}} ==== คำนาม ==== {{khb-noun|l=ᨤᩣ᩠ᩅ}} # [[คาว]] #: {{ux|khb|[[ᦶᦉᧁ]] [[ᦉᦱᧇ]] [[ᦖᦲᧃ]] '''ᦆᦱᧁ'''|เหม็นสาบเหม็นคาว}} === รากศัพท์ 2 === ร่วมเชื้อสายกับ{{cog|th|คราว}}, {{cog|tts|คราว}}, {{cog|lo|ຄາວ}}, {{cog|nod|ᨣᩕᩣ᩠ᩅ}}, {{cog|kkh|ᨤᩣ᩠ᩅ}}, {{cog|blt|ꪅꪱꪫ}}, {{cog|shn|ၶၢဝ်း}}, {{cog|tdd|ᥑᥣᥝᥰ}} ==== คำนาม ==== {{khb-noun|l=ᨤᩣ᩠ᩅ}} # [[คราว]], [[พัก]] #: {{ux|khb|[[ᦎᦳᧄᧉ]] [[ᦓᧄᧉ]] [[ᦷᦝᧆ]] '''ᦆᦱᧁ''' [[᧚]]|ต้มน้ำเดือดพักหนึ่ง}} l4hp7j4lkli0swipttdmt2192nb5al0 เถี้ยง 0 171121 5724871 1885087 2026-06-16T10:58:46Z OctraBot 3198 /* รากศัพท์ */ 5724871 wikitext text/x-wiki {{also/auto}} == ภาษาแสก == === รากศัพท์ === จาก{{der|skb|ltc|-}} {{ltc-l|定|id=1}}; ร่วมเชื้อสายกับ{{cog|th|เที่ยง}}, {{cog|nod|ᨴ᩠ᨿ᩵ᨦ}}, {{cog|kkh|ᨴ᩠ᨿ᩵ᨦ}}, {{cog|lo|ທ່ຽງ}}, {{cog|khb|ᦵᦑᧂᧈ}}, {{cog|shn|တဵင်ႈ}}, {{cog|aho|𑜄𑜢𑜂𑜫}}, {{cog|zhn|dingh}} หรือ {{m|zhn|dingq}} === คำคุณศัพท์ === {{skb-adj}} # [[เที่ยง]], [[ตรง]], [[แน่นอน]] === คำนาม === {{skb-noun}} # [[เที่ยง]] (เวลา) djcpemb3jb75xdkt5girlos4ybzh2sv ᨴᩱ᩠ᨿ 0 230911 5724812 2442308 2026-06-16T01:29:32Z OctraBot 3198 /* คำวิสามานยนาม */ 5724812 wikitext text/x-wiki == ภาษาคำเมือง == === รูปแบบอื่น === {{nod-alt|c=ᨴᩱ|l=ไทย|s=ไต}} === รากศัพท์ === {{obor|nod|th|ไทย}} === การออกเสียง === * {{IPA|nod|/taj˧˧/|a=เชียงใหม่}} === คำวิสามานยนาม === {{nod-proper noun}} # {{tcl|th|ไทย|id=Q869}} # [[ภาษาไทย]] {{topics|nod|ไทย}} p8gzyt6khma5e1iwdcb77fynv5rre58 ၵဵင်ႈ 0 239300 5724801 1918441 2026-06-16T01:15:32Z OctraBot 3198 /* รากศัพท์ 1 */ 5724801 wikitext text/x-wiki {{also/auto}} == ภาษาไทใหญ่ == === การออกเสียง === {{shn-pron|audio=shn-{{PAGENAME}}.ogg}} === รากศัพท์ 1 === {{inh+|shn|tai-swe-pro|*kliəŋꟲ²}} (Jonsson, 1991); ร่วมเชื้อสายกับ{{cog|th|เกลี้ยง}}, {{cog|nod|ᨠᩖ᩠ᨿ᩶ᨦ}}, {{cog|kkh|ᨠ᩠ᨿ᩶ᨦ}}, {{cog|lo|ກ້ຽງ}}, {{cog|tts|เกลี้ยง}}, {{cog|khb|ᦵᦂᧂᧉ}}, {{cog|blt|ꪀꪸ꫁ꪉ}}, {{cog|tdd|ᥐᥥᥒᥲ}} ==== คำคุณศัพท์ ==== {{shn-adj}} # [[เกลี้ยง]], [[หมด]] (ไม่มีของอยู่) # [[เสร็จ]], [[จบ]], [[สิ้น]] === รากศัพท์ 2 === ร่วมเชื้อสายกับ{{cog|th|แกล้ง}} ==== คำกริยา ==== {{shn-verb}} # [[แกล้ง]], [[แสร้ง]] jiih862ypet9lnhbsdb20p9ir6r7wb7 ທ່ຽງ 0 244780 5724870 1644389 2026-06-16T10:58:40Z OctraBot 3198 /* รากศัพท์ */ 5724870 wikitext text/x-wiki == ภาษาลาว == === รากศัพท์ === จาก{{der|lo|ltc|-}} {{ltc-l|定|id=1}}; ร่วมเชื้อสายกับ{{cog|th|เที่ยง}}, {{cog|nod|ᨴ᩠ᨿ᩵ᨦ}}, {{cog|kkh|ᨴ᩠ᨿ᩵ᨦ}}, {{cog|khb|ᦵᦑᧂᧈ}}, {{cog|shn|တဵင်ႈ}}, {{cog|aho|𑜄𑜢𑜂𑜫}}, {{cog|zhn|dingh}} หรือ {{m|zhn|dingq}}, {{cog|skb|เถี้ยง}} === การออกเสียง === {{lo-pron}} === คำคุณศัพท์ === {{lo-adj}} # [[เที่ยง]], [[ตรง]], [[แน่นอน]] === คำนาม === {{lo-noun}} # [[เที่ยง]] (เวลา) #: {{ux|lo|[[ອາຫານ]]'''ທ່ຽງ'''|อาหาร'''เที่ยง'''}} 72z9wnhj91hm4wt30age4lcox90x9p3 5724875 5724870 2026-06-16T11:03:56Z OctraBot 3198 /* รากศัพท์ */ 5724875 wikitext text/x-wiki == ภาษาลาว == === รากศัพท์ === {{inh+|lo|tai-swe-pro|*diəŋᴮ⁴||เที่ยงวัน, เที่ยงคืน}} (Jonsson, 1991), จาก{{der|lo|ltc|-}} {{ltc-l|定|id=1}}; ร่วมเชื้อสายกับ{{cog|th|เที่ยง}}, {{cog|nod|ᨴ᩠ᨿ᩵ᨦ}}, {{cog|kkh|ᨴ᩠ᨿ᩵ᨦ}}, {{cog|khb|ᦵᦑᧂᧈ}}, {{cog|shn|တဵင်ႈ}}, {{cog|aho|𑜄𑜢𑜂𑜫}}, {{cog|zhn|dingh}} หรือ {{m|zhn|dingq}}, {{cog|skb|เถี้ยง}} === การออกเสียง === {{lo-pron}} === คำคุณศัพท์ === {{lo-adj}} # [[เที่ยง]], [[ตรง]], [[แน่นอน]] === คำนาม === {{lo-noun}} # [[เที่ยง]] (เวลา) #: {{ux|lo|[[ອາຫານ]]'''ທ່ຽງ'''|อาหาร'''เที่ยง'''}} sm9xoox8pqv5amhzot7u2zhpubqbrlm แม่แบบ:reflexive of 10 262570 5724879 1616051 2026-06-16T11:31:49Z OctraBot 3198 5724879 wikitext text/x-wiki {{ {{#if:{{{lang|}}}|check deprecated lang param usage|no deprecated lang param usage}}|lang={{{lang|}}}|<!-- -->{{#invoke:form of/templates|tagged_form_of_t|refl<!-- -->|cat={{#if:{{{p|}}}|{{{p|}}}|{{#if:{{{POS|}}}|{{{POS|}}}|คำกริยา}}}}สะท้อน<!-- -->}}<!-- -->}}<!-- --><noinclude>{{documentation}}</noinclude> 2ap0kcr694u78zoql1otc8r6llx94po ไคล 0 264333 5724862 1885942 2026-06-16T09:29:41Z Alifshinobi 397 /* รากศัพท์ 1 */ 5724862 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == === การออกเสียง === {{th-pron|ไคฺล}} === รากศัพท์ 1 === ร่วมเชื้อสายกับ{{cog|lo|ໄຄ}}, {{cog|nod|ᨣᩖᩱ}}, {{cog|blt|ꪼꪁ}}, {{cog|shn|ၵႆး}} ==== คำนาม ==== {{th-noun}} # [[เหงื่อ]][[ที่]][[ปน]][[กับ]][[ฝุ่น]][[ละออง]][[ติด]][[กรัง]][[อยู่]]กับ[[หนังกำพร้า]] #: {{ux|th|ขี้ไคล}} #: {{ux|th|เหงื่อไคล}} # [[ตะไคร่น้ำ]] #: {{ux|th|ปูกินไคล}} === รากศัพท์ 2 === ==== คำกริยา ==== {{th-verb|-}} # {{lb|th|กลอน}} [[ไป]] === รากศัพท์ 3 === ==== คำกริยา ==== {{th-verb}} # {{lb|th|ล้า}} [[ทำ]][[ให้]][[คลาย]] ให้[[อ่อน]] [[หรือ]]ให้[[หย่อน]] [[โดย]][[ใช้]][[นิ้ว]][[มือ]]หรือ[[ฝ่า]]มือ[[เป็นต้น]][[คลึง]]ไป[[มา]] rr6ljir6ez6ongwom4hcny7ev142ea9 ไต 0 266520 5724807 5723550 2026-06-16T01:24:37Z OctraBot 3198 /* ภาษาคำเมือง */ 5724807 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == {{wp}} [[ไฟล์:Gray1120-kidneys.png|thumb|ไต]] === รูปแบบอื่น === * {{alt|th|ใต||เลิกใช้}} === รากศัพท์ === {{inh+|th|tai-swe-pro|*taɰᴬ²||กึ๋น; ไต}}, จาก{{inh|th|tai-pro|*p.taɰᴬ||กึ๋น}}; ร่วมเชื้อสายกับ{{cog|lo|ໃຕ}}, {{m|lo|ໄຕ}}, หรือ {{m|lo|ເຕີ}}, {{cog|nyw|ไต๋}}, {{cog|nod|ᨲᩱ}}, {{cog|khb|ᦺᦎ||กึ๋น; ไต}}, {{cog|blt|ꪻꪔ||กึ๋น}}, {{cog|twh|ꪻꪔ||กึ๋น}}, {{cog|phk|တၞ်||ไต}}, {{cog|za|daw||กึ๋น}}, {{cog|skb|เต๋อ||กึ๋น; ไต}}; เทียบ{{cog|shn|တႂ်||การแข็งหรือด้านที่เกิดจากการเสียดสีของผิวหนัง}} สำหรับความหมาย 2 === การออกเสียง === {{th-pron}} === คำนาม === {{th-noun}} # [[อวัยวะ]][[คู่]][[หนึ่ง]][[ของ]][[คน]][[และ]][[สัตว์]] [[อยู่]][[ใน]][[ช่องท้อง]][[ใกล้]][[กระดูกสันหลัง]] [[ทำ]][[หน้าที่]][[ขับ]][[ของเสีย]][[ออก]][[มา]][[กับ]][[น้ำปัสสาวะ]] {{cls|th|ข้าง|ลูก}} # [[สิ่ง]][[ซึ่ง]][[เป็น]][[ก้อน]][[แข็ง]]อยู่ใน[[เนื้อ]] ==== คำพ้องความ ==== * {{sense|อวัยวะ}} {{l|th|วักกะ}}, {{l|th|เซ่งจี๊}} / {{l|th|เซี่ยงจี๊}} {{q|ของหมู}} ==== คำแปลภาษาอื่น ==== {{trans-top|อวัยวะ}} * กรีก: {{t+|el|νεφρό|n}} *: โบราณ: {{t|grc|νεφρός|m}} * กันนฑะ: {{t+|kn|ಮೂತ್ರಪಿಂಡ}} * กาลิเซีย: {{t+|gl|ril|m}}, {{t|gl|rinle|m}} * เกชัว: {{t|qu|rurun}} * เกาหลี: {{t+|ko|콩팥}}, {{t+|ko|신장}} ({{t+|ko|腎臟}}) * แกลิกแบบสกอตแลนด์: {{t|gd|dubhag|f}} * เขมร: {{t+|km|វក្កំ}}, {{t|km|តម្រងមូត្រ}} {{qualifier|พบยาก}} * คาซัค: {{t+|kk|бүйрек}} * กาตาลา: {{t+|ca|ronyó|m}} * คีร์กีซ: {{t+|ky|бөйрөк}} * คุชราต: {{t|gu|મુત્રપિંડ}} * เคิร์ด: [[gurçik]], [[گورچیلە]] * จ้วง: {{t|za|mak}}, {{t|za|samndaen}} {{qualifier|ถิ่น}}, {{t|za|iucij}} {{qualifier|ถิ่น}} * จอร์เจีย: {{t|ka|თირკმელი}}, {{t|ka|ჭაჭა}} {{qualifier|ถิ่น}} * จีน: *: กวางตุ้ง: {{t|yue|腎}}, {{t|yue|肾|tr=san6}} *: จีนกลาง: {{t+|cmn|腎臟}}, {{t+|cmn|肾脏|tr=shènzàng}}, {{t+|cmn|腎}}, {{t+|cmn|肾|tr=shèn}}, {{t+|cmn|腰子|tr=yāozi}} * เจวา: {{t|ny|impso}} * เช็ก: {{t+|cs|ledvina|f}} * ซาร์ดิเนีย: {{t|sc|arrene}}, {{t|sc|rene}}, {{t|sc|arrigu}}, {{t|sc|errigu}}, {{t|sc|orrungione}}, {{t|sc|orrunzone}}, {{t|sc|runzone}}, {{t|sc|nerule}} * ซุนดา: {{t|su|ᮌᮤᮔ᮪ᮏᮜ᮪}} * ซูลู: {{t|zu|izinso}} * เซอร์โบ-โครเอเชีย: {{t|sh|бу̀брег|m}}, {{t+|sh|bùbreg|m}} * ญี่ปุ่น: {{t+|ja|腎臓|tr=じんぞう, jinzō}} * ดัตช์: {{t+|nl|nier|f|tr=นีร์}} * เดนมาร์ก: {{t+|da|nyre|c}} * ตากาล็อก: {{t+|tl|bato}} * ตาตาร์: {{t+|tt|бөер}} * ทือกรึญญา: {{t|ti|ኵሊት}} * ตุรกี: {{t+|tr|böbrek}} * ตุรกีแบบออตโตมัน: {{t|ota|بوبرك}} * เตลูกู: {{t+|te|మూత్రపిండము}} * เติร์กเมน: {{t+|tk|böwrek}} * ทมิฬ: {{t+|ta|சிறுநீரகம்}} * ทาจิก: {{t+|tg|гурда}} * ทิเบต: {{t|bo|མཁལ་རིལ}} * ไทลื้อ: {{t+|khb|ᦖᦱᧅᦶᦅᧁ}} * ไทใหญ่: {{t+|shn|မၢၵ်ႇလၼ်း}} * นอร์มัน: {{t|nrf|rein|m}} * นอร์เวย์: *: นือนอสก์: {{t|nn|nyre|f|n}} *: บุ๊กมอล: {{t+|nb|nyre|m|f|n}} * นาวาโฮ: {{t|nv|achą́ʼáshkʼazhí}} * เนปาล: {{t|ne|मिर्गौलो}} * บัลแกเรีย: {{t+|bg|бъ́брек|m}} * บาลี: {{t|pi|วกฺก|n}} * บาสก์: {{t+|eu|giltzurrun}} * เบงกอล: {{t|bn|কিডনি}}, {{t|bn|বৃক্ক}}, {{t+|bn|অন্ত্র}} * เบลารุส: {{t|be|ны́рка|f}} * แบชเคียร์: {{t|ba|бөйөр}} * ปัญจาบ: {{t|pa|ਗੁਰਦਾ}} * เปอร์เซีย: {{t+|fa|کلیه}}, {{t+|fa|گرده}} * โปรตุเกส: {{t+|pt|rim|m}} * โปแลนด์: {{t+|pl|nerka|f}} * ฝรั่งเศส: {{t+|fr|rein|m|tr=แร็ง}} * พม่า: {{t+|my|ကျောက်ကပ်}} * พัชโต: {{t|ps|پوښتورګى|m}}, {{t|ps|بدوری|m}} * ฟรียูลี: {{t|fur|rognon}} * ฟินแลนด์: {{t+|fi|munuainen}} * แฟโร: {{t|fo|nýra|n}} * มราฐี: {{t|mr|गुडदा}} * มลยาฬัม: {{t+|ml|വൃക്ക}} * มองโกเลีย: {{t+|mn|бөөр}} * มอลตา: {{t|mt|kilwa|f}} * มัลดีฟส์: {{t|dv|ގުރުދާ}} * มาซิโดเนีย: {{t|mk|бубрег|m}} * มาเลเซีย: {{t|ms|ginjal}}, {{t|ms|kerinjal}}, {{t|ms|buah pinggang}} * มาวรี: {{t|mi|tākihi}}, {{t|mi|whatukuhu}}, {{t|mi|whatumanawa}} * แมนจู: {{t|mnc|ᠪᠣᠰᡥᠣ}} * ยิดดิช: {{t|yi|ניר}} * ยูเครน: {{t+|uk|ни́рка|f}} * เยอรมัน: {{t+|de|Niere|f}} * รัสเซีย: {{t+|ru|по́чка|f}} * โรมานช์: {{t|rm|gnirunchel}}, {{t|rm|narunchel}}, {{t|rm|niruncel}}, {{t|rm|nirunchel}}, {{t|rm|ranuogl}} * โรมาเนีย: {{t+|ro|rinichi|m}} * ละติน: {{t+|la|rēn|m}} * ลักเซมเบิร์ก: {{t+|lb|Nier|f}} * ลัตเวีย: {{t|lv|niere|f}}, {{t|lv|īkstis|f-p}} * ลาว: {{t+|lo|ໝາກໄຂ່ຫຼັງ}}, {{t+|lo|ໄຕ}} * ลิทัวเนีย: {{t|lt|inkstas|m}} * วัลลูน: {{t+|wa|rino}}, {{t+|wa|rno}}, {{t+|wa|rin}} * เวเนโต: {{t|vec|reno|m}} * เวลส์: {{t|cy|aren|f}} * เวียดนาม: {{t+|vi|thận}} ({{t|vi|腎}}) * โวลอฟ: {{t|wo|roño}} * โวลาปุก: {{t+|vo|roin}} * สเปน: {{t+|es|riñón|m}} * สโลวัก: {{t+|sk|oblička|f}}, {{t|sk|ľadvina|f}} * สโลวีเนีย: {{t|sl|ledvica|f}} * สวาฮีลี: {{t+|sw|figo}} * สวีเดน: {{t+|sv|njure}} * สันสกฤต: {{t+|sa|वृक्क}} * สิงหล: {{t|si|වකුගඩුව}} * แสก: {{t|skb|เต๋อ}} * อุตซิตา: {{t+|oc|ren}}, {{t|oc|arnelh}} * ออสซีเซีย: {{t|os|уырг}} * อังกฤษ: {{t+|en|kidney|tr=คิดนี}} * อังกฤษเก่า: {{t|ang|ǣdre|f}} * อัมฮารา: {{t|am|ኩላሊት}} * อัสตูเรียส: {{t+|ast|reñón|m}}, {{t+|ast|riñón|m}} * อัสสัม: {{t|as|বৃক্ক}} * อาเซอร์ไบจาน: {{t+|az|böyrək}} * อาร์มีเนีย: {{t+|hy|երիկամ}} * อาหรับ: {{t+|ar|كُلْيَة|f}} * อีโด: {{t+|io|reno}} * อิตาลี: {{t+|it|rene|m}} * อินโดนีเซีย: {{t+|id|ginjal}} * อินเทอร์ลิงกวา: {{t|ia|ren}} * อุซเบก: {{t+|uz|buyrak}} * อุยกูร์: {{t|ug|بۆرەك}} * อูรดู: {{t|ur|گردہ|m}} * เอเว: {{t|ee|ayiku|n}} * เอสโตเนีย: {{t+|et|neer}} * เอสเปรันโต: {{t|eo|reno}} * อาฟรีกานส์: {{t|af|nier}} * แอลเบเนีย: {{t+|sq|veshkë|f}}, {{t|sq|rrâni}} * โอริยา: {{t+|or|ମୂତ୍ରାଶୟ}}, {{t|or|ବୃକ୍କକ}} * ไอซ์แลนด์: {{t+|is|nýra|n}} * ไอริช: {{t+|ga|duán|m}} * ฮังการี: {{t+|hu|vese}} * ฮาวาย: {{t|haw|hakuʻala}} * ฮินดี: {{t+|hi|गुर्दा|m}} * ฮีบรู: {{t+|he|כִּלְיָה|f}}, {{t|he|כליות|f-p}} * ฮุนสริก: {{t|hrx|Nier|f}} * เฮาซา: {{t|ha|ƙoda}} * ไฮติครีโอล: {{t|ht|ren}} {{trans-bottom}} == ภาษาคำเมือง == === คำวิสามานยนาม === {{nod-proper noun}} # {{pronunciation spelling of|nod|ᨴᩱ}} # {{pronunciation spelling of|nod|ᨴᩱ᩠ᨿ}} === คำนาม === {{nod-noun}} # {{pronunciation spelling of|nod|ᨴᩱ}} === คำนาม === {{nod-noun|tl=1}} # {{pronunciation spelling of|nod|ᨲᩱ}} {{topics|nod|ไทย}} == ภาษาญ้อ == === รูปแบบอื่น === * {{alt|nyw|𞛍𞛮|sc=Tayo}} * {{alt|nyw|ไท}} === การออกเสียง === * {{IPA|nyw|/taj˨˨/}} === คำนาม === {{nyw-noun}} # [[ไท]] i47soz8c7dbm4u4fw4wo5uk8g0imbwz 5724808 5724807 2026-06-16T01:24:55Z OctraBot 3198 /* คำนาม */ 5724808 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == {{wp}} [[ไฟล์:Gray1120-kidneys.png|thumb|ไต]] === รูปแบบอื่น === * {{alt|th|ใต||เลิกใช้}} === รากศัพท์ === {{inh+|th|tai-swe-pro|*taɰᴬ²||กึ๋น; ไต}}, จาก{{inh|th|tai-pro|*p.taɰᴬ||กึ๋น}}; ร่วมเชื้อสายกับ{{cog|lo|ໃຕ}}, {{m|lo|ໄຕ}}, หรือ {{m|lo|ເຕີ}}, {{cog|nyw|ไต๋}}, {{cog|nod|ᨲᩱ}}, {{cog|khb|ᦺᦎ||กึ๋น; ไต}}, {{cog|blt|ꪻꪔ||กึ๋น}}, {{cog|twh|ꪻꪔ||กึ๋น}}, {{cog|phk|တၞ်||ไต}}, {{cog|za|daw||กึ๋น}}, {{cog|skb|เต๋อ||กึ๋น; ไต}}; เทียบ{{cog|shn|တႂ်||การแข็งหรือด้านที่เกิดจากการเสียดสีของผิวหนัง}} สำหรับความหมาย 2 === การออกเสียง === {{th-pron}} === คำนาม === {{th-noun}} # [[อวัยวะ]][[คู่]][[หนึ่ง]][[ของ]][[คน]][[และ]][[สัตว์]] [[อยู่]][[ใน]][[ช่องท้อง]][[ใกล้]][[กระดูกสันหลัง]] [[ทำ]][[หน้าที่]][[ขับ]][[ของเสีย]][[ออก]][[มา]][[กับ]][[น้ำปัสสาวะ]] {{cls|th|ข้าง|ลูก}} # [[สิ่ง]][[ซึ่ง]][[เป็น]][[ก้อน]][[แข็ง]]อยู่ใน[[เนื้อ]] ==== คำพ้องความ ==== * {{sense|อวัยวะ}} {{l|th|วักกะ}}, {{l|th|เซ่งจี๊}} / {{l|th|เซี่ยงจี๊}} {{q|ของหมู}} ==== คำแปลภาษาอื่น ==== {{trans-top|อวัยวะ}} * กรีก: {{t+|el|νεφρό|n}} *: โบราณ: {{t|grc|νεφρός|m}} * กันนฑะ: {{t+|kn|ಮೂತ್ರಪಿಂಡ}} * กาลิเซีย: {{t+|gl|ril|m}}, {{t|gl|rinle|m}} * เกชัว: {{t|qu|rurun}} * เกาหลี: {{t+|ko|콩팥}}, {{t+|ko|신장}} ({{t+|ko|腎臟}}) * แกลิกแบบสกอตแลนด์: {{t|gd|dubhag|f}} * เขมร: {{t+|km|វក្កំ}}, {{t|km|តម្រងមូត្រ}} {{qualifier|พบยาก}} * คาซัค: {{t+|kk|бүйрек}} * กาตาลา: {{t+|ca|ronyó|m}} * คีร์กีซ: {{t+|ky|бөйрөк}} * คุชราต: {{t|gu|મુત્રપિંડ}} * เคิร์ด: [[gurçik]], [[گورچیلە]] * จ้วง: {{t|za|mak}}, {{t|za|samndaen}} {{qualifier|ถิ่น}}, {{t|za|iucij}} {{qualifier|ถิ่น}} * จอร์เจีย: {{t|ka|თირკმელი}}, {{t|ka|ჭაჭა}} {{qualifier|ถิ่น}} * จีน: *: กวางตุ้ง: {{t|yue|腎}}, {{t|yue|肾|tr=san6}} *: จีนกลาง: {{t+|cmn|腎臟}}, {{t+|cmn|肾脏|tr=shènzàng}}, {{t+|cmn|腎}}, {{t+|cmn|肾|tr=shèn}}, {{t+|cmn|腰子|tr=yāozi}} * เจวา: {{t|ny|impso}} * เช็ก: {{t+|cs|ledvina|f}} * ซาร์ดิเนีย: {{t|sc|arrene}}, {{t|sc|rene}}, {{t|sc|arrigu}}, {{t|sc|errigu}}, {{t|sc|orrungione}}, {{t|sc|orrunzone}}, {{t|sc|runzone}}, {{t|sc|nerule}} * ซุนดา: {{t|su|ᮌᮤᮔ᮪ᮏᮜ᮪}} * ซูลู: {{t|zu|izinso}} * เซอร์โบ-โครเอเชีย: {{t|sh|бу̀брег|m}}, {{t+|sh|bùbreg|m}} * ญี่ปุ่น: {{t+|ja|腎臓|tr=じんぞう, jinzō}} * ดัตช์: {{t+|nl|nier|f|tr=นีร์}} * เดนมาร์ก: {{t+|da|nyre|c}} * ตากาล็อก: {{t+|tl|bato}} * ตาตาร์: {{t+|tt|бөер}} * ทือกรึญญา: {{t|ti|ኵሊት}} * ตุรกี: {{t+|tr|böbrek}} * ตุรกีแบบออตโตมัน: {{t|ota|بوبرك}} * เตลูกู: {{t+|te|మూత్రపిండము}} * เติร์กเมน: {{t+|tk|böwrek}} * ทมิฬ: {{t+|ta|சிறுநீரகம்}} * ทาจิก: {{t+|tg|гурда}} * ทิเบต: {{t|bo|མཁལ་རིལ}} * ไทลื้อ: {{t+|khb|ᦖᦱᧅᦶᦅᧁ}} * ไทใหญ่: {{t+|shn|မၢၵ်ႇလၼ်း}} * นอร์มัน: {{t|nrf|rein|m}} * นอร์เวย์: *: นือนอสก์: {{t|nn|nyre|f|n}} *: บุ๊กมอล: {{t+|nb|nyre|m|f|n}} * นาวาโฮ: {{t|nv|achą́ʼáshkʼazhí}} * เนปาล: {{t|ne|मिर्गौलो}} * บัลแกเรีย: {{t+|bg|бъ́брек|m}} * บาลี: {{t|pi|วกฺก|n}} * บาสก์: {{t+|eu|giltzurrun}} * เบงกอล: {{t|bn|কিডনি}}, {{t|bn|বৃক্ক}}, {{t+|bn|অন্ত্র}} * เบลารุส: {{t|be|ны́рка|f}} * แบชเคียร์: {{t|ba|бөйөр}} * ปัญจาบ: {{t|pa|ਗੁਰਦਾ}} * เปอร์เซีย: {{t+|fa|کلیه}}, {{t+|fa|گرده}} * โปรตุเกส: {{t+|pt|rim|m}} * โปแลนด์: {{t+|pl|nerka|f}} * ฝรั่งเศส: {{t+|fr|rein|m|tr=แร็ง}} * พม่า: {{t+|my|ကျောက်ကပ်}} * พัชโต: {{t|ps|پوښتورګى|m}}, {{t|ps|بدوری|m}} * ฟรียูลี: {{t|fur|rognon}} * ฟินแลนด์: {{t+|fi|munuainen}} * แฟโร: {{t|fo|nýra|n}} * มราฐี: {{t|mr|गुडदा}} * มลยาฬัม: {{t+|ml|വൃക്ക}} * มองโกเลีย: {{t+|mn|бөөр}} * มอลตา: {{t|mt|kilwa|f}} * มัลดีฟส์: {{t|dv|ގުރުދާ}} * มาซิโดเนีย: {{t|mk|бубрег|m}} * มาเลเซีย: {{t|ms|ginjal}}, {{t|ms|kerinjal}}, {{t|ms|buah pinggang}} * มาวรี: {{t|mi|tākihi}}, {{t|mi|whatukuhu}}, {{t|mi|whatumanawa}} * แมนจู: {{t|mnc|ᠪᠣᠰᡥᠣ}} * ยิดดิช: {{t|yi|ניר}} * ยูเครน: {{t+|uk|ни́рка|f}} * เยอรมัน: {{t+|de|Niere|f}} * รัสเซีย: {{t+|ru|по́чка|f}} * โรมานช์: {{t|rm|gnirunchel}}, {{t|rm|narunchel}}, {{t|rm|niruncel}}, {{t|rm|nirunchel}}, {{t|rm|ranuogl}} * โรมาเนีย: {{t+|ro|rinichi|m}} * ละติน: {{t+|la|rēn|m}} * ลักเซมเบิร์ก: {{t+|lb|Nier|f}} * ลัตเวีย: {{t|lv|niere|f}}, {{t|lv|īkstis|f-p}} * ลาว: {{t+|lo|ໝາກໄຂ່ຫຼັງ}}, {{t+|lo|ໄຕ}} * ลิทัวเนีย: {{t|lt|inkstas|m}} * วัลลูน: {{t+|wa|rino}}, {{t+|wa|rno}}, {{t+|wa|rin}} * เวเนโต: {{t|vec|reno|m}} * เวลส์: {{t|cy|aren|f}} * เวียดนาม: {{t+|vi|thận}} ({{t|vi|腎}}) * โวลอฟ: {{t|wo|roño}} * โวลาปุก: {{t+|vo|roin}} * สเปน: {{t+|es|riñón|m}} * สโลวัก: {{t+|sk|oblička|f}}, {{t|sk|ľadvina|f}} * สโลวีเนีย: {{t|sl|ledvica|f}} * สวาฮีลี: {{t+|sw|figo}} * สวีเดน: {{t+|sv|njure}} * สันสกฤต: {{t+|sa|वृक्क}} * สิงหล: {{t|si|වකුගඩුව}} * แสก: {{t|skb|เต๋อ}} * อุตซิตา: {{t+|oc|ren}}, {{t|oc|arnelh}} * ออสซีเซีย: {{t|os|уырг}} * อังกฤษ: {{t+|en|kidney|tr=คิดนี}} * อังกฤษเก่า: {{t|ang|ǣdre|f}} * อัมฮารา: {{t|am|ኩላሊት}} * อัสตูเรียส: {{t+|ast|reñón|m}}, {{t+|ast|riñón|m}} * อัสสัม: {{t|as|বৃক্ক}} * อาเซอร์ไบจาน: {{t+|az|böyrək}} * อาร์มีเนีย: {{t+|hy|երիկամ}} * อาหรับ: {{t+|ar|كُلْيَة|f}} * อีโด: {{t+|io|reno}} * อิตาลี: {{t+|it|rene|m}} * อินโดนีเซีย: {{t+|id|ginjal}} * อินเทอร์ลิงกวา: {{t|ia|ren}} * อุซเบก: {{t+|uz|buyrak}} * อุยกูร์: {{t|ug|بۆرەك}} * อูรดู: {{t|ur|گردہ|m}} * เอเว: {{t|ee|ayiku|n}} * เอสโตเนีย: {{t+|et|neer}} * เอสเปรันโต: {{t|eo|reno}} * อาฟรีกานส์: {{t|af|nier}} * แอลเบเนีย: {{t+|sq|veshkë|f}}, {{t|sq|rrâni}} * โอริยา: {{t+|or|ମୂତ୍ରାଶୟ}}, {{t|or|ବୃକ୍କକ}} * ไอซ์แลนด์: {{t+|is|nýra|n}} * ไอริช: {{t+|ga|duán|m}} * ฮังการี: {{t+|hu|vese}} * ฮาวาย: {{t|haw|hakuʻala}} * ฮินดี: {{t+|hi|गुर्दा|m}} * ฮีบรู: {{t+|he|כִּלְיָה|f}}, {{t|he|כליות|f-p}} * ฮุนสริก: {{t|hrx|Nier|f}} * เฮาซา: {{t|ha|ƙoda}} * ไฮติครีโอล: {{t|ht|ren}} {{trans-bottom}} == ภาษาคำเมือง == === คำวิสามานยนาม === {{nod-proper noun}} # {{pronunciation spelling of|nod|ᨴᩱ}} # {{pronunciation spelling of|nod|ᨴᩱ᩠ᨿ}} === คำนาม === {{nod-noun}} # {{pronunciation spelling of|nod|ᨴᩱ}} === คำนาม === {{nod-noun|tl=1}} # {{alternative spelling of|nod|ᨲᩱ}} {{topics|nod|ไทย}} == ภาษาญ้อ == === รูปแบบอื่น === * {{alt|nyw|𞛍𞛮|sc=Tayo}} * {{alt|nyw|ไท}} === การออกเสียง === * {{IPA|nyw|/taj˨˨/}} === คำนาม === {{nyw-noun}} # [[ไท]] 3nkugy1i97l1ojsmu8ftuowtac8piru 5724809 5724808 2026-06-16T01:25:29Z OctraBot 3198 /* ภาษาคำเมือง */ 5724809 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == {{wp}} [[ไฟล์:Gray1120-kidneys.png|thumb|ไต]] === รูปแบบอื่น === * {{alt|th|ใต||เลิกใช้}} === รากศัพท์ === {{inh+|th|tai-swe-pro|*taɰᴬ²||กึ๋น; ไต}}, จาก{{inh|th|tai-pro|*p.taɰᴬ||กึ๋น}}; ร่วมเชื้อสายกับ{{cog|lo|ໃຕ}}, {{m|lo|ໄຕ}}, หรือ {{m|lo|ເຕີ}}, {{cog|nyw|ไต๋}}, {{cog|nod|ᨲᩱ}}, {{cog|khb|ᦺᦎ||กึ๋น; ไต}}, {{cog|blt|ꪻꪔ||กึ๋น}}, {{cog|twh|ꪻꪔ||กึ๋น}}, {{cog|phk|တၞ်||ไต}}, {{cog|za|daw||กึ๋น}}, {{cog|skb|เต๋อ||กึ๋น; ไต}}; เทียบ{{cog|shn|တႂ်||การแข็งหรือด้านที่เกิดจากการเสียดสีของผิวหนัง}} สำหรับความหมาย 2 === การออกเสียง === {{th-pron}} === คำนาม === {{th-noun}} # [[อวัยวะ]][[คู่]][[หนึ่ง]][[ของ]][[คน]][[และ]][[สัตว์]] [[อยู่]][[ใน]][[ช่องท้อง]][[ใกล้]][[กระดูกสันหลัง]] [[ทำ]][[หน้าที่]][[ขับ]][[ของเสีย]][[ออก]][[มา]][[กับ]][[น้ำปัสสาวะ]] {{cls|th|ข้าง|ลูก}} # [[สิ่ง]][[ซึ่ง]][[เป็น]][[ก้อน]][[แข็ง]]อยู่ใน[[เนื้อ]] ==== คำพ้องความ ==== * {{sense|อวัยวะ}} {{l|th|วักกะ}}, {{l|th|เซ่งจี๊}} / {{l|th|เซี่ยงจี๊}} {{q|ของหมู}} ==== คำแปลภาษาอื่น ==== {{trans-top|อวัยวะ}} * กรีก: {{t+|el|νεφρό|n}} *: โบราณ: {{t|grc|νεφρός|m}} * กันนฑะ: {{t+|kn|ಮೂತ್ರಪಿಂಡ}} * กาลิเซีย: {{t+|gl|ril|m}}, {{t|gl|rinle|m}} * เกชัว: {{t|qu|rurun}} * เกาหลี: {{t+|ko|콩팥}}, {{t+|ko|신장}} ({{t+|ko|腎臟}}) * แกลิกแบบสกอตแลนด์: {{t|gd|dubhag|f}} * เขมร: {{t+|km|វក្កំ}}, {{t|km|តម្រងមូត្រ}} {{qualifier|พบยาก}} * คาซัค: {{t+|kk|бүйрек}} * กาตาลา: {{t+|ca|ronyó|m}} * คีร์กีซ: {{t+|ky|бөйрөк}} * คุชราต: {{t|gu|મુત્રપિંડ}} * เคิร์ด: [[gurçik]], [[گورچیلە]] * จ้วง: {{t|za|mak}}, {{t|za|samndaen}} {{qualifier|ถิ่น}}, {{t|za|iucij}} {{qualifier|ถิ่น}} * จอร์เจีย: {{t|ka|თირკმელი}}, {{t|ka|ჭაჭა}} {{qualifier|ถิ่น}} * จีน: *: กวางตุ้ง: {{t|yue|腎}}, {{t|yue|肾|tr=san6}} *: จีนกลาง: {{t+|cmn|腎臟}}, {{t+|cmn|肾脏|tr=shènzàng}}, {{t+|cmn|腎}}, {{t+|cmn|肾|tr=shèn}}, {{t+|cmn|腰子|tr=yāozi}} * เจวา: {{t|ny|impso}} * เช็ก: {{t+|cs|ledvina|f}} * ซาร์ดิเนีย: {{t|sc|arrene}}, {{t|sc|rene}}, {{t|sc|arrigu}}, {{t|sc|errigu}}, {{t|sc|orrungione}}, {{t|sc|orrunzone}}, {{t|sc|runzone}}, {{t|sc|nerule}} * ซุนดา: {{t|su|ᮌᮤᮔ᮪ᮏᮜ᮪}} * ซูลู: {{t|zu|izinso}} * เซอร์โบ-โครเอเชีย: {{t|sh|бу̀брег|m}}, {{t+|sh|bùbreg|m}} * ญี่ปุ่น: {{t+|ja|腎臓|tr=じんぞう, jinzō}} * ดัตช์: {{t+|nl|nier|f|tr=นีร์}} * เดนมาร์ก: {{t+|da|nyre|c}} * ตากาล็อก: {{t+|tl|bato}} * ตาตาร์: {{t+|tt|бөер}} * ทือกรึญญา: {{t|ti|ኵሊት}} * ตุรกี: {{t+|tr|böbrek}} * ตุรกีแบบออตโตมัน: {{t|ota|بوبرك}} * เตลูกู: {{t+|te|మూత్రపిండము}} * เติร์กเมน: {{t+|tk|böwrek}} * ทมิฬ: {{t+|ta|சிறுநீரகம்}} * ทาจิก: {{t+|tg|гурда}} * ทิเบต: {{t|bo|མཁལ་རིལ}} * ไทลื้อ: {{t+|khb|ᦖᦱᧅᦶᦅᧁ}} * ไทใหญ่: {{t+|shn|မၢၵ်ႇလၼ်း}} * นอร์มัน: {{t|nrf|rein|m}} * นอร์เวย์: *: นือนอสก์: {{t|nn|nyre|f|n}} *: บุ๊กมอล: {{t+|nb|nyre|m|f|n}} * นาวาโฮ: {{t|nv|achą́ʼáshkʼazhí}} * เนปาล: {{t|ne|मिर्गौलो}} * บัลแกเรีย: {{t+|bg|бъ́брек|m}} * บาลี: {{t|pi|วกฺก|n}} * บาสก์: {{t+|eu|giltzurrun}} * เบงกอล: {{t|bn|কিডনি}}, {{t|bn|বৃক্ক}}, {{t+|bn|অন্ত্র}} * เบลารุส: {{t|be|ны́рка|f}} * แบชเคียร์: {{t|ba|бөйөр}} * ปัญจาบ: {{t|pa|ਗੁਰਦਾ}} * เปอร์เซีย: {{t+|fa|کلیه}}, {{t+|fa|گرده}} * โปรตุเกส: {{t+|pt|rim|m}} * โปแลนด์: {{t+|pl|nerka|f}} * ฝรั่งเศส: {{t+|fr|rein|m|tr=แร็ง}} * พม่า: {{t+|my|ကျောက်ကပ်}} * พัชโต: {{t|ps|پوښتورګى|m}}, {{t|ps|بدوری|m}} * ฟรียูลี: {{t|fur|rognon}} * ฟินแลนด์: {{t+|fi|munuainen}} * แฟโร: {{t|fo|nýra|n}} * มราฐี: {{t|mr|गुडदा}} * มลยาฬัม: {{t+|ml|വൃക്ക}} * มองโกเลีย: {{t+|mn|бөөр}} * มอลตา: {{t|mt|kilwa|f}} * มัลดีฟส์: {{t|dv|ގުރުދާ}} * มาซิโดเนีย: {{t|mk|бубрег|m}} * มาเลเซีย: {{t|ms|ginjal}}, {{t|ms|kerinjal}}, {{t|ms|buah pinggang}} * มาวรี: {{t|mi|tākihi}}, {{t|mi|whatukuhu}}, {{t|mi|whatumanawa}} * แมนจู: {{t|mnc|ᠪᠣᠰᡥᠣ}} * ยิดดิช: {{t|yi|ניר}} * ยูเครน: {{t+|uk|ни́рка|f}} * เยอรมัน: {{t+|de|Niere|f}} * รัสเซีย: {{t+|ru|по́чка|f}} * โรมานช์: {{t|rm|gnirunchel}}, {{t|rm|narunchel}}, {{t|rm|niruncel}}, {{t|rm|nirunchel}}, {{t|rm|ranuogl}} * โรมาเนีย: {{t+|ro|rinichi|m}} * ละติน: {{t+|la|rēn|m}} * ลักเซมเบิร์ก: {{t+|lb|Nier|f}} * ลัตเวีย: {{t|lv|niere|f}}, {{t|lv|īkstis|f-p}} * ลาว: {{t+|lo|ໝາກໄຂ່ຫຼັງ}}, {{t+|lo|ໄຕ}} * ลิทัวเนีย: {{t|lt|inkstas|m}} * วัลลูน: {{t+|wa|rino}}, {{t+|wa|rno}}, {{t+|wa|rin}} * เวเนโต: {{t|vec|reno|m}} * เวลส์: {{t|cy|aren|f}} * เวียดนาม: {{t+|vi|thận}} ({{t|vi|腎}}) * โวลอฟ: {{t|wo|roño}} * โวลาปุก: {{t+|vo|roin}} * สเปน: {{t+|es|riñón|m}} * สโลวัก: {{t+|sk|oblička|f}}, {{t|sk|ľadvina|f}} * สโลวีเนีย: {{t|sl|ledvica|f}} * สวาฮีลี: {{t+|sw|figo}} * สวีเดน: {{t+|sv|njure}} * สันสกฤต: {{t+|sa|वृक्क}} * สิงหล: {{t|si|වකුගඩුව}} * แสก: {{t|skb|เต๋อ}} * อุตซิตา: {{t+|oc|ren}}, {{t|oc|arnelh}} * ออสซีเซีย: {{t|os|уырг}} * อังกฤษ: {{t+|en|kidney|tr=คิดนี}} * อังกฤษเก่า: {{t|ang|ǣdre|f}} * อัมฮารา: {{t|am|ኩላሊት}} * อัสตูเรียส: {{t+|ast|reñón|m}}, {{t+|ast|riñón|m}} * อัสสัม: {{t|as|বৃক্ক}} * อาเซอร์ไบจาน: {{t+|az|böyrək}} * อาร์มีเนีย: {{t+|hy|երիկամ}} * อาหรับ: {{t+|ar|كُلْيَة|f}} * อีโด: {{t+|io|reno}} * อิตาลี: {{t+|it|rene|m}} * อินโดนีเซีย: {{t+|id|ginjal}} * อินเทอร์ลิงกวา: {{t|ia|ren}} * อุซเบก: {{t+|uz|buyrak}} * อุยกูร์: {{t|ug|بۆرەك}} * อูรดู: {{t|ur|گردہ|m}} * เอเว: {{t|ee|ayiku|n}} * เอสโตเนีย: {{t+|et|neer}} * เอสเปรันโต: {{t|eo|reno}} * อาฟรีกานส์: {{t|af|nier}} * แอลเบเนีย: {{t+|sq|veshkë|f}}, {{t|sq|rrâni}} * โอริยา: {{t+|or|ମୂତ୍ରାଶୟ}}, {{t|or|ବୃକ୍କକ}} * ไอซ์แลนด์: {{t+|is|nýra|n}} * ไอริช: {{t+|ga|duán|m}} * ฮังการี: {{t+|hu|vese}} * ฮาวาย: {{t|haw|hakuʻala}} * ฮินดี: {{t+|hi|गुर्दा|m}} * ฮีบรู: {{t+|he|כִּלְיָה|f}}, {{t|he|כליות|f-p}} * ฮุนสริก: {{t|hrx|Nier|f}} * เฮาซา: {{t|ha|ƙoda}} * ไฮติครีโอล: {{t|ht|ren}} {{trans-bottom}} == ภาษาคำเมือง == === รากศัพท์ 1 === ==== คำวิสามานยนาม ==== {{nod-proper noun}} # {{pronunciation spelling of|nod|ᨴᩱ}} # {{pronunciation spelling of|nod|ᨴᩱ᩠ᨿ}} ==== คำนาม ==== {{nod-noun}} # {{pronunciation spelling of|nod|ᨴᩱ}} === รากศัพท์ 2 === ==== คำนาม ==== {{nod-noun|tl=1}} # {{alternative spelling of|nod|ᨲᩱ}} {{topics|nod|ไทย}} == ภาษาญ้อ == === รูปแบบอื่น === * {{alt|nyw|𞛍𞛮|sc=Tayo}} * {{alt|nyw|ไท}} === การออกเสียง === * {{IPA|nyw|/taj˨˨/}} === คำนาม === {{nyw-noun}} # [[ไท]] e6rbfd5hocsn4hqd0zidxoix2k0dvrl ทรอ 0 274134 5724793 1520549 2026-06-15T13:58:07Z CorneliusVnG 17117 เพิ่มตัวอย่าง เติมข้อเสนอแนะ ต้องจัดหน้า 5724793 wikitext text/x-wiki == ภาษาไทย == === การออกเสียง === {{th-pron|ซอ}} '''ข้อควรทราบ''' จดหมายเหตุลาลูแบร์เก็บคำนี้ไว้ได้ เขียนว่า Trô === อ้างอิง === {{https://archive.org/details/bub_gb_PNUMAAAAYAAJ/page/n261/mode/2up}} อาจจะออกเสียงควบกล้ำแท้ แล้วมาออกเสียง ทร เป็น ซ ในภายหลังก็ได้ === คำนาม === {{th-noun|คัน}} # {{lb|th|โบ|กลอน}} [[ซอ]] #: {{ux|th|สยงสารสงงคีตขับทรอท่อ}} (ม. คำหลวง ทานกัณฑ์) #: {{ux|th|แจรงทรอทรในสารสยงยิ่ง จเข้ดิ่งสารสวรรค์}} (ม. คำหลวง มหาราช) #: {{ux|th|เสียงแฉ่งเสียงสาวทรอ ข่าวชู้}} (กำสรวลสมุทร) qltcxkgwd654lpc8ks670zst8e5em6p 5724795 5724793 2026-06-15T16:47:24Z Alifshinobi 397 5724795 wikitext text/x-wiki == ภาษาไทย == === รากศัพท์ === จดหมายเหตุลาลูแบร์เก็บคำนี้ไว้ได้ เขียนว่า Trô<ref>https://archive.org/details/bub_gb_PNUMAAAAYAAJ/page/n261/mode/2up</ref> อาจจะออกเสียงควบกล้ำแท้ แล้วมาออกเสียง ทร เป็น ซ ในภายหลังก็ได้ === การออกเสียง === {{th-pron|ซอ}} === คำนาม === {{th-noun|คัน}} # {{lb|th|โบ|กลอน}} [[ซอ]] #: {{ux|th|สยงสารสงงคีตขับทรอท่อ}} (ม. คำหลวง ทานกัณฑ์) #: {{ux|th|แจรงทรอทรในสารสยงยิ่ง จเข้ดิ่งสารสวรรค์}} (ม. คำหลวง มหาราช) #: {{ux|th|เสียงแฉ่งเสียงสาวทรอ ข่าวชู้}} (กำสรวลสมุทร) === อ้างอิง === {{รายการอ้างอิง}} 4yyv3q5n11c040edkfktbnu2tt3tp4n วิกิพจนานุกรม:แจ้งผู้ดูแลระบบ 4 283125 5724880 5676722 2026-06-16T11:39:50Z Poompak 12275 5724880 wikitext text/x-wiki {{/ส่วนหัว}} == คำขอแก้ไข == ผมสร้างคำขอใหม่ที่[[คุยเรื่องมอดูล:mul-letter]] แต่ติดตัวกรองผู้ใช้ใหม่ โปรดพิจารณาด้วยครับขอบคุณครับ --[[ผู้ใช้:Patsagorn Y.|Patsagorn Y.]] ([[คุยกับผู้ใช้:Patsagorn Y.|คุย]]) 12:06, 2 กันยายน 2563 (+07) == deprecated global wg varibles on HotCat == เนื่องจากมีเดียวิกิได้มี[[phab:T72470|การอัพเดตซอฟต์แวร์]]ทำให้การแปลภาษาไทยของ HotCat ในหน้า [[มีเดียวิกิ:Gadget-HotCat.js/local_defaults]] ใช้การไม่ได้ ซึ่งมีกระทบทำให้อุปกรณ์เสริมนี้ใช้ไม่ได้ มีวิธีแก้ไขโดยใส่ <pre>var wgArticleId = mw.config.get('wgArticleId');</pre> เข้าไประหว่างบรรทัดที่ 47 - 48 สามารถดูการแก้ไขที่แก้ไขแล้วประกอบที่ [[w:Special:Diff/9337615]] ด้วยครับ --[[ผู้ใช้:Bebiezaza|Bebiezaza]] ([[คุยกับผู้ใช้:Bebiezaza|คุย]]) 13:35, 29 เมษายน 2564 (+07) :{{done}} ทำแล้ว ไม่รู้ดีขึ้นหรือเปล่า --[[ผู้ใช้:Octahedron80|Octahedron80]] ([[คุยกับผู้ใช้:Octahedron80|คุย]]) 20:53, 30 เมษายน 2564 (+07) :: เท่าที่ดูก็ดีขึ้นแล้วนะครับ กลับมาใช้งานได้แล้ว --[[ผู้ใช้:Bebiezaza|Bebiezaza]] ([[คุยกับผู้ใช้:Bebiezaza|คุย]]) 21:08, 30 เมษายน 2564 (+07) == แก้ไขตอนลบไม่แสดงจำนวนหน้าย่อย (ต้องใช้สิทธิ์ IA) == เนื่องจากเวลาจะลบหน้าแล้วระบบไม่แสดงจำนวนหน้าย่อย เนื่องจากความผิดพลาดในโค้ดอินเตอร์เฟซ จึงมาแจ้งเพื่อให้ปรับปรุงโค้ดในหน้า [[มีเดียวิกิ:Deleting-subpages-warning]] ดังนี้ <source lang=diff> - <strong>คำเตือน:</strong> หน้าที่คุณกำลังจะลบมี[[Special:PrefixIndex/{{FULLPAGENAME}}/|{{PLURAL:$1|หน้าย่อย $ หน้า|51=มากกว่า 50 หน้า}}]] + <strong>คำเตือน:</strong> หน้าที่คุณกำลังจะลบมี[[Special:PrefixIndex/{{FULLPAGENAME}}/|{{PLURAL:$1|หน้าย่อย $1 หน้า|51=มากกว่า 50 หน้า}}]] </source> ขอบคุณครับ (และขอขอบคุณ [[ผู้ใช้:นคเรศ]] ที่ช่วยหาหน้าอินเตอร์เฟซให้ครับ) --[[ผู้ใช้:Bebiezaza|Bebiezaza]] ([[คุยกับผู้ใช้:Bebiezaza|คุย]]) 03:34, 13 พฤษภาคม 2564 (+07) ::{{done}} --[[ผู้ใช้:Octahedron80|Octahedron80]] ([[คุยกับผู้ใช้:Octahedron80|คุย]]) 04:36, 13 พฤษภาคม 2564 (+07) == ติดตามกลุ่มหุ่นเชิด == อยากให้ผู้ดูแลระบบวิกิพจนานุกรมทุกท่านช่วยติดตามกลุ่มหุ่นเชิด [[w:วิกิพีเดีย:การก่อกวนต่อเนื่องยาวนาน/Phanuruch8555|Ph8555]] เนื่องจากมีการก่อกวนข้ามโครงการ มีการสร้างหน้านโยบายที่ไม่ผ่านความคิดเห็นของชุมชน [[ผู้ใช้:Kaoavi|Kaoavi]] ([[คุยกับผู้ใช้:Kaoavi|คุย]]) 21:18, 13 พฤษภาคม 2566 (+07) == บล็อก == รบกวนผู้ดูแลระบบพิจารณาบล็อก [[ผู้ใช้:อีหน้าห*]] เนื่องจากเป็นหุ่นเชิดของ ph8555 และมีพฤติกรรมไม่เหมาะสม และบล็อกช่วงไอพี 2001:FB1:154:0:0:0:0:0/46 ซึ่งเป็นช่วงไอพีหลักที่ผู้ก่อกวนใช้ --[[ผู้ใช้:Kaoavi|Kaoavi]] ([[คุยกับผู้ใช้:Kaoavi|คุย]]) 14:24, 17 พฤษภาคม 2566 (+07) ::{{done}} เฉพาะผู้ใช้ดังกล่าว --[[ผู้ใช้:Octahedron80|Octahedron80]] ([[คุยกับผู้ใช้:Octahedron80|คุย]]) 17:08, 18 มิถุนายน 2566 (+07) :::{{ping|Octahedron80}} บัญชีถูก [[Special:CentralAuth/อีหน้าห*|globally locked]] แล้วครับ == Report concerning 2403:6200:8850:2402:89C1:8EB3:2BB7:20C0 == * [[Special:Contribs/2403:6200:8850:2402:89C1:8EB3:2BB7:20C0]] * Removing content from pages. Sorry for not knowing your language. [[ผู้ใช้:Yahya|Yahya]] ([[คุยกับผู้ใช้:Yahya|คุย]]) 00:54, 12 กรกฎาคม 2566 (+07) == translatewiki.net == {{ping|Octahedron80|Ponpan|B20180|Alifshinobi|NNNEIFU}} ขอเชิญชวน[[:w:วิกิพีเดีย:สภากาแฟ/อภิปราย/translatewiki.net|ร่วมกันแปล]] translatewiki.net คิดว่าในบรรดาโครงการพี่น้อง ที่วิกิพจนานุกรมจะมีความสำคัญในการดำเนินการส่วนนี้มากที่สุดครับ [[ผู้ใช้:Taweetham|taweethaも]] ([[คุยกับผู้ใช้:Taweetham|คุย]]) 07:36, 20 มกราคม 2567 (+07) == Report concerning 49.237.38.62 == *[[Special:Contribs/49.237.38.62]] - Reason: Vandalism. [[ผู้ใช้:Hide on Rosé|Hide on Rosé]] ([[คุยกับผู้ใช้:Hide on Rosé|คุย]]) 20:12, 8 กุมภาพันธ์ 2567 (+07) : {{ping|Octahedron80}} [[ผู้ใช้:Hide on Rosé|Hide on Rosé]] ([[คุยกับผู้ใช้:Hide on Rosé|คุย]]) 20:12, 8 กุมภาพันธ์ 2567 (+07) Sorry for not online. A global-op already took it down. --[[ผู้ใช้:Octahedron80|Octahedron80]] ([[คุยกับผู้ใช้:Octahedron80|คุย]]) 20:46, 8 กุมภาพันธ์ 2567 (+07) == เพิ่มข้อความในประกาศ == ขอให้ผู้ดูแลพิจารณาเพิ่มข้อความต่อไปนี้ในแม่แบบประกาศด้วยครับ <code>* 17 ก.พ. - [[:m:Wikimedia Thailand/Rangsitpol Family Topic Ban|อภิปราย]]มาตรการห้ามเขียนบทความตระกูลรังสิตพลในโครงการวิกิมีเดียภาษาไทย</code> [[ผู้ใช้:Harley Hartwell|Harley Hartwell]] ([[คุยกับผู้ใช้:Harley Hartwell|คุย]]) 20:06, 17 กุมภาพันธ์ 2567 (+07) ==บังคับใช้มาตรการห้ามเขียนเนื้อหาของตระกูลรังสิตพล== ตามที่ประชาคมวิกิมีเดียประเทศไทยได้ออกเสียงรับรองมาตรการ[[:m:Wikimedia Thailand/Rangsitpol Family Topic Ban|ห้ามเขียนเนื้อหาของตระกูลรังสิตพล]] จึงขอแจ้งให้ผู้ดูแลระบบทราบถึงมาตรการดังกล่าว ดังต่อไปนี้ # '''ห้ามมิให้'''ผู้ใช้ (ไม่ว่าจะเป็นผู้ใช้ลงทะเบียนหรือไม่ก็ตาม) '''เพิ่มเติมเนื้อหาที่เกี่ยวข้องกับตระกูลรังสิตพลและบุคคลในตระกูลเป็นจำนวนเจ็ด (7) ชั้นสายลำดับ''' ทั้งนี้ ให้ตีความอย่างกว้าง ในโครงการที่อยู่ในความดูแลของชุมชนวิกิมีเดียประเทศไทยทุกโครงการ (กล่าวคือ โครงการที่มีโดเมน <code>th.wik*</code> ทั้งหมด และโครงการใน Wikimedia Incubator ที่ใช้ภาษาไทย) ยกเว้นกรณีจะเป็นไปตามข้อยกเว้นที่กำหนด #* คำว่า "เจ็ดชั้นสายลำดับ" ให้นับสุขวิช รังสิตพล และคู่สมรสเป็นชั้นลำดับที่ 0 และให้หมายถึงลำดับชั้นสุขวิช รังสิตพล และคู่สมรส ลำดับชั้นของบรรพบุรุษของสุขวิช รังสิตพล นับขึ้นไปสาม (3) ชั้นสายลำดับ และลำดับชั้นของผู้สืบสันดานของสุขวิช รังสิตพล และคู่สมรส นับถัดลงมาสาม (3) ชั้นสายลำดับ #* คำว่า "ตีความอย่างกว้าง" ให้หมายความรวมถึงการแก้ไขบทความในเรื่องใด ๆ ก็ตามเพื่อเพิ่มเติมเนื้อหาที่เกี่ยวกับบุคคลในตระกูลรังสิตพล หรือเนื้อหาที่เกี่ยวข้องกับผลงานของบุคคลในตระกูลรังสิตพล ซึ่งรวมถึง (แต่ไม่จำกัดเพียง) การปฏิรูปการศึกษา กระเทย มหาวิทยาลัยราชภัฏ พรรคประชาธิปัตย์ หรือบทความใด ๆ ที่บุคคลในตระกูลรังสิตพลมีส่วนเกี่ยวข้อง #* กรณีที่มีเนื้อหาของบุคคลในตระกูลรังสิตพลอยู่ในหน้าใด ให้'''นำออก'''หรือ'''ลบหน้า'''ดังกล่าวทิ้ง (ทั้งนี้ ไม่จำเป็นต้องใช้กระบวนการ Revision Delete เพื่อนำเนื้อหาดังกล่าวออกจากประวัติเดิมของหน้า) # '''อนุญาต'''ให้มีเนื้อหาที่เกี่ยวข้องกับตระกูลรังสิตพลได้เฉพาะกรณีที่เป็นข้อเท็จจริงที่ไม่อาจโต้แย้งเป็นอย่างอื่นได้ และมีเอกสารราชการรองรับ เช่น การดำรงตำแหน่งในคณะรัฐมนตรีหรือหน่วยงานราชการ การลงสมัครผู้ว่ากรุงเทพมหานคร ทั้งนี้ จะต้องไม่เป็นการกล่าวถึงผลงานของบุคคลดังกล่าว # '''อนุญาต'''ให้ใช้กลไกของระบบมีเดียวิกิ เช่น Abuse Filter, Title Blacklist หรือกลไกอื่นใดเพื่อดำเนินการตามมาตรการดังกล่าวได้ และ'''อนุญาต'''ให้ผู้ดูแลระบบดำเนินมาตรการตามที่เห็นสมควรกับผู้ใช้ที่พยายามกระทำการหลีกเลี่ยงการบังคับใช้มาตรการนี้ รวมถึงการบล็อกผู้ใช้หรือไอพีหากจำเป็นได้ # มาตรการนี้มีผลบังคับใช้เมื่อชุมชนวิกิมีเดียประเทศไทยให้ความเห็นชอบ และให้บังคับใช้โดย'''ไม่มีกำหนดระยะเวลา''' (indefinite) จนกว่าชุมชนจะได้ทบทวนมาตรการดังกล่าวในภายหลัง โดยคำนึงถึงภัยคุกคามที่อาจเกิดขึ้นในการมีบทความของบุคคลในตระกูลรังสิตพลในขณะนั้น ทั้งนี้ ให้มีการทบทวนนโยบายดังกล่าวอย่างน้อยหนึ่งครั้งทุก ๆ ระยะเวลาห้า (5) ปีที่เริ่มบังคับใช้มาตรการ หรือต่ออายุมาตรการครั้งหลังสุด เพื่อการนี้ ขอให้ผู้ดูแลระบบหรือผู้ใช้ดำเนินการตามความเหมาะสมเพื่อนำออก และ/หรือคงเนื้อหาที่เกี่ยวข้องไว้โดยไม่เป็นการขัดต่อนโยบายนี้ จึงเรียนมาเพื่อทราบและดำเนินการต่อไป (ทั้งนี้ เนื่องจากเสร็จสิ้นการอภิปรายแล้ว สามารถนำประกาศในเรื่องนี้ออกได้) --[[ผู้ใช้:Harley Hartwell|Harley Hartwell]] ([[คุยกับผู้ใช้:Harley Hartwell|คุย]]) 15:26, 15 มีนาคม 2567 (+07) == แจ้งลบประวัติหน้า == ขอให้ผู้ดูแลระบบลบประวัติหน้ารุ่นการแก้ไขนี้ [[Special:Permalink/2765044]] เนื่องจากมีการเปิดเผยสารสนเทศส่วนบุคคลครับ [[User:Ekminarin|Rin]] <sup>[ [[User talk:Ekminarin|T]] · [[Special:Contributions/Ekminarin|C]] ]</sup> 12:28, 11 มีนาคม 2568 (+07) :ซ่อนประวัติหน้าแล้ว--[[ผู้ใช้:Octahedron80|Octahedron80]] ([[คุยกับผู้ใช้:Octahedron80|คุย]]) 16:39, 12 มีนาคม 2568 (+07) == WikiLove extension == ที่วิกิพีเดียภาษาไทยเริ่มใช้งานแล้วตั้งแต่ 7 สิงหาคม พ.ศ. 2568 หากท่านสนใจโปรดดำเนินการตามวิกิพีเดียภาษาไทยที่เป็นตัวอย่างให้แล้วได้เลย --[[ผู้ใช้:Taweetham|taweethaも]] ([[คุยกับผู้ใช้:Taweetham|คุย]]) 00:57, 8 สิงหาคม 2568 (+07) == temporary account == FYI. https://wikimedia.eventyay.com/talk/wikimania2025/talk/KFEFVG/ บัญชีชั่วคราวกำลังจะมาในระยะเวลาอันสั้น (1-3 เดือน ข้างหน้านี้) ทำให้ผู้ใช้ไม่ลงทะเบียนที่เป็นไอพีเปลี่ยนแปลงไป --[[ผู้ใช้:Taweetham|Taweethaも]] ([[คุยกับผู้ใช้:Taweetham|คุย]]) 22:18, 9 สิงหาคม 2568 (+07) :: รวมกันไปอภิปรายที่เดียวก็ได้ครับ [[:w:th:วิกิพีเดีย:สภากาแฟ/อภิปราย/temporary accounts announcement]] --[[ผู้ใช้:Taweetham|taweethaも]] ([[คุยกับผู้ใช้:Taweetham|คุย]]) 08:53, 30 สิงหาคม 2568 (+07) == ขอสิทธิ์แก้ไข == สวัสดีครับ ตอนนี้ผมเขียนเพิ่มเนื้อหาของพจนานุกรมในส่วนที่เป็นภาษาญี่ปุ่น เนื่องจากผมเป็นผู้ใช้ใหม่ อีกทั้งยังติดตัวกรองสแปมของทางวิกิ ก็เลยยังไม่สามารถเขียนได้ในทั้งส่วนของคำนิยามเองก็ดี หรือแม่แบบที่เกี่ยวข้องกับภาษาญี่ปุ่นที่ไม่ค่อยครบก็ดี จงเรียนมาเพื่อโปรดพิจารณาให้ปลดแบนผมด้วย --[[ผู้ใช้:Poompak|Poompak]] ([[คุยกับผู้ใช้:Poompak|คุย]]) 18:39, 16 มิถุนายน 2569 (+07) 9lb1f3i44ikg2rreyhher9taa8rhkdi ตะไคร้ 0 283814 5724863 5721814 2026-06-16T09:31:01Z Alifshinobi 397 /* รากศัพท์ */ 5724863 wikitext text/x-wiki {{also/auto}} == ภาษาไทย == {{wp}} === รากศัพท์ === เทียบ{{cog|sou|ไคร}}, {{cog|tts|หัวสิงไค}} หรือ {{m|tts|ซิงไค}}, {{cog|lo|ຫົວສີໄຄ,ຫົວສິງໄຄ}}, {{cog|nod|ᨧᩢ᩠ᨠᨣᩕᩱ,จะไคร}}, {{cog|khb|ᦷᦠᦉᧅᦺᦆᧉ}}, {{cog|blt|ꪻꪋ}}, {{cog|km|គ្រៃ}} (ในคำว่า {{m|km|ស្លឹកគ្រៃ}}) === การออกเสียง === {{th-pron|ตะ-ไคฺร้}} === คำนาม === {{th-noun}} # [[ชื่อ]][[ไม้ล้มลุก]][[ชนิด]] Cymbopogon citratus (DC.) Stapf [[ใน]][[วงศ์]] Gramineae [[ขึ้น]][[เป็น]][[กอ]] [[กลิ่น]][[หอม]] [[ใช้]][[ปรุง]][[อาหาร]] ==== คำแปลภาษาอื่น ==== {{trans-top|ชื่อไม้ล้มลุก}} * เขมร: {{t+|km|ស្លឹកគ្រៃ}} * ไทลื้อ: {{t+|khb|ᦷᦠᦉᧅᦺᦆᧉ}} * ไทใหญ่: {{t+|shn|ၶႃးႁွမ်}} * พม่า: {{t+|my|စပါးလင်}} * ลาว: {{t+|lo|ຫົວສີໄຄ}}, {{t+|lo|ຫົວສິງໄຄ}} * เวียดนาม: {{t+|vi|sả}} * อังกฤษ: {{t+|en|lemongrass|tr=เล็มมันแกรส}} * อีสาน: {{t+|tts|หัวสิงไค}} {{trans-bottom}} ltpnq04zp0frwh7mk400xznelordd4v ᨴ᩠ᨿ᩵ᨦ 0 285267 5724868 2019353 2026-06-16T10:58:24Z OctraBot 3198 /* รากศัพท์ */ 5724868 wikitext text/x-wiki == ภาษาเขิน == === รากศัพท์ === {{bor+|kkh|ltc|-}} {{ltc-l|定|id=1}}; ร่วมเชื้อสายกับ{{cog|th|เที่ยง}}, {{cog|nod|ᨴ᩠ᨿ᩵ᨦ}}, {{cog|lo|ທ່ຽງ}}, {{cog|khb|ᦵᦑᧂᧈ}}, {{cog|shn|တဵင်ႈ}}, {{cog|aho|𑜄𑜢𑜂𑜫}}, {{cog|zhn|dingh}} หรือ {{m|zhn|dingq}}, {{cog|skb|เถี้ยง}} === การออกเสียง === * {{IPA|kkh|/teːŋ˨˨/|a=เชียงตุง}} * {{homophones|kkh|qq1=ในถิ่นที่มีการออกเสียงอักษรคู่เหมือนกันเมื่อมี[[ไม้หยัก]]|ᨲ᩠ᨿ᩵ᨦ}} === คำนาม === {{kkh-noun}} # [[เที่ยง]] === คำคุณศัพท์ === {{kkh-adj}} # [[เที่ยง]], [[มั่นคง]], [[ยุติธรรม]], [[ซื่อสัตย์]] == ภาษาคำเมือง == === รูปแบบอื่น === {{nod-alt|l=เที่ยง|s=เตี้ยง}} === รากศัพท์ === จาก{{der|nod|ltc|-}} {{ltc-l|定|id=1}}; ร่วมเชื้อสายกับ{{cog|th|เที่ยง}}, {{cog|kkh|ᨴ᩠ᨿ᩵ᨦ}}, {{cog|lo|ທ່ຽງ}}, {{cog|khb|ᦵᦑᧂᧈ}}, {{cog|shn|တဵင်ႈ}}, {{cog|aho|𑜄𑜢𑜂𑜫}}, {{cog|zhn|dingh}} หรือ {{m|zhn|dingq}}, {{cog|skb|เถี้ยง}} === คำนาม === {{nod-noun}} # [[เที่ยง]] === คำคุณศัพท์ === {{nod-adj}} # [[เที่ยง]], [[มั่นคง]], [[ยุติธรรม]], [[ซื่อสัตย์]] jnxcqn5yhqot13v4tmaznegqh42o3cw 5724869 5724868 2026-06-16T10:58:34Z OctraBot 3198 /* รากศัพท์ */ 5724869 wikitext text/x-wiki == ภาษาเขิน == === รากศัพท์ === จาก{{der|kkh|ltc|-}} {{ltc-l|定|id=1}}; ร่วมเชื้อสายกับ{{cog|th|เที่ยง}}, {{cog|nod|ᨴ᩠ᨿ᩵ᨦ}}, {{cog|lo|ທ່ຽງ}}, {{cog|khb|ᦵᦑᧂᧈ}}, {{cog|shn|တဵင်ႈ}}, {{cog|aho|𑜄𑜢𑜂𑜫}}, {{cog|zhn|dingh}} หรือ {{m|zhn|dingq}}, {{cog|skb|เถี้ยง}} === การออกเสียง === * {{IPA|kkh|/teːŋ˨˨/|a=เชียงตุง}} * {{homophones|kkh|qq1=ในถิ่นที่มีการออกเสียงอักษรคู่เหมือนกันเมื่อมี[[ไม้หยัก]]|ᨲ᩠ᨿ᩵ᨦ}} === คำนาม === {{kkh-noun}} # [[เที่ยง]] === คำคุณศัพท์ === {{kkh-adj}} # [[เที่ยง]], [[มั่นคง]], [[ยุติธรรม]], [[ซื่อสัตย์]] == ภาษาคำเมือง == === รูปแบบอื่น === {{nod-alt|l=เที่ยง|s=เตี้ยง}} === รากศัพท์ === จาก{{der|nod|ltc|-}} {{ltc-l|定|id=1}}; ร่วมเชื้อสายกับ{{cog|th|เที่ยง}}, {{cog|kkh|ᨴ᩠ᨿ᩵ᨦ}}, {{cog|lo|ທ່ຽງ}}, {{cog|khb|ᦵᦑᧂᧈ}}, {{cog|shn|တဵင်ႈ}}, {{cog|aho|𑜄𑜢𑜂𑜫}}, {{cog|zhn|dingh}} หรือ {{m|zhn|dingq}}, {{cog|skb|เถี้ยง}} === คำนาม === {{nod-noun}} # [[เที่ยง]] === คำคุณศัพท์ === {{nod-adj}} # [[เที่ยง]], [[มั่นคง]], [[ยุติธรรม]], [[ซื่อสัตย์]] a26xco8id8ymolazedzznsw9h47le7f 5724874 5724869 2026-06-16T11:03:51Z OctraBot 3198 5724874 wikitext text/x-wiki == ภาษาเขิน == === รากศัพท์ === {{inh+|kkh|tai-swe-pro|*diəŋᴮ⁴||เที่ยงวัน, เที่ยงคืน}} (Jonsson, 1991), จาก{{der|kkh|ltc|-}} {{ltc-l|定|id=1}}; ร่วมเชื้อสายกับ{{cog|th|เที่ยง}}, {{cog|nod|ᨴ᩠ᨿ᩵ᨦ}}, {{cog|lo|ທ່ຽງ}}, {{cog|khb|ᦵᦑᧂᧈ}}, {{cog|shn|တဵင်ႈ}}, {{cog|aho|𑜄𑜢𑜂𑜫}}, {{cog|zhn|dingh}} หรือ {{m|zhn|dingq}}, {{cog|skb|เถี้ยง}} === การออกเสียง === * {{IPA|kkh|/teːŋ˨˨/|a=เชียงตุง}} * {{homophones|kkh|qq1=ในถิ่นที่มีการออกเสียงอักษรคู่เหมือนกันเมื่อมี[[ไม้หยัก]]|ᨲ᩠ᨿ᩵ᨦ}} === คำนาม === {{kkh-noun}} # [[เที่ยง]] === คำคุณศัพท์ === {{kkh-adj}} # [[เที่ยง]], [[มั่นคง]], [[ยุติธรรม]], [[ซื่อสัตย์]] == ภาษาคำเมือง == === รูปแบบอื่น === {{nod-alt|l=เที่ยง|s=เตี้ยง}} === รากศัพท์ === {{inh+|nod|tai-swe-pro|*diəŋᴮ⁴||เที่ยงวัน, เที่ยงคืน}} (Jonsson, 1991), จาก{{der|nod|ltc|-}} {{ltc-l|定|id=1}}; ร่วมเชื้อสายกับ{{cog|th|เที่ยง}}, {{cog|kkh|ᨴ᩠ᨿ᩵ᨦ}}, {{cog|lo|ທ່ຽງ}}, {{cog|khb|ᦵᦑᧂᧈ}}, {{cog|shn|တဵင်ႈ}}, {{cog|aho|𑜄𑜢𑜂𑜫}}, {{cog|zhn|dingh}} หรือ {{m|zhn|dingq}}, {{cog|skb|เถี้ยง}} === คำนาม === {{nod-noun}} # [[เที่ยง]] === คำคุณศัพท์ === {{nod-adj}} # [[เที่ยง]], [[มั่นคง]], [[ยุติธรรม]], [[ซื่อสัตย์]] dfqaiwzbjcp21x5gucnq15lher7fxlw ไต๋ 0 289267 5724810 4931174 2026-06-16T01:26:18Z OctraBot 3198 /* ภาษาญ้อ */ 5724810 wikitext text/x-wiki {{also/auto}} ==ภาษาไทย== ===รากศัพท์=== จาก{{der|th|yue|底|tr=dai2}} ===การออกเสียง=== {{th-pron}} ===คำนาม=== {{th-noun}} # {{lb|th|ปาก}} [[กลเม็ด]], ทีเด็ด, ความลับ, เจตนาแท้จริงซึ่งปิดบังไว้. #: {{ux|th|ในที่สุดก็เผยไต๋ออกมา}} # ไพ่ตัวสำคัญที่ปิดไว้ไม่ให้คู่แข่งรู้. == ภาษาคำเมือง == === คำนาม === {{nod-noun|tl=1}} # {{pronunciation spelling of|nod|ᨲᩱ}} == ภาษาญ้อ == === รูปแบบอื่น === * {{alt|nyw|𞛌𞛮|sc=Tayo}} === คำนาม === {{nyw-noun}} # [[ไต]] (อวัยวะ) hyuq1e1e8avyldqy41dizaa4h008ln3 5724811 5724810 2026-06-16T01:26:37Z OctraBot 3198 /* คำนาม */ 5724811 wikitext text/x-wiki {{also/auto}} ==ภาษาไทย== ===รากศัพท์=== จาก{{der|th|yue|底|tr=dai2}} ===การออกเสียง=== {{th-pron}} ===คำนาม=== {{th-noun}} # {{lb|th|ปาก}} [[กลเม็ด]], ทีเด็ด, ความลับ, เจตนาแท้จริงซึ่งปิดบังไว้. #: {{ux|th|ในที่สุดก็เผยไต๋ออกมา}} # ไพ่ตัวสำคัญที่ปิดไว้ไม่ให้คู่แข่งรู้. == ภาษาคำเมือง == === คำนาม === {{nod-noun}} # {{pronunciation spelling of|nod|ᨲᩱ}} == ภาษาญ้อ == === รูปแบบอื่น === * {{alt|nyw|𞛌𞛮|sc=Tayo}} === คำนาม === {{nyw-noun}} # [[ไต]] (อวัยวะ) fqxnp4du19q97x18bidjks3wkw46pjz มอดูล:category tree/หมวดเชิงไวยากรณ์ 828 306653 5724845 5688468 2026-06-16T04:33:45Z OctraBot 3198 5724845 Scribunto text/plain local labels = {} local raw_categories = {} local handlers = {} ----------------------------------------------------------------------------- -- -- -- LABELS -- -- -- ----------------------------------------------------------------------------- labels["ศัพท์แบ่งตามประเภทไวยากรณ์"] = { description = "{{{langname}}} terms categorized by their grammatical category.", umbrella_parents = "มูลฐาน", parents = {{name = "{{{langcat}}}", raw = true}}, } labels["terms by grammatical category"] = labels["ศัพท์แบ่งตามประเภทไวยากรณ์"] labels["ศัพท์ที่ผันรูปไม่ได้"] = { description = "Indeclinable {{{langname}}} terms categorized by their part of speech.", umbrella_parents = "Indeclinable terms subcategories by language", parents = {{name = "ศัพท์แบ่งตามประเภทไวยากรณ์"}}, } labels["indeclinable terms"] = labels["ศัพท์ที่ผันรูปไม่ได้"] labels["suppletive terms"] = { description = "Suppletive {{{langname}}} terms categorized by their part of speech.", umbrella_parents = "Suppletion subcategories by language", parents = {{name = "ศัพท์แบ่งตามประเภทไวยากรณ์"}}, } ------- GENDER ------- for _, pos in ipairs { "คำนาม", "คำวิสามานยนาม", "คำสรรพนาม", "ปัจจัย" } do labels[pos .. "★แบ่งตามเพศ"] = { description = "{{{langname}}} " .. pos .. " organized by the gender they belong to.", breadcrumb = "แบ่งตามเพศ", parents = {{name = pos, sort = "เพศ"}}, } labels[pos .. "★ที่มีเพศไม่ปรกติ"] = { description = "{{{langname}}} " .. pos .. " whose ending is not typical for " .. pos .. " of their gender.", breadcrumb = "มีเพศไม่ปรกติ", parents = {{name = pos .. "ไม่ปรกติ", sort = "เพศไม่ปรกติ"}}, } labels[pos .. "★ที่มีหลายเพศ"] = { description = "{{{langname}}} " .. pos .. " that belong to more than one gender.", breadcrumb = "มีหลายเพศ", parents = {{name = pos .. "★แบ่งตามเพศ", sort = "หลายเพศ"}}, } labels[pos .. "เพศรวม"] = { description = "{{{langname}}} " .. pos .. " of [[Appendix:Glossary#common gender|common gender]], i.e. belonging to a gender category that combines the function of [[Appendix:Glossary#masculine|masculine]] and [[Appendix:Glossary#feminine|feminine]] and is opposed to the [[Appendix:Glossary#neuter|neuter]] gender.", breadcrumb = "เพศรวม", parents = {pos .. "★แบ่งตามเพศ"}, } labels[pos .. "เพศหญิง"] = { description = "{{{langname}}} " .. pos .. " of [[Appendix:Glossary#feminine|feminine]] gender, i.e. belonging to a gender category that contains (among other things) female beings.", breadcrumb = "เพศหญิง", parents = {pos .. "★แบ่งตามเพศ"}, } labels[pos .. "เพศชาย"] = { description = "{{{langname}}} " .. pos .. " of [[Appendix:Glossary#masculine|masculine]] gender, i.e. belonging to a gender category that contains (among other things) male beings.", breadcrumb = "เพศชาย", parents = {pos .. "★แบ่งตามเพศ"}, } labels[pos .. "★ที่เพศขึ้นอยู่กับความหมาย"] = { description = "{{{langname}}} " .. pos .. " that may be either [[Appendix:Glossary#masculine|masculine]] or [[Appendix:Glossary#feminine|feminine]] depending on whether they refer to male or female beings.", breadcrumb = "เพศขึ้นอยู่กับความหมาย", parents = {pos .. "★แบ่งตามเพศ"}, } labels[pos .. "เพศกลาง"] = { description = "{{{langname}}} " .. pos .. " of [[Appendix:Glossary#neuter|neuter]] gender, i.e. belonging to a gender category that does not usually contain male or female beings.", breadcrumb = "เพศกลาง", parents = {pos .. "★แบ่งตามเพศ"}, } labels[pos .. "ไม่ระบุเพศ"] = { description = "{{{langname}}} " .. pos .. " that are applicable to all people, independent of gender.", breadcrumb = "ไม่ระบุเพศ", parents = {pos .. "★แบ่งตามเพศ", "ศัพท์ที่ไม่ระบุเพศ"}, } end for _, pos in ipairs({"คำคุณศัพท์", "ตัวกำหนด", "เลข", "รูปกริยาขยาย", "ปัจจัย"}) do labels[pos .. "epicene"] = { description = "{{{langname}}} " .. pos .. " whose form is the same for both {{glossary|masculine}} and {{glossary|feminine}}, in languages whose " .. pos .. " normally distinguish gender.", breadcrumb = "epicene", parents = {pos .. "★แบ่งตามชนิดการผันรูป"}, } end ------- NOUN CLASSES ------- labels["คำนาม★แบ่งตามกลุ่ม"] = { description = "{{{langname}}} nouns organized by the class they belong to.", breadcrumb = "แบ่งตามกลุ่ม", parents = {{name = "คำนาม", sort = "กลุ่ม"}}, } labels["nouns by class"] = labels["คำนาม★แบ่งตามกลุ่ม"] labels["alienable nouns"] = { description = "{{{langname}}} nouns that are [[w:Inalienable possession|alienably possessed]].", breadcrumb = "alienable", parents = {"คำนาม"}, } labels["inalienable nouns"] = { description = "{{{langname}}} nouns that are [[w:Inalienable possession|inalienably possessed]].", breadcrumb = "inalienable", parents = {"คำนาม"}, } ------- ANIMACY ------- for _, pos in ipairs({"คำนาม", "ปัจจัย", "คำกริยา"}) do labels[pos .. "มีชีวิต"] = { description = "{{{langname}}} " .. pos .. " that refer to humans or animals.", breadcrumb = "มีชีวิต", parents = {pos}, } labels[pos .. "ไม่มีชีวิต"] = { description = "{{{langname}}} " .. pos .. " that refer to inanimate objects (not humans or animals).", breadcrumb = "ไม่มีชีวิต", parents = {pos}, } labels[pos .. "★ที่มีหลายชีวิตภาพ"] = { description = "{{{langname}}} " .. pos .. " that belong to more than one animacy.", breadcrumb = "มีหลายชีวิตภาพ", parents = {{name = pos, sort = "หลายชีวิตภาพ"}}, } end for _, pos in ipairs({"คำนาม", "ปัจจัย"}) do -- This category should be used particularly in languages that have -- grammatical distinctions related to animals, such as Ukrainian. labels[pos .. "สัตว์"] = { description = "{{{langname}}} " .. pos .. " that refer to animals.", breadcrumb = "สัตว์", parents = {pos .. "มีชีวิต"}, } -- This category should be used particularly in languages that have -- grammatical distinctions related to men, such as Polish. labels[pos .. "nonvirile"] = { description = "{{{langname}}} plural " .. pos .. " that refer to a group without male humans.", breadcrumb = "nonvirile", parents = {pos, "พหูพจน์เท่านั้น"}, } labels[pos .. "บุคคล"] = { description = "{{{langname}}} " .. pos .. " that refer to humans.", breadcrumb = "บุคคล", parents = {pos .. "มีชีวิต"}, } -- This category should be used particularly in languages that have -- grammatical distinctions related to men, such as Polish. labels[pos .. "virile"] = { description = "{{{langname}}} plural " .. pos .. " that refer to a group with at least one male human.", breadcrumb = "virile", parents = {pos, "พหูพจน์เท่านั้น"}, } end ------- INFLECTED PARTS OF SPEECH ------- -- Add "POS by inflection type", "irregular POS" and "POS by tone" -- categories for (potentially) inflected parts of speech. local inflected_poses = { "คำคุณศัพท์", "คำกริยาวิเศษณ์", "ตัวกำหนด", "คำนาม", "เลข", "รูปกริยาขยาย", "คำสรรพนาม", "คำวิสามานยนาม", "ปัจจัย", "คำกริยา", } for _, pos in ipairs(inflected_poses) do labels[pos .. "★แบ่งตามชนิดการผันรูป"] = { description = "{{{langname}}} " .. pos .. " organized by the type of inflection they follow.", breadcrumb = "แบ่งตามชนิดการผันรูป", parents = {{name = pos, sort = "การผันรูป"}}, } labels[pos .. "ไม่ปรกติ"] = { description = "{{{langname}}} " .. pos .. " that follow non-standard patterns of inflection.", breadcrumb = "ไม่ปรกติ", parents = {pos .. "★แบ่งตามชนิดการผันรูป"}, } labels[pos .. "บกพร่อง"] = { description = "{{{langname}}} " .. pos .. " that lack one or more forms in their inflections.", breadcrumb = "บกพร่อง", parents = {pos, pos .. "ไม่ปรกติ"}, } labels[pos .. "suppletive"] = { description = "{{{langname}}} " .. pos .. " that have inflected forms from different roots.", breadcrumb = "suppletive", umbrella_parents = "Suppletion subcategories by language", parents = { pos .. "ไม่ปรกติ", "suppletive terms", }, } if pos ~= "คำกริยา" and pos ~= "คำกริยาวิเศษณ์" then labels[pos .. "ผันรูปไม่ได้"] = { description = "{{{langname}}} " .. pos .. " that do not display additional grammatical relations by means of declension.", breadcrumb = "ผันรูปไม่ได้", umbrella_parents = "Indeclinable terms subcategories by language", parents = { pos .. "★แบ่งตามชนิดการผันรูป", "ศัพท์ที่ผันรูปไม่ได้", }, } labels[pos .. "★ที่มีการผันรูปหลายแบบ"] = { description = "{{{langname}}} " .. pos .. " that follow more than one type of inflection.", breadcrumb = "มีการผันรูปหลายแบบ", parents = {{name = pos .. "★แบ่งตามชนิดการผันรูป", sort = "การผันรูปหลายแบบ"}}, } labels[pos .. "★ที่มีหลายพหูพจน์"] = { description = "{{{langname}}} " .. pos .. " that have more than one possible plural (sometimes with distinct meanings).", breadcrumb = "มีหลายพหูพจน์", parents = {{name = pos .. "★แบ่งตามชนิดการผันรูป", sort = "พหูพจน์"}}, } end labels[pos .. " by tone"] = { description = "{{{langname}}} " .. pos .. " organized by the tone they follow.", breadcrumb = "by tone", parents = {{name = pos .. "★แบ่งตามชนิดการผันรูป", sort = "tone"}}, } labels[pos .. " by vowel harmony"] = { description = "{{{langname}}} " .. pos .. " organized by the vowel harmony they follow.", breadcrumb = "by vowel harmony", parents = {{name = pos .. "★แบ่งตามชนิดการผันรูป", sort = "vowel harmony"}}, } end -- FIXME: Only used currently for Arabic; probably should be removed as a general category. labels["irregular elative adjectives"] = { description = "{{{langname}}} elative adjectives that follow non-standard patterns of inflection.", parents = {"คำคุณศัพท์★แบ่งตามชนิดการผันรูป"}, } for _, pos in ipairs { "คำนาม", "คำวิสามานยนาม", "คำสรรพนาม" } do labels[pos .. "★ที่มีพหูพจน์ไม่ปรกติ"] = { description = "{{{langname}}} " .. pos .. " whose plural is formed irregularly.", breadcrumb = "มีพหูพจน์ไม่ปรกติ", parents = {{name = pos .. "ไม่ปรกติ", sort = "พหูพจน์ไม่ปรกติ"}}, } labels[pos .. " with unattested plurals"] = { description = "{{{langname}}} " .. pos .. " with unattested plurals.", breadcrumb = "with unattested plurals", parents = {{name = pos, sort = "unattested plurals"}}, } labels[pos .. "ชี้เฉพาะ"] = { description = "{{{langname}}} " .. pos .. " that are inherently definite and have definite concord.", breadcrumb = "ชี้เฉพาะ", parents = {pos .. "★แบ่งตามชนิดการผันรูป"}, } end local labels2 = {} -- Add 'umbrella_parents' key if not already present. for key, data in pairs(labels) do labels2[key] = data if not data.umbrella_parents then data.umbrella_parents = "หมวดหมู่ย่อยของศัพท์แบ่งตามประเภทไวยากรณ์แบ่งตามภาษา" end end ----------------------------------------------------------------------------- -- -- -- RAW CATEGORIES -- -- -- ----------------------------------------------------------------------------- raw_categories["หมวดหมู่ย่อยของศัพท์แบ่งตามประเภทไวยากรณ์แบ่งตามภาษา"] = { description = "Umbrella categories covering topics related to grammatical categories, such as gender, animacy and noun and verb classes.", additional = "{{{umbrella_meta_msg}}}", parents = { "หมวดหมู่ใหญ่รวมหัวข้อ", {name = "ศัพท์แบ่งตามประเภทไวยากรณ์", is_label = true, sort = " "}, }, } raw_categories["หมวดหมู่ย่อยของศัพท์ที่ผันรูปไม่ได้แบ่งตามภาษา"] = { description = "Umbrella categories covering indeclinable terms in specific part-of-speech categories.", additional = "{{{umbrella_meta_msg}}}", parents = { "หมวดหมู่ใหญ่รวมหัวข้อ", "หมวดหมู่ย่อยของศัพท์แบ่งตามประเภทไวยากรณ์แบ่งตามภาษา", }, } raw_categories["Suppletion subcategories by language"] = { description = "Umbrella categories covering suppletive terms in specific part-of-speech categories.", additional = "{{{umbrella_meta_msg}}}", parents = { "หมวดหมู่ใหญ่รวมหัวข้อ", "หมวดหมู่ย่อยของศัพท์แบ่งตามประเภทไวยากรณ์แบ่งตามภาษา", }, } ----------------------------------------------------------------------------- -- -- -- HANDLERS -- -- -- ----------------------------------------------------------------------------- table.insert(handlers, function(data) local class = data.label:match("^คำนามกลุ่ม (.+)$") if class then local classnum, suffix = class:match("^(%d+)(.*)$") return { description = "{{{langname}}} nouns that belong to class " .. class .. ".", breadcrumb = {name = class, nocap = true}, umbrella = false, parents = {{ name = "คำนาม★แบ่งตามกลุ่ม", sort = classnum and ("#%03d"):format(classnum) .. suffix or class, }}, } end end) table.insert(handlers, function(data) local pos, tone = data.label:match("^(.+) with tone ([^ ]+)$") if pos then return { description = "{{{langname}}} " .. pos .. " with tone " .. tone .. ".", breadcrumb = tone, -- FIXME, should there be an umbrella category e.g. 'Adjectives with tone H by language'? umbrella = false, parents = {{ name = pos .. " by tone", sort = "" .. tone:len() .. tone, }}, } end end) table.insert(handlers, function(data) local vh, pos = data.label:match("^(.+)-harmonic ([^ ]+)$") if pos then return { description = "{{{langname}}} " .. pos .. " with vowel harmony in " .. vh .. ".", breadcrumb = vh, umbrella = false, parents = {{ name = pos .. " by vowel harmony", sort = "" .. vh:len() .. vh, }}, } end end) table.insert(handlers, function(data) local pos, classifier = data.label:match("^(คำนาม)ที่ใช้คำลักษณนาม (.+)$") if pos then local linktext if data.lang then -- Chinese classifiers may take the form TRAD/SIMP. This will cause problems if passed directly to [[Module:links]], -- but the module can accept links of the form TRAD//SIMP and display them correctly. if data.lang:getCode() == "zh" then classifier = classifier:gsub("/", "//") end linktext = require("Module:links").full_link({ term = classifier, lang = data.lang }, "term") else linktext = classifier end return { description = "{{{langname}}} " .. pos .. " using " .. linktext .. " as their classifier.", breadcrumb = classifier, umbrella = false, parents = {{ name = pos .. "★แบ่งตามคำลักษณนาม", sort = (data.lang:makeSortKey(classifier)), }}, } end end) return {LABELS = labels2, RAW_CATEGORIES = raw_categories, HANDLERS = handlers} 4wbk19yws9e3djpfjtn2w86p1dm18d5 คุยกับผู้ใช้:Yl0o0 3 310552 5724790 1576981 2026-06-15T13:44:42Z Jules* 19120 Jules* ย้ายหน้า [[คุยกับผู้ใช้:Ylovoir]] ไปยัง [[คุยกับผู้ใช้:Yl0o0]]: ย้ายหน้าอัตโนมัติขณะเปลี่ยนชื่อผู้ใช้ "[[Special:CentralAuth/Ylovoir|Ylovoir]]" เป็น "[[Special:CentralAuth/Yl0o0|Yl0o0]]" 1576981 wikitext text/x-wiki {{Template:Welcome|realName=|name=Ylovoir}} -- [[ผู้ใช้:New user message|New user message]] ([[คุยกับผู้ใช้:New user message|คุย]]) 04:00, 17 กันยายน 2565 (+07) fz3tg6ajz36dfbx00h9lx0940aqjaq2 มอดูล:gender and number/data 828 311849 5724844 5685331 2026-06-16T04:33:06Z OctraBot 3198 5724844 Scribunto text/plain local data = {} -- A list of all possible "parts" that a specification can be made out of. For each part, we list -- the class it's in (gender, animacy, etc.), the associated category (if any) and the display form. -- In a given gender/number spec, only one part of each class is allowed. data.codes = { ["?"] = {type = "other", display = '<abbr title="ยังไม่ระบุเพศ">?</abbr>'}, -- FIXME: The following should be either eliminated in favor of g! or converted to a general "gender/number unattested". ["?!"] = {type = "other", display = '<abbr title="gender unattested">gender unattested</abbr>'}, -- Genders ["m"] = {type = "gender", cat = "POSเพศชาย", display = '<abbr title="เพศชาย">ช.</abbr>'}, ["f"] = {type = "gender", cat = "POSเพศหญิง", display = '<abbr title="เพศหญิง">ญ.</abbr>'}, ["n"] = {type = "gender", cat = "POSเพศกลาง", display = '<abbr title="เพศกลาง">ก.</abbr>'}, ["c"] = {type = "gender", cat = "POSเพศรวม", display = '<abbr title="เพศรวม">ร.</abbr>'}, ["gneut"] = {type = "gender", cat = "POSไม่ระบุเพศ", display = '<abbr title="ไม่ระบุเพศ">ไม่ระบุเพศ</abbr>'}, ["g!"] = {type = "gender", display = '<abbr title="gender unattested">gender unattested</abbr>'}, -- Animacy -- Animate = either animal or personal (for Russian, etc.) ["an"] = {type = "animacy", cat = "POSมีชีวิต", display = '<abbr title="มีชีวิต">ชีว.</abbr>'}, ["in"] = {type = "animacy", cat = "POSไม่มีชีวิต", display = '<abbr title="ไม่มีชีวิต">อชีว.</abbr>'}, -- Animal (for Ukrainian, Belarusian, Polish) ["anml"] = {type = "animacy", cat = "POSสัตว์", display = '<abbr title="สัตว์">สัต.</abbr>'}, -- Personal (for Ukrainian, Belarusian, Polish) ["pr"] = {type = "animacy", cat = "POSบุคคล", display = '<abbr title="บุคคล">บุค.</abbr>'}, ["np"] = {type = "animacy", cat = "POSไม่ใช่บุคคล", display = '<abbr title="ไม่ใช่บุคคล">อบุค.</abbr>'}, ["an!"] = {type = "animacy", display = '<abbr title="animacy unattested">animacy unattested</abbr>'}, -- Virility (for Polish) ["vr"] = {type = "virility", cat = "virile POS", display = '<abbr title="virile (= masculine personal)">vir</abbr>'}, ["nv"] = {type = "virility", cat = "nonvirile POS", display = '<abbr title="nonvirile (= other than masculine personal)">nvir</abbr>'}, -- Numbers ["s"] = {type = "number", display = '<abbr title="เอกพจน์">เอก.</abbr>'}, ["d"] = {type = "number", cat = "ทวิพจน์เท่านั้น", display = '<abbr title="ทวิพจน์">ทวิ.</abbr>'}, ["p"] = {type = "number", cat = "พหูพจน์เท่านั้น", display = '<abbr title="พหูพจน์">พหู.</abbr>'}, ["num!"] = {type = "number", display = '<abbr title="number unattested">number unattested</abbr>'}, -- Verb qualifiers ["impf"] = {type = "aspect", cat = "POSไม่สมบูรณ์", display = '<abbr title="การณ์ลักษณะไม่สมบูรณ์">ไม่สมบูรณ์</abbr>'}, ["pf"] = {type = "aspect", cat = "POSสมบูรณ์", display = '<abbr title="การณ์ลักษณะสมบูรณ์">สมบูรณ์</abbr>'}, ["asp!"] = {type = "aspect", display = '<abbr title="aspect unattested">aspect unattested</abbr>'}, } -- Combined codes that are equivalent to giving multiple specs. `mf` is the same as specifying two separate specs, -- one with `m` in it and the other with `f`. `mfbysense` is similar but is used for nouns that can be either masculine -- or feminine according as to whether they refer to masculine or feminine beings. data.combinations = { ["mf"] = {codes = {"m", "f"}}, ["mfequiv"] = {codes = {"m", "f"}, display = '<abbr title="เพศไม่ส่งผลต่อความหมาย">นัยเดิม</abbr>'}, ["mfbysense"] = {codes = {"m", "f"}, cat = "POSที่เพศขึ้นอยู่กับความหมาย", display = '<abbr title="เพศขึ้นอยู่กับสิ่งที่อ้างถึง">ตามนัย</abbr>'}, ["biasp"] = {codes = {"impf", "pf"}}, } -- Categories when multiple gender/number codes of a given type occur in different specs (two or more of the same type -- cannot occur in a single spec). data.multicode_cats = { ["gender"] = "POSที่มีหลายเพศ", ["animacy"] = "POSที่มีความมีชีวิตหลายแบบ", ["aspect"] = "POSที่มีการณ์ลักษณะสองแบบ", } return data fzdabwiv2quyrn2upq026wmiqa6tsya 5724847 5724844 2026-06-16T04:37:48Z OctraBot 3198 5724847 Scribunto text/plain local data = {} -- A list of all possible "parts" that a specification can be made out of. For each part, we list -- the class it's in (gender, animacy, etc.), the associated category (if any) and the display form. -- In a given gender/number spec, only one part of each class is allowed. data.codes = { ["?"] = {type = "other", display = '<abbr title="ยังไม่ทราบเพศ">?</abbr>'}, -- FIXME: The following should be either eliminated in favor of g! or converted to a general "gender/number unattested". ["?!"] = {type = "other", display = '<abbr title="gender unattested">gender unattested</abbr>'}, -- Genders ["m"] = {type = "gender", cat = "POSเพศชาย", display = '<abbr title="เพศชาย">ช.</abbr>'}, ["f"] = {type = "gender", cat = "POSเพศหญิง", display = '<abbr title="เพศหญิง">ญ.</abbr>'}, ["n"] = {type = "gender", cat = "POSเพศกลาง", display = '<abbr title="เพศกลาง">ก.</abbr>'}, ["c"] = {type = "gender", cat = "POSเพศรวม", display = '<abbr title="เพศรวม">ร.</abbr>'}, ["gneut"] = {type = "gender", cat = "POSไม่ระบุเพศ", display = '<abbr title="ไม่ระบุเพศ">ไม่ระบุเพศ</abbr>'}, ["g!"] = {type = "gender", display = '<abbr title="gender unattested">gender unattested</abbr>'}, -- Animacy -- Animate = either animal or personal (for Russian, etc.) ["an"] = {type = "animacy", cat = "POSมีชีวิต", display = '<abbr title="มีชีวิต">ชีว.</abbr>'}, ["in"] = {type = "animacy", cat = "POSไม่มีชีวิต", display = '<abbr title="ไม่มีชีวิต">อชีว.</abbr>'}, -- Animal (for Ukrainian, Belarusian, Polish) ["anml"] = {type = "animacy", cat = "POSสัตว์", display = '<abbr title="สัตว์">สัต.</abbr>'}, -- Personal (for Ukrainian, Belarusian, Polish) ["pr"] = {type = "animacy", cat = "POSบุคคล", display = '<abbr title="บุคคล">บุค.</abbr>'}, ["np"] = {type = "animacy", cat = "POSไม่ใช่บุคคล", display = '<abbr title="ไม่ใช่บุคคล">อบุค.</abbr>'}, ["an!"] = {type = "animacy", display = '<abbr title="animacy unattested">animacy unattested</abbr>'}, -- Virility (for Polish) ["vr"] = {type = "virility", cat = "virile POS", display = '<abbr title="virile (= masculine personal)">vir</abbr>'}, ["nv"] = {type = "virility", cat = "nonvirile POS", display = '<abbr title="nonvirile (= other than masculine personal)">nvir</abbr>'}, -- Numbers ["s"] = {type = "number", display = '<abbr title="เอกพจน์">เอก.</abbr>'}, ["d"] = {type = "number", cat = "ทวิพจน์เท่านั้น", display = '<abbr title="ทวิพจน์">ทวิ.</abbr>'}, ["p"] = {type = "number", cat = "พหูพจน์เท่านั้น", display = '<abbr title="พหูพจน์">พหู.</abbr>'}, ["num!"] = {type = "number", display = '<abbr title="number unattested">number unattested</abbr>'}, -- Verb qualifiers ["impf"] = {type = "aspect", cat = "POSไม่สมบูรณ์", display = '<abbr title="การณ์ลักษณะไม่สมบูรณ์">ไม่สมบูรณ์</abbr>'}, ["pf"] = {type = "aspect", cat = "POSสมบูรณ์", display = '<abbr title="การณ์ลักษณะสมบูรณ์">สมบูรณ์</abbr>'}, ["asp!"] = {type = "aspect", display = '<abbr title="aspect unattested">aspect unattested</abbr>'}, } -- Combined codes that are equivalent to giving multiple specs. `mf` is the same as specifying two separate specs, -- one with `m` in it and the other with `f`. `mfbysense` is similar but is used for nouns that can be either masculine -- or feminine according as to whether they refer to masculine or feminine beings. data.combinations = { ["mf"] = {codes = {"m", "f"}}, ["mfequiv"] = {codes = {"m", "f"}, display = '<abbr title="เพศไม่ส่งผลต่อความหมาย">นัยเดิม</abbr>'}, ["mfbysense"] = {codes = {"m", "f"}, cat = "POSที่เพศขึ้นอยู่กับความหมาย", display = '<abbr title="เพศขึ้นอยู่กับสิ่งที่อ้างถึง">ตามนัย</abbr>'}, ["biasp"] = {codes = {"impf", "pf"}}, } -- Categories when multiple gender/number codes of a given type occur in different specs (two or more of the same type -- cannot occur in a single spec). data.multicode_cats = { ["gender"] = "POSที่มีหลายเพศ", ["animacy"] = "POSที่มีความมีชีวิตหลายแบบ", ["aspect"] = "POSที่มีการณ์ลักษณะสองแบบ", } return data 0b0ezbytp0kfvkvm3r2rbzhk4uzknli 5724848 5724847 2026-06-16T04:38:42Z OctraBot 3198 5724848 Scribunto text/plain local data = {} -- A list of all possible "parts" that a specification can be made out of. For each part, we list -- the class it's in (gender, animacy, etc.), the associated category (if any) and the display form. -- In a given gender/number spec, only one part of each class is allowed. data.codes = { ["?"] = {type = "other", display = '<abbr title="ยังไม่ทราบเพศ">?</abbr>'}, -- ไม่รู้ว่าเป็นเพศอะไร -- FIXME: The following should be either eliminated in favor of g! or converted to a general "gender/number unattested". ["?!"] = {type = "other", display = '<abbr title="gender unattested">gender unattested</abbr>'}, -- Genders ["m"] = {type = "gender", cat = "POSเพศชาย", display = '<abbr title="เพศชาย">ช.</abbr>'}, ["f"] = {type = "gender", cat = "POSเพศหญิง", display = '<abbr title="เพศหญิง">ญ.</abbr>'}, ["n"] = {type = "gender", cat = "POSเพศกลาง", display = '<abbr title="เพศกลาง">ก.</abbr>'}, ["c"] = {type = "gender", cat = "POSเพศรวม", display = '<abbr title="เพศรวม">ร.</abbr>'}, ["gneut"] = {type = "gender", cat = "POSไม่ระบุเพศ", display = '<abbr title="ไม่ระบุเพศ">ไม่ระบุเพศ</abbr>'}, -- ไม่จำกัดว่าต้องเป็นเพศอะไร ["g!"] = {type = "gender", display = '<abbr title="gender unattested">gender unattested</abbr>'}, -- Animacy -- Animate = either animal or personal (for Russian, etc.) ["an"] = {type = "animacy", cat = "POSมีชีวิต", display = '<abbr title="มีชีวิต">ชีว.</abbr>'}, ["in"] = {type = "animacy", cat = "POSไม่มีชีวิต", display = '<abbr title="ไม่มีชีวิต">อชีว.</abbr>'}, -- Animal (for Ukrainian, Belarusian, Polish) ["anml"] = {type = "animacy", cat = "POSสัตว์", display = '<abbr title="สัตว์">สัต.</abbr>'}, -- Personal (for Ukrainian, Belarusian, Polish) ["pr"] = {type = "animacy", cat = "POSบุคคล", display = '<abbr title="บุคคล">บุค.</abbr>'}, ["np"] = {type = "animacy", cat = "POSไม่ใช่บุคคล", display = '<abbr title="ไม่ใช่บุคคล">อบุค.</abbr>'}, ["an!"] = {type = "animacy", display = '<abbr title="animacy unattested">animacy unattested</abbr>'}, -- Virility (for Polish) ["vr"] = {type = "virility", cat = "virile POS", display = '<abbr title="virile (= masculine personal)">vir</abbr>'}, ["nv"] = {type = "virility", cat = "nonvirile POS", display = '<abbr title="nonvirile (= other than masculine personal)">nvir</abbr>'}, -- Numbers ["s"] = {type = "number", display = '<abbr title="เอกพจน์">เอก.</abbr>'}, ["d"] = {type = "number", cat = "ทวิพจน์เท่านั้น", display = '<abbr title="ทวิพจน์">ทวิ.</abbr>'}, ["p"] = {type = "number", cat = "พหูพจน์เท่านั้น", display = '<abbr title="พหูพจน์">พหู.</abbr>'}, ["num!"] = {type = "number", display = '<abbr title="number unattested">number unattested</abbr>'}, -- Verb qualifiers ["impf"] = {type = "aspect", cat = "POSไม่สมบูรณ์", display = '<abbr title="การณ์ลักษณะไม่สมบูรณ์">ไม่สมบูรณ์</abbr>'}, ["pf"] = {type = "aspect", cat = "POSสมบูรณ์", display = '<abbr title="การณ์ลักษณะสมบูรณ์">สมบูรณ์</abbr>'}, ["asp!"] = {type = "aspect", display = '<abbr title="aspect unattested">aspect unattested</abbr>'}, } -- Combined codes that are equivalent to giving multiple specs. `mf` is the same as specifying two separate specs, -- one with `m` in it and the other with `f`. `mfbysense` is similar but is used for nouns that can be either masculine -- or feminine according as to whether they refer to masculine or feminine beings. data.combinations = { ["mf"] = {codes = {"m", "f"}}, ["mfequiv"] = {codes = {"m", "f"}, display = '<abbr title="เพศไม่ส่งผลต่อความหมาย">นัยเดิม</abbr>'}, ["mfbysense"] = {codes = {"m", "f"}, cat = "POSที่เพศขึ้นอยู่กับความหมาย", display = '<abbr title="เพศขึ้นอยู่กับสิ่งที่อ้างถึง">ตามนัย</abbr>'}, ["biasp"] = {codes = {"impf", "pf"}}, } -- Categories when multiple gender/number codes of a given type occur in different specs (two or more of the same type -- cannot occur in a single spec). data.multicode_cats = { ["gender"] = "POSที่มีหลายเพศ", ["animacy"] = "POSที่มีความมีชีวิตหลายแบบ", ["aspect"] = "POSที่มีการณ์ลักษณะสองแบบ", } return data r1s2bxtuq8qzs2f7rpmkpzt3wegof6i 5724851 5724848 2026-06-16T04:43:43Z OctraBot 3198 5724851 Scribunto text/plain local data = {} -- A list of all possible "parts" that a specification can be made out of. For each part, we list -- the class it's in (gender, animacy, etc.), the associated category (if any) and the display form. -- In a given gender/number spec, only one part of each class is allowed. data.codes = { ["?"] = {type = "other", display = '<abbr title="ไม่ทราบ">?</abbr>'}, -- ไม่รู้ว่าเป็นอะไร (ใช้ได้ทุกประเภท) -- FIXME: The following should be either eliminated in favor of g! or converted to a general "gender/number unattested". ["?!"] = {type = "other", display = '<abbr title="gender unattested">gender unattested</abbr>'}, -- Genders ["m"] = {type = "gender", cat = "POSเพศชาย", display = '<abbr title="เพศชาย">ช.</abbr>'}, ["f"] = {type = "gender", cat = "POSเพศหญิง", display = '<abbr title="เพศหญิง">ญ.</abbr>'}, ["n"] = {type = "gender", cat = "POSเพศกลาง", display = '<abbr title="เพศกลาง">ก.</abbr>'}, ["c"] = {type = "gender", cat = "POSเพศรวม", display = '<abbr title="เพศรวม">ร.</abbr>'}, ["gneut"] = {type = "gender", cat = "POSไม่ระบุเพศ", display = '<abbr title="ไม่ระบุเพศ">ไม่ระบุเพศ</abbr>'}, -- ไม่จำกัดว่าต้องเป็นเพศอะไร ["g!"] = {type = "gender", display = '<abbr title="gender unattested">gender unattested</abbr>'}, -- Animacy -- Animate = either animal or personal (for Russian, etc.) ["an"] = {type = "animacy", cat = "POSมีชีวิต", display = '<abbr title="มีชีวิต">ชีว.</abbr>'}, ["in"] = {type = "animacy", cat = "POSไม่มีชีวิต", display = '<abbr title="ไม่มีชีวิต">อชีว.</abbr>'}, -- Animal (for Ukrainian, Belarusian, Polish) ["anml"] = {type = "animacy", cat = "POSสัตว์", display = '<abbr title="สัตว์">สัต.</abbr>'}, -- Personal (for Ukrainian, Belarusian, Polish) ["pr"] = {type = "animacy", cat = "POSบุคคล", display = '<abbr title="บุคคล">บุค.</abbr>'}, ["np"] = {type = "animacy", cat = "POSไม่ใช่บุคคล", display = '<abbr title="ไม่ใช่บุคคล">อบุค.</abbr>'}, ["an!"] = {type = "animacy", display = '<abbr title="animacy unattested">animacy unattested</abbr>'}, -- Virility (for Polish) ["vr"] = {type = "virility", cat = "virile POS", display = '<abbr title="virile (= masculine personal)">vir</abbr>'}, ["nv"] = {type = "virility", cat = "nonvirile POS", display = '<abbr title="nonvirile (= other than masculine personal)">nvir</abbr>'}, -- Numbers ["s"] = {type = "number", display = '<abbr title="เอกพจน์">เอก.</abbr>'}, ["d"] = {type = "number", cat = "ทวิพจน์เท่านั้น", display = '<abbr title="ทวิพจน์">ทวิ.</abbr>'}, ["p"] = {type = "number", cat = "พหูพจน์เท่านั้น", display = '<abbr title="พหูพจน์">พหู.</abbr>'}, ["num!"] = {type = "number", display = '<abbr title="number unattested">number unattested</abbr>'}, -- Verb qualifiers ["impf"] = {type = "aspect", cat = "POSไม่สมบูรณ์", display = '<abbr title="การณ์ลักษณะไม่สมบูรณ์">ไม่สมบูรณ์</abbr>'}, ["pf"] = {type = "aspect", cat = "POSสมบูรณ์", display = '<abbr title="การณ์ลักษณะสมบูรณ์">สมบูรณ์</abbr>'}, ["asp!"] = {type = "aspect", display = '<abbr title="aspect unattested">aspect unattested</abbr>'}, } -- Combined codes that are equivalent to giving multiple specs. `mf` is the same as specifying two separate specs, -- one with `m` in it and the other with `f`. `mfbysense` is similar but is used for nouns that can be either masculine -- or feminine according as to whether they refer to masculine or feminine beings. data.combinations = { ["mf"] = {codes = {"m", "f"}}, ["mfequiv"] = {codes = {"m", "f"}, display = '<abbr title="เพศไม่ส่งผลต่อความหมาย">นัยเดิม</abbr>'}, ["mfbysense"] = {codes = {"m", "f"}, cat = "POSที่เพศขึ้นอยู่กับความหมาย", display = '<abbr title="เพศขึ้นอยู่กับสิ่งที่อ้างถึง">ตามนัย</abbr>'}, ["biasp"] = {codes = {"impf", "pf"}}, } -- Categories when multiple gender/number codes of a given type occur in different specs (two or more of the same type -- cannot occur in a single spec). data.multicode_cats = { ["gender"] = "POSที่มีหลายเพศ", ["animacy"] = "POSที่มีความมีชีวิตหลายแบบ", ["aspect"] = "POSที่มีการณ์ลักษณะสองแบบ", } return data k2ytyzyx51sypq85468d3od09pssuoz โสม 0 317501 5724819 5724749 2026-06-16T02:04:41Z OctraBot 3198 /* การออกเสียง */ 5724819 wikitext text/x-wiki == ภาษาไทย == === การออกเสียง === {{th-pron|โสม|โสม-มะ-:สำหรับรากศัพท์ 3 อีกด้วย}} === รากศัพท์ 1 === เป็นไปได้ว่า{{bor+|th|nan-tws|參,蔘|tr=som1|nocap=1}} ==== คำนาม ==== {{th-noun}} # {{lang|th|([[ผัก]]~)}} [[ชื่อ]][[ไม้ล้มลุก]] 2 ชนิดในสกุล ''Talinum'' วงศ์ Portulacaceae ใบเดี่ยวอวบน้ำ ## [[โสมไทย]] (''T. paniculatum'' (Jacq.) Gaertn.) ใบกินได้และใช้ทำยาได้ ## [[โสมญี่ปุ่น]] (''T. fruticosum'' (L.) Juss) ดอกสีชมพู ใบและยอดกินได้ # ชื่อไม้ล้มลุกหลายปี หลายชนิดในสกุล ''Panax'' วงศ์ Araliaceae ใบเป็นใบประกอบ รากอวบ มักมีรูปร่างคล้ายคน เรียกว่า [[โสมคน]] (แปลจาก [[人參]],[[人蔘]]) ใช้เป็นยาบำรุงกำลัง ที่สำคัญ เช่น [[โสมเกาหลี]]หรือ[[โสมจีน]] (''P. ginseng'' C. A. Mey.) ก้านช่อดอกยาวกว่าก้านใบ และ[[โสมอเมริกัน]] (''P. quinquefolium'' L.) ก้านช่อดอกยาวใกล้เคียงกับก้านใบ ===== ลูกคำ ===== {{col|th |โสมขาว<t:ชื่อเล่นของเกาหลีใต้> |โสมแดง<t:ชื่อเล่นของเกาหลีเหนือ> }} === รากศัพท์ 2 === {{bor+|th|sa|सोम|gloss=พืช "โสม"; เถาวัลย์ต้มชนิดหนึ่งจากอินเดียสมัยพระเวท ทำจากพืช "โสม" ดื่มเป็นยาและถวายแด่เทพเจ้า นอกจากนี้ยังมีความเกี่ยวข้องกับดวงจันทร์หลังจากยุคพระเวท}}; ร่วมเชื้อสายกับ{{cog|okz|សោម-}}, {{cog|km|សោម}} ==== คำนาม ==== {{th-noun}} # {{lang|th|([[น้ำ]]~)}} {{lb|th|ฮินดู}} น้ำ[[คั้น]]จากต้นของ[[ไม้เถา]]ชนิดหนึ่ง [[กรอง]]แล้วนำมา[[ผสม]]กับ[[เนยใส]] เพื่อใช้[[เซ่นสรวง]][[พระอินทร์]]และ[[เทพ]]อื่น ๆ # {{lang|th|(น้ำ~)}} {{lb|th|โดยปริยาย}} [[เครื่องดื่ม]][[แอลกอฮอล์]], [[สุรา]][[เมรัย]] === รากศัพท์ 3 === {{bor+|th|sa|सोम||พระจันทร์|pos=ดูรากศัพท์ 2}} หรือ{{bor|th|pi|โสม||พระจันทร์}} ==== คำนาม ==== {{th-noun}} # {{lb|th|กลอน}} [[พระจันทร์]] #: {{ux|th|เห็นนางนวลศรีมีโฉม ดัง'''โสม'''ส่องหล้าราศี}} (กนกนคร) ===== ลูกคำ ===== {{col|th |โสมวาร<t:วันจันทร์> |โสมส่องแสง }} === รากศัพท์ 4 === เทียบ{{ncog|pi|โสณฺณ||ทอง}}, {{ncog|pra-sau|𑀲𑁄𑀡𑁆𑀡||ทอง}} {{rfe|th}} ==== รูปแบบอื่น ==== * {{alt|th|โสรม||dated}} ==== คำนาม ==== {{th-noun}} # {{lb|th|กลอน}} [[ทอง]] #: {{ux|th|ในทาบทองแล้วเนื้อนอก'''โสรม'''}} (กำสรวล) === รากศัพท์ 5 === {{rfe|th}} ==== คำนาม ==== {{th-noun}} # [[ผี]]ชนิดหนึ่งที่คอยเฝ้า[[ขุมทรัพย์]] == ภาษาคำเมือง == === การออกเสียง === * {{IPA|nod|/soːm˨˦/|a=เชียงใหม่}} === คำนาม === {{nod-noun}} # {{pronunciation spelling of|nod|ᩈᩰᩫ᩠ᨾ}} # {{pronunciation spelling of|nod|ᨨᩰᩫ᩠ᨾ}} mcisxjl55d8yjbpxkyzpfwrlfs3q7bp ᨴᩱ 0 428956 5724813 5632594 2026-06-16T01:31:32Z OctraBot 3198 /* คำวิสามานยนาม */ 5724813 wikitext text/x-wiki {{also/auto}} == ภาษาคำเมือง == === รูปแบบอื่น === {{nod-alt|c=ᨴᩱ᩠ᨿ|l=ไท|s=ไต}} === การออกเสียง === * {{IPA|nod|/taj˧˧/|a=เชียงใหม่}} === คำนาม === {{nod-noun}} # [[ไท]] (ชาติพันธุ์) === คำวิสามานยนาม === {{nod-proper noun}} # {{synonym of|th|ᨴᩱ᩠ᨿ||ประเทศไทย; ภาษาไทย}} {{topics|nod|ไทย}} plnzdrxsiqqfp7gkwfnuotzi8kcssmo ᥖᥭᥰ 0 2300567 5724802 5720730 2026-06-16T01:16:10Z OctraBot 3198 /* รากศัพท์ */ 5724802 wikitext text/x-wiki == ภาษาไทใต้คง == === รากศัพท์ === {{inh+|tdd|tai-swe-pro|*dajᴬ²}}, จาก{{inh|th|tai-pro|*ɗwɤːjᴬ}}; ร่วมเชื้อสายกับ{{cog|th|ไท}}, {{cog|tts|ไท}}, {{cog|nod|ᨴᩱ}}, {{cog|lo|ໄທ}}, {{cog|nyw|ไท}}, {{cog|khb|ᦺᦑ}}, {{cog|blt|ꪼꪕ}}, {{cog|shn|တႆး}}, {{cog|aio|တႝ}}, {{cog|phk|တႝ}}, {{cog|aho|𑜄𑜩}} === คำนาม === {{tdd-verb}} # [[ไท]] 4of49zgmg749ge4iod54spzjez4s58w 5724803 5724802 2026-06-16T01:16:19Z OctraBot 3198 /* รากศัพท์ */ 5724803 wikitext text/x-wiki == ภาษาไทใต้คง == === รากศัพท์ === {{inh+|tdd|tai-swe-pro|*dajᴬ²}}, จาก{{inh|tdd|tai-pro|*ɗwɤːjᴬ}}; ร่วมเชื้อสายกับ{{cog|th|ไท}}, {{cog|tts|ไท}}, {{cog|nod|ᨴᩱ}}, {{cog|lo|ໄທ}}, {{cog|nyw|ไท}}, {{cog|khb|ᦺᦑ}}, {{cog|blt|ꪼꪕ}}, {{cog|shn|တႆး}}, {{cog|aio|တႝ}}, {{cog|phk|တႝ}}, {{cog|aho|𑜄𑜩}} === คำนาม === {{tdd-verb}} # [[ไท]] 2t106nnf9ro6k9owgyo1urazo0ce5j4 คุยกับผู้ใช้:Ylovoir 3 2331792 5724791 2026-06-15T13:44:42Z Jules* 19120 Jules* ย้ายหน้า [[คุยกับผู้ใช้:Ylovoir]] ไปยัง [[คุยกับผู้ใช้:Yl0o0]]: ย้ายหน้าอัตโนมัติขณะเปลี่ยนชื่อผู้ใช้ "[[Special:CentralAuth/Ylovoir|Ylovoir]]" เป็น "[[Special:CentralAuth/Yl0o0|Yl0o0]]" 5724791 wikitext text/x-wiki #เปลี่ยนทาง [[คุยกับผู้ใช้:Yl0o0]] fjx9dely4huaa7yyej61m8o003u8hnf ตะเกี่ย 0 2331793 5724792 2026-06-15T13:47:48Z CorneliusVnG 17117 สร้างหน้าด้วย "ตะเกี่ย เป็นชื่อบุคคล พบในชื่อ มัสยิดเจ้าพระคุณตะเกี่ย หรือ มัสยิดตะเกี่ยโยคิณราชมิสจินจาสยาม ==== ดูเพิ่ม ==== https://edutour.vantagestudio.net/node/188?language=th" 5724792 wikitext text/x-wiki ตะเกี่ย เป็นชื่อบุคคล พบในชื่อ มัสยิดเจ้าพระคุณตะเกี่ย หรือ มัสยิดตะเกี่ยโยคิณราชมิสจินจาสยาม ==== ดูเพิ่ม ==== https://edutour.vantagestudio.net/node/188?language=th b8xsvj4kp9fx6wty1id9pzh9c21f7s4 5724794 5724792 2026-06-15T16:45:11Z Alifshinobi 397 5724794 wikitext text/x-wiki {{delete|ข้อมูลไม่ได้จัดอยู่ในรูปแบบที่เหมาะสมกับรูปแบบที่ใช้ในวิกิพจนานุกรม}} ตะเกี่ย เป็นชื่อบุคคล พบในชื่อ มัสยิดเจ้าพระคุณตะเกี่ย หรือ มัสยิดตะเกี่ยโยคิณราชมิสจินจาสยาม ==== ดูเพิ่ม ==== https://edutour.vantagestudio.net/node/188?language=th szr9q0sy6ofuk32sxfb0jt70xvbti4g ᨤᩣ᩠ᩅ 0 2331794 5724797 2026-06-15T18:00:05Z Alifshinobi 397 สร้างหน้าด้วย "== ภาษาคำเมือง == === รูปแบบอื่น === {{nod-alt|l=ฅาว|s=คาว}} === การออกเสียง === * {{IPA|nod|/xaːw˧˧/|a=เชียงใหม่}} === คำนาม === {{nod-noun}} # [[คาว]] {{gl|กลิ่นเหม็นอย่างกลิ่นของปลาสดเนื้อสด, กับข้าว}} === อ้างอิง === {{รายก..." 5724797 wikitext text/x-wiki == ภาษาคำเมือง == === รูปแบบอื่น === {{nod-alt|l=ฅาว|s=คาว}} === การออกเสียง === * {{IPA|nod|/xaːw˧˧/|a=เชียงใหม่}} === คำนาม === {{nod-noun}} # [[คาว]] {{gl|กลิ่นเหม็นอย่างกลิ่นของปลาสดเนื้อสด, กับข้าว}} === อ้างอิง === {{รายการอ้างอิง}} * สุนทรสิงห์, จ. (n.d.). คาว. In ''มรดกล้านนา พจนานุกรมภาษาล้านนา-ไทย, ไทย-ล้านนา''. https://moradoklanna.com/dict/?คาว 4tokuo92entnuzzki7le3gma9czgimx สุทธิ 0 2331795 5724827 2026-06-16T02:57:53Z OctraBot 3198 สร้างหน้าด้วย "== ภาษาไทย == === รากศัพท์ === {{bor+|th|pi|สุทฺธิ}} === การออกเสียง === {{th-pron|สุด-ทิ}} === คำคุณศัพท์ === {{th-adj|-}} # [[แท้ ๆ]], [[ล้วน ๆ]] #: {{ux|th|กาแฟขวดนี้น้ำหนักสุทธิ 100 กรัม}}" 5724827 wikitext text/x-wiki == ภาษาไทย == === รากศัพท์ === {{bor+|th|pi|สุทฺธิ}} === การออกเสียง === {{th-pron|สุด-ทิ}} === คำคุณศัพท์ === {{th-adj|-}} # [[แท้ ๆ]], [[ล้วน ๆ]] #: {{ux|th|กาแฟขวดนี้น้ำหนักสุทธิ 100 กรัม}} od3le0ejuj76us5vk5vjhyehjt4ts1k 5724828 5724827 2026-06-16T03:02:02Z OctraBot 3198 /* รากศัพท์ */ 5724828 wikitext text/x-wiki == ภาษาไทย == === รากศัพท์ === {{bor+|th|pi|สุทฺธิ}}, จาก{{der|th|sa|शुद्धि}} === การออกเสียง === {{th-pron|สุด-ทิ}} === คำคุณศัพท์ === {{th-adj|-}} # [[แท้ ๆ]], [[ล้วน ๆ]] #: {{ux|th|กาแฟขวดนี้น้ำหนักสุทธิ 100 กรัม}} k2w2dl8hxkuv8phq8wsctefmc6fphbz 5724829 5724828 2026-06-16T03:04:25Z OctraBot 3198 /* รากศัพท์ */ 5724829 wikitext text/x-wiki == ภาษาไทย == === รากศัพท์ === {{bor+|th|pi|สุทฺธิ}}, จาก{{der|th|sa|शुद्धि}} {{ศบญ|net}} === การออกเสียง === {{th-pron|สุด-ทิ}} === คำคุณศัพท์ === {{th-adj|-}} # [[แท้ ๆ]], [[ล้วน ๆ]] #: {{ux|th|กาแฟขวดนี้น้ำหนักสุทธิ 100 กรัม}} pr3e8jsskmx6ey7tib0w2o1kxrqs64n शुद्धि 0 2331796 5724831 2026-06-16T04:13:15Z OctraBot 3198 นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา 5724831 wikitext text/x-wiki == ภาษาสันสกฤต == === รูปแบบอื่น === {{sa-alt}} === รากศัพท์ === {{affix|sa|शुध्|-ति}} === การออกเสียง === {{sa-IPA}} === คำนาม === {{sa-noun|शुध्|g=f}} # {{lb|sa|ศาสนาฮินดู}} {{w|ศุทธิ (ศาสนาฮินดู)|ศุทธิ}} # {{lb|sa|ความหมายตรงตัว|ความหมายเชิงเปรียบเทียบ}} [[การชำระ]][[ล้าง]], การทำให้บริสุทธิ์, ความบริสุทธิ์, [[ความศักดิ์สิทธิ์]], [[การปลดปล่อย]]จาก[[มลทิน]], [[พิธีกรรม]][[ชำระ]][[ล้าง]] # [[การทำ]][[ให้]][[เป็น]][[อิสระ]] หรือการทำให้[[ปลอดภัย]] (จากอันตรายใด ๆ) #* {{Q|sa||Kām}} #* {{Q|sa||VarBṛS}} # [[การพิสูจน์]][[ความชอบธรรม]], [[การพ้น]][[ผิด]], [[ความบริสุทธิ์]] (ที่พิสูจน์ได้จากการทดสอบหรือการไต่สวน) # [[การยกหนี้]], [[การชำระ]][[หนี้]] หรือ[[การจ่าย]]หนี้, [[การปลด]] (จากหนี้สิน ฯลฯ) #* {{Q|sa||MW}} # [[การแก้แค้น]] # [[การตรวจสอบ]], [[การแก้ไข]], การทำให้[[เป็น]][[จริง]], ความถูกต้อง, ความแม่นยำ, [[ความแท้จริง]], [[ความจริง]] #* {{Q|sa||Yājñ}} # [[ความชัดเจน]], [[ความแน่นอน]], [[ความรู้]]ที่ถูกต้องเกี่ยวกับ {{q|ใช้กับสัมพันธการกหรือในคำประสม}} #: {{ux|sa|'''शुद्धिं'''[[कृ]]|tr='''śuddhiṃ'''-kṛ|t=ตรวจสอบให้แน่ใจ}} # {{lb|sa|เลขคณิต}} ไม่เหลือ[[เศษ]] #: {{ux|sa|'''शुद्धि'''मि|tr='''śuddhim'''-i|t=ไม่เหลือเศษ}} # [[การลบ]]ของ[[ปริมาณ]] หรือปริมาณที่จะ[[ลบ]] # ชื่อของ[[พระแม่ทุรคา]] # หนึ่งในพระศักติของพระวิษณุ # ทากษายณีที่ได้รับการบูชาที่กปาลโมจนะ ==== การผันรูป ==== {{sa-decl-noun-f}} ==== ลูกคำ ==== {{col3|sa|विशुद्धि|अशुद्धि|शुद्धिकर|शुद्धिकृत|शुद्धितम|संशुद्धि|परिशुद्धि}} ==== คำสืบทอด ==== * {{desc|pi|suddhi|t=การทำให้บริสุทธิ์|g=f}} * {{desc|pra|𑀲𑀼𑀤𑁆𑀥𑀺|t=การทำให้บริสุทธิ์, สารสนเทศ|g=f}} ** ตะวันตกเฉียงเหนือ: *** {{desc|sd|سدھ|tr=sudhi}} *** {{desc|pa|سدھ|tr=-}} / {{l|pa|ਸੁੱਧ}} ** เหนือ: *** {{desc|ne|सुधि|सुद्धि}} ** ตะวันออก: *** {{desc|bn|সুধ|সুধি}} *** {{desc|as|সুধি}} ** ตอนกลาง: *** ฮินดูสตานี: ***: {{desc|hi|सुध|सुधी}} ***: {{desc|ur|سدھ|سدھی}} *** {{desc|gu|સૂધ}} *** {{desc|mr|सुधी}} === อ้างอิง === * {{R:sa:MW}} == ภาษาฮินดี == === รากศัพท์ === {{lbor|hi|sa|शुद्धि}}; {{doublet|hi|सुध}} === การออกเสียง === * {{hi-IPA}} === คำนาม === {{hi-noun|f}} # [[ความบริสุทธิ์]] # [[การทำ]][[ให้]][[บริสุทธิ์]], [[การชดใช้]][[บาป]] # [[การชำระ]] (ความผิด) # [[ความถูกต้อง]], [[ความแม่นยำ]] (ของงาน) # [[การตอบแทน]] ==== การผันรูป ==== {{hi-ndecl|<F>}} ==== ลูกคำ ==== {{col3|hi|शुद्धिकरण|शुद्धिकारक|शुद्धिकारी|शुद्धिपत्र|शुद्धिबोध|शुद्धिवादी}} ==== คำเกี่ยวข้อง ==== {{col3|hi|अशुद्धि|परिशुद्धि|संशुद्धि}} === อ้างอิง === * {{R:hi:McGregor}} pk1qolh05bv2v4e0cf22i79z1krtgub 5724832 5724831 2026-06-16T04:13:50Z OctraBot 3198 /* คำนาม */ 5724832 wikitext text/x-wiki == ภาษาสันสกฤต == === รูปแบบอื่น === {{sa-alt}} === รากศัพท์ === {{affix|sa|शुध्|-ति}} === การออกเสียง === {{sa-IPA}} === คำนาม === {{sa-noun|शुध्|g=f}} # {{lb|sa|ศาสนาฮินดู}} {{w|ศุทธิ (ศาสนาฮินดู)|ศุทธิ}} # {{lb|sa|ความหมายตรงตัว|ความหมายเชิงเปรียบเทียบ}} [[การชำระ]][[ล้าง]], การทำให้บริสุทธิ์, ความบริสุทธิ์, [[ความศักดิ์สิทธิ์]], [[การปลดปล่อย]]จาก[[มลทิน]], [[พิธีกรรม]][[ชำระ]][[ล้าง]] # [[การทำ]][[ให้]][[เป็น]][[อิสระ]] หรือการทำให้[[ปลอดภัย]] (จากอันตรายใด ๆ) #* {{Q|sa||Kām}} #* {{Q|sa||VarBṛS}} # [[การพิสูจน์]][[ความชอบธรรม]], [[การพ้น]][[ผิด]], [[ความบริสุทธิ์]] (ที่พิสูจน์ได้จากการทดสอบหรือการไต่สวน) # [[การยกหนี้]], [[การชำระ]][[หนี้]] หรือ[[การจ่าย]]หนี้, [[การปลด]] (จากหนี้สิน ฯลฯ) #* {{Q|sa||MW}} # [[การแก้แค้น]] # [[การตรวจสอบ]], [[การแก้ไข]], การทำให้[[เป็น]][[จริง]], ความถูกต้อง, ความแม่นยำ, [[ความแท้จริง]], [[ความจริง]] #* {{Q|sa||Yājñ}} # [[ความชัดเจน]], [[ความแน่นอน]], [[ความรู้]]ที่ถูกต้องเกี่ยวกับ {{q|ใช้กับสัมพันธการกหรือในคำประสม}} #: {{ux|sa|'''शुद्धिं'''[[कृ]]|t=ตรวจสอบให้แน่ใจ}} # {{lb|sa|เลขคณิต}} ไม่เหลือ[[เศษ]] #: {{ux|sa|'''शुद्धि'''मि|t=ไม่เหลือเศษ}} # [[การลบ]]ของ[[ปริมาณ]] หรือปริมาณที่จะ[[ลบ]] # ชื่อของ[[พระแม่ทุรคา]] # หนึ่งในพระศักติของพระวิษณุ # ทากษายณีที่ได้รับการบูชาที่กปาลโมจนะ ==== การผันรูป ==== {{sa-decl-noun-f}} ==== ลูกคำ ==== {{col3|sa|विशुद्धि|अशुद्धि|शुद्धिकर|शुद्धिकृत|शुद्धितम|संशुद्धि|परिशुद्धि}} ==== คำสืบทอด ==== * {{desc|pi|suddhi|t=การทำให้บริสุทธิ์|g=f}} * {{desc|pra|𑀲𑀼𑀤𑁆𑀥𑀺|t=การทำให้บริสุทธิ์, สารสนเทศ|g=f}} ** ตะวันตกเฉียงเหนือ: *** {{desc|sd|سدھ|tr=sudhi}} *** {{desc|pa|سدھ|tr=-}} / {{l|pa|ਸੁੱਧ}} ** เหนือ: *** {{desc|ne|सुधि|सुद्धि}} ** ตะวันออก: *** {{desc|bn|সুধ|সুধি}} *** {{desc|as|সুধি}} ** ตอนกลาง: *** ฮินดูสตานี: ***: {{desc|hi|सुध|सुधी}} ***: {{desc|ur|سدھ|سدھی}} *** {{desc|gu|સૂધ}} *** {{desc|mr|सुधी}} === อ้างอิง === * {{R:sa:MW}} == ภาษาฮินดี == === รากศัพท์ === {{lbor|hi|sa|शुद्धि}}; {{doublet|hi|सुध}} === การออกเสียง === * {{hi-IPA}} === คำนาม === {{hi-noun|f}} # [[ความบริสุทธิ์]] # [[การทำ]][[ให้]][[บริสุทธิ์]], [[การชดใช้]][[บาป]] # [[การชำระ]] (ความผิด) # [[ความถูกต้อง]], [[ความแม่นยำ]] (ของงาน) # [[การตอบแทน]] ==== การผันรูป ==== {{hi-ndecl|<F>}} ==== ลูกคำ ==== {{col3|hi|शुद्धिकरण|शुद्धिकारक|शुद्धिकारी|शुद्धिपत्र|शुद्धिबोध|शुद्धिवादी}} ==== คำเกี่ยวข้อง ==== {{col3|hi|अशुद्धि|परिशुद्धि|संशुद्धि}} === อ้างอิง === * {{R:hi:McGregor}} rsbt9833rydkk085ozqbe2lnc4sjee5 5724833 5724832 2026-06-16T04:15:02Z OctraBot 3198 /* คำสืบทอด */ 5724833 wikitext text/x-wiki == ภาษาสันสกฤต == === รูปแบบอื่น === {{sa-alt}} === รากศัพท์ === {{affix|sa|शुध्|-ति}} === การออกเสียง === {{sa-IPA}} === คำนาม === {{sa-noun|शुध्|g=f}} # {{lb|sa|ศาสนาฮินดู}} {{w|ศุทธิ (ศาสนาฮินดู)|ศุทธิ}} # {{lb|sa|ความหมายตรงตัว|ความหมายเชิงเปรียบเทียบ}} [[การชำระ]][[ล้าง]], การทำให้บริสุทธิ์, ความบริสุทธิ์, [[ความศักดิ์สิทธิ์]], [[การปลดปล่อย]]จาก[[มลทิน]], [[พิธีกรรม]][[ชำระ]][[ล้าง]] # [[การทำ]][[ให้]][[เป็น]][[อิสระ]] หรือการทำให้[[ปลอดภัย]] (จากอันตรายใด ๆ) #* {{Q|sa||Kām}} #* {{Q|sa||VarBṛS}} # [[การพิสูจน์]][[ความชอบธรรม]], [[การพ้น]][[ผิด]], [[ความบริสุทธิ์]] (ที่พิสูจน์ได้จากการทดสอบหรือการไต่สวน) # [[การยกหนี้]], [[การชำระ]][[หนี้]] หรือ[[การจ่าย]]หนี้, [[การปลด]] (จากหนี้สิน ฯลฯ) #* {{Q|sa||MW}} # [[การแก้แค้น]] # [[การตรวจสอบ]], [[การแก้ไข]], การทำให้[[เป็น]][[จริง]], ความถูกต้อง, ความแม่นยำ, [[ความแท้จริง]], [[ความจริง]] #* {{Q|sa||Yājñ}} # [[ความชัดเจน]], [[ความแน่นอน]], [[ความรู้]]ที่ถูกต้องเกี่ยวกับ {{q|ใช้กับสัมพันธการกหรือในคำประสม}} #: {{ux|sa|'''शुद्धिं'''[[कृ]]|t=ตรวจสอบให้แน่ใจ}} # {{lb|sa|เลขคณิต}} ไม่เหลือ[[เศษ]] #: {{ux|sa|'''शुद्धि'''मि|t=ไม่เหลือเศษ}} # [[การลบ]]ของ[[ปริมาณ]] หรือปริมาณที่จะ[[ลบ]] # ชื่อของ[[พระแม่ทุรคา]] # หนึ่งในพระศักติของพระวิษณุ # ทากษายณีที่ได้รับการบูชาที่กปาลโมจนะ ==== การผันรูป ==== {{sa-decl-noun-f}} ==== ลูกคำ ==== {{col3|sa|विशुद्धि|अशुद्धि|शुद्धिकर|शुद्धिकृत|शुद्धितम|संशुद्धि|परिशुद्धि}} ==== คำสืบทอด ==== * {{desc|pi|suddhi|t=การทำให้บริสุทธิ์|g=f}} * {{desc|pra|𑀲𑀼𑀤𑁆𑀥𑀺|t=การทำให้บริสุทธิ์, ข่าวสาร|g=f}} ** ตะวันตกเฉียงเหนือ: *** {{desc|sd|سدھ|tr=sudhi}} *** {{desc|pa|سدھ|tr=-}} / {{l|pa|ਸੁੱਧ}} ** เหนือ: *** {{desc|ne|सुधि|सुद्धि}} ** ตะวันออก: *** {{desc|bn|সুধ|সুধি}} *** {{desc|as|সুধি}} ** ตอนกลาง: *** ฮินดูสตานี: ***: {{desc|hi|सुध|सुधी}} ***: {{desc|ur|سدھ|سدھی}} *** {{desc|gu|સૂધ}} *** {{desc|mr|सुधी}} === อ้างอิง === * {{R:sa:MW}} == ภาษาฮินดี == === รากศัพท์ === {{lbor|hi|sa|शुद्धि}}; {{doublet|hi|सुध}} === การออกเสียง === * {{hi-IPA}} === คำนาม === {{hi-noun|f}} # [[ความบริสุทธิ์]] # [[การทำ]][[ให้]][[บริสุทธิ์]], [[การชดใช้]][[บาป]] # [[การชำระ]] (ความผิด) # [[ความถูกต้อง]], [[ความแม่นยำ]] (ของงาน) # [[การตอบแทน]] ==== การผันรูป ==== {{hi-ndecl|<F>}} ==== ลูกคำ ==== {{col3|hi|शुद्धिकरण|शुद्धिकारक|शुद्धिकारी|शुद्धिपत्र|शुद्धिबोध|शुद्धिवादी}} ==== คำเกี่ยวข้อง ==== {{col3|hi|अशुद्धि|परिशुद्धि|संशुद्धि}} === อ้างอิง === * {{R:hi:McGregor}} 538gjzxyrl8ushfexnyumoddh45brdb 5724834 5724833 2026-06-16T04:15:24Z OctraBot 3198 /* คำนาม */ 5724834 wikitext text/x-wiki == ภาษาสันสกฤต == === รูปแบบอื่น === {{sa-alt}} === รากศัพท์ === {{affix|sa|शुध्|-ति}} === การออกเสียง === {{sa-IPA}} === คำนาม === {{sa-noun|शुध्|g=f}} # {{lb|sa|ศาสนาฮินดู}} {{w|ศุทธิ (ศาสนาฮินดู)|ศุทธิ}} # {{lb|sa|ตรงตัว|เชิงเปรียบเทียบ}} [[การชำระ]][[ล้าง]], การทำให้บริสุทธิ์, ความบริสุทธิ์, [[ความศักดิ์สิทธิ์]], [[การปลดปล่อย]]จาก[[มลทิน]], [[พิธีกรรม]][[ชำระ]][[ล้าง]] # [[การทำ]][[ให้]][[เป็น]][[อิสระ]] หรือการทำให้[[ปลอดภัย]] (จากอันตรายใด ๆ) #* {{Q|sa||Kām}} #* {{Q|sa||VarBṛS}} # [[การพิสูจน์]][[ความชอบธรรม]], [[การพ้น]][[ผิด]], [[ความบริสุทธิ์]] (ที่พิสูจน์ได้จากการทดสอบหรือการไต่สวน) # [[การยกหนี้]], [[การชำระ]][[หนี้]] หรือ[[การจ่าย]]หนี้, [[การปลด]] (จากหนี้สิน ฯลฯ) #* {{Q|sa||MW}} # [[การแก้แค้น]] # [[การตรวจสอบ]], [[การแก้ไข]], การทำให้[[เป็น]][[จริง]], ความถูกต้อง, ความแม่นยำ, [[ความแท้จริง]], [[ความจริง]] #* {{Q|sa||Yājñ}} # [[ความชัดเจน]], [[ความแน่นอน]], [[ความรู้]]ที่ถูกต้องเกี่ยวกับ {{q|ใช้กับสัมพันธการกหรือในคำประสม}} #: {{ux|sa|'''शुद्धिं'''[[कृ]]|t=ตรวจสอบให้แน่ใจ}} # {{lb|sa|เลขคณิต}} ไม่เหลือ[[เศษ]] #: {{ux|sa|'''शुद्धि'''मि|t=ไม่เหลือเศษ}} # [[การลบ]]ของ[[ปริมาณ]] หรือปริมาณที่จะ[[ลบ]] # ชื่อของ[[พระแม่ทุรคา]] # หนึ่งในพระศักติของพระวิษณุ # ทากษายณีที่ได้รับการบูชาที่กปาลโมจนะ ==== การผันรูป ==== {{sa-decl-noun-f}} ==== ลูกคำ ==== {{col3|sa|विशुद्धि|अशुद्धि|शुद्धिकर|शुद्धिकृत|शुद्धितम|संशुद्धि|परिशुद्धि}} ==== คำสืบทอด ==== * {{desc|pi|suddhi|t=การทำให้บริสุทธิ์|g=f}} * {{desc|pra|𑀲𑀼𑀤𑁆𑀥𑀺|t=การทำให้บริสุทธิ์, ข่าวสาร|g=f}} ** ตะวันตกเฉียงเหนือ: *** {{desc|sd|سدھ|tr=sudhi}} *** {{desc|pa|سدھ|tr=-}} / {{l|pa|ਸੁੱਧ}} ** เหนือ: *** {{desc|ne|सुधि|सुद्धि}} ** ตะวันออก: *** {{desc|bn|সুধ|সুধি}} *** {{desc|as|সুধি}} ** ตอนกลาง: *** ฮินดูสตานี: ***: {{desc|hi|सुध|सुधी}} ***: {{desc|ur|سدھ|سدھی}} *** {{desc|gu|સૂધ}} *** {{desc|mr|सुधी}} === อ้างอิง === * {{R:sa:MW}} == ภาษาฮินดี == === รากศัพท์ === {{lbor|hi|sa|शुद्धि}}; {{doublet|hi|सुध}} === การออกเสียง === * {{hi-IPA}} === คำนาม === {{hi-noun|f}} # [[ความบริสุทธิ์]] # [[การทำ]][[ให้]][[บริสุทธิ์]], [[การชดใช้]][[บาป]] # [[การชำระ]] (ความผิด) # [[ความถูกต้อง]], [[ความแม่นยำ]] (ของงาน) # [[การตอบแทน]] ==== การผันรูป ==== {{hi-ndecl|<F>}} ==== ลูกคำ ==== {{col3|hi|शुद्धिकरण|शुद्धिकारक|शुद्धिकारी|शुद्धिपत्र|शुद्धिबोध|शुद्धिवादी}} ==== คำเกี่ยวข้อง ==== {{col3|hi|अशुद्धि|परिशुद्धि|संशुद्धि}} === อ้างอิง === * {{R:hi:McGregor}} 6mtwdjbzqc4nxo6nl4uupoi9ovwwzuv 5724835 5724834 2026-06-16T04:15:58Z OctraBot 3198 /* คำนาม */ 5724835 wikitext text/x-wiki == ภาษาสันสกฤต == === รูปแบบอื่น === {{sa-alt}} === รากศัพท์ === {{affix|sa|शुध्|-ति}} === การออกเสียง === {{sa-IPA}} === คำนาม === {{sa-noun|शुध्|g=f}} # {{lb|sa|ศาสนาฮินดู}} {{w|ศุทธิ (ศาสนาฮินดู)|ศุทธิ}} # {{lb|sa|literal|figurative}} [[การชำระ]][[ล้าง]], การทำให้บริสุทธิ์, ความบริสุทธิ์, [[ความศักดิ์สิทธิ์]], [[การปลดปล่อย]]จาก[[มลทิน]], [[พิธีกรรม]][[ชำระ]][[ล้าง]] # [[การทำ]][[ให้]][[เป็น]][[อิสระ]] หรือการทำให้[[ปลอดภัย]] (จากอันตรายใด ๆ) #* {{Q|sa||Kām}} #* {{Q|sa||VarBṛS}} # [[การพิสูจน์]][[ความชอบธรรม]], [[การพ้น]][[ผิด]], [[ความบริสุทธิ์]] (ที่พิสูจน์ได้จากการทดสอบหรือการไต่สวน) # [[การยกหนี้]], [[การชำระ]][[หนี้]] หรือ[[การจ่าย]]หนี้, [[การปลด]] (จากหนี้สิน ฯลฯ) #* {{Q|sa||MW}} # [[การแก้แค้น]] # [[การตรวจสอบ]], [[การแก้ไข]], การทำให้[[เป็น]][[จริง]], ความถูกต้อง, ความแม่นยำ, [[ความแท้จริง]], [[ความจริง]] #* {{Q|sa||Yājñ}} # [[ความชัดเจน]], [[ความแน่นอน]], [[ความรู้]]ที่ถูกต้องเกี่ยวกับ {{q|ใช้กับสัมพันธการกหรือในคำประสม}} #: {{ux|sa|'''शुद्धिं'''[[कृ]]|t=ตรวจสอบให้แน่ใจ}} # {{lb|sa|เลขคณิต}} ไม่เหลือ[[เศษ]] #: {{ux|sa|'''शुद्धि'''मि|t=ไม่เหลือเศษ}} # [[การลบ]]ของ[[ปริมาณ]] หรือปริมาณที่จะ[[ลบ]] # ชื่อของ[[พระแม่ทุรคา]] # หนึ่งในพระศักติของพระวิษณุ # ทากษายณีที่ได้รับการบูชาที่กปาลโมจนะ ==== การผันรูป ==== {{sa-decl-noun-f}} ==== ลูกคำ ==== {{col3|sa|विशुद्धि|अशुद्धि|शुद्धिकर|शुद्धिकृत|शुद्धितम|संशुद्धि|परिशुद्धि}} ==== คำสืบทอด ==== * {{desc|pi|suddhi|t=การทำให้บริสุทธิ์|g=f}} * {{desc|pra|𑀲𑀼𑀤𑁆𑀥𑀺|t=การทำให้บริสุทธิ์, ข่าวสาร|g=f}} ** ตะวันตกเฉียงเหนือ: *** {{desc|sd|سدھ|tr=sudhi}} *** {{desc|pa|سدھ|tr=-}} / {{l|pa|ਸੁੱਧ}} ** เหนือ: *** {{desc|ne|सुधि|सुद्धि}} ** ตะวันออก: *** {{desc|bn|সুধ|সুধি}} *** {{desc|as|সুধি}} ** ตอนกลาง: *** ฮินดูสตานี: ***: {{desc|hi|सुध|सुधी}} ***: {{desc|ur|سدھ|سدھی}} *** {{desc|gu|સૂધ}} *** {{desc|mr|सुधी}} === อ้างอิง === * {{R:sa:MW}} == ภาษาฮินดี == === รากศัพท์ === {{lbor|hi|sa|शुद्धि}}; {{doublet|hi|सुध}} === การออกเสียง === * {{hi-IPA}} === คำนาม === {{hi-noun|f}} # [[ความบริสุทธิ์]] # [[การทำ]][[ให้]][[บริสุทธิ์]], [[การชดใช้]][[บาป]] # [[การชำระ]] (ความผิด) # [[ความถูกต้อง]], [[ความแม่นยำ]] (ของงาน) # [[การตอบแทน]] ==== การผันรูป ==== {{hi-ndecl|<F>}} ==== ลูกคำ ==== {{col3|hi|शुद्धिकरण|शुद्धिकारक|शुद्धिकारी|शुद्धिपत्र|शुद्धिबोध|शुद्धिवादी}} ==== คำเกี่ยวข้อง ==== {{col3|hi|अशुद्धि|परिशुद्धि|संशुद्धि}} === อ้างอิง === * {{R:hi:McGregor}} g1ppij7hblr8g42nrmkquypdampjdvk 5724837 5724835 2026-06-16T04:19:40Z OctraBot 3198 /* คำสืบทอด */ 5724837 wikitext text/x-wiki == ภาษาสันสกฤต == === รูปแบบอื่น === {{sa-alt}} === รากศัพท์ === {{affix|sa|शुध्|-ति}} === การออกเสียง === {{sa-IPA}} === คำนาม === {{sa-noun|शुध्|g=f}} # {{lb|sa|ศาสนาฮินดู}} {{w|ศุทธิ (ศาสนาฮินดู)|ศุทธิ}} # {{lb|sa|literal|figurative}} [[การชำระ]][[ล้าง]], การทำให้บริสุทธิ์, ความบริสุทธิ์, [[ความศักดิ์สิทธิ์]], [[การปลดปล่อย]]จาก[[มลทิน]], [[พิธีกรรม]][[ชำระ]][[ล้าง]] # [[การทำ]][[ให้]][[เป็น]][[อิสระ]] หรือการทำให้[[ปลอดภัย]] (จากอันตรายใด ๆ) #* {{Q|sa||Kām}} #* {{Q|sa||VarBṛS}} # [[การพิสูจน์]][[ความชอบธรรม]], [[การพ้น]][[ผิด]], [[ความบริสุทธิ์]] (ที่พิสูจน์ได้จากการทดสอบหรือการไต่สวน) # [[การยกหนี้]], [[การชำระ]][[หนี้]] หรือ[[การจ่าย]]หนี้, [[การปลด]] (จากหนี้สิน ฯลฯ) #* {{Q|sa||MW}} # [[การแก้แค้น]] # [[การตรวจสอบ]], [[การแก้ไข]], การทำให้[[เป็น]][[จริง]], ความถูกต้อง, ความแม่นยำ, [[ความแท้จริง]], [[ความจริง]] #* {{Q|sa||Yājñ}} # [[ความชัดเจน]], [[ความแน่นอน]], [[ความรู้]]ที่ถูกต้องเกี่ยวกับ {{q|ใช้กับสัมพันธการกหรือในคำประสม}} #: {{ux|sa|'''शुद्धिं'''[[कृ]]|t=ตรวจสอบให้แน่ใจ}} # {{lb|sa|เลขคณิต}} ไม่เหลือ[[เศษ]] #: {{ux|sa|'''शुद्धि'''मि|t=ไม่เหลือเศษ}} # [[การลบ]]ของ[[ปริมาณ]] หรือปริมาณที่จะ[[ลบ]] # ชื่อของ[[พระแม่ทุรคา]] # หนึ่งในพระศักติของพระวิษณุ # ทากษายณีที่ได้รับการบูชาที่กปาลโมจนะ ==== การผันรูป ==== {{sa-decl-noun-f}} ==== ลูกคำ ==== {{col3|sa|विशुद्धि|अशुद्धि|शुद्धिकर|शुद्धिकृत|शुद्धितम|संशुद्धि|परिशुद्धि}} ==== คำสืบทอด ==== * {{desc|pi|สุทฺธิ|t=การทำให้บริสุทธิ์|g=f}} * {{desc|pra|𑀲𑀼𑀤𑁆𑀥𑀺|t=การทำให้บริสุทธิ์, ข่าวสาร|g=f}} ** ตะวันตกเฉียงเหนือ: *** {{desc|sd|سدھ|tr=sudhi}} *** {{desc|pa|سدھ|tr=-}} / {{l|pa|ਸੁੱਧ}} ** เหนือ: *** {{desc|ne|सुधि|सुद्धि}} ** ตะวันออก: *** {{desc|bn|সুধ|সুধি}} *** {{desc|as|সুধি}} ** ตอนกลาง: *** ฮินดูสตานี: ***: {{desc|hi|सुध|सुधी}} ***: {{desc|ur|سدھ|سدھی}} *** {{desc|gu|સૂધ}} *** {{desc|mr|सुधी}} === อ้างอิง === * {{R:sa:MW}} == ภาษาฮินดี == === รากศัพท์ === {{lbor|hi|sa|शुद्धि}}; {{doublet|hi|सुध}} === การออกเสียง === * {{hi-IPA}} === คำนาม === {{hi-noun|f}} # [[ความบริสุทธิ์]] # [[การทำ]][[ให้]][[บริสุทธิ์]], [[การชดใช้]][[บาป]] # [[การชำระ]] (ความผิด) # [[ความถูกต้อง]], [[ความแม่นยำ]] (ของงาน) # [[การตอบแทน]] ==== การผันรูป ==== {{hi-ndecl|<F>}} ==== ลูกคำ ==== {{col3|hi|शुद्धिकरण|शुद्धिकारक|शुद्धिकारी|शुद्धिपत्र|शुद्धिबोध|शुद्धिवादी}} ==== คำเกี่ยวข้อง ==== {{col3|hi|अशुद्धि|परिशुद्धि|संशुद्धि}} === อ้างอิง === * {{R:hi:McGregor}} rpjxhjb9ob0zmqt871uuf44nuztvpom แม่แบบ:sa-decl-noun-f 10 2331797 5724836 2026-06-16T04:19:27Z OctraBot 3198 นำเข้าจาก enwikt 5724836 wikitext text/x-wiki <includeonly>{{#invoke:sa-decl|show|f}}</includeonly><!-- --><noinclude>{{tcat|ndecl:f}}</noinclude><!-- --><noinclude>{{documentation}}</noinclude> t0l1pj57nq53tvx53bgumcewykfwssa มอดูล:sa-decl 828 2331798 5724838 2026-06-16T04:21:35Z OctraBot 3198 สร้างหน้าด้วย "local export = {} local m_para = require("Module:parameters") local m_links = require("Module:links") local m_utils = require("Module:utilities") local lang = require("Module:languages").getByCode("sa") local m_script_utils = require("Module:script utilities") local sa_decl_data = require("Module:sa-decl/data") local SLP_to_IAST = require("Module:sa-utilities/translit/SLP1-to-IAST") local sa_utils_translit = require("Module:sa-utilities/translit")..." 5724838 Scribunto text/plain local export = {} local m_para = require("Module:parameters") local m_links = require("Module:links") local m_utils = require("Module:utilities") local lang = require("Module:languages").getByCode("sa") local m_script_utils = require("Module:script utilities") local sa_decl_data = require("Module:sa-decl/data") local SLP_to_IAST = require("Module:sa-utilities/translit/SLP1-to-IAST") local sa_utils_translit = require("Module:sa-utilities/translit") local PAGENAME = mw.loadData("Module:headword/data").pagename local sub = mw.ustring.sub local gsub = mw.ustring.gsub local match = mw.ustring.match local len = mw.ustring.len local accent = '[/\\]' local genders = { m = 'Masculine', f = 'Feminine', n = 'Neuter', gneut = 'Gender-neutral' } local cases = { { 'nom', 'nominative' }, { 'acc', 'accusative' }, { 'ins', 'instrumental' }, { 'dat', 'dative' }, { 'abl', 'ablative' }, { 'gen', 'genitive' }, { 'loc', 'locative' }, { 'voc', 'vocative' } } local super_nums = {'¹', '²', '³', '⁴', '⁵', '⁶', '⁷', '⁸', '⁹', [0]='⁰'} local function to_super(num) local annotation = gsub(num, ".", super_nums) return annotation end local function get_form_note_tags(form_notes, data) local output = {} if type(form_notes) ~= 'table' then form_notes = { form_notes } end for _, form_note in ipairs(form_notes) do if type(data.form_notes[form_note]) ~= "number" then table.insert(data.form_notes_out, form_note) data.form_notes[form_note] = #data.form_notes_out end table.insert(output, to_super(data.form_notes[form_note])) end return table.concat(output) end local function make_header(args, data, sc_cache) local width = '40' local reverse_trd = (sc_cache.scCode == "Deva" and sc_cache.reverse_tr(args.lemma)) or sc_cache.reverse_tr(gsub(args.lemma, accent, "")) local title = genders[args.g] .. ' ' .. ' ' .. data.decl_type .. ' declension of ' .. m_links.full_link({ term = nil, alt = reverse_trd, tr = "-", lang = lang, sc = sc_cache.sc }) local header = { mw.getCurrentFrame():expandTemplate { title = 'inflection-table-top', args = { title = title, palette = 'blue', tall = 'yes', } } } table.insert(header, '!\n') if args.n:find('s') then table.insert(header, '! singular\n') end if args.n:find('d') then table.insert(header, '! dual\n') end if args.n:find('p') then table.insert(header, '! plural\n') end return table.concat(header) end local function make_cell(args, data, code, num, sc_cache) local tag = code .. '_' .. num local forms, links, trs = {}, {}, {} if args[tag] then forms = mw.text.split(sc_cache.tr(args[tag]), '%s*[,]%s*') else forms = data.forms[tag] end if not forms then error("Internal error: No forms for slot '" .. tag .. "'") end for i, form in ipairs(forms) do if form == "" then -- in case of form reduced to zero by 'novedic' parameter -- do nothing else local form_note_tag = get_form_note_tags(forms['note' .. i] or {}, data) -- a superscript number at the end of manually added forms should not be part of the (linked) form if match(form, "[¹²³⁴⁵⁶⁷⁸⁹]$") then extra_note_tag = gsub(form, "^.+(.)$", "%1") form = gsub(form, ".$", "") else extra_note_tag = "" end if form == "-" then table.insert(links, m_links.full_link({ term = nil, alt = '-', lang = lang, sc = sc_cache.sc })) else -- strip accent before reverse tr for non-Deva scripts local reverse_trd = (sc_cache.scCode == "Deva" and sc_cache.reverse_tr(form)) or sc_cache.reverse_tr(gsub(form, accent, "")) table.insert(links, m_links.full_link({ term = reverse_trd, alt = reverse_trd .. form_note_tag .. extra_note_tag, tr = SLP_to_IAST.tr(form) .. form_note_tag .. extra_note_tag, lang = lang, sc = sc_cache.sc })) end end end return table.concat { '| ', table.concat(links, '<br>'), '\n' } end local function format_notes(args, data) local output = {} if #data.form_notes_out > 0 or #data.general_notes > 0 or #args.note > 0 then for i, form_note in ipairs(data.form_notes_out) do table.insert(output, '* ' .. to_super(i) .. form_note) end for _, general_note in ipairs(data.general_notes) do table.insert(output, '* ' .. general_note) end for _, note in ipairs(args.note) do table.insert(output, '* ' .. note) end return table.concat(output, '\n') .. '\n' else return '' end end local function make_table_noun(args, data, sc_cache) local output = { make_header(args, data, sc_cache) } for _, case in ipairs(cases) do local code, name = case[1], case[2] table.insert(output, '|-\n') table.insert(output, '! ' .. name .. '\n') if args.n:find('s') then table.insert(output, make_cell(args, data, code, 's', sc_cache)) end if args.n:find('d') then table.insert(output, make_cell(args, data, code, 'd', sc_cache)) end if args.n:find('p') then table.insert(output, make_cell(args, data, code, 'p', sc_cache)) end end table.insert(output, mw.getCurrentFrame():expandTemplate { title = 'inflection-table-bottom', args = { notes = format_notes(args, data) } }) if not args.nocat and #data.categories > 0 then table.insert(output, m_utils.format_categories(data.categories, lang)) end return table.concat(output) end local function get_sc_details(args) local sc, scCode if args.sc then sc = require("Module:scripts").getByCode(args.sc) scCode = args.sc else sc = lang:findBestScript(args.lemma) scCode = sc:getCode() if scCode == 'None' then sc = lang:findBestScript(PAGENAME) scCode = sc:getCode() if scCode == 'None' then return get_sc_details({sc = "Deva"}) end end end local tr, reverse_tr = sa_utils_translit.retrieve_tr_modules(scCode) return { tr = tr, reverse_tr = reverse_tr, sc = sc, scCode = scCode } end function export.show(frame) local params = { lemma = { default = PAGENAME }, decl = true, n = { default = 'sdp', set = {'s', 'd', 'p', 'sd', 'sp', 'dp', 'sdp'} }, sc = true, [1] = { alias_of = 'lemma' }, nom_s = true, nom_d = true, nom_p = true, acc_s = true, acc_d = true, acc_p = true, ins_s = true, ins_d = true, ins_p = true, dat_s = true, dat_d = true, dat_p = true, abl_s = true, abl_d = true, abl_p = true, gen_s = true, gen_d = true, gen_p = true, loc_s = true, loc_d = true, loc_p = true, voc_s = true, voc_d = true, voc_p = true, note = { list = true }, root = { type = 'boolean' }, vrki = { type = 'boolean' }, -- for 'vṛkī' declension pronominal = { type = 'boolean' }, -- use pronominal declension, e.g. for 'sarva' novedic = { default = false, type = "boolean" }, -- disable extra Vedic forms norigvedic = { default = false, type = "boolean" }, -- disable Rigvedic forms r_stem_a = true, at_nom_s = { type = 'boolean' }, ambig_final = true, -- for stems on -j, -ś or -h diaspirate = { type = 'boolean' }, -- for diaspirate roots like 'duh' participle = { type = 'boolean' }, contract = { type = 'boolean' }, han = { type = 'boolean' }, -- for root 'han' voc_svar = { type = 'boolean' }, -- to indicate that the vocative should have initial svarita adj = { type = 'boolean' }, -- internal argument for categorizing adjectives participle_n_nom_d = true, -- internal argument to pass on feminine as neuter nom.du. for participles participle_n_nom_d2 = true, nocat = true, } local data = { forms = {}, categories = {}, decl_type = nil, form_notes = {}, form_notes_out = {}, general_notes = {}, } local g = frame.args[1] if g == 'gneut' then -- no number spec for gender-neutral numerals params.n = nil end local args = m_para.process(frame:getParent().args, params) args.g = g if args.g == 'gneut' then args.n = 'p' -- plural number-only end if args.pronominal then args.root = false -- the pronominal endings override the usual declension pattern end local sc_cache = get_sc_details(args) args.lemma = sc_cache.tr(args.lemma) args.has_accent = match(args.lemma, accent) if args.has_accent and (match(args.lemma, "^[td][rv]y") or (match(args.lemma, "^ny") and not match(args.lemma, "^nya/$"))) then args.voc_svar = true end for decl, decl_data in pairs(sa_decl_data) do if decl_data.detect(args) then sa_decl_data[decl](args, data) break end end if data.decl_type == nil then error("No declension class could be detected. Please check the lemma form or specify the declension.") end return make_table_noun(args, data, sc_cache) end return export mp4xevpaiklvczznopyssey473j7tf8 5724843 5724838 2026-06-16T04:31:21Z OctraBot 3198 5724843 Scribunto text/plain local export = {} local m_para = require("Module:parameters") local m_links = require("Module:links") local m_utils = require("Module:utilities") local lang = require("Module:languages").getByCode("sa") local m_script_utils = require("Module:script utilities") local sa_decl_data = require("Module:sa-decl/data") local SLP_to_IAST = require("Module:sa-utilities/translit/SLP1-to-IAST") local sa_utils_translit = require("Module:sa-utilities/translit") local PAGENAME = mw.loadData("Module:headword/data").pagename local sub = mw.ustring.sub local gsub = mw.ustring.gsub local match = mw.ustring.match local len = mw.ustring.len local accent = '[/\\]' local genders = { m = 'เพศชาย', f = 'เพศหญิง', n = 'เพศกลาง', gneut = 'ไม่ระบุเพศ' } local cases = { { 'nom', 'กรรตุการก' }, { 'acc', 'กรรมการก' }, { 'ins', 'กรณการก' }, { 'dat', 'สัมปทานการก' }, { 'abl', 'อปาทานการก' }, { 'gen', 'สัมพันธการก' }, { 'loc', 'อธิกรณการก' }, { 'voc', 'สัมโพธนการก' } } local super_nums = {'¹', '²', '³', '⁴', '⁵', '⁶', '⁷', '⁸', '⁹', [0]='⁰'} local function to_super(num) local annotation = gsub(num, ".", super_nums) return annotation end local function get_form_note_tags(form_notes, data) local output = {} if type(form_notes) ~= 'table' then form_notes = { form_notes } end for _, form_note in ipairs(form_notes) do if type(data.form_notes[form_note]) ~= "number" then table.insert(data.form_notes_out, form_note) data.form_notes[form_note] = #data.form_notes_out end table.insert(output, to_super(data.form_notes[form_note])) end return table.concat(output) end local function make_header(args, data, sc_cache) local width = '40' local reverse_trd = (sc_cache.scCode == "Deva" and sc_cache.reverse_tr(args.lemma)) or sc_cache.reverse_tr(gsub(args.lemma, accent, "")) local title = genders[args.g] .. ' ' .. ' ' .. data.decl_type .. ' declension of ' .. m_links.full_link({ term = nil, alt = reverse_trd, tr = "-", lang = lang, sc = sc_cache.sc }) local header = { mw.getCurrentFrame():expandTemplate { title = 'inflection-table-top', args = { title = title, palette = 'blue', tall = 'yes', } } } table.insert(header, '!\n') if args.n:find('s') then table.insert(header, '! singular\n') end if args.n:find('d') then table.insert(header, '! dual\n') end if args.n:find('p') then table.insert(header, '! plural\n') end return table.concat(header) end local function make_cell(args, data, code, num, sc_cache) local tag = code .. '_' .. num local forms, links, trs = {}, {}, {} if args[tag] then forms = mw.text.split(sc_cache.tr(args[tag]), '%s*[,]%s*') else forms = data.forms[tag] end if not forms then error("Internal error: No forms for slot '" .. tag .. "'") end for i, form in ipairs(forms) do if form == "" then -- in case of form reduced to zero by 'novedic' parameter -- do nothing else local form_note_tag = get_form_note_tags(forms['note' .. i] or {}, data) -- a superscript number at the end of manually added forms should not be part of the (linked) form if match(form, "[¹²³⁴⁵⁶⁷⁸⁹]$") then extra_note_tag = gsub(form, "^.+(.)$", "%1") form = gsub(form, ".$", "") else extra_note_tag = "" end if form == "-" then table.insert(links, m_links.full_link({ term = nil, alt = '-', lang = lang, sc = sc_cache.sc })) else -- strip accent before reverse tr for non-Deva scripts local reverse_trd = (sc_cache.scCode == "Deva" and sc_cache.reverse_tr(form)) or sc_cache.reverse_tr(gsub(form, accent, "")) table.insert(links, m_links.full_link({ term = reverse_trd, alt = reverse_trd .. form_note_tag .. extra_note_tag, tr = SLP_to_IAST.tr(form) .. form_note_tag .. extra_note_tag, lang = lang, sc = sc_cache.sc })) end end end return table.concat { '| ', table.concat(links, '<br>'), '\n' } end local function format_notes(args, data) local output = {} if #data.form_notes_out > 0 or #data.general_notes > 0 or #args.note > 0 then for i, form_note in ipairs(data.form_notes_out) do table.insert(output, '* ' .. to_super(i) .. form_note) end for _, general_note in ipairs(data.general_notes) do table.insert(output, '* ' .. general_note) end for _, note in ipairs(args.note) do table.insert(output, '* ' .. note) end return table.concat(output, '\n') .. '\n' else return '' end end local function make_table_noun(args, data, sc_cache) local output = { make_header(args, data, sc_cache) } for _, case in ipairs(cases) do local code, name = case[1], case[2] table.insert(output, '|-\n') table.insert(output, '! ' .. name .. '\n') if args.n:find('s') then table.insert(output, make_cell(args, data, code, 's', sc_cache)) end if args.n:find('d') then table.insert(output, make_cell(args, data, code, 'd', sc_cache)) end if args.n:find('p') then table.insert(output, make_cell(args, data, code, 'p', sc_cache)) end end table.insert(output, mw.getCurrentFrame():expandTemplate { title = 'inflection-table-bottom', args = { notes = format_notes(args, data) } }) if not args.nocat and #data.categories > 0 then table.insert(output, m_utils.format_categories(data.categories, lang)) end return table.concat(output) end local function get_sc_details(args) local sc, scCode if args.sc then sc = require("Module:scripts").getByCode(args.sc) scCode = args.sc else sc = lang:findBestScript(args.lemma) scCode = sc:getCode() if scCode == 'None' then sc = lang:findBestScript(PAGENAME) scCode = sc:getCode() if scCode == 'None' then return get_sc_details({sc = "Deva"}) end end end local tr, reverse_tr = sa_utils_translit.retrieve_tr_modules(scCode) return { tr = tr, reverse_tr = reverse_tr, sc = sc, scCode = scCode } end function export.show(frame) local params = { lemma = { default = PAGENAME }, decl = true, n = { default = 'sdp', set = {'s', 'd', 'p', 'sd', 'sp', 'dp', 'sdp'} }, sc = true, [1] = { alias_of = 'lemma' }, nom_s = true, nom_d = true, nom_p = true, acc_s = true, acc_d = true, acc_p = true, ins_s = true, ins_d = true, ins_p = true, dat_s = true, dat_d = true, dat_p = true, abl_s = true, abl_d = true, abl_p = true, gen_s = true, gen_d = true, gen_p = true, loc_s = true, loc_d = true, loc_p = true, voc_s = true, voc_d = true, voc_p = true, note = { list = true }, root = { type = 'boolean' }, vrki = { type = 'boolean' }, -- for 'vṛkī' declension pronominal = { type = 'boolean' }, -- use pronominal declension, e.g. for 'sarva' novedic = { default = false, type = "boolean" }, -- disable extra Vedic forms norigvedic = { default = false, type = "boolean" }, -- disable Rigvedic forms r_stem_a = true, at_nom_s = { type = 'boolean' }, ambig_final = true, -- for stems on -j, -ś or -h diaspirate = { type = 'boolean' }, -- for diaspirate roots like 'duh' participle = { type = 'boolean' }, contract = { type = 'boolean' }, han = { type = 'boolean' }, -- for root 'han' voc_svar = { type = 'boolean' }, -- to indicate that the vocative should have initial svarita adj = { type = 'boolean' }, -- internal argument for categorizing adjectives participle_n_nom_d = true, -- internal argument to pass on feminine as neuter nom.du. for participles participle_n_nom_d2 = true, nocat = true, } local data = { forms = {}, categories = {}, decl_type = nil, form_notes = {}, form_notes_out = {}, general_notes = {}, } local g = frame.args[1] if g == 'gneut' then -- no number spec for gender-neutral numerals params.n = nil end local args = m_para.process(frame:getParent().args, params) args.g = g if args.g == 'gneut' then args.n = 'p' -- plural number-only end if args.pronominal then args.root = false -- the pronominal endings override the usual declension pattern end local sc_cache = get_sc_details(args) args.lemma = sc_cache.tr(args.lemma) args.has_accent = match(args.lemma, accent) if args.has_accent and (match(args.lemma, "^[td][rv]y") or (match(args.lemma, "^ny") and not match(args.lemma, "^nya/$"))) then args.voc_svar = true end for decl, decl_data in pairs(sa_decl_data) do if decl_data.detect(args) then sa_decl_data[decl](args, data) break end end if data.decl_type == nil then error("No declension class could be detected. Please check the lemma form or specify the declension.") end return make_table_noun(args, data, sc_cache) end return export 0xgijn0ajfmfnnslnoq50ec0xzj3lti 5724852 5724843 2026-06-16T04:48:26Z OctraBot 3198 5724852 Scribunto text/plain local export = {} local m_para = require("Module:parameters") local m_links = require("Module:links") local m_utils = require("Module:utilities") local lang = require("Module:languages").getByCode("sa") local m_script_utils = require("Module:script utilities") local sa_decl_data = require("Module:sa-decl/data") local SLP_to_IAST = require("Module:sa-utilities/translit/SLP1-to-IAST") local sa_utils_translit = require("Module:sa-utilities/translit") local PAGENAME = mw.loadData("Module:headword/data").pagename local sub = mw.ustring.sub local gsub = mw.ustring.gsub local match = mw.ustring.match local len = mw.ustring.len local accent = '[/\\]' local genders = { m = 'เพศชาย', f = 'เพศหญิง', n = 'เพศกลาง', gneut = 'ไม่ระบุเพศ' } local cases = { { 'nom', 'กรรตุการก' }, { 'acc', 'กรรมการก' }, { 'ins', 'กรณการก' }, { 'dat', 'สัมปทานการก' }, { 'abl', 'อปาทานการก' }, { 'gen', 'สัมพันธการก' }, { 'loc', 'อธิกรณการก' }, { 'voc', 'สัมโพธนการก' } } local super_nums = {'¹', '²', '³', '⁴', '⁵', '⁶', '⁷', '⁸', '⁹', [0]='⁰'} local function to_super(num) local annotation = gsub(num, ".", super_nums) return annotation end local function get_form_note_tags(form_notes, data) local output = {} if type(form_notes) ~= 'table' then form_notes = { form_notes } end for _, form_note in ipairs(form_notes) do if type(data.form_notes[form_note]) ~= "number" then table.insert(data.form_notes_out, form_note) data.form_notes[form_note] = #data.form_notes_out end table.insert(output, to_super(data.form_notes[form_note])) end return table.concat(output) end local function make_header(args, data, sc_cache) local width = '40' local reverse_trd = (sc_cache.scCode == "Deva" and sc_cache.reverse_tr(args.lemma)) or sc_cache.reverse_tr(gsub(args.lemma, accent, "")) local title = 'การผันรูปของ ' .. --th m_links.full_link({ term = nil, alt = reverse_trd, tr = "-", lang = lang, sc = sc_cache.sc }) .. '(' .. genders[args.g] .. ' ' .. data.decl_type .. ')' local header = { mw.getCurrentFrame():expandTemplate { title = 'inflection-table-top', args = { title = title, palette = 'blue', tall = 'yes', } } } table.insert(header, '!\n') if args.n:find('s') then table.insert(header, '! เอกพจน์\n') end if args.n:find('d') then table.insert(header, '! ทวิพจน์\n') end if args.n:find('p') then table.insert(header, '! พหูพจน์\n') end return table.concat(header) end local function make_cell(args, data, code, num, sc_cache) local tag = code .. '_' .. num local forms, links, trs = {}, {}, {} if args[tag] then forms = mw.text.split(sc_cache.tr(args[tag]), '%s*[,]%s*') else forms = data.forms[tag] end if not forms then error("Internal error: No forms for slot '" .. tag .. "'") end for i, form in ipairs(forms) do if form == "" then -- in case of form reduced to zero by 'novedic' parameter -- do nothing else local form_note_tag = get_form_note_tags(forms['note' .. i] or {}, data) -- a superscript number at the end of manually added forms should not be part of the (linked) form if match(form, "[¹²³⁴⁵⁶⁷⁸⁹]$") then extra_note_tag = gsub(form, "^.+(.)$", "%1") form = gsub(form, ".$", "") else extra_note_tag = "" end if form == "-" then table.insert(links, m_links.full_link({ term = nil, alt = '-', lang = lang, sc = sc_cache.sc })) else -- strip accent before reverse tr for non-Deva scripts local reverse_trd = (sc_cache.scCode == "Deva" and sc_cache.reverse_tr(form)) or sc_cache.reverse_tr(gsub(form, accent, "")) table.insert(links, m_links.full_link({ term = reverse_trd, alt = reverse_trd .. form_note_tag .. extra_note_tag, tr = SLP_to_IAST.tr(form) .. form_note_tag .. extra_note_tag, lang = lang, sc = sc_cache.sc })) end end end return table.concat { '| ', table.concat(links, '<br>'), '\n' } end local function format_notes(args, data) local output = {} if #data.form_notes_out > 0 or #data.general_notes > 0 or #args.note > 0 then for i, form_note in ipairs(data.form_notes_out) do table.insert(output, '* ' .. to_super(i) .. form_note) end for _, general_note in ipairs(data.general_notes) do table.insert(output, '* ' .. general_note) end for _, note in ipairs(args.note) do table.insert(output, '* ' .. note) end return table.concat(output, '\n') .. '\n' else return '' end end local function make_table_noun(args, data, sc_cache) local output = { make_header(args, data, sc_cache) } for _, case in ipairs(cases) do local code, name = case[1], case[2] table.insert(output, '|-\n') table.insert(output, '! ' .. name .. '\n') if args.n:find('s') then table.insert(output, make_cell(args, data, code, 's', sc_cache)) end if args.n:find('d') then table.insert(output, make_cell(args, data, code, 'd', sc_cache)) end if args.n:find('p') then table.insert(output, make_cell(args, data, code, 'p', sc_cache)) end end table.insert(output, mw.getCurrentFrame():expandTemplate { title = 'inflection-table-bottom', args = { notes = format_notes(args, data) } }) if not args.nocat and #data.categories > 0 then table.insert(output, m_utils.format_categories(data.categories, lang)) end return table.concat(output) end local function get_sc_details(args) local sc, scCode if args.sc then sc = require("Module:scripts").getByCode(args.sc) scCode = args.sc else sc = lang:findBestScript(args.lemma) scCode = sc:getCode() if scCode == 'None' then sc = lang:findBestScript(PAGENAME) scCode = sc:getCode() if scCode == 'None' then return get_sc_details({sc = "Deva"}) end end end local tr, reverse_tr = sa_utils_translit.retrieve_tr_modules(scCode) return { tr = tr, reverse_tr = reverse_tr, sc = sc, scCode = scCode } end function export.show(frame) local params = { lemma = { default = PAGENAME }, decl = true, n = { default = 'sdp', set = {'s', 'd', 'p', 'sd', 'sp', 'dp', 'sdp'} }, sc = true, [1] = { alias_of = 'lemma' }, nom_s = true, nom_d = true, nom_p = true, acc_s = true, acc_d = true, acc_p = true, ins_s = true, ins_d = true, ins_p = true, dat_s = true, dat_d = true, dat_p = true, abl_s = true, abl_d = true, abl_p = true, gen_s = true, gen_d = true, gen_p = true, loc_s = true, loc_d = true, loc_p = true, voc_s = true, voc_d = true, voc_p = true, note = { list = true }, root = { type = 'boolean' }, vrki = { type = 'boolean' }, -- for 'vṛkī' declension pronominal = { type = 'boolean' }, -- use pronominal declension, e.g. for 'sarva' novedic = { default = false, type = "boolean" }, -- disable extra Vedic forms norigvedic = { default = false, type = "boolean" }, -- disable Rigvedic forms r_stem_a = true, at_nom_s = { type = 'boolean' }, ambig_final = true, -- for stems on -j, -ś or -h diaspirate = { type = 'boolean' }, -- for diaspirate roots like 'duh' participle = { type = 'boolean' }, contract = { type = 'boolean' }, han = { type = 'boolean' }, -- for root 'han' voc_svar = { type = 'boolean' }, -- to indicate that the vocative should have initial svarita adj = { type = 'boolean' }, -- internal argument for categorizing adjectives participle_n_nom_d = true, -- internal argument to pass on feminine as neuter nom.du. for participles participle_n_nom_d2 = true, nocat = true, } local data = { forms = {}, categories = {}, decl_type = nil, form_notes = {}, form_notes_out = {}, general_notes = {}, } local g = frame.args[1] if g == 'gneut' then -- no number spec for gender-neutral numerals params.n = nil end local args = m_para.process(frame:getParent().args, params) args.g = g if args.g == 'gneut' then args.n = 'p' -- plural number-only end if args.pronominal then args.root = false -- the pronominal endings override the usual declension pattern end local sc_cache = get_sc_details(args) args.lemma = sc_cache.tr(args.lemma) args.has_accent = match(args.lemma, accent) if args.has_accent and (match(args.lemma, "^[td][rv]y") or (match(args.lemma, "^ny") and not match(args.lemma, "^nya/$"))) then args.voc_svar = true end for decl, decl_data in pairs(sa_decl_data) do if decl_data.detect(args) then sa_decl_data[decl](args, data) break end end if data.decl_type == nil then error("No declension class could be detected. Please check the lemma form or specify the declension.") end return make_table_noun(args, data, sc_cache) end return export tn2inzggulkqnkvltvzkr9dqw99yrjs 5724853 5724852 2026-06-16T04:50:38Z OctraBot 3198 5724853 Scribunto text/plain local export = {} local m_para = require("Module:parameters") local m_links = require("Module:links") local m_utils = require("Module:utilities") local lang = require("Module:languages").getByCode("sa") local m_script_utils = require("Module:script utilities") local sa_decl_data = require("Module:sa-decl/data") local SLP_to_IAST = require("Module:sa-utilities/translit/SLP1-to-IAST") local sa_utils_translit = require("Module:sa-utilities/translit") local PAGENAME = mw.loadData("Module:headword/data").pagename local sub = mw.ustring.sub local gsub = mw.ustring.gsub local match = mw.ustring.match local len = mw.ustring.len local accent = '[/\\]' local genders = { m = 'เพศชาย', f = 'เพศหญิง', n = 'เพศกลาง', gneut = 'ไม่ระบุเพศ' } local cases = { { 'nom', 'กรรตุการก' }, { 'acc', 'กรรมการก' }, { 'ins', 'กรณการก' }, { 'dat', 'สัมปทานการก' }, { 'abl', 'อปาทานการก' }, { 'gen', 'สัมพันธการก' }, { 'loc', 'อธิกรณการก' }, { 'voc', 'สัมโพธนการก' } } local super_nums = {'¹', '²', '³', '⁴', '⁵', '⁶', '⁷', '⁸', '⁹', [0]='⁰'} local function to_super(num) local annotation = gsub(num, ".", super_nums) return annotation end local function get_form_note_tags(form_notes, data) local output = {} if type(form_notes) ~= 'table' then form_notes = { form_notes } end for _, form_note in ipairs(form_notes) do if type(data.form_notes[form_note]) ~= "number" then table.insert(data.form_notes_out, form_note) data.form_notes[form_note] = #data.form_notes_out end table.insert(output, to_super(data.form_notes[form_note])) end return table.concat(output) end local function make_header(args, data, sc_cache) local width = '40' local reverse_trd = (sc_cache.scCode == "Deva" and sc_cache.reverse_tr(args.lemma)) or sc_cache.reverse_tr(gsub(args.lemma, accent, "")) local title = 'การผันรูปของ ' .. --th m_links.full_link({ term = nil, alt = reverse_trd, tr = "-", lang = lang, sc = sc_cache.sc }) .. ' (' .. genders[args.g] .. ' ' .. data.decl_type .. ')' local header = { mw.getCurrentFrame():expandTemplate { title = 'inflection-table-top', args = { title = title, palette = 'blue', tall = 'yes', } } } table.insert(header, '!\n') if args.n:find('s') then table.insert(header, '! เอกพจน์\n') end if args.n:find('d') then table.insert(header, '! ทวิพจน์\n') end if args.n:find('p') then table.insert(header, '! พหูพจน์\n') end return table.concat(header) end local function make_cell(args, data, code, num, sc_cache) local tag = code .. '_' .. num local forms, links, trs = {}, {}, {} if args[tag] then forms = mw.text.split(sc_cache.tr(args[tag]), '%s*[,]%s*') else forms = data.forms[tag] end if not forms then error("Internal error: No forms for slot '" .. tag .. "'") end for i, form in ipairs(forms) do if form == "" then -- in case of form reduced to zero by 'novedic' parameter -- do nothing else local form_note_tag = get_form_note_tags(forms['note' .. i] or {}, data) -- a superscript number at the end of manually added forms should not be part of the (linked) form if match(form, "[¹²³⁴⁵⁶⁷⁸⁹]$") then extra_note_tag = gsub(form, "^.+(.)$", "%1") form = gsub(form, ".$", "") else extra_note_tag = "" end if form == "-" then table.insert(links, m_links.full_link({ term = nil, alt = '-', lang = lang, sc = sc_cache.sc })) else -- strip accent before reverse tr for non-Deva scripts local reverse_trd = (sc_cache.scCode == "Deva" and sc_cache.reverse_tr(form)) or sc_cache.reverse_tr(gsub(form, accent, "")) table.insert(links, m_links.full_link({ term = reverse_trd, alt = reverse_trd .. form_note_tag .. extra_note_tag, tr = SLP_to_IAST.tr(form) .. form_note_tag .. extra_note_tag, lang = lang, sc = sc_cache.sc })) end end end return table.concat { '| ', table.concat(links, '<br>'), '\n' } end local function format_notes(args, data) local output = {} if #data.form_notes_out > 0 or #data.general_notes > 0 or #args.note > 0 then for i, form_note in ipairs(data.form_notes_out) do table.insert(output, '* ' .. to_super(i) .. form_note) end for _, general_note in ipairs(data.general_notes) do table.insert(output, '* ' .. general_note) end for _, note in ipairs(args.note) do table.insert(output, '* ' .. note) end return table.concat(output, '\n') .. '\n' else return '' end end local function make_table_noun(args, data, sc_cache) local output = { make_header(args, data, sc_cache) } for _, case in ipairs(cases) do local code, name = case[1], case[2] table.insert(output, '|-\n') table.insert(output, '! ' .. name .. '\n') if args.n:find('s') then table.insert(output, make_cell(args, data, code, 's', sc_cache)) end if args.n:find('d') then table.insert(output, make_cell(args, data, code, 'd', sc_cache)) end if args.n:find('p') then table.insert(output, make_cell(args, data, code, 'p', sc_cache)) end end table.insert(output, mw.getCurrentFrame():expandTemplate { title = 'inflection-table-bottom', args = { notes = format_notes(args, data) } }) if not args.nocat and #data.categories > 0 then table.insert(output, m_utils.format_categories(data.categories, lang)) end return table.concat(output) end local function get_sc_details(args) local sc, scCode if args.sc then sc = require("Module:scripts").getByCode(args.sc) scCode = args.sc else sc = lang:findBestScript(args.lemma) scCode = sc:getCode() if scCode == 'None' then sc = lang:findBestScript(PAGENAME) scCode = sc:getCode() if scCode == 'None' then return get_sc_details({sc = "Deva"}) end end end local tr, reverse_tr = sa_utils_translit.retrieve_tr_modules(scCode) return { tr = tr, reverse_tr = reverse_tr, sc = sc, scCode = scCode } end function export.show(frame) local params = { lemma = { default = PAGENAME }, decl = true, n = { default = 'sdp', set = {'s', 'd', 'p', 'sd', 'sp', 'dp', 'sdp'} }, sc = true, [1] = { alias_of = 'lemma' }, nom_s = true, nom_d = true, nom_p = true, acc_s = true, acc_d = true, acc_p = true, ins_s = true, ins_d = true, ins_p = true, dat_s = true, dat_d = true, dat_p = true, abl_s = true, abl_d = true, abl_p = true, gen_s = true, gen_d = true, gen_p = true, loc_s = true, loc_d = true, loc_p = true, voc_s = true, voc_d = true, voc_p = true, note = { list = true }, root = { type = 'boolean' }, vrki = { type = 'boolean' }, -- for 'vṛkī' declension pronominal = { type = 'boolean' }, -- use pronominal declension, e.g. for 'sarva' novedic = { default = false, type = "boolean" }, -- disable extra Vedic forms norigvedic = { default = false, type = "boolean" }, -- disable Rigvedic forms r_stem_a = true, at_nom_s = { type = 'boolean' }, ambig_final = true, -- for stems on -j, -ś or -h diaspirate = { type = 'boolean' }, -- for diaspirate roots like 'duh' participle = { type = 'boolean' }, contract = { type = 'boolean' }, han = { type = 'boolean' }, -- for root 'han' voc_svar = { type = 'boolean' }, -- to indicate that the vocative should have initial svarita adj = { type = 'boolean' }, -- internal argument for categorizing adjectives participle_n_nom_d = true, -- internal argument to pass on feminine as neuter nom.du. for participles participle_n_nom_d2 = true, nocat = true, } local data = { forms = {}, categories = {}, decl_type = nil, form_notes = {}, form_notes_out = {}, general_notes = {}, } local g = frame.args[1] if g == 'gneut' then -- no number spec for gender-neutral numerals params.n = nil end local args = m_para.process(frame:getParent().args, params) args.g = g if args.g == 'gneut' then args.n = 'p' -- plural number-only end if args.pronominal then args.root = false -- the pronominal endings override the usual declension pattern end local sc_cache = get_sc_details(args) args.lemma = sc_cache.tr(args.lemma) args.has_accent = match(args.lemma, accent) if args.has_accent and (match(args.lemma, "^[td][rv]y") or (match(args.lemma, "^ny") and not match(args.lemma, "^nya/$"))) then args.voc_svar = true end for decl, decl_data in pairs(sa_decl_data) do if decl_data.detect(args) then sa_decl_data[decl](args, data) break end end if data.decl_type == nil then error("No declension class could be detected. Please check the lemma form or specify the declension.") end return make_table_noun(args, data, sc_cache) end return export h7bem8ri1gqv5ni84mamk6q4fnscjq5 มอดูล:sa-decl/data 828 2331799 5724839 2026-06-16T04:22:06Z OctraBot 3198 สร้างหน้าด้วย "local decl_data = {} local sa_utils = require("Module:sa-utilities") local SLP_to_IAST = require("Module:sa-utilities/translit/SLP1-to-IAST") local IAST_to_SLP = require("Module:sa-utilities/translit/IAST-to-SLP1") local match = string.match -- sufficient for SLP1 local umatch = mw.ustring.match -- Make a detection function for ARGS that fetches the stem according to MATCH_RE (which is matched against -- args.lemma and should have the stem in the..." 5724839 Scribunto text/plain local decl_data = {} local sa_utils = require("Module:sa-utilities") local SLP_to_IAST = require("Module:sa-utilities/translit/SLP1-to-IAST") local IAST_to_SLP = require("Module:sa-utilities/translit/IAST-to-SLP1") local match = string.match -- sufficient for SLP1 local umatch = mw.ustring.match -- Make a detection function for ARGS that fetches the stem according to MATCH_RE (which is matched against -- args.lemma and should have the stem in the first capture). ADDL_CONDITION is an optional function of one -- argument (ARGS) that must return true for the detection to happen. local function make_detect(match_re, addl_condition) return function(args) if addl_condition and not addl_condition(args) then return false end local stem = match(args.lemma, match_re) if stem then args.stem = stem return true else return false end end end -- Construct all or part of a given noun's declension. Each of SG, DU and PL is a table, whose keys are -- as follows: -- -- n = nominative -- a = accusative -- v = vocative -- i = instrumental -- d = dative -- ab = ablative -- g = genitive -- l = locative -- -- The corresponding value is one of the following: -- 1. a "copy spec" such as "[ins]", meaning to copy from the instrumental of the same number; -- 2. a single string (specifying an ending); or -- 3. a list of specs, where a spec is either a string (an ending) or a table of the form -- {"ENDING", stem = "STEM", mono = TRUE/FALSE, note = "NOTE"}. The latter format lets you explicitly specify what -- the stem is, whether the form is monosyllabic, and what the footnote is. All named keys are optional. -- -- In forms 2 and 3, if the ending begins with +, the stem defaults to args.lemma; otherwise it defaults to args.stem. local function decline(args, data, sg, du, pl) local cases = {n="nom", a="acc", v="voc", i="ins", d="dat", ab="abl", g="gen", l="loc"} local function process_number(endings, tag) if not endings then return end for case, es in pairs(endings) do if type(es) == "string" and es:find("^%[") then -- copy from another case; skip and handle later else if type(es) == "string" then es = {es} end local forms = {} for i, e in ipairs(es) do local stem, mono, accent_override, note if type(e) == "table" then stem = e.stem mono = e.mono accent_override = e.accent_override note = e.note e = e[1] end -- reduce Vedic forms to zero in case of novedic parameter if args.novedic == true and note and (match(note, "[Vv]edic$") or umatch(note, "Br[aā]hma[nṇ]a")) then stem = ""; e = ""; note = "" elseif args.norigvedic == true and note and match(note, "Rigvedic$") then stem = ""; e = ""; note = "" else if e:find("^%+") then if stem then error("Internal error: Can't use + in an ending when stem is explicitly given") end e = e:gsub("^%+", "") stem = args.lemma elseif not stem then stem = args.stem end forms[i] = sa_utils.internal_sandhi({ stem = stem, ending = e, has_accent = args.has_accent, recessive = case == "v", no_syncope = no_syncope, mono = mono, root = root, ambig_final = args.ambig_final, diaspirate = args.diaspirate, accent_override = accent_override, han = args.han, stem_final_n = stem_final_n, voc_svar = args.voc_svar, }) if note and note~= "" then forms["note" .. i] = note end end end data.forms[cases[case] .. "_" .. tag] = forms end end -- Now handle cases copied from another. for case, es in pairs(endings) do if type(es) == "string" and es:find("^%[") then -- copy from another case; skip and handle later local other_case = es:match("^%[(.*)%]$") if not other_case then error("Internal error: Unrecognized copy case spec " .. es) end local other_slot = other_case .. "_" .. tag local value = data.forms[other_slot] if not value then error("Internal error: Slot '" .. other_slot .. "' to copy from is empty") end local this_slot = cases[case] .. "_" .. tag if data.forms[this_slot] then error("Internal error: A value already exists for slot '" .. this_slot .. "' when copying from '" .. other_slot .. "'") end data.forms[cases[case] .. "_" .. tag] = value end end end process_number(sg, "s") process_number(du, "d") process_number(pl, "p") end decl_data["numeral"] = { detect = make_detect("(.+)a/?[nz]?$", function(args) return args.g == "gneut" end) } setmetatable(decl_data["numeral"], { __call = function(self, args, data) local oxy = match(args.lemma, "(/?)[nz]?$") local acc = match(args.lemma, "(/?)[^/]*$") data.decl_type = "numeral" if match(args.lemma, "a/?z$") then -- ṣaṣ decline(args, data, {}, {}, { n="+", a="[nom]", v="[nom]", i="aqBi" .. oxy .. "s", d="aqBya" .. oxy .. "s", ab="[dat]", g="aRRA" .. oxy .. "m", l="awsu" .. oxy, }) else -- pañca(n), etc. decline(args, data, {}, {}, { n="a" .. oxy, a="[nom]", v="a", i={{"a" .. acc .. "Bis", accent_override = true}}, d={{"a" .. acc .. "Byas", accent_override = true}}, ab="[dat]", g={{"AnA" .. acc .. "m", accent_override = true}}, l={{"a" .. acc .. "su", accent_override = true}}, }) end -- no categorisation? end }) decl_data["a"] = { detect = make_detect("(.+)a" .. sa_utils.accent .. "?$", function(args) return args.g == "m" or args.g == "n" end) } setmetatable(decl_data["a"], { __call = function(self, args, data) local oxy = match(args.lemma, "(" .. sa_utils.accent .. "?)$") if args.pronominal then data.decl_type = "pronominal a-stem" else data.decl_type = "a-stem" end if args.g == "m" then decline(args, data, { n="a" .. oxy .. "s", a="a" .. oxy .. "m", v="a" }, { n={ "O" .. oxy, { "A" .. oxy, note = "Vedic" } }, v={ "O", { "A", note = "Vedic" } } }, { a="A" .. oxy .. "n", }) if args.pronominal then decline(args, data, {}, {}, { n="e" .. oxy, v="e" }) else decline(args, data, {}, {}, { n={"A" .. oxy .. "s", {"A" .. oxy .. "sas", note="Vedic"}}, v={"As", {"Asas", note="Vedic"}} }) end else decline(args, data, { n="a" .. oxy .. "m", a="[nom]", v="a" }, { n="e" .. oxy, v="e" }, { n={"A" .. oxy .. "ni", {"A" .. oxy, note="Vedic"}}, a="[nom]", v={"Ani", {"A", note="Vedic"}} }) end if args.pronominal then decline(args, data, { d="a" .. oxy .. "smE", ab="a" .. oxy .. "smAt", l="a" .. oxy .. "smin" }, {}, { g="e" .. oxy .. "zAm" }) else decline(args, data, { d="A" .. oxy .. "ya", ab="A" .. oxy .. "t", l="e" .. oxy }, {}, { g="A" .. oxy .. "nAm" }) end decline(args, data, { -- For nouns on -tva(na), RV has only three instr.sg. with -ena (1.110.4, 8.18.13, 10.37.9); see Lanman p.335f. for forms on -ā. -- This avoidance is phonetically perfectly understandable for -tvanā instead of -tvanena, and with abstract nouns like this -- (predominantly used in the singular), there wouldn't be much cause for confusion with the nom./acc. plural. -- (detection of oxytone accent to avoid gerundives on -tva) i= match(args.lemma, "tva?n?a/$") and {"e" .. oxy .. "na", {"A" .. oxy, note = "Vedic"}} or "e" .. oxy .. "na", g="a" .. oxy .. "sya" }, { a="[nom]", i="A" .. oxy .. "ByAm", d="[ins]", ab="[ins]", -- see Wackernagel III, p.98-99, §48a g= match(args.stem, ".y$") and {"a" .. oxy .. "yos", {"o" .. oxy .. "s", note = "Vedic"}} or "a" .. oxy .. "yos", l="[gen]" }, { i={ "E" .. oxy .. "s", { "e" .. oxy .. "Bis", note = "Vedic" } }, d="e" .. oxy .. "Byas", ab="[dat]", l="e" .. oxy .. "zu" }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit a-stem adjectives") else table.insert(data.categories, "Sanskrit a-stem nouns") end end }) decl_data["iu"] = { detect = make_detect("(.+)[iu]" .. sa_utils.accent .. "?$") } setmetatable(decl_data["iu"], { __call = function(self, args, data) local vowel, oxy = match(args.lemma, "([iu])(" .. sa_utils.accent .. "?)$") data.decl_type = vowel .. "-stem" if match(args.lemma, "[sz]a/?Ki/$") and not (args.decl and match(args.decl, "i")) then -- in classical possibly regular in compounds (see Wackernagel vol.III p.141), for which use 'decl=i' decline(args, data, { n="A" .. oxy, a="A" .. oxy .. "yam", i={{stem = args.stem .. vowel, "A" .. oxy }}, d={{stem = args.stem .. vowel, "e" .. oxy }}, ab={{stem = args.stem .. vowel, "u" .. oxy .. "r" }}, l={{stem = args.stem .. vowel, "O" .. oxy }}, -- Wackernagel suggests older *sákhayi (ibid.) v="e", }, { n={"A" .. oxy .. "yO", {"A" .. oxy .. "yA", note = "Vedic"}}, v={"A" .. oxy .. "yO", {"A" .. oxy .. "yA", note = "Vedic"}}, g={{stem = args.stem .. vowel, "o" .. oxy .. "s" }}, }, { n="A" .. oxy .. "yas", v="Ayas", a="I" .. oxy .. "n", }) elseif args.g == "m" then if vowel == "i" then decline(args, data, { d={{stem = args.stem .. "a" .. oxy .. "y", "e" }}, l={ "O" .. oxy, { "A" .. oxy, note = "Vedic"}}, -- Whitney §336f }, {}, {}) elseif match(args.stem, sa_utils.consonant .. sa_utils.consonant .. "$") then -- the dative ending -ve (vs. -ave) does not occur if the stem has two consonants before -u decline(args, data, { d={{stem = args.stem .. "a" .. oxy .. "v", "e" }}, l="O" .. oxy, }, {}, {}) else decline(args, data, { d={{stem = args.stem .. "a" .. oxy .. "v", "e" }, {stem = args.stem .. "v", "e" .. oxy, note = "Vedic"}}, l="O" .. oxy, }, {}, {}) end if match(args.stem, sa_utils.consonant .. sa_utils.consonant .. "$") then decline(args, data, { ab={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "s"}}, }, {}, {}) else decline(args, data, { ab={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "s"}, {stem = args.stem .. vowel, "a" .. oxy .. "s", note = "Vedic"}}, }, {}, {}) end decline(args, data, { n="+s", a="+m", i={ "+nA", {stem = args.stem .. vowel, "A" .. oxy, note = "Vedic" } }, v={{stem= args.stem .. sa_utils.up_one_grade[vowel], ""}}, }, { n={{stem = args.stem .. sa_utils.lengthen[vowel..oxy], ""}}, v={{stem = args.stem .. sa_utils.lengthen[vowel], ""}}, g={{stem = args.stem .. vowel, "o" .. oxy .. "s"}}, }, { n={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "as"}}, a={{stem = args.stem ..sa_utils.lengthen[vowel..oxy], "n"}}, v={{stem = args.stem .. sa_utils.up_one_grade[vowel], "as"}}, }) elseif args.g == "f" then if vowel == "i" then decline(args, data, { i={{stem = args.stem .. vowel, "A" .. oxy}, {"I" .. oxy, note = "Vedic"}}, -- Whitney §336c l={ "O" .. oxy, {stem = args.stem .. vowel, "A" .. oxy .. "m" }, { "A" .. oxy, note = "Vedic"} }, }, {}, {}) else decline(args, data, { i={{stem = args.stem .. vowel, "A" .. oxy }}, l={ "O" .. oxy, {stem = args.stem .. vowel, "A" .. oxy .. "m" } }, }, {}, {}) end decline(args, data, { n="+s", a="+m", -- the Rigvedic dat.sg. on -ī (mostly ūtī́) seems too rare to extrapolate to every stem (see also Macdonell p.282) d={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "e"}, {stem = args.stem .. vowel, "E" .. oxy } }, ab={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "s"}, {stem = args.stem .. vowel, "A" .. oxy .. "s" }, {stem = args.stem .. vowel, "E" .. oxy, note = "Brāhmaṇas"} }, v=sa_utils.up_one_grade[vowel], }, { n=sa_utils.lengthen[vowel..oxy], v=sa_utils.lengthen[vowel], g={{stem = args.stem .. vowel, "o" .. oxy .. "s"}}, }, { n={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "as"}}, a=sa_utils.lengthen[vowel..oxy] .. "s", v={{stem = args.stem .. sa_utils.up_one_grade[vowel], "as"}}, }) else -- neuter if args.adj == true then -- for difference with nouns see Whitney §344 if vowel == "i" then decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "y", "e"}}, ab={ "+nas", {stem = args.stem .. "e" .. oxy, "s"}}, l={ "+ni", "O" .. oxy, {"A" .. oxy, note = "Vedic"}}, -- Whitney §336f + §340f }, {}, {}) elseif match(args.stem, sa_utils.consonant .. sa_utils.consonant .. "$") then -- the dative ending -ve (vs. -ave) does not occur if the stem has two consonants before -u; similar for abl./gen. -vas (vs. -os) decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "v", "e"}}, ab={ "+nas", {stem = args.stem .. "o" .. oxy, "s"}}, l={ "+ni", "O" .. oxy}, }, {}, {}) else decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "v", "e"}, {stem = args.stem .. "v", "e" .. oxy, note = "Vedic"}}, ab={ "+nas", {stem = args.stem .. "o" .. oxy, "s"}, {stem = args.stem .. vowel, "a" .. oxy .. "s", note = "Vedic"}}, l={ "+ni", "O" .. oxy}, }, {}, {}) end decline(args, data, {}, { g={ "+nos", {stem = args.stem .. vowel, "o" .. oxy .. "s" }}, }, {}) else -- nouns if vowel == "i" then decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "y", "e", note = "Vedic" }}, ab={ "+nas", {stem = args.stem .. "e" .. oxy, "s", note = "Vedic"}}, l={ "+ni", {"O" .. oxy, note = "Vedic"}, {"A" .. oxy, note = "Vedic"}}, -- Whitney §336f + §340f }, {}, {}) elseif match(args.stem, sa_utils.consonant .. sa_utils.consonant .. "$") then -- the dative ending -ve (vs. -ave) does not occur if the stem has two consonants before -u; similar for abl./gen. -vas (vs. -os) decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "v", "e", note = "Vedic" }}, ab={ "+nas", {stem = args.stem .. "o" .. oxy, "s", note = "Vedic"}}, l={ "+ni", {"O" .. oxy, note = "Vedic"}}, }, {}, {}) else decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "v", "e", note = "Vedic" }, {stem = args.stem .. "v", "e" .. oxy, note = "Vedic"}}, ab={ "+nas", {stem = args.stem .. "o" .. oxy, "s", note = "Vedic"}, {stem = args.stem .. vowel, "a" .. oxy .. "s", note = "Vedic"}}, l={ "+ni", {"O" .. oxy, note = "Vedic"}}, }, {}, {}) end decline(args, data, {}, { g={ "+nos", {stem = args.stem .. vowel, "o" .. oxy .. "s", note = "Vedic" }}, }, {}) end decline(args, data, { n="+", a="[nom]", i={ "+nA", {stem = args.stem .. vowel, "A" .. oxy, note = "Vedic" }}, v={ "+", {stem= args.stem .. sa_utils.up_one_grade[vowel], ""}}, }, { n={ "+nI", {stem = args.stem .. vowel, "I" .. oxy, note = "Vedic" }}, v={ "+nI", {stem = args.stem .. vowel, "I", note = "Vedic" }}, }, { n={{ stem = args.stem .. sa_utils.lengthen[vowel .. oxy], "ni" }, { "+", note = "Vedic"}, { stem = args.stem .. sa_utils.lengthen[vowel..oxy], "", note = "Vedic"}}, a="[nom]", v={{ stem = args.stem .. sa_utils.lengthen[vowel], "ni" }, { "+", note = "Vedic"}, { stem = args.stem .. sa_utils.lengthen[vowel], "", note = "Vedic"}}, }) end decline(args, data, { g="[abl]", }, { a="[nom]", i="+ByAm", d="[ins]", ab="[ins]", l="[gen]", }, { i="+Bis", d="+Byas", ab="[dat]", g={{ stem = args.stem .. sa_utils.lengthen[vowel], "nA" .. (oxy ~= "" and "/" or "") .. "m"}}, l="+su", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit " .. vowel .. "-stem adjectives") else table.insert(data.categories, "Sanskrit " .. vowel .. "-stem nouns") end end }) decl_data["A"] = { detect = function(args) if make_detect("(.+)A" .. sa_utils.accent .. "?$")(args) then args.true_mono = sa_utils.is_monosyllabic(args.lemma) return true else return false end end } setmetatable(decl_data["A"], { __call = function(self, args, data) local oxy = match(args.lemma, "(" .. sa_utils.accent .. "?)$") if args.g == "n" then -- It seems better not to base a neuter declension on the masculine nominatives on -ās accompanying neuter nouns. -- See Whitney §367b and Wackernagel vol.III p.129 error("The neuter of radical stems in -ā ends in -a.") end if args.pronominal then data.decl_type = "pronominal ā-stem" else data.decl_type = "ā-stem" end if not (args.root or args.true_mono) or (args.true_mono and args.root == false) then -- derived stem if args.g == "m" then error("Add 'root=1' in case this is a root noun or adjective.") else table.insert(data.categories, "Sanskrit ā-stem nouns") end if args.pronominal then decline(args, data, { d="a" .. oxy .. "syE", ab={"a" .. oxy .. "syAs", {"a" .. oxy .. "syE", note = "Brāhmaṇas"}}, l="a" .. oxy .. "syAm" }, {}, { g="+sAm" }) else decline(args, data, { d="+yE", ab={"+yAs", {"+yE", note = "Brāhmaṇas"}}, l="+yAm" }, {}, { g="+nAm" }) end decline(args, data, { n="+", i={ "a" .. oxy .. "yA", { "+", note = "Vedic" } }, v="e", }, { n="e" .. oxy, g="a" .. oxy .. "yos", v="e", }, { a="+s", }) else if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit root-stem adjectives on -ā") else table.insert(data.categories, "Sanskrit root-stem nouns on -ā") end if args.g == "m" then data.general_notes = {"In practice, this declension only occurs in early Vedic<br> and is later replaced by a-stem declension."} else data.general_notes = {"In practice, this declension only occurs in early Vedic<br> and is later replaced by regular ā-stem declension."} end decline(args, data, { n="+s", i="+", d="e" .. oxy, ab="a" .. oxy .. "s", l="i" .. oxy, v="+s", }, { n={ "O" .. oxy, { "A" .. oxy, note = "Vedic" } }, g="o" .. oxy .. "s", v={ "O", { "A", note = "Vedic" } } }, { a={ "+s", { "a" .. oxy .. "s", note = "Perhaps" } }, g={ "+nAm", { "+Am", note = "Perhaps" } }, }) end decline(args, data, { a="+m", g="[abl]", }, { a="[nom]", i="+ByAm", d="[ins]", ab="[ins]", l="[gen]", }, { n="+s", i="+Bis", d="+Byas", ab="[dat]", l="+su", v="+s", }) end }) decl_data["IU"] = { detect = function(args) if make_detect("(.+)[IU]" .. sa_utils.accent .. "?$")(args) then args.true_mono = sa_utils.is_monosyllabic(args.lemma) return true else return false end end } setmetatable(decl_data["IU"], { __call = function(self, args, data) local vowel, oxy = match(args.lemma, "([IU])(" .. sa_utils.accent .. "?)$") data.decl_type = SLP_to_IAST.tr(vowel) .. "-stem" if args.g == "n" then -- it seems better to mention the one or two Vedic forms that could be interpreted -- as coming from a neuter ī-stem (see Whitney §367b) separately error("The neuter of radical stems in -ī/ū ends in -i/u.") end if not (args.root or args.true_mono) or (args.true_mono and args.root == false) or args.han then -- derived stem if args.vrki then -- with original vṛkī-declension (Whitney §355 ff.), given as older forms of later classical declension if vowel == "U" then error() elseif args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit ī-stem adjectives with original vṛkī́-declension") else table.insert(data.categories, "Sanskrit ī-stem nouns with original vṛkī́-declension") end data.general_notes = {"This stem originally had ''vṛkī́''-declension."} decline(args, data, { n={"+", {"+s", note = "Vedic"}}, a={"+m", {"+am", note = "Vedic"}}, i={{stem = args.stem .. vowel, "A" .. oxy}, {"+A", note = "Vedic"}}, d={{stem = args.stem .. vowel, "E" .. oxy}, {"+e", note = "Vedic"}}, ab={{stem = args.stem .. vowel, "A" .. oxy .. "s"}, {"+as", note = "Vedic"}, {stem = args.stem .. vowel, "E" .. oxy, note = "Brāhmaṇas"}}, l={{stem = args.stem .. vowel, "A" .. oxy .. "m"}, {"+", note = "Vedic"}}, -- Wackernagel III, §86c, p.170 }, { n={"+O", {"+A", note = "Vedic"}}, v={"+O", {"+A", note = "Vedic"}}, g={{stem = args.stem .. vowel, "o" .. oxy .. "s"}, {"+os", note = "Vedic"}}, }, { n="+as", v="+as", a={"+s", {"+as", note = "Vedic"}}, g="+nAm", }) elseif vowel == "I" then -- devī-declension if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit ī-stem adjectives") else table.insert(data.categories, "Sanskrit ī-stem nouns") end decline(args,data, { n="+", a="+m", i={{stem = args.stem .. vowel, "A" .. oxy}}, d={{stem = args.stem .. vowel, "E" .. oxy}}, ab={{stem = args.stem .. vowel, "A" .. oxy .. "s"}, {stem = args.stem .. vowel, "E" .. oxy, note = "Brāhmaṇas"}}, l={{stem = args.stem .. vowel, "A" .. oxy .. "m"}}, }, { n={ "+O", { "+", note = "Vedic" } }, v={ "+O", { "+", note = "Vedic" } }, g={{stem = args.stem .. vowel, "o" .. oxy .. "s"}}, }, { n={ "+as", { "+s", note = "Vedic" } }, v={ "+as", { "+s", note = "Vedic" } }, a="+s", g= oxy == "" and "+nAm" or {"+nAm", { stem = args.stem .. vowel, "nA" .. oxy .. "m", note = "Rigvedic"} }, -- Whitney §319a }) else -- ū-stems, with Whitney's declension at §356a given as older forms of §364, see Wackernagel vol.III p.189 if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit ū-stem adjectives") -- probably only bahuvrihis like 'sarvatanū' else table.insert(data.categories, "Sanskrit ū-stem nouns") end if match(args.stem, "y$") or match(args.stem, "agr$") or match(args.stem, "kadr$") or match(args.stem, "bIBats") then -- with Vedic -úv-, see Macdonell p.290 §384a decline(args,data, { a={"+m", {"+am", note = "Vedic", mono = true}}, i={{stem = args.stem .. vowel, "A" .. oxy}, {"+A", note = "Vedic", mono = true}}, d={{stem = args.stem .. vowel, "E" .. oxy}, {"+e", note = "Vedic", mono = true}}, ab={{stem = args.stem .. vowel, "A" .. oxy .. "s"}, {"+as", note = "Vedic", mono = true}, {stem = args.stem .. vowel, "E" .. oxy, note = "Brāhmaṇas"}}, l={{stem = args.stem .. vowel, "A" .. oxy .. "m"}, {"+i", note = "Vedic", mono = true}, {"+", note = "Vedic"}}, }, { n={"+O", {"+A", note = "Vedic", mono = true}}, v={"+O", {"+A", note = "Vedic", mono = true}}, g={{stem = args.stem .. vowel, "o" .. oxy .. "s"}, {"+os", note = "Vedic", mono = true}}, }, { n={"+as", {"+as", note = "Vedic", mono = true}}, v={"+as", {"+as", note = "Vedic", mono = true}}, a={"+s", {"+as", note = "Vedic", mono = true}}, }) else decline(args,data, { a={"+m", {"+am", note = "Vedic"}}, i= oxy == "" and "+A" or {{stem = args.stem .. vowel, "A" .. oxy}, {"+A", note = "Vedic"}}, d={{stem = args.stem .. vowel, "E" .. oxy}, {"+e", note = "Vedic"}}, ab={{stem = args.stem .. vowel, "A" .. oxy .. "s"}, {"+as", note = "Vedic"}, {stem = args.stem .. vowel, "E" .. oxy, note = "Brāhmaṇas"}}, l={{stem = args.stem .. vowel, "A" .. oxy .. "m"}, {"+i", note = "Vedic"}, {"+", note = "Vedic"}}, -- Wackernagel III, §97b, p.188 }, { n={"+O", {"+A", note = "Vedic"}}, -- duals on -ū for ū-stems do not occur v={"+O", {"+A", note = "Vedic"}}, g= oxy == "" and "+os" or {{stem = args.stem .. vowel, "o" .. oxy .. "s"}, {"+os", note = "Vedic"}}, }, { n="+as", -- RV 4.41.8 has 'yuvayū́s', but it seems better to simply give this at the relevant lemma v="+as", a={"+s", {"+as", note = "Vedic"}}, }) end decline(args,data, { n="+s", }, {}, { g="+nAm", }) end decline(args, data, { g="[abl]", v=sa_utils.shorten[vowel], }, { a="[nom]", i="+ByAm", d="[ins]", ab="[ins]", l="[gen]", }, { i="+Bis", d="+Byas", ab="[dat]", l="+su", }) else if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit root-stem adjectives on -" .. SLP_to_IAST.tr(vowel)) else table.insert(data.categories, "Sanskrit root-stem nouns on -" .. SLP_to_IAST.tr(vowel)) end if args.true_mono then -- rout nouns, Whitney §351 no_syncope = true if args.g == "f" then -- see Wackernagel vol.III p.181 decline(args, data, { d={{ "+e" .. oxy, mono = true }, { "+E" .. oxy, mono = true, note = "Later Sanskrit" } }, ab={{ "+a" .. oxy .. "s", mono = true }, { "+A" .. oxy .. "s", mono = true, note = "Later Sanskrit" } }, l={{ "+i" .. oxy, mono = true }, { "+A" .. oxy .. "m", mono = true, note = "Later Sanskrit" } }, }) else decline(args, data, { d={{ "+e" .. oxy, mono = true } }, ab={{ "+a" .. oxy .. "s", mono = true } }, l={{ "+i" .. oxy, mono = true } }, }) end decline(args, data, { i={{ "+A" .. oxy, mono = true}}, }, { i={{"+ByA" .. oxy .. "m", mono = true}}, g={{"+o" .. oxy .. "s", mono = true}}, }, { i={{"+Bi" .. oxy .. "s", mono = true}}, d={{"+Bya" .. oxy .. "s", mono = true}}, g={{"+A" .. oxy .. "m", mono = true }, { "+nA" .. oxy .. "m", mono = true } }, l={{"+su" .. oxy, mono = true}}, }) else -- root terms in compounds, Whitney §352; I'd suggest to give two tables when both contracted and non-contracted forms occur -- see Wackernagel III §91a (p.179) for ī, and §100a + §100eα (p.192-3) for ū; Macdonell: p.268 + 288 -- Taking as default that ū-stems with accent (rule of thumb for Vedic terms) are not contracted. To be overrided with 'contract=1' if args.contract == false or (args.contract ~= true and (match(args.stem, sa_utils.consonant .. sa_utils.consonant .. "$") or vowel == "U" and (match(args.lemma, sa_utils.accent) or match(args.stem, "B$") or match(args.stem, "jo/?g$")) or vowel == "I" and (match(args.stem, "avadyaB$") or (match(args.stem, "D$") and match(args.stem, sa_utils.accent))))) then no_syncope = true -- -Ciy-/-Cuv- when followed by vowel decline(args, data, { l= args.g == "f" and {"+i", {"+Am", note = "Later Sanskrit"}} or "+i", }) else decline(args, data, { l= args.g == "f" and {{ stem = args.stem .. sa_utils.vowel_to_cons[vowel], "i" .. (oxy ~= "" and "\\" or "") }, {"+Am", note = "Later Sanskrit"}} or {{ stem = args.stem .. sa_utils.vowel_to_cons[vowel], "i" .. (oxy ~= "" and "\\" or "") }}, }) end if args.g == "f" then -- see Wackernagel vol.III p.181 decline(args, data, { d={ "+e", { "+E", note = "Later Sanskrit" } }, ab={ "+as", { "+As", note = "Later Sanskrit" } }, }) else decline(args, data, { d= "+e", ab= "+as", }) end decline(args, data, { i= "+A", }, { i="+ByAm", g= "+os", }, { i="+Bis", d="+Byas", g= {"+Am", "+nAm"}, l="+su", }) end decline(args, data, { n= "+s", v= "+s", a= "+am", g="[abl]", }, { n= { "+O", { "+A", note = "Vedic"}}, v= { "+O", { "+A", note = "Vedic"}}, a="[nom]", d="[ins]", ab="[ins]", l="[gen]", }, { n= "+as", v= "+as", a="[nom]", ab="[dat]", }) end end }) decl_data["f"] = { -- for nouns in ṛ detect = make_detect("(.+)f" .. sa_utils.accent .. "?$") } setmetatable(decl_data["f"], { -- for nouns in ṛ __call = function(self, args, data) if args.g == "f" and args.r_stem_a == "ā" and match(args.stem, "t$") and not match(args.stem, "^s?t$") then error("The feminine of adjectives in -tṛ ends in -trī.") end local oxy = match(args.lemma, "(" .. sa_utils.accent .. "?)$") data.decl_type = SLP_to_IAST.tr("f") .. "-stem" if args.g == "n" then decline(args, data, { -- for neuter -úr, see Wackernagel, III, p.204, §107b (denies 'sthātar' and 'sthātṝ́n' are neuter sg.) -- all cases of -tári given as nom./acc.n.sg. by Macdonell (p.243) are translated as locatives by Jamison & Brereton n={"f" .. oxy, {"u" .. oxy .. "r", note = "Rigvedic"}}, a="[nom]", i={"+nA", "rA" .. oxy}, d={"+ne", "re" .. oxy}, ab={"+nas", "u" .. oxy .. "r"}, l={"+ni", "a" .. oxy .. "ri"}, v={ "f", "ar" }, }, { n="+nI", g={"+nos", "ro" .. oxy .. "s"}, v="+nI", }, { n="F" .. oxy .. "ni", a="[nom]", v="Fni", }) else if not args.r_stem_a then error('Please specify the length of the accusative singular vowel with r_stem_a = "a" or "ā".') else args.r_stem_a = IAST_to_SLP.tr(args.r_stem_a) end decline(args, data, { n="A" .. oxy, a=args.r_stem_a .. oxy .. "ram", i="rA" .. oxy, d="re" .. oxy, ab="u" .. oxy .. "r", l="a" .. oxy .. "ri", v="ar", }, { n={ args.r_stem_a .. oxy .. "rO", { args.r_stem_a .. oxy .. "rA", note = "Vedic" } }, g="ro" .. oxy .. "s", v={ args.r_stem_a .. "rO", { args.r_stem_a .. "rA", note = "Vedic" } }, }, { n=args.r_stem_a .. oxy .. "ras", a=args.g == "f" and "F" .. oxy .. "s" or "F" .. oxy .. "n", v=args.r_stem_a .. "ras", }) end decline(args, data, { g="[abl]", }, { a="[nom]", i="+ByAm", d="[ins]", ab="[ins]", l="[gen]", }, { i="+Bis", d="+Byas", ab="[dat]", g={{stem = args.stem .. "F", "nA" .. (oxy ~= "" and "/" or "") .. "m"}}, l="+su", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit " .. SLP_to_IAST.tr("f") .. "-stem adjectives") else table.insert(data.categories, "Sanskrit " .. SLP_to_IAST.tr("f") .. "-stem nouns") end end }) decl_data["root"] = { -- for root nouns ending on -k/g/gh/c/j/ṭ/ḍ/th/d/dh/p/bh/m/r/ṣ/ś/h + -āt/it/ut/ṛt/akt + -ās/os detect = function(args) -- capture of vowel needed for accent if (make_detect("(.*)" .. sa_utils.vowel .. sa_utils.accent .. "?r?[kgGcjwqTdDpBmrzSh]$")(args) or (make_detect("(.*)[Aiuf]" .. sa_utils.accent .. "?t$")(args) and not args.participle == true) or make_detect("(.*)a" .. sa_utils.accent .. "?kt$")(args) -- nákt- or make_detect("(.*)[Ao]" .. sa_utils.accent .. "?s$")(args) or (args.root == true and make_detect("(.*)[ai]" .. sa_utils.accent .. "?[ts]$")(args) )) -- + āśis + numerals like triṃśát and args.g ~= "gneut" then args.true_mono = sa_utils.is_monosyllabic(args.lemma) return true else return false end end } setmetatable(decl_data["root"], { __call = function(self, args, data) local vowel, oxy, extra, cons = match(args.lemma, "(" .. sa_utils.vowel .. ")(" .. sa_utils.accent .. "?)(r?)([kgGcjwqtTdDpBmrzShs]t?)$") if match(cons, "[jSh]") ~= nil and not args.ambig_final then error('Please specify the final consonant in the nominative singular with ambig_final = "k" or "ṭ".') elseif args.ambig_final then -- also for cases like sarágh > saráṭ or potentially anuṣṭúbh > anuṣṭúk args.ambig_final = IAST_to_SLP.tr(args.ambig_final) end local nasal = cons:gsub(".", sa_utils.homorganic_nasal) data.decl_type = "root-stem" root = true -- neuter nom. plural (Whitney §389c, although saying that these forms with infixed nasal are not attested for nouns) if args.g == "n" then if match(cons, "[mr]") == nil and extra == "" then decline(args, data, nil, nil, { n= {{stem = args.stem .. vowel .. oxy .. nasal .. cons, "i"}}, v= {{stem = args.stem .. vowel .. nasal .. cons, "i"}}, }) else decline(args, data, nil, nil, { n= "+i", v= "+i", }) end end if args.true_mono then -- monosyllabic stem if args.g ~= "n" then decline(args, data, { -- nom.sg. -s is an 'invisible' (historical) ending to provoke vowel lengthening in -ir/-ur stems, see Whitney §392 -- this ending should be removed by internal_sandhi at an early stage n="+s", a="+am", v="+s", }, { n={ "+O", { "+A", note = "Vedic" } }, v={ "+O", { "+A", note = "Vedic" } }, }, { n="+as", v="+as", }) else decline(args, data, { n= "+", a="[nom]", v= "+" }, { n= {{"+I" .. oxy, mono = true }}, v= "+I" }, { }) end decline(args, data, { i= {{ "+A" .. oxy, mono = true }}, d= {{ "+e" .. oxy, mono = true }}, ab= {{ "+a" .. oxy .. "s", mono = true }}, g="[abl]", l= {{ "+i" .. oxy, mono = true }}, }, { a= "[nom]", i= {{ "+ByA" .. oxy .. "m", mono = true }}, d="[ins]", ab="[ins]", g= {{ "+o" .. oxy .. "s", mono = true }}, l="[gen]", }, { a= "[nom]", i= {{ "+Bi" .. oxy .. "s", mono = true }}, d= {{ "+Bya" .. oxy .. "s", mono = true }}, ab="[dat]", g= {{ "+A" .. oxy .. "m", mono = true }}, l= {{ "+su" .. oxy, mono = true }}, }) else -- polysyllabic stem, no accent on ending if args.g ~= "n" then decline(args, data, { n="+s", a="+am", v="+s", }, { n={ "+O", { "+A", note = "Vedic" } }, v={ "+O", { "+A", note = "Vedic" } }, }, { n="+as", v="+as" }) else decline(args, data, { n= "+", a="[nom]", v= "+" }, { n= "+I", v= "+I", }, { }) end decline(args, data, { i="+A", d="+e", ab="+as", g="[abl]", l="+i", }, { a= "[nom]", i= "+ByAm", d="[ins]", ab="[ins]", g="+os", l="[gen]", }, { a= "[nom]", i= "+Bis", d= "+Byas", ab="[dat]", g= "+Am", l= "+su", }) end if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit consonantal root-stem adjectives") else table.insert(data.categories, "Sanskrit consonantal root-stem nouns") end end }) decl_data["[aiu]s"] = { detect = make_detect("(.+)[aiu]" .. sa_utils.accent .. "?s$") } setmetatable(decl_data["[aiu]s"], { __call = function(self, args, data) local vowel, oxy = match(args.lemma, "([aiu])(" .. sa_utils.accent .. "?)s$") data.decl_type = vowel .. "s-stem" if (match(args.stem, "[^aAiK/\\]"..sa_utils.accent.."?y$") or match (args.stem, "jyA/?y$")) and vowel == "a" then -- comparative comp = "1" else comp = "0" end if comp == "1" and args.g ~= "n" then if args.g == "m" then decline(args, data, { n="An", a="AMsam", v={"an", { "+", note = "Rigvedic"}}, }, { n={"AMsO", {"AMsA", note = "Vedic"}}, v={"AMsO", {"AMsA", note = "Vedic"}}, }, { n="AMsas", a="+as", v="AMsas", }) else error("The feminine of comparatives in -yas ends in -yasī.") end elseif args.g == "m" or args.g == "f" then if vowel == "a" then decline(args, data, { n="A" .. oxy .. "s", a={ "+am", { "A" .. oxy .. "m", note = "Vedic" } }, v="+", }, nil, { n={ "+as", { "A" .. oxy .. "s", note = "Vedic" } }, v={ "+as", { "A" .. oxy .. "s", note = "Vedic" } }, }) else decline(args, data, { n="+", a="+am", v={ "+",{ sa_utils.up_one_grade[vowel], note = "Vedic" } }, -- Wackernagel vol.III, p.292, §152c }, nil, { n="+as", v="+as", }) end decline(args, data, nil, { n={ "+O", { "+A", note = "Vedic" } }, v={ "+O", { "+A", note = "Vedic" } }, }, { a="[nom]", }) else if args.adj == true and vowel == "a" and comp == "0" and (match(args.stem, sa_utils.vowel .. ".*" .. sa_utils.vowel) or match(args.stem, "^sv")) then -- compounds on -as, see Macdonell, p.226 + Whitney §418 a decline(args, data, { n={ "+", { "A" .. oxy .. "s", note = "Vedic"} }, }, {}, {}) else decline(args, data, { n="+", }, {}, {}) end decline(args, data, { a="[nom]", v="+", }, { n="+I", v="+I", }, { n={{stem = args.stem .. sa_utils.lengthen[vowel] .. oxy .. "Ms", "i"}}, v={{stem = args.stem .. sa_utils.lengthen[vowel] .. "Ms", "i"}}, a="[nom]", }) end decline(args, data, { i="+A", d="+e", ab="+as", g="[abl]", l="+i", }, { a="[nom]", i= "+ByAm", d="[ins]", ab="[ins]", g="+os", l="[gen]", }, { i= "+Bis", d= "+Byas", ab="[dat]", g="+Am", l= "+su", }) if comp == "1" then table.insert(data.categories, "Sanskrit yas-stem adjectives") elseif args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit " .. vowel .. "s-stem adjectives") else table.insert(data.categories, "Sanskrit " .. vowel .. "s-stem nouns") end end }) decl_data["an"] = { detect = make_detect("(.+)a" .. sa_utils.accent .. "?n$", function(args) return args.g ~= "gneut" end) -- not gender-neutral numerals } setmetatable(decl_data["an"], { __call = function(self, args, data) local oxy = match(args.lemma, "a(" .. sa_utils.accent .. "?)n$") data.decl_type = "an-stem" stem_final_n = true if args.g == "n" then -- Wackernagel vol.III p.238 presupposes neuter pl. '-hāni' for '-han' decline(args, data, { n=args.han == true and {"a" .. oxy, {"a" .. oxy .. "m", note = "Vedic"}} or "a" .. oxy, a="[nom]", v={ "+", "a" }, }, {}, { n={ "A" .. oxy .. "ni", {"a" .. oxy, note = "Vedic"}, {"A" .. oxy, note = "Vedic"}}, a="[nom]", v={ "Ani", {"a", note = "Vedic"}, {"A", note = "Vedic"}}, }) if not match(args.stem, sa_utils.consonant .. "[NYRnmyrlv]$") or args.contract then decline(args, data, nil, { n={ "nI" .. oxy, "+I" }, v={ "nI", "+I" }, }, {}) else decline(args, data, nil, { n="+I", v="+I", }, {}) end else decline(args, data, { n="A" .. oxy, v="+", }) if args.han or match(args.stem, "pUz$") or match(args.stem, "aryam$") then decline(args, data, { a="a" .. oxy .. "nam", }, { n={ "a" .. oxy .. "nO", { "a" .. oxy .. "nA", note = "Vedic" } }, v={ "anO", { "anA", note = "Vedic" } }, }, { n="a" .. oxy .. "nas", v="anas", a=args.han == true and { "na" .. oxy .. "s", "a" .. oxy .. "nas"} or "na" .. oxy .. "s", }) elseif match(args.stem, "ukz$") or match(args.stem, "yo/?z$") or match(args.stem, "vf/?z$") or match(args.stem, "^tm$") then -- Whitney §426b; Wackernagel vol.III p.267 decline(args, data, { a={"A" .. oxy .. "nam", {"a" .. oxy .. "nam", note = "Vedic" }}, }, { n={ "A" .. oxy .. "nO", { "a" .. oxy .. "nO", note = "Vedic" }, { "a" .. oxy .. "nA", note = "Vedic" } }, v={ "AnO", { "anO", note = "Vedic" }, { "anA", note = "Vedic" } }, }, { n={"A" .. oxy .. "nas", {"a" .. oxy .. "nas", note = "Vedic" }}, v={"Anas", {"anas", note = "Vedic" }}, a="na" .. oxy .. "s", }) else decline(args, data, { a="A" .. oxy .. "nam", }, { n={ "A" .. oxy .. "nO", { "A" .. oxy .. "nA", note = "Vedic" } }, v={ "AnO", { "AnA", note = "Vedic" } }, }, { n="A" .. oxy .. "nas", v="Anas", a="na" .. oxy .. "s", }) end end if not match(args.stem, sa_utils.consonant .. "[NYRnmyrlv]$") or args.contract then decline(args, data, { i="nA" .. oxy, d="ne" .. oxy, ab="na" .. oxy .. "s", g="[abl]", l={ "ni" .. oxy, "+i", { "+" , note = "Vedic"} }, -- Whitney §425c for Vedic form }, { g="no" .. oxy .. "s", }, { g="nA" .. oxy .. "m", }) else decline(args, data, { i="+A", d="+e", ab="+as", g="[abl]", l= { "+i", { "+" , note = "Vedic"} }, -- Whitney §425c for Vedic form }, { g="+os", }, { g="+Am", }) end decline(args, data, nil, { a="[nom]", i="a" .. oxy .. "ByAm", d="[ins]", ab="[ins]", l="[gen]", }, { i="a" .. oxy .. "Bis", d="a" .. oxy .. "Byas", ab="[dat]", l="a" .. oxy .. "su", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit an-stem adjectives") else table.insert(data.categories, "Sanskrit an-stem nouns") end end }) decl_data["in"] = { detect = make_detect("(.+)i" .. sa_utils.accent .. "?n$", function(args) return args.g == "m" or args.g == "n" end) } setmetatable(decl_data["in"], { __call = function(self, args, data) local oxy = match(args.lemma, "i(" .. sa_utils.accent .. "?)n$") data.decl_type = "in-stem" stem_final_n = true if args.g ~= "n" then decline(args, data, { n="I" .. oxy, a="i" .. oxy .. "nam", v="+", }, { n={ "+O", { "+A", note = "Vedic" } }, v={ "+O", { "+A", note = "Vedic" } }, }, { n="+as", a="[nom]", v="+as", }) else decline(args, data, { n="i" .. oxy, a="[nom]", v={ "i", "+" }, }, { n="+I", v="+I", }, { n="I" .. oxy .. "ni", a="[nom]", v="Ini", }) end decline(args, data, { i="+A", d="+e", ab="+as", g="[abl]", l="+i", }, { a="[nom]", i="i" .. oxy .. "ByAm", d="[ins]", ab="[ins]", g="+os", l="[gen]", }, { i="i" .. oxy .. "Bis", d="i" .. oxy .. "Byas", ab="[dat]", g="+Am", l="i" .. oxy .. "zu", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit in-stem adjectives") else table.insert(data.categories, "Sanskrit in-stem nouns") end end }) decl_data["at"] = { detect = function(args) if (make_detect("(.+)a" .. sa_utils.accent .. "?t$")(args) or (make_detect("(.+)A" .. sa_utils.accent .. "?t$")(args) and args.participle == true)) -- participles like 'yā́t' and (args.g == "m" or args.g == "n") then return true else return false end end } setmetatable(decl_data["at"], { __call = function(self, args, data) local cons, vow, oxy = match(args.lemma, "([mv]?)([aA])(" .. sa_utils.accent .. "?)t$") -- for present participles if args.lemma:find("[vm]a/?t$") == nil or args.participle == true then data.decl_type = "at-stem" if args.at_nom_s == true then -- participles like 'júhvat' if args.g ~= "n" then decline(args, data, { n="a" .. oxy .. "t", a="a" .. oxy .. "tam", v="at", }, { n={ "a" .. oxy .. "tO", { "a" .. oxy .. "tA", note = "Vedic"} }, v={ "atO", { "atA", note = "Vedic"} }, }, { n="a" .. oxy .. "tas", a="a" .. oxy .. "tas", v="atas", }) else decline(args, data, { n="a" .. oxy .. "t", a="[nom]", v="at", }, { n="a" .. oxy .. "tI", v="atI", }, { n="a" .. oxy .. "ti", a="[nom]", v="ati", }) end decline(args, data, { i="+A", d="+e", ab="+as", l="+i", }, { g="+os", }, { g="+Am", }) else if args.g ~= "n" then decline(args, data, { n= vow .. oxy .. "n", a= vow .. oxy .. "ntam", v= vow .. "n", }, { n={ vow .. oxy .. "ntO", { vow .. oxy .. "ntA", note = "Vedic"} }, v={ vow .. "ntO", { vow .. "ntA", note = "Vedic"} }, }, { n= vow .. oxy .. "ntas", a= vow .. "ta" .. oxy .. "s", v= vow .. "ntas", }) else if not args.participle_n_nom_d and not args.nom_d then error('Please indicate nominative dual (identical to feminine stem) with nom_d') else if args.nom_d then local s = mw.text.split(args.nom_d, ",") args.participle_n_nom_d = s[1] args.participle_n_nom_d2 = s[2] end -- neuter nom.du. taken from feminine, see Whitney §443a (though maybe artificial: §447b) args.participle_n_nom_d = IAST_to_SLP.tr(args.participle_n_nom_d) if args.participle_n_nom_d2 then args.participle_n_nom_d2 = IAST_to_SLP.tr(args.participle_n_nom_d2) decline(args, data, {}, { n= {{stem = args.participle_n_nom_d, ""}, {stem = args.participle_n_nom_d2, ""}}, v= {{stem = args.participle_n_nom_d, ""}, {stem = args.participle_n_nom_d2, ""}}, }, {}) else decline(args, data, {}, { n= {{stem = args.participle_n_nom_d, ""}}, v= {{stem = args.participle_n_nom_d, ""}}, }, {}) end if vow == "a" then decline(args, data, {}, {}, { n= {"a" .. oxy .. "nti", {"A" .. oxy .. "nti", note = "Rigvedic"}}, -- see Wackernagel III p 262 a="[nom]", v= {"anti", {"Anti", note = "Rigvedic"}}, }) else decline(args, data, {}, {}, { n= vow .. oxy .. "nti", a="[nom]", v= vow .. "nti", }) end end decline(args, data, { n= vow .. oxy .. "t", a="[nom]", v= vow .. "t", }, {}, {}) end decline(args, data, { i= vow .. "tA" .. oxy, d= vow .. "te" .. oxy, ab= vow .. "ta" .. oxy .. "s", l= vow .. "ti" .. oxy, }, { g= vow .. "to" .. oxy .. "s", }, { g= vow .. "tA" .. oxy .. "m", }) end decline(args, data, { g="[abl]", }, { a="[nom]", i= vow .. oxy .. "dByAm", d="[ins]", ab="[ins]", l="[gen]", }, { i= vow .. oxy .. "dBis", d= vow .. oxy .. "dByas", ab="[dat]", l="+su", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit at-stem adjectives") else table.insert(data.categories, "Sanskrit at-stem nouns") end else -- for nouns suffixed with -vat/-mat data.decl_type = cons .. "at-stem" if args.g ~= "n" then decline(args, data, { n="A" .. oxy .. "n", a="a" .. oxy .. "ntam", v={ "an", { "as", note = "Rigvedic"} }, }, { n={ "a" .. oxy .. "ntO", { "a" .. oxy .. "ntA", note = "Vedic"} }, v={ "antO", { "antA", note = "Vedic"} }, }, { n="a" .. oxy .. "ntas", a="a" .. oxy .. "tas", v="antas", }) else decline(args, data, { n="a" .. oxy .. "t", a="[nom]", v="at", }, { n="+I", v="+I", }, { n={{"a" .. oxy .. "nti"}, {"A" .. oxy .. "nti", note = "Rigvedic"}}, -- see Wackernagel III p 258-9 a="[nom]", v={{"anti"}, {"Anti", note = "Rigvedic"}}, }) end decline(args, data, { i="+A", d="+e", ab="+as", g="[abl]", l="+i", }, { a="[nom]", i="a" .. oxy .. "dByAm", d="[ins]", ab="[ins]", g="+os", l="[gen]", }, { i="a" .. oxy .. "dBis", d="a" .. oxy .. "dByas", ab="[dat]", g="+Am", l="+su", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit " .. cons .. "at-stem adjectives") else table.insert(data.categories, "Sanskrit " .. cons .. "at-stem nouns") end end end }) decl_data["añc"] = { detect = make_detect("(.+[aA]" .. sa_utils.accent .. "?Yc)$", function(args) return args.g == "m" or args.g == "n" end) } setmetatable(decl_data["añc"], { __call = function(self, args, data) local cons, vowel, oxy = match(args.lemma, "([yv]?)([aA])(" .. sa_utils.accent .. "?)Yc$") data.decl_type = "añc-stem" -- make stem for 'middle' cases args.stem = args.stem:gsub("Yc$", "c") if args.g == "m" then decline(args, data, { n= "+", -- args.lemma a="+am", v= "+", }, { n={ "+O", { "+A", note = "Vedic" } }, v={ "+O", { "+A", note = "Vedic" } }, }, { n="+as", v="+as", }) else -- neuter decline(args, data, { n= "", -- args.stem v= "", a="[nom]" }, {}, { n="+i", v="+i", a="[nom]" }) end decline(args, data, {}, { i= "ByAm", }, { i= "Bis", d= "Byas", l= "su", }) -- changing stem to weakest form if vowel == "A" then -- do nothing elseif match(args.stem, "tirya/?c$") then -- specifically for tiryañc args.stem = args.stem:gsub("ya(/?)c$", "a%1Sc") elseif cons ~= "" then args.stem = args.stem:gsub("([yv])a([/\\]?)c$", function(cons, acc) return (cons == "y" and "I" or "U") .. (acc == "" and "" or "/") .. "c" end) elseif match(args.stem, "dac$") then args.stem = args.stem:gsub("ac$", "Ic") else error("Not supported") end if vowel == "A" or oxy == "" then if args.g == "m" then decline(args, data, nil, nil, { a="as", }) else -- neuter decline(args, data, nil, { n="I", v="I", }) end decline(args, data, { i="A", d="e", ab="as", l="i", }, { g="os", }, { g="Am", }) else -- oxytone accent, showing two possible accentuations (Whitney §410) if args.g == "m" then decline(args, data, nil, nil, { a={"as", {"a" .. oxy .. "s", note = "Rigvedic", mono = true}} }) else decline(args, data, nil, { n= {"I", {"I" .. oxy, note = "Rigvedic", mono = true}}, v= "I", }) end decline(args, data, { i= {"A", {"A" .. oxy, note = "Rigvedic", mono = true}}, d= {"e", {"e" .. oxy, note = "Rigvedic", mono = true}}, ab= {"as", {"a" .. oxy .. "s", note = "Rigvedic", mono = true}}, l= {"i", {"i" .. oxy, note = "Rigvedic", mono = true}}, }, { g= {"os", {"o" .. oxy .. "s", note = "Rigvedic", mono = true}}, }, { g= {"Am", {"A" .. oxy .. "m", note = "Rigvedic", mono = true}}, }) end decline(args, data, { g="[abl]" }, { a="[nom]", d="[ins]", ab="[ins]", l="[gen]", }, { ab="[dat]", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit añc-stem adjectives") end end }) decl_data["o"] = { detect = make_detect("(.+)o" .. sa_utils.accent .. "?$", function(args) return args.g == "m" or args.g == "f" end) } setmetatable(decl_data["o"], { -- 'gó' __call = function(self, args, data) local oxy = match(args.lemma, "o(" .. sa_utils.accent .. "?)$") data.decl_type = "o-stem" decline(args, data, { n="O" .. oxy .. "s", v="Os", a="A" .. oxy .. "m", i="+A", d="+e", ab="o" .. oxy .. "s", g="[abl]", l="+i", }, { n={ "A" .. oxy .. "vO", { "A" .. oxy .. "vA", note = "Vedic" } }, v={ "AvO", { "AvA", note = "Vedic" } }, a="[nom]", i="+ByAm", d="[ins]", ab="[ins]", g= "+os", l="[gen]", }, { n="A" .. oxy .. "vas", a={"A" .. oxy .. "s", { "A" .. oxy .. "vas", note = "rare" } }, v="Avas", i="+Bis", d="+Byas", ab="[dat]", g={ "+Am", { "+nAm", note = "Vedic" } }, l="+su", }) table.insert(data.categories, "Sanskrit o-stem nouns") end }) decl_data["O"] = { detect = make_detect("(.+)O" .. sa_utils.accent .. "?$", function(args) return args.g == "m" or args.g == "f" end) } setmetatable(decl_data["O"], { __call = function(self, args, data) local oxy = match(args.lemma, "O(" .. sa_utils.accent .. "?)$") data.decl_type = "au-stem" decline(args, data, { n="+s", v="+s", a="+am", i= {{ "+A" .. oxy, mono = true }}, d= {{ "+e" .. oxy, mono = true }}, ab={{ "+a" .. oxy .. "s", mono = true }}, g="[abl]", l= {{ "+i" .. oxy, mono = true }}, }, { n={ "+O", { "+A", note = "Vedic" } }, v={ "+O", { "+A", note = "Vedic" } }, a="[nom]", i= {{"+ByA" .. oxy .. "m", mono = true }}, d="[ins]", ab="[ins]", g= {{ "+o" .. oxy .. "s", mono = true }}, l="[gen]", }, { n="+as", v="+as", a="[nom]", i= {{"+Bi" .. oxy .. "s", mono = true }}, d= {{"+Bya" .. oxy .. "s", mono = true }}, ab="[dat]", g= {{ "+A" .. oxy .. "m", mono = true }}, l= {{ "+su" .. oxy, mono = true }}, }) table.insert(data.categories, "Sanskrit au-stem nouns") end }) decl_data["vāṃs"] = { detect = make_detect("(.+)vA" .. sa_utils.accent .. "?Ms$", function(args) return args.g == "m" or args.g == "n" end) } setmetatable(decl_data["vāṃs"], { __call = function(self, args, data) local oxy = match(args.lemma, "vA(" .. sa_utils.accent .. "?)Ms$") data.decl_type = "vāṃs-stem" local weak_stem if match(args.stem, "baBU$") or match(args.stem, "u$") then weak_stem = args.stem .. "v" elseif match(args.stem, "U$") then weak_stem = args.stem:gsub("U$", "uv") elseif match(args.stem, "pIpi$") or match(args.stem, "dI[dD]i$") then weak_stem = args.stem -- the second 'i' of 'śiśrivāṃs' etc. is part of the root elseif match(args.stem, "[aAIuUfFxeEoO]" .. sa_utils.accent .."?M?" .. sa_utils.consonant .. "+i$") or match(args.stem, "vi[Sd]i$") then weak_stem = args.stem:gsub("i$", "") else weak_stem = args.stem end if args.g == "m" then decline(args, data, { n= "vA" .. oxy .. "n", a= "vA" .. oxy .. "Msam", v={ "van", { "vas", note = "Rigvedic"} }, }, { n= "vA" .. oxy .. "MsO", a="[nom]", v= "vAMsO", }, { n= "vA" .. oxy .. "Msas", a={{stem = weak_stem, "u" .. oxy .. "zas"}}, v= "vAMsas", }) else decline(args, data, { n= "va" .. oxy .. "t", a="[nom]", v= "vat" }, { n={{stem = weak_stem, "u" .. oxy .. "zI"}}, a="[nom]", v={{stem = weak_stem, "uzI"}}, }, { n= "vA" .. oxy .. "MsI", a="[nom]", v= "vAMsI" }) end decline(args, data, { i={{stem = weak_stem, "u" .. oxy .. "zA"}}, d={{stem = weak_stem, "u" .. oxy .. "ze"}}, ab={{stem = weak_stem, "u" .. oxy .. "zas"}}, g="[abl]", l={{stem = weak_stem, "u" .. oxy .. "zi"}}, }, { i= "va" .. oxy .. "dByAm", d="[ins]", ab="[ins]", g={{stem = weak_stem, "u" .. oxy .. "zos"}}, l="[gen]" }, { i= "va" .. oxy .. "dBis", d= "va" .. oxy .. "dByas", ab="[dat]", g={{stem = weak_stem, "u" .. oxy .. "zAm"}}, l= "va" .. oxy .. "tsu" }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit vāṃs-stem adjectives") else table.insert(data.categories, "Sanskrit vāṃs-stem nouns") end end }) return decl_data t84x33k7ruudbmk9yka9czjc2utdzza 5724854 5724839 2026-06-16T04:57:36Z OctraBot 3198 5724854 Scribunto text/plain local decl_data = {} local sa_utils = require("Module:sa-utilities") local SLP_to_IAST = require("Module:sa-utilities/translit/SLP1-to-IAST") local IAST_to_SLP = require("Module:sa-utilities/translit/IAST-to-SLP1") local match = string.match -- sufficient for SLP1 local umatch = mw.ustring.match -- Make a detection function for ARGS that fetches the stem according to MATCH_RE (which is matched against -- args.lemma and should have the stem in the first capture). ADDL_CONDITION is an optional function of one -- argument (ARGS) that must return true for the detection to happen. local function make_detect(match_re, addl_condition) return function(args) if addl_condition and not addl_condition(args) then return false end local stem = match(args.lemma, match_re) if stem then args.stem = stem return true else return false end end end -- Construct all or part of a given noun's declension. Each of SG, DU and PL is a table, whose keys are -- as follows: -- -- n = nominative -- a = accusative -- v = vocative -- i = instrumental -- d = dative -- ab = ablative -- g = genitive -- l = locative -- -- The corresponding value is one of the following: -- 1. a "copy spec" such as "[ins]", meaning to copy from the instrumental of the same number; -- 2. a single string (specifying an ending); or -- 3. a list of specs, where a spec is either a string (an ending) or a table of the form -- {"ENDING", stem = "STEM", mono = TRUE/FALSE, note = "NOTE"}. The latter format lets you explicitly specify what -- the stem is, whether the form is monosyllabic, and what the footnote is. All named keys are optional. -- -- In forms 2 and 3, if the ending begins with +, the stem defaults to args.lemma; otherwise it defaults to args.stem. local function decline(args, data, sg, du, pl) local cases = {n="nom", a="acc", v="voc", i="ins", d="dat", ab="abl", g="gen", l="loc"} local function process_number(endings, tag) if not endings then return end for case, es in pairs(endings) do if type(es) == "string" and es:find("^%[") then -- copy from another case; skip and handle later else if type(es) == "string" then es = {es} end local forms = {} for i, e in ipairs(es) do local stem, mono, accent_override, note if type(e) == "table" then stem = e.stem mono = e.mono accent_override = e.accent_override note = e.note e = e[1] end -- reduce Vedic forms to zero in case of novedic parameter if args.novedic == true and note and (match(note, "[Vv]edic$") or umatch(note, "Br[aā]hma[nṇ]a")) then stem = ""; e = ""; note = "" elseif args.norigvedic == true and note and match(note, "Rigvedic$") then stem = ""; e = ""; note = "" else if e:find("^%+") then if stem then error("Internal error: Can't use + in an ending when stem is explicitly given") end e = e:gsub("^%+", "") stem = args.lemma elseif not stem then stem = args.stem end forms[i] = sa_utils.internal_sandhi({ stem = stem, ending = e, has_accent = args.has_accent, recessive = case == "v", no_syncope = no_syncope, mono = mono, root = root, ambig_final = args.ambig_final, diaspirate = args.diaspirate, accent_override = accent_override, han = args.han, stem_final_n = stem_final_n, voc_svar = args.voc_svar, }) if note and note~= "" then forms["note" .. i] = note end end end data.forms[cases[case] .. "_" .. tag] = forms end end -- Now handle cases copied from another. for case, es in pairs(endings) do if type(es) == "string" and es:find("^%[") then -- copy from another case; skip and handle later local other_case = es:match("^%[(.*)%]$") if not other_case then error("Internal error: Unrecognized copy case spec " .. es) end local other_slot = other_case .. "_" .. tag local value = data.forms[other_slot] if not value then error("Internal error: Slot '" .. other_slot .. "' to copy from is empty") end local this_slot = cases[case] .. "_" .. tag if data.forms[this_slot] then error("Internal error: A value already exists for slot '" .. this_slot .. "' when copying from '" .. other_slot .. "'") end data.forms[cases[case] .. "_" .. tag] = value end end end process_number(sg, "s") process_number(du, "d") process_number(pl, "p") end decl_data["numeral"] = { detect = make_detect("(.+)a/?[nz]?$", function(args) return args.g == "gneut" end) } setmetatable(decl_data["numeral"], { __call = function(self, args, data) local oxy = match(args.lemma, "(/?)[nz]?$") local acc = match(args.lemma, "(/?)[^/]*$") data.decl_type = "numeral" if match(args.lemma, "a/?z$") then -- ṣaṣ decline(args, data, {}, {}, { n="+", a="[nom]", v="[nom]", i="aqBi" .. oxy .. "s", d="aqBya" .. oxy .. "s", ab="[dat]", g="aRRA" .. oxy .. "m", l="awsu" .. oxy, }) else -- pañca(n), etc. decline(args, data, {}, {}, { n="a" .. oxy, a="[nom]", v="a", i={{"a" .. acc .. "Bis", accent_override = true}}, d={{"a" .. acc .. "Byas", accent_override = true}}, ab="[dat]", g={{"AnA" .. acc .. "m", accent_override = true}}, l={{"a" .. acc .. "su", accent_override = true}}, }) end -- no categorisation? end }) decl_data["a"] = { detect = make_detect("(.+)a" .. sa_utils.accent .. "?$", function(args) return args.g == "m" or args.g == "n" end) } setmetatable(decl_data["a"], { __call = function(self, args, data) local oxy = match(args.lemma, "(" .. sa_utils.accent .. "?)$") if args.pronominal then data.decl_type = "หน่วยสรรพนาม a-การันต์" else data.decl_type = "a-การันต์" end if args.g == "m" then decline(args, data, { n="a" .. oxy .. "s", a="a" .. oxy .. "m", v="a" }, { n={ "O" .. oxy, { "A" .. oxy, note = "Vedic" } }, v={ "O", { "A", note = "Vedic" } } }, { a="A" .. oxy .. "n", }) if args.pronominal then decline(args, data, {}, {}, { n="e" .. oxy, v="e" }) else decline(args, data, {}, {}, { n={"A" .. oxy .. "s", {"A" .. oxy .. "sas", note="Vedic"}}, v={"As", {"Asas", note="Vedic"}} }) end else decline(args, data, { n="a" .. oxy .. "m", a="[nom]", v="a" }, { n="e" .. oxy, v="e" }, { n={"A" .. oxy .. "ni", {"A" .. oxy, note="Vedic"}}, a="[nom]", v={"Ani", {"A", note="Vedic"}} }) end if args.pronominal then decline(args, data, { d="a" .. oxy .. "smE", ab="a" .. oxy .. "smAt", l="a" .. oxy .. "smin" }, {}, { g="e" .. oxy .. "zAm" }) else decline(args, data, { d="A" .. oxy .. "ya", ab="A" .. oxy .. "t", l="e" .. oxy }, {}, { g="A" .. oxy .. "nAm" }) end decline(args, data, { -- For nouns on -tva(na), RV has only three instr.sg. with -ena (1.110.4, 8.18.13, 10.37.9); see Lanman p.335f. for forms on -ā. -- This avoidance is phonetically perfectly understandable for -tvanā instead of -tvanena, and with abstract nouns like this -- (predominantly used in the singular), there wouldn't be much cause for confusion with the nom./acc. plural. -- (detection of oxytone accent to avoid gerundives on -tva) i= match(args.lemma, "tva?n?a/$") and {"e" .. oxy .. "na", {"A" .. oxy, note = "Vedic"}} or "e" .. oxy .. "na", g="a" .. oxy .. "sya" }, { a="[nom]", i="A" .. oxy .. "ByAm", d="[ins]", ab="[ins]", -- see Wackernagel III, p.98-99, §48a g= match(args.stem, ".y$") and {"a" .. oxy .. "yos", {"o" .. oxy .. "s", note = "Vedic"}} or "a" .. oxy .. "yos", l="[gen]" }, { i={ "E" .. oxy .. "s", { "e" .. oxy .. "Bis", note = "Vedic" } }, d="e" .. oxy .. "Byas", ab="[dat]", l="e" .. oxy .. "zu" }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit a-การันต์ adjectives") else table.insert(data.categories, "Sanskrit a-การันต์ nouns") end end }) decl_data["iu"] = { detect = make_detect("(.+)[iu]" .. sa_utils.accent .. "?$") } setmetatable(decl_data["iu"], { __call = function(self, args, data) local vowel, oxy = match(args.lemma, "([iu])(" .. sa_utils.accent .. "?)$") data.decl_type = vowel .. "-การันต์" if match(args.lemma, "[sz]a/?Ki/$") and not (args.decl and match(args.decl, "i")) then -- in classical possibly regular in compounds (see Wackernagel vol.III p.141), for which use 'decl=i' decline(args, data, { n="A" .. oxy, a="A" .. oxy .. "yam", i={{stem = args.stem .. vowel, "A" .. oxy }}, d={{stem = args.stem .. vowel, "e" .. oxy }}, ab={{stem = args.stem .. vowel, "u" .. oxy .. "r" }}, l={{stem = args.stem .. vowel, "O" .. oxy }}, -- Wackernagel suggests older *sákhayi (ibid.) v="e", }, { n={"A" .. oxy .. "yO", {"A" .. oxy .. "yA", note = "Vedic"}}, v={"A" .. oxy .. "yO", {"A" .. oxy .. "yA", note = "Vedic"}}, g={{stem = args.stem .. vowel, "o" .. oxy .. "s" }}, }, { n="A" .. oxy .. "yas", v="Ayas", a="I" .. oxy .. "n", }) elseif args.g == "m" then if vowel == "i" then decline(args, data, { d={{stem = args.stem .. "a" .. oxy .. "y", "e" }}, l={ "O" .. oxy, { "A" .. oxy, note = "Vedic"}}, -- Whitney §336f }, {}, {}) elseif match(args.stem, sa_utils.consonant .. sa_utils.consonant .. "$") then -- the dative ending -ve (vs. -ave) does not occur if the stem has two consonants before -u decline(args, data, { d={{stem = args.stem .. "a" .. oxy .. "v", "e" }}, l="O" .. oxy, }, {}, {}) else decline(args, data, { d={{stem = args.stem .. "a" .. oxy .. "v", "e" }, {stem = args.stem .. "v", "e" .. oxy, note = "Vedic"}}, l="O" .. oxy, }, {}, {}) end if match(args.stem, sa_utils.consonant .. sa_utils.consonant .. "$") then decline(args, data, { ab={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "s"}}, }, {}, {}) else decline(args, data, { ab={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "s"}, {stem = args.stem .. vowel, "a" .. oxy .. "s", note = "Vedic"}}, }, {}, {}) end decline(args, data, { n="+s", a="+m", i={ "+nA", {stem = args.stem .. vowel, "A" .. oxy, note = "Vedic" } }, v={{stem= args.stem .. sa_utils.up_one_grade[vowel], ""}}, }, { n={{stem = args.stem .. sa_utils.lengthen[vowel..oxy], ""}}, v={{stem = args.stem .. sa_utils.lengthen[vowel], ""}}, g={{stem = args.stem .. vowel, "o" .. oxy .. "s"}}, }, { n={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "as"}}, a={{stem = args.stem ..sa_utils.lengthen[vowel..oxy], "n"}}, v={{stem = args.stem .. sa_utils.up_one_grade[vowel], "as"}}, }) elseif args.g == "f" then if vowel == "i" then decline(args, data, { i={{stem = args.stem .. vowel, "A" .. oxy}, {"I" .. oxy, note = "Vedic"}}, -- Whitney §336c l={ "O" .. oxy, {stem = args.stem .. vowel, "A" .. oxy .. "m" }, { "A" .. oxy, note = "Vedic"} }, }, {}, {}) else decline(args, data, { i={{stem = args.stem .. vowel, "A" .. oxy }}, l={ "O" .. oxy, {stem = args.stem .. vowel, "A" .. oxy .. "m" } }, }, {}, {}) end decline(args, data, { n="+s", a="+m", -- the Rigvedic dat.sg. on -ī (mostly ūtī́) seems too rare to extrapolate to every stem (see also Macdonell p.282) d={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "e"}, {stem = args.stem .. vowel, "E" .. oxy } }, ab={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "s"}, {stem = args.stem .. vowel, "A" .. oxy .. "s" }, {stem = args.stem .. vowel, "E" .. oxy, note = "Brāhmaṇas"} }, v=sa_utils.up_one_grade[vowel], }, { n=sa_utils.lengthen[vowel..oxy], v=sa_utils.lengthen[vowel], g={{stem = args.stem .. vowel, "o" .. oxy .. "s"}}, }, { n={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "as"}}, a=sa_utils.lengthen[vowel..oxy] .. "s", v={{stem = args.stem .. sa_utils.up_one_grade[vowel], "as"}}, }) else -- neuter if args.adj == true then -- for difference with nouns see Whitney §344 if vowel == "i" then decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "y", "e"}}, ab={ "+nas", {stem = args.stem .. "e" .. oxy, "s"}}, l={ "+ni", "O" .. oxy, {"A" .. oxy, note = "Vedic"}}, -- Whitney §336f + §340f }, {}, {}) elseif match(args.stem, sa_utils.consonant .. sa_utils.consonant .. "$") then -- the dative ending -ve (vs. -ave) does not occur if the stem has two consonants before -u; similar for abl./gen. -vas (vs. -os) decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "v", "e"}}, ab={ "+nas", {stem = args.stem .. "o" .. oxy, "s"}}, l={ "+ni", "O" .. oxy}, }, {}, {}) else decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "v", "e"}, {stem = args.stem .. "v", "e" .. oxy, note = "Vedic"}}, ab={ "+nas", {stem = args.stem .. "o" .. oxy, "s"}, {stem = args.stem .. vowel, "a" .. oxy .. "s", note = "Vedic"}}, l={ "+ni", "O" .. oxy}, }, {}, {}) end decline(args, data, {}, { g={ "+nos", {stem = args.stem .. vowel, "o" .. oxy .. "s" }}, }, {}) else -- nouns if vowel == "i" then decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "y", "e", note = "Vedic" }}, ab={ "+nas", {stem = args.stem .. "e" .. oxy, "s", note = "Vedic"}}, l={ "+ni", {"O" .. oxy, note = "Vedic"}, {"A" .. oxy, note = "Vedic"}}, -- Whitney §336f + §340f }, {}, {}) elseif match(args.stem, sa_utils.consonant .. sa_utils.consonant .. "$") then -- the dative ending -ve (vs. -ave) does not occur if the stem has two consonants before -u; similar for abl./gen. -vas (vs. -os) decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "v", "e", note = "Vedic" }}, ab={ "+nas", {stem = args.stem .. "o" .. oxy, "s", note = "Vedic"}}, l={ "+ni", {"O" .. oxy, note = "Vedic"}}, }, {}, {}) else decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "v", "e", note = "Vedic" }, {stem = args.stem .. "v", "e" .. oxy, note = "Vedic"}}, ab={ "+nas", {stem = args.stem .. "o" .. oxy, "s", note = "Vedic"}, {stem = args.stem .. vowel, "a" .. oxy .. "s", note = "Vedic"}}, l={ "+ni", {"O" .. oxy, note = "Vedic"}}, }, {}, {}) end decline(args, data, {}, { g={ "+nos", {stem = args.stem .. vowel, "o" .. oxy .. "s", note = "Vedic" }}, }, {}) end decline(args, data, { n="+", a="[nom]", i={ "+nA", {stem = args.stem .. vowel, "A" .. oxy, note = "Vedic" }}, v={ "+", {stem= args.stem .. sa_utils.up_one_grade[vowel], ""}}, }, { n={ "+nI", {stem = args.stem .. vowel, "I" .. oxy, note = "Vedic" }}, v={ "+nI", {stem = args.stem .. vowel, "I", note = "Vedic" }}, }, { n={{ stem = args.stem .. sa_utils.lengthen[vowel .. oxy], "ni" }, { "+", note = "Vedic"}, { stem = args.stem .. sa_utils.lengthen[vowel..oxy], "", note = "Vedic"}}, a="[nom]", v={{ stem = args.stem .. sa_utils.lengthen[vowel], "ni" }, { "+", note = "Vedic"}, { stem = args.stem .. sa_utils.lengthen[vowel], "", note = "Vedic"}}, }) end decline(args, data, { g="[abl]", }, { a="[nom]", i="+ByAm", d="[ins]", ab="[ins]", l="[gen]", }, { i="+Bis", d="+Byas", ab="[dat]", g={{ stem = args.stem .. sa_utils.lengthen[vowel], "nA" .. (oxy ~= "" and "/" or "") .. "m"}}, l="+su", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit " .. vowel .. "-การันต์ adjectives") else table.insert(data.categories, "Sanskrit " .. vowel .. "-การันต์ nouns") end end }) decl_data["A"] = { detect = function(args) if make_detect("(.+)A" .. sa_utils.accent .. "?$")(args) then args.true_mono = sa_utils.is_monosyllabic(args.lemma) return true else return false end end } setmetatable(decl_data["A"], { __call = function(self, args, data) local oxy = match(args.lemma, "(" .. sa_utils.accent .. "?)$") if args.g == "n" then -- It seems better not to base a neuter declension on the masculine nominatives on -ās accompanying neuter nouns. -- See Whitney §367b and Wackernagel vol.III p.129 error("The neuter of radical stems in -ā ends in -a.") end if args.pronominal then data.decl_type = "หน่วยสรรพนาม ā-การันต์" else data.decl_type = "ā-การันต์" end if not (args.root or args.true_mono) or (args.true_mono and args.root == false) then -- derived stem if args.g == "m" then error("Add 'root=1' in case this is a root noun or adjective.") else table.insert(data.categories, "Sanskrit ā-การันต์ nouns") end if args.pronominal then decline(args, data, { d="a" .. oxy .. "syE", ab={"a" .. oxy .. "syAs", {"a" .. oxy .. "syE", note = "Brāhmaṇas"}}, l="a" .. oxy .. "syAm" }, {}, { g="+sAm" }) else decline(args, data, { d="+yE", ab={"+yAs", {"+yE", note = "Brāhmaṇas"}}, l="+yAm" }, {}, { g="+nAm" }) end decline(args, data, { n="+", i={ "a" .. oxy .. "yA", { "+", note = "Vedic" } }, v="e", }, { n="e" .. oxy, g="a" .. oxy .. "yos", v="e", }, { a="+s", }) else if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit มูลการันต์ adjectives on -ā") else table.insert(data.categories, "Sanskrit มูลการันต์ nouns on -ā") end if args.g == "m" then data.general_notes = {"In practice, this declension only occurs in early Vedic<br> and is later replaced by a-stem declension."} else data.general_notes = {"In practice, this declension only occurs in early Vedic<br> and is later replaced by regular ā-stem declension."} end decline(args, data, { n="+s", i="+", d="e" .. oxy, ab="a" .. oxy .. "s", l="i" .. oxy, v="+s", }, { n={ "O" .. oxy, { "A" .. oxy, note = "Vedic" } }, g="o" .. oxy .. "s", v={ "O", { "A", note = "Vedic" } } }, { a={ "+s", { "a" .. oxy .. "s", note = "Perhaps" } }, g={ "+nAm", { "+Am", note = "Perhaps" } }, }) end decline(args, data, { a="+m", g="[abl]", }, { a="[nom]", i="+ByAm", d="[ins]", ab="[ins]", l="[gen]", }, { n="+s", i="+Bis", d="+Byas", ab="[dat]", l="+su", v="+s", }) end }) decl_data["IU"] = { detect = function(args) if make_detect("(.+)[IU]" .. sa_utils.accent .. "?$")(args) then args.true_mono = sa_utils.is_monosyllabic(args.lemma) return true else return false end end } setmetatable(decl_data["IU"], { __call = function(self, args, data) local vowel, oxy = match(args.lemma, "([IU])(" .. sa_utils.accent .. "?)$") data.decl_type = SLP_to_IAST.tr(vowel) .. "-การันต์" if args.g == "n" then -- it seems better to mention the one or two Vedic forms that could be interpreted -- as coming from a neuter ī-stem (see Whitney §367b) separately error("The neuter of radical stems in -ī/ū ends in -i/u.") end if not (args.root or args.true_mono) or (args.true_mono and args.root == false) or args.han then -- derived stem if args.vrki then -- with original vṛkī-declension (Whitney §355 ff.), given as older forms of later classical declension if vowel == "U" then error() elseif args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit ī-การันต์ adjectives with original vṛkī́-declension") else table.insert(data.categories, "Sanskrit ī-การันต์ nouns with original vṛkī́-declension") end data.general_notes = {"This stem originally had ''vṛkī́''-declension."} decline(args, data, { n={"+", {"+s", note = "Vedic"}}, a={"+m", {"+am", note = "Vedic"}}, i={{stem = args.stem .. vowel, "A" .. oxy}, {"+A", note = "Vedic"}}, d={{stem = args.stem .. vowel, "E" .. oxy}, {"+e", note = "Vedic"}}, ab={{stem = args.stem .. vowel, "A" .. oxy .. "s"}, {"+as", note = "Vedic"}, {stem = args.stem .. vowel, "E" .. oxy, note = "Brāhmaṇas"}}, l={{stem = args.stem .. vowel, "A" .. oxy .. "m"}, {"+", note = "Vedic"}}, -- Wackernagel III, §86c, p.170 }, { n={"+O", {"+A", note = "Vedic"}}, v={"+O", {"+A", note = "Vedic"}}, g={{stem = args.stem .. vowel, "o" .. oxy .. "s"}, {"+os", note = "Vedic"}}, }, { n="+as", v="+as", a={"+s", {"+as", note = "Vedic"}}, g="+nAm", }) elseif vowel == "I" then -- devī-declension if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit ī-การันต์ adjectives") else table.insert(data.categories, "Sanskrit ī-การันต์ nouns") end decline(args,data, { n="+", a="+m", i={{stem = args.stem .. vowel, "A" .. oxy}}, d={{stem = args.stem .. vowel, "E" .. oxy}}, ab={{stem = args.stem .. vowel, "A" .. oxy .. "s"}, {stem = args.stem .. vowel, "E" .. oxy, note = "Brāhmaṇas"}}, l={{stem = args.stem .. vowel, "A" .. oxy .. "m"}}, }, { n={ "+O", { "+", note = "Vedic" } }, v={ "+O", { "+", note = "Vedic" } }, g={{stem = args.stem .. vowel, "o" .. oxy .. "s"}}, }, { n={ "+as", { "+s", note = "Vedic" } }, v={ "+as", { "+s", note = "Vedic" } }, a="+s", g= oxy == "" and "+nAm" or {"+nAm", { stem = args.stem .. vowel, "nA" .. oxy .. "m", note = "Rigvedic"} }, -- Whitney §319a }) else -- ū-stems, with Whitney's declension at §356a given as older forms of §364, see Wackernagel vol.III p.189 if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit ū-การันต์ adjectives") -- probably only bahuvrihis like 'sarvatanū' else table.insert(data.categories, "Sanskrit ū-การันต์ nouns") end if match(args.stem, "y$") or match(args.stem, "agr$") or match(args.stem, "kadr$") or match(args.stem, "bIBats") then -- with Vedic -úv-, see Macdonell p.290 §384a decline(args,data, { a={"+m", {"+am", note = "Vedic", mono = true}}, i={{stem = args.stem .. vowel, "A" .. oxy}, {"+A", note = "Vedic", mono = true}}, d={{stem = args.stem .. vowel, "E" .. oxy}, {"+e", note = "Vedic", mono = true}}, ab={{stem = args.stem .. vowel, "A" .. oxy .. "s"}, {"+as", note = "Vedic", mono = true}, {stem = args.stem .. vowel, "E" .. oxy, note = "Brāhmaṇas"}}, l={{stem = args.stem .. vowel, "A" .. oxy .. "m"}, {"+i", note = "Vedic", mono = true}, {"+", note = "Vedic"}}, }, { n={"+O", {"+A", note = "Vedic", mono = true}}, v={"+O", {"+A", note = "Vedic", mono = true}}, g={{stem = args.stem .. vowel, "o" .. oxy .. "s"}, {"+os", note = "Vedic", mono = true}}, }, { n={"+as", {"+as", note = "Vedic", mono = true}}, v={"+as", {"+as", note = "Vedic", mono = true}}, a={"+s", {"+as", note = "Vedic", mono = true}}, }) else decline(args,data, { a={"+m", {"+am", note = "Vedic"}}, i= oxy == "" and "+A" or {{stem = args.stem .. vowel, "A" .. oxy}, {"+A", note = "Vedic"}}, d={{stem = args.stem .. vowel, "E" .. oxy}, {"+e", note = "Vedic"}}, ab={{stem = args.stem .. vowel, "A" .. oxy .. "s"}, {"+as", note = "Vedic"}, {stem = args.stem .. vowel, "E" .. oxy, note = "Brāhmaṇas"}}, l={{stem = args.stem .. vowel, "A" .. oxy .. "m"}, {"+i", note = "Vedic"}, {"+", note = "Vedic"}}, -- Wackernagel III, §97b, p.188 }, { n={"+O", {"+A", note = "Vedic"}}, -- duals on -ū for ū-stems do not occur v={"+O", {"+A", note = "Vedic"}}, g= oxy == "" and "+os" or {{stem = args.stem .. vowel, "o" .. oxy .. "s"}, {"+os", note = "Vedic"}}, }, { n="+as", -- RV 4.41.8 has 'yuvayū́s', but it seems better to simply give this at the relevant lemma v="+as", a={"+s", {"+as", note = "Vedic"}}, }) end decline(args,data, { n="+s", }, {}, { g="+nAm", }) end decline(args, data, { g="[abl]", v=sa_utils.shorten[vowel], }, { a="[nom]", i="+ByAm", d="[ins]", ab="[ins]", l="[gen]", }, { i="+Bis", d="+Byas", ab="[dat]", l="+su", }) else if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit มูลการันต์ adjectives on -" .. SLP_to_IAST.tr(vowel)) else table.insert(data.categories, "Sanskrit มูลการันต์ nouns on -" .. SLP_to_IAST.tr(vowel)) end if args.true_mono then -- rout nouns, Whitney §351 no_syncope = true if args.g == "f" then -- see Wackernagel vol.III p.181 decline(args, data, { d={{ "+e" .. oxy, mono = true }, { "+E" .. oxy, mono = true, note = "Later Sanskrit" } }, ab={{ "+a" .. oxy .. "s", mono = true }, { "+A" .. oxy .. "s", mono = true, note = "Later Sanskrit" } }, l={{ "+i" .. oxy, mono = true }, { "+A" .. oxy .. "m", mono = true, note = "Later Sanskrit" } }, }) else decline(args, data, { d={{ "+e" .. oxy, mono = true } }, ab={{ "+a" .. oxy .. "s", mono = true } }, l={{ "+i" .. oxy, mono = true } }, }) end decline(args, data, { i={{ "+A" .. oxy, mono = true}}, }, { i={{"+ByA" .. oxy .. "m", mono = true}}, g={{"+o" .. oxy .. "s", mono = true}}, }, { i={{"+Bi" .. oxy .. "s", mono = true}}, d={{"+Bya" .. oxy .. "s", mono = true}}, g={{"+A" .. oxy .. "m", mono = true }, { "+nA" .. oxy .. "m", mono = true } }, l={{"+su" .. oxy, mono = true}}, }) else -- root terms in compounds, Whitney §352; I'd suggest to give two tables when both contracted and non-contracted forms occur -- see Wackernagel III §91a (p.179) for ī, and §100a + §100eα (p.192-3) for ū; Macdonell: p.268 + 288 -- Taking as default that ū-stems with accent (rule of thumb for Vedic terms) are not contracted. To be overrided with 'contract=1' if args.contract == false or (args.contract ~= true and (match(args.stem, sa_utils.consonant .. sa_utils.consonant .. "$") or vowel == "U" and (match(args.lemma, sa_utils.accent) or match(args.stem, "B$") or match(args.stem, "jo/?g$")) or vowel == "I" and (match(args.stem, "avadyaB$") or (match(args.stem, "D$") and match(args.stem, sa_utils.accent))))) then no_syncope = true -- -Ciy-/-Cuv- when followed by vowel decline(args, data, { l= args.g == "f" and {"+i", {"+Am", note = "Later Sanskrit"}} or "+i", }) else decline(args, data, { l= args.g == "f" and {{ stem = args.stem .. sa_utils.vowel_to_cons[vowel], "i" .. (oxy ~= "" and "\\" or "") }, {"+Am", note = "Later Sanskrit"}} or {{ stem = args.stem .. sa_utils.vowel_to_cons[vowel], "i" .. (oxy ~= "" and "\\" or "") }}, }) end if args.g == "f" then -- see Wackernagel vol.III p.181 decline(args, data, { d={ "+e", { "+E", note = "Later Sanskrit" } }, ab={ "+as", { "+As", note = "Later Sanskrit" } }, }) else decline(args, data, { d= "+e", ab= "+as", }) end decline(args, data, { i= "+A", }, { i="+ByAm", g= "+os", }, { i="+Bis", d="+Byas", g= {"+Am", "+nAm"}, l="+su", }) end decline(args, data, { n= "+s", v= "+s", a= "+am", g="[abl]", }, { n= { "+O", { "+A", note = "Vedic"}}, v= { "+O", { "+A", note = "Vedic"}}, a="[nom]", d="[ins]", ab="[ins]", l="[gen]", }, { n= "+as", v= "+as", a="[nom]", ab="[dat]", }) end end }) decl_data["f"] = { -- for nouns in ṛ detect = make_detect("(.+)f" .. sa_utils.accent .. "?$") } setmetatable(decl_data["f"], { -- for nouns in ṛ __call = function(self, args, data) if args.g == "f" and args.r_stem_a == "ā" and match(args.stem, "t$") and not match(args.stem, "^s?t$") then error("The feminine of adjectives in -tṛ ends in -trī.") end local oxy = match(args.lemma, "(" .. sa_utils.accent .. "?)$") data.decl_type = SLP_to_IAST.tr("f") .. "-การันต์" if args.g == "n" then decline(args, data, { -- for neuter -úr, see Wackernagel, III, p.204, §107b (denies 'sthātar' and 'sthātṝ́n' are neuter sg.) -- all cases of -tári given as nom./acc.n.sg. by Macdonell (p.243) are translated as locatives by Jamison & Brereton n={"f" .. oxy, {"u" .. oxy .. "r", note = "Rigvedic"}}, a="[nom]", i={"+nA", "rA" .. oxy}, d={"+ne", "re" .. oxy}, ab={"+nas", "u" .. oxy .. "r"}, l={"+ni", "a" .. oxy .. "ri"}, v={ "f", "ar" }, }, { n="+nI", g={"+nos", "ro" .. oxy .. "s"}, v="+nI", }, { n="F" .. oxy .. "ni", a="[nom]", v="Fni", }) else if not args.r_stem_a then error('Please specify the length of the accusative singular vowel with r_stem_a = "a" or "ā".') else args.r_stem_a = IAST_to_SLP.tr(args.r_stem_a) end decline(args, data, { n="A" .. oxy, a=args.r_stem_a .. oxy .. "ram", i="rA" .. oxy, d="re" .. oxy, ab="u" .. oxy .. "r", l="a" .. oxy .. "ri", v="ar", }, { n={ args.r_stem_a .. oxy .. "rO", { args.r_stem_a .. oxy .. "rA", note = "Vedic" } }, g="ro" .. oxy .. "s", v={ args.r_stem_a .. "rO", { args.r_stem_a .. "rA", note = "Vedic" } }, }, { n=args.r_stem_a .. oxy .. "ras", a=args.g == "f" and "F" .. oxy .. "s" or "F" .. oxy .. "n", v=args.r_stem_a .. "ras", }) end decline(args, data, { g="[abl]", }, { a="[nom]", i="+ByAm", d="[ins]", ab="[ins]", l="[gen]", }, { i="+Bis", d="+Byas", ab="[dat]", g={{stem = args.stem .. "F", "nA" .. (oxy ~= "" and "/" or "") .. "m"}}, l="+su", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit " .. SLP_to_IAST.tr("f") .. "-การันต์ adjectives") else table.insert(data.categories, "Sanskrit " .. SLP_to_IAST.tr("f") .. "-การันต์ nouns") end end }) decl_data["root"] = { -- for root nouns ending on -k/g/gh/c/j/ṭ/ḍ/th/d/dh/p/bh/m/r/ṣ/ś/h + -āt/it/ut/ṛt/akt + -ās/os detect = function(args) -- capture of vowel needed for accent if (make_detect("(.*)" .. sa_utils.vowel .. sa_utils.accent .. "?r?[kgGcjwqTdDpBmrzSh]$")(args) or (make_detect("(.*)[Aiuf]" .. sa_utils.accent .. "?t$")(args) and not args.participle == true) or make_detect("(.*)a" .. sa_utils.accent .. "?kt$")(args) -- nákt- or make_detect("(.*)[Ao]" .. sa_utils.accent .. "?s$")(args) or (args.root == true and make_detect("(.*)[ai]" .. sa_utils.accent .. "?[ts]$")(args) )) -- + āśis + numerals like triṃśát and args.g ~= "gneut" then args.true_mono = sa_utils.is_monosyllabic(args.lemma) return true else return false end end } setmetatable(decl_data["root"], { __call = function(self, args, data) local vowel, oxy, extra, cons = match(args.lemma, "(" .. sa_utils.vowel .. ")(" .. sa_utils.accent .. "?)(r?)([kgGcjwqtTdDpBmrzShs]t?)$") if match(cons, "[jSh]") ~= nil and not args.ambig_final then error('Please specify the final consonant in the nominative singular with ambig_final = "k" or "ṭ".') elseif args.ambig_final then -- also for cases like sarágh > saráṭ or potentially anuṣṭúbh > anuṣṭúk args.ambig_final = IAST_to_SLP.tr(args.ambig_final) end local nasal = cons:gsub(".", sa_utils.homorganic_nasal) data.decl_type = "มูลการันต์" root = true -- neuter nom. plural (Whitney §389c, although saying that these forms with infixed nasal are not attested for nouns) if args.g == "n" then if match(cons, "[mr]") == nil and extra == "" then decline(args, data, nil, nil, { n= {{stem = args.stem .. vowel .. oxy .. nasal .. cons, "i"}}, v= {{stem = args.stem .. vowel .. nasal .. cons, "i"}}, }) else decline(args, data, nil, nil, { n= "+i", v= "+i", }) end end if args.true_mono then -- monosyllabic stem if args.g ~= "n" then decline(args, data, { -- nom.sg. -s is an 'invisible' (historical) ending to provoke vowel lengthening in -ir/-ur stems, see Whitney §392 -- this ending should be removed by internal_sandhi at an early stage n="+s", a="+am", v="+s", }, { n={ "+O", { "+A", note = "Vedic" } }, v={ "+O", { "+A", note = "Vedic" } }, }, { n="+as", v="+as", }) else decline(args, data, { n= "+", a="[nom]", v= "+" }, { n= {{"+I" .. oxy, mono = true }}, v= "+I" }, { }) end decline(args, data, { i= {{ "+A" .. oxy, mono = true }}, d= {{ "+e" .. oxy, mono = true }}, ab= {{ "+a" .. oxy .. "s", mono = true }}, g="[abl]", l= {{ "+i" .. oxy, mono = true }}, }, { a= "[nom]", i= {{ "+ByA" .. oxy .. "m", mono = true }}, d="[ins]", ab="[ins]", g= {{ "+o" .. oxy .. "s", mono = true }}, l="[gen]", }, { a= "[nom]", i= {{ "+Bi" .. oxy .. "s", mono = true }}, d= {{ "+Bya" .. oxy .. "s", mono = true }}, ab="[dat]", g= {{ "+A" .. oxy .. "m", mono = true }}, l= {{ "+su" .. oxy, mono = true }}, }) else -- polysyllabic stem, no accent on ending if args.g ~= "n" then decline(args, data, { n="+s", a="+am", v="+s", }, { n={ "+O", { "+A", note = "Vedic" } }, v={ "+O", { "+A", note = "Vedic" } }, }, { n="+as", v="+as" }) else decline(args, data, { n= "+", a="[nom]", v= "+" }, { n= "+I", v= "+I", }, { }) end decline(args, data, { i="+A", d="+e", ab="+as", g="[abl]", l="+i", }, { a= "[nom]", i= "+ByAm", d="[ins]", ab="[ins]", g="+os", l="[gen]", }, { a= "[nom]", i= "+Bis", d= "+Byas", ab="[dat]", g= "+Am", l= "+su", }) end if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit consonantal มูลการันต์ adjectives") else table.insert(data.categories, "Sanskrit consonantal มูลการันต์ nouns") end end }) decl_data["[aiu]s"] = { detect = make_detect("(.+)[aiu]" .. sa_utils.accent .. "?s$") } setmetatable(decl_data["[aiu]s"], { __call = function(self, args, data) local vowel, oxy = match(args.lemma, "([aiu])(" .. sa_utils.accent .. "?)s$") data.decl_type = vowel .. "s-การันต์" if (match(args.stem, "[^aAiK/\\]"..sa_utils.accent.."?y$") or match (args.stem, "jyA/?y$")) and vowel == "a" then -- comparative comp = "1" else comp = "0" end if comp == "1" and args.g ~= "n" then if args.g == "m" then decline(args, data, { n="An", a="AMsam", v={"an", { "+", note = "Rigvedic"}}, }, { n={"AMsO", {"AMsA", note = "Vedic"}}, v={"AMsO", {"AMsA", note = "Vedic"}}, }, { n="AMsas", a="+as", v="AMsas", }) else error("The feminine of comparatives in -yas ends in -yasī.") end elseif args.g == "m" or args.g == "f" then if vowel == "a" then decline(args, data, { n="A" .. oxy .. "s", a={ "+am", { "A" .. oxy .. "m", note = "Vedic" } }, v="+", }, nil, { n={ "+as", { "A" .. oxy .. "s", note = "Vedic" } }, v={ "+as", { "A" .. oxy .. "s", note = "Vedic" } }, }) else decline(args, data, { n="+", a="+am", v={ "+",{ sa_utils.up_one_grade[vowel], note = "Vedic" } }, -- Wackernagel vol.III, p.292, §152c }, nil, { n="+as", v="+as", }) end decline(args, data, nil, { n={ "+O", { "+A", note = "Vedic" } }, v={ "+O", { "+A", note = "Vedic" } }, }, { a="[nom]", }) else if args.adj == true and vowel == "a" and comp == "0" and (match(args.stem, sa_utils.vowel .. ".*" .. sa_utils.vowel) or match(args.stem, "^sv")) then -- compounds on -as, see Macdonell, p.226 + Whitney §418 a decline(args, data, { n={ "+", { "A" .. oxy .. "s", note = "Vedic"} }, }, {}, {}) else decline(args, data, { n="+", }, {}, {}) end decline(args, data, { a="[nom]", v="+", }, { n="+I", v="+I", }, { n={{stem = args.stem .. sa_utils.lengthen[vowel] .. oxy .. "Ms", "i"}}, v={{stem = args.stem .. sa_utils.lengthen[vowel] .. "Ms", "i"}}, a="[nom]", }) end decline(args, data, { i="+A", d="+e", ab="+as", g="[abl]", l="+i", }, { a="[nom]", i= "+ByAm", d="[ins]", ab="[ins]", g="+os", l="[gen]", }, { i= "+Bis", d= "+Byas", ab="[dat]", g="+Am", l= "+su", }) if comp == "1" then table.insert(data.categories, "Sanskrit yas-การันต์ adjectives") elseif args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit " .. vowel .. "s-การันต์ adjectives") else table.insert(data.categories, "Sanskrit " .. vowel .. "s-การันต์ nouns") end end }) decl_data["an"] = { detect = make_detect("(.+)a" .. sa_utils.accent .. "?n$", function(args) return args.g ~= "gneut" end) -- not gender-neutral numerals } setmetatable(decl_data["an"], { __call = function(self, args, data) local oxy = match(args.lemma, "a(" .. sa_utils.accent .. "?)n$") data.decl_type = "an-การันต์" stem_final_n = true if args.g == "n" then -- Wackernagel vol.III p.238 presupposes neuter pl. '-hāni' for '-han' decline(args, data, { n=args.han == true and {"a" .. oxy, {"a" .. oxy .. "m", note = "Vedic"}} or "a" .. oxy, a="[nom]", v={ "+", "a" }, }, {}, { n={ "A" .. oxy .. "ni", {"a" .. oxy, note = "Vedic"}, {"A" .. oxy, note = "Vedic"}}, a="[nom]", v={ "Ani", {"a", note = "Vedic"}, {"A", note = "Vedic"}}, }) if not match(args.stem, sa_utils.consonant .. "[NYRnmyrlv]$") or args.contract then decline(args, data, nil, { n={ "nI" .. oxy, "+I" }, v={ "nI", "+I" }, }, {}) else decline(args, data, nil, { n="+I", v="+I", }, {}) end else decline(args, data, { n="A" .. oxy, v="+", }) if args.han or match(args.stem, "pUz$") or match(args.stem, "aryam$") then decline(args, data, { a="a" .. oxy .. "nam", }, { n={ "a" .. oxy .. "nO", { "a" .. oxy .. "nA", note = "Vedic" } }, v={ "anO", { "anA", note = "Vedic" } }, }, { n="a" .. oxy .. "nas", v="anas", a=args.han == true and { "na" .. oxy .. "s", "a" .. oxy .. "nas"} or "na" .. oxy .. "s", }) elseif match(args.stem, "ukz$") or match(args.stem, "yo/?z$") or match(args.stem, "vf/?z$") or match(args.stem, "^tm$") then -- Whitney §426b; Wackernagel vol.III p.267 decline(args, data, { a={"A" .. oxy .. "nam", {"a" .. oxy .. "nam", note = "Vedic" }}, }, { n={ "A" .. oxy .. "nO", { "a" .. oxy .. "nO", note = "Vedic" }, { "a" .. oxy .. "nA", note = "Vedic" } }, v={ "AnO", { "anO", note = "Vedic" }, { "anA", note = "Vedic" } }, }, { n={"A" .. oxy .. "nas", {"a" .. oxy .. "nas", note = "Vedic" }}, v={"Anas", {"anas", note = "Vedic" }}, a="na" .. oxy .. "s", }) else decline(args, data, { a="A" .. oxy .. "nam", }, { n={ "A" .. oxy .. "nO", { "A" .. oxy .. "nA", note = "Vedic" } }, v={ "AnO", { "AnA", note = "Vedic" } }, }, { n="A" .. oxy .. "nas", v="Anas", a="na" .. oxy .. "s", }) end end if not match(args.stem, sa_utils.consonant .. "[NYRnmyrlv]$") or args.contract then decline(args, data, { i="nA" .. oxy, d="ne" .. oxy, ab="na" .. oxy .. "s", g="[abl]", l={ "ni" .. oxy, "+i", { "+" , note = "Vedic"} }, -- Whitney §425c for Vedic form }, { g="no" .. oxy .. "s", }, { g="nA" .. oxy .. "m", }) else decline(args, data, { i="+A", d="+e", ab="+as", g="[abl]", l= { "+i", { "+" , note = "Vedic"} }, -- Whitney §425c for Vedic form }, { g="+os", }, { g="+Am", }) end decline(args, data, nil, { a="[nom]", i="a" .. oxy .. "ByAm", d="[ins]", ab="[ins]", l="[gen]", }, { i="a" .. oxy .. "Bis", d="a" .. oxy .. "Byas", ab="[dat]", l="a" .. oxy .. "su", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit an-การันต์ adjectives") else table.insert(data.categories, "Sanskrit an-การันต์ nouns") end end }) decl_data["in"] = { detect = make_detect("(.+)i" .. sa_utils.accent .. "?n$", function(args) return args.g == "m" or args.g == "n" end) } setmetatable(decl_data["in"], { __call = function(self, args, data) local oxy = match(args.lemma, "i(" .. sa_utils.accent .. "?)n$") data.decl_type = "in-การันต์" stem_final_n = true if args.g ~= "n" then decline(args, data, { n="I" .. oxy, a="i" .. oxy .. "nam", v="+", }, { n={ "+O", { "+A", note = "Vedic" } }, v={ "+O", { "+A", note = "Vedic" } }, }, { n="+as", a="[nom]", v="+as", }) else decline(args, data, { n="i" .. oxy, a="[nom]", v={ "i", "+" }, }, { n="+I", v="+I", }, { n="I" .. oxy .. "ni", a="[nom]", v="Ini", }) end decline(args, data, { i="+A", d="+e", ab="+as", g="[abl]", l="+i", }, { a="[nom]", i="i" .. oxy .. "ByAm", d="[ins]", ab="[ins]", g="+os", l="[gen]", }, { i="i" .. oxy .. "Bis", d="i" .. oxy .. "Byas", ab="[dat]", g="+Am", l="i" .. oxy .. "zu", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit in-การันต์ adjectives") else table.insert(data.categories, "Sanskrit in-การันต์ nouns") end end }) decl_data["at"] = { detect = function(args) if (make_detect("(.+)a" .. sa_utils.accent .. "?t$")(args) or (make_detect("(.+)A" .. sa_utils.accent .. "?t$")(args) and args.participle == true)) -- participles like 'yā́t' and (args.g == "m" or args.g == "n") then return true else return false end end } setmetatable(decl_data["at"], { __call = function(self, args, data) local cons, vow, oxy = match(args.lemma, "([mv]?)([aA])(" .. sa_utils.accent .. "?)t$") -- for present participles if args.lemma:find("[vm]a/?t$") == nil or args.participle == true then data.decl_type = "at-การันต์" if args.at_nom_s == true then -- participles like 'júhvat' if args.g ~= "n" then decline(args, data, { n="a" .. oxy .. "t", a="a" .. oxy .. "tam", v="at", }, { n={ "a" .. oxy .. "tO", { "a" .. oxy .. "tA", note = "Vedic"} }, v={ "atO", { "atA", note = "Vedic"} }, }, { n="a" .. oxy .. "tas", a="a" .. oxy .. "tas", v="atas", }) else decline(args, data, { n="a" .. oxy .. "t", a="[nom]", v="at", }, { n="a" .. oxy .. "tI", v="atI", }, { n="a" .. oxy .. "ti", a="[nom]", v="ati", }) end decline(args, data, { i="+A", d="+e", ab="+as", l="+i", }, { g="+os", }, { g="+Am", }) else if args.g ~= "n" then decline(args, data, { n= vow .. oxy .. "n", a= vow .. oxy .. "ntam", v= vow .. "n", }, { n={ vow .. oxy .. "ntO", { vow .. oxy .. "ntA", note = "Vedic"} }, v={ vow .. "ntO", { vow .. "ntA", note = "Vedic"} }, }, { n= vow .. oxy .. "ntas", a= vow .. "ta" .. oxy .. "s", v= vow .. "ntas", }) else if not args.participle_n_nom_d and not args.nom_d then error('Please indicate nominative dual (identical to feminine stem) with nom_d') else if args.nom_d then local s = mw.text.split(args.nom_d, ",") args.participle_n_nom_d = s[1] args.participle_n_nom_d2 = s[2] end -- neuter nom.du. taken from feminine, see Whitney §443a (though maybe artificial: §447b) args.participle_n_nom_d = IAST_to_SLP.tr(args.participle_n_nom_d) if args.participle_n_nom_d2 then args.participle_n_nom_d2 = IAST_to_SLP.tr(args.participle_n_nom_d2) decline(args, data, {}, { n= {{stem = args.participle_n_nom_d, ""}, {stem = args.participle_n_nom_d2, ""}}, v= {{stem = args.participle_n_nom_d, ""}, {stem = args.participle_n_nom_d2, ""}}, }, {}) else decline(args, data, {}, { n= {{stem = args.participle_n_nom_d, ""}}, v= {{stem = args.participle_n_nom_d, ""}}, }, {}) end if vow == "a" then decline(args, data, {}, {}, { n= {"a" .. oxy .. "nti", {"A" .. oxy .. "nti", note = "Rigvedic"}}, -- see Wackernagel III p 262 a="[nom]", v= {"anti", {"Anti", note = "Rigvedic"}}, }) else decline(args, data, {}, {}, { n= vow .. oxy .. "nti", a="[nom]", v= vow .. "nti", }) end end decline(args, data, { n= vow .. oxy .. "t", a="[nom]", v= vow .. "t", }, {}, {}) end decline(args, data, { i= vow .. "tA" .. oxy, d= vow .. "te" .. oxy, ab= vow .. "ta" .. oxy .. "s", l= vow .. "ti" .. oxy, }, { g= vow .. "to" .. oxy .. "s", }, { g= vow .. "tA" .. oxy .. "m", }) end decline(args, data, { g="[abl]", }, { a="[nom]", i= vow .. oxy .. "dByAm", d="[ins]", ab="[ins]", l="[gen]", }, { i= vow .. oxy .. "dBis", d= vow .. oxy .. "dByas", ab="[dat]", l="+su", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit at-การันต์ adjectives") else table.insert(data.categories, "Sanskrit at-การันต์ nouns") end else -- for nouns suffixed with -vat/-mat data.decl_type = cons .. "at-การันต์" if args.g ~= "n" then decline(args, data, { n="A" .. oxy .. "n", a="a" .. oxy .. "ntam", v={ "an", { "as", note = "Rigvedic"} }, }, { n={ "a" .. oxy .. "ntO", { "a" .. oxy .. "ntA", note = "Vedic"} }, v={ "antO", { "antA", note = "Vedic"} }, }, { n="a" .. oxy .. "ntas", a="a" .. oxy .. "tas", v="antas", }) else decline(args, data, { n="a" .. oxy .. "t", a="[nom]", v="at", }, { n="+I", v="+I", }, { n={{"a" .. oxy .. "nti"}, {"A" .. oxy .. "nti", note = "Rigvedic"}}, -- see Wackernagel III p 258-9 a="[nom]", v={{"anti"}, {"Anti", note = "Rigvedic"}}, }) end decline(args, data, { i="+A", d="+e", ab="+as", g="[abl]", l="+i", }, { a="[nom]", i="a" .. oxy .. "dByAm", d="[ins]", ab="[ins]", g="+os", l="[gen]", }, { i="a" .. oxy .. "dBis", d="a" .. oxy .. "dByas", ab="[dat]", g="+Am", l="+su", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit " .. cons .. "at-การันต์ adjectives") else table.insert(data.categories, "Sanskrit " .. cons .. "at-การันต์ nouns") end end end }) decl_data["añc"] = { detect = make_detect("(.+[aA]" .. sa_utils.accent .. "?Yc)$", function(args) return args.g == "m" or args.g == "n" end) } setmetatable(decl_data["añc"], { __call = function(self, args, data) local cons, vowel, oxy = match(args.lemma, "([yv]?)([aA])(" .. sa_utils.accent .. "?)Yc$") data.decl_type = "añc-การันต์" -- make stem for 'middle' cases args.stem = args.stem:gsub("Yc$", "c") if args.g == "m" then decline(args, data, { n= "+", -- args.lemma a="+am", v= "+", }, { n={ "+O", { "+A", note = "Vedic" } }, v={ "+O", { "+A", note = "Vedic" } }, }, { n="+as", v="+as", }) else -- neuter decline(args, data, { n= "", -- args.stem v= "", a="[nom]" }, {}, { n="+i", v="+i", a="[nom]" }) end decline(args, data, {}, { i= "ByAm", }, { i= "Bis", d= "Byas", l= "su", }) -- changing stem to weakest form if vowel == "A" then -- do nothing elseif match(args.stem, "tirya/?c$") then -- specifically for tiryañc args.stem = args.stem:gsub("ya(/?)c$", "a%1Sc") elseif cons ~= "" then args.stem = args.stem:gsub("([yv])a([/\\]?)c$", function(cons, acc) return (cons == "y" and "I" or "U") .. (acc == "" and "" or "/") .. "c" end) elseif match(args.stem, "dac$") then args.stem = args.stem:gsub("ac$", "Ic") else error("Not supported") end if vowel == "A" or oxy == "" then if args.g == "m" then decline(args, data, nil, nil, { a="as", }) else -- neuter decline(args, data, nil, { n="I", v="I", }) end decline(args, data, { i="A", d="e", ab="as", l="i", }, { g="os", }, { g="Am", }) else -- oxytone accent, showing two possible accentuations (Whitney §410) if args.g == "m" then decline(args, data, nil, nil, { a={"as", {"a" .. oxy .. "s", note = "Rigvedic", mono = true}} }) else decline(args, data, nil, { n= {"I", {"I" .. oxy, note = "Rigvedic", mono = true}}, v= "I", }) end decline(args, data, { i= {"A", {"A" .. oxy, note = "Rigvedic", mono = true}}, d= {"e", {"e" .. oxy, note = "Rigvedic", mono = true}}, ab= {"as", {"a" .. oxy .. "s", note = "Rigvedic", mono = true}}, l= {"i", {"i" .. oxy, note = "Rigvedic", mono = true}}, }, { g= {"os", {"o" .. oxy .. "s", note = "Rigvedic", mono = true}}, }, { g= {"Am", {"A" .. oxy .. "m", note = "Rigvedic", mono = true}}, }) end decline(args, data, { g="[abl]" }, { a="[nom]", d="[ins]", ab="[ins]", l="[gen]", }, { ab="[dat]", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit añc-การันต์ adjectives") end end }) decl_data["o"] = { detect = make_detect("(.+)o" .. sa_utils.accent .. "?$", function(args) return args.g == "m" or args.g == "f" end) } setmetatable(decl_data["o"], { -- 'gó' __call = function(self, args, data) local oxy = match(args.lemma, "o(" .. sa_utils.accent .. "?)$") data.decl_type = "o-การันต์" decline(args, data, { n="O" .. oxy .. "s", v="Os", a="A" .. oxy .. "m", i="+A", d="+e", ab="o" .. oxy .. "s", g="[abl]", l="+i", }, { n={ "A" .. oxy .. "vO", { "A" .. oxy .. "vA", note = "Vedic" } }, v={ "AvO", { "AvA", note = "Vedic" } }, a="[nom]", i="+ByAm", d="[ins]", ab="[ins]", g= "+os", l="[gen]", }, { n="A" .. oxy .. "vas", a={"A" .. oxy .. "s", { "A" .. oxy .. "vas", note = "rare" } }, v="Avas", i="+Bis", d="+Byas", ab="[dat]", g={ "+Am", { "+nAm", note = "Vedic" } }, l="+su", }) table.insert(data.categories, "Sanskrit o-การันต์ nouns") end }) decl_data["O"] = { detect = make_detect("(.+)O" .. sa_utils.accent .. "?$", function(args) return args.g == "m" or args.g == "f" end) } setmetatable(decl_data["O"], { __call = function(self, args, data) local oxy = match(args.lemma, "O(" .. sa_utils.accent .. "?)$") data.decl_type = "au-การันต์" decline(args, data, { n="+s", v="+s", a="+am", i= {{ "+A" .. oxy, mono = true }}, d= {{ "+e" .. oxy, mono = true }}, ab={{ "+a" .. oxy .. "s", mono = true }}, g="[abl]", l= {{ "+i" .. oxy, mono = true }}, }, { n={ "+O", { "+A", note = "Vedic" } }, v={ "+O", { "+A", note = "Vedic" } }, a="[nom]", i= {{"+ByA" .. oxy .. "m", mono = true }}, d="[ins]", ab="[ins]", g= {{ "+o" .. oxy .. "s", mono = true }}, l="[gen]", }, { n="+as", v="+as", a="[nom]", i= {{"+Bi" .. oxy .. "s", mono = true }}, d= {{"+Bya" .. oxy .. "s", mono = true }}, ab="[dat]", g= {{ "+A" .. oxy .. "m", mono = true }}, l= {{ "+su" .. oxy, mono = true }}, }) table.insert(data.categories, "Sanskrit au-การันต์ nouns") end }) decl_data["vāṃs"] = { detect = make_detect("(.+)vA" .. sa_utils.accent .. "?Ms$", function(args) return args.g == "m" or args.g == "n" end) } setmetatable(decl_data["vāṃs"], { __call = function(self, args, data) local oxy = match(args.lemma, "vA(" .. sa_utils.accent .. "?)Ms$") data.decl_type = "vāṃs-การันต์" local weak_stem if match(args.stem, "baBU$") or match(args.stem, "u$") then weak_stem = args.stem .. "v" elseif match(args.stem, "U$") then weak_stem = args.stem:gsub("U$", "uv") elseif match(args.stem, "pIpi$") or match(args.stem, "dI[dD]i$") then weak_stem = args.stem -- the second 'i' of 'śiśrivāṃs' etc. is part of the root elseif match(args.stem, "[aAIuUfFxeEoO]" .. sa_utils.accent .."?M?" .. sa_utils.consonant .. "+i$") or match(args.stem, "vi[Sd]i$") then weak_stem = args.stem:gsub("i$", "") else weak_stem = args.stem end if args.g == "m" then decline(args, data, { n= "vA" .. oxy .. "n", a= "vA" .. oxy .. "Msam", v={ "van", { "vas", note = "Rigvedic"} }, }, { n= "vA" .. oxy .. "MsO", a="[nom]", v= "vAMsO", }, { n= "vA" .. oxy .. "Msas", a={{stem = weak_stem, "u" .. oxy .. "zas"}}, v= "vAMsas", }) else decline(args, data, { n= "va" .. oxy .. "t", a="[nom]", v= "vat" }, { n={{stem = weak_stem, "u" .. oxy .. "zI"}}, a="[nom]", v={{stem = weak_stem, "uzI"}}, }, { n= "vA" .. oxy .. "MsI", a="[nom]", v= "vAMsI" }) end decline(args, data, { i={{stem = weak_stem, "u" .. oxy .. "zA"}}, d={{stem = weak_stem, "u" .. oxy .. "ze"}}, ab={{stem = weak_stem, "u" .. oxy .. "zas"}}, g="[abl]", l={{stem = weak_stem, "u" .. oxy .. "zi"}}, }, { i= "va" .. oxy .. "dByAm", d="[ins]", ab="[ins]", g={{stem = weak_stem, "u" .. oxy .. "zos"}}, l="[gen]" }, { i= "va" .. oxy .. "dBis", d= "va" .. oxy .. "dByas", ab="[dat]", g={{stem = weak_stem, "u" .. oxy .. "zAm"}}, l= "va" .. oxy .. "tsu" }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit vāṃs-การันต์ adjectives") else table.insert(data.categories, "Sanskrit vāṃs-การันต์ nouns") end end }) return decl_data jhx7q8vunro2tipbzl7x0h1n9qs82au 5724856 5724854 2026-06-16T05:11:11Z OctraBot 3198 5724856 Scribunto text/plain local decl_data = {} local sa_utils = require("Module:sa-utilities") local SLP_to_IAST = require("Module:sa-utilities/translit/SLP1-to-IAST") local IAST_to_SLP = require("Module:sa-utilities/translit/IAST-to-SLP1") local match = string.match -- sufficient for SLP1 local umatch = mw.ustring.match -- Make a detection function for ARGS that fetches the stem according to MATCH_RE (which is matched against -- args.lemma and should have the stem in the first capture). ADDL_CONDITION is an optional function of one -- argument (ARGS) that must return true for the detection to happen. local function make_detect(match_re, addl_condition) return function(args) if addl_condition and not addl_condition(args) then return false end local stem = match(args.lemma, match_re) if stem then args.stem = stem return true else return false end end end -- Construct all or part of a given noun's declension. Each of SG, DU and PL is a table, whose keys are -- as follows: -- -- n = nominative -- a = accusative -- v = vocative -- i = instrumental -- d = dative -- ab = ablative -- g = genitive -- l = locative -- -- The corresponding value is one of the following: -- 1. a "copy spec" such as "[ins]", meaning to copy from the instrumental of the same number; -- 2. a single string (specifying an ending); or -- 3. a list of specs, where a spec is either a string (an ending) or a table of the form -- {"ENDING", stem = "STEM", mono = TRUE/FALSE, note = "NOTE"}. The latter format lets you explicitly specify what -- the stem is, whether the form is monosyllabic, and what the footnote is. All named keys are optional. -- -- In forms 2 and 3, if the ending begins with +, the stem defaults to args.lemma; otherwise it defaults to args.stem. local function decline(args, data, sg, du, pl) local cases = {n="nom", a="acc", v="voc", i="ins", d="dat", ab="abl", g="gen", l="loc"} local function process_number(endings, tag) if not endings then return end for case, es in pairs(endings) do if type(es) == "string" and es:find("^%[") then -- copy from another case; skip and handle later else if type(es) == "string" then es = {es} end local forms = {} for i, e in ipairs(es) do local stem, mono, accent_override, note if type(e) == "table" then stem = e.stem mono = e.mono accent_override = e.accent_override note = e.note e = e[1] end -- reduce Vedic forms to zero in case of novedic parameter if args.novedic == true and note and (match(note, "[Vv]edic$") or umatch(note, "Br[aā]hma[nṇ]a")) then stem = ""; e = ""; note = "" elseif args.norigvedic == true and note and match(note, "Rigvedic$") then stem = ""; e = ""; note = "" else if e:find("^%+") then if stem then error("Internal error: Can't use + in an ending when stem is explicitly given") end e = e:gsub("^%+", "") stem = args.lemma elseif not stem then stem = args.stem end forms[i] = sa_utils.internal_sandhi({ stem = stem, ending = e, has_accent = args.has_accent, recessive = case == "v", no_syncope = no_syncope, mono = mono, root = root, ambig_final = args.ambig_final, diaspirate = args.diaspirate, accent_override = accent_override, han = args.han, stem_final_n = stem_final_n, voc_svar = args.voc_svar, }) if note and note~= "" then forms["note" .. i] = note end end end data.forms[cases[case] .. "_" .. tag] = forms end end -- Now handle cases copied from another. for case, es in pairs(endings) do if type(es) == "string" and es:find("^%[") then -- copy from another case; skip and handle later local other_case = es:match("^%[(.*)%]$") if not other_case then error("Internal error: Unrecognized copy case spec " .. es) end local other_slot = other_case .. "_" .. tag local value = data.forms[other_slot] if not value then error("Internal error: Slot '" .. other_slot .. "' to copy from is empty") end local this_slot = cases[case] .. "_" .. tag if data.forms[this_slot] then error("Internal error: A value already exists for slot '" .. this_slot .. "' when copying from '" .. other_slot .. "'") end data.forms[cases[case] .. "_" .. tag] = value end end end process_number(sg, "s") process_number(du, "d") process_number(pl, "p") end decl_data["numeral"] = { detect = make_detect("(.+)a/?[nz]?$", function(args) return args.g == "gneut" end) } setmetatable(decl_data["numeral"], { __call = function(self, args, data) local oxy = match(args.lemma, "(/?)[nz]?$") local acc = match(args.lemma, "(/?)[^/]*$") data.decl_type = "numeral" if match(args.lemma, "a/?z$") then -- ṣaṣ decline(args, data, {}, {}, { n="+", a="[nom]", v="[nom]", i="aqBi" .. oxy .. "s", d="aqBya" .. oxy .. "s", ab="[dat]", g="aRRA" .. oxy .. "m", l="awsu" .. oxy, }) else -- pañca(n), etc. decline(args, data, {}, {}, { n="a" .. oxy, a="[nom]", v="a", i={{"a" .. acc .. "Bis", accent_override = true}}, d={{"a" .. acc .. "Byas", accent_override = true}}, ab="[dat]", g={{"AnA" .. acc .. "m", accent_override = true}}, l={{"a" .. acc .. "su", accent_override = true}}, }) end -- no categorisation? end }) decl_data["a"] = { detect = make_detect("(.+)a" .. sa_utils.accent .. "?$", function(args) return args.g == "m" or args.g == "n" end) } setmetatable(decl_data["a"], { __call = function(self, args, data) local oxy = match(args.lemma, "(" .. sa_utils.accent .. "?)$") if args.pronominal then data.decl_type = "หน่วยสรรพนาม a-การันต์" else data.decl_type = "a-การันต์" end if args.g == "m" then decline(args, data, { n="a" .. oxy .. "s", a="a" .. oxy .. "m", v="a" }, { n={ "O" .. oxy, { "A" .. oxy, note = "พระเวท" } }, v={ "O", { "A", note = "พระเวท" } } }, { a="A" .. oxy .. "n", }) if args.pronominal then decline(args, data, {}, {}, { n="e" .. oxy, v="e" }) else decline(args, data, {}, {}, { n={"A" .. oxy .. "s", {"A" .. oxy .. "sas", note="พระเวท"}}, v={"As", {"Asas", note="พระเวท"}} }) end else decline(args, data, { n="a" .. oxy .. "m", a="[nom]", v="a" }, { n="e" .. oxy, v="e" }, { n={"A" .. oxy .. "ni", {"A" .. oxy, note="พระเวท"}}, a="[nom]", v={"Ani", {"A", note="พระเวท"}} }) end if args.pronominal then decline(args, data, { d="a" .. oxy .. "smE", ab="a" .. oxy .. "smAt", l="a" .. oxy .. "smin" }, {}, { g="e" .. oxy .. "zAm" }) else decline(args, data, { d="A" .. oxy .. "ya", ab="A" .. oxy .. "t", l="e" .. oxy }, {}, { g="A" .. oxy .. "nAm" }) end decline(args, data, { -- For nouns on -tva(na), RV has only three instr.sg. with -ena (1.110.4, 8.18.13, 10.37.9); see Lanman p.335f. for forms on -ā. -- This avoidance is phonetically perfectly understandable for -tvanā instead of -tvanena, and with abstract nouns like this -- (predominantly used in the singular), there wouldn't be much cause for confusion with the nom./acc. plural. -- (detection of oxytone accent to avoid gerundives on -tva) i= match(args.lemma, "tva?n?a/$") and {"e" .. oxy .. "na", {"A" .. oxy, note = "พระเวท"}} or "e" .. oxy .. "na", g="a" .. oxy .. "sya" }, { a="[nom]", i="A" .. oxy .. "ByAm", d="[ins]", ab="[ins]", -- see Wackernagel III, p.98-99, §48a g= match(args.stem, ".y$") and {"a" .. oxy .. "yos", {"o" .. oxy .. "s", note = "พระเวท"}} or "a" .. oxy .. "yos", l="[gen]" }, { i={ "E" .. oxy .. "s", { "e" .. oxy .. "Bis", note = "พระเวท" } }, d="e" .. oxy .. "Byas", ab="[dat]", l="e" .. oxy .. "zu" }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit a-การันต์ adjectives") else table.insert(data.categories, "Sanskrit a-การันต์ nouns") end end }) decl_data["iu"] = { detect = make_detect("(.+)[iu]" .. sa_utils.accent .. "?$") } setmetatable(decl_data["iu"], { __call = function(self, args, data) local vowel, oxy = match(args.lemma, "([iu])(" .. sa_utils.accent .. "?)$") data.decl_type = vowel .. "-การันต์" if match(args.lemma, "[sz]a/?Ki/$") and not (args.decl and match(args.decl, "i")) then -- in classical possibly regular in compounds (see Wackernagel vol.III p.141), for which use 'decl=i' decline(args, data, { n="A" .. oxy, a="A" .. oxy .. "yam", i={{stem = args.stem .. vowel, "A" .. oxy }}, d={{stem = args.stem .. vowel, "e" .. oxy }}, ab={{stem = args.stem .. vowel, "u" .. oxy .. "r" }}, l={{stem = args.stem .. vowel, "O" .. oxy }}, -- Wackernagel suggests older *sákhayi (ibid.) v="e", }, { n={"A" .. oxy .. "yO", {"A" .. oxy .. "yA", note = "พระเวท"}}, v={"A" .. oxy .. "yO", {"A" .. oxy .. "yA", note = "พระเวท"}}, g={{stem = args.stem .. vowel, "o" .. oxy .. "s" }}, }, { n="A" .. oxy .. "yas", v="Ayas", a="I" .. oxy .. "n", }) elseif args.g == "m" then if vowel == "i" then decline(args, data, { d={{stem = args.stem .. "a" .. oxy .. "y", "e" }}, l={ "O" .. oxy, { "A" .. oxy, note = "พระเวท"}}, -- Whitney §336f }, {}, {}) elseif match(args.stem, sa_utils.consonant .. sa_utils.consonant .. "$") then -- the dative ending -ve (vs. -ave) does not occur if the stem has two consonants before -u decline(args, data, { d={{stem = args.stem .. "a" .. oxy .. "v", "e" }}, l="O" .. oxy, }, {}, {}) else decline(args, data, { d={{stem = args.stem .. "a" .. oxy .. "v", "e" }, {stem = args.stem .. "v", "e" .. oxy, note = "พระเวท"}}, l="O" .. oxy, }, {}, {}) end if match(args.stem, sa_utils.consonant .. sa_utils.consonant .. "$") then decline(args, data, { ab={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "s"}}, }, {}, {}) else decline(args, data, { ab={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "s"}, {stem = args.stem .. vowel, "a" .. oxy .. "s", note = "พระเวท"}}, }, {}, {}) end decline(args, data, { n="+s", a="+m", i={ "+nA", {stem = args.stem .. vowel, "A" .. oxy, note = "พระเวท" } }, v={{stem= args.stem .. sa_utils.up_one_grade[vowel], ""}}, }, { n={{stem = args.stem .. sa_utils.lengthen[vowel..oxy], ""}}, v={{stem = args.stem .. sa_utils.lengthen[vowel], ""}}, g={{stem = args.stem .. vowel, "o" .. oxy .. "s"}}, }, { n={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "as"}}, a={{stem = args.stem ..sa_utils.lengthen[vowel..oxy], "n"}}, v={{stem = args.stem .. sa_utils.up_one_grade[vowel], "as"}}, }) elseif args.g == "f" then if vowel == "i" then decline(args, data, { i={{stem = args.stem .. vowel, "A" .. oxy}, {"I" .. oxy, note = "พระเวท"}}, -- Whitney §336c l={ "O" .. oxy, {stem = args.stem .. vowel, "A" .. oxy .. "m" }, { "A" .. oxy, note = "พระเวท"} }, }, {}, {}) else decline(args, data, { i={{stem = args.stem .. vowel, "A" .. oxy }}, l={ "O" .. oxy, {stem = args.stem .. vowel, "A" .. oxy .. "m" } }, }, {}, {}) end decline(args, data, { n="+s", a="+m", -- the Rigvedic dat.sg. on -ī (mostly ūtī́) seems too rare to extrapolate to every stem (see also Macdonell p.282) d={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "e"}, {stem = args.stem .. vowel, "E" .. oxy } }, ab={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "s"}, {stem = args.stem .. vowel, "A" .. oxy .. "s" }, {stem = args.stem .. vowel, "E" .. oxy, note = "พราหมณะ"} }, v=sa_utils.up_one_grade[vowel], }, { n=sa_utils.lengthen[vowel..oxy], v=sa_utils.lengthen[vowel], g={{stem = args.stem .. vowel, "o" .. oxy .. "s"}}, }, { n={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "as"}}, a=sa_utils.lengthen[vowel..oxy] .. "s", v={{stem = args.stem .. sa_utils.up_one_grade[vowel], "as"}}, }) else -- neuter if args.adj == true then -- for difference with nouns see Whitney §344 if vowel == "i" then decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "y", "e"}}, ab={ "+nas", {stem = args.stem .. "e" .. oxy, "s"}}, l={ "+ni", "O" .. oxy, {"A" .. oxy, note = "พระเวท"}}, -- Whitney §336f + §340f }, {}, {}) elseif match(args.stem, sa_utils.consonant .. sa_utils.consonant .. "$") then -- the dative ending -ve (vs. -ave) does not occur if the stem has two consonants before -u; similar for abl./gen. -vas (vs. -os) decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "v", "e"}}, ab={ "+nas", {stem = args.stem .. "o" .. oxy, "s"}}, l={ "+ni", "O" .. oxy}, }, {}, {}) else decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "v", "e"}, {stem = args.stem .. "v", "e" .. oxy, note = "พระเวท"}}, ab={ "+nas", {stem = args.stem .. "o" .. oxy, "s"}, {stem = args.stem .. vowel, "a" .. oxy .. "s", note = "พระเวท"}}, l={ "+ni", "O" .. oxy}, }, {}, {}) end decline(args, data, {}, { g={ "+nos", {stem = args.stem .. vowel, "o" .. oxy .. "s" }}, }, {}) else -- nouns if vowel == "i" then decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "y", "e", note = "พระเวท" }}, ab={ "+nas", {stem = args.stem .. "e" .. oxy, "s", note = "พระเวท"}}, l={ "+ni", {"O" .. oxy, note = "พระเวท"}, {"A" .. oxy, note = "พระเวท"}}, -- Whitney §336f + §340f }, {}, {}) elseif match(args.stem, sa_utils.consonant .. sa_utils.consonant .. "$") then -- the dative ending -ve (vs. -ave) does not occur if the stem has two consonants before -u; similar for abl./gen. -vas (vs. -os) decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "v", "e", note = "พระเวท" }}, ab={ "+nas", {stem = args.stem .. "o" .. oxy, "s", note = "พระเวท"}}, l={ "+ni", {"O" .. oxy, note = "พระเวท"}}, }, {}, {}) else decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "v", "e", note = "พระเวท" }, {stem = args.stem .. "v", "e" .. oxy, note = "พระเวท"}}, ab={ "+nas", {stem = args.stem .. "o" .. oxy, "s", note = "พระเวท"}, {stem = args.stem .. vowel, "a" .. oxy .. "s", note = "พระเวท"}}, l={ "+ni", {"O" .. oxy, note = "พระเวท"}}, }, {}, {}) end decline(args, data, {}, { g={ "+nos", {stem = args.stem .. vowel, "o" .. oxy .. "s", note = "พระเวท" }}, }, {}) end decline(args, data, { n="+", a="[nom]", i={ "+nA", {stem = args.stem .. vowel, "A" .. oxy, note = "พระเวท" }}, v={ "+", {stem= args.stem .. sa_utils.up_one_grade[vowel], ""}}, }, { n={ "+nI", {stem = args.stem .. vowel, "I" .. oxy, note = "พระเวท" }}, v={ "+nI", {stem = args.stem .. vowel, "I", note = "พระเวท" }}, }, { n={{ stem = args.stem .. sa_utils.lengthen[vowel .. oxy], "ni" }, { "+", note = "พระเวท"}, { stem = args.stem .. sa_utils.lengthen[vowel..oxy], "", note = "พระเวท"}}, a="[nom]", v={{ stem = args.stem .. sa_utils.lengthen[vowel], "ni" }, { "+", note = "พระเวท"}, { stem = args.stem .. sa_utils.lengthen[vowel], "", note = "พระเวท"}}, }) end decline(args, data, { g="[abl]", }, { a="[nom]", i="+ByAm", d="[ins]", ab="[ins]", l="[gen]", }, { i="+Bis", d="+Byas", ab="[dat]", g={{ stem = args.stem .. sa_utils.lengthen[vowel], "nA" .. (oxy ~= "" and "/" or "") .. "m"}}, l="+su", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit " .. vowel .. "-การันต์ adjectives") else table.insert(data.categories, "Sanskrit " .. vowel .. "-การันต์ nouns") end end }) decl_data["A"] = { detect = function(args) if make_detect("(.+)A" .. sa_utils.accent .. "?$")(args) then args.true_mono = sa_utils.is_monosyllabic(args.lemma) return true else return false end end } setmetatable(decl_data["A"], { __call = function(self, args, data) local oxy = match(args.lemma, "(" .. sa_utils.accent .. "?)$") if args.g == "n" then -- It seems better not to base a neuter declension on the masculine nominatives on -ās accompanying neuter nouns. -- See Whitney §367b and Wackernagel vol.III p.129 error("The neuter of radical stems in -ā ends in -a.") end if args.pronominal then data.decl_type = "หน่วยสรรพนาม ā-การันต์" else data.decl_type = "ā-การันต์" end if not (args.root or args.true_mono) or (args.true_mono and args.root == false) then -- derived stem if args.g == "m" then error("Add 'root=1' in case this is a root noun or adjective.") else table.insert(data.categories, "Sanskrit ā-การันต์ nouns") end if args.pronominal then decline(args, data, { d="a" .. oxy .. "syE", ab={"a" .. oxy .. "syAs", {"a" .. oxy .. "syE", note = "พราหมณะ"}}, l="a" .. oxy .. "syAm" }, {}, { g="+sAm" }) else decline(args, data, { d="+yE", ab={"+yAs", {"+yE", note = "พราหมณะ"}}, l="+yAm" }, {}, { g="+nAm" }) end decline(args, data, { n="+", i={ "a" .. oxy .. "yA", { "+", note = "พระเวท" } }, v="e", }, { n="e" .. oxy, g="a" .. oxy .. "yos", v="e", }, { a="+s", }) else if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit มูลการันต์ adjectives on -ā") else table.insert(data.categories, "Sanskrit มูลการันต์ nouns on -ā") end if args.g == "m" then data.general_notes = {"In practice, this declension only occurs in early Vedic<br> and is later replaced by a-stem declension."} else data.general_notes = {"In practice, this declension only occurs in early Vedic<br> and is later replaced by regular ā-stem declension."} end decline(args, data, { n="+s", i="+", d="e" .. oxy, ab="a" .. oxy .. "s", l="i" .. oxy, v="+s", }, { n={ "O" .. oxy, { "A" .. oxy, note = "พระเวท" } }, g="o" .. oxy .. "s", v={ "O", { "A", note = "พระเวท" } } }, { a={ "+s", { "a" .. oxy .. "s", note = "Perhaps" } }, g={ "+nAm", { "+Am", note = "Perhaps" } }, }) end decline(args, data, { a="+m", g="[abl]", }, { a="[nom]", i="+ByAm", d="[ins]", ab="[ins]", l="[gen]", }, { n="+s", i="+Bis", d="+Byas", ab="[dat]", l="+su", v="+s", }) end }) decl_data["IU"] = { detect = function(args) if make_detect("(.+)[IU]" .. sa_utils.accent .. "?$")(args) then args.true_mono = sa_utils.is_monosyllabic(args.lemma) return true else return false end end } setmetatable(decl_data["IU"], { __call = function(self, args, data) local vowel, oxy = match(args.lemma, "([IU])(" .. sa_utils.accent .. "?)$") data.decl_type = SLP_to_IAST.tr(vowel) .. "-การันต์" if args.g == "n" then -- it seems better to mention the one or two Vedic forms that could be interpreted -- as coming from a neuter ī-stem (see Whitney §367b) separately error("The neuter of radical stems in -ī/ū ends in -i/u.") end if not (args.root or args.true_mono) or (args.true_mono and args.root == false) or args.han then -- derived stem if args.vrki then -- with original vṛkī-declension (Whitney §355 ff.), given as older forms of later classical declension if vowel == "U" then error() elseif args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit ī-การันต์ adjectives with original vṛkī́-declension") else table.insert(data.categories, "Sanskrit ī-การันต์ nouns with original vṛkī́-declension") end data.general_notes = {"This stem originally had ''vṛkī́''-declension."} decline(args, data, { n={"+", {"+s", note = "พระเวท"}}, a={"+m", {"+am", note = "พระเวท"}}, i={{stem = args.stem .. vowel, "A" .. oxy}, {"+A", note = "พระเวท"}}, d={{stem = args.stem .. vowel, "E" .. oxy}, {"+e", note = "พระเวท"}}, ab={{stem = args.stem .. vowel, "A" .. oxy .. "s"}, {"+as", note = "พระเวท"}, {stem = args.stem .. vowel, "E" .. oxy, note = "พราหมณะ"}}, l={{stem = args.stem .. vowel, "A" .. oxy .. "m"}, {"+", note = "พระเวท"}}, -- Wackernagel III, §86c, p.170 }, { n={"+O", {"+A", note = "พระเวท"}}, v={"+O", {"+A", note = "พระเวท"}}, g={{stem = args.stem .. vowel, "o" .. oxy .. "s"}, {"+os", note = "พระเวท"}}, }, { n="+as", v="+as", a={"+s", {"+as", note = "พระเวท"}}, g="+nAm", }) elseif vowel == "I" then -- devī-declension if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit ī-การันต์ adjectives") else table.insert(data.categories, "Sanskrit ī-การันต์ nouns") end decline(args,data, { n="+", a="+m", i={{stem = args.stem .. vowel, "A" .. oxy}}, d={{stem = args.stem .. vowel, "E" .. oxy}}, ab={{stem = args.stem .. vowel, "A" .. oxy .. "s"}, {stem = args.stem .. vowel, "E" .. oxy, note = "พราหมณะ"}}, l={{stem = args.stem .. vowel, "A" .. oxy .. "m"}}, }, { n={ "+O", { "+", note = "พระเวท" } }, v={ "+O", { "+", note = "พระเวท" } }, g={{stem = args.stem .. vowel, "o" .. oxy .. "s"}}, }, { n={ "+as", { "+s", note = "พระเวท" } }, v={ "+as", { "+s", note = "พระเวท" } }, a="+s", g= oxy == "" and "+nAm" or {"+nAm", { stem = args.stem .. vowel, "nA" .. oxy .. "m", note = "Rigvedic"} }, -- Whitney §319a }) else -- ū-stems, with Whitney's declension at §356a given as older forms of §364, see Wackernagel vol.III p.189 if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit ū-การันต์ adjectives") -- probably only bahuvrihis like 'sarvatanū' else table.insert(data.categories, "Sanskrit ū-การันต์ nouns") end if match(args.stem, "y$") or match(args.stem, "agr$") or match(args.stem, "kadr$") or match(args.stem, "bIBats") then -- with Vedic -úv-, see Macdonell p.290 §384a decline(args,data, { a={"+m", {"+am", note = "พระเวท", mono = true}}, i={{stem = args.stem .. vowel, "A" .. oxy}, {"+A", note = "พระเวท", mono = true}}, d={{stem = args.stem .. vowel, "E" .. oxy}, {"+e", note = "พระเวท", mono = true}}, ab={{stem = args.stem .. vowel, "A" .. oxy .. "s"}, {"+as", note = "พระเวท", mono = true}, {stem = args.stem .. vowel, "E" .. oxy, note = "พราหมณะ"}}, l={{stem = args.stem .. vowel, "A" .. oxy .. "m"}, {"+i", note = "พระเวท", mono = true}, {"+", note = "พระเวท"}}, }, { n={"+O", {"+A", note = "พระเวท", mono = true}}, v={"+O", {"+A", note = "พระเวท", mono = true}}, g={{stem = args.stem .. vowel, "o" .. oxy .. "s"}, {"+os", note = "พระเวท", mono = true}}, }, { n={"+as", {"+as", note = "พระเวท", mono = true}}, v={"+as", {"+as", note = "พระเวท", mono = true}}, a={"+s", {"+as", note = "พระเวท", mono = true}}, }) else decline(args,data, { a={"+m", {"+am", note = "พระเวท"}}, i= oxy == "" and "+A" or {{stem = args.stem .. vowel, "A" .. oxy}, {"+A", note = "พระเวท"}}, d={{stem = args.stem .. vowel, "E" .. oxy}, {"+e", note = "พระเวท"}}, ab={{stem = args.stem .. vowel, "A" .. oxy .. "s"}, {"+as", note = "พระเวท"}, {stem = args.stem .. vowel, "E" .. oxy, note = "พราหมณะ"}}, l={{stem = args.stem .. vowel, "A" .. oxy .. "m"}, {"+i", note = "พระเวท"}, {"+", note = "พระเวท"}}, -- Wackernagel III, §97b, p.188 }, { n={"+O", {"+A", note = "พระเวท"}}, -- duals on -ū for ū-stems do not occur v={"+O", {"+A", note = "พระเวท"}}, g= oxy == "" and "+os" or {{stem = args.stem .. vowel, "o" .. oxy .. "s"}, {"+os", note = "พระเวท"}}, }, { n="+as", -- RV 4.41.8 has 'yuvayū́s', but it seems better to simply give this at the relevant lemma v="+as", a={"+s", {"+as", note = "พระเวท"}}, }) end decline(args,data, { n="+s", }, {}, { g="+nAm", }) end decline(args, data, { g="[abl]", v=sa_utils.shorten[vowel], }, { a="[nom]", i="+ByAm", d="[ins]", ab="[ins]", l="[gen]", }, { i="+Bis", d="+Byas", ab="[dat]", l="+su", }) else if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit มูลการันต์ adjectives on -" .. SLP_to_IAST.tr(vowel)) else table.insert(data.categories, "Sanskrit มูลการันต์ nouns on -" .. SLP_to_IAST.tr(vowel)) end if args.true_mono then -- rout nouns, Whitney §351 no_syncope = true if args.g == "f" then -- see Wackernagel vol.III p.181 decline(args, data, { d={{ "+e" .. oxy, mono = true }, { "+E" .. oxy, mono = true, note = "Later Sanskrit" } }, ab={{ "+a" .. oxy .. "s", mono = true }, { "+A" .. oxy .. "s", mono = true, note = "Later Sanskrit" } }, l={{ "+i" .. oxy, mono = true }, { "+A" .. oxy .. "m", mono = true, note = "Later Sanskrit" } }, }) else decline(args, data, { d={{ "+e" .. oxy, mono = true } }, ab={{ "+a" .. oxy .. "s", mono = true } }, l={{ "+i" .. oxy, mono = true } }, }) end decline(args, data, { i={{ "+A" .. oxy, mono = true}}, }, { i={{"+ByA" .. oxy .. "m", mono = true}}, g={{"+o" .. oxy .. "s", mono = true}}, }, { i={{"+Bi" .. oxy .. "s", mono = true}}, d={{"+Bya" .. oxy .. "s", mono = true}}, g={{"+A" .. oxy .. "m", mono = true }, { "+nA" .. oxy .. "m", mono = true } }, l={{"+su" .. oxy, mono = true}}, }) else -- root terms in compounds, Whitney §352; I'd suggest to give two tables when both contracted and non-contracted forms occur -- see Wackernagel III §91a (p.179) for ī, and §100a + §100eα (p.192-3) for ū; Macdonell: p.268 + 288 -- Taking as default that ū-stems with accent (rule of thumb for Vedic terms) are not contracted. To be overrided with 'contract=1' if args.contract == false or (args.contract ~= true and (match(args.stem, sa_utils.consonant .. sa_utils.consonant .. "$") or vowel == "U" and (match(args.lemma, sa_utils.accent) or match(args.stem, "B$") or match(args.stem, "jo/?g$")) or vowel == "I" and (match(args.stem, "avadyaB$") or (match(args.stem, "D$") and match(args.stem, sa_utils.accent))))) then no_syncope = true -- -Ciy-/-Cuv- when followed by vowel decline(args, data, { l= args.g == "f" and {"+i", {"+Am", note = "Later Sanskrit"}} or "+i", }) else decline(args, data, { l= args.g == "f" and {{ stem = args.stem .. sa_utils.vowel_to_cons[vowel], "i" .. (oxy ~= "" and "\\" or "") }, {"+Am", note = "Later Sanskrit"}} or {{ stem = args.stem .. sa_utils.vowel_to_cons[vowel], "i" .. (oxy ~= "" and "\\" or "") }}, }) end if args.g == "f" then -- see Wackernagel vol.III p.181 decline(args, data, { d={ "+e", { "+E", note = "Later Sanskrit" } }, ab={ "+as", { "+As", note = "Later Sanskrit" } }, }) else decline(args, data, { d= "+e", ab= "+as", }) end decline(args, data, { i= "+A", }, { i="+ByAm", g= "+os", }, { i="+Bis", d="+Byas", g= {"+Am", "+nAm"}, l="+su", }) end decline(args, data, { n= "+s", v= "+s", a= "+am", g="[abl]", }, { n= { "+O", { "+A", note = "พระเวท"}}, v= { "+O", { "+A", note = "พระเวท"}}, a="[nom]", d="[ins]", ab="[ins]", l="[gen]", }, { n= "+as", v= "+as", a="[nom]", ab="[dat]", }) end end }) decl_data["f"] = { -- for nouns in ṛ detect = make_detect("(.+)f" .. sa_utils.accent .. "?$") } setmetatable(decl_data["f"], { -- for nouns in ṛ __call = function(self, args, data) if args.g == "f" and args.r_stem_a == "ā" and match(args.stem, "t$") and not match(args.stem, "^s?t$") then error("The feminine of adjectives in -tṛ ends in -trī.") end local oxy = match(args.lemma, "(" .. sa_utils.accent .. "?)$") data.decl_type = SLP_to_IAST.tr("f") .. "-การันต์" if args.g == "n" then decline(args, data, { -- for neuter -úr, see Wackernagel, III, p.204, §107b (denies 'sthātar' and 'sthātṝ́n' are neuter sg.) -- all cases of -tári given as nom./acc.n.sg. by Macdonell (p.243) are translated as locatives by Jamison & Brereton n={"f" .. oxy, {"u" .. oxy .. "r", note = "Rigvedic"}}, a="[nom]", i={"+nA", "rA" .. oxy}, d={"+ne", "re" .. oxy}, ab={"+nas", "u" .. oxy .. "r"}, l={"+ni", "a" .. oxy .. "ri"}, v={ "f", "ar" }, }, { n="+nI", g={"+nos", "ro" .. oxy .. "s"}, v="+nI", }, { n="F" .. oxy .. "ni", a="[nom]", v="Fni", }) else if not args.r_stem_a then error('Please specify the length of the accusative singular vowel with r_stem_a = "a" or "ā".') else args.r_stem_a = IAST_to_SLP.tr(args.r_stem_a) end decline(args, data, { n="A" .. oxy, a=args.r_stem_a .. oxy .. "ram", i="rA" .. oxy, d="re" .. oxy, ab="u" .. oxy .. "r", l="a" .. oxy .. "ri", v="ar", }, { n={ args.r_stem_a .. oxy .. "rO", { args.r_stem_a .. oxy .. "rA", note = "พระเวท" } }, g="ro" .. oxy .. "s", v={ args.r_stem_a .. "rO", { args.r_stem_a .. "rA", note = "พระเวท" } }, }, { n=args.r_stem_a .. oxy .. "ras", a=args.g == "f" and "F" .. oxy .. "s" or "F" .. oxy .. "n", v=args.r_stem_a .. "ras", }) end decline(args, data, { g="[abl]", }, { a="[nom]", i="+ByAm", d="[ins]", ab="[ins]", l="[gen]", }, { i="+Bis", d="+Byas", ab="[dat]", g={{stem = args.stem .. "F", "nA" .. (oxy ~= "" and "/" or "") .. "m"}}, l="+su", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit " .. SLP_to_IAST.tr("f") .. "-การันต์ adjectives") else table.insert(data.categories, "Sanskrit " .. SLP_to_IAST.tr("f") .. "-การันต์ nouns") end end }) decl_data["root"] = { -- for root nouns ending on -k/g/gh/c/j/ṭ/ḍ/th/d/dh/p/bh/m/r/ṣ/ś/h + -āt/it/ut/ṛt/akt + -ās/os detect = function(args) -- capture of vowel needed for accent if (make_detect("(.*)" .. sa_utils.vowel .. sa_utils.accent .. "?r?[kgGcjwqTdDpBmrzSh]$")(args) or (make_detect("(.*)[Aiuf]" .. sa_utils.accent .. "?t$")(args) and not args.participle == true) or make_detect("(.*)a" .. sa_utils.accent .. "?kt$")(args) -- nákt- or make_detect("(.*)[Ao]" .. sa_utils.accent .. "?s$")(args) or (args.root == true and make_detect("(.*)[ai]" .. sa_utils.accent .. "?[ts]$")(args) )) -- + āśis + numerals like triṃśát and args.g ~= "gneut" then args.true_mono = sa_utils.is_monosyllabic(args.lemma) return true else return false end end } setmetatable(decl_data["root"], { __call = function(self, args, data) local vowel, oxy, extra, cons = match(args.lemma, "(" .. sa_utils.vowel .. ")(" .. sa_utils.accent .. "?)(r?)([kgGcjwqtTdDpBmrzShs]t?)$") if match(cons, "[jSh]") ~= nil and not args.ambig_final then error('Please specify the final consonant in the nominative singular with ambig_final = "k" or "ṭ".') elseif args.ambig_final then -- also for cases like sarágh > saráṭ or potentially anuṣṭúbh > anuṣṭúk args.ambig_final = IAST_to_SLP.tr(args.ambig_final) end local nasal = cons:gsub(".", sa_utils.homorganic_nasal) data.decl_type = "มูลการันต์" root = true -- neuter nom. plural (Whitney §389c, although saying that these forms with infixed nasal are not attested for nouns) if args.g == "n" then if match(cons, "[mr]") == nil and extra == "" then decline(args, data, nil, nil, { n= {{stem = args.stem .. vowel .. oxy .. nasal .. cons, "i"}}, v= {{stem = args.stem .. vowel .. nasal .. cons, "i"}}, }) else decline(args, data, nil, nil, { n= "+i", v= "+i", }) end end if args.true_mono then -- monosyllabic stem if args.g ~= "n" then decline(args, data, { -- nom.sg. -s is an 'invisible' (historical) ending to provoke vowel lengthening in -ir/-ur stems, see Whitney §392 -- this ending should be removed by internal_sandhi at an early stage n="+s", a="+am", v="+s", }, { n={ "+O", { "+A", note = "พระเวท" } }, v={ "+O", { "+A", note = "พระเวท" } }, }, { n="+as", v="+as", }) else decline(args, data, { n= "+", a="[nom]", v= "+" }, { n= {{"+I" .. oxy, mono = true }}, v= "+I" }, { }) end decline(args, data, { i= {{ "+A" .. oxy, mono = true }}, d= {{ "+e" .. oxy, mono = true }}, ab= {{ "+a" .. oxy .. "s", mono = true }}, g="[abl]", l= {{ "+i" .. oxy, mono = true }}, }, { a= "[nom]", i= {{ "+ByA" .. oxy .. "m", mono = true }}, d="[ins]", ab="[ins]", g= {{ "+o" .. oxy .. "s", mono = true }}, l="[gen]", }, { a= "[nom]", i= {{ "+Bi" .. oxy .. "s", mono = true }}, d= {{ "+Bya" .. oxy .. "s", mono = true }}, ab="[dat]", g= {{ "+A" .. oxy .. "m", mono = true }}, l= {{ "+su" .. oxy, mono = true }}, }) else -- polysyllabic stem, no accent on ending if args.g ~= "n" then decline(args, data, { n="+s", a="+am", v="+s", }, { n={ "+O", { "+A", note = "พระเวท" } }, v={ "+O", { "+A", note = "พระเวท" } }, }, { n="+as", v="+as" }) else decline(args, data, { n= "+", a="[nom]", v= "+" }, { n= "+I", v= "+I", }, { }) end decline(args, data, { i="+A", d="+e", ab="+as", g="[abl]", l="+i", }, { a= "[nom]", i= "+ByAm", d="[ins]", ab="[ins]", g="+os", l="[gen]", }, { a= "[nom]", i= "+Bis", d= "+Byas", ab="[dat]", g= "+Am", l= "+su", }) end if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit consonantal มูลการันต์ adjectives") else table.insert(data.categories, "Sanskrit consonantal มูลการันต์ nouns") end end }) decl_data["[aiu]s"] = { detect = make_detect("(.+)[aiu]" .. sa_utils.accent .. "?s$") } setmetatable(decl_data["[aiu]s"], { __call = function(self, args, data) local vowel, oxy = match(args.lemma, "([aiu])(" .. sa_utils.accent .. "?)s$") data.decl_type = vowel .. "s-การันต์" if (match(args.stem, "[^aAiK/\\]"..sa_utils.accent.."?y$") or match (args.stem, "jyA/?y$")) and vowel == "a" then -- comparative comp = "1" else comp = "0" end if comp == "1" and args.g ~= "n" then if args.g == "m" then decline(args, data, { n="An", a="AMsam", v={"an", { "+", note = "Rigvedic"}}, }, { n={"AMsO", {"AMsA", note = "พระเวท"}}, v={"AMsO", {"AMsA", note = "พระเวท"}}, }, { n="AMsas", a="+as", v="AMsas", }) else error("The feminine of comparatives in -yas ends in -yasī.") end elseif args.g == "m" or args.g == "f" then if vowel == "a" then decline(args, data, { n="A" .. oxy .. "s", a={ "+am", { "A" .. oxy .. "m", note = "พระเวท" } }, v="+", }, nil, { n={ "+as", { "A" .. oxy .. "s", note = "พระเวท" } }, v={ "+as", { "A" .. oxy .. "s", note = "พระเวท" } }, }) else decline(args, data, { n="+", a="+am", v={ "+",{ sa_utils.up_one_grade[vowel], note = "พระเวท" } }, -- Wackernagel vol.III, p.292, §152c }, nil, { n="+as", v="+as", }) end decline(args, data, nil, { n={ "+O", { "+A", note = "พระเวท" } }, v={ "+O", { "+A", note = "พระเวท" } }, }, { a="[nom]", }) else if args.adj == true and vowel == "a" and comp == "0" and (match(args.stem, sa_utils.vowel .. ".*" .. sa_utils.vowel) or match(args.stem, "^sv")) then -- compounds on -as, see Macdonell, p.226 + Whitney §418 a decline(args, data, { n={ "+", { "A" .. oxy .. "s", note = "พระเวท"} }, }, {}, {}) else decline(args, data, { n="+", }, {}, {}) end decline(args, data, { a="[nom]", v="+", }, { n="+I", v="+I", }, { n={{stem = args.stem .. sa_utils.lengthen[vowel] .. oxy .. "Ms", "i"}}, v={{stem = args.stem .. sa_utils.lengthen[vowel] .. "Ms", "i"}}, a="[nom]", }) end decline(args, data, { i="+A", d="+e", ab="+as", g="[abl]", l="+i", }, { a="[nom]", i= "+ByAm", d="[ins]", ab="[ins]", g="+os", l="[gen]", }, { i= "+Bis", d= "+Byas", ab="[dat]", g="+Am", l= "+su", }) if comp == "1" then table.insert(data.categories, "Sanskrit yas-การันต์ adjectives") elseif args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit " .. vowel .. "s-การันต์ adjectives") else table.insert(data.categories, "Sanskrit " .. vowel .. "s-การันต์ nouns") end end }) decl_data["an"] = { detect = make_detect("(.+)a" .. sa_utils.accent .. "?n$", function(args) return args.g ~= "gneut" end) -- not gender-neutral numerals } setmetatable(decl_data["an"], { __call = function(self, args, data) local oxy = match(args.lemma, "a(" .. sa_utils.accent .. "?)n$") data.decl_type = "an-การันต์" stem_final_n = true if args.g == "n" then -- Wackernagel vol.III p.238 presupposes neuter pl. '-hāni' for '-han' decline(args, data, { n=args.han == true and {"a" .. oxy, {"a" .. oxy .. "m", note = "พระเวท"}} or "a" .. oxy, a="[nom]", v={ "+", "a" }, }, {}, { n={ "A" .. oxy .. "ni", {"a" .. oxy, note = "พระเวท"}, {"A" .. oxy, note = "พระเวท"}}, a="[nom]", v={ "Ani", {"a", note = "พระเวท"}, {"A", note = "พระเวท"}}, }) if not match(args.stem, sa_utils.consonant .. "[NYRnmyrlv]$") or args.contract then decline(args, data, nil, { n={ "nI" .. oxy, "+I" }, v={ "nI", "+I" }, }, {}) else decline(args, data, nil, { n="+I", v="+I", }, {}) end else decline(args, data, { n="A" .. oxy, v="+", }) if args.han or match(args.stem, "pUz$") or match(args.stem, "aryam$") then decline(args, data, { a="a" .. oxy .. "nam", }, { n={ "a" .. oxy .. "nO", { "a" .. oxy .. "nA", note = "พระเวท" } }, v={ "anO", { "anA", note = "พระเวท" } }, }, { n="a" .. oxy .. "nas", v="anas", a=args.han == true and { "na" .. oxy .. "s", "a" .. oxy .. "nas"} or "na" .. oxy .. "s", }) elseif match(args.stem, "ukz$") or match(args.stem, "yo/?z$") or match(args.stem, "vf/?z$") or match(args.stem, "^tm$") then -- Whitney §426b; Wackernagel vol.III p.267 decline(args, data, { a={"A" .. oxy .. "nam", {"a" .. oxy .. "nam", note = "พระเวท" }}, }, { n={ "A" .. oxy .. "nO", { "a" .. oxy .. "nO", note = "พระเวท" }, { "a" .. oxy .. "nA", note = "พระเวท" } }, v={ "AnO", { "anO", note = "พระเวท" }, { "anA", note = "พระเวท" } }, }, { n={"A" .. oxy .. "nas", {"a" .. oxy .. "nas", note = "พระเวท" }}, v={"Anas", {"anas", note = "พระเวท" }}, a="na" .. oxy .. "s", }) else decline(args, data, { a="A" .. oxy .. "nam", }, { n={ "A" .. oxy .. "nO", { "A" .. oxy .. "nA", note = "พระเวท" } }, v={ "AnO", { "AnA", note = "พระเวท" } }, }, { n="A" .. oxy .. "nas", v="Anas", a="na" .. oxy .. "s", }) end end if not match(args.stem, sa_utils.consonant .. "[NYRnmyrlv]$") or args.contract then decline(args, data, { i="nA" .. oxy, d="ne" .. oxy, ab="na" .. oxy .. "s", g="[abl]", l={ "ni" .. oxy, "+i", { "+" , note = "พระเวท"} }, -- Whitney §425c for Vedic form }, { g="no" .. oxy .. "s", }, { g="nA" .. oxy .. "m", }) else decline(args, data, { i="+A", d="+e", ab="+as", g="[abl]", l= { "+i", { "+" , note = "พระเวท"} }, -- Whitney §425c for Vedic form }, { g="+os", }, { g="+Am", }) end decline(args, data, nil, { a="[nom]", i="a" .. oxy .. "ByAm", d="[ins]", ab="[ins]", l="[gen]", }, { i="a" .. oxy .. "Bis", d="a" .. oxy .. "Byas", ab="[dat]", l="a" .. oxy .. "su", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit an-การันต์ adjectives") else table.insert(data.categories, "Sanskrit an-การันต์ nouns") end end }) decl_data["in"] = { detect = make_detect("(.+)i" .. sa_utils.accent .. "?n$", function(args) return args.g == "m" or args.g == "n" end) } setmetatable(decl_data["in"], { __call = function(self, args, data) local oxy = match(args.lemma, "i(" .. sa_utils.accent .. "?)n$") data.decl_type = "in-การันต์" stem_final_n = true if args.g ~= "n" then decline(args, data, { n="I" .. oxy, a="i" .. oxy .. "nam", v="+", }, { n={ "+O", { "+A", note = "พระเวท" } }, v={ "+O", { "+A", note = "พระเวท" } }, }, { n="+as", a="[nom]", v="+as", }) else decline(args, data, { n="i" .. oxy, a="[nom]", v={ "i", "+" }, }, { n="+I", v="+I", }, { n="I" .. oxy .. "ni", a="[nom]", v="Ini", }) end decline(args, data, { i="+A", d="+e", ab="+as", g="[abl]", l="+i", }, { a="[nom]", i="i" .. oxy .. "ByAm", d="[ins]", ab="[ins]", g="+os", l="[gen]", }, { i="i" .. oxy .. "Bis", d="i" .. oxy .. "Byas", ab="[dat]", g="+Am", l="i" .. oxy .. "zu", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit in-การันต์ adjectives") else table.insert(data.categories, "Sanskrit in-การันต์ nouns") end end }) decl_data["at"] = { detect = function(args) if (make_detect("(.+)a" .. sa_utils.accent .. "?t$")(args) or (make_detect("(.+)A" .. sa_utils.accent .. "?t$")(args) and args.participle == true)) -- participles like 'yā́t' and (args.g == "m" or args.g == "n") then return true else return false end end } setmetatable(decl_data["at"], { __call = function(self, args, data) local cons, vow, oxy = match(args.lemma, "([mv]?)([aA])(" .. sa_utils.accent .. "?)t$") -- for present participles if args.lemma:find("[vm]a/?t$") == nil or args.participle == true then data.decl_type = "at-การันต์" if args.at_nom_s == true then -- participles like 'júhvat' if args.g ~= "n" then decline(args, data, { n="a" .. oxy .. "t", a="a" .. oxy .. "tam", v="at", }, { n={ "a" .. oxy .. "tO", { "a" .. oxy .. "tA", note = "พระเวท"} }, v={ "atO", { "atA", note = "พระเวท"} }, }, { n="a" .. oxy .. "tas", a="a" .. oxy .. "tas", v="atas", }) else decline(args, data, { n="a" .. oxy .. "t", a="[nom]", v="at", }, { n="a" .. oxy .. "tI", v="atI", }, { n="a" .. oxy .. "ti", a="[nom]", v="ati", }) end decline(args, data, { i="+A", d="+e", ab="+as", l="+i", }, { g="+os", }, { g="+Am", }) else if args.g ~= "n" then decline(args, data, { n= vow .. oxy .. "n", a= vow .. oxy .. "ntam", v= vow .. "n", }, { n={ vow .. oxy .. "ntO", { vow .. oxy .. "ntA", note = "พระเวท"} }, v={ vow .. "ntO", { vow .. "ntA", note = "พระเวท"} }, }, { n= vow .. oxy .. "ntas", a= vow .. "ta" .. oxy .. "s", v= vow .. "ntas", }) else if not args.participle_n_nom_d and not args.nom_d then error('Please indicate nominative dual (identical to feminine stem) with nom_d') else if args.nom_d then local s = mw.text.split(args.nom_d, ",") args.participle_n_nom_d = s[1] args.participle_n_nom_d2 = s[2] end -- neuter nom.du. taken from feminine, see Whitney §443a (though maybe artificial: §447b) args.participle_n_nom_d = IAST_to_SLP.tr(args.participle_n_nom_d) if args.participle_n_nom_d2 then args.participle_n_nom_d2 = IAST_to_SLP.tr(args.participle_n_nom_d2) decline(args, data, {}, { n= {{stem = args.participle_n_nom_d, ""}, {stem = args.participle_n_nom_d2, ""}}, v= {{stem = args.participle_n_nom_d, ""}, {stem = args.participle_n_nom_d2, ""}}, }, {}) else decline(args, data, {}, { n= {{stem = args.participle_n_nom_d, ""}}, v= {{stem = args.participle_n_nom_d, ""}}, }, {}) end if vow == "a" then decline(args, data, {}, {}, { n= {"a" .. oxy .. "nti", {"A" .. oxy .. "nti", note = "Rigvedic"}}, -- see Wackernagel III p 262 a="[nom]", v= {"anti", {"Anti", note = "Rigvedic"}}, }) else decline(args, data, {}, {}, { n= vow .. oxy .. "nti", a="[nom]", v= vow .. "nti", }) end end decline(args, data, { n= vow .. oxy .. "t", a="[nom]", v= vow .. "t", }, {}, {}) end decline(args, data, { i= vow .. "tA" .. oxy, d= vow .. "te" .. oxy, ab= vow .. "ta" .. oxy .. "s", l= vow .. "ti" .. oxy, }, { g= vow .. "to" .. oxy .. "s", }, { g= vow .. "tA" .. oxy .. "m", }) end decline(args, data, { g="[abl]", }, { a="[nom]", i= vow .. oxy .. "dByAm", d="[ins]", ab="[ins]", l="[gen]", }, { i= vow .. oxy .. "dBis", d= vow .. oxy .. "dByas", ab="[dat]", l="+su", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit at-การันต์ adjectives") else table.insert(data.categories, "Sanskrit at-การันต์ nouns") end else -- for nouns suffixed with -vat/-mat data.decl_type = cons .. "at-การันต์" if args.g ~= "n" then decline(args, data, { n="A" .. oxy .. "n", a="a" .. oxy .. "ntam", v={ "an", { "as", note = "Rigvedic"} }, }, { n={ "a" .. oxy .. "ntO", { "a" .. oxy .. "ntA", note = "พระเวท"} }, v={ "antO", { "antA", note = "พระเวท"} }, }, { n="a" .. oxy .. "ntas", a="a" .. oxy .. "tas", v="antas", }) else decline(args, data, { n="a" .. oxy .. "t", a="[nom]", v="at", }, { n="+I", v="+I", }, { n={{"a" .. oxy .. "nti"}, {"A" .. oxy .. "nti", note = "Rigvedic"}}, -- see Wackernagel III p 258-9 a="[nom]", v={{"anti"}, {"Anti", note = "Rigvedic"}}, }) end decline(args, data, { i="+A", d="+e", ab="+as", g="[abl]", l="+i", }, { a="[nom]", i="a" .. oxy .. "dByAm", d="[ins]", ab="[ins]", g="+os", l="[gen]", }, { i="a" .. oxy .. "dBis", d="a" .. oxy .. "dByas", ab="[dat]", g="+Am", l="+su", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit " .. cons .. "at-การันต์ adjectives") else table.insert(data.categories, "Sanskrit " .. cons .. "at-การันต์ nouns") end end end }) decl_data["añc"] = { detect = make_detect("(.+[aA]" .. sa_utils.accent .. "?Yc)$", function(args) return args.g == "m" or args.g == "n" end) } setmetatable(decl_data["añc"], { __call = function(self, args, data) local cons, vowel, oxy = match(args.lemma, "([yv]?)([aA])(" .. sa_utils.accent .. "?)Yc$") data.decl_type = "añc-การันต์" -- make stem for 'middle' cases args.stem = args.stem:gsub("Yc$", "c") if args.g == "m" then decline(args, data, { n= "+", -- args.lemma a="+am", v= "+", }, { n={ "+O", { "+A", note = "พระเวท" } }, v={ "+O", { "+A", note = "พระเวท" } }, }, { n="+as", v="+as", }) else -- neuter decline(args, data, { n= "", -- args.stem v= "", a="[nom]" }, {}, { n="+i", v="+i", a="[nom]" }) end decline(args, data, {}, { i= "ByAm", }, { i= "Bis", d= "Byas", l= "su", }) -- changing stem to weakest form if vowel == "A" then -- do nothing elseif match(args.stem, "tirya/?c$") then -- specifically for tiryañc args.stem = args.stem:gsub("ya(/?)c$", "a%1Sc") elseif cons ~= "" then args.stem = args.stem:gsub("([yv])a([/\\]?)c$", function(cons, acc) return (cons == "y" and "I" or "U") .. (acc == "" and "" or "/") .. "c" end) elseif match(args.stem, "dac$") then args.stem = args.stem:gsub("ac$", "Ic") else error("Not supported") end if vowel == "A" or oxy == "" then if args.g == "m" then decline(args, data, nil, nil, { a="as", }) else -- neuter decline(args, data, nil, { n="I", v="I", }) end decline(args, data, { i="A", d="e", ab="as", l="i", }, { g="os", }, { g="Am", }) else -- oxytone accent, showing two possible accentuations (Whitney §410) if args.g == "m" then decline(args, data, nil, nil, { a={"as", {"a" .. oxy .. "s", note = "Rigvedic", mono = true}} }) else decline(args, data, nil, { n= {"I", {"I" .. oxy, note = "Rigvedic", mono = true}}, v= "I", }) end decline(args, data, { i= {"A", {"A" .. oxy, note = "Rigvedic", mono = true}}, d= {"e", {"e" .. oxy, note = "Rigvedic", mono = true}}, ab= {"as", {"a" .. oxy .. "s", note = "Rigvedic", mono = true}}, l= {"i", {"i" .. oxy, note = "Rigvedic", mono = true}}, }, { g= {"os", {"o" .. oxy .. "s", note = "Rigvedic", mono = true}}, }, { g= {"Am", {"A" .. oxy .. "m", note = "Rigvedic", mono = true}}, }) end decline(args, data, { g="[abl]" }, { a="[nom]", d="[ins]", ab="[ins]", l="[gen]", }, { ab="[dat]", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit añc-การันต์ adjectives") end end }) decl_data["o"] = { detect = make_detect("(.+)o" .. sa_utils.accent .. "?$", function(args) return args.g == "m" or args.g == "f" end) } setmetatable(decl_data["o"], { -- 'gó' __call = function(self, args, data) local oxy = match(args.lemma, "o(" .. sa_utils.accent .. "?)$") data.decl_type = "o-การันต์" decline(args, data, { n="O" .. oxy .. "s", v="Os", a="A" .. oxy .. "m", i="+A", d="+e", ab="o" .. oxy .. "s", g="[abl]", l="+i", }, { n={ "A" .. oxy .. "vO", { "A" .. oxy .. "vA", note = "พระเวท" } }, v={ "AvO", { "AvA", note = "พระเวท" } }, a="[nom]", i="+ByAm", d="[ins]", ab="[ins]", g= "+os", l="[gen]", }, { n="A" .. oxy .. "vas", a={"A" .. oxy .. "s", { "A" .. oxy .. "vas", note = "rare" } }, v="Avas", i="+Bis", d="+Byas", ab="[dat]", g={ "+Am", { "+nAm", note = "พระเวท" } }, l="+su", }) table.insert(data.categories, "Sanskrit o-การันต์ nouns") end }) decl_data["O"] = { detect = make_detect("(.+)O" .. sa_utils.accent .. "?$", function(args) return args.g == "m" or args.g == "f" end) } setmetatable(decl_data["O"], { __call = function(self, args, data) local oxy = match(args.lemma, "O(" .. sa_utils.accent .. "?)$") data.decl_type = "au-การันต์" decline(args, data, { n="+s", v="+s", a="+am", i= {{ "+A" .. oxy, mono = true }}, d= {{ "+e" .. oxy, mono = true }}, ab={{ "+a" .. oxy .. "s", mono = true }}, g="[abl]", l= {{ "+i" .. oxy, mono = true }}, }, { n={ "+O", { "+A", note = "พระเวท" } }, v={ "+O", { "+A", note = "พระเวท" } }, a="[nom]", i= {{"+ByA" .. oxy .. "m", mono = true }}, d="[ins]", ab="[ins]", g= {{ "+o" .. oxy .. "s", mono = true }}, l="[gen]", }, { n="+as", v="+as", a="[nom]", i= {{"+Bi" .. oxy .. "s", mono = true }}, d= {{"+Bya" .. oxy .. "s", mono = true }}, ab="[dat]", g= {{ "+A" .. oxy .. "m", mono = true }}, l= {{ "+su" .. oxy, mono = true }}, }) table.insert(data.categories, "Sanskrit au-การันต์ nouns") end }) decl_data["vāṃs"] = { detect = make_detect("(.+)vA" .. sa_utils.accent .. "?Ms$", function(args) return args.g == "m" or args.g == "n" end) } setmetatable(decl_data["vāṃs"], { __call = function(self, args, data) local oxy = match(args.lemma, "vA(" .. sa_utils.accent .. "?)Ms$") data.decl_type = "vāṃs-การันต์" local weak_stem if match(args.stem, "baBU$") or match(args.stem, "u$") then weak_stem = args.stem .. "v" elseif match(args.stem, "U$") then weak_stem = args.stem:gsub("U$", "uv") elseif match(args.stem, "pIpi$") or match(args.stem, "dI[dD]i$") then weak_stem = args.stem -- the second 'i' of 'śiśrivāṃs' etc. is part of the root elseif match(args.stem, "[aAIuUfFxeEoO]" .. sa_utils.accent .."?M?" .. sa_utils.consonant .. "+i$") or match(args.stem, "vi[Sd]i$") then weak_stem = args.stem:gsub("i$", "") else weak_stem = args.stem end if args.g == "m" then decline(args, data, { n= "vA" .. oxy .. "n", a= "vA" .. oxy .. "Msam", v={ "van", { "vas", note = "Rigvedic"} }, }, { n= "vA" .. oxy .. "MsO", a="[nom]", v= "vAMsO", }, { n= "vA" .. oxy .. "Msas", a={{stem = weak_stem, "u" .. oxy .. "zas"}}, v= "vAMsas", }) else decline(args, data, { n= "va" .. oxy .. "t", a="[nom]", v= "vat" }, { n={{stem = weak_stem, "u" .. oxy .. "zI"}}, a="[nom]", v={{stem = weak_stem, "uzI"}}, }, { n= "vA" .. oxy .. "MsI", a="[nom]", v= "vAMsI" }) end decline(args, data, { i={{stem = weak_stem, "u" .. oxy .. "zA"}}, d={{stem = weak_stem, "u" .. oxy .. "ze"}}, ab={{stem = weak_stem, "u" .. oxy .. "zas"}}, g="[abl]", l={{stem = weak_stem, "u" .. oxy .. "zi"}}, }, { i= "va" .. oxy .. "dByAm", d="[ins]", ab="[ins]", g={{stem = weak_stem, "u" .. oxy .. "zos"}}, l="[gen]" }, { i= "va" .. oxy .. "dBis", d= "va" .. oxy .. "dByas", ab="[dat]", g={{stem = weak_stem, "u" .. oxy .. "zAm"}}, l= "va" .. oxy .. "tsu" }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit vāṃs-การันต์ adjectives") else table.insert(data.categories, "Sanskrit vāṃs-การันต์ nouns") end end }) return decl_data no9pjkdeuh5w2pufuo76ynqac1amrc9 5724857 5724856 2026-06-16T05:17:26Z OctraBot 3198 5724857 Scribunto text/plain local decl_data = {} local sa_utils = require("Module:sa-utilities") local SLP_to_IAST = require("Module:sa-utilities/translit/SLP1-to-IAST") local IAST_to_SLP = require("Module:sa-utilities/translit/IAST-to-SLP1") local match = string.match -- sufficient for SLP1 local umatch = mw.ustring.match -- Make a detection function for ARGS that fetches the stem according to MATCH_RE (which is matched against -- args.lemma and should have the stem in the first capture). ADDL_CONDITION is an optional function of one -- argument (ARGS) that must return true for the detection to happen. local function make_detect(match_re, addl_condition) return function(args) if addl_condition and not addl_condition(args) then return false end local stem = match(args.lemma, match_re) if stem then args.stem = stem return true else return false end end end -- Construct all or part of a given noun's declension. Each of SG, DU and PL is a table, whose keys are -- as follows: -- -- n = nominative -- a = accusative -- v = vocative -- i = instrumental -- d = dative -- ab = ablative -- g = genitive -- l = locative -- -- The corresponding value is one of the following: -- 1. a "copy spec" such as "[ins]", meaning to copy from the instrumental of the same number; -- 2. a single string (specifying an ending); or -- 3. a list of specs, where a spec is either a string (an ending) or a table of the form -- {"ENDING", stem = "STEM", mono = TRUE/FALSE, note = "NOTE"}. The latter format lets you explicitly specify what -- the stem is, whether the form is monosyllabic, and what the footnote is. All named keys are optional. -- -- In forms 2 and 3, if the ending begins with +, the stem defaults to args.lemma; otherwise it defaults to args.stem. local function decline(args, data, sg, du, pl) local cases = {n="nom", a="acc", v="voc", i="ins", d="dat", ab="abl", g="gen", l="loc"} local function process_number(endings, tag) if not endings then return end for case, es in pairs(endings) do if type(es) == "string" and es:find("^%[") then -- copy from another case; skip and handle later else if type(es) == "string" then es = {es} end local forms = {} for i, e in ipairs(es) do local stem, mono, accent_override, note if type(e) == "table" then stem = e.stem mono = e.mono accent_override = e.accent_override note = e.note e = e[1] end -- reduce Vedic forms to zero in case of novedic parameter if args.novedic == true and note and (match(note, "เวท$") or umatch(note, "พราหมณะ")) then stem = ""; e = ""; note = "" elseif args.norigvedic == true and note and match(note, "ฤคเวท$") then stem = ""; e = ""; note = "" else if e:find("^%+") then if stem then error("Internal error: Can't use + in an ending when stem is explicitly given") end e = e:gsub("^%+", "") stem = args.lemma elseif not stem then stem = args.stem end forms[i] = sa_utils.internal_sandhi({ stem = stem, ending = e, has_accent = args.has_accent, recessive = case == "v", no_syncope = no_syncope, mono = mono, root = root, ambig_final = args.ambig_final, diaspirate = args.diaspirate, accent_override = accent_override, han = args.han, stem_final_n = stem_final_n, voc_svar = args.voc_svar, }) if note and note~= "" then forms["note" .. i] = note end end end data.forms[cases[case] .. "_" .. tag] = forms end end -- Now handle cases copied from another. for case, es in pairs(endings) do if type(es) == "string" and es:find("^%[") then -- copy from another case; skip and handle later local other_case = es:match("^%[(.*)%]$") if not other_case then error("Internal error: Unrecognized copy case spec " .. es) end local other_slot = other_case .. "_" .. tag local value = data.forms[other_slot] if not value then error("Internal error: Slot '" .. other_slot .. "' to copy from is empty") end local this_slot = cases[case] .. "_" .. tag if data.forms[this_slot] then error("Internal error: A value already exists for slot '" .. this_slot .. "' when copying from '" .. other_slot .. "'") end data.forms[cases[case] .. "_" .. tag] = value end end end process_number(sg, "s") process_number(du, "d") process_number(pl, "p") end decl_data["numeral"] = { detect = make_detect("(.+)a/?[nz]?$", function(args) return args.g == "gneut" end) } setmetatable(decl_data["numeral"], { __call = function(self, args, data) local oxy = match(args.lemma, "(/?)[nz]?$") local acc = match(args.lemma, "(/?)[^/]*$") data.decl_type = "numeral" if match(args.lemma, "a/?z$") then -- ṣaṣ decline(args, data, {}, {}, { n="+", a="[nom]", v="[nom]", i="aqBi" .. oxy .. "s", d="aqBya" .. oxy .. "s", ab="[dat]", g="aRRA" .. oxy .. "m", l="awsu" .. oxy, }) else -- pañca(n), etc. decline(args, data, {}, {}, { n="a" .. oxy, a="[nom]", v="a", i={{"a" .. acc .. "Bis", accent_override = true}}, d={{"a" .. acc .. "Byas", accent_override = true}}, ab="[dat]", g={{"AnA" .. acc .. "m", accent_override = true}}, l={{"a" .. acc .. "su", accent_override = true}}, }) end -- no categorisation? end }) decl_data["a"] = { detect = make_detect("(.+)a" .. sa_utils.accent .. "?$", function(args) return args.g == "m" or args.g == "n" end) } setmetatable(decl_data["a"], { __call = function(self, args, data) local oxy = match(args.lemma, "(" .. sa_utils.accent .. "?)$") if args.pronominal then data.decl_type = "หน่วยสรรพนาม a-การันต์" else data.decl_type = "a-การันต์" end if args.g == "m" then decline(args, data, { n="a" .. oxy .. "s", a="a" .. oxy .. "m", v="a" }, { n={ "O" .. oxy, { "A" .. oxy, note = "พระเวท" } }, v={ "O", { "A", note = "พระเวท" } } }, { a="A" .. oxy .. "n", }) if args.pronominal then decline(args, data, {}, {}, { n="e" .. oxy, v="e" }) else decline(args, data, {}, {}, { n={"A" .. oxy .. "s", {"A" .. oxy .. "sas", note="พระเวท"}}, v={"As", {"Asas", note="พระเวท"}} }) end else decline(args, data, { n="a" .. oxy .. "m", a="[nom]", v="a" }, { n="e" .. oxy, v="e" }, { n={"A" .. oxy .. "ni", {"A" .. oxy, note="พระเวท"}}, a="[nom]", v={"Ani", {"A", note="พระเวท"}} }) end if args.pronominal then decline(args, data, { d="a" .. oxy .. "smE", ab="a" .. oxy .. "smAt", l="a" .. oxy .. "smin" }, {}, { g="e" .. oxy .. "zAm" }) else decline(args, data, { d="A" .. oxy .. "ya", ab="A" .. oxy .. "t", l="e" .. oxy }, {}, { g="A" .. oxy .. "nAm" }) end decline(args, data, { -- For nouns on -tva(na), RV has only three instr.sg. with -ena (1.110.4, 8.18.13, 10.37.9); see Lanman p.335f. for forms on -ā. -- This avoidance is phonetically perfectly understandable for -tvanā instead of -tvanena, and with abstract nouns like this -- (predominantly used in the singular), there wouldn't be much cause for confusion with the nom./acc. plural. -- (detection of oxytone accent to avoid gerundives on -tva) i= match(args.lemma, "tva?n?a/$") and {"e" .. oxy .. "na", {"A" .. oxy, note = "พระเวท"}} or "e" .. oxy .. "na", g="a" .. oxy .. "sya" }, { a="[nom]", i="A" .. oxy .. "ByAm", d="[ins]", ab="[ins]", -- see Wackernagel III, p.98-99, §48a g= match(args.stem, ".y$") and {"a" .. oxy .. "yos", {"o" .. oxy .. "s", note = "พระเวท"}} or "a" .. oxy .. "yos", l="[gen]" }, { i={ "E" .. oxy .. "s", { "e" .. oxy .. "Bis", note = "พระเวท" } }, d="e" .. oxy .. "Byas", ab="[dat]", l="e" .. oxy .. "zu" }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit a-การันต์ adjectives") else table.insert(data.categories, "Sanskrit a-การันต์ nouns") end end }) decl_data["iu"] = { detect = make_detect("(.+)[iu]" .. sa_utils.accent .. "?$") } setmetatable(decl_data["iu"], { __call = function(self, args, data) local vowel, oxy = match(args.lemma, "([iu])(" .. sa_utils.accent .. "?)$") data.decl_type = vowel .. "-การันต์" if match(args.lemma, "[sz]a/?Ki/$") and not (args.decl and match(args.decl, "i")) then -- in classical possibly regular in compounds (see Wackernagel vol.III p.141), for which use 'decl=i' decline(args, data, { n="A" .. oxy, a="A" .. oxy .. "yam", i={{stem = args.stem .. vowel, "A" .. oxy }}, d={{stem = args.stem .. vowel, "e" .. oxy }}, ab={{stem = args.stem .. vowel, "u" .. oxy .. "r" }}, l={{stem = args.stem .. vowel, "O" .. oxy }}, -- Wackernagel suggests older *sákhayi (ibid.) v="e", }, { n={"A" .. oxy .. "yO", {"A" .. oxy .. "yA", note = "พระเวท"}}, v={"A" .. oxy .. "yO", {"A" .. oxy .. "yA", note = "พระเวท"}}, g={{stem = args.stem .. vowel, "o" .. oxy .. "s" }}, }, { n="A" .. oxy .. "yas", v="Ayas", a="I" .. oxy .. "n", }) elseif args.g == "m" then if vowel == "i" then decline(args, data, { d={{stem = args.stem .. "a" .. oxy .. "y", "e" }}, l={ "O" .. oxy, { "A" .. oxy, note = "พระเวท"}}, -- Whitney §336f }, {}, {}) elseif match(args.stem, sa_utils.consonant .. sa_utils.consonant .. "$") then -- the dative ending -ve (vs. -ave) does not occur if the stem has two consonants before -u decline(args, data, { d={{stem = args.stem .. "a" .. oxy .. "v", "e" }}, l="O" .. oxy, }, {}, {}) else decline(args, data, { d={{stem = args.stem .. "a" .. oxy .. "v", "e" }, {stem = args.stem .. "v", "e" .. oxy, note = "พระเวท"}}, l="O" .. oxy, }, {}, {}) end if match(args.stem, sa_utils.consonant .. sa_utils.consonant .. "$") then decline(args, data, { ab={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "s"}}, }, {}, {}) else decline(args, data, { ab={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "s"}, {stem = args.stem .. vowel, "a" .. oxy .. "s", note = "พระเวท"}}, }, {}, {}) end decline(args, data, { n="+s", a="+m", i={ "+nA", {stem = args.stem .. vowel, "A" .. oxy, note = "พระเวท" } }, v={{stem= args.stem .. sa_utils.up_one_grade[vowel], ""}}, }, { n={{stem = args.stem .. sa_utils.lengthen[vowel..oxy], ""}}, v={{stem = args.stem .. sa_utils.lengthen[vowel], ""}}, g={{stem = args.stem .. vowel, "o" .. oxy .. "s"}}, }, { n={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "as"}}, a={{stem = args.stem ..sa_utils.lengthen[vowel..oxy], "n"}}, v={{stem = args.stem .. sa_utils.up_one_grade[vowel], "as"}}, }) elseif args.g == "f" then if vowel == "i" then decline(args, data, { i={{stem = args.stem .. vowel, "A" .. oxy}, {"I" .. oxy, note = "พระเวท"}}, -- Whitney §336c l={ "O" .. oxy, {stem = args.stem .. vowel, "A" .. oxy .. "m" }, { "A" .. oxy, note = "พระเวท"} }, }, {}, {}) else decline(args, data, { i={{stem = args.stem .. vowel, "A" .. oxy }}, l={ "O" .. oxy, {stem = args.stem .. vowel, "A" .. oxy .. "m" } }, }, {}, {}) end decline(args, data, { n="+s", a="+m", -- the Rigvedic dat.sg. on -ī (mostly ūtī́) seems too rare to extrapolate to every stem (see also Macdonell p.282) d={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "e"}, {stem = args.stem .. vowel, "E" .. oxy } }, ab={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "s"}, {stem = args.stem .. vowel, "A" .. oxy .. "s" }, {stem = args.stem .. vowel, "E" .. oxy, note = "พราหมณะ"} }, v=sa_utils.up_one_grade[vowel], }, { n=sa_utils.lengthen[vowel..oxy], v=sa_utils.lengthen[vowel], g={{stem = args.stem .. vowel, "o" .. oxy .. "s"}}, }, { n={{stem = args.stem .. sa_utils.up_one_grade[vowel .. oxy], "as"}}, a=sa_utils.lengthen[vowel..oxy] .. "s", v={{stem = args.stem .. sa_utils.up_one_grade[vowel], "as"}}, }) else -- neuter if args.adj == true then -- for difference with nouns see Whitney §344 if vowel == "i" then decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "y", "e"}}, ab={ "+nas", {stem = args.stem .. "e" .. oxy, "s"}}, l={ "+ni", "O" .. oxy, {"A" .. oxy, note = "พระเวท"}}, -- Whitney §336f + §340f }, {}, {}) elseif match(args.stem, sa_utils.consonant .. sa_utils.consonant .. "$") then -- the dative ending -ve (vs. -ave) does not occur if the stem has two consonants before -u; similar for abl./gen. -vas (vs. -os) decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "v", "e"}}, ab={ "+nas", {stem = args.stem .. "o" .. oxy, "s"}}, l={ "+ni", "O" .. oxy}, }, {}, {}) else decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "v", "e"}, {stem = args.stem .. "v", "e" .. oxy, note = "พระเวท"}}, ab={ "+nas", {stem = args.stem .. "o" .. oxy, "s"}, {stem = args.stem .. vowel, "a" .. oxy .. "s", note = "พระเวท"}}, l={ "+ni", "O" .. oxy}, }, {}, {}) end decline(args, data, {}, { g={ "+nos", {stem = args.stem .. vowel, "o" .. oxy .. "s" }}, }, {}) else -- nouns if vowel == "i" then decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "y", "e", note = "พระเวท" }}, ab={ "+nas", {stem = args.stem .. "e" .. oxy, "s", note = "พระเวท"}}, l={ "+ni", {"O" .. oxy, note = "พระเวท"}, {"A" .. oxy, note = "พระเวท"}}, -- Whitney §336f + §340f }, {}, {}) elseif match(args.stem, sa_utils.consonant .. sa_utils.consonant .. "$") then -- the dative ending -ve (vs. -ave) does not occur if the stem has two consonants before -u; similar for abl./gen. -vas (vs. -os) decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "v", "e", note = "พระเวท" }}, ab={ "+nas", {stem = args.stem .. "o" .. oxy, "s", note = "พระเวท"}}, l={ "+ni", {"O" .. oxy, note = "พระเวท"}}, }, {}, {}) else decline(args, data, { d={ "+ne", {stem = args.stem .. "a" .. oxy .. "v", "e", note = "พระเวท" }, {stem = args.stem .. "v", "e" .. oxy, note = "พระเวท"}}, ab={ "+nas", {stem = args.stem .. "o" .. oxy, "s", note = "พระเวท"}, {stem = args.stem .. vowel, "a" .. oxy .. "s", note = "พระเวท"}}, l={ "+ni", {"O" .. oxy, note = "พระเวท"}}, }, {}, {}) end decline(args, data, {}, { g={ "+nos", {stem = args.stem .. vowel, "o" .. oxy .. "s", note = "พระเวท" }}, }, {}) end decline(args, data, { n="+", a="[nom]", i={ "+nA", {stem = args.stem .. vowel, "A" .. oxy, note = "พระเวท" }}, v={ "+", {stem= args.stem .. sa_utils.up_one_grade[vowel], ""}}, }, { n={ "+nI", {stem = args.stem .. vowel, "I" .. oxy, note = "พระเวท" }}, v={ "+nI", {stem = args.stem .. vowel, "I", note = "พระเวท" }}, }, { n={{ stem = args.stem .. sa_utils.lengthen[vowel .. oxy], "ni" }, { "+", note = "พระเวท"}, { stem = args.stem .. sa_utils.lengthen[vowel..oxy], "", note = "พระเวท"}}, a="[nom]", v={{ stem = args.stem .. sa_utils.lengthen[vowel], "ni" }, { "+", note = "พระเวท"}, { stem = args.stem .. sa_utils.lengthen[vowel], "", note = "พระเวท"}}, }) end decline(args, data, { g="[abl]", }, { a="[nom]", i="+ByAm", d="[ins]", ab="[ins]", l="[gen]", }, { i="+Bis", d="+Byas", ab="[dat]", g={{ stem = args.stem .. sa_utils.lengthen[vowel], "nA" .. (oxy ~= "" and "/" or "") .. "m"}}, l="+su", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit " .. vowel .. "-การันต์ adjectives") else table.insert(data.categories, "Sanskrit " .. vowel .. "-การันต์ nouns") end end }) decl_data["A"] = { detect = function(args) if make_detect("(.+)A" .. sa_utils.accent .. "?$")(args) then args.true_mono = sa_utils.is_monosyllabic(args.lemma) return true else return false end end } setmetatable(decl_data["A"], { __call = function(self, args, data) local oxy = match(args.lemma, "(" .. sa_utils.accent .. "?)$") if args.g == "n" then -- It seems better not to base a neuter declension on the masculine nominatives on -ās accompanying neuter nouns. -- See Whitney §367b and Wackernagel vol.III p.129 error("The neuter of radical stems in -ā ends in -a.") end if args.pronominal then data.decl_type = "หน่วยสรรพนาม ā-การันต์" else data.decl_type = "ā-การันต์" end if not (args.root or args.true_mono) or (args.true_mono and args.root == false) then -- derived stem if args.g == "m" then error("Add 'root=1' in case this is a root noun or adjective.") else table.insert(data.categories, "Sanskrit ā-การันต์ nouns") end if args.pronominal then decline(args, data, { d="a" .. oxy .. "syE", ab={"a" .. oxy .. "syAs", {"a" .. oxy .. "syE", note = "พราหมณะ"}}, l="a" .. oxy .. "syAm" }, {}, { g="+sAm" }) else decline(args, data, { d="+yE", ab={"+yAs", {"+yE", note = "พราหมณะ"}}, l="+yAm" }, {}, { g="+nAm" }) end decline(args, data, { n="+", i={ "a" .. oxy .. "yA", { "+", note = "พระเวท" } }, v="e", }, { n="e" .. oxy, g="a" .. oxy .. "yos", v="e", }, { a="+s", }) else if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit มูลการันต์ adjectives on -ā") else table.insert(data.categories, "Sanskrit มูลการันต์ nouns on -ā") end if args.g == "m" then data.general_notes = {"In practice, this declension only occurs in early Vedic<br> and is later replaced by a-stem declension."} else data.general_notes = {"In practice, this declension only occurs in early Vedic<br> and is later replaced by regular ā-stem declension."} end decline(args, data, { n="+s", i="+", d="e" .. oxy, ab="a" .. oxy .. "s", l="i" .. oxy, v="+s", }, { n={ "O" .. oxy, { "A" .. oxy, note = "พระเวท" } }, g="o" .. oxy .. "s", v={ "O", { "A", note = "พระเวท" } } }, { a={ "+s", { "a" .. oxy .. "s", note = "Perhaps" } }, g={ "+nAm", { "+Am", note = "Perhaps" } }, }) end decline(args, data, { a="+m", g="[abl]", }, { a="[nom]", i="+ByAm", d="[ins]", ab="[ins]", l="[gen]", }, { n="+s", i="+Bis", d="+Byas", ab="[dat]", l="+su", v="+s", }) end }) decl_data["IU"] = { detect = function(args) if make_detect("(.+)[IU]" .. sa_utils.accent .. "?$")(args) then args.true_mono = sa_utils.is_monosyllabic(args.lemma) return true else return false end end } setmetatable(decl_data["IU"], { __call = function(self, args, data) local vowel, oxy = match(args.lemma, "([IU])(" .. sa_utils.accent .. "?)$") data.decl_type = SLP_to_IAST.tr(vowel) .. "-การันต์" if args.g == "n" then -- it seems better to mention the one or two Vedic forms that could be interpreted -- as coming from a neuter ī-stem (see Whitney §367b) separately error("The neuter of radical stems in -ī/ū ends in -i/u.") end if not (args.root or args.true_mono) or (args.true_mono and args.root == false) or args.han then -- derived stem if args.vrki then -- with original vṛkī-declension (Whitney §355 ff.), given as older forms of later classical declension if vowel == "U" then error() elseif args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit ī-การันต์ adjectives with original vṛkī́-declension") else table.insert(data.categories, "Sanskrit ī-การันต์ nouns with original vṛkī́-declension") end data.general_notes = {"This stem originally had ''vṛkī́''-declension."} decline(args, data, { n={"+", {"+s", note = "พระเวท"}}, a={"+m", {"+am", note = "พระเวท"}}, i={{stem = args.stem .. vowel, "A" .. oxy}, {"+A", note = "พระเวท"}}, d={{stem = args.stem .. vowel, "E" .. oxy}, {"+e", note = "พระเวท"}}, ab={{stem = args.stem .. vowel, "A" .. oxy .. "s"}, {"+as", note = "พระเวท"}, {stem = args.stem .. vowel, "E" .. oxy, note = "พราหมณะ"}}, l={{stem = args.stem .. vowel, "A" .. oxy .. "m"}, {"+", note = "พระเวท"}}, -- Wackernagel III, §86c, p.170 }, { n={"+O", {"+A", note = "พระเวท"}}, v={"+O", {"+A", note = "พระเวท"}}, g={{stem = args.stem .. vowel, "o" .. oxy .. "s"}, {"+os", note = "พระเวท"}}, }, { n="+as", v="+as", a={"+s", {"+as", note = "พระเวท"}}, g="+nAm", }) elseif vowel == "I" then -- devī-declension if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit ī-การันต์ adjectives") else table.insert(data.categories, "Sanskrit ī-การันต์ nouns") end decline(args,data, { n="+", a="+m", i={{stem = args.stem .. vowel, "A" .. oxy}}, d={{stem = args.stem .. vowel, "E" .. oxy}}, ab={{stem = args.stem .. vowel, "A" .. oxy .. "s"}, {stem = args.stem .. vowel, "E" .. oxy, note = "พราหมณะ"}}, l={{stem = args.stem .. vowel, "A" .. oxy .. "m"}}, }, { n={ "+O", { "+", note = "พระเวท" } }, v={ "+O", { "+", note = "พระเวท" } }, g={{stem = args.stem .. vowel, "o" .. oxy .. "s"}}, }, { n={ "+as", { "+s", note = "พระเวท" } }, v={ "+as", { "+s", note = "พระเวท" } }, a="+s", g= oxy == "" and "+nAm" or {"+nAm", { stem = args.stem .. vowel, "nA" .. oxy .. "m", note = "ฤคเวท"} }, -- Whitney §319a }) else -- ū-stems, with Whitney's declension at §356a given as older forms of §364, see Wackernagel vol.III p.189 if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit ū-การันต์ adjectives") -- probably only bahuvrihis like 'sarvatanū' else table.insert(data.categories, "Sanskrit ū-การันต์ nouns") end if match(args.stem, "y$") or match(args.stem, "agr$") or match(args.stem, "kadr$") or match(args.stem, "bIBats") then -- with Vedic -úv-, see Macdonell p.290 §384a decline(args,data, { a={"+m", {"+am", note = "พระเวท", mono = true}}, i={{stem = args.stem .. vowel, "A" .. oxy}, {"+A", note = "พระเวท", mono = true}}, d={{stem = args.stem .. vowel, "E" .. oxy}, {"+e", note = "พระเวท", mono = true}}, ab={{stem = args.stem .. vowel, "A" .. oxy .. "s"}, {"+as", note = "พระเวท", mono = true}, {stem = args.stem .. vowel, "E" .. oxy, note = "พราหมณะ"}}, l={{stem = args.stem .. vowel, "A" .. oxy .. "m"}, {"+i", note = "พระเวท", mono = true}, {"+", note = "พระเวท"}}, }, { n={"+O", {"+A", note = "พระเวท", mono = true}}, v={"+O", {"+A", note = "พระเวท", mono = true}}, g={{stem = args.stem .. vowel, "o" .. oxy .. "s"}, {"+os", note = "พระเวท", mono = true}}, }, { n={"+as", {"+as", note = "พระเวท", mono = true}}, v={"+as", {"+as", note = "พระเวท", mono = true}}, a={"+s", {"+as", note = "พระเวท", mono = true}}, }) else decline(args,data, { a={"+m", {"+am", note = "พระเวท"}}, i= oxy == "" and "+A" or {{stem = args.stem .. vowel, "A" .. oxy}, {"+A", note = "พระเวท"}}, d={{stem = args.stem .. vowel, "E" .. oxy}, {"+e", note = "พระเวท"}}, ab={{stem = args.stem .. vowel, "A" .. oxy .. "s"}, {"+as", note = "พระเวท"}, {stem = args.stem .. vowel, "E" .. oxy, note = "พราหมณะ"}}, l={{stem = args.stem .. vowel, "A" .. oxy .. "m"}, {"+i", note = "พระเวท"}, {"+", note = "พระเวท"}}, -- Wackernagel III, §97b, p.188 }, { n={"+O", {"+A", note = "พระเวท"}}, -- duals on -ū for ū-stems do not occur v={"+O", {"+A", note = "พระเวท"}}, g= oxy == "" and "+os" or {{stem = args.stem .. vowel, "o" .. oxy .. "s"}, {"+os", note = "พระเวท"}}, }, { n="+as", -- RV 4.41.8 has 'yuvayū́s', but it seems better to simply give this at the relevant lemma v="+as", a={"+s", {"+as", note = "พระเวท"}}, }) end decline(args,data, { n="+s", }, {}, { g="+nAm", }) end decline(args, data, { g="[abl]", v=sa_utils.shorten[vowel], }, { a="[nom]", i="+ByAm", d="[ins]", ab="[ins]", l="[gen]", }, { i="+Bis", d="+Byas", ab="[dat]", l="+su", }) else if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit มูลการันต์ adjectives on -" .. SLP_to_IAST.tr(vowel)) else table.insert(data.categories, "Sanskrit มูลการันต์ nouns on -" .. SLP_to_IAST.tr(vowel)) end if args.true_mono then -- rout nouns, Whitney §351 no_syncope = true if args.g == "f" then -- see Wackernagel vol.III p.181 decline(args, data, { d={{ "+e" .. oxy, mono = true }, { "+E" .. oxy, mono = true, note = "Later Sanskrit" } }, ab={{ "+a" .. oxy .. "s", mono = true }, { "+A" .. oxy .. "s", mono = true, note = "Later Sanskrit" } }, l={{ "+i" .. oxy, mono = true }, { "+A" .. oxy .. "m", mono = true, note = "Later Sanskrit" } }, }) else decline(args, data, { d={{ "+e" .. oxy, mono = true } }, ab={{ "+a" .. oxy .. "s", mono = true } }, l={{ "+i" .. oxy, mono = true } }, }) end decline(args, data, { i={{ "+A" .. oxy, mono = true}}, }, { i={{"+ByA" .. oxy .. "m", mono = true}}, g={{"+o" .. oxy .. "s", mono = true}}, }, { i={{"+Bi" .. oxy .. "s", mono = true}}, d={{"+Bya" .. oxy .. "s", mono = true}}, g={{"+A" .. oxy .. "m", mono = true }, { "+nA" .. oxy .. "m", mono = true } }, l={{"+su" .. oxy, mono = true}}, }) else -- root terms in compounds, Whitney §352; I'd suggest to give two tables when both contracted and non-contracted forms occur -- see Wackernagel III §91a (p.179) for ī, and §100a + §100eα (p.192-3) for ū; Macdonell: p.268 + 288 -- Taking as default that ū-stems with accent (rule of thumb for Vedic terms) are not contracted. To be overrided with 'contract=1' if args.contract == false or (args.contract ~= true and (match(args.stem, sa_utils.consonant .. sa_utils.consonant .. "$") or vowel == "U" and (match(args.lemma, sa_utils.accent) or match(args.stem, "B$") or match(args.stem, "jo/?g$")) or vowel == "I" and (match(args.stem, "avadyaB$") or (match(args.stem, "D$") and match(args.stem, sa_utils.accent))))) then no_syncope = true -- -Ciy-/-Cuv- when followed by vowel decline(args, data, { l= args.g == "f" and {"+i", {"+Am", note = "Later Sanskrit"}} or "+i", }) else decline(args, data, { l= args.g == "f" and {{ stem = args.stem .. sa_utils.vowel_to_cons[vowel], "i" .. (oxy ~= "" and "\\" or "") }, {"+Am", note = "Later Sanskrit"}} or {{ stem = args.stem .. sa_utils.vowel_to_cons[vowel], "i" .. (oxy ~= "" and "\\" or "") }}, }) end if args.g == "f" then -- see Wackernagel vol.III p.181 decline(args, data, { d={ "+e", { "+E", note = "Later Sanskrit" } }, ab={ "+as", { "+As", note = "Later Sanskrit" } }, }) else decline(args, data, { d= "+e", ab= "+as", }) end decline(args, data, { i= "+A", }, { i="+ByAm", g= "+os", }, { i="+Bis", d="+Byas", g= {"+Am", "+nAm"}, l="+su", }) end decline(args, data, { n= "+s", v= "+s", a= "+am", g="[abl]", }, { n= { "+O", { "+A", note = "พระเวท"}}, v= { "+O", { "+A", note = "พระเวท"}}, a="[nom]", d="[ins]", ab="[ins]", l="[gen]", }, { n= "+as", v= "+as", a="[nom]", ab="[dat]", }) end end }) decl_data["f"] = { -- for nouns in ṛ detect = make_detect("(.+)f" .. sa_utils.accent .. "?$") } setmetatable(decl_data["f"], { -- for nouns in ṛ __call = function(self, args, data) if args.g == "f" and args.r_stem_a == "ā" and match(args.stem, "t$") and not match(args.stem, "^s?t$") then error("The feminine of adjectives in -tṛ ends in -trī.") end local oxy = match(args.lemma, "(" .. sa_utils.accent .. "?)$") data.decl_type = SLP_to_IAST.tr("f") .. "-การันต์" if args.g == "n" then decline(args, data, { -- for neuter -úr, see Wackernagel, III, p.204, §107b (denies 'sthātar' and 'sthātṝ́n' are neuter sg.) -- all cases of -tári given as nom./acc.n.sg. by Macdonell (p.243) are translated as locatives by Jamison & Brereton n={"f" .. oxy, {"u" .. oxy .. "r", note = "ฤคเวท"}}, a="[nom]", i={"+nA", "rA" .. oxy}, d={"+ne", "re" .. oxy}, ab={"+nas", "u" .. oxy .. "r"}, l={"+ni", "a" .. oxy .. "ri"}, v={ "f", "ar" }, }, { n="+nI", g={"+nos", "ro" .. oxy .. "s"}, v="+nI", }, { n="F" .. oxy .. "ni", a="[nom]", v="Fni", }) else if not args.r_stem_a then error('Please specify the length of the accusative singular vowel with r_stem_a = "a" or "ā".') else args.r_stem_a = IAST_to_SLP.tr(args.r_stem_a) end decline(args, data, { n="A" .. oxy, a=args.r_stem_a .. oxy .. "ram", i="rA" .. oxy, d="re" .. oxy, ab="u" .. oxy .. "r", l="a" .. oxy .. "ri", v="ar", }, { n={ args.r_stem_a .. oxy .. "rO", { args.r_stem_a .. oxy .. "rA", note = "พระเวท" } }, g="ro" .. oxy .. "s", v={ args.r_stem_a .. "rO", { args.r_stem_a .. "rA", note = "พระเวท" } }, }, { n=args.r_stem_a .. oxy .. "ras", a=args.g == "f" and "F" .. oxy .. "s" or "F" .. oxy .. "n", v=args.r_stem_a .. "ras", }) end decline(args, data, { g="[abl]", }, { a="[nom]", i="+ByAm", d="[ins]", ab="[ins]", l="[gen]", }, { i="+Bis", d="+Byas", ab="[dat]", g={{stem = args.stem .. "F", "nA" .. (oxy ~= "" and "/" or "") .. "m"}}, l="+su", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit " .. SLP_to_IAST.tr("f") .. "-การันต์ adjectives") else table.insert(data.categories, "Sanskrit " .. SLP_to_IAST.tr("f") .. "-การันต์ nouns") end end }) decl_data["root"] = { -- for root nouns ending on -k/g/gh/c/j/ṭ/ḍ/th/d/dh/p/bh/m/r/ṣ/ś/h + -āt/it/ut/ṛt/akt + -ās/os detect = function(args) -- capture of vowel needed for accent if (make_detect("(.*)" .. sa_utils.vowel .. sa_utils.accent .. "?r?[kgGcjwqTdDpBmrzSh]$")(args) or (make_detect("(.*)[Aiuf]" .. sa_utils.accent .. "?t$")(args) and not args.participle == true) or make_detect("(.*)a" .. sa_utils.accent .. "?kt$")(args) -- nákt- or make_detect("(.*)[Ao]" .. sa_utils.accent .. "?s$")(args) or (args.root == true and make_detect("(.*)[ai]" .. sa_utils.accent .. "?[ts]$")(args) )) -- + āśis + numerals like triṃśát and args.g ~= "gneut" then args.true_mono = sa_utils.is_monosyllabic(args.lemma) return true else return false end end } setmetatable(decl_data["root"], { __call = function(self, args, data) local vowel, oxy, extra, cons = match(args.lemma, "(" .. sa_utils.vowel .. ")(" .. sa_utils.accent .. "?)(r?)([kgGcjwqtTdDpBmrzShs]t?)$") if match(cons, "[jSh]") ~= nil and not args.ambig_final then error('Please specify the final consonant in the nominative singular with ambig_final = "k" or "ṭ".') elseif args.ambig_final then -- also for cases like sarágh > saráṭ or potentially anuṣṭúbh > anuṣṭúk args.ambig_final = IAST_to_SLP.tr(args.ambig_final) end local nasal = cons:gsub(".", sa_utils.homorganic_nasal) data.decl_type = "มูลการันต์" root = true -- neuter nom. plural (Whitney §389c, although saying that these forms with infixed nasal are not attested for nouns) if args.g == "n" then if match(cons, "[mr]") == nil and extra == "" then decline(args, data, nil, nil, { n= {{stem = args.stem .. vowel .. oxy .. nasal .. cons, "i"}}, v= {{stem = args.stem .. vowel .. nasal .. cons, "i"}}, }) else decline(args, data, nil, nil, { n= "+i", v= "+i", }) end end if args.true_mono then -- monosyllabic stem if args.g ~= "n" then decline(args, data, { -- nom.sg. -s is an 'invisible' (historical) ending to provoke vowel lengthening in -ir/-ur stems, see Whitney §392 -- this ending should be removed by internal_sandhi at an early stage n="+s", a="+am", v="+s", }, { n={ "+O", { "+A", note = "พระเวท" } }, v={ "+O", { "+A", note = "พระเวท" } }, }, { n="+as", v="+as", }) else decline(args, data, { n= "+", a="[nom]", v= "+" }, { n= {{"+I" .. oxy, mono = true }}, v= "+I" }, { }) end decline(args, data, { i= {{ "+A" .. oxy, mono = true }}, d= {{ "+e" .. oxy, mono = true }}, ab= {{ "+a" .. oxy .. "s", mono = true }}, g="[abl]", l= {{ "+i" .. oxy, mono = true }}, }, { a= "[nom]", i= {{ "+ByA" .. oxy .. "m", mono = true }}, d="[ins]", ab="[ins]", g= {{ "+o" .. oxy .. "s", mono = true }}, l="[gen]", }, { a= "[nom]", i= {{ "+Bi" .. oxy .. "s", mono = true }}, d= {{ "+Bya" .. oxy .. "s", mono = true }}, ab="[dat]", g= {{ "+A" .. oxy .. "m", mono = true }}, l= {{ "+su" .. oxy, mono = true }}, }) else -- polysyllabic stem, no accent on ending if args.g ~= "n" then decline(args, data, { n="+s", a="+am", v="+s", }, { n={ "+O", { "+A", note = "พระเวท" } }, v={ "+O", { "+A", note = "พระเวท" } }, }, { n="+as", v="+as" }) else decline(args, data, { n= "+", a="[nom]", v= "+" }, { n= "+I", v= "+I", }, { }) end decline(args, data, { i="+A", d="+e", ab="+as", g="[abl]", l="+i", }, { a= "[nom]", i= "+ByAm", d="[ins]", ab="[ins]", g="+os", l="[gen]", }, { a= "[nom]", i= "+Bis", d= "+Byas", ab="[dat]", g= "+Am", l= "+su", }) end if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit consonantal มูลการันต์ adjectives") else table.insert(data.categories, "Sanskrit consonantal มูลการันต์ nouns") end end }) decl_data["[aiu]s"] = { detect = make_detect("(.+)[aiu]" .. sa_utils.accent .. "?s$") } setmetatable(decl_data["[aiu]s"], { __call = function(self, args, data) local vowel, oxy = match(args.lemma, "([aiu])(" .. sa_utils.accent .. "?)s$") data.decl_type = vowel .. "s-การันต์" if (match(args.stem, "[^aAiK/\\]"..sa_utils.accent.."?y$") or match (args.stem, "jyA/?y$")) and vowel == "a" then -- comparative comp = "1" else comp = "0" end if comp == "1" and args.g ~= "n" then if args.g == "m" then decline(args, data, { n="An", a="AMsam", v={"an", { "+", note = "ฤคเวท"}}, }, { n={"AMsO", {"AMsA", note = "พระเวท"}}, v={"AMsO", {"AMsA", note = "พระเวท"}}, }, { n="AMsas", a="+as", v="AMsas", }) else error("The feminine of comparatives in -yas ends in -yasī.") end elseif args.g == "m" or args.g == "f" then if vowel == "a" then decline(args, data, { n="A" .. oxy .. "s", a={ "+am", { "A" .. oxy .. "m", note = "พระเวท" } }, v="+", }, nil, { n={ "+as", { "A" .. oxy .. "s", note = "พระเวท" } }, v={ "+as", { "A" .. oxy .. "s", note = "พระเวท" } }, }) else decline(args, data, { n="+", a="+am", v={ "+",{ sa_utils.up_one_grade[vowel], note = "พระเวท" } }, -- Wackernagel vol.III, p.292, §152c }, nil, { n="+as", v="+as", }) end decline(args, data, nil, { n={ "+O", { "+A", note = "พระเวท" } }, v={ "+O", { "+A", note = "พระเวท" } }, }, { a="[nom]", }) else if args.adj == true and vowel == "a" and comp == "0" and (match(args.stem, sa_utils.vowel .. ".*" .. sa_utils.vowel) or match(args.stem, "^sv")) then -- compounds on -as, see Macdonell, p.226 + Whitney §418 a decline(args, data, { n={ "+", { "A" .. oxy .. "s", note = "พระเวท"} }, }, {}, {}) else decline(args, data, { n="+", }, {}, {}) end decline(args, data, { a="[nom]", v="+", }, { n="+I", v="+I", }, { n={{stem = args.stem .. sa_utils.lengthen[vowel] .. oxy .. "Ms", "i"}}, v={{stem = args.stem .. sa_utils.lengthen[vowel] .. "Ms", "i"}}, a="[nom]", }) end decline(args, data, { i="+A", d="+e", ab="+as", g="[abl]", l="+i", }, { a="[nom]", i= "+ByAm", d="[ins]", ab="[ins]", g="+os", l="[gen]", }, { i= "+Bis", d= "+Byas", ab="[dat]", g="+Am", l= "+su", }) if comp == "1" then table.insert(data.categories, "Sanskrit yas-การันต์ adjectives") elseif args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit " .. vowel .. "s-การันต์ adjectives") else table.insert(data.categories, "Sanskrit " .. vowel .. "s-การันต์ nouns") end end }) decl_data["an"] = { detect = make_detect("(.+)a" .. sa_utils.accent .. "?n$", function(args) return args.g ~= "gneut" end) -- not gender-neutral numerals } setmetatable(decl_data["an"], { __call = function(self, args, data) local oxy = match(args.lemma, "a(" .. sa_utils.accent .. "?)n$") data.decl_type = "an-การันต์" stem_final_n = true if args.g == "n" then -- Wackernagel vol.III p.238 presupposes neuter pl. '-hāni' for '-han' decline(args, data, { n=args.han == true and {"a" .. oxy, {"a" .. oxy .. "m", note = "พระเวท"}} or "a" .. oxy, a="[nom]", v={ "+", "a" }, }, {}, { n={ "A" .. oxy .. "ni", {"a" .. oxy, note = "พระเวท"}, {"A" .. oxy, note = "พระเวท"}}, a="[nom]", v={ "Ani", {"a", note = "พระเวท"}, {"A", note = "พระเวท"}}, }) if not match(args.stem, sa_utils.consonant .. "[NYRnmyrlv]$") or args.contract then decline(args, data, nil, { n={ "nI" .. oxy, "+I" }, v={ "nI", "+I" }, }, {}) else decline(args, data, nil, { n="+I", v="+I", }, {}) end else decline(args, data, { n="A" .. oxy, v="+", }) if args.han or match(args.stem, "pUz$") or match(args.stem, "aryam$") then decline(args, data, { a="a" .. oxy .. "nam", }, { n={ "a" .. oxy .. "nO", { "a" .. oxy .. "nA", note = "พระเวท" } }, v={ "anO", { "anA", note = "พระเวท" } }, }, { n="a" .. oxy .. "nas", v="anas", a=args.han == true and { "na" .. oxy .. "s", "a" .. oxy .. "nas"} or "na" .. oxy .. "s", }) elseif match(args.stem, "ukz$") or match(args.stem, "yo/?z$") or match(args.stem, "vf/?z$") or match(args.stem, "^tm$") then -- Whitney §426b; Wackernagel vol.III p.267 decline(args, data, { a={"A" .. oxy .. "nam", {"a" .. oxy .. "nam", note = "พระเวท" }}, }, { n={ "A" .. oxy .. "nO", { "a" .. oxy .. "nO", note = "พระเวท" }, { "a" .. oxy .. "nA", note = "พระเวท" } }, v={ "AnO", { "anO", note = "พระเวท" }, { "anA", note = "พระเวท" } }, }, { n={"A" .. oxy .. "nas", {"a" .. oxy .. "nas", note = "พระเวท" }}, v={"Anas", {"anas", note = "พระเวท" }}, a="na" .. oxy .. "s", }) else decline(args, data, { a="A" .. oxy .. "nam", }, { n={ "A" .. oxy .. "nO", { "A" .. oxy .. "nA", note = "พระเวท" } }, v={ "AnO", { "AnA", note = "พระเวท" } }, }, { n="A" .. oxy .. "nas", v="Anas", a="na" .. oxy .. "s", }) end end if not match(args.stem, sa_utils.consonant .. "[NYRnmyrlv]$") or args.contract then decline(args, data, { i="nA" .. oxy, d="ne" .. oxy, ab="na" .. oxy .. "s", g="[abl]", l={ "ni" .. oxy, "+i", { "+" , note = "พระเวท"} }, -- Whitney §425c for Vedic form }, { g="no" .. oxy .. "s", }, { g="nA" .. oxy .. "m", }) else decline(args, data, { i="+A", d="+e", ab="+as", g="[abl]", l= { "+i", { "+" , note = "พระเวท"} }, -- Whitney §425c for Vedic form }, { g="+os", }, { g="+Am", }) end decline(args, data, nil, { a="[nom]", i="a" .. oxy .. "ByAm", d="[ins]", ab="[ins]", l="[gen]", }, { i="a" .. oxy .. "Bis", d="a" .. oxy .. "Byas", ab="[dat]", l="a" .. oxy .. "su", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit an-การันต์ adjectives") else table.insert(data.categories, "Sanskrit an-การันต์ nouns") end end }) decl_data["in"] = { detect = make_detect("(.+)i" .. sa_utils.accent .. "?n$", function(args) return args.g == "m" or args.g == "n" end) } setmetatable(decl_data["in"], { __call = function(self, args, data) local oxy = match(args.lemma, "i(" .. sa_utils.accent .. "?)n$") data.decl_type = "in-การันต์" stem_final_n = true if args.g ~= "n" then decline(args, data, { n="I" .. oxy, a="i" .. oxy .. "nam", v="+", }, { n={ "+O", { "+A", note = "พระเวท" } }, v={ "+O", { "+A", note = "พระเวท" } }, }, { n="+as", a="[nom]", v="+as", }) else decline(args, data, { n="i" .. oxy, a="[nom]", v={ "i", "+" }, }, { n="+I", v="+I", }, { n="I" .. oxy .. "ni", a="[nom]", v="Ini", }) end decline(args, data, { i="+A", d="+e", ab="+as", g="[abl]", l="+i", }, { a="[nom]", i="i" .. oxy .. "ByAm", d="[ins]", ab="[ins]", g="+os", l="[gen]", }, { i="i" .. oxy .. "Bis", d="i" .. oxy .. "Byas", ab="[dat]", g="+Am", l="i" .. oxy .. "zu", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit in-การันต์ adjectives") else table.insert(data.categories, "Sanskrit in-การันต์ nouns") end end }) decl_data["at"] = { detect = function(args) if (make_detect("(.+)a" .. sa_utils.accent .. "?t$")(args) or (make_detect("(.+)A" .. sa_utils.accent .. "?t$")(args) and args.participle == true)) -- participles like 'yā́t' and (args.g == "m" or args.g == "n") then return true else return false end end } setmetatable(decl_data["at"], { __call = function(self, args, data) local cons, vow, oxy = match(args.lemma, "([mv]?)([aA])(" .. sa_utils.accent .. "?)t$") -- for present participles if args.lemma:find("[vm]a/?t$") == nil or args.participle == true then data.decl_type = "at-การันต์" if args.at_nom_s == true then -- participles like 'júhvat' if args.g ~= "n" then decline(args, data, { n="a" .. oxy .. "t", a="a" .. oxy .. "tam", v="at", }, { n={ "a" .. oxy .. "tO", { "a" .. oxy .. "tA", note = "พระเวท"} }, v={ "atO", { "atA", note = "พระเวท"} }, }, { n="a" .. oxy .. "tas", a="a" .. oxy .. "tas", v="atas", }) else decline(args, data, { n="a" .. oxy .. "t", a="[nom]", v="at", }, { n="a" .. oxy .. "tI", v="atI", }, { n="a" .. oxy .. "ti", a="[nom]", v="ati", }) end decline(args, data, { i="+A", d="+e", ab="+as", l="+i", }, { g="+os", }, { g="+Am", }) else if args.g ~= "n" then decline(args, data, { n= vow .. oxy .. "n", a= vow .. oxy .. "ntam", v= vow .. "n", }, { n={ vow .. oxy .. "ntO", { vow .. oxy .. "ntA", note = "พระเวท"} }, v={ vow .. "ntO", { vow .. "ntA", note = "พระเวท"} }, }, { n= vow .. oxy .. "ntas", a= vow .. "ta" .. oxy .. "s", v= vow .. "ntas", }) else if not args.participle_n_nom_d and not args.nom_d then error('Please indicate nominative dual (identical to feminine stem) with nom_d') else if args.nom_d then local s = mw.text.split(args.nom_d, ",") args.participle_n_nom_d = s[1] args.participle_n_nom_d2 = s[2] end -- neuter nom.du. taken from feminine, see Whitney §443a (though maybe artificial: §447b) args.participle_n_nom_d = IAST_to_SLP.tr(args.participle_n_nom_d) if args.participle_n_nom_d2 then args.participle_n_nom_d2 = IAST_to_SLP.tr(args.participle_n_nom_d2) decline(args, data, {}, { n= {{stem = args.participle_n_nom_d, ""}, {stem = args.participle_n_nom_d2, ""}}, v= {{stem = args.participle_n_nom_d, ""}, {stem = args.participle_n_nom_d2, ""}}, }, {}) else decline(args, data, {}, { n= {{stem = args.participle_n_nom_d, ""}}, v= {{stem = args.participle_n_nom_d, ""}}, }, {}) end if vow == "a" then decline(args, data, {}, {}, { n= {"a" .. oxy .. "nti", {"A" .. oxy .. "nti", note = "ฤคเวท"}}, -- see Wackernagel III p 262 a="[nom]", v= {"anti", {"Anti", note = "ฤคเวท"}}, }) else decline(args, data, {}, {}, { n= vow .. oxy .. "nti", a="[nom]", v= vow .. "nti", }) end end decline(args, data, { n= vow .. oxy .. "t", a="[nom]", v= vow .. "t", }, {}, {}) end decline(args, data, { i= vow .. "tA" .. oxy, d= vow .. "te" .. oxy, ab= vow .. "ta" .. oxy .. "s", l= vow .. "ti" .. oxy, }, { g= vow .. "to" .. oxy .. "s", }, { g= vow .. "tA" .. oxy .. "m", }) end decline(args, data, { g="[abl]", }, { a="[nom]", i= vow .. oxy .. "dByAm", d="[ins]", ab="[ins]", l="[gen]", }, { i= vow .. oxy .. "dBis", d= vow .. oxy .. "dByas", ab="[dat]", l="+su", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit at-การันต์ adjectives") else table.insert(data.categories, "Sanskrit at-การันต์ nouns") end else -- for nouns suffixed with -vat/-mat data.decl_type = cons .. "at-การันต์" if args.g ~= "n" then decline(args, data, { n="A" .. oxy .. "n", a="a" .. oxy .. "ntam", v={ "an", { "as", note = "ฤคเวท"} }, }, { n={ "a" .. oxy .. "ntO", { "a" .. oxy .. "ntA", note = "พระเวท"} }, v={ "antO", { "antA", note = "พระเวท"} }, }, { n="a" .. oxy .. "ntas", a="a" .. oxy .. "tas", v="antas", }) else decline(args, data, { n="a" .. oxy .. "t", a="[nom]", v="at", }, { n="+I", v="+I", }, { n={{"a" .. oxy .. "nti"}, {"A" .. oxy .. "nti", note = "ฤคเวท"}}, -- see Wackernagel III p 258-9 a="[nom]", v={{"anti"}, {"Anti", note = "ฤคเวท"}}, }) end decline(args, data, { i="+A", d="+e", ab="+as", g="[abl]", l="+i", }, { a="[nom]", i="a" .. oxy .. "dByAm", d="[ins]", ab="[ins]", g="+os", l="[gen]", }, { i="a" .. oxy .. "dBis", d="a" .. oxy .. "dByas", ab="[dat]", g="+Am", l="+su", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit " .. cons .. "at-การันต์ adjectives") else table.insert(data.categories, "Sanskrit " .. cons .. "at-การันต์ nouns") end end end }) decl_data["añc"] = { detect = make_detect("(.+[aA]" .. sa_utils.accent .. "?Yc)$", function(args) return args.g == "m" or args.g == "n" end) } setmetatable(decl_data["añc"], { __call = function(self, args, data) local cons, vowel, oxy = match(args.lemma, "([yv]?)([aA])(" .. sa_utils.accent .. "?)Yc$") data.decl_type = "añc-การันต์" -- make stem for 'middle' cases args.stem = args.stem:gsub("Yc$", "c") if args.g == "m" then decline(args, data, { n= "+", -- args.lemma a="+am", v= "+", }, { n={ "+O", { "+A", note = "พระเวท" } }, v={ "+O", { "+A", note = "พระเวท" } }, }, { n="+as", v="+as", }) else -- neuter decline(args, data, { n= "", -- args.stem v= "", a="[nom]" }, {}, { n="+i", v="+i", a="[nom]" }) end decline(args, data, {}, { i= "ByAm", }, { i= "Bis", d= "Byas", l= "su", }) -- changing stem to weakest form if vowel == "A" then -- do nothing elseif match(args.stem, "tirya/?c$") then -- specifically for tiryañc args.stem = args.stem:gsub("ya(/?)c$", "a%1Sc") elseif cons ~= "" then args.stem = args.stem:gsub("([yv])a([/\\]?)c$", function(cons, acc) return (cons == "y" and "I" or "U") .. (acc == "" and "" or "/") .. "c" end) elseif match(args.stem, "dac$") then args.stem = args.stem:gsub("ac$", "Ic") else error("Not supported") end if vowel == "A" or oxy == "" then if args.g == "m" then decline(args, data, nil, nil, { a="as", }) else -- neuter decline(args, data, nil, { n="I", v="I", }) end decline(args, data, { i="A", d="e", ab="as", l="i", }, { g="os", }, { g="Am", }) else -- oxytone accent, showing two possible accentuations (Whitney §410) if args.g == "m" then decline(args, data, nil, nil, { a={"as", {"a" .. oxy .. "s", note = "ฤคเวท", mono = true}} }) else decline(args, data, nil, { n= {"I", {"I" .. oxy, note = "ฤคเวท", mono = true}}, v= "I", }) end decline(args, data, { i= {"A", {"A" .. oxy, note = "ฤคเวท", mono = true}}, d= {"e", {"e" .. oxy, note = "ฤคเวท", mono = true}}, ab= {"as", {"a" .. oxy .. "s", note = "ฤคเวท", mono = true}}, l= {"i", {"i" .. oxy, note = "ฤคเวท", mono = true}}, }, { g= {"os", {"o" .. oxy .. "s", note = "ฤคเวท", mono = true}}, }, { g= {"Am", {"A" .. oxy .. "m", note = "ฤคเวท", mono = true}}, }) end decline(args, data, { g="[abl]" }, { a="[nom]", d="[ins]", ab="[ins]", l="[gen]", }, { ab="[dat]", }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit añc-การันต์ adjectives") end end }) decl_data["o"] = { detect = make_detect("(.+)o" .. sa_utils.accent .. "?$", function(args) return args.g == "m" or args.g == "f" end) } setmetatable(decl_data["o"], { -- 'gó' __call = function(self, args, data) local oxy = match(args.lemma, "o(" .. sa_utils.accent .. "?)$") data.decl_type = "o-การันต์" decline(args, data, { n="O" .. oxy .. "s", v="Os", a="A" .. oxy .. "m", i="+A", d="+e", ab="o" .. oxy .. "s", g="[abl]", l="+i", }, { n={ "A" .. oxy .. "vO", { "A" .. oxy .. "vA", note = "พระเวท" } }, v={ "AvO", { "AvA", note = "พระเวท" } }, a="[nom]", i="+ByAm", d="[ins]", ab="[ins]", g= "+os", l="[gen]", }, { n="A" .. oxy .. "vas", a={"A" .. oxy .. "s", { "A" .. oxy .. "vas", note = "rare" } }, v="Avas", i="+Bis", d="+Byas", ab="[dat]", g={ "+Am", { "+nAm", note = "พระเวท" } }, l="+su", }) table.insert(data.categories, "Sanskrit o-การันต์ nouns") end }) decl_data["O"] = { detect = make_detect("(.+)O" .. sa_utils.accent .. "?$", function(args) return args.g == "m" or args.g == "f" end) } setmetatable(decl_data["O"], { __call = function(self, args, data) local oxy = match(args.lemma, "O(" .. sa_utils.accent .. "?)$") data.decl_type = "au-การันต์" decline(args, data, { n="+s", v="+s", a="+am", i= {{ "+A" .. oxy, mono = true }}, d= {{ "+e" .. oxy, mono = true }}, ab={{ "+a" .. oxy .. "s", mono = true }}, g="[abl]", l= {{ "+i" .. oxy, mono = true }}, }, { n={ "+O", { "+A", note = "พระเวท" } }, v={ "+O", { "+A", note = "พระเวท" } }, a="[nom]", i= {{"+ByA" .. oxy .. "m", mono = true }}, d="[ins]", ab="[ins]", g= {{ "+o" .. oxy .. "s", mono = true }}, l="[gen]", }, { n="+as", v="+as", a="[nom]", i= {{"+Bi" .. oxy .. "s", mono = true }}, d= {{"+Bya" .. oxy .. "s", mono = true }}, ab="[dat]", g= {{ "+A" .. oxy .. "m", mono = true }}, l= {{ "+su" .. oxy, mono = true }}, }) table.insert(data.categories, "Sanskrit au-การันต์ nouns") end }) decl_data["vāṃs"] = { detect = make_detect("(.+)vA" .. sa_utils.accent .. "?Ms$", function(args) return args.g == "m" or args.g == "n" end) } setmetatable(decl_data["vāṃs"], { __call = function(self, args, data) local oxy = match(args.lemma, "vA(" .. sa_utils.accent .. "?)Ms$") data.decl_type = "vāṃs-การันต์" local weak_stem if match(args.stem, "baBU$") or match(args.stem, "u$") then weak_stem = args.stem .. "v" elseif match(args.stem, "U$") then weak_stem = args.stem:gsub("U$", "uv") elseif match(args.stem, "pIpi$") or match(args.stem, "dI[dD]i$") then weak_stem = args.stem -- the second 'i' of 'śiśrivāṃs' etc. is part of the root elseif match(args.stem, "[aAIuUfFxeEoO]" .. sa_utils.accent .."?M?" .. sa_utils.consonant .. "+i$") or match(args.stem, "vi[Sd]i$") then weak_stem = args.stem:gsub("i$", "") else weak_stem = args.stem end if args.g == "m" then decline(args, data, { n= "vA" .. oxy .. "n", a= "vA" .. oxy .. "Msam", v={ "van", { "vas", note = "ฤคเวท"} }, }, { n= "vA" .. oxy .. "MsO", a="[nom]", v= "vAMsO", }, { n= "vA" .. oxy .. "Msas", a={{stem = weak_stem, "u" .. oxy .. "zas"}}, v= "vAMsas", }) else decline(args, data, { n= "va" .. oxy .. "t", a="[nom]", v= "vat" }, { n={{stem = weak_stem, "u" .. oxy .. "zI"}}, a="[nom]", v={{stem = weak_stem, "uzI"}}, }, { n= "vA" .. oxy .. "MsI", a="[nom]", v= "vAMsI" }) end decline(args, data, { i={{stem = weak_stem, "u" .. oxy .. "zA"}}, d={{stem = weak_stem, "u" .. oxy .. "ze"}}, ab={{stem = weak_stem, "u" .. oxy .. "zas"}}, g="[abl]", l={{stem = weak_stem, "u" .. oxy .. "zi"}}, }, { i= "va" .. oxy .. "dByAm", d="[ins]", ab="[ins]", g={{stem = weak_stem, "u" .. oxy .. "zos"}}, l="[gen]" }, { i= "va" .. oxy .. "dBis", d= "va" .. oxy .. "dByas", ab="[dat]", g={{stem = weak_stem, "u" .. oxy .. "zAm"}}, l= "va" .. oxy .. "tsu" }) if args.adj == true and args.g == "m" then table.insert(data.categories, "Sanskrit vāṃs-การันต์ adjectives") else table.insert(data.categories, "Sanskrit vāṃs-การันต์ nouns") end end }) return decl_data 1n5y679yuyzel8p214rrzvvkscp8e38 มอดูล:sa-utilities 828 2331800 5724840 2026-06-16T04:22:56Z OctraBot 3198 สร้างหน้าด้วย "local export = {} -- Common regex patterns: export.consonant_list = "kKgGNcCjJYwWqQRtTdDnpPbBmyrlLvSzsh" export.consonant = "[" .. export.consonant_list .. "]" export.accent = "[/\\]" export.vowel_list = "aAiIuUfFxXeEoO" export.vowel = "[" .. export.vowel_list .. "]" export.vowel_with_accent = export.vowel .. export.accent .. "?" export.stop_list = "kKgGcCjJwWqQtTdDpPbB" export.stop = "[" .. export.stop_list .. "]" -- Abbreviated helper functions:..." 5724840 Scribunto text/plain local export = {} -- Common regex patterns: export.consonant_list = "kKgGNcCjJYwWqQRtTdDnpPbBmyrlLvSzsh" export.consonant = "[" .. export.consonant_list .. "]" export.accent = "[/\\]" export.vowel_list = "aAiIuUfFxXeEoO" export.vowel = "[" .. export.vowel_list .. "]" export.vowel_with_accent = export.vowel .. export.accent .. "?" export.stop_list = "kKgGcCjJwWqQtTdDpPbB" export.stop = "[" .. export.stop_list .. "]" -- Abbreviated helper functions: local match = string.match local gsub = string.gsub -- All we need for SLP1! Much faster than mw.ustring.gsub local sub = string.sub local lower = string.lower local upper = string.upper --[=[Detects whether a specified text ends in a given pattern. Parameters: text (String): the text to be tested pattern (String): the query pattern to be tested on the end of the text. Return: Boolean ]=] local function ends_with(text, pattern) return match(text, pattern .. "$") end --[=[Detects whether a specified text begins in a given pattern. Parameters: text (String): the text to be tested pattern (String): the query pattern to be tested on the beginning of the text. Return: Boolean ]=] local function starts_with(text, pattern) return match(text, "^" .. pattern) end -- Common transformation types: --[=[ Increase a vowel one grade (guṇation). It is possible that this should include provisions for guṇation of sonorants into CV configurations (e.g. i/ī -> ya -> yā, etc.). Perhaps will need to be updated. ]=] export.up_one_grade = { ['a'] = 'A', ['A'] = 'A', ['a/'] = 'A/', ['A/'] = 'A/', ['a\\'] = 'A\\', ['A\\'] = 'A\\', ['i'] = 'e', ['I'] = 'e', ['i/'] = 'e/', ['I/'] = 'e/', ['i\\'] = 'e\\', ['I\\'] = 'e\\', ['u'] = 'o', ['U'] = 'o', ['u/'] = 'o/', ['U/'] = 'o/', ['u\\'] = 'o\\', ['U\\'] = 'o\\', ['e'] = 'E', ['E'] = 'E', ['e/'] = 'E/', ['E/'] = 'E/', ['e\\'] = 'E\\', ['E\\'] = 'E\\', ['o'] = 'O', ['O'] = 'O', ['o/'] = 'O/', ['O/'] = 'O/', ['o\\'] = 'O\\', ['O\\'] = 'O\\', ['f'] = 'ar', ['F'] = 'ar', ['f/'] = 'a/r', ['F/'] = 'a/r', ['f\\'] = 'a\\r', ['F\\'] = 'a\\r', ['x'] = 'al', ['x/'] = 'a/l', ['x\\'] = 'a\\l', } -- Lengthen a vowel export.lengthen = { ['a'] = 'A', ['A'] = 'A', ['a/'] = 'A/', ['A/'] = 'A/', ['a\\'] = 'A\\', ['A\\'] = 'A\\', ['i'] = 'I', ['I'] = 'I', ['i/'] = 'I/', ['I/'] = 'I/', ['i\\'] = 'I\\', ['I\\'] = 'I\\', ['u'] = 'U', ['U'] = 'U', ['u/'] = 'U/', ['U/'] = 'U/', ['u\\'] = 'U\\', ['U\\'] = 'U\\', ['f'] = 'F', ['F'] = 'F', ['f/'] = 'F/', ['F/'] = 'F/', ['f\\'] = 'F\\', ['F\\'] = 'F\\', } -- Decrease vowel one grade (reverse of above) export.shorten = { ['a'] = 'a', ['A'] = 'a', ['a/'] = 'a/', ['A/'] = 'a/', ['a\\'] = 'a\\', ['A\\'] = 'a\\', ['i'] = 'i', ['I'] = 'i', ['i/'] = 'i/', ['I/'] = 'i/', ['i\\'] = 'i\\', ['I\\'] = 'i\\', ['u'] = 'u', ['U'] = 'u', ['u/'] = 'u/', ['U/'] = 'u/', ['u\\'] = 'u\\', ['U\\'] = 'u\\', ['f'] = 'f', ['F'] = 'f', ['f/'] = 'f/', ['F/'] = 'f/', ['f\\'] = 'f\\', ['F\\'] = 'f\\', } -- Convert a monosegmental (or at least monoliteral) diphthong into a/ā + glide. export.split_diphthong = { ['e'] = 'ay', ['e/'] = 'a/y', ['e\\'] = 'a\\y', ['E'] = 'Ay', ['E/'] = 'A/y', ['E\\'] = 'A\\y', ['o'] = 'av', ['o/'] = 'a/v', ['o\\'] = 'a\\v', ['O'] = 'Av', ['O/'] = 'A/v', ['O\\'] = 'A\\v', } -- reverse of above local join_diphthong = { ['ay'] = 'e', ['a/y'] = 'e/', ['a\\y'] = 'e\\', ['Ay'] = 'E', ['A/y'] = 'E/', ['A\\y'] = 'E\\', ['av'] = 'o', ['a/v'] = 'o/', ['a\\v'] = 'o\\', ['Av'] = 'O', ['A/v'] = 'O/', ['A\\v'] = 'O\\', } -- Convert a syllabic sonorant to its associated consonantal form. export.vowel_to_cons = { ['i'] = 'y', ['I'] = 'y', ['u'] = 'v', ['U'] = 'v', ['f'] = 'r', ['F'] = 'r', ['x'] = 'l', ['X'] = 'l', } local cons_to_vowel = { ['y'] = 'i', ['r'] = 'f', ['v'] = 'u', ['l'] = 'x' } local to_velar = { ['c'] = 'k', ['j'] = 'g', ['h'] = 'G' } -- Add a homorganic glide to a vowel local insert_glide = { ['i'] = 'iy', ['I'] = 'iy', ['i/'] = 'i/y', ['I/'] = 'i/y', ['i\\'] = 'i\\y', ['I\\'] = 'i\\y', ['u'] = 'uv', ['U'] = 'uv', ['u/'] = 'u/v', ['U/'] = 'u/v', ['u\\'] = 'u\\v', ['U\\'] = 'u\\v', } --[=[Convert all unambiguous stops to their absolute final value. The equivalent values (e.g. k = k) may be redundant given the implementation of absolute_final and internal_sandhi below. ]=] export.to_final = { ['k'] = 'k', ['K'] = 'k', ['g'] = 'k', ['G'] = 'k', ['c'] = 'k', ['C'] = 'w', ['J'] = 'w', -- value for 'J' is theoretical ['w'] = 'w', ['W'] = 'w', ['q'] = 'w', ['Q'] = 'w', ['L'] = 'w', ['t'] = 't', ['T'] = 't', ['d'] = 't', ['D'] = 't', ['p'] = 'p', ['P'] = 'p', ['b'] = 'p', ['B'] = 'p', ['Y'] = 'N', ['z'] = 'w', } -- Convert dental to retroflex local function dental_to_retroflex(str) local changes = { ['t'] = 'w', ['T'] = 'W', ['d'] = 'q', ['D'] = 'Q', ['n'] = 'R', } return gsub(str, '.', changes) end -- Remove aspiration export.deaspirate = { ['K'] = 'k', ['G'] = 'g', ['C'] = 'c', ['J'] = 'j', ['W'] = 'w', ['Q'] = 'q', ['T'] = 't', ['D'] = 'd', ['P'] = 'p', ['B'] = 'b', } export.aspirate = { ['g'] = 'G', ['j'] = 'J', ['q'] = 'Q', ['d'] = 'D', ['b'] = 'B' } export.to_voiced = { ['k'] = 'g', ['c'] = 'j', ['w'] = 'q', ['t'] = 'd', ['p'] = 'b' } export.homorganic_nasal = { ['k'] = 'N', ['K'] = 'N', ['g'] = 'N', ['G'] = 'N', ['c'] = 'Y', ['C'] = 'Y', ['j'] = 'Y', ['J'] = 'Y', ['w'] = 'R', ['W'] = 'R', ['q'] = 'R', ['Q'] = 'R', ['t'] = 'n', ['T'] = 'n', ['d'] = 'n', ['D'] = 'n', ['p'] = 'm', ['P'] = 'm', ['b'] = 'm', ['B'] = 'm', ['r'] = 'M', ['l'] = 'M', -- or 'l~' ['S'] = 'M', ['z'] = 'M', ['s'] = 'M', ['h'] = 'M' } --[=[Detects whether a word is monosyllabic. This function does not apply sandhi to determing whether a potential phonemic form like /dā́rv/ would be syllabified to [dā́ru]. This might need to be changed. Parameters: text (String): the text to be checked for monosyllabicity Return: Boolean ]=] function export.is_monosyllabic(text) return match(text, "^" .. export.consonant .. "*" .. export.vowel_with_accent .. "[HM~]?" .. export.consonant .. "*$") end --[=[Transforms a word to its absolute final sandhi form. Parameters: text (String): the text to be converted to final sandhi position ambig_final (String): an indication of what outcome j/ś/h should have as these will unpredictably produce either a retroflex or a velar stop in final position (e.g. spáś- > spáṭ 'spy' vs. náś- > nák 'night'). Required for j/ś/h-final strings. Return: String ]=] local function absolute_final(text, ambig_final, j_to_z, h_to_g) if ends_with(text, "kz") then -- final -kṣ > ṭ text = gsub(text, "..$", "w") elseif ends_with(text, "Ms") then text = gsub(text, "..$", "n") -- final r + stop is allowed in stem, see Whitney §150b (endings -s/-t after consonant have been eliminated previously) elseif ends_with(text, export.vowel_with_accent .. "r[" .. export.stop_list .. "SzhL]") then -- do nothing elseif ends_with(text, export.consonant .. export.consonant) then -- at least 2 consonants -- Take the first of the cluster. text = gsub(text, "(" .. export.consonant .. "+)$", function(cluster) return sub(cluster, 1, 1) end) end -- ḷh, v, and y are not handled as they should not appear finally. Perhaps wrong. if ambig_final then -- in case of -j/ś/h, but also to override the normal value in a few exceptional cases text = gsub(text, ".$", ambig_final) elseif ends_with(text, "[kwtpNRnmlaAiIuUeEoOfFxXH][/\\]?") then -- do nothing elseif ends_with(text, "M") then -- just in case, ṃ > m text = gsub(text, ".$", "m") elseif ends_with(text, "[sr]") then -- convert to final visarga text = gsub(text, ".$", "H") elseif ends_with(text, "[KgGcCJWqQTdDPbBYzL]") then -- Handle final stops. text = gsub(text, ".$", export.to_final) elseif ends_with(text, "[jhS]") then -- see also ambig_final above if j_to_z then text = gsub(text, "j$", "w") elseif h_to_g then text = gsub(text, "h$", "k") else text = gsub(text, ".$", {['j'] = 'k', ['h'] = 'w', ['S'] = 'w'}) -- most common values end end return text end --[=[Applying retroflexion to a stem and ending without joining them. This include RUKI, ṣ-cluster harmony, and nasal retroflexions. Parameters: stem (String): the stem to receive an ending ending (String): the ending to be affixed Return: String (stem), String (ending) ]=] function export.retroflexion(stem, ending, no_retroflex_root_s, han, stem_final_n) -- Does the stem end in a RUKI environment? if ends_with(stem, "[iIeEfFxuUoOrk][/\\]?[HM]?") then ending = gsub(ending, "^s([^rfF])", "z%1") -- Convert ending-initial s > ṣ not followed by [rṛṝ]. ending = gsub(ending, "^z[tTdDn]*", dental_to_retroflex) end -- Does the stem end in a RUKI environment followed by s and the ending not start with [rṛṝ]? if ends_with(stem, "[iIeEfFxuUoOrk][/\\]?[HM]?s") and starts_with(ending, "[^rfF]") and not no_retroflex_root_s == true then stem = gsub(stem, "s$", "z") -- Convert stem-final s > ṣ end if ends_with(stem, "[zqwR]") then -- Does the stem end in a retroflex? -- Convert an ending-initial dental (cluster) to retroflex ending = gsub(ending, "^[tTdDn]*", dental_to_retroflex) end -- Does the stem contain a nasal harmony trigger without intervening blockers? if ends_with(stem, "[zrfF][^cCjJYwWqQRtTdDnSslL]*") and not (han and ends_with(stem, "G") and starts_with(ending, "n")) then -- Convert all retroflexable n > ṇ in the ending ending = gsub(ending, "^([^cCjJYwWqQRtTdDnSslL]*)n([aAiIeEfFxuUoOynmv])", "%1R%2") end -- Does the stem contain a nasal harmony trigger without intervening blockers and stem-final n? -- (Compounds ending in -na (with nasal harmony trigger in first member) shouldn't have there 'n' retroflexed) if stem_final_n and ends_with(stem, "[zrfF][^cCjJYwWqQRtTdDnSslL]*n") and starts_with(ending, "[aAiIuUxeEoOnmyv]") then stem = gsub(stem, "n$", "R") -- Convert stem-final n > ṇ end -- For safety, does the ending contain an unblocked nasal harmony trigger and unretroflexed n? ending = gsub(ending, "([zrfF][^cCjJYwWqQRtTdDnSslL]*)n([aAiIuUxeEoOnmyv])", "%1R%2") return stem, ending end --[=[Combine a stem and ending while modifiying the accentuation. This does not currently account for mobility of accent between the stem and ending. Parameters: stem (String): the stem to receive an ending ending (String): the ending to be affixed has_accent (Boolean): whether the word has an accent to be modified at all accent_override (Boolean): whether to strip the stem of accent mono (Boolean): whether the stem is monosyllabic AND susceptible to accentual mobility (cf. pā́dam ~ padā́ vs. gā́m ~ gávā). This should perhaps be renamed or removed as redundant to accent_override in this function. This should not be applied to *all* monosyllabic nouns! recessive (Boolean): whether the accent must be moved to the leftmost vowel (in the vocative) voc_svar (Boolean): to indicate that the first syllable should get svarita in the vocative Return: String ]=] local function combine_accent(stem, ending, has_accent, accent_override, mono, recessive, voc_svar) if has_accent then if starts_with(stem, "-") and recessive then -- suffix in vocative case stem = gsub(stem, export.accent, "") ending = gsub(ending, export.accent, "") -- vocative; no change if first syllable has svarita elseif recessive and not starts_with(stem, export.consonant .. "*" .. export.vowel .. "\\") then local combined = stem .. ending -- combine word combined = gsub(combined, export.accent, "") -- remove any accent if voc_svar and match(combined, "^" .. export.consonant .. "+[vy]" .. export.vowel) then combined = gsub(combined, "^(" .. export.consonant .. "+" .. export.vowel .. ")", "%1\\") -- svarita on first vowel else combined = gsub(combined, "^(" .. export.consonant .. "*" .. export.vowel .. ")", "%1/") -- udatta on first vowel end return combined elseif accent_override or (mono and match(ending, export.accent)) then stem = gsub(stem, export.accent, "") -- remove all accents from stem ending = gsub(ending, "\\", "/") -- convert svarita to udatta on ending -- If both the stem and ending are accented, remove the ending accent. This may be too simple. elseif match(stem, export.accent) and match(ending, export.accent) then ending = gsub(ending, export.accent, "") end end return stem .. ending end local function aspirate_diaspirate(stem) stem = gsub(stem, "(.*)([gdb])([^gdb]+[gdb]?)$", function(pre, cons, post) return (pre .. export.aspirate[cons]) .. post end) return stem end --[=[Return a word-stem combined with a given ending while handling internal sandhi and accentuation. Please see the implementation for details. Parameters: input_table (Table): This table is expected to contain the items: stem (String): the stem to receive an ending ending (String): the ending to be affixed has_accent (Boolean): whether the word has an accent to be modified mono (Boolean): whether the stem is monosyllabic OR behaves like a monosyllable (e.g. root noun compounds) accent_override (Boolean): whether to strip the stem of accent since some non-monosyllabic forms (e.g. present participles and gen.pl.) may show stem-to-ending accentual mobility. recessive (Boolean): whether the accent must be moved to the leftmost vowel (e.g. in the vocative) j_to_z (Boolean): whether to convert j > ṣ before {t, th} instead of j > k h_to_g (Boolean): whether to convert h > g before {t, th, d, dh} (duh + -tá = dugdhá) instead of h + t > ḍh (lih + -tá = līḍhá) retroflex_l (Boolean): produces ḷ(h) instead of ḍ(h) intervocalically (Vedic variant) non_final (Boolean): if true, will not apply word-final sandhi (i.e. convert s to visarga) Return: String ]=] function export.internal_sandhi(input_table) local stem, ending = input_table.stem, input_table.ending local last -- last segment of the stem local acc -- the accent local first -- the first segment of the ending local combined -- the combined form -- explicitly ignored are CV, C + semivowel, or C + nasal if starts_with(ending, export.consonant) then -- {i, u} > {ī, ū} /__[rs]C if stem is monosyllabic (e.g. gir, pur + ā-śis) if ends_with(stem, "[iu][/\\]?[rs]") and input_table.root and not ends_with(stem, "catu/?r") then stem = gsub(stem, "([iu][/\\]?)([rs])$", function(vow, cons) return export.lengthen[vow] .. cons end) -- consonant + y/r/v + consonant from ending -- note that sequences like 'trv' can occur, e.g. śatrvos, gen.dual of śatru, so the case ending should be given as 'os' there, not 'vos' elseif ends_with(stem, export.consonant .. "[yrv]") then -- e.g. śvan > śunā / cakruḥ > cakṛma stem = gsub(stem, ".$", cons_to_vowel) -- no word-initial clusters with y-, for verb 'eti, yanti' elseif stem == "y" then stem = "i" -- e.g. yuvan > yūnā / iyaja > īje (Whitney §800j) / babhūva > babhūtha (§800d) elseif (ends_with(stem, "[uU][/\\]?v") or ends_with(stem, "[iI][/\\]?y") ) and starts_with(ending, "[^yrl]") then if ends_with(stem, export.consonant..export.consonant.."[iu][/\\]?[yv]") then -- do nothing else stem = gsub(stem, "([iIuU][/\\]?)[yv]$", function(vow) return export.lengthen[vow] end) end elseif ends_with(stem, "a[/\\]?[vy]") and starts_with(ending, "[^yrl]") then stem = gsub(stem, "(a[/\\]?[vy])$", function(diph) return join_diphthong[diph] end) -- historical vocalisation of PIE nasal vowels; omitting endings starting with 'y' (optative) as 'gmy' actually occurs elseif ends_with(stem, export.consonant .. "[nmY]") then if starts_with(ending, "[mv]") then stem = gsub(stem, ".$", "an") elseif starts_with(ending, "[tTDBs]") then stem = gsub(stem, ".$", "a") end end end -- remove -s/-t verbal endings after consonant (Whitney §555) -- plus -s after nominal consonant stem (used to provoke a long vowel in -ir/-ur stems) if ends_with(stem, "[" .. export.consonant_list .. "M]") and match(ending, "^[st]$") then ending = gsub(ending, ".", "") end if ending == "" then if ends_with(stem, "[mM]") then -- final 'm' of a root becomes 'n' stem = gsub(stem, ".$", "n") elseif input_table.diaspirate then -- budh > bhut, etc. stem = aspirate_diaspirate(stem) end -- combine_accent for vocatives without ending combined = combine_accent(stem, ending, input_table.has_accent, input_table.accent_override, input_table.mono, input_table.recessive, input_table.voc_svar) return absolute_final(combined, input_table.ambig_final, input_table.j_to_z, input_table.h_to_g) -- all cases of ending starts with vowel elseif starts_with(ending, export.vowel) then if ends_with(stem, export.vowel_with_accent) then -- stem ends with vowel -- strip last vowel and accent off stem stem, last, acc = match(stem, "^(.*)(" .. export.vowel .. ")(" .. export.accent .. "?)$") -- strip first vowel off ending first, ending = match(ending, "^(.)(.*)$") -- monosyllabic semivowel-final stems (this applies to root noun compounds as well) if match(last, '[iIuU]') and ( input_table.mono or input_table.no_syncope ) then stem = stem .. insert_glide[last .. acc] ending = first .. ending elseif export.split_diphthong[last] then -- Can a stem-final guna and vrddhi be split into V + sonorant? stem = stem .. export.split_diphthong[last .. acc] ending = first .. ending elseif lower(last) == lower(first) then -- homorganic vowels ending = upper(first) .. acc .. ending elseif lower(last) == "a" then -- gunation and vrddhization after stem-final a. ending = export.up_one_grade[first .. acc] .. ending elseif export.vowel_to_cons[last] then -- Can the stem-final vowel be made consonantal? stem = gsub(stem, "L$", "q"); stem = gsub(stem, "Lh$", "Q") -- convert ḷ(h) to ḍ(h) stem = stem .. export.vowel_to_cons[last] ending = first .. (acc == "/" and "\\" or "") .. ending -- Convert stem-final udatta to ending-initial svarita if match(stem, "^" .. export.consonant .. "*yv$") then -- dyu- > divā stem = gsub(stem, "..$", "iv") end end end -- endings starting with consonants -- for middle s-aorist 2nd plural elseif ends_with(stem, export.vowel_with_accent .. 'M?') and starts_with(ending, "sD") then if ends_with(stem, "[iIeEfFxuUoO][/\\]?") then ending = gsub(ending, '^..', 'Q') else ending = gsub(ending, '^..', 'D') stem = gsub(stem, 'M$', 'n') end -- n > ñ /__{c, j} elseif ends_with(stem, "[cj]") and starts_with(ending, "n") then ending = gsub(ending, "^.", "Y") elseif input_table.han and starts_with(ending, "n") then stem = gsub(stem, 'h$', 'G') -- All other C- + -C interactions elseif ends_with(stem, export.consonant) and starts_with(ending, export.consonant) then stem = gsub(stem, "L$", "q"); stem = gsub(stem, "Lh$", "Q") -- convert ḷ(h) to ḍ(h) -- for nominal endings -bhyām, -bhis, -bhyas, -su (see Whitney §111a) if starts_with(ending, "B[iy]") or starts_with(ending, "su" .. export.accent .. "?$") then if ends_with(stem, "kz") then -- final -kṣ > ṭ stem = gsub(stem, "..$", "w") -- final r + stop is allowed in stem, see Whitney §150b elseif ends_with(stem, export.vowel_with_accent .. "r[" .. export.stop_list .. "SzhL]") then -- do nothing elseif ends_with(stem, export.consonant .. export.consonant) then -- at least 2 consonants -- take the first of the cluster stem = gsub(stem, "(" .. export.consonant .. "+)$", function(cluster) return sub(cluster, 1, 1) end) end if ends_with(stem, "[jSh]") or input_table.ambig_final then stem = gsub(stem, ".$", input_table.ambig_final) -- in case of -j/ś/h, but also to override the normal value in a few exceptional cases elseif ends_with(stem, "[KgGcCJWqQTdDPbBz]") then stem = gsub(stem, ".$", export.to_final) elseif ends_with(stem, "m") then stem = gsub(stem, ".$", "n") -- Loss of {z, ẓ} with compensatory lengthening before voiced consonant. (FIXME: but what about the médha- < *mázdha- type?) elseif ends_with(stem, "[aA][/\\]?s") and starts_with(ending, "[rgGdDbByvjJqQlLhnm]") then stem = gsub(stem, "([aA])([/\\]?)s$", function(vow, acc) return (vow == "a" and "o" or "A") .. acc end) -- final s-allophones elseif ends_with(stem, "s") then if starts_with(ending, "[kKpPzsS]") then -- visarga stem = gsub(stem, ".$", "H") elseif starts_with(ending, "[gGjJqQdDbByvlLhnm]") then -- s > r stem = gsub(stem, ".$", "r") -- outcommented because not relevant to internal sandhi -- elseif starts_with(ending, "[cCwW]") then -- homorganic fricative -- local homorg_s = { -- ['c'] = 'S', ['C'] = 'S', -- ['w'] = 'z', ['W'] = 'z', -- } -- stem = gsub(stem, ".$", homorg_s[sub(ending, 1, 1)]) -- elseif starts_with(ending, "r") then -- Loss of z before r with compensatory lengthening before voiced consonant. -- stem = gsub(stem, "(" .. export.vowel .. "[/\\])[sHr]$", function(vow) return export.lengthen[vow] or vow end) end end -- if ends_with(stem, "w") and starts_with(ending, "n") then -- for 'ṣaṇṇām' -- stem = gsub(stem, "w$", "R") -- end else -- for all other endings -- s-aorist (Whitney §881) if (ends_with(stem, "[^rnm]") and starts_with(ending, "s[tT]")) or starts_with(ending, "sD") then ending = gsub(ending, '^s', '') end -- diaspirate verbs with -dhve/-dhvam ending, see paper "Sanskrit as she has been misanalyzed ..." (Janda & Joseph, 2002), p.28-29 if input_table.diaspirate and starts_with(ending, "Dv") then stem = aspirate_diaspirate(stem) elseif (ends_with(stem, "jj") or ends_with(stem, "Sc")) and starts_with(ending, "[tTdDs]") then stem = gsub(stem, ".$", "") -- further treated below end if ends_with(stem, "kz") then -- roots on -kṣ if starts_with(ending, "s") then stem = gsub(stem, "..$", 'k') elseif starts_with(ending, "[tT]") then stem = gsub(stem, "Nkz$", 'Mz') stem = gsub(stem, "kz$", 'z') elseif starts_with(ending, "[dD]") then stem = gsub(stem, "Nkz$", 'Rq') stem = gsub(stem, "kz$", 'q') end elseif ends_with(stem, "[cJ]") and starts_with(ending, "[tTdDs]") then stem = gsub(stem, "Y.$", 'Nk') stem = gsub(stem, "[cJ]$", 'k') elseif ends_with(stem, "[jCSzh]") and starts_with(ending, "s") then stem = gsub(stem, "[YM].$", 'Nk') stem = gsub(stem, "[jCSzh]$", 'k') elseif ends_with(stem, "[jCSz]") and starts_with(ending, "[tTdD]") then if input_table.j_to_z or input_table.ambig_final == "w" or ends_with(stem, "[CSz]") then if starts_with(ending, "[tT]") then stem = gsub(stem, 'Y[jC]$', 'Mz') stem = gsub(stem, "[jCS]$", 'z') else stem = gsub(stem, '[YM].$', 'Rq') stem = gsub(stem, '[jCSz]$', 'q') end else stem = gsub(stem, "Yj$", 'Nk') stem = gsub(stem, "j$", 'k') end elseif ends_with(stem, "h") and starts_with(ending, "[tTdD]") then if input_table.h_to_g then stem = gsub(stem, "h$", "g") ending = gsub(ending, "^.", "D") else if ends_with(stem, "va/?h") then -- root 'vah' (sometimes also 'sah', see Whitney §224b) stem = gsub(stem, "a(/?)h$", "o%1") else -- {a, i, u}h + {t, th, d, dh} > {ā, ī, ū}ḍh (Bartholomae's Law with retroflection and compensatory lengthening) stem = gsub(stem, "([aiu]?)([/\\]?)h$", function(vow, acc) return (export.lengthen[vow] or "") .. acc end) stem = gsub(stem, 'M$', 'R') end if input_table.retroflex_l and starts_with(ending, "." .. export.vowel) then ending = gsub(ending, "^.", "Lh") else ending = gsub(ending, "^.", "Q") end end -- -vāṃs, see Whitney §216 j elseif input_table.deriv and ((ends_with(stem, "[cj]") and not input_table.j_to_z) or (ends_with(stem, "h") and input_table.h_to_g)) then stem = gsub(stem, ".$", to_velar) stem = gsub(stem, "[YM](.)$", "N%1") -- e.g. śādhi (Whitney §166) elseif ends_with(stem, "As") and match(ending, "^Di/?$") then stem = gsub(stem, "s$", "") -- following Whitney's convention at §612 of interpreting 'dhv' from 's + dhv' as 'ddhv' (see also §166 and §232) -- sometimes also in nouns + -bhis, etc. (normally handled by input_table.final above) elseif ends_with(stem, ".s") and starts_with(ending, "[DB]") then stem = gsub(stem, "Ms$", "nd") stem = gsub(stem, "s$", "d") -- for the (basically theoretical) middle voice of 'asti' elseif stem == "s" and starts_with(ending, "[sD]") then stem = "" elseif ends_with(stem, "m") then -- if stem ends in m -- m > ṃ before {h, ś, ṣ, s} and homorganic before stops (Whitney §212) if starts_with(ending, "[kKgGcCjJwWqQtTdDSzsh]") then stem = gsub(stem, "m$", export.homorganic_nasal[sub(ending, 1, 1)]) elseif starts_with(ending, "[mv]") then stem = gsub(stem, "m$", "n") end elseif ends_with(stem, "n") then -- if stem ends in n if starts_with(ending, "[Szs]") then -- n > ṃ /__{ś, ṣ, s} stem = gsub(stem, ".$", "M") end elseif ends_with(stem, "[KGWQTDPB]") and starts_with(ending, "[^NYRnmyrlv]") then -- Whitney §153 -- Bartholomae's Law if ends_with(stem, "[GQDB]") and starts_with(ending, "[tT]") then ending = gsub(ending, "^.", "D") end stem = gsub(stem, ".$", export.deaspirate) end -- {g, ḍ, d, b} > {k, ṭ, t, p} before following unvoiced stop/sibilant if ends_with(stem, "[gqbd]") and starts_with(ending, "[kKcCwWtTpPSzs]") then stem = gsub(stem, ".$", export.to_final) end end -- general rules for both 'final' (pāda) endings and others (outcommented lines are only relevant for external sandhi) if ends_with(stem, "[kwp]") then if starts_with(ending, "[gGjJqQdDbB]") then -- {k, ṭ, p} > {g, ḍ, b} before following voiced stop stem = gsub(stem, ".$", export.to_voiced) -- elseif starts_with(ending, "h") then -- {k, ṭ, p}h > {ggh, ḍḍh, bbh} -- stem = gsub(stem, ".$", export.to_voiced) -- ending = gsub(ending, "^.", gsub(stem, ".$", {['k'] = 'G', ['w'] = 'Q', ['p'] = 'B'})) end elseif ends_with(stem, "t") then if starts_with(ending, "[gGdDbB]") then -- t > d /__{g(h), d(h), b(h)} stem = gsub(stem, ".$", "d") -- elseif starts_with(ending, "h") then -- t + h > ddh -- stem = gsub(stem, ".$", "d") -- ending = gsub(ending, "^.", "D") -- elseif starts_with(ending, "[cCjJwWqQ]") then -- homorganic with following stop -- local t_pre_palatal_retroflex = -- { ['c'] = 'c', ['C'] = 'c', ['j'] = 'j', ['J'] = 'j', -- ['w'] = 'w', ['W'] = 'w', ['q'] = 'q', ['Q'] = 'q', } -- stem = gsub(stem, ".$", t_pre_palatal_retroflex[sub(ending, 1, 1)]) -- elseif starts_with(ending, "S") then -- tś > cch -- stem = gsub(stem, ".$", "c") -- ending = gsub(ending, "^.", "C") -- elseif starts_with(ending, "l") then -- stem = gsub(stem, ".$", "l") end end -- note that nominal endings with -bh also trigger aspiration throwback if input_table.diaspirate and ends_with(stem, "[^GDBh]") and starts_with(ending, "[^QD]") then stem = aspirate_diaspirate(stem) end end stem, ending = export.retroflexion(stem, ending, input_table.no_retroflex_root_s, input_table.han, input_table.stem_final_n) combined = combine_accent(stem, ending, input_table.has_accent, input_table.accent_override, input_table.mono, input_table.recessive, input_table.voc_svar) if input_table.non_final then return combined end return absolute_final(combined) end return export 9cytjvohcdcis6lctfbwkpst371qzlr มอดูล:sa-utilities/translit/SLP1-to-IAST 828 2331801 5724841 2026-06-16T04:23:29Z OctraBot 3198 สร้างหน้าด้วย "local export = {} local U = require("Module:string/char") local acute = U(0x301) -- combining acute local grave = U(0x300) -- combining grave local diaeresis = U(0x308) -- combining diaeresis local tt = { [1] = { -- consonants ['K'] = 'kh', ['G'] = 'gh', ['N'] = 'ṅ', ['C'] = 'ch', ['J'] = 'jh', ['Y'] = 'ñ', ['w'] = 'ṭ', ['W'] = 'ṭh', ['q'] = 'ḍ', ['Q'] = 'ḍh', ['R'] = 'ṇ', ['T'] = 'th', ['D'] = 'dh', ['P'] = 'ph', ['B'] =..." 5724841 Scribunto text/plain local export = {} local U = require("Module:string/char") local acute = U(0x301) -- combining acute local grave = U(0x300) -- combining grave local diaeresis = U(0x308) -- combining diaeresis local tt = { [1] = { -- consonants ['K'] = 'kh', ['G'] = 'gh', ['N'] = 'ṅ', ['C'] = 'ch', ['J'] = 'jh', ['Y'] = 'ñ', ['w'] = 'ṭ', ['W'] = 'ṭh', ['q'] = 'ḍ', ['Q'] = 'ḍh', ['R'] = 'ṇ', ['T'] = 'th', ['D'] = 'dh', ['P'] = 'ph', ['B'] = 'bh', ['L'] = 'ḷ', ['S'] = 'ś', ['z'] = 'ṣ', -- vowels ['A'] = 'ā', ['I'] = 'ī', ['U'] = 'ū', ['f'] = 'ṛ', ['F'] = 'ṝ', ['x'] = 'ḷ', ['X'] = 'ḹ', ['E'] = 'ai', ['O'] = 'au', -- chandrabindu ['~'] = 'm̐', --until a better method is found -- anusvara ['M'] = 'ṃ', --until a better method is found -- visarga ['H'] = 'ḥ', -- avagraha ["'"] = '’', --Vedic extensions ['/'] = acute, ['\\'] = grave, }, [2] = { --Vedic extensions ['Z'] = 'x', ['V'] = 'f', }, } function export.tr(text, lang, sc) text = mw.ustring.gsub(text, '(a[/\\]?[iu])', '%1' .. diaeresis) text = mw.ustring.gsub(text, '.', tt[1]) text = mw.ustring.gsub(text, '.', tt[2]) text = mw.ustring.gsub(text, 'a([iu])([' .. acute .. grave .. '])', 'a%2%1') return mw.ustring.toNFC(text) end return export btule1qavlhxx97pq1zfvzfld7nqfkf มอดูล:sa-utilities/translit/SLP1-to-Deva 828 2331802 5724842 2026-06-16T04:24:10Z OctraBot 3198 สร้างหน้าด้วย "local export = {} local consonant_list = "kKgGNcCjJYwWqQRtTdDnpPbBmyrlLvSzsh" local consonant = "[" .. consonant_list .. "]" local vowel_list = "aAiIuUfFxXeEoO" local vowel = "[" .. vowel_list .. "]" local U = require("Module:string/char") local gsub = mw.ustring.gsub local gmatch = mw.ustring.gmatch local virAma = U(0x94D) local svar = U(0x951) local anud = U(0x952) local diacritics = { ['a'] = '', ['A'] = 'ा', ['i'] = 'ि', ['I'] = 'ी',..." 5724842 Scribunto text/plain local export = {} local consonant_list = "kKgGNcCjJYwWqQRtTdDnpPbBmyrlLvSzsh" local consonant = "[" .. consonant_list .. "]" local vowel_list = "aAiIuUfFxXeEoO" local vowel = "[" .. vowel_list .. "]" local U = require("Module:string/char") local gsub = mw.ustring.gsub local gmatch = mw.ustring.gmatch local virAma = U(0x94D) local svar = U(0x951) local anud = U(0x952) local diacritics = { ['a'] = '', ['A'] = 'ा', ['i'] = 'ि', ['I'] = 'ी', ['u'] = 'ु', ['U'] = 'ू', ['f'] = 'ृ', ['F'] = 'ॄ', ['x'] = 'ॢ', ['X'] = 'ॣ', ['e'] = 'े', ['E'] = 'ै', ['o'] = 'ो', ['O'] = 'ौ', } local tt = { -- consonants ['k'] = 'क', ['K'] = 'ख', ['g'] = 'ग', ['G'] = 'घ', ['N'] = 'ङ', ['c'] = 'च', ['C'] = 'छ', ['j'] = 'ज', ['J'] = 'झ', ['Y'] = 'ञ', ['w'] = 'ट', ['W'] = 'ठ', ['q'] = 'ड', ['Q'] = 'ढ', ['R'] = 'ण', ['t'] = 'त', ['T'] = 'थ', ['d'] = 'द', ['D'] = 'ध', ['n'] = 'न', ['p'] = 'प', ['P'] = 'फ', ['b'] = 'ब', ['B'] = 'भ', ['m'] = 'म', ['y'] = 'य', ['r'] = 'र', ['l'] = 'ल', ['v'] = 'व', ['L'] = 'ळ', ['S'] = 'श', ['z'] = 'ष', ['s'] = 'स', ['h'] = 'ह', -- vowels ['a'] = "अ", ['A'] = "आ", ['i'] = "इ", ['I'] = "ई", ['u'] = "उ", ['U'] = "ऊ", ['f'] = "ऋ", ['F'] = "ॠ", ['x'] = "ऌ", ['X'] = "ॡ", ['e'] = "ए", ['E'] = "ऐ", ['o'] = "ओ", ['O'] = "औ", -- chandrabindu ['~'] = 'ँ', -- anusvara ['M'] = 'ं', -- visarga ['H'] = 'ः', -- avagraha ["'"] = 'ऽ', --numerals ['0'] = '०', ['1'] = '१', ['2'] = '२', ['3'] = '३', ['4'] = '४', ['5'] = '५', ['6'] = '६', ['7'] = '७', ['8'] = '८', ['9'] = '९', --Vedic extensions ['Z'] = 'ᳵ', ['V'] = 'ᳶ', -- ['/'] = '', -- ['\\'] = '', } function export.tr(text, lang, sc) -- Introduce underscore as extra 'accent' for syllables where dependent svarita becomes anudatta (viz. between two udatta's). text = gsub(text, "(/[" .. consonant_list .. " 'HM~]*".. vowel ..")([" .. consonant_list .. " 'HM~]*".. vowel .."/)", "%1_%2") text = gsub(text, "(/[" .. consonant_list .. " 'HM~]*".. vowel ..")([" .. consonant_list .. " 'HM~]*".. vowel .."/)", "%1_%2") -- twice -- capture twice so that all adjacent pairs are covered text = gsub(text, "(" .. consonant .. ")(" .. consonant .. ")", "%1" .. virAma .. "%2") text = gsub(text, "(" .. consonant .. ")(" .. consonant .. ")", "%1" .. virAma .. "%2") -- whitespace and end of string text = gsub(text, "(" .. consonant .. ")%f[%s%z-]", "%1" .. virAma) -- all vowel diacritics text = gsub(text, "(" .. consonant .. ")(" .. vowel .. ")", function(c, v) return c .. diacritics[v] end) -- everything else text = gsub(text, '.', tt) -- Vedic accent do -- Build sets of Devanagari consonants/vowels (post-transliteration). local dev_consonant = {} for c in gmatch(consonant_list, ".") do dev_consonant[tt[c]] = true end local dev_vowel = {} for v in gmatch(vowel_list, ".") do dev_vowel[tt[v]] = true end local vowel_sign = {} for _, sign in pairs(diacritics) do if sign ~= "" then vowel_sign[sign] = true end end -- Common Devanagari marks that can trail a syllable. local mark = { ["ँ"] = true, ["ं"] = true, ["ः"] = true, ["ᳵ"] = true, ["ᳶ"] = true, } -- Turn text into a codepoint array for easy indexing. local chars = {} for ch in gmatch(text, ".") do chars[#chars + 1] = ch end local n = #chars -- Collect syllable spans and explicit accent markers. local starts, ends, afters, accents = {}, {}, {}, {} local i = 1 while i <= n do local ch = chars[i] if dev_consonant[ch] or dev_vowel[ch] then local start = i local j = i if dev_consonant[ch] then j = j + 1 -- (virama + consonant)* for conjuncts while j <= n - 1 and chars[j] == virAma and dev_consonant[chars[j + 1]] do j = j + 2 end -- optional final virama (dead consonant) if j <= n and chars[j] == virAma then j = j + 1 end -- optional vowel sign if j <= n and vowel_sign[chars[j]] then j = j + 1 end else -- independent vowel j = j + 1 end -- trailing marks (anusvara, candrabindu, visarga, etc.) while j <= n and mark[chars[j]] do j = j + 1 end -- optional explicit accent marker at the very end of the syllable local accent = "none" local after = j - 1 local accent_name = { ['/'] = 'acute', ['\\'] = 'grave', ['_'] = 'underscore' } if j <= n and (chars[j] == "/" or chars[j] == "\\" or chars[j] == "_") then accent = accent_name[chars[j]] after = j -- include the marker in "after" j = j + 1 end local end_idx = (accent == "none") and after or (after - 1) -- exclude marker from end starts[#starts + 1] = start ends[#ends + 1] = end_idx afters[#afters + 1] = after accents[#accents + 1] = accent i = after + 1 else i = i + 1 end end -- Propagate accents: -- * Explicit acute "/" marks udatta (no glyph inserted), makes previous syllables anudatta, -- and the following syllable (if unmarked) becomes svarita. -- * Explicit grave "\" becomes svarita, and previous syllables become anudatta. local last_accent = 0 local prev_acute = false for si, accent in ipairs(accents) do if accent == "acute" then for j = last_accent + 1, si - 1 do accents[j] = "anudatta" end last_accent = si prev_acute = true elseif accent == "grave" then for j = last_accent + 1, si - 1 do accents[j] = "anudatta" end last_accent = si accents[si] = "svarita" prev_acute = false elseif accent == "underscore" then last_accent = si accents[si] = "anudatta" prev_acute = false elseif prev_acute then accents[si] = "svarita" prev_acute = false last_accent = si end end -- Rebuild text: -- - drop the explicit "/" "\" "_" markers -- - insert anud/svar after syllable end as needed local out = {} local offset = 1 for si, start in ipairs(starts) do local end_idx = ends[si] local after = afters[si] -- copy any non-syllable chars before this syllable if offset <= start - 1 then for k = offset, start - 1 do out[#out + 1] = chars[k] end end -- copy syllable body (excluding explicit marker) for k = start, end_idx do out[#out + 1] = chars[k] end -- insert accent glyphs local a = accents[si] if a == "anudatta" then out[#out + 1] = anud elseif a == "svarita" then out[#out + 1] = svar end -- jump past syllable (+ explicit marker if it existed) offset = after + 1 end -- copy any trailing chars after the last syllable for k = offset, n do out[#out + 1] = chars[k] end text = table.concat(out) end -- fix case where accent mark is placed before diacritic text = gsub(text, "([".. anud .. svar .. "])([ंँः]+)", "%2%1") -- a virAma followed by accent mark should not have the accent mark at all text = gsub(text, virAma .. "[".. anud .. svar .. "]", virAma) return mw.ustring.toNFC(text) end return export dzmkwy856wcve7pvimqh6edmvxnwj4o มอดูล:sa-utilities/translit/Deva-to-IAST 828 2331803 5724855 2026-06-16T05:04:55Z OctraBot 3198 สร้างหน้าด้วย "local export = {} local consonants = { ['क'] = 'k', ['ख'] = 'kh', ['ग'] = 'g', ['घ'] = 'gh', ['ङ'] = 'ṅ', ['च'] = 'c', ['छ'] = 'ch', ['ज'] = 'j', ['झ'] = 'jh', ['ञ'] = 'ñ', ['ट'] = 'ṭ', ['ठ'] = 'ṭh', ['ड'] = 'ḍ', ['ढ'] = 'ḍh', ['ण'] = 'ṇ', ['त'] = 't', ['थ'] = 'th', ['द'] = 'd', ['ध'] = 'dh', ['न'] = 'n', ['प'] = 'p', ['फ'] = 'ph', ['ब'] = 'b', ['भ'] = 'bh', ['म'] = 'm', ['य'] =..." 5724855 Scribunto text/plain local export = {} local consonants = { ['क'] = 'k', ['ख'] = 'kh', ['ग'] = 'g', ['घ'] = 'gh', ['ङ'] = 'ṅ', ['च'] = 'c', ['छ'] = 'ch', ['ज'] = 'j', ['झ'] = 'jh', ['ञ'] = 'ñ', ['ट'] = 'ṭ', ['ठ'] = 'ṭh', ['ड'] = 'ḍ', ['ढ'] = 'ḍh', ['ण'] = 'ṇ', ['त'] = 't', ['थ'] = 'th', ['द'] = 'd', ['ध'] = 'dh', ['न'] = 'n', ['प'] = 'p', ['फ'] = 'ph', ['ब'] = 'b', ['भ'] = 'bh', ['म'] = 'm', ['य'] = 'y', ['र'] = 'r', ['ल'] = 'l', ['व'] = 'v', ['ळ'] = 'ḷ', ['श'] = 'ś', ['ष'] = 'ṣ', ['स'] = 's', ['ह'] = 'h', } local diacritics = { ['्'] = '', ['ा'] = 'ā', ['ि'] = 'i', ['ी'] = 'ī', ['ु'] = 'u', ['ू'] = 'ū', ['ृ'] = 'ṛ', ['ॄ'] = 'ṝ', ['ॢ'] = 'ḷ', ['ॣ'] = 'ḹ', ['े'] = 'e', ['ै'] = 'ai', ['ो'] = 'o', ['ौ'] = 'au', } local tt = { -- vowels ['अ'] = 'a', ['आ'] = 'ā', ['इ'] = 'i', ['ई'] = 'ī', ['उ'] = 'u', ['ऊ'] = 'ū', ['ऋ'] = 'ṛ', ['ॠ'] = 'ṝ', ['ऌ'] = 'ḷ', ['ॡ'] = 'ḹ', ['ए'] = 'e', ['ऐ'] = 'ai', ['ओ'] = 'o', ['औ'] = 'au', -- chandrabindu ['ँ'] = 'm̐', --until a better method is found -- anusvara ['ं'] = 'ṃ', --until a better method is found -- visarga ['ः'] = 'ḥ', -- avagraha ['ऽ'] = '’', --numerals ['०'] = '0', ['१'] = '1', ['२'] = '2', ['३'] = '3', ['४'] = '4', ['५'] = '5', ['६'] = '6', ['७'] = '7', ['८'] = '8', ['९'] = '9', --punctuation ['॥'] = '.', --double danda ['।'] = '.', --danda --Vedic extensions ['ᳵ'] = 'x', ['ᳶ'] = 'f', --Om ['ॐ'] = 'oṃ', } function export.tr(text, lang, sc) text = mw.ustring.gsub(text, '([कखगघङचछजझञटठडढणतथदधनपफबभमयरलळवशषसह])' .. '([ािीुूृॄॢॣेैोौ्]?)', function(c, d) if d == "" then return consonants[c] .. 'a' else return consonants[c] .. diacritics[d] end end) text = mw.ustring.gsub(text, '.', tt) return text end return export 7kh14fj3n6fngxh3u2u29t3z1qkr217 แม่แบบ:pluralize 10 2331804 5724877 2026-06-16T11:14:11Z OctraBot 3198 นำเข้าจาก enwikt 5724877 wikitext text/x-wiki <includeonly>{{safesubst:<noinclude/>#invoke:en-utilities/templates|pluralize_t}}</includeonly><noinclude><!-- -->{{documentation}}</noinclude> 4tlbfof8ktz47fphyee85al02k3pkiu alzo 0 2331805 5724882 2026-06-16T11:58:54Z OctraBot 3198 นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา 5724882 wikitext text/x-wiki == ภาษากาลิเซีย == === คำกริยา === {{head|gl|รูปกริยา}} # {{gl-verb form of|alzar}} == ภาษาดัตช์ == === รากศัพท์ === จาก{{inh|nl|dum|alsô}}, จาก{{inh|nl|odt|alsō}}, จาก{{inh|nl|gmw-pro|*allswā}}; เทียบเท่า{{compound|nl|al|zo}}; {{dbt|nl|als}} === การออกเสียง === * {{IPA|nl|/ɑlˈzoː/}} * {{audio|nl|Nl-alzo.ogg}} * {{hyphenation|nl|al|zo}} * {{rhymes|nl|oː|s=2}} === คำสันธาน === {{head|nl|คำสันธาน}} # [[ดังนั้น]], [[ผลที่ตามมา]], [[ด้วยเหตุนี้]] ==== คำเกี่ยวข้อง ==== * {{l|nl|zoals}} == ภาษาสเปน == === คำกริยา === {{head|es|รูปกริยา}} # {{es-verb form of|alzar}} == ภาษาอัสตูเรียส == === คำกริยา === {{head|ast|รูปกริยา}} # {{inflection of|ast|alzar||1|s|pres|ind}} == ภาษาอิตาลี == === การออกเสียง === {{it-pr|àltso}} === คำกริยา === {{head|it|รูปกริยา}} # {{inflection of|it|alzare||1|s|pres|indc}} === คำสลับอักษร === * {{anagrams|it|a=aloz|Zola|lazo|zola}} t0wz8610waj816supt5l63vtguwqkaw