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.16
case-sensitive
สื่อ
พิเศษ
พูดคุย
ผู้ใช้
คุยกับผู้ใช้
วิกิพจนานุกรม
คุยเรื่องวิกิพจนานุกรม
ไฟล์
คุยเรื่องไฟล์
มีเดียวิกิ
คุยเรื่องมีเดียวิกิ
แม่แบบ
คุยเรื่องแม่แบบ
วิธีใช้
คุยเรื่องวิธีใช้
หมวดหมู่
คุยเรื่องหมวดหมู่
ภาคผนวก
คุยเรื่องภาคผนวก
ดัชนี
คุยเรื่องดัชนี
สัมผัส
คุยเรื่องสัมผัส
อรรถาภิธาน
คุยเรื่องอรรถาภิธาน
TimedText
TimedText talk
มอดูล
คุยเรื่องมอดูล
Event
Event talk
demagogue
0
4531
5759043
1257780
2026-08-25T04:07:22Z
Octahedron80
267
/* ภาษาอังกฤษ */ นำเข้าจาก enwikt เก็บกวาด
5759043
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
{{wp|en:}}
=== รูปแบบอื่น ===
* {{alter|en|demagog||US}}
=== รากศัพท์ ===
จาก{{uder|en|frm|démagogue}}, จาก{{uder|en|grc|δημαγωγός|t=ผู้นำที่ได้รับความนิยม, ผู้นำฝูงชน}}, จาก{{m|grc|δῆμος|t=ประชาชน}} + {{m|grc|ἀγωγός|t=ผู้นำทาง}}; {{surf|en|demo-|alt1=dem-|-agogue}}
=== การออกเสียง ===
* {{IPA|en|/ˈdɛməɡɑɡ/|/ˈdɛməɡɔɡ/|a=GenAm}}
* {{IPA|en|/ˈdɛməɡɒɡ/|a=RP}}
** {{audio|en|LL-Q1860 (eng)-Vealhurl-demagogue.wav|a=Southern England}}
=== คำนาม ===
{{en-noun}}
# {{lb|en|เสื่อมเสีย}} [[ผู้]][[ปราศรัย]]หรือ[[ผู้นำ]]ทางการเมือง (โดยเฉพาะในระบบ[[ประชาธิปไตย]]) ที่ได้รับความนิยมโดย[[การเอาใจ]]หรือ[[ปลุกปั่น]][[อารมณ์]]และ[[อคติ]]ของ[[ฝูงชน]] มากกว่าการใช้[[เหตุผล]] ([[นักกวนเมือง]], [[นักหลอกล่อทางการเมือง]])
#* '''1938''', O'Neill, translating [[w:The Knights|''The Knights'']] by [[w:Aristophanes|Aristophanes]], 424 BC, lines 191-193,
#*: {{ux|en|A '''demagogue''' must be neither an educated nor an honest man; he has to be an ignoramus and a rogue.'''นักกวนเมือง'''ต้องไม่ใช่ทั้งผู้มีผู้การศึกษาและคนซื่อสัตย์ เขาจะต้องเป็นคนโง่เขลาและเป็นคนพาล}}
#* {{quote-book|en|year=1949|author=w:S.I. Hayakawa|title=w:Language in Thought and Action|page=ix
|passage=If the majority of our fellow-citizens are more susceptible to the slogans of fear and race hatred than to those of peaceful accommodation and mutual respect among human beings, our political liberties remain at the mercy of any eloquent and unscrupulous '''demagogue'''.|translation=หากเพื่อนร่วมชาติส่วนใหญ่ของเราอ่อนไหวต่อสโลแกนแห่งความกลัวและความเกลียดชังทางเชื้อชาติ มากกว่าสโลแกนแห่งการประนีประนอมอย่างสันติและการเคารพซึ่งกันและกันในหมู่มนุษย์ เสรีภาพทางการเมืองของเราก็ยังคงต้องตกอยู่ภายใต้ความเมตตาของ'''นักกวนเมือง'''ที่มีวาทศิลป์แต่ไร้ยางอายใด ๆ}}
#* {{quote-text|en|year=1954|author=Reinhard Luthin|title=American '''Demagogues'''|page=3
|passage=What is a '''demagogue'''? He is a politician skilled in oratory, flattery and invective; evasive in discussing vital issues; promising everything to everybody; appealing to the passions rather than the reason of the public; and arousing racial, religious, and class prejudices—a man whose lust for power without recourse to principle leads him to seek to become a master of the masses. He has for centuries practiced his profession of 'man of the people'. He is a product of a political tradition nearly as old as western civilization itself.|translation='''นักหลอกล่อทางการเมือง'''คืออะไร? เขาคือนักการเมืองผู้มีทักษะในการปราศรัย การเยินยอ และการผรุสวาท; หลีกเลี่ยงที่จะหารือในประเด็นสำคัญ; สัญญาว่าจะให้ทุกสิ่งแก่ทุกคน; ดึงดูดอารมณ์ความรู้สึกมากกว่าเหตุผลของสาธารณชน; และกระตุ้นอคติทางเชื้อชาติ ศาสนา และชนชั้น—ชายผู้มีความกระหายในอำนาจโดยไม่สนใจหลักการใด ๆ ซึ่งนำให้เขาแสวงหาการเป็นนายของมวลชน เขาได้ประกอบอาชีพในฐานะ 'คนของประชาชน' มานานหลายศตวรรษ เขาเป็นผลผลิตของประเพณีทางการเมืองที่เก่าแก่เกือบจะเท่ากับอารยธรรมตะวันตกนั่นเอง}}
#* {{quote-text|en|year=2010|author=w:Evan Thomas|title=Why It’s Time to Worry [[w:Newsweek|Newsweek]]|url=http://www.newsweek.com/2010/12/04/the-deepest-dangers-facing-the-united-states.html
|passage=It is true that America has a paranoid streak in its politics, and '''demagogues''' come along from time to time to feed on anger and resentment.|translation=เป็นความจริงที่อเมริกามีร่องรอยของความหวาดระแวงในการเมือง และ'''นักหลอกล่อทางการเมือง'''ก็ปรากฏตัวขึ้นเป็นครั้งคราวเพื่อหล่อเลี้ยงความโกรธแค้นและความขุ่นเคือง}}
# {{lb|en|ประวัติศาสตร์}} [[ผู้นำ]]ของ[[ประชาชน]]
==== ลูกคำ ====
{{col|en|demagocracy
|demagogic|demagogical|demagogism|demagogracy|demagogy|demagoguery}}
==== คำเกี่ยวข้อง ====
* {{l|en|galactagogue}}
* {{l|en|ochlagogue}}
* {{l|en|pedagogue}}
* {{l|en|synagogue}}
=== คำกริยา ===
{{en-verb}}
# {{lb|en|อกรรมกริยา|และ|สกรรมกริยา}} [[พูด]]หรือแสดง[[พฤติกรรม]]ในลักษณะของนักกวนเมืองหรือนักหลอกล่อทางการเมือง; พูดถึง (ประเด็น) ในลักษณะของผู้ปลุกปั่น
#* {{circa|1938}}, [[w:Maury Maverick|Maury Maverick]], ''[[w:The New York Times|The New York Times]]'', quoted in '''1970''', Richard B. Henderson, ''Maury Maverick: A Political Biography'', [http://books.google.com.au/books?id=CCSW2UV8ipcC&pg=PA183&dq=%22demagogued%22%7C%22demagoguing%22&hl=en&sa=X&ei=7QXcUJvoOYrXkgX9poCQAQ&redir_esc=y#v=onepage&q=%22demagogued%22%7C%22demagoguing%22&f=false page 183],
#*: {{ux|en|I never '''demagogued''' on our serious questions and stood for civil liberties.|ฉันไม่เคย'''พูดจาปลุกปั่น'''ในคำถามที่จริงจังของเรา และยืนหยัดเพื่อสิทธิพลเมือง}}
#* {{quote-text|en|year=1995|author=Richard J. Carroll|title=An Economic Record of Presidential Performance: From Truman to Bush|page=171|url=http://books.google.com.au/books?id=7NiDbYLvfn0C&pg=PA171&dq=%22demagogued%22%7C%22demagoguing%22&hl=en&sa=X&ei=7QXcUJvoOYrXkgX9poCQAQ&redir_esc=y#v=onepage&q=%22demagogued%22%7C%22demagoguing%22&f=false|passage=On the subject of foreign aid, although it is a relatively unimportant economic category, it is an area of expenditure that has frequently been '''demagogued''' and has been a favorite target of politicians during tough times in the domestic economy.|translation=ในเรื่องความช่วยเหลือต่างประเทศ แม้ว่าจะเป็นหมวดหมู่ทางเศรษฐกิจที่ค่อนข้างไม่สำคัญนัก แต่ก็เป็นส่วนของการใช้จ่ายที่มักถูกนำมา'''พูดจาปลุกปั่น'''อยู่บ่อยครั้ง และเป็นเป้าหมายยอดนิยมของเหล่านักการเมืองในช่วงเวลาที่เศรษฐกิจในประเทศตกต่ำ}}
#* {{quote-text|en|year=2006|author=Patrick Hynes|title=In Defense of the Religious Right|page=194|url=http://books.google.com.au/books?id=RpJORDmvmyQC&pg=PA194&dq=%22demagogued%22%7C%22demagoguing%22&hl=en&sa=X&ei=7QXcUJvoOYrXkgX9poCQAQ&redir_esc=y#v=onepage&q=%22demagogued%22%7C%22demagoguing%22&f=false|passage=Talk to anyone with half a brain (and at least half a heart) and they will tell you, regardless of their position, that this is an issue to be ''weighed'', not '''demagogued'''.|translation=ลองไปคุยกับใครก็ได้ที่มีสมองสักครึ่งหนึ่ง (และมีหัวใจอย่างน้อยครึ่งหนึ่ง) แล้วพวกเขาจะบอกคุณ ไม่ว่าพวกเขาจะมีจุดยืนอย่างไร ว่านี่คือประเด็นที่ต้องนำมาชั่งน้ำหนักพิจารณา ไม่ใช่ประเด็นสำหรับเอามา'''พูดจาปลุกปั่น'''}}
#* {{RQ:NYT|date=2024-09-11|title=‘The End of Our Country’: Trump Paints Dark Picture at Debate|author=Maggie Haberman|url=https://www.nytimes.com/2024/09/11/us/politics/trump-debate-dark-picture.html|passage=Fear-mongering, and '''demagoguing''' on the issue of immigrants, has been Mr. Trump’s preferred speed since he announced his first candidacy for the presidency in June 2015, and he has often found a receptive audience for it.|translation=การสร้างความหวาดกลัว และการ'''พูดจาปลุกปั่น'''ในประเด็นเรื่องผู้อพยพ เป็นแนวทางที่นายทรัมป์โปรดปรานมาตั้งแต่เขาประกาศลงสมัครรับเลือกตั้งประธานาธิบดีครั้งแรกในเดือนมิถุนายน ปี 2015 และเขาก็มักจะพบผู้ฟังที่เปิดรับมันอยู่เสมอ}}
3iwpkxsy4xo9h1w375p20foqcgrtp6b
5759045
5759043
2026-08-25T04:08:05Z
Octahedron80
267
/* คำนาม */
5759045
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
{{wp|en:}}
=== รูปแบบอื่น ===
* {{alter|en|demagog||US}}
=== รากศัพท์ ===
จาก{{uder|en|frm|démagogue}}, จาก{{uder|en|grc|δημαγωγός|t=ผู้นำที่ได้รับความนิยม, ผู้นำฝูงชน}}, จาก{{m|grc|δῆμος|t=ประชาชน}} + {{m|grc|ἀγωγός|t=ผู้นำทาง}}; {{surf|en|demo-|alt1=dem-|-agogue}}
=== การออกเสียง ===
* {{IPA|en|/ˈdɛməɡɑɡ/|/ˈdɛməɡɔɡ/|a=GenAm}}
* {{IPA|en|/ˈdɛməɡɒɡ/|a=RP}}
** {{audio|en|LL-Q1860 (eng)-Vealhurl-demagogue.wav|a=Southern England}}
=== คำนาม ===
{{en-noun}}
# {{lb|en|เสื่อมเสีย}} [[ผู้]][[ปราศรัย]]หรือ[[ผู้นำ]]ทางการเมือง (โดยเฉพาะในระบบ[[ประชาธิปไตย]]) ที่ได้รับความนิยมโดย[[การเอาใจ]]หรือ[[ปลุกปั่น]][[อารมณ์]]และ[[อคติ]]ของ[[ฝูงชน]] มากกว่าการใช้[[เหตุผล]] ([[นักกวนเมือง]], [[นักหลอกล่อทางการเมือง]])
#* '''1938''', O'Neill, translating [[w:The Knights|''The Knights'']] by [[w:Aristophanes|Aristophanes]], 424 BC, lines 191-193,
#*: {{ux|en|A '''demagogue''' must be neither an educated nor an honest man; he has to be an ignoramus and a rogue.|'''นักกวนเมือง'''ต้องไม่ใช่ทั้งผู้มีผู้การศึกษาและคนซื่อสัตย์ เขาจะต้องเป็นคนโง่เขลาและเป็นคนพาล}}
#* {{quote-book|en|year=1949|author=w:S.I. Hayakawa|title=w:Language in Thought and Action|page=ix
|passage=If the majority of our fellow-citizens are more susceptible to the slogans of fear and race hatred than to those of peaceful accommodation and mutual respect among human beings, our political liberties remain at the mercy of any eloquent and unscrupulous '''demagogue'''.|translation=หากเพื่อนร่วมชาติส่วนใหญ่ของเราอ่อนไหวต่อสโลแกนแห่งความกลัวและความเกลียดชังทางเชื้อชาติ มากกว่าสโลแกนแห่งการประนีประนอมอย่างสันติและการเคารพซึ่งกันและกันในหมู่มนุษย์ เสรีภาพทางการเมืองของเราก็ยังคงต้องตกอยู่ภายใต้ความเมตตาของ'''นักกวนเมือง'''ที่มีวาทศิลป์แต่ไร้ยางอายใด ๆ}}
#* {{quote-text|en|year=1954|author=Reinhard Luthin|title=American '''Demagogues'''|page=3
|passage=What is a '''demagogue'''? He is a politician skilled in oratory, flattery and invective; evasive in discussing vital issues; promising everything to everybody; appealing to the passions rather than the reason of the public; and arousing racial, religious, and class prejudices—a man whose lust for power without recourse to principle leads him to seek to become a master of the masses. He has for centuries practiced his profession of 'man of the people'. He is a product of a political tradition nearly as old as western civilization itself.|translation='''นักหลอกล่อทางการเมือง'''คืออะไร? เขาคือนักการเมืองผู้มีทักษะในการปราศรัย การเยินยอ และการผรุสวาท; หลีกเลี่ยงที่จะหารือในประเด็นสำคัญ; สัญญาว่าจะให้ทุกสิ่งแก่ทุกคน; ดึงดูดอารมณ์ความรู้สึกมากกว่าเหตุผลของสาธารณชน; และกระตุ้นอคติทางเชื้อชาติ ศาสนา และชนชั้น—ชายผู้มีความกระหายในอำนาจโดยไม่สนใจหลักการใด ๆ ซึ่งนำให้เขาแสวงหาการเป็นนายของมวลชน เขาได้ประกอบอาชีพในฐานะ 'คนของประชาชน' มานานหลายศตวรรษ เขาเป็นผลผลิตของประเพณีทางการเมืองที่เก่าแก่เกือบจะเท่ากับอารยธรรมตะวันตกนั่นเอง}}
#* {{quote-text|en|year=2010|author=w:Evan Thomas|title=Why It’s Time to Worry [[w:Newsweek|Newsweek]]|url=http://www.newsweek.com/2010/12/04/the-deepest-dangers-facing-the-united-states.html
|passage=It is true that America has a paranoid streak in its politics, and '''demagogues''' come along from time to time to feed on anger and resentment.|translation=เป็นความจริงที่อเมริกามีร่องรอยของความหวาดระแวงในการเมือง และ'''นักหลอกล่อทางการเมือง'''ก็ปรากฏตัวขึ้นเป็นครั้งคราวเพื่อหล่อเลี้ยงความโกรธแค้นและความขุ่นเคือง}}
# {{lb|en|ประวัติศาสตร์}} [[ผู้นำ]]ของ[[ประชาชน]]
==== ลูกคำ ====
{{col|en|demagocracy
|demagogic|demagogical|demagogism|demagogracy|demagogy|demagoguery}}
==== คำเกี่ยวข้อง ====
* {{l|en|galactagogue}}
* {{l|en|ochlagogue}}
* {{l|en|pedagogue}}
* {{l|en|synagogue}}
=== คำกริยา ===
{{en-verb}}
# {{lb|en|อกรรมกริยา|และ|สกรรมกริยา}} [[พูด]]หรือแสดง[[พฤติกรรม]]ในลักษณะของนักกวนเมืองหรือนักหลอกล่อทางการเมือง; พูดถึง (ประเด็น) ในลักษณะของผู้ปลุกปั่น
#* {{circa|1938}}, [[w:Maury Maverick|Maury Maverick]], ''[[w:The New York Times|The New York Times]]'', quoted in '''1970''', Richard B. Henderson, ''Maury Maverick: A Political Biography'', [http://books.google.com.au/books?id=CCSW2UV8ipcC&pg=PA183&dq=%22demagogued%22%7C%22demagoguing%22&hl=en&sa=X&ei=7QXcUJvoOYrXkgX9poCQAQ&redir_esc=y#v=onepage&q=%22demagogued%22%7C%22demagoguing%22&f=false page 183],
#*: {{ux|en|I never '''demagogued''' on our serious questions and stood for civil liberties.|ฉันไม่เคย'''พูดจาปลุกปั่น'''ในคำถามที่จริงจังของเรา และยืนหยัดเพื่อสิทธิพลเมือง}}
#* {{quote-text|en|year=1995|author=Richard J. Carroll|title=An Economic Record of Presidential Performance: From Truman to Bush|page=171|url=http://books.google.com.au/books?id=7NiDbYLvfn0C&pg=PA171&dq=%22demagogued%22%7C%22demagoguing%22&hl=en&sa=X&ei=7QXcUJvoOYrXkgX9poCQAQ&redir_esc=y#v=onepage&q=%22demagogued%22%7C%22demagoguing%22&f=false|passage=On the subject of foreign aid, although it is a relatively unimportant economic category, it is an area of expenditure that has frequently been '''demagogued''' and has been a favorite target of politicians during tough times in the domestic economy.|translation=ในเรื่องความช่วยเหลือต่างประเทศ แม้ว่าจะเป็นหมวดหมู่ทางเศรษฐกิจที่ค่อนข้างไม่สำคัญนัก แต่ก็เป็นส่วนของการใช้จ่ายที่มักถูกนำมา'''พูดจาปลุกปั่น'''อยู่บ่อยครั้ง และเป็นเป้าหมายยอดนิยมของเหล่านักการเมืองในช่วงเวลาที่เศรษฐกิจในประเทศตกต่ำ}}
#* {{quote-text|en|year=2006|author=Patrick Hynes|title=In Defense of the Religious Right|page=194|url=http://books.google.com.au/books?id=RpJORDmvmyQC&pg=PA194&dq=%22demagogued%22%7C%22demagoguing%22&hl=en&sa=X&ei=7QXcUJvoOYrXkgX9poCQAQ&redir_esc=y#v=onepage&q=%22demagogued%22%7C%22demagoguing%22&f=false|passage=Talk to anyone with half a brain (and at least half a heart) and they will tell you, regardless of their position, that this is an issue to be ''weighed'', not '''demagogued'''.|translation=ลองไปคุยกับใครก็ได้ที่มีสมองสักครึ่งหนึ่ง (และมีหัวใจอย่างน้อยครึ่งหนึ่ง) แล้วพวกเขาจะบอกคุณ ไม่ว่าพวกเขาจะมีจุดยืนอย่างไร ว่านี่คือประเด็นที่ต้องนำมาชั่งน้ำหนักพิจารณา ไม่ใช่ประเด็นสำหรับเอามา'''พูดจาปลุกปั่น'''}}
#* {{RQ:NYT|date=2024-09-11|title=‘The End of Our Country’: Trump Paints Dark Picture at Debate|author=Maggie Haberman|url=https://www.nytimes.com/2024/09/11/us/politics/trump-debate-dark-picture.html|passage=Fear-mongering, and '''demagoguing''' on the issue of immigrants, has been Mr. Trump’s preferred speed since he announced his first candidacy for the presidency in June 2015, and he has often found a receptive audience for it.|translation=การสร้างความหวาดกลัว และการ'''พูดจาปลุกปั่น'''ในประเด็นเรื่องผู้อพยพ เป็นแนวทางที่นายทรัมป์โปรดปรานมาตั้งแต่เขาประกาศลงสมัครรับเลือกตั้งประธานาธิบดีครั้งแรกในเดือนมิถุนายน ปี 2015 และเขาก็มักจะพบผู้ฟังที่เปิดรับมันอยู่เสมอ}}
dwf2xehxd80mm043qpaw7a0cgc4lbne
ย่า
0
10238
5759116
4614827
2026-08-25T11:11:22Z
Thai-Northeastern
17169
/* รากศัพท์ */
5759116
wikitext
text/x-wiki
{{also/auto}}
== ภาษาไทย ==
=== รากศัพท์ ===
ร่วมเชื้อสายกับ{{cog|tts|ย่า}}, {{cog|lo|ຍ່າ}}, {{cog|nyw|ญ่า}}, {{cog|nod|ᨿ᩵ᩣ}}, {{cog|twh|ꪥꪱꫀ}}, {{cog|shn|ယႃႈ}}, {{cog|za|nyah}}
=== การออกเสียง ===
{{th-pron}}
=== คำนาม ===
{{th-noun|คน}}
# [[แม่]][[ของ]][[พ่อ]], [[เมีย]]ของ[[ปู่]]
# [[ญาติ]][[ผู้หญิง]][[ที่]][[เป็น]][[ชั้น]][[เดียว]][[กัน]][[กับ]]แม่ของพ่อ
==== คำแปลภาษาอื่น ====
{{trans-top|แม่ของพ่อ}}
* อังกฤษ: {{t+|en|paternal grandmother}}
{{trans-bottom}}
{{topics|th|ครอบครัว}}
== ภาษาอีสาน ==
=== รากศัพท์ ===
ร่วมเชื้อสายกับ{{cog|th|ย่า}}, {{cog|nyw|ญ่า}}, {{cog|lo|ຍ່າ}}, {{cog|nod|ᨿ᩵ᩣ}}, {{cog|twh|ꪥꪱꫀ}}, {{cog|shn|ယႃႈ}}
=== การออกเสียง ===
* {{IPA|tts|/ɲaː˨˨/|a=ขอนแก่น}}
* {{คำอ่านไทย|ญา<sup>ต่ำ-ระดับ</sup>}} (ประมาณ)
=== คำนาม ===
{{tts-noun}} {{cls|tts|คน}}
# [[ย่า#ภาษาไทย|ย่า]]
5dzpbni5nub9du0urrmr82cq1xpkxnj
5759117
5759116
2026-08-25T11:15:02Z
Thai-Northeastern
17169
/* รากศัพท์ */
5759117
wikitext
text/x-wiki
{{also/auto}}
== ภาษาไทย ==
=== รากศัพท์ ===
ร่วมเชื้อสายกับ{{cog|tts|ย่า}}, {{cog|lo|ຍ່າ}}, {{cog|nyw|ญ่า}}, {{cog|pht|ญ้า}}, {{cog|nod|ᨿ᩵ᩣ}}, {{cog|twh|ꪥꪱꫀ}}, {{cog|shn|ယႃႈ}}, {{cog|za|nyah}}
=== การออกเสียง ===
{{th-pron}}
=== คำนาม ===
{{th-noun|คน}}
# [[แม่]][[ของ]][[พ่อ]], [[เมีย]]ของ[[ปู่]]
# [[ญาติ]][[ผู้หญิง]][[ที่]][[เป็น]][[ชั้น]][[เดียว]][[กัน]][[กับ]]แม่ของพ่อ
==== คำแปลภาษาอื่น ====
{{trans-top|แม่ของพ่อ}}
* อังกฤษ: {{t+|en|paternal grandmother}}
{{trans-bottom}}
{{topics|th|ครอบครัว}}
== ภาษาอีสาน ==
=== รากศัพท์ ===
ร่วมเชื้อสายกับ{{cog|th|ย่า}}, {{cog|nyw|ญ่า}}, {{cog|lo|ຍ່າ}}, {{cog|nod|ᨿ᩵ᩣ}}, {{cog|twh|ꪥꪱꫀ}}, {{cog|shn|ယႃႈ}}
=== การออกเสียง ===
* {{IPA|tts|/ɲaː˨˨/|a=ขอนแก่น}}
* {{คำอ่านไทย|ญา<sup>ต่ำ-ระดับ</sup>}} (ประมาณ)
=== คำนาม ===
{{tts-noun}} {{cls|tts|คน}}
# [[ย่า#ภาษาไทย|ย่า]]
hd0txyjcd51cjp111dtwqzwe76np9mi
Ehe
0
19040
5758956
1241527
2026-08-24T17:15:31Z
Ponpan
693
5758956
wikitext
text/x-wiki
{{also|ehe}}
==ภาษาเยอรมัน==
===การออกเสียง===
* พยางค์: Ehe
* คำอ่านภาษาไทย: เอเฮะ
==={{หน้าที่|de|นาม}}===
{{pn}} ''หญิง'' (''พหูพจน์'' '''[[Ehen]]''')
# ความเป็น[[สามี]][[ภรรยา]]
====คำเกี่ยวข้อง====
* [[Ehefrau]]
* [[Ehemann]]
q9tgr11ox3v7ax0k33o41x184lusz1p
5758960
5758956
2026-08-24T17:40:46Z
Ponpan
693
เก็บกวาด
5758960
wikitext
text/x-wiki
{{also|ehe|eĥe|èhʻè|ęhęʼ}}
== ภาษาเยอรมัน ==
=== รูปแบบอื่น ===
* {{alter|de|Ee}}
=== รากศัพท์ ===
{{etymon|de|:inh|gmh:ēwe}}
{{dercat|de|ine-pro}}
จาก{{inh|de|gmh|ē}}, {{m|gmh|ēwe}}, จาก{{inh|de|goh|ēwa}}, จาก{{inh|de|gmw-pro|*aiw}}, จาก{{inh|de|gem-pro|*aiwǭ}}, {{m|gem-pro|*aiwaz||law, custom}}.
=== การออกเสียง ===
* {{IPA|de|/ˈeːə/|[ˈʔeː.ə]}}
* {{audio|de|De-Ehe.ogg|a=<<Germany>> (<<Berlin>>)}}
* {{hyph|de|Ehe}}
=== คำนาม ===
{{de-noun|f}}
# [[สถานะ]][[สมรส]]; [[ชีวิต]]สมรส
#: {{ux|de|Sie führen eine glückliche '''Ehe'''.|พวกเขามี'''ชีวิตคู่'''ที่มีความสุข}}
#: {{ux|de|Die '''Ehe''' wurde geschieden.|'''สถานะสมรส'''ได้สิ้นสุดลงด้วยการหย่า}}
#: {{ux|de|„'''Ehe''' und Familie stehen unter dem besonderen Schutze der staatlichen Ordnung.“|'''การแต่งงาน'''และสถาบันครอบครัวอยู่ภายใต้การคุ้มครองเป็นพิเศษของรัฐ|ref=<ref>[https://www.gesetze-im-internet.de/gg/art_6.html Grundgesetz der Bundesrepublik Deutschland, Artikel 6 (กฎหมายพื้นฐานสำหรับสหพันธ์สาธารณรัฐเยอรมนี มาตรา 6)]</ref>}}
==== การผันรูป ====
{{de-ndecl|f}}
==== คำลูกกลุ่ม ====
{{col3|de
|Einehe
|Doppelehe
|Homo-Ehe
|Kinderehe
|Mehrehe
|Scheinehe
|Zivilehe
|Zwangsehe
}}
==== ลูกคำ ====
{{col3|de
|eheartig|ehelich|ehelos|unehelich
|ehebrechen
|Eheauflösung|Ehebruch
|Ehefrau|Ehegatte|Ehegelübde|Ehegespons
|Eheleute|Ehemann|Ehepaar|Ehepartner
|Ehering|Ehescheidung|Eheschließung|Ehestand|Ehesteuer|Eheweib
|in die Ehe bringen
}}
=== ดูเพิ่ม ===
* {{l|de|Heirat}}
* {{l|de|Hochzeit}}
=== อ่านเพิ่ม ===
* {{R:de:DWDS}}
* {{R:de:UniLeipzig}}
* {{R:de:Duden}}
* {{pedia|lang=de}}
=== อ้างอิง ===
{{รายการอ้างอิง}}
{{C|de|การแต่งงาน}}
scrd0i90tb827xfbe0x2zfirbj6ypys
5758961
5758960
2026-08-24T17:45:52Z
Ponpan
693
/* คำนาม */
5758961
wikitext
text/x-wiki
{{also|ehe|eĥe|èhʻè|ęhęʼ}}
== ภาษาเยอรมัน ==
=== รูปแบบอื่น ===
* {{alter|de|Ee}}
=== รากศัพท์ ===
{{etymon|de|:inh|gmh:ēwe}}
{{dercat|de|ine-pro}}
จาก{{inh|de|gmh|ē}}, {{m|gmh|ēwe}}, จาก{{inh|de|goh|ēwa}}, จาก{{inh|de|gmw-pro|*aiw}}, จาก{{inh|de|gem-pro|*aiwǭ}}, {{m|gem-pro|*aiwaz||law, custom}}.
=== การออกเสียง ===
* {{IPA|de|/ˈeːə/|[ˈʔeː.ə]}}
* {{audio|de|De-Ehe.ogg|a=<<Germany>> (<<Berlin>>)}}
* {{hyph|de|Ehe}}
=== คำนาม ===
{{de-noun|f}}
# [[สถานะ]][[สมรส]]; [[ชีวิต]]สมรส
#: {{ux|de|Sie führen eine glückliche '''Ehe'''.|พวกเขามี'''ชีวิตคู่'''ที่มีความสุข}}
#: {{ux|de|Die '''Ehe''' wurde geschieden.|'''สถานะสมรส'''ได้สิ้นสุดลงด้วยการหย่า}}
#: {{ux|de|„'''Ehe''' und Familie stehen unter dem besonderen Schutze der staatlichen Ordnung.“|'''การแต่งงาน'''และสถาบันครอบครัวอยู่ภายใต้การคุ้มครองเป็นพิเศษของรัฐ|ref=<ref>[https://www.gesetze-im-internet.de/gg/art_6.html Grundgesetz der Bundesrepublik Deutschland, Artikel 6 (1) (กฎหมายพื้นฐานสำหรับสหพันธ์สาธารณรัฐเยอรมนี มาตรา 6 วรรค 1)]</ref>}}
==== การผันรูป ====
{{de-ndecl|f}}
==== คำลูกกลุ่ม ====
{{col3|de
|Einehe
|Doppelehe
|Homo-Ehe
|Kinderehe
|Mehrehe
|Scheinehe
|Zivilehe
|Zwangsehe
}}
==== ลูกคำ ====
{{col3|de
|eheartig|ehelich|ehelos|unehelich
|ehebrechen
|Eheauflösung|Ehebruch
|Ehefrau|Ehegatte|Ehegelübde|Ehegespons
|Eheleute|Ehemann|Ehepaar|Ehepartner
|Ehering|Ehescheidung|Eheschließung|Ehestand|Ehesteuer|Eheweib
|in die Ehe bringen
}}
=== ดูเพิ่ม ===
* {{l|de|Heirat}}
* {{l|de|Hochzeit}}
=== อ่านเพิ่ม ===
* {{R:de:DWDS}}
* {{R:de:UniLeipzig}}
* {{R:de:Duden}}
* {{pedia|lang=de}}
=== อ้างอิง ===
{{รายการอ้างอิง}}
{{C|de|การแต่งงาน}}
f21jo5vc20jtdbda7upizlrbasbfqy4
ດາ
0
21448
5758966
5724195
2026-08-24T20:24:48Z
Alifshinobi
397
/* รากศัพท์ 2 */
5758966
wikitext
text/x-wiki
{{also/auto}}
== ภาษาลาว ==
=== การออกเสียง ===
{{lo-pron}}
=== รากศัพท์ 1 ===
ร่วมเชื้อสายกับ{{cog|nod|ᨯᩣ}}, {{cog|kkh|ᨯᩣ}}, {{cog|blt|ꪒꪱ}}
==== คำกริยา ====
{{lo-verb}}
# {{lb|lo|สกรรม}} [[เตรียม]], [[ตกแต่ง]], [[ตั้งท่า]], [[ตั้งใจ]]
===== คำพ้องความ =====
{{col4|lo
|ຕັ້ງໃຈ
|ຕັ້ງທ່າ
|ຕົກແຕ່ງ
|ຫ້າງ
}}
=== รากศัพท์ 2 ===
ร่วมเชื้อสายกับ{{cog|th|ดา}}, {{cog|nod|ᨯᩣ}}, {{cog|kkh|ᨯᩣ}}, {{cog|khb|ᦡᦱ}}
==== คำนาม ====
{{lo-noun|ໂຕ}}
# {{lang|lo|([[ແມງ]]~)}} [[ดา]] ([[แมลง]])
=== รากศัพท์ 3 ===
ร่วมเชื้อสายกับ{{cog|th|ดา}}
==== คำคุณศัพท์ ====
{{lo-adj}}
# [[ดา]]
===== คำพ้องความ =====
{{col4|lo
|ມາກ
|ຫຼາຍ
}}
===== ลูกคำ =====
{{col4|lo
|ດາດາດ
}}
{{topics|lo|แมลง}}
i6qcuhhh0i5luir595id7bn8xshtain
ตาก
0
25875
5758949
1871860
2026-08-24T12:50:05Z
Ai Ku Karng
17824
/* รากศัพท์ 1 */
5758949
wikitext
text/x-wiki
== ภาษาไทย ==
=== การออกเสียง ===
{{th-pron}}
=== รากศัพท์ 1 ===
{{inh+|th|tai-pro|*p.raːkᴰ||ตาก}}; ร่วมเชื้อสายกับ{{cog|lo|ຕາກ}}, {{cog|nod|ᨲᩣ᩠ᨠ}}, {{cog|kkh|ᨲᩣ᩠ᨠ}}, {{cog|khb|ᦎᦱᧅ}}, {{cog|shn|တၢၵ်ႇ}}, {{cog|blt|ꪔꪱꪀ}}, {{cog|twh|ꪔꪱꪀ}}, {{cog|tdd|ᥖᥣᥐᥱ}}, {{cog|skb|ปร̄าก}}, {{cog|za|dak}}, {{cog|zzj|pyak}}
==== คำกริยา ====
{{th-verb}}
# [[ผึ่ง]][[ให้]][[แห้ง]]
#: {{ux|th|ตากผ้า}}
# [[ปล่อย]][[ทิ้ง]][[ไว้]][[กลางแจ้ง]]
#: {{ux|th|ตากแดด}}
#: {{ux|th|ตากฝน}}
# [[ตรำ]], [[สู้]][[ทน]]
#: {{ux|th|เดินตากฝน}}
#: {{ux|th|นอนตากยุง}}
==== คำคุณศัพท์ ====
{{th-adj|-}}
# [[ที่]]ผึ่ง[[แดด]][[จน]]แห้ง
#: {{ux|th|ข้าวตาก}}
#: {{ux|th|กล้วยตาก}}
# [[เรียก]][[หลังคา]][[เรือน]]ที่[[ชัน]][[น้อย]] [[ว่า]] หลังคาตาก
=== รากศัพท์ 2 ===
ร่วมเชื้อสายกับ{{cog|lo|ຕາກ}}
==== คำคุณศัพท์ ====
{{th-adj|-}}
# {{lb|th|ล้า}} [[ห่าง]], [[แบะ]][[ออก]]
#: {{ux|th|ควายเขาตาก|ควายที่ปลายเขาไม่รวบเข้าหากัน}}
=== รากศัพท์ 3 ===
{{wikipedia|จังหวัดตาก}}
[[ไฟล์:Amphoe Tak.svg|thumb|150px|right|ตาก]]
==== คำวิสามานยนาม ====
{{th-proper noun}}
# {{lang|th|([[จังหวัด]]~)}} ชื่อ[[จังหวัด]]ใน[[ภาคตะวันตก]]ของ[[ประเทศไทย]]
#: {{syn|th|ตก|q1=อักษรย่อ}}
===== คำแปลภาษาอื่น =====
{{trans-top|ชื่อจังหวัด}}
* ภาษาอังกฤษ|อังกฤษ : [[Tak]]
{{trans-bottom}}
{{topics|th|จังหวัดในไทย}}
sjkn5ji0b2c3ihbvrttqoi6thpbkut1
ผู้ใช้:Alexander Mikhalenko
2
31619
5758997
217626
2026-08-25T02:55:56Z
Alexander Mikhalenko
3341
5758997
wikitext
text/x-wiki
{{#Babel:ru|uk-4|de-3|en-3|fr-3|es-2|it-2|th-1}}
ผมชื่ออเล็กซานเดอร์ มิคาเลนโก ผมมาจากรัสเซีย (เมืองเจเลซโนกอร์สค์ ดินแดนครัสโนยาสค์) ผมเป็นผู้ใช้วิกิพจนานุกรมภาษารัสเซียตั้งแต่ปี 2012 ในส่วนภาษาไทยของวิกิพจนานุกรม ผมส่วนใหญ่แก้ไขเล็กน้อย
[[af:Gebruiker:Alexander Mikhalenko]]
[[ar:مستخدم:Alexander Mikhalenko]]
[[be:Удзельнік:Alexander Mikhalenko]]
[[bg:Потребител:Alexander Mikhalenko]]
[[ca:Usuari:Alexander Mikhalenko]]
[[cs:Uživatel:Alexander Mikhalenko]]
[[da:Bruger:Alexander Mikhalenko]]
[[de:Benutzer:Alexander Mikhalenko]]
[[el:Χρήστης:Alexander Mikhalenko]]
[[en:User:Alexander Mikhalenko]]
[[eo:Uzanto:Alexander Mikhalenko]]
[[es:Usuario:Alexander Mikhalenko]]
[[et:Kasutaja:Alexander Mikhalenko]]
[[fa:کاربر:Alexander Mikhalenko]]
[[fi:Käyttäjä:Alexander Mikhalenko]]
[[fr:Utilisateur:Alexander Mikhalenko]]
[[ga:Úsáideoir:Alexander Mikhalenko]]
[[he:משתמש:Alexander Mikhalenko]]
[[hi:सदस्य:Alexander Mikhalenko]]
[[hr:Suradnik:Alexander Mikhalenko]]
[[hu:Szerkesztő:Alexander Mikhalenko]]
[[hy:Մասնակից:Alexander Mikhalenko]]
[[id:Pengguna:Alexander Mikhalenko]]
[[is:Notandi:Alexander Mikhalenko]]
[[it:Utente:Alexander Mikhalenko]]
[[ja:利用者:Alexander Mikhalenko]]
[[ka:მომხმარებელი:Alexander Mikhalenko]]
[[ko:사용자:Alexander Mikhalenko]]
[[la:Usor:Alexander Mikhalenko]]
[[li:Gebroeker:Alexander Mikhalenko]]
[[lt:Naudotojas:Alexander Mikhalenko]]
[[lv:Lietotājs:Alexander Mikhalenko]]
[[mk:Корисник:Alexander Mikhalenko]]
[[nds:Bruker:Alexander Mikhalenko]]
[[nl:Gebruiker:Alexander Mikhalenko]]
[[no:Bruker:Alexander Mikhalenko]]
[[pl:Wikipedysta:Alexander Mikhalenko]]
[[pt:Utilizador:Alexander Mikhalenko]]
[[ru:Участник:Alexander Mikhalenko]]
[[sk:Redaktor:Alexander Mikhalenko]]
[[sl:Uporabnik:Alexander Mikhalenko]]
[[sr:Корисник:Alexander Mikhalenko]]
[[sv:Användare:Alexander Mikhalenko]]
[[tr:Kullanıcı:Alexander Mikhalenko]]
[[uk:Користувач:Alexander Mikhalenko]]
[[vi:Thành viên:Alexander Mikhalenko]]
[[zh:User:Alexander Mikhalenko]]
iveqry014r07lyxyn99xloowcp9frb9
มอดูล:labels/data
828
37614
5759011
5758871
2026-08-25T03:17:42Z
Octahedron80
267
5759011
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", "collectively", "คำสมุหนาม"},
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", "in the 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["แสดงมาลา"] = {
aliases = {"modal", "แสดงทัศนะ"},
Wikipedia = "ทัศนภาวะ",
}
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["กันและกัน"] = {
aliases = {"reciprocal", "คำกริยากันและกัน", "กริยากันและกัน"},
glossary = true,
pos_categories = "คำกริยากันและกัน",
}
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)
lpv3rrecsmjhwe6dt9u0pu5x7svyvj7
5759035
5759011
2026-08-25T03:52:17Z
Octahedron80
267
5759035
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", "collectively", "คำสมุหนาม"},
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", "in the 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["แสดงมาลา"] = {
aliases = {"modal", "แสดงทัศนะ"},
Wikipedia = "ทัศนภาวะ",
}
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["กันและกัน"] = {
aliases = {"reciprocal", "คำกริยากันและกัน", "กริยากันและกัน"},
glossary = true,
pos_categories = "คำกริยากันและกัน",
}
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)
2m3h7unupkjfs9yt40eitoia4mkzd2n
ต้อน
0
43922
5758931
5758786
2026-08-24T12:25:50Z
Alifshinobi
397
/* รากศัพท์ */
5758931
wikitext
text/x-wiki
{{also/auto}}
== ภาษาไทย ==
=== รากศัพท์ ===
ร่วมเชื้อสายกับ{{cog|lo|ຕ້ອນ}}, {{cog|nod|ᨲᩬ᩶ᩁ}}, {{cog|blt|ꪔ꫁ꪮꪙ}}, {{cog|za|donj|tr=ต้อน}}
=== การออกเสียง ===
{{th-pron}}
=== คำกริยา ===
{{th-verb}}
# [[สกัดกั้น]][[ให้]][[ไป]][[ตาม]][[ที่]][[ต้องการ]], [[ไล่]][[ไป]][[โดย]][[วิธี]][[กัน]][[ไม่]][[ให้]][[แตก]][[ฝูง]]
#: {{ux|th|ต้อนควายเข้าคอก}}
# [[ดัก]][[หน้า]][[ดัก]][[หลัง]]
#: {{ux|th|รำต้อน}}
# {{lb|th|โดยปริยาย}} [[กิริยา]][[อาการ]][[ที่]][[คล้ายคลึง]][[เช่น]][[นั้น]]
#: {{ux|th|ต้อนเข้ามุม}}
#: {{ux|th|ต้อนให้จนมุม}}
=== คำนาม ===
{{th-noun}}
# [[เครื่องมือ]][[จับ]][[สัตว์น้ำ]][[ตาม]][[ริม]][[ฝั่ง]][[ชนิด]][[หนึ่ง]] [[ใช้]][[เฝือก]][[กั้น]][[เป็น]][[คอก]] 3 [[ด้าน]] [[ด้าน]][[หนึ่ง]][[มี]][[ประตู]][[เปิด]][[ปิด]][[ได้]] [[ใน]][[คอก]][[สะ]][[ด้วย]][[กิ่ง]][[ไม้]][[เพื่อ]][[ล่อ]][[ให้]][[ปลา]][[เข้า]][[อยู่]], [[กะต้ำ]] [[ก็]][[ว่า]]
== ภาษาอีสาน ==
=== คำกริยา ===
{{tts-verb}}
# [[ฝาก]], [[ให้]]
now2j4uycjrqtceoyjsq0pxf7378cli
มอดูล:gl-headword
828
146302
5758920
5729296
2026-08-24T12:13:12Z
Octahedron80
267
5758920
Scribunto
text/plain
-- This module contains code for Galician headword templates.
-- Templates covered are:
-- * {{gl-noun}}, {{gl-reinteg-noun}}, {{gl-proper noun}};
-- * {{gl-verb}}, {{gl-reinteg-verb}};
-- * {{gl-adj}}, {{gl-reinteg-adj}}, {{gl-adj-comp}}, {{gl-adj-sup}};
-- * {{gl-det}};
-- * {{gl-pron-adj}};
-- * {{gl-contr-adj}};
-- * {{gl-pp}};
-- * {{gl-cardinal}};
-- * {{gl-adv}}.
-- See [[Module:gl-verb]] and [[Module:gl-reinteg-verb]] for Galician conjugation templates.
local export = {}
local pos_functions = {}
local force_cat = false -- for testing; if true, categories appear in non-mainspace pages
local m_links = require("Module:links")
local m_table = require("Module:table")
local com_module = "Module:gl-common"
local reinteg_com_module = "Module:gl-reinteg-common"
local romut_module = "Module:romance utilities"
local gl_verb_module = "Module:gl-verb"
local gl_reinteg_verb_module = "Module:gl-reinteg-verb"
local lang = require("Module:languages").getByCode("gl")
local langname = --[[lang:getCanonicalName()]] lang:getCategoryName()
local rfind = mw.ustring.find
local rmatch = mw.ustring.match
local rsplit = mw.text.split
local usub = mw.ustring.sub
-- When followed by a hyphen in a hyphenated compound, the hyphen will be included with the prefix when linked.
local include_hyphen_prefixes = m_table.listToSet {
"ab",
"afro",
"anarco",
"anglo",
"ântero",
"anti",
"auto",
"contra",
"ex",
"franco",
"hiper",
"infra",
"inter",
"intra",
"macro",
"micro",
"neo",
"pan",
"pós",
"pré",
"pró",
"proto",
"sobre",
"sub",
"super",
"vice",
}
local function track(page)
require("Module:debug/track")("gl-headword/" .. page)
return true
end
local function glossary_link(entry, text)
text = text or entry
return "[[ภาคผนวก:อภิธานศัพท์#" .. entry .. "|" .. text .. "]]"
end
local function check_all_missing(forms, plpos, tracking_categories)
for _, form in ipairs(forms) do
if type(form) == "table" then
form = form.term
end
if form then
local title = mw.title.new(form)
if title and not title.exists then
table.insert(tracking_categories, langname .. " " .. plpos .. " with red links in their headword lines")
end
end
end
end
local function do_headword(parargs, poscat_th, is_reinteg)
local params = {
["head"] = {list = true},
["id"] = {},
["splithyph"] = {type = "boolean"},
["nolinkhead"] = {type = "boolean"},
["json"] = {type = "boolean"},
["pagename"] = {}, -- for testing
["reinteg"] = {}, -- processed in show()
}
if pos_functions[poscat_th] then
for key, val in pairs(pos_functions[poscat_th].params) do
params[key] = val
end
end
local args = require("Module:parameters").process(parargs, params)
local pagename = args.pagename or mw.loadData("Module:headword/data").pagename
local user_specified_heads = args.head
local heads = user_specified_heads
if args.nolinkhead then
if #heads == 0 then
heads = {pagename}
end
else
local romut = require(romut_module)
local auto_linked_head = romut.add_links_to_multiword_term(pagename, args.splithyph, nil,
include_hyphen_prefixes)
if #heads == 0 then
heads = {auto_linked_head}
else
for i, head in ipairs(heads) do
if head:find("^~") then
head = romut.apply_link_modifiers(auto_linked_head, usub(head, 2))
heads[i] = head
end
end
end
end
local data = {
lang = lang,
pos_category = poscat_th,
categories = {},
heads = heads,
user_specified_heads = user_specified_heads,
no_redundant_head_cat = #user_specified_heads == 0,
genders = {},
inflections = {},
pagename = pagename,
id = args.id,
force_cat_output = force_cat,
is_reinteg = is_reinteg,
}
local is_suffix = false
if pagename:find("^%-") and poscat_th ~= "รูปปัจจัย" then
is_suffix = true
data.pos_category = "suffixes"
local singular_poscat = --[[require("Module:string utilities").singularize(poscat)]] poscat_th
table.insert(data.categories, "ปัจจัยสร้าง" .. singular_poscat .. langname)
table.insert(data.inflections, {label = "ปัจจัยสร้าง" .. singular_poscat})
end
local tracking_categories = {}
if pos_functions[poscat_th] then
pos_functions[poscat_th].func(args, data, tracking_categories, is_suffix)
end
if is_reinteg then
table.insert(data.inflections, {label = "บรรทัดฐาน[[ภาคผนวก:บูรณาการนิยม|แบบบูรณาการนิยม]]"})
end
if args.json then
return require("Module:JSON").toJSON(data)
end
return require("Module:headword").full_headword(data)
.. (#tracking_categories > 0 and require("Module:utilities").format_categories(tracking_categories, lang, nil, nil, force_cat) or "")
end
-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.show(frame)
local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.")
-- หมวดหมู่เป็นภาษาไทย
local poscat_th = require("Module:th-utilities").th_pos(poscat)
local is_reinteg = frame.args.reinteg and require("Module:yesno")(frame.args.reinteg, false) or false
local parargs = frame:getParent().args
local also_reinteg = parargs.reinteg and require("Module:yesno")(parargs.reinteg, false) or false
if is_reinteg and also_reinteg then
error("Can't specify reinteg= when using a reintegrationist-specific template")
end
local parts = {}
if also_reinteg or not is_reinteg then
table.insert(parts, do_headword(parargs, poscat_th, false))
end
if also_reinteg or is_reinteg then
table.insert(parts, do_headword(parargs, poscat_th, true))
end
return table.concat(parts, "<br />")
end
local function fetch_qualifiers(qual, existing)
if not qual then
return existing
end
if not existing then
return {qual}
end
local retval = {}
for _, e in ipairs(existing) do
table.insert(retval, e)
end
table.insert(retval, qual)
return retval
end
local function process_terms_with_qualifiers(terms, quals)
local infls = {}
for i, term in ipairs(terms) do
table.insert(infls, {term = term, q = fetch_qualifiers(quals[i])})
end
return infls
end
local function replace_hash_with_lemma(term, lemma)
-- If there is a % sign in the lemma, we have to replace it with %% so it doesn't get interpreted as a capture replace
-- expression.
lemma = lemma:gsub("%%", "%%%%")
-- Assign to a variable to discard second return value.
term = term:gsub("#", lemma)
return term
end
-----------------------------------------------------------------------------------------
-- Nouns --
-----------------------------------------------------------------------------------------
local allowed_genders = m_table.listToSet(
{"m", "f", "mf", "mfbysense", "m-p", "f-p", "mf-p", "mfbysense-p", "?", "?-p", "n", "n-p"}
)
local function process_genders(data, genders, g_qual)
for i, g in ipairs(genders) do
if not allowed_genders[g] then
error("Unrecognized gender: " .. g)
end
if g_qual[i] then
table.insert(data.genders, {spec = g, qualifiers = {g_qual[i]}})
else
table.insert(data.genders, g)
end
end
end
local function do_noun(args, data, tracking_categories, pos, is_suffix, is_proper)
local com = require(data.is_reinteg and reinteg_com_module or com_module)
local is_plurale_tantum = false
local has_singular = false
if is_suffix then
pos = "ปัจจัย"
end
local plpos = --[[require("Module:string utilities").pluralize(pos)]] pos
data.genders = {}
local saw_m = false
local saw_f = false
local gender_for_default_plural
process_genders(data, args[1], args.g_qual)
-- Check for specific genders and pluralia tantum.
for i, g in ipairs(args[1]) do
if g:find("-p$") then
is_plurale_tantum = true
else
has_singular = true
if g == "m" or g == "mf" or g == "mfbysense" then
saw_m = true
end
if g == "f" or g == "mf" or g == "mfbysense" then
saw_f = true
end
end
end
if saw_m and saw_f then
gender_for_default_plural = "m"
elseif saw_f then
gender_for_default_plural = "f"
else
gender_for_default_plural = "m"
end
local lemma = m_links.remove_links(data.heads[1]) -- should always be specified
local function insert_inflection(list, term, accel, qualifiers, no_inv)
local infl = {q = qualifiers, accel = accel}
--if term == lemma and not no_inv then
-- infl.label = glossary_link("ผันรูปไม่ได้")
--else
infl.term = term
--end
infl.term_for_further_inflection = term
table.insert(list, infl)
end
-- Plural
local plurals = {}
local args_mpl = args.mpl
local args_fpl = args.fpl
local args_pl = args[2]
if is_plurale_tantum and not has_singular then
if #args_pl > 0 then
error("Can't specify plurals of plurale tantum " .. pos)
end
table.insert(data.inflections, {label = glossary_link("พหูพจน์เท่านั้น")})
else
if is_plurale_tantum then
-- both singular and plural
table.insert(data.inflections, {label = "บางครั้ง" .. glossary_link("พหูพจน์เท่านั้น") .. ", in variation"})
end
-- If no plurals, use the default plural if not a proper noun.
if #args_pl == 0 and not is_proper then
args_pl = {"+"}
end
-- If only ~ given (countable and uncountable), add the default plural after it.
if #args_pl == 1 and args_pl[1] == "~" then
args_pl = {"~", "+"}
end
-- Gather plurals, handling requests for default plurals
for i, pl in ipairs(args_pl) do
local function insert_pl(term)
local quals = fetch_qualifiers(args.pl_qual[i])
if term == lemma and i == 1 and #args_pl == 1 then
table.insert(data.inflections, {label = glossary_link("ผันรูปไม่ได้"), q = quals})
table.insert(data.categories, plpos .. "ผันรูปไม่ได้" .. langname)
else
insert_inflection(plurals, term, nil, quals)
end
table.insert(data.categories, plpos .. "นับได้" .. langname)
end
local function make_plural_and_insert(form, special)
local pl = com.make_plural(lemma, special)
if pl then
insert_pl(pl)
end
end
if pl == "+" then
make_plural_and_insert(lemma)
elseif pl:find("^%+") then
pl = require(romut_module).get_special_indicator(pl)
make_plural_and_insert(lemma, pl)
elseif pl == "?" or pl == "!" then
if i > 1 or #args_pl > 1 then
error("Can't specify ? or ! with other plurals")
end
if pl == "?" then
-- Plural is unknown
-- Better not to display anything
-- table.insert(data.inflections, {label = "plural unknown or uncertain"})
table.insert(data.categories, langname .. " " .. plpos .. " with unknown or uncertain plurals")
else
-- Plural is not attested
table.insert(data.inflections, {label = "plural not attested"})
table.insert(data.categories, langname .. " " .. plpos .. " with unattested plurals")
end
elseif pl == "-" then
if i > 1 then
error("Plural specifier - must be first")
end
-- Uncountable noun; may occasionally have a plural
table.insert(data.categories, plpos .. "นับไม่ได้" .. langname)
-- If plural forms were given explicitly, then show "usually"
if #args_pl > 1 then
table.insert(data.inflections, {label = "โดยปกติ" .. glossary_link("นับไม่ได้")})
table.insert(data.categories, plpos .. "นับได้" .. langname)
else
table.insert(data.inflections, {label = glossary_link("นับไม่ได้")})
end
elseif pl == "~" then
if i > 1 then
error("Plural specifier ~ must be first")
end
-- Countable and uncountable noun; will have a plural
table.insert(data.categories, plpos .. "นับได้" .. langname)
table.insert(data.categories, plpos .. "นับไม่ได้" .. langname)
table.insert(data.inflections, {label = glossary_link("นับได้") .. "และ" .. glossary_link("นับไม่ได้")})
else
insert_pl(replace_hash_with_lemma(pl, lemma))
end
end
end
if #plurals > 1 then
table.insert(data.categories, langname .. " " .. plpos .. " with multiple plurals")
end
-- Gather masculines/feminines. For each one, generate the corresponding plural(s).
local function handle_mf(mfs, qualifiers, inflect, default_plurals)
local retval = {}
for i, mf in ipairs(mfs) do
local function insert_infl(list, term, accel, existing_qualifiers)
insert_inflection(list, term, accel, fetch_qualifiers(qualifiers[i], existing_qualifiers), "no inv")
end
if mf == "+" then
-- Generate default feminine.
mf = inflect(lemma)
else
mf = replace_hash_with_lemma(mf, lemma)
end
local special = require(romut_module).get_special_indicator(mf)
if special then
mf = inflect(lemma, special)
end
insert_infl(retval, mf)
local mfpl = com.make_plural(mf, special)
if mfpl then
-- Add an accelerator for each masculine/feminine plural whose lemma
-- is the corresponding singular, so that the accelerated entry
-- that is generated has a definition that looks like
-- # {{plural of|gl|MFSING}}
insert_infl(default_plurals, mfpl, {form = "p", lemma = mf})
end
end
return retval
end
local feminine_plurals = {}
local feminines = handle_mf(args.f, args.f_qual, function(term, special)
return com.make_feminine(term, "is noun", special) end, feminine_plurals)
local masculine_plurals = {}
local masculines = handle_mf(args.m, args.m_qual, com.make_masculine, masculine_plurals)
local function handle_mf_plural(mfpl, qualifiers, default_plurals, singulars)
local new_mfpls = {}
for i, mfpl in ipairs(mfpl) do
local function insert_infl(term, accel, existing_qualifiers, no_inv)
insert_inflection(new_mfpls, term, accel, fetch_qualifiers(qualifiers[i], existing_qualifiers), no_inv)
end
local accel
if #mfpl == #singulars then
-- If same number of overriding masculine/feminine plurals as singulars,
-- assume each plural goes with the corresponding singular
-- and use each corresponding singular as the lemma in the accelerator.
-- The generated entry will have # {{plural of|gl|SINGULAR}} as the
-- definition.
accel = {form = "p", lemma = singulars[i].term}
else
accel = nil
end
if mfpl == "+" then
if #default_plurals > 0 then
for _, defpl in ipairs(default_plurals) do
-- defpl is a table
-- don't use "invariable" because the plural is not with respect to the lemma but
-- with respect to the masc/fem singular
insert_infl(defpl.term_for_further_inflection, defpl.accel, defpl.q, "no inv")
end
else
-- mf is a table
local default_mfpl = com.make_plural(lemma)
if default_mfpl then
insert_infl(default_mfpl, accel)
end
end
elseif mfpl:find("^%+") then
mfpl = require(romut_module).get_special_indicator(mfpl)
if #singulars > 0 then
for _, mf in ipairs(singulars) do
-- mf is a table
local default_mfpl = com.make_plural(mf.term_for_further_inflection, mfpl)
if default_mfpl then
-- don't use "invariable" because the plural is not with respect to the lemma but
-- with respect to the masc/fem singular
insert_infl(default_mfpl, accel, mf.q, "no inv")
end
end
else
local default_mfpl = com.make_plural(lemma, mfpl)
if default_mfpl then
insert_infl(default_mfpl, accel)
end
end
else
mfpl = replace_hash_with_lemma(mfpl, lemma)
-- don't use "invariable" if masc/fem singular present because the plural is not with respect to
-- the lemma but with respect to the masc/fem singular
insert_infl(mfpl, accel, nil, #singulars > 0)
end
end
return new_mfpls
end
if #args_fpl > 0 then
-- Override feminine plurals.
feminine_plurals = handle_mf_plural(args_fpl, args.fpl_qual, feminine_plurals, feminines)
end
if #args_mpl > 0 then
-- Override masculine plurals.
masculine_plurals = handle_mf_plural(args_mpl, args.mpl_qual, masculine_plurals, masculines)
end
check_all_missing(plurals, plpos, tracking_categories)
check_all_missing(feminines, plpos, tracking_categories)
check_all_missing(feminine_plurals, plpos, tracking_categories)
check_all_missing(masculines, plpos, tracking_categories)
check_all_missing(masculine_plurals, plpos, tracking_categories)
local function redundant_plural(pl)
for _, p in ipairs(plurals) do
if p.term_for_further_inflection == pl.term_for_further_inflection then
return true
end
end
return false
end
for _, mpl in ipairs(masculine_plurals) do
if redundant_plural(mpl) then
track("noun-redundant-mpl")
end
end
for _, fpl in ipairs(feminine_plurals) do
if redundant_plural(fpl) then
track("noun-redundant-fpl")
end
end
if #plurals > 0 then
plurals.label = "พหูพจน์"
plurals.accel = {form = "p"}
table.insert(data.inflections, plurals)
end
if #masculines > 0 then
masculines.label = "เพศชาย"
table.insert(data.inflections, masculines)
end
if #masculine_plurals > 0 then
masculine_plurals.label = "เพศชายพหูพจน์"
table.insert(data.inflections, masculine_plurals)
end
if #feminines > 0 then
feminines.label = "เพศหญิง"
feminines.accel = {form = "f"}
table.insert(data.inflections, feminines)
end
if #feminine_plurals > 0 then
feminine_plurals.label = "เพศหญิงพหูพจน์"
table.insert(data.inflections, feminine_plurals)
end
-- Maybe add category 'Galician nouns with irregular gender' (or similar)
local irreg_gender_lemma = com.rsub(lemma, " .*", "") -- only look at first word
if (rfind(irreg_gender_lemma, "[^ã]o$") and (gender_for_default_plural == "f" or gender_for_default_plural == "mf"
or gender_for_default_plural == "mfbysense")) or
(irreg_gender_lemma:find("a$") and (gender_for_default_plural == "m" or gender_for_default_plural == "mf"
or gender_for_default_plural == "mfbysense")) then
table.insert(data.categories, langname .. " " .. plpos .. " with irregular gender")
end
end
local function get_noun_params()
return {
[1] = {list = "g", required = true, default = "?"},
[2] = {list = "pl"},
["g_qual"] = {list = "g\1_qual", allow_holes = true},
["pl_qual"] = {list = "pl\1_qual", allow_holes = true},
["m"] = {list = true},
["m_qual"] = {list = "m\1_qual", allow_holes = true},
["f"] = {list = true},
["f_qual"] = {list = "f\1_qual", allow_holes = true},
["mpl"] = {list = true},
["mpl_qual"] = {list = "mpl\1_qual", allow_holes = true},
["fpl"] = {list = true},
["fpl_qual"] = {list = "fpl\1_qual", allow_holes = true},
}
end
pos_functions["คำนาม"] = {
params = get_noun_params(),
func = function(args, data, tracking_categories, is_suffix)
do_noun(args, data, tracking_categories, "คำนาม", is_suffix)
end,
}
pos_functions["คำวิสามานยนาม"] = {
params = get_noun_params(),
func = function(args, data, tracking_categories, is_suffix)
do_noun(args, data, tracking_categories, "คำวิสามานยนาม", is_suffix, "is proper noun")
end,
}
-----------------------------------------------------------------------------------------
-- Pronouns --
-----------------------------------------------------------------------------------------
local function do_pronoun(args, data, tracking_categories, pos, is_suffix)
if is_suffix then
pos = "ปัจจัย"
end
local plpos = --[[require("Module:string utilities").pluralize(pos)]] pos
if not is_suffix then
data.pos_category = plpos
end
local lemma = m_links.remove_links(data.heads[1]) -- should always be specified
data.genders = {}
for i, g in ipairs(args[1]) do
if g ~= "n" and g ~= "n-p" and not allowed_genders[g] then
error("Unrecognized gender: " .. g)
end
if args.g_qual[i] then
table.insert(data.genders, {spec = g, qualifiers = {args.g_qual[i]}})
else
table.insert(data.genders, g)
end
end
local function do_inflection(forms, quals, label)
if #forms > 0 then
local terms = process_terms_with_qualifiers(forms, quals)
check_all_missing(terms, plpos, tracking_categories)
terms.label = label
table.insert(data.inflections, terms)
end
end
do_inflection(args.m, args.m_qual, "เพศชาย")
do_inflection(args.f, args.f_qual, "เพศหญิง")
do_inflection(args.sg, args.sg_qual, "เอกพจน์")
do_inflection(args.pl, args.pl_qual, "พหูพจน์")
do_inflection(args.mpl, args.mpl_qual, "เพศชายพหูพจน์")
do_inflection(args.fpl, args.fpl_qual, "เพศหญิงพหูพจน์")
do_inflection(args.n, args.n_qual, "เพศกลาง")
end
local function get_pronoun_params()
local params = {
[1] = {list = "g"}, --gender(s)
["g_qual"] = {list = "g\1_qual", allow_holes = true},
["m"] = {list = true}, --masculine form(s)
["m_qual"] = {list = "m\1_qual", allow_holes = true},
["f"] = {list = true}, --feminine form(s)
["f_qual"] = {list = "f\1_qual", allow_holes = true},
["sg"] = {list = true}, --singular form(s)
["sg_qual"] = {list = "sg\1_qual", allow_holes = true},
["pl"] = {list = true}, --plural form(s)
["pl_qual"] = {list = "pl\1_qual", allow_holes = true},
["mpl"] = {list = true}, --masculine plural form(s)
["mpl_qual"] = {list = "mpl\1_qual", allow_holes = true},
["fpl"] = {list = true}, --feminine plural form(s)
["fpl_qual"] = {list = "fpl\1_qual", allow_holes = true},
["n"] = {list = true}, --neuter form(s)
["n_qual"] = {list = "n\1_qual", allow_holes = true},
}
return params
end
pos_functions["คำสรรพนาม"] = {
params = get_pronoun_params(),
func = function(args, data, tracking_categories, is_suffix)
do_pronoun(args, data, tracking_categories, "คำสรรพนาม", is_suffix)
end,
}
-----------------------------------------------------------------------------------------
-- Adjectives --
-----------------------------------------------------------------------------------------
local function insert_ancillary_inflection(data, forms, quals, label, plpos, tracking_categories)
if forms and #forms > 0 then
local terms = process_terms_with_qualifiers(forms, quals)
check_all_missing(terms, plpos, tracking_categories)
terms.label = label
table.insert(data.inflections, terms)
end
end
-- Handle comparatives and superlatives for adjectives and adverbs, including user-specified comparatives and
-- superlatives, default-requested comparatives/superlatives using '+', autogenerated comparatives/superlatives,
-- and hascomp=. Code is the same for adjectives and adverbs.
local function handle_adj_adv_comp(args, data, plpos, is_adv, tracking_categories)
local com = require(data.is_reinteg and reinteg_com_module or com_module)
local lemma = m_links.remove_links(data.heads[1]) -- should always be specified
local stem
if is_adv then
stem = com.rsub(lemma, "mente$", "")
else
stem = lemma
end
local function make_absolute_superlative(special)
if is_adv then
return com.make_adverbial_absolute_superlative(stem, special)
else
return com.make_absolute_superlative(stem, special)
end
end
-- Maybe autogenerate default comparative/superlative.
if args.comp and args.sup then-- comp= and sup= were given as options to the user
-- If no comp, but a non-default sup given, then add the default comparative/superlative.
-- This is useful when an absolute superlative is given.
local saw_sup_plus = false
if #args.comp == 0 and #args.sup > 0 then
for i, supval in ipairs(args.sup) do
if supval == "+" then
saw_sup_plus = true
end
end
if not saw_sup_plus then
args.comp = {"+"}
table.insert(args.sup, 1, "+")
end
end
-- If comp=+, use default comparative 'mais ...', and set a default superlative if unspecified.
local saw_comp_plus = false
for i, compval in ipairs(args.comp) do
if compval == "+" then
saw_comp_plus = true
args.comp[i] = "[[mais]] [[" .. lemma .. "]]"
end
end
if saw_comp_plus and #args.sup == 0 then
args.sup = {"+"}
end
-- If sup=+ (possibly from comp=+), use default superlative 'o mais ...'. Also handle absolute superlatives.
for i, supval in ipairs(args.sup) do
if supval == "+" then
args.sup[i] = "[[o]] [[mais]] [[" .. lemma .. "]]"
elseif supval == "+abs" then
args.sup[i] = make_absolute_superlative()
elseif rfind(supval, "^%+abs:") then
local sp = rmatch(supval, "^%+abs:(.*)$")
args.sup[i] = make_absolute_superlative(sp)
end
end
end
if args.hascomp then
if args.hascomp == "both" then
table.insert(data.inflections, {label = "บางครั้ง" .. glossary_link("เปรียบเทียบได้")})
table.insert(data.categories, plpos .. "เปรียบเทียบได้" .. langname)
table.insert(data.categories, plpos .. "เปรียบเทียบไม่ได้" .. langname)
else
local hascomp = require("Module:yesno")(args.hascomp)
if hascomp == true then
table.insert(data.inflections, {label = glossary_link("เปรียบเทียบได้")})
table.insert(data.categories, plpos .. "เปรียบเทียบได้" .. langname)
elseif hascomp == false then
table.insert(data.inflections, {label = glossary_link("เปรียบเทียบไม่ได้")})
table.insert(data.categories, plpos .. "เปรียบเทียบไม่ได้" .. langname)
else
error("Unrecognized value for hascomp=: " .. args.hascomp)
end
end
elseif args.comp and #args.comp > 0 or args.sup and #args.sup > 0 then
table.insert(data.inflections, {label = glossary_link("เปรียบเทียบได้")})
table.insert(data.categories, plpos .. "เปรียบเทียบได้" .. langname)
end
insert_ancillary_inflection(data, args.comp, args.comp_qual, "ขั้นกว่า", plpos, tracking_categories)
insert_ancillary_inflection(data, args.sup, args.sup_qual, "ขั้นสุด", plpos, tracking_categories)
end
local function do_adjective(args, data, tracking_categories, pos, is_suffix, is_superlative)
local com = require(data.is_reinteg and reinteg_com_module or com_module)
local feminines = {}
local masculine_plurals = {}
local feminine_plurals = {}
if is_suffix then
pos = "ปัจจัย"
end
local plpos = --[[require("Module:string utilities").pluralize(pos)]] pos
if not is_suffix then
data.pos_category = plpos
end
if args.sp then
local romut = require(romut_module)
if not romut.allowed_special_indicators[args.sp] then
local indicators = {}
for indic, _ in pairs(romut.allowed_special_indicators) do
table.insert(indicators, "'" .. indic .. "'")
end
table.sort(indicators)
error("Special inflection indicator beginning can only be " ..
m_table.serialCommaJoin(indicators, {dontTag = true}) .. ": " .. args.sp)
end
end
local lemma = m_links.remove_links(data.heads[1]) -- should always be specified
local function insert_inflection(forms, label, accel)
if #forms > 0 then
if forms[1].term == "-" then
table.insert(data.inflections, {label = "ไม่มี" .. label})
else
forms.label = label
forms.accel = {form = accel}
table.insert(data.inflections, forms)
end
end
end
if args.short then
table.insert(data.inflections, {label = "[[ภาคผนวก:คำกริยาภาษากาลิเซีย#รูปกริยาขยาย|รูปกริยาขยายสั้น]]"})
end
if args.inv then
-- invariable adjective
table.insert(data.inflections, {label = glossary_link("ผันรูปไม่ได้")})
table.insert(data.categories, plpos .. "ผันรูปไม่ได้" .. langname)
if args.sp or #args.f > 0 or #args.pl > 0 or #args.mpl > 0 or #args.fpl > 0 then
error("Can't specify inflections with an invariable " .. pos)
end
elseif args.fonly then
-- feminine-only
if #args.f > 0 then
error("Can't specify explicit feminines with feminine-only " .. pos)
end
if #args.pl > 0 then
error("Can't specify explicit plurals with feminine-only " .. pos .. ", use fpl=")
end
if #args.mpl > 0 then
error("Can't specify explicit masculine plurals with feminine-only " .. pos)
end
local argsfpl = args.fpl
if #argsfpl == 0 then
argsfpl = {"+"}
end
for i, fpl in ipairs(argsfpl) do
if fpl == "+" then
local defpl = com.make_plural(lemma, args.sp)
if not defpl then
error("Unable to generate default plural of '" .. lemma .. "'")
end
fpl = defpl
else
fpl = replace_hash_with_lemma(fpl, lemma)
end
table.insert(feminine_plurals, {term = fpl, q = fetch_qualifiers(args.fpl_qual[i])})
end
check_all_missing(feminine_plurals, plpos, tracking_categories)
table.insert(data.inflections, {label = "เพศหญิงเท่านั้น"})
insert_inflection(feminine_plurals, "เพศหญิงพหูพจน์", "f|p")
else
-- Gather feminines.
local argsf = args.f
if #argsf == 0 then
argsf = {"+"}
end
for i, f in ipairs(argsf) do
if f == "+" then
-- Generate default feminine.
f = com.make_feminine(lemma, false, args.sp)
else
f = replace_hash_with_lemma(f, lemma)
end
table.insert(feminines, {term = f, q = fetch_qualifiers(args.f_qual[i])})
end
local argsmpl = args.mpl
local argsfpl = args.fpl
if #args.pl > 0 then
if #argsmpl > 0 or #argsfpl > 0 or args.mpl_qual.maxindex > 0 or args.fpl_qual.maxindex > 0 then
error("Can't specify both pl= and mpl=/fpl=")
end
argsmpl = args.pl
args.mpl_qual = args.pl_qual
argsfpl = args.pl
args.fpl_qual = args.pl_qual
end
if #argsmpl == 0 then
argsmpl = {"+"}
end
if #argsfpl == 0 then
argsfpl = {"+"}
end
for i, mpl in ipairs(argsmpl) do
if mpl == "+" then
-- Generate default masculine plural.
local defpl = com.make_plural(lemma, args.sp)
if not defpl then
error("Unable to generate default plural of '" .. lemma .. "'")
end
mpl = defpl
else
mpl = replace_hash_with_lemma(mpl, lemma)
end
table.insert(masculine_plurals, {term = mpl, q = fetch_qualifiers(args.mpl_qual[i])})
end
for i, fpl in ipairs(argsfpl) do
if fpl == "+" then
for _, f in ipairs(feminines) do
-- Generate default feminine plural; f is a table.
local defpl = com.make_plural(f.term, args.sp)
if not defpl then
error("Unable to generate default plural of '" .. f.term .. "'")
end
table.insert(feminine_plurals, {term = defpl, q = fetch_qualifiers(args.fpl_qual[i], f.q)})
end
else
fpl = replace_hash_with_lemma(fpl, lemma)
table.insert(feminine_plurals, {term = fpl, q = fetch_qualifiers(args.fpl_qual[i])})
end
end
check_all_missing(feminines, plpos, tracking_categories)
check_all_missing(masculine_plurals, plpos, tracking_categories)
check_all_missing(feminine_plurals, plpos, tracking_categories)
local fem_like_lemma = #feminines == 1 and feminines[1].term == lemma and not feminines[1].q
local fem_pl_like_masc_pl = #masculine_plurals > 0 and #feminine_plurals > 0 and
m_table.deepEquals(masculine_plurals, feminine_plurals)
local masc_pl_like_lemma = #masculine_plurals == 1 and masculine_plurals[1].term == lemma and
not masculine_plurals[1].q
if fem_like_lemma and fem_pl_like_masc_pl and masc_pl_like_lemma then
-- actually invariable
table.insert(data.inflections, {label = glossary_link("ผันรูปไม่ได้")})
table.insert(data.categories, plpos .. "ผันรูปไม่ได้" .. langname)
else
-- Make sure there are feminines given and not same as lemma.
if not fem_like_lemma then
insert_inflection(feminines, "เพศหญิง", "f|s")
end
if fem_pl_like_masc_pl then
insert_inflection(masculine_plurals, "พหูพจน์", "p")
data.genders = {"mf"}
else
insert_inflection(masculine_plurals, "เพศชายพหูพจน์", "m|p")
insert_inflection(feminine_plurals, "เพศหญิงพหูพจน์", "f|p")
end
end
end
insert_ancillary_inflection(data, args.n, args.n_qual, "เพศกลาง", plpos, tracking_categories)
handle_adj_adv_comp(args, data, plpos, false, tracking_categories)
-- Handle requests for default diminutive.
if args.dim then
for i, dim in ipairs(args.dim) do
if dim == "+" then
args.dim[i] = com.make_diminutive(lemma)
elseif dim:find("^%+") then
dim = require(romut_module).get_special_indicator(dim)
args.dim[i] = com.make_diminutive(lemma, dim)
end
end
end
-- Handle requests for default augmentative.
if args.aug then
for i, aug in ipairs(args.aug) do
if aug == "+" then
args.aug[i] = com.make_augmentative(lemma)
elseif aug:find("^%+") then
aug = require(romut_module).get_special_indicator(aug)
args.aug[i] = com.make_augmentative(lemma, aug)
end
end
end
insert_ancillary_inflection(data, args.dim, args.dim_qual, "ตัวบอกความเล็ก", plpos, tracking_categories)
insert_ancillary_inflection(data, args.aug, args.aug_qual, "ตัวบอกความใหญ่", plpos, tracking_categories)
if args.irreg and is_superlative then
table.insert(data.categories, langname .. " irregular superlative " .. plpos)
end
end
local function get_adjective_params(adjtype)
local params = {
["inv"] = {type = "boolean"}, --invariable
["sp"] = {}, -- special indicator: "first", "first-last", etc.
["f"] = {list = true}, --feminine form(s)
["f_qual"] = {list = "f\1_qual", allow_holes = true},
["pl"] = {list = true}, --plural override(s)
["pl_qual"] = {list = "pl\1_qual", allow_holes = true},
["mpl"] = {list = true}, --masculine plural override(s)
["mpl_qual"] = {list = "mpl\1_qual", allow_holes = true},
["fpl"] = {list = true}, --feminine plural override(s)
["fpl_qual"] = {list = "fpl\1_qual", allow_holes = true},
}
if adjtype == "base" then
params["comp"] = {list = true} --comparative(s)
params["comp_qual"] = {list = "comp\1_qual", allow_holes = true}
params["sup"] = {list = true} --superlative(s)
params["sup_qual"] = {list = "sup\1_qual", allow_holes = true}
params["dim"] = {list = true} --diminutive(s)
params["dim_qual"] = {list = "dim\1_qual", allow_holes = true}
params["aug"] = {list = true} --augmentative(s)
params["aug_qual"] = {list = "aug\1_qual", allow_holes = true}
params["fonly"] = {type = "boolean"} -- feminine only
params["hascomp"] = {} -- has comparative
end
if adjtype == "part" then
params["short"] = {type = "boolean"} -- short participle
end
if adjtype == "sup" then
params["irreg"] = {type = "boolean"}
end
if adjtype == "pron" or adjtype == "contr" then
params["n"] = {list = true} --neuter form(s)
params["n_qual"] = {list = "n\1_qual", allow_holes = true}
end
return params
end
pos_functions["คำคุณศัพท์"] = {
params = get_adjective_params("base"),
func = function(args, data, tracking_categories, is_suffix)
do_adjective(args, data, tracking_categories, "คำคุณศัพท์", is_suffix)
end,
}
pos_functions["คำคุณศัพท์ขั้นกว่า"] = {
params = get_adjective_params("comp"),
func = function(args, data, tracking_categories, is_suffix)
do_adjective(args, data, tracking_categories, "คำคุณศัพท์", is_suffix)
end,
}
pos_functions["คำคุณศัพท์ขั้นสุด"] = {
params = get_adjective_params("sup"),
func = function(args, data, tracking_categories, is_suffix)
do_adjective(args, data, tracking_categories, "คำคุณศัพท์", is_suffix, "is superlative")
end,
}
pos_functions["รูปกริยาขยายอดีตกาล"] = {
params = get_adjective_params("part"),
func = function(args, data, tracking_categories, is_suffix)
do_adjective(args, data, tracking_categories, "รูปกริยาขยาย", is_suffix)
data.pos_category = "รูปกริยาขยายอดีตกาล"
end,
}
pos_functions["ตัวกำหนด"] = {
params = get_adjective_params("det"),
func = function(args, data, tracking_categories, is_suffix)
do_adjective(args, data, tracking_categories, "ตัวกำหนด", is_suffix)
end,
}
pos_functions["คำสรรพนามคล้ายคุณศัพท์"] = {
params = get_adjective_params("pron"),
func = function(args, data, tracking_categories, is_suffix)
do_adjective(args, data, tracking_categories, "คำสรรพนาม", is_suffix)
end,
}
pos_functions["adjective-like contractions"] = {
params = get_adjective_params("contr"),
func = function(args, data, tracking_categories, is_suffix)
do_adjective(args, data, tracking_categories, "contraction", is_suffix)
end,
}
-----------------------------------------------------------------------------------------
-- Adverbs --
-----------------------------------------------------------------------------------------
local function do_adverb(args, data, tracking_categories, pos, is_suffix)
if is_suffix then
pos = "ปัจจัย"
end
local plpos = --[[require("Module:string utilities").pluralize(pos)]] pos
if not is_suffix then
data.pos_category = plpos
end
handle_adj_adv_comp(args, data, plpos, "is adv", tracking_categories)
end
local function get_adverb_params(advtype)
local params = {}
if advtype == "base" then
params["comp"] = {list = true} --comparative(s)
params["comp_qual"] = {list = "comp\1_qual", allow_holes = true}
params["sup"] = {list = true} --superlative(s)
params["sup_qual"] = {list = "sup\1_qual", allow_holes = true}
params["hascomp"] = {} -- has comparative
end
return params
end
pos_functions["คำกริยาวิเศษณ์"] = {
params = get_adverb_params("base"),
func = function(args, data, tracking_categories, is_suffix)
do_adverb(args, data, tracking_categories, "คำกริยาวิเศษณ์", is_suffix)
end,
}
pos_functions["คำกริยาวิเศษณ์ขั้นกว่า"] = {
params = get_adverb_params("comp"),
func = function(args, data, tracking_categories, is_suffix)
do_adverb(args, data, tracking_categories, "คำกริยาวิเศษณ์", is_suffix)
end,
}
pos_functions["คำกริยาวิเศษณ์ขั้นสุด"] = {
params = get_adverb_params("sup"),
func = function(args, data, tracking_categories, is_suffix)
do_adverb(args, data, tracking_categories, "คำกริยาวิเศษณ์", is_suffix)
end,
}
-----------------------------------------------------------------------------------------
-- Verbs --
-----------------------------------------------------------------------------------------
pos_functions["คำกริยา"] = {
params = {
[1] = {},
["pres"] = {list = true}, --present
["pres_qual"] = {list = "pres\1_qual", allow_holes = true},
["pres3s"] = {list = true}, --third-singular present
["pres3s_qual"] = {list = "pres3s\1_qual", allow_holes = true},
["pret"] = {list = true}, --preterite
["pret_qual"] = {list = "pret\1_qual", allow_holes = true},
["part"] = {list = true}, --participle
["part_qual"] = {list = "part\1_qual", allow_holes = true},
["short_part"] = {list = true}, --short participle
["short_part_qual"] = {list = "short_part\1_qual", allow_holes = true},
["noautolinktext"] = {type = "boolean"},
["noautolinkverb"] = {type = "boolean"},
["attn"] = {type = "boolean"},
},
func = function(args, data, tracking_categories)
local preses, preses_3s, prets, parts, short_parts
if args.attn then
table.insert(tracking_categories, "Requests for attention concerning " .. langname)
return
end
local gl_verb = require(data.is_reinteg and gl_reinteg_verb_module or gl_verb_module)
local alternant_multiword_spec = gl_verb.do_generate_forms(args,
data.is_reinteg and "gl-reinteg-verb" or "gl-verb", data.heads[1])
local specforms = alternant_multiword_spec.forms
local function slot_exists(slot)
return specforms[slot] and #specforms[slot] > 0
end
local function do_finite(slot_tense, label_tense)
-- Use pres_3s if it exists and pres_1s doesn't exist (e.g. impersonal verbs); similarly for pres_3p (only3p verbs);
-- but fall back to pres_1s if neither pres_1s nor pres_3s nor pres_3p exist (e.g. [[empedernir]]).
local has_1s = slot_exists(slot_tense .. "_1s")
local has_3s = slot_exists(slot_tense .. "_3s")
local has_3p = slot_exists(slot_tense .. "_3p")
if has_1s or (not has_3s and not has_3p) then
return {
slot = slot_tense .. "_1s",
label = ("บุรุษที่หนึ่งเอกพจน์%s"):format(label_tense),
}, true
elseif has_3s then
return {
slot = slot_tense .. "_3s",
label = ("บุรุษที่สามเอกพจน์%s"):format(label_tense),
}, false
else
return {
slot = slot_tense .. "_3p",
label = ("บุรุษที่สามพหูพจน์%s"):format(label_tense),
}, false
end
end
local did_pres_1s
preses, did_pres_1s = do_finite("pres", "ปัจจุบันกาล")
preses_3s = {
slot = "pres_3s",
label = "บุรุษที่สามเอกพจน์ปัจจุบันกาล",
}
prets = do_finite("pret", "อดีตกาลสิ้นสุด")
parts = {
slot = "pp_ms",
label = "รูปกริยาขยายอดีตกาล",
}
short_parts = {
slot = "short_pp_ms",
label = "รูปกริยาขยายอดีตกาลสั้น",
}
if #args.pres > 0 or #args.pres3s > 0 or #args.pret > 0 or #args.part > 0 or #args.short_part > 0 then
track("verb-old-multiarg")
end
local function strip_brackets(qualifiers)
if not qualifiers then
return nil
end
local stripped_qualifiers = {}
for _, qualifier in ipairs(qualifiers) do
local stripped_qualifier = qualifier:match("^%[(.*)%]$")
if not stripped_qualifier then
error("Internal error: Qualifier should be surrounded by brackets at this stage: " .. qualifier)
end
table.insert(stripped_qualifiers, stripped_qualifier)
end
return stripped_qualifiers
end
local function do_verb_form(args, qualifiers, slot_desc, skip_if_empty)
local forms
local to_insert
if #args == 0 then
forms = specforms[slot_desc.slot]
if not forms or #forms == 0 then
if skip_if_empty then
return
end
forms = {{form = "-"}}
end
elseif #args == 1 and args[1] == "-" then
forms = {{form = "-"}}
else
forms = {}
for i, arg in ipairs(args) do
local qual = qualifiers[i]
if qual then
-- FIXME: It's annoying we have to add brackets and strip them out later. The inflection
-- code adds all footnotes with brackets around them; we should change this.
qual = {"[" .. qual .. "]"}
end
local form = arg
if not args.noautolinkverb then
form = com.add_links(form)
end
table.insert(forms, {form = form, footnotes = qual})
end
end
if forms[1].form == "-" then
to_insert = {label = "no " .. slot_desc.label}
else
local into_table = {label = slot_desc.label}
for _, form in ipairs(forms) do
local qualifiers = strip_brackets(form.footnotes)
-- Strip redundant brackets surrounding entire form. These may get generated e.g.
-- if we use the angle bracket notation with a single word.
local stripped_form = rmatch(form.form, "^%[%[([^%[%]]*)%]%]$") or form.form
-- The reintegrationist code uses variant codes to track "Portuguese-ending" vs. "Galician-ending"
-- forms and "less common" forms. Remove them now.
if data.is_reinteg then
stripped_form = gl_verb.remove_variant_codes(stripped_form)
end
-- Don't include accelerators if brackets remain in form, as the result will be wrong.
-- FIXME: For now, don't include accelerators. We should use the new {{gl-verb form of}} once implemented.
-- local this_accel = not stripped_form:find("%[%[") and accel or nil
local this_accel = nil
table.insert(into_table, {term = stripped_form, q = qualifiers, accel = this_accel})
end
to_insert = into_table
end
table.insert(data.inflections, to_insert)
end
local skip_pres_if_empty
if alternant_multiword_spec.no_pres1_and_sub then
table.insert(data.inflections, {label = "ไม่มีบุรุษที่หนึ่งเอกพจน์ปัจจุบันกาล"})
table.insert(data.inflections, {label = "ไม่มีมาลาสมมุติปัจจุบันกาล"})
end
if alternant_multiword_spec.no_pres_stressed then
table.insert(data.inflections, {label = "ไม่มีมาลาสั่งหรือมาลาสมมุติปัจจุบันกาลเน้นหนัก"})
skip_pres_if_empty = true
end
if alternant_multiword_spec.only3s then
table.insert(data.inflections, {label = glossary_link("อบุรุษ")})
elseif alternant_multiword_spec.only3sp then
table.insert(data.inflections, {label = "บุรุษที่สามเท่านั้น"})
elseif alternant_multiword_spec.only3p then
table.insert(data.inflections, {label = "บุรุษที่สามพหูพจน์เท่านั้น"})
end
local has_vowel_alt
if alternant_multiword_spec.vowel_alt then
for _, vowel_alt in ipairs(alternant_multiword_spec.vowel_alt) do
if vowel_alt ~= "+" and vowel_alt ~= "í" and vowel_alt ~= "ú" then
has_vowel_alt = true
break
end
end
end
local function expand_footnotes_and_references(footnotes)
if not footnotes then
return nil
end
return require("Module:inflection utilities").fetch_headword_qualifiers_and_references(footnotes)
end
do_verb_form(args.pres, args.pres_qual, preses, skip_pres_if_empty)
-- We want to include both the pres_1s and pres_3s if there is a vowel alternation in the present singular. But we
-- don't want to redundantly include the pres_3s if we already included it.
if did_pres_1s and has_vowel_alt then
do_verb_form(args.pres3s, args.pres3s_qual, preses_3s, skip_pres_if_empty)
end
do_verb_form(args.pret, args.pret_qual, prets)
do_verb_form(args.part, args.part_qual, parts)
do_verb_form(args.short_part, args.short_part_qual, short_parts, "skip if empty")
-- Add categories.
for _, cat in ipairs(alternant_multiword_spec.categories) do
table.insert(data.categories, cat)
end
-- If the user didn't explicitly specify head=, or specified exactly one head (not 2+) and we were able to
-- incorporate any links in that head into the 1= specification, use the infinitive generated by
-- [[Module:gl-verb]]/[[Module:gl-reinteg-verb]] in place of the user-specified or auto-generated head. This was
-- copied from [[Module:it-headword]], where doing this gets accents marked on the verb(s). We don't have
-- accents marked on the verb but by doing this we do get any footnotes on the infinitive propagated here. Don't
-- do this if the user gave multiple heads or gave a head with a multiword-linked verbal expression such as
-- Italian '[[dare esca]] [[al]] [[fuoco]]' (FIXME: give Galician equivalent).
if #data.user_specified_heads == 0 or (
#data.user_specified_heads == 1 and alternant_multiword_spec.incorporated_headword_head_into_lemma
) then
data.heads = {}
for _, lemma_obj in ipairs(alternant_multiword_spec.forms.infinitive_linked) do
local quals, refs = expand_footnotes_and_references(lemma_obj.footnotes)
table.insert(data.heads, {term = lemma_obj.form, q = quals, refs = refs})
end
end
end
}
-----------------------------------------------------------------------------------------
-- Suffix forms --
-----------------------------------------------------------------------------------------
pos_functions["รูปปัจจัย"] = {
params = {
[1] = {required = true, list = true},
["g"] = {list = true},
["g_qual"] = {list = "g\1_qual", allow_holes = true},
},
func = function(args, data, is_suffix)
data.genders = {}
process_genders(data, args.g, args.g_qual)
local suffix_type = {}
for _, typ in ipairs(args[1]) do
table.insert(suffix_type, "ปัจจัยสร้าง" .. typ)
end
table.insert(data.inflections, {label = "รูปผันของ " .. m_table.serialCommaJoin(suffix_type, {conj = "หรือ"})})
end,
}
return export
ti09is99u6r349kpjpq4syxkzgchddy
5758924
5758920
2026-08-24T12:18:18Z
Octahedron80
267
5758924
Scribunto
text/plain
-- This module contains code for Galician headword templates.
-- Templates covered are:
-- * {{gl-noun}}, {{gl-reinteg-noun}}, {{gl-proper noun}};
-- * {{gl-verb}}, {{gl-reinteg-verb}};
-- * {{gl-adj}}, {{gl-reinteg-adj}}, {{gl-adj-comp}}, {{gl-adj-sup}};
-- * {{gl-det}};
-- * {{gl-pron-adj}};
-- * {{gl-contr-adj}};
-- * {{gl-pp}};
-- * {{gl-cardinal}};
-- * {{gl-adv}}.
-- See [[Module:gl-verb]] and [[Module:gl-reinteg-verb]] for Galician conjugation templates.
local export = {}
local pos_functions = {}
local force_cat = false -- for testing; if true, categories appear in non-mainspace pages
local m_links = require("Module:links")
local m_table = require("Module:table")
local com_module = "Module:gl-common"
local reinteg_com_module = "Module:gl-reinteg-common"
local romut_module = "Module:romance utilities"
local gl_verb_module = "Module:gl-verb"
local gl_reinteg_verb_module = "Module:gl-reinteg-verb"
local lang = require("Module:languages").getByCode("gl")
local langname = --[[lang:getCanonicalName()]] lang:getCategoryName()
local rfind = mw.ustring.find
local rmatch = mw.ustring.match
local rsplit = mw.text.split
local usub = mw.ustring.sub
-- When followed by a hyphen in a hyphenated compound, the hyphen will be included with the prefix when linked.
local include_hyphen_prefixes = m_table.listToSet {
"ab",
"afro",
"anarco",
"anglo",
"ântero",
"anti",
"auto",
"contra",
"ex",
"franco",
"hiper",
"infra",
"inter",
"intra",
"macro",
"micro",
"neo",
"pan",
"pós",
"pré",
"pró",
"proto",
"sobre",
"sub",
"super",
"vice",
}
local function track(page)
require("Module:debug/track")("gl-headword/" .. page)
return true
end
local function glossary_link(entry, text)
text = text or entry
return "[[ภาคผนวก:อภิธานศัพท์#" .. entry .. "|" .. text .. "]]"
end
local function check_all_missing(forms, plpos, tracking_categories)
for _, form in ipairs(forms) do
if type(form) == "table" then
form = form.term
end
if form then
local title = mw.title.new(form)
if title and not title.exists then
table.insert(tracking_categories, langname .. " " .. plpos .. " with red links in their headword lines")
end
end
end
end
local function do_headword(parargs, poscat_th, is_reinteg)
local params = {
["head"] = {list = true},
["id"] = {},
["splithyph"] = {type = "boolean"},
["nolinkhead"] = {type = "boolean"},
["json"] = {type = "boolean"},
["pagename"] = {}, -- for testing
["reinteg"] = {}, -- processed in show()
}
if pos_functions[poscat_th] then
for key, val in pairs(pos_functions[poscat_th].params) do
params[key] = val
end
end
local args = require("Module:parameters").process(parargs, params)
local pagename = args.pagename or mw.loadData("Module:headword/data").pagename
local user_specified_heads = args.head
local heads = user_specified_heads
if args.nolinkhead then
if #heads == 0 then
heads = {pagename}
end
else
local romut = require(romut_module)
local auto_linked_head = romut.add_links_to_multiword_term(pagename, args.splithyph, nil,
include_hyphen_prefixes)
if #heads == 0 then
heads = {auto_linked_head}
else
for i, head in ipairs(heads) do
if head:find("^~") then
head = romut.apply_link_modifiers(auto_linked_head, usub(head, 2))
heads[i] = head
end
end
end
end
local data = {
lang = lang,
pos_category = poscat_th,
categories = {},
heads = heads,
user_specified_heads = user_specified_heads,
no_redundant_head_cat = #user_specified_heads == 0,
genders = {},
inflections = {},
pagename = pagename,
id = args.id,
force_cat_output = force_cat,
is_reinteg = is_reinteg,
}
local is_suffix = false
if pagename:find("^%-") and poscat_th ~= "รูปปัจจัย" then
is_suffix = true
data.pos_category = "suffixes"
local singular_poscat = --[[require("Module:string utilities").singularize(poscat)]] poscat_th
table.insert(data.categories, "ปัจจัยสร้าง" .. singular_poscat .. langname)
table.insert(data.inflections, {label = "ปัจจัยสร้าง" .. singular_poscat})
end
local tracking_categories = {}
if pos_functions[poscat_th] then
pos_functions[poscat_th].func(args, data, tracking_categories, is_suffix)
end
if is_reinteg then
table.insert(data.inflections, {label = "บรรทัดฐาน[[ภาคผนวก:ปฏิบูรณาการนิยม|แบบปฏิบูรณาการนิยม]]"})
end
if args.json then
return require("Module:JSON").toJSON(data)
end
return require("Module:headword").full_headword(data)
.. (#tracking_categories > 0 and require("Module:utilities").format_categories(tracking_categories, lang, nil, nil, force_cat) or "")
end
-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.show(frame)
local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.")
-- หมวดหมู่เป็นภาษาไทย
local poscat_th = require("Module:th-utilities").th_pos(poscat)
local is_reinteg = frame.args.reinteg and require("Module:yesno")(frame.args.reinteg, false) or false
local parargs = frame:getParent().args
local also_reinteg = parargs.reinteg and require("Module:yesno")(parargs.reinteg, false) or false
if is_reinteg and also_reinteg then
error("Can't specify reinteg= when using a reintegrationist-specific template")
end
local parts = {}
if also_reinteg or not is_reinteg then
table.insert(parts, do_headword(parargs, poscat_th, false))
end
if also_reinteg or is_reinteg then
table.insert(parts, do_headword(parargs, poscat_th, true))
end
return table.concat(parts, "<br />")
end
local function fetch_qualifiers(qual, existing)
if not qual then
return existing
end
if not existing then
return {qual}
end
local retval = {}
for _, e in ipairs(existing) do
table.insert(retval, e)
end
table.insert(retval, qual)
return retval
end
local function process_terms_with_qualifiers(terms, quals)
local infls = {}
for i, term in ipairs(terms) do
table.insert(infls, {term = term, q = fetch_qualifiers(quals[i])})
end
return infls
end
local function replace_hash_with_lemma(term, lemma)
-- If there is a % sign in the lemma, we have to replace it with %% so it doesn't get interpreted as a capture replace
-- expression.
lemma = lemma:gsub("%%", "%%%%")
-- Assign to a variable to discard second return value.
term = term:gsub("#", lemma)
return term
end
-----------------------------------------------------------------------------------------
-- Nouns --
-----------------------------------------------------------------------------------------
local allowed_genders = m_table.listToSet(
{"m", "f", "mf", "mfbysense", "m-p", "f-p", "mf-p", "mfbysense-p", "?", "?-p", "n", "n-p"}
)
local function process_genders(data, genders, g_qual)
for i, g in ipairs(genders) do
if not allowed_genders[g] then
error("Unrecognized gender: " .. g)
end
if g_qual[i] then
table.insert(data.genders, {spec = g, qualifiers = {g_qual[i]}})
else
table.insert(data.genders, g)
end
end
end
local function do_noun(args, data, tracking_categories, pos, is_suffix, is_proper)
local com = require(data.is_reinteg and reinteg_com_module or com_module)
local is_plurale_tantum = false
local has_singular = false
if is_suffix then
pos = "ปัจจัย"
end
local plpos = --[[require("Module:string utilities").pluralize(pos)]] pos
data.genders = {}
local saw_m = false
local saw_f = false
local gender_for_default_plural
process_genders(data, args[1], args.g_qual)
-- Check for specific genders and pluralia tantum.
for i, g in ipairs(args[1]) do
if g:find("-p$") then
is_plurale_tantum = true
else
has_singular = true
if g == "m" or g == "mf" or g == "mfbysense" then
saw_m = true
end
if g == "f" or g == "mf" or g == "mfbysense" then
saw_f = true
end
end
end
if saw_m and saw_f then
gender_for_default_plural = "m"
elseif saw_f then
gender_for_default_plural = "f"
else
gender_for_default_plural = "m"
end
local lemma = m_links.remove_links(data.heads[1]) -- should always be specified
local function insert_inflection(list, term, accel, qualifiers, no_inv)
local infl = {q = qualifiers, accel = accel}
--if term == lemma and not no_inv then
-- infl.label = glossary_link("ผันรูปไม่ได้")
--else
infl.term = term
--end
infl.term_for_further_inflection = term
table.insert(list, infl)
end
-- Plural
local plurals = {}
local args_mpl = args.mpl
local args_fpl = args.fpl
local args_pl = args[2]
if is_plurale_tantum and not has_singular then
if #args_pl > 0 then
error("Can't specify plurals of plurale tantum " .. pos)
end
table.insert(data.inflections, {label = glossary_link("พหูพจน์เท่านั้น")})
else
if is_plurale_tantum then
-- both singular and plural
table.insert(data.inflections, {label = "บางครั้ง" .. glossary_link("พหูพจน์เท่านั้น") .. ", in variation"})
end
-- If no plurals, use the default plural if not a proper noun.
if #args_pl == 0 and not is_proper then
args_pl = {"+"}
end
-- If only ~ given (countable and uncountable), add the default plural after it.
if #args_pl == 1 and args_pl[1] == "~" then
args_pl = {"~", "+"}
end
-- Gather plurals, handling requests for default plurals
for i, pl in ipairs(args_pl) do
local function insert_pl(term)
local quals = fetch_qualifiers(args.pl_qual[i])
if term == lemma and i == 1 and #args_pl == 1 then
table.insert(data.inflections, {label = glossary_link("ผันรูปไม่ได้"), q = quals})
table.insert(data.categories, plpos .. "ผันรูปไม่ได้" .. langname)
else
insert_inflection(plurals, term, nil, quals)
end
table.insert(data.categories, plpos .. "นับได้" .. langname)
end
local function make_plural_and_insert(form, special)
local pl = com.make_plural(lemma, special)
if pl then
insert_pl(pl)
end
end
if pl == "+" then
make_plural_and_insert(lemma)
elseif pl:find("^%+") then
pl = require(romut_module).get_special_indicator(pl)
make_plural_and_insert(lemma, pl)
elseif pl == "?" or pl == "!" then
if i > 1 or #args_pl > 1 then
error("Can't specify ? or ! with other plurals")
end
if pl == "?" then
-- Plural is unknown
-- Better not to display anything
-- table.insert(data.inflections, {label = "plural unknown or uncertain"})
table.insert(data.categories, langname .. " " .. plpos .. " with unknown or uncertain plurals")
else
-- Plural is not attested
table.insert(data.inflections, {label = "plural not attested"})
table.insert(data.categories, langname .. " " .. plpos .. " with unattested plurals")
end
elseif pl == "-" then
if i > 1 then
error("Plural specifier - must be first")
end
-- Uncountable noun; may occasionally have a plural
table.insert(data.categories, plpos .. "นับไม่ได้" .. langname)
-- If plural forms were given explicitly, then show "usually"
if #args_pl > 1 then
table.insert(data.inflections, {label = "โดยปกติ" .. glossary_link("นับไม่ได้")})
table.insert(data.categories, plpos .. "นับได้" .. langname)
else
table.insert(data.inflections, {label = glossary_link("นับไม่ได้")})
end
elseif pl == "~" then
if i > 1 then
error("Plural specifier ~ must be first")
end
-- Countable and uncountable noun; will have a plural
table.insert(data.categories, plpos .. "นับได้" .. langname)
table.insert(data.categories, plpos .. "นับไม่ได้" .. langname)
table.insert(data.inflections, {label = glossary_link("นับได้") .. "และ" .. glossary_link("นับไม่ได้")})
else
insert_pl(replace_hash_with_lemma(pl, lemma))
end
end
end
if #plurals > 1 then
table.insert(data.categories, langname .. " " .. plpos .. " with multiple plurals")
end
-- Gather masculines/feminines. For each one, generate the corresponding plural(s).
local function handle_mf(mfs, qualifiers, inflect, default_plurals)
local retval = {}
for i, mf in ipairs(mfs) do
local function insert_infl(list, term, accel, existing_qualifiers)
insert_inflection(list, term, accel, fetch_qualifiers(qualifiers[i], existing_qualifiers), "no inv")
end
if mf == "+" then
-- Generate default feminine.
mf = inflect(lemma)
else
mf = replace_hash_with_lemma(mf, lemma)
end
local special = require(romut_module).get_special_indicator(mf)
if special then
mf = inflect(lemma, special)
end
insert_infl(retval, mf)
local mfpl = com.make_plural(mf, special)
if mfpl then
-- Add an accelerator for each masculine/feminine plural whose lemma
-- is the corresponding singular, so that the accelerated entry
-- that is generated has a definition that looks like
-- # {{plural of|gl|MFSING}}
insert_infl(default_plurals, mfpl, {form = "p", lemma = mf})
end
end
return retval
end
local feminine_plurals = {}
local feminines = handle_mf(args.f, args.f_qual, function(term, special)
return com.make_feminine(term, "is noun", special) end, feminine_plurals)
local masculine_plurals = {}
local masculines = handle_mf(args.m, args.m_qual, com.make_masculine, masculine_plurals)
local function handle_mf_plural(mfpl, qualifiers, default_plurals, singulars)
local new_mfpls = {}
for i, mfpl in ipairs(mfpl) do
local function insert_infl(term, accel, existing_qualifiers, no_inv)
insert_inflection(new_mfpls, term, accel, fetch_qualifiers(qualifiers[i], existing_qualifiers), no_inv)
end
local accel
if #mfpl == #singulars then
-- If same number of overriding masculine/feminine plurals as singulars,
-- assume each plural goes with the corresponding singular
-- and use each corresponding singular as the lemma in the accelerator.
-- The generated entry will have # {{plural of|gl|SINGULAR}} as the
-- definition.
accel = {form = "p", lemma = singulars[i].term}
else
accel = nil
end
if mfpl == "+" then
if #default_plurals > 0 then
for _, defpl in ipairs(default_plurals) do
-- defpl is a table
-- don't use "invariable" because the plural is not with respect to the lemma but
-- with respect to the masc/fem singular
insert_infl(defpl.term_for_further_inflection, defpl.accel, defpl.q, "no inv")
end
else
-- mf is a table
local default_mfpl = com.make_plural(lemma)
if default_mfpl then
insert_infl(default_mfpl, accel)
end
end
elseif mfpl:find("^%+") then
mfpl = require(romut_module).get_special_indicator(mfpl)
if #singulars > 0 then
for _, mf in ipairs(singulars) do
-- mf is a table
local default_mfpl = com.make_plural(mf.term_for_further_inflection, mfpl)
if default_mfpl then
-- don't use "invariable" because the plural is not with respect to the lemma but
-- with respect to the masc/fem singular
insert_infl(default_mfpl, accel, mf.q, "no inv")
end
end
else
local default_mfpl = com.make_plural(lemma, mfpl)
if default_mfpl then
insert_infl(default_mfpl, accel)
end
end
else
mfpl = replace_hash_with_lemma(mfpl, lemma)
-- don't use "invariable" if masc/fem singular present because the plural is not with respect to
-- the lemma but with respect to the masc/fem singular
insert_infl(mfpl, accel, nil, #singulars > 0)
end
end
return new_mfpls
end
if #args_fpl > 0 then
-- Override feminine plurals.
feminine_plurals = handle_mf_plural(args_fpl, args.fpl_qual, feminine_plurals, feminines)
end
if #args_mpl > 0 then
-- Override masculine plurals.
masculine_plurals = handle_mf_plural(args_mpl, args.mpl_qual, masculine_plurals, masculines)
end
check_all_missing(plurals, plpos, tracking_categories)
check_all_missing(feminines, plpos, tracking_categories)
check_all_missing(feminine_plurals, plpos, tracking_categories)
check_all_missing(masculines, plpos, tracking_categories)
check_all_missing(masculine_plurals, plpos, tracking_categories)
local function redundant_plural(pl)
for _, p in ipairs(plurals) do
if p.term_for_further_inflection == pl.term_for_further_inflection then
return true
end
end
return false
end
for _, mpl in ipairs(masculine_plurals) do
if redundant_plural(mpl) then
track("noun-redundant-mpl")
end
end
for _, fpl in ipairs(feminine_plurals) do
if redundant_plural(fpl) then
track("noun-redundant-fpl")
end
end
if #plurals > 0 then
plurals.label = "พหูพจน์"
plurals.accel = {form = "p"}
table.insert(data.inflections, plurals)
end
if #masculines > 0 then
masculines.label = "เพศชาย"
table.insert(data.inflections, masculines)
end
if #masculine_plurals > 0 then
masculine_plurals.label = "เพศชายพหูพจน์"
table.insert(data.inflections, masculine_plurals)
end
if #feminines > 0 then
feminines.label = "เพศหญิง"
feminines.accel = {form = "f"}
table.insert(data.inflections, feminines)
end
if #feminine_plurals > 0 then
feminine_plurals.label = "เพศหญิงพหูพจน์"
table.insert(data.inflections, feminine_plurals)
end
-- Maybe add category 'Galician nouns with irregular gender' (or similar)
local irreg_gender_lemma = com.rsub(lemma, " .*", "") -- only look at first word
if (rfind(irreg_gender_lemma, "[^ã]o$") and (gender_for_default_plural == "f" or gender_for_default_plural == "mf"
or gender_for_default_plural == "mfbysense")) or
(irreg_gender_lemma:find("a$") and (gender_for_default_plural == "m" or gender_for_default_plural == "mf"
or gender_for_default_plural == "mfbysense")) then
table.insert(data.categories, langname .. " " .. plpos .. " with irregular gender")
end
end
local function get_noun_params()
return {
[1] = {list = "g", required = true, default = "?"},
[2] = {list = "pl"},
["g_qual"] = {list = "g\1_qual", allow_holes = true},
["pl_qual"] = {list = "pl\1_qual", allow_holes = true},
["m"] = {list = true},
["m_qual"] = {list = "m\1_qual", allow_holes = true},
["f"] = {list = true},
["f_qual"] = {list = "f\1_qual", allow_holes = true},
["mpl"] = {list = true},
["mpl_qual"] = {list = "mpl\1_qual", allow_holes = true},
["fpl"] = {list = true},
["fpl_qual"] = {list = "fpl\1_qual", allow_holes = true},
}
end
pos_functions["คำนาม"] = {
params = get_noun_params(),
func = function(args, data, tracking_categories, is_suffix)
do_noun(args, data, tracking_categories, "คำนาม", is_suffix)
end,
}
pos_functions["คำวิสามานยนาม"] = {
params = get_noun_params(),
func = function(args, data, tracking_categories, is_suffix)
do_noun(args, data, tracking_categories, "คำวิสามานยนาม", is_suffix, "is proper noun")
end,
}
-----------------------------------------------------------------------------------------
-- Pronouns --
-----------------------------------------------------------------------------------------
local function do_pronoun(args, data, tracking_categories, pos, is_suffix)
if is_suffix then
pos = "ปัจจัย"
end
local plpos = --[[require("Module:string utilities").pluralize(pos)]] pos
if not is_suffix then
data.pos_category = plpos
end
local lemma = m_links.remove_links(data.heads[1]) -- should always be specified
data.genders = {}
for i, g in ipairs(args[1]) do
if g ~= "n" and g ~= "n-p" and not allowed_genders[g] then
error("Unrecognized gender: " .. g)
end
if args.g_qual[i] then
table.insert(data.genders, {spec = g, qualifiers = {args.g_qual[i]}})
else
table.insert(data.genders, g)
end
end
local function do_inflection(forms, quals, label)
if #forms > 0 then
local terms = process_terms_with_qualifiers(forms, quals)
check_all_missing(terms, plpos, tracking_categories)
terms.label = label
table.insert(data.inflections, terms)
end
end
do_inflection(args.m, args.m_qual, "เพศชาย")
do_inflection(args.f, args.f_qual, "เพศหญิง")
do_inflection(args.sg, args.sg_qual, "เอกพจน์")
do_inflection(args.pl, args.pl_qual, "พหูพจน์")
do_inflection(args.mpl, args.mpl_qual, "เพศชายพหูพจน์")
do_inflection(args.fpl, args.fpl_qual, "เพศหญิงพหูพจน์")
do_inflection(args.n, args.n_qual, "เพศกลาง")
end
local function get_pronoun_params()
local params = {
[1] = {list = "g"}, --gender(s)
["g_qual"] = {list = "g\1_qual", allow_holes = true},
["m"] = {list = true}, --masculine form(s)
["m_qual"] = {list = "m\1_qual", allow_holes = true},
["f"] = {list = true}, --feminine form(s)
["f_qual"] = {list = "f\1_qual", allow_holes = true},
["sg"] = {list = true}, --singular form(s)
["sg_qual"] = {list = "sg\1_qual", allow_holes = true},
["pl"] = {list = true}, --plural form(s)
["pl_qual"] = {list = "pl\1_qual", allow_holes = true},
["mpl"] = {list = true}, --masculine plural form(s)
["mpl_qual"] = {list = "mpl\1_qual", allow_holes = true},
["fpl"] = {list = true}, --feminine plural form(s)
["fpl_qual"] = {list = "fpl\1_qual", allow_holes = true},
["n"] = {list = true}, --neuter form(s)
["n_qual"] = {list = "n\1_qual", allow_holes = true},
}
return params
end
pos_functions["คำสรรพนาม"] = {
params = get_pronoun_params(),
func = function(args, data, tracking_categories, is_suffix)
do_pronoun(args, data, tracking_categories, "คำสรรพนาม", is_suffix)
end,
}
-----------------------------------------------------------------------------------------
-- Adjectives --
-----------------------------------------------------------------------------------------
local function insert_ancillary_inflection(data, forms, quals, label, plpos, tracking_categories)
if forms and #forms > 0 then
local terms = process_terms_with_qualifiers(forms, quals)
check_all_missing(terms, plpos, tracking_categories)
terms.label = label
table.insert(data.inflections, terms)
end
end
-- Handle comparatives and superlatives for adjectives and adverbs, including user-specified comparatives and
-- superlatives, default-requested comparatives/superlatives using '+', autogenerated comparatives/superlatives,
-- and hascomp=. Code is the same for adjectives and adverbs.
local function handle_adj_adv_comp(args, data, plpos, is_adv, tracking_categories)
local com = require(data.is_reinteg and reinteg_com_module or com_module)
local lemma = m_links.remove_links(data.heads[1]) -- should always be specified
local stem
if is_adv then
stem = com.rsub(lemma, "mente$", "")
else
stem = lemma
end
local function make_absolute_superlative(special)
if is_adv then
return com.make_adverbial_absolute_superlative(stem, special)
else
return com.make_absolute_superlative(stem, special)
end
end
-- Maybe autogenerate default comparative/superlative.
if args.comp and args.sup then-- comp= and sup= were given as options to the user
-- If no comp, but a non-default sup given, then add the default comparative/superlative.
-- This is useful when an absolute superlative is given.
local saw_sup_plus = false
if #args.comp == 0 and #args.sup > 0 then
for i, supval in ipairs(args.sup) do
if supval == "+" then
saw_sup_plus = true
end
end
if not saw_sup_plus then
args.comp = {"+"}
table.insert(args.sup, 1, "+")
end
end
-- If comp=+, use default comparative 'mais ...', and set a default superlative if unspecified.
local saw_comp_plus = false
for i, compval in ipairs(args.comp) do
if compval == "+" then
saw_comp_plus = true
args.comp[i] = "[[mais]] [[" .. lemma .. "]]"
end
end
if saw_comp_plus and #args.sup == 0 then
args.sup = {"+"}
end
-- If sup=+ (possibly from comp=+), use default superlative 'o mais ...'. Also handle absolute superlatives.
for i, supval in ipairs(args.sup) do
if supval == "+" then
args.sup[i] = "[[o]] [[mais]] [[" .. lemma .. "]]"
elseif supval == "+abs" then
args.sup[i] = make_absolute_superlative()
elseif rfind(supval, "^%+abs:") then
local sp = rmatch(supval, "^%+abs:(.*)$")
args.sup[i] = make_absolute_superlative(sp)
end
end
end
if args.hascomp then
if args.hascomp == "both" then
table.insert(data.inflections, {label = "บางครั้ง" .. glossary_link("เปรียบเทียบได้")})
table.insert(data.categories, plpos .. "เปรียบเทียบได้" .. langname)
table.insert(data.categories, plpos .. "เปรียบเทียบไม่ได้" .. langname)
else
local hascomp = require("Module:yesno")(args.hascomp)
if hascomp == true then
table.insert(data.inflections, {label = glossary_link("เปรียบเทียบได้")})
table.insert(data.categories, plpos .. "เปรียบเทียบได้" .. langname)
elseif hascomp == false then
table.insert(data.inflections, {label = glossary_link("เปรียบเทียบไม่ได้")})
table.insert(data.categories, plpos .. "เปรียบเทียบไม่ได้" .. langname)
else
error("Unrecognized value for hascomp=: " .. args.hascomp)
end
end
elseif args.comp and #args.comp > 0 or args.sup and #args.sup > 0 then
table.insert(data.inflections, {label = glossary_link("เปรียบเทียบได้")})
table.insert(data.categories, plpos .. "เปรียบเทียบได้" .. langname)
end
insert_ancillary_inflection(data, args.comp, args.comp_qual, "ขั้นกว่า", plpos, tracking_categories)
insert_ancillary_inflection(data, args.sup, args.sup_qual, "ขั้นสุด", plpos, tracking_categories)
end
local function do_adjective(args, data, tracking_categories, pos, is_suffix, is_superlative)
local com = require(data.is_reinteg and reinteg_com_module or com_module)
local feminines = {}
local masculine_plurals = {}
local feminine_plurals = {}
if is_suffix then
pos = "ปัจจัย"
end
local plpos = --[[require("Module:string utilities").pluralize(pos)]] pos
if not is_suffix then
data.pos_category = plpos
end
if args.sp then
local romut = require(romut_module)
if not romut.allowed_special_indicators[args.sp] then
local indicators = {}
for indic, _ in pairs(romut.allowed_special_indicators) do
table.insert(indicators, "'" .. indic .. "'")
end
table.sort(indicators)
error("Special inflection indicator beginning can only be " ..
m_table.serialCommaJoin(indicators, {dontTag = true}) .. ": " .. args.sp)
end
end
local lemma = m_links.remove_links(data.heads[1]) -- should always be specified
local function insert_inflection(forms, label, accel)
if #forms > 0 then
if forms[1].term == "-" then
table.insert(data.inflections, {label = "ไม่มี" .. label})
else
forms.label = label
forms.accel = {form = accel}
table.insert(data.inflections, forms)
end
end
end
if args.short then
table.insert(data.inflections, {label = "[[ภาคผนวก:คำกริยาภาษากาลิเซีย#รูปกริยาขยาย|รูปกริยาขยายสั้น]]"})
end
if args.inv then
-- invariable adjective
table.insert(data.inflections, {label = glossary_link("ผันรูปไม่ได้")})
table.insert(data.categories, plpos .. "ผันรูปไม่ได้" .. langname)
if args.sp or #args.f > 0 or #args.pl > 0 or #args.mpl > 0 or #args.fpl > 0 then
error("Can't specify inflections with an invariable " .. pos)
end
elseif args.fonly then
-- feminine-only
if #args.f > 0 then
error("Can't specify explicit feminines with feminine-only " .. pos)
end
if #args.pl > 0 then
error("Can't specify explicit plurals with feminine-only " .. pos .. ", use fpl=")
end
if #args.mpl > 0 then
error("Can't specify explicit masculine plurals with feminine-only " .. pos)
end
local argsfpl = args.fpl
if #argsfpl == 0 then
argsfpl = {"+"}
end
for i, fpl in ipairs(argsfpl) do
if fpl == "+" then
local defpl = com.make_plural(lemma, args.sp)
if not defpl then
error("Unable to generate default plural of '" .. lemma .. "'")
end
fpl = defpl
else
fpl = replace_hash_with_lemma(fpl, lemma)
end
table.insert(feminine_plurals, {term = fpl, q = fetch_qualifiers(args.fpl_qual[i])})
end
check_all_missing(feminine_plurals, plpos, tracking_categories)
table.insert(data.inflections, {label = "เพศหญิงเท่านั้น"})
insert_inflection(feminine_plurals, "เพศหญิงพหูพจน์", "f|p")
else
-- Gather feminines.
local argsf = args.f
if #argsf == 0 then
argsf = {"+"}
end
for i, f in ipairs(argsf) do
if f == "+" then
-- Generate default feminine.
f = com.make_feminine(lemma, false, args.sp)
else
f = replace_hash_with_lemma(f, lemma)
end
table.insert(feminines, {term = f, q = fetch_qualifiers(args.f_qual[i])})
end
local argsmpl = args.mpl
local argsfpl = args.fpl
if #args.pl > 0 then
if #argsmpl > 0 or #argsfpl > 0 or args.mpl_qual.maxindex > 0 or args.fpl_qual.maxindex > 0 then
error("Can't specify both pl= and mpl=/fpl=")
end
argsmpl = args.pl
args.mpl_qual = args.pl_qual
argsfpl = args.pl
args.fpl_qual = args.pl_qual
end
if #argsmpl == 0 then
argsmpl = {"+"}
end
if #argsfpl == 0 then
argsfpl = {"+"}
end
for i, mpl in ipairs(argsmpl) do
if mpl == "+" then
-- Generate default masculine plural.
local defpl = com.make_plural(lemma, args.sp)
if not defpl then
error("Unable to generate default plural of '" .. lemma .. "'")
end
mpl = defpl
else
mpl = replace_hash_with_lemma(mpl, lemma)
end
table.insert(masculine_plurals, {term = mpl, q = fetch_qualifiers(args.mpl_qual[i])})
end
for i, fpl in ipairs(argsfpl) do
if fpl == "+" then
for _, f in ipairs(feminines) do
-- Generate default feminine plural; f is a table.
local defpl = com.make_plural(f.term, args.sp)
if not defpl then
error("Unable to generate default plural of '" .. f.term .. "'")
end
table.insert(feminine_plurals, {term = defpl, q = fetch_qualifiers(args.fpl_qual[i], f.q)})
end
else
fpl = replace_hash_with_lemma(fpl, lemma)
table.insert(feminine_plurals, {term = fpl, q = fetch_qualifiers(args.fpl_qual[i])})
end
end
check_all_missing(feminines, plpos, tracking_categories)
check_all_missing(masculine_plurals, plpos, tracking_categories)
check_all_missing(feminine_plurals, plpos, tracking_categories)
local fem_like_lemma = #feminines == 1 and feminines[1].term == lemma and not feminines[1].q
local fem_pl_like_masc_pl = #masculine_plurals > 0 and #feminine_plurals > 0 and
m_table.deepEquals(masculine_plurals, feminine_plurals)
local masc_pl_like_lemma = #masculine_plurals == 1 and masculine_plurals[1].term == lemma and
not masculine_plurals[1].q
if fem_like_lemma and fem_pl_like_masc_pl and masc_pl_like_lemma then
-- actually invariable
table.insert(data.inflections, {label = glossary_link("ผันรูปไม่ได้")})
table.insert(data.categories, plpos .. "ผันรูปไม่ได้" .. langname)
else
-- Make sure there are feminines given and not same as lemma.
if not fem_like_lemma then
insert_inflection(feminines, "เพศหญิง", "f|s")
end
if fem_pl_like_masc_pl then
insert_inflection(masculine_plurals, "พหูพจน์", "p")
data.genders = {"mf"}
else
insert_inflection(masculine_plurals, "เพศชายพหูพจน์", "m|p")
insert_inflection(feminine_plurals, "เพศหญิงพหูพจน์", "f|p")
end
end
end
insert_ancillary_inflection(data, args.n, args.n_qual, "เพศกลาง", plpos, tracking_categories)
handle_adj_adv_comp(args, data, plpos, false, tracking_categories)
-- Handle requests for default diminutive.
if args.dim then
for i, dim in ipairs(args.dim) do
if dim == "+" then
args.dim[i] = com.make_diminutive(lemma)
elseif dim:find("^%+") then
dim = require(romut_module).get_special_indicator(dim)
args.dim[i] = com.make_diminutive(lemma, dim)
end
end
end
-- Handle requests for default augmentative.
if args.aug then
for i, aug in ipairs(args.aug) do
if aug == "+" then
args.aug[i] = com.make_augmentative(lemma)
elseif aug:find("^%+") then
aug = require(romut_module).get_special_indicator(aug)
args.aug[i] = com.make_augmentative(lemma, aug)
end
end
end
insert_ancillary_inflection(data, args.dim, args.dim_qual, "ตัวบอกความเล็ก", plpos, tracking_categories)
insert_ancillary_inflection(data, args.aug, args.aug_qual, "ตัวบอกความใหญ่", plpos, tracking_categories)
if args.irreg and is_superlative then
table.insert(data.categories, langname .. " irregular superlative " .. plpos)
end
end
local function get_adjective_params(adjtype)
local params = {
["inv"] = {type = "boolean"}, --invariable
["sp"] = {}, -- special indicator: "first", "first-last", etc.
["f"] = {list = true}, --feminine form(s)
["f_qual"] = {list = "f\1_qual", allow_holes = true},
["pl"] = {list = true}, --plural override(s)
["pl_qual"] = {list = "pl\1_qual", allow_holes = true},
["mpl"] = {list = true}, --masculine plural override(s)
["mpl_qual"] = {list = "mpl\1_qual", allow_holes = true},
["fpl"] = {list = true}, --feminine plural override(s)
["fpl_qual"] = {list = "fpl\1_qual", allow_holes = true},
}
if adjtype == "base" then
params["comp"] = {list = true} --comparative(s)
params["comp_qual"] = {list = "comp\1_qual", allow_holes = true}
params["sup"] = {list = true} --superlative(s)
params["sup_qual"] = {list = "sup\1_qual", allow_holes = true}
params["dim"] = {list = true} --diminutive(s)
params["dim_qual"] = {list = "dim\1_qual", allow_holes = true}
params["aug"] = {list = true} --augmentative(s)
params["aug_qual"] = {list = "aug\1_qual", allow_holes = true}
params["fonly"] = {type = "boolean"} -- feminine only
params["hascomp"] = {} -- has comparative
end
if adjtype == "part" then
params["short"] = {type = "boolean"} -- short participle
end
if adjtype == "sup" then
params["irreg"] = {type = "boolean"}
end
if adjtype == "pron" or adjtype == "contr" then
params["n"] = {list = true} --neuter form(s)
params["n_qual"] = {list = "n\1_qual", allow_holes = true}
end
return params
end
pos_functions["คำคุณศัพท์"] = {
params = get_adjective_params("base"),
func = function(args, data, tracking_categories, is_suffix)
do_adjective(args, data, tracking_categories, "คำคุณศัพท์", is_suffix)
end,
}
pos_functions["คำคุณศัพท์ขั้นกว่า"] = {
params = get_adjective_params("comp"),
func = function(args, data, tracking_categories, is_suffix)
do_adjective(args, data, tracking_categories, "คำคุณศัพท์", is_suffix)
end,
}
pos_functions["คำคุณศัพท์ขั้นสุด"] = {
params = get_adjective_params("sup"),
func = function(args, data, tracking_categories, is_suffix)
do_adjective(args, data, tracking_categories, "คำคุณศัพท์", is_suffix, "is superlative")
end,
}
pos_functions["รูปกริยาขยายอดีตกาล"] = {
params = get_adjective_params("part"),
func = function(args, data, tracking_categories, is_suffix)
do_adjective(args, data, tracking_categories, "รูปกริยาขยาย", is_suffix)
data.pos_category = "รูปกริยาขยายอดีตกาล"
end,
}
pos_functions["ตัวกำหนด"] = {
params = get_adjective_params("det"),
func = function(args, data, tracking_categories, is_suffix)
do_adjective(args, data, tracking_categories, "ตัวกำหนด", is_suffix)
end,
}
pos_functions["คำสรรพนามคล้ายคุณศัพท์"] = {
params = get_adjective_params("pron"),
func = function(args, data, tracking_categories, is_suffix)
do_adjective(args, data, tracking_categories, "คำสรรพนาม", is_suffix)
end,
}
pos_functions["adjective-like contractions"] = {
params = get_adjective_params("contr"),
func = function(args, data, tracking_categories, is_suffix)
do_adjective(args, data, tracking_categories, "contraction", is_suffix)
end,
}
-----------------------------------------------------------------------------------------
-- Adverbs --
-----------------------------------------------------------------------------------------
local function do_adverb(args, data, tracking_categories, pos, is_suffix)
if is_suffix then
pos = "ปัจจัย"
end
local plpos = --[[require("Module:string utilities").pluralize(pos)]] pos
if not is_suffix then
data.pos_category = plpos
end
handle_adj_adv_comp(args, data, plpos, "is adv", tracking_categories)
end
local function get_adverb_params(advtype)
local params = {}
if advtype == "base" then
params["comp"] = {list = true} --comparative(s)
params["comp_qual"] = {list = "comp\1_qual", allow_holes = true}
params["sup"] = {list = true} --superlative(s)
params["sup_qual"] = {list = "sup\1_qual", allow_holes = true}
params["hascomp"] = {} -- has comparative
end
return params
end
pos_functions["คำกริยาวิเศษณ์"] = {
params = get_adverb_params("base"),
func = function(args, data, tracking_categories, is_suffix)
do_adverb(args, data, tracking_categories, "คำกริยาวิเศษณ์", is_suffix)
end,
}
pos_functions["คำกริยาวิเศษณ์ขั้นกว่า"] = {
params = get_adverb_params("comp"),
func = function(args, data, tracking_categories, is_suffix)
do_adverb(args, data, tracking_categories, "คำกริยาวิเศษณ์", is_suffix)
end,
}
pos_functions["คำกริยาวิเศษณ์ขั้นสุด"] = {
params = get_adverb_params("sup"),
func = function(args, data, tracking_categories, is_suffix)
do_adverb(args, data, tracking_categories, "คำกริยาวิเศษณ์", is_suffix)
end,
}
-----------------------------------------------------------------------------------------
-- Verbs --
-----------------------------------------------------------------------------------------
pos_functions["คำกริยา"] = {
params = {
[1] = {},
["pres"] = {list = true}, --present
["pres_qual"] = {list = "pres\1_qual", allow_holes = true},
["pres3s"] = {list = true}, --third-singular present
["pres3s_qual"] = {list = "pres3s\1_qual", allow_holes = true},
["pret"] = {list = true}, --preterite
["pret_qual"] = {list = "pret\1_qual", allow_holes = true},
["part"] = {list = true}, --participle
["part_qual"] = {list = "part\1_qual", allow_holes = true},
["short_part"] = {list = true}, --short participle
["short_part_qual"] = {list = "short_part\1_qual", allow_holes = true},
["noautolinktext"] = {type = "boolean"},
["noautolinkverb"] = {type = "boolean"},
["attn"] = {type = "boolean"},
},
func = function(args, data, tracking_categories)
local preses, preses_3s, prets, parts, short_parts
if args.attn then
table.insert(tracking_categories, "Requests for attention concerning " .. langname)
return
end
local gl_verb = require(data.is_reinteg and gl_reinteg_verb_module or gl_verb_module)
local alternant_multiword_spec = gl_verb.do_generate_forms(args,
data.is_reinteg and "gl-reinteg-verb" or "gl-verb", data.heads[1])
local specforms = alternant_multiword_spec.forms
local function slot_exists(slot)
return specforms[slot] and #specforms[slot] > 0
end
local function do_finite(slot_tense, label_tense)
-- Use pres_3s if it exists and pres_1s doesn't exist (e.g. impersonal verbs); similarly for pres_3p (only3p verbs);
-- but fall back to pres_1s if neither pres_1s nor pres_3s nor pres_3p exist (e.g. [[empedernir]]).
local has_1s = slot_exists(slot_tense .. "_1s")
local has_3s = slot_exists(slot_tense .. "_3s")
local has_3p = slot_exists(slot_tense .. "_3p")
if has_1s or (not has_3s and not has_3p) then
return {
slot = slot_tense .. "_1s",
label = ("บุรุษที่หนึ่งเอกพจน์%s"):format(label_tense),
}, true
elseif has_3s then
return {
slot = slot_tense .. "_3s",
label = ("บุรุษที่สามเอกพจน์%s"):format(label_tense),
}, false
else
return {
slot = slot_tense .. "_3p",
label = ("บุรุษที่สามพหูพจน์%s"):format(label_tense),
}, false
end
end
local did_pres_1s
preses, did_pres_1s = do_finite("pres", "ปัจจุบันกาล")
preses_3s = {
slot = "pres_3s",
label = "บุรุษที่สามเอกพจน์ปัจจุบันกาล",
}
prets = do_finite("pret", "อดีตกาลสิ้นสุด")
parts = {
slot = "pp_ms",
label = "รูปกริยาขยายอดีตกาล",
}
short_parts = {
slot = "short_pp_ms",
label = "รูปกริยาขยายอดีตกาลสั้น",
}
if #args.pres > 0 or #args.pres3s > 0 or #args.pret > 0 or #args.part > 0 or #args.short_part > 0 then
track("verb-old-multiarg")
end
local function strip_brackets(qualifiers)
if not qualifiers then
return nil
end
local stripped_qualifiers = {}
for _, qualifier in ipairs(qualifiers) do
local stripped_qualifier = qualifier:match("^%[(.*)%]$")
if not stripped_qualifier then
error("Internal error: Qualifier should be surrounded by brackets at this stage: " .. qualifier)
end
table.insert(stripped_qualifiers, stripped_qualifier)
end
return stripped_qualifiers
end
local function do_verb_form(args, qualifiers, slot_desc, skip_if_empty)
local forms
local to_insert
if #args == 0 then
forms = specforms[slot_desc.slot]
if not forms or #forms == 0 then
if skip_if_empty then
return
end
forms = {{form = "-"}}
end
elseif #args == 1 and args[1] == "-" then
forms = {{form = "-"}}
else
forms = {}
for i, arg in ipairs(args) do
local qual = qualifiers[i]
if qual then
-- FIXME: It's annoying we have to add brackets and strip them out later. The inflection
-- code adds all footnotes with brackets around them; we should change this.
qual = {"[" .. qual .. "]"}
end
local form = arg
if not args.noautolinkverb then
form = com.add_links(form)
end
table.insert(forms, {form = form, footnotes = qual})
end
end
if forms[1].form == "-" then
to_insert = {label = "no " .. slot_desc.label}
else
local into_table = {label = slot_desc.label}
for _, form in ipairs(forms) do
local qualifiers = strip_brackets(form.footnotes)
-- Strip redundant brackets surrounding entire form. These may get generated e.g.
-- if we use the angle bracket notation with a single word.
local stripped_form = rmatch(form.form, "^%[%[([^%[%]]*)%]%]$") or form.form
-- The reintegrationist code uses variant codes to track "Portuguese-ending" vs. "Galician-ending"
-- forms and "less common" forms. Remove them now.
if data.is_reinteg then
stripped_form = gl_verb.remove_variant_codes(stripped_form)
end
-- Don't include accelerators if brackets remain in form, as the result will be wrong.
-- FIXME: For now, don't include accelerators. We should use the new {{gl-verb form of}} once implemented.
-- local this_accel = not stripped_form:find("%[%[") and accel or nil
local this_accel = nil
table.insert(into_table, {term = stripped_form, q = qualifiers, accel = this_accel})
end
to_insert = into_table
end
table.insert(data.inflections, to_insert)
end
local skip_pres_if_empty
if alternant_multiword_spec.no_pres1_and_sub then
table.insert(data.inflections, {label = "ไม่มีบุรุษที่หนึ่งเอกพจน์ปัจจุบันกาล"})
table.insert(data.inflections, {label = "ไม่มีมาลาสมมุติปัจจุบันกาล"})
end
if alternant_multiword_spec.no_pres_stressed then
table.insert(data.inflections, {label = "ไม่มีมาลาสั่งหรือมาลาสมมุติปัจจุบันกาลเน้นหนัก"})
skip_pres_if_empty = true
end
if alternant_multiword_spec.only3s then
table.insert(data.inflections, {label = glossary_link("อบุรุษ")})
elseif alternant_multiword_spec.only3sp then
table.insert(data.inflections, {label = "บุรุษที่สามเท่านั้น"})
elseif alternant_multiword_spec.only3p then
table.insert(data.inflections, {label = "บุรุษที่สามพหูพจน์เท่านั้น"})
end
local has_vowel_alt
if alternant_multiword_spec.vowel_alt then
for _, vowel_alt in ipairs(alternant_multiword_spec.vowel_alt) do
if vowel_alt ~= "+" and vowel_alt ~= "í" and vowel_alt ~= "ú" then
has_vowel_alt = true
break
end
end
end
local function expand_footnotes_and_references(footnotes)
if not footnotes then
return nil
end
return require("Module:inflection utilities").fetch_headword_qualifiers_and_references(footnotes)
end
do_verb_form(args.pres, args.pres_qual, preses, skip_pres_if_empty)
-- We want to include both the pres_1s and pres_3s if there is a vowel alternation in the present singular. But we
-- don't want to redundantly include the pres_3s if we already included it.
if did_pres_1s and has_vowel_alt then
do_verb_form(args.pres3s, args.pres3s_qual, preses_3s, skip_pres_if_empty)
end
do_verb_form(args.pret, args.pret_qual, prets)
do_verb_form(args.part, args.part_qual, parts)
do_verb_form(args.short_part, args.short_part_qual, short_parts, "skip if empty")
-- Add categories.
for _, cat in ipairs(alternant_multiword_spec.categories) do
table.insert(data.categories, cat)
end
-- If the user didn't explicitly specify head=, or specified exactly one head (not 2+) and we were able to
-- incorporate any links in that head into the 1= specification, use the infinitive generated by
-- [[Module:gl-verb]]/[[Module:gl-reinteg-verb]] in place of the user-specified or auto-generated head. This was
-- copied from [[Module:it-headword]], where doing this gets accents marked on the verb(s). We don't have
-- accents marked on the verb but by doing this we do get any footnotes on the infinitive propagated here. Don't
-- do this if the user gave multiple heads or gave a head with a multiword-linked verbal expression such as
-- Italian '[[dare esca]] [[al]] [[fuoco]]' (FIXME: give Galician equivalent).
if #data.user_specified_heads == 0 or (
#data.user_specified_heads == 1 and alternant_multiword_spec.incorporated_headword_head_into_lemma
) then
data.heads = {}
for _, lemma_obj in ipairs(alternant_multiword_spec.forms.infinitive_linked) do
local quals, refs = expand_footnotes_and_references(lemma_obj.footnotes)
table.insert(data.heads, {term = lemma_obj.form, q = quals, refs = refs})
end
end
end
}
-----------------------------------------------------------------------------------------
-- Suffix forms --
-----------------------------------------------------------------------------------------
pos_functions["รูปปัจจัย"] = {
params = {
[1] = {required = true, list = true},
["g"] = {list = true},
["g_qual"] = {list = "g\1_qual", allow_holes = true},
},
func = function(args, data, is_suffix)
data.genders = {}
process_genders(data, args.g, args.g_qual)
local suffix_type = {}
for _, typ in ipairs(args[1]) do
table.insert(suffix_type, "ปัจจัยสร้าง" .. typ)
end
table.insert(data.inflections, {label = "รูปผันของ " .. m_table.serialCommaJoin(suffix_type, {conj = "หรือ"})})
end,
}
return export
eiradkfjst857f7egybv888osmt42ad
5758937
5758924
2026-08-24T12:28:56Z
Octahedron80
267
5758937
Scribunto
text/plain
-- This module contains code for Galician headword templates.
-- Templates covered are:
-- * {{gl-noun}}, {{gl-reinteg-noun}}, {{gl-proper noun}};
-- * {{gl-verb}}, {{gl-reinteg-verb}};
-- * {{gl-adj}}, {{gl-reinteg-adj}}, {{gl-adj-comp}}, {{gl-adj-sup}};
-- * {{gl-det}};
-- * {{gl-pron-adj}};
-- * {{gl-contr-adj}};
-- * {{gl-pp}};
-- * {{gl-cardinal}};
-- * {{gl-adv}}.
-- See [[Module:gl-verb]] and [[Module:gl-reinteg-verb]] for Galician conjugation templates.
local export = {}
local pos_functions = {}
local force_cat = false -- for testing; if true, categories appear in non-mainspace pages
local m_links = require("Module:links")
local m_table = require("Module:table")
local com_module = "Module:gl-common"
local reinteg_com_module = "Module:gl-reinteg-common"
local romut_module = "Module:romance utilities"
local gl_verb_module = "Module:gl-verb"
local gl_reinteg_verb_module = "Module:gl-reinteg-verb"
local lang = require("Module:languages").getByCode("gl")
local langname = --[[lang:getCanonicalName()]] lang:getCategoryName()
local rfind = mw.ustring.find
local rmatch = mw.ustring.match
local rsplit = mw.text.split
local usub = mw.ustring.sub
-- When followed by a hyphen in a hyphenated compound, the hyphen will be included with the prefix when linked.
local include_hyphen_prefixes = m_table.listToSet {
"ab",
"afro",
"anarco",
"anglo",
"ântero",
"anti",
"auto",
"contra",
"ex",
"franco",
"hiper",
"infra",
"inter",
"intra",
"macro",
"micro",
"neo",
"pan",
"pós",
"pré",
"pró",
"proto",
"sobre",
"sub",
"super",
"vice",
}
local function track(page)
require("Module:debug/track")("gl-headword/" .. page)
return true
end
local function glossary_link(entry, text)
text = text or entry
return "[[ภาคผนวก:อภิธานศัพท์#" .. entry .. "|" .. text .. "]]"
end
local function check_all_missing(forms, plpos, tracking_categories)
for _, form in ipairs(forms) do
if type(form) == "table" then
form = form.term
end
if form then
local title = mw.title.new(form)
if title and not title.exists then
table.insert(tracking_categories, langname .. " " .. plpos .. " with red links in their headword lines")
end
end
end
end
local function do_headword(parargs, poscat_th, is_reinteg)
local params = {
["head"] = {list = true},
["id"] = {},
["splithyph"] = {type = "boolean"},
["nolinkhead"] = {type = "boolean"},
["json"] = {type = "boolean"},
["pagename"] = {}, -- for testing
["reinteg"] = {}, -- processed in show()
}
if pos_functions[poscat_th] then
for key, val in pairs(pos_functions[poscat_th].params) do
params[key] = val
end
end
local args = require("Module:parameters").process(parargs, params)
local pagename = args.pagename or mw.loadData("Module:headword/data").pagename
local user_specified_heads = args.head
local heads = user_specified_heads
if args.nolinkhead then
if #heads == 0 then
heads = {pagename}
end
else
local romut = require(romut_module)
local auto_linked_head = romut.add_links_to_multiword_term(pagename, args.splithyph, nil,
include_hyphen_prefixes)
if #heads == 0 then
heads = {auto_linked_head}
else
for i, head in ipairs(heads) do
if head:find("^~") then
head = romut.apply_link_modifiers(auto_linked_head, usub(head, 2))
heads[i] = head
end
end
end
end
local data = {
lang = lang,
pos_category = poscat_th,
categories = {},
heads = heads,
user_specified_heads = user_specified_heads,
no_redundant_head_cat = #user_specified_heads == 0,
genders = {},
inflections = {},
pagename = pagename,
id = args.id,
force_cat_output = force_cat,
is_reinteg = is_reinteg,
}
local is_suffix = false
if pagename:find("^%-") and poscat_th ~= "รูปปัจจัย" then
is_suffix = true
data.pos_category = "suffixes"
local singular_poscat = --[[require("Module:string utilities").singularize(poscat)]] poscat_th
table.insert(data.categories, "ปัจจัยสร้าง" .. singular_poscat .. langname)
table.insert(data.inflections, {label = "ปัจจัยสร้าง" .. singular_poscat})
end
local tracking_categories = {}
if pos_functions[poscat_th] then
pos_functions[poscat_th].func(args, data, tracking_categories, is_suffix)
end
if is_reinteg then
table.insert(data.inflections, {label = "บรรทัดฐาน[[ภาคผนวก:ปฏิบูรณาการนิยม|ปฏิบูรณาการนิยม]]"})
end
if args.json then
return require("Module:JSON").toJSON(data)
end
return require("Module:headword").full_headword(data)
.. (#tracking_categories > 0 and require("Module:utilities").format_categories(tracking_categories, lang, nil, nil, force_cat) or "")
end
-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.show(frame)
local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.")
-- หมวดหมู่เป็นภาษาไทย
local poscat_th = require("Module:th-utilities").th_pos(poscat)
local is_reinteg = frame.args.reinteg and require("Module:yesno")(frame.args.reinteg, false) or false
local parargs = frame:getParent().args
local also_reinteg = parargs.reinteg and require("Module:yesno")(parargs.reinteg, false) or false
if is_reinteg and also_reinteg then
error("Can't specify reinteg= when using a reintegrationist-specific template")
end
local parts = {}
if also_reinteg or not is_reinteg then
table.insert(parts, do_headword(parargs, poscat_th, false))
end
if also_reinteg or is_reinteg then
table.insert(parts, do_headword(parargs, poscat_th, true))
end
return table.concat(parts, "<br />")
end
local function fetch_qualifiers(qual, existing)
if not qual then
return existing
end
if not existing then
return {qual}
end
local retval = {}
for _, e in ipairs(existing) do
table.insert(retval, e)
end
table.insert(retval, qual)
return retval
end
local function process_terms_with_qualifiers(terms, quals)
local infls = {}
for i, term in ipairs(terms) do
table.insert(infls, {term = term, q = fetch_qualifiers(quals[i])})
end
return infls
end
local function replace_hash_with_lemma(term, lemma)
-- If there is a % sign in the lemma, we have to replace it with %% so it doesn't get interpreted as a capture replace
-- expression.
lemma = lemma:gsub("%%", "%%%%")
-- Assign to a variable to discard second return value.
term = term:gsub("#", lemma)
return term
end
-----------------------------------------------------------------------------------------
-- Nouns --
-----------------------------------------------------------------------------------------
local allowed_genders = m_table.listToSet(
{"m", "f", "mf", "mfbysense", "m-p", "f-p", "mf-p", "mfbysense-p", "?", "?-p", "n", "n-p"}
)
local function process_genders(data, genders, g_qual)
for i, g in ipairs(genders) do
if not allowed_genders[g] then
error("Unrecognized gender: " .. g)
end
if g_qual[i] then
table.insert(data.genders, {spec = g, qualifiers = {g_qual[i]}})
else
table.insert(data.genders, g)
end
end
end
local function do_noun(args, data, tracking_categories, pos, is_suffix, is_proper)
local com = require(data.is_reinteg and reinteg_com_module or com_module)
local is_plurale_tantum = false
local has_singular = false
if is_suffix then
pos = "ปัจจัย"
end
local plpos = --[[require("Module:string utilities").pluralize(pos)]] pos
data.genders = {}
local saw_m = false
local saw_f = false
local gender_for_default_plural
process_genders(data, args[1], args.g_qual)
-- Check for specific genders and pluralia tantum.
for i, g in ipairs(args[1]) do
if g:find("-p$") then
is_plurale_tantum = true
else
has_singular = true
if g == "m" or g == "mf" or g == "mfbysense" then
saw_m = true
end
if g == "f" or g == "mf" or g == "mfbysense" then
saw_f = true
end
end
end
if saw_m and saw_f then
gender_for_default_plural = "m"
elseif saw_f then
gender_for_default_plural = "f"
else
gender_for_default_plural = "m"
end
local lemma = m_links.remove_links(data.heads[1]) -- should always be specified
local function insert_inflection(list, term, accel, qualifiers, no_inv)
local infl = {q = qualifiers, accel = accel}
--if term == lemma and not no_inv then
-- infl.label = glossary_link("ผันรูปไม่ได้")
--else
infl.term = term
--end
infl.term_for_further_inflection = term
table.insert(list, infl)
end
-- Plural
local plurals = {}
local args_mpl = args.mpl
local args_fpl = args.fpl
local args_pl = args[2]
if is_plurale_tantum and not has_singular then
if #args_pl > 0 then
error("Can't specify plurals of plurale tantum " .. pos)
end
table.insert(data.inflections, {label = glossary_link("พหูพจน์เท่านั้น")})
else
if is_plurale_tantum then
-- both singular and plural
table.insert(data.inflections, {label = "บางครั้ง" .. glossary_link("พหูพจน์เท่านั้น") .. ", in variation"})
end
-- If no plurals, use the default plural if not a proper noun.
if #args_pl == 0 and not is_proper then
args_pl = {"+"}
end
-- If only ~ given (countable and uncountable), add the default plural after it.
if #args_pl == 1 and args_pl[1] == "~" then
args_pl = {"~", "+"}
end
-- Gather plurals, handling requests for default plurals
for i, pl in ipairs(args_pl) do
local function insert_pl(term)
local quals = fetch_qualifiers(args.pl_qual[i])
if term == lemma and i == 1 and #args_pl == 1 then
table.insert(data.inflections, {label = glossary_link("ผันรูปไม่ได้"), q = quals})
table.insert(data.categories, plpos .. "ผันรูปไม่ได้" .. langname)
else
insert_inflection(plurals, term, nil, quals)
end
table.insert(data.categories, plpos .. "นับได้" .. langname)
end
local function make_plural_and_insert(form, special)
local pl = com.make_plural(lemma, special)
if pl then
insert_pl(pl)
end
end
if pl == "+" then
make_plural_and_insert(lemma)
elseif pl:find("^%+") then
pl = require(romut_module).get_special_indicator(pl)
make_plural_and_insert(lemma, pl)
elseif pl == "?" or pl == "!" then
if i > 1 or #args_pl > 1 then
error("Can't specify ? or ! with other plurals")
end
if pl == "?" then
-- Plural is unknown
-- Better not to display anything
-- table.insert(data.inflections, {label = "plural unknown or uncertain"})
table.insert(data.categories, langname .. " " .. plpos .. " with unknown or uncertain plurals")
else
-- Plural is not attested
table.insert(data.inflections, {label = "plural not attested"})
table.insert(data.categories, langname .. " " .. plpos .. " with unattested plurals")
end
elseif pl == "-" then
if i > 1 then
error("Plural specifier - must be first")
end
-- Uncountable noun; may occasionally have a plural
table.insert(data.categories, plpos .. "นับไม่ได้" .. langname)
-- If plural forms were given explicitly, then show "usually"
if #args_pl > 1 then
table.insert(data.inflections, {label = "โดยปกติ" .. glossary_link("นับไม่ได้")})
table.insert(data.categories, plpos .. "นับได้" .. langname)
else
table.insert(data.inflections, {label = glossary_link("นับไม่ได้")})
end
elseif pl == "~" then
if i > 1 then
error("Plural specifier ~ must be first")
end
-- Countable and uncountable noun; will have a plural
table.insert(data.categories, plpos .. "นับได้" .. langname)
table.insert(data.categories, plpos .. "นับไม่ได้" .. langname)
table.insert(data.inflections, {label = glossary_link("นับได้") .. "และ" .. glossary_link("นับไม่ได้")})
else
insert_pl(replace_hash_with_lemma(pl, lemma))
end
end
end
if #plurals > 1 then
table.insert(data.categories, langname .. " " .. plpos .. " with multiple plurals")
end
-- Gather masculines/feminines. For each one, generate the corresponding plural(s).
local function handle_mf(mfs, qualifiers, inflect, default_plurals)
local retval = {}
for i, mf in ipairs(mfs) do
local function insert_infl(list, term, accel, existing_qualifiers)
insert_inflection(list, term, accel, fetch_qualifiers(qualifiers[i], existing_qualifiers), "no inv")
end
if mf == "+" then
-- Generate default feminine.
mf = inflect(lemma)
else
mf = replace_hash_with_lemma(mf, lemma)
end
local special = require(romut_module).get_special_indicator(mf)
if special then
mf = inflect(lemma, special)
end
insert_infl(retval, mf)
local mfpl = com.make_plural(mf, special)
if mfpl then
-- Add an accelerator for each masculine/feminine plural whose lemma
-- is the corresponding singular, so that the accelerated entry
-- that is generated has a definition that looks like
-- # {{plural of|gl|MFSING}}
insert_infl(default_plurals, mfpl, {form = "p", lemma = mf})
end
end
return retval
end
local feminine_plurals = {}
local feminines = handle_mf(args.f, args.f_qual, function(term, special)
return com.make_feminine(term, "is noun", special) end, feminine_plurals)
local masculine_plurals = {}
local masculines = handle_mf(args.m, args.m_qual, com.make_masculine, masculine_plurals)
local function handle_mf_plural(mfpl, qualifiers, default_plurals, singulars)
local new_mfpls = {}
for i, mfpl in ipairs(mfpl) do
local function insert_infl(term, accel, existing_qualifiers, no_inv)
insert_inflection(new_mfpls, term, accel, fetch_qualifiers(qualifiers[i], existing_qualifiers), no_inv)
end
local accel
if #mfpl == #singulars then
-- If same number of overriding masculine/feminine plurals as singulars,
-- assume each plural goes with the corresponding singular
-- and use each corresponding singular as the lemma in the accelerator.
-- The generated entry will have # {{plural of|gl|SINGULAR}} as the
-- definition.
accel = {form = "p", lemma = singulars[i].term}
else
accel = nil
end
if mfpl == "+" then
if #default_plurals > 0 then
for _, defpl in ipairs(default_plurals) do
-- defpl is a table
-- don't use "invariable" because the plural is not with respect to the lemma but
-- with respect to the masc/fem singular
insert_infl(defpl.term_for_further_inflection, defpl.accel, defpl.q, "no inv")
end
else
-- mf is a table
local default_mfpl = com.make_plural(lemma)
if default_mfpl then
insert_infl(default_mfpl, accel)
end
end
elseif mfpl:find("^%+") then
mfpl = require(romut_module).get_special_indicator(mfpl)
if #singulars > 0 then
for _, mf in ipairs(singulars) do
-- mf is a table
local default_mfpl = com.make_plural(mf.term_for_further_inflection, mfpl)
if default_mfpl then
-- don't use "invariable" because the plural is not with respect to the lemma but
-- with respect to the masc/fem singular
insert_infl(default_mfpl, accel, mf.q, "no inv")
end
end
else
local default_mfpl = com.make_plural(lemma, mfpl)
if default_mfpl then
insert_infl(default_mfpl, accel)
end
end
else
mfpl = replace_hash_with_lemma(mfpl, lemma)
-- don't use "invariable" if masc/fem singular present because the plural is not with respect to
-- the lemma but with respect to the masc/fem singular
insert_infl(mfpl, accel, nil, #singulars > 0)
end
end
return new_mfpls
end
if #args_fpl > 0 then
-- Override feminine plurals.
feminine_plurals = handle_mf_plural(args_fpl, args.fpl_qual, feminine_plurals, feminines)
end
if #args_mpl > 0 then
-- Override masculine plurals.
masculine_plurals = handle_mf_plural(args_mpl, args.mpl_qual, masculine_plurals, masculines)
end
check_all_missing(plurals, plpos, tracking_categories)
check_all_missing(feminines, plpos, tracking_categories)
check_all_missing(feminine_plurals, plpos, tracking_categories)
check_all_missing(masculines, plpos, tracking_categories)
check_all_missing(masculine_plurals, plpos, tracking_categories)
local function redundant_plural(pl)
for _, p in ipairs(plurals) do
if p.term_for_further_inflection == pl.term_for_further_inflection then
return true
end
end
return false
end
for _, mpl in ipairs(masculine_plurals) do
if redundant_plural(mpl) then
track("noun-redundant-mpl")
end
end
for _, fpl in ipairs(feminine_plurals) do
if redundant_plural(fpl) then
track("noun-redundant-fpl")
end
end
if #plurals > 0 then
plurals.label = "พหูพจน์"
plurals.accel = {form = "p"}
table.insert(data.inflections, plurals)
end
if #masculines > 0 then
masculines.label = "เพศชาย"
table.insert(data.inflections, masculines)
end
if #masculine_plurals > 0 then
masculine_plurals.label = "เพศชายพหูพจน์"
table.insert(data.inflections, masculine_plurals)
end
if #feminines > 0 then
feminines.label = "เพศหญิง"
feminines.accel = {form = "f"}
table.insert(data.inflections, feminines)
end
if #feminine_plurals > 0 then
feminine_plurals.label = "เพศหญิงพหูพจน์"
table.insert(data.inflections, feminine_plurals)
end
-- Maybe add category 'Galician nouns with irregular gender' (or similar)
local irreg_gender_lemma = com.rsub(lemma, " .*", "") -- only look at first word
if (rfind(irreg_gender_lemma, "[^ã]o$") and (gender_for_default_plural == "f" or gender_for_default_plural == "mf"
or gender_for_default_plural == "mfbysense")) or
(irreg_gender_lemma:find("a$") and (gender_for_default_plural == "m" or gender_for_default_plural == "mf"
or gender_for_default_plural == "mfbysense")) then
table.insert(data.categories, langname .. " " .. plpos .. " with irregular gender")
end
end
local function get_noun_params()
return {
[1] = {list = "g", required = true, default = "?"},
[2] = {list = "pl"},
["g_qual"] = {list = "g\1_qual", allow_holes = true},
["pl_qual"] = {list = "pl\1_qual", allow_holes = true},
["m"] = {list = true},
["m_qual"] = {list = "m\1_qual", allow_holes = true},
["f"] = {list = true},
["f_qual"] = {list = "f\1_qual", allow_holes = true},
["mpl"] = {list = true},
["mpl_qual"] = {list = "mpl\1_qual", allow_holes = true},
["fpl"] = {list = true},
["fpl_qual"] = {list = "fpl\1_qual", allow_holes = true},
}
end
pos_functions["คำนาม"] = {
params = get_noun_params(),
func = function(args, data, tracking_categories, is_suffix)
do_noun(args, data, tracking_categories, "คำนาม", is_suffix)
end,
}
pos_functions["คำวิสามานยนาม"] = {
params = get_noun_params(),
func = function(args, data, tracking_categories, is_suffix)
do_noun(args, data, tracking_categories, "คำวิสามานยนาม", is_suffix, "is proper noun")
end,
}
-----------------------------------------------------------------------------------------
-- Pronouns --
-----------------------------------------------------------------------------------------
local function do_pronoun(args, data, tracking_categories, pos, is_suffix)
if is_suffix then
pos = "ปัจจัย"
end
local plpos = --[[require("Module:string utilities").pluralize(pos)]] pos
if not is_suffix then
data.pos_category = plpos
end
local lemma = m_links.remove_links(data.heads[1]) -- should always be specified
data.genders = {}
for i, g in ipairs(args[1]) do
if g ~= "n" and g ~= "n-p" and not allowed_genders[g] then
error("Unrecognized gender: " .. g)
end
if args.g_qual[i] then
table.insert(data.genders, {spec = g, qualifiers = {args.g_qual[i]}})
else
table.insert(data.genders, g)
end
end
local function do_inflection(forms, quals, label)
if #forms > 0 then
local terms = process_terms_with_qualifiers(forms, quals)
check_all_missing(terms, plpos, tracking_categories)
terms.label = label
table.insert(data.inflections, terms)
end
end
do_inflection(args.m, args.m_qual, "เพศชาย")
do_inflection(args.f, args.f_qual, "เพศหญิง")
do_inflection(args.sg, args.sg_qual, "เอกพจน์")
do_inflection(args.pl, args.pl_qual, "พหูพจน์")
do_inflection(args.mpl, args.mpl_qual, "เพศชายพหูพจน์")
do_inflection(args.fpl, args.fpl_qual, "เพศหญิงพหูพจน์")
do_inflection(args.n, args.n_qual, "เพศกลาง")
end
local function get_pronoun_params()
local params = {
[1] = {list = "g"}, --gender(s)
["g_qual"] = {list = "g\1_qual", allow_holes = true},
["m"] = {list = true}, --masculine form(s)
["m_qual"] = {list = "m\1_qual", allow_holes = true},
["f"] = {list = true}, --feminine form(s)
["f_qual"] = {list = "f\1_qual", allow_holes = true},
["sg"] = {list = true}, --singular form(s)
["sg_qual"] = {list = "sg\1_qual", allow_holes = true},
["pl"] = {list = true}, --plural form(s)
["pl_qual"] = {list = "pl\1_qual", allow_holes = true},
["mpl"] = {list = true}, --masculine plural form(s)
["mpl_qual"] = {list = "mpl\1_qual", allow_holes = true},
["fpl"] = {list = true}, --feminine plural form(s)
["fpl_qual"] = {list = "fpl\1_qual", allow_holes = true},
["n"] = {list = true}, --neuter form(s)
["n_qual"] = {list = "n\1_qual", allow_holes = true},
}
return params
end
pos_functions["คำสรรพนาม"] = {
params = get_pronoun_params(),
func = function(args, data, tracking_categories, is_suffix)
do_pronoun(args, data, tracking_categories, "คำสรรพนาม", is_suffix)
end,
}
-----------------------------------------------------------------------------------------
-- Adjectives --
-----------------------------------------------------------------------------------------
local function insert_ancillary_inflection(data, forms, quals, label, plpos, tracking_categories)
if forms and #forms > 0 then
local terms = process_terms_with_qualifiers(forms, quals)
check_all_missing(terms, plpos, tracking_categories)
terms.label = label
table.insert(data.inflections, terms)
end
end
-- Handle comparatives and superlatives for adjectives and adverbs, including user-specified comparatives and
-- superlatives, default-requested comparatives/superlatives using '+', autogenerated comparatives/superlatives,
-- and hascomp=. Code is the same for adjectives and adverbs.
local function handle_adj_adv_comp(args, data, plpos, is_adv, tracking_categories)
local com = require(data.is_reinteg and reinteg_com_module or com_module)
local lemma = m_links.remove_links(data.heads[1]) -- should always be specified
local stem
if is_adv then
stem = com.rsub(lemma, "mente$", "")
else
stem = lemma
end
local function make_absolute_superlative(special)
if is_adv then
return com.make_adverbial_absolute_superlative(stem, special)
else
return com.make_absolute_superlative(stem, special)
end
end
-- Maybe autogenerate default comparative/superlative.
if args.comp and args.sup then-- comp= and sup= were given as options to the user
-- If no comp, but a non-default sup given, then add the default comparative/superlative.
-- This is useful when an absolute superlative is given.
local saw_sup_plus = false
if #args.comp == 0 and #args.sup > 0 then
for i, supval in ipairs(args.sup) do
if supval == "+" then
saw_sup_plus = true
end
end
if not saw_sup_plus then
args.comp = {"+"}
table.insert(args.sup, 1, "+")
end
end
-- If comp=+, use default comparative 'mais ...', and set a default superlative if unspecified.
local saw_comp_plus = false
for i, compval in ipairs(args.comp) do
if compval == "+" then
saw_comp_plus = true
args.comp[i] = "[[mais]] [[" .. lemma .. "]]"
end
end
if saw_comp_plus and #args.sup == 0 then
args.sup = {"+"}
end
-- If sup=+ (possibly from comp=+), use default superlative 'o mais ...'. Also handle absolute superlatives.
for i, supval in ipairs(args.sup) do
if supval == "+" then
args.sup[i] = "[[o]] [[mais]] [[" .. lemma .. "]]"
elseif supval == "+abs" then
args.sup[i] = make_absolute_superlative()
elseif rfind(supval, "^%+abs:") then
local sp = rmatch(supval, "^%+abs:(.*)$")
args.sup[i] = make_absolute_superlative(sp)
end
end
end
if args.hascomp then
if args.hascomp == "both" then
table.insert(data.inflections, {label = "บางครั้ง" .. glossary_link("เปรียบเทียบได้")})
table.insert(data.categories, plpos .. "เปรียบเทียบได้" .. langname)
table.insert(data.categories, plpos .. "เปรียบเทียบไม่ได้" .. langname)
else
local hascomp = require("Module:yesno")(args.hascomp)
if hascomp == true then
table.insert(data.inflections, {label = glossary_link("เปรียบเทียบได้")})
table.insert(data.categories, plpos .. "เปรียบเทียบได้" .. langname)
elseif hascomp == false then
table.insert(data.inflections, {label = glossary_link("เปรียบเทียบไม่ได้")})
table.insert(data.categories, plpos .. "เปรียบเทียบไม่ได้" .. langname)
else
error("Unrecognized value for hascomp=: " .. args.hascomp)
end
end
elseif args.comp and #args.comp > 0 or args.sup and #args.sup > 0 then
table.insert(data.inflections, {label = glossary_link("เปรียบเทียบได้")})
table.insert(data.categories, plpos .. "เปรียบเทียบได้" .. langname)
end
insert_ancillary_inflection(data, args.comp, args.comp_qual, "ขั้นกว่า", plpos, tracking_categories)
insert_ancillary_inflection(data, args.sup, args.sup_qual, "ขั้นสุด", plpos, tracking_categories)
end
local function do_adjective(args, data, tracking_categories, pos, is_suffix, is_superlative)
local com = require(data.is_reinteg and reinteg_com_module or com_module)
local feminines = {}
local masculine_plurals = {}
local feminine_plurals = {}
if is_suffix then
pos = "ปัจจัย"
end
local plpos = --[[require("Module:string utilities").pluralize(pos)]] pos
if not is_suffix then
data.pos_category = plpos
end
if args.sp then
local romut = require(romut_module)
if not romut.allowed_special_indicators[args.sp] then
local indicators = {}
for indic, _ in pairs(romut.allowed_special_indicators) do
table.insert(indicators, "'" .. indic .. "'")
end
table.sort(indicators)
error("Special inflection indicator beginning can only be " ..
m_table.serialCommaJoin(indicators, {dontTag = true}) .. ": " .. args.sp)
end
end
local lemma = m_links.remove_links(data.heads[1]) -- should always be specified
local function insert_inflection(forms, label, accel)
if #forms > 0 then
if forms[1].term == "-" then
table.insert(data.inflections, {label = "ไม่มี" .. label})
else
forms.label = label
forms.accel = {form = accel}
table.insert(data.inflections, forms)
end
end
end
if args.short then
table.insert(data.inflections, {label = "[[ภาคผนวก:คำกริยาภาษากาลิเซีย#รูปกริยาขยาย|รูปกริยาขยายสั้น]]"})
end
if args.inv then
-- invariable adjective
table.insert(data.inflections, {label = glossary_link("ผันรูปไม่ได้")})
table.insert(data.categories, plpos .. "ผันรูปไม่ได้" .. langname)
if args.sp or #args.f > 0 or #args.pl > 0 or #args.mpl > 0 or #args.fpl > 0 then
error("Can't specify inflections with an invariable " .. pos)
end
elseif args.fonly then
-- feminine-only
if #args.f > 0 then
error("Can't specify explicit feminines with feminine-only " .. pos)
end
if #args.pl > 0 then
error("Can't specify explicit plurals with feminine-only " .. pos .. ", use fpl=")
end
if #args.mpl > 0 then
error("Can't specify explicit masculine plurals with feminine-only " .. pos)
end
local argsfpl = args.fpl
if #argsfpl == 0 then
argsfpl = {"+"}
end
for i, fpl in ipairs(argsfpl) do
if fpl == "+" then
local defpl = com.make_plural(lemma, args.sp)
if not defpl then
error("Unable to generate default plural of '" .. lemma .. "'")
end
fpl = defpl
else
fpl = replace_hash_with_lemma(fpl, lemma)
end
table.insert(feminine_plurals, {term = fpl, q = fetch_qualifiers(args.fpl_qual[i])})
end
check_all_missing(feminine_plurals, plpos, tracking_categories)
table.insert(data.inflections, {label = "เพศหญิงเท่านั้น"})
insert_inflection(feminine_plurals, "เพศหญิงพหูพจน์", "f|p")
else
-- Gather feminines.
local argsf = args.f
if #argsf == 0 then
argsf = {"+"}
end
for i, f in ipairs(argsf) do
if f == "+" then
-- Generate default feminine.
f = com.make_feminine(lemma, false, args.sp)
else
f = replace_hash_with_lemma(f, lemma)
end
table.insert(feminines, {term = f, q = fetch_qualifiers(args.f_qual[i])})
end
local argsmpl = args.mpl
local argsfpl = args.fpl
if #args.pl > 0 then
if #argsmpl > 0 or #argsfpl > 0 or args.mpl_qual.maxindex > 0 or args.fpl_qual.maxindex > 0 then
error("Can't specify both pl= and mpl=/fpl=")
end
argsmpl = args.pl
args.mpl_qual = args.pl_qual
argsfpl = args.pl
args.fpl_qual = args.pl_qual
end
if #argsmpl == 0 then
argsmpl = {"+"}
end
if #argsfpl == 0 then
argsfpl = {"+"}
end
for i, mpl in ipairs(argsmpl) do
if mpl == "+" then
-- Generate default masculine plural.
local defpl = com.make_plural(lemma, args.sp)
if not defpl then
error("Unable to generate default plural of '" .. lemma .. "'")
end
mpl = defpl
else
mpl = replace_hash_with_lemma(mpl, lemma)
end
table.insert(masculine_plurals, {term = mpl, q = fetch_qualifiers(args.mpl_qual[i])})
end
for i, fpl in ipairs(argsfpl) do
if fpl == "+" then
for _, f in ipairs(feminines) do
-- Generate default feminine plural; f is a table.
local defpl = com.make_plural(f.term, args.sp)
if not defpl then
error("Unable to generate default plural of '" .. f.term .. "'")
end
table.insert(feminine_plurals, {term = defpl, q = fetch_qualifiers(args.fpl_qual[i], f.q)})
end
else
fpl = replace_hash_with_lemma(fpl, lemma)
table.insert(feminine_plurals, {term = fpl, q = fetch_qualifiers(args.fpl_qual[i])})
end
end
check_all_missing(feminines, plpos, tracking_categories)
check_all_missing(masculine_plurals, plpos, tracking_categories)
check_all_missing(feminine_plurals, plpos, tracking_categories)
local fem_like_lemma = #feminines == 1 and feminines[1].term == lemma and not feminines[1].q
local fem_pl_like_masc_pl = #masculine_plurals > 0 and #feminine_plurals > 0 and
m_table.deepEquals(masculine_plurals, feminine_plurals)
local masc_pl_like_lemma = #masculine_plurals == 1 and masculine_plurals[1].term == lemma and
not masculine_plurals[1].q
if fem_like_lemma and fem_pl_like_masc_pl and masc_pl_like_lemma then
-- actually invariable
table.insert(data.inflections, {label = glossary_link("ผันรูปไม่ได้")})
table.insert(data.categories, plpos .. "ผันรูปไม่ได้" .. langname)
else
-- Make sure there are feminines given and not same as lemma.
if not fem_like_lemma then
insert_inflection(feminines, "เพศหญิง", "f|s")
end
if fem_pl_like_masc_pl then
insert_inflection(masculine_plurals, "พหูพจน์", "p")
data.genders = {"mf"}
else
insert_inflection(masculine_plurals, "เพศชายพหูพจน์", "m|p")
insert_inflection(feminine_plurals, "เพศหญิงพหูพจน์", "f|p")
end
end
end
insert_ancillary_inflection(data, args.n, args.n_qual, "เพศกลาง", plpos, tracking_categories)
handle_adj_adv_comp(args, data, plpos, false, tracking_categories)
-- Handle requests for default diminutive.
if args.dim then
for i, dim in ipairs(args.dim) do
if dim == "+" then
args.dim[i] = com.make_diminutive(lemma)
elseif dim:find("^%+") then
dim = require(romut_module).get_special_indicator(dim)
args.dim[i] = com.make_diminutive(lemma, dim)
end
end
end
-- Handle requests for default augmentative.
if args.aug then
for i, aug in ipairs(args.aug) do
if aug == "+" then
args.aug[i] = com.make_augmentative(lemma)
elseif aug:find("^%+") then
aug = require(romut_module).get_special_indicator(aug)
args.aug[i] = com.make_augmentative(lemma, aug)
end
end
end
insert_ancillary_inflection(data, args.dim, args.dim_qual, "ตัวบอกความเล็ก", plpos, tracking_categories)
insert_ancillary_inflection(data, args.aug, args.aug_qual, "ตัวบอกความใหญ่", plpos, tracking_categories)
if args.irreg and is_superlative then
table.insert(data.categories, langname .. " irregular superlative " .. plpos)
end
end
local function get_adjective_params(adjtype)
local params = {
["inv"] = {type = "boolean"}, --invariable
["sp"] = {}, -- special indicator: "first", "first-last", etc.
["f"] = {list = true}, --feminine form(s)
["f_qual"] = {list = "f\1_qual", allow_holes = true},
["pl"] = {list = true}, --plural override(s)
["pl_qual"] = {list = "pl\1_qual", allow_holes = true},
["mpl"] = {list = true}, --masculine plural override(s)
["mpl_qual"] = {list = "mpl\1_qual", allow_holes = true},
["fpl"] = {list = true}, --feminine plural override(s)
["fpl_qual"] = {list = "fpl\1_qual", allow_holes = true},
}
if adjtype == "base" then
params["comp"] = {list = true} --comparative(s)
params["comp_qual"] = {list = "comp\1_qual", allow_holes = true}
params["sup"] = {list = true} --superlative(s)
params["sup_qual"] = {list = "sup\1_qual", allow_holes = true}
params["dim"] = {list = true} --diminutive(s)
params["dim_qual"] = {list = "dim\1_qual", allow_holes = true}
params["aug"] = {list = true} --augmentative(s)
params["aug_qual"] = {list = "aug\1_qual", allow_holes = true}
params["fonly"] = {type = "boolean"} -- feminine only
params["hascomp"] = {} -- has comparative
end
if adjtype == "part" then
params["short"] = {type = "boolean"} -- short participle
end
if adjtype == "sup" then
params["irreg"] = {type = "boolean"}
end
if adjtype == "pron" or adjtype == "contr" then
params["n"] = {list = true} --neuter form(s)
params["n_qual"] = {list = "n\1_qual", allow_holes = true}
end
return params
end
pos_functions["คำคุณศัพท์"] = {
params = get_adjective_params("base"),
func = function(args, data, tracking_categories, is_suffix)
do_adjective(args, data, tracking_categories, "คำคุณศัพท์", is_suffix)
end,
}
pos_functions["คำคุณศัพท์ขั้นกว่า"] = {
params = get_adjective_params("comp"),
func = function(args, data, tracking_categories, is_suffix)
do_adjective(args, data, tracking_categories, "คำคุณศัพท์", is_suffix)
end,
}
pos_functions["คำคุณศัพท์ขั้นสุด"] = {
params = get_adjective_params("sup"),
func = function(args, data, tracking_categories, is_suffix)
do_adjective(args, data, tracking_categories, "คำคุณศัพท์", is_suffix, "is superlative")
end,
}
pos_functions["รูปกริยาขยายอดีตกาล"] = {
params = get_adjective_params("part"),
func = function(args, data, tracking_categories, is_suffix)
do_adjective(args, data, tracking_categories, "รูปกริยาขยาย", is_suffix)
data.pos_category = "รูปกริยาขยายอดีตกาล"
end,
}
pos_functions["ตัวกำหนด"] = {
params = get_adjective_params("det"),
func = function(args, data, tracking_categories, is_suffix)
do_adjective(args, data, tracking_categories, "ตัวกำหนด", is_suffix)
end,
}
pos_functions["คำสรรพนามคล้ายคุณศัพท์"] = {
params = get_adjective_params("pron"),
func = function(args, data, tracking_categories, is_suffix)
do_adjective(args, data, tracking_categories, "คำสรรพนาม", is_suffix)
end,
}
pos_functions["adjective-like contractions"] = {
params = get_adjective_params("contr"),
func = function(args, data, tracking_categories, is_suffix)
do_adjective(args, data, tracking_categories, "contraction", is_suffix)
end,
}
-----------------------------------------------------------------------------------------
-- Adverbs --
-----------------------------------------------------------------------------------------
local function do_adverb(args, data, tracking_categories, pos, is_suffix)
if is_suffix then
pos = "ปัจจัย"
end
local plpos = --[[require("Module:string utilities").pluralize(pos)]] pos
if not is_suffix then
data.pos_category = plpos
end
handle_adj_adv_comp(args, data, plpos, "is adv", tracking_categories)
end
local function get_adverb_params(advtype)
local params = {}
if advtype == "base" then
params["comp"] = {list = true} --comparative(s)
params["comp_qual"] = {list = "comp\1_qual", allow_holes = true}
params["sup"] = {list = true} --superlative(s)
params["sup_qual"] = {list = "sup\1_qual", allow_holes = true}
params["hascomp"] = {} -- has comparative
end
return params
end
pos_functions["คำกริยาวิเศษณ์"] = {
params = get_adverb_params("base"),
func = function(args, data, tracking_categories, is_suffix)
do_adverb(args, data, tracking_categories, "คำกริยาวิเศษณ์", is_suffix)
end,
}
pos_functions["คำกริยาวิเศษณ์ขั้นกว่า"] = {
params = get_adverb_params("comp"),
func = function(args, data, tracking_categories, is_suffix)
do_adverb(args, data, tracking_categories, "คำกริยาวิเศษณ์", is_suffix)
end,
}
pos_functions["คำกริยาวิเศษณ์ขั้นสุด"] = {
params = get_adverb_params("sup"),
func = function(args, data, tracking_categories, is_suffix)
do_adverb(args, data, tracking_categories, "คำกริยาวิเศษณ์", is_suffix)
end,
}
-----------------------------------------------------------------------------------------
-- Verbs --
-----------------------------------------------------------------------------------------
pos_functions["คำกริยา"] = {
params = {
[1] = {},
["pres"] = {list = true}, --present
["pres_qual"] = {list = "pres\1_qual", allow_holes = true},
["pres3s"] = {list = true}, --third-singular present
["pres3s_qual"] = {list = "pres3s\1_qual", allow_holes = true},
["pret"] = {list = true}, --preterite
["pret_qual"] = {list = "pret\1_qual", allow_holes = true},
["part"] = {list = true}, --participle
["part_qual"] = {list = "part\1_qual", allow_holes = true},
["short_part"] = {list = true}, --short participle
["short_part_qual"] = {list = "short_part\1_qual", allow_holes = true},
["noautolinktext"] = {type = "boolean"},
["noautolinkverb"] = {type = "boolean"},
["attn"] = {type = "boolean"},
},
func = function(args, data, tracking_categories)
local preses, preses_3s, prets, parts, short_parts
if args.attn then
table.insert(tracking_categories, "Requests for attention concerning " .. langname)
return
end
local gl_verb = require(data.is_reinteg and gl_reinteg_verb_module or gl_verb_module)
local alternant_multiword_spec = gl_verb.do_generate_forms(args,
data.is_reinteg and "gl-reinteg-verb" or "gl-verb", data.heads[1])
local specforms = alternant_multiword_spec.forms
local function slot_exists(slot)
return specforms[slot] and #specforms[slot] > 0
end
local function do_finite(slot_tense, label_tense)
-- Use pres_3s if it exists and pres_1s doesn't exist (e.g. impersonal verbs); similarly for pres_3p (only3p verbs);
-- but fall back to pres_1s if neither pres_1s nor pres_3s nor pres_3p exist (e.g. [[empedernir]]).
local has_1s = slot_exists(slot_tense .. "_1s")
local has_3s = slot_exists(slot_tense .. "_3s")
local has_3p = slot_exists(slot_tense .. "_3p")
if has_1s or (not has_3s and not has_3p) then
return {
slot = slot_tense .. "_1s",
label = ("บุรุษที่หนึ่งเอกพจน์%s"):format(label_tense),
}, true
elseif has_3s then
return {
slot = slot_tense .. "_3s",
label = ("บุรุษที่สามเอกพจน์%s"):format(label_tense),
}, false
else
return {
slot = slot_tense .. "_3p",
label = ("บุรุษที่สามพหูพจน์%s"):format(label_tense),
}, false
end
end
local did_pres_1s
preses, did_pres_1s = do_finite("pres", "ปัจจุบันกาล")
preses_3s = {
slot = "pres_3s",
label = "บุรุษที่สามเอกพจน์ปัจจุบันกาล",
}
prets = do_finite("pret", "อดีตกาลสิ้นสุด")
parts = {
slot = "pp_ms",
label = "รูปกริยาขยายอดีตกาล",
}
short_parts = {
slot = "short_pp_ms",
label = "รูปกริยาขยายอดีตกาลสั้น",
}
if #args.pres > 0 or #args.pres3s > 0 or #args.pret > 0 or #args.part > 0 or #args.short_part > 0 then
track("verb-old-multiarg")
end
local function strip_brackets(qualifiers)
if not qualifiers then
return nil
end
local stripped_qualifiers = {}
for _, qualifier in ipairs(qualifiers) do
local stripped_qualifier = qualifier:match("^%[(.*)%]$")
if not stripped_qualifier then
error("Internal error: Qualifier should be surrounded by brackets at this stage: " .. qualifier)
end
table.insert(stripped_qualifiers, stripped_qualifier)
end
return stripped_qualifiers
end
local function do_verb_form(args, qualifiers, slot_desc, skip_if_empty)
local forms
local to_insert
if #args == 0 then
forms = specforms[slot_desc.slot]
if not forms or #forms == 0 then
if skip_if_empty then
return
end
forms = {{form = "-"}}
end
elseif #args == 1 and args[1] == "-" then
forms = {{form = "-"}}
else
forms = {}
for i, arg in ipairs(args) do
local qual = qualifiers[i]
if qual then
-- FIXME: It's annoying we have to add brackets and strip them out later. The inflection
-- code adds all footnotes with brackets around them; we should change this.
qual = {"[" .. qual .. "]"}
end
local form = arg
if not args.noautolinkverb then
form = com.add_links(form)
end
table.insert(forms, {form = form, footnotes = qual})
end
end
if forms[1].form == "-" then
to_insert = {label = "no " .. slot_desc.label}
else
local into_table = {label = slot_desc.label}
for _, form in ipairs(forms) do
local qualifiers = strip_brackets(form.footnotes)
-- Strip redundant brackets surrounding entire form. These may get generated e.g.
-- if we use the angle bracket notation with a single word.
local stripped_form = rmatch(form.form, "^%[%[([^%[%]]*)%]%]$") or form.form
-- The reintegrationist code uses variant codes to track "Portuguese-ending" vs. "Galician-ending"
-- forms and "less common" forms. Remove them now.
if data.is_reinteg then
stripped_form = gl_verb.remove_variant_codes(stripped_form)
end
-- Don't include accelerators if brackets remain in form, as the result will be wrong.
-- FIXME: For now, don't include accelerators. We should use the new {{gl-verb form of}} once implemented.
-- local this_accel = not stripped_form:find("%[%[") and accel or nil
local this_accel = nil
table.insert(into_table, {term = stripped_form, q = qualifiers, accel = this_accel})
end
to_insert = into_table
end
table.insert(data.inflections, to_insert)
end
local skip_pres_if_empty
if alternant_multiword_spec.no_pres1_and_sub then
table.insert(data.inflections, {label = "ไม่มีบุรุษที่หนึ่งเอกพจน์ปัจจุบันกาล"})
table.insert(data.inflections, {label = "ไม่มีมาลาสมมุติปัจจุบันกาล"})
end
if alternant_multiword_spec.no_pres_stressed then
table.insert(data.inflections, {label = "ไม่มีมาลาสั่งหรือมาลาสมมุติปัจจุบันกาลเน้นหนัก"})
skip_pres_if_empty = true
end
if alternant_multiword_spec.only3s then
table.insert(data.inflections, {label = glossary_link("อบุรุษ")})
elseif alternant_multiword_spec.only3sp then
table.insert(data.inflections, {label = "บุรุษที่สามเท่านั้น"})
elseif alternant_multiword_spec.only3p then
table.insert(data.inflections, {label = "บุรุษที่สามพหูพจน์เท่านั้น"})
end
local has_vowel_alt
if alternant_multiword_spec.vowel_alt then
for _, vowel_alt in ipairs(alternant_multiword_spec.vowel_alt) do
if vowel_alt ~= "+" and vowel_alt ~= "í" and vowel_alt ~= "ú" then
has_vowel_alt = true
break
end
end
end
local function expand_footnotes_and_references(footnotes)
if not footnotes then
return nil
end
return require("Module:inflection utilities").fetch_headword_qualifiers_and_references(footnotes)
end
do_verb_form(args.pres, args.pres_qual, preses, skip_pres_if_empty)
-- We want to include both the pres_1s and pres_3s if there is a vowel alternation in the present singular. But we
-- don't want to redundantly include the pres_3s if we already included it.
if did_pres_1s and has_vowel_alt then
do_verb_form(args.pres3s, args.pres3s_qual, preses_3s, skip_pres_if_empty)
end
do_verb_form(args.pret, args.pret_qual, prets)
do_verb_form(args.part, args.part_qual, parts)
do_verb_form(args.short_part, args.short_part_qual, short_parts, "skip if empty")
-- Add categories.
for _, cat in ipairs(alternant_multiword_spec.categories) do
table.insert(data.categories, cat)
end
-- If the user didn't explicitly specify head=, or specified exactly one head (not 2+) and we were able to
-- incorporate any links in that head into the 1= specification, use the infinitive generated by
-- [[Module:gl-verb]]/[[Module:gl-reinteg-verb]] in place of the user-specified or auto-generated head. This was
-- copied from [[Module:it-headword]], where doing this gets accents marked on the verb(s). We don't have
-- accents marked on the verb but by doing this we do get any footnotes on the infinitive propagated here. Don't
-- do this if the user gave multiple heads or gave a head with a multiword-linked verbal expression such as
-- Italian '[[dare esca]] [[al]] [[fuoco]]' (FIXME: give Galician equivalent).
if #data.user_specified_heads == 0 or (
#data.user_specified_heads == 1 and alternant_multiword_spec.incorporated_headword_head_into_lemma
) then
data.heads = {}
for _, lemma_obj in ipairs(alternant_multiword_spec.forms.infinitive_linked) do
local quals, refs = expand_footnotes_and_references(lemma_obj.footnotes)
table.insert(data.heads, {term = lemma_obj.form, q = quals, refs = refs})
end
end
end
}
-----------------------------------------------------------------------------------------
-- Suffix forms --
-----------------------------------------------------------------------------------------
pos_functions["รูปปัจจัย"] = {
params = {
[1] = {required = true, list = true},
["g"] = {list = true},
["g_qual"] = {list = "g\1_qual", allow_holes = true},
},
func = function(args, data, is_suffix)
data.genders = {}
process_genders(data, args.g, args.g_qual)
local suffix_type = {}
for _, typ in ipairs(args[1]) do
table.insert(suffix_type, "ปัจจัยสร้าง" .. typ)
end
table.insert(data.inflections, {label = "รูปผันของ " .. m_table.serialCommaJoin(suffix_type, {conj = "หรือ"})})
end,
}
return export
qrk619d6b35oj7kwm4ijm8ibmcdyffi
บึก
0
167657
5759096
4646419
2026-08-25T05:53:02Z
Ai Ku Karng
17824
/* ภาษาไทย */
5759096
wikitext
text/x-wiki
{{also/auto}}
== ภาษาไทย ==
=== รากศัพท์ ===
{{inh+|khb|tai-pro|*ɓɯːkᴰ||ใหญ่}}; ร่วมเชื้อสายกับ{{cog|lo|ບຶກ}}, {{cog|skb|บึ๊ก}}, {{cog|za|mbwk|tr=บึก|t=ใหญ่}}
=== การออกเสียง ===
{{th-pron}}
=== คำนาม ===
{{th-noun}}
# [[ชื่อ]][[ปลา]][[น้ำจืด]][[ขนาด]][[ใหญ่]][[ชนิด]] ''Pangasianodon gigas'' Chevey [[ใน]][[วงศ์]] Pangasiidae [[ไม่]][[มี]][[เกล็ด]] [[ตัว]][[ยาว]] [[แบน]][[ข้าง]][[เล็กน้อย]] [[ท้อง]][[กลม]] มี[[หนวด]][[สั้น]][[มาก]]ข้าง[[ละ]] 1 [[เส้น]][[ที่]][[มุม]][[ปาก]] ไม่มี[[ฟัน]] [[ครีบ]][[หลัง]][[ตอน]]ที่ 2 [[เป็น]][[แผ่น]][[เนื้อ]]ขนาด[[เล็ก]] [[ลำตัว]][[ด้าน]]หลัง[[สี]][[เทา]][[อม]][[น้ำตาล]][[แดง]] ด้านท้องสี[[ขาว]] มีใน[[ลำ]][[แม่น้ำ]][[โขง]] ขนาดยาว[[ได้]][[ถึง]] 3 [[เมตร]]
=== คำคุณศัพท์ ===
{{th-adj|-}}
# {{lb|th|เลิก}} ใหญ่
1c95u0si2qyqpfmi7xpgvw7zjcxx7ln
5759097
5759096
2026-08-25T05:53:23Z
Ai Ku Karng
17824
5759097
wikitext
text/x-wiki
{{also/auto}}
== ภาษาไทย ==
=== รากศัพท์ ===
{{inh+|th|tai-pro|*ɓɯːkᴰ||ใหญ่}}; ร่วมเชื้อสายกับ{{cog|lo|ບຶກ}}, {{cog|skb|บึ๊ก}}, {{cog|za|mbwk|tr=บึก|t=ใหญ่}}
=== การออกเสียง ===
{{th-pron}}
=== คำนาม ===
{{th-noun}}
# [[ชื่อ]][[ปลา]][[น้ำจืด]][[ขนาด]][[ใหญ่]][[ชนิด]] ''Pangasianodon gigas'' Chevey [[ใน]][[วงศ์]] Pangasiidae [[ไม่]][[มี]][[เกล็ด]] [[ตัว]][[ยาว]] [[แบน]][[ข้าง]][[เล็กน้อย]] [[ท้อง]][[กลม]] มี[[หนวด]][[สั้น]][[มาก]]ข้าง[[ละ]] 1 [[เส้น]][[ที่]][[มุม]][[ปาก]] ไม่มี[[ฟัน]] [[ครีบ]][[หลัง]][[ตอน]]ที่ 2 [[เป็น]][[แผ่น]][[เนื้อ]]ขนาด[[เล็ก]] [[ลำตัว]][[ด้าน]]หลัง[[สี]][[เทา]][[อม]][[น้ำตาล]][[แดง]] ด้านท้องสี[[ขาว]] มีใน[[ลำ]][[แม่น้ำ]][[โขง]] ขนาดยาว[[ได้]][[ถึง]] 3 [[เมตร]]
=== คำคุณศัพท์ ===
{{th-adj|-}}
# {{lb|th|เลิก}} ใหญ่
394khxftcy9p0m3e6zy0ew9584icehd
saison
0
238538
5759054
5758823
2026-08-25T04:46:01Z
Ponpan
693
5759054
wikitext
text/x-wiki
{{also|Saison|saîson}}
== ภาษาฝรั่งเศส ==
{{wp|fr:}}
=== รากศัพท์ ===
{{etymon|fr|:inh|fro:saison}}
{{inh+|fr|fro|saison}}, {{m|fro|seson}}, {{m|fro|seison}}, สืบทอดจาก{{inh|fr|la|[[satiō]], [[satiōnem]]|t=การหว่านเมล็ด, การปลูก}}
=== การออกเสียง ===
* {{fr-IPA}}
* {{audio|fr|Fr-saison.ogg}}
* {{audio|fr|LL-Q150 (fra)-DenisdeShawi-saison.wav|a=<<Canada>> (<<Shawinigan>>)}}
* {{audio|fr|LL-Q150 (fra)-GrandCelinien-saison.wav|a=<<France>> (<<Paris>>)}}
* {{audio|fr|LL-Q150 (fra)-LoquaxFR-saison.wav|a=<<France>> (<<Vosges>>)}}
* {{audio|fr|LL-Q150 (fra)-Poslovitch-saison.wav|a=<<France>> (<<Vosges>>)}}
* {{audio|fr|LL-Q150 (fra)-WikiLucas00-saison.wav|a=<<France>> (<<Lyon>>)}}
* {{audio|fr|LL-Q150 (fra)-X-Javier-saison.wav|a=<<France>> (<<Massy>>)}}
=== คำนาม ===
{{fr-noun|f}}
# [[ฤดูกาล]], [[ฤดู]] {{gloss|หนึ่งในสี่ส่วนของปีในเขตอบอุ่น: ฤดูหนาว, ฤดูใบไม้ผลิ, ฤดูร้อน และฤดูใบไม้ร่วง}}
# [[ฤดูกาล]], [[ฤดู]], [[หน้า]] {{gloss|ช่วงเวลาใดเวลาหนึ่งของปีที่เกิดเหตุการณ์เฉพาะอย่างขึ้น}}
#: {{uxi|fr|La saison de ski|t=ฤดูเล่นสกี}}
#: {{uxi|fr|La saison des fraises|t=ฤดูสตรอว์เบอร์รี}}
# {{lb|fr|กีฬา}} [[ฤดูกาล]] {{gloss|ช่วงเวลาของปีที่ทีมต่าง ๆ แข่งขันกัน}}
==== ลูกคำ ====
{{col3|fr|assaisonner|demi-saison|saison des pluies|saisonnier|saisonnière}}
==== คำสืบทอด ====
{{top3}}
* {{desc|ht|sezon}}
* {{desc|mfe|sezon|lasezon|der2=1}}
* {{desc|cs|sezóna|bor=1}}
* {{desc|de|Saison|bor=1}}
* {{desc|el|σεζόν|bor=1}}
* {{desc|pl|sezon|bor=1}}
* {{desc|ro|sezon|bor=1}}
* {{desc|ru|сезо́н|bor=1}}
* {{desc|tr|sezon|bor=1}}
* {{desc|uk|сезо́н|bor=1}}
* {{desc|nl|seizoen|bor=1}}
{{bottom}}
=== ดูเพิ่ม ===
{{table:seasons/fr}}
=== อ่านเพิ่ม ===
* {{R:fr:TLFi}}
{{C|fr|เวลา}}
== ภาษาฝรั่งเศสเก่า ==
=== รูปแบบอื่น ===
* {{alter|fro|seson|sesson}}
=== รากศัพท์ ===
{{etymon|fro|:inh|la:satiō<id:sowing>}}
{{inh+|fro|la|satiō||การหว่านเมล็ด, การปลูก}}
=== คำนาม ===
{{fro-noun|f}}
# [[ฤดูกาล]], [[ฤดู]] {{gloss|หนึ่งในสี่ส่วนของปี: ฤดูหนาว, ฤดูใบไม้ผลิ, ฤดูร้อน และฤดูใบไม้ร่วง}}
#: {{coordinate terms|fro|printans|esté|autumne|yver}}
==== คำสืบทอด ====
* {{desc|roa-brg|saizon}}
* {{desc|roa-cha|sâjon}}
* {{desc|fr|saison}} {{see desc}}
* {{desc|roa-fcm|séson}}
* {{desc|nrf|saisoun|saîson|alts=1}}
* {{desc|pcd|soaison}}
* {{desc|roa-poi|sésun}}
* {{desc|wa|såjhon}}
* {{desc|enm|sesoun|alt=sesoun, seson|bor=1}} {{see desc}}
==== อ้างอิง ====
* {{R:Godefroy|supplement=1}}
== ภาษาอังกฤษ ==
{{wp|en:}}
[[ไฟล์:Saison Dupont.jpg|thumb|[[w:Dupont Brewery|Saison Dupont Vieille Provision]] ต้นแบบของเซซงสมัยใหม่]]
=== รากศัพท์ ===
จาก{{bor|en|fr|saison||ฤดูกาล, ฤดู}}; {{doublet|en|season}}
=== การออกเสียง ===
* {{IPA|en|/ˈsɛzɒn/|a=UK}}
* {{IPA|en|/ˌseɪˈzɑn/|a=US}}
* {{rhymes|en|ɑːn|s=2}}
=== คำนาม ===
{{en-noun|~}}
# เบียร์[[เพลเอล]]ชนิดหนึ่งที่มี[[การอัด]][[ก๊าซ]]สูง
#* {{RQ:NYT|date=31 May 2019|author=Vincent M. Mallozzi|title=A Perfect Recipe That Took Time to Brew|archiveurl=https://web.archive.org/web/20190531122200/https://www.nytimes.com/2019/05/31/fashion/weddings/a-perfect-recipe-that-took-time-to-brew.html|passage=They parted ways yet again, but two months later, on a morning in May 2014 after Ms. Park had completed the Brooklyn Half Marathon and Mr. Taylor had finished brewing a batch of '''saison''', his favorite beer style, they each decided to meet friends at the same bar in Park Slope.|translation=พวกเขาแยกทางกันอีกครั้ง แต่สองเดือนต่อมา ในเช้าวันหนึ่งของเดือนพฤษภาคม ปี 2014 หลังจากที่คุณพาร์กวิ่งฮาล์ฟมาราธอนที่บรู๊กลินเสร็จ และคุณเทย์เลอร์หมักเบียร์'''เซซง'''ซึ่งเป็นสไตล์เบียร์ที่เขาโปรดปรานเสร็จไปหนึ่งชุด พวกเขาทั้งสองก็ตัดสินใจไปพบเพื่อน ๆ ที่บาร์เดียวกันในย่านพาร์กสโลป}}
=== คำสลับอักษร ===
* {{anagrams|en|a=ainoss|Ossian|Sionas|Saino's|Sianos}}
{{c|en|เบียร์}}
== ภาษาอินเทอร์ลิงกวา ==
=== คำนาม ===
{{ia-noun|es}}
# [[ฤดูกาล]], [[ฤดู]]
==== คำเกี่ยวข้อง ====
* {{l|ia|saisonal}}
an5axsa9zlovs6pirdfh84508bkcbyz
minister
0
257246
5759082
2001233
2026-08-25T05:23:43Z
Octahedron80
267
/* ภาษาอังกฤษ */ เก็บกวาด
5759082
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== การออกเสียง ===
* {{IPA|en|/ˈmɪn.əˌstɚ/|/ˈmɪn.ɪ-/|a=US}}
* {{IPA|en|/ˈmɪn.ɪs.tə/|a=UK}}
* {{IPA|en|/ˈmɪn.ə.stɚ/|a=IE}}
** {{IPA|en|/ˈmɪn.ə.stɐ/|/ˈmɪn.ə.stɚ/|a=Dublin}}
* {{audio|en|en-us-minister.ogg|a=US}}
* {{audio|en|en-uk-minister.ogg|a=UK}}
=== รากศัพท์ 1 ===
{{root|en|ine-pro|*mey- (small)}}
จาก{{inh|en|enm|ministre}}, จาก{{der|en|fro|ministre}}, จาก{{der|en|la|minister|t=ผู้ติดตาม, คนรับใช้, ผู้ช่วยเหลือ, ผู้ช่วยนักบวช หรือเจ้าหน้าที่ระดับล่างอื่น ๆ}}, จาก{{m|la|minor|t=น้อยกว่า}} + {{m|la|-ter}}; ดูเพิ่มที่ [[minor]]; {{doublet|en|Minorite}}
==== คำนาม ====
{{wp|en:}}
{{en-noun}}
# {{senseid|en|cleric}} {{lb|en|นิกายโปรเตสแตนต์}} [[บุคคล]]ที่ได้รับ[[การฝึกฝน]]ให้[[เทศนา]] ประกอบ[[พิธีกรรม]]ทางศาสนา และให้[[การดูแล]]ทาง[[จิตวิญญาณ]]ใน[[คริสตจักร]][[โปรเตสแตนต์]] ([[ศาสนาจารย์]], [[ศิษยาภิบาล]])
#: {{hyper|en|cleric}}
#: {{ux|en|The '''minister''' said a prayer on behalf of the entire [[congregation]].|translation='''ศาสนาจารย์'''กล่าวคำอธิษฐานในนามของคริสตจักรทั้งหมด}}
# {{lb|en|นิกายโรมันคาทอลิก}} บุคคล (ไม่ว่าจะเป็น[[ฆราวาส]]หรือนักบวชที่ได้รับ[[การบวช]]) ที่ได้รับ[[มอบหมาย]]ให้ประกอบการใด ๆ ในนามของ[[คริสตจักรคาทอลิก]]
# {{senseid|en|government}} {{lb|en|รัฐบาล}} [[นักการเมือง]]ผู้เป็นหัวหน้า[[กระทรวง]] ([[รัฐมนตรี]])
#: {{syn|en|อรรถาภิธาน:government minister}}
#: {{hyper|en|provost<qq:หัวหน้าคณะรัฐมนตรีในพื้นที่ยุโรปกลางและสแกนดิเนเวีย>}}
#: {{ux|en|He was newly appointed to be '''Minister''' of the Interior.|translation=เขาเพิ่งได้รับการแต่งตั้งให้เป็น'''รัฐมนตรี'''ว่าการกระทรวงมหาดไทย}}
#* {{quote-book|en|year=1661 (first printed)|author=w:Francis Bacon|title=A Letter of Advice to the Duke of Buckingham|text='''Ministers''' to kings, whose eyes, ears, and hands they are, must be answerable to God and man.|translation=เหล่า'''รัฐมนตรี'''ของกษัตริย์ ผู้ซึ่งเป็นหูเป็นตาและเป็นมือเป็นเท้าของพระองค์ จะต้องรับผิดชอบต่อพระเจ้าและมนุษย์}}
# {{senseid|en|diplomacy}} ในทาง[[การทูต]], ตำแหน่ง[[นักการทูต]]ที่อยู่รองจาก[[เอกอัครราชทูต]] ([[อัครราชทูต]])
# {{senseid|en|servant}} [[คนรับใช้]]; [[ผู้ใต้บังคับบัญชา]]; [[เจ้าหน้าที่]]หรือ[[ผู้ช่วย]]ระดับ[[ล่าง]]; ด้วยเหตุนี้จึงหมายถึง [[ตัวแทน]], [[เครื่องมือ]]
#* {{RQ:Shakespeare Winter's Tale|act=III|scene=ii|page=287|column=2|passage={{nb...}}, I choſe / ''Camillo'' for the '''miniſter''', to poyſon / My friend ''Polixenes:'' {{...}}|translation={{nb...}}, ข้าเลือก / คามิลโลเป็น'''ตัวแทน''' เพื่อวางยาพิษ / โพลิกซีนีส สหายของข้า: {{...}}}}
#* {{RQ:KJV|Exodus|24|13|page=162|column=1|text=And Moſes roſe vp, and his '''miniſter''' Ioſhua: and Moſes went vp into the mount of God.|translation=โมเสสจึงลุกขึ้นพร้อมกับโยชูวา'''ผู้ช่วย'''ของท่าน แล้วโมเสสก็ขึ้นไปบนภูเขาของพระเจ้า}}
===== หมายเหตุการใช้ =====
* ไม่ควรสับสนกับ {{m|en|minster}}
===== ลูกคำ =====
{{col|en|ex-minister|ministerer|ministerless|ministerlike|ministerly|ministership|ministration|subminister|superminister|underminister|unministerlike
|deputy first minister|resident minister|e-minister|Eucharistic minister|cabinet minister|catechetical minister|chief minister|ecclesial minister|extraordinary minister|first minister|foreign minister|interior minister|junior minister|lay minister|liturgical minister|minister of justice|minister of state|minister without portfolio|minister-president|ministress|ordinary minister|shadow minister|stickit minister|prime minister|crime minister}}
===== คำเกี่ยวข้อง =====
* {{l|en|ministerial}}
* {{l|en|ministerium}}
* {{l|en|ministrix}}
* {{l|en|ministry}}
===== คำสืบทอด =====
* {{desc|pis|minista}}
* {{desc|ha|ministà|bor=1}}
===== ดูเพิ่ม =====
* {{l|en|cleric}}
* {{l|en|father}}
* {{l|en|parson}}
* {{l|en|pastor}}
* {{l|en|priest}}
* {{l|en|vicar}}
=== รากศัพท์ 2 ===
{{inh+|en|enm|mynystren}}, จาก{{der|en|frm|ministrer}}, จาก{{der|en|fro|menistrer}}, {{m|fro|ministrer}} และ{{der|en|la|ministrō}}, จาก{{m|la|minister}}
==== คำกริยา ====
{{en-verb}}
# {{lb|en|อกรรมกริยา|ใช้ร่วมกับ "to"}} [[ดูแล]] (ความต้องการ); [[เอาใจใส่]]; [[รับใช้]]; ให้[[ความช่วยเหลือ]]; ให้[[บริการ]]
# {{lb|en|อกรรมกริยา}} ทำ[[หน้าที่]]เป็น[[นักบวช]]หรือเป็น[[ผู้ประกอบพิธี]]ใน[[การนมัสการ]]ของคริสตจักร
# {{lb|en|สกรรมกริยา|เลิกใช้}} [[จัดหา]]ให้, [[มอบ]]ให้, [[จ่าย]]ให้
#* {{RQ:Shakespeare Tempest|II|i|7|2|text=I do vvell beleeue your Highneſſe, and did it to '''miniſter''' occaſion to theſe Gentlemen, {{…}}|footer={{qualifier|เพื่อให้โอกาสแก่สุภาพบุรุษเหล่านี้}}|translation=ข้าพระองค์เชื่อฝ่าพระบาทอย่างยิ่ง และที่ทำไปก็เพื่อ'''มอบ'''โอกาสให้กับสุภาพบุรุษเหล่านี้ {{...}}}}
#* {{RQ:KJV|2 Corinthians|9|10|page=1421|column=2|text=({{...}} Now he that '''miniſtreth''' ſeede to the ſower, both '''miniſter''' bread for your foode, and multiply your ſeede ſowen, and encreaſe the fruites of your righteouſneſſe)|translation=({{...}} ฝ่ายพระองค์ผู้ทรง'''จัดหา'''เมล็ดพืชแก่ผู้หว่าน และทรง'''จัดหา'''อาหารแก่ผู้กิน จะทรงประทานเมล็ดพืชแก่ท่านทั้งหลาย และจะทรงให้เมล็ดพืชของท่านจำเริญยิ่งขึ้น และจะทรงเพิ่มพูนผลแห่งความชอบธรรมของท่าน)}}
#* {{RQ:Taylor Eniautos|passage=We '''minister''' to God reason to suspect us.|translation=เรา'''มอบ'''เหตุผลให้พระเจ้าทรงสงสัยในตัวเรา}}
===== ลูกคำ =====
{{col|en|unministered
}}
=== อ่านเพิ่ม ===
* {{R:Webster 1913}}
* {{R:Century}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eiimnrst|Tenriism|Terminis|interims|ministre|smirnite}}
{{c|en|อาชีพ|Religious occupations|บุคคล|ศาสนา|ศาสนาคริสต์}}
k271xke5fe4wvleh9y5kslv5b94m1x9
5759087
5759082
2026-08-25T05:30:46Z
Octahedron80
267
5759087
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== การออกเสียง ===
* {{IPA|en|/ˈmɪn.əˌstɚ/|/ˈmɪn.ɪ-/|a=US}}
* {{IPA|en|/ˈmɪn.ɪs.tə/|a=UK}}
* {{IPA|en|/ˈmɪn.ə.stɚ/|a=IE}}
** {{IPA|en|/ˈmɪn.ə.stɐ/|/ˈmɪn.ə.stɚ/|a=Dublin}}
* {{audio|en|en-us-minister.ogg|a=US}}
* {{audio|en|en-uk-minister.ogg|a=UK}}
=== รากศัพท์ 1 ===
{{root|en|ine-pro|*mey- (small)}}
จาก{{inh|en|enm|ministre}}, จาก{{der|en|fro|ministre}}, จาก{{der|en|la|minister|t=ผู้ติดตาม, คนรับใช้, ผู้ช่วยเหลือ, ผู้ช่วยนักบวช หรือเจ้าหน้าที่ระดับล่างอื่น ๆ}}, จาก{{m|la|minor|t=น้อยกว่า}} + {{m|la|-ter}}; ดูเพิ่มที่ [[minor]]; {{doublet|en|Minorite}}
==== คำนาม ====
{{wp|en:}}
{{en-noun}}
# {{senseid|en|cleric}} {{lb|en|นิกายโปรเตสแตนต์}} [[บุคคล]]ที่ได้รับ[[การฝึกฝน]]ให้[[เทศนา]] ประกอบ[[พิธีกรรม]]ทางศาสนา และให้[[การดูแล]]ทาง[[จิตวิญญาณ]]ใน[[คริสตจักร]][[โปรเตสแตนต์]] ([[ศาสนาจารย์]], [[ศิษยาภิบาล]])
#: {{hyper|en|cleric}}
#: {{ux|en|The '''minister''' said a prayer on behalf of the entire [[congregation]].|translation='''ศาสนาจารย์'''กล่าวคำอธิษฐานในนามของคริสตจักรทั้งหมด}}
# {{lb|en|นิกายโรมันคาทอลิก}} บุคคล (ไม่ว่าจะเป็น[[ฆราวาส]]หรือนักบวชที่ได้รับ[[การบวช]]) ที่ได้รับ[[มอบหมาย]]ให้ประกอบการใด ๆ ในนามของ[[คริสตจักรคาทอลิก]]
# {{senseid|en|government}} {{lb|en|รัฐบาล}} [[นักการเมือง]]ผู้เป็นหัวหน้า[[กระทรวง]] ([[รัฐมนตรี]])
#: {{syn|en|อรรถาภิธาน:government minister}}
#: {{hyper|en|provost<qq:หัวหน้าคณะรัฐมนตรีในพื้นที่ยุโรปกลางและสแกนดิเนเวีย>}}
#: {{ux|en|He was newly appointed to be '''Minister''' of the Interior.|translation=เขาเพิ่งได้รับการแต่งตั้งให้เป็น'''รัฐมนตรี'''ว่าการกระทรวงมหาดไทย}}
#* {{quote-book|en|year=1661 (first printed)|author=w:Francis Bacon|title=A Letter of Advice to the Duke of Buckingham|text='''Ministers''' to kings, whose eyes, ears, and hands they are, must be answerable to God and man.|translation=เหล่า'''รัฐมนตรี'''ของกษัตริย์ ผู้ซึ่งเป็นหูเป็นตาและเป็นมือเป็นเท้าของพระองค์ จะต้องรับผิดชอบต่อพระเจ้าและมนุษย์}}
# {{senseid|en|diplomacy}} ในทาง[[การทูต]], ตำแหน่ง[[นักการทูต]]ที่อยู่รองจาก[[เอกอัครราชทูต]] ([[อัครราชทูต]])
# {{senseid|en|servant}} [[คนรับใช้]]; [[ผู้ใต้บังคับบัญชา]]; [[เจ้าหน้าที่]]หรือ[[ผู้ช่วย]]ระดับ[[ล่าง]]; ด้วยเหตุนี้จึงหมายถึง [[ตัวแทน]], [[เครื่องมือ]]
#* {{RQ:Shakespeare Winter's Tale|act=III|scene=ii|page=287|column=2|passage={{nb...}}, I choſe / ''Camillo'' for the '''miniſter''', to poyſon / My friend ''Polixenes:'' {{...}}|translation={{nb...}}, ข้าเลือก / คามิลโลเป็น'''ตัวแทน''' เพื่อวางยาพิษ / โพลิกซีนีส สหายของข้า: {{...}}}}
#* {{RQ:KJV|Exodus|24|13|page=162|column=1|text=And Moſes roſe vp, and his '''miniſter''' Ioſhua: and Moſes went vp into the mount of God.|translation=โมเสสจึงลุกขึ้นพร้อมกับโยชูวา'''ผู้ช่วย'''ของท่าน แล้วโมเสสก็ขึ้นไปบนภูเขาของพระเจ้า}}
===== หมายเหตุการใช้ =====
* ไม่ควรสับสนกับ {{m|en|minster}}
===== ลูกคำ =====
{{col|en|ex-minister|ministerer|ministerless|ministerlike|ministerly|ministership|ministration|subminister|superminister|underminister|unministerlike
|deputy first minister|resident minister|e-minister|Eucharistic minister|cabinet minister|catechetical minister|chief minister|ecclesial minister|extraordinary minister|first minister|foreign minister|interior minister|junior minister|lay minister|liturgical minister|minister of justice|minister of state|minister without portfolio|minister-president|ministress|ordinary minister|shadow minister|stickit minister|prime minister|crime minister}}
===== คำเกี่ยวข้อง =====
* {{l|en|ministerial}}
* {{l|en|ministerium}}
* {{l|en|ministrix}}
* {{l|en|ministry}}
===== คำสืบทอด =====
* {{desc|pis|minista}}
* {{desc|ha|ministà|bor=1}}
===== ดูเพิ่ม =====
* {{l|en|cleric}}
* {{l|en|father}}
* {{l|en|parson}}
* {{l|en|pastor}}
* {{l|en|priest}}
* {{l|en|vicar}}
=== รากศัพท์ 2 ===
{{inh+|en|enm|mynystren}}, จาก{{der|en|frm|ministrer}}, จาก{{der|en|fro|menistrer}}, {{m|fro|ministrer}} และ{{der|en|la|ministrō}}, จาก{{m|la|minister}}
==== คำกริยา ====
{{en-verb}}
# {{lb|en|อกรรมกริยา|ใช้ร่วมกับ "to"}} [[ดูแล]] (ความต้องการ); [[เอาใจใส่]]; [[รับใช้]]; ให้[[ความช่วยเหลือ]]; ให้[[บริการ]]
# {{lb|en|อกรรมกริยา}} ทำ[[หน้าที่]]เป็น[[นักบวช]]หรือเป็น[[ผู้ประกอบพิธี]]ใน[[การนมัสการ]]ของคริสตจักร
# {{lb|en|สกรรมกริยา|เลิกใช้}} [[จัดหา]]ให้, [[มอบ]]ให้, [[จ่าย]]ให้
#* {{RQ:Shakespeare Tempest|II|i|7|2|text=I do vvell beleeue your Highneſſe, and did it to '''miniſter''' occaſion to theſe Gentlemen, {{…}}|footer={{qualifier|เพื่อให้โอกาสแก่สุภาพบุรุษเหล่านี้}}|translation=ข้าพระองค์เชื่อฝ่าพระบาทอย่างยิ่ง และที่ทำไปก็เพื่อ'''มอบ'''โอกาสให้กับสุภาพบุรุษเหล่านี้ {{...}}}}
#* {{RQ:KJV|2 Corinthians|9|10|page=1421|column=2|text=({{...}} Now he that '''miniſtreth''' ſeede to the ſower, both '''miniſter''' bread for your foode, and multiply your ſeede ſowen, and encreaſe the fruites of your righteouſneſſe)|translation=({{...}} ฝ่ายพระองค์ผู้ทรง'''จัดหา'''เมล็ดพืชแก่ผู้หว่าน และทรง'''จัดหา'''อาหารแก่ผู้กิน จะทรงประทานเมล็ดพืชแก่ท่านทั้งหลาย และจะทรงให้เมล็ดพืชของท่านจำเริญยิ่งขึ้น และจะทรงเพิ่มพูนผลแห่งความชอบธรรมของท่าน)}}
#* {{RQ:Taylor Eniautos|passage=We '''minister''' to God reason to suspect us.|translation=เรา'''มอบ'''เหตุผลให้พระเจ้าทรงสงสัยในตัวเรา}}
===== ลูกคำ =====
{{col|en|unministered
}}
=== อ่านเพิ่ม ===
* {{R:Webster 1913}}
* {{R:Century}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eiimnrst|Tenriism|Terminis|interims|ministre|smirnite}}
{{c|en|อาชีพ|Religious occupations|บุคคล|ศาสนา|ศาสนาคริสต์}}
== ภาษาอังกฤษกลาง ==
=== รากศัพท์ 1 ===
==== คำนาม ====
{{head|enm|คำนาม|altform=1}}
# {{alternative form of|enm|ministre}}
=== รากศัพท์ 2 ===
==== คำกริยา ====
{{head|enm|คำกริยา|altform=1}}
# {{alternative form of|enm|mynystren}}
qb1az19bd1dq55nf70tny79vvd8br66
5759089
5759087
2026-08-25T05:34:59Z
Octahedron80
267
/* คำนาม */
5759089
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== การออกเสียง ===
* {{IPA|en|/ˈmɪn.əˌstɚ/|/ˈmɪn.ɪ-/|a=US}}
* {{IPA|en|/ˈmɪn.ɪs.tə/|a=UK}}
* {{IPA|en|/ˈmɪn.ə.stɚ/|a=IE}}
** {{IPA|en|/ˈmɪn.ə.stɐ/|/ˈmɪn.ə.stɚ/|a=Dublin}}
* {{audio|en|en-us-minister.ogg|a=US}}
* {{audio|en|en-uk-minister.ogg|a=UK}}
=== รากศัพท์ 1 ===
{{root|en|ine-pro|*mey- (small)}}
จาก{{inh|en|enm|ministre}}, จาก{{der|en|fro|ministre}}, จาก{{der|en|la|minister|t=ผู้ติดตาม, คนรับใช้, ผู้ช่วยเหลือ, ผู้ช่วยนักบวช หรือเจ้าหน้าที่ระดับล่างอื่น ๆ}}, จาก{{m|la|minor|t=น้อยกว่า}} + {{m|la|-ter}}; ดูเพิ่มที่ [[minor]]; {{doublet|en|Minorite}}
==== คำนาม ====
{{wp|en:}}
{{en-noun}}
# {{senseid|en|cleric}} {{lb|en|นิกายโปรเตสแตนต์}} [[บุคคล]]ที่ได้รับ[[การฝึกฝน]]ให้[[เทศนา]] ประกอบ[[พิธีกรรม]]ทางศาสนา และให้[[การดูแล]]ทาง[[จิตวิญญาณ]]ใน[[คริสตจักร]][[โปรเตสแตนต์]] ([[ศาสนาจารย์]], [[ศิษยาภิบาล]])
#: {{hyper|en|cleric}}
#: {{ux|en|The '''minister''' said a prayer on behalf of the entire [[congregation]].|translation='''ศาสนาจารย์'''กล่าวคำอธิษฐานในนามของคริสตจักรทั้งหมด}}
# {{lb|en|นิกายโรมันคาทอลิก}} บุคคล (ไม่ว่าจะเป็น[[ฆราวาส]]หรือ[[นักบวช]]) ที่ได้รับ[[มอบหมาย]]ให้ประกอบการใด ๆ ในนามของ[[คริสตจักรคาทอลิก]]
# {{senseid|en|government}} {{lb|en|รัฐบาล}} [[นักการเมือง]]ผู้เป็นหัวหน้า[[กระทรวง]] ([[รัฐมนตรี]])
#: {{syn|en|อรรถาภิธาน:government minister}}
#: {{hyper|en|provost<qq:หัวหน้าคณะรัฐมนตรีในพื้นที่ยุโรปกลางและสแกนดิเนเวีย>}}
#: {{ux|en|He was newly appointed to be '''Minister''' of the Interior.|translation=เขาเพิ่งได้รับการแต่งตั้งให้เป็น'''รัฐมนตรี'''ว่าการกระทรวงมหาดไทย}}
#* {{quote-book|en|year=1661 (first printed)|author=w:Francis Bacon|title=A Letter of Advice to the Duke of Buckingham|text='''Ministers''' to kings, whose eyes, ears, and hands they are, must be answerable to God and man.|translation=เหล่า'''รัฐมนตรี'''ของกษัตริย์ ผู้ซึ่งเป็นหูเป็นตาและเป็นมือเป็นเท้าของพระองค์ จะต้องรับผิดชอบต่อพระเจ้าและมนุษย์}}
# {{senseid|en|diplomacy}} ในทาง[[การทูต]], ตำแหน่ง[[นักการทูต]]ที่อยู่รองจาก[[เอกอัครราชทูต]] ([[อัครราชทูต]])
# {{senseid|en|servant}} [[คนรับใช้]]; [[ผู้ใต้บังคับบัญชา]]; [[เจ้าหน้าที่]]หรือ[[ผู้ช่วย]]ระดับ[[ล่าง]]; ด้วยเหตุนี้จึงหมายถึง [[ตัวแทน]], [[เครื่องมือ]]
#* {{RQ:Shakespeare Winter's Tale|act=III|scene=ii|page=287|column=2|passage={{nb...}}, I choſe / ''Camillo'' for the '''miniſter''', to poyſon / My friend ''Polixenes:'' {{...}}|translation={{nb...}}, ข้าเลือก / คามิลโลเป็น'''ตัวแทน''' เพื่อวางยาพิษ / โพลิกซีนีส สหายของข้า: {{...}}}}
#* {{RQ:KJV|Exodus|24|13|page=162|column=1|text=And Moſes roſe vp, and his '''miniſter''' Ioſhua: and Moſes went vp into the mount of God.|translation=โมเสสจึงลุกขึ้นพร้อมกับโยชูวา'''ผู้ช่วย'''ของท่าน แล้วโมเสสก็ขึ้นไปบนภูเขาของพระเจ้า}}
===== หมายเหตุการใช้ =====
* ไม่ควรสับสนกับ {{m|en|minster}}
===== ลูกคำ =====
{{col|en|ex-minister|ministerer|ministerless|ministerlike|ministerly|ministership|ministration|subminister|superminister|underminister|unministerlike
|deputy first minister|resident minister|e-minister|Eucharistic minister|cabinet minister|catechetical minister|chief minister|ecclesial minister|extraordinary minister|first minister|foreign minister|interior minister|junior minister|lay minister|liturgical minister|minister of justice|minister of state|minister without portfolio|minister-president|ministress|ordinary minister|shadow minister|stickit minister|prime minister|crime minister}}
===== คำเกี่ยวข้อง =====
* {{l|en|ministerial}}
* {{l|en|ministerium}}
* {{l|en|ministrix}}
* {{l|en|ministry}}
===== คำสืบทอด =====
* {{desc|pis|minista}}
* {{desc|ha|ministà|bor=1}}
===== ดูเพิ่ม =====
* {{l|en|cleric}}
* {{l|en|father}}
* {{l|en|parson}}
* {{l|en|pastor}}
* {{l|en|priest}}
* {{l|en|vicar}}
=== รากศัพท์ 2 ===
{{inh+|en|enm|mynystren}}, จาก{{der|en|frm|ministrer}}, จาก{{der|en|fro|menistrer}}, {{m|fro|ministrer}} และ{{der|en|la|ministrō}}, จาก{{m|la|minister}}
==== คำกริยา ====
{{en-verb}}
# {{lb|en|อกรรมกริยา|ใช้ร่วมกับ "to"}} [[ดูแล]] (ความต้องการ); [[เอาใจใส่]]; [[รับใช้]]; ให้[[ความช่วยเหลือ]]; ให้[[บริการ]]
# {{lb|en|อกรรมกริยา}} ทำ[[หน้าที่]]เป็น[[นักบวช]]หรือเป็น[[ผู้ประกอบพิธี]]ใน[[การนมัสการ]]ของคริสตจักร
# {{lb|en|สกรรมกริยา|เลิกใช้}} [[จัดหา]]ให้, [[มอบ]]ให้, [[จ่าย]]ให้
#* {{RQ:Shakespeare Tempest|II|i|7|2|text=I do vvell beleeue your Highneſſe, and did it to '''miniſter''' occaſion to theſe Gentlemen, {{…}}|footer={{qualifier|เพื่อให้โอกาสแก่สุภาพบุรุษเหล่านี้}}|translation=ข้าพระองค์เชื่อฝ่าพระบาทอย่างยิ่ง และที่ทำไปก็เพื่อ'''มอบ'''โอกาสให้กับสุภาพบุรุษเหล่านี้ {{...}}}}
#* {{RQ:KJV|2 Corinthians|9|10|page=1421|column=2|text=({{...}} Now he that '''miniſtreth''' ſeede to the ſower, both '''miniſter''' bread for your foode, and multiply your ſeede ſowen, and encreaſe the fruites of your righteouſneſſe)|translation=({{...}} ฝ่ายพระองค์ผู้ทรง'''จัดหา'''เมล็ดพืชแก่ผู้หว่าน และทรง'''จัดหา'''อาหารแก่ผู้กิน จะทรงประทานเมล็ดพืชแก่ท่านทั้งหลาย และจะทรงให้เมล็ดพืชของท่านจำเริญยิ่งขึ้น และจะทรงเพิ่มพูนผลแห่งความชอบธรรมของท่าน)}}
#* {{RQ:Taylor Eniautos|passage=We '''minister''' to God reason to suspect us.|translation=เรา'''มอบ'''เหตุผลให้พระเจ้าทรงสงสัยในตัวเรา}}
===== ลูกคำ =====
{{col|en|unministered
}}
=== อ่านเพิ่ม ===
* {{R:Webster 1913}}
* {{R:Century}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eiimnrst|Tenriism|Terminis|interims|ministre|smirnite}}
{{c|en|อาชีพ|Religious occupations|บุคคล|ศาสนา|ศาสนาคริสต์}}
== ภาษาอังกฤษกลาง ==
=== รากศัพท์ 1 ===
==== คำนาม ====
{{head|enm|คำนาม|altform=1}}
# {{alternative form of|enm|ministre}}
=== รากศัพท์ 2 ===
==== คำกริยา ====
{{head|enm|คำกริยา|altform=1}}
# {{alternative form of|enm|mynystren}}
kllg6q726oajhugup2oaop53glv8tcx
5759090
5759089
2026-08-25T05:35:26Z
Octahedron80
267
/* คำนาม */
5759090
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== การออกเสียง ===
* {{IPA|en|/ˈmɪn.əˌstɚ/|/ˈmɪn.ɪ-/|a=US}}
* {{IPA|en|/ˈmɪn.ɪs.tə/|a=UK}}
* {{IPA|en|/ˈmɪn.ə.stɚ/|a=IE}}
** {{IPA|en|/ˈmɪn.ə.stɐ/|/ˈmɪn.ə.stɚ/|a=Dublin}}
* {{audio|en|en-us-minister.ogg|a=US}}
* {{audio|en|en-uk-minister.ogg|a=UK}}
=== รากศัพท์ 1 ===
{{root|en|ine-pro|*mey- (small)}}
จาก{{inh|en|enm|ministre}}, จาก{{der|en|fro|ministre}}, จาก{{der|en|la|minister|t=ผู้ติดตาม, คนรับใช้, ผู้ช่วยเหลือ, ผู้ช่วยนักบวช หรือเจ้าหน้าที่ระดับล่างอื่น ๆ}}, จาก{{m|la|minor|t=น้อยกว่า}} + {{m|la|-ter}}; ดูเพิ่มที่ [[minor]]; {{doublet|en|Minorite}}
==== คำนาม ====
{{wp|en:}}
{{en-noun}}
# {{senseid|en|cleric}} {{lb|en|นิกายโปรเตสแตนต์}} [[บุคคล]]ที่ได้รับ[[การฝึกฝน]]ให้[[เทศนา]] ประกอบ[[พิธีกรรม]]ทางศาสนา และให้[[การดูแล]]ทาง[[จิตวิญญาณ]]ใน[[คริสตจักร]][[โปรเตสแตนต์]] ([[ศาสนาจารย์]], [[ศิษยาภิบาล]])
#: {{hyper|en|cleric}}
#: {{ux|en|The '''minister''' said a prayer on behalf of the entire [[congregation]].|translation='''ศาสนาจารย์'''กล่าวคำอธิษฐานในนามของคริสตจักรทั้งหมด}}
# {{lb|en|นิกายโรมันคาทอลิก}} บุคคล (ไม่ว่าจะเป็น[[ฆราวาส]]หรือ[[นักบวช]]) ที่ได้รับ[[มอบหมาย]]ให้ประกอบการใด ๆ ในนามของ[[คริสตจักร]][[คาทอลิก]]
# {{senseid|en|government}} {{lb|en|รัฐบาล}} [[นักการเมือง]]ผู้เป็นหัวหน้า[[กระทรวง]] ([[รัฐมนตรี]])
#: {{syn|en|อรรถาภิธาน:government minister}}
#: {{hyper|en|provost<qq:หัวหน้าคณะรัฐมนตรีในพื้นที่ยุโรปกลางและสแกนดิเนเวีย>}}
#: {{ux|en|He was newly appointed to be '''Minister''' of the Interior.|translation=เขาเพิ่งได้รับการแต่งตั้งให้เป็น'''รัฐมนตรี'''ว่าการกระทรวงมหาดไทย}}
#* {{quote-book|en|year=1661 (first printed)|author=w:Francis Bacon|title=A Letter of Advice to the Duke of Buckingham|text='''Ministers''' to kings, whose eyes, ears, and hands they are, must be answerable to God and man.|translation=เหล่า'''รัฐมนตรี'''ของกษัตริย์ ผู้ซึ่งเป็นหูเป็นตาและเป็นมือเป็นเท้าของพระองค์ จะต้องรับผิดชอบต่อพระเจ้าและมนุษย์}}
# {{senseid|en|diplomacy}} ในทาง[[การทูต]], ตำแหน่ง[[นักการทูต]]ที่อยู่รองจาก[[เอกอัครราชทูต]] ([[อัครราชทูต]])
# {{senseid|en|servant}} [[คนรับใช้]]; [[ผู้ใต้บังคับบัญชา]]; [[เจ้าหน้าที่]]หรือ[[ผู้ช่วย]]ระดับ[[ล่าง]]; ด้วยเหตุนี้จึงหมายถึง [[ตัวแทน]], [[เครื่องมือ]]
#* {{RQ:Shakespeare Winter's Tale|act=III|scene=ii|page=287|column=2|passage={{nb...}}, I choſe / ''Camillo'' for the '''miniſter''', to poyſon / My friend ''Polixenes:'' {{...}}|translation={{nb...}}, ข้าเลือก / คามิลโลเป็น'''ตัวแทน''' เพื่อวางยาพิษ / โพลิกซีนีส สหายของข้า: {{...}}}}
#* {{RQ:KJV|Exodus|24|13|page=162|column=1|text=And Moſes roſe vp, and his '''miniſter''' Ioſhua: and Moſes went vp into the mount of God.|translation=โมเสสจึงลุกขึ้นพร้อมกับโยชูวา'''ผู้ช่วย'''ของท่าน แล้วโมเสสก็ขึ้นไปบนภูเขาของพระเจ้า}}
===== หมายเหตุการใช้ =====
* ไม่ควรสับสนกับ {{m|en|minster}}
===== ลูกคำ =====
{{col|en|ex-minister|ministerer|ministerless|ministerlike|ministerly|ministership|ministration|subminister|superminister|underminister|unministerlike
|deputy first minister|resident minister|e-minister|Eucharistic minister|cabinet minister|catechetical minister|chief minister|ecclesial minister|extraordinary minister|first minister|foreign minister|interior minister|junior minister|lay minister|liturgical minister|minister of justice|minister of state|minister without portfolio|minister-president|ministress|ordinary minister|shadow minister|stickit minister|prime minister|crime minister}}
===== คำเกี่ยวข้อง =====
* {{l|en|ministerial}}
* {{l|en|ministerium}}
* {{l|en|ministrix}}
* {{l|en|ministry}}
===== คำสืบทอด =====
* {{desc|pis|minista}}
* {{desc|ha|ministà|bor=1}}
===== ดูเพิ่ม =====
* {{l|en|cleric}}
* {{l|en|father}}
* {{l|en|parson}}
* {{l|en|pastor}}
* {{l|en|priest}}
* {{l|en|vicar}}
=== รากศัพท์ 2 ===
{{inh+|en|enm|mynystren}}, จาก{{der|en|frm|ministrer}}, จาก{{der|en|fro|menistrer}}, {{m|fro|ministrer}} และ{{der|en|la|ministrō}}, จาก{{m|la|minister}}
==== คำกริยา ====
{{en-verb}}
# {{lb|en|อกรรมกริยา|ใช้ร่วมกับ "to"}} [[ดูแล]] (ความต้องการ); [[เอาใจใส่]]; [[รับใช้]]; ให้[[ความช่วยเหลือ]]; ให้[[บริการ]]
# {{lb|en|อกรรมกริยา}} ทำ[[หน้าที่]]เป็น[[นักบวช]]หรือเป็น[[ผู้ประกอบพิธี]]ใน[[การนมัสการ]]ของคริสตจักร
# {{lb|en|สกรรมกริยา|เลิกใช้}} [[จัดหา]]ให้, [[มอบ]]ให้, [[จ่าย]]ให้
#* {{RQ:Shakespeare Tempest|II|i|7|2|text=I do vvell beleeue your Highneſſe, and did it to '''miniſter''' occaſion to theſe Gentlemen, {{…}}|footer={{qualifier|เพื่อให้โอกาสแก่สุภาพบุรุษเหล่านี้}}|translation=ข้าพระองค์เชื่อฝ่าพระบาทอย่างยิ่ง และที่ทำไปก็เพื่อ'''มอบ'''โอกาสให้กับสุภาพบุรุษเหล่านี้ {{...}}}}
#* {{RQ:KJV|2 Corinthians|9|10|page=1421|column=2|text=({{...}} Now he that '''miniſtreth''' ſeede to the ſower, both '''miniſter''' bread for your foode, and multiply your ſeede ſowen, and encreaſe the fruites of your righteouſneſſe)|translation=({{...}} ฝ่ายพระองค์ผู้ทรง'''จัดหา'''เมล็ดพืชแก่ผู้หว่าน และทรง'''จัดหา'''อาหารแก่ผู้กิน จะทรงประทานเมล็ดพืชแก่ท่านทั้งหลาย และจะทรงให้เมล็ดพืชของท่านจำเริญยิ่งขึ้น และจะทรงเพิ่มพูนผลแห่งความชอบธรรมของท่าน)}}
#* {{RQ:Taylor Eniautos|passage=We '''minister''' to God reason to suspect us.|translation=เรา'''มอบ'''เหตุผลให้พระเจ้าทรงสงสัยในตัวเรา}}
===== ลูกคำ =====
{{col|en|unministered
}}
=== อ่านเพิ่ม ===
* {{R:Webster 1913}}
* {{R:Century}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eiimnrst|Tenriism|Terminis|interims|ministre|smirnite}}
{{c|en|อาชีพ|Religious occupations|บุคคล|ศาสนา|ศาสนาคริสต์}}
== ภาษาอังกฤษกลาง ==
=== รากศัพท์ 1 ===
==== คำนาม ====
{{head|enm|คำนาม|altform=1}}
# {{alternative form of|enm|ministre}}
=== รากศัพท์ 2 ===
==== คำกริยา ====
{{head|enm|คำกริยา|altform=1}}
# {{alternative form of|enm|mynystren}}
dq065awoib51kq6895k325lknxppg56
reserve
0
257512
5758986
2001425
2026-08-25T02:42:14Z
Octahedron80
267
/* ภาษาอังกฤษ */ เก็บกวาด
5758986
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
{{root|en|ine-pro|*ser- (ปกป้อง)}}
จาก{{der|en|fro|reserver}}, จาก{{der|en|la|reservō|t=สงวน, เก็บไว้}}.
=== การออกเสียง ===
* {{IPA|en|/ɹɪˈzɝv/|a=GA}}
** {{audio|en|LL-Q1860 (eng)-Knabrupt-reserve.wav|a=GA}}
* {{IPA|en|/ɹɪˈzɜːv/|a=RP}}
* {{rhymes|en|ɜː(ɹ)v|s=2}}
* {{hyph|en|re|serve}}
=== คำนาม ===
{{en-noun|~}}
# [[ข้อจำกัด]]
## [[การกระทำ]]ที่เป็น[[การสงวน]] หรือเก็บไว้; [[การจอง]]; [[ข้อยกเว้น]]
##: {{ux|en|The book is '''on reserve'''.|translation=หนังสือเล่มนี้ถูก'''สงวนไว้''' (เช่น สำหรับอ่านในห้องสมุดเท่านั้น)}}
##: {{ux|en|I accept your view with one '''reserve'''.|translation=ฉันยอมรับมุมมองของคุณโดยมี'''ข้อแม้'''หนึ่งข้อ}}
## [[การจำกัด]][[เสรีภาพ]]ในการใช้[[คำพูด]]หรือการกระทำ; [[การยับยั้งชั่งใจ]]; [[ความระมัดระวัง]]ใน[[พฤติกรรม]]ส่วนตัว
# สิ่งที่ถูกสงวนหรือเก็บไว้ เช่น เพื่อใช้ในอนาคต
## [[ทรัพยากร]][[ธรรมชาติ]]ที่ทราบว่ามีอยู่แต่ยังไม่ได้นำมาใช้ประโยชน์
##: {{ux|en|New oil '''reserves''' are continuously being discovered, but not as fast as the existing ones are running out.|translation=มีการค้นพบ'''แหล่งสำรอง'''น้ำมันใหม่ ๆ อย่างต่อเนื่อง แต่ก็ไม่เร็วเท่ากับแหล่งที่มีอยู่ที่กำลังจะหมดไป}}
##* {{quote-journal|en|date=2014-04-25|author=[http://www.theguardian.com/profile/martin-lukacs Martin Lukacs]
|volume=190|issue=20|page=13|magazine=w:The Guardian Weekly
|title=[http://www.theguardian.com/environment/2014/apr/16/canada-becoming-launch-pad-of-a-global-tar-sands-and-oil-shale-frenzy Canada becoming launch-pad of a global tar sands and oil shale frenzy]
|passage=If Alberta’s '''reserves''' are a carbon bomb, this global expansion of tar sands and oil shale exploitation amounts to an escalating emissions arms race, the unlocking of a subterranean cache of weapons of mass ecological destruction.|translation=หาก'''แหล่งสำรอง'''ของอัลเบอร์ตาเปรียบเสมือนระเบิดคาร์บอน การขยายตัวของการแสวงหาประโยชน์จากทรายน้ำมันและหินน้ำมันทั่วโลกในครั้งนี้ ก็เทียบได้กับการแข่งขันสะสมอาวุธในการปล่อยมลพิษที่ทวีความรุนแรงขึ้น ซึ่งเป็นการปลดล็อกคลังเก็บอาวุธทำลายล้างระบบนิเวศน์ทางธรรมชาติขนานใหญ่ที่ซ่อนอยู่ใต้ดิน}}
## [[ผืนดิน]]ที่ถูกสงวน หรือ[[จัดสรร]]ไว้ เพื่อวัตถุประสงค์เฉพาะ (เขตสงวน)
##: {{ux|en|the Connecticut '''Reserve''' in Ohio was originally set apart for the school fund of Connecticut.|translation='''เขตสงวน'''คอนเนตทิคัตในรัฐโอไฮโอเดิมทีถูกจัดสรรไว้สำหรับกองทุนโรงเรียนของรัฐคอนเนตทิคัต}}
##: {{ux|en|the Clergy '''Reserves''' in Canada are for the support of the clergy.|translation='''เขตสงวน'''สำหรับนักบวชในแคนาดามีไว้เพื่อสนับสนุนนักบวช}}
## {{senseid|en|Q57237926}} {{lb|en|แคนาดา}} [[ผืนดิน]]ที่จัดสรรไว้สำหรับให้[[กลุ่ม]][[ชนพื้นเมือง]]ใช้: เขตสงวน[[อินเดียนแดง]]
##: {{alti|en|res<id:Q57237926>|rez<id:Q57237926><qq:clippings>}}
##: {{syn|en|reservation<id:Q57237926><qq:US>}}
## {{lb|en|การทหาร}} [[กองทหาร]]ที่ถูกเก็บไว้[[แนวหลัง]]ของ[[กองทัพ]]ที่เตรียมพร้อมสำหรับรบ สงวนไว้เพื่อ[[สนับสนุน]]แนวอื่น ๆ ตามที่สถานการณ์ต้องการ; กองกำลังหรือกองทหารที่เตรียมไว้สำหรับยาม[[ฉุกเฉิน]] ([[กองหนุน]])
##: {{coi|en|no '''reserves''' ''[the military force is throwing everything it has at the front]''|translation=ไม่มี'''กองหนุน''' ''[กองกำลังทหารทุ่มกำลังทุกอย่างที่มีไปที่แนวหน้า]''}}
## {{lb|en|การเงิน|การประกันภัย}} [[เงินทุน]]ที่เก็บไว้ในมือเพื่อรองรับความต้องการทางการเงินทั้งที่[[วางแผน]]ไว้หรือไม่ได้วางแผนไว้ ([[เงินสำรอง]])
##* {{quote-journal|en|url=https://time.com/7339685/person-of-the-year-2025-ai-architects/|work=[[w:Time (magazine)|Time]]|date=11 December 2025|author=Charlie Campbell, Andrew R. Chow and Billy Perrigo|title=The Architects of AI Are TIME’s 2025 Person of the Year|passage=The tone was set at Trump’s Inauguration. Tech moguls streamed into Washington; some sat behind the President during his Inaugural Address, a signal of the power they would wield. Over the next 11 months, they would use their enormous cash '''reserves''', cultural power, and momentum to push their products into homes across the world.|translation=บรรยากาศถูกกำหนดไว้ตั้งแต่งานพิธีสาบานตนเข้ารับตำแหน่งของทรัมป์ บรรดาผู้มีอิทธิพลในแวดวงเทคโนโลยีหลั่งไหลเข้าสู่วอชิงตัน บางคนนั่งอยู่ด้านหลังประธานาธิบดีระหว่างที่เขากล่าวสุนทรพจน์รับตำแหน่ง ซึ่งเป็นสัญญาณบอกถึงอำนาจที่พวกเขาจะกุมไว้ ในช่วง 11 เดือนข้างหน้า พวกเขาจะใช้'''เงินสำรอง'''ที่มีอยู่อย่างมหาศาล พลังทางวัฒนธรรม และแรงผลักดันเพื่อผลักดันผลิตภัณฑ์ของตนเข้าสู่บ้านเรือนทั่วโลก}}
## [[ราคาขั้นต่ำ]]ใน[[การประมูล]]
##: {{coi|en|no '''reserve''' ''[the lot(s) will be sold no matter how low the bids are]''|translation=ไม่มี'''ราคาขั้นต่ำ''' ''[สินค้าจะถูกขายไม่ว่าราคาประมูลจะต่ำเพียงใด]''}}
##: {{coi|en|'''reserve''' not met ''[the lot(s) will not be sold because the highest bid was too low to be acceptable]''|translation=ไม่ถึง'''ราคาขั้นต่ำ''' ''[สินค้าจะไม่ถูกขายเนื่องจากการเสนอราคาสูงสุดต่ำเกินกว่าที่จะยอมรับได้]''}}
## [[ไวน์]]ที่เก็บไว้และ[[บ่ม]]ก่อนที่จะนำมาขาย
## {{lb|en|เครื่องปั้นดินเผา}} การไม่มี[[สี]]หรือ[[การตกแต่ง]]; สภาพที่ถูกปล่อยทิ้งไว้ให้[[เรียบ]] (พื้นที่ว่าง)
##* {{quote-book|en|year=1973|author=Charles Kyrle Wilkinson|publisher=Metropolitan Museum of Art|location=New York, N.Y|title=Nishapur: Pottery of the Early Islamic Period|page=161
|passage=Each is decorated with a simple disk in '''reserve''' and a band in '''reserve''' adorned with white dots.|translation=แต่ละชิ้นได้รับการตกแต่งด้วยแผ่นกลมเรียบ ๆ บน'''พื้นที่ว่าง''' และแถบบน'''พื้นที่ว่าง'''ซึ่งประดับด้วยจุดสีขาว}}
# สิ่งที่เก็บไว้ในตอนแรกเพื่อใช้ใน[[การพักผ่อนหย่อนใจ]]ในภายหลัง
## {{lb|en|กีฬา}} [[สมาชิก]]ใน[[ทีม]]ที่ไม่ได้เข้าร่วมตั้งแต่เริ่ม[[เกม]] แต่สามารถใช้เพื่อเปลี่ยนตัวเพื่อนร่วมทีมที่เหนื่อยหรือบาดเจ็บได้ ([[ตัวสำรอง]])
## {{lb|en|เกมไพ่}} กลุ่มหรือกองไพ่ที่แจกในตอนเริ่ม[[เกมไพ่]]คนเดียวเพื่อใช้ระหว่างเล่น
# ใน[[นิทรรศการ]], [[รางวัล]][[เกียรติยศ]]ที่บ่งบอกว่าผู้รับจะได้รับ[[รางวัล]]ในกรณีที่บุคคลอื่นถูก[[ตัดสิทธิ์]]
# {{lb|en|การพิมพ์ผ้าลายดอก}} [[สารกันสี]]
# [[สารผสม]]ที่ใช้บนวัตถุที่กำลังถูก[[ชุบด้วยไฟฟ้า]]เพื่อ[[กำหนด]]ขอบเขตของการทับถมของ[[สิ่งที่ทับถม]]
==== คำพ้องความ ====
* {{sense|การสำรวมในคำพูดหรือการกระทำ}} {{l|en|self-restraint}}, {{l|en|reticence}}, {{l|en|taciturnity}}
* {{sense|กีฬา: ผู้เล่นสำรอง}} {{l|en|substitute}}
* {{sense|การทหาร: กองกำลังสำรอง}} [[Army Reserve]], {{l|en|Territorial Army}}, [[TA]], [[TAVR]], [[territorials]], [[terriers]], [[reservists]]
* {{sense|ผืนดินสำหรับชนพื้นเมือง}} {{l|en|reservation}}, {{l|en|res}}, {{l|en|rez}}
==== ลูกคำ ====
{{col|en|bioreserve|nonreserve|reserveless|reservism|ressie|underreserve|unreserve|cognitive reserve
|cookie-jar reserve
|dividend equalisation reserve
|Federal Reserve
|fractional reserve banking
|functional reserve
|game reserve
|in reserve
|natural reserve
|nature reserve
|reserve bank|off reserve,off-reserve
|reserve buoyancy
|Reserve Creek|gold reserve
|reserve currency
|reserve grade
|reserve grader
|reserve price
|reserve team
|urban reserve
|wildlife reserve
}}
==== คำเกี่ยวข้อง ====
* {{l|en|reservist}}
==== คำสืบทอด ====
* {{desc|oj|ishkonigan|clq=1}} (รวมถึงคำว่า {{m|en|reservation}} ด้วย)
* {{desc|pdt|Resarw|bor=1}}
=== คำกริยา ===
{{en-verb}}
# {{lb|en|สกรรมกริยา}} [[เก็บไว้]]; [[สงวน]]
#: {{syn|en|hold}}
#: {{ux|en|We '''reserve''' the right to make modifications.|translation=เราขอ'''สงวน'''สิทธิ์ในการเปลี่ยนแปลงแก้ไข}}
#: {{ux|en|I will '''reserve''' judgment until I have actually read his book.|translation=ฉันจะ'''สงวน'''การตัดสินใจไว้จนกว่าฉันจะได้อ่านหนังสือของเขาจริง ๆ}}
#: {{ux|en|I '''reserve''' the right to change my mind.|translation=ฉันขอ'''สงวน'''สิทธิ์ในการเปลี่ยนใจ}}
# {{lb|en|สกรรมกริยา|ทวิกรรมกริยา}}
## [[เก็บ]]ไว้เพื่อใช้ใน[[อนาคต]]หรือเพื่อการใช้งาน[[พิเศษ]]
##: {{syn|en|hold#Verb|save#Verb}}
##: {{ux|en|This cake is '''reserved''' for the guests!|q=สกรรมกริยา|translation=เค้กชิ้นนี้ถูก'''เก็บไว้'''สำหรับแขก!}}
##: {{ux|en|Please '''reserve''' me a parking space if you can.|q=ทวิกรรมกริยา|translation=โปรดช่วย'''จอง'''ที่จอดรถให้ฉันหน่อยถ้าคุณทำได้}}
##* '''c. 1703-1720''', {{w|Jonathan Swift}}, ''A Letter to a Very Young Lady on Her Marriage''
##*: {{ux|en|Conceal your esteem and love in your own breast, and '''reserve''' your kind looks and language for private hours.|ซ่อนความชื่นชมและศรัทธารักไว้ในใจของคุณเอง และ'''สงวน'''สายตาและถ้อยคำอันอ่อนโยนของคุณไว้สำหรับช่วงเวลาส่วนตัว}}
## [[จอง]][[ล่วงหน้า]]; ทำการจองสำหรับ
##: {{syn|en|sign up for|register for|schedule#Verb|enroll in|book#Verb}}
##: {{ux|en|I '''reserved''' a table for us at the best restaurant in town.|q=สกรรมกริยา|translation=ฉัน'''จอง'''โต๊ะให้พวกเราที่ร้านอาหารที่ดีที่สุดในเมืองแล้ว}}
##: {{ux|en|Thanks for '''reserving''' us a room!|q=ทวิกรรมกริยา|translation=ขอบคุณที่'''จอง'''ห้องพักให้พวกเรานะ!}}
# {{lb|en|สกรรมกริยา|เลิกใช้}} [[ยกเว้น]]; ทำให้เป็น[[ข้อยกเว้น]]
==== ลูกคำ ====
{{col|en|overreserve|reservable|reservative|reservee|reservor|underreserve|unreserve}}
=== อ้างอิง ===
* {{pedia}}
* {{R:OneLook}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eeerrsv|Reveres|reveres|reverse|severer|veerers}}
meman13e0uwz8nbuv5mt73jt6sr7tpi
5758987
5758986
2026-08-25T02:42:24Z
Octahedron80
267
/* รากศัพท์ */
5758987
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
{{root|en|ine-pro|*ser- (ปกป้อง)}}
จาก{{der|en|fro|reserver}}, จาก{{der|en|la|reservō|t=สงวน, เก็บไว้}}
=== การออกเสียง ===
* {{IPA|en|/ɹɪˈzɝv/|a=GA}}
** {{audio|en|LL-Q1860 (eng)-Knabrupt-reserve.wav|a=GA}}
* {{IPA|en|/ɹɪˈzɜːv/|a=RP}}
* {{rhymes|en|ɜː(ɹ)v|s=2}}
* {{hyph|en|re|serve}}
=== คำนาม ===
{{en-noun|~}}
# [[ข้อจำกัด]]
## [[การกระทำ]]ที่เป็น[[การสงวน]] หรือเก็บไว้; [[การจอง]]; [[ข้อยกเว้น]]
##: {{ux|en|The book is '''on reserve'''.|translation=หนังสือเล่มนี้ถูก'''สงวนไว้''' (เช่น สำหรับอ่านในห้องสมุดเท่านั้น)}}
##: {{ux|en|I accept your view with one '''reserve'''.|translation=ฉันยอมรับมุมมองของคุณโดยมี'''ข้อแม้'''หนึ่งข้อ}}
## [[การจำกัด]][[เสรีภาพ]]ในการใช้[[คำพูด]]หรือการกระทำ; [[การยับยั้งชั่งใจ]]; [[ความระมัดระวัง]]ใน[[พฤติกรรม]]ส่วนตัว
# สิ่งที่ถูกสงวนหรือเก็บไว้ เช่น เพื่อใช้ในอนาคต
## [[ทรัพยากร]][[ธรรมชาติ]]ที่ทราบว่ามีอยู่แต่ยังไม่ได้นำมาใช้ประโยชน์
##: {{ux|en|New oil '''reserves''' are continuously being discovered, but not as fast as the existing ones are running out.|translation=มีการค้นพบ'''แหล่งสำรอง'''น้ำมันใหม่ ๆ อย่างต่อเนื่อง แต่ก็ไม่เร็วเท่ากับแหล่งที่มีอยู่ที่กำลังจะหมดไป}}
##* {{quote-journal|en|date=2014-04-25|author=[http://www.theguardian.com/profile/martin-lukacs Martin Lukacs]
|volume=190|issue=20|page=13|magazine=w:The Guardian Weekly
|title=[http://www.theguardian.com/environment/2014/apr/16/canada-becoming-launch-pad-of-a-global-tar-sands-and-oil-shale-frenzy Canada becoming launch-pad of a global tar sands and oil shale frenzy]
|passage=If Alberta’s '''reserves''' are a carbon bomb, this global expansion of tar sands and oil shale exploitation amounts to an escalating emissions arms race, the unlocking of a subterranean cache of weapons of mass ecological destruction.|translation=หาก'''แหล่งสำรอง'''ของอัลเบอร์ตาเปรียบเสมือนระเบิดคาร์บอน การขยายตัวของการแสวงหาประโยชน์จากทรายน้ำมันและหินน้ำมันทั่วโลกในครั้งนี้ ก็เทียบได้กับการแข่งขันสะสมอาวุธในการปล่อยมลพิษที่ทวีความรุนแรงขึ้น ซึ่งเป็นการปลดล็อกคลังเก็บอาวุธทำลายล้างระบบนิเวศน์ทางธรรมชาติขนานใหญ่ที่ซ่อนอยู่ใต้ดิน}}
## [[ผืนดิน]]ที่ถูกสงวน หรือ[[จัดสรร]]ไว้ เพื่อวัตถุประสงค์เฉพาะ (เขตสงวน)
##: {{ux|en|the Connecticut '''Reserve''' in Ohio was originally set apart for the school fund of Connecticut.|translation='''เขตสงวน'''คอนเนตทิคัตในรัฐโอไฮโอเดิมทีถูกจัดสรรไว้สำหรับกองทุนโรงเรียนของรัฐคอนเนตทิคัต}}
##: {{ux|en|the Clergy '''Reserves''' in Canada are for the support of the clergy.|translation='''เขตสงวน'''สำหรับนักบวชในแคนาดามีไว้เพื่อสนับสนุนนักบวช}}
## {{senseid|en|Q57237926}} {{lb|en|แคนาดา}} [[ผืนดิน]]ที่จัดสรรไว้สำหรับให้[[กลุ่ม]][[ชนพื้นเมือง]]ใช้: เขตสงวน[[อินเดียนแดง]]
##: {{alti|en|res<id:Q57237926>|rez<id:Q57237926><qq:clippings>}}
##: {{syn|en|reservation<id:Q57237926><qq:US>}}
## {{lb|en|การทหาร}} [[กองทหาร]]ที่ถูกเก็บไว้[[แนวหลัง]]ของ[[กองทัพ]]ที่เตรียมพร้อมสำหรับรบ สงวนไว้เพื่อ[[สนับสนุน]]แนวอื่น ๆ ตามที่สถานการณ์ต้องการ; กองกำลังหรือกองทหารที่เตรียมไว้สำหรับยาม[[ฉุกเฉิน]] ([[กองหนุน]])
##: {{coi|en|no '''reserves''' ''[the military force is throwing everything it has at the front]''|translation=ไม่มี'''กองหนุน''' ''[กองกำลังทหารทุ่มกำลังทุกอย่างที่มีไปที่แนวหน้า]''}}
## {{lb|en|การเงิน|การประกันภัย}} [[เงินทุน]]ที่เก็บไว้ในมือเพื่อรองรับความต้องการทางการเงินทั้งที่[[วางแผน]]ไว้หรือไม่ได้วางแผนไว้ ([[เงินสำรอง]])
##* {{quote-journal|en|url=https://time.com/7339685/person-of-the-year-2025-ai-architects/|work=[[w:Time (magazine)|Time]]|date=11 December 2025|author=Charlie Campbell, Andrew R. Chow and Billy Perrigo|title=The Architects of AI Are TIME’s 2025 Person of the Year|passage=The tone was set at Trump’s Inauguration. Tech moguls streamed into Washington; some sat behind the President during his Inaugural Address, a signal of the power they would wield. Over the next 11 months, they would use their enormous cash '''reserves''', cultural power, and momentum to push their products into homes across the world.|translation=บรรยากาศถูกกำหนดไว้ตั้งแต่งานพิธีสาบานตนเข้ารับตำแหน่งของทรัมป์ บรรดาผู้มีอิทธิพลในแวดวงเทคโนโลยีหลั่งไหลเข้าสู่วอชิงตัน บางคนนั่งอยู่ด้านหลังประธานาธิบดีระหว่างที่เขากล่าวสุนทรพจน์รับตำแหน่ง ซึ่งเป็นสัญญาณบอกถึงอำนาจที่พวกเขาจะกุมไว้ ในช่วง 11 เดือนข้างหน้า พวกเขาจะใช้'''เงินสำรอง'''ที่มีอยู่อย่างมหาศาล พลังทางวัฒนธรรม และแรงผลักดันเพื่อผลักดันผลิตภัณฑ์ของตนเข้าสู่บ้านเรือนทั่วโลก}}
## [[ราคาขั้นต่ำ]]ใน[[การประมูล]]
##: {{coi|en|no '''reserve''' ''[the lot(s) will be sold no matter how low the bids are]''|translation=ไม่มี'''ราคาขั้นต่ำ''' ''[สินค้าจะถูกขายไม่ว่าราคาประมูลจะต่ำเพียงใด]''}}
##: {{coi|en|'''reserve''' not met ''[the lot(s) will not be sold because the highest bid was too low to be acceptable]''|translation=ไม่ถึง'''ราคาขั้นต่ำ''' ''[สินค้าจะไม่ถูกขายเนื่องจากการเสนอราคาสูงสุดต่ำเกินกว่าที่จะยอมรับได้]''}}
## [[ไวน์]]ที่เก็บไว้และ[[บ่ม]]ก่อนที่จะนำมาขาย
## {{lb|en|เครื่องปั้นดินเผา}} การไม่มี[[สี]]หรือ[[การตกแต่ง]]; สภาพที่ถูกปล่อยทิ้งไว้ให้[[เรียบ]] (พื้นที่ว่าง)
##* {{quote-book|en|year=1973|author=Charles Kyrle Wilkinson|publisher=Metropolitan Museum of Art|location=New York, N.Y|title=Nishapur: Pottery of the Early Islamic Period|page=161
|passage=Each is decorated with a simple disk in '''reserve''' and a band in '''reserve''' adorned with white dots.|translation=แต่ละชิ้นได้รับการตกแต่งด้วยแผ่นกลมเรียบ ๆ บน'''พื้นที่ว่าง''' และแถบบน'''พื้นที่ว่าง'''ซึ่งประดับด้วยจุดสีขาว}}
# สิ่งที่เก็บไว้ในตอนแรกเพื่อใช้ใน[[การพักผ่อนหย่อนใจ]]ในภายหลัง
## {{lb|en|กีฬา}} [[สมาชิก]]ใน[[ทีม]]ที่ไม่ได้เข้าร่วมตั้งแต่เริ่ม[[เกม]] แต่สามารถใช้เพื่อเปลี่ยนตัวเพื่อนร่วมทีมที่เหนื่อยหรือบาดเจ็บได้ ([[ตัวสำรอง]])
## {{lb|en|เกมไพ่}} กลุ่มหรือกองไพ่ที่แจกในตอนเริ่ม[[เกมไพ่]]คนเดียวเพื่อใช้ระหว่างเล่น
# ใน[[นิทรรศการ]], [[รางวัล]][[เกียรติยศ]]ที่บ่งบอกว่าผู้รับจะได้รับ[[รางวัล]]ในกรณีที่บุคคลอื่นถูก[[ตัดสิทธิ์]]
# {{lb|en|การพิมพ์ผ้าลายดอก}} [[สารกันสี]]
# [[สารผสม]]ที่ใช้บนวัตถุที่กำลังถูก[[ชุบด้วยไฟฟ้า]]เพื่อ[[กำหนด]]ขอบเขตของการทับถมของ[[สิ่งที่ทับถม]]
==== คำพ้องความ ====
* {{sense|การสำรวมในคำพูดหรือการกระทำ}} {{l|en|self-restraint}}, {{l|en|reticence}}, {{l|en|taciturnity}}
* {{sense|กีฬา: ผู้เล่นสำรอง}} {{l|en|substitute}}
* {{sense|การทหาร: กองกำลังสำรอง}} [[Army Reserve]], {{l|en|Territorial Army}}, [[TA]], [[TAVR]], [[territorials]], [[terriers]], [[reservists]]
* {{sense|ผืนดินสำหรับชนพื้นเมือง}} {{l|en|reservation}}, {{l|en|res}}, {{l|en|rez}}
==== ลูกคำ ====
{{col|en|bioreserve|nonreserve|reserveless|reservism|ressie|underreserve|unreserve|cognitive reserve
|cookie-jar reserve
|dividend equalisation reserve
|Federal Reserve
|fractional reserve banking
|functional reserve
|game reserve
|in reserve
|natural reserve
|nature reserve
|reserve bank|off reserve,off-reserve
|reserve buoyancy
|Reserve Creek|gold reserve
|reserve currency
|reserve grade
|reserve grader
|reserve price
|reserve team
|urban reserve
|wildlife reserve
}}
==== คำเกี่ยวข้อง ====
* {{l|en|reservist}}
==== คำสืบทอด ====
* {{desc|oj|ishkonigan|clq=1}} (รวมถึงคำว่า {{m|en|reservation}} ด้วย)
* {{desc|pdt|Resarw|bor=1}}
=== คำกริยา ===
{{en-verb}}
# {{lb|en|สกรรมกริยา}} [[เก็บไว้]]; [[สงวน]]
#: {{syn|en|hold}}
#: {{ux|en|We '''reserve''' the right to make modifications.|translation=เราขอ'''สงวน'''สิทธิ์ในการเปลี่ยนแปลงแก้ไข}}
#: {{ux|en|I will '''reserve''' judgment until I have actually read his book.|translation=ฉันจะ'''สงวน'''การตัดสินใจไว้จนกว่าฉันจะได้อ่านหนังสือของเขาจริง ๆ}}
#: {{ux|en|I '''reserve''' the right to change my mind.|translation=ฉันขอ'''สงวน'''สิทธิ์ในการเปลี่ยนใจ}}
# {{lb|en|สกรรมกริยา|ทวิกรรมกริยา}}
## [[เก็บ]]ไว้เพื่อใช้ใน[[อนาคต]]หรือเพื่อการใช้งาน[[พิเศษ]]
##: {{syn|en|hold#Verb|save#Verb}}
##: {{ux|en|This cake is '''reserved''' for the guests!|q=สกรรมกริยา|translation=เค้กชิ้นนี้ถูก'''เก็บไว้'''สำหรับแขก!}}
##: {{ux|en|Please '''reserve''' me a parking space if you can.|q=ทวิกรรมกริยา|translation=โปรดช่วย'''จอง'''ที่จอดรถให้ฉันหน่อยถ้าคุณทำได้}}
##* '''c. 1703-1720''', {{w|Jonathan Swift}}, ''A Letter to a Very Young Lady on Her Marriage''
##*: {{ux|en|Conceal your esteem and love in your own breast, and '''reserve''' your kind looks and language for private hours.|ซ่อนความชื่นชมและศรัทธารักไว้ในใจของคุณเอง และ'''สงวน'''สายตาและถ้อยคำอันอ่อนโยนของคุณไว้สำหรับช่วงเวลาส่วนตัว}}
## [[จอง]][[ล่วงหน้า]]; ทำการจองสำหรับ
##: {{syn|en|sign up for|register for|schedule#Verb|enroll in|book#Verb}}
##: {{ux|en|I '''reserved''' a table for us at the best restaurant in town.|q=สกรรมกริยา|translation=ฉัน'''จอง'''โต๊ะให้พวกเราที่ร้านอาหารที่ดีที่สุดในเมืองแล้ว}}
##: {{ux|en|Thanks for '''reserving''' us a room!|q=ทวิกรรมกริยา|translation=ขอบคุณที่'''จอง'''ห้องพักให้พวกเรานะ!}}
# {{lb|en|สกรรมกริยา|เลิกใช้}} [[ยกเว้น]]; ทำให้เป็น[[ข้อยกเว้น]]
==== ลูกคำ ====
{{col|en|overreserve|reservable|reservative|reservee|reservor|underreserve|unreserve}}
=== อ้างอิง ===
* {{pedia}}
* {{R:OneLook}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eeerrsv|Reveres|reveres|reverse|severer|veerers}}
9u96jcbk8plxz1kv2tnydbsge5vrryx
5758988
5758987
2026-08-25T02:43:11Z
Octahedron80
267
/* คำนาม */
5758988
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
{{root|en|ine-pro|*ser- (ปกป้อง)}}
จาก{{der|en|fro|reserver}}, จาก{{der|en|la|reservō|t=สงวน, เก็บไว้}}
=== การออกเสียง ===
* {{IPA|en|/ɹɪˈzɝv/|a=GA}}
** {{audio|en|LL-Q1860 (eng)-Knabrupt-reserve.wav|a=GA}}
* {{IPA|en|/ɹɪˈzɜːv/|a=RP}}
* {{rhymes|en|ɜː(ɹ)v|s=2}}
* {{hyph|en|re|serve}}
=== คำนาม ===
{{en-noun|~}}
# [[ข้อจำกัด]]
## [[การกระทำ]]ที่เป็น[[การสงวน]] หรือเก็บไว้; [[การจอง]]; [[ข้อยกเว้น]]
##: {{ux|en|The book is '''on reserve'''.|translation=หนังสือเล่มนี้ถูก'''สงวนไว้''' (เช่น สำหรับอ่านในห้องสมุดเท่านั้น)}}
##: {{ux|en|I accept your view with one '''reserve'''.|translation=ฉันยอมรับมุมมองของคุณโดยมี'''ข้อแม้'''หนึ่งข้อ}}
## [[การจำกัด]][[เสรีภาพ]]ในการใช้[[คำพูด]]หรือการกระทำ; [[การยับยั้งชั่งใจ]]; [[ความระมัดระวัง]]ใน[[พฤติกรรม]]ส่วนตัว
# สิ่งที่ถูกสงวนหรือเก็บไว้ เช่น เพื่อใช้ในอนาคต
## [[ทรัพยากร]][[ธรรมชาติ]]ที่ทราบว่ามีอยู่แต่ยังไม่ได้นำมาใช้ประโยชน์
##: {{ux|en|New oil '''reserves''' are continuously being discovered, but not as fast as the existing ones are running out.|translation=มีการค้นพบ'''แหล่งสำรอง'''น้ำมันใหม่ ๆ อย่างต่อเนื่อง แต่ก็ไม่เร็วเท่ากับแหล่งที่มีอยู่ที่กำลังจะหมดไป}}
##* {{quote-journal|en|date=2014-04-25|author=[http://www.theguardian.com/profile/martin-lukacs Martin Lukacs]
|volume=190|issue=20|page=13|magazine=w:The Guardian Weekly
|title=[http://www.theguardian.com/environment/2014/apr/16/canada-becoming-launch-pad-of-a-global-tar-sands-and-oil-shale-frenzy Canada becoming launch-pad of a global tar sands and oil shale frenzy]
|passage=If Alberta’s '''reserves''' are a carbon bomb, this global expansion of tar sands and oil shale exploitation amounts to an escalating emissions arms race, the unlocking of a subterranean cache of weapons of mass ecological destruction.|translation=หาก'''แหล่งสำรอง'''ของอัลเบอร์ตาเปรียบเสมือนระเบิดคาร์บอน การขยายตัวของการแสวงหาประโยชน์จากทรายน้ำมันและหินน้ำมันทั่วโลกในครั้งนี้ ก็เทียบได้กับการแข่งขันสะสมอาวุธในการปล่อยมลพิษที่ทวีความรุนแรงขึ้น ซึ่งเป็นการปลดล็อกคลังเก็บอาวุธทำลายล้างระบบนิเวศน์ทางธรรมชาติขนานใหญ่ที่ซ่อนอยู่ใต้ดิน}}
## [[ผืนดิน]]ที่ถูกสงวน หรือ[[จัดสรร]]ไว้ เพื่อวัตถุประสงค์เฉพาะ (เขตสงวน)
##: {{ux|en|the Connecticut '''Reserve''' in Ohio was originally set apart for the school fund of Connecticut.|translation='''เขตสงวน'''คอนเนตทิคัตในรัฐโอไฮโอเดิมทีถูกจัดสรรไว้สำหรับกองทุนโรงเรียนของรัฐคอนเนตทิคัต}}
##: {{ux|en|the Clergy '''Reserves''' in Canada are for the support of the clergy.|translation='''เขตสงวน'''สำหรับนักบวชในแคนาดามีไว้เพื่อสนับสนุนนักบวช}}
## {{senseid|en|Q57237926}} {{lb|en|แคนาดา}} [[ผืนดิน]]ที่จัดสรรไว้สำหรับให้[[กลุ่ม]][[ชนพื้นเมือง]]ใช้: เขตสงวน[[อินเดียนแดง]]
##: {{alti|en|res<id:Q57237926>|rez<id:Q57237926><qq:รูปตัดทอน>}}
##: {{syn|en|reservation<id:Q57237926><qq:อเมริกา>}}
## {{lb|en|การทหาร}} [[กองทหาร]]ที่ถูกเก็บไว้[[แนวหลัง]]ของ[[กองทัพ]]ที่เตรียมพร้อมสำหรับรบ สงวนไว้เพื่อ[[สนับสนุน]]แนวอื่น ๆ ตามที่สถานการณ์ต้องการ; กองกำลังหรือกองทหารที่เตรียมไว้สำหรับยาม[[ฉุกเฉิน]] ([[กองหนุน]])
##: {{coi|en|no '''reserves''' ''[the military force is throwing everything it has at the front]''|translation=ไม่มี'''กองหนุน''' ''[กองกำลังทหารทุ่มกำลังทุกอย่างที่มีไปที่แนวหน้า]''}}
## {{lb|en|การเงิน|การประกันภัย}} [[เงินทุน]]ที่เก็บไว้ในมือเพื่อรองรับความต้องการทางการเงินทั้งที่[[วางแผน]]ไว้หรือไม่ได้วางแผนไว้ ([[เงินสำรอง]])
##* {{quote-journal|en|url=https://time.com/7339685/person-of-the-year-2025-ai-architects/|work=[[w:Time (magazine)|Time]]|date=11 December 2025|author=Charlie Campbell, Andrew R. Chow and Billy Perrigo|title=The Architects of AI Are TIME’s 2025 Person of the Year|passage=The tone was set at Trump’s Inauguration. Tech moguls streamed into Washington; some sat behind the President during his Inaugural Address, a signal of the power they would wield. Over the next 11 months, they would use their enormous cash '''reserves''', cultural power, and momentum to push their products into homes across the world.|translation=บรรยากาศถูกกำหนดไว้ตั้งแต่งานพิธีสาบานตนเข้ารับตำแหน่งของทรัมป์ บรรดาผู้มีอิทธิพลในแวดวงเทคโนโลยีหลั่งไหลเข้าสู่วอชิงตัน บางคนนั่งอยู่ด้านหลังประธานาธิบดีระหว่างที่เขากล่าวสุนทรพจน์รับตำแหน่ง ซึ่งเป็นสัญญาณบอกถึงอำนาจที่พวกเขาจะกุมไว้ ในช่วง 11 เดือนข้างหน้า พวกเขาจะใช้'''เงินสำรอง'''ที่มีอยู่อย่างมหาศาล พลังทางวัฒนธรรม และแรงผลักดันเพื่อผลักดันผลิตภัณฑ์ของตนเข้าสู่บ้านเรือนทั่วโลก}}
## [[ราคาขั้นต่ำ]]ใน[[การประมูล]]
##: {{coi|en|no '''reserve''' ''[the lot(s) will be sold no matter how low the bids are]''|translation=ไม่มี'''ราคาขั้นต่ำ''' ''[สินค้าจะถูกขายไม่ว่าราคาประมูลจะต่ำเพียงใด]''}}
##: {{coi|en|'''reserve''' not met ''[the lot(s) will not be sold because the highest bid was too low to be acceptable]''|translation=ไม่ถึง'''ราคาขั้นต่ำ''' ''[สินค้าจะไม่ถูกขายเนื่องจากการเสนอราคาสูงสุดต่ำเกินกว่าที่จะยอมรับได้]''}}
## [[ไวน์]]ที่เก็บไว้และ[[บ่ม]]ก่อนที่จะนำมาขาย
## {{lb|en|เครื่องปั้นดินเผา}} การไม่มี[[สี]]หรือ[[การตกแต่ง]]; สภาพที่ถูกปล่อยทิ้งไว้ให้[[เรียบ]] (พื้นที่ว่าง)
##* {{quote-book|en|year=1973|author=Charles Kyrle Wilkinson|publisher=Metropolitan Museum of Art|location=New York, N.Y|title=Nishapur: Pottery of the Early Islamic Period|page=161
|passage=Each is decorated with a simple disk in '''reserve''' and a band in '''reserve''' adorned with white dots.|translation=แต่ละชิ้นได้รับการตกแต่งด้วยแผ่นกลมเรียบ ๆ บน'''พื้นที่ว่าง''' และแถบบน'''พื้นที่ว่าง'''ซึ่งประดับด้วยจุดสีขาว}}
# สิ่งที่เก็บไว้ในตอนแรกเพื่อใช้ใน[[การพักผ่อนหย่อนใจ]]ในภายหลัง
## {{lb|en|กีฬา}} [[สมาชิก]]ใน[[ทีม]]ที่ไม่ได้เข้าร่วมตั้งแต่เริ่ม[[เกม]] แต่สามารถใช้เพื่อเปลี่ยนตัวเพื่อนร่วมทีมที่เหนื่อยหรือบาดเจ็บได้ ([[ตัวสำรอง]])
## {{lb|en|เกมไพ่}} กลุ่มหรือกองไพ่ที่แจกในตอนเริ่ม[[เกมไพ่]]คนเดียวเพื่อใช้ระหว่างเล่น
# ใน[[นิทรรศการ]], [[รางวัล]][[เกียรติยศ]]ที่บ่งบอกว่าผู้รับจะได้รับ[[รางวัล]]ในกรณีที่บุคคลอื่นถูก[[ตัดสิทธิ์]]
# {{lb|en|การพิมพ์ผ้าลายดอก}} [[สารกันสี]]
# [[สารผสม]]ที่ใช้บนวัตถุที่กำลังถูก[[ชุบด้วยไฟฟ้า]]เพื่อ[[กำหนด]]ขอบเขตของการทับถมของ[[สิ่งที่ทับถม]]
==== คำพ้องความ ====
* {{sense|การสำรวมในคำพูดหรือการกระทำ}} {{l|en|self-restraint}}, {{l|en|reticence}}, {{l|en|taciturnity}}
* {{sense|กีฬา: ผู้เล่นสำรอง}} {{l|en|substitute}}
* {{sense|การทหาร: กองกำลังสำรอง}} [[Army Reserve]], {{l|en|Territorial Army}}, [[TA]], [[TAVR]], [[territorials]], [[terriers]], [[reservists]]
* {{sense|ผืนดินสำหรับชนพื้นเมือง}} {{l|en|reservation}}, {{l|en|res}}, {{l|en|rez}}
==== ลูกคำ ====
{{col|en|bioreserve|nonreserve|reserveless|reservism|ressie|underreserve|unreserve|cognitive reserve
|cookie-jar reserve
|dividend equalisation reserve
|Federal Reserve
|fractional reserve banking
|functional reserve
|game reserve
|in reserve
|natural reserve
|nature reserve
|reserve bank|off reserve,off-reserve
|reserve buoyancy
|Reserve Creek|gold reserve
|reserve currency
|reserve grade
|reserve grader
|reserve price
|reserve team
|urban reserve
|wildlife reserve
}}
==== คำเกี่ยวข้อง ====
* {{l|en|reservist}}
==== คำสืบทอด ====
* {{desc|oj|ishkonigan|clq=1}} (รวมถึงคำว่า {{m|en|reservation}} ด้วย)
* {{desc|pdt|Resarw|bor=1}}
=== คำกริยา ===
{{en-verb}}
# {{lb|en|สกรรมกริยา}} [[เก็บไว้]]; [[สงวน]]
#: {{syn|en|hold}}
#: {{ux|en|We '''reserve''' the right to make modifications.|translation=เราขอ'''สงวน'''สิทธิ์ในการเปลี่ยนแปลงแก้ไข}}
#: {{ux|en|I will '''reserve''' judgment until I have actually read his book.|translation=ฉันจะ'''สงวน'''การตัดสินใจไว้จนกว่าฉันจะได้อ่านหนังสือของเขาจริง ๆ}}
#: {{ux|en|I '''reserve''' the right to change my mind.|translation=ฉันขอ'''สงวน'''สิทธิ์ในการเปลี่ยนใจ}}
# {{lb|en|สกรรมกริยา|ทวิกรรมกริยา}}
## [[เก็บ]]ไว้เพื่อใช้ใน[[อนาคต]]หรือเพื่อการใช้งาน[[พิเศษ]]
##: {{syn|en|hold#Verb|save#Verb}}
##: {{ux|en|This cake is '''reserved''' for the guests!|q=สกรรมกริยา|translation=เค้กชิ้นนี้ถูก'''เก็บไว้'''สำหรับแขก!}}
##: {{ux|en|Please '''reserve''' me a parking space if you can.|q=ทวิกรรมกริยา|translation=โปรดช่วย'''จอง'''ที่จอดรถให้ฉันหน่อยถ้าคุณทำได้}}
##* '''c. 1703-1720''', {{w|Jonathan Swift}}, ''A Letter to a Very Young Lady on Her Marriage''
##*: {{ux|en|Conceal your esteem and love in your own breast, and '''reserve''' your kind looks and language for private hours.|ซ่อนความชื่นชมและศรัทธารักไว้ในใจของคุณเอง และ'''สงวน'''สายตาและถ้อยคำอันอ่อนโยนของคุณไว้สำหรับช่วงเวลาส่วนตัว}}
## [[จอง]][[ล่วงหน้า]]; ทำการจองสำหรับ
##: {{syn|en|sign up for|register for|schedule#Verb|enroll in|book#Verb}}
##: {{ux|en|I '''reserved''' a table for us at the best restaurant in town.|q=สกรรมกริยา|translation=ฉัน'''จอง'''โต๊ะให้พวกเราที่ร้านอาหารที่ดีที่สุดในเมืองแล้ว}}
##: {{ux|en|Thanks for '''reserving''' us a room!|q=ทวิกรรมกริยา|translation=ขอบคุณที่'''จอง'''ห้องพักให้พวกเรานะ!}}
# {{lb|en|สกรรมกริยา|เลิกใช้}} [[ยกเว้น]]; ทำให้เป็น[[ข้อยกเว้น]]
==== ลูกคำ ====
{{col|en|overreserve|reservable|reservative|reservee|reservor|underreserve|unreserve}}
=== อ้างอิง ===
* {{pedia}}
* {{R:OneLook}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eeerrsv|Reveres|reveres|reverse|severer|veerers}}
fst8okveudj5g127tmnrsliwasv80vd
5758989
5758988
2026-08-25T02:46:42Z
Octahedron80
267
/* อ้างอิง */
5758989
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
{{root|en|ine-pro|*ser- (ปกป้อง)}}
จาก{{der|en|fro|reserver}}, จาก{{der|en|la|reservō|t=สงวน, เก็บไว้}}
=== การออกเสียง ===
* {{IPA|en|/ɹɪˈzɝv/|a=GA}}
** {{audio|en|LL-Q1860 (eng)-Knabrupt-reserve.wav|a=GA}}
* {{IPA|en|/ɹɪˈzɜːv/|a=RP}}
* {{rhymes|en|ɜː(ɹ)v|s=2}}
* {{hyph|en|re|serve}}
=== คำนาม ===
{{en-noun|~}}
# [[ข้อจำกัด]]
## [[การกระทำ]]ที่เป็น[[การสงวน]] หรือเก็บไว้; [[การจอง]]; [[ข้อยกเว้น]]
##: {{ux|en|The book is '''on reserve'''.|translation=หนังสือเล่มนี้ถูก'''สงวนไว้''' (เช่น สำหรับอ่านในห้องสมุดเท่านั้น)}}
##: {{ux|en|I accept your view with one '''reserve'''.|translation=ฉันยอมรับมุมมองของคุณโดยมี'''ข้อแม้'''หนึ่งข้อ}}
## [[การจำกัด]][[เสรีภาพ]]ในการใช้[[คำพูด]]หรือการกระทำ; [[การยับยั้งชั่งใจ]]; [[ความระมัดระวัง]]ใน[[พฤติกรรม]]ส่วนตัว
# สิ่งที่ถูกสงวนหรือเก็บไว้ เช่น เพื่อใช้ในอนาคต
## [[ทรัพยากร]][[ธรรมชาติ]]ที่ทราบว่ามีอยู่แต่ยังไม่ได้นำมาใช้ประโยชน์
##: {{ux|en|New oil '''reserves''' are continuously being discovered, but not as fast as the existing ones are running out.|translation=มีการค้นพบ'''แหล่งสำรอง'''น้ำมันใหม่ ๆ อย่างต่อเนื่อง แต่ก็ไม่เร็วเท่ากับแหล่งที่มีอยู่ที่กำลังจะหมดไป}}
##* {{quote-journal|en|date=2014-04-25|author=[http://www.theguardian.com/profile/martin-lukacs Martin Lukacs]
|volume=190|issue=20|page=13|magazine=w:The Guardian Weekly
|title=[http://www.theguardian.com/environment/2014/apr/16/canada-becoming-launch-pad-of-a-global-tar-sands-and-oil-shale-frenzy Canada becoming launch-pad of a global tar sands and oil shale frenzy]
|passage=If Alberta’s '''reserves''' are a carbon bomb, this global expansion of tar sands and oil shale exploitation amounts to an escalating emissions arms race, the unlocking of a subterranean cache of weapons of mass ecological destruction.|translation=หาก'''แหล่งสำรอง'''ของอัลเบอร์ตาเปรียบเสมือนระเบิดคาร์บอน การขยายตัวของการแสวงหาประโยชน์จากทรายน้ำมันและหินน้ำมันทั่วโลกในครั้งนี้ ก็เทียบได้กับการแข่งขันสะสมอาวุธในการปล่อยมลพิษที่ทวีความรุนแรงขึ้น ซึ่งเป็นการปลดล็อกคลังเก็บอาวุธทำลายล้างระบบนิเวศน์ทางธรรมชาติขนานใหญ่ที่ซ่อนอยู่ใต้ดิน}}
## [[ผืนดิน]]ที่ถูกสงวน หรือ[[จัดสรร]]ไว้ เพื่อวัตถุประสงค์เฉพาะ (เขตสงวน)
##: {{ux|en|the Connecticut '''Reserve''' in Ohio was originally set apart for the school fund of Connecticut.|translation='''เขตสงวน'''คอนเนตทิคัตในรัฐโอไฮโอเดิมทีถูกจัดสรรไว้สำหรับกองทุนโรงเรียนของรัฐคอนเนตทิคัต}}
##: {{ux|en|the Clergy '''Reserves''' in Canada are for the support of the clergy.|translation='''เขตสงวน'''สำหรับนักบวชในแคนาดามีไว้เพื่อสนับสนุนนักบวช}}
## {{senseid|en|Q57237926}} {{lb|en|แคนาดา}} [[ผืนดิน]]ที่จัดสรรไว้สำหรับให้[[กลุ่ม]][[ชนพื้นเมือง]]ใช้: เขตสงวน[[อินเดียนแดง]]
##: {{alti|en|res<id:Q57237926>|rez<id:Q57237926><qq:รูปตัดทอน>}}
##: {{syn|en|reservation<id:Q57237926><qq:อเมริกา>}}
## {{lb|en|การทหาร}} [[กองทหาร]]ที่ถูกเก็บไว้[[แนวหลัง]]ของ[[กองทัพ]]ที่เตรียมพร้อมสำหรับรบ สงวนไว้เพื่อ[[สนับสนุน]]แนวอื่น ๆ ตามที่สถานการณ์ต้องการ; กองกำลังหรือกองทหารที่เตรียมไว้สำหรับยาม[[ฉุกเฉิน]] ([[กองหนุน]])
##: {{coi|en|no '''reserves''' ''[the military force is throwing everything it has at the front]''|translation=ไม่มี'''กองหนุน''' ''[กองกำลังทหารทุ่มกำลังทุกอย่างที่มีไปที่แนวหน้า]''}}
## {{lb|en|การเงิน|การประกันภัย}} [[เงินทุน]]ที่เก็บไว้ในมือเพื่อรองรับความต้องการทางการเงินทั้งที่[[วางแผน]]ไว้หรือไม่ได้วางแผนไว้ ([[เงินสำรอง]])
##* {{quote-journal|en|url=https://time.com/7339685/person-of-the-year-2025-ai-architects/|work=[[w:Time (magazine)|Time]]|date=11 December 2025|author=Charlie Campbell, Andrew R. Chow and Billy Perrigo|title=The Architects of AI Are TIME’s 2025 Person of the Year|passage=The tone was set at Trump’s Inauguration. Tech moguls streamed into Washington; some sat behind the President during his Inaugural Address, a signal of the power they would wield. Over the next 11 months, they would use their enormous cash '''reserves''', cultural power, and momentum to push their products into homes across the world.|translation=บรรยากาศถูกกำหนดไว้ตั้งแต่งานพิธีสาบานตนเข้ารับตำแหน่งของทรัมป์ บรรดาผู้มีอิทธิพลในแวดวงเทคโนโลยีหลั่งไหลเข้าสู่วอชิงตัน บางคนนั่งอยู่ด้านหลังประธานาธิบดีระหว่างที่เขากล่าวสุนทรพจน์รับตำแหน่ง ซึ่งเป็นสัญญาณบอกถึงอำนาจที่พวกเขาจะกุมไว้ ในช่วง 11 เดือนข้างหน้า พวกเขาจะใช้'''เงินสำรอง'''ที่มีอยู่อย่างมหาศาล พลังทางวัฒนธรรม และแรงผลักดันเพื่อผลักดันผลิตภัณฑ์ของตนเข้าสู่บ้านเรือนทั่วโลก}}
## [[ราคาขั้นต่ำ]]ใน[[การประมูล]]
##: {{coi|en|no '''reserve''' ''[the lot(s) will be sold no matter how low the bids are]''|translation=ไม่มี'''ราคาขั้นต่ำ''' ''[สินค้าจะถูกขายไม่ว่าราคาประมูลจะต่ำเพียงใด]''}}
##: {{coi|en|'''reserve''' not met ''[the lot(s) will not be sold because the highest bid was too low to be acceptable]''|translation=ไม่ถึง'''ราคาขั้นต่ำ''' ''[สินค้าจะไม่ถูกขายเนื่องจากการเสนอราคาสูงสุดต่ำเกินกว่าที่จะยอมรับได้]''}}
## [[ไวน์]]ที่เก็บไว้และ[[บ่ม]]ก่อนที่จะนำมาขาย
## {{lb|en|เครื่องปั้นดินเผา}} การไม่มี[[สี]]หรือ[[การตกแต่ง]]; สภาพที่ถูกปล่อยทิ้งไว้ให้[[เรียบ]] (พื้นที่ว่าง)
##* {{quote-book|en|year=1973|author=Charles Kyrle Wilkinson|publisher=Metropolitan Museum of Art|location=New York, N.Y|title=Nishapur: Pottery of the Early Islamic Period|page=161
|passage=Each is decorated with a simple disk in '''reserve''' and a band in '''reserve''' adorned with white dots.|translation=แต่ละชิ้นได้รับการตกแต่งด้วยแผ่นกลมเรียบ ๆ บน'''พื้นที่ว่าง''' และแถบบน'''พื้นที่ว่าง'''ซึ่งประดับด้วยจุดสีขาว}}
# สิ่งที่เก็บไว้ในตอนแรกเพื่อใช้ใน[[การพักผ่อนหย่อนใจ]]ในภายหลัง
## {{lb|en|กีฬา}} [[สมาชิก]]ใน[[ทีม]]ที่ไม่ได้เข้าร่วมตั้งแต่เริ่ม[[เกม]] แต่สามารถใช้เพื่อเปลี่ยนตัวเพื่อนร่วมทีมที่เหนื่อยหรือบาดเจ็บได้ ([[ตัวสำรอง]])
## {{lb|en|เกมไพ่}} กลุ่มหรือกองไพ่ที่แจกในตอนเริ่ม[[เกมไพ่]]คนเดียวเพื่อใช้ระหว่างเล่น
# ใน[[นิทรรศการ]], [[รางวัล]][[เกียรติยศ]]ที่บ่งบอกว่าผู้รับจะได้รับ[[รางวัล]]ในกรณีที่บุคคลอื่นถูก[[ตัดสิทธิ์]]
# {{lb|en|การพิมพ์ผ้าลายดอก}} [[สารกันสี]]
# [[สารผสม]]ที่ใช้บนวัตถุที่กำลังถูก[[ชุบด้วยไฟฟ้า]]เพื่อ[[กำหนด]]ขอบเขตของการทับถมของ[[สิ่งที่ทับถม]]
==== คำพ้องความ ====
* {{sense|การสำรวมในคำพูดหรือการกระทำ}} {{l|en|self-restraint}}, {{l|en|reticence}}, {{l|en|taciturnity}}
* {{sense|กีฬา: ผู้เล่นสำรอง}} {{l|en|substitute}}
* {{sense|การทหาร: กองกำลังสำรอง}} [[Army Reserve]], {{l|en|Territorial Army}}, [[TA]], [[TAVR]], [[territorials]], [[terriers]], [[reservists]]
* {{sense|ผืนดินสำหรับชนพื้นเมือง}} {{l|en|reservation}}, {{l|en|res}}, {{l|en|rez}}
==== ลูกคำ ====
{{col|en|bioreserve|nonreserve|reserveless|reservism|ressie|underreserve|unreserve|cognitive reserve
|cookie-jar reserve
|dividend equalisation reserve
|Federal Reserve
|fractional reserve banking
|functional reserve
|game reserve
|in reserve
|natural reserve
|nature reserve
|reserve bank|off reserve,off-reserve
|reserve buoyancy
|Reserve Creek|gold reserve
|reserve currency
|reserve grade
|reserve grader
|reserve price
|reserve team
|urban reserve
|wildlife reserve
}}
==== คำเกี่ยวข้อง ====
* {{l|en|reservist}}
==== คำสืบทอด ====
* {{desc|oj|ishkonigan|clq=1}} (รวมถึงคำว่า {{m|en|reservation}} ด้วย)
* {{desc|pdt|Resarw|bor=1}}
=== คำกริยา ===
{{en-verb}}
# {{lb|en|สกรรมกริยา}} [[เก็บไว้]]; [[สงวน]]
#: {{syn|en|hold}}
#: {{ux|en|We '''reserve''' the right to make modifications.|translation=เราขอ'''สงวน'''สิทธิ์ในการเปลี่ยนแปลงแก้ไข}}
#: {{ux|en|I will '''reserve''' judgment until I have actually read his book.|translation=ฉันจะ'''สงวน'''การตัดสินใจไว้จนกว่าฉันจะได้อ่านหนังสือของเขาจริง ๆ}}
#: {{ux|en|I '''reserve''' the right to change my mind.|translation=ฉันขอ'''สงวน'''สิทธิ์ในการเปลี่ยนใจ}}
# {{lb|en|สกรรมกริยา|ทวิกรรมกริยา}}
## [[เก็บ]]ไว้เพื่อใช้ใน[[อนาคต]]หรือเพื่อการใช้งาน[[พิเศษ]]
##: {{syn|en|hold#Verb|save#Verb}}
##: {{ux|en|This cake is '''reserved''' for the guests!|q=สกรรมกริยา|translation=เค้กชิ้นนี้ถูก'''เก็บไว้'''สำหรับแขก!}}
##: {{ux|en|Please '''reserve''' me a parking space if you can.|q=ทวิกรรมกริยา|translation=โปรดช่วย'''จอง'''ที่จอดรถให้ฉันหน่อยถ้าคุณทำได้}}
##* '''c. 1703-1720''', {{w|Jonathan Swift}}, ''A Letter to a Very Young Lady on Her Marriage''
##*: {{ux|en|Conceal your esteem and love in your own breast, and '''reserve''' your kind looks and language for private hours.|ซ่อนความชื่นชมและศรัทธารักไว้ในใจของคุณเอง และ'''สงวน'''สายตาและถ้อยคำอันอ่อนโยนของคุณไว้สำหรับช่วงเวลาส่วนตัว}}
## [[จอง]][[ล่วงหน้า]]; ทำการจองสำหรับ
##: {{syn|en|sign up for|register for|schedule#Verb|enroll in|book#Verb}}
##: {{ux|en|I '''reserved''' a table for us at the best restaurant in town.|q=สกรรมกริยา|translation=ฉัน'''จอง'''โต๊ะให้พวกเราที่ร้านอาหารที่ดีที่สุดในเมืองแล้ว}}
##: {{ux|en|Thanks for '''reserving''' us a room!|q=ทวิกรรมกริยา|translation=ขอบคุณที่'''จอง'''ห้องพักให้พวกเรานะ!}}
# {{lb|en|สกรรมกริยา|เลิกใช้}} [[ยกเว้น]]; ทำให้เป็น[[ข้อยกเว้น]]
==== ลูกคำ ====
{{col|en|overreserve|reservable|reservative|reservee|reservor|underreserve|unreserve}}
=== อ้างอิง ===
* {{pedia|lang=en}}
* {{R:OneLook}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eeerrsv|Reveres|reveres|reverse|severer|veerers}}
3s3wsor5dmkp3l2gkz4xgjkn8rb78ck
มอดูล:labels/data/topical
828
261904
5759088
5756724
2026-08-25T05:32:47Z
Octahedron80
267
5759088
Scribunto
text/plain
local labels = {}
-- This file is split into two sections: topical labels and labels for set-type categories.
-- Each section is sorted alphabetically.
-- Topical labels
labels["ABDL"] = {
display = "[[ABDL]]",
Wikipedia = true,
topical_categories = true,
}
labels["ศาสนาอับราฮัม"] = {
aliases = {"Abrahamism", "อับราฮัม"},
display = "[[ศาสนาอับราฮัม]]",
topical_categories = true,
}
labels["การบัญชี"] = {
aliases = {"accounting", "acc", "บัญชี"},
display = "[[การบัญชี]]",
topical_categories = true,
}
labels["สวนศาสตร์"] = {
aliases = {"acoustics"},
display = "[[สวนศาสตร์]]",
topical_categories = true,
}
labels["acting"] = {
display = "[[acting#Noun|acting]]",
topical_categories = true,
}
labels["การโฆษณา"] = {
aliases = {"advertising"},
display = "[[การโฆษณา]]",
topical_categories = true,
}
labels["อากาศยานศาสตร์"] = {
aliases = {"aeronautics"},
display = "[[อากาศยานศาสตร์]]",
topical_categories = true,
}
labels["aerospace"] = {
display = "[[aerospace]]",
topical_categories = true,
}
labels["aesthetic"] = {
aliases = {"aesthetics"},
display = "[[aesthetic]]",
topical_categories = "Aesthetics",
}
labels["เกษตรกรรม"] = {
aliases = {"agriculture", "farming", "เกษตร", "กสิกรรม", "กสิ"},
display = "[[เกษตรกรรม]]",
topical_categories = true,
}
labels["Ahmadiyya"] = {
aliases = {"Ahmadiyyat", "Ahmadi"},
display = "[[Ahmadiyya]]",
topical_categories = true,
}
labels["อากาศยาน"] = {
aliases = {"aircraft"},
display = "[[อากาศยาน]]",
topical_categories = true,
}
labels["การเล่นแร่แปรธาตุ"] = {
aliases = {"alchemy", "รสายนเวท", "รสายนวิทยา", "เล่นแร่แปรธาตุ", "การแปรธาตุ", "แปรธาตุ"},
display = "[[การเล่นแร่แปรธาตุ]]",
topical_categories = true,
}
labels["เครื่องดื่มแอลกอฮอล์"] = {
aliases = {"alcoholic beverages", "alcohol"},
display = "[[เครื่องดื่มแอลกอฮอล์]]",
topical_categories = true,
}
labels["โรคพิษสุรา"] = {
aliases = {"alcoholism"},
display = "[[โรคพิษสุรา]]",
topical_categories = true,
}
labels["พีชคณิต"] = {
aliases = {"algebra"},
display = "[[พีชคณิต]]",
topical_categories = true,
}
labels["เรขาคณิตเชิงพีชคณิต"] = {
aliases = {"algebraic geometry"},
display = "[[เรขาคณิตเชิงพีชคณิต]]",
topical_categories = true,
}
labels["ทอพอโลยีเชิงพีชคณิต"] = {
aliases = {"algebraic topology"},
display = "[[ทอพอโลยีเชิงพีชคณิต]]",
topical_categories = true,
}
labels["alt-right"] = {
aliases = {"Alt-right", "altright", "Altright"},
display = "[[alt-right]]",
topical_categories = true,
}
labels["แพทยศาสตร์ทางเลือก"] = {
aliases = {"alternative medicine"},
display = "[[แพทยศาสตร์ทางเลือก]]",
topical_categories = true,
}
labels["วิทยุสมัครเล่น"] = {
aliases = {"amateur radio", "ham radio"},
display = "[[วิทยุสมัครเล่น]]",
topical_categories = true,
}
labels["อเมริกันฟุตบอล"] = {
aliases = {"American football"},
display = "[[อเมริกันฟุตบอล]]",
topical_categories = true,
}
labels["analytic geometry"] = {
display = "[[analytic geometry]]",
topical_categories = "Geometry",
}
labels["เคมีวิเคราะห์"] = {
aliases = {"analytical chemistry"},
display = "เคมีวิเคราะห์",
topical_categories = true,
}
labels["อนาธิปไตย"] = {
aliases = {"anarchism"},
display = "[[อนาธิปไตย]]",
topical_categories = true,
}
labels["กายวิภาคศาสตร์"] = {
aliases = {"anatomy", "กายวิภาค"},
display = "[[กายวิภาคศาสตร์]]",
topical_categories = true,
}
labels["กรีซโบราณ"] = {
aliases = {"Ancient Greece"},
display = "[[กรีซโบราณ]]",
topical_categories = true,
}
labels["โรมโบราณ"] = {
aliases = {"Ancient Rome"},
display = "[[โรมโบราณ]]",
topical_categories = true,
}
labels["Anglicanism"] = {
aliases = {"Anglican"},
display = "[[Anglicanism]]",
topical_categories = true,
}
labels["แอนิเมชัน"] = {
aliases = {"animation"},
display = "[[แอนิเมชัน]]",
topical_categories = true,
}
labels["อะนิเมะ"] = {
aliases = {"anime"},
display = "[[อะนิเมะ]]",
topical_categories = "บันเทิงคดีญี่ปุ่น",
}
labels["มานุษยวิทยา"] = {
aliases = {"anthropology"},
display = "[[มานุษยวิทยา]]",
topical_categories = true,
}
labels["วิทยาแมงมุม"] = {
aliases = {"arachnology", "แมงมุม"},
display = "[[วิทยาแมงมุม]]",
topical_categories = true,
}
labels["Arabian god"] = {
display = "[[Arabian]] [[mythology]]",
topical_categories = "Arabian deities",
}
labels["archaeological culture"] = {
aliases = {"archeological culture", "archaeological cultures", "archeological cultures"},
display = "[[archaeology]]",
topical_categories = "Archaeological cultures",
}
labels["โบราณคดี"] = {
aliases = {"archaeology", "archeology"},
display = "[[โบราณคดี]]",
topical_categories = true,
}
labels["การยิงธนู"] = {
aliases = {"ยิงธนู", "ธนู", "archery"},
display = "[[การยิงธนู]]",
topical_categories = true,
}
labels["สถาปัตยกรรม"] = {
aliases = {"architecture", "สถาปัตย์"},
display = "[[สถาปัตยกรรม]]",
topical_categories = true,
}
labels["เลขคณิต"] = {
aliases = {"arithmetic"},
display = "[[เลขคณิต]]",
topical_categories = true,
}
labels["Armenian mythology"] = {
display = "[[Armenian]] [[mythology]]",
topical_categories = true,
}
labels["ศิลปะ"] = {
aliases = {"art", "arts", "ศิลป์", "ศิลปกรรม"},
display = "[[ศิลปะ]]",
topical_categories = true,
}
labels["ปัญญาประดิษฐ์"] = {
aliases = {"artificial intelligence", "AI", "เอไอ"},
display = "[[ปัญญาประดิษฐ์]]",
topical_categories = true,
}
labels["artillery"] = {
display = "[[weaponry]]",
topical_categories = true,
}
labels["Arthurian legend"] = {
aliases = {"Arthurian mythology"},
display = "[[w:Arthurian legend|Arthurian legend]]",
Wikipedia = true,
topical_categories = "Arthurian mythology",
}
labels["โหราศาสตร์"] = {
aliases = {"astrology", "โหร", "โหรา", "horoscope", "ดวงชะตา", "ดวง", "zodiac", "ราศี"},
display = "[[โหราศาสตร์]]",
topical_categories = true,
}
labels["อวกาศยานศาสตร์"] = {
aliases = {"astronautics", "rocketry"},
display = "[[อวกาศยานศาสตร์]]",
topical_categories = true,
}
labels["ดาราศาสตร์"] = {
aliases = {"astronomy", "ดารา"},
display = "[[ดาราศาสตร์]]",
topical_categories = true,
}
labels["ฟิสิกส์ดาราศาสตร์"] = {
aliases = {"astrophysics"},
display = "[[ฟิสิกส์ดาราศาสตร์]]",
topical_categories = true,
}
labels["Asturian mythology"] = {
display = "[[Asturian]] [[mythology]]",
topical_categories = true,
}
labels["กรีฑา"] = {
aliases = {"athletics"},
display = "[[กรีฑา]]",
topical_categories = true,
}
labels["Australian Aboriginal mythology"] = {
display = "[[w:Australian Aboriginal mythology|Australian Aboriginal mythology]]",
Wikipedia = true,
topical_categories = true,
}
labels["Australian rules football"] = {
display = "[[Australian rules football]]",
topical_categories = true,
}
labels["autism"] = {
display = "[[autism]]",
Wikipedia = true,
topical_categories = true,
}
labels["ยานยนต์"] = {
aliases = {"automotive", "automotives"},
display = "[[ยานยนต์]]",
topical_categories = true,
}
labels["auto parts"] = {
display = "[[ยานยนต์]]",
topical_categories = true,
}
labels["การบิน"] = {
aliases = {"aviation", "air transport"},
display = "[[การบิน]]",
topical_categories = true,
}
labels["backgammon"] = {
display = "[[backgammon]]",
topical_categories = true,
}
labels["แบคทีเรีย"] = {
aliases = {"bacteria"},
display = "[[วิทยาแบคทีเรีย]]",
topical_categories = true,
}
labels["วิทยาแบคทีเรีย"] = {
aliases = {"bacteriology"},
display = "[[วิทยาแบคทีเรีย]]",
topical_categories = true,
}
labels["แบดมินตัน"] = {
aliases = {"badminton"},
display = "[[แบดมินตัน]]",
topical_categories = true,
}
labels["baking"] = {
display = "[[baking#Noun|baking]]",
topical_categories = true,
}
labels["กีฬาใช้บอล"] = {
aliases = {"ball games", "ball sports"},
display = "[[กีฬาใช้บอล]]",
topical_categories = true,
}
labels["ballet"] = {
display = "[[ballet]]",
topical_categories = true,
}
labels["Bangladeshi politics"] = {
display = "[[w:Politics of Bangladesh|Bangladeshi politics]]",
topical_categories = true,
}
labels["การธนาคาร"] = {
aliases = {"banking"},
display = "[[การธนาคาร]]",
topical_categories = true,
}
labels["เบสบอล"] = {
aliases = {"baseball"},
display = "[[เบสบอล]]",
topical_categories = true,
}
labels["บาสเกตบอล"] = {
aliases = {"basketball"},
display = "[[บาสเกตบอล]]",
topical_categories = true,
}
labels["บีดีเอสเอ็ม"] = {
aliases = {"BDSM"},
display = "[[บีดีเอสเอ็ม]]",
topical_categories = true,
}
labels["beekeeping"] = {
display = "[[beekeeping]]",
topical_categories = true,
}
labels["เบียร์"] = {
aliases = {"beer"},
display = "[[เบียร์]]",
topical_categories = true,
}
labels["betting"] = {
display = "[[gambling#Noun|gambling]]",
topical_categories = true,
}
labels["ไบเบิล"] = {
aliases = {"biblical", "Bible", "bible", "Biblical"},
display = "[[ไบเบิล]]",
topical_categories = true,
}
labels["billiards"] = {
display = "[[billiards]]",
topical_categories = true,
}
labels["บิงโก"] = {
aliases = {"bingo"},
display = "[[บิงโก]]",
topical_categories = true,
}
labels["ชีวเคมี"] = {
aliases = {"biochemistry", "biochem"},
display = "[[ชีวเคมี]]",
topical_categories = true,
}
labels["ชีววิทยา"] = {
aliases = {"ชีว", "biology", "bio"},
display = "[[ชีววิทยา]]",
topical_categories = true,
}
labels["เทคโนโลยีชีวภาพ"] = {
aliases = {"ไบโอเทค", "biotechnology", "biotech"},
display = "[[biotechnology]]",
topical_categories = true,
}
labels["birdwatching"] = {
display = "[[birdwatching#Noun|birdwatching]]",
topical_categories = true,
}
labels["blacksmithing"] = {
display = "[[blacksmithing]]",
topical_categories = true,
}
labels["blogging"] = {
display = "[[blogging#Noun|blogging]]",
topical_categories = "อินเทอร์เน็ต",
}
labels["เกมกระดาน"] = {
aliases = {"board games", "board game"},
display = "[[เกมกระดาน]]",
topical_categories = true,
}
labels["board sports"] = {
display = "[[boardsport|board sports]]",
topical_categories = true,
}
labels["bodybuilding"] = {
display = "[[bodybuilding#Noun|bodybuilding]]",
topical_categories = true,
}
labels["พฤกษศาสตร์"] = {
aliases = {"botany", "พฤกษ"},
display = "[[พฤกษศาสตร์]]",
topical_categories = true,
}
labels["bowling"] = {
display = "[[bowling#Noun|bowling]]",
topical_categories = true,
}
labels["bowls"] = {
aliases = {"lawn bowls", "crown green bowls"},
display = "[[bowls]]",
topical_categories = "Bowls (game)",
}
labels["มวย"] = {
aliases = {"boxing"},
display = "[[มวย]]",
topical_categories = true,
}
labels["brewing"] = {
display = "[[brewing#Noun|brewing]]",
topical_categories = true,
}
labels["bridge"] = {
display = "[[bridge#English:_game|bridge]]",
topical_categories = true,
}
labels["broadcasting"] = {
display = "[[broadcasting#Noun|broadcasting]]",
topical_categories = true,
}
labels["ไบรโอโลยี"] = {
aliases = {"bryology"},
display = "[[ไบรโอโลยี]]",
topical_categories = true,
}
labels["ศาสนาพุทธ"] = {
aliases = {"Buddhism", "พุทธศาสนา", "พระพุทธศาสนา", "พุทธ"},
display = "[[ศาสนาพุทธ]]",
topical_categories = true,
}
labels["Buddhist deity"] = {
aliases = {"Buddhist goddess", "Buddhist god"},
display = "[[ศาสนาพุทธ]]",
topical_categories = "Buddhist deities",
}
labels["bullfighting"] = {
display = "[[bullfighting]]",
topical_categories = true,
}
labels["ธุรกิจ"] = {
aliases = {"business", "professional"},
display = "[[ธุรกิจ]]",
topical_categories = true,
}
labels["Byzantine Empire"] = {
display = "[[Byzantine Empire]]",
topical_categories = true,
}
labels["แคลคูลัส"] = {
aliases = {"calculus"},
display = "[[แคลคูลัส]]",
topical_categories = true,
}
labels["calligraphy"] = {
display = "[[calligraphy]]",
topical_categories = true,
}
labels["Canadian football"] = {
display = "[[Canadian football]]",
topical_categories = true,
}
labels["canoeing"] = {
display = "[[canoeing#Noun|canoeing]]",
topical_categories = "Water sports",
}
labels["ทุนนิยม"] = {
aliases = {"capitalism"},
display = "[[ทุนนิยม]]",
topical_categories = true,
}
labels["เกมไพ่"] = {
aliases = {"card games", "card game", "เกมการ์ด", "cards", "ไพ่", "การ์ด", "playing card", "ไพ่ป๊อก"},
display = "[[ไพ่|เกมไพ่]]",
topical_categories = true,
}
labels["หทัยวิทยา"] = {
aliases = {"cardiology", "วิทยาหัวใจ", "วิทยาโรคหัวใจ", "หัวใจ"},
display = "[[หทัยวิทยา]]",
topical_categories = true,
}
labels["carpentry"] = {
display = "[[carpentry]]",
topical_categories = true,
}
labels["การทำแผนที่"] = {
aliases = {"cartography", "map", "แผนที่"},
display = "[[การทำแผนที่]]",
topical_categories = true,
}
labels["cartomancy"] = {
display = "[[cartomancy]]",
topical_categories = true,
}
labels["castells"] = {
display = "[[castells]]",
topical_categories = true,
}
labels["category theory"] = {
display = "[[category theory]]",
topical_categories = true,
}
labels["Catholicism"] = {
aliases = {"catholicism", "Catholic", "catholic"},
display = "[[Catholicism]]",
topical_categories = true,
}
labels["caving"] = {
display = "[[caving#Noun|caving]]",
topical_categories = true,
}
labels["cellular automata"] = {
display = "[[cellular automata]]",
topical_categories = true,
}
labels["Celtic mythology"] = {
display = "[[Celtic]] [[mythology]]",
topical_categories = true,
}
labels["ceramics"] = {
display = "[[ceramics]]",
topical_categories = true,
}
labels["cheerleading"] = {
display = "[[cheerleading#Noun|cheerleading]]",
topical_categories = true,
}
labels["ธาตุเคมี"] = {
aliases = {"chemical element", "ธาตุ"},
display = "[[เคมี]]",
topical_categories = {"ธาตุเคมี"},
}
labels["chemical engineering"] = {
display = "[[chemical engineering]]",
topical_categories = true,
}
labels["เคมี"] = {
aliases = {"chemistry", "chem"},
display = "[[เคมี]]",
topical_categories = {"เคมี"},
}
labels["หมากรุกสากล"] = {
aliases = {"chess", "หมากรุกฝรั่ง"},
display = "[[หมากรุกสากล]]",
topical_categories = {"หมากรุกสากล"},
}
labels["children's games"] = {
display = "[[children|children's]] [[game]]s",
topical_categories = true,
}
labels["Church of England"] = {
aliases = {"C of E", "CofE"},
Wikipedia = "Church of England",
topical_categories = true,
}
labels["ดาราศาสตร์จีน"] = {
aliases = {"Chinese astronomy"},
display = "[[ดาราศาสตร์]][[จีน]]",
topical_categories = true,
}
labels["Chinese calligraphy"] = {
display = "[[Chinese]] [[calligraphy]]",
topical_categories = "Calligraphy",
}
labels["Chinese constellation"] = {
display = "[[Chinese]] [[astronomy]]",
topical_categories = "Constellations",
}
labels["Chinese folk religion"] = {
display = "[[Chinese]] [[folk religion]]",
topical_categories = "Religion",
}
labels["ภาษาศาสตร์จีน"] = {
aliases = {"Chinese linguistics"},
display = "[[ภาษาศาสตร์]][[จีน]]",
topical_categories = "ภาษาศาสตร์",
}
labels["ปรัมปราวิทยาจีน"] = {
aliases = {"Chinese mythology"},
display = "[[ปรัมปราวิทยา]][[จีน]]",
topical_categories = true,
}
labels["ปรัชญาจีน"] = {
aliases = {"Chinese philosophy"},
display = "[[ปรัชญา]][[จีน]]",
topical_categories = true,
}
labels["สัทศาสตร์จีน"] = {
aliases = {"Chinese phonetics"},
display = "[[สัทศาสตร์]][[จีน]]",
topical_categories = true,
}
labels["Chinese religion"] = {
display = "[[Chinese]] [[religion]]",
topical_categories = "Religion",
}
labels["Chinese star"] = {
display = "[[Chinese]] [[astronomy]]",
topical_categories = "Stars",
}
labels["ศาสนาคริสต์"] = {
aliases = {"Christianity", "christianity", "คริสตศาสนา", "คริสต์ศาสนา", "คริสต์"},
display = "[[ศาสนาคริสต์]]",
topical_categories = {"ศาสนาคริสต์"},
}
labels["Church of the East"] = {
display = "[[Church of the East]]",
topical_categories = true,
}
labels["การถ่ายภาพยนตร์"] = {
aliases = {"cinematography", "filmology", "การถ่ายทำภาพยนตร์", "วิชาการภาพยนตร์"},
display = "[[การถ่ายภาพยนตร์]]",
topical_categories = true,
}
labels["cladistics"] = {
display = "[[cladistics]]",
topical_categories = "Taxonomy",
}
labels["classical mechanics"] = {
display = "[[classical mechanics]]",
topical_categories = true,
}
labels["classical studies"] = {
display = "[[classical studies]]",
topical_categories = true,
}
labels["climatology"] = {
display = "[[climatology]]",
topical_categories = true,
}
labels["climate change"] = {
display = "[[climate change]]",
topical_categories = true,
}
labels["climbing"] = {
aliases = {"rock climbing"},
display = "[[climbing#Noun|climbing]]",
topical_categories = true,
}
labels["จิตวิทยาคลินิก"] = {
aliases = {"clinical psychology"},
display = "[[จิตวิทยาคลินิก]]",
topical_categories = true,
}
labels["เครื่องนุ่งห่ม"] = {
aliases = {"clothing", "เสื้อผ้า"},
display = "[[เครื่องนุ่งห่ม]]",
topical_categories = true,
}
labels["cloud computing"] = {
display = "[[cloud computing]]",
topical_categories = "Computing",
}
labels["collectible card games"] = {
aliases = {"trading card games", "collectible cards", "trading cards"},
display = "collectible card games",
topical_categories = true,
}
labels["combinatorics"] = {
display = "[[combinatorics]]",
topical_categories = true,
}
labels["comedy"] = {
display = "[[comedy]]",
topical_categories = true,
}
labels["commercial law"] = {
display = "[[commercial#Adjective|commercial]] [[law]]",
topical_categories = true,
}
labels["comics"] = {
display = "[[comics]]",
topical_categories = true,
}
labels["communication"] = {
aliases = {"communications"},
display = "[[communication]]",
topical_categories = true,
}
labels["communism"] = {
aliases = {"Communism"},
display = "[[communism]]",
topical_categories = true,
}
labels["compilation"] = {
aliases = {"compiler"},
display = "[[software]] [[compilation]]",
topical_categories = true,
}
labels["complex analysis"] = {
display = "[[complex analysis]]",
topical_categories = true,
}
labels["ภาษาศาสตร์คอมพิวเตอร์"] = {
aliases = {"computational linguistics"},
display = "[[ภาษาศาสตร์คอมพิวเตอร์]]",
topical_categories = true,
}
labels["computer chess"] = {
display = "[[computer chess]]",
topical_categories = true,
}
labels["เกมคอมพิวเตอร์"] = {
aliases = {"computer games", "computer game", "computer gaming", "เกมคอม"},
display = "[[เกมคอมพิวเตอร์]]",
topical_categories = "วิดีโอเกม",
}
labels["computer graphics"] = {
display = "[[computer graphics]]",
topical_categories = true,
}
labels["computer hardware"] = {
display = "[[computer]] [[hardware]]",
topical_categories = true,
}
labels["ภาษาคอมพิวเตอร์"] = {
aliases = {"computer languages", "programming language", "ภาษาโปรแกรม"},
display = "[[ภาษาคอมพิวเตอร์]]",
topical_categories = {"ภาษาคอมพิวเตอร์"},
}
labels["วิทยาการคอมพิวเตอร์"] = {
aliases = {"computer science", "comp sci", "CompSci", "compsci"},
display = "[[วิทยาการคอมพิวเตอร์]]",
topical_categories = true,
}
labels["computer security"] = {
display = "[[computer security]]",
topical_categories = true,
}
labels["การคอมพิวเตอร์"] = {
aliases = {"computing", "computer", "computers", "คอมพิวเตอร์", "คอม"},
display = "[[การคอมพิวเตอร์]]",
topical_categories = {"การคอมพิวเตอร์"},
}
labels["computing theory"] = {
aliases = {"comptheory"},
display = "[[computing#Noun|computing]] [[theory]]",
topical_categories = "Theory of computing",
}
labels["conchology"] = {
display = "[[conchology]]",
topical_categories = true,
}
labels["ศาสนาขงจื๊อ"] = {
aliases = {"Confucianism", "ขงจื๊อ"},
display = "[[ศาสนาขงจื๊อ]]",
topical_categories = {"ศาสนาขงจื๊อ"},
}
labels["conlanging"] = {
aliases = {"constructed languages", "constructed language"},
display = "[[conlanging]]",
topical_categories = true,
}
labels["conservatism"] = {
display = "[[conservatism]]",
topical_categories = true,
}
labels["construction"] = {
display = "[[construction]]",
topical_categories = true,
}
labels["การทำอาหาร"] = {
aliases = {"culinary", "cuisine", "cookery", "gastronomy", "การปรุงอาหาร"},
display = "[[การทำอาหาร]]",
topical_categories = true,
}
labels["copyright"] = {
aliases = {"copyright law", "intellectual property", "intellectual property law", "IP law"},
display = "[[copyright]] [[law]]",
topical_categories = true,
}
labels["cosmetics"] = {
aliases = {"cosmetology"},
display = "[[cosmetics]]",
topical_categories = true,
}
labels["จักรวาลวิทยา"] = {
aliases = {"cosmology"},
display = "[[จักรวาลวิทยา]]",
topical_categories = true,
}
labels["creationism"] = {
aliases = {"baraminology"},
display = "[[creationism#English|creationism]]",
topical_categories = true,
}
labels["cribbage"] = {
display = "[[cribbage]]",
topical_categories = true,
}
labels["คริกเกต"] = {
aliases = {"คริกเก็ต", "cricket"},
display = "[[คริกเกต]]",
topical_categories = true,
}
labels["อาชญากรรม"] = {
aliases = {"crime"},
display = "[[อาชญากรรม]]",
topical_categories = true,
}
labels["กฎหมายอาญา"] = {
aliases = {"criminal law"},
display = "[[กฎหมายอาญา]]",
topical_categories = true,
}
labels["อาชญาวิทยา"] = {
aliases = {"criminology"},
display = "[[criminology]]",
topical_categories = true,
}
labels["crochet"] = {
display = "[[crochet]]",
topical_categories = true,
}
labels["croquet"] = {
display = "[[croquet]]",
topical_categories = true,
}
labels["crosswording"] = {
aliases = {"crosswords","cruciverbalism","cryptic crosswords", "crossword puzzles"},
display = "[[crosswording]]",
topical_categories = true,
}
labels["cryptocurrencies"] = {
aliases = {"cryptocurrency"},
display = "[[cryptocurrency|cryptocurrencies]]",
topical_categories = "Cryptocurrency",
}
labels["วิทยาการรหัสลับ"] = {
aliases = {"cryptography", "วิทยาการเข้ารหัสลับ"},
display = "[[วิทยาการรหัสลับ]]",
topical_categories = true,
}
labels["cryptozoology"] = {
display = "[[cryptozoology]]",
topical_categories = true,
}
labels["crystallography"] = {
display = "[[crystallography]]",
topical_categories = true,
}
labels["cultural anthropology"] = {
display = "[[cultural anthropology]]",
topical_categories = true,
}
labels["curling"] = {
display = "[[curling]]",
topical_categories = true,
}
labels["cybernetics"] = {
display = "[[cybernetics]]",
topical_categories = true,
}
labels["cybersecurity"] = {
display = "[[cybersecurity]]",
topical_categories = "Networking",
}
labels["cycle racing"] = {
display = "[[w:cycle sport|cycle racing]]",
topical_categories = true,
}
labels["cycling"] = {
aliases = {"bicycling"},
display = "[[cycling#Noun|cycling]]",
topical_categories = true,
}
labels["วิทยาเซลล์"] = {
aliases = {"เซลล์วิทยา", "ชีววิทยาเซลล์", "cytology", "cell biology", "cellular biology"},
display = "[[วิทยาเซลล์]]",
topical_categories = true,
}
labels["dance"] = {
aliases = {"dancing"},
display = "[[dance#Noun|dance]]",
topical_categories = true,
}
labels["darts"] = {
display = "[[darts]]",
topical_categories = true,
}
labels["data management"] = {
display = "[[data management]]",
topical_categories = true,
}
labels["data modeling"] = {
display = "[[data modeling]]",
topical_categories = true,
}
labels["databases"] = {
aliases = {"database"},
display = "[[database]]s",
topical_categories = true,
}
labels["decision theory"] = {
display = "[[decision theory]]",
topical_categories = true,
}
labels["deltiology"] = {
display = "[[deltiology]]",
topical_categories = true,
}
labels["demography"] = {
display = "[[demography]]",
topical_categories = true,
}
labels["demoscene"] = {
topical_categories = true,
}
labels["ทันตแพทยศาสตร์"] = {
aliases = {"dentistry", "ทันตแพทย์", "ทันตะ", "ทันต", "หมอฟัน"},
display = "[[ทันตแพทยศาสตร์]]",
topical_categories = true,
}
labels["ตัจวิทยา"] = {
aliases = {"dermatology", "ตจวิทยา", "ผิวหนัง", "วิทยาผิวหนัง", "วิทยาโรคผิวหนัง"},
display = "[[ตัจวิทยา]]",
topical_categories = true,
}
labels["design"] = {
display = "[[design#Noun|design]]",
topical_categories = true,
}
labels["dice games"] = {
aliases = {"dice"},
display = "[[dice game]]s",
topical_categories = true,
}
labels["dictation"] = {
display = "[[dictation]]",
topical_categories = true,
}
labels["differential geometry"] = {
display = "[[differential geometry]]",
topical_categories = true,
}
labels["diplomacy"] = {
display = "[[diplomacy]]",
topical_categories = true,
}
labels["disc golf"] = {
display = "[[disc golf]]",
topical_categories = true,
}
labels["divination"] = {
display = "[[divination]]",
topical_categories = true,
}
labels["diving"] = {
display = "[[diving#Noun|diving]]",
topical_categories = true,
}
labels["dominoes"] = {
display = "[[dominoes]]",
topical_categories = true,
}
labels["dou dizhu"] = {
display = "[[w:Dou dizhu|dou dizhu]]",
Wikipedia = true,
topical_categories = true,
}
labels["drama"] = {
display = "[[drama]]",
topical_categories = true,
}
labels["dressage"] = {
display = "[[dressage]]",
topical_categories = true,
}
labels["earth science"] = {
display = "[[earth science]]",
topical_categories = "Earth sciences",
}
labels["Eastern Catholicism"] = {
aliases = {"Eastern Catholic"},
display = "[[w:Eastern Catholicism]]",
Wikipedia = true,
topical_categories = true,
}
labels["Eastern Orthodoxy"] = {
aliases = {"Eastern Orthodox"},
display = "[[Eastern Orthodoxy]]",
topical_categories = true,
}
labels["eating disorders"] = {
aliases = {"eating disorder"},
display = "[[eating disorder]]s",
topical_categories = true,
}
labels["ecclesiastical"] = {
display = "[[ecclesiastical]]",
topical_categories = "Christianity",
}
labels["ecology"] = {
display = "[[ecology]]",
topical_categories = true,
}
labels["เศรษฐศาสตร์"] = {
aliases = {"economics", "เศรษฐ"},
display = "[[เศรษฐศาสตร์]]",
topical_categories = true,
}
labels["การศึกษา"] = {
aliases = {"education", "ศึกษา"},
display = "[[การศึกษา]]",
topical_categories = true,
}
labels["Egyptian god"] = {
aliases = {"Egyptian goddess", "Egyptian deity"},
display = "[[Egyptian]] [[mythology]]",
topical_categories = "Egyptian deities",
}
labels["Egyptian mythology"] = {
display = "[[Egyptian]] [[mythology]]",
topical_categories = true,
}
labels["Egyptology"] = {
display = "[[Egyptology]]",
topical_categories = "Ancient Egypt",
}
labels["electrencephalography"] = {
display = "[[electrencephalography]]",
topical_categories = true,
}
labels["electrical engineering"] = {
display = "[[electrical engineering]]",
topical_categories = true,
}
labels["ไฟฟ้า"] = {
aliases = {"electricity", "electric"},
display = "[[ไฟฟ้า]]",
topical_categories = true,
}
labels["electrodynamics"] = {
display = "[[electrodynamics]]",
topical_categories = true,
}
labels["แม่เหล็กไฟฟ้า"] = {
aliases = {"electromagnetism", "แม่เหล็ก"},
display = "[[แม่เหล็กไฟฟ้า]]",
topical_categories = true,
}
labels["อิเล็กทรอนิกส์"] = {
aliases = {"electronics", "electronic"},
display = "[[อิเล็กทรอนิกส์]]",
topical_categories = true,
}
labels["embryology"] = {
display = "[[embryology]]",
topical_categories = true,
}
labels["emergency services"] = {
display = "[[emergency services]]",
topical_categories = true,
}
labels["emergency medicine"] = {
display = "[[emergency medicine]]",
topical_categories = true,
}
labels["endocrinology"] = {
display = "[[endocrinology]]",
topical_categories = true,
}
labels["engineering"] = {
display = "[[engineering#Noun|engineering]]",
topical_categories = true,
}
labels["enterprise engineering"] = {
display = "[[enterprise engineering]]",
topical_categories = true,
}
labels["entomology"] = {
display = "[[entomology]]",
topical_categories = true,
}
labels["epidemiology"] = {
display = "[[epidemiology]]",
topical_categories = true,
}
labels["epistemology"] = {
display = "[[epistemology]]",
topical_categories = true,
}
labels["equestrianism"] = {
aliases = {"equestrian", "horses", "horsemanship"},
display = "[[equestrianism]]",
topical_categories = true,
}
labels["espionage"] = {
display = "[[espionage]]",
topical_categories = true,
}
labels["จริยศาสตร์"] = {
aliases = {"ethics", "จริยธรรม", "จริย"},
display = "[[จริยศาสตร์]]",
topical_categories = true,
}
labels["ethnography"] = {
display = "[[ethnography]]",
topical_categories = true,
}
labels["ethology"] = {
display = "[[ethology]]",
topical_categories = true,
}
labels["European folklore"] = {
display = "[[European]] [[folklore]]",
topical_categories = true,
}
labels["European Union"] = {
aliases = {"EU"},
display = "[[European Union]]",
topical_categories = true,
}
labels["evolutionary theory"] = {
aliases = {"evolutionary biology"},
display = "[[evolutionary theory]]",
topical_categories = true,
}
labels["การออกกำลังกาย"] = {
aliases = {"ออกกำลังกาย", "ออกกำลัง", "การออกกำลัง", "กายบริหาร", "exercise"},
display = "[[การออกกำลังกาย]]",
topical_categories = true,
}
labels["eye color"] = {
display = "[[eye]] [[color]]",
topical_categories = "Eye colors",
}
labels["falconry"] = {
display = "[[falconry]]",
topical_categories = true,
}
labels["fantasy"] = {
display = "[[fantasy]]",
topical_categories = true,
}
labels["farriery"] = {
display = "[[farriery]]",
topical_categories = true,
}
labels["fascism"] = {
display = "[[fascism]]",
topical_categories = true,
}
labels["fashion"] = {
display = "[[fashion]]",
topical_categories = true,
}
labels["feminism"] = {
display = "[[feminism]]",
topical_categories = true,
}
labels["fencing"] = {
display = "[[fencing#Noun|fencing]]",
topical_categories = true,
}
labels["feudalism"] = {
display = "[[feudalism|feudalism]]",
topical_categories = true,
}
labels["บันเทิงคดี"] = {
aliases = {"fiction", "fictional"},
display = "[[บันเทิงคดี]]",
topical_categories = true,
}
labels["field hockey"] = {
display = "[[field hockey]]",
topical_categories = true,
}
labels["figure skating"] = {
display = "[[figure skating]]",
topical_categories = true,
}
labels["file format"] = {
display = "[[file format]]",
topical_categories = "File formats",
}
labels["film"] = {
display = "[[film#Noun|film]]",
topical_categories = true,
}
labels["ประเภทภาพยนตร์"] = {
aliases = {"cinema", "film genre"},
display = "[[ภาพยนตร์]]",
topical_categories = "ประเภทภาพยนตร์",
}
labels["การเงิน"] = {
aliases = {"finance"},
display = "[[การเงิน]]",
topical_categories = true,
}
labels["Finnic mythology"] = {
aliases = {"Finnish mythology"},
display = "[[Finnic]] [[mythology]]",
topical_categories = true,
}
labels["ปืน"] = {
aliases = {"firearms", "firearm"},
display = "[[ปืน]]",
topical_categories = true,
}
labels["firefighting"] = {
display = "[[firefighting]]",
topical_categories = true,
}
labels["การตกปลา"] = {
aliases = {"fishing", "angling"},
display = "[[การตกปลา]]",
topical_categories = true,
}
labels["flamenco"] = {
display = "[[flamenco]]",
topical_categories = true,
}
labels["fluid dynamics"] = {
display = "[[fluid dynamics]]",
topical_categories = true,
}
labels["fluid mechanics"] = {
display = "[[fluid mechanics]]",
topical_categories = "Mechanics",
}
labels["folklore"] = {
display = "[[folklore]]",
topical_categories = true,
}
labels["forestry"] = {
display = "[[forestry]]",
topical_categories = true,
}
labels["Forteana"] = {
display = "[[Forteana]]",
topical_categories = true,
}
labels["Freemasonry"] = {
aliases = {"freemasonry"},
display = "[[Freemasonry]]",
topical_categories = true,
}
labels["functional analysis"] = {
display = "[[functional analysis]]",
topical_categories = true,
}
labels["furniture"] = {
display = "[[furniture]]",
topical_categories = true,
}
labels["furry fandom"] = {
display = "[[furry#Noun|furry]] [[fandom]]",
topical_categories = true,
}
labels["fuzzy logic"] = {
display = "[[fuzzy logic]]",
topical_categories = true,
}
labels["Gaelic football"] = {
display = "[[Gaelic football]]",
topical_categories = true,
}
labels["การพนัน"] = {
aliases = {"gambling", "พนัน"},
display = "[[การพนัน]]",
topical_categories = true,
}
labels["game theory"] = {
display = "[[game theory]]",
topical_categories = true,
}
labels["games"] = {
aliases = {"game"},
display = "[[game#Noun|games]]",
topical_categories = true,
}
labels["gaming"] = {
display = "[[gaming#Noun|gaming]]",
topical_categories = true,
}
labels["genealogy"] = {
display = "[[genealogy]]",
topical_categories = true,
}
labels["general semantics"] = {
display = "[[general semantics]]",
topical_categories = true,
}
labels["พันธุศาสตร์"] = {
aliases = {"genetics"},
display = "[[พันธุศาสตร์]]",
topical_categories = true,
}
labels["ภูมิศาสตร์"] = {
aliases = {"geography", "ภูมิ"},
display = "[[ภูมิศาสตร์]]",
topical_categories = true,
}
labels["ธรณีวิทยา"] = {
aliases = {"geology", "ธรณี"},
display = "[[ธรณีวิทยา]]",
topical_categories = true,
}
labels["geological period"] = {
Wikipedia = true,
topical_categories = "Geological periods",
}
labels["เรขาคณิต"] = {
aliases = {"geometry", "geometric", "geometrical", "เรขา"},
display = "[[เรขาคณิต]]",
topical_categories = true,
}
labels["geomorphology"] = {
display = "[[geomorphology]]",
topical_categories = true,
}
labels["ภูมิรัฐศาสตร์"] = {
aliases = {"geopolitics"},
display = "[[ภูมิรัฐศาสตร์]]",
topical_categories = true,
}
labels["gerontology"] = {
display = "[[gerontology]]",
topical_categories = true,
}
labels["gladiatorial combat"] = {
Wikipedia = true,
topical_categories = true,
}
labels["glassblowing"] = {
display = "[[glassblowing]]",
topical_categories = true,
}
labels["Gnosticism"] = {
aliases = {"gnosticism"},
display = "[[Gnosticism]]",
topical_categories = true,
}
labels["go"] = {
aliases = {"Go", "game of go", "game of Go"},
display = "{{l|en|go|id=game}}",
topical_categories = true,
}
labels["กอล์ฟ"] = {
aliases = {"golf"},
display = "[[กอล์ฟ]]",
topical_categories = true,
}
labels["รัฐบาลและการปกครอง"] = {
aliases = {"government", "รัฐบาล", "การปกครอง"},
display = "[[รัฐบาล]]และ[[การปกครอง]]",
topical_categories = true,
}
labels["ไวยากรณ์"] = {
aliases = {"grammar", "ไว"},
display = "[[ไวยากรณ์]]",
topical_categories = true,
}
labels["grammatical case"] = {
display = "[[grammar]]",
topical_categories = "Grammatical cases",
}
labels["grammatical mood"] = {
display = "[[grammar]]",
topical_categories = "Grammatical moods",
}
labels["graph theory"] = {
display = "[[graph theory]]",
topical_categories = true,
}
labels["graphic design"] = {
display = "[[graphic design]]",
topical_categories = true,
}
labels["graphical user interface"] = {
aliases = {"GUI"},
display = "[[graphical user interface]]",
topical_categories = true,
}
labels["Greek mythology"] = {
display = "[[Greek]] [[mythology]]",
topical_categories = true,
}
labels["group theory"] = {
display = "[[group theory]]",
topical_categories = true,
}
labels["gun mechanisms"] = {
aliases = {"firearm mechanism", "firearm mechanisms", "gun mechanism"},
display = "[[firearm]]s",
topical_categories = true,
}
labels["gun sports"] = {
aliases = {"shooting sports"},
display = "[[gun]] [[sport]]s",
topical_categories = true,
}
labels["gymnastics"] = {
display = "[[gymnastics]]",
topical_categories = true,
}
labels["gynaecology"] = {
aliases = {"gynecology"},
display = "[[gynaecology]]",
topical_categories = true,
}
labels["hair color"] = {
display = "[[hair]] [[color]]",
topical_categories = "Hair colors",
}
labels["hairdressing"] = {
display = "[[hairdressing]]",
topical_categories = true,
}
labels["handball"] = {
display = "[[handball]]",
topical_categories = true,
}
labels["Hawaiian mythology"] = {
display = "[[Hawaiian]] [[mythology]]",
topical_categories = true,
}
labels["เครื่องสวมหัว"] = {
aliases = {"headwear"},
display = "เครื่องนุ่งห่ม",
topical_categories = true,
}
labels["healthcare"] = {
display = "[[healthcare]]",
topical_categories = true,
}
labels["helminthology"] = {
display = "[[helminthology]]",
topical_categories = true,
}
labels["โลหิตวิทยา"] = {
aliases = {"hematology", "haematology"},
display = "[[โลหิตวิทยา]]",
topical_categories = true,
}
labels["มุทราศาสตร์"] = {
aliases = {"heraldry"},
display = "[[มุทราศาสตร์]]",
topical_categories = true,
}
labels["herbalism"] = {
display = "[[herbalism]]",
topical_categories = true,
}
labels["herpetology"] = {
display = "[[herpetology]]",
topical_categories = true,
}
labels["ศาสนาฮินดู"] = {
aliases = {"Hinduism", "ฮินดู", "Brahmanism", "พราหมณ์", "ศาสนาพราหมณ์"},
display = "[[ศาสนาฮินดู]]",
topical_categories = true,
}
labels["Hindutva"] = {
display = "[[Hindutva]]",
topical_categories = true,
}
labels["historiography"] = {
display = "[[historiography]]",
topical_categories = true,
}
labels["history"] = {
display = "[[history]]",
topical_categories = true,
}
labels["historical linguistics"] = {
display = "[[historical linguistics]]",
topical_categories = "Linguistics",
}
labels["hockey"] = {
display = "[[field hockey]] or [[ice hockey]]",
topical_categories = {"Field hockey", "Ice hockey"},
}
labels["homeopathy"] = {
display = "[[homeopathy]]",
topical_categories = true,
}
labels["horse color"] = {
display = "[[horse]] [[color]]",
topical_categories = "Horse colors",
}
labels["horse racing"] = {
display = "[[horse racing]]",
topical_categories = true,
}
labels["horticulture"] = {
aliases = {"gardening"},
display = "[[horticulture]]",
topical_categories = true,
}
labels["HTML"] = {
display = "[[Hypertext Markup Language|HTML]]",
topical_categories = true,
}
labels["human resources"] = {
display = "[[human resources]]",
topical_categories = true,
}
labels["humanities"] = {
display = "[[humanities]]",
topical_categories = true,
}
labels["hunting"] = {
display = "[[hunting#Noun|hunting]]",
topical_categories = true,
}
labels["hurling"] = {
display = "[[hurling#Noun|hurling]]",
topical_categories = true,
}
labels["hydroacoustics"] = {
Wikipedia = true,
topical_categories = true,
}
labels["อุทกวิทยา"] = {
aliases = {"hydrology"},
display = "[[อุทกวิทยา]]",
topical_categories = true,
}
labels["ice hockey"] = {
display = "[[ice hockey]]",
topical_categories = true,
}
labels["ichthyology"] = {
display = "[[ichthyology]]",
topical_categories = true,
}
labels["idol fandom"] = {
display = "[[idol]] [[fandom]]",
topical_categories = true,
}
labels["immunochemistry"] = {
display = "[[immunochemistry]]",
topical_categories = true,
}
labels["immunology"] = {
display = "[[immunology]]",
topical_categories = true,
}
labels["import/export"] = {
display = "[[import#Noun|import]]/[[export#Noun|export]]",
topical_categories = true,
}
labels["Indo-European studies"] = {
aliases = {"indo-european studies"},
display = "[[Indo-European studies]]",
topical_categories = true,
}
labels["information science"] = {
display = "[[information science]]",
topical_categories = true,
}
labels["information theory"] = {
display = "[[information theory]]",
topical_categories = true,
}
labels["เทคโนโลยีสารสนเทศ"] = {
aliases = {"information technology", "IT", "ไอที"},
display = "[[เทคโนโลยีสารสนเทศ]]",
topical_categories = "การคอมพิวเตอร์",
}
labels["inheritance law"] = {
display = "[[inheritance law]]",
topical_categories = true,
}
labels["inorganic chemistry"] = {
display = "[[inorganic chemistry]]",
topical_categories = true,
}
labels["insurance"] = {
display = "[[insurance]]",
topical_categories = true,
}
labels["กฎหมายระหว่างประเทศ"] = {
aliases = {"international law", "กฎหมายนานาชาติ"},
display = "[[กฎหมายระหว่างประเทศ]]",
topical_categories = true,
}
labels["ความสัมพันธ์ระหว่างประเทศ"] = {
aliases = {"international relations"},
display = "[[ความสัมพันธ์ระหว่างประเทศ]]",
topical_categories = true,
}
labels["international standards"] = {
aliases = {"international standard", "ISO", "International Organization for Standardization", "International Organisation for Standardisation"},
Wikipedia = "International standard",
}
labels["อินเทอร์เน็ต"] = {
aliases = {"Internet", "internet", "online", "ออนไลน์"},
display = "[[อินเทอร์เน็ต]]",
topical_categories = true,
}
labels["Iranian mythology"] = {
display = "[[Iranian]] [[mythology]]",
topical_categories = true,
}
labels["Irish mythology"] = {
display = "[[Irish]] [[mythology]]",
topical_categories = true,
}
labels["ศาสนาอิสลาม"] = {
aliases = {"Islam", "islam", "Islamic", "อิสลาม", "Muslim", "มุสลิม"},
display = "[[ศาสนาอิสลาม]]",
topical_categories = true,
}
labels["การเงินอิสลาม"] = {
aliases = {"Islamic finance", "Islamic banking", "Muslim finance", "Muslim banking", "Sharia-compliant finance"},
Wikipedia = true,
topical_categories = true,
}
labels["กฎหมายอิสลาม"] = {
aliases = {"Islamic law", "Islamic legal", "Sharia"},
Wikipedia = true,
topical_categories = true,
}
labels["Jainism"] = {
display = "[[Jainism]]",
Wikipedia = true,
topical_categories = true,
}
labels["บันเทิงคดีญี่ปุ่น"] = {
-- aliases = {"anime", "manga", "anime and manga", "manga and anime"},
aliases = {"Japanese fiction"},
display = "[[บันเทิงคดี]][[ญี่ปุ่น]]",
Wikipedia = true,
topical_categories = true,
}
labels["Japanese god"] = {
display = "[[Japanese#Adjective|Japanese]] [[mythology]]",
topical_categories = "Japanese deities",
}
labels["Japanese mythology"] = {
display = "[[Japanese#Adjective|Japanese]] [[mythology]]",
topical_categories = true,
}
labels["Japanese pornography"] = {
aliases = {"Japanese porn", "hentai", "adult anime", "erotic anime", "ero anime"},
display = "[[Japanese#Adjective|Japanese]] [[pornography]]",
Wikipedia = true,
topical_categories = true,
}
labels["Java programming language"] = {
aliases = {"JavaPL", "Java PL"},
display = "[[w:Java (programming language)|Java programming language]]",
Wikipedia = "Java (programming language)",
topical_categories = true,
}
labels["jazz"] = {
display = "[[jazz#Noun|jazz]]",
topical_categories = true,
}
labels["jewelry"] = {
aliases = {"jewellery"},
display = "[[jewelry]]",
topical_categories = true,
}
labels["Jewish law"] = {
aliases = {"Halacha", "Halachah", "Halakha", "Halakhah", "halacha", "halachah", "halakha", "halakhah", "Jewish Law", "jewish law"},
display = "[[Jewish]] [[law]]",
topical_categories = true,
}
labels["Germanic paganism"] = {
aliases = {"Asatru", "Ásatrú", "Germanic neopaganism", "Germanic Paganism", "Heathenry", "heathenry", "Norse neopaganism", "Norse paganism"},
display = "[[Germanic#Adjective|Germanic]] [[paganism]]",
topical_categories = true,
}
labels["journalism"] = {
display = "[[journalism]]",
topical_categories = "Mass media",
}
labels["Judaism"] = {
display = "[[Judaism]]",
topical_categories = true,
}
labels["judo"] = {
display = "[[judo]]",
topical_categories = true,
}
labels["juggling"] = {
display = "[[juggling#Noun|juggling]]",
topical_categories = true,
}
labels["karuta"] = {
display = "[[karuta]]",
topical_categories = true,
}
labels["kendo"] = {
display = "[[kendo]]",
topical_categories = true,
}
labels["knitting"] = {
display = "[[knitting#Noun|knitting]]",
topical_categories = true,
}
labels["labour"] = {
aliases = {"labor", "labour movement", "labor movement"},
display = "[[labour]]",
topical_categories = true,
}
labels["lacrosse"] = {
display = "[[lacrosse]]",
topical_categories = true,
}
labels["กฎหมาย"] = {
aliases = {"law", "legal", "กฎ", "นิติ", "นิติศาสตร์"},
display = "[[กฎหมาย]]",
topical_categories = true,
}
labels["law enforcement"] = {
aliases = {"police", "policing"},
display = "[[law enforcement]]",
topical_categories = true,
}
labels["leatherworking"] = {
display = "[[leatherworking]]",
topical_categories = true,
}
labels["leftism"] = {
display = "[[leftism]]",
topical_categories = true,
}
labels["letterpress"] = {
aliases = {"metal type", "metal typesetting"},
display = "[[letterpress]] [[typography]]",
topical_categories = "การเรียงพิมพ์",
}
labels["ศัพทานุกรมศาสตร์"] = {
aliases = {"ศัพทานุกรม", "lexicography"},
display = "[[ศัพทานุกรมศาสตร์]]",
topical_categories = true,
}
labels["แอลจีบีทีคิว"] = {
aliases = {"แอลจีบีที", "แอลจีบีทีคิวไอเอ", "LGBT", "LGBT+", "LGBT*", "LGBTQ", "LGBTQ+", "LGBTQ*", "LGBTQIA", "LGBTQIA+", "LGBTQIA*"},
display = "[[แอลจีบีทีคิว]]",
topical_categories = true,
}
labels["liberalism"] = {
display = "[[liberalism]]",
topical_categories = true,
}
labels["บรรณารักษศาสตร์"] = {
aliases = {"library science"},
display = "[[บรรณารักษศาสตร์]]",
topical_categories = true,
}
labels["lichenology"] = {
display = "[[lichenology]]",
topical_categories = true,
}
labels["limnology"] = {
display = "[[limnology]]",
topical_categories = "Ecology",
}
labels["ลิพิด"] = {
aliases = {"lipid"},
display = "[[ชีวเคมี]]",
topical_categories = true,
}
labels["linear algebra"] = {
aliases = {"vector algebra"},
display = "[[linear algebra]]",
topical_categories = true,
}
labels["linguistic morphology"] = {
display = "[[linguistic]] [[morphology]]",
topical_categories = true,
}
labels["ภาษาศาสตร์"] = {
aliases = {"linguistics", "linguistic", "philology", "นิรุกติศาสตร์", "นิรุกติ"},
display = "[[ภาษาศาสตร์]]",
topical_categories = true,
}
labels["วรรณกรรม"] = {
aliases = {"literature", "วรรณ", "วรรณคดี"},
display = "[[วรรณกรรม]]",
topical_categories = true,
}
labels["ตรรกศาสตร์"] = {
aliases = {"logic", "ตรรก", "ตรรกะ", "ลอจิก"},
display = "[[ตรรกศาสตร์]]",
topical_categories = true,
}
labels["logistics"] = {
display = "[[logistics]]",
topical_categories = true,
}
labels["luge"] = {
display = "[[luge]]",
topical_categories = true,
}
labels["machining"] = {
display = "[[machining#Noun|machining]]",
topical_categories = true,
}
labels["machine learning"] = {
aliases = {"ML"},
display = "[[machine learning]]",
topical_categories = true,
}
labels["macroeconomics"] = {
display = "[[macroeconomics]]",
topical_categories = "Economics",
}
labels["mahjong"] = {
display = "[[mahjong]]",
topical_categories = true,
}
labels["malacology"] = {
display = "[[malacology]]",
topical_categories = true,
}
labels["mammalogy"] = {
display = "[[mammalogy]]",
topical_categories = true,
}
labels["management"] = {
display = "[[management]]",
topical_categories = true,
}
labels["มังงะ"] = {
aliases = {"manga"},
display = "[[มังงะ]]",
topical_categories = "บันเทิงคดีญี่ปุ่น",
}
labels["manhua"] = {
display = "[[manhua]]",
topical_categories = "บันเทิงคดีจีน",
}
labels["manhwa"] = {
display = "[[manhwa]]",
topical_categories = "บันเทิงคดีเกาหลี",
}
labels["Manichaeism"] = {
display = "[[Manichaeism]]",
topical_categories = true,
}
labels["manufacturing"] = {
display = "[[manufacturing#Noun|manufacturing]]",
topical_categories = true,
}
labels["Maoism"] = {
display = "[[Maoism]]",
topical_categories = true,
}
labels["marching"] = {
display = "[[marching#Noun|marching]]",
topical_categories = true,
}
labels["marine biology"] = {
aliases = {"coral science"},
display = "[[marine biology]]",
topical_categories = true,
}
labels["การตลาด"] = {
aliases = {"marketing"},
display = "[[การตลาด]]",
topical_categories = true,
}
labels["ศิลปะการต่อสู้ป้องกันตัว"] = {
aliases = {"martial arts", "martial art", "ศิลปะการป้องกันตัว", "ศิลปะการต่อสู้"},
display = "[[ศิลปะการต่อสู้ป้องกันตัว]]",
topical_categories = true,
}
labels["Marxism"] = {
display = "[[Marxism]]",
topical_categories = true,
}
labels["masonry"] = {
display = "[[masonry]]",
topical_categories = true,
}
labels["massage"] = {
display = "[[massage]]",
topical_categories = true,
}
labels["materials science"] = {
display = "[[materials science]]",
topical_categories = true,
}
labels["mathematical analysis"] = {
aliases = {"analysis"},
display = "[[mathematical analysis]]",
topical_categories = true,
}
labels["คณิตศาสตร์"] = {
aliases = {"mathematics", "math", "maths", "คณิต"},
display = "[[คณิตศาสตร์]]",
topical_categories = true,
}
labels["measure theory"] = {
display = "[[measure theory]]",
topical_categories = true,
}
labels["mechanical engineering"] = {
display = "[[mechanical engineering]]",
topical_categories = true,
}
labels["mechanics"] = {
display = "[[mechanics]]",
topical_categories = true,
}
labels["media"] = {
display = "[[media]]",
topical_categories = true,
}
labels["mediaeval folklore"] = {
aliases = {"medieval folklore"},
display = "[[mediaeval]] [[folklore]]",
topical_categories = "European folklore",
}
labels["medical genetics"] = {
display = "[[medical]] [[genetics]]",
topical_categories = true,
}
labels["medical sign"] = {
display = "[[medicine]]",
topical_categories = "Medical signs and symptoms",
}
labels["แพทยศาสตร์"] = {
aliases = {"medicine", "medical", "แพทย์", "การแพทย์"},
display = "[[แพทยศาสตร์]]",
topical_categories = true,
}
labels["Meitei god"] = {
display = "[[Meitei]] [[mythology]]",
topical_categories = "Meitei deities",
}
labels["mental health"] = {
display = "[[mental health]]",
topical_categories = true,
}
labels["Mesopotamian mythology"] = {
display = "[[Mesopotamian]] [[mythology]]",
topical_categories = true,
}
labels["metadata"] = {
display = "[[metadata]]",
topical_categories = "Data management",
}
labels["โลหวิทยา"] = {
aliases = {"metallurgy"},
display = "[[โลหวิทยา]]",
topical_categories = true,
}
labels["metalworking"] = {
display = "[[metalworking]]",
topical_categories = true,
}
labels["metaphysics"] = {
display = "[[metaphysics]]",
topical_categories = true,
}
labels["อุตุนิยมวิทยา"] = {
aliases = {"meteorology", "อุตุนิยม", "อุตุ"},
display = "[[อุตุนิยมวิทยา]]",
topical_categories = true,
}
labels["Methodism"] = {
aliases = {"Methodist", "methodism", "methodist"},
display = "[[Methodism]]",
topical_categories = true,
}
labels["มาตรวิทยา"] = {
aliases = {"metrology", "มาตร"},
display = "[[มาตรวิทยา]]",
topical_categories = true,
}
labels["microbiology"] = {
display = "[[microbiology]]",
topical_categories = true,
}
labels["microelectronics"] = {
display = "[[microelectronics]]",
topical_categories = true,
}
labels["micronationalism"] = {
display = "[[micronationalism]]",
topical_categories = true,
}
labels["microscopy"] = {
display = "[[microscopy]]",
topical_categories = true,
}
labels["milling"] = {
display = "[[milling]]",
topical_categories = true,
}
labels["การทหาร"] = {
aliases = {"military", "ทหาร"},
display = "[[การทหาร]]",
topical_categories = true,
}
labels["Minecraft"] = {
display = "''[[Minecraft]]''",
topical_categories = true,
}
labels["วิทยาแร่"] = {
aliases = {"mineralogy", "แร่วิทยา"},
display = "[[วิทยาแร่]]",
topical_categories = true,
}
labels["mining"] = {
display = "[[mining#Noun|mining]]",
topical_categories = true,
}
labels["molecular biology"] = {
display = "[[molecular biology]]",
topical_categories = true,
}
labels["ราชาธิปไตย"] = {
aliases = {"monarchy"},
display = "[[ราชาธิปไตย]]",
topical_categories = true,
}
labels["money"] = {
display = "[[money]]",
topical_categories = true,
}
labels["Mormonism"] = {
display = "[[Mormonism]]",
topical_categories = true,
}
labels["motorcycling"] = {
aliases = {"motorcycle", "motorcycles", "motorbike"},
display = "[[motorcycling#Noun|motorcycling]]",
topical_categories = "Motorcycles",
}
-- There are other types of racing, but 99% of the time "racing" on its own refers to motorsports
labels["motor racing"] = {
aliases = {"motor sport", "motorsport", "motorsports", "racing"},
display = "[[motor racing]]",
topical_categories = true,
}
labels["multiplicity"] = {
display = "{{l|en|multiplicity|id=multiple personalities}}",
topical_categories = "Multiplicity (psychology)",
}
labels["ดนตรี"] = {
aliases = {"music"},
display = "[[ดนตรี]]",
topical_categories = true,
}
labels["music industry"] = {
Wikipedia = true,
topical_categories = true,
}
labels["musicology"] = {
display = "[[musicology]]",
topical_categories = "ดนตรี",
}
labels["mycology"] = {
display = "[[mycology]]",
topical_categories = true,
}
labels["ปรัมปราวิทยา"] = {
aliases = {"mythology"},
display = "[[ปรัมปราวิทยา]]",
topical_categories = true,
}
labels["นาโนเทคโนโลยี"] = {
aliases = {"nanotechnology", "nanotech", "nano", "เทคโนโลยีนาโน", "นาโนเทค", "นาโน"},
display = "[[นาโนเทคโนโลยี]]",
topical_categories = true,
}
labels["narratology"] = {
display = "[[narratology]]",
topical_categories = true,
}
labels["การเดินเรือ"] = {
aliases = {"nautical"},
display = "[[การเดินเรือ]]",
topical_categories = true,
}
labels["navigation"] = {
display = "[[navigation]]",
topical_categories = true,
}
labels["ลัทธินาซี"] = { -- see also Neo-Nazism
aliases = {"Nazism", "nazism", "Nazi", "nazi", "Nazis", "nazis", "นาซี"},
Wikipedia = true,
topical_categories = true,
}
labels["nematology"] = {
display = "[[nematology]]",
topical_categories = "Zoology",
}
labels["ลัทธินีโอ-นาซี"] = { -- Often used to indicate Nazi-used jargon; compare "white supremacist ideology"
aliases = {"neo-Nazism", "Neo-Nazism", "Neo-nazism", "neo-nazism", "Neo-Nazi", "Neo-nazi", "neo-Nazi", "neo-nazi", "Neo-Nazis", "Neo-nazis", "neo-Nazis", "neo-nazis", "NeoNazism", "Neonazism", "neoNazism", "neonazism", "NeoNazi", "Neonazi", "neoNazi", "neonazi", "NeoNazis", "Neonazis", "neoNazis", "neonazis", "ลัทธินีโอนาซี", "นีโอ-นาซี", "นีโอนาซี"},
Wikipedia = true,
topical_categories = true,
}
labels["netball"] = {
display = "[[netball]]",
topical_categories = true,
}
labels["networking"] = {
display = "[[networking#Noun|networking]]",
topical_categories = true,
}
labels["neuroanatomy"] = {
display = "[[neuroanatomy]]",
topical_categories = true,
}
labels["neurology"] = {
display = "[[neurology]]",
topical_categories = true,
}
labels["neuroscience"] = {
display = "[[neuroscience]]",
topical_categories = true,
}
labels["neurosurgery"] = {
display = "[[neurosurgery]]",
topical_categories = true,
}
labels["หนังสือพิมพ์"] = {
aliases = {"newspapers", "newspaper", "นสพ"},
display = "[[หนังสือพิมพ์]]",
topical_categories = true,
}
labels["Norse god"] = {
aliases = {"Norse goddess", "Norse deity"},
display = "[[Norse]] [[mythology]]",
topical_categories = "Norse deities",
}
labels["Norse mythology"] = {
display = "[[Norse]] [[mythology]]",
topical_categories = true,
}
labels["nuclear energy"] = {
display = "[[nuclear energy]]",
topical_categories = true,
}
labels["nuclear physics"] = {
display = "[[nuclear physics]]",
topical_categories = true,
}
labels["number theory"] = {
display = "[[number theory]]",
topical_categories = true,
}
labels["กษาปณวิทยา"] = {
aliases = {"numismatics", "กษาปณ์"},
display = "[[กษาปณวิทยา]]",
topical_categories = "Currency",
}
labels["โภชนาการ"] = {
aliases = {"nutrition", "โภชนศาสตร์", "โภชนวิทยา", "โภชน์"},
display = "[[โภชนาการ]]",
topical_categories = true,
}
labels["object-oriented programming"] = {
aliases = {"object-oriented", "OOP"},
display = "[[object-oriented programming]]",
topical_categories = true,
}
labels["obstetrics"] = {
aliases = {"obstetric"},
display = "[[obstetrics]]",
topical_categories = true,
}
labels["occult"] = {
display = "[[occult]]",
topical_categories = true,
}
labels["oceanography"] = {
display = "[[oceanography]]",
topical_categories = true,
}
labels["oenology"] = {
display = "[[oenology]]",
topical_categories = true,
}
labels["oil industry"] = {
aliases = {"oil drilling"},
display = "[[w:Petroleum industry|oil industry]]",
Wikipedia = true,
topical_categories = true,
}
labels["วิทยามะเร็ง"] = {
aliases = {"วิทยาเนื้องอก", "oncology"},
display = "[[วิทยามะเร็ง]]",
topical_categories = true,
}
labels["เกมออนไลน์"] = {
aliases = {"online gaming", "online games", "MMO", "MMORPG", "เอ็มเอ็มโอ", "เอ็มเอ็มโออาร์พีจี"},
display = "[[เกม]][[ออนไลน์]]",
topical_categories = "วิดีโอเกม",
}
labels["นามศาสตร์"] = {
aliases = {"onomastics"},
display = "[[นามศาสตร์]]",
topical_categories = true,
}
labels["opera"] = {
display = "[[opera]]",
topical_categories = true,
}
labels["ระบบปฏิบัติการ"] = {
aliases = {"operating systems", "OS", "โอเอส"},
display = "[[ระบบปฏิบัติการ]]",
topical_categories = "ซอฟต์แวร์",
}
labels["ophthalmology"] = {
display = "[[ophthalmology]]",
topical_categories = true,
}
labels["ทัศนศาสตร์"] = {
aliases = {"optics", "ทัศน"},
display = "[[ทัศนศาสตร์]]",
topical_categories = {"ทัศนศาสตร์"},
}
labels["organic chemistry"] = {
display = "[[organic chemistry]]",
topical_categories = true,
}
labels["ornithology"] = {
display = "[[ornithology]]",
topical_categories = true,
}
labels["orthodontics"] = {
display = "[[orthodontics]]",
topical_categories = "Dentistry",
}
labels["orthography"] = {
display = "[[orthography]]",
topical_categories = true,
}
labels["paganism"] = {
aliases = {"pagan", "neopagan", "neopaganism", "neo-pagan", "neo-paganism"},
display = "[[paganism]]",
topical_categories = true,
}
labels["pain"] = {
display = "[[medicine]]",
topical_categories = true,
}
labels["paintball"] = {
display = "[[paintball]]",
topical_categories = true,
}
labels["painting"] = {
display = "[[painting#Noun|painting]]",
topical_categories = true,
}
labels["อักขรวิทยาโบราณ"] = {
aliases = {"palaeography", "paleography"},
display = "[[อักขรวิทยาโบราณ]]",
topical_categories = true,
}
labels["paleontology"] = {
aliases = {"palaeontology"},
display = "[[paleontology]]",
topical_categories = true,
}
labels["palmistry"] = {
display = "[[palmistry]]",
topical_categories = true,
}
labels["palynology"] = {
display = "[[palynology]]",
topical_categories = true,
}
labels["ปรจิตวิทยา"] = {
aliases = {"parapsychology"},
display = "[[ปรจิตวิทยา]]",
topical_categories = true,
}
labels["parasitology"] = {
display = "[[parasitology]]",
topical_categories = true,
}
labels["particle physics"] = {
display = "[[particle physics]]",
topical_categories = true,
}
labels["pasteurisation"] = {
display = "[[pasteurisation]]",
topical_categories = true,
}
labels["patent law"] = {
aliases = {"patents"},
display = "[[patent#Noun|patent]] [[law]]",
topical_categories = true,
}
labels["พยาธิวิทยา"] = {
aliases = {"พยาธิ", "pathology"},
display = "[[พยาธิวิทยา]]",
topical_categories = {"พยาธิวิทยา"},
}
labels["pensions"] = {
display = "[[pension]]s",
topical_categories = true,
}
labels["pesäpallo"] = {
aliases = {"pesapallo"},
display = "[[pesäpallo]]",
topical_categories = true,
}
labels["petrochemistry"] = {
display = "[[petrochemistry]]",
topical_categories = true,
}
labels["petrology"] = {
display = "[[petrology]]",
topical_categories = true,
}
labels["เภสัชวิทยา"] = {
aliases = {"pharmacology"},
display = "[[เภสัชวิทยา]]",
topical_categories = true,
}
labels["pharmacy"] = {
display = "[[pharmacy]]",
topical_categories = true,
}
labels["pharyngology"] = {
display = "[[pharyngology]]",
topical_categories = true,
}
labels["philately"] = {
display = "[[philately]]",
topical_categories = true,
}
labels["ปรัชญา"] = {
aliases = {"philosophy"},
display = "[[ปรัชญา]]",
topical_categories = true,
}
labels["สัทศาสตร์"] = {
aliases = {"phonetics"},
display = "[[สัทศาสตร์]]",
topical_categories = true,
}
labels["สัทวิทยา"] = {
aliases = {"phonology"},
display = "[[สัทวิทยา]]",
topical_categories = true,
}
labels["การถ่ายรูป"] = {
aliases = {"photography", "การถ่ายภาพ", "ถ่ายรูป", "ถ่ายภาพ"},
display = "[[การถ่ายรูป]]",
topical_categories = true,
}
labels["phrenology"] = {
display = "[[phrenology]]",
topical_categories = true,
}
labels["เคมีเชิงฟิสิกส์"] = {
aliases = {"physical chemistry"},
display = "[[เคมีเชิงฟิสิกส์]]",
topical_categories = true,
}
labels["ฟิสิกส์"] = {
aliases = {"physics"},
display = "[[ฟิสิกส์]]",
topical_categories = true,
}
labels["สรีรวิทยา"] = {
aliases = {"physiology", "สรีร"},
display = "[[สรีรวิทยา]]",
topical_categories = true,
}
labels["phytopathology"] = {
display = "[[phytopathology]]",
topical_categories = true,
}
labels["pinball"] = {
display = "[[pinball]]",
topical_categories = true,
}
labels["วิทยาดาวเคราะห์"] = {
aliases = {"planetology", "ดาวเคราะห์"},
display = "[[วิทยาดาวเคราะห์]]",
topical_categories = true,
}
labels["playground games"] = {
aliases = {"playground game"},
display = "[[playground]] [[game]]s",
topical_categories = true,
}
labels["poetry"] = {
display = "[[poetry]]",
topical_categories = true,
}
labels["โปเกมอน"] = {
aliases = {"Pokémon", "Pokemon"},
display = "''[[w:โปเกมอน|โปเกมอน]]''",
Wikipedia = true,
topical_categories = true,
}
labels["poker"] = {
display = "[[poker]]",
topical_categories = true,
}
labels["poker slang"] = {
display = "[[poker]] [[slang]]",
topical_categories = "Poker",
}
labels["political science"] = {
display = "[[political science]]",
topical_categories = true,
}
labels["การเมือง"] = {
aliases = {"politics", "political"},
display = "[[การเมือง]]",
topical_categories = true,
}
labels["Australian politics"] = {
display = "[[w:Politics of Australia|Australian politics]]",
Wikipedia = "Politics of Australia",
topical_categories = true,
}
labels["Bangladeshi politics"] = {
display = "[[w:Politics of Bangladesh|Bangladeshi politics]]",
Wikipedia = "Politics of Bangladesh",
topical_categories = true,
}
labels["Canadian politics"] = {
display = "[[w:Politics of Canada|Canadian politics]]",
Wikipedia = "Politics of Canada",
topical_categories = true,
}
labels["European politics"] = {
display = "[[w:Politics of Europe|European politics]]",
Wikipedia = "Politics of Europe",
topical_categories = true,
}
labels["EU politics"] = {
display = "[[w:Politics of the European Union|EU politics]]",
Wikipedia = "Politics of the European Union",
topical_categories = true,
}
labels["French politics"] = {
display = "[[w:Politics of France|French politics]]",
Wikipedia = "Politics of France",
topical_categories = true,
}
labels["German politics"] = {
display = "[[w:Politics of Germany|German politics]]",
Wikipedia = "Politics of Germany",
topical_categories = true,
}
labels["Hong Kong politics"] = {
aliases = {"HK politics"},
display = "[[w:Politics of Hong Kong|HK politics]]",
Wikipedia = "Politics of Hong Kong",
topical_categories = true,
}
labels["Indian politics"] = {
display = "[[w:Politics of India|Indian politics]]",
Wikipedia = "Politics of India",
topical_categories = true,
}
labels["Indonesian politics"] = {
aliases = {"Indonesia politics"},
display = "[[w:Politics of Indonesia|Indonesian politics]]",
Wikipedia = "Politics of Indonesia",
topical_categories = true,
}
labels["Irish politics"] = {
display = "[[w:Politics of the Republic of Ireland|Irish politics]]",
Wikipedia = "Politics of the Republic of Ireland",
topical_categories = true,
}
labels["Malaysian politics"] = {
aliases = {"Malaysia politics"},
display = "[[w:Politics of Malaysia|Malaysian politics]]",
Wikipedia = "Politics of Malaysia",
topical_categories = true,
}
labels["New Zealand politics"] = {
display = "[[w:Politics of New Zealand|New Zealand politics]]",
Wikipedia = "Politics of New Zealand",
topical_categories = true,
}
labels["Pakistani politics"] = {
display = "[[w:Politics of Pakistan|Pakistani politics]]",
Wikipedia = "Politics of Pakistan",
topical_categories = true,
}
labels["Palestinian politics"] = {
aliases = {"Palestine politics"},
display = "[[w:Politics of the Palestinian National Authority|Palestinian politics]]",
Wikipedia = "Politics of the Palestinian National Authority",
topical_categories = true,
}
labels["Philippine politics"] = {
aliases = {"Filipino politics"},
display = "[[w:Politics of the Philippines|Philippine politics]]",
Wikipedia = "Politics of the Philippines",
topical_categories = true,
}
labels["Spanish politics"] = {
display = "[[w:Politics of Spain|Spanish politics]]",
Wikipedia = "Politics of Spain",
topical_categories = true,
}
labels["Swiss politics"] = {
display = "[[w:Politics of Switzerland|Swiss politics]]",
Wikipedia = "Politics of the Switzerland",
topical_categories = true,
}
labels["UK politics"] = {
display = "[[w:Politics of the United Kingdom|UK politics]]",
Wikipedia = "Politics of the United Kingdom",
topical_categories = true,
}
labels["US politics"] = {
display = "[[w:Politics of the United States|US politics]]",
Wikipedia = "Politics of the United States",
topical_categories = true,
}
labels["Philmont Scout Ranch"] = {
aliases = {"Philmont"},
display = "[[w:Philmont Scout Ranch|Philmont Scout Ranch]]",
Wikipedia = true,
topical_categories = true,
}
labels["สื่อลามก"] = {
aliases = {"pornography", "porn", "porno", "สื่อลามกอนาจาร", "หนังผู้ใหญ่"},
display = "[[สื่อลามก]]",
topical_categories = true,
}
labels["Portuguese folklore"] = {
display = "[[Portuguese#Adjective|Portuguese]] [[folklore]]",
topical_categories = "European folklore",
}
labels["post"] = {
display = "[[post#Etymology 2|post]]",
topical_categories = true,
}
labels["potential theory"] = {
display = "[[potential theory]]",
topical_categories = true,
}
labels["pottery"] = {
display = "[[pottery]]",
topical_categories = "Ceramics",
}
labels["pragmatics"] = {
display = "[[pragmatics]]",
topical_categories = true,
}
labels["การพิมพ์"] = {
aliases = {"printing"},
display = "[[การพิมพ์]]",
topical_categories = true,
}
labels["probability theory"] = {
display = "[[probability theory]]",
topical_categories = true,
}
labels["professional wrestling"] = {
aliases = {"pro wrestling"},
display = "[[professional wrestling]]",
topical_categories = true,
}
labels["การเขียนโปรแกรม"] = {
aliases = {"programming", "computer programming"},
display = "[[การเขียนโปรแกรม]]",
topical_categories = true,
}
labels["property law"] = {
aliases = {"land law", "real estate law"},
display = "[[property law]]",
topical_categories = true,
}
labels["สัทสัมพันธ์"] = {
aliases = {"prosody", "ฉันทลักษณ์"},
display = "[[สัทสัมพันธ์]]",
topical_categories = true,
}
labels["Protestantism"] = {
aliases = {"protestantism", "Protestant", "protestant"},
display = "[[Protestantism]]",
topical_categories = true,
}
labels["pseudoscience"] = {
display = "[[pseudoscience]]",
topical_categories = true,
}
labels["psychiatry"] = {
display = "[[psychiatry]]",
topical_categories = true,
}
labels["psychoanalysis"] = {
display = "[[psychoanalysis]]",
topical_categories = true,
}
labels["จิตวิทยา"] = {
aliases = {"psychology"},
display = "[[จิตวิทยา]]",
topical_categories = true,
}
labels["จิตบำบัด"] = {
aliases = {"psychotherapy"},
display = "[[จิตบำบัด]]",
topical_categories = true,
}
labels["publishing"] = {
display = "[[publishing#Noun|publishing]]",
topical_categories = true,
}
labels["pulmonology"] = {
display = "[[pulmonology]]",
topical_categories = true,
}
labels["pyrotechnics"] = {
display = "[[pyrotechnics]]",
topical_categories = true,
}
labels["QAnon"] = {
aliases = {"Qanon"},
Wikipedia = true,
topical_categories = true,
}
labels["Quakerism"] = {
display = "[[Quakerism]]",
topical_categories = true,
}
labels["quantum computing"] = {
display = "[[quantum computing]]",
topical_categories = true,
}
labels["quantum mechanics"] = {
aliases = {"quantum physics"},
display = "[[quantum mechanics]]",
topical_categories = true,
}
-- TODO: What kind of topic is "radiation"? Is it specific kinds of radiation? That would be a set-type category.
labels["radiation"] = {
display = "[[physics]]",
topical_categories = true,
}
labels["radio"] = {
display = "[[radio]]",
topical_categories = true,
}
labels["Raëlism"] = {
display = "[[Raëlism]]",
topical_categories = true,
}
labels["rail transport"] = {
aliases = {"rail", "railroading", "railroads"},
display = "[[rail transport]]",
topical_categories = "Rail transportation",
}
labels["Rastafari"] = {
aliases = {"Rasta", "rasta", "Rastafarian", "rastafarian", "Rastafarianism"},
display = "[[Rastafari]]",
topical_categories = true,
}
labels["real estate"] = {
display = "[[real estate]]",
topical_categories = true,
}
labels["real tennis"] = {
display = "[[real tennis]]",
topical_categories = "Tennis",
}
labels["recreational mathematics"] = {
display = "[[recreational mathematics]]",
topical_categories = "Mathematics",
}
labels["Reddit"] = {
display = "[[Reddit]]",
topical_categories = true,
}
labels["regular expressions"] = {
aliases = {"regex"},
display = "[[regular expression]]s",
topical_categories = true,
}
labels["relativity"] = {
display = "[[relativity]]",
topical_categories = true,
}
labels["ศาสนา"] = {
aliases = {"religion", "ศาสนศาสตร์", "ศาสน"},
display = "[[ศาสนา]]",
topical_categories = true,
}
labels["rhetoric"] = {
display = "[[rhetoric]]",
topical_categories = true,
}
labels["road transport"] = {
aliases = {"roads"},
display = "[[w:road transport|road transport]]",
Wikipedia = true,
topical_categories = true,
}
labels["วิทยาการหุ่นยนต์"] = {
aliases = {"robotics"},
display = "[[วิทยาการหุ่นยนต์]]",
topical_categories = true,
}
labels["rock paper scissors"] = {
topical_categories = true,
}
labels["roleplaying games"] = {
aliases = {"role playing games", "role-playing games", "RPG", "RPGs"},
display = "[[roleplaying game]]s",
topical_categories = "Role-playing games",
}
labels["roller derby"] = {
display = "[[roller derby]]",
topical_categories = true,
}
labels["Roman Catholicism"] = {
aliases = {"Roman Catholic", "Roman Catholic Church"},
display = "[[Roman Catholicism]]",
topical_categories = true,
}
labels["Roman Empire"] = {
display = "[[Roman Empire]]",
topical_categories = true,
}
labels["Roman mythology"] = {
display = "[[Roman]] [[mythology]]",
topical_categories = true,
}
labels["Roman numerals"] = {
display = "[[Roman numeral]]s",
topical_categories = true,
}
labels["roofing"] = {
display = "[[roofing#Noun|roofing]]",
topical_categories = true,
}
labels["rosiculture"] = {
display = "[[rosiculture]]",
topical_categories = true,
}
labels["rowing"] = {
display = "[[rowing#Noun|rowing]]",
topical_categories = true,
}
labels["Rubik's Cube"] = {
aliases = {"Rubik's cubes"},
display = "[[Rubik's Cube]]",
topical_categories = true,
}
labels["rugby"] = {
display = "[[rugby]]",
topical_categories = true,
}
labels["rugby league"] = {
display = "[[rugby league]]",
topical_categories = true,
}
labels["rugby union"] = {
display = "[[rugby union]]",
topical_categories = true,
}
labels["sailing"] = {
display = "[[sailing#Noun|sailing]]",
topical_categories = true,
}
labels["บันเทิงคดีแนววิทยาศาสตร์"] = {
aliases = {"science fiction", "scifi", "sci fi", "sci-fi", "นิยายวิทยาศาสตร์", "นิยายไซไฟ", "นิยายไซ-ไฟ", "ไซไฟ", "ไซ-ไฟ"},
display = "[[บันเทิงคดีแนววิทยาศาสตร์]]",
topical_categories = true,
}
labels["วิทยาศาสตร์"] = {
aliases = {"sciences", "science", "scientific", "วิทย์", "วิทยา"},
display = "[[วิทยาศาสตร์]]",
topical_categories = true,
}
labels["Scientology"] = {
display = "[[Scientology]]",
topical_categories = true,
}
-- Note: this is the usual term, not "Scottish law".
labels["Scots law"] = {
aliases = {"Scottish law", "Scotland law", "Scots Law", "Scottish Law", "Scotland Law"},
Wikipedia = true,
topical_categories = true,
}
labels["Scouting"] = {
aliases = {"scouting"},
display = "[[scouting]]",
topical_categories = true,
}
labels["Scrabble"] = {
display = "''[[Scrabble]]''",
Wikipedia = true,
topical_categories = true,
}
labels["scrapbooks"] = {
display = "[[scrapbook]]s",
topical_categories = true,
}
labels["sculpture"] = {
display = "[[sculpture]]",
topical_categories = true,
}
labels["seduction community"] = {
aliases = {"pickup artist", "pickup artists", "pickup artistry", "pickup community"},
display = "[[w:Seduction community|seduction community]]",
Wikipedia = true,
topical_categories = true,
}
labels["วิทยาแผ่นดินไหว"] = {
aliases = {"seismology"},
display = "[[วิทยาแผ่นดินไหว]]",
topical_categories = true,
}
labels["semantics"] = {
display = "[[semantics]]",
topical_categories = true,
}
labels["semiotics"] = {
display = "[[semiotics]]",
topical_categories = true,
}
labels["semiconductors"] = {
display = "[[semiconductor]]s",
topical_categories = true,
}
labels["set theory"] = {
display = "[[set theory]]",
topical_categories = true,
}
labels["sewing"] = {
display = "[[sewing#Noun|sewing]]",
topical_categories = true,
}
labels["sex"] = {
display = "[[sex]]",
topical_categories = true,
}
labels["sexology"] = {
display = "[[sexology]]",
topical_categories = true,
}
labels["sex position"] = {
display = "[[sex]]",
topical_categories = "Sex positions",
}
labels["เพศวิถี"] = {
aliases = {"sexuality"},
display = "[[เพศวิถี]]",
topical_categories = {"เพศวิถี"},
}
labels["Shaivism"] = {
display = "[[Shaivism]]",
topical_categories = true,
}
labels["shamanism"] = {
aliases = {"Shamanism"},
display = "[[shamanism]]",
topical_categories = true,
}
labels["Shi'ism"] = {
aliases = {"Shia", "Shi'ite", "Shi'i"},
display = "[[Shia Islam]]",
topical_categories = true,
}
labels["Shinto"] = {
display = "[[Shinto]]",
topical_categories = true,
}
labels["ship parts"] = {
display = "[[การเดินเรือ]]",
topical_categories = "Ship parts",
}
labels["shipping"] = {
display = "[[shipping#Noun|shipping]]",
topical_categories = true,
}
labels["shoemaking"] = {
display = "[[shoemaking]]",
topical_categories = true,
}
labels["shogi"] = {
display = "[[shogi]]",
topical_categories = true,
}
labels["signal processing"] = {
display = "[[w:Signal processing|signal processing]]",
Wikipedia = true,
topical_categories = true,
}
labels["Sikhism"] = {
display = "[[Sikhism]]",
topical_categories = true,
}
labels["singing"] = {
display = "[[singing#Noun|singing]]",
topical_categories = true,
}
labels["skateboarding"] = {
display = "[[skateboarding#Noun|skateboarding]]",
topical_categories = true,
}
labels["skating"] = {
display = "[[skating#Noun|skating]]",
topical_categories = true,
}
labels["skiing"] = {
display = "[[skiing#Noun|skiing]]",
topical_categories = true,
}
labels["skydiving"] = {
display = "[[skydiving#Noun|skydiving]]",
topical_categories = true,
}
labels["Slavic god"] = {
display = "[[Slavic]] [[mythology]]",
topical_categories = "Slavic deities",
}
labels["Slavic mythology"] = {
display = "[[Slavic]] [[mythology]]",
topical_categories = true,
}
labels["smoking"] = {
display = "[[smoking#Noun|smoking]]",
topical_categories = true,
}
labels["snooker"] = {
display = "[[snooker#Noun|snooker]]",
topical_categories = true,
}
labels["snowboarding"] = {
display = "[[snowboarding#Noun|snowboarding]]",
topical_categories = true,
}
labels["ซอกเกอร์"] = {
aliases = {"ฟุตบอล", "soccer", "football", "association football"},
display = "[[ซอกเกอร์]]",
topical_categories = true,
}
labels["สังคมศาสตร์"] = {
aliases = {"social sciences", "social science", "สังคม"},
display = "[[สังคมศาสตร์]]",
topical_categories = true,
}
labels["socialism"] = {
display = "[[socialism]]",
topical_categories = true,
}
labels["สื่อสังคม"] = {
aliases = {"social media", "โซเชียลมีเดีย", "โซเชียล", "สื่อโซเชียล"},
display = "[[สื่อสังคม]]",
topical_categories = true,
}
labels["ภาษาศาสตร์สังคม"] = {
aliases = {"sociolinguistics"},
display = "[[ภาษาศาสตร์สังคม]]",
topical_categories = true,
}
labels["สังคมวิทยา"] = {
aliases = {"sociology"},
display = "[[สังคมวิทยา]]",
topical_categories = true,
}
labels["softball"] = {
display = "[[softball]]",
topical_categories = true,
}
labels["ซอฟต์แวร์"] = {
aliases = {"software"},
display = "[[ซอฟต์แวร์]]",
topical_categories = true,
}
labels["software architecture"] = {
display = "[[software architecture]]",
topical_categories = {"Software engineering", "การเขียนโปรแกรม"},
}
labels["software engineering"] = {
aliases = {"software development"},
display = "[[software engineering]]",
topical_categories = true,
}
labels["soil science"] = {
display = "[[soil science]]",
topical_categories = true,
}
labels["sound"] = {
display = "[[sound#Noun|sound]]",
topical_categories = true,
}
labels["sound engineering"] = {
display = "[[sound engineering]]",
topical_categories = true,
}
labels["South Korean idol fandom"] = {
display = "[[South Korean]] [[idol]] [[fandom]]",
topical_categories = true,
}
labels["South Park"] = {
display = "''[[w:South Park|South Park]]''",
Wikipedia = true,
topical_categories = true,
}
labels["Soviet Union"] = {
aliases = {"USSR"},
display = "[[Soviet Union]]",
topical_categories = true,
}
labels["space flight"] = {
aliases = {"spaceflight", "space travel"},
display = "[[space flight]]",
topical_categories = "Space",
}
labels["space science"] = {
aliases = {"space"},
display = "[[space science]]",
topical_categories = "Space",
}
labels["spectroscopy"] = {
display = "[[spectroscopy]]",
topical_categories = true,
}
labels["speedrunning"] = {
aliases = {"speedrun", "speedruns"},
display = "[[speedrunning]]",
topical_categories = true,
}
labels["spinning"] = {
display = "[[spinning]]",
topical_categories = true,
}
labels["spiritualism"] = {
display = "[[spiritualism]]",
topical_categories = true,
}
labels["กีฬา"] = {
aliases = {"sports", "sport"},
display = "[[กีฬา]]",
topical_categories = true,
}
labels["square dancing"] = {
aliases = {"square dance"},
display = "[[square dancing]]",
topical_categories = true,
}
labels["squash"] = {
display = "[[w:squash (sport)|squash]]",
Wikipedia = "Squash (sport)",
topical_categories = true,
}
labels["statistical mechanics"] = {
display = "[[statistical mechanics]]",
topical_categories = true,
}
labels["สถิติศาสตร์"] = {
aliases = {"statistics", "สถิติ"},
display = "[[สถิติศาสตร์]]",
topical_categories = true,
}
labels["Star Wars"] = {
display = "''[[Star Wars]]''",
topical_categories = true,
}
labels["stock market"] = {
display = "[[stock market]]",
topical_categories = true,
}
labels["stock ticker symbol"] = {
aliases = {"stock symbol"},
display = "[[stock ticker symbol]]",
topical_categories = "Stock symbols for companies",
}
labels["subculture"] = {
display = "[[subculture]]",
topical_categories = "Culture",
}
labels["Sufism"] = {
aliases = {"Sufi Islam"},
display = "[[w:Sufism|Sufism]]",
Wikipedia = true,
topical_categories = true,
}
labels["sumo"] = {
display = "[[sumo]]",
topical_categories = true,
}
labels["supply chain"] = {
display = "[[supply chain]]",
topical_categories = true,
}
labels["surfing"] = {
display = "[[surfing#Noun|surfing]]",
topical_categories = true,
}
labels["surgery"] = {
display = "[[surgery]]",
topical_categories = true,
}
labels["surveying"] = {
display = "[[surveying#Noun|surveying]]",
topical_categories = true,
}
labels["sushi"] = {
display = "[[sushi]]",
topical_categories = true,
}
labels["swimming"] = {
display = "[[swimming#Noun|swimming]]",
topical_categories = true,
}
labels["swords"] = {
display = "[[sword]]s",
topical_categories = true,
}
labels["systematics"] = {
display = "[[systematics]]",
topical_categories = "Taxonomy",
}
labels["systems engineering"] = {
display = "[[systems engineering]]",
topical_categories = true,
}
labels["systems theory"] = {
display = "[[systems theory]]",
topical_categories = true,
}
labels["table tennis"] = {
display = "[[table tennis]]",
topical_categories = true,
}
labels["ศาสนาเต๋า"] = {
aliases = {"Taoism", "Daoism", "เต๋า"},
display = "[[ศาสนาเต๋า]]",
topical_categories = true,
}
labels["tarot"] = {
display = "[[tarot]]",
topical_categories = "Cartomancy",
}
labels["ภาษีอากร"] = {
aliases = {"taxation", "tax", "taxes", "ภาษี", "อากร"},
display = "[[ภาษีอากร]]",
topical_categories = true,
}
labels["อนุกรมวิธาน"] = {
aliases = {"taxonomy"},
display = "[[อนุกรมวิธาน]]",
topical_categories = true,
}
labels["เทคโนโลยี"] = {
aliases = {"technology"},
display = "[[เทคโนโลยี]]",
topical_categories = true,
}
labels["telecommunications"] = {
aliases = {"telecommunication", "telecom"},
display = "[[telecommunications]]",
topical_categories = true,
}
labels["telegraphy"] = {
display = "[[telegraphy]]",
topical_categories = true,
}
labels["telephony"] = {
aliases = {"telephone", "telephones"},
display = "[[telephony]]",
topical_categories = true,
}
labels["television"] = {
aliases = {"TV"},
display = "[[television]]",
topical_categories = true,
}
labels["Tumblr aesthetic"] = {
display = "[[Tumblr]] aesthetic",
topical_categories = "Aesthetics",
}
labels["tennis"] = {
display = "[[tennis]]",
topical_categories = true,
}
labels["teratology"] = {
display = "[[teratology]]",
topical_categories = true,
}
labels["Tetris"] = {
display = "[[Tetris]]",
topical_categories = true,
}
labels["textiles"] = {
display = "[[textiles]]",
topical_categories = true,
}
labels["theater"] = {
aliases = {"theatre"},
display = "[[theater]]",
topical_categories = true,
}
labels["theology"] = {
display = "[[theology]]",
topical_categories = true,
}
labels["thermodynamics"] = {
display = "[[thermodynamics]]",
topical_categories = true,
}
labels["Tibetan Buddhism"] = {
display = "[[Tibetan Buddhism]]",
topical_categories = "ศาสนาพุทธ",
}
labels["tiddlywinks"] = {
display = "[[tiddlywinks]]",
topical_categories = true,
}
labels["TikTok aesthetic"] = {
display = "[[TikTok]] aesthetic",
topical_categories = "Aesthetics",
}
labels["เวลา"] = {
aliases = {"time"},
display = "[[เวลา]]",
topical_categories = true,
}
labels["topology"] = {
display = "[[topology]]",
topical_categories = true,
}
labels["tort law"] = {
display = "[[tort law]]",
topical_categories = "Law",
}
labels["tourism"] = {
display = "[[tourism]]",
topical_categories = true,
}
labels["toxicology"] = {
display = "[[toxicology]]",
topical_categories = true,
}
labels["trading"] = {
display = "[[trading#Noun|trading]]",
topical_categories = true,
}
labels["trading cards"] = {
display = "[[trading card]]s",
topical_categories = true,
}
labels["traditional Chinese medicine"] = {
aliases = {"TCM", "Chinese medicine"},
display = "[[traditional Chinese medicine]]",
topical_categories = true,
}
labels["traditional Korean medicine"] = {
aliases = {"Korean medicine"},
display = "{{w|traditional Korean medicine}}",
topical_categories = true,
}
labels["transgender"] = {
display = "[[transgender]]",
topical_categories = true,
}
labels["translation studies"] = {
display = "[[translation studies]]",
topical_categories = true,
}
labels["transport"] = {
aliases = {"transportation"},
display = "[[transport]]",
topical_categories = true,
}
labels["traumatology"] = {
display = "[[traumatology]]",
topical_categories = "Emergency medicine",
}
labels["travel"] = {
display = "[[travel]]",
topical_categories = true,
}
labels["trigonometry"] = {
display = "[[trigonometry]]",
topical_categories = true,
}
labels["trigonometric function"] = {
display = "[[trigonometry]]",
topical_categories = "Trigonometric functions",
}
labels["trust law"] = {
display = "[[trust law]]",
topical_categories = "Law",
}
labels["two-up"] = {
display = "[[two-up]]",
topical_categories = true,
}
labels["Twitter"] = {
aliases = {"twitter"},
display = "[[Twitter#Proper noun|Twitter]]",
topical_categories = true,
}
labels["การเรียงพิมพ์"] = {
aliases = {"การจัดตัวอักษร", "typography", "typesetting"},
display = "[[การเรียงพิมพ์]]",
topical_categories = true,
}
labels["ufology"] = {
display = "[[ufology]]",
topical_categories = true,
}
labels["underwater diving"] = {
aliases = {"scuba", "scuba diving"},
display = "[[underwater]] [[diving#Noun|diving]]",
topical_categories = true,
}
labels["สหประชาชาติ"] = {
aliases = {"United Nations", "UN", "ยูเอ็น"},
display = "[[สหประชาชาติ]]",
Wikipedia = true,
topical_categories = true,
}
labels["ยูนิโคด"] = {
aliases = {"Unicode", "Unicode standard"},
Wikipedia = true,
topical_categories = true,
}
labels["urban studies"] = {
aliases = {"urbanism", "urban planning"},
display = "[[urban studies]]",
topical_categories = true,
}
labels["urology"] = {
display = "[[urology]]",
topical_categories = true,
}
labels["Vaishnavism"] = {
display = "[[Vaishnavism]]",
topical_categories = true,
}
labels["Valentinianism"] = {
aliases = {"valentinianism"},
display = "[[w:Valentinianism|Valentinianism]]",
Wikipedia = true,
topical_categories = true,
}
labels["Vedic religion"] = {
aliases = {"Vedic Hinduism", "Ancient Hinduism", "ancient Hinduism", "Vedism", "Vedicism"},
display = "[[w:Historical Vedic religion|Vedic religion]]",
Wikipedia = "Historical Vedic religion",
topical_categories = true,
}
labels["ผัก"] = {
aliases = {"vegetable", "vegetables"},
display = "[[ผัก]]",
topical_categories = true,
}
labels["vehicles"] = {
aliases = {"vehicle"},
display = "[[vehicle]]s",
topical_categories = true,
}
labels["สัตวแพทยศาสตร์"] = {
aliases = {"veterinary medicine", "vet", "สัตวแพทย์"},
display = "[[สัตวแพทยศาสตร์]]",
topical_categories = true,
}
labels["video compression"] = {
display = "[[w:Video compression|video compression]]",
Wikipedia = true,
topical_categories = true,
}
labels["วิดีโอเกม"] = {
aliases = {"video games", "video game", "video gaming"},
display = "[[วิดีโอเกม]]",
topical_categories = true,
}
labels["วิทยาไวรัส"] = {
aliases = {"virology", "ไวรัสวิทยา"},
display = "[[วิทยาไวรัส]]",
topical_categories = true,
}
labels["ไวรัส"] = {
aliases = {"virus"},
display = "[[วิทยาไวรัส]]",
topical_categories = "ไวรัส",
}
labels["viticulture"] = {
display = "[[viticulture]]",
topical_categories = {"Horticulture", "Wine"},
}
labels["วิทยาภูเขาไฟ"] = {
aliases = {"volcanology", "vulcanology", "ภูเขาไฟ"},
display = "[[วิทยาภูเขาไฟ]]",
topical_categories = true,
}
labels["volleyball"] = {
display = "[[volleyball]]",
topical_categories = true,
}
labels["voodoo"] = {
display = "[[voodoo]]",
topical_categories = true,
}
labels["water sports"] = {
aliases = {"watersport", "watersports", "water sport"},
display = "[[watersport|water sports]]",
topical_categories = true,
}
labels["weather"] = {
topical_categories = true,
}
labels["weaving"] = {
display = "[[weaving#Noun|weaving]]",
topical_categories = true,
}
labels["web design"] = {
display = "[[web design]]",
topical_categories = true,
aliases = {"Web design"}
}
labels["web development"] = {
display = "[[web development]]",
topical_categories = {"การเขียนโปรแกรม", "Web design"},
}
labels["weightlifting"] = {
display = "[[weightlifting]]",
topical_categories = true,
}
labels["white supremacy"] = { -- Often used to indicate Nazi-used jargon; compare "neo-Nazism"
aliases = {"white nationalism", "white nationalist", "white power", "white racism", "white supremacist ideology", "white supremacism", "white supremacist"},
Wikipedia = true,
topical_categories = "White supremacist ideology",
}
labels["ไวน์"] = {
aliases = {"wine"},
display = "[[ไวน์]]",
topical_categories = true,
}
labels["winemaking"] = {
display = "[[winemaking]]",
topical_categories = "Wine",
}
labels["woodworking"] = {
display = "[[woodworking]]",
topical_categories = true,
}
labels["สงครามโลกครั้งที่หนึ่ง"] = {
aliases = {"World War I", "World War 1", "WWI", "WW I", "WW1", "WW 1"},
Wikipedia = "สงครามโลกครั้งที่หนึ่ง",
topical_categories = true,
}
labels["สงครามโลกครั้งที่สอง"] = {
aliases = {"World War II", "World War 2", "WWII", "WW II", "WW2", "WW 2"},
Wikipedia = "สงครามโลกครั้งที่สอง",
topical_categories = true,
}
labels["winter sports"] = {
display = "[[winter sport]]s",
topical_categories = true,
}
labels["wrestling"] = {
display = "[[wrestling#Noun|wrestling]]",
topical_categories = true,
}
labels["writing"] = {
display = "[[writing#Noun|writing]]",
topical_categories = true,
}
labels["Yazidism"] = {
aliases = {"Yezidism"},
display = "[[Yazidism]]",
topical_categories = true,
}
labels["yoga"] = {
display = "[[yoga]]",
topical_categories = true,
}
labels["สัตววิทยา"] = {
aliases = {"zoology"},
display = "[[สัตววิทยา]]",
topical_categories = true,
}
labels["zootomy"] = {
display = "[[zootomy]]",
topical_categories = "Animal body parts",
}
labels["Zoroastrianism"] = {
display = "[[Zoroastrianism]]",
topical_categories = true,
}
-- Labels with set-type categories
-- TODO: These are probably misuses of the label template, and should be deprecated
labels["กรดอะมิโน"] = {
aliases = {"amino acid"},
display = "[[ชีวเคมี]]",
topical_categories = true,
}
labels["architectural element"] = {
aliases = {"architectural elements"},
display = "[[architecture]]",
topical_categories = "Architectural elements",
}
labels["งานศิลปะ"] = {
aliases = {"artistic work", "งานศิลป์", "งานศิลปกรรม"},
display = "[[ศิลปะ]]",
topical_categories = "งานศิลปะ",
}
labels["asterism"] = {
display = "[[uranography]]",
topical_categories = "Asterisms",
}
labels["biblical character"] = {
aliases = {"Biblical character", "biblical figure", "Biblical figure"},
display = "[[Bible|biblical]]",
topical_categories = "Biblical characters",
}
labels["bibliography"] = {
display = "[[bibliography]]",
topical_categories = true,
}
labels["bicycle parts"] = {
display = "[[w:List of bicycle parts|cycling]]",
topical_categories = true,
}
labels["book of the bible"] = {
display = "[[Bible|biblical]]",
topical_categories = "Books of the Bible",
}
labels["brass instruments"] = {
aliases = {"brass instrument"},
display = "[[music]]",
topical_categories = true,
}
labels["canid"] = {
display = "[[zoology]]",
topical_categories = "Canids",
}
labels["คาร์โบไฮเดรต"] = {
aliases = {"carbohydrate"},
display = "[[ชีวเคมี]]",
topical_categories = true,
}
labels["carboxylic acid"] = {
display = "[[organic chemistry]]",
topical_categories = "Carboxylic acids",
}
labels["โคเอนไซม์"] = {
aliases = {"coenzyme"},
display = "[[ชีวเคมี]]",
topical_categories = true,
}
labels["conspiracy theories"] = {
aliases = {"conspiracy theory", "conspiracy"},
display = "[[conspiracy theory#Noun|conspiracy theories]]",
topical_categories = true,
}
labels["constellation"] = {
display = "[[astronomy]]",
topical_categories = "Constellations",
}
labels["cookware"] = {
aliases = {"bakeware"},
display = "[[cooking#Noun|cooking]]",
topical_categories = "Cookware and bakeware",
}
labels["copyright license"] = {
aliases = {"copyright licenses", "license", "copyright licence", "copyright licences", "licence"},
display = "[[w:Copyright license|copyright law]]",
topical_categories = "Copyright licenses",
}
labels["currencies"] = { -- Do not merge with "numismatics", as the category is different.
aliases = {"currency"},
display = "[[numismatics]]",
topical_categories = true,
}
labels["dances"] = {
display = "[[dance#Noun|dance]]",
topical_categories = true,
}
labels["ประชานาม"] = {
aliases = {"demonym"},
display = "[[ประชานาม]]",
topical_categories = true,
}
labels["disease"] = {
aliases = {"diseases"},
display = "[[pathology]]",
topical_categories = "Diseases",
}
labels["E number"] = {
display = "[[food]] [[manufacture]]",
plain_categories = "European food additive numbers",
}
labels["Egyptian god"] = {
display = "[[Egyptian]] [[mythology]]",
topical_categories = "Egyptian deities",
}
-- Compare "systematic element symbol" and "obsolete element symbol"
labels["element symbol"] = {
display = "[[chemistry]]",
plain_categories = "Symbols for chemical elements",
}
labels["เอนไซม์"] = {
aliases = {"enzyme"},
display = "[[ชีวเคมี]]",
topical_categories = true,
}
labels["fatty acid"] = {
display = "[[organic chemistry]]",
topical_categories = "Fatty acids",
}
labels["felid"] = {
aliases = {"cat"},
display = "[[zoology]]",
topical_categories = "Felids",
}
labels["ตัวละครในบันเทิงคดี"] = {
aliases = {"fictional character"},
display = "[[บันเทิงคดี]]",
topical_categories = "ตัวละครในบันเทิงคดี",
}
labels["figure of speech"] = {
display = "[[rhetoric]]",
topical_categories = "Figures of speech",
}
labels["fish"] = {
display = "[[zoology]]",
topical_categories = true,
}
labels["เครื่องสวมเท้า"] = {
aliases = {"footwear"},
display = "[[เครื่องสวมเท้า]]",
topical_categories = true,
}
labels["functional group prefix"] = {
display = "[[organic chemistry]]",
topical_categories = "Functional group prefixes",
}
labels["functional group suffix"] = {
display = "[[organic chemistry]]",
topical_categories = "Functional group suffixes",
}
labels["functional programming"] = {
display = "[[functional programming]]",
topical_categories = "การเขียนโปรแกรม",
}
labels["galaxy"] = {
display = "[[astronomy]]",
topical_categories = "Galaxies",
}
labels["genetic disorder"] = {
display = "[[medical]] [[genetics]]",
topical_categories = "Genetic disorders",
}
labels["gender critical"] = {
aliases = {"gender-critical", "gender critical feminism", "gender-critical feminism", "GC", "GCF", "trans-exclusionary radical feminism", "TERF", "TERFism"},
display = "[[gender-critical#Adjective|gender critical]]",
Wikipedia = "Gender-critical feminism",
topical_categories = "Gender-critical feminism",
}
labels["Greek god"] = {
aliases = {"Greek goddess"},
display = "[[Greek]] [[mythology]]",
topical_categories = "Greek deities",
}
labels["hand games"] = {
aliases = {"hand game"},
display = "[[hand]] [[game]]s",
topical_categories = true,
}
labels["heraldic charge"] = {
aliases = {"heraldiccharge"},
display = "[[มุทราศาสตร์]]",
topical_categories = "Heraldic charges",
}
labels["Hindu god"] = {
display = "[[Hinduism]]",
topical_categories = "Hindu deities",
}
labels["historical currencies"] = {
aliases = {"historical currency"},
display = "[[numismatics]]",
sense_categories = "historical",
topical_categories = "Historical currencies",
}
labels["historical period"] = {
aliases = {"historical periods"},
display = "[[history]]",
topical_categories = "Historical periods",
}
labels["ฮอร์โมน"] = {
aliases = {"hormone"},
display = "[[ชีวเคมี]]",
topical_categories = true,
}
labels["hydrocarbon chain prefix"] = {
display = "[[organic chemistry]]",
topical_categories = "Hydrocarbon chain prefixes",
}
labels["hydrocarbon chain suffix"] = {
display = "[[organic chemistry]]",
topical_categories = "Hydrocarbon chain suffixes",
}
labels["incoterm"] = {
display = "[[Incoterm]]",
topical_categories = "Incoterms",
}
labels["inorganic compound"] = {
display = "[[inorganic chemistry]]",
topical_categories = "Inorganic compounds",
}
labels["isotope"] = {
display = "[[physics]]",
topical_categories = "Isotopes",
}
labels["labour law"] = {
display = "[[labour law]]",
topical_categories = "Law",
}
labels["ธรณีสัณฐาน"] = {
aliases = {"landform", "landforms"},
display = "[[ภูมิศาสตร์]]",
topical_categories = true,
}
labels["logical fallacy"] = {
display = "[[rhetoric]]",
topical_categories = "Logical fallacies",
}
labels["lutherie"] = {
display = "[[lutherie]]",
topical_categories = true,
}
labels["Mesopotamian god"] = {
display = "[[Mesopotamian]] [[mythology]]",
topical_categories = "Mesopotamian deities",
}
labels["metamaterial"] = {
display = "[[physics]]",
topical_categories = "Metamaterials",
}
labels["military ranks"] = {
aliases = {"military rank"},
display = "[[military]]",
topical_categories = true,
}
labels["military unit"] = {
display = "[[military]]",
topical_categories = "Military units",
}
labels["แร่"] = {
aliases = {"mineral"},
display = "[[วิทยาแร่]]",
topical_categories = "แร่",
}
labels["mobile phones"] = {
aliases = {"cell phone", "cell phones", "mobile phone", "mobile telephony"},
display = "[[mobile telephone|mobile telephony]]",
topical_categories = true,
}
labels["muscle"] = {
display = "[[anatomy]]",
topical_categories = "Muscles",
}
labels["mushroom"] = {
aliases = {"mushrooms"},
display = "[[mycology]]",
topical_categories = "Mushrooms",
}
labels["เครื่องดนตรี"] = {
aliases = {"musical instruments", "musical instrument"},
display = "[[ดนตรี]]",
topical_categories = true,
}
labels["ประเภทดนตรี"] = {
aliases = {"music genre"},
display = "[[ดนตรี]]",
topical_categories = "ประเภทดนตรี",
}
labels["musician"] = {
display = "[[music]]",
topical_categories = "Musicians",
}
labels["mysticism"] = {
display = "[[mysticism]]",
topical_categories = true,
}
labels["mythological creature"] = {
aliases = {"mythological creatures"},
display = "[[mythology]]",
topical_categories = "Mythological creatures",
}
labels["neurotoxin"] = {
display = "[[neurotoxicology]]",
topical_categories = "Neurotoxins",
}
labels["สารสื่อประสาท"] = {
aliases = {"neurotransmitter"},
display = "[[ชีวเคมี]]",
topical_categories = true,
}
labels["obsolete element symbol"] = {
display = "[[chemistry]], [[obsolete]]",
plain_categories = "Obsolete symbols for chemical elements",
}
labels["organic compound"] = {
display = "[[organic chemistry]]",
topical_categories = "Organic compounds",
}
labels["part of speech"] = {
display = "[[grammar]]",
topical_categories = "Parts of speech",
}
labels["particle"] = {
display = "[[physics]]",
topical_categories = "Subatomic particles",
}
labels["percussion instruments"] = {
aliases = {"percussion instrument"},
display = "[[music]]",
topical_categories = true,
}
labels["pharmaceutical drug"] = {
display = "[[pharmacology]]",
topical_categories = "Pharmaceutical drugs",
}
labels["pharmaceutical effect"] = {
display = "[[pharmacology]]",
topical_categories = "Pharmaceutical effects",
}
labels["พืช"] = {
aliases = {"plant"},
display = "[[พฤกษศาสตร์]]",
topical_categories = true,
}
labels["plant disease"] = {
display = "[[phytopathology]]",
topical_categories = "Plant diseases",
}
labels["พิษ"] = {
aliases = {"poison", "poisons"},
display = "[[พิษ]]",
topical_categories = true,
}
labels["political subdivision"] = {
display = "[[government]]",
topical_categories = "Political subdivisions",
}
labels["โปรตีน"] = {
aliases = {"protein", "proteins"},
display = "[[ชีวเคมี]]",
topical_categories = true,
}
labels["rock"] = {
display = "[[petrology]]",
topical_categories = "Rocks",
}
labels["Roman god"] = {
aliases = {"Roman goddess"},
display = "[[Roman]] [[mythology]]",
topical_categories = "Roman deities",
}
labels["schools"] = {
display = "[[education]]",
topical_categories = true,
}
labels["self-harm"] = {
aliases = {"selfharm", "self harm", "self-harm community"},
display = "[[self-harm]]",
topical_categories = true,
}
labels["SEO"] = {
display = "[[search engine optimization|SEO]]",
topical_categories = {"อินเทอร์เน็ต", "การตลาด"},
}
labels["skeleton"] = {
display = "[[anatomy]]",
topical_categories = true,
}
labels["standard of identity"] = {
display = "[[standard of identity|standards of identity]]",
topical_categories = "Standards of identity",
}
labels["star"] = {
display = "[[astronomy]]",
topical_categories = "Stars",
}
labels["สเตอรอยด์"] = {
aliases = {"steroid", "สเตียรอยด์"},
display = "[[ชีวเคมี]]",
topical_categories = true,
}
labels["ฮอร์โมนสเตอรอยด์"] = {
aliases = {"steroid hormone", "steroid drug", "ฮอร์โมนสเตียรอยด์", "ยาสเตอรอยด์", "ยาสเตียรอยด์"},
display = "[[ชีวเคมี]], [[สเตอรอยด์]]",
topical_categories = "ฮอร์โมน",
}
labels["string instruments"] = {
aliases = {"string instrument"},
display = "[[music]]",
topical_categories = true,
}
labels["surface feature"] = {
display = "[[วิทยาดาวเคราะห์]]",
topical_categories = "Planetary nomenclature",
}
labels["sugar acid"] = {
display = "[[organic chemistry]]",
topical_categories = "Sugar acids",
}
labels["symptom"] = {
display = "[[medicine]]",
topical_categories = "Medical signs and symptoms",
}
labels["systematic element symbol"] = {
display = "[[chemistry]]",
plain_categories = "Systematic chemical symbols",
}
labels["taxonomic name"] = {
display = "[[taxonomy]]",
topical_categories = "Taxonomic names",
}
labels["tincture"] = {
display = "[[มุทราศาสตร์]]",
topical_categories = "Heraldic tinctures",
}
labels["veterinary disease"] = {
display = "[[veterinary medicine]]",
topical_categories = "Veterinary diseases",
}
labels["ประเภทวิดีโอเกม"] = {
aliases = {"video game genre"},
display = "[[วิดีโอเกม]]",
topical_categories = "ประเภทวิดีโอเกม",
}
labels["วิตามิน"] = {
aliases = {"vitamin", "ไวตามิน"},
display = "[[ชีวเคมี]]",
topical_categories = true,
}
labels["นาวายาน"] = {
aliases = {"เรือ", "watercraft"},
display = "[[การเดินเรือ]]",
topical_categories = true,
}
labels["weaponry"] = {
aliases = {"weapon", "weapons"},
display = "[[weaponry]]",
topical_categories = "Weapons",
}
labels["Wicca"] = {
display = "[[Wicca]]",
topical_categories = true,
}
labels["wiki jargon"] = {
aliases = {"wiki"},
display = "[[wiki]] [[jargon]]",
topical_categories = "Wiki",
}
labels["Wikimedia jargon"] = {
aliases = {"WMF", "WMF jargon", "Wiktionary", "Wiktionary jargon", "Wikipedia", "Wikipedia jargon"},
display = "[[w:Wikimedia Foundation|Wikimedia]] [[jargon]]",
topical_categories = "Wikimedia",
}
labels["wind instruments"] = {
aliases = {"wind instrument"},
display = "[[music]]",
topical_categories = true,
}
labels["woodwind instruments"] = {
aliases = {"woodwind instrument"},
display = "[[music]]",
topical_categories = true,
}
labels["xiangqi"] = {
aliases = {"Chinese chess"},
display = "[[xiangqi]]",
topical_categories = true,
}
labels["yoga pose"] = {
aliases = {"asana"},
display = "[[yoga]]",
topical_categories = "Yoga poses",
}
labels["zodiac constellations"] = {
display = "[[astronomy]]",
topical_categories = "Constellations in the zodiac",
}
-- Deprecated/do not use warning (ambiguous, unsuitable etc)
labels["deprecated label"] = {
aliases = {"emergency", "greekmyth", "industry", "morphology", "musici", "quantum", "vector"},
display = "<span style=\"color:red;\"><b>deprecated label</b></span>",
deprecated = true,
}
return require("Module:labels").finalize_data(labels)
qh0xe0zoio3a07vuqn6rxvz21z54am3
ᨩ᩠ᨿᨦᨲᩩᨦ
0
305392
5758954
5756706
2026-08-24T13:28:23Z
Ai Ku Karng
17824
5758954
wikitext
text/x-wiki
== ภาษาเขิน ==
=== รากศัพท์ ===
{{com|kkh|ᨩ᩠ᨿᨦ|ᨲᩩᨦ|t1=เชียง, เมือง|t2=หนองตุง}}
=== การออกเสียง ===
* {{IPA|kkh|/t͡ɕeːŋ˧˧.tuŋ˧˨˥/|a=เชียงตุง}}
=== คำวิสามานยนาม ===
{{kkh-proper noun}}
# [[เชียงตุง]]
923u9m7pb4xcz7u0csof94lfdy09cgt
มอดูล:romance inflections
828
336630
5758919
2444502
2026-08-24T12:12:46Z
Octahedron80
267
5758919
Scribunto
text/plain
local export = {}
--[=[
Authorship: Ben Wing <benwing2>
This module implements {{pt-verb form of}}, {{ca-verb form of}}, {{gl-verb form of}} and {{gl-reinteg-verb form of}},
which automatically generate the appropriate inflections of a non-lemma verb form given the form and the conjugation
spec for the verb (which is usually just the infinitive; see {{pt-conj}}/{{pt-verb}}, {{ca-conj}}/{{ca-verb}},
{{gl-conj}}/{{gl-verb}} and {{gl-reinteg-conj}}/{{gl-reinteg-verb}}).
]=]
local m_links = require("Module:links")
local m_table = require("Module:table")
local m_form_of = require("Module:form of")
local accel_module = "Module:accel"
local pt_verb_module = "Module:pt-verb"
local ca_verb_module = "Module:ca-verb"
local gl_verb_module = "Module:gl-verb"
local gl_reinteg_verb_module = "Module:gl-reinteg-verb"
local rmatch = mw.ustring.match
local rfind = mw.ustring.find
local rsplit = mw.text.split
local usub = mw.ustring.sub
local function pt_extract_labels(formobj)
local labels = {}
local form = formobj.form
local footnotes = formobj.footnotes
local m_pt_verb = require(pt_verb_module)
if not not form:find(m_pt_verb.VAR_BR) or footnotes and m_table.contains(footnotes, "[Brazil]") or
footnotes and m_table.contains(footnotes, "[Brazil only]") then
table.insert(labels, "Brazilian Portuguese verb form")
end
if not not form:find(m_pt_verb.VAR_PT) or footnotes and m_table.contains(footnotes, "[Portugal]") or
footnotes and m_table.contains(footnotes, "[Portugal only]") then
table.insert(labels, "European Portuguese verb form")
end
if not not form:find(m_pt_verb.VAR_SUPERSEDED) or footnotes and m_table.contains(footnotes, "[superseded]") then
table.insert(labels, "superseded")
end
return labels
end
local function gl_reinteg_extract_labels(formobj)
local labels = {"บรรทัดฐาน[[ภาคผนวก:บูรณาการนิยม|แบบบูรณาการนิยม]]"}
local form = formobj.form
local footnotes = formobj.footnotes
local m_gl_reinteg_verb = require(gl_reinteg_verb_module)
if not not form:find(m_gl_reinteg_verb.ALTVAR) or footnotes and m_table.contains(footnotes, "[less recommended]") then
table.insert(labels, "less recommended")
end
return labels
end
local norm_properties = {
pt = {
verb_module = pt_verb_module,
lang = require("Module:languages").getByCode("pt"),
langcode = "pt",
extract_labels = pt_extract_labels,
remove_variant_codes = true,
},
ca = {
verb_module = ca_verb_module,
lang = require("Module:languages").getByCode("ca"),
langcode = "ca",
remove_variant_codes = false,
},
gl = {
verb_module = gl_verb_module,
lang = require("Module:languages").getByCode("gl"),
langcode = "gl",
remove_variant_codes = false,
},
["gl-reinteg"] = {
verb_module = gl_reinteg_verb_module,
lang = require("Module:languages").getByCode("gl"),
langcode = "gl",
extract_labels = gl_reinteg_extract_labels,
remove_variant_codes = true,
},
}
local function track(page)
require("Module:debug/track")("romance inflections/" .. page)
return true
end
local function generate_inflection_of(tag_sets, lemma, pretext, args, norm)
local lang = norm_properties[norm].lang
for _, tag_set in ipairs(tag_sets) do
tag_set.tags = rsplit(tag_set.tag, "|")
tag_set.tag = nil
end
local has_multiple_tag_sets = #tag_sets > 1
-- If only one tag, extract out the "combined with ..." text and move into posttext=, which goes after the lemma.
-- FIXME: No support for clitic combinations currently for Portuguese or Galician, although maybe we should add it.
local posttext
if #tag_sets == 1 then
local tags = tag_sets[1].tags
local last_tag = tags[#tags]
if last_tag:match("^combined with .*$") then
-- NOTE: table.remove() side-effects the list by removing and returning the last item.
posttext = " " .. table.remove(tags)
end
end
local function hack_clitics(text)
return text:gsub("%[%[(.-)%]%]", function(pronoun) return m_links.full_link({term = pronoun, lang = lang}, "term") end)
end
-- Hack to convert raw-linked pronouns e.g. in 'combined with [[te]]' to Portuguese-linked pronouns.
for _, tag_set in ipairs(tag_sets) do
for i, tag in ipairs(tag_set.tags) do
if tag:find("%[%[") then
tag_set.tags[i] = hack_clitics(tag)
end
end
end
posttext = posttext and hack_clitics(posttext) or nil
local lemma_obj = {
lang = lang,
term = lemma,
gloss = args.t,
pos = args.pos,
lit = args.lit,
id = args.id,
}
if has_multiple_tag_sets then
tag_sets = require(accel_module).combine_tag_sets_into_multipart(tag_sets, lang, "verb")
end
return m_form_of.tagged_inflections {
lang = lang, tag_sets = tag_sets, lemmas = {lemma_obj}, lemma_face = "term", pretext = pretext,
posttext = posttext, POS = "คำกริยา",
}
end
function export.verb_form_of(frame)
local norm = frame.args.norm
if not norm then
error("Frame (invocation) argument norm= must be specified")
end
if not norm_properties[norm] then
local valid_norms = {}
for k, v in pairs(norm_properties) do
table.insert(valid_norms, k)
end
table.sort(valid_norms)
error("Unrecognized value for norm=; possible values are " .. table.concat(valid_norms, ", "))
end
local langcode = norm_properties[norm].langcode
local parargs = frame:getParent().args
local params = {
[1] = {required = true},
["noautolinktext"] = {type = "boolean"},
["noautolinkverb"] = {type = "boolean"},
["pagename"] = {}, -- for testing/documentation pages
["json"] = {type = "boolean"}, -- for bot use
["slots"] = {}, -- restrict to only these slots
["noslots"] = {}, -- restrict to all but these slots
["t"] = {},
["gloss"] = {alias_of = "t"},
["lit"] = {},
["pos"] = {},
["id"] = {},
}
local m_verb_module = require(norm_properties[norm].verb_module)
local args = require("Module:parameters").process(parargs, params)
local alternant_multiword_spec = m_verb_module.do_generate_forms(args, ("%s-verb form of"):format(norm))
local function remove_variant_codes(form)
if norm_properties[norm].remove_variant_codes then
return m_verb_module.remove_variant_codes(form)
else
return form
end
end
local function extract_labels(formobj)
if norm_properties[norm].extract_labels then
return norm_properties[norm].extract_labels(formobj)
else
return {}
end
end
local non_lemma_form = alternant_multiword_spec.verb_form_of_form
local lemmas = {}
if not alternant_multiword_spec.forms.infinitive then
error("Internal error: No infinitive?")
end
for _, formobj in ipairs(alternant_multiword_spec.forms.infinitive) do
m_table.insertIfNot(lemmas, m_links.remove_links(formobj.form))
end
-- FIXME: Consider supporting multiple lemmas.
local lemma = lemmas[1]
local slot_restrictions = args.slots and m_table.listToSet(rsplit(args.slots, ",")) or nil
local negated_slot_restrictions = args.noslots and m_table.listToSet(rsplit(args.noslots, ",")) or nil
local tags = {}
local slots_seen = {}
local function loop_over_verb_slots(verb_slots)
for _, slot_accel in ipairs(verb_slots) do
local slot, accel = unpack(slot_accel)
-- If used on the infinitive page, don't include the infinitive as a form.
if slot ~= "infinitive" and slot ~= "infinitive_linked" then
local forms = alternant_multiword_spec.forms[slot]
if forms then
for _, formobj in ipairs(forms) do
local labels = extract_labels(formobj)
local form = remove_variant_codes(m_links.remove_links(mw.ustring.toNFC(formobj.form)))
if non_lemma_form == form then
if (not slot_restrictions or slot_restrictions[slot]) and (
not negated_slot_restrictions or not negated_slot_restrictions[slot]
) then
m_table.insertIfNot(tags, {tag = accel, labels = labels})
end
if slot_restrictions or negated_slot_restrictions then
slots_seen[slot] = true
end
end
end
end
end
end
end
local function check_slot_restrictions_against_slots_seen()
local function get_slots_seen()
local slots_seen_list = {}
for slot, _ in pairs(slots_seen) do
table.insert(slots_seen_list, slot)
end
table.sort(slots_seen_list)
return slots_seen_list
end
local function check_against_slots_seen(restrictions, prefix)
for slot, _ in pairs(restrictions) do
if not slots_seen[slot] then
error(("%sslot restriction for slot '%s' had no effect (typo?) because it is not any of the slots matching form '%s' for verb '%s': possible values %s"):format(
prefix, slot, non_lemma_form, lemma, table.concat(get_slots_seen(), ",")))
end
end
end
if slot_restrictions then
check_against_slots_seen(slot_restrictions, "")
end
if negated_slot_restrictions then
check_against_slots_seen(negated_slot_restrictions, "negated ")
end
end
loop_over_verb_slots(alternant_multiword_spec.verb_slots_basic)
if next(slots_seen) then
check_slot_restrictions_against_slots_seen()
end
if #tags > 0 then
return generate_inflection_of(tags, lemma, nil, args, norm)
end
-- If we don't find any matches, we try again, looking for non-reflexive forms of reflexive-only verbs.
slots_seen = {}
if alternant_multiword_spec.refl and not lemma:find(" ") then
local refl_forms_to_tags = {}
for _, slot_accel in ipairs(alternant_multiword_spec.verb_slots_basic) do
local slot, accel = unpack(slot_accel)
local part_forms = alternant_multiword_spec.forms[slot .. "_non_reflexive"]
local full_forms = alternant_multiword_spec.forms[slot]
local variant_forms = alternant_multiword_spec.forms[slot .. "_variant"]
-- Make sure same number of part and full forms, otherwise we can't match them up.
if part_forms and full_forms and #part_forms == #full_forms and (
not variant_forms or #part_forms == #variant_forms) then
-- Find part form the same as the non-lemma form we're generating the inflection(s) of,
-- and accumulate properties into refl_forms_to_tags.
for i, part_form in ipairs(part_forms) do
local labels = extract_labels(part_form)
local form = remove_variant_codes(m_links.remove_links(mw.ustring.toNFC(part_form.form)))
if non_lemma_form == form then
if (not slot_restrictions or slot_restrictions[slot]) and (
not negated_slot_restrictions or not negated_slot_restrictions[slot]
) then
local saw_existing = false
for _, refl_form_to_tags in ipairs(refl_forms_to_tags) do
if refl_form_to_tags.form == remove_variant_codes(full_forms[i].form) then
table.insert(refl_form_to_tags.tags, {tag = accel, labels = labels})
saw_existing = true
break
end
end
if not saw_existing then
table.insert(refl_forms_to_tags, {
form = remove_variant_codes(full_forms[i].form),
tags = {{tag = accel, labels = labels}},
variant = variant_forms and remove_variant_codes(variant_forms[i].form),
})
end
end
if slot_restrictions or negated_slot_restrictions then
slots_seen[slot] = true
end
end
end
end
end
if next(slots_seen) then
check_slot_restrictions_against_slots_seen()
end
if #refl_forms_to_tags > 0 then
local parts = {}
for _, refl_form_to_tags in ipairs(refl_forms_to_tags) do
local only_used_in
if refl_form_to_tags.variant then
only_used_in =
frame:preprocess(("{{only used in|%s|%s|nocap=1}}, <span class='use-with-mention'>syntactic variant of {{m|%s|%s}}</span>"):format(
langcode, refl_form_to_tags.variant, langcode, refl_form_to_tags.form))
else
only_used_in =
frame:preprocess(("{{only used in|%s|%s|nocap=1}}"):format(langcode, refl_form_to_tags.form))
end
if refl_form_to_tags.form == lemma then
table.insert(parts, only_used_in)
else
local infl = generate_inflection_of(refl_form_to_tags.tags, lemma, only_used_in .. ", ", args, norm)
table.insert(parts, infl)
end
end
return table.concat(parts, "\n# ")
end
end
error(("'%s' is not any of the forms of the verb '%s'"):format(non_lemma_form, table.concat(lemmas, "/")))
end
return export
41aedvl3cva7rd3xiieagws5nz8l92g
5758925
5758919
2026-08-24T12:18:34Z
Octahedron80
267
5758925
Scribunto
text/plain
local export = {}
--[=[
Authorship: Ben Wing <benwing2>
This module implements {{pt-verb form of}}, {{ca-verb form of}}, {{gl-verb form of}} and {{gl-reinteg-verb form of}},
which automatically generate the appropriate inflections of a non-lemma verb form given the form and the conjugation
spec for the verb (which is usually just the infinitive; see {{pt-conj}}/{{pt-verb}}, {{ca-conj}}/{{ca-verb}},
{{gl-conj}}/{{gl-verb}} and {{gl-reinteg-conj}}/{{gl-reinteg-verb}}).
]=]
local m_links = require("Module:links")
local m_table = require("Module:table")
local m_form_of = require("Module:form of")
local accel_module = "Module:accel"
local pt_verb_module = "Module:pt-verb"
local ca_verb_module = "Module:ca-verb"
local gl_verb_module = "Module:gl-verb"
local gl_reinteg_verb_module = "Module:gl-reinteg-verb"
local rmatch = mw.ustring.match
local rfind = mw.ustring.find
local rsplit = mw.text.split
local usub = mw.ustring.sub
local function pt_extract_labels(formobj)
local labels = {}
local form = formobj.form
local footnotes = formobj.footnotes
local m_pt_verb = require(pt_verb_module)
if not not form:find(m_pt_verb.VAR_BR) or footnotes and m_table.contains(footnotes, "[Brazil]") or
footnotes and m_table.contains(footnotes, "[Brazil only]") then
table.insert(labels, "Brazilian Portuguese verb form")
end
if not not form:find(m_pt_verb.VAR_PT) or footnotes and m_table.contains(footnotes, "[Portugal]") or
footnotes and m_table.contains(footnotes, "[Portugal only]") then
table.insert(labels, "European Portuguese verb form")
end
if not not form:find(m_pt_verb.VAR_SUPERSEDED) or footnotes and m_table.contains(footnotes, "[superseded]") then
table.insert(labels, "superseded")
end
return labels
end
local function gl_reinteg_extract_labels(formobj)
local labels = {"บรรทัดฐาน[[ภาคผนวก:ปฏิบูรณาการนิยม|แบบปฏิบูรณาการนิยม]]"}
local form = formobj.form
local footnotes = formobj.footnotes
local m_gl_reinteg_verb = require(gl_reinteg_verb_module)
if not not form:find(m_gl_reinteg_verb.ALTVAR) or footnotes and m_table.contains(footnotes, "[less recommended]") then
table.insert(labels, "less recommended")
end
return labels
end
local norm_properties = {
pt = {
verb_module = pt_verb_module,
lang = require("Module:languages").getByCode("pt"),
langcode = "pt",
extract_labels = pt_extract_labels,
remove_variant_codes = true,
},
ca = {
verb_module = ca_verb_module,
lang = require("Module:languages").getByCode("ca"),
langcode = "ca",
remove_variant_codes = false,
},
gl = {
verb_module = gl_verb_module,
lang = require("Module:languages").getByCode("gl"),
langcode = "gl",
remove_variant_codes = false,
},
["gl-reinteg"] = {
verb_module = gl_reinteg_verb_module,
lang = require("Module:languages").getByCode("gl"),
langcode = "gl",
extract_labels = gl_reinteg_extract_labels,
remove_variant_codes = true,
},
}
local function track(page)
require("Module:debug/track")("romance inflections/" .. page)
return true
end
local function generate_inflection_of(tag_sets, lemma, pretext, args, norm)
local lang = norm_properties[norm].lang
for _, tag_set in ipairs(tag_sets) do
tag_set.tags = rsplit(tag_set.tag, "|")
tag_set.tag = nil
end
local has_multiple_tag_sets = #tag_sets > 1
-- If only one tag, extract out the "combined with ..." text and move into posttext=, which goes after the lemma.
-- FIXME: No support for clitic combinations currently for Portuguese or Galician, although maybe we should add it.
local posttext
if #tag_sets == 1 then
local tags = tag_sets[1].tags
local last_tag = tags[#tags]
if last_tag:match("^combined with .*$") then
-- NOTE: table.remove() side-effects the list by removing and returning the last item.
posttext = " " .. table.remove(tags)
end
end
local function hack_clitics(text)
return text:gsub("%[%[(.-)%]%]", function(pronoun) return m_links.full_link({term = pronoun, lang = lang}, "term") end)
end
-- Hack to convert raw-linked pronouns e.g. in 'combined with [[te]]' to Portuguese-linked pronouns.
for _, tag_set in ipairs(tag_sets) do
for i, tag in ipairs(tag_set.tags) do
if tag:find("%[%[") then
tag_set.tags[i] = hack_clitics(tag)
end
end
end
posttext = posttext and hack_clitics(posttext) or nil
local lemma_obj = {
lang = lang,
term = lemma,
gloss = args.t,
pos = args.pos,
lit = args.lit,
id = args.id,
}
if has_multiple_tag_sets then
tag_sets = require(accel_module).combine_tag_sets_into_multipart(tag_sets, lang, "verb")
end
return m_form_of.tagged_inflections {
lang = lang, tag_sets = tag_sets, lemmas = {lemma_obj}, lemma_face = "term", pretext = pretext,
posttext = posttext, POS = "คำกริยา",
}
end
function export.verb_form_of(frame)
local norm = frame.args.norm
if not norm then
error("Frame (invocation) argument norm= must be specified")
end
if not norm_properties[norm] then
local valid_norms = {}
for k, v in pairs(norm_properties) do
table.insert(valid_norms, k)
end
table.sort(valid_norms)
error("Unrecognized value for norm=; possible values are " .. table.concat(valid_norms, ", "))
end
local langcode = norm_properties[norm].langcode
local parargs = frame:getParent().args
local params = {
[1] = {required = true},
["noautolinktext"] = {type = "boolean"},
["noautolinkverb"] = {type = "boolean"},
["pagename"] = {}, -- for testing/documentation pages
["json"] = {type = "boolean"}, -- for bot use
["slots"] = {}, -- restrict to only these slots
["noslots"] = {}, -- restrict to all but these slots
["t"] = {},
["gloss"] = {alias_of = "t"},
["lit"] = {},
["pos"] = {},
["id"] = {},
}
local m_verb_module = require(norm_properties[norm].verb_module)
local args = require("Module:parameters").process(parargs, params)
local alternant_multiword_spec = m_verb_module.do_generate_forms(args, ("%s-verb form of"):format(norm))
local function remove_variant_codes(form)
if norm_properties[norm].remove_variant_codes then
return m_verb_module.remove_variant_codes(form)
else
return form
end
end
local function extract_labels(formobj)
if norm_properties[norm].extract_labels then
return norm_properties[norm].extract_labels(formobj)
else
return {}
end
end
local non_lemma_form = alternant_multiword_spec.verb_form_of_form
local lemmas = {}
if not alternant_multiword_spec.forms.infinitive then
error("Internal error: No infinitive?")
end
for _, formobj in ipairs(alternant_multiword_spec.forms.infinitive) do
m_table.insertIfNot(lemmas, m_links.remove_links(formobj.form))
end
-- FIXME: Consider supporting multiple lemmas.
local lemma = lemmas[1]
local slot_restrictions = args.slots and m_table.listToSet(rsplit(args.slots, ",")) or nil
local negated_slot_restrictions = args.noslots and m_table.listToSet(rsplit(args.noslots, ",")) or nil
local tags = {}
local slots_seen = {}
local function loop_over_verb_slots(verb_slots)
for _, slot_accel in ipairs(verb_slots) do
local slot, accel = unpack(slot_accel)
-- If used on the infinitive page, don't include the infinitive as a form.
if slot ~= "infinitive" and slot ~= "infinitive_linked" then
local forms = alternant_multiword_spec.forms[slot]
if forms then
for _, formobj in ipairs(forms) do
local labels = extract_labels(formobj)
local form = remove_variant_codes(m_links.remove_links(mw.ustring.toNFC(formobj.form)))
if non_lemma_form == form then
if (not slot_restrictions or slot_restrictions[slot]) and (
not negated_slot_restrictions or not negated_slot_restrictions[slot]
) then
m_table.insertIfNot(tags, {tag = accel, labels = labels})
end
if slot_restrictions or negated_slot_restrictions then
slots_seen[slot] = true
end
end
end
end
end
end
end
local function check_slot_restrictions_against_slots_seen()
local function get_slots_seen()
local slots_seen_list = {}
for slot, _ in pairs(slots_seen) do
table.insert(slots_seen_list, slot)
end
table.sort(slots_seen_list)
return slots_seen_list
end
local function check_against_slots_seen(restrictions, prefix)
for slot, _ in pairs(restrictions) do
if not slots_seen[slot] then
error(("%sslot restriction for slot '%s' had no effect (typo?) because it is not any of the slots matching form '%s' for verb '%s': possible values %s"):format(
prefix, slot, non_lemma_form, lemma, table.concat(get_slots_seen(), ",")))
end
end
end
if slot_restrictions then
check_against_slots_seen(slot_restrictions, "")
end
if negated_slot_restrictions then
check_against_slots_seen(negated_slot_restrictions, "negated ")
end
end
loop_over_verb_slots(alternant_multiword_spec.verb_slots_basic)
if next(slots_seen) then
check_slot_restrictions_against_slots_seen()
end
if #tags > 0 then
return generate_inflection_of(tags, lemma, nil, args, norm)
end
-- If we don't find any matches, we try again, looking for non-reflexive forms of reflexive-only verbs.
slots_seen = {}
if alternant_multiword_spec.refl and not lemma:find(" ") then
local refl_forms_to_tags = {}
for _, slot_accel in ipairs(alternant_multiword_spec.verb_slots_basic) do
local slot, accel = unpack(slot_accel)
local part_forms = alternant_multiword_spec.forms[slot .. "_non_reflexive"]
local full_forms = alternant_multiword_spec.forms[slot]
local variant_forms = alternant_multiword_spec.forms[slot .. "_variant"]
-- Make sure same number of part and full forms, otherwise we can't match them up.
if part_forms and full_forms and #part_forms == #full_forms and (
not variant_forms or #part_forms == #variant_forms) then
-- Find part form the same as the non-lemma form we're generating the inflection(s) of,
-- and accumulate properties into refl_forms_to_tags.
for i, part_form in ipairs(part_forms) do
local labels = extract_labels(part_form)
local form = remove_variant_codes(m_links.remove_links(mw.ustring.toNFC(part_form.form)))
if non_lemma_form == form then
if (not slot_restrictions or slot_restrictions[slot]) and (
not negated_slot_restrictions or not negated_slot_restrictions[slot]
) then
local saw_existing = false
for _, refl_form_to_tags in ipairs(refl_forms_to_tags) do
if refl_form_to_tags.form == remove_variant_codes(full_forms[i].form) then
table.insert(refl_form_to_tags.tags, {tag = accel, labels = labels})
saw_existing = true
break
end
end
if not saw_existing then
table.insert(refl_forms_to_tags, {
form = remove_variant_codes(full_forms[i].form),
tags = {{tag = accel, labels = labels}},
variant = variant_forms and remove_variant_codes(variant_forms[i].form),
})
end
end
if slot_restrictions or negated_slot_restrictions then
slots_seen[slot] = true
end
end
end
end
end
if next(slots_seen) then
check_slot_restrictions_against_slots_seen()
end
if #refl_forms_to_tags > 0 then
local parts = {}
for _, refl_form_to_tags in ipairs(refl_forms_to_tags) do
local only_used_in
if refl_form_to_tags.variant then
only_used_in =
frame:preprocess(("{{only used in|%s|%s|nocap=1}}, <span class='use-with-mention'>syntactic variant of {{m|%s|%s}}</span>"):format(
langcode, refl_form_to_tags.variant, langcode, refl_form_to_tags.form))
else
only_used_in =
frame:preprocess(("{{only used in|%s|%s|nocap=1}}"):format(langcode, refl_form_to_tags.form))
end
if refl_form_to_tags.form == lemma then
table.insert(parts, only_used_in)
else
local infl = generate_inflection_of(refl_form_to_tags.tags, lemma, only_used_in .. ", ", args, norm)
table.insert(parts, infl)
end
end
return table.concat(parts, "\n# ")
end
end
error(("'%s' is not any of the forms of the verb '%s'"):format(non_lemma_form, table.concat(lemmas, "/")))
end
return export
7ist3x2892tlhs4porlr9ff4o1iqr2t
5758936
5758925
2026-08-24T12:28:50Z
Octahedron80
267
5758936
Scribunto
text/plain
local export = {}
--[=[
Authorship: Ben Wing <benwing2>
This module implements {{pt-verb form of}}, {{ca-verb form of}}, {{gl-verb form of}} and {{gl-reinteg-verb form of}},
which automatically generate the appropriate inflections of a non-lemma verb form given the form and the conjugation
spec for the verb (which is usually just the infinitive; see {{pt-conj}}/{{pt-verb}}, {{ca-conj}}/{{ca-verb}},
{{gl-conj}}/{{gl-verb}} and {{gl-reinteg-conj}}/{{gl-reinteg-verb}}).
]=]
local m_links = require("Module:links")
local m_table = require("Module:table")
local m_form_of = require("Module:form of")
local accel_module = "Module:accel"
local pt_verb_module = "Module:pt-verb"
local ca_verb_module = "Module:ca-verb"
local gl_verb_module = "Module:gl-verb"
local gl_reinteg_verb_module = "Module:gl-reinteg-verb"
local rmatch = mw.ustring.match
local rfind = mw.ustring.find
local rsplit = mw.text.split
local usub = mw.ustring.sub
local function pt_extract_labels(formobj)
local labels = {}
local form = formobj.form
local footnotes = formobj.footnotes
local m_pt_verb = require(pt_verb_module)
if not not form:find(m_pt_verb.VAR_BR) or footnotes and m_table.contains(footnotes, "[Brazil]") or
footnotes and m_table.contains(footnotes, "[Brazil only]") then
table.insert(labels, "Brazilian Portuguese verb form")
end
if not not form:find(m_pt_verb.VAR_PT) or footnotes and m_table.contains(footnotes, "[Portugal]") or
footnotes and m_table.contains(footnotes, "[Portugal only]") then
table.insert(labels, "European Portuguese verb form")
end
if not not form:find(m_pt_verb.VAR_SUPERSEDED) or footnotes and m_table.contains(footnotes, "[superseded]") then
table.insert(labels, "superseded")
end
return labels
end
local function gl_reinteg_extract_labels(formobj)
local labels = {"บรรทัดฐาน[[ภาคผนวก:ปฏิบูรณาการนิยม|ปฏิบูรณาการนิยม]]"}
local form = formobj.form
local footnotes = formobj.footnotes
local m_gl_reinteg_verb = require(gl_reinteg_verb_module)
if not not form:find(m_gl_reinteg_verb.ALTVAR) or footnotes and m_table.contains(footnotes, "[less recommended]") then
table.insert(labels, "less recommended")
end
return labels
end
local norm_properties = {
pt = {
verb_module = pt_verb_module,
lang = require("Module:languages").getByCode("pt"),
langcode = "pt",
extract_labels = pt_extract_labels,
remove_variant_codes = true,
},
ca = {
verb_module = ca_verb_module,
lang = require("Module:languages").getByCode("ca"),
langcode = "ca",
remove_variant_codes = false,
},
gl = {
verb_module = gl_verb_module,
lang = require("Module:languages").getByCode("gl"),
langcode = "gl",
remove_variant_codes = false,
},
["gl-reinteg"] = {
verb_module = gl_reinteg_verb_module,
lang = require("Module:languages").getByCode("gl"),
langcode = "gl",
extract_labels = gl_reinteg_extract_labels,
remove_variant_codes = true,
},
}
local function track(page)
require("Module:debug/track")("romance inflections/" .. page)
return true
end
local function generate_inflection_of(tag_sets, lemma, pretext, args, norm)
local lang = norm_properties[norm].lang
for _, tag_set in ipairs(tag_sets) do
tag_set.tags = rsplit(tag_set.tag, "|")
tag_set.tag = nil
end
local has_multiple_tag_sets = #tag_sets > 1
-- If only one tag, extract out the "combined with ..." text and move into posttext=, which goes after the lemma.
-- FIXME: No support for clitic combinations currently for Portuguese or Galician, although maybe we should add it.
local posttext
if #tag_sets == 1 then
local tags = tag_sets[1].tags
local last_tag = tags[#tags]
if last_tag:match("^combined with .*$") then
-- NOTE: table.remove() side-effects the list by removing and returning the last item.
posttext = " " .. table.remove(tags)
end
end
local function hack_clitics(text)
return text:gsub("%[%[(.-)%]%]", function(pronoun) return m_links.full_link({term = pronoun, lang = lang}, "term") end)
end
-- Hack to convert raw-linked pronouns e.g. in 'combined with [[te]]' to Portuguese-linked pronouns.
for _, tag_set in ipairs(tag_sets) do
for i, tag in ipairs(tag_set.tags) do
if tag:find("%[%[") then
tag_set.tags[i] = hack_clitics(tag)
end
end
end
posttext = posttext and hack_clitics(posttext) or nil
local lemma_obj = {
lang = lang,
term = lemma,
gloss = args.t,
pos = args.pos,
lit = args.lit,
id = args.id,
}
if has_multiple_tag_sets then
tag_sets = require(accel_module).combine_tag_sets_into_multipart(tag_sets, lang, "verb")
end
return m_form_of.tagged_inflections {
lang = lang, tag_sets = tag_sets, lemmas = {lemma_obj}, lemma_face = "term", pretext = pretext,
posttext = posttext, POS = "คำกริยา",
}
end
function export.verb_form_of(frame)
local norm = frame.args.norm
if not norm then
error("Frame (invocation) argument norm= must be specified")
end
if not norm_properties[norm] then
local valid_norms = {}
for k, v in pairs(norm_properties) do
table.insert(valid_norms, k)
end
table.sort(valid_norms)
error("Unrecognized value for norm=; possible values are " .. table.concat(valid_norms, ", "))
end
local langcode = norm_properties[norm].langcode
local parargs = frame:getParent().args
local params = {
[1] = {required = true},
["noautolinktext"] = {type = "boolean"},
["noautolinkverb"] = {type = "boolean"},
["pagename"] = {}, -- for testing/documentation pages
["json"] = {type = "boolean"}, -- for bot use
["slots"] = {}, -- restrict to only these slots
["noslots"] = {}, -- restrict to all but these slots
["t"] = {},
["gloss"] = {alias_of = "t"},
["lit"] = {},
["pos"] = {},
["id"] = {},
}
local m_verb_module = require(norm_properties[norm].verb_module)
local args = require("Module:parameters").process(parargs, params)
local alternant_multiword_spec = m_verb_module.do_generate_forms(args, ("%s-verb form of"):format(norm))
local function remove_variant_codes(form)
if norm_properties[norm].remove_variant_codes then
return m_verb_module.remove_variant_codes(form)
else
return form
end
end
local function extract_labels(formobj)
if norm_properties[norm].extract_labels then
return norm_properties[norm].extract_labels(formobj)
else
return {}
end
end
local non_lemma_form = alternant_multiword_spec.verb_form_of_form
local lemmas = {}
if not alternant_multiword_spec.forms.infinitive then
error("Internal error: No infinitive?")
end
for _, formobj in ipairs(alternant_multiword_spec.forms.infinitive) do
m_table.insertIfNot(lemmas, m_links.remove_links(formobj.form))
end
-- FIXME: Consider supporting multiple lemmas.
local lemma = lemmas[1]
local slot_restrictions = args.slots and m_table.listToSet(rsplit(args.slots, ",")) or nil
local negated_slot_restrictions = args.noslots and m_table.listToSet(rsplit(args.noslots, ",")) or nil
local tags = {}
local slots_seen = {}
local function loop_over_verb_slots(verb_slots)
for _, slot_accel in ipairs(verb_slots) do
local slot, accel = unpack(slot_accel)
-- If used on the infinitive page, don't include the infinitive as a form.
if slot ~= "infinitive" and slot ~= "infinitive_linked" then
local forms = alternant_multiword_spec.forms[slot]
if forms then
for _, formobj in ipairs(forms) do
local labels = extract_labels(formobj)
local form = remove_variant_codes(m_links.remove_links(mw.ustring.toNFC(formobj.form)))
if non_lemma_form == form then
if (not slot_restrictions or slot_restrictions[slot]) and (
not negated_slot_restrictions or not negated_slot_restrictions[slot]
) then
m_table.insertIfNot(tags, {tag = accel, labels = labels})
end
if slot_restrictions or negated_slot_restrictions then
slots_seen[slot] = true
end
end
end
end
end
end
end
local function check_slot_restrictions_against_slots_seen()
local function get_slots_seen()
local slots_seen_list = {}
for slot, _ in pairs(slots_seen) do
table.insert(slots_seen_list, slot)
end
table.sort(slots_seen_list)
return slots_seen_list
end
local function check_against_slots_seen(restrictions, prefix)
for slot, _ in pairs(restrictions) do
if not slots_seen[slot] then
error(("%sslot restriction for slot '%s' had no effect (typo?) because it is not any of the slots matching form '%s' for verb '%s': possible values %s"):format(
prefix, slot, non_lemma_form, lemma, table.concat(get_slots_seen(), ",")))
end
end
end
if slot_restrictions then
check_against_slots_seen(slot_restrictions, "")
end
if negated_slot_restrictions then
check_against_slots_seen(negated_slot_restrictions, "negated ")
end
end
loop_over_verb_slots(alternant_multiword_spec.verb_slots_basic)
if next(slots_seen) then
check_slot_restrictions_against_slots_seen()
end
if #tags > 0 then
return generate_inflection_of(tags, lemma, nil, args, norm)
end
-- If we don't find any matches, we try again, looking for non-reflexive forms of reflexive-only verbs.
slots_seen = {}
if alternant_multiword_spec.refl and not lemma:find(" ") then
local refl_forms_to_tags = {}
for _, slot_accel in ipairs(alternant_multiword_spec.verb_slots_basic) do
local slot, accel = unpack(slot_accel)
local part_forms = alternant_multiword_spec.forms[slot .. "_non_reflexive"]
local full_forms = alternant_multiword_spec.forms[slot]
local variant_forms = alternant_multiword_spec.forms[slot .. "_variant"]
-- Make sure same number of part and full forms, otherwise we can't match them up.
if part_forms and full_forms and #part_forms == #full_forms and (
not variant_forms or #part_forms == #variant_forms) then
-- Find part form the same as the non-lemma form we're generating the inflection(s) of,
-- and accumulate properties into refl_forms_to_tags.
for i, part_form in ipairs(part_forms) do
local labels = extract_labels(part_form)
local form = remove_variant_codes(m_links.remove_links(mw.ustring.toNFC(part_form.form)))
if non_lemma_form == form then
if (not slot_restrictions or slot_restrictions[slot]) and (
not negated_slot_restrictions or not negated_slot_restrictions[slot]
) then
local saw_existing = false
for _, refl_form_to_tags in ipairs(refl_forms_to_tags) do
if refl_form_to_tags.form == remove_variant_codes(full_forms[i].form) then
table.insert(refl_form_to_tags.tags, {tag = accel, labels = labels})
saw_existing = true
break
end
end
if not saw_existing then
table.insert(refl_forms_to_tags, {
form = remove_variant_codes(full_forms[i].form),
tags = {{tag = accel, labels = labels}},
variant = variant_forms and remove_variant_codes(variant_forms[i].form),
})
end
end
if slot_restrictions or negated_slot_restrictions then
slots_seen[slot] = true
end
end
end
end
end
if next(slots_seen) then
check_slot_restrictions_against_slots_seen()
end
if #refl_forms_to_tags > 0 then
local parts = {}
for _, refl_form_to_tags in ipairs(refl_forms_to_tags) do
local only_used_in
if refl_form_to_tags.variant then
only_used_in =
frame:preprocess(("{{only used in|%s|%s|nocap=1}}, <span class='use-with-mention'>syntactic variant of {{m|%s|%s}}</span>"):format(
langcode, refl_form_to_tags.variant, langcode, refl_form_to_tags.form))
else
only_used_in =
frame:preprocess(("{{only used in|%s|%s|nocap=1}}"):format(langcode, refl_form_to_tags.form))
end
if refl_form_to_tags.form == lemma then
table.insert(parts, only_used_in)
else
local infl = generate_inflection_of(refl_form_to_tags.tags, lemma, only_used_in .. ", ", args, norm)
table.insert(parts, infl)
end
end
return table.concat(parts, "\n# ")
end
end
error(("'%s' is not any of the forms of the verb '%s'"):format(non_lemma_form, table.concat(lemmas, "/")))
end
return export
nw64g9bo6njorqr8g0hpmouxyn7o3r0
มอดูล:gl-reinteg-verb
828
339118
5758918
5729419
2026-08-24T12:10:18Z
Octahedron80
267
5758918
Scribunto
text/plain
--[=[
This module implements {{gl-reinteg-conj}} and provides the underlying conjugation functions for {{gl-reinteg-verb}},
as well as for {{gl-verb}} when invoked with |reinteg=1. The actual formatting of both {{gl-reinteg-verb}} and
{{gl-verb}} happens in [[Module:gl-headword]]. This module uses the [[Appendix:Reintegrationism|reintegrationist]] norm
for Galician spelling. See also [[Module:gl-verb]], which implements the standard norm.
Authorship: Ben Wing <benwing2>, MedK <medk1>
]=]
local export = {}
--[=[
TERMINOLOGY:
-- "slot" = A particular combination of tense/mood/person/number/etc.
Example slot names for verbs are "pres_1s" (present indicative first-person singular), "pres_sub_2s" (present
subjunctive second-person singular) "impf_sub_3p" (imperfect subjunctive third-person plural).
Each slot is filled with zero or more forms.
-- "form" = The conjugated Galician form representing the value of a given slot.
-- "lemma" = The dictionary form of a given Galician term. For Galician, always the infinitive.
]=]
--[=[
FIXME:
--]=]
local lang = require("Module:languages").getByCode("gl")
local m_string_utilities = require("Module:string utilities")
local m_links = require("Module:links")
local m_table = require("Module:table")
local iut = require("Module:inflection utilities")
local put = require("Module:parse utilities")
local com = require("Module:gl-reinteg-common")
local force_cat = false -- set to true for debugging
local check_for_red_links = false -- set to false for debugging
local rfind = mw.ustring.find
local rmatch = mw.ustring.match
local rsplit = mw.text.split
local rsub = com.rsub
local u = mw.ustring.char
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
local function link_term(term)
return m_links.full_link({ lang = lang, term = term }, "term")
end
local V = com.V -- vowel regex class
local AV = com.AV -- accented vowel regex class
local C = com.C -- consonant regex class
local AC = u(0x0301) -- acute = ́
local TEMPC1 = u(0xFFF1) -- temporary character used for consonant substitutions
local TEMP_MESOCLITIC_INSERTION_POINT = u(0xFFF2) -- temporary character used to mark the mesoclitic insertion point
-- Variant codes and the like.
-- NOTE: These codes should be *PREFIXED* onto stems and *SUFFIXED* onto endings. That way they won't interfere in the
-- operation of combine_stem_ending().
--
-- GL_TYPE = "Galician-type", PT_TYPE = "Portuguese-type". GL_TYPE stems cannot combine with PT_TYPE endings and
-- vice-versa. GL_ONLY_TYPE = "Galician-only type"; GL_ONLY_TYPE stems can only combine with endings specifically
-- marked as GL_TYPE.
local GL_TYPE = u(0xFFF3)
local GL_ONLY_TYPE = u(0xFFF4)
local PT_TYPE = u(0xFFF5)
-- ALTVAR = Less-recommended variants listed at the bottom of the Estraviz conjugation tables rather than in the main
-- table. We list these in the main table but with a footnote indicating they are less-recommended alternatives, and
-- italicize them to visually set them apart.
local ALTVAR = u(0xFFF6)
local GL_ALTVAR = GL_TYPE .. ALTVAR
local GL_ONLY_ALTVAR = GL_ONLY_TYPE .. ALTVAR
local var_codes_no_altvar = GL_TYPE .. GL_ONLY_TYPE .. PT_TYPE
local all_var_codes = var_codes_no_altvar .. ALTVAR
local var_code_c = "[" .. all_var_codes .. "]"
local var_code_no_altvar_c = "[" .. var_codes_no_altvar .. "]"
local not_var_code_c = "[^" .. all_var_codes .. "]"
-- Export variant codes for use in [[Module:pt-gl-inflections]].
export.GL_TYPE = GL_TYPE
export.GL_ONLY_TYPE = GL_ONLY_TYPE
export.PT_TYPE = PT_TYPE
export.ALTVAR = ALTVAR
local short_pp_footnote = "[usually used with auxiliary verbs " .. link_term("ser") .. " and " .. link_term("estar") .. "]"
local long_pp_footnote = "[usually used with auxiliary verbs " .. link_term("haver") .. " and " .. link_term("ter") .. "]"
--[=[
Vowel alternations:
<i-e>: 'i' in pres1s and the whole present subjunctive; 'e' elsewhere when stressed. Generally 'e' otherwise when
unstressed. E.g. [[sentir]], [[conseguir]] (the latter additionally with 'gu-g' alternation).
<u-o>: 'u' in pres1s and the whole present subjunctive; 'o' elsewhere when stressed. Either 'o' or 'u' otherwise when
unstressed. E.g. [[dormir]], [[subir]].
<i>: 'i' whenever stressed (in the present singular and third plural) and throughout the whole present subjunctive.
Otherwise 'e'. E.g. [[progredir]], [[premir]].
<u>: 'u' whenever stressed (in the present singular and third plural) and throughout the whole present subjunctive.
Otherwise 'o'. E.g. [[polir]], [[extorquir]] (the latter also <u-o>).
<í>: The last 'i' of the stem (excluding stem-final 'i') becomes 'í' when stressed. E.g.:
* [[proibir]] ('proíbo, proíbe(s), proíbem, proíba(s), proíbam')
* [[faiscar]] ('faísco, faísca(s), faíscam, faísque(s), faísquem' also with 'c-qu' alternation)
* [[homogeneizar]] ('homogeneízo', etc.)
* [[mobiliar]] ('mobílio', etc.; note here the final -i is ignored when determining which vowel to stress)
* [[tuitar]] ('tuíto', etc.)
<ú>: The last 'u' of the stem (excluding stem-final 'u') becomes 'ú' when stressed. E.g.:
* [[reunir]] ('reúno, reúne(s), reúnem, reúna(s), reúnam')
* [[esmiuçar]] ('esmiúço, esmiúça(s), esmiúça, esmiúce(s), esmiúcem' also with 'ç-c' alternation)
* [[reusar]] ('reúso, reúsa(s), reúsa, reúse(s), reúsem')
* [[saudar]] ('saúdo, saúda(s), saúda, saúde(s), saúdem')
]=]
local vowel_alternants = m_table.listToSet({"i-e", "i", "í", "u-o", "u", "ú", "ei", "+"})
local vowel_alternant_to_desc = {
["i-e"] = "''i-e'' alternation in present singular",
["i"] = "''e'' becomes ''i'' when stressed",
["í"] = "''i'' becomes ''í'' when stressed",
["u-o"] = "''u-o'' alternation in present singular",
["u"] = "''o'' becomes ''u'' when stressed",
["ú"] = "''u'' becomes ''ú'' when stressed",
["ei"] = "''i'' becomes ''ei'' when stressed",
}
local vowel_alternant_to_cat = {
["i-e"] = "i-e alternation in present singular",
["i"] = "e becoming i when stressed",
["í"] = "i becoming í when stressed",
["u-o"] = "u-o alternation in present singular",
["u"] = "o becoming u when stressed",
["ú"] = "u becoming ú when stressed",
["ei"] = "i becoming ei when stressed",
}
local all_persons_numbers = {
["1s"] = "1|s",
["2s"] = "2|s",
["3s"] = "3|s",
["1p"] = "1|p",
["2p"] = "2|p",
["3p"] = "3|p",
}
local person_number_list = {"1s", "2s", "3s", "1p", "2p", "3p"}
local imp_person_number_list = {"2s", "3s", "1p", "2p", "3p"}
local neg_imp_person_number_list = {"2s", "3s", "1p", "2p", "3p"}
person_number_to_reflexive_pronoun = {
["1s"] = "me",
["2s"] = "te",
["3s"] = "se",
["1p"] = "nos",
["2p"] = "vos",
["3p"] = "se",
}
local indicator_flags = m_table.listToSet {
"no_pres_stressed", "no_pres1_and_sub",
"only3s", "only3sp", "only3p",
"pp_inv", "irreg", "no_built_in", "e_ei_cat",
}
-- Remove any variant codes e.g. GL_TYPE, PT_TYPE, ALTVAR. Needs to be called from [[Module:gl-reinteg-headword]] on the
-- output of do_generate_forms(). `keep_altvar` leaves ALTVAR; used in the `canonicalize` function of show_forms()
-- because we then process and remove it in `generate_forms`. FIXME: Use metadata for this once it's supported in
-- [[Module:inflection utilities]].
function export.remove_variant_codes(form, keep_altvar)
return rsub(form, keep_altvar and var_code_no_altvar_c or var_code_c, "")
end
-- Initialize all the slots for which we generate forms.
local function add_slots(alternant_multiword_spec)
-- "Basic" slots: All slots that go into the regular table (not the reflexive form-of table).
alternant_multiword_spec.verb_slots_basic = {
{"infinitive", "inf"},
{"infinitive_linked", "inf"},
{"gerund", "ger"},
{"short_pp_ms", "short|m|s|past|part"},
{"short_pp_fs", "short|f|s|past|part"},
{"short_pp_mp", "short|m|p|past|part"},
{"short_pp_fp", "short|f|p|past|part"},
{"pp_ms", "m|s|past|part"},
{"pp_fs", "f|s|past|part"},
{"pp_mp", "m|p|past|part"},
{"pp_fp", "f|p|past|part"},
}
-- Special slots used to handle non-reflexive parts of reflexive verbs in {{gl-reinteg-verb form of}}. For example,
-- for a reflexive-only verb like [[arrepender-se]], we want to be able to use {{gl-reinteg-verb form of}} on
-- [[arrependa]] (which should mention that it is a part of 'me arrependa', first-person singular present
-- subjunctive, and 'se arrependa', third-person singular present subjunctive) or on [[arrependemos]] (which should
-- mention that it is a part of 'arrependemo-nos', first-person plural present indicative or preterite). Similarly,
-- we want to use {{gl-reinteg-verb form of}} on [[arrependendo]] (which should mention that it is a part of
-- 'se ... arrependendo', syntactic variant of [[arrependendo-se]], which is the gerund of [[arrepender-se]]). To
-- do this, we need to be able to map non-reflexive parts like [[arrependa]], [[arrependemos]], [[arrependendo]],
-- etc. to their reflexive equivalent(s), to the tag(s) of the equivalent(s), and, in the case of forms like
-- [[arrependendo]], [[arrepender]] and imperatives, to the separated syntactic variant of the verb+clitic
-- combination. We do this by creating slots for the non-reflexive part equivalent of each basic reflexive slot,
-- and for the separated syntactic-variant equivalent of each basic reflexive slot that is formed of verb+clitic.
-- We use slots in this way to deal with multiword lemmas. Note that we run into difficulties mapping between
-- reflexive verbs, non-reflexive part equivalents, and separated syntactic variants if a slot contains more than
-- one form. To handle this, if there are the same number of forms in two slots we're trying to match up, we assume
-- the forms match one-to-one; otherwise we don't match up the two slots (which means {{gl-reinteg-verb form of}} won't
-- work in this case, but such a case is extremely rare and not worth worrying about). Alternatives that handle
-- this "properly" are significantly more complicated and require non-trivial modifications to
-- [[Module:inflection utilities]].
local need_special_verb_form_of_slots = alternant_multiword_spec.source_template == "gl-reinteg-verb form of" and
alternant_multiword_spec.refl
if need_special_verb_form_of_slots then
alternant_multiword_spec.verb_slots_reflexive_verb_form_of = {
{"infinitive_non_reflexive", "-"},
{"infinitive_variant", "-"},
{"gerund_non_reflexive", "-"},
{"gerund_variant", "-"},
}
else
alternant_multiword_spec.verb_slots_reflexive_verb_form_of = {}
end
-- Add entries for a slot with person/number variants.
-- `verb_slots` is the table to add to.
-- `slot_prefix` is the prefix of the slot, typically specifying the tense/aspect.
-- `tag_suffix` is a string listing the set of inflection tags to add after the person/number tags.
-- `person_number_list` is a list of the person/number slot suffixes to add to `slot_prefix`.
local function add_personal_slot(verb_slots, slot_prefix, tag_suffix, person_number_list)
for _, persnum in ipairs(person_number_list) do
local persnum_tag = all_persons_numbers[persnum]
local slot = slot_prefix .. "_" .. persnum
local accel = persnum_tag .. "|" .. tag_suffix
table.insert(verb_slots, {slot, accel})
end
end
-- Add a personal slot (i.e. a slot with person/number variants) to `verb_slots_basic`.
local function add_basic_personal_slot(slot_prefix, tag_suffix, person_number_list, no_special_verb_form_of_slot)
add_personal_slot(alternant_multiword_spec.verb_slots_basic, slot_prefix, tag_suffix, person_number_list)
-- Add special slots for handling non-reflexive parts of reflexive verbs in {{gl-reinteg-verb form of}}.
-- See comment above in `need_special_verb_form_of_slots`.
if need_special_verb_form_of_slots and not no_special_verb_form_of_slot then
for _, persnum in ipairs(person_number_list) do
local persnum_tag = all_persons_numbers[persnum]
local basic_slot = slot_prefix .. "_" .. persnum
local accel = persnum_tag .. "|" .. tag_suffix
table.insert(alternant_multiword_spec.verb_slots_reflexive_verb_form_of, {basic_slot .. "_non_reflexive", "-"})
end
end
end
add_basic_personal_slot("pres", "pres|ind", person_number_list)
add_basic_personal_slot("impf", "impf|ind", person_number_list)
add_basic_personal_slot("pret", "pret|ind", person_number_list)
add_basic_personal_slot("plup", "plup|ind", person_number_list)
add_basic_personal_slot("fut", "fut|ind", person_number_list)
add_basic_personal_slot("cond", "cond", person_number_list)
add_basic_personal_slot("pres_sub", "pres|sub", person_number_list)
add_basic_personal_slot("impf_sub", "impf|sub", person_number_list)
add_basic_personal_slot("fut_sub", "fut|sub", person_number_list)
add_basic_personal_slot("imp", "imp", imp_person_number_list)
add_basic_personal_slot("pers_inf", "pers|inf", person_number_list)
-- Don't need special non-reflexive-part slots because the negative imperative is multiword, of which the
-- individual words are 'nom' + subjunctive.
add_basic_personal_slot("neg_imp", "neg|imp", neg_imp_person_number_list, "no special verb form of")
-- Don't need special non-reflexive-part slots because we don't want [[arrependendo]] mapping to [[arrependendo-me]]
-- (only [[arrependendo-se]]) or [[arrepender]] mapping to [[arrepender-me]] (only [[arrepender-se]]).
add_basic_personal_slot("infinitive", "inf", person_number_list, "no special verb form of")
add_basic_personal_slot("gerund", "ger", person_number_list, "no special verb form of")
-- Generate the list of all slots.
alternant_multiword_spec.all_verb_slots = {}
for _, slot_and_accel in ipairs(alternant_multiword_spec.verb_slots_basic) do
table.insert(alternant_multiword_spec.all_verb_slots, slot_and_accel)
end
for _, slot_and_accel in ipairs(alternant_multiword_spec.verb_slots_reflexive_verb_form_of) do
table.insert(alternant_multiword_spec.all_verb_slots, slot_and_accel)
end
alternant_multiword_spec.verb_slots_basic_map = {}
for _, slotaccel in ipairs(alternant_multiword_spec.verb_slots_basic) do
local slot, accel = unpack(slotaccel)
alternant_multiword_spec.verb_slots_basic_map[slot] = accel
end
end
local overridable_stems = {}
local function allow_multiple_values(separated_groups, data)
local retvals = {}
for _, separated_group in ipairs(separated_groups) do
local footnotes = data.fetch_footnotes(separated_group)
local retval = {form = separated_group[1], footnotes = footnotes}
table.insert(retvals, retval)
end
return retvals
end
local function simple_choice(choices)
return function(separated_groups, data)
if #separated_groups > 1 then
data.parse_err("For spec '" .. data.prefix .. ":', only one value currently allowed")
end
if #separated_groups[1] > 1 then
data.parse_err("For spec '" .. data.prefix .. ":', no footnotes currently allowed")
end
local choice = separated_groups[1][1]
if not m_table.contains(choices, choice) then
data.parse_err("For spec '" .. data.prefix .. ":', saw value '" .. choice .. "' but expected one of '" ..
table.concat(choices, ",") .. "'")
end
return choice
end
end
for _, overridable_stem in ipairs {
"pres_unstressed",
"pres_stressed",
"pres1_and_sub",
-- Don't include pres1; use pres_1s if you need to override just that form
"impf",
"full_impf",
{"pret_conj", simple_choice({"irreg", "ar", "er", "ir"}) },
"pret_base",
"pret",
"gl_short_pret",
"pt_pret_1s",
"pt_pret_3s",
"fut",
"cond",
"pres_sub_stressed",
"pres_sub_unstressed",
{"sub_conj", simple_choice({"ar", "er"}) },
"plup",
"impf_sub",
"fut_sub",
"pers_inf",
"pp",
"short_pp",
} do
if type(overridable_stem) == "string" then
overridable_stems[overridable_stem] = allow_multiple_values
else
local stem, validator = unpack(overridable_stem)
overridable_stems[stem] = validator
end
end
-- Useful as the value of the `match` property of a built-in verb. `main_verb_spec` is a Lua pattern that should match
-- the non-prefixed part of a verb, and `prefix_specs` is a list of Lua patterns that should match the prefixed part of
-- a verb. If a prefix spec is preceded by ^, it must match exactly at the beginning of the verb; otherwise, additional
-- prefixes (e.g. re-, des-) may precede. Return the prefix and main verb.
local function match_against_verbs(main_verb_spec, prefix_specs)
return function(verb)
for _, prefix_spec in ipairs(prefix_specs) do
if prefix_spec:find("^%^") then
-- must match exactly
prefix_spec = prefix_spec:gsub("^%^", "")
if prefix_spec == "" then
-- We can't use the second branch of the if-else statement because an empty () returns the current position
-- in rmatch().
local main_verb = rmatch(verb, "^(" .. main_verb_spec .. ")$")
if main_verb then
return "", main_verb
end
else
local prefix, main_verb = rmatch(verb, "^(" .. prefix_spec .. ")(" .. main_verb_spec .. ")$")
if prefix then
return prefix, main_verb
end
end
else
local prefix, main_verb = rmatch(verb, "^(.*" .. prefix_spec .. ")(" .. main_verb_spec .. ")$")
if prefix then
return prefix, main_verb
end
end
end
return nil
end
end
--[=[
Built-in (usually irregular) conjugations.
Each entry is processed in turn and consists of an object with two fields:
1. match=: Specifies the built-in verbs that match this object.
2. forms=: Specifies the built-in stems and forms for these verbs.
The value of match= is either a string beginning with "^" (match only the specified verb), a string not beginning
with "^" (match any verb ending in that string), or a function that is passed in the verb and should return the prefix
of the verb if it matches, otherwise nil. The function match_against_verbs() is provided to facilitate matching a set
of verbs with a common ending and specific prefixes (e.g. [[ter]] and [[ater]] but not [[abater]], etc.).
The value of forms= is a table specifying stems and individual override forms. Each key of the table names either a
stem (e.g. `pres_stressed`), a stem property (e.g. `vowel_alt`) or an individual override form (e.g. `pres_1s`).
Each value of a stem can either be a string (a single stem), a list of strings, or a list of objects of the form
{form = STEM, footnotes = {FOONOTES}}. Each value of an individual override should be of exactly the same form except
that the strings specify full forms rather than stems. The values of a stem property depend on the specific property
but are generally strings or booleans.
In order to understand how the stem specifications work, it's important to understand the phonetic modifications done
by combine_stem_ending(). In general, the complexities of predictable prefix, stem and ending modifications are all
handled in this function. In particular:
1. Spelling-based modifications (c/z, g/gu, gu/gü, g/j) occur automatically as appropriate for the ending.
2. If the stem begins with an acute accent, the accent is moved onto the last vowel of the prefix (for handling verbs
in -uar such as [[minguar]], pres_3s 'míngua').
3. If the ending begins with a double asterisk, this is a signal to conditionally delete the accent on the last letter
of the stem. "Conditionally" means we don't do it if the last two letters would form a diphthong without the accent
on the second one (e.g. in [[sair]], with stem 'saí'); but as an exception, we do delete the accent in stems
ending in -guí, -quí (e.g. in [[conseguir]]) because in this case the ui isn't a diphthong.
4. If the ending begins with an asterisk, this is a signal to delete the accent on the last letter of the stem, e.g.
fizé -> fizermos. Unlike for **, this removal is unconditional, so we get e.g. 'sairmos' not #'saírmos'.
5. If ending begins with i, it must get an accent after an unstressed vowel (in some but not all cases) to prevent the
two merging into a diphthong. See combine_stem_ending() for specifics.
The following stems are recognized:
-- pres_unstressed: The present indicative unstressed stem (1p, 2p). Also controls the imperative 2p
and gerund. Defaults to the infinitive stem (minus the ending -ar/-er/-ir/-or).
-- pres_stressed: The present indicative stressed stem (1s, 2s, 3s, 3p). Also controls the imperative 2s.
Default is empty if indicator `no_pres_stressed`, else a vowel alternation if such an indicator is given
(e.g. `ue`, `ì`), else the infinitive stem.
-- pres1_and_sub: Overriding stem for 1s present indicative and the entire subjunctive. Only set by irregular verbs
and by the indicators `no_pres_stressed` (e.g. [[precaver]]) and `no_pres1_and_sub` (since verbs of this sort,
e.g. [[puir]], are missing the entire subjunctive as well as the 1s present indicative). Used by many irregular
verbs, e.g. [[caber]], verbs in '-air', [[dizer]], [[ter]], [[valer]], etc. Some verbs set this and then supply an
override for the pres_1sg if it's irregular, e.g. [[saber]], with irregular subjunctive stem "saib-" and special
1s present indicative "sei".
-- pres1: Special stem for 1s present indicative. Normally, do not set this explicitly. If you need to specify an
irregular 1s present indicative, use the form override pres_1s= to specify the entire form. Defaults to
pres1_and_sub if given, else pres_stressed.
-- pres_sub_unstressed: The present subjunctive unstressed stem (1p, 2p). Defaults to pres1_and_sub if given, else the
infinitive stem.
-- pres_sub_stressed: The present subjunctive stressed stem (1s, 2s, 3s, 1p). Defaults to pres1.
-- sub_conj: Determines the set of endings used in the subjunctive. Should be one of "ar" or "er".
-- impf: The imperfect stem (not including the -av-/-i- stem suffix, which is determined by the conjugation). Defaults
to the infinitive stem.
-- full_impf: The full imperfect stem missing only the endings (-a, -as, -am, etc.). Used for verbs with irregular
imperfects such as [[ser]], [[ter]], [[vir]] and [[pôr]]. Needs to include an accent on the stressed vowel, which
will automatically be removed when not needed.
-- pret_conj: Determines the set of endings used in the preterite. Should be one of "ar", "er", "ir" or "irreg".
Defaults to the conjugation as determined from the infinitive. When pret_conj == "irreg", `pret` is used, otherwise
`pret_base`.
-- pret_base: The preterite stem (not including the -a-/-e-/-i- stem suffix). Defaults to the infinitive stem.
Only used when pret_conj ~= "irreg".
-- pret: The full preterite stem missing only the endings (-ste, -mos, etc.). Needs to include the accent on the final
vowel that occurs in some forms, e.g. 'figé' for [[fazer]], 'fô' for [[ser]]; the accent will automatically be
removed when not needed. Only used for verbs with irregular preterites (pret_conj == "irreg") such as [[fazer]],
[[poder]], [[trazer]], etc. The pret_1s and pret_3s are handled using the gl_short_pret stem instead for
"Galician"-ending forms (pret_1s '-em', pret_3s '-o') and using pt_pret_1s and pt_pret_3s for "Portuguese"-ending
forms. Defaults to `pret_base` + the accented conjugation vowel.
-- gl_short_pret: The short preterite stem, used with "Galician" 1s and 3s endings (pret_1s '-em', pret_3s '-o'). Only
used with irregular preterites (pret_conj == "irreg"). Normally derived from gl_pret by deleting the final vowel,
and doesn't need to be given explicitly.
-- pt_pret_1s: The "Portuguese" pret_1s form. In addition to this, the "Galician" pret_1s form will be included, formed
from gl_short_pret by adding '-em'. Does not need to be given if an override for pret_1s is supplied.
-- pt_pret_3s: The "Portuguese" pret_3s form. In addition to this, the "Galician" pret_3s form will be included, formed
from gl_short_pret by adding '-o' (which may cause the preceding consonant to shift to preserve the sound). Does
not need to be given if an override for pret_3s is supplied.
-- fut: The future stem. Defaults to the infinitive stem + the unaccented conjugation vowel.
-- cond: The conditional stem. Defaults to `fut`.
-- impf_sub: The imperfect subjunctive stem. Needs to include the accent on the final vowel that occurs in some forms;
see `pret` for more information. Defaults to `pret`.
-- fut_sub: The future subjunctive stem. Needs to include the accent on the final vowel that occurs in some forms; see
`gl_pret` for more information. Defaults to the merger of `gl_pret` and `pt_pret`.
-- plup: The pluperfect stem. Needs to include the accent on the final vowel that occurs in some forms; see `pret` for
more information. Defaults to `pret`.
-- pers_inf: The personal infinitive stem. Defaults to the infinitive stem + the accented conjugation vowel.
-- pp: The masculine singular past participle. Default is based on the verb conjugation: infinitive stem + '-ado' for
-ar verbs, otherwise infinitive stem + '-ido'.
-- short_pp: The short masculine singular past participle, for verbs with such a form. No default.
-- pp_inv: `true` if the past participle exists only in the masculine singular.
]=]
local built_in_conjugations = {
--------------------------------------------------------------------------------------------
-- -ar --
--------------------------------------------------------------------------------------------
-- Verbs not needing entries here:
--
-- (1) Verbs with short past participles: need to specify the short pp explicitly.
--
-- aceitar: use <short_pp:aceite>
-- anexar, completar, expressar, expulsar, findar, fritar, ganhar, gastar, limpar, pagar, pasmar, pegar, soltar:
-- use <short_pp:anexo> etc.
-- assentar: use <short_pp:assente>
-- entregar: use <short_pp:entregue>
-- enxugar: use <short_pp:enxuto>
-- matar: use <short_pp:morto>
--
-- (2) Verbs with orthographic consonant alternations: handled automatically.
--
-- -car (brincar, buscar, pecar, trancar, etc.): automatically handled in combine_stem_ending()
-- -çar (alcançar, começar, laçar): automatically handled in combine_stem_ending()
-- -gar (apagar, cegar, esmagar, largar, navegar, resmungar, sugar, etc.): automatically handled in combine_stem_ending()
--
-- (3) Verbs with vowel alternations: need to specify the alternation explicitly unless it always happens, in
-- which case it's handled automatically through an entry below.
--
-- esmiuçar changing to esmiúço: use <ú>
-- faiscar changing to faísco: use <í>
-- -iar changing to -eio (ansiar, incendiar, mediar, odiar, remediar, etc.): use <ei>
-- -izar changing to -ízo (ajuizar, enraizar, homogeneizar, plebeizar, etc.): use <í>
-- mobiliar changing to mobílio: use <í>
-- reusar changing to reúso: use <ú>
-- saudar changing to saúdo: use <ú>
-- tuitar/retuitar changing to (re)tuíto: use <í>
{
-- dar, desdar
match = match_against_verbs("dar", {"^", "^des", "^re"}),
forms = {
pres_1s = "dou",
pres_2s = "dás",
pres_3s = "dá",
-- damos, dades/dais regular
pres_3p = {GL_TYPE .. "dam", PT_TYPE .. "dão"},
pret_conj = "irreg", pret = "dé", pret_1s = "dei", pret_3s = "deu",
pres_sub_1s = "dê",
pres_sub_2s = "dês",
pres_sub_3s = "dê",
-- demos, dedes/deis regular
pres_sub_3p = {GL_TYPE .. "dem", PT_TYPE .. "deem"},
irreg = true,
}
},
{
-- -ear (frear, nomear, semear, etc.)
match = "ear",
forms = {
pres_stressed = {"ei", GL_ALTVAR .. "e"},
e_ei_cat = true,
}
},
{
-- estar
match = match_against_verbs("estar", {"^", "sob", "sobr"}),
forms = {
pres_1s = "estou",
pres_2s = "estás",
pres_3s = "está",
pres_3p = {GL_TYPE .. "estám", PT_TYPE .. "estão"},
pres1_and_sub = "estej", -- only for subjunctive as we override pres_1s
sub_conj = "er",
pret_conj = "irreg", pret = "estivé", pt_pret_1s = "estive", pt_pret_3s = "esteve",
-- [[sobestar]], [[sobrestar]] are transitive so they have fully inflected past participles
pp_inv = function(base, prefix) return prefix == "" end,
irreg = true,
}
},
--------------------------------------------------------------------------------------------
-- -er --
--------------------------------------------------------------------------------------------
-- Verbs not needing entries here:
--
-- precaver: use <no_pres_stressed>
-- -cer (verbs in -ecer, descer, vencer, etc.): automatically handled in combine_stem_ending()
-- -ger (proteger, reger, etc.): automatically handled in combine_stem_ending()
-- -guer (erguer/reerguer/soerguer): automatically handled in combine_stem_ending()
{
-- benzer
match = "benzer",
forms = {short_pp = "bento"}
},
{
-- caber
match = "caber",
forms = {
pres1_and_sub = "caib",
pret_conj = "irreg", pret = "coubé", pt_pret_1s = "coube", pt_pret_3s = "coube",
irreg = true,
}
},
{
-- crer, descrer
match = "crer",
forms = {
pres_2s = "crês", pres_3s = "crê",
pres_2p = "credes", pres_3p = {GL_TYPE .. "crem", PT_TYPE .. "creem"},
pres1_and_sub = {"crei", GL_ALTVAR .. "cre"},
irreg = true,
}
},
{
-- dizer, bendizer, condizer, contradizer, desdizer, maldizer, predizer, etc.
match = "dizer",
forms = {
-- use 'digu' because we're in a front environment; if we use 'dig', we'll get '#dijo'
pres1_and_sub = "digu",
pres_2s = {GL_TYPE .. "dis", PT_TYPE .. "dizes"},
pres_3s = {GL_TYPE .. "di", PT_TYPE .. "diz"},
pres_3p = {GL_TYPE .. "dim", PT_TYPE .. "dizem"},
pret_conj = "irreg", pret = {GL_TYPE .. "dixé", PT_TYPE .. "dissé"},
pt_pret_1s = "disse", pt_pret_3s = "disse",
pp = "dito",
fut = "dir",
irreg = true,
}
},
{
-- eleger, reeleger
match = "eleger",
forms = {short_pp = "eleito"}
},
{
-- acender, prender; not desprender, etc.
match = match_against_verbs("ender", {"^ac", "^pr"}),
forms = {short_pp = "eso"}
},
{
-- fazer, afazer, contrafazer, desfazer, liquefazer, perfazer, putrefazer, rarefazer, refazer, satisfazer, tumefazer
match = "fazer",
forms = {
-- use 'fagu' because we're in a front environment; if we use 'fag', we'll get '#fajo'
pres1_and_sub = {GL_TYPE .. "fagu", PT_TYPE .. "faç"},
pres_2s = {GL_TYPE .. "fás", PT_TYPE .. "fazes"},
pres_3s = {GL_TYPE .. "fai", PT_TYPE .. "faz"},
pres_3p = {GL_TYPE .. "fam", PT_TYPE .. "fazem"},
pret_conj = "irreg", pret = {GL_TYPE .. "figé", PT_TYPE .. "fizé", GL_ONLY_ALTVAR .. "fizé"},
pt_pret_1s = "fiz", pt_pret_3s = "fez",
pp = "feito",
fut = "far",
irreg = true,
}
},
{
match = "^haver",
forms = {
pres_1s = "hei",
pres_2s = "hás",
pres_3s = {"há", {form = GL_ALTVAR .. "hai", footnotes = {"[also impersonal]"}}},
pres_3p = {GL_TYPE .. "ham", PT_TYPE .. "hão"},
pres1_and_sub = "haj", -- only for subjunctive as we override pres_1s
pret_conj = "irreg", pret = "houvé", pt_pret_1s = "houve", pt_pret_3s = "houve",
imp_2s = "há",
irreg = true,
}
},
-- reaver below under r-
{
-- jazer, adjazer
match = "jazer",
forms = {
pres_3s = "jaz",
irreg = true,
}
},
{
-- ler, reler, tresler; not excel(l)er, valer, etc.
match = match_against_verbs("ler", {"^", "^re", "tres"}),
forms = {
pres_2s = "lês", pres_3s = "lê",
pres_2p = "ledes", pres_3p = {GL_TYPE .. "lem", PT_TYPE .. "leem"},
pres1_and_sub = {"lei", GL_ALTVAR .. "le"},
irreg = true,
}
},
{
-- morrer, desmorrer
match = "morrer",
forms = {short_pp = "morto"}
},
{
-- moer, but not remoer
match = "^moer",
forms = {
pres_2s = "móis", pres_3s = "mói",
-- impf -ía etc., pret_1s -oí and pp -oído handled automatically in combine_stem_ending()
pres1_and_sub = {"mo", GL_ALTVAR .. "moi"},
short_pp = "mudo",
irreg = true,
}
},
{
-- doer, remoer, roer/corroer, soer
match = "oer",
forms = {
pres_2s = "óis", pres_3s = "ói",
-- impf -ía etc., pret_1s -oí and pp -oído handled automatically in combine_stem_ending()
pres1_and_sub = {"o", GL_ALTVAR .. "oi"},
irreg = true,
}
},
{
-- perder
match = "perder",
forms = {
-- use 'perqu' because we're in a front environment; if we use 'perc', we'll get '#perço'
-- we don't tag these forms GL_TYPE or PT_TYPE because both occur with both endings -ais/-ades
pres1_and_sub = {"perd", "perqu"},
irreg = true,
}
},
{
-- poder
match = "poder",
forms = {
pres1_and_sub = {GL_TYPE .. "pod", PT_TYPE .. "poss"},
pret_conj = "irreg", pret = "pudé", pt_pret_1s = "pude", pt_pret_3s = "pôde",
irreg = true,
}
},
{
-- prazer, aprazer, comprazer, desprazer
-- FIXME: comprazer also has regular preterite
match = "prazer",
forms = {
pres_3s = "praz",
pret_conj = "irreg", pret = "prouvé", pt_pret_1s = "prouve", pt_pret_3s = "prouve",
only3sp = function(base, prefix) return prefix == "a" end,
imp_2s = {GL_TYPE .. "praze", PT_TYPE .. "praz"},
irreg = true,
}
},
-- prover below, just below ver
{
-- requerer; must precede querer
match = "requerer",
forms = {
pres_3s = "requer",
pres1_and_sub = "requeir",
imp_2s = {"requer"},
-- regular preterite, unlike [[querer]]
irreg = true,
}
},
{
-- querer, desquerer, malquerer
match = "querer",
forms = {
pres_1s = "quero", pres_3s = "quer",
pres1_and_sub = "queir", -- only for subjunctive as we override pres_1s
pret_conj = "irreg", pret = {GL_TYPE .. "quigé", PT_TYPE .. "quisé"},
pt_pret_1s = "quis", pt_pret_3s = "quis",
irreg = true,
}
},
{
match = "reaver",
forms = {
pres_1s = "reei",
pres_2s = "reás",
pres_3s = "reá",
pres_3p = {GL_TYPE .. "ream", PT_TYPE .. "reão"},
pres1_and_sub = "reaj", -- only for subjunctive as we override pres_1s
pret_conj = "irreg", pret = "reouvé", pt_pret_1s = "reouve", pt_pret_3s = "reouve",
irreg = true,
}
},
{
-- saber, ressaber
match = "saber",
forms = {
pres_1s = "sei",
pres1_and_sub = "saib", -- only for subjunctive as we override pres_1s
pret_conj = "irreg", pret = "soubé", pt_pret_1s = "soube", pt_pret_3s = "soube",
irreg = true,
}
},
{
-- escrever/reescrever, circunscrever, descrever/redescrever, inscrever, prescrever, proscrever, subscrever,
-- transcrever, others?
match = "screver",
forms = {
pp = "scrito",
irreg = true,
}
},
{
-- suspender
match = "suspender",
forms = {short_pp = "suspenso"}
},
{
match = "^ser",
forms = {
pres_1s = "sou", pres_2s = "és", pres_3s = "é",
pres_1p = "somos", pres_2p = {GL_TYPE .. "sodes", PT_TYPE .. "sois"},
pres_3p = {GL_TYPE .. "som", PT_TYPE .. "são"},
pres1_and_sub = "sej", -- only for subjunctive as we override pres_1s
full_impf = "ér",
pret_conj = "irreg", pret = "fô", pret_1s = {GL_TYPE .. "fum", PT_TYPE .. "fui"}, pret_3s = "foi",
imp_2s = "sê", imp_2p = "sede",
pp_inv = true,
irreg = true,
}
},
{
-- We want to match abster, conter, deter, etc. but not abater, cometer, etc. No way to avoid listing each verb.
match = match_against_verbs("ter", {"abs", "^a", "con", "de", "entre", "man", "ob", "^re", "sus", "^"}),
forms = {
-- FIXME, Estraviz says 'contens', 'detens' etc. but that may be a typo
pres_2s = function(base, prefix) return {GL_TYPE .. "tés", PT_TYPE .. (prefix == "" and "tens" or "téns")} end,
-- FIXME, Estraviz says 'contem', 'detem' etc. but that may be a typo
pres_3s = function(base, prefix) return prefix == "" and "tem" or "tém" end,
pres_2p = "tendes", pres_3p = {GL_TYPE .. "tenhem", PT_TYPE .. "têm", GL_ALTVAR .. "tém"},
pres1_and_sub = "tenh",
full_impf = "tính",
pret_conj = "irreg", pret = "tivé", pt_pret_1s = "tive", pt_pret_3s = "teve",
irreg = true,
}
},
{
match = "trazer",
forms = {
-- use 'tragu' because we're in a front environment; if we use 'trag', we'll get '#trajo'
pres1_and_sub = "tragu", pres_3s = "traz",
pret_conj = "irreg", pret = "trouxé", pt_pret_1s = "trouxe", pt_pret_3s = "trouxe",
fut = "trar",
irreg = true,
}
},
{
match = "traguer",
forms = {
pret_conj = "irreg", pret = "trouxé", pt_pret_1s = "trouxe", pt_pret_3s = "trouxe",
irreg = true,
}
},
{
-- valer, desvaler, equivaler
match = "valer",
forms = {
pres1_and_sub = "valh",
irreg = true,
}
},
{
-- We want to match antever etc. but not absolver, atrever etc. No way to avoid listing each verb.
match = match_against_verbs("ver", {"ante", "entre", "pre", "^re", "^"}),
forms = {
pres_2s = "vês", pres_3s = "vê",
pres_2p = "vedes",
pres_3p = function(base, prefix) return {GL_TYPE .. (prefix == "" and "vem" or "vêm"), PT_TYPE .. "veem"} end,
pres1_and_sub = "vej",
pret_conj = "irreg", pret = "ví", pret_1s = {GL_TYPE .. "vim", PT_TYPE .. "vi"}, pret_3s = "viu",
pp = "visto",
irreg = true,
}
},
{
-- [[prover]] and [[desprover]] have regular preterite and past participle
match = "prover",
forms = {
pres_2s = "provês", pres_3s = "provê",
-- FIXME: Estraviz says 'provem' but that may be a typo
pres_2p = "provedes", pres_3p = {GL_TYPE .. "provêm", PT_TYPE .. "proveem"},
pres1_and_sub = "provej",
irreg = true,
}
},
{
-- volver, devolver, envolver, revolver, etc.
match = "volver",
forms = {short_pp = "volto"},
},
--------------------------------------------------------------------------------------------
-- -ir --
--------------------------------------------------------------------------------------------
-- Verbs not needing entries here:
--
-- abolir: use <u-o>
-- barrir: use <only3sp>
-- carpir, colorir, demolir: use <no_pres1_and_sub>
-- descolorir: use <no_pres1_and_sub>
-- delir, espavorir, falir, florir, remir, renhir: use <no_pres_stressed>
-- empedernir: use <i-e>
-- transir: regular
-- aspergir, despir, flectir/deflectir/genuflectir/genufletir/reflectir/refletir, mentir/desmentir,
-- sentir/assentir/consentir/dissentir/pressentir/ressentir, convergir/divergir, aderir/adherir,
-- ferir/auferir/conferir/deferir/desferir/diferir/differir/inferir/interferir/preferir/proferir/referir/transferir,
-- gerir/digerir/ingerir/sugerir, preterir, competir/repetir, servir, advertir/animadvertir/divertir,
-- vestir/investir/revestir/travestir, seguir/conseguir/desconseguir/desseguir/perseguir/prosseguir: use <i-e>
-- inerir: use <i-e>
-- compelir/expelir/impelir/repelir: use <i-e>
-- dormir, engolir, tossir, subir, acudir/sacudir, fugir, sumir/consumir (NOT assumir/presumir/resumir): use <u-o>
-- polir/repolir: use <u>
-- premir: use <i>
-- extorquir/retorquir: <u-o,u>
-- agredir/progredir/regredir/transgredir: use <i>
-- denegrir, prevenir: use <i>
-- eclodir: use <u-o>
-- cerzir: use <i-e>
-- proibir/coibir: use <í>
-- reunir: use <ú>
-- parir/malparir: use <no_pres_stressed>
-- explodir/implodir: use <u-o>
--
-- -cir alternations (aducir, ressarcir): automatically handled in combine_stem_ending()
-- -gir alternations (agir, dirigir, exigir): automatically handled in combine_stem_ending()
-- -guir alternations (e.g. conseguir): automatically handled in combine_stem_ending()
-- -quir alternations (e.g. extorquir): automatically handled in combine_stem_ending()
{
-- verbs in -air (cair, sair, trair and derivatives: decair/descair/recair, sobres(s)air,
-- abstrair/atrair/contrair/distrair/extrair/protrair/retrair/subtrair)
match = "air",
forms = {
pres1_and_sub = "ai", pres_2s = "ais", pres_3s = "ai",
-- all occurrences of accented í in endings handled in combine_stem_ending()
irreg = true,
}
},
{
-- abrir/desabrir/reabrir
match = "abrir",
forms = {pp = "aberto"}
},
{
-- cobrir/descobrir/encobrir/recobrir/redescobrir
match = "cobrir",
forms = {vowel_alt = "u-o", pp = "coberto"}
},
{
-- conduzir, produzir, reduzir, traduzir, etc.; luzir, reluzir, tremeluzir
match = "uzir",
forms = {
pres_3s = "uz",
-- FIXME, is this correct?
imp_2s = "uze",
irreg = true,
}
},
{
-- pedir, desimpedir, despedir, espedir, expedir, impedir
-- medir
-- comedir
match = match_against_verbs("edir", {"m", "p"}),
forms = {
pres1_and_sub = {GL_TYPE .. "id", PT_TYPE .. "eç"},
irreg = true,
}
},
{
-- frigir
match = "frigir",
forms = {vowel_alt = "i-e", short_pp = "frito"},
},
{
-- inserir
match = "inserir",
forms = {vowel_alt = "i-e"},
},
{
-- ir
match = "^ir",
forms = {
pres_1s = "vou", pres_2s = {GL_TYPE .. "vás", PT_TYPE .. "vais"}, pres_3s = "vai",
pres_1p = {GL_TYPE .. "imos", PT_TYPE .. "vamos"}, pres_2p = "ides",
pres_3p = {GL_TYPE .. "vam", PT_TYPE .. "vão"},
pres_sub_1s = {GL_TYPE .. "vaia", PT_TYPE .. "vá"},
pres_sub_2s = {GL_TYPE .. "vaias", PT_TYPE .. "vás"},
pres_sub_3s = {GL_TYPE .. "vaia", PT_TYPE .. "vá"},
pres_sub_1p = {GL_TYPE .. "vaiamos", PT_TYPE .. "vamos"},
pres_sub_2p = {GL_TYPE .. "vaiades", PT_TYPE .. "vades"},
pres_sub_3p = {GL_TYPE .. "vaiam", PT_TYPE .. "vão"},
pret_conj = "irreg", pret = "fô", pret_1s = {GL_TYPE .. "fum", PT_TYPE .. "fui"}, pret_3s = "foi",
irreg = true,
}
},
{
-- emergir, imergir, submergir
match = "mergir",
forms = {vowel_alt = "i-e", short_pp = "merso"},
},
{
match = "ouvir",
forms = {
pres1_and_sub = {"ouç", ALTVAR .. "oiç"},
irreg = true,
}
},
{
-- exprimir, imprimir, comprimir (but not descomprimir per Priberam), deprimir, oprimir/opprimir (but not reprimir,
-- suprimir/supprimir per Priberam)
match = match_against_verbs("primir", {"^com", "ex", "im", "de", "^o", "op"}),
forms = {short_pp = "presso"}
},
{
-- rir, sorrir
match = match_against_verbs("rir", {"^", "sor"}),
forms = {
pres_2s = "ris", pres_3s = "ri", pres_2p = "rides", pres_3p = {GL_TYPE .. "rim", PT_TYPE .. "riem"},
pres1_and_sub = "ri",
irreg = true,
}
},
{
-- distinguir, extinguir
match = "tinguir",
forms = {
short_pp = "tinto",
-- gu/g alternations handled in combine_stem_ending()
}
},
{
-- verbs in -truir (construir, destruir, reconstruir) but not obstruir/desobstruir, instruir, which are handled
-- by the default -uir handler below
match = match_against_verbs("struir", {"con", "de"}),
forms = {
pres_2s = {"stróis", ALTVAR .. "struis"}, pres_3s = {"strói", ALTVAR .. "strui"},
pres_3p = {"stroem", ALTVAR .. "struem"},
-- all occurrences of accented í in endings handled in combine_stem_ending()
irreg = true,
}
},
{
-- remaining verbs in -uir (concluir/excluir/incluir/concruir/concruyr, abluir/diluir, afluir/fluir/influir,
-- aluir, anuir, atribuir/contribuir/distribuir/redistribuir/retribuir/substituir, coevoluir/evoluir,
-- constituir/destituir/instituir/reconstituir/restituir, derruir, diminuir, estatuir, fruir/usufruir, imbuir,
-- imiscuir, poluir, possuir, puir, pruir, ruir
-- FIXME: old module lists short pp incluso for incluir that can't be verified, ask about this
-- FIXME: handle -uyr verbs?
match = function(verb)
-- Don't match -guir verbs (e.g. [[seguir]], [[conseguir]]) or -quir verbs (e.g. [[extorquir]])
if verb:find("guir$") or verb:find("quir$") then
return nil
else
return match_against_verbs("uir", {""})(verb)
end
end,
forms = {
pres_2s = "uis", pres_3s = "ui",
-- all occurrences of accented í in endings handled in combine_stem_ending()
irreg = true,
}
},
{
-- We want to match advir, convir, devir, etc. but not ouvir, servir, etc. No way to avoid listing each verb.
match = match_against_verbs("vir", {"ad", "^a", "con", "contra", "de", "^desa", "inter", "pro", "^re", "sobre", "^"}),
forms = {
-- FIXME, Estraviz says 'convens', 'devens' etc. but that may be a typo
pres_2s = function(base, prefix) return {GL_TYPE .. "vés", PT_TYPE .. (prefix == "" and "vens" or "véns")} end,
-- FIXME, Estraviz says 'convem', 'devem' etc. but that may be a typo
pres_3s = function(base, prefix) return prefix == "" and "vem" or "vém" end,
pres_2p = "vindes", pres_3p = {GL_TYPE .. "venhem", PT_TYPE .. "vêm", GL_ALTVAR .. "vém"},
pres1_and_sub = "venh",
full_impf = "vính",
pret_conj = "irreg", pret = {GL_TYPE .. "vinhé", PT_TYPE .. "vié"},
pret_1s = "vim", pret_3s = {GL_TYPE .. "véu", PT_TYPE .. "veio"},
pp = "vindo",
irreg = true,
}
},
--------------------------------------------------------------------------------------------
-- misc --
--------------------------------------------------------------------------------------------
{
-- pôr, antepor, apor, compor/decompor/descompor, contrapor, depor, dispor, expor, impor, interpor, justapor,
-- opor, pospor, propor, repor, sobrepor, supor/pressupor, transpor, decompor, others?
match = "p[oô]r",
forms = {
pres1_and_sub = "ponh",
pres_2s = {GL_TYPE .. "pós", PT_TYPE .. "pões", GL_ALTVAR .. "pons"},
pres_3s = {GL_TYPE .. "pom", PT_TYPE .. "põe"},
pres_1p = "pomos", pres_2p = "pondes",
pres_3p = {GL_TYPE .. "ponhem", PT_TYPE .. "põem", GL_ALTVAR .. "póm"},
full_impf = "púnh",
pret_conj = "irreg", pret = {GL_TYPE .. "pugé", PT_TYPE .. "pusé"}, pt_pret_1s = "pus", pt_pret_3s = "pôs",
pers_inf = "po",
gerund = "pondo", pp = "posto",
irreg = true,
}
},
}
local function skip_slot(base, slot, allow_overrides)
if not allow_overrides and (base.basic_overrides[slot] or
base.refl and base.basic_reflexive_only_overrides[slot]) then
-- Skip any slots for which there are overrides.
return true
end
if base.only3s and (slot:find("^pp_f") or slot:find("^pp_mp")) then
-- diluviar, atardecer, neviscar; impersonal verbs have only masc sing pp
return true
end
if not slot:find("[123]") then
-- Don't skip non-personal slots.
return false
end
if base.nofinite then
return true
end
if (base.only3s or base.only3sp or base.only3p) and (slot:find("^imp_") or slot:find("^neg_imp_")) then
return true
end
if base.only3s and not slot:find("3s") then
-- diluviar, atardecer, neviscar
return true
end
if base.only3sp and not slot:find("3[sp]") then
-- atañer, concernir
return true
end
if base.only3p and not slot:find("3p") then
-- [[caer cuatro gotas]], [[caer chuzos de punta]], [[entrarle los siete males]]
return true
end
return false
end
-- Apply vowel alternations to stem.
local function apply_vowel_alternations(stem, alternations)
local alternation_stems = {}
local saw_pres1_and_sub = false
local saw_pres_stressed = false
-- Process alternations other than +.
for _, altobj in ipairs(alternations) do
local alt = altobj.form
local pres1_and_sub, pres_stressed, err
-- Treat final -gu, -qu as a consonant, so the previous vowel can alternate (e.g. conseguir -> consigo).
-- This means a verb in -guar can't have a u-ú alternation but I don't think there are any verbs like that.
stem = rsub(stem, "([gq])u$", "%1" .. TEMPC1)
if alt == "+" then
-- do nothing yet
elseif alt == "ei" then
local before_last_vowel = rmatch(stem, "^(.*)i$")
if not before_last_vowel then
err = "stem should end in -i"
else
pres1_and_sub = nil
pres_stressed = before_last_vowel .. "ei"
end
else
local before_last_vowel, last_vowel, after_last_vowel = rmatch(stem, "^(.*)(" .. V .. ")(.-[ui])$")
if not before_last_vowel then
before_last_vowel, last_vowel, after_last_vowel = rmatch(stem, "^(.*)(" .. V .. ")(.-)$")
end
if alt == "i-e" then
if last_vowel == "e" or last_vowel == "i" then
pres1_and_sub = before_last_vowel .. "i" .. after_last_vowel
if last_vowel == "i" then
pres_stressed = before_last_vowel .. "e" .. after_last_vowel
end
else
err = "should have -e- or -i- as the last vowel"
end
elseif alt == "i" then
if last_vowel == "e" then
pres1_and_sub = before_last_vowel .. "i" .. after_last_vowel
pres_stressed = pres1_and_sub
else
err = "should have -e- as the last vowel"
end
elseif alt == "u-o" then
if last_vowel == "o" or last_vowel == "u" then
pres1_and_sub = before_last_vowel .. "u" .. after_last_vowel
if last_vowel == "u" then
pres_stressed = before_last_vowel .. "o" .. after_last_vowel
end
else
err = "should have -o- or -u- as the last vowel"
end
elseif alt == "u" then
if last_vowel == "o" then
pres1_and_sub = before_last_vowel .. "u" .. after_last_vowel
pres_stressed = pres1_and_sub
else
err = "should have -o- as the last vowel"
end
elseif alt == "í" then
if last_vowel == "i" then
pres_stressed = before_last_vowel .. "í" .. after_last_vowel
else
err = "should have -i- as the last vowel"
end
elseif alt == "ú" then
if last_vowel == "u" then
pres_stressed = before_last_vowel .. "ú" .. after_last_vowel
else
err = "should have -u- as the last vowel"
end
else
error("Internal error: Unrecognized vowel alternation '" .. alt .. "'")
end
end
if pres1_and_sub then
pres1_and_sub = {form = pres1_and_sub:gsub(TEMPC1, "u"), footnotes = altobj.footnotes}
saw_pres1_and_sub = true
end
if pres_stressed then
pres_stressed = {form = pres_stressed:gsub(TEMPC1, "u"), footnotes = altobj.footnotes}
saw_pres_stressed = true
end
table.insert(alternation_stems, {
altobj = altobj,
pres1_and_sub = pres1_and_sub,
pres_stressed = pres_stressed,
err = err
})
end
-- Now do +. We check to see which stems are used by other alternations and specify those so any footnotes are
-- properly attached.
for _, alternation_stem in ipairs(alternation_stems) do
if alternation_stem.altobj.form == "+" then
local stemobj = {form = stem, footnotes = alternation_stem.altobj.footnotes}
alternation_stem.pres1_and_sub = saw_pres1_and_sub and stemobj or nil
alternation_stem.pres_stressed = saw_pres_stressed and stemobj or nil
end
end
return alternation_stems
end
-- Add the `stem` to the `ending` for the given `slot` and apply any phonetic modifications.
-- WARNING: This function is written very carefully; changes to it can easily have unintended consequences.
local function combine_stem_ending(base, slot, prefix, stem, ending, dont_include_prefix)
-- If the stem begins with an acute accent, this is a signal to move the accent onto the last vowel of the prefix.
-- Cf. míngua of minguar.
if stem:find("^" .. AC) then
stem = rsub(stem, "^" .. AC, "")
if dont_include_prefix then
error("Internal error: Can't handle acute accent at beginning of stem if dont_include_prefix is given")
end
prefix = rsub(prefix, "([aeiouyAEIOUY])([^aeiouyAEIOUY]*)$", "%1" .. AC .. "%2")
end
-- Use the full stem for checking for -gui ending and such, because 'stem' is just 'u' for [[arguir]],
-- [[delinquir]].
local full_stem = prefix .. stem
-- Include the prefix in the stem unless dont_include_prefix is given (used for the past participle stem).
if not dont_include_prefix then
stem = full_stem
end
-- If the ending begins with a double asterisk, this is a signal to conditionally delete the accent on the last letter
-- of the stem. "Conditionally" means we don't do it if the last two letters would form a diphthong without the accent
-- on the second one (e.g. in [[sair]], with stem 'saí'); but as an exception, we do delete the accent in stems
-- ending in -guí, -quí (e.g. in [[conseguir]]) because in this case the ui isn't a diphthong.
if ending:find("^%*%*") then
ending = rsub(ending, "^%*%*", "")
if rfind(full_stem, "[gq]uí$") or not rfind(full_stem, V .. "[íú]$") then
stem = com.remove_final_accent(stem)
end
end
-- If the ending begins with an asterisk, this is a signal to delete the accent on the last letter of the stem.
-- E.g. fizé -> fizermos. Unlike for **, this removal is unconditional, so we get e.g. 'sairmos' not #'saírmos'.
if ending:find("^%*") then
ending = rsub(ending, "^%*", "")
stem = com.remove_final_accent(stem)
end
-- If ending begins with i, it must get an accent after an unstressed vowel (in some but not all cases) to prevent
-- the two merging into a diphthong:
-- * cair ->
-- * pres: caímos, caís;
-- * impf: all forms (caí-);
-- * pret: caí (but not caim), caíste (but not caiu), caímos, caístes, caíram;
-- * plup: all forms (caír-);
-- * impf_sub: all forms (caíss-);
-- * fut_sub: caíres, caírem (but not cair, cairmos, cairdes)
-- * pp: caído (but not gerund caindo)
-- * atribuir, other verbs in -uir -> same pattern as for cair etc.
-- * roer ->
-- * pret: roí (but not roim)
-- * impf: all forms (roí-)
-- * pp: roído
-- Don't let variant codes derail the following checks. Note that variant codes are properly added to the end of
-- the ending, so checks against the beginning of the ending work even in their presence, but not checks against
-- the full ending.
local cleaned_ending = export.remove_variant_codes(ending)
if cleaned_ending:find("^i") and full_stem:find("[aeiou]$") and not full_stem:find("[gq]u$") and
not cleaned_ending:find("^i[rum]$") and cleaned_ending ~= "indo" and not cleaned_ending:find("^ir[md]") then
ending = ending:gsub("^i", "í")
end
-- Spelling changes in the stem; it depends on whether the stem given is the pre-front-vowel or
-- pre-back-vowel variant, as indicated by `frontback`. We want these front-back spelling changes to happen
-- between stem and ending, not between prefix and stem; the prefix may not have the same "front/backness"
-- as the stem.
local is_front = rfind(ending, "^[eiéíê]")
if base.frontback == "front" and not is_front then
stem = stem:gsub("c$", "ç") -- conhecer -> conheço, vencer -> venço, descer -> desço
stem = stem:gsub("g$", "j") -- proteger -> protejo, fugir -> fujo
stem = stem:gsub("gu$", "g") -- distinguir -> distingo, conseguir -> consigo
stem = stem:gsub("qu$", "c") -- extorquir -> exturco
stem = stem:gsub("([gq])ü$", "%1u") -- argüir (superseded) -> arguo, delinqüir (superseded) -> delinquo
elseif base.frontback == "back" and is_front then
-- The following changes are all superseded so we don't do them:
-- averiguar -> averigüei, minguar -> mingüei; antiquar -> antiqüei, apropinquar -> apropinqüei
-- stem = stem:gsub("([gq])u$", "%1ü")
stem = stem:gsub("g$", "gu") -- cargar -> carguei, apagar -> apaguei
stem = stem:gsub("c$", "qu") -- marcar -> marquei
stem = stem:gsub("ç$", "c") -- começar -> comecei
-- j does not go to g here; desejar -> deseje not #desege
end
local retval = stem .. ending
if retval:find(GL_TYPE) and retval:find(PT_TYPE) or retval:find(GL_ONLY_TYPE) and not retval:find(GL_TYPE) then
-- Reject clashes in "Galician"-type and "Portuguese"-type forms, e.g. '#vós dixéreis' or '#vós dissérades'.
return nil
end
return retval
end
local function add3(base, slot, stems, endings, footnotes, allow_overrides)
if skip_slot(base, slot, allow_overrides) then
return
end
local function do_combine_stem_ending(stem, ending)
return combine_stem_ending(base, slot, base.prefix, stem, ending)
end
iut.add_forms(base.forms, slot, stems, endings, do_combine_stem_ending, nil, nil, footnotes)
end
local function insert_form(base, slot, form)
if not skip_slot(base, slot) then
iut.insert_form(base.forms, slot, form)
end
end
local function insert_forms(base, slot, forms)
if not skip_slot(base, slot) then
iut.insert_forms(base.forms, slot, forms)
end
end
local function add_single_stem_tense(base, slot_pref, stems, s1, s2, s3, p1, p2, p3)
local function addit(slot, ending)
add3(base, slot_pref .. "_" .. slot, stems, ending)
end
addit("1s", s1)
addit("2s", s2)
addit("3s", s3)
addit("1p", p1)
addit("2p", p2)
addit("3p", p3)
end
local function construct_stems(base, vowel_alt)
local stems = {}
stems.pres_unstressed = base.stems.pres_unstressed or base.inf_stem
stems.pres_stressed =
-- If no_pres_stressed given, pres_stressed stem should be empty so no forms are generated.
base.no_pres_stressed and {} or
base.stems.pres_stressed or
vowel_alt.pres_stressed or
base.inf_stem
stems.pres1_and_sub =
-- If no_pres_stressed given, the entire subjunctive is missing.
base.no_pres_stressed and {} or
-- If no_pres1_and_sub given, pres1 and entire subjunctive are missing.
base.no_pres1_and_sub and {} or
base.stems.pres1_and_sub or
vowel_alt.pres1_and_sub or
nil
stems.pres1 = base.stems.pres1 or stems.pres1_and_sub or stems.pres_stressed
stems.impf = base.stems.impf or base.inf_stem
stems.full_impf = base.stems.full_impf
stems.pret_base = base.stems.pret_base or base.inf_stem
stems.pret_conj = base.stems.pret_conj or base.conj
stems.pret = base.stems.pret or iut.map_forms(iut.convert_to_general_list_form(stems.pret_base),
function(form) return form .. base.conj_vowel end)
stems.gl_short_pret = base.stems.gl_short_pret or iut.map_forms(iut.convert_to_general_list_form(stems.pret),
function(form) return rsub(form, com.V .. "$", "") end)
stems.pt_pret_1s = base.stems.pt_pret_1s
stems.pt_pret_3s = base.stems.pt_pret_3s
stems.fut = base.stems.fut or base.inf_stem .. base.conj
stems.cond = base.stems.cond or stems.fut
stems.pres_sub_stressed = base.stems.pres_sub_stressed or stems.pres1
stems.pres_sub_unstressed = base.stems.pres_sub_unstressed or stems.pres1_and_sub or stems.pres_unstressed
stems.sub_conj = base.stems.sub_conj or base.conj
stems.plup = base.stems.plup or stems.pret
stems.impf_sub = base.stems.impf_sub or stems.pret
stems.fut_sub = base.stems.fut_sub or stems.pret
stems.pers_inf = base.stems.pers_inf or base.inf_stem .. base.conj_vowel
stems.pp = base.stems.pp or base.conj == "ar" and
combine_stem_ending(base, "pp_ms", base.prefix, base.inf_stem, "ado", "dont include prefix") or
-- use combine_stem_ending esp. so we get roído, caído, etc.
combine_stem_ending(base, "pp_ms", base.prefix, base.inf_stem, "ido", "dont include prefix")
stems.pp_ms = stems.pp
local function masc_to_fem(form)
if rfind(form, "o$") then
return rsub(form, "o$", "a")
else
return form
end
end
stems.pp_fs = iut.map_forms(iut.convert_to_general_list_form(stems.pp_ms), masc_to_fem)
if base.stems.short_pp then
stems.short_pp_ms = base.stems.short_pp
stems.short_pp_fs = iut.map_forms(iut.convert_to_general_list_form(stems.short_pp_ms), masc_to_fem)
end
base.this_stems = stems
end
local function add_present_indic(base)
local stems = base.this_stems
local function addit(slot, stems, ending)
add3(base, "pres_" .. slot, stems, ending)
end
local s2, s3, p1, p2, p3
if base.conj == "ar" then
s2, s3, p1, p2, p3 = "as", "a", "amos", {"ades" .. GL_TYPE, "ais" .. PT_TYPE}, "am"
elseif base.conj == "er" or base.conj == "or" then -- verbs in -por have the present overridden
s2, s3, p1, p2, p3 = "es", "e", "emos", {"edes" .. GL_TYPE, "eis" .. PT_TYPE}, "em"
elseif base.conj == "ir" then
s2, s3, p1, p2, p3 = "es", "e", "imos", {"ides" .. GL_TYPE, "is" .. PT_TYPE}, "em"
else
error("Internal error: Unrecognized conjugation " .. base.conj)
end
addit("1s", stems.pres1, "o")
addit("2s", stems.pres_stressed, s2)
addit("3s", stems.pres_stressed, s3)
addit("1p", stems.pres_unstressed, p1)
addit("2p", stems.pres_unstressed, p2)
addit("3p", stems.pres_stressed, p3)
end
local function add_present_subj(base)
local stems = base.this_stems
local function addit(slot, stems, ending)
add3(base, "pres_sub_" .. slot, stems, ending)
end
local s1, s2, s3, p1, p2, p3
if stems.sub_conj == "ar" then
s1, s2, s3, p1, p2, p3 = "e", "es", "e", "emos", {"edes" .. GL_TYPE, "eis" .. PT_TYPE}, "em"
else
s1, s2, s3, p1, p2, p3 = "a", "as", "a", "amos", {"ades" .. GL_TYPE, "ais" .. PT_TYPE}, "am"
end
addit("1s", stems.pres_sub_stressed, s1)
addit("2s", stems.pres_sub_stressed, s2)
addit("3s", stems.pres_sub_stressed, s3)
addit("1p", stems.pres_sub_unstressed, p1)
addit("2p", stems.pres_sub_unstressed, p2)
addit("3p", stems.pres_sub_stressed, p3)
end
local function add_finite_non_present(base)
local stems = base.this_stems
local function add_tense(slot, stem, s1, s2, s3, p1, p2, p3)
add_single_stem_tense(base, slot, stem, s1, s2, s3, p1, p2, p3)
end
-- * at the beginning of the ending means to remove an accent from the last vowel of the imperfect stem.
if stems.full_impf then
add_tense("impf", stems.full_impf, "*a", "*as", "*a", "amos",
{"ades" .. GL_TYPE, "eis" .. PT_TYPE, "ais" .. GL_ALTVAR}, "*am")
elseif base.conj == "ar" then
add_tense("impf", stems.impf, "ava", "avas", "ava", "ávamos",
{"ávades" .. GL_TYPE, "áveis" .. PT_TYPE, "ávais" .. GL_ALTVAR}, "avam")
else
add_tense("impf", stems.impf, "ia", "ias", "ia", "íamos",
{"íades" .. GL_TYPE, "íeis" .. PT_TYPE, "íais" .. GL_ALTVAR}, "iam")
end
-- * at the beginning of the ending means to remove a final accent from the preterite stem.
if stems.pret_conj == "irreg" then
add_tense("pret", stems.gl_short_pret, "em" .. GL_TYPE, nil, "o" .. GL_TYPE)
add_tense("pret", stems.pret, nil, {"*ste", "*che" .. GL_ALTVAR}, nil, "*mos", "*stes",
{"rom" .. GL_TYPE, "*ram" .. PT_TYPE})
add_tense("pret", stems.pt_pret_1s, PT_TYPE)
add_tense("pret", stems.pt_pret_3s, nil, nil, PT_TYPE)
elseif stems.pret_conj == "ar" then
add_tense("pret", stems.pret_base, "ei", {"aste", "ache" .. GL_ALTVAR}, "ou", "amos", "astes",
{"árom" .. GL_TYPE, "aram" .. PT_TYPE})
elseif stems.pret_conj == "er" then
add_tense("pret", stems.pret_base, {"im" .. GL_TYPE, "i" .. PT_TYPE}, {"este", "eche" .. GL_ALTVAR}, "eu",
"emos", "estes", {"êrom" .. GL_TYPE, "eram" .. PT_TYPE})
else
add_tense("pret", stems.pret_base, {"im" .. GL_TYPE, "i" .. PT_TYPE}, {"iste", "iche" .. GL_ALTVAR}, "iu",
"imos", "istes", {"írom" .. GL_TYPE, "iram" .. PT_TYPE})
end
-- * at the beginning of the ending means to remove a final accent from the stem.
-- ** is similar but is "conditional" on a consonant preceding the final vowel.
add_tense("plup", stems.plup, "**ra", "**ras", "**ra", "ramos",
{"rades" .. GL_TYPE, "reis" .. PT_TYPE, "rais" .. GL_ALTVAR}, "**ram")
add_tense("impf_sub", stems.impf_sub, "**sse", "**sses", "**sse", "ssemos",
{"ssedes" .. GL_TYPE, "sseis" .. PT_TYPE}, "**ssem")
add_tense("fut_sub", stems.fut_sub, "*r", "**res", "*r", "*rmos", "*rdes", "**rem")
if base.refl then
local mark = TEMP_MESOCLITIC_INSERTION_POINT
add_tense("fut", stems.fut,
{"ei" .. GL_TYPE, mark .. "ei" .. PT_TYPE}, {"ás" .. GL_TYPE, mark .. "ás" .. PT_TYPE},
{"á" .. GL_TYPE, mark .. "á" .. PT_TYPE}, {"emos" .. GL_TYPE, mark .. "emos" .. PT_TYPE},
{"edes" .. GL_TYPE, mark .. "eis" .. PT_TYPE}, {"ám" .. GL_TYPE, mark .. "ão" .. PT_TYPE}
)
add_tense("cond", stems.cond,
{"ia" .. GL_TYPE, mark .. "ia" .. PT_TYPE}, {"ias" .. GL_TYPE, mark .. "ias" .. PT_TYPE},
{"ia" .. GL_TYPE, mark .. "ia" .. PT_TYPE}, {"íamos" .. GL_TYPE, mark .. "íamos" .. PT_TYPE},
-- FIXME, is GL_ALTVAR correct for the mesoclitic variant of -íais?
{"íades" .. GL_TYPE, mark .. "íeis" .. PT_TYPE, "íais" .. GL_ALTVAR, mark .. "íais" .. GL_ALTVAR},
{"iam" .. GL_TYPE, mark .. "iam" .. PT_TYPE})
else
-- Don't insert forms with the mesoclitic insertion point to avoid duplication in non-reflexive verbs.
add_tense("fut", stems.fut, "ei", "ás", "á", "emos", {"edes" .. GL_TYPE, "eis" .. PT_TYPE},
{"ám" .. GL_TYPE, "ão" .. PT_TYPE})
add_tense("cond", stems.cond, "ia", "ias", "ia", "íamos",
-- FIXME, is GL_ALTVAR correct for the mesoclitic variant of -íais?
{"íades" .. GL_TYPE, "íeis" .. PT_TYPE, "íais" .. GL_ALTVAR}, "iam")
end
-- Different stems for different parts of the personal infinitive to correctly handle forms of [[sair]] and [[pôr]].
add_tense("pers_inf", base.non_prefixed_verb, "", nil, "")
add_tense("pers_inf", stems.pers_inf, nil, "**res", nil, "*rmos", "*rdes", "**rem")
end
local function add_non_finite_forms(base)
local stems = base.this_stems
local function addit(slot, stems, ending, footnotes)
add3(base, slot, stems, ending, footnotes)
end
insert_form(base, "infinitive", {form = base.verb})
-- Also insert "infinitive + reflexive pronoun" combinations if we're handling a reflexive verb. See comment below for
-- "gerund + reflexive pronoun" combinations.
if base.refl then
for _, persnum in ipairs(person_number_list) do
insert_form(base, "infinitive_" .. persnum, {form = base.verb})
end
end
-- verbs in -por have the gerund overridden
local ger_ending = base.conj == "ar" and "ando" or base.conj == "er" and "endo" or "indo"
addit("gerund", stems.pres_unstressed, ger_ending)
-- Also insert "gerund + reflexive pronoun" combinations if we're handling a reflexive verb. We insert exactly the same
-- form as for the bare gerund; later on in add_reflexive_or_fixed_clitic_to_forms(), we add the appropriate clitic
-- pronouns. It's important not to do this for non-reflexive verbs, because in that case, the clitic pronouns won't be
-- added, and {{gl-reinteg-verb form of}} will wrongly consider all these combinations as possible inflections of the bare
-- gerund. Thanks to [[User:JeffDoozan]] for this bug fix.
if base.refl then
for _, persnum in ipairs(person_number_list) do
addit("gerund_" .. persnum, stems.pres_unstressed, ger_ending)
end
end
-- Skip the long/short past participle footnotes if called from {{gl-reinteg-verb}} so they don't show in the headword.
local long_pp_footnotes =
stems.short_pp_ms and base.alternant_multiword_spec.source_template ~= "gl-reinteg-verb" and {long_pp_footnote} or nil
addit("pp_ms", stems.pp_ms, "", long_pp_footnotes)
if not base.pp_inv then
addit("pp_fs", stems.pp_fs, "", long_pp_footnotes)
addit("pp_mp", stems.pp_ms, "s", long_pp_footnotes)
addit("pp_fp", stems.pp_fs, "s", long_pp_footnotes)
end
if stems.short_pp_ms then
local short_pp_footnotes =
stems.short_pp_ms and base.alternant_multiword_spec.source_template ~= "gl-reinteg-verb" and {short_pp_footnote} or nil
addit("short_pp_ms", stems.short_pp_ms, "", short_pp_footnotes)
if not base.pp_inv then
addit("short_pp_fs", stems.short_pp_fs, "", short_pp_footnotes)
addit("short_pp_mp", stems.short_pp_ms, "s", short_pp_footnotes)
addit("short_pp_fp", stems.short_pp_fs, "s", short_pp_footnotes)
end
end
end
local function copy_forms_to_imperatives(base)
-- Copy pres3s to imperative since they are almost always the same.
insert_forms(base, "imp_2s", iut.map_forms(base.forms.pres_3s, function(form) return form end))
if not skip_slot(base, "imp_2p") then
-- Copy pres2p to imperative 2p minus -s since they are almost always the same.
-- But not if there's an override, to avoid possibly throwing an error.
insert_forms(base, "imp_2p", iut.map_forms(base.forms.pres_2p, function(form)
local form_no_s, var_codes = rmatch(form, "^(.*)s(" .. var_code_c .. "*)$")
if not form_no_s then
error("Can't derive second-person plural imperative from second-person plural present indicative " ..
"because form '" .. form .. "' doesn't end in -s")
end
return form_no_s .. var_codes
end))
end
-- Copy subjunctives to imperatives, unless there's an override for the given slot (as with the imp_1p of [[ir]]).
for _, persnum in ipairs({"3s", "1p", "3p"}) do
local from = "pres_sub_" .. persnum
local to = "imp_" .. persnum
insert_forms(base, to, iut.map_forms(base.forms[from], function(form) return form end))
end
end
local function process_slot_overrides(base, filter_slot, reflexive_only)
local overrides = reflexive_only and base.basic_reflexive_only_overrides or base.basic_overrides
for slot, forms in pairs(overrides) do
if not filter_slot or filter_slot(slot) then
add3(base, slot, forms, "", nil, "allow overrides")
end
end
end
-- Prefix `form` with `clitic`, adding fixed text `between` between them. Add links as appropriate unless the user
-- requested no links. Check whether form already has brackets (as will be the case if the form has a fixed clitic).
local function prefix_clitic_to_form(base, clitic, between, form)
if base.alternant_multiword_spec.args.noautolinkverb then
return clitic .. between .. form
else
local clitic_pref = "[[" .. clitic .. "]]" .. between
if form:find("%[%[") then
return clitic_pref .. form
else
return clitic_pref .. "[[" .. form .. "]]"
end
end
end
-- Add the appropriate clitic pronouns in `clitics` to the forms in `base_slot`. `store_cliticized_form` is a function
-- of three arguments (clitic, formobj, cliticized_form) and should store the cliticized form for the specified clitic
-- and form object.
local function suffix_clitic_to_forms(base, base_slot, clitics, store_cliticized_form)
if not base.forms[base_slot] then
-- This can happen, e.g. in only3s/only3sp/only3p verbs.
return
end
local autolink = not base.alternant_multiword_spec.args.noautolinkverb
for _, formobj in ipairs(base.forms[base_slot]) do
for _, clitic in ipairs(clitics) do
local cliticized_form
if formobj.form:find(TEMP_MESOCLITIC_INSERTION_POINT) then
-- mesoclisis in future and conditional
local infinitive, suffix = rmatch(formobj.form, "^(.*)" .. TEMP_MESOCLITIC_INSERTION_POINT .. "(.*)$")
if not infinitive then
error("Internal error: Can't find mesoclitic insertion point in slot '" .. base_slot .. "', form '" ..
formobj.form .. "'")
end
local full_form = infinitive .. suffix
if autolink and not infinitive:find("%[%[") then
infinitive = "[[" .. infinitive .. "]]"
end
cliticized_form =
autolink and infinitive .. "-[[" .. clitic .. "]]-[[" .. full_form .. "|" .. suffix .. "]]" or
infinitive .. "-" .. clitic .. "-" .. suffix
else
local clitic_suffix = autolink and "-[[" .. clitic .. "]]" or "-" .. clitic
local form_needs_link = autolink and not formobj.form:find("%[%[")
if base_slot:find("1p$") then
-- Final -s disappears: arrependíamos + nos -> arrependíamo-nos, etc.
cliticized_form = formobj.form:gsub("s$", "")
if form_needs_link then
cliticized_form = "[[" .. formobj.form .. "|" .. cliticized_form .. "]]"
end
else
cliticized_form = formobj.form
if form_needs_link then
cliticized_form = "[[" .. cliticized_form .. "]]"
end
end
cliticized_form = cliticized_form .. clitic_suffix
end
store_cliticized_form(clitic, formobj, cliticized_form)
end
end
end
-- Add a reflexive pronoun or fixed clitic (FIXME: not working), as appropriate to the base forms that were generated.
-- `do_joined` means to do only the forms where the pronoun is joined to the end of the form; otherwise, do only the
-- forms where it is not joined and precedes the form.
local function add_reflexive_or_fixed_clitic_to_forms(base, do_reflexive, do_joined)
for _, slotaccel in ipairs(base.alternant_multiword_spec.verb_slots_basic) do
local slot, accel = unpack(slotaccel)
local clitic
if not do_reflexive then
clitic = base.clitic
elseif slot:find("[123]") then
local persnum = slot:match("^.*_(.-)$")
clitic = person_number_to_reflexive_pronoun[persnum]
else
clitic = "se"
end
if base.forms[slot] then
if do_reflexive and slot:find("^pp_") or slot == "infinitive_linked" then
-- do nothing with reflexive past participles or with infinitive linked (handled at the end)
elseif slot:find("^neg_imp_") then
error("Internal error: Should not have forms set for negative imperative at this stage")
else
local slot_has_suffixed_clitic = not slot:find("_sub")
-- Maybe generate non-reflexive parts and separated syntactic variants for use in
-- {{gl-reinteg-verb form of}}. See comment in add_slots() above `need_special_verb_form_of_slots`.
-- Check for do_joined so we only run this code once.
if do_reflexive and do_joined and base.alternant_multiword_spec.source_template == "gl-reinteg-verb form of" and
-- Skip personal variants of infinitives and gerunds so we don't think [[arrependendo]] is a
-- non-reflexive equivalent of [[arrependendo-me]].
not slot:find("infinitive_") and not slot:find("gerund_") then
-- Clone the forms because we will be destructively modifying them just below, adding the reflexive
-- pronoun.
insert_forms(base, slot .. "_non_reflexive", mw.clone(base.forms[slot]))
if slot_has_suffixed_clitic then
insert_forms(base, slot .. "_variant", iut.map_forms(base.forms[slot], function(form)
return prefix_clitic_to_form(base, clitic, " ... ", form)
end))
end
end
if slot_has_suffixed_clitic then
if do_joined then
suffix_clitic_to_forms(base, slot, {clitic},
function(clitic, formobj, cliticized_form)
formobj.form = cliticized_form
end
)
end
elseif not do_joined then
-- Add clitic as separate word before all other forms.
for _, form in ipairs(base.forms[slot]) do
form.form = prefix_clitic_to_form(base, clitic, " ", form.form)
end
end
end
end
end
end
local function handle_infinitive_linked(base)
-- Compute linked versions of potential lemma slots, for use in {{gl-reinteg-verb}}.
-- We substitute the original lemma (before removing links) for forms that
-- are the same as the lemma, if the original lemma has links.
for _, slot in ipairs({"infinitive"}) do
insert_forms(base, slot .. "_linked", iut.map_forms(base.forms[slot], function(form)
if form == base.lemma and rfind(base.linked_lemma, "%[%[") then
return base.linked_lemma
else
return form
end
end))
end
end
local function generate_negative_imperatives(base)
-- Copy subjunctives to negative imperatives, preceded by "nom".
for _, persnum in ipairs(neg_imp_person_number_list) do
local from = "pres_sub_" .. persnum
local to = "neg_imp_" .. persnum
insert_forms(base, to, iut.map_forms(base.forms[from], function(form)
if base.alternant_multiword_spec.args.noautolinkverb then
return "nom " .. form
elseif form:find("%[%[") then
-- already linked, e.g. when reflexive
return "[[nom]] " .. form
else
return "[[nom]] [[" .. form .. "]]"
end
end))
end
end
-- Process specs given by the user using 'addnote[SLOTSPEC][FOOTNOTE][FOOTNOTE][...]'.
local function process_addnote_specs(base)
for _, spec in ipairs(base.addnote_specs) do
for _, slot_spec in ipairs(spec.slot_specs) do
slot_spec = "^" .. slot_spec .. "$"
for slot, forms in pairs(base.forms) do
if rfind(slot, slot_spec) then
-- To save on memory, side-effect the existing forms.
for _, form in ipairs(forms) do
form.footnotes = iut.combine_footnotes(form.footnotes, spec.footnotes)
end
end
end
end
end
end
local function add_missing_links_to_forms(base)
-- Any forms without links should get them now. Redundant ones will be stripped later.
for slot, forms in pairs(base.forms) do
for _, form in ipairs(forms) do
if not form.form:find("%[%[") then
form.form = "[[" .. form.form .. "]]"
end
end
end
end
-- Remove special characters added to future and conditional forms to indicate mesoclitic insertion points.
local function remove_mesoclitic_insertion_points(base)
for slot, forms in pairs(base.forms) do
if slot:find("^fut_") or slot:find("^cond_") then
for _, form in ipairs(forms) do
form.form = form.form:gsub(TEMP_MESOCLITIC_INSERTION_POINT, "")
end
end
end
end
-- If called from {{gl-reinteg-verb}}, remove less-recommended variants; otherwise add a footnote indicating they are
-- less recommended, and sort them last.
local function process_altvar_forms(base)
for slot, forms in pairs(base.forms) do
-- As an optimization, check if there are any less-recommended forms and don't do anything if not.
local saw_altvar = false
for _, form in ipairs(forms) do
if form.form:find(ALTVAR) then
saw_altvar = true
break
end
end
if saw_altvar then
if base.alternant_multiword_spec.source_template == "gl-reinteg-verb" then
base.forms[slot] = iut.flatmap_forms(base.forms[slot], function(form)
if form:find(ALTVAR) then
return {}
else
return {form}
end
end)
else
local existing_forms = base.forms[slot]
base.forms[slot] = {}
for _, formobj in ipairs(existing_forms) do
if not formobj.form:find(ALTVAR) then
iut.insert_form(base.forms, slot, formobj)
end
end
for _, formobj in ipairs(existing_forms) do
if formobj.form:find(ALTVAR) then
formobj.footnotes = iut.combine_footnotes(formobj.footnotes, {"[less recommended]"})
iut.insert_form(base.forms, slot, formobj)
end
end
end
end
end
end
local function conjugate_verb(base)
for _, vowel_alt in ipairs(base.vowel_alt_stems) do
construct_stems(base, vowel_alt)
add_present_indic(base)
add_present_subj(base)
end
add_finite_non_present(base)
add_non_finite_forms(base)
-- do non-reflexive non-imperative slot overrides
process_slot_overrides(base, function(slot)
return not slot:find("^imp_") and not slot:find("^neg_imp_")
end)
-- This should happen after process_slot_overrides() in case a derived slot is based on an override
-- (as with the imp_3s of [[dar]], [[estar]]).
copy_forms_to_imperatives(base)
-- do non-reflexive positive imperative slot overrides
process_slot_overrides(base, function(slot)
return slot:find("^imp_")
end)
-- We need to add joined reflexives, then joined and non-joined clitics, then non-joined reflexives, so we get
-- [[arrepende-te]] but [[nom]] [[te]] [[arrependas]].
if base.refl then
add_reflexive_or_fixed_clitic_to_forms(base, "do reflexive", "do joined")
process_slot_overrides(base, nil, "do reflexive") -- do reflexive-only slot overrides
add_reflexive_or_fixed_clitic_to_forms(base, "do reflexive", false)
end
-- This should happen after add_reflexive_or_fixed_clitic_to_forms() so negative imperatives get the reflexive pronoun
-- and clitic in them.
generate_negative_imperatives(base)
-- do non-reflexive negative imperative slot overrides
-- FIXME: What about reflexive negative imperatives?
process_slot_overrides(base, function(slot)
return slot:find("^neg_imp_")
end)
-- This should happen before add_missing_links_to_forms() so that the comparison `form == base.lemma`
-- in handle_infinitive_linked() works correctly and compares unlinked forms to unlinked forms.
handle_infinitive_linked(base)
process_addnote_specs(base)
if not base.alternant_multiword_spec.args.noautolinkverb then
add_missing_links_to_forms(base)
end
remove_mesoclitic_insertion_points(base)
process_altvar_forms(base)
end
local function parse_indicator_spec(angle_bracket_spec)
-- Store the original angle bracket spec so we can reconstruct the overall conj spec with the lemma(s) in them.
local base = {
angle_bracket_spec = angle_bracket_spec,
user_basic_overrides = {},
user_stems = {},
addnote_specs = {},
}
local function parse_err(msg)
error(msg .. ": " .. angle_bracket_spec)
end
local function fetch_footnotes(separated_group)
local footnotes
for j = 2, #separated_group - 1, 2 do
if separated_group[j + 1] ~= "" then
parse_err("Extraneous text after bracketed footnotes: '" .. table.concat(separated_group) .. "'")
end
if not footnotes then
footnotes = {}
end
table.insert(footnotes, separated_group[j])
end
return footnotes
end
local inside = angle_bracket_spec:match("^<(.*)>$")
assert(inside)
if inside == "" then
return base
end
local segments = put.parse_balanced_segment_run(inside, "[", "]")
local dot_separated_groups = put.split_alternating_runs(segments, "%.")
for i, dot_separated_group in ipairs(dot_separated_groups) do
local first_element = dot_separated_group[1]
if first_element == "addnote" then
local spec_and_footnotes = fetch_footnotes(dot_separated_group)
if #spec_and_footnotes < 2 then
parse_err("Spec with 'addnote' should be of the form 'addnote[SLOTSPEC][FOOTNOTE][FOOTNOTE][...]'")
end
local slot_spec = table.remove(spec_and_footnotes, 1)
local slot_spec_inside = rmatch(slot_spec, "^%[(.*)%]$")
if not slot_spec_inside then
parse_err("Internal error: slot_spec " .. slot_spec .. " should be surrounded with brackets")
end
local slot_specs = rsplit(slot_spec_inside, ",")
-- FIXME: Here, [[Module:it-verb]] called strip_spaces(). Generally we don't do this. Should we?
table.insert(base.addnote_specs, {slot_specs = slot_specs, footnotes = spec_and_footnotes})
elseif indicator_flags[first_element] then
if #dot_separated_group > 1 then
parse_err("No footnotes allowed with '" .. first_element .. "' spec")
end
if base[first_element] then
parse_err("Spec '" .. first_element .. "' specified twice")
end
base[first_element] = true
elseif rfind(first_element, ":") then
local colon_separated_groups = put.split_alternating_runs(dot_separated_group, "%s*:%s*")
local first_element = colon_separated_groups[1][1]
if #colon_separated_groups[1] > 1 then
parse_err("Can't attach footnotes directly to '" .. first_element .. "' spec; attach them to the " ..
"colon-separated values following the initial colon")
end
if overridable_stems[first_element] then
if base.user_stems[first_element] then
parse_err("Overridable stem '" .. first_element .. "' specified twice")
end
table.remove(colon_separated_groups, 1)
base.user_stems[first_element] = overridable_stems[first_element](colon_separated_groups,
{prefix = first_element, base = base, parse_err = parse_err, fetch_footnotes = fetch_footnotes})
else -- assume a basic override; we validate further later when the possible slots are available
if base.user_basic_overrides[first_element] then
parse_err("Basic override '" .. first_element .. "' specified twice")
end
table.remove(colon_separated_groups, 1)
base.user_basic_overrides[first_element] = allow_multiple_values(colon_separated_groups,
{prefix = first_element, base = base, parse_err = parse_err, fetch_footnotes = fetch_footnotes})
end
else
local comma_separated_groups = put.split_alternating_runs(dot_separated_group, "%s*,%s*")
for j = 1, #comma_separated_groups do
local alt = comma_separated_groups[j][1]
if not vowel_alternants[alt] then
if #comma_separated_groups == 1 then
parse_err("Unrecognized spec or vowel alternant '" .. alt .. "'")
else
parse_err("Unrecognized vowel alternant '" .. alt .. "'")
end
end
if base.vowel_alt then
for _, existing_alt in ipairs(base.vowel_alt) do
if existing_alt.form == alt then
parse_err("Vowel alternant '" .. alt .. "' specified twice")
end
end
else
base.vowel_alt = {}
end
table.insert(base.vowel_alt, {form = alt, footnotes = fetch_footnotes(comma_separated_groups[j])})
end
end
end
return base
end
-- Normalize all lemmas, substituting the pagename for blank lemmas and adding links to multiword lemmas.
local function normalize_all_lemmas(alternant_multiword_spec, head)
-- (1) Add links to all before and after text. Remember the original text so we can reconstruct the verb spec later.
if not alternant_multiword_spec.args.noautolinktext then
iut.add_links_to_before_and_after_text(alternant_multiword_spec, "remember original")
end
-- (2) Remove any links from the lemma, but remember the original form
-- so we can use it below in the 'lemma_linked' form.
iut.map_word_specs(alternant_multiword_spec, function(base)
if base.lemma == "" then
base.lemma = head
end
base.user_specified_lemma = base.lemma
base.lemma = m_links.remove_links(base.lemma)
local refl_verb = base.lemma
local verb, refl = rmatch(refl_verb, "^(.-)%-(se)$")
if not verb then
verb, refl = refl_verb, nil
end
base.user_specified_verb = verb
base.refl = refl
base.verb = base.user_specified_verb
local linked_lemma
if alternant_multiword_spec.args.noautolinkverb or base.user_specified_lemma:find("%[%[") then
linked_lemma = base.user_specified_lemma
elseif base.refl then
-- Reconstruct the linked lemma with separate links around base verb and reflexive pronoun.
linked_lemma = base.user_specified_verb == base.verb and "[[" .. base.user_specified_verb .. "]]" or
"[[" .. base.verb .. "|" .. base.user_specified_verb .. "]]"
linked_lemma = linked_lemma .. (refl and "-[[" .. refl .. "]]" or "")
else
-- Add links to the lemma so the user doesn't specifically need to, since we preserve
-- links in multiword lemmas and include links in non-lemma forms rather than allowing
-- the entire form to be a link.
linked_lemma = iut.add_links(base.user_specified_lemma)
end
base.linked_lemma = linked_lemma
end)
end
local function detect_indicator_spec(base)
if (base.only3s and 1 or 0) + (base.only3sp and 1 or 0) + (base.only3p and 1 or 0) > 1 then
error("Only one of 'only3s', 'only3sp' and 'only3p' can be specified")
end
base.forms = {}
base.stems = {}
base.basic_overrides = {}
base.basic_reflexive_only_overrides = {}
if not base.no_built_in then
for _, built_in_conj in ipairs(built_in_conjugations) do
if type(built_in_conj.match) == "function" then
base.prefix, base.non_prefixed_verb = built_in_conj.match(base.verb)
elseif built_in_conj.match:find("^%^") and rsub(built_in_conj.match, "^%^", "") == base.verb then
-- begins with ^, for exact match, and matches
base.prefix, base.non_prefixed_verb = "", base.verb
else
base.prefix, base.non_prefixed_verb = rmatch(base.verb, "^(.*)(" .. built_in_conj.match .. ")$")
end
if base.prefix then
-- we found a built-in verb
for stem, forms in pairs(built_in_conj.forms) do
if type(forms) == "function" then
forms = forms(base, base.prefix)
end
if stem:find("^refl_") then
stem = stem:gsub("^refl_", "")
if not base.alternant_multiword_spec.verb_slots_basic_map[stem] then
error("Internal error: setting for 'refl_" .. stem .. "' does not refer to a basic verb slot")
end
base.basic_reflexive_only_overrides[stem] = forms
elseif base.alternant_multiword_spec.verb_slots_basic_map[stem] then
-- an individual form override of a basic form
base.basic_overrides[stem] = forms
else
base.stems[stem] = forms
end
end
break
end
end
end
-- Override built-in-verb stems and overrides with user-specified ones.
for stem, values in pairs(base.user_stems) do
base.stems[stem] = values
end
for override, values in pairs(base.user_basic_overrides) do
if not base.alternant_multiword_spec.verb_slots_basic_map[override] then
error("Unrecognized override '" .. override .. "': " .. base.angle_bracket_spec)
end
base.basic_overrides[override] = values
end
base.prefix = base.prefix or ""
base.non_prefixed_verb = base.non_prefixed_verb or base.verb
local inf_stem, suffix = rmatch(base.non_prefixed_verb, "^(.*)([aeioô]r)$")
if not inf_stem then
error("Unrecognized infinitive: " .. base.verb)
end
base.inf_stem = inf_stem
suffix = suffix == "ôr" and "or" or suffix
base.conj = suffix
base.conj_vowel = suffix == "ar" and "á" or suffix == "ir" and "í" or "ê"
base.frontback = suffix == "ar" and "back" or "front"
if base.stems.vowel_alt then -- built-in verb with specified vowel alternation
if base.vowel_alt then
error(base.verb .. " is a recognized built-in verb, and should not have vowel alternations specified with it")
end
base.vowel_alt = iut.convert_to_general_list_form(base.stems.vowel_alt)
end
-- Propagate built-in-verb indicator flags to `base` and combine with user-specified flags.
for indicator_flag, _ in pairs(indicator_flags) do
base[indicator_flag] = base[indicator_flag] or base.stems[indicator_flag]
end
-- Convert vowel alternation indicators into stems.
local vowel_alt = base.vowel_alt or {{form = "+"}}
base.vowel_alt_stems = apply_vowel_alternations(base.inf_stem, vowel_alt)
for _, vowel_alt_stems in ipairs(base.vowel_alt_stems) do
if vowel_alt_stems.err then
error("To use '" .. vowel_alt_stems.altobj.form .. "', present stem '" .. base.prefix .. base.inf_stem .. "' " ..
vowel_alt_stems.err)
end
end
end
local function detect_all_indicator_specs(alternant_multiword_spec)
-- Propagate some settings up; some are used internally, others by [[Module:gl-headword]].
iut.map_word_specs(alternant_multiword_spec, function(base)
-- Internal indicator flags. Do these before calling detect_indicator_spec() because add_slots() uses them.
for _, prop in ipairs { "refl", "clitic" } do
if base[prop] then
alternant_multiword_spec[prop] = true
end
end
base.alternant_multiword_spec = alternant_multiword_spec
end)
add_slots(alternant_multiword_spec)
alternant_multiword_spec.vowel_alt = {}
iut.map_word_specs(alternant_multiword_spec, function(base)
detect_indicator_spec(base)
-- User-specified indicator flags. Do these after calling detect_indicator_spec() because the latter may set these
-- indicators for built-in verbs.
for prop, _ in pairs(indicator_flags) do
if base[prop] then
alternant_multiword_spec[prop] = true
end
end
-- Vowel alternants. Do these after calling detect_indicator_spec() because the latter sets base.vowel_alt for
-- built-in verbs.
if base.vowel_alt then
for _, altobj in ipairs(base.vowel_alt) do
m_table.insertIfNot(alternant_multiword_spec.vowel_alt, altobj.form)
end
end
end)
end
local function add_categories_and_annotation(alternant_multiword_spec, base, multiword_lemma)
local function insert_ann(anntype, value)
m_table.insertIfNot(alternant_multiword_spec.annotation[anntype], value)
end
local function insert_cat(cat, also_when_multiword)
-- Don't place multiword terms in categories like 'Galician verbs ending in -ar' to avoid spamming the
-- categories with such terms.
if also_when_multiword or not multiword_lemma then
m_table.insertIfNot(alternant_multiword_spec.categories, "Galician " .. cat)
end
end
if check_for_red_links and alternant_multiword_spec.source_template == "gl-reinteg-conj" and multiword_lemma then
for _, slot_and_accel in ipairs(alternant_multiword_spec.all_verb_slots) do
local slot = slot_and_accel[1]
local forms = base.forms[slot]
local must_break = false
if forms then
for _, form in ipairs(forms) do
if not form.form:find("%[%[") then
local title = mw.title.new(form.form)
if title and not title.exists then
insert_cat("verbs with red links in their inflection tables")
must_break = true
break
end
end
end
end
if must_break then
break
end
end
end
if(base.conj == "or") then
insert_cat("verbs ending in -er")
else
insert_cat("verbs ending in -" .. base.conj)
end
if base.irreg then
insert_ann("irreg", "irregular")
insert_cat("irregular verbs")
else
insert_ann("irreg", "regular")
end
if base.only3s then
insert_ann("defective", "impersonal")
insert_cat("impersonal verbs")
elseif base.only3sp then
insert_ann("defective", "third-person only")
insert_cat("third-person-only verbs")
elseif base.only3p then
insert_ann("defective", "third-person plural only")
insert_cat("third-person-plural-only verbs")
elseif base.no_pres_stressed or base.no_pres1_and_sub then
insert_ann("defective", "defective")
insert_cat("defective verbs")
else
insert_ann("defective", "regular")
end
if base.stems.short_pp then
insert_ann("short_pp", "irregular short past participle")
insert_cat("verbs with irregular short past participle")
else
insert_ann("short_pp", "regular")
end
if base.clitic then
insert_cat("verbs with lexical clitics")
end
if base.refl then
insert_cat("reflexive verbs")
end
if base.e_ei_cat then
insert_ann("vowel_alt", "''e'' may become ''ei'' when stressed")
insert_cat("verbs with e becoming ei when stressed")
elseif not base.vowel_alt then
insert_ann("vowel_alt", "non-alternating")
else
for _, alt in ipairs(base.vowel_alt) do
if alt.form == "+" then
insert_ann("vowel_alt", "non-alternating")
else
insert_ann("vowel_alt", vowel_alternant_to_desc[alt.form])
insert_cat("verbs with " .. vowel_alternant_to_cat[alt.form])
end
end
end
local cons_alt = base.stems.cons_alt
if cons_alt == nil then
if base.conj == "ar" then
if base.inf_stem:find("ç$") then
cons_alt = "c-ç"
elseif base.inf_stem:find("c$") then
cons_alt = "c-qu"
elseif base.inf_stem:find("g$") then
cons_alt = "g-gu"
end
else
if base.no_pres_stressed or base.no_pres1_and_sub then
cons_alt = nil -- no e.g. c-ç alternation in this case
elseif base.inf_stem:find("c$") then
cons_alt = "c-ç"
elseif base.inf_stem:find("qu$") then
cons_alt = "c-qu"
elseif base.inf_stem:find("g$") then
cons_alt = "g-j"
elseif base.inf_stem:find("gu$") then
cons_alt = "g-gu"
end
end
end
if cons_alt then
local desc = cons_alt .. " alternation"
insert_ann("cons_alt", desc)
insert_cat("verbs with " .. desc)
else
insert_ann("cons_alt", "non-alternating")
end
end
-- Compute the categories to add the verb to, as well as the annotation to display in the
-- conjugation title bar. We combine the code to do these functions as both categories and
-- title bar contain similar information.
local function compute_categories_and_annotation(alternant_multiword_spec)
alternant_multiword_spec.categories = {}
local ann = {}
alternant_multiword_spec.annotation = ann
ann.irreg = {}
ann.short_pp = {}
ann.defective = {}
ann.vowel_alt = {}
ann.cons_alt = {}
local multiword_lemma = false
for _, form in ipairs(alternant_multiword_spec.forms.infinitive) do
if form.form:find(" ") then
multiword_lemma = true
break
end
end
iut.map_word_specs(alternant_multiword_spec, function(base)
add_categories_and_annotation(alternant_multiword_spec, base, multiword_lemma)
end)
local ann_parts = {}
local irreg = table.concat(ann.irreg, " or ")
if irreg ~= "" and irreg ~= "regular" then
table.insert(ann_parts, irreg)
end
local short_pp = table.concat(ann.short_pp, " or ")
if short_pp ~= "" and short_pp ~= "regular" then
table.insert(ann_parts, short_pp)
end
local defective = table.concat(ann.defective, " or ")
if defective ~= "" and defective ~= "regular" then
table.insert(ann_parts, defective)
end
local vowel_alt = table.concat(ann.vowel_alt, " or ")
if vowel_alt ~= "" and vowel_alt ~= "non-alternating" then
table.insert(ann_parts, vowel_alt)
end
local cons_alt = table.concat(ann.cons_alt, " or ")
if cons_alt ~= "" and cons_alt ~= "non-alternating" then
table.insert(ann_parts, cons_alt)
end
alternant_multiword_spec.annotation = table.concat(ann_parts, "; ")
end
local function show_forms(alternant_multiword_spec)
local lemmas = alternant_multiword_spec.forms.infinitive
alternant_multiword_spec.lemmas = lemmas -- save for later use in make_table()
if alternant_multiword_spec.forms.short_pp_ms then
alternant_multiword_spec.has_short_pp = true
end
local reconstructed_verb_spec = iut.reconstruct_original_spec(alternant_multiword_spec)
local function transform_accel_obj(slot, formobj, accel_obj)
-- No accelerators for negative imperatives, which are always multiword and derived directly from the
-- present subjunctive.
if slot:find("^neg_imp") then
return nil
end
if accel_obj then
if slot:find("^pp_") then
accel_obj.form = slot
elseif slot == "gerund" then
accel_obj.form = "reinteg-gerund-" .. reconstructed_verb_spec
else
accel_obj.form = "reinteg-verb-form-" .. reconstructed_verb_spec
end
end
return accel_obj
end
-- Italicize less-recommended forms.
local function generate_link(data)
local formval_for_link = data.form.formval_for_link
if formval_for_link:find(ALTVAR) then
formval_for_link = formval_for_link:gsub(ALTVAR, "")
return m_links.full_link({lang = lang, term = formval_for_link, tr = "-", accel = data.form.accel_obj},
"term") .. iut.get_footnote_text(data.form.footnotes, data.footnote_obj)
end
end
local props = {
lang = lang,
lemmas = lemmas,
transform_accel_obj = transform_accel_obj,
canonicalize = function(form) return export.remove_variant_codes(form, "keep altvar") end,
generate_link = generate_link,
slot_list = alternant_multiword_spec.verb_slots_basic,
}
iut.show_forms(alternant_multiword_spec.forms, props)
alternant_multiword_spec.footnote_basic = alternant_multiword_spec.forms.footnote
end
local notes_template = [=[
<div class="roa-footnote-outer-div" style="width:100%;">
<div class="roa-footnote-inner-div">
{footnote}
</div></div>
]=]
local basic_table = [=[
{description}<div class="NavFrame">
<div class="NavHead" align=center> การผันรูปแบบบูรณาการนิยมของ {title} (See [[Appendix:Reintegrationism]])</div>
<div class="NavContent" align="left">
{\op}| class="roa-inflection-table" data-toggle-category="inflection"
|-
! class="roa-person-number-header" rowspan="2" |
! class="roa-person-number-header" colspan="3" | เอกพจน์
! class="roa-person-number-header" colspan="3" | พหูพจน์
|-
! class="roa-person-number-header" style="width:12.5%" | บุรุษที่หนึ่ง<br />(<<eu>>)
! class="roa-person-number-header" style="width:12.5%" | บุรุษที่สอง<br />(<<ti>> / <<tu>>)
! class="roa-person-number-header" style="width:12.5%" | บุรุษที่สาม<br />(<<ele>> / <<ela>> / <<você>>)
! class="roa-person-number-header" style="width:12.5%" | บุรุษที่หนึ่ง<br />(<<nós>>)
! class="roa-person-number-header" style="width:12.5%" | บุรุษที่สอง<br />(<<vós>>)
! class="roa-person-number-header" style="width:12.5%" | บุรุษที่สาม<br />(<<eles>> / <<elas>> / <<vocês>>)
|-
! class="roa-nonfinite-header" colspan="7" | ''<span title="infinitivo">รูปกริยากลาง</span>''
|-
! class="roa-nonfinite-header" | '''<span title="infinitivo impessoal">คำอบุรุษกริยา</span>'''
| colspan="6" | {infinitive}
|-
! class="roa-nonfinite-header" | '''<span title="infinitivo flexionado">คำบุรุษกริยา</span>'''
| {pers_inf_1s}
| {pers_inf_2s}
| {pers_inf_3s}
| {pers_inf_1p}
| {pers_inf_2p}
| {pers_inf_3p}
|-
! class="roa-nonfinite-header" colspan="7" | ''<span title="gerúndio">รูปกริยาเป็นนาม</span>''
|-
| class="roa-nonfinite-header" |
| colspan="6" | {gerund}
|-{pp_clause}
! class="roa-indicative-left-rail" colspan="7" | ''<span title="indicativo">มาลาบอกเล่า</span>''
|-
! class="roa-indicative-left-rail" | <span title="presente">ปัจจุบันกาล</span>
| {pres_1s}
| {pres_2s}
| {pres_3s}
| {pres_1p}
| {pres_2p}
| {pres_3p}
|-
! class="roa-indicative-left-rail" | <span title="pretérito imperfeito">ไม่สมบูรณ์</span>
| {impf_1s}
| {impf_2s}
| {impf_3s}
| {impf_1p}
| {impf_2p}
| {impf_3p}
|-
! class="roa-indicative-left-rail" | <span title="pretérito perfeito">อดีตกาลสิ้นสุด (สมบูรณ์)</span>
| {pret_1s}
| {pret_2s}
| {pret_3s}
| {pret_1p}
| {pret_2p}
| {pret_3p}
|-
! class="roa-indicative-left-rail" | <span title="pretérito mais-que-perfeito simples">อภิสมบูรณ์</span>
| {plup_1s}
| {plup_2s}
| {plup_3s}
| {plup_1p}
| {plup_2p}
| {plup_3p}
|-
! class="roa-indicative-left-rail" | <span title="futuro do presente">อนาคตกาล</span>
| {fut_1s}
| {fut_2s}
| {fut_3s}
| {fut_1p}
| {fut_2p}
| {fut_3p}
|-
! class="roa-indicative-left-rail" | <span title="condicional">มาลาเงื่อนไข</span>
| {cond_1s}
| {cond_2s}
| {cond_3s}
| {cond_1p}
| {cond_2p}
| {cond_3p}
|-
! class="roa-subjunctive-left-rail" colspan="7" | ''<span title="conjuntivo">มาลาสมมุติ</span>''
|-
! class="roa-subjunctive-left-rail" | <span title=" presente do conjuntivo">ปัจจุบันกาล</span>
| {pres_sub_1s}
| {pres_sub_2s}
| {pres_sub_3s}
| {pres_sub_1p}
| {pres_sub_2p}
| {pres_sub_3p}
|-
! class="roa-subjunctive-left-rail" | <span title="pretérito imperfeito do conjuntivo">ไม่สมบูรณ์</span>
| {impf_sub_1s}
| {impf_sub_2s}
| {impf_sub_3s}
| {impf_sub_1p}
| {impf_sub_2p}
| {impf_sub_3p}
|-
! class="roa-subjunctive-left-rail" | <span title="futuro do conjuntivo">อนาคตกาล</span>
| {fut_sub_1s}
| {fut_sub_2s}
| {fut_sub_3s}
| {fut_sub_1p}
| {fut_sub_2p}
| {fut_sub_3p}
|-
! class="roa-imperative-left-rail" colspan="7" | ''<span title="imperativo">มาลาสั่ง</span>''
|-
! class="roa-imperative-left-rail" | <span title="imperativo afirmativo">เชิงยืนยัน</span>
| rowspan="2" |
| {imp_2s}
| {imp_3s}
| {imp_1p}
| {imp_2p}
| {imp_3p}
|-
! class="roa-imperative-left-rail" | <span title="imperativo negativo">เชิงปฏิเสธ</span> (<<nom>>)
| {neg_imp_2s}
| {neg_imp_3s}
| {neg_imp_1p}
| {neg_imp_2p}
| {neg_imp_3p}
|{\cl}{notes_clause}</div></div>
]=]
local double_pp_template = [=[
! class="roa-nonfinite-header" colspan="7" | ''<span title="particípio irregular">รูปกริยาขยายอดีตกาลสั้น</span>''
|-
! class="roa-nonfinite-header" | เพศชาย
| colspan="3" | {short_pp_ms}
| colspan="3" | {short_pp_mp}
|-
! class="roa-nonfinite-header" | เพศหญิง
| colspan="3" | {short_pp_fs}
| colspan="3" | {short_pp_fp}
|-
! class="roa-nonfinite-header" colspan="7" | ''<span title="particípio regular">รูปกริยาขยายอดีตกาลยาว</span>''
|-
! class="roa-nonfinite-header" | เพศชาย
| colspan="3" | {pp_ms}
| colspan="3" | {pp_mp}
|-
! class="roa-nonfinite-header" | เพศหญิง
| colspan="3" | {pp_fs}
| colspan="3" | {pp_fp}
|-]=]
local single_pp_template = [=[
! class="roa-nonfinite-header" colspan="7" | ''<span title="particípio passado">รูปกริยาขยายอดีตกาล</span>''
|-
! class="roa-nonfinite-header" | เพศชาย
| colspan="3" | {pp_ms}
| colspan="3" | {pp_mp}
|-
! class="roa-nonfinite-header" | เพศหญิง
| colspan="3" | {pp_fs}
| colspan="3" | {pp_fp}
|-]=]
local function make_table(alternant_multiword_spec)
local forms = alternant_multiword_spec.forms
forms.title = link_term(alternant_multiword_spec.lemmas[1].form)
if alternant_multiword_spec.annotation ~= "" then
forms.title = forms.title .. " (" .. alternant_multiword_spec.annotation .. ")"
end
forms.description = ""
-- Format the table.
forms.footnote = alternant_multiword_spec.footnote_basic
forms.notes_clause = forms.footnote ~= "" and m_string_utilities.format(notes_template, forms) or ""
-- has_short_pp is computed in show_forms().
local pp_template = alternant_multiword_spec.has_short_pp and double_pp_template or single_pp_template
forms.pp_clause = m_string_utilities.format(pp_template, forms)
local table_with_pronouns = rsub(basic_table, "<<(.-)>>", link_term)
return require("Module:TemplateStyles")("Module:roa-verb/style.css") .. m_string_utilities.format(table_with_pronouns, forms)
end
-- Externally callable function to parse and conjugate a verb given user-specified arguments.
-- Return value is WORD_SPEC, an object where the conjugated forms are in `WORD_SPEC.forms`
-- for each slot. If there are no values for a slot, the slot key will be missing. The value
-- for a given slot is a list of objects {form=FORM, footnotes=FOOTNOTES}.
function export.do_generate_forms(args, source_template, headword_head)
local PAGENAME = mw.loadData("Module:headword/data").pagename
local function in_template_space()
return mw.title.getCurrentTitle().nsText == "แม่แบบ"
end
-- Determine the verb spec we're being asked to generate the conjugation of. This may be taken from the
-- current page title or the value of |pagename=; but not when called from {{gl-reinteg-verb form of}}, where the
-- page title is a non-lemma form. Note that the verb spec may omit the infinitive; e.g. it may be "<i-e>".
-- For this reason, we use the value of `pagename` computed here down below, when calling normalize_all_lemmas().
local pagename = source_template ~= "gl-reinteg-verb form of" and args.pagename or PAGENAME
local head = headword_head or pagename
local arg1 = args[1]
if not arg1 then
if (pagename == "gl-reinteg-conj" or pagename == "gl-reinteg-verb") and in_template_space() then
arg1 = "traguer"
elseif pagename == "gl-reinteg-verb form of" and in_template_space() then
arg1 = "amar"
else
arg1 = "<>"
end
end
-- When called from {{gl-reinteg-verb form of}}, determine the non-lemma form whose inflections we're being asked to
-- determine. This normally comes from the page title or the value of |pagename=.
local verb_form_of_form
if source_template == "gl-reinteg-verb form of" then
verb_form_of_form = args.pagename
if not verb_form_of_form then
if PAGENAME == "gl-reinteg-verb form of" and in_template_space() then
verb_form_of_form = "ame"
else
verb_form_of_form = PAGENAME
end
end
end
local incorporated_headword_head_into_lemma = false
if arg1:find("^<.*>$") then -- missing lemma
if head:find(" ") then
-- If multiword lemma, try to add arg spec after the first word.
-- Try to preserve the brackets in the part after the verb, but don't do it
-- if there aren't the same number of left and right brackets in the verb
-- (which means the verb was linked as part of a larger expression).
local refl_clitic_verb, post = rmatch(head, "^(.-)( .*)$")
local left_brackets = rsub(refl_clitic_verb, "[^%[]", "")
local right_brackets = rsub(refl_clitic_verb, "[^%]]", "")
if #left_brackets == #right_brackets then
arg1 = iut.remove_redundant_links(refl_clitic_verb) .. arg1 .. post
incorporated_headword_head_into_lemma = true
else
-- Try again using the form without links.
local linkless_head = m_links.remove_links(head)
if linkless_head:find(" ") then
refl_clitic_verb, post = rmatch(linkless_head, "^(.-)( .*)$")
arg1 = refl_clitic_verb .. arg1 .. post
else
error("Unable to incorporate <...> spec into explicit head due to a multiword linked verb or " ..
"unbalanced brackets; please include <> explicitly: " .. arg1)
end
end
else
-- Will be incorporated through `head` below in the call to normalize_all_lemmas().
incorporated_headword_head_into_lemma = true
end
end
local function split_bracketed_runs_into_words(bracketed_runs)
return put.split_alternating_runs(bracketed_runs, " ", "preserve splitchar")
end
local parse_props = {
parse_indicator_spec = parse_indicator_spec,
-- Split words only on spaces, not on hyphens, because that messes up reflexive verb parsing.
split_bracketed_runs_into_words = split_bracketed_runs_into_words,
allow_default_indicator = true,
allow_blank_lemma = true,
}
local alternant_multiword_spec = iut.parse_inflected_text(arg1, parse_props)
alternant_multiword_spec.pos = pos or "verbs"
alternant_multiword_spec.args = args
alternant_multiword_spec.source_template = source_template
alternant_multiword_spec.verb_form_of_form = verb_form_of_form
alternant_multiword_spec.incorporated_headword_head_into_lemma = incorporated_headword_head_into_lemma
normalize_all_lemmas(alternant_multiword_spec, head)
detect_all_indicator_specs(alternant_multiword_spec)
local inflect_props = {
slot_list = alternant_multiword_spec.all_verb_slots,
inflect_word_spec = conjugate_verb,
get_variants = function(form) return rsub(form, not_var_code_c, "") end,
-- We add links around the generated verbal forms rather than allow the entire multiword
-- expression to be a link, so ensure that user-specified links get included as well.
include_user_specified_links = true,
}
iut.inflect_multiword_or_alternant_multiword_spec(alternant_multiword_spec, inflect_props)
-- Remove redundant brackets around entire forms.
for slot, forms in pairs(alternant_multiword_spec.forms) do
for _, form in ipairs(forms) do
form.form = iut.remove_redundant_links(form.form)
end
end
compute_categories_and_annotation(alternant_multiword_spec)
if args.json and source_template == "gl-reinteg-conj" then
-- Remove variant codes to avoid causing problems with bots.
for slot, forms in pairs(alternant_multiword_spec.forms) do
for _, form in ipairs(forms) do
form.form = export.remove_variant_codes(form.form)
end
end
return require("Module:JSON").toJSON(alternant_multiword_spec.forms)
end
return alternant_multiword_spec
end
-- Entry point for {{gl-reinteg-conj}}. Template-callable function to parse and conjugate a verb given
-- user-specified arguments and generate a displayable table of the conjugated forms.
function export.show(frame)
local parent_args = frame:getParent().args
local params = {
[1] = {},
["noautolinktext"] = {type = "boolean"},
["noautolinkverb"] = {type = "boolean"},
["pagename"] = {}, -- for testing/documentation pages
["json"] = {type = "boolean"}, -- for bot use
}
local args = require("Module:parameters").process(parent_args, params)
local alternant_multiword_spec = export.do_generate_forms(parent_args, "gl-reinteg-conj")
if type(alternant_multiword_spec) == "string" then
-- JSON return value
return alternant_multiword_spec
end
show_forms(alternant_multiword_spec)
return make_table(alternant_multiword_spec) ..
require("Module:utilities").format_categories(alternant_multiword_spec.categories, lang, nil, nil, force_cat)
end
return export
cq1pglcvc7jr3dcv5uz3yqcan4l7370
5758926
5758918
2026-08-24T12:19:20Z
Octahedron80
267
5758926
Scribunto
text/plain
--[=[
This module implements {{gl-reinteg-conj}} and provides the underlying conjugation functions for {{gl-reinteg-verb}},
as well as for {{gl-verb}} when invoked with |reinteg=1. The actual formatting of both {{gl-reinteg-verb}} and
{{gl-verb}} happens in [[Module:gl-headword]]. This module uses the [[Appendix:Reintegrationism|reintegrationist]] norm
for Galician spelling. See also [[Module:gl-verb]], which implements the standard norm.
Authorship: Ben Wing <benwing2>, MedK <medk1>
]=]
local export = {}
--[=[
TERMINOLOGY:
-- "slot" = A particular combination of tense/mood/person/number/etc.
Example slot names for verbs are "pres_1s" (present indicative first-person singular), "pres_sub_2s" (present
subjunctive second-person singular) "impf_sub_3p" (imperfect subjunctive third-person plural).
Each slot is filled with zero or more forms.
-- "form" = The conjugated Galician form representing the value of a given slot.
-- "lemma" = The dictionary form of a given Galician term. For Galician, always the infinitive.
]=]
--[=[
FIXME:
--]=]
local lang = require("Module:languages").getByCode("gl")
local m_string_utilities = require("Module:string utilities")
local m_links = require("Module:links")
local m_table = require("Module:table")
local iut = require("Module:inflection utilities")
local put = require("Module:parse utilities")
local com = require("Module:gl-reinteg-common")
local force_cat = false -- set to true for debugging
local check_for_red_links = false -- set to false for debugging
local rfind = mw.ustring.find
local rmatch = mw.ustring.match
local rsplit = mw.text.split
local rsub = com.rsub
local u = mw.ustring.char
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
local function link_term(term)
return m_links.full_link({ lang = lang, term = term }, "term")
end
local V = com.V -- vowel regex class
local AV = com.AV -- accented vowel regex class
local C = com.C -- consonant regex class
local AC = u(0x0301) -- acute = ́
local TEMPC1 = u(0xFFF1) -- temporary character used for consonant substitutions
local TEMP_MESOCLITIC_INSERTION_POINT = u(0xFFF2) -- temporary character used to mark the mesoclitic insertion point
-- Variant codes and the like.
-- NOTE: These codes should be *PREFIXED* onto stems and *SUFFIXED* onto endings. That way they won't interfere in the
-- operation of combine_stem_ending().
--
-- GL_TYPE = "Galician-type", PT_TYPE = "Portuguese-type". GL_TYPE stems cannot combine with PT_TYPE endings and
-- vice-versa. GL_ONLY_TYPE = "Galician-only type"; GL_ONLY_TYPE stems can only combine with endings specifically
-- marked as GL_TYPE.
local GL_TYPE = u(0xFFF3)
local GL_ONLY_TYPE = u(0xFFF4)
local PT_TYPE = u(0xFFF5)
-- ALTVAR = Less-recommended variants listed at the bottom of the Estraviz conjugation tables rather than in the main
-- table. We list these in the main table but with a footnote indicating they are less-recommended alternatives, and
-- italicize them to visually set them apart.
local ALTVAR = u(0xFFF6)
local GL_ALTVAR = GL_TYPE .. ALTVAR
local GL_ONLY_ALTVAR = GL_ONLY_TYPE .. ALTVAR
local var_codes_no_altvar = GL_TYPE .. GL_ONLY_TYPE .. PT_TYPE
local all_var_codes = var_codes_no_altvar .. ALTVAR
local var_code_c = "[" .. all_var_codes .. "]"
local var_code_no_altvar_c = "[" .. var_codes_no_altvar .. "]"
local not_var_code_c = "[^" .. all_var_codes .. "]"
-- Export variant codes for use in [[Module:pt-gl-inflections]].
export.GL_TYPE = GL_TYPE
export.GL_ONLY_TYPE = GL_ONLY_TYPE
export.PT_TYPE = PT_TYPE
export.ALTVAR = ALTVAR
local short_pp_footnote = "[usually used with auxiliary verbs " .. link_term("ser") .. " and " .. link_term("estar") .. "]"
local long_pp_footnote = "[usually used with auxiliary verbs " .. link_term("haver") .. " and " .. link_term("ter") .. "]"
--[=[
Vowel alternations:
<i-e>: 'i' in pres1s and the whole present subjunctive; 'e' elsewhere when stressed. Generally 'e' otherwise when
unstressed. E.g. [[sentir]], [[conseguir]] (the latter additionally with 'gu-g' alternation).
<u-o>: 'u' in pres1s and the whole present subjunctive; 'o' elsewhere when stressed. Either 'o' or 'u' otherwise when
unstressed. E.g. [[dormir]], [[subir]].
<i>: 'i' whenever stressed (in the present singular and third plural) and throughout the whole present subjunctive.
Otherwise 'e'. E.g. [[progredir]], [[premir]].
<u>: 'u' whenever stressed (in the present singular and third plural) and throughout the whole present subjunctive.
Otherwise 'o'. E.g. [[polir]], [[extorquir]] (the latter also <u-o>).
<í>: The last 'i' of the stem (excluding stem-final 'i') becomes 'í' when stressed. E.g.:
* [[proibir]] ('proíbo, proíbe(s), proíbem, proíba(s), proíbam')
* [[faiscar]] ('faísco, faísca(s), faíscam, faísque(s), faísquem' also with 'c-qu' alternation)
* [[homogeneizar]] ('homogeneízo', etc.)
* [[mobiliar]] ('mobílio', etc.; note here the final -i is ignored when determining which vowel to stress)
* [[tuitar]] ('tuíto', etc.)
<ú>: The last 'u' of the stem (excluding stem-final 'u') becomes 'ú' when stressed. E.g.:
* [[reunir]] ('reúno, reúne(s), reúnem, reúna(s), reúnam')
* [[esmiuçar]] ('esmiúço, esmiúça(s), esmiúça, esmiúce(s), esmiúcem' also with 'ç-c' alternation)
* [[reusar]] ('reúso, reúsa(s), reúsa, reúse(s), reúsem')
* [[saudar]] ('saúdo, saúda(s), saúda, saúde(s), saúdem')
]=]
local vowel_alternants = m_table.listToSet({"i-e", "i", "í", "u-o", "u", "ú", "ei", "+"})
local vowel_alternant_to_desc = {
["i-e"] = "''i-e'' alternation in present singular",
["i"] = "''e'' becomes ''i'' when stressed",
["í"] = "''i'' becomes ''í'' when stressed",
["u-o"] = "''u-o'' alternation in present singular",
["u"] = "''o'' becomes ''u'' when stressed",
["ú"] = "''u'' becomes ''ú'' when stressed",
["ei"] = "''i'' becomes ''ei'' when stressed",
}
local vowel_alternant_to_cat = {
["i-e"] = "i-e alternation in present singular",
["i"] = "e becoming i when stressed",
["í"] = "i becoming í when stressed",
["u-o"] = "u-o alternation in present singular",
["u"] = "o becoming u when stressed",
["ú"] = "u becoming ú when stressed",
["ei"] = "i becoming ei when stressed",
}
local all_persons_numbers = {
["1s"] = "1|s",
["2s"] = "2|s",
["3s"] = "3|s",
["1p"] = "1|p",
["2p"] = "2|p",
["3p"] = "3|p",
}
local person_number_list = {"1s", "2s", "3s", "1p", "2p", "3p"}
local imp_person_number_list = {"2s", "3s", "1p", "2p", "3p"}
local neg_imp_person_number_list = {"2s", "3s", "1p", "2p", "3p"}
person_number_to_reflexive_pronoun = {
["1s"] = "me",
["2s"] = "te",
["3s"] = "se",
["1p"] = "nos",
["2p"] = "vos",
["3p"] = "se",
}
local indicator_flags = m_table.listToSet {
"no_pres_stressed", "no_pres1_and_sub",
"only3s", "only3sp", "only3p",
"pp_inv", "irreg", "no_built_in", "e_ei_cat",
}
-- Remove any variant codes e.g. GL_TYPE, PT_TYPE, ALTVAR. Needs to be called from [[Module:gl-reinteg-headword]] on the
-- output of do_generate_forms(). `keep_altvar` leaves ALTVAR; used in the `canonicalize` function of show_forms()
-- because we then process and remove it in `generate_forms`. FIXME: Use metadata for this once it's supported in
-- [[Module:inflection utilities]].
function export.remove_variant_codes(form, keep_altvar)
return rsub(form, keep_altvar and var_code_no_altvar_c or var_code_c, "")
end
-- Initialize all the slots for which we generate forms.
local function add_slots(alternant_multiword_spec)
-- "Basic" slots: All slots that go into the regular table (not the reflexive form-of table).
alternant_multiword_spec.verb_slots_basic = {
{"infinitive", "inf"},
{"infinitive_linked", "inf"},
{"gerund", "ger"},
{"short_pp_ms", "short|m|s|past|part"},
{"short_pp_fs", "short|f|s|past|part"},
{"short_pp_mp", "short|m|p|past|part"},
{"short_pp_fp", "short|f|p|past|part"},
{"pp_ms", "m|s|past|part"},
{"pp_fs", "f|s|past|part"},
{"pp_mp", "m|p|past|part"},
{"pp_fp", "f|p|past|part"},
}
-- Special slots used to handle non-reflexive parts of reflexive verbs in {{gl-reinteg-verb form of}}. For example,
-- for a reflexive-only verb like [[arrepender-se]], we want to be able to use {{gl-reinteg-verb form of}} on
-- [[arrependa]] (which should mention that it is a part of 'me arrependa', first-person singular present
-- subjunctive, and 'se arrependa', third-person singular present subjunctive) or on [[arrependemos]] (which should
-- mention that it is a part of 'arrependemo-nos', first-person plural present indicative or preterite). Similarly,
-- we want to use {{gl-reinteg-verb form of}} on [[arrependendo]] (which should mention that it is a part of
-- 'se ... arrependendo', syntactic variant of [[arrependendo-se]], which is the gerund of [[arrepender-se]]). To
-- do this, we need to be able to map non-reflexive parts like [[arrependa]], [[arrependemos]], [[arrependendo]],
-- etc. to their reflexive equivalent(s), to the tag(s) of the equivalent(s), and, in the case of forms like
-- [[arrependendo]], [[arrepender]] and imperatives, to the separated syntactic variant of the verb+clitic
-- combination. We do this by creating slots for the non-reflexive part equivalent of each basic reflexive slot,
-- and for the separated syntactic-variant equivalent of each basic reflexive slot that is formed of verb+clitic.
-- We use slots in this way to deal with multiword lemmas. Note that we run into difficulties mapping between
-- reflexive verbs, non-reflexive part equivalents, and separated syntactic variants if a slot contains more than
-- one form. To handle this, if there are the same number of forms in two slots we're trying to match up, we assume
-- the forms match one-to-one; otherwise we don't match up the two slots (which means {{gl-reinteg-verb form of}} won't
-- work in this case, but such a case is extremely rare and not worth worrying about). Alternatives that handle
-- this "properly" are significantly more complicated and require non-trivial modifications to
-- [[Module:inflection utilities]].
local need_special_verb_form_of_slots = alternant_multiword_spec.source_template == "gl-reinteg-verb form of" and
alternant_multiword_spec.refl
if need_special_verb_form_of_slots then
alternant_multiword_spec.verb_slots_reflexive_verb_form_of = {
{"infinitive_non_reflexive", "-"},
{"infinitive_variant", "-"},
{"gerund_non_reflexive", "-"},
{"gerund_variant", "-"},
}
else
alternant_multiword_spec.verb_slots_reflexive_verb_form_of = {}
end
-- Add entries for a slot with person/number variants.
-- `verb_slots` is the table to add to.
-- `slot_prefix` is the prefix of the slot, typically specifying the tense/aspect.
-- `tag_suffix` is a string listing the set of inflection tags to add after the person/number tags.
-- `person_number_list` is a list of the person/number slot suffixes to add to `slot_prefix`.
local function add_personal_slot(verb_slots, slot_prefix, tag_suffix, person_number_list)
for _, persnum in ipairs(person_number_list) do
local persnum_tag = all_persons_numbers[persnum]
local slot = slot_prefix .. "_" .. persnum
local accel = persnum_tag .. "|" .. tag_suffix
table.insert(verb_slots, {slot, accel})
end
end
-- Add a personal slot (i.e. a slot with person/number variants) to `verb_slots_basic`.
local function add_basic_personal_slot(slot_prefix, tag_suffix, person_number_list, no_special_verb_form_of_slot)
add_personal_slot(alternant_multiword_spec.verb_slots_basic, slot_prefix, tag_suffix, person_number_list)
-- Add special slots for handling non-reflexive parts of reflexive verbs in {{gl-reinteg-verb form of}}.
-- See comment above in `need_special_verb_form_of_slots`.
if need_special_verb_form_of_slots and not no_special_verb_form_of_slot then
for _, persnum in ipairs(person_number_list) do
local persnum_tag = all_persons_numbers[persnum]
local basic_slot = slot_prefix .. "_" .. persnum
local accel = persnum_tag .. "|" .. tag_suffix
table.insert(alternant_multiword_spec.verb_slots_reflexive_verb_form_of, {basic_slot .. "_non_reflexive", "-"})
end
end
end
add_basic_personal_slot("pres", "pres|ind", person_number_list)
add_basic_personal_slot("impf", "impf|ind", person_number_list)
add_basic_personal_slot("pret", "pret|ind", person_number_list)
add_basic_personal_slot("plup", "plup|ind", person_number_list)
add_basic_personal_slot("fut", "fut|ind", person_number_list)
add_basic_personal_slot("cond", "cond", person_number_list)
add_basic_personal_slot("pres_sub", "pres|sub", person_number_list)
add_basic_personal_slot("impf_sub", "impf|sub", person_number_list)
add_basic_personal_slot("fut_sub", "fut|sub", person_number_list)
add_basic_personal_slot("imp", "imp", imp_person_number_list)
add_basic_personal_slot("pers_inf", "pers|inf", person_number_list)
-- Don't need special non-reflexive-part slots because the negative imperative is multiword, of which the
-- individual words are 'nom' + subjunctive.
add_basic_personal_slot("neg_imp", "neg|imp", neg_imp_person_number_list, "no special verb form of")
-- Don't need special non-reflexive-part slots because we don't want [[arrependendo]] mapping to [[arrependendo-me]]
-- (only [[arrependendo-se]]) or [[arrepender]] mapping to [[arrepender-me]] (only [[arrepender-se]]).
add_basic_personal_slot("infinitive", "inf", person_number_list, "no special verb form of")
add_basic_personal_slot("gerund", "ger", person_number_list, "no special verb form of")
-- Generate the list of all slots.
alternant_multiword_spec.all_verb_slots = {}
for _, slot_and_accel in ipairs(alternant_multiword_spec.verb_slots_basic) do
table.insert(alternant_multiword_spec.all_verb_slots, slot_and_accel)
end
for _, slot_and_accel in ipairs(alternant_multiword_spec.verb_slots_reflexive_verb_form_of) do
table.insert(alternant_multiword_spec.all_verb_slots, slot_and_accel)
end
alternant_multiword_spec.verb_slots_basic_map = {}
for _, slotaccel in ipairs(alternant_multiword_spec.verb_slots_basic) do
local slot, accel = unpack(slotaccel)
alternant_multiword_spec.verb_slots_basic_map[slot] = accel
end
end
local overridable_stems = {}
local function allow_multiple_values(separated_groups, data)
local retvals = {}
for _, separated_group in ipairs(separated_groups) do
local footnotes = data.fetch_footnotes(separated_group)
local retval = {form = separated_group[1], footnotes = footnotes}
table.insert(retvals, retval)
end
return retvals
end
local function simple_choice(choices)
return function(separated_groups, data)
if #separated_groups > 1 then
data.parse_err("For spec '" .. data.prefix .. ":', only one value currently allowed")
end
if #separated_groups[1] > 1 then
data.parse_err("For spec '" .. data.prefix .. ":', no footnotes currently allowed")
end
local choice = separated_groups[1][1]
if not m_table.contains(choices, choice) then
data.parse_err("For spec '" .. data.prefix .. ":', saw value '" .. choice .. "' but expected one of '" ..
table.concat(choices, ",") .. "'")
end
return choice
end
end
for _, overridable_stem in ipairs {
"pres_unstressed",
"pres_stressed",
"pres1_and_sub",
-- Don't include pres1; use pres_1s if you need to override just that form
"impf",
"full_impf",
{"pret_conj", simple_choice({"irreg", "ar", "er", "ir"}) },
"pret_base",
"pret",
"gl_short_pret",
"pt_pret_1s",
"pt_pret_3s",
"fut",
"cond",
"pres_sub_stressed",
"pres_sub_unstressed",
{"sub_conj", simple_choice({"ar", "er"}) },
"plup",
"impf_sub",
"fut_sub",
"pers_inf",
"pp",
"short_pp",
} do
if type(overridable_stem) == "string" then
overridable_stems[overridable_stem] = allow_multiple_values
else
local stem, validator = unpack(overridable_stem)
overridable_stems[stem] = validator
end
end
-- Useful as the value of the `match` property of a built-in verb. `main_verb_spec` is a Lua pattern that should match
-- the non-prefixed part of a verb, and `prefix_specs` is a list of Lua patterns that should match the prefixed part of
-- a verb. If a prefix spec is preceded by ^, it must match exactly at the beginning of the verb; otherwise, additional
-- prefixes (e.g. re-, des-) may precede. Return the prefix and main verb.
local function match_against_verbs(main_verb_spec, prefix_specs)
return function(verb)
for _, prefix_spec in ipairs(prefix_specs) do
if prefix_spec:find("^%^") then
-- must match exactly
prefix_spec = prefix_spec:gsub("^%^", "")
if prefix_spec == "" then
-- We can't use the second branch of the if-else statement because an empty () returns the current position
-- in rmatch().
local main_verb = rmatch(verb, "^(" .. main_verb_spec .. ")$")
if main_verb then
return "", main_verb
end
else
local prefix, main_verb = rmatch(verb, "^(" .. prefix_spec .. ")(" .. main_verb_spec .. ")$")
if prefix then
return prefix, main_verb
end
end
else
local prefix, main_verb = rmatch(verb, "^(.*" .. prefix_spec .. ")(" .. main_verb_spec .. ")$")
if prefix then
return prefix, main_verb
end
end
end
return nil
end
end
--[=[
Built-in (usually irregular) conjugations.
Each entry is processed in turn and consists of an object with two fields:
1. match=: Specifies the built-in verbs that match this object.
2. forms=: Specifies the built-in stems and forms for these verbs.
The value of match= is either a string beginning with "^" (match only the specified verb), a string not beginning
with "^" (match any verb ending in that string), or a function that is passed in the verb and should return the prefix
of the verb if it matches, otherwise nil. The function match_against_verbs() is provided to facilitate matching a set
of verbs with a common ending and specific prefixes (e.g. [[ter]] and [[ater]] but not [[abater]], etc.).
The value of forms= is a table specifying stems and individual override forms. Each key of the table names either a
stem (e.g. `pres_stressed`), a stem property (e.g. `vowel_alt`) or an individual override form (e.g. `pres_1s`).
Each value of a stem can either be a string (a single stem), a list of strings, or a list of objects of the form
{form = STEM, footnotes = {FOONOTES}}. Each value of an individual override should be of exactly the same form except
that the strings specify full forms rather than stems. The values of a stem property depend on the specific property
but are generally strings or booleans.
In order to understand how the stem specifications work, it's important to understand the phonetic modifications done
by combine_stem_ending(). In general, the complexities of predictable prefix, stem and ending modifications are all
handled in this function. In particular:
1. Spelling-based modifications (c/z, g/gu, gu/gü, g/j) occur automatically as appropriate for the ending.
2. If the stem begins with an acute accent, the accent is moved onto the last vowel of the prefix (for handling verbs
in -uar such as [[minguar]], pres_3s 'míngua').
3. If the ending begins with a double asterisk, this is a signal to conditionally delete the accent on the last letter
of the stem. "Conditionally" means we don't do it if the last two letters would form a diphthong without the accent
on the second one (e.g. in [[sair]], with stem 'saí'); but as an exception, we do delete the accent in stems
ending in -guí, -quí (e.g. in [[conseguir]]) because in this case the ui isn't a diphthong.
4. If the ending begins with an asterisk, this is a signal to delete the accent on the last letter of the stem, e.g.
fizé -> fizermos. Unlike for **, this removal is unconditional, so we get e.g. 'sairmos' not #'saírmos'.
5. If ending begins with i, it must get an accent after an unstressed vowel (in some but not all cases) to prevent the
two merging into a diphthong. See combine_stem_ending() for specifics.
The following stems are recognized:
-- pres_unstressed: The present indicative unstressed stem (1p, 2p). Also controls the imperative 2p
and gerund. Defaults to the infinitive stem (minus the ending -ar/-er/-ir/-or).
-- pres_stressed: The present indicative stressed stem (1s, 2s, 3s, 3p). Also controls the imperative 2s.
Default is empty if indicator `no_pres_stressed`, else a vowel alternation if such an indicator is given
(e.g. `ue`, `ì`), else the infinitive stem.
-- pres1_and_sub: Overriding stem for 1s present indicative and the entire subjunctive. Only set by irregular verbs
and by the indicators `no_pres_stressed` (e.g. [[precaver]]) and `no_pres1_and_sub` (since verbs of this sort,
e.g. [[puir]], are missing the entire subjunctive as well as the 1s present indicative). Used by many irregular
verbs, e.g. [[caber]], verbs in '-air', [[dizer]], [[ter]], [[valer]], etc. Some verbs set this and then supply an
override for the pres_1sg if it's irregular, e.g. [[saber]], with irregular subjunctive stem "saib-" and special
1s present indicative "sei".
-- pres1: Special stem for 1s present indicative. Normally, do not set this explicitly. If you need to specify an
irregular 1s present indicative, use the form override pres_1s= to specify the entire form. Defaults to
pres1_and_sub if given, else pres_stressed.
-- pres_sub_unstressed: The present subjunctive unstressed stem (1p, 2p). Defaults to pres1_and_sub if given, else the
infinitive stem.
-- pres_sub_stressed: The present subjunctive stressed stem (1s, 2s, 3s, 1p). Defaults to pres1.
-- sub_conj: Determines the set of endings used in the subjunctive. Should be one of "ar" or "er".
-- impf: The imperfect stem (not including the -av-/-i- stem suffix, which is determined by the conjugation). Defaults
to the infinitive stem.
-- full_impf: The full imperfect stem missing only the endings (-a, -as, -am, etc.). Used for verbs with irregular
imperfects such as [[ser]], [[ter]], [[vir]] and [[pôr]]. Needs to include an accent on the stressed vowel, which
will automatically be removed when not needed.
-- pret_conj: Determines the set of endings used in the preterite. Should be one of "ar", "er", "ir" or "irreg".
Defaults to the conjugation as determined from the infinitive. When pret_conj == "irreg", `pret` is used, otherwise
`pret_base`.
-- pret_base: The preterite stem (not including the -a-/-e-/-i- stem suffix). Defaults to the infinitive stem.
Only used when pret_conj ~= "irreg".
-- pret: The full preterite stem missing only the endings (-ste, -mos, etc.). Needs to include the accent on the final
vowel that occurs in some forms, e.g. 'figé' for [[fazer]], 'fô' for [[ser]]; the accent will automatically be
removed when not needed. Only used for verbs with irregular preterites (pret_conj == "irreg") such as [[fazer]],
[[poder]], [[trazer]], etc. The pret_1s and pret_3s are handled using the gl_short_pret stem instead for
"Galician"-ending forms (pret_1s '-em', pret_3s '-o') and using pt_pret_1s and pt_pret_3s for "Portuguese"-ending
forms. Defaults to `pret_base` + the accented conjugation vowel.
-- gl_short_pret: The short preterite stem, used with "Galician" 1s and 3s endings (pret_1s '-em', pret_3s '-o'). Only
used with irregular preterites (pret_conj == "irreg"). Normally derived from gl_pret by deleting the final vowel,
and doesn't need to be given explicitly.
-- pt_pret_1s: The "Portuguese" pret_1s form. In addition to this, the "Galician" pret_1s form will be included, formed
from gl_short_pret by adding '-em'. Does not need to be given if an override for pret_1s is supplied.
-- pt_pret_3s: The "Portuguese" pret_3s form. In addition to this, the "Galician" pret_3s form will be included, formed
from gl_short_pret by adding '-o' (which may cause the preceding consonant to shift to preserve the sound). Does
not need to be given if an override for pret_3s is supplied.
-- fut: The future stem. Defaults to the infinitive stem + the unaccented conjugation vowel.
-- cond: The conditional stem. Defaults to `fut`.
-- impf_sub: The imperfect subjunctive stem. Needs to include the accent on the final vowel that occurs in some forms;
see `pret` for more information. Defaults to `pret`.
-- fut_sub: The future subjunctive stem. Needs to include the accent on the final vowel that occurs in some forms; see
`gl_pret` for more information. Defaults to the merger of `gl_pret` and `pt_pret`.
-- plup: The pluperfect stem. Needs to include the accent on the final vowel that occurs in some forms; see `pret` for
more information. Defaults to `pret`.
-- pers_inf: The personal infinitive stem. Defaults to the infinitive stem + the accented conjugation vowel.
-- pp: The masculine singular past participle. Default is based on the verb conjugation: infinitive stem + '-ado' for
-ar verbs, otherwise infinitive stem + '-ido'.
-- short_pp: The short masculine singular past participle, for verbs with such a form. No default.
-- pp_inv: `true` if the past participle exists only in the masculine singular.
]=]
local built_in_conjugations = {
--------------------------------------------------------------------------------------------
-- -ar --
--------------------------------------------------------------------------------------------
-- Verbs not needing entries here:
--
-- (1) Verbs with short past participles: need to specify the short pp explicitly.
--
-- aceitar: use <short_pp:aceite>
-- anexar, completar, expressar, expulsar, findar, fritar, ganhar, gastar, limpar, pagar, pasmar, pegar, soltar:
-- use <short_pp:anexo> etc.
-- assentar: use <short_pp:assente>
-- entregar: use <short_pp:entregue>
-- enxugar: use <short_pp:enxuto>
-- matar: use <short_pp:morto>
--
-- (2) Verbs with orthographic consonant alternations: handled automatically.
--
-- -car (brincar, buscar, pecar, trancar, etc.): automatically handled in combine_stem_ending()
-- -çar (alcançar, começar, laçar): automatically handled in combine_stem_ending()
-- -gar (apagar, cegar, esmagar, largar, navegar, resmungar, sugar, etc.): automatically handled in combine_stem_ending()
--
-- (3) Verbs with vowel alternations: need to specify the alternation explicitly unless it always happens, in
-- which case it's handled automatically through an entry below.
--
-- esmiuçar changing to esmiúço: use <ú>
-- faiscar changing to faísco: use <í>
-- -iar changing to -eio (ansiar, incendiar, mediar, odiar, remediar, etc.): use <ei>
-- -izar changing to -ízo (ajuizar, enraizar, homogeneizar, plebeizar, etc.): use <í>
-- mobiliar changing to mobílio: use <í>
-- reusar changing to reúso: use <ú>
-- saudar changing to saúdo: use <ú>
-- tuitar/retuitar changing to (re)tuíto: use <í>
{
-- dar, desdar
match = match_against_verbs("dar", {"^", "^des", "^re"}),
forms = {
pres_1s = "dou",
pres_2s = "dás",
pres_3s = "dá",
-- damos, dades/dais regular
pres_3p = {GL_TYPE .. "dam", PT_TYPE .. "dão"},
pret_conj = "irreg", pret = "dé", pret_1s = "dei", pret_3s = "deu",
pres_sub_1s = "dê",
pres_sub_2s = "dês",
pres_sub_3s = "dê",
-- demos, dedes/deis regular
pres_sub_3p = {GL_TYPE .. "dem", PT_TYPE .. "deem"},
irreg = true,
}
},
{
-- -ear (frear, nomear, semear, etc.)
match = "ear",
forms = {
pres_stressed = {"ei", GL_ALTVAR .. "e"},
e_ei_cat = true,
}
},
{
-- estar
match = match_against_verbs("estar", {"^", "sob", "sobr"}),
forms = {
pres_1s = "estou",
pres_2s = "estás",
pres_3s = "está",
pres_3p = {GL_TYPE .. "estám", PT_TYPE .. "estão"},
pres1_and_sub = "estej", -- only for subjunctive as we override pres_1s
sub_conj = "er",
pret_conj = "irreg", pret = "estivé", pt_pret_1s = "estive", pt_pret_3s = "esteve",
-- [[sobestar]], [[sobrestar]] are transitive so they have fully inflected past participles
pp_inv = function(base, prefix) return prefix == "" end,
irreg = true,
}
},
--------------------------------------------------------------------------------------------
-- -er --
--------------------------------------------------------------------------------------------
-- Verbs not needing entries here:
--
-- precaver: use <no_pres_stressed>
-- -cer (verbs in -ecer, descer, vencer, etc.): automatically handled in combine_stem_ending()
-- -ger (proteger, reger, etc.): automatically handled in combine_stem_ending()
-- -guer (erguer/reerguer/soerguer): automatically handled in combine_stem_ending()
{
-- benzer
match = "benzer",
forms = {short_pp = "bento"}
},
{
-- caber
match = "caber",
forms = {
pres1_and_sub = "caib",
pret_conj = "irreg", pret = "coubé", pt_pret_1s = "coube", pt_pret_3s = "coube",
irreg = true,
}
},
{
-- crer, descrer
match = "crer",
forms = {
pres_2s = "crês", pres_3s = "crê",
pres_2p = "credes", pres_3p = {GL_TYPE .. "crem", PT_TYPE .. "creem"},
pres1_and_sub = {"crei", GL_ALTVAR .. "cre"},
irreg = true,
}
},
{
-- dizer, bendizer, condizer, contradizer, desdizer, maldizer, predizer, etc.
match = "dizer",
forms = {
-- use 'digu' because we're in a front environment; if we use 'dig', we'll get '#dijo'
pres1_and_sub = "digu",
pres_2s = {GL_TYPE .. "dis", PT_TYPE .. "dizes"},
pres_3s = {GL_TYPE .. "di", PT_TYPE .. "diz"},
pres_3p = {GL_TYPE .. "dim", PT_TYPE .. "dizem"},
pret_conj = "irreg", pret = {GL_TYPE .. "dixé", PT_TYPE .. "dissé"},
pt_pret_1s = "disse", pt_pret_3s = "disse",
pp = "dito",
fut = "dir",
irreg = true,
}
},
{
-- eleger, reeleger
match = "eleger",
forms = {short_pp = "eleito"}
},
{
-- acender, prender; not desprender, etc.
match = match_against_verbs("ender", {"^ac", "^pr"}),
forms = {short_pp = "eso"}
},
{
-- fazer, afazer, contrafazer, desfazer, liquefazer, perfazer, putrefazer, rarefazer, refazer, satisfazer, tumefazer
match = "fazer",
forms = {
-- use 'fagu' because we're in a front environment; if we use 'fag', we'll get '#fajo'
pres1_and_sub = {GL_TYPE .. "fagu", PT_TYPE .. "faç"},
pres_2s = {GL_TYPE .. "fás", PT_TYPE .. "fazes"},
pres_3s = {GL_TYPE .. "fai", PT_TYPE .. "faz"},
pres_3p = {GL_TYPE .. "fam", PT_TYPE .. "fazem"},
pret_conj = "irreg", pret = {GL_TYPE .. "figé", PT_TYPE .. "fizé", GL_ONLY_ALTVAR .. "fizé"},
pt_pret_1s = "fiz", pt_pret_3s = "fez",
pp = "feito",
fut = "far",
irreg = true,
}
},
{
match = "^haver",
forms = {
pres_1s = "hei",
pres_2s = "hás",
pres_3s = {"há", {form = GL_ALTVAR .. "hai", footnotes = {"[also impersonal]"}}},
pres_3p = {GL_TYPE .. "ham", PT_TYPE .. "hão"},
pres1_and_sub = "haj", -- only for subjunctive as we override pres_1s
pret_conj = "irreg", pret = "houvé", pt_pret_1s = "houve", pt_pret_3s = "houve",
imp_2s = "há",
irreg = true,
}
},
-- reaver below under r-
{
-- jazer, adjazer
match = "jazer",
forms = {
pres_3s = "jaz",
irreg = true,
}
},
{
-- ler, reler, tresler; not excel(l)er, valer, etc.
match = match_against_verbs("ler", {"^", "^re", "tres"}),
forms = {
pres_2s = "lês", pres_3s = "lê",
pres_2p = "ledes", pres_3p = {GL_TYPE .. "lem", PT_TYPE .. "leem"},
pres1_and_sub = {"lei", GL_ALTVAR .. "le"},
irreg = true,
}
},
{
-- morrer, desmorrer
match = "morrer",
forms = {short_pp = "morto"}
},
{
-- moer, but not remoer
match = "^moer",
forms = {
pres_2s = "móis", pres_3s = "mói",
-- impf -ía etc., pret_1s -oí and pp -oído handled automatically in combine_stem_ending()
pres1_and_sub = {"mo", GL_ALTVAR .. "moi"},
short_pp = "mudo",
irreg = true,
}
},
{
-- doer, remoer, roer/corroer, soer
match = "oer",
forms = {
pres_2s = "óis", pres_3s = "ói",
-- impf -ía etc., pret_1s -oí and pp -oído handled automatically in combine_stem_ending()
pres1_and_sub = {"o", GL_ALTVAR .. "oi"},
irreg = true,
}
},
{
-- perder
match = "perder",
forms = {
-- use 'perqu' because we're in a front environment; if we use 'perc', we'll get '#perço'
-- we don't tag these forms GL_TYPE or PT_TYPE because both occur with both endings -ais/-ades
pres1_and_sub = {"perd", "perqu"},
irreg = true,
}
},
{
-- poder
match = "poder",
forms = {
pres1_and_sub = {GL_TYPE .. "pod", PT_TYPE .. "poss"},
pret_conj = "irreg", pret = "pudé", pt_pret_1s = "pude", pt_pret_3s = "pôde",
irreg = true,
}
},
{
-- prazer, aprazer, comprazer, desprazer
-- FIXME: comprazer also has regular preterite
match = "prazer",
forms = {
pres_3s = "praz",
pret_conj = "irreg", pret = "prouvé", pt_pret_1s = "prouve", pt_pret_3s = "prouve",
only3sp = function(base, prefix) return prefix == "a" end,
imp_2s = {GL_TYPE .. "praze", PT_TYPE .. "praz"},
irreg = true,
}
},
-- prover below, just below ver
{
-- requerer; must precede querer
match = "requerer",
forms = {
pres_3s = "requer",
pres1_and_sub = "requeir",
imp_2s = {"requer"},
-- regular preterite, unlike [[querer]]
irreg = true,
}
},
{
-- querer, desquerer, malquerer
match = "querer",
forms = {
pres_1s = "quero", pres_3s = "quer",
pres1_and_sub = "queir", -- only for subjunctive as we override pres_1s
pret_conj = "irreg", pret = {GL_TYPE .. "quigé", PT_TYPE .. "quisé"},
pt_pret_1s = "quis", pt_pret_3s = "quis",
irreg = true,
}
},
{
match = "reaver",
forms = {
pres_1s = "reei",
pres_2s = "reás",
pres_3s = "reá",
pres_3p = {GL_TYPE .. "ream", PT_TYPE .. "reão"},
pres1_and_sub = "reaj", -- only for subjunctive as we override pres_1s
pret_conj = "irreg", pret = "reouvé", pt_pret_1s = "reouve", pt_pret_3s = "reouve",
irreg = true,
}
},
{
-- saber, ressaber
match = "saber",
forms = {
pres_1s = "sei",
pres1_and_sub = "saib", -- only for subjunctive as we override pres_1s
pret_conj = "irreg", pret = "soubé", pt_pret_1s = "soube", pt_pret_3s = "soube",
irreg = true,
}
},
{
-- escrever/reescrever, circunscrever, descrever/redescrever, inscrever, prescrever, proscrever, subscrever,
-- transcrever, others?
match = "screver",
forms = {
pp = "scrito",
irreg = true,
}
},
{
-- suspender
match = "suspender",
forms = {short_pp = "suspenso"}
},
{
match = "^ser",
forms = {
pres_1s = "sou", pres_2s = "és", pres_3s = "é",
pres_1p = "somos", pres_2p = {GL_TYPE .. "sodes", PT_TYPE .. "sois"},
pres_3p = {GL_TYPE .. "som", PT_TYPE .. "são"},
pres1_and_sub = "sej", -- only for subjunctive as we override pres_1s
full_impf = "ér",
pret_conj = "irreg", pret = "fô", pret_1s = {GL_TYPE .. "fum", PT_TYPE .. "fui"}, pret_3s = "foi",
imp_2s = "sê", imp_2p = "sede",
pp_inv = true,
irreg = true,
}
},
{
-- We want to match abster, conter, deter, etc. but not abater, cometer, etc. No way to avoid listing each verb.
match = match_against_verbs("ter", {"abs", "^a", "con", "de", "entre", "man", "ob", "^re", "sus", "^"}),
forms = {
-- FIXME, Estraviz says 'contens', 'detens' etc. but that may be a typo
pres_2s = function(base, prefix) return {GL_TYPE .. "tés", PT_TYPE .. (prefix == "" and "tens" or "téns")} end,
-- FIXME, Estraviz says 'contem', 'detem' etc. but that may be a typo
pres_3s = function(base, prefix) return prefix == "" and "tem" or "tém" end,
pres_2p = "tendes", pres_3p = {GL_TYPE .. "tenhem", PT_TYPE .. "têm", GL_ALTVAR .. "tém"},
pres1_and_sub = "tenh",
full_impf = "tính",
pret_conj = "irreg", pret = "tivé", pt_pret_1s = "tive", pt_pret_3s = "teve",
irreg = true,
}
},
{
match = "trazer",
forms = {
-- use 'tragu' because we're in a front environment; if we use 'trag', we'll get '#trajo'
pres1_and_sub = "tragu", pres_3s = "traz",
pret_conj = "irreg", pret = "trouxé", pt_pret_1s = "trouxe", pt_pret_3s = "trouxe",
fut = "trar",
irreg = true,
}
},
{
match = "traguer",
forms = {
pret_conj = "irreg", pret = "trouxé", pt_pret_1s = "trouxe", pt_pret_3s = "trouxe",
irreg = true,
}
},
{
-- valer, desvaler, equivaler
match = "valer",
forms = {
pres1_and_sub = "valh",
irreg = true,
}
},
{
-- We want to match antever etc. but not absolver, atrever etc. No way to avoid listing each verb.
match = match_against_verbs("ver", {"ante", "entre", "pre", "^re", "^"}),
forms = {
pres_2s = "vês", pres_3s = "vê",
pres_2p = "vedes",
pres_3p = function(base, prefix) return {GL_TYPE .. (prefix == "" and "vem" or "vêm"), PT_TYPE .. "veem"} end,
pres1_and_sub = "vej",
pret_conj = "irreg", pret = "ví", pret_1s = {GL_TYPE .. "vim", PT_TYPE .. "vi"}, pret_3s = "viu",
pp = "visto",
irreg = true,
}
},
{
-- [[prover]] and [[desprover]] have regular preterite and past participle
match = "prover",
forms = {
pres_2s = "provês", pres_3s = "provê",
-- FIXME: Estraviz says 'provem' but that may be a typo
pres_2p = "provedes", pres_3p = {GL_TYPE .. "provêm", PT_TYPE .. "proveem"},
pres1_and_sub = "provej",
irreg = true,
}
},
{
-- volver, devolver, envolver, revolver, etc.
match = "volver",
forms = {short_pp = "volto"},
},
--------------------------------------------------------------------------------------------
-- -ir --
--------------------------------------------------------------------------------------------
-- Verbs not needing entries here:
--
-- abolir: use <u-o>
-- barrir: use <only3sp>
-- carpir, colorir, demolir: use <no_pres1_and_sub>
-- descolorir: use <no_pres1_and_sub>
-- delir, espavorir, falir, florir, remir, renhir: use <no_pres_stressed>
-- empedernir: use <i-e>
-- transir: regular
-- aspergir, despir, flectir/deflectir/genuflectir/genufletir/reflectir/refletir, mentir/desmentir,
-- sentir/assentir/consentir/dissentir/pressentir/ressentir, convergir/divergir, aderir/adherir,
-- ferir/auferir/conferir/deferir/desferir/diferir/differir/inferir/interferir/preferir/proferir/referir/transferir,
-- gerir/digerir/ingerir/sugerir, preterir, competir/repetir, servir, advertir/animadvertir/divertir,
-- vestir/investir/revestir/travestir, seguir/conseguir/desconseguir/desseguir/perseguir/prosseguir: use <i-e>
-- inerir: use <i-e>
-- compelir/expelir/impelir/repelir: use <i-e>
-- dormir, engolir, tossir, subir, acudir/sacudir, fugir, sumir/consumir (NOT assumir/presumir/resumir): use <u-o>
-- polir/repolir: use <u>
-- premir: use <i>
-- extorquir/retorquir: <u-o,u>
-- agredir/progredir/regredir/transgredir: use <i>
-- denegrir, prevenir: use <i>
-- eclodir: use <u-o>
-- cerzir: use <i-e>
-- proibir/coibir: use <í>
-- reunir: use <ú>
-- parir/malparir: use <no_pres_stressed>
-- explodir/implodir: use <u-o>
--
-- -cir alternations (aducir, ressarcir): automatically handled in combine_stem_ending()
-- -gir alternations (agir, dirigir, exigir): automatically handled in combine_stem_ending()
-- -guir alternations (e.g. conseguir): automatically handled in combine_stem_ending()
-- -quir alternations (e.g. extorquir): automatically handled in combine_stem_ending()
{
-- verbs in -air (cair, sair, trair and derivatives: decair/descair/recair, sobres(s)air,
-- abstrair/atrair/contrair/distrair/extrair/protrair/retrair/subtrair)
match = "air",
forms = {
pres1_and_sub = "ai", pres_2s = "ais", pres_3s = "ai",
-- all occurrences of accented í in endings handled in combine_stem_ending()
irreg = true,
}
},
{
-- abrir/desabrir/reabrir
match = "abrir",
forms = {pp = "aberto"}
},
{
-- cobrir/descobrir/encobrir/recobrir/redescobrir
match = "cobrir",
forms = {vowel_alt = "u-o", pp = "coberto"}
},
{
-- conduzir, produzir, reduzir, traduzir, etc.; luzir, reluzir, tremeluzir
match = "uzir",
forms = {
pres_3s = "uz",
-- FIXME, is this correct?
imp_2s = "uze",
irreg = true,
}
},
{
-- pedir, desimpedir, despedir, espedir, expedir, impedir
-- medir
-- comedir
match = match_against_verbs("edir", {"m", "p"}),
forms = {
pres1_and_sub = {GL_TYPE .. "id", PT_TYPE .. "eç"},
irreg = true,
}
},
{
-- frigir
match = "frigir",
forms = {vowel_alt = "i-e", short_pp = "frito"},
},
{
-- inserir
match = "inserir",
forms = {vowel_alt = "i-e"},
},
{
-- ir
match = "^ir",
forms = {
pres_1s = "vou", pres_2s = {GL_TYPE .. "vás", PT_TYPE .. "vais"}, pres_3s = "vai",
pres_1p = {GL_TYPE .. "imos", PT_TYPE .. "vamos"}, pres_2p = "ides",
pres_3p = {GL_TYPE .. "vam", PT_TYPE .. "vão"},
pres_sub_1s = {GL_TYPE .. "vaia", PT_TYPE .. "vá"},
pres_sub_2s = {GL_TYPE .. "vaias", PT_TYPE .. "vás"},
pres_sub_3s = {GL_TYPE .. "vaia", PT_TYPE .. "vá"},
pres_sub_1p = {GL_TYPE .. "vaiamos", PT_TYPE .. "vamos"},
pres_sub_2p = {GL_TYPE .. "vaiades", PT_TYPE .. "vades"},
pres_sub_3p = {GL_TYPE .. "vaiam", PT_TYPE .. "vão"},
pret_conj = "irreg", pret = "fô", pret_1s = {GL_TYPE .. "fum", PT_TYPE .. "fui"}, pret_3s = "foi",
irreg = true,
}
},
{
-- emergir, imergir, submergir
match = "mergir",
forms = {vowel_alt = "i-e", short_pp = "merso"},
},
{
match = "ouvir",
forms = {
pres1_and_sub = {"ouç", ALTVAR .. "oiç"},
irreg = true,
}
},
{
-- exprimir, imprimir, comprimir (but not descomprimir per Priberam), deprimir, oprimir/opprimir (but not reprimir,
-- suprimir/supprimir per Priberam)
match = match_against_verbs("primir", {"^com", "ex", "im", "de", "^o", "op"}),
forms = {short_pp = "presso"}
},
{
-- rir, sorrir
match = match_against_verbs("rir", {"^", "sor"}),
forms = {
pres_2s = "ris", pres_3s = "ri", pres_2p = "rides", pres_3p = {GL_TYPE .. "rim", PT_TYPE .. "riem"},
pres1_and_sub = "ri",
irreg = true,
}
},
{
-- distinguir, extinguir
match = "tinguir",
forms = {
short_pp = "tinto",
-- gu/g alternations handled in combine_stem_ending()
}
},
{
-- verbs in -truir (construir, destruir, reconstruir) but not obstruir/desobstruir, instruir, which are handled
-- by the default -uir handler below
match = match_against_verbs("struir", {"con", "de"}),
forms = {
pres_2s = {"stróis", ALTVAR .. "struis"}, pres_3s = {"strói", ALTVAR .. "strui"},
pres_3p = {"stroem", ALTVAR .. "struem"},
-- all occurrences of accented í in endings handled in combine_stem_ending()
irreg = true,
}
},
{
-- remaining verbs in -uir (concluir/excluir/incluir/concruir/concruyr, abluir/diluir, afluir/fluir/influir,
-- aluir, anuir, atribuir/contribuir/distribuir/redistribuir/retribuir/substituir, coevoluir/evoluir,
-- constituir/destituir/instituir/reconstituir/restituir, derruir, diminuir, estatuir, fruir/usufruir, imbuir,
-- imiscuir, poluir, possuir, puir, pruir, ruir
-- FIXME: old module lists short pp incluso for incluir that can't be verified, ask about this
-- FIXME: handle -uyr verbs?
match = function(verb)
-- Don't match -guir verbs (e.g. [[seguir]], [[conseguir]]) or -quir verbs (e.g. [[extorquir]])
if verb:find("guir$") or verb:find("quir$") then
return nil
else
return match_against_verbs("uir", {""})(verb)
end
end,
forms = {
pres_2s = "uis", pres_3s = "ui",
-- all occurrences of accented í in endings handled in combine_stem_ending()
irreg = true,
}
},
{
-- We want to match advir, convir, devir, etc. but not ouvir, servir, etc. No way to avoid listing each verb.
match = match_against_verbs("vir", {"ad", "^a", "con", "contra", "de", "^desa", "inter", "pro", "^re", "sobre", "^"}),
forms = {
-- FIXME, Estraviz says 'convens', 'devens' etc. but that may be a typo
pres_2s = function(base, prefix) return {GL_TYPE .. "vés", PT_TYPE .. (prefix == "" and "vens" or "véns")} end,
-- FIXME, Estraviz says 'convem', 'devem' etc. but that may be a typo
pres_3s = function(base, prefix) return prefix == "" and "vem" or "vém" end,
pres_2p = "vindes", pres_3p = {GL_TYPE .. "venhem", PT_TYPE .. "vêm", GL_ALTVAR .. "vém"},
pres1_and_sub = "venh",
full_impf = "vính",
pret_conj = "irreg", pret = {GL_TYPE .. "vinhé", PT_TYPE .. "vié"},
pret_1s = "vim", pret_3s = {GL_TYPE .. "véu", PT_TYPE .. "veio"},
pp = "vindo",
irreg = true,
}
},
--------------------------------------------------------------------------------------------
-- misc --
--------------------------------------------------------------------------------------------
{
-- pôr, antepor, apor, compor/decompor/descompor, contrapor, depor, dispor, expor, impor, interpor, justapor,
-- opor, pospor, propor, repor, sobrepor, supor/pressupor, transpor, decompor, others?
match = "p[oô]r",
forms = {
pres1_and_sub = "ponh",
pres_2s = {GL_TYPE .. "pós", PT_TYPE .. "pões", GL_ALTVAR .. "pons"},
pres_3s = {GL_TYPE .. "pom", PT_TYPE .. "põe"},
pres_1p = "pomos", pres_2p = "pondes",
pres_3p = {GL_TYPE .. "ponhem", PT_TYPE .. "põem", GL_ALTVAR .. "póm"},
full_impf = "púnh",
pret_conj = "irreg", pret = {GL_TYPE .. "pugé", PT_TYPE .. "pusé"}, pt_pret_1s = "pus", pt_pret_3s = "pôs",
pers_inf = "po",
gerund = "pondo", pp = "posto",
irreg = true,
}
},
}
local function skip_slot(base, slot, allow_overrides)
if not allow_overrides and (base.basic_overrides[slot] or
base.refl and base.basic_reflexive_only_overrides[slot]) then
-- Skip any slots for which there are overrides.
return true
end
if base.only3s and (slot:find("^pp_f") or slot:find("^pp_mp")) then
-- diluviar, atardecer, neviscar; impersonal verbs have only masc sing pp
return true
end
if not slot:find("[123]") then
-- Don't skip non-personal slots.
return false
end
if base.nofinite then
return true
end
if (base.only3s or base.only3sp or base.only3p) and (slot:find("^imp_") or slot:find("^neg_imp_")) then
return true
end
if base.only3s and not slot:find("3s") then
-- diluviar, atardecer, neviscar
return true
end
if base.only3sp and not slot:find("3[sp]") then
-- atañer, concernir
return true
end
if base.only3p and not slot:find("3p") then
-- [[caer cuatro gotas]], [[caer chuzos de punta]], [[entrarle los siete males]]
return true
end
return false
end
-- Apply vowel alternations to stem.
local function apply_vowel_alternations(stem, alternations)
local alternation_stems = {}
local saw_pres1_and_sub = false
local saw_pres_stressed = false
-- Process alternations other than +.
for _, altobj in ipairs(alternations) do
local alt = altobj.form
local pres1_and_sub, pres_stressed, err
-- Treat final -gu, -qu as a consonant, so the previous vowel can alternate (e.g. conseguir -> consigo).
-- This means a verb in -guar can't have a u-ú alternation but I don't think there are any verbs like that.
stem = rsub(stem, "([gq])u$", "%1" .. TEMPC1)
if alt == "+" then
-- do nothing yet
elseif alt == "ei" then
local before_last_vowel = rmatch(stem, "^(.*)i$")
if not before_last_vowel then
err = "stem should end in -i"
else
pres1_and_sub = nil
pres_stressed = before_last_vowel .. "ei"
end
else
local before_last_vowel, last_vowel, after_last_vowel = rmatch(stem, "^(.*)(" .. V .. ")(.-[ui])$")
if not before_last_vowel then
before_last_vowel, last_vowel, after_last_vowel = rmatch(stem, "^(.*)(" .. V .. ")(.-)$")
end
if alt == "i-e" then
if last_vowel == "e" or last_vowel == "i" then
pres1_and_sub = before_last_vowel .. "i" .. after_last_vowel
if last_vowel == "i" then
pres_stressed = before_last_vowel .. "e" .. after_last_vowel
end
else
err = "should have -e- or -i- as the last vowel"
end
elseif alt == "i" then
if last_vowel == "e" then
pres1_and_sub = before_last_vowel .. "i" .. after_last_vowel
pres_stressed = pres1_and_sub
else
err = "should have -e- as the last vowel"
end
elseif alt == "u-o" then
if last_vowel == "o" or last_vowel == "u" then
pres1_and_sub = before_last_vowel .. "u" .. after_last_vowel
if last_vowel == "u" then
pres_stressed = before_last_vowel .. "o" .. after_last_vowel
end
else
err = "should have -o- or -u- as the last vowel"
end
elseif alt == "u" then
if last_vowel == "o" then
pres1_and_sub = before_last_vowel .. "u" .. after_last_vowel
pres_stressed = pres1_and_sub
else
err = "should have -o- as the last vowel"
end
elseif alt == "í" then
if last_vowel == "i" then
pres_stressed = before_last_vowel .. "í" .. after_last_vowel
else
err = "should have -i- as the last vowel"
end
elseif alt == "ú" then
if last_vowel == "u" then
pres_stressed = before_last_vowel .. "ú" .. after_last_vowel
else
err = "should have -u- as the last vowel"
end
else
error("Internal error: Unrecognized vowel alternation '" .. alt .. "'")
end
end
if pres1_and_sub then
pres1_and_sub = {form = pres1_and_sub:gsub(TEMPC1, "u"), footnotes = altobj.footnotes}
saw_pres1_and_sub = true
end
if pres_stressed then
pres_stressed = {form = pres_stressed:gsub(TEMPC1, "u"), footnotes = altobj.footnotes}
saw_pres_stressed = true
end
table.insert(alternation_stems, {
altobj = altobj,
pres1_and_sub = pres1_and_sub,
pres_stressed = pres_stressed,
err = err
})
end
-- Now do +. We check to see which stems are used by other alternations and specify those so any footnotes are
-- properly attached.
for _, alternation_stem in ipairs(alternation_stems) do
if alternation_stem.altobj.form == "+" then
local stemobj = {form = stem, footnotes = alternation_stem.altobj.footnotes}
alternation_stem.pres1_and_sub = saw_pres1_and_sub and stemobj or nil
alternation_stem.pres_stressed = saw_pres_stressed and stemobj or nil
end
end
return alternation_stems
end
-- Add the `stem` to the `ending` for the given `slot` and apply any phonetic modifications.
-- WARNING: This function is written very carefully; changes to it can easily have unintended consequences.
local function combine_stem_ending(base, slot, prefix, stem, ending, dont_include_prefix)
-- If the stem begins with an acute accent, this is a signal to move the accent onto the last vowel of the prefix.
-- Cf. míngua of minguar.
if stem:find("^" .. AC) then
stem = rsub(stem, "^" .. AC, "")
if dont_include_prefix then
error("Internal error: Can't handle acute accent at beginning of stem if dont_include_prefix is given")
end
prefix = rsub(prefix, "([aeiouyAEIOUY])([^aeiouyAEIOUY]*)$", "%1" .. AC .. "%2")
end
-- Use the full stem for checking for -gui ending and such, because 'stem' is just 'u' for [[arguir]],
-- [[delinquir]].
local full_stem = prefix .. stem
-- Include the prefix in the stem unless dont_include_prefix is given (used for the past participle stem).
if not dont_include_prefix then
stem = full_stem
end
-- If the ending begins with a double asterisk, this is a signal to conditionally delete the accent on the last letter
-- of the stem. "Conditionally" means we don't do it if the last two letters would form a diphthong without the accent
-- on the second one (e.g. in [[sair]], with stem 'saí'); but as an exception, we do delete the accent in stems
-- ending in -guí, -quí (e.g. in [[conseguir]]) because in this case the ui isn't a diphthong.
if ending:find("^%*%*") then
ending = rsub(ending, "^%*%*", "")
if rfind(full_stem, "[gq]uí$") or not rfind(full_stem, V .. "[íú]$") then
stem = com.remove_final_accent(stem)
end
end
-- If the ending begins with an asterisk, this is a signal to delete the accent on the last letter of the stem.
-- E.g. fizé -> fizermos. Unlike for **, this removal is unconditional, so we get e.g. 'sairmos' not #'saírmos'.
if ending:find("^%*") then
ending = rsub(ending, "^%*", "")
stem = com.remove_final_accent(stem)
end
-- If ending begins with i, it must get an accent after an unstressed vowel (in some but not all cases) to prevent
-- the two merging into a diphthong:
-- * cair ->
-- * pres: caímos, caís;
-- * impf: all forms (caí-);
-- * pret: caí (but not caim), caíste (but not caiu), caímos, caístes, caíram;
-- * plup: all forms (caír-);
-- * impf_sub: all forms (caíss-);
-- * fut_sub: caíres, caírem (but not cair, cairmos, cairdes)
-- * pp: caído (but not gerund caindo)
-- * atribuir, other verbs in -uir -> same pattern as for cair etc.
-- * roer ->
-- * pret: roí (but not roim)
-- * impf: all forms (roí-)
-- * pp: roído
-- Don't let variant codes derail the following checks. Note that variant codes are properly added to the end of
-- the ending, so checks against the beginning of the ending work even in their presence, but not checks against
-- the full ending.
local cleaned_ending = export.remove_variant_codes(ending)
if cleaned_ending:find("^i") and full_stem:find("[aeiou]$") and not full_stem:find("[gq]u$") and
not cleaned_ending:find("^i[rum]$") and cleaned_ending ~= "indo" and not cleaned_ending:find("^ir[md]") then
ending = ending:gsub("^i", "í")
end
-- Spelling changes in the stem; it depends on whether the stem given is the pre-front-vowel or
-- pre-back-vowel variant, as indicated by `frontback`. We want these front-back spelling changes to happen
-- between stem and ending, not between prefix and stem; the prefix may not have the same "front/backness"
-- as the stem.
local is_front = rfind(ending, "^[eiéíê]")
if base.frontback == "front" and not is_front then
stem = stem:gsub("c$", "ç") -- conhecer -> conheço, vencer -> venço, descer -> desço
stem = stem:gsub("g$", "j") -- proteger -> protejo, fugir -> fujo
stem = stem:gsub("gu$", "g") -- distinguir -> distingo, conseguir -> consigo
stem = stem:gsub("qu$", "c") -- extorquir -> exturco
stem = stem:gsub("([gq])ü$", "%1u") -- argüir (superseded) -> arguo, delinqüir (superseded) -> delinquo
elseif base.frontback == "back" and is_front then
-- The following changes are all superseded so we don't do them:
-- averiguar -> averigüei, minguar -> mingüei; antiquar -> antiqüei, apropinquar -> apropinqüei
-- stem = stem:gsub("([gq])u$", "%1ü")
stem = stem:gsub("g$", "gu") -- cargar -> carguei, apagar -> apaguei
stem = stem:gsub("c$", "qu") -- marcar -> marquei
stem = stem:gsub("ç$", "c") -- começar -> comecei
-- j does not go to g here; desejar -> deseje not #desege
end
local retval = stem .. ending
if retval:find(GL_TYPE) and retval:find(PT_TYPE) or retval:find(GL_ONLY_TYPE) and not retval:find(GL_TYPE) then
-- Reject clashes in "Galician"-type and "Portuguese"-type forms, e.g. '#vós dixéreis' or '#vós dissérades'.
return nil
end
return retval
end
local function add3(base, slot, stems, endings, footnotes, allow_overrides)
if skip_slot(base, slot, allow_overrides) then
return
end
local function do_combine_stem_ending(stem, ending)
return combine_stem_ending(base, slot, base.prefix, stem, ending)
end
iut.add_forms(base.forms, slot, stems, endings, do_combine_stem_ending, nil, nil, footnotes)
end
local function insert_form(base, slot, form)
if not skip_slot(base, slot) then
iut.insert_form(base.forms, slot, form)
end
end
local function insert_forms(base, slot, forms)
if not skip_slot(base, slot) then
iut.insert_forms(base.forms, slot, forms)
end
end
local function add_single_stem_tense(base, slot_pref, stems, s1, s2, s3, p1, p2, p3)
local function addit(slot, ending)
add3(base, slot_pref .. "_" .. slot, stems, ending)
end
addit("1s", s1)
addit("2s", s2)
addit("3s", s3)
addit("1p", p1)
addit("2p", p2)
addit("3p", p3)
end
local function construct_stems(base, vowel_alt)
local stems = {}
stems.pres_unstressed = base.stems.pres_unstressed or base.inf_stem
stems.pres_stressed =
-- If no_pres_stressed given, pres_stressed stem should be empty so no forms are generated.
base.no_pres_stressed and {} or
base.stems.pres_stressed or
vowel_alt.pres_stressed or
base.inf_stem
stems.pres1_and_sub =
-- If no_pres_stressed given, the entire subjunctive is missing.
base.no_pres_stressed and {} or
-- If no_pres1_and_sub given, pres1 and entire subjunctive are missing.
base.no_pres1_and_sub and {} or
base.stems.pres1_and_sub or
vowel_alt.pres1_and_sub or
nil
stems.pres1 = base.stems.pres1 or stems.pres1_and_sub or stems.pres_stressed
stems.impf = base.stems.impf or base.inf_stem
stems.full_impf = base.stems.full_impf
stems.pret_base = base.stems.pret_base or base.inf_stem
stems.pret_conj = base.stems.pret_conj or base.conj
stems.pret = base.stems.pret or iut.map_forms(iut.convert_to_general_list_form(stems.pret_base),
function(form) return form .. base.conj_vowel end)
stems.gl_short_pret = base.stems.gl_short_pret or iut.map_forms(iut.convert_to_general_list_form(stems.pret),
function(form) return rsub(form, com.V .. "$", "") end)
stems.pt_pret_1s = base.stems.pt_pret_1s
stems.pt_pret_3s = base.stems.pt_pret_3s
stems.fut = base.stems.fut or base.inf_stem .. base.conj
stems.cond = base.stems.cond or stems.fut
stems.pres_sub_stressed = base.stems.pres_sub_stressed or stems.pres1
stems.pres_sub_unstressed = base.stems.pres_sub_unstressed or stems.pres1_and_sub or stems.pres_unstressed
stems.sub_conj = base.stems.sub_conj or base.conj
stems.plup = base.stems.plup or stems.pret
stems.impf_sub = base.stems.impf_sub or stems.pret
stems.fut_sub = base.stems.fut_sub or stems.pret
stems.pers_inf = base.stems.pers_inf or base.inf_stem .. base.conj_vowel
stems.pp = base.stems.pp or base.conj == "ar" and
combine_stem_ending(base, "pp_ms", base.prefix, base.inf_stem, "ado", "dont include prefix") or
-- use combine_stem_ending esp. so we get roído, caído, etc.
combine_stem_ending(base, "pp_ms", base.prefix, base.inf_stem, "ido", "dont include prefix")
stems.pp_ms = stems.pp
local function masc_to_fem(form)
if rfind(form, "o$") then
return rsub(form, "o$", "a")
else
return form
end
end
stems.pp_fs = iut.map_forms(iut.convert_to_general_list_form(stems.pp_ms), masc_to_fem)
if base.stems.short_pp then
stems.short_pp_ms = base.stems.short_pp
stems.short_pp_fs = iut.map_forms(iut.convert_to_general_list_form(stems.short_pp_ms), masc_to_fem)
end
base.this_stems = stems
end
local function add_present_indic(base)
local stems = base.this_stems
local function addit(slot, stems, ending)
add3(base, "pres_" .. slot, stems, ending)
end
local s2, s3, p1, p2, p3
if base.conj == "ar" then
s2, s3, p1, p2, p3 = "as", "a", "amos", {"ades" .. GL_TYPE, "ais" .. PT_TYPE}, "am"
elseif base.conj == "er" or base.conj == "or" then -- verbs in -por have the present overridden
s2, s3, p1, p2, p3 = "es", "e", "emos", {"edes" .. GL_TYPE, "eis" .. PT_TYPE}, "em"
elseif base.conj == "ir" then
s2, s3, p1, p2, p3 = "es", "e", "imos", {"ides" .. GL_TYPE, "is" .. PT_TYPE}, "em"
else
error("Internal error: Unrecognized conjugation " .. base.conj)
end
addit("1s", stems.pres1, "o")
addit("2s", stems.pres_stressed, s2)
addit("3s", stems.pres_stressed, s3)
addit("1p", stems.pres_unstressed, p1)
addit("2p", stems.pres_unstressed, p2)
addit("3p", stems.pres_stressed, p3)
end
local function add_present_subj(base)
local stems = base.this_stems
local function addit(slot, stems, ending)
add3(base, "pres_sub_" .. slot, stems, ending)
end
local s1, s2, s3, p1, p2, p3
if stems.sub_conj == "ar" then
s1, s2, s3, p1, p2, p3 = "e", "es", "e", "emos", {"edes" .. GL_TYPE, "eis" .. PT_TYPE}, "em"
else
s1, s2, s3, p1, p2, p3 = "a", "as", "a", "amos", {"ades" .. GL_TYPE, "ais" .. PT_TYPE}, "am"
end
addit("1s", stems.pres_sub_stressed, s1)
addit("2s", stems.pres_sub_stressed, s2)
addit("3s", stems.pres_sub_stressed, s3)
addit("1p", stems.pres_sub_unstressed, p1)
addit("2p", stems.pres_sub_unstressed, p2)
addit("3p", stems.pres_sub_stressed, p3)
end
local function add_finite_non_present(base)
local stems = base.this_stems
local function add_tense(slot, stem, s1, s2, s3, p1, p2, p3)
add_single_stem_tense(base, slot, stem, s1, s2, s3, p1, p2, p3)
end
-- * at the beginning of the ending means to remove an accent from the last vowel of the imperfect stem.
if stems.full_impf then
add_tense("impf", stems.full_impf, "*a", "*as", "*a", "amos",
{"ades" .. GL_TYPE, "eis" .. PT_TYPE, "ais" .. GL_ALTVAR}, "*am")
elseif base.conj == "ar" then
add_tense("impf", stems.impf, "ava", "avas", "ava", "ávamos",
{"ávades" .. GL_TYPE, "áveis" .. PT_TYPE, "ávais" .. GL_ALTVAR}, "avam")
else
add_tense("impf", stems.impf, "ia", "ias", "ia", "íamos",
{"íades" .. GL_TYPE, "íeis" .. PT_TYPE, "íais" .. GL_ALTVAR}, "iam")
end
-- * at the beginning of the ending means to remove a final accent from the preterite stem.
if stems.pret_conj == "irreg" then
add_tense("pret", stems.gl_short_pret, "em" .. GL_TYPE, nil, "o" .. GL_TYPE)
add_tense("pret", stems.pret, nil, {"*ste", "*che" .. GL_ALTVAR}, nil, "*mos", "*stes",
{"rom" .. GL_TYPE, "*ram" .. PT_TYPE})
add_tense("pret", stems.pt_pret_1s, PT_TYPE)
add_tense("pret", stems.pt_pret_3s, nil, nil, PT_TYPE)
elseif stems.pret_conj == "ar" then
add_tense("pret", stems.pret_base, "ei", {"aste", "ache" .. GL_ALTVAR}, "ou", "amos", "astes",
{"árom" .. GL_TYPE, "aram" .. PT_TYPE})
elseif stems.pret_conj == "er" then
add_tense("pret", stems.pret_base, {"im" .. GL_TYPE, "i" .. PT_TYPE}, {"este", "eche" .. GL_ALTVAR}, "eu",
"emos", "estes", {"êrom" .. GL_TYPE, "eram" .. PT_TYPE})
else
add_tense("pret", stems.pret_base, {"im" .. GL_TYPE, "i" .. PT_TYPE}, {"iste", "iche" .. GL_ALTVAR}, "iu",
"imos", "istes", {"írom" .. GL_TYPE, "iram" .. PT_TYPE})
end
-- * at the beginning of the ending means to remove a final accent from the stem.
-- ** is similar but is "conditional" on a consonant preceding the final vowel.
add_tense("plup", stems.plup, "**ra", "**ras", "**ra", "ramos",
{"rades" .. GL_TYPE, "reis" .. PT_TYPE, "rais" .. GL_ALTVAR}, "**ram")
add_tense("impf_sub", stems.impf_sub, "**sse", "**sses", "**sse", "ssemos",
{"ssedes" .. GL_TYPE, "sseis" .. PT_TYPE}, "**ssem")
add_tense("fut_sub", stems.fut_sub, "*r", "**res", "*r", "*rmos", "*rdes", "**rem")
if base.refl then
local mark = TEMP_MESOCLITIC_INSERTION_POINT
add_tense("fut", stems.fut,
{"ei" .. GL_TYPE, mark .. "ei" .. PT_TYPE}, {"ás" .. GL_TYPE, mark .. "ás" .. PT_TYPE},
{"á" .. GL_TYPE, mark .. "á" .. PT_TYPE}, {"emos" .. GL_TYPE, mark .. "emos" .. PT_TYPE},
{"edes" .. GL_TYPE, mark .. "eis" .. PT_TYPE}, {"ám" .. GL_TYPE, mark .. "ão" .. PT_TYPE}
)
add_tense("cond", stems.cond,
{"ia" .. GL_TYPE, mark .. "ia" .. PT_TYPE}, {"ias" .. GL_TYPE, mark .. "ias" .. PT_TYPE},
{"ia" .. GL_TYPE, mark .. "ia" .. PT_TYPE}, {"íamos" .. GL_TYPE, mark .. "íamos" .. PT_TYPE},
-- FIXME, is GL_ALTVAR correct for the mesoclitic variant of -íais?
{"íades" .. GL_TYPE, mark .. "íeis" .. PT_TYPE, "íais" .. GL_ALTVAR, mark .. "íais" .. GL_ALTVAR},
{"iam" .. GL_TYPE, mark .. "iam" .. PT_TYPE})
else
-- Don't insert forms with the mesoclitic insertion point to avoid duplication in non-reflexive verbs.
add_tense("fut", stems.fut, "ei", "ás", "á", "emos", {"edes" .. GL_TYPE, "eis" .. PT_TYPE},
{"ám" .. GL_TYPE, "ão" .. PT_TYPE})
add_tense("cond", stems.cond, "ia", "ias", "ia", "íamos",
-- FIXME, is GL_ALTVAR correct for the mesoclitic variant of -íais?
{"íades" .. GL_TYPE, "íeis" .. PT_TYPE, "íais" .. GL_ALTVAR}, "iam")
end
-- Different stems for different parts of the personal infinitive to correctly handle forms of [[sair]] and [[pôr]].
add_tense("pers_inf", base.non_prefixed_verb, "", nil, "")
add_tense("pers_inf", stems.pers_inf, nil, "**res", nil, "*rmos", "*rdes", "**rem")
end
local function add_non_finite_forms(base)
local stems = base.this_stems
local function addit(slot, stems, ending, footnotes)
add3(base, slot, stems, ending, footnotes)
end
insert_form(base, "infinitive", {form = base.verb})
-- Also insert "infinitive + reflexive pronoun" combinations if we're handling a reflexive verb. See comment below for
-- "gerund + reflexive pronoun" combinations.
if base.refl then
for _, persnum in ipairs(person_number_list) do
insert_form(base, "infinitive_" .. persnum, {form = base.verb})
end
end
-- verbs in -por have the gerund overridden
local ger_ending = base.conj == "ar" and "ando" or base.conj == "er" and "endo" or "indo"
addit("gerund", stems.pres_unstressed, ger_ending)
-- Also insert "gerund + reflexive pronoun" combinations if we're handling a reflexive verb. We insert exactly the same
-- form as for the bare gerund; later on in add_reflexive_or_fixed_clitic_to_forms(), we add the appropriate clitic
-- pronouns. It's important not to do this for non-reflexive verbs, because in that case, the clitic pronouns won't be
-- added, and {{gl-reinteg-verb form of}} will wrongly consider all these combinations as possible inflections of the bare
-- gerund. Thanks to [[User:JeffDoozan]] for this bug fix.
if base.refl then
for _, persnum in ipairs(person_number_list) do
addit("gerund_" .. persnum, stems.pres_unstressed, ger_ending)
end
end
-- Skip the long/short past participle footnotes if called from {{gl-reinteg-verb}} so they don't show in the headword.
local long_pp_footnotes =
stems.short_pp_ms and base.alternant_multiword_spec.source_template ~= "gl-reinteg-verb" and {long_pp_footnote} or nil
addit("pp_ms", stems.pp_ms, "", long_pp_footnotes)
if not base.pp_inv then
addit("pp_fs", stems.pp_fs, "", long_pp_footnotes)
addit("pp_mp", stems.pp_ms, "s", long_pp_footnotes)
addit("pp_fp", stems.pp_fs, "s", long_pp_footnotes)
end
if stems.short_pp_ms then
local short_pp_footnotes =
stems.short_pp_ms and base.alternant_multiword_spec.source_template ~= "gl-reinteg-verb" and {short_pp_footnote} or nil
addit("short_pp_ms", stems.short_pp_ms, "", short_pp_footnotes)
if not base.pp_inv then
addit("short_pp_fs", stems.short_pp_fs, "", short_pp_footnotes)
addit("short_pp_mp", stems.short_pp_ms, "s", short_pp_footnotes)
addit("short_pp_fp", stems.short_pp_fs, "s", short_pp_footnotes)
end
end
end
local function copy_forms_to_imperatives(base)
-- Copy pres3s to imperative since they are almost always the same.
insert_forms(base, "imp_2s", iut.map_forms(base.forms.pres_3s, function(form) return form end))
if not skip_slot(base, "imp_2p") then
-- Copy pres2p to imperative 2p minus -s since they are almost always the same.
-- But not if there's an override, to avoid possibly throwing an error.
insert_forms(base, "imp_2p", iut.map_forms(base.forms.pres_2p, function(form)
local form_no_s, var_codes = rmatch(form, "^(.*)s(" .. var_code_c .. "*)$")
if not form_no_s then
error("Can't derive second-person plural imperative from second-person plural present indicative " ..
"because form '" .. form .. "' doesn't end in -s")
end
return form_no_s .. var_codes
end))
end
-- Copy subjunctives to imperatives, unless there's an override for the given slot (as with the imp_1p of [[ir]]).
for _, persnum in ipairs({"3s", "1p", "3p"}) do
local from = "pres_sub_" .. persnum
local to = "imp_" .. persnum
insert_forms(base, to, iut.map_forms(base.forms[from], function(form) return form end))
end
end
local function process_slot_overrides(base, filter_slot, reflexive_only)
local overrides = reflexive_only and base.basic_reflexive_only_overrides or base.basic_overrides
for slot, forms in pairs(overrides) do
if not filter_slot or filter_slot(slot) then
add3(base, slot, forms, "", nil, "allow overrides")
end
end
end
-- Prefix `form` with `clitic`, adding fixed text `between` between them. Add links as appropriate unless the user
-- requested no links. Check whether form already has brackets (as will be the case if the form has a fixed clitic).
local function prefix_clitic_to_form(base, clitic, between, form)
if base.alternant_multiword_spec.args.noautolinkverb then
return clitic .. between .. form
else
local clitic_pref = "[[" .. clitic .. "]]" .. between
if form:find("%[%[") then
return clitic_pref .. form
else
return clitic_pref .. "[[" .. form .. "]]"
end
end
end
-- Add the appropriate clitic pronouns in `clitics` to the forms in `base_slot`. `store_cliticized_form` is a function
-- of three arguments (clitic, formobj, cliticized_form) and should store the cliticized form for the specified clitic
-- and form object.
local function suffix_clitic_to_forms(base, base_slot, clitics, store_cliticized_form)
if not base.forms[base_slot] then
-- This can happen, e.g. in only3s/only3sp/only3p verbs.
return
end
local autolink = not base.alternant_multiword_spec.args.noautolinkverb
for _, formobj in ipairs(base.forms[base_slot]) do
for _, clitic in ipairs(clitics) do
local cliticized_form
if formobj.form:find(TEMP_MESOCLITIC_INSERTION_POINT) then
-- mesoclisis in future and conditional
local infinitive, suffix = rmatch(formobj.form, "^(.*)" .. TEMP_MESOCLITIC_INSERTION_POINT .. "(.*)$")
if not infinitive then
error("Internal error: Can't find mesoclitic insertion point in slot '" .. base_slot .. "', form '" ..
formobj.form .. "'")
end
local full_form = infinitive .. suffix
if autolink and not infinitive:find("%[%[") then
infinitive = "[[" .. infinitive .. "]]"
end
cliticized_form =
autolink and infinitive .. "-[[" .. clitic .. "]]-[[" .. full_form .. "|" .. suffix .. "]]" or
infinitive .. "-" .. clitic .. "-" .. suffix
else
local clitic_suffix = autolink and "-[[" .. clitic .. "]]" or "-" .. clitic
local form_needs_link = autolink and not formobj.form:find("%[%[")
if base_slot:find("1p$") then
-- Final -s disappears: arrependíamos + nos -> arrependíamo-nos, etc.
cliticized_form = formobj.form:gsub("s$", "")
if form_needs_link then
cliticized_form = "[[" .. formobj.form .. "|" .. cliticized_form .. "]]"
end
else
cliticized_form = formobj.form
if form_needs_link then
cliticized_form = "[[" .. cliticized_form .. "]]"
end
end
cliticized_form = cliticized_form .. clitic_suffix
end
store_cliticized_form(clitic, formobj, cliticized_form)
end
end
end
-- Add a reflexive pronoun or fixed clitic (FIXME: not working), as appropriate to the base forms that were generated.
-- `do_joined` means to do only the forms where the pronoun is joined to the end of the form; otherwise, do only the
-- forms where it is not joined and precedes the form.
local function add_reflexive_or_fixed_clitic_to_forms(base, do_reflexive, do_joined)
for _, slotaccel in ipairs(base.alternant_multiword_spec.verb_slots_basic) do
local slot, accel = unpack(slotaccel)
local clitic
if not do_reflexive then
clitic = base.clitic
elseif slot:find("[123]") then
local persnum = slot:match("^.*_(.-)$")
clitic = person_number_to_reflexive_pronoun[persnum]
else
clitic = "se"
end
if base.forms[slot] then
if do_reflexive and slot:find("^pp_") or slot == "infinitive_linked" then
-- do nothing with reflexive past participles or with infinitive linked (handled at the end)
elseif slot:find("^neg_imp_") then
error("Internal error: Should not have forms set for negative imperative at this stage")
else
local slot_has_suffixed_clitic = not slot:find("_sub")
-- Maybe generate non-reflexive parts and separated syntactic variants for use in
-- {{gl-reinteg-verb form of}}. See comment in add_slots() above `need_special_verb_form_of_slots`.
-- Check for do_joined so we only run this code once.
if do_reflexive and do_joined and base.alternant_multiword_spec.source_template == "gl-reinteg-verb form of" and
-- Skip personal variants of infinitives and gerunds so we don't think [[arrependendo]] is a
-- non-reflexive equivalent of [[arrependendo-me]].
not slot:find("infinitive_") and not slot:find("gerund_") then
-- Clone the forms because we will be destructively modifying them just below, adding the reflexive
-- pronoun.
insert_forms(base, slot .. "_non_reflexive", mw.clone(base.forms[slot]))
if slot_has_suffixed_clitic then
insert_forms(base, slot .. "_variant", iut.map_forms(base.forms[slot], function(form)
return prefix_clitic_to_form(base, clitic, " ... ", form)
end))
end
end
if slot_has_suffixed_clitic then
if do_joined then
suffix_clitic_to_forms(base, slot, {clitic},
function(clitic, formobj, cliticized_form)
formobj.form = cliticized_form
end
)
end
elseif not do_joined then
-- Add clitic as separate word before all other forms.
for _, form in ipairs(base.forms[slot]) do
form.form = prefix_clitic_to_form(base, clitic, " ", form.form)
end
end
end
end
end
end
local function handle_infinitive_linked(base)
-- Compute linked versions of potential lemma slots, for use in {{gl-reinteg-verb}}.
-- We substitute the original lemma (before removing links) for forms that
-- are the same as the lemma, if the original lemma has links.
for _, slot in ipairs({"infinitive"}) do
insert_forms(base, slot .. "_linked", iut.map_forms(base.forms[slot], function(form)
if form == base.lemma and rfind(base.linked_lemma, "%[%[") then
return base.linked_lemma
else
return form
end
end))
end
end
local function generate_negative_imperatives(base)
-- Copy subjunctives to negative imperatives, preceded by "nom".
for _, persnum in ipairs(neg_imp_person_number_list) do
local from = "pres_sub_" .. persnum
local to = "neg_imp_" .. persnum
insert_forms(base, to, iut.map_forms(base.forms[from], function(form)
if base.alternant_multiword_spec.args.noautolinkverb then
return "nom " .. form
elseif form:find("%[%[") then
-- already linked, e.g. when reflexive
return "[[nom]] " .. form
else
return "[[nom]] [[" .. form .. "]]"
end
end))
end
end
-- Process specs given by the user using 'addnote[SLOTSPEC][FOOTNOTE][FOOTNOTE][...]'.
local function process_addnote_specs(base)
for _, spec in ipairs(base.addnote_specs) do
for _, slot_spec in ipairs(spec.slot_specs) do
slot_spec = "^" .. slot_spec .. "$"
for slot, forms in pairs(base.forms) do
if rfind(slot, slot_spec) then
-- To save on memory, side-effect the existing forms.
for _, form in ipairs(forms) do
form.footnotes = iut.combine_footnotes(form.footnotes, spec.footnotes)
end
end
end
end
end
end
local function add_missing_links_to_forms(base)
-- Any forms without links should get them now. Redundant ones will be stripped later.
for slot, forms in pairs(base.forms) do
for _, form in ipairs(forms) do
if not form.form:find("%[%[") then
form.form = "[[" .. form.form .. "]]"
end
end
end
end
-- Remove special characters added to future and conditional forms to indicate mesoclitic insertion points.
local function remove_mesoclitic_insertion_points(base)
for slot, forms in pairs(base.forms) do
if slot:find("^fut_") or slot:find("^cond_") then
for _, form in ipairs(forms) do
form.form = form.form:gsub(TEMP_MESOCLITIC_INSERTION_POINT, "")
end
end
end
end
-- If called from {{gl-reinteg-verb}}, remove less-recommended variants; otherwise add a footnote indicating they are
-- less recommended, and sort them last.
local function process_altvar_forms(base)
for slot, forms in pairs(base.forms) do
-- As an optimization, check if there are any less-recommended forms and don't do anything if not.
local saw_altvar = false
for _, form in ipairs(forms) do
if form.form:find(ALTVAR) then
saw_altvar = true
break
end
end
if saw_altvar then
if base.alternant_multiword_spec.source_template == "gl-reinteg-verb" then
base.forms[slot] = iut.flatmap_forms(base.forms[slot], function(form)
if form:find(ALTVAR) then
return {}
else
return {form}
end
end)
else
local existing_forms = base.forms[slot]
base.forms[slot] = {}
for _, formobj in ipairs(existing_forms) do
if not formobj.form:find(ALTVAR) then
iut.insert_form(base.forms, slot, formobj)
end
end
for _, formobj in ipairs(existing_forms) do
if formobj.form:find(ALTVAR) then
formobj.footnotes = iut.combine_footnotes(formobj.footnotes, {"[less recommended]"})
iut.insert_form(base.forms, slot, formobj)
end
end
end
end
end
end
local function conjugate_verb(base)
for _, vowel_alt in ipairs(base.vowel_alt_stems) do
construct_stems(base, vowel_alt)
add_present_indic(base)
add_present_subj(base)
end
add_finite_non_present(base)
add_non_finite_forms(base)
-- do non-reflexive non-imperative slot overrides
process_slot_overrides(base, function(slot)
return not slot:find("^imp_") and not slot:find("^neg_imp_")
end)
-- This should happen after process_slot_overrides() in case a derived slot is based on an override
-- (as with the imp_3s of [[dar]], [[estar]]).
copy_forms_to_imperatives(base)
-- do non-reflexive positive imperative slot overrides
process_slot_overrides(base, function(slot)
return slot:find("^imp_")
end)
-- We need to add joined reflexives, then joined and non-joined clitics, then non-joined reflexives, so we get
-- [[arrepende-te]] but [[nom]] [[te]] [[arrependas]].
if base.refl then
add_reflexive_or_fixed_clitic_to_forms(base, "do reflexive", "do joined")
process_slot_overrides(base, nil, "do reflexive") -- do reflexive-only slot overrides
add_reflexive_or_fixed_clitic_to_forms(base, "do reflexive", false)
end
-- This should happen after add_reflexive_or_fixed_clitic_to_forms() so negative imperatives get the reflexive pronoun
-- and clitic in them.
generate_negative_imperatives(base)
-- do non-reflexive negative imperative slot overrides
-- FIXME: What about reflexive negative imperatives?
process_slot_overrides(base, function(slot)
return slot:find("^neg_imp_")
end)
-- This should happen before add_missing_links_to_forms() so that the comparison `form == base.lemma`
-- in handle_infinitive_linked() works correctly and compares unlinked forms to unlinked forms.
handle_infinitive_linked(base)
process_addnote_specs(base)
if not base.alternant_multiword_spec.args.noautolinkverb then
add_missing_links_to_forms(base)
end
remove_mesoclitic_insertion_points(base)
process_altvar_forms(base)
end
local function parse_indicator_spec(angle_bracket_spec)
-- Store the original angle bracket spec so we can reconstruct the overall conj spec with the lemma(s) in them.
local base = {
angle_bracket_spec = angle_bracket_spec,
user_basic_overrides = {},
user_stems = {},
addnote_specs = {},
}
local function parse_err(msg)
error(msg .. ": " .. angle_bracket_spec)
end
local function fetch_footnotes(separated_group)
local footnotes
for j = 2, #separated_group - 1, 2 do
if separated_group[j + 1] ~= "" then
parse_err("Extraneous text after bracketed footnotes: '" .. table.concat(separated_group) .. "'")
end
if not footnotes then
footnotes = {}
end
table.insert(footnotes, separated_group[j])
end
return footnotes
end
local inside = angle_bracket_spec:match("^<(.*)>$")
assert(inside)
if inside == "" then
return base
end
local segments = put.parse_balanced_segment_run(inside, "[", "]")
local dot_separated_groups = put.split_alternating_runs(segments, "%.")
for i, dot_separated_group in ipairs(dot_separated_groups) do
local first_element = dot_separated_group[1]
if first_element == "addnote" then
local spec_and_footnotes = fetch_footnotes(dot_separated_group)
if #spec_and_footnotes < 2 then
parse_err("Spec with 'addnote' should be of the form 'addnote[SLOTSPEC][FOOTNOTE][FOOTNOTE][...]'")
end
local slot_spec = table.remove(spec_and_footnotes, 1)
local slot_spec_inside = rmatch(slot_spec, "^%[(.*)%]$")
if not slot_spec_inside then
parse_err("Internal error: slot_spec " .. slot_spec .. " should be surrounded with brackets")
end
local slot_specs = rsplit(slot_spec_inside, ",")
-- FIXME: Here, [[Module:it-verb]] called strip_spaces(). Generally we don't do this. Should we?
table.insert(base.addnote_specs, {slot_specs = slot_specs, footnotes = spec_and_footnotes})
elseif indicator_flags[first_element] then
if #dot_separated_group > 1 then
parse_err("No footnotes allowed with '" .. first_element .. "' spec")
end
if base[first_element] then
parse_err("Spec '" .. first_element .. "' specified twice")
end
base[first_element] = true
elseif rfind(first_element, ":") then
local colon_separated_groups = put.split_alternating_runs(dot_separated_group, "%s*:%s*")
local first_element = colon_separated_groups[1][1]
if #colon_separated_groups[1] > 1 then
parse_err("Can't attach footnotes directly to '" .. first_element .. "' spec; attach them to the " ..
"colon-separated values following the initial colon")
end
if overridable_stems[first_element] then
if base.user_stems[first_element] then
parse_err("Overridable stem '" .. first_element .. "' specified twice")
end
table.remove(colon_separated_groups, 1)
base.user_stems[first_element] = overridable_stems[first_element](colon_separated_groups,
{prefix = first_element, base = base, parse_err = parse_err, fetch_footnotes = fetch_footnotes})
else -- assume a basic override; we validate further later when the possible slots are available
if base.user_basic_overrides[first_element] then
parse_err("Basic override '" .. first_element .. "' specified twice")
end
table.remove(colon_separated_groups, 1)
base.user_basic_overrides[first_element] = allow_multiple_values(colon_separated_groups,
{prefix = first_element, base = base, parse_err = parse_err, fetch_footnotes = fetch_footnotes})
end
else
local comma_separated_groups = put.split_alternating_runs(dot_separated_group, "%s*,%s*")
for j = 1, #comma_separated_groups do
local alt = comma_separated_groups[j][1]
if not vowel_alternants[alt] then
if #comma_separated_groups == 1 then
parse_err("Unrecognized spec or vowel alternant '" .. alt .. "'")
else
parse_err("Unrecognized vowel alternant '" .. alt .. "'")
end
end
if base.vowel_alt then
for _, existing_alt in ipairs(base.vowel_alt) do
if existing_alt.form == alt then
parse_err("Vowel alternant '" .. alt .. "' specified twice")
end
end
else
base.vowel_alt = {}
end
table.insert(base.vowel_alt, {form = alt, footnotes = fetch_footnotes(comma_separated_groups[j])})
end
end
end
return base
end
-- Normalize all lemmas, substituting the pagename for blank lemmas and adding links to multiword lemmas.
local function normalize_all_lemmas(alternant_multiword_spec, head)
-- (1) Add links to all before and after text. Remember the original text so we can reconstruct the verb spec later.
if not alternant_multiword_spec.args.noautolinktext then
iut.add_links_to_before_and_after_text(alternant_multiword_spec, "remember original")
end
-- (2) Remove any links from the lemma, but remember the original form
-- so we can use it below in the 'lemma_linked' form.
iut.map_word_specs(alternant_multiword_spec, function(base)
if base.lemma == "" then
base.lemma = head
end
base.user_specified_lemma = base.lemma
base.lemma = m_links.remove_links(base.lemma)
local refl_verb = base.lemma
local verb, refl = rmatch(refl_verb, "^(.-)%-(se)$")
if not verb then
verb, refl = refl_verb, nil
end
base.user_specified_verb = verb
base.refl = refl
base.verb = base.user_specified_verb
local linked_lemma
if alternant_multiword_spec.args.noautolinkverb or base.user_specified_lemma:find("%[%[") then
linked_lemma = base.user_specified_lemma
elseif base.refl then
-- Reconstruct the linked lemma with separate links around base verb and reflexive pronoun.
linked_lemma = base.user_specified_verb == base.verb and "[[" .. base.user_specified_verb .. "]]" or
"[[" .. base.verb .. "|" .. base.user_specified_verb .. "]]"
linked_lemma = linked_lemma .. (refl and "-[[" .. refl .. "]]" or "")
else
-- Add links to the lemma so the user doesn't specifically need to, since we preserve
-- links in multiword lemmas and include links in non-lemma forms rather than allowing
-- the entire form to be a link.
linked_lemma = iut.add_links(base.user_specified_lemma)
end
base.linked_lemma = linked_lemma
end)
end
local function detect_indicator_spec(base)
if (base.only3s and 1 or 0) + (base.only3sp and 1 or 0) + (base.only3p and 1 or 0) > 1 then
error("Only one of 'only3s', 'only3sp' and 'only3p' can be specified")
end
base.forms = {}
base.stems = {}
base.basic_overrides = {}
base.basic_reflexive_only_overrides = {}
if not base.no_built_in then
for _, built_in_conj in ipairs(built_in_conjugations) do
if type(built_in_conj.match) == "function" then
base.prefix, base.non_prefixed_verb = built_in_conj.match(base.verb)
elseif built_in_conj.match:find("^%^") and rsub(built_in_conj.match, "^%^", "") == base.verb then
-- begins with ^, for exact match, and matches
base.prefix, base.non_prefixed_verb = "", base.verb
else
base.prefix, base.non_prefixed_verb = rmatch(base.verb, "^(.*)(" .. built_in_conj.match .. ")$")
end
if base.prefix then
-- we found a built-in verb
for stem, forms in pairs(built_in_conj.forms) do
if type(forms) == "function" then
forms = forms(base, base.prefix)
end
if stem:find("^refl_") then
stem = stem:gsub("^refl_", "")
if not base.alternant_multiword_spec.verb_slots_basic_map[stem] then
error("Internal error: setting for 'refl_" .. stem .. "' does not refer to a basic verb slot")
end
base.basic_reflexive_only_overrides[stem] = forms
elseif base.alternant_multiword_spec.verb_slots_basic_map[stem] then
-- an individual form override of a basic form
base.basic_overrides[stem] = forms
else
base.stems[stem] = forms
end
end
break
end
end
end
-- Override built-in-verb stems and overrides with user-specified ones.
for stem, values in pairs(base.user_stems) do
base.stems[stem] = values
end
for override, values in pairs(base.user_basic_overrides) do
if not base.alternant_multiword_spec.verb_slots_basic_map[override] then
error("Unrecognized override '" .. override .. "': " .. base.angle_bracket_spec)
end
base.basic_overrides[override] = values
end
base.prefix = base.prefix or ""
base.non_prefixed_verb = base.non_prefixed_verb or base.verb
local inf_stem, suffix = rmatch(base.non_prefixed_verb, "^(.*)([aeioô]r)$")
if not inf_stem then
error("Unrecognized infinitive: " .. base.verb)
end
base.inf_stem = inf_stem
suffix = suffix == "ôr" and "or" or suffix
base.conj = suffix
base.conj_vowel = suffix == "ar" and "á" or suffix == "ir" and "í" or "ê"
base.frontback = suffix == "ar" and "back" or "front"
if base.stems.vowel_alt then -- built-in verb with specified vowel alternation
if base.vowel_alt then
error(base.verb .. " is a recognized built-in verb, and should not have vowel alternations specified with it")
end
base.vowel_alt = iut.convert_to_general_list_form(base.stems.vowel_alt)
end
-- Propagate built-in-verb indicator flags to `base` and combine with user-specified flags.
for indicator_flag, _ in pairs(indicator_flags) do
base[indicator_flag] = base[indicator_flag] or base.stems[indicator_flag]
end
-- Convert vowel alternation indicators into stems.
local vowel_alt = base.vowel_alt or {{form = "+"}}
base.vowel_alt_stems = apply_vowel_alternations(base.inf_stem, vowel_alt)
for _, vowel_alt_stems in ipairs(base.vowel_alt_stems) do
if vowel_alt_stems.err then
error("To use '" .. vowel_alt_stems.altobj.form .. "', present stem '" .. base.prefix .. base.inf_stem .. "' " ..
vowel_alt_stems.err)
end
end
end
local function detect_all_indicator_specs(alternant_multiword_spec)
-- Propagate some settings up; some are used internally, others by [[Module:gl-headword]].
iut.map_word_specs(alternant_multiword_spec, function(base)
-- Internal indicator flags. Do these before calling detect_indicator_spec() because add_slots() uses them.
for _, prop in ipairs { "refl", "clitic" } do
if base[prop] then
alternant_multiword_spec[prop] = true
end
end
base.alternant_multiword_spec = alternant_multiword_spec
end)
add_slots(alternant_multiword_spec)
alternant_multiword_spec.vowel_alt = {}
iut.map_word_specs(alternant_multiword_spec, function(base)
detect_indicator_spec(base)
-- User-specified indicator flags. Do these after calling detect_indicator_spec() because the latter may set these
-- indicators for built-in verbs.
for prop, _ in pairs(indicator_flags) do
if base[prop] then
alternant_multiword_spec[prop] = true
end
end
-- Vowel alternants. Do these after calling detect_indicator_spec() because the latter sets base.vowel_alt for
-- built-in verbs.
if base.vowel_alt then
for _, altobj in ipairs(base.vowel_alt) do
m_table.insertIfNot(alternant_multiword_spec.vowel_alt, altobj.form)
end
end
end)
end
local function add_categories_and_annotation(alternant_multiword_spec, base, multiword_lemma)
local function insert_ann(anntype, value)
m_table.insertIfNot(alternant_multiword_spec.annotation[anntype], value)
end
local function insert_cat(cat, also_when_multiword)
-- Don't place multiword terms in categories like 'Galician verbs ending in -ar' to avoid spamming the
-- categories with such terms.
if also_when_multiword or not multiword_lemma then
m_table.insertIfNot(alternant_multiword_spec.categories, "Galician " .. cat)
end
end
if check_for_red_links and alternant_multiword_spec.source_template == "gl-reinteg-conj" and multiword_lemma then
for _, slot_and_accel in ipairs(alternant_multiword_spec.all_verb_slots) do
local slot = slot_and_accel[1]
local forms = base.forms[slot]
local must_break = false
if forms then
for _, form in ipairs(forms) do
if not form.form:find("%[%[") then
local title = mw.title.new(form.form)
if title and not title.exists then
insert_cat("verbs with red links in their inflection tables")
must_break = true
break
end
end
end
end
if must_break then
break
end
end
end
if(base.conj == "or") then
insert_cat("verbs ending in -er")
else
insert_cat("verbs ending in -" .. base.conj)
end
if base.irreg then
insert_ann("irreg", "irregular")
insert_cat("irregular verbs")
else
insert_ann("irreg", "regular")
end
if base.only3s then
insert_ann("defective", "impersonal")
insert_cat("impersonal verbs")
elseif base.only3sp then
insert_ann("defective", "third-person only")
insert_cat("third-person-only verbs")
elseif base.only3p then
insert_ann("defective", "third-person plural only")
insert_cat("third-person-plural-only verbs")
elseif base.no_pres_stressed or base.no_pres1_and_sub then
insert_ann("defective", "defective")
insert_cat("defective verbs")
else
insert_ann("defective", "regular")
end
if base.stems.short_pp then
insert_ann("short_pp", "irregular short past participle")
insert_cat("verbs with irregular short past participle")
else
insert_ann("short_pp", "regular")
end
if base.clitic then
insert_cat("verbs with lexical clitics")
end
if base.refl then
insert_cat("reflexive verbs")
end
if base.e_ei_cat then
insert_ann("vowel_alt", "''e'' may become ''ei'' when stressed")
insert_cat("verbs with e becoming ei when stressed")
elseif not base.vowel_alt then
insert_ann("vowel_alt", "non-alternating")
else
for _, alt in ipairs(base.vowel_alt) do
if alt.form == "+" then
insert_ann("vowel_alt", "non-alternating")
else
insert_ann("vowel_alt", vowel_alternant_to_desc[alt.form])
insert_cat("verbs with " .. vowel_alternant_to_cat[alt.form])
end
end
end
local cons_alt = base.stems.cons_alt
if cons_alt == nil then
if base.conj == "ar" then
if base.inf_stem:find("ç$") then
cons_alt = "c-ç"
elseif base.inf_stem:find("c$") then
cons_alt = "c-qu"
elseif base.inf_stem:find("g$") then
cons_alt = "g-gu"
end
else
if base.no_pres_stressed or base.no_pres1_and_sub then
cons_alt = nil -- no e.g. c-ç alternation in this case
elseif base.inf_stem:find("c$") then
cons_alt = "c-ç"
elseif base.inf_stem:find("qu$") then
cons_alt = "c-qu"
elseif base.inf_stem:find("g$") then
cons_alt = "g-j"
elseif base.inf_stem:find("gu$") then
cons_alt = "g-gu"
end
end
end
if cons_alt then
local desc = cons_alt .. " alternation"
insert_ann("cons_alt", desc)
insert_cat("verbs with " .. desc)
else
insert_ann("cons_alt", "non-alternating")
end
end
-- Compute the categories to add the verb to, as well as the annotation to display in the
-- conjugation title bar. We combine the code to do these functions as both categories and
-- title bar contain similar information.
local function compute_categories_and_annotation(alternant_multiword_spec)
alternant_multiword_spec.categories = {}
local ann = {}
alternant_multiword_spec.annotation = ann
ann.irreg = {}
ann.short_pp = {}
ann.defective = {}
ann.vowel_alt = {}
ann.cons_alt = {}
local multiword_lemma = false
for _, form in ipairs(alternant_multiword_spec.forms.infinitive) do
if form.form:find(" ") then
multiword_lemma = true
break
end
end
iut.map_word_specs(alternant_multiword_spec, function(base)
add_categories_and_annotation(alternant_multiword_spec, base, multiword_lemma)
end)
local ann_parts = {}
local irreg = table.concat(ann.irreg, " or ")
if irreg ~= "" and irreg ~= "regular" then
table.insert(ann_parts, irreg)
end
local short_pp = table.concat(ann.short_pp, " or ")
if short_pp ~= "" and short_pp ~= "regular" then
table.insert(ann_parts, short_pp)
end
local defective = table.concat(ann.defective, " or ")
if defective ~= "" and defective ~= "regular" then
table.insert(ann_parts, defective)
end
local vowel_alt = table.concat(ann.vowel_alt, " or ")
if vowel_alt ~= "" and vowel_alt ~= "non-alternating" then
table.insert(ann_parts, vowel_alt)
end
local cons_alt = table.concat(ann.cons_alt, " or ")
if cons_alt ~= "" and cons_alt ~= "non-alternating" then
table.insert(ann_parts, cons_alt)
end
alternant_multiword_spec.annotation = table.concat(ann_parts, "; ")
end
local function show_forms(alternant_multiword_spec)
local lemmas = alternant_multiword_spec.forms.infinitive
alternant_multiword_spec.lemmas = lemmas -- save for later use in make_table()
if alternant_multiword_spec.forms.short_pp_ms then
alternant_multiword_spec.has_short_pp = true
end
local reconstructed_verb_spec = iut.reconstruct_original_spec(alternant_multiword_spec)
local function transform_accel_obj(slot, formobj, accel_obj)
-- No accelerators for negative imperatives, which are always multiword and derived directly from the
-- present subjunctive.
if slot:find("^neg_imp") then
return nil
end
if accel_obj then
if slot:find("^pp_") then
accel_obj.form = slot
elseif slot == "gerund" then
accel_obj.form = "reinteg-gerund-" .. reconstructed_verb_spec
else
accel_obj.form = "reinteg-verb-form-" .. reconstructed_verb_spec
end
end
return accel_obj
end
-- Italicize less-recommended forms.
local function generate_link(data)
local formval_for_link = data.form.formval_for_link
if formval_for_link:find(ALTVAR) then
formval_for_link = formval_for_link:gsub(ALTVAR, "")
return m_links.full_link({lang = lang, term = formval_for_link, tr = "-", accel = data.form.accel_obj},
"term") .. iut.get_footnote_text(data.form.footnotes, data.footnote_obj)
end
end
local props = {
lang = lang,
lemmas = lemmas,
transform_accel_obj = transform_accel_obj,
canonicalize = function(form) return export.remove_variant_codes(form, "keep altvar") end,
generate_link = generate_link,
slot_list = alternant_multiword_spec.verb_slots_basic,
}
iut.show_forms(alternant_multiword_spec.forms, props)
alternant_multiword_spec.footnote_basic = alternant_multiword_spec.forms.footnote
end
local notes_template = [=[
<div class="roa-footnote-outer-div" style="width:100%;">
<div class="roa-footnote-inner-div">
{footnote}
</div></div>
]=]
local basic_table = [=[
{description}<div class="NavFrame">
<div class="NavHead" align=center> การผันรูปแบบปฏิบูรณาการนิยมของ {title} (ดูที่ [[ภาคผนวก:ปฏิบูรณาการนิยม]])</div>
<div class="NavContent" align="left">
{\op}| class="roa-inflection-table" data-toggle-category="inflection"
|-
! class="roa-person-number-header" rowspan="2" |
! class="roa-person-number-header" colspan="3" | เอกพจน์
! class="roa-person-number-header" colspan="3" | พหูพจน์
|-
! class="roa-person-number-header" style="width:12.5%" | บุรุษที่หนึ่ง<br />(<<eu>>)
! class="roa-person-number-header" style="width:12.5%" | บุรุษที่สอง<br />(<<ti>> / <<tu>>)
! class="roa-person-number-header" style="width:12.5%" | บุรุษที่สาม<br />(<<ele>> / <<ela>> / <<você>>)
! class="roa-person-number-header" style="width:12.5%" | บุรุษที่หนึ่ง<br />(<<nós>>)
! class="roa-person-number-header" style="width:12.5%" | บุรุษที่สอง<br />(<<vós>>)
! class="roa-person-number-header" style="width:12.5%" | บุรุษที่สาม<br />(<<eles>> / <<elas>> / <<vocês>>)
|-
! class="roa-nonfinite-header" colspan="7" | ''<span title="infinitivo">รูปกริยากลาง</span>''
|-
! class="roa-nonfinite-header" | '''<span title="infinitivo impessoal">คำอบุรุษกริยา</span>'''
| colspan="6" | {infinitive}
|-
! class="roa-nonfinite-header" | '''<span title="infinitivo flexionado">คำบุรุษกริยา</span>'''
| {pers_inf_1s}
| {pers_inf_2s}
| {pers_inf_3s}
| {pers_inf_1p}
| {pers_inf_2p}
| {pers_inf_3p}
|-
! class="roa-nonfinite-header" colspan="7" | ''<span title="gerúndio">รูปกริยาเป็นนาม</span>''
|-
| class="roa-nonfinite-header" |
| colspan="6" | {gerund}
|-{pp_clause}
! class="roa-indicative-left-rail" colspan="7" | ''<span title="indicativo">มาลาบอกเล่า</span>''
|-
! class="roa-indicative-left-rail" | <span title="presente">ปัจจุบันกาล</span>
| {pres_1s}
| {pres_2s}
| {pres_3s}
| {pres_1p}
| {pres_2p}
| {pres_3p}
|-
! class="roa-indicative-left-rail" | <span title="pretérito imperfeito">ไม่สมบูรณ์</span>
| {impf_1s}
| {impf_2s}
| {impf_3s}
| {impf_1p}
| {impf_2p}
| {impf_3p}
|-
! class="roa-indicative-left-rail" | <span title="pretérito perfeito">อดีตกาลสิ้นสุด (สมบูรณ์)</span>
| {pret_1s}
| {pret_2s}
| {pret_3s}
| {pret_1p}
| {pret_2p}
| {pret_3p}
|-
! class="roa-indicative-left-rail" | <span title="pretérito mais-que-perfeito simples">อภิสมบูรณ์</span>
| {plup_1s}
| {plup_2s}
| {plup_3s}
| {plup_1p}
| {plup_2p}
| {plup_3p}
|-
! class="roa-indicative-left-rail" | <span title="futuro do presente">อนาคตกาล</span>
| {fut_1s}
| {fut_2s}
| {fut_3s}
| {fut_1p}
| {fut_2p}
| {fut_3p}
|-
! class="roa-indicative-left-rail" | <span title="condicional">มาลาเงื่อนไข</span>
| {cond_1s}
| {cond_2s}
| {cond_3s}
| {cond_1p}
| {cond_2p}
| {cond_3p}
|-
! class="roa-subjunctive-left-rail" colspan="7" | ''<span title="conjuntivo">มาลาสมมุติ</span>''
|-
! class="roa-subjunctive-left-rail" | <span title=" presente do conjuntivo">ปัจจุบันกาล</span>
| {pres_sub_1s}
| {pres_sub_2s}
| {pres_sub_3s}
| {pres_sub_1p}
| {pres_sub_2p}
| {pres_sub_3p}
|-
! class="roa-subjunctive-left-rail" | <span title="pretérito imperfeito do conjuntivo">ไม่สมบูรณ์</span>
| {impf_sub_1s}
| {impf_sub_2s}
| {impf_sub_3s}
| {impf_sub_1p}
| {impf_sub_2p}
| {impf_sub_3p}
|-
! class="roa-subjunctive-left-rail" | <span title="futuro do conjuntivo">อนาคตกาล</span>
| {fut_sub_1s}
| {fut_sub_2s}
| {fut_sub_3s}
| {fut_sub_1p}
| {fut_sub_2p}
| {fut_sub_3p}
|-
! class="roa-imperative-left-rail" colspan="7" | ''<span title="imperativo">มาลาสั่ง</span>''
|-
! class="roa-imperative-left-rail" | <span title="imperativo afirmativo">เชิงยืนยัน</span>
| rowspan="2" |
| {imp_2s}
| {imp_3s}
| {imp_1p}
| {imp_2p}
| {imp_3p}
|-
! class="roa-imperative-left-rail" | <span title="imperativo negativo">เชิงปฏิเสธ</span> (<<nom>>)
| {neg_imp_2s}
| {neg_imp_3s}
| {neg_imp_1p}
| {neg_imp_2p}
| {neg_imp_3p}
|{\cl}{notes_clause}</div></div>
]=]
local double_pp_template = [=[
! class="roa-nonfinite-header" colspan="7" | ''<span title="particípio irregular">รูปกริยาขยายอดีตกาลสั้น</span>''
|-
! class="roa-nonfinite-header" | เพศชาย
| colspan="3" | {short_pp_ms}
| colspan="3" | {short_pp_mp}
|-
! class="roa-nonfinite-header" | เพศหญิง
| colspan="3" | {short_pp_fs}
| colspan="3" | {short_pp_fp}
|-
! class="roa-nonfinite-header" colspan="7" | ''<span title="particípio regular">รูปกริยาขยายอดีตกาลยาว</span>''
|-
! class="roa-nonfinite-header" | เพศชาย
| colspan="3" | {pp_ms}
| colspan="3" | {pp_mp}
|-
! class="roa-nonfinite-header" | เพศหญิง
| colspan="3" | {pp_fs}
| colspan="3" | {pp_fp}
|-]=]
local single_pp_template = [=[
! class="roa-nonfinite-header" colspan="7" | ''<span title="particípio passado">รูปกริยาขยายอดีตกาล</span>''
|-
! class="roa-nonfinite-header" | เพศชาย
| colspan="3" | {pp_ms}
| colspan="3" | {pp_mp}
|-
! class="roa-nonfinite-header" | เพศหญิง
| colspan="3" | {pp_fs}
| colspan="3" | {pp_fp}
|-]=]
local function make_table(alternant_multiword_spec)
local forms = alternant_multiword_spec.forms
forms.title = link_term(alternant_multiword_spec.lemmas[1].form)
if alternant_multiword_spec.annotation ~= "" then
forms.title = forms.title .. " (" .. alternant_multiword_spec.annotation .. ")"
end
forms.description = ""
-- Format the table.
forms.footnote = alternant_multiword_spec.footnote_basic
forms.notes_clause = forms.footnote ~= "" and m_string_utilities.format(notes_template, forms) or ""
-- has_short_pp is computed in show_forms().
local pp_template = alternant_multiword_spec.has_short_pp and double_pp_template or single_pp_template
forms.pp_clause = m_string_utilities.format(pp_template, forms)
local table_with_pronouns = rsub(basic_table, "<<(.-)>>", link_term)
return require("Module:TemplateStyles")("Module:roa-verb/style.css") .. m_string_utilities.format(table_with_pronouns, forms)
end
-- Externally callable function to parse and conjugate a verb given user-specified arguments.
-- Return value is WORD_SPEC, an object where the conjugated forms are in `WORD_SPEC.forms`
-- for each slot. If there are no values for a slot, the slot key will be missing. The value
-- for a given slot is a list of objects {form=FORM, footnotes=FOOTNOTES}.
function export.do_generate_forms(args, source_template, headword_head)
local PAGENAME = mw.loadData("Module:headword/data").pagename
local function in_template_space()
return mw.title.getCurrentTitle().nsText == "แม่แบบ"
end
-- Determine the verb spec we're being asked to generate the conjugation of. This may be taken from the
-- current page title or the value of |pagename=; but not when called from {{gl-reinteg-verb form of}}, where the
-- page title is a non-lemma form. Note that the verb spec may omit the infinitive; e.g. it may be "<i-e>".
-- For this reason, we use the value of `pagename` computed here down below, when calling normalize_all_lemmas().
local pagename = source_template ~= "gl-reinteg-verb form of" and args.pagename or PAGENAME
local head = headword_head or pagename
local arg1 = args[1]
if not arg1 then
if (pagename == "gl-reinteg-conj" or pagename == "gl-reinteg-verb") and in_template_space() then
arg1 = "traguer"
elseif pagename == "gl-reinteg-verb form of" and in_template_space() then
arg1 = "amar"
else
arg1 = "<>"
end
end
-- When called from {{gl-reinteg-verb form of}}, determine the non-lemma form whose inflections we're being asked to
-- determine. This normally comes from the page title or the value of |pagename=.
local verb_form_of_form
if source_template == "gl-reinteg-verb form of" then
verb_form_of_form = args.pagename
if not verb_form_of_form then
if PAGENAME == "gl-reinteg-verb form of" and in_template_space() then
verb_form_of_form = "ame"
else
verb_form_of_form = PAGENAME
end
end
end
local incorporated_headword_head_into_lemma = false
if arg1:find("^<.*>$") then -- missing lemma
if head:find(" ") then
-- If multiword lemma, try to add arg spec after the first word.
-- Try to preserve the brackets in the part after the verb, but don't do it
-- if there aren't the same number of left and right brackets in the verb
-- (which means the verb was linked as part of a larger expression).
local refl_clitic_verb, post = rmatch(head, "^(.-)( .*)$")
local left_brackets = rsub(refl_clitic_verb, "[^%[]", "")
local right_brackets = rsub(refl_clitic_verb, "[^%]]", "")
if #left_brackets == #right_brackets then
arg1 = iut.remove_redundant_links(refl_clitic_verb) .. arg1 .. post
incorporated_headword_head_into_lemma = true
else
-- Try again using the form without links.
local linkless_head = m_links.remove_links(head)
if linkless_head:find(" ") then
refl_clitic_verb, post = rmatch(linkless_head, "^(.-)( .*)$")
arg1 = refl_clitic_verb .. arg1 .. post
else
error("Unable to incorporate <...> spec into explicit head due to a multiword linked verb or " ..
"unbalanced brackets; please include <> explicitly: " .. arg1)
end
end
else
-- Will be incorporated through `head` below in the call to normalize_all_lemmas().
incorporated_headword_head_into_lemma = true
end
end
local function split_bracketed_runs_into_words(bracketed_runs)
return put.split_alternating_runs(bracketed_runs, " ", "preserve splitchar")
end
local parse_props = {
parse_indicator_spec = parse_indicator_spec,
-- Split words only on spaces, not on hyphens, because that messes up reflexive verb parsing.
split_bracketed_runs_into_words = split_bracketed_runs_into_words,
allow_default_indicator = true,
allow_blank_lemma = true,
}
local alternant_multiword_spec = iut.parse_inflected_text(arg1, parse_props)
alternant_multiword_spec.pos = pos or "verbs"
alternant_multiword_spec.args = args
alternant_multiword_spec.source_template = source_template
alternant_multiword_spec.verb_form_of_form = verb_form_of_form
alternant_multiword_spec.incorporated_headword_head_into_lemma = incorporated_headword_head_into_lemma
normalize_all_lemmas(alternant_multiword_spec, head)
detect_all_indicator_specs(alternant_multiword_spec)
local inflect_props = {
slot_list = alternant_multiword_spec.all_verb_slots,
inflect_word_spec = conjugate_verb,
get_variants = function(form) return rsub(form, not_var_code_c, "") end,
-- We add links around the generated verbal forms rather than allow the entire multiword
-- expression to be a link, so ensure that user-specified links get included as well.
include_user_specified_links = true,
}
iut.inflect_multiword_or_alternant_multiword_spec(alternant_multiword_spec, inflect_props)
-- Remove redundant brackets around entire forms.
for slot, forms in pairs(alternant_multiword_spec.forms) do
for _, form in ipairs(forms) do
form.form = iut.remove_redundant_links(form.form)
end
end
compute_categories_and_annotation(alternant_multiword_spec)
if args.json and source_template == "gl-reinteg-conj" then
-- Remove variant codes to avoid causing problems with bots.
for slot, forms in pairs(alternant_multiword_spec.forms) do
for _, form in ipairs(forms) do
form.form = export.remove_variant_codes(form.form)
end
end
return require("Module:JSON").toJSON(alternant_multiword_spec.forms)
end
return alternant_multiword_spec
end
-- Entry point for {{gl-reinteg-conj}}. Template-callable function to parse and conjugate a verb given
-- user-specified arguments and generate a displayable table of the conjugated forms.
function export.show(frame)
local parent_args = frame:getParent().args
local params = {
[1] = {},
["noautolinktext"] = {type = "boolean"},
["noautolinkverb"] = {type = "boolean"},
["pagename"] = {}, -- for testing/documentation pages
["json"] = {type = "boolean"}, -- for bot use
}
local args = require("Module:parameters").process(parent_args, params)
local alternant_multiword_spec = export.do_generate_forms(parent_args, "gl-reinteg-conj")
if type(alternant_multiword_spec) == "string" then
-- JSON return value
return alternant_multiword_spec
end
show_forms(alternant_multiword_spec)
return make_table(alternant_multiword_spec) ..
require("Module:utilities").format_categories(alternant_multiword_spec.categories, lang, nil, nil, force_cat)
end
return export
ig0ejnnf4j3stmewud75e2vedpghjpb
5758935
5758926
2026-08-24T12:28:43Z
Octahedron80
267
5758935
Scribunto
text/plain
--[=[
This module implements {{gl-reinteg-conj}} and provides the underlying conjugation functions for {{gl-reinteg-verb}},
as well as for {{gl-verb}} when invoked with |reinteg=1. The actual formatting of both {{gl-reinteg-verb}} and
{{gl-verb}} happens in [[Module:gl-headword]]. This module uses the [[Appendix:Reintegrationism|reintegrationist]] norm
for Galician spelling. See also [[Module:gl-verb]], which implements the standard norm.
Authorship: Ben Wing <benwing2>, MedK <medk1>
]=]
local export = {}
--[=[
TERMINOLOGY:
-- "slot" = A particular combination of tense/mood/person/number/etc.
Example slot names for verbs are "pres_1s" (present indicative first-person singular), "pres_sub_2s" (present
subjunctive second-person singular) "impf_sub_3p" (imperfect subjunctive third-person plural).
Each slot is filled with zero or more forms.
-- "form" = The conjugated Galician form representing the value of a given slot.
-- "lemma" = The dictionary form of a given Galician term. For Galician, always the infinitive.
]=]
--[=[
FIXME:
--]=]
local lang = require("Module:languages").getByCode("gl")
local m_string_utilities = require("Module:string utilities")
local m_links = require("Module:links")
local m_table = require("Module:table")
local iut = require("Module:inflection utilities")
local put = require("Module:parse utilities")
local com = require("Module:gl-reinteg-common")
local force_cat = false -- set to true for debugging
local check_for_red_links = false -- set to false for debugging
local rfind = mw.ustring.find
local rmatch = mw.ustring.match
local rsplit = mw.text.split
local rsub = com.rsub
local u = mw.ustring.char
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
local function link_term(term)
return m_links.full_link({ lang = lang, term = term }, "term")
end
local V = com.V -- vowel regex class
local AV = com.AV -- accented vowel regex class
local C = com.C -- consonant regex class
local AC = u(0x0301) -- acute = ́
local TEMPC1 = u(0xFFF1) -- temporary character used for consonant substitutions
local TEMP_MESOCLITIC_INSERTION_POINT = u(0xFFF2) -- temporary character used to mark the mesoclitic insertion point
-- Variant codes and the like.
-- NOTE: These codes should be *PREFIXED* onto stems and *SUFFIXED* onto endings. That way they won't interfere in the
-- operation of combine_stem_ending().
--
-- GL_TYPE = "Galician-type", PT_TYPE = "Portuguese-type". GL_TYPE stems cannot combine with PT_TYPE endings and
-- vice-versa. GL_ONLY_TYPE = "Galician-only type"; GL_ONLY_TYPE stems can only combine with endings specifically
-- marked as GL_TYPE.
local GL_TYPE = u(0xFFF3)
local GL_ONLY_TYPE = u(0xFFF4)
local PT_TYPE = u(0xFFF5)
-- ALTVAR = Less-recommended variants listed at the bottom of the Estraviz conjugation tables rather than in the main
-- table. We list these in the main table but with a footnote indicating they are less-recommended alternatives, and
-- italicize them to visually set them apart.
local ALTVAR = u(0xFFF6)
local GL_ALTVAR = GL_TYPE .. ALTVAR
local GL_ONLY_ALTVAR = GL_ONLY_TYPE .. ALTVAR
local var_codes_no_altvar = GL_TYPE .. GL_ONLY_TYPE .. PT_TYPE
local all_var_codes = var_codes_no_altvar .. ALTVAR
local var_code_c = "[" .. all_var_codes .. "]"
local var_code_no_altvar_c = "[" .. var_codes_no_altvar .. "]"
local not_var_code_c = "[^" .. all_var_codes .. "]"
-- Export variant codes for use in [[Module:pt-gl-inflections]].
export.GL_TYPE = GL_TYPE
export.GL_ONLY_TYPE = GL_ONLY_TYPE
export.PT_TYPE = PT_TYPE
export.ALTVAR = ALTVAR
local short_pp_footnote = "[usually used with auxiliary verbs " .. link_term("ser") .. " and " .. link_term("estar") .. "]"
local long_pp_footnote = "[usually used with auxiliary verbs " .. link_term("haver") .. " and " .. link_term("ter") .. "]"
--[=[
Vowel alternations:
<i-e>: 'i' in pres1s and the whole present subjunctive; 'e' elsewhere when stressed. Generally 'e' otherwise when
unstressed. E.g. [[sentir]], [[conseguir]] (the latter additionally with 'gu-g' alternation).
<u-o>: 'u' in pres1s and the whole present subjunctive; 'o' elsewhere when stressed. Either 'o' or 'u' otherwise when
unstressed. E.g. [[dormir]], [[subir]].
<i>: 'i' whenever stressed (in the present singular and third plural) and throughout the whole present subjunctive.
Otherwise 'e'. E.g. [[progredir]], [[premir]].
<u>: 'u' whenever stressed (in the present singular and third plural) and throughout the whole present subjunctive.
Otherwise 'o'. E.g. [[polir]], [[extorquir]] (the latter also <u-o>).
<í>: The last 'i' of the stem (excluding stem-final 'i') becomes 'í' when stressed. E.g.:
* [[proibir]] ('proíbo, proíbe(s), proíbem, proíba(s), proíbam')
* [[faiscar]] ('faísco, faísca(s), faíscam, faísque(s), faísquem' also with 'c-qu' alternation)
* [[homogeneizar]] ('homogeneízo', etc.)
* [[mobiliar]] ('mobílio', etc.; note here the final -i is ignored when determining which vowel to stress)
* [[tuitar]] ('tuíto', etc.)
<ú>: The last 'u' of the stem (excluding stem-final 'u') becomes 'ú' when stressed. E.g.:
* [[reunir]] ('reúno, reúne(s), reúnem, reúna(s), reúnam')
* [[esmiuçar]] ('esmiúço, esmiúça(s), esmiúça, esmiúce(s), esmiúcem' also with 'ç-c' alternation)
* [[reusar]] ('reúso, reúsa(s), reúsa, reúse(s), reúsem')
* [[saudar]] ('saúdo, saúda(s), saúda, saúde(s), saúdem')
]=]
local vowel_alternants = m_table.listToSet({"i-e", "i", "í", "u-o", "u", "ú", "ei", "+"})
local vowel_alternant_to_desc = {
["i-e"] = "''i-e'' alternation in present singular",
["i"] = "''e'' becomes ''i'' when stressed",
["í"] = "''i'' becomes ''í'' when stressed",
["u-o"] = "''u-o'' alternation in present singular",
["u"] = "''o'' becomes ''u'' when stressed",
["ú"] = "''u'' becomes ''ú'' when stressed",
["ei"] = "''i'' becomes ''ei'' when stressed",
}
local vowel_alternant_to_cat = {
["i-e"] = "i-e alternation in present singular",
["i"] = "e becoming i when stressed",
["í"] = "i becoming í when stressed",
["u-o"] = "u-o alternation in present singular",
["u"] = "o becoming u when stressed",
["ú"] = "u becoming ú when stressed",
["ei"] = "i becoming ei when stressed",
}
local all_persons_numbers = {
["1s"] = "1|s",
["2s"] = "2|s",
["3s"] = "3|s",
["1p"] = "1|p",
["2p"] = "2|p",
["3p"] = "3|p",
}
local person_number_list = {"1s", "2s", "3s", "1p", "2p", "3p"}
local imp_person_number_list = {"2s", "3s", "1p", "2p", "3p"}
local neg_imp_person_number_list = {"2s", "3s", "1p", "2p", "3p"}
person_number_to_reflexive_pronoun = {
["1s"] = "me",
["2s"] = "te",
["3s"] = "se",
["1p"] = "nos",
["2p"] = "vos",
["3p"] = "se",
}
local indicator_flags = m_table.listToSet {
"no_pres_stressed", "no_pres1_and_sub",
"only3s", "only3sp", "only3p",
"pp_inv", "irreg", "no_built_in", "e_ei_cat",
}
-- Remove any variant codes e.g. GL_TYPE, PT_TYPE, ALTVAR. Needs to be called from [[Module:gl-reinteg-headword]] on the
-- output of do_generate_forms(). `keep_altvar` leaves ALTVAR; used in the `canonicalize` function of show_forms()
-- because we then process and remove it in `generate_forms`. FIXME: Use metadata for this once it's supported in
-- [[Module:inflection utilities]].
function export.remove_variant_codes(form, keep_altvar)
return rsub(form, keep_altvar and var_code_no_altvar_c or var_code_c, "")
end
-- Initialize all the slots for which we generate forms.
local function add_slots(alternant_multiword_spec)
-- "Basic" slots: All slots that go into the regular table (not the reflexive form-of table).
alternant_multiword_spec.verb_slots_basic = {
{"infinitive", "inf"},
{"infinitive_linked", "inf"},
{"gerund", "ger"},
{"short_pp_ms", "short|m|s|past|part"},
{"short_pp_fs", "short|f|s|past|part"},
{"short_pp_mp", "short|m|p|past|part"},
{"short_pp_fp", "short|f|p|past|part"},
{"pp_ms", "m|s|past|part"},
{"pp_fs", "f|s|past|part"},
{"pp_mp", "m|p|past|part"},
{"pp_fp", "f|p|past|part"},
}
-- Special slots used to handle non-reflexive parts of reflexive verbs in {{gl-reinteg-verb form of}}. For example,
-- for a reflexive-only verb like [[arrepender-se]], we want to be able to use {{gl-reinteg-verb form of}} on
-- [[arrependa]] (which should mention that it is a part of 'me arrependa', first-person singular present
-- subjunctive, and 'se arrependa', third-person singular present subjunctive) or on [[arrependemos]] (which should
-- mention that it is a part of 'arrependemo-nos', first-person plural present indicative or preterite). Similarly,
-- we want to use {{gl-reinteg-verb form of}} on [[arrependendo]] (which should mention that it is a part of
-- 'se ... arrependendo', syntactic variant of [[arrependendo-se]], which is the gerund of [[arrepender-se]]). To
-- do this, we need to be able to map non-reflexive parts like [[arrependa]], [[arrependemos]], [[arrependendo]],
-- etc. to their reflexive equivalent(s), to the tag(s) of the equivalent(s), and, in the case of forms like
-- [[arrependendo]], [[arrepender]] and imperatives, to the separated syntactic variant of the verb+clitic
-- combination. We do this by creating slots for the non-reflexive part equivalent of each basic reflexive slot,
-- and for the separated syntactic-variant equivalent of each basic reflexive slot that is formed of verb+clitic.
-- We use slots in this way to deal with multiword lemmas. Note that we run into difficulties mapping between
-- reflexive verbs, non-reflexive part equivalents, and separated syntactic variants if a slot contains more than
-- one form. To handle this, if there are the same number of forms in two slots we're trying to match up, we assume
-- the forms match one-to-one; otherwise we don't match up the two slots (which means {{gl-reinteg-verb form of}} won't
-- work in this case, but such a case is extremely rare and not worth worrying about). Alternatives that handle
-- this "properly" are significantly more complicated and require non-trivial modifications to
-- [[Module:inflection utilities]].
local need_special_verb_form_of_slots = alternant_multiword_spec.source_template == "gl-reinteg-verb form of" and
alternant_multiword_spec.refl
if need_special_verb_form_of_slots then
alternant_multiword_spec.verb_slots_reflexive_verb_form_of = {
{"infinitive_non_reflexive", "-"},
{"infinitive_variant", "-"},
{"gerund_non_reflexive", "-"},
{"gerund_variant", "-"},
}
else
alternant_multiword_spec.verb_slots_reflexive_verb_form_of = {}
end
-- Add entries for a slot with person/number variants.
-- `verb_slots` is the table to add to.
-- `slot_prefix` is the prefix of the slot, typically specifying the tense/aspect.
-- `tag_suffix` is a string listing the set of inflection tags to add after the person/number tags.
-- `person_number_list` is a list of the person/number slot suffixes to add to `slot_prefix`.
local function add_personal_slot(verb_slots, slot_prefix, tag_suffix, person_number_list)
for _, persnum in ipairs(person_number_list) do
local persnum_tag = all_persons_numbers[persnum]
local slot = slot_prefix .. "_" .. persnum
local accel = persnum_tag .. "|" .. tag_suffix
table.insert(verb_slots, {slot, accel})
end
end
-- Add a personal slot (i.e. a slot with person/number variants) to `verb_slots_basic`.
local function add_basic_personal_slot(slot_prefix, tag_suffix, person_number_list, no_special_verb_form_of_slot)
add_personal_slot(alternant_multiword_spec.verb_slots_basic, slot_prefix, tag_suffix, person_number_list)
-- Add special slots for handling non-reflexive parts of reflexive verbs in {{gl-reinteg-verb form of}}.
-- See comment above in `need_special_verb_form_of_slots`.
if need_special_verb_form_of_slots and not no_special_verb_form_of_slot then
for _, persnum in ipairs(person_number_list) do
local persnum_tag = all_persons_numbers[persnum]
local basic_slot = slot_prefix .. "_" .. persnum
local accel = persnum_tag .. "|" .. tag_suffix
table.insert(alternant_multiword_spec.verb_slots_reflexive_verb_form_of, {basic_slot .. "_non_reflexive", "-"})
end
end
end
add_basic_personal_slot("pres", "pres|ind", person_number_list)
add_basic_personal_slot("impf", "impf|ind", person_number_list)
add_basic_personal_slot("pret", "pret|ind", person_number_list)
add_basic_personal_slot("plup", "plup|ind", person_number_list)
add_basic_personal_slot("fut", "fut|ind", person_number_list)
add_basic_personal_slot("cond", "cond", person_number_list)
add_basic_personal_slot("pres_sub", "pres|sub", person_number_list)
add_basic_personal_slot("impf_sub", "impf|sub", person_number_list)
add_basic_personal_slot("fut_sub", "fut|sub", person_number_list)
add_basic_personal_slot("imp", "imp", imp_person_number_list)
add_basic_personal_slot("pers_inf", "pers|inf", person_number_list)
-- Don't need special non-reflexive-part slots because the negative imperative is multiword, of which the
-- individual words are 'nom' + subjunctive.
add_basic_personal_slot("neg_imp", "neg|imp", neg_imp_person_number_list, "no special verb form of")
-- Don't need special non-reflexive-part slots because we don't want [[arrependendo]] mapping to [[arrependendo-me]]
-- (only [[arrependendo-se]]) or [[arrepender]] mapping to [[arrepender-me]] (only [[arrepender-se]]).
add_basic_personal_slot("infinitive", "inf", person_number_list, "no special verb form of")
add_basic_personal_slot("gerund", "ger", person_number_list, "no special verb form of")
-- Generate the list of all slots.
alternant_multiword_spec.all_verb_slots = {}
for _, slot_and_accel in ipairs(alternant_multiword_spec.verb_slots_basic) do
table.insert(alternant_multiword_spec.all_verb_slots, slot_and_accel)
end
for _, slot_and_accel in ipairs(alternant_multiword_spec.verb_slots_reflexive_verb_form_of) do
table.insert(alternant_multiword_spec.all_verb_slots, slot_and_accel)
end
alternant_multiword_spec.verb_slots_basic_map = {}
for _, slotaccel in ipairs(alternant_multiword_spec.verb_slots_basic) do
local slot, accel = unpack(slotaccel)
alternant_multiword_spec.verb_slots_basic_map[slot] = accel
end
end
local overridable_stems = {}
local function allow_multiple_values(separated_groups, data)
local retvals = {}
for _, separated_group in ipairs(separated_groups) do
local footnotes = data.fetch_footnotes(separated_group)
local retval = {form = separated_group[1], footnotes = footnotes}
table.insert(retvals, retval)
end
return retvals
end
local function simple_choice(choices)
return function(separated_groups, data)
if #separated_groups > 1 then
data.parse_err("For spec '" .. data.prefix .. ":', only one value currently allowed")
end
if #separated_groups[1] > 1 then
data.parse_err("For spec '" .. data.prefix .. ":', no footnotes currently allowed")
end
local choice = separated_groups[1][1]
if not m_table.contains(choices, choice) then
data.parse_err("For spec '" .. data.prefix .. ":', saw value '" .. choice .. "' but expected one of '" ..
table.concat(choices, ",") .. "'")
end
return choice
end
end
for _, overridable_stem in ipairs {
"pres_unstressed",
"pres_stressed",
"pres1_and_sub",
-- Don't include pres1; use pres_1s if you need to override just that form
"impf",
"full_impf",
{"pret_conj", simple_choice({"irreg", "ar", "er", "ir"}) },
"pret_base",
"pret",
"gl_short_pret",
"pt_pret_1s",
"pt_pret_3s",
"fut",
"cond",
"pres_sub_stressed",
"pres_sub_unstressed",
{"sub_conj", simple_choice({"ar", "er"}) },
"plup",
"impf_sub",
"fut_sub",
"pers_inf",
"pp",
"short_pp",
} do
if type(overridable_stem) == "string" then
overridable_stems[overridable_stem] = allow_multiple_values
else
local stem, validator = unpack(overridable_stem)
overridable_stems[stem] = validator
end
end
-- Useful as the value of the `match` property of a built-in verb. `main_verb_spec` is a Lua pattern that should match
-- the non-prefixed part of a verb, and `prefix_specs` is a list of Lua patterns that should match the prefixed part of
-- a verb. If a prefix spec is preceded by ^, it must match exactly at the beginning of the verb; otherwise, additional
-- prefixes (e.g. re-, des-) may precede. Return the prefix and main verb.
local function match_against_verbs(main_verb_spec, prefix_specs)
return function(verb)
for _, prefix_spec in ipairs(prefix_specs) do
if prefix_spec:find("^%^") then
-- must match exactly
prefix_spec = prefix_spec:gsub("^%^", "")
if prefix_spec == "" then
-- We can't use the second branch of the if-else statement because an empty () returns the current position
-- in rmatch().
local main_verb = rmatch(verb, "^(" .. main_verb_spec .. ")$")
if main_verb then
return "", main_verb
end
else
local prefix, main_verb = rmatch(verb, "^(" .. prefix_spec .. ")(" .. main_verb_spec .. ")$")
if prefix then
return prefix, main_verb
end
end
else
local prefix, main_verb = rmatch(verb, "^(.*" .. prefix_spec .. ")(" .. main_verb_spec .. ")$")
if prefix then
return prefix, main_verb
end
end
end
return nil
end
end
--[=[
Built-in (usually irregular) conjugations.
Each entry is processed in turn and consists of an object with two fields:
1. match=: Specifies the built-in verbs that match this object.
2. forms=: Specifies the built-in stems and forms for these verbs.
The value of match= is either a string beginning with "^" (match only the specified verb), a string not beginning
with "^" (match any verb ending in that string), or a function that is passed in the verb and should return the prefix
of the verb if it matches, otherwise nil. The function match_against_verbs() is provided to facilitate matching a set
of verbs with a common ending and specific prefixes (e.g. [[ter]] and [[ater]] but not [[abater]], etc.).
The value of forms= is a table specifying stems and individual override forms. Each key of the table names either a
stem (e.g. `pres_stressed`), a stem property (e.g. `vowel_alt`) or an individual override form (e.g. `pres_1s`).
Each value of a stem can either be a string (a single stem), a list of strings, or a list of objects of the form
{form = STEM, footnotes = {FOONOTES}}. Each value of an individual override should be of exactly the same form except
that the strings specify full forms rather than stems. The values of a stem property depend on the specific property
but are generally strings or booleans.
In order to understand how the stem specifications work, it's important to understand the phonetic modifications done
by combine_stem_ending(). In general, the complexities of predictable prefix, stem and ending modifications are all
handled in this function. In particular:
1. Spelling-based modifications (c/z, g/gu, gu/gü, g/j) occur automatically as appropriate for the ending.
2. If the stem begins with an acute accent, the accent is moved onto the last vowel of the prefix (for handling verbs
in -uar such as [[minguar]], pres_3s 'míngua').
3. If the ending begins with a double asterisk, this is a signal to conditionally delete the accent on the last letter
of the stem. "Conditionally" means we don't do it if the last two letters would form a diphthong without the accent
on the second one (e.g. in [[sair]], with stem 'saí'); but as an exception, we do delete the accent in stems
ending in -guí, -quí (e.g. in [[conseguir]]) because in this case the ui isn't a diphthong.
4. If the ending begins with an asterisk, this is a signal to delete the accent on the last letter of the stem, e.g.
fizé -> fizermos. Unlike for **, this removal is unconditional, so we get e.g. 'sairmos' not #'saírmos'.
5. If ending begins with i, it must get an accent after an unstressed vowel (in some but not all cases) to prevent the
two merging into a diphthong. See combine_stem_ending() for specifics.
The following stems are recognized:
-- pres_unstressed: The present indicative unstressed stem (1p, 2p). Also controls the imperative 2p
and gerund. Defaults to the infinitive stem (minus the ending -ar/-er/-ir/-or).
-- pres_stressed: The present indicative stressed stem (1s, 2s, 3s, 3p). Also controls the imperative 2s.
Default is empty if indicator `no_pres_stressed`, else a vowel alternation if such an indicator is given
(e.g. `ue`, `ì`), else the infinitive stem.
-- pres1_and_sub: Overriding stem for 1s present indicative and the entire subjunctive. Only set by irregular verbs
and by the indicators `no_pres_stressed` (e.g. [[precaver]]) and `no_pres1_and_sub` (since verbs of this sort,
e.g. [[puir]], are missing the entire subjunctive as well as the 1s present indicative). Used by many irregular
verbs, e.g. [[caber]], verbs in '-air', [[dizer]], [[ter]], [[valer]], etc. Some verbs set this and then supply an
override for the pres_1sg if it's irregular, e.g. [[saber]], with irregular subjunctive stem "saib-" and special
1s present indicative "sei".
-- pres1: Special stem for 1s present indicative. Normally, do not set this explicitly. If you need to specify an
irregular 1s present indicative, use the form override pres_1s= to specify the entire form. Defaults to
pres1_and_sub if given, else pres_stressed.
-- pres_sub_unstressed: The present subjunctive unstressed stem (1p, 2p). Defaults to pres1_and_sub if given, else the
infinitive stem.
-- pres_sub_stressed: The present subjunctive stressed stem (1s, 2s, 3s, 1p). Defaults to pres1.
-- sub_conj: Determines the set of endings used in the subjunctive. Should be one of "ar" or "er".
-- impf: The imperfect stem (not including the -av-/-i- stem suffix, which is determined by the conjugation). Defaults
to the infinitive stem.
-- full_impf: The full imperfect stem missing only the endings (-a, -as, -am, etc.). Used for verbs with irregular
imperfects such as [[ser]], [[ter]], [[vir]] and [[pôr]]. Needs to include an accent on the stressed vowel, which
will automatically be removed when not needed.
-- pret_conj: Determines the set of endings used in the preterite. Should be one of "ar", "er", "ir" or "irreg".
Defaults to the conjugation as determined from the infinitive. When pret_conj == "irreg", `pret` is used, otherwise
`pret_base`.
-- pret_base: The preterite stem (not including the -a-/-e-/-i- stem suffix). Defaults to the infinitive stem.
Only used when pret_conj ~= "irreg".
-- pret: The full preterite stem missing only the endings (-ste, -mos, etc.). Needs to include the accent on the final
vowel that occurs in some forms, e.g. 'figé' for [[fazer]], 'fô' for [[ser]]; the accent will automatically be
removed when not needed. Only used for verbs with irregular preterites (pret_conj == "irreg") such as [[fazer]],
[[poder]], [[trazer]], etc. The pret_1s and pret_3s are handled using the gl_short_pret stem instead for
"Galician"-ending forms (pret_1s '-em', pret_3s '-o') and using pt_pret_1s and pt_pret_3s for "Portuguese"-ending
forms. Defaults to `pret_base` + the accented conjugation vowel.
-- gl_short_pret: The short preterite stem, used with "Galician" 1s and 3s endings (pret_1s '-em', pret_3s '-o'). Only
used with irregular preterites (pret_conj == "irreg"). Normally derived from gl_pret by deleting the final vowel,
and doesn't need to be given explicitly.
-- pt_pret_1s: The "Portuguese" pret_1s form. In addition to this, the "Galician" pret_1s form will be included, formed
from gl_short_pret by adding '-em'. Does not need to be given if an override for pret_1s is supplied.
-- pt_pret_3s: The "Portuguese" pret_3s form. In addition to this, the "Galician" pret_3s form will be included, formed
from gl_short_pret by adding '-o' (which may cause the preceding consonant to shift to preserve the sound). Does
not need to be given if an override for pret_3s is supplied.
-- fut: The future stem. Defaults to the infinitive stem + the unaccented conjugation vowel.
-- cond: The conditional stem. Defaults to `fut`.
-- impf_sub: The imperfect subjunctive stem. Needs to include the accent on the final vowel that occurs in some forms;
see `pret` for more information. Defaults to `pret`.
-- fut_sub: The future subjunctive stem. Needs to include the accent on the final vowel that occurs in some forms; see
`gl_pret` for more information. Defaults to the merger of `gl_pret` and `pt_pret`.
-- plup: The pluperfect stem. Needs to include the accent on the final vowel that occurs in some forms; see `pret` for
more information. Defaults to `pret`.
-- pers_inf: The personal infinitive stem. Defaults to the infinitive stem + the accented conjugation vowel.
-- pp: The masculine singular past participle. Default is based on the verb conjugation: infinitive stem + '-ado' for
-ar verbs, otherwise infinitive stem + '-ido'.
-- short_pp: The short masculine singular past participle, for verbs with such a form. No default.
-- pp_inv: `true` if the past participle exists only in the masculine singular.
]=]
local built_in_conjugations = {
--------------------------------------------------------------------------------------------
-- -ar --
--------------------------------------------------------------------------------------------
-- Verbs not needing entries here:
--
-- (1) Verbs with short past participles: need to specify the short pp explicitly.
--
-- aceitar: use <short_pp:aceite>
-- anexar, completar, expressar, expulsar, findar, fritar, ganhar, gastar, limpar, pagar, pasmar, pegar, soltar:
-- use <short_pp:anexo> etc.
-- assentar: use <short_pp:assente>
-- entregar: use <short_pp:entregue>
-- enxugar: use <short_pp:enxuto>
-- matar: use <short_pp:morto>
--
-- (2) Verbs with orthographic consonant alternations: handled automatically.
--
-- -car (brincar, buscar, pecar, trancar, etc.): automatically handled in combine_stem_ending()
-- -çar (alcançar, começar, laçar): automatically handled in combine_stem_ending()
-- -gar (apagar, cegar, esmagar, largar, navegar, resmungar, sugar, etc.): automatically handled in combine_stem_ending()
--
-- (3) Verbs with vowel alternations: need to specify the alternation explicitly unless it always happens, in
-- which case it's handled automatically through an entry below.
--
-- esmiuçar changing to esmiúço: use <ú>
-- faiscar changing to faísco: use <í>
-- -iar changing to -eio (ansiar, incendiar, mediar, odiar, remediar, etc.): use <ei>
-- -izar changing to -ízo (ajuizar, enraizar, homogeneizar, plebeizar, etc.): use <í>
-- mobiliar changing to mobílio: use <í>
-- reusar changing to reúso: use <ú>
-- saudar changing to saúdo: use <ú>
-- tuitar/retuitar changing to (re)tuíto: use <í>
{
-- dar, desdar
match = match_against_verbs("dar", {"^", "^des", "^re"}),
forms = {
pres_1s = "dou",
pres_2s = "dás",
pres_3s = "dá",
-- damos, dades/dais regular
pres_3p = {GL_TYPE .. "dam", PT_TYPE .. "dão"},
pret_conj = "irreg", pret = "dé", pret_1s = "dei", pret_3s = "deu",
pres_sub_1s = "dê",
pres_sub_2s = "dês",
pres_sub_3s = "dê",
-- demos, dedes/deis regular
pres_sub_3p = {GL_TYPE .. "dem", PT_TYPE .. "deem"},
irreg = true,
}
},
{
-- -ear (frear, nomear, semear, etc.)
match = "ear",
forms = {
pres_stressed = {"ei", GL_ALTVAR .. "e"},
e_ei_cat = true,
}
},
{
-- estar
match = match_against_verbs("estar", {"^", "sob", "sobr"}),
forms = {
pres_1s = "estou",
pres_2s = "estás",
pres_3s = "está",
pres_3p = {GL_TYPE .. "estám", PT_TYPE .. "estão"},
pres1_and_sub = "estej", -- only for subjunctive as we override pres_1s
sub_conj = "er",
pret_conj = "irreg", pret = "estivé", pt_pret_1s = "estive", pt_pret_3s = "esteve",
-- [[sobestar]], [[sobrestar]] are transitive so they have fully inflected past participles
pp_inv = function(base, prefix) return prefix == "" end,
irreg = true,
}
},
--------------------------------------------------------------------------------------------
-- -er --
--------------------------------------------------------------------------------------------
-- Verbs not needing entries here:
--
-- precaver: use <no_pres_stressed>
-- -cer (verbs in -ecer, descer, vencer, etc.): automatically handled in combine_stem_ending()
-- -ger (proteger, reger, etc.): automatically handled in combine_stem_ending()
-- -guer (erguer/reerguer/soerguer): automatically handled in combine_stem_ending()
{
-- benzer
match = "benzer",
forms = {short_pp = "bento"}
},
{
-- caber
match = "caber",
forms = {
pres1_and_sub = "caib",
pret_conj = "irreg", pret = "coubé", pt_pret_1s = "coube", pt_pret_3s = "coube",
irreg = true,
}
},
{
-- crer, descrer
match = "crer",
forms = {
pres_2s = "crês", pres_3s = "crê",
pres_2p = "credes", pres_3p = {GL_TYPE .. "crem", PT_TYPE .. "creem"},
pres1_and_sub = {"crei", GL_ALTVAR .. "cre"},
irreg = true,
}
},
{
-- dizer, bendizer, condizer, contradizer, desdizer, maldizer, predizer, etc.
match = "dizer",
forms = {
-- use 'digu' because we're in a front environment; if we use 'dig', we'll get '#dijo'
pres1_and_sub = "digu",
pres_2s = {GL_TYPE .. "dis", PT_TYPE .. "dizes"},
pres_3s = {GL_TYPE .. "di", PT_TYPE .. "diz"},
pres_3p = {GL_TYPE .. "dim", PT_TYPE .. "dizem"},
pret_conj = "irreg", pret = {GL_TYPE .. "dixé", PT_TYPE .. "dissé"},
pt_pret_1s = "disse", pt_pret_3s = "disse",
pp = "dito",
fut = "dir",
irreg = true,
}
},
{
-- eleger, reeleger
match = "eleger",
forms = {short_pp = "eleito"}
},
{
-- acender, prender; not desprender, etc.
match = match_against_verbs("ender", {"^ac", "^pr"}),
forms = {short_pp = "eso"}
},
{
-- fazer, afazer, contrafazer, desfazer, liquefazer, perfazer, putrefazer, rarefazer, refazer, satisfazer, tumefazer
match = "fazer",
forms = {
-- use 'fagu' because we're in a front environment; if we use 'fag', we'll get '#fajo'
pres1_and_sub = {GL_TYPE .. "fagu", PT_TYPE .. "faç"},
pres_2s = {GL_TYPE .. "fás", PT_TYPE .. "fazes"},
pres_3s = {GL_TYPE .. "fai", PT_TYPE .. "faz"},
pres_3p = {GL_TYPE .. "fam", PT_TYPE .. "fazem"},
pret_conj = "irreg", pret = {GL_TYPE .. "figé", PT_TYPE .. "fizé", GL_ONLY_ALTVAR .. "fizé"},
pt_pret_1s = "fiz", pt_pret_3s = "fez",
pp = "feito",
fut = "far",
irreg = true,
}
},
{
match = "^haver",
forms = {
pres_1s = "hei",
pres_2s = "hás",
pres_3s = {"há", {form = GL_ALTVAR .. "hai", footnotes = {"[also impersonal]"}}},
pres_3p = {GL_TYPE .. "ham", PT_TYPE .. "hão"},
pres1_and_sub = "haj", -- only for subjunctive as we override pres_1s
pret_conj = "irreg", pret = "houvé", pt_pret_1s = "houve", pt_pret_3s = "houve",
imp_2s = "há",
irreg = true,
}
},
-- reaver below under r-
{
-- jazer, adjazer
match = "jazer",
forms = {
pres_3s = "jaz",
irreg = true,
}
},
{
-- ler, reler, tresler; not excel(l)er, valer, etc.
match = match_against_verbs("ler", {"^", "^re", "tres"}),
forms = {
pres_2s = "lês", pres_3s = "lê",
pres_2p = "ledes", pres_3p = {GL_TYPE .. "lem", PT_TYPE .. "leem"},
pres1_and_sub = {"lei", GL_ALTVAR .. "le"},
irreg = true,
}
},
{
-- morrer, desmorrer
match = "morrer",
forms = {short_pp = "morto"}
},
{
-- moer, but not remoer
match = "^moer",
forms = {
pres_2s = "móis", pres_3s = "mói",
-- impf -ía etc., pret_1s -oí and pp -oído handled automatically in combine_stem_ending()
pres1_and_sub = {"mo", GL_ALTVAR .. "moi"},
short_pp = "mudo",
irreg = true,
}
},
{
-- doer, remoer, roer/corroer, soer
match = "oer",
forms = {
pres_2s = "óis", pres_3s = "ói",
-- impf -ía etc., pret_1s -oí and pp -oído handled automatically in combine_stem_ending()
pres1_and_sub = {"o", GL_ALTVAR .. "oi"},
irreg = true,
}
},
{
-- perder
match = "perder",
forms = {
-- use 'perqu' because we're in a front environment; if we use 'perc', we'll get '#perço'
-- we don't tag these forms GL_TYPE or PT_TYPE because both occur with both endings -ais/-ades
pres1_and_sub = {"perd", "perqu"},
irreg = true,
}
},
{
-- poder
match = "poder",
forms = {
pres1_and_sub = {GL_TYPE .. "pod", PT_TYPE .. "poss"},
pret_conj = "irreg", pret = "pudé", pt_pret_1s = "pude", pt_pret_3s = "pôde",
irreg = true,
}
},
{
-- prazer, aprazer, comprazer, desprazer
-- FIXME: comprazer also has regular preterite
match = "prazer",
forms = {
pres_3s = "praz",
pret_conj = "irreg", pret = "prouvé", pt_pret_1s = "prouve", pt_pret_3s = "prouve",
only3sp = function(base, prefix) return prefix == "a" end,
imp_2s = {GL_TYPE .. "praze", PT_TYPE .. "praz"},
irreg = true,
}
},
-- prover below, just below ver
{
-- requerer; must precede querer
match = "requerer",
forms = {
pres_3s = "requer",
pres1_and_sub = "requeir",
imp_2s = {"requer"},
-- regular preterite, unlike [[querer]]
irreg = true,
}
},
{
-- querer, desquerer, malquerer
match = "querer",
forms = {
pres_1s = "quero", pres_3s = "quer",
pres1_and_sub = "queir", -- only for subjunctive as we override pres_1s
pret_conj = "irreg", pret = {GL_TYPE .. "quigé", PT_TYPE .. "quisé"},
pt_pret_1s = "quis", pt_pret_3s = "quis",
irreg = true,
}
},
{
match = "reaver",
forms = {
pres_1s = "reei",
pres_2s = "reás",
pres_3s = "reá",
pres_3p = {GL_TYPE .. "ream", PT_TYPE .. "reão"},
pres1_and_sub = "reaj", -- only for subjunctive as we override pres_1s
pret_conj = "irreg", pret = "reouvé", pt_pret_1s = "reouve", pt_pret_3s = "reouve",
irreg = true,
}
},
{
-- saber, ressaber
match = "saber",
forms = {
pres_1s = "sei",
pres1_and_sub = "saib", -- only for subjunctive as we override pres_1s
pret_conj = "irreg", pret = "soubé", pt_pret_1s = "soube", pt_pret_3s = "soube",
irreg = true,
}
},
{
-- escrever/reescrever, circunscrever, descrever/redescrever, inscrever, prescrever, proscrever, subscrever,
-- transcrever, others?
match = "screver",
forms = {
pp = "scrito",
irreg = true,
}
},
{
-- suspender
match = "suspender",
forms = {short_pp = "suspenso"}
},
{
match = "^ser",
forms = {
pres_1s = "sou", pres_2s = "és", pres_3s = "é",
pres_1p = "somos", pres_2p = {GL_TYPE .. "sodes", PT_TYPE .. "sois"},
pres_3p = {GL_TYPE .. "som", PT_TYPE .. "são"},
pres1_and_sub = "sej", -- only for subjunctive as we override pres_1s
full_impf = "ér",
pret_conj = "irreg", pret = "fô", pret_1s = {GL_TYPE .. "fum", PT_TYPE .. "fui"}, pret_3s = "foi",
imp_2s = "sê", imp_2p = "sede",
pp_inv = true,
irreg = true,
}
},
{
-- We want to match abster, conter, deter, etc. but not abater, cometer, etc. No way to avoid listing each verb.
match = match_against_verbs("ter", {"abs", "^a", "con", "de", "entre", "man", "ob", "^re", "sus", "^"}),
forms = {
-- FIXME, Estraviz says 'contens', 'detens' etc. but that may be a typo
pres_2s = function(base, prefix) return {GL_TYPE .. "tés", PT_TYPE .. (prefix == "" and "tens" or "téns")} end,
-- FIXME, Estraviz says 'contem', 'detem' etc. but that may be a typo
pres_3s = function(base, prefix) return prefix == "" and "tem" or "tém" end,
pres_2p = "tendes", pres_3p = {GL_TYPE .. "tenhem", PT_TYPE .. "têm", GL_ALTVAR .. "tém"},
pres1_and_sub = "tenh",
full_impf = "tính",
pret_conj = "irreg", pret = "tivé", pt_pret_1s = "tive", pt_pret_3s = "teve",
irreg = true,
}
},
{
match = "trazer",
forms = {
-- use 'tragu' because we're in a front environment; if we use 'trag', we'll get '#trajo'
pres1_and_sub = "tragu", pres_3s = "traz",
pret_conj = "irreg", pret = "trouxé", pt_pret_1s = "trouxe", pt_pret_3s = "trouxe",
fut = "trar",
irreg = true,
}
},
{
match = "traguer",
forms = {
pret_conj = "irreg", pret = "trouxé", pt_pret_1s = "trouxe", pt_pret_3s = "trouxe",
irreg = true,
}
},
{
-- valer, desvaler, equivaler
match = "valer",
forms = {
pres1_and_sub = "valh",
irreg = true,
}
},
{
-- We want to match antever etc. but not absolver, atrever etc. No way to avoid listing each verb.
match = match_against_verbs("ver", {"ante", "entre", "pre", "^re", "^"}),
forms = {
pres_2s = "vês", pres_3s = "vê",
pres_2p = "vedes",
pres_3p = function(base, prefix) return {GL_TYPE .. (prefix == "" and "vem" or "vêm"), PT_TYPE .. "veem"} end,
pres1_and_sub = "vej",
pret_conj = "irreg", pret = "ví", pret_1s = {GL_TYPE .. "vim", PT_TYPE .. "vi"}, pret_3s = "viu",
pp = "visto",
irreg = true,
}
},
{
-- [[prover]] and [[desprover]] have regular preterite and past participle
match = "prover",
forms = {
pres_2s = "provês", pres_3s = "provê",
-- FIXME: Estraviz says 'provem' but that may be a typo
pres_2p = "provedes", pres_3p = {GL_TYPE .. "provêm", PT_TYPE .. "proveem"},
pres1_and_sub = "provej",
irreg = true,
}
},
{
-- volver, devolver, envolver, revolver, etc.
match = "volver",
forms = {short_pp = "volto"},
},
--------------------------------------------------------------------------------------------
-- -ir --
--------------------------------------------------------------------------------------------
-- Verbs not needing entries here:
--
-- abolir: use <u-o>
-- barrir: use <only3sp>
-- carpir, colorir, demolir: use <no_pres1_and_sub>
-- descolorir: use <no_pres1_and_sub>
-- delir, espavorir, falir, florir, remir, renhir: use <no_pres_stressed>
-- empedernir: use <i-e>
-- transir: regular
-- aspergir, despir, flectir/deflectir/genuflectir/genufletir/reflectir/refletir, mentir/desmentir,
-- sentir/assentir/consentir/dissentir/pressentir/ressentir, convergir/divergir, aderir/adherir,
-- ferir/auferir/conferir/deferir/desferir/diferir/differir/inferir/interferir/preferir/proferir/referir/transferir,
-- gerir/digerir/ingerir/sugerir, preterir, competir/repetir, servir, advertir/animadvertir/divertir,
-- vestir/investir/revestir/travestir, seguir/conseguir/desconseguir/desseguir/perseguir/prosseguir: use <i-e>
-- inerir: use <i-e>
-- compelir/expelir/impelir/repelir: use <i-e>
-- dormir, engolir, tossir, subir, acudir/sacudir, fugir, sumir/consumir (NOT assumir/presumir/resumir): use <u-o>
-- polir/repolir: use <u>
-- premir: use <i>
-- extorquir/retorquir: <u-o,u>
-- agredir/progredir/regredir/transgredir: use <i>
-- denegrir, prevenir: use <i>
-- eclodir: use <u-o>
-- cerzir: use <i-e>
-- proibir/coibir: use <í>
-- reunir: use <ú>
-- parir/malparir: use <no_pres_stressed>
-- explodir/implodir: use <u-o>
--
-- -cir alternations (aducir, ressarcir): automatically handled in combine_stem_ending()
-- -gir alternations (agir, dirigir, exigir): automatically handled in combine_stem_ending()
-- -guir alternations (e.g. conseguir): automatically handled in combine_stem_ending()
-- -quir alternations (e.g. extorquir): automatically handled in combine_stem_ending()
{
-- verbs in -air (cair, sair, trair and derivatives: decair/descair/recair, sobres(s)air,
-- abstrair/atrair/contrair/distrair/extrair/protrair/retrair/subtrair)
match = "air",
forms = {
pres1_and_sub = "ai", pres_2s = "ais", pres_3s = "ai",
-- all occurrences of accented í in endings handled in combine_stem_ending()
irreg = true,
}
},
{
-- abrir/desabrir/reabrir
match = "abrir",
forms = {pp = "aberto"}
},
{
-- cobrir/descobrir/encobrir/recobrir/redescobrir
match = "cobrir",
forms = {vowel_alt = "u-o", pp = "coberto"}
},
{
-- conduzir, produzir, reduzir, traduzir, etc.; luzir, reluzir, tremeluzir
match = "uzir",
forms = {
pres_3s = "uz",
-- FIXME, is this correct?
imp_2s = "uze",
irreg = true,
}
},
{
-- pedir, desimpedir, despedir, espedir, expedir, impedir
-- medir
-- comedir
match = match_against_verbs("edir", {"m", "p"}),
forms = {
pres1_and_sub = {GL_TYPE .. "id", PT_TYPE .. "eç"},
irreg = true,
}
},
{
-- frigir
match = "frigir",
forms = {vowel_alt = "i-e", short_pp = "frito"},
},
{
-- inserir
match = "inserir",
forms = {vowel_alt = "i-e"},
},
{
-- ir
match = "^ir",
forms = {
pres_1s = "vou", pres_2s = {GL_TYPE .. "vás", PT_TYPE .. "vais"}, pres_3s = "vai",
pres_1p = {GL_TYPE .. "imos", PT_TYPE .. "vamos"}, pres_2p = "ides",
pres_3p = {GL_TYPE .. "vam", PT_TYPE .. "vão"},
pres_sub_1s = {GL_TYPE .. "vaia", PT_TYPE .. "vá"},
pres_sub_2s = {GL_TYPE .. "vaias", PT_TYPE .. "vás"},
pres_sub_3s = {GL_TYPE .. "vaia", PT_TYPE .. "vá"},
pres_sub_1p = {GL_TYPE .. "vaiamos", PT_TYPE .. "vamos"},
pres_sub_2p = {GL_TYPE .. "vaiades", PT_TYPE .. "vades"},
pres_sub_3p = {GL_TYPE .. "vaiam", PT_TYPE .. "vão"},
pret_conj = "irreg", pret = "fô", pret_1s = {GL_TYPE .. "fum", PT_TYPE .. "fui"}, pret_3s = "foi",
irreg = true,
}
},
{
-- emergir, imergir, submergir
match = "mergir",
forms = {vowel_alt = "i-e", short_pp = "merso"},
},
{
match = "ouvir",
forms = {
pres1_and_sub = {"ouç", ALTVAR .. "oiç"},
irreg = true,
}
},
{
-- exprimir, imprimir, comprimir (but not descomprimir per Priberam), deprimir, oprimir/opprimir (but not reprimir,
-- suprimir/supprimir per Priberam)
match = match_against_verbs("primir", {"^com", "ex", "im", "de", "^o", "op"}),
forms = {short_pp = "presso"}
},
{
-- rir, sorrir
match = match_against_verbs("rir", {"^", "sor"}),
forms = {
pres_2s = "ris", pres_3s = "ri", pres_2p = "rides", pres_3p = {GL_TYPE .. "rim", PT_TYPE .. "riem"},
pres1_and_sub = "ri",
irreg = true,
}
},
{
-- distinguir, extinguir
match = "tinguir",
forms = {
short_pp = "tinto",
-- gu/g alternations handled in combine_stem_ending()
}
},
{
-- verbs in -truir (construir, destruir, reconstruir) but not obstruir/desobstruir, instruir, which are handled
-- by the default -uir handler below
match = match_against_verbs("struir", {"con", "de"}),
forms = {
pres_2s = {"stróis", ALTVAR .. "struis"}, pres_3s = {"strói", ALTVAR .. "strui"},
pres_3p = {"stroem", ALTVAR .. "struem"},
-- all occurrences of accented í in endings handled in combine_stem_ending()
irreg = true,
}
},
{
-- remaining verbs in -uir (concluir/excluir/incluir/concruir/concruyr, abluir/diluir, afluir/fluir/influir,
-- aluir, anuir, atribuir/contribuir/distribuir/redistribuir/retribuir/substituir, coevoluir/evoluir,
-- constituir/destituir/instituir/reconstituir/restituir, derruir, diminuir, estatuir, fruir/usufruir, imbuir,
-- imiscuir, poluir, possuir, puir, pruir, ruir
-- FIXME: old module lists short pp incluso for incluir that can't be verified, ask about this
-- FIXME: handle -uyr verbs?
match = function(verb)
-- Don't match -guir verbs (e.g. [[seguir]], [[conseguir]]) or -quir verbs (e.g. [[extorquir]])
if verb:find("guir$") or verb:find("quir$") then
return nil
else
return match_against_verbs("uir", {""})(verb)
end
end,
forms = {
pres_2s = "uis", pres_3s = "ui",
-- all occurrences of accented í in endings handled in combine_stem_ending()
irreg = true,
}
},
{
-- We want to match advir, convir, devir, etc. but not ouvir, servir, etc. No way to avoid listing each verb.
match = match_against_verbs("vir", {"ad", "^a", "con", "contra", "de", "^desa", "inter", "pro", "^re", "sobre", "^"}),
forms = {
-- FIXME, Estraviz says 'convens', 'devens' etc. but that may be a typo
pres_2s = function(base, prefix) return {GL_TYPE .. "vés", PT_TYPE .. (prefix == "" and "vens" or "véns")} end,
-- FIXME, Estraviz says 'convem', 'devem' etc. but that may be a typo
pres_3s = function(base, prefix) return prefix == "" and "vem" or "vém" end,
pres_2p = "vindes", pres_3p = {GL_TYPE .. "venhem", PT_TYPE .. "vêm", GL_ALTVAR .. "vém"},
pres1_and_sub = "venh",
full_impf = "vính",
pret_conj = "irreg", pret = {GL_TYPE .. "vinhé", PT_TYPE .. "vié"},
pret_1s = "vim", pret_3s = {GL_TYPE .. "véu", PT_TYPE .. "veio"},
pp = "vindo",
irreg = true,
}
},
--------------------------------------------------------------------------------------------
-- misc --
--------------------------------------------------------------------------------------------
{
-- pôr, antepor, apor, compor/decompor/descompor, contrapor, depor, dispor, expor, impor, interpor, justapor,
-- opor, pospor, propor, repor, sobrepor, supor/pressupor, transpor, decompor, others?
match = "p[oô]r",
forms = {
pres1_and_sub = "ponh",
pres_2s = {GL_TYPE .. "pós", PT_TYPE .. "pões", GL_ALTVAR .. "pons"},
pres_3s = {GL_TYPE .. "pom", PT_TYPE .. "põe"},
pres_1p = "pomos", pres_2p = "pondes",
pres_3p = {GL_TYPE .. "ponhem", PT_TYPE .. "põem", GL_ALTVAR .. "póm"},
full_impf = "púnh",
pret_conj = "irreg", pret = {GL_TYPE .. "pugé", PT_TYPE .. "pusé"}, pt_pret_1s = "pus", pt_pret_3s = "pôs",
pers_inf = "po",
gerund = "pondo", pp = "posto",
irreg = true,
}
},
}
local function skip_slot(base, slot, allow_overrides)
if not allow_overrides and (base.basic_overrides[slot] or
base.refl and base.basic_reflexive_only_overrides[slot]) then
-- Skip any slots for which there are overrides.
return true
end
if base.only3s and (slot:find("^pp_f") or slot:find("^pp_mp")) then
-- diluviar, atardecer, neviscar; impersonal verbs have only masc sing pp
return true
end
if not slot:find("[123]") then
-- Don't skip non-personal slots.
return false
end
if base.nofinite then
return true
end
if (base.only3s or base.only3sp or base.only3p) and (slot:find("^imp_") or slot:find("^neg_imp_")) then
return true
end
if base.only3s and not slot:find("3s") then
-- diluviar, atardecer, neviscar
return true
end
if base.only3sp and not slot:find("3[sp]") then
-- atañer, concernir
return true
end
if base.only3p and not slot:find("3p") then
-- [[caer cuatro gotas]], [[caer chuzos de punta]], [[entrarle los siete males]]
return true
end
return false
end
-- Apply vowel alternations to stem.
local function apply_vowel_alternations(stem, alternations)
local alternation_stems = {}
local saw_pres1_and_sub = false
local saw_pres_stressed = false
-- Process alternations other than +.
for _, altobj in ipairs(alternations) do
local alt = altobj.form
local pres1_and_sub, pres_stressed, err
-- Treat final -gu, -qu as a consonant, so the previous vowel can alternate (e.g. conseguir -> consigo).
-- This means a verb in -guar can't have a u-ú alternation but I don't think there are any verbs like that.
stem = rsub(stem, "([gq])u$", "%1" .. TEMPC1)
if alt == "+" then
-- do nothing yet
elseif alt == "ei" then
local before_last_vowel = rmatch(stem, "^(.*)i$")
if not before_last_vowel then
err = "stem should end in -i"
else
pres1_and_sub = nil
pres_stressed = before_last_vowel .. "ei"
end
else
local before_last_vowel, last_vowel, after_last_vowel = rmatch(stem, "^(.*)(" .. V .. ")(.-[ui])$")
if not before_last_vowel then
before_last_vowel, last_vowel, after_last_vowel = rmatch(stem, "^(.*)(" .. V .. ")(.-)$")
end
if alt == "i-e" then
if last_vowel == "e" or last_vowel == "i" then
pres1_and_sub = before_last_vowel .. "i" .. after_last_vowel
if last_vowel == "i" then
pres_stressed = before_last_vowel .. "e" .. after_last_vowel
end
else
err = "should have -e- or -i- as the last vowel"
end
elseif alt == "i" then
if last_vowel == "e" then
pres1_and_sub = before_last_vowel .. "i" .. after_last_vowel
pres_stressed = pres1_and_sub
else
err = "should have -e- as the last vowel"
end
elseif alt == "u-o" then
if last_vowel == "o" or last_vowel == "u" then
pres1_and_sub = before_last_vowel .. "u" .. after_last_vowel
if last_vowel == "u" then
pres_stressed = before_last_vowel .. "o" .. after_last_vowel
end
else
err = "should have -o- or -u- as the last vowel"
end
elseif alt == "u" then
if last_vowel == "o" then
pres1_and_sub = before_last_vowel .. "u" .. after_last_vowel
pres_stressed = pres1_and_sub
else
err = "should have -o- as the last vowel"
end
elseif alt == "í" then
if last_vowel == "i" then
pres_stressed = before_last_vowel .. "í" .. after_last_vowel
else
err = "should have -i- as the last vowel"
end
elseif alt == "ú" then
if last_vowel == "u" then
pres_stressed = before_last_vowel .. "ú" .. after_last_vowel
else
err = "should have -u- as the last vowel"
end
else
error("Internal error: Unrecognized vowel alternation '" .. alt .. "'")
end
end
if pres1_and_sub then
pres1_and_sub = {form = pres1_and_sub:gsub(TEMPC1, "u"), footnotes = altobj.footnotes}
saw_pres1_and_sub = true
end
if pres_stressed then
pres_stressed = {form = pres_stressed:gsub(TEMPC1, "u"), footnotes = altobj.footnotes}
saw_pres_stressed = true
end
table.insert(alternation_stems, {
altobj = altobj,
pres1_and_sub = pres1_and_sub,
pres_stressed = pres_stressed,
err = err
})
end
-- Now do +. We check to see which stems are used by other alternations and specify those so any footnotes are
-- properly attached.
for _, alternation_stem in ipairs(alternation_stems) do
if alternation_stem.altobj.form == "+" then
local stemobj = {form = stem, footnotes = alternation_stem.altobj.footnotes}
alternation_stem.pres1_and_sub = saw_pres1_and_sub and stemobj or nil
alternation_stem.pres_stressed = saw_pres_stressed and stemobj or nil
end
end
return alternation_stems
end
-- Add the `stem` to the `ending` for the given `slot` and apply any phonetic modifications.
-- WARNING: This function is written very carefully; changes to it can easily have unintended consequences.
local function combine_stem_ending(base, slot, prefix, stem, ending, dont_include_prefix)
-- If the stem begins with an acute accent, this is a signal to move the accent onto the last vowel of the prefix.
-- Cf. míngua of minguar.
if stem:find("^" .. AC) then
stem = rsub(stem, "^" .. AC, "")
if dont_include_prefix then
error("Internal error: Can't handle acute accent at beginning of stem if dont_include_prefix is given")
end
prefix = rsub(prefix, "([aeiouyAEIOUY])([^aeiouyAEIOUY]*)$", "%1" .. AC .. "%2")
end
-- Use the full stem for checking for -gui ending and such, because 'stem' is just 'u' for [[arguir]],
-- [[delinquir]].
local full_stem = prefix .. stem
-- Include the prefix in the stem unless dont_include_prefix is given (used for the past participle stem).
if not dont_include_prefix then
stem = full_stem
end
-- If the ending begins with a double asterisk, this is a signal to conditionally delete the accent on the last letter
-- of the stem. "Conditionally" means we don't do it if the last two letters would form a diphthong without the accent
-- on the second one (e.g. in [[sair]], with stem 'saí'); but as an exception, we do delete the accent in stems
-- ending in -guí, -quí (e.g. in [[conseguir]]) because in this case the ui isn't a diphthong.
if ending:find("^%*%*") then
ending = rsub(ending, "^%*%*", "")
if rfind(full_stem, "[gq]uí$") or not rfind(full_stem, V .. "[íú]$") then
stem = com.remove_final_accent(stem)
end
end
-- If the ending begins with an asterisk, this is a signal to delete the accent on the last letter of the stem.
-- E.g. fizé -> fizermos. Unlike for **, this removal is unconditional, so we get e.g. 'sairmos' not #'saírmos'.
if ending:find("^%*") then
ending = rsub(ending, "^%*", "")
stem = com.remove_final_accent(stem)
end
-- If ending begins with i, it must get an accent after an unstressed vowel (in some but not all cases) to prevent
-- the two merging into a diphthong:
-- * cair ->
-- * pres: caímos, caís;
-- * impf: all forms (caí-);
-- * pret: caí (but not caim), caíste (but not caiu), caímos, caístes, caíram;
-- * plup: all forms (caír-);
-- * impf_sub: all forms (caíss-);
-- * fut_sub: caíres, caírem (but not cair, cairmos, cairdes)
-- * pp: caído (but not gerund caindo)
-- * atribuir, other verbs in -uir -> same pattern as for cair etc.
-- * roer ->
-- * pret: roí (but not roim)
-- * impf: all forms (roí-)
-- * pp: roído
-- Don't let variant codes derail the following checks. Note that variant codes are properly added to the end of
-- the ending, so checks against the beginning of the ending work even in their presence, but not checks against
-- the full ending.
local cleaned_ending = export.remove_variant_codes(ending)
if cleaned_ending:find("^i") and full_stem:find("[aeiou]$") and not full_stem:find("[gq]u$") and
not cleaned_ending:find("^i[rum]$") and cleaned_ending ~= "indo" and not cleaned_ending:find("^ir[md]") then
ending = ending:gsub("^i", "í")
end
-- Spelling changes in the stem; it depends on whether the stem given is the pre-front-vowel or
-- pre-back-vowel variant, as indicated by `frontback`. We want these front-back spelling changes to happen
-- between stem and ending, not between prefix and stem; the prefix may not have the same "front/backness"
-- as the stem.
local is_front = rfind(ending, "^[eiéíê]")
if base.frontback == "front" and not is_front then
stem = stem:gsub("c$", "ç") -- conhecer -> conheço, vencer -> venço, descer -> desço
stem = stem:gsub("g$", "j") -- proteger -> protejo, fugir -> fujo
stem = stem:gsub("gu$", "g") -- distinguir -> distingo, conseguir -> consigo
stem = stem:gsub("qu$", "c") -- extorquir -> exturco
stem = stem:gsub("([gq])ü$", "%1u") -- argüir (superseded) -> arguo, delinqüir (superseded) -> delinquo
elseif base.frontback == "back" and is_front then
-- The following changes are all superseded so we don't do them:
-- averiguar -> averigüei, minguar -> mingüei; antiquar -> antiqüei, apropinquar -> apropinqüei
-- stem = stem:gsub("([gq])u$", "%1ü")
stem = stem:gsub("g$", "gu") -- cargar -> carguei, apagar -> apaguei
stem = stem:gsub("c$", "qu") -- marcar -> marquei
stem = stem:gsub("ç$", "c") -- começar -> comecei
-- j does not go to g here; desejar -> deseje not #desege
end
local retval = stem .. ending
if retval:find(GL_TYPE) and retval:find(PT_TYPE) or retval:find(GL_ONLY_TYPE) and not retval:find(GL_TYPE) then
-- Reject clashes in "Galician"-type and "Portuguese"-type forms, e.g. '#vós dixéreis' or '#vós dissérades'.
return nil
end
return retval
end
local function add3(base, slot, stems, endings, footnotes, allow_overrides)
if skip_slot(base, slot, allow_overrides) then
return
end
local function do_combine_stem_ending(stem, ending)
return combine_stem_ending(base, slot, base.prefix, stem, ending)
end
iut.add_forms(base.forms, slot, stems, endings, do_combine_stem_ending, nil, nil, footnotes)
end
local function insert_form(base, slot, form)
if not skip_slot(base, slot) then
iut.insert_form(base.forms, slot, form)
end
end
local function insert_forms(base, slot, forms)
if not skip_slot(base, slot) then
iut.insert_forms(base.forms, slot, forms)
end
end
local function add_single_stem_tense(base, slot_pref, stems, s1, s2, s3, p1, p2, p3)
local function addit(slot, ending)
add3(base, slot_pref .. "_" .. slot, stems, ending)
end
addit("1s", s1)
addit("2s", s2)
addit("3s", s3)
addit("1p", p1)
addit("2p", p2)
addit("3p", p3)
end
local function construct_stems(base, vowel_alt)
local stems = {}
stems.pres_unstressed = base.stems.pres_unstressed or base.inf_stem
stems.pres_stressed =
-- If no_pres_stressed given, pres_stressed stem should be empty so no forms are generated.
base.no_pres_stressed and {} or
base.stems.pres_stressed or
vowel_alt.pres_stressed or
base.inf_stem
stems.pres1_and_sub =
-- If no_pres_stressed given, the entire subjunctive is missing.
base.no_pres_stressed and {} or
-- If no_pres1_and_sub given, pres1 and entire subjunctive are missing.
base.no_pres1_and_sub and {} or
base.stems.pres1_and_sub or
vowel_alt.pres1_and_sub or
nil
stems.pres1 = base.stems.pres1 or stems.pres1_and_sub or stems.pres_stressed
stems.impf = base.stems.impf or base.inf_stem
stems.full_impf = base.stems.full_impf
stems.pret_base = base.stems.pret_base or base.inf_stem
stems.pret_conj = base.stems.pret_conj or base.conj
stems.pret = base.stems.pret or iut.map_forms(iut.convert_to_general_list_form(stems.pret_base),
function(form) return form .. base.conj_vowel end)
stems.gl_short_pret = base.stems.gl_short_pret or iut.map_forms(iut.convert_to_general_list_form(stems.pret),
function(form) return rsub(form, com.V .. "$", "") end)
stems.pt_pret_1s = base.stems.pt_pret_1s
stems.pt_pret_3s = base.stems.pt_pret_3s
stems.fut = base.stems.fut or base.inf_stem .. base.conj
stems.cond = base.stems.cond or stems.fut
stems.pres_sub_stressed = base.stems.pres_sub_stressed or stems.pres1
stems.pres_sub_unstressed = base.stems.pres_sub_unstressed or stems.pres1_and_sub or stems.pres_unstressed
stems.sub_conj = base.stems.sub_conj or base.conj
stems.plup = base.stems.plup or stems.pret
stems.impf_sub = base.stems.impf_sub or stems.pret
stems.fut_sub = base.stems.fut_sub or stems.pret
stems.pers_inf = base.stems.pers_inf or base.inf_stem .. base.conj_vowel
stems.pp = base.stems.pp or base.conj == "ar" and
combine_stem_ending(base, "pp_ms", base.prefix, base.inf_stem, "ado", "dont include prefix") or
-- use combine_stem_ending esp. so we get roído, caído, etc.
combine_stem_ending(base, "pp_ms", base.prefix, base.inf_stem, "ido", "dont include prefix")
stems.pp_ms = stems.pp
local function masc_to_fem(form)
if rfind(form, "o$") then
return rsub(form, "o$", "a")
else
return form
end
end
stems.pp_fs = iut.map_forms(iut.convert_to_general_list_form(stems.pp_ms), masc_to_fem)
if base.stems.short_pp then
stems.short_pp_ms = base.stems.short_pp
stems.short_pp_fs = iut.map_forms(iut.convert_to_general_list_form(stems.short_pp_ms), masc_to_fem)
end
base.this_stems = stems
end
local function add_present_indic(base)
local stems = base.this_stems
local function addit(slot, stems, ending)
add3(base, "pres_" .. slot, stems, ending)
end
local s2, s3, p1, p2, p3
if base.conj == "ar" then
s2, s3, p1, p2, p3 = "as", "a", "amos", {"ades" .. GL_TYPE, "ais" .. PT_TYPE}, "am"
elseif base.conj == "er" or base.conj == "or" then -- verbs in -por have the present overridden
s2, s3, p1, p2, p3 = "es", "e", "emos", {"edes" .. GL_TYPE, "eis" .. PT_TYPE}, "em"
elseif base.conj == "ir" then
s2, s3, p1, p2, p3 = "es", "e", "imos", {"ides" .. GL_TYPE, "is" .. PT_TYPE}, "em"
else
error("Internal error: Unrecognized conjugation " .. base.conj)
end
addit("1s", stems.pres1, "o")
addit("2s", stems.pres_stressed, s2)
addit("3s", stems.pres_stressed, s3)
addit("1p", stems.pres_unstressed, p1)
addit("2p", stems.pres_unstressed, p2)
addit("3p", stems.pres_stressed, p3)
end
local function add_present_subj(base)
local stems = base.this_stems
local function addit(slot, stems, ending)
add3(base, "pres_sub_" .. slot, stems, ending)
end
local s1, s2, s3, p1, p2, p3
if stems.sub_conj == "ar" then
s1, s2, s3, p1, p2, p3 = "e", "es", "e", "emos", {"edes" .. GL_TYPE, "eis" .. PT_TYPE}, "em"
else
s1, s2, s3, p1, p2, p3 = "a", "as", "a", "amos", {"ades" .. GL_TYPE, "ais" .. PT_TYPE}, "am"
end
addit("1s", stems.pres_sub_stressed, s1)
addit("2s", stems.pres_sub_stressed, s2)
addit("3s", stems.pres_sub_stressed, s3)
addit("1p", stems.pres_sub_unstressed, p1)
addit("2p", stems.pres_sub_unstressed, p2)
addit("3p", stems.pres_sub_stressed, p3)
end
local function add_finite_non_present(base)
local stems = base.this_stems
local function add_tense(slot, stem, s1, s2, s3, p1, p2, p3)
add_single_stem_tense(base, slot, stem, s1, s2, s3, p1, p2, p3)
end
-- * at the beginning of the ending means to remove an accent from the last vowel of the imperfect stem.
if stems.full_impf then
add_tense("impf", stems.full_impf, "*a", "*as", "*a", "amos",
{"ades" .. GL_TYPE, "eis" .. PT_TYPE, "ais" .. GL_ALTVAR}, "*am")
elseif base.conj == "ar" then
add_tense("impf", stems.impf, "ava", "avas", "ava", "ávamos",
{"ávades" .. GL_TYPE, "áveis" .. PT_TYPE, "ávais" .. GL_ALTVAR}, "avam")
else
add_tense("impf", stems.impf, "ia", "ias", "ia", "íamos",
{"íades" .. GL_TYPE, "íeis" .. PT_TYPE, "íais" .. GL_ALTVAR}, "iam")
end
-- * at the beginning of the ending means to remove a final accent from the preterite stem.
if stems.pret_conj == "irreg" then
add_tense("pret", stems.gl_short_pret, "em" .. GL_TYPE, nil, "o" .. GL_TYPE)
add_tense("pret", stems.pret, nil, {"*ste", "*che" .. GL_ALTVAR}, nil, "*mos", "*stes",
{"rom" .. GL_TYPE, "*ram" .. PT_TYPE})
add_tense("pret", stems.pt_pret_1s, PT_TYPE)
add_tense("pret", stems.pt_pret_3s, nil, nil, PT_TYPE)
elseif stems.pret_conj == "ar" then
add_tense("pret", stems.pret_base, "ei", {"aste", "ache" .. GL_ALTVAR}, "ou", "amos", "astes",
{"árom" .. GL_TYPE, "aram" .. PT_TYPE})
elseif stems.pret_conj == "er" then
add_tense("pret", stems.pret_base, {"im" .. GL_TYPE, "i" .. PT_TYPE}, {"este", "eche" .. GL_ALTVAR}, "eu",
"emos", "estes", {"êrom" .. GL_TYPE, "eram" .. PT_TYPE})
else
add_tense("pret", stems.pret_base, {"im" .. GL_TYPE, "i" .. PT_TYPE}, {"iste", "iche" .. GL_ALTVAR}, "iu",
"imos", "istes", {"írom" .. GL_TYPE, "iram" .. PT_TYPE})
end
-- * at the beginning of the ending means to remove a final accent from the stem.
-- ** is similar but is "conditional" on a consonant preceding the final vowel.
add_tense("plup", stems.plup, "**ra", "**ras", "**ra", "ramos",
{"rades" .. GL_TYPE, "reis" .. PT_TYPE, "rais" .. GL_ALTVAR}, "**ram")
add_tense("impf_sub", stems.impf_sub, "**sse", "**sses", "**sse", "ssemos",
{"ssedes" .. GL_TYPE, "sseis" .. PT_TYPE}, "**ssem")
add_tense("fut_sub", stems.fut_sub, "*r", "**res", "*r", "*rmos", "*rdes", "**rem")
if base.refl then
local mark = TEMP_MESOCLITIC_INSERTION_POINT
add_tense("fut", stems.fut,
{"ei" .. GL_TYPE, mark .. "ei" .. PT_TYPE}, {"ás" .. GL_TYPE, mark .. "ás" .. PT_TYPE},
{"á" .. GL_TYPE, mark .. "á" .. PT_TYPE}, {"emos" .. GL_TYPE, mark .. "emos" .. PT_TYPE},
{"edes" .. GL_TYPE, mark .. "eis" .. PT_TYPE}, {"ám" .. GL_TYPE, mark .. "ão" .. PT_TYPE}
)
add_tense("cond", stems.cond,
{"ia" .. GL_TYPE, mark .. "ia" .. PT_TYPE}, {"ias" .. GL_TYPE, mark .. "ias" .. PT_TYPE},
{"ia" .. GL_TYPE, mark .. "ia" .. PT_TYPE}, {"íamos" .. GL_TYPE, mark .. "íamos" .. PT_TYPE},
-- FIXME, is GL_ALTVAR correct for the mesoclitic variant of -íais?
{"íades" .. GL_TYPE, mark .. "íeis" .. PT_TYPE, "íais" .. GL_ALTVAR, mark .. "íais" .. GL_ALTVAR},
{"iam" .. GL_TYPE, mark .. "iam" .. PT_TYPE})
else
-- Don't insert forms with the mesoclitic insertion point to avoid duplication in non-reflexive verbs.
add_tense("fut", stems.fut, "ei", "ás", "á", "emos", {"edes" .. GL_TYPE, "eis" .. PT_TYPE},
{"ám" .. GL_TYPE, "ão" .. PT_TYPE})
add_tense("cond", stems.cond, "ia", "ias", "ia", "íamos",
-- FIXME, is GL_ALTVAR correct for the mesoclitic variant of -íais?
{"íades" .. GL_TYPE, "íeis" .. PT_TYPE, "íais" .. GL_ALTVAR}, "iam")
end
-- Different stems for different parts of the personal infinitive to correctly handle forms of [[sair]] and [[pôr]].
add_tense("pers_inf", base.non_prefixed_verb, "", nil, "")
add_tense("pers_inf", stems.pers_inf, nil, "**res", nil, "*rmos", "*rdes", "**rem")
end
local function add_non_finite_forms(base)
local stems = base.this_stems
local function addit(slot, stems, ending, footnotes)
add3(base, slot, stems, ending, footnotes)
end
insert_form(base, "infinitive", {form = base.verb})
-- Also insert "infinitive + reflexive pronoun" combinations if we're handling a reflexive verb. See comment below for
-- "gerund + reflexive pronoun" combinations.
if base.refl then
for _, persnum in ipairs(person_number_list) do
insert_form(base, "infinitive_" .. persnum, {form = base.verb})
end
end
-- verbs in -por have the gerund overridden
local ger_ending = base.conj == "ar" and "ando" or base.conj == "er" and "endo" or "indo"
addit("gerund", stems.pres_unstressed, ger_ending)
-- Also insert "gerund + reflexive pronoun" combinations if we're handling a reflexive verb. We insert exactly the same
-- form as for the bare gerund; later on in add_reflexive_or_fixed_clitic_to_forms(), we add the appropriate clitic
-- pronouns. It's important not to do this for non-reflexive verbs, because in that case, the clitic pronouns won't be
-- added, and {{gl-reinteg-verb form of}} will wrongly consider all these combinations as possible inflections of the bare
-- gerund. Thanks to [[User:JeffDoozan]] for this bug fix.
if base.refl then
for _, persnum in ipairs(person_number_list) do
addit("gerund_" .. persnum, stems.pres_unstressed, ger_ending)
end
end
-- Skip the long/short past participle footnotes if called from {{gl-reinteg-verb}} so they don't show in the headword.
local long_pp_footnotes =
stems.short_pp_ms and base.alternant_multiword_spec.source_template ~= "gl-reinteg-verb" and {long_pp_footnote} or nil
addit("pp_ms", stems.pp_ms, "", long_pp_footnotes)
if not base.pp_inv then
addit("pp_fs", stems.pp_fs, "", long_pp_footnotes)
addit("pp_mp", stems.pp_ms, "s", long_pp_footnotes)
addit("pp_fp", stems.pp_fs, "s", long_pp_footnotes)
end
if stems.short_pp_ms then
local short_pp_footnotes =
stems.short_pp_ms and base.alternant_multiword_spec.source_template ~= "gl-reinteg-verb" and {short_pp_footnote} or nil
addit("short_pp_ms", stems.short_pp_ms, "", short_pp_footnotes)
if not base.pp_inv then
addit("short_pp_fs", stems.short_pp_fs, "", short_pp_footnotes)
addit("short_pp_mp", stems.short_pp_ms, "s", short_pp_footnotes)
addit("short_pp_fp", stems.short_pp_fs, "s", short_pp_footnotes)
end
end
end
local function copy_forms_to_imperatives(base)
-- Copy pres3s to imperative since they are almost always the same.
insert_forms(base, "imp_2s", iut.map_forms(base.forms.pres_3s, function(form) return form end))
if not skip_slot(base, "imp_2p") then
-- Copy pres2p to imperative 2p minus -s since they are almost always the same.
-- But not if there's an override, to avoid possibly throwing an error.
insert_forms(base, "imp_2p", iut.map_forms(base.forms.pres_2p, function(form)
local form_no_s, var_codes = rmatch(form, "^(.*)s(" .. var_code_c .. "*)$")
if not form_no_s then
error("Can't derive second-person plural imperative from second-person plural present indicative " ..
"because form '" .. form .. "' doesn't end in -s")
end
return form_no_s .. var_codes
end))
end
-- Copy subjunctives to imperatives, unless there's an override for the given slot (as with the imp_1p of [[ir]]).
for _, persnum in ipairs({"3s", "1p", "3p"}) do
local from = "pres_sub_" .. persnum
local to = "imp_" .. persnum
insert_forms(base, to, iut.map_forms(base.forms[from], function(form) return form end))
end
end
local function process_slot_overrides(base, filter_slot, reflexive_only)
local overrides = reflexive_only and base.basic_reflexive_only_overrides or base.basic_overrides
for slot, forms in pairs(overrides) do
if not filter_slot or filter_slot(slot) then
add3(base, slot, forms, "", nil, "allow overrides")
end
end
end
-- Prefix `form` with `clitic`, adding fixed text `between` between them. Add links as appropriate unless the user
-- requested no links. Check whether form already has brackets (as will be the case if the form has a fixed clitic).
local function prefix_clitic_to_form(base, clitic, between, form)
if base.alternant_multiword_spec.args.noautolinkverb then
return clitic .. between .. form
else
local clitic_pref = "[[" .. clitic .. "]]" .. between
if form:find("%[%[") then
return clitic_pref .. form
else
return clitic_pref .. "[[" .. form .. "]]"
end
end
end
-- Add the appropriate clitic pronouns in `clitics` to the forms in `base_slot`. `store_cliticized_form` is a function
-- of three arguments (clitic, formobj, cliticized_form) and should store the cliticized form for the specified clitic
-- and form object.
local function suffix_clitic_to_forms(base, base_slot, clitics, store_cliticized_form)
if not base.forms[base_slot] then
-- This can happen, e.g. in only3s/only3sp/only3p verbs.
return
end
local autolink = not base.alternant_multiword_spec.args.noautolinkverb
for _, formobj in ipairs(base.forms[base_slot]) do
for _, clitic in ipairs(clitics) do
local cliticized_form
if formobj.form:find(TEMP_MESOCLITIC_INSERTION_POINT) then
-- mesoclisis in future and conditional
local infinitive, suffix = rmatch(formobj.form, "^(.*)" .. TEMP_MESOCLITIC_INSERTION_POINT .. "(.*)$")
if not infinitive then
error("Internal error: Can't find mesoclitic insertion point in slot '" .. base_slot .. "', form '" ..
formobj.form .. "'")
end
local full_form = infinitive .. suffix
if autolink and not infinitive:find("%[%[") then
infinitive = "[[" .. infinitive .. "]]"
end
cliticized_form =
autolink and infinitive .. "-[[" .. clitic .. "]]-[[" .. full_form .. "|" .. suffix .. "]]" or
infinitive .. "-" .. clitic .. "-" .. suffix
else
local clitic_suffix = autolink and "-[[" .. clitic .. "]]" or "-" .. clitic
local form_needs_link = autolink and not formobj.form:find("%[%[")
if base_slot:find("1p$") then
-- Final -s disappears: arrependíamos + nos -> arrependíamo-nos, etc.
cliticized_form = formobj.form:gsub("s$", "")
if form_needs_link then
cliticized_form = "[[" .. formobj.form .. "|" .. cliticized_form .. "]]"
end
else
cliticized_form = formobj.form
if form_needs_link then
cliticized_form = "[[" .. cliticized_form .. "]]"
end
end
cliticized_form = cliticized_form .. clitic_suffix
end
store_cliticized_form(clitic, formobj, cliticized_form)
end
end
end
-- Add a reflexive pronoun or fixed clitic (FIXME: not working), as appropriate to the base forms that were generated.
-- `do_joined` means to do only the forms where the pronoun is joined to the end of the form; otherwise, do only the
-- forms where it is not joined and precedes the form.
local function add_reflexive_or_fixed_clitic_to_forms(base, do_reflexive, do_joined)
for _, slotaccel in ipairs(base.alternant_multiword_spec.verb_slots_basic) do
local slot, accel = unpack(slotaccel)
local clitic
if not do_reflexive then
clitic = base.clitic
elseif slot:find("[123]") then
local persnum = slot:match("^.*_(.-)$")
clitic = person_number_to_reflexive_pronoun[persnum]
else
clitic = "se"
end
if base.forms[slot] then
if do_reflexive and slot:find("^pp_") or slot == "infinitive_linked" then
-- do nothing with reflexive past participles or with infinitive linked (handled at the end)
elseif slot:find("^neg_imp_") then
error("Internal error: Should not have forms set for negative imperative at this stage")
else
local slot_has_suffixed_clitic = not slot:find("_sub")
-- Maybe generate non-reflexive parts and separated syntactic variants for use in
-- {{gl-reinteg-verb form of}}. See comment in add_slots() above `need_special_verb_form_of_slots`.
-- Check for do_joined so we only run this code once.
if do_reflexive and do_joined and base.alternant_multiword_spec.source_template == "gl-reinteg-verb form of" and
-- Skip personal variants of infinitives and gerunds so we don't think [[arrependendo]] is a
-- non-reflexive equivalent of [[arrependendo-me]].
not slot:find("infinitive_") and not slot:find("gerund_") then
-- Clone the forms because we will be destructively modifying them just below, adding the reflexive
-- pronoun.
insert_forms(base, slot .. "_non_reflexive", mw.clone(base.forms[slot]))
if slot_has_suffixed_clitic then
insert_forms(base, slot .. "_variant", iut.map_forms(base.forms[slot], function(form)
return prefix_clitic_to_form(base, clitic, " ... ", form)
end))
end
end
if slot_has_suffixed_clitic then
if do_joined then
suffix_clitic_to_forms(base, slot, {clitic},
function(clitic, formobj, cliticized_form)
formobj.form = cliticized_form
end
)
end
elseif not do_joined then
-- Add clitic as separate word before all other forms.
for _, form in ipairs(base.forms[slot]) do
form.form = prefix_clitic_to_form(base, clitic, " ", form.form)
end
end
end
end
end
end
local function handle_infinitive_linked(base)
-- Compute linked versions of potential lemma slots, for use in {{gl-reinteg-verb}}.
-- We substitute the original lemma (before removing links) for forms that
-- are the same as the lemma, if the original lemma has links.
for _, slot in ipairs({"infinitive"}) do
insert_forms(base, slot .. "_linked", iut.map_forms(base.forms[slot], function(form)
if form == base.lemma and rfind(base.linked_lemma, "%[%[") then
return base.linked_lemma
else
return form
end
end))
end
end
local function generate_negative_imperatives(base)
-- Copy subjunctives to negative imperatives, preceded by "nom".
for _, persnum in ipairs(neg_imp_person_number_list) do
local from = "pres_sub_" .. persnum
local to = "neg_imp_" .. persnum
insert_forms(base, to, iut.map_forms(base.forms[from], function(form)
if base.alternant_multiword_spec.args.noautolinkverb then
return "nom " .. form
elseif form:find("%[%[") then
-- already linked, e.g. when reflexive
return "[[nom]] " .. form
else
return "[[nom]] [[" .. form .. "]]"
end
end))
end
end
-- Process specs given by the user using 'addnote[SLOTSPEC][FOOTNOTE][FOOTNOTE][...]'.
local function process_addnote_specs(base)
for _, spec in ipairs(base.addnote_specs) do
for _, slot_spec in ipairs(spec.slot_specs) do
slot_spec = "^" .. slot_spec .. "$"
for slot, forms in pairs(base.forms) do
if rfind(slot, slot_spec) then
-- To save on memory, side-effect the existing forms.
for _, form in ipairs(forms) do
form.footnotes = iut.combine_footnotes(form.footnotes, spec.footnotes)
end
end
end
end
end
end
local function add_missing_links_to_forms(base)
-- Any forms without links should get them now. Redundant ones will be stripped later.
for slot, forms in pairs(base.forms) do
for _, form in ipairs(forms) do
if not form.form:find("%[%[") then
form.form = "[[" .. form.form .. "]]"
end
end
end
end
-- Remove special characters added to future and conditional forms to indicate mesoclitic insertion points.
local function remove_mesoclitic_insertion_points(base)
for slot, forms in pairs(base.forms) do
if slot:find("^fut_") or slot:find("^cond_") then
for _, form in ipairs(forms) do
form.form = form.form:gsub(TEMP_MESOCLITIC_INSERTION_POINT, "")
end
end
end
end
-- If called from {{gl-reinteg-verb}}, remove less-recommended variants; otherwise add a footnote indicating they are
-- less recommended, and sort them last.
local function process_altvar_forms(base)
for slot, forms in pairs(base.forms) do
-- As an optimization, check if there are any less-recommended forms and don't do anything if not.
local saw_altvar = false
for _, form in ipairs(forms) do
if form.form:find(ALTVAR) then
saw_altvar = true
break
end
end
if saw_altvar then
if base.alternant_multiword_spec.source_template == "gl-reinteg-verb" then
base.forms[slot] = iut.flatmap_forms(base.forms[slot], function(form)
if form:find(ALTVAR) then
return {}
else
return {form}
end
end)
else
local existing_forms = base.forms[slot]
base.forms[slot] = {}
for _, formobj in ipairs(existing_forms) do
if not formobj.form:find(ALTVAR) then
iut.insert_form(base.forms, slot, formobj)
end
end
for _, formobj in ipairs(existing_forms) do
if formobj.form:find(ALTVAR) then
formobj.footnotes = iut.combine_footnotes(formobj.footnotes, {"[less recommended]"})
iut.insert_form(base.forms, slot, formobj)
end
end
end
end
end
end
local function conjugate_verb(base)
for _, vowel_alt in ipairs(base.vowel_alt_stems) do
construct_stems(base, vowel_alt)
add_present_indic(base)
add_present_subj(base)
end
add_finite_non_present(base)
add_non_finite_forms(base)
-- do non-reflexive non-imperative slot overrides
process_slot_overrides(base, function(slot)
return not slot:find("^imp_") and not slot:find("^neg_imp_")
end)
-- This should happen after process_slot_overrides() in case a derived slot is based on an override
-- (as with the imp_3s of [[dar]], [[estar]]).
copy_forms_to_imperatives(base)
-- do non-reflexive positive imperative slot overrides
process_slot_overrides(base, function(slot)
return slot:find("^imp_")
end)
-- We need to add joined reflexives, then joined and non-joined clitics, then non-joined reflexives, so we get
-- [[arrepende-te]] but [[nom]] [[te]] [[arrependas]].
if base.refl then
add_reflexive_or_fixed_clitic_to_forms(base, "do reflexive", "do joined")
process_slot_overrides(base, nil, "do reflexive") -- do reflexive-only slot overrides
add_reflexive_or_fixed_clitic_to_forms(base, "do reflexive", false)
end
-- This should happen after add_reflexive_or_fixed_clitic_to_forms() so negative imperatives get the reflexive pronoun
-- and clitic in them.
generate_negative_imperatives(base)
-- do non-reflexive negative imperative slot overrides
-- FIXME: What about reflexive negative imperatives?
process_slot_overrides(base, function(slot)
return slot:find("^neg_imp_")
end)
-- This should happen before add_missing_links_to_forms() so that the comparison `form == base.lemma`
-- in handle_infinitive_linked() works correctly and compares unlinked forms to unlinked forms.
handle_infinitive_linked(base)
process_addnote_specs(base)
if not base.alternant_multiword_spec.args.noautolinkverb then
add_missing_links_to_forms(base)
end
remove_mesoclitic_insertion_points(base)
process_altvar_forms(base)
end
local function parse_indicator_spec(angle_bracket_spec)
-- Store the original angle bracket spec so we can reconstruct the overall conj spec with the lemma(s) in them.
local base = {
angle_bracket_spec = angle_bracket_spec,
user_basic_overrides = {},
user_stems = {},
addnote_specs = {},
}
local function parse_err(msg)
error(msg .. ": " .. angle_bracket_spec)
end
local function fetch_footnotes(separated_group)
local footnotes
for j = 2, #separated_group - 1, 2 do
if separated_group[j + 1] ~= "" then
parse_err("Extraneous text after bracketed footnotes: '" .. table.concat(separated_group) .. "'")
end
if not footnotes then
footnotes = {}
end
table.insert(footnotes, separated_group[j])
end
return footnotes
end
local inside = angle_bracket_spec:match("^<(.*)>$")
assert(inside)
if inside == "" then
return base
end
local segments = put.parse_balanced_segment_run(inside, "[", "]")
local dot_separated_groups = put.split_alternating_runs(segments, "%.")
for i, dot_separated_group in ipairs(dot_separated_groups) do
local first_element = dot_separated_group[1]
if first_element == "addnote" then
local spec_and_footnotes = fetch_footnotes(dot_separated_group)
if #spec_and_footnotes < 2 then
parse_err("Spec with 'addnote' should be of the form 'addnote[SLOTSPEC][FOOTNOTE][FOOTNOTE][...]'")
end
local slot_spec = table.remove(spec_and_footnotes, 1)
local slot_spec_inside = rmatch(slot_spec, "^%[(.*)%]$")
if not slot_spec_inside then
parse_err("Internal error: slot_spec " .. slot_spec .. " should be surrounded with brackets")
end
local slot_specs = rsplit(slot_spec_inside, ",")
-- FIXME: Here, [[Module:it-verb]] called strip_spaces(). Generally we don't do this. Should we?
table.insert(base.addnote_specs, {slot_specs = slot_specs, footnotes = spec_and_footnotes})
elseif indicator_flags[first_element] then
if #dot_separated_group > 1 then
parse_err("No footnotes allowed with '" .. first_element .. "' spec")
end
if base[first_element] then
parse_err("Spec '" .. first_element .. "' specified twice")
end
base[first_element] = true
elseif rfind(first_element, ":") then
local colon_separated_groups = put.split_alternating_runs(dot_separated_group, "%s*:%s*")
local first_element = colon_separated_groups[1][1]
if #colon_separated_groups[1] > 1 then
parse_err("Can't attach footnotes directly to '" .. first_element .. "' spec; attach them to the " ..
"colon-separated values following the initial colon")
end
if overridable_stems[first_element] then
if base.user_stems[first_element] then
parse_err("Overridable stem '" .. first_element .. "' specified twice")
end
table.remove(colon_separated_groups, 1)
base.user_stems[first_element] = overridable_stems[first_element](colon_separated_groups,
{prefix = first_element, base = base, parse_err = parse_err, fetch_footnotes = fetch_footnotes})
else -- assume a basic override; we validate further later when the possible slots are available
if base.user_basic_overrides[first_element] then
parse_err("Basic override '" .. first_element .. "' specified twice")
end
table.remove(colon_separated_groups, 1)
base.user_basic_overrides[first_element] = allow_multiple_values(colon_separated_groups,
{prefix = first_element, base = base, parse_err = parse_err, fetch_footnotes = fetch_footnotes})
end
else
local comma_separated_groups = put.split_alternating_runs(dot_separated_group, "%s*,%s*")
for j = 1, #comma_separated_groups do
local alt = comma_separated_groups[j][1]
if not vowel_alternants[alt] then
if #comma_separated_groups == 1 then
parse_err("Unrecognized spec or vowel alternant '" .. alt .. "'")
else
parse_err("Unrecognized vowel alternant '" .. alt .. "'")
end
end
if base.vowel_alt then
for _, existing_alt in ipairs(base.vowel_alt) do
if existing_alt.form == alt then
parse_err("Vowel alternant '" .. alt .. "' specified twice")
end
end
else
base.vowel_alt = {}
end
table.insert(base.vowel_alt, {form = alt, footnotes = fetch_footnotes(comma_separated_groups[j])})
end
end
end
return base
end
-- Normalize all lemmas, substituting the pagename for blank lemmas and adding links to multiword lemmas.
local function normalize_all_lemmas(alternant_multiword_spec, head)
-- (1) Add links to all before and after text. Remember the original text so we can reconstruct the verb spec later.
if not alternant_multiword_spec.args.noautolinktext then
iut.add_links_to_before_and_after_text(alternant_multiword_spec, "remember original")
end
-- (2) Remove any links from the lemma, but remember the original form
-- so we can use it below in the 'lemma_linked' form.
iut.map_word_specs(alternant_multiword_spec, function(base)
if base.lemma == "" then
base.lemma = head
end
base.user_specified_lemma = base.lemma
base.lemma = m_links.remove_links(base.lemma)
local refl_verb = base.lemma
local verb, refl = rmatch(refl_verb, "^(.-)%-(se)$")
if not verb then
verb, refl = refl_verb, nil
end
base.user_specified_verb = verb
base.refl = refl
base.verb = base.user_specified_verb
local linked_lemma
if alternant_multiword_spec.args.noautolinkverb or base.user_specified_lemma:find("%[%[") then
linked_lemma = base.user_specified_lemma
elseif base.refl then
-- Reconstruct the linked lemma with separate links around base verb and reflexive pronoun.
linked_lemma = base.user_specified_verb == base.verb and "[[" .. base.user_specified_verb .. "]]" or
"[[" .. base.verb .. "|" .. base.user_specified_verb .. "]]"
linked_lemma = linked_lemma .. (refl and "-[[" .. refl .. "]]" or "")
else
-- Add links to the lemma so the user doesn't specifically need to, since we preserve
-- links in multiword lemmas and include links in non-lemma forms rather than allowing
-- the entire form to be a link.
linked_lemma = iut.add_links(base.user_specified_lemma)
end
base.linked_lemma = linked_lemma
end)
end
local function detect_indicator_spec(base)
if (base.only3s and 1 or 0) + (base.only3sp and 1 or 0) + (base.only3p and 1 or 0) > 1 then
error("Only one of 'only3s', 'only3sp' and 'only3p' can be specified")
end
base.forms = {}
base.stems = {}
base.basic_overrides = {}
base.basic_reflexive_only_overrides = {}
if not base.no_built_in then
for _, built_in_conj in ipairs(built_in_conjugations) do
if type(built_in_conj.match) == "function" then
base.prefix, base.non_prefixed_verb = built_in_conj.match(base.verb)
elseif built_in_conj.match:find("^%^") and rsub(built_in_conj.match, "^%^", "") == base.verb then
-- begins with ^, for exact match, and matches
base.prefix, base.non_prefixed_verb = "", base.verb
else
base.prefix, base.non_prefixed_verb = rmatch(base.verb, "^(.*)(" .. built_in_conj.match .. ")$")
end
if base.prefix then
-- we found a built-in verb
for stem, forms in pairs(built_in_conj.forms) do
if type(forms) == "function" then
forms = forms(base, base.prefix)
end
if stem:find("^refl_") then
stem = stem:gsub("^refl_", "")
if not base.alternant_multiword_spec.verb_slots_basic_map[stem] then
error("Internal error: setting for 'refl_" .. stem .. "' does not refer to a basic verb slot")
end
base.basic_reflexive_only_overrides[stem] = forms
elseif base.alternant_multiword_spec.verb_slots_basic_map[stem] then
-- an individual form override of a basic form
base.basic_overrides[stem] = forms
else
base.stems[stem] = forms
end
end
break
end
end
end
-- Override built-in-verb stems and overrides with user-specified ones.
for stem, values in pairs(base.user_stems) do
base.stems[stem] = values
end
for override, values in pairs(base.user_basic_overrides) do
if not base.alternant_multiword_spec.verb_slots_basic_map[override] then
error("Unrecognized override '" .. override .. "': " .. base.angle_bracket_spec)
end
base.basic_overrides[override] = values
end
base.prefix = base.prefix or ""
base.non_prefixed_verb = base.non_prefixed_verb or base.verb
local inf_stem, suffix = rmatch(base.non_prefixed_verb, "^(.*)([aeioô]r)$")
if not inf_stem then
error("Unrecognized infinitive: " .. base.verb)
end
base.inf_stem = inf_stem
suffix = suffix == "ôr" and "or" or suffix
base.conj = suffix
base.conj_vowel = suffix == "ar" and "á" or suffix == "ir" and "í" or "ê"
base.frontback = suffix == "ar" and "back" or "front"
if base.stems.vowel_alt then -- built-in verb with specified vowel alternation
if base.vowel_alt then
error(base.verb .. " is a recognized built-in verb, and should not have vowel alternations specified with it")
end
base.vowel_alt = iut.convert_to_general_list_form(base.stems.vowel_alt)
end
-- Propagate built-in-verb indicator flags to `base` and combine with user-specified flags.
for indicator_flag, _ in pairs(indicator_flags) do
base[indicator_flag] = base[indicator_flag] or base.stems[indicator_flag]
end
-- Convert vowel alternation indicators into stems.
local vowel_alt = base.vowel_alt or {{form = "+"}}
base.vowel_alt_stems = apply_vowel_alternations(base.inf_stem, vowel_alt)
for _, vowel_alt_stems in ipairs(base.vowel_alt_stems) do
if vowel_alt_stems.err then
error("To use '" .. vowel_alt_stems.altobj.form .. "', present stem '" .. base.prefix .. base.inf_stem .. "' " ..
vowel_alt_stems.err)
end
end
end
local function detect_all_indicator_specs(alternant_multiword_spec)
-- Propagate some settings up; some are used internally, others by [[Module:gl-headword]].
iut.map_word_specs(alternant_multiword_spec, function(base)
-- Internal indicator flags. Do these before calling detect_indicator_spec() because add_slots() uses them.
for _, prop in ipairs { "refl", "clitic" } do
if base[prop] then
alternant_multiword_spec[prop] = true
end
end
base.alternant_multiword_spec = alternant_multiword_spec
end)
add_slots(alternant_multiword_spec)
alternant_multiword_spec.vowel_alt = {}
iut.map_word_specs(alternant_multiword_spec, function(base)
detect_indicator_spec(base)
-- User-specified indicator flags. Do these after calling detect_indicator_spec() because the latter may set these
-- indicators for built-in verbs.
for prop, _ in pairs(indicator_flags) do
if base[prop] then
alternant_multiword_spec[prop] = true
end
end
-- Vowel alternants. Do these after calling detect_indicator_spec() because the latter sets base.vowel_alt for
-- built-in verbs.
if base.vowel_alt then
for _, altobj in ipairs(base.vowel_alt) do
m_table.insertIfNot(alternant_multiword_spec.vowel_alt, altobj.form)
end
end
end)
end
local function add_categories_and_annotation(alternant_multiword_spec, base, multiword_lemma)
local function insert_ann(anntype, value)
m_table.insertIfNot(alternant_multiword_spec.annotation[anntype], value)
end
local function insert_cat(cat, also_when_multiword)
-- Don't place multiword terms in categories like 'Galician verbs ending in -ar' to avoid spamming the
-- categories with such terms.
if also_when_multiword or not multiword_lemma then
m_table.insertIfNot(alternant_multiword_spec.categories, "Galician " .. cat)
end
end
if check_for_red_links and alternant_multiword_spec.source_template == "gl-reinteg-conj" and multiword_lemma then
for _, slot_and_accel in ipairs(alternant_multiword_spec.all_verb_slots) do
local slot = slot_and_accel[1]
local forms = base.forms[slot]
local must_break = false
if forms then
for _, form in ipairs(forms) do
if not form.form:find("%[%[") then
local title = mw.title.new(form.form)
if title and not title.exists then
insert_cat("verbs with red links in their inflection tables")
must_break = true
break
end
end
end
end
if must_break then
break
end
end
end
if(base.conj == "or") then
insert_cat("verbs ending in -er")
else
insert_cat("verbs ending in -" .. base.conj)
end
if base.irreg then
insert_ann("irreg", "irregular")
insert_cat("irregular verbs")
else
insert_ann("irreg", "regular")
end
if base.only3s then
insert_ann("defective", "impersonal")
insert_cat("impersonal verbs")
elseif base.only3sp then
insert_ann("defective", "third-person only")
insert_cat("third-person-only verbs")
elseif base.only3p then
insert_ann("defective", "third-person plural only")
insert_cat("third-person-plural-only verbs")
elseif base.no_pres_stressed or base.no_pres1_and_sub then
insert_ann("defective", "defective")
insert_cat("defective verbs")
else
insert_ann("defective", "regular")
end
if base.stems.short_pp then
insert_ann("short_pp", "irregular short past participle")
insert_cat("verbs with irregular short past participle")
else
insert_ann("short_pp", "regular")
end
if base.clitic then
insert_cat("verbs with lexical clitics")
end
if base.refl then
insert_cat("reflexive verbs")
end
if base.e_ei_cat then
insert_ann("vowel_alt", "''e'' may become ''ei'' when stressed")
insert_cat("verbs with e becoming ei when stressed")
elseif not base.vowel_alt then
insert_ann("vowel_alt", "non-alternating")
else
for _, alt in ipairs(base.vowel_alt) do
if alt.form == "+" then
insert_ann("vowel_alt", "non-alternating")
else
insert_ann("vowel_alt", vowel_alternant_to_desc[alt.form])
insert_cat("verbs with " .. vowel_alternant_to_cat[alt.form])
end
end
end
local cons_alt = base.stems.cons_alt
if cons_alt == nil then
if base.conj == "ar" then
if base.inf_stem:find("ç$") then
cons_alt = "c-ç"
elseif base.inf_stem:find("c$") then
cons_alt = "c-qu"
elseif base.inf_stem:find("g$") then
cons_alt = "g-gu"
end
else
if base.no_pres_stressed or base.no_pres1_and_sub then
cons_alt = nil -- no e.g. c-ç alternation in this case
elseif base.inf_stem:find("c$") then
cons_alt = "c-ç"
elseif base.inf_stem:find("qu$") then
cons_alt = "c-qu"
elseif base.inf_stem:find("g$") then
cons_alt = "g-j"
elseif base.inf_stem:find("gu$") then
cons_alt = "g-gu"
end
end
end
if cons_alt then
local desc = cons_alt .. " alternation"
insert_ann("cons_alt", desc)
insert_cat("verbs with " .. desc)
else
insert_ann("cons_alt", "non-alternating")
end
end
-- Compute the categories to add the verb to, as well as the annotation to display in the
-- conjugation title bar. We combine the code to do these functions as both categories and
-- title bar contain similar information.
local function compute_categories_and_annotation(alternant_multiword_spec)
alternant_multiword_spec.categories = {}
local ann = {}
alternant_multiword_spec.annotation = ann
ann.irreg = {}
ann.short_pp = {}
ann.defective = {}
ann.vowel_alt = {}
ann.cons_alt = {}
local multiword_lemma = false
for _, form in ipairs(alternant_multiword_spec.forms.infinitive) do
if form.form:find(" ") then
multiword_lemma = true
break
end
end
iut.map_word_specs(alternant_multiword_spec, function(base)
add_categories_and_annotation(alternant_multiword_spec, base, multiword_lemma)
end)
local ann_parts = {}
local irreg = table.concat(ann.irreg, " or ")
if irreg ~= "" and irreg ~= "regular" then
table.insert(ann_parts, irreg)
end
local short_pp = table.concat(ann.short_pp, " or ")
if short_pp ~= "" and short_pp ~= "regular" then
table.insert(ann_parts, short_pp)
end
local defective = table.concat(ann.defective, " or ")
if defective ~= "" and defective ~= "regular" then
table.insert(ann_parts, defective)
end
local vowel_alt = table.concat(ann.vowel_alt, " or ")
if vowel_alt ~= "" and vowel_alt ~= "non-alternating" then
table.insert(ann_parts, vowel_alt)
end
local cons_alt = table.concat(ann.cons_alt, " or ")
if cons_alt ~= "" and cons_alt ~= "non-alternating" then
table.insert(ann_parts, cons_alt)
end
alternant_multiword_spec.annotation = table.concat(ann_parts, "; ")
end
local function show_forms(alternant_multiword_spec)
local lemmas = alternant_multiword_spec.forms.infinitive
alternant_multiword_spec.lemmas = lemmas -- save for later use in make_table()
if alternant_multiword_spec.forms.short_pp_ms then
alternant_multiword_spec.has_short_pp = true
end
local reconstructed_verb_spec = iut.reconstruct_original_spec(alternant_multiword_spec)
local function transform_accel_obj(slot, formobj, accel_obj)
-- No accelerators for negative imperatives, which are always multiword and derived directly from the
-- present subjunctive.
if slot:find("^neg_imp") then
return nil
end
if accel_obj then
if slot:find("^pp_") then
accel_obj.form = slot
elseif slot == "gerund" then
accel_obj.form = "reinteg-gerund-" .. reconstructed_verb_spec
else
accel_obj.form = "reinteg-verb-form-" .. reconstructed_verb_spec
end
end
return accel_obj
end
-- Italicize less-recommended forms.
local function generate_link(data)
local formval_for_link = data.form.formval_for_link
if formval_for_link:find(ALTVAR) then
formval_for_link = formval_for_link:gsub(ALTVAR, "")
return m_links.full_link({lang = lang, term = formval_for_link, tr = "-", accel = data.form.accel_obj},
"term") .. iut.get_footnote_text(data.form.footnotes, data.footnote_obj)
end
end
local props = {
lang = lang,
lemmas = lemmas,
transform_accel_obj = transform_accel_obj,
canonicalize = function(form) return export.remove_variant_codes(form, "keep altvar") end,
generate_link = generate_link,
slot_list = alternant_multiword_spec.verb_slots_basic,
}
iut.show_forms(alternant_multiword_spec.forms, props)
alternant_multiword_spec.footnote_basic = alternant_multiword_spec.forms.footnote
end
local notes_template = [=[
<div class="roa-footnote-outer-div" style="width:100%;">
<div class="roa-footnote-inner-div">
{footnote}
</div></div>
]=]
local basic_table = [=[
{description}<div class="NavFrame">
<div class="NavHead" align=center> การผันรูปปฏิบูรณาการนิยมของ {title} (ดูที่ [[ภาคผนวก:ปฏิบูรณาการนิยม]])</div>
<div class="NavContent" align="left">
{\op}| class="roa-inflection-table" data-toggle-category="inflection"
|-
! class="roa-person-number-header" rowspan="2" |
! class="roa-person-number-header" colspan="3" | เอกพจน์
! class="roa-person-number-header" colspan="3" | พหูพจน์
|-
! class="roa-person-number-header" style="width:12.5%" | บุรุษที่หนึ่ง<br />(<<eu>>)
! class="roa-person-number-header" style="width:12.5%" | บุรุษที่สอง<br />(<<ti>> / <<tu>>)
! class="roa-person-number-header" style="width:12.5%" | บุรุษที่สาม<br />(<<ele>> / <<ela>> / <<você>>)
! class="roa-person-number-header" style="width:12.5%" | บุรุษที่หนึ่ง<br />(<<nós>>)
! class="roa-person-number-header" style="width:12.5%" | บุรุษที่สอง<br />(<<vós>>)
! class="roa-person-number-header" style="width:12.5%" | บุรุษที่สาม<br />(<<eles>> / <<elas>> / <<vocês>>)
|-
! class="roa-nonfinite-header" colspan="7" | ''<span title="infinitivo">รูปกริยากลาง</span>''
|-
! class="roa-nonfinite-header" | '''<span title="infinitivo impessoal">คำอบุรุษกริยา</span>'''
| colspan="6" | {infinitive}
|-
! class="roa-nonfinite-header" | '''<span title="infinitivo flexionado">คำบุรุษกริยา</span>'''
| {pers_inf_1s}
| {pers_inf_2s}
| {pers_inf_3s}
| {pers_inf_1p}
| {pers_inf_2p}
| {pers_inf_3p}
|-
! class="roa-nonfinite-header" colspan="7" | ''<span title="gerúndio">รูปกริยาเป็นนาม</span>''
|-
| class="roa-nonfinite-header" |
| colspan="6" | {gerund}
|-{pp_clause}
! class="roa-indicative-left-rail" colspan="7" | ''<span title="indicativo">มาลาบอกเล่า</span>''
|-
! class="roa-indicative-left-rail" | <span title="presente">ปัจจุบันกาล</span>
| {pres_1s}
| {pres_2s}
| {pres_3s}
| {pres_1p}
| {pres_2p}
| {pres_3p}
|-
! class="roa-indicative-left-rail" | <span title="pretérito imperfeito">ไม่สมบูรณ์</span>
| {impf_1s}
| {impf_2s}
| {impf_3s}
| {impf_1p}
| {impf_2p}
| {impf_3p}
|-
! class="roa-indicative-left-rail" | <span title="pretérito perfeito">อดีตกาลสิ้นสุด (สมบูรณ์)</span>
| {pret_1s}
| {pret_2s}
| {pret_3s}
| {pret_1p}
| {pret_2p}
| {pret_3p}
|-
! class="roa-indicative-left-rail" | <span title="pretérito mais-que-perfeito simples">อภิสมบูรณ์</span>
| {plup_1s}
| {plup_2s}
| {plup_3s}
| {plup_1p}
| {plup_2p}
| {plup_3p}
|-
! class="roa-indicative-left-rail" | <span title="futuro do presente">อนาคตกาล</span>
| {fut_1s}
| {fut_2s}
| {fut_3s}
| {fut_1p}
| {fut_2p}
| {fut_3p}
|-
! class="roa-indicative-left-rail" | <span title="condicional">มาลาเงื่อนไข</span>
| {cond_1s}
| {cond_2s}
| {cond_3s}
| {cond_1p}
| {cond_2p}
| {cond_3p}
|-
! class="roa-subjunctive-left-rail" colspan="7" | ''<span title="conjuntivo">มาลาสมมุติ</span>''
|-
! class="roa-subjunctive-left-rail" | <span title=" presente do conjuntivo">ปัจจุบันกาล</span>
| {pres_sub_1s}
| {pres_sub_2s}
| {pres_sub_3s}
| {pres_sub_1p}
| {pres_sub_2p}
| {pres_sub_3p}
|-
! class="roa-subjunctive-left-rail" | <span title="pretérito imperfeito do conjuntivo">ไม่สมบูรณ์</span>
| {impf_sub_1s}
| {impf_sub_2s}
| {impf_sub_3s}
| {impf_sub_1p}
| {impf_sub_2p}
| {impf_sub_3p}
|-
! class="roa-subjunctive-left-rail" | <span title="futuro do conjuntivo">อนาคตกาล</span>
| {fut_sub_1s}
| {fut_sub_2s}
| {fut_sub_3s}
| {fut_sub_1p}
| {fut_sub_2p}
| {fut_sub_3p}
|-
! class="roa-imperative-left-rail" colspan="7" | ''<span title="imperativo">มาลาสั่ง</span>''
|-
! class="roa-imperative-left-rail" | <span title="imperativo afirmativo">เชิงยืนยัน</span>
| rowspan="2" |
| {imp_2s}
| {imp_3s}
| {imp_1p}
| {imp_2p}
| {imp_3p}
|-
! class="roa-imperative-left-rail" | <span title="imperativo negativo">เชิงปฏิเสธ</span> (<<nom>>)
| {neg_imp_2s}
| {neg_imp_3s}
| {neg_imp_1p}
| {neg_imp_2p}
| {neg_imp_3p}
|{\cl}{notes_clause}</div></div>
]=]
local double_pp_template = [=[
! class="roa-nonfinite-header" colspan="7" | ''<span title="particípio irregular">รูปกริยาขยายอดีตกาลสั้น</span>''
|-
! class="roa-nonfinite-header" | เพศชาย
| colspan="3" | {short_pp_ms}
| colspan="3" | {short_pp_mp}
|-
! class="roa-nonfinite-header" | เพศหญิง
| colspan="3" | {short_pp_fs}
| colspan="3" | {short_pp_fp}
|-
! class="roa-nonfinite-header" colspan="7" | ''<span title="particípio regular">รูปกริยาขยายอดีตกาลยาว</span>''
|-
! class="roa-nonfinite-header" | เพศชาย
| colspan="3" | {pp_ms}
| colspan="3" | {pp_mp}
|-
! class="roa-nonfinite-header" | เพศหญิง
| colspan="3" | {pp_fs}
| colspan="3" | {pp_fp}
|-]=]
local single_pp_template = [=[
! class="roa-nonfinite-header" colspan="7" | ''<span title="particípio passado">รูปกริยาขยายอดีตกาล</span>''
|-
! class="roa-nonfinite-header" | เพศชาย
| colspan="3" | {pp_ms}
| colspan="3" | {pp_mp}
|-
! class="roa-nonfinite-header" | เพศหญิง
| colspan="3" | {pp_fs}
| colspan="3" | {pp_fp}
|-]=]
local function make_table(alternant_multiword_spec)
local forms = alternant_multiword_spec.forms
forms.title = link_term(alternant_multiword_spec.lemmas[1].form)
if alternant_multiword_spec.annotation ~= "" then
forms.title = forms.title .. " (" .. alternant_multiword_spec.annotation .. ")"
end
forms.description = ""
-- Format the table.
forms.footnote = alternant_multiword_spec.footnote_basic
forms.notes_clause = forms.footnote ~= "" and m_string_utilities.format(notes_template, forms) or ""
-- has_short_pp is computed in show_forms().
local pp_template = alternant_multiword_spec.has_short_pp and double_pp_template or single_pp_template
forms.pp_clause = m_string_utilities.format(pp_template, forms)
local table_with_pronouns = rsub(basic_table, "<<(.-)>>", link_term)
return require("Module:TemplateStyles")("Module:roa-verb/style.css") .. m_string_utilities.format(table_with_pronouns, forms)
end
-- Externally callable function to parse and conjugate a verb given user-specified arguments.
-- Return value is WORD_SPEC, an object where the conjugated forms are in `WORD_SPEC.forms`
-- for each slot. If there are no values for a slot, the slot key will be missing. The value
-- for a given slot is a list of objects {form=FORM, footnotes=FOOTNOTES}.
function export.do_generate_forms(args, source_template, headword_head)
local PAGENAME = mw.loadData("Module:headword/data").pagename
local function in_template_space()
return mw.title.getCurrentTitle().nsText == "แม่แบบ"
end
-- Determine the verb spec we're being asked to generate the conjugation of. This may be taken from the
-- current page title or the value of |pagename=; but not when called from {{gl-reinteg-verb form of}}, where the
-- page title is a non-lemma form. Note that the verb spec may omit the infinitive; e.g. it may be "<i-e>".
-- For this reason, we use the value of `pagename` computed here down below, when calling normalize_all_lemmas().
local pagename = source_template ~= "gl-reinteg-verb form of" and args.pagename or PAGENAME
local head = headword_head or pagename
local arg1 = args[1]
if not arg1 then
if (pagename == "gl-reinteg-conj" or pagename == "gl-reinteg-verb") and in_template_space() then
arg1 = "traguer"
elseif pagename == "gl-reinteg-verb form of" and in_template_space() then
arg1 = "amar"
else
arg1 = "<>"
end
end
-- When called from {{gl-reinteg-verb form of}}, determine the non-lemma form whose inflections we're being asked to
-- determine. This normally comes from the page title or the value of |pagename=.
local verb_form_of_form
if source_template == "gl-reinteg-verb form of" then
verb_form_of_form = args.pagename
if not verb_form_of_form then
if PAGENAME == "gl-reinteg-verb form of" and in_template_space() then
verb_form_of_form = "ame"
else
verb_form_of_form = PAGENAME
end
end
end
local incorporated_headword_head_into_lemma = false
if arg1:find("^<.*>$") then -- missing lemma
if head:find(" ") then
-- If multiword lemma, try to add arg spec after the first word.
-- Try to preserve the brackets in the part after the verb, but don't do it
-- if there aren't the same number of left and right brackets in the verb
-- (which means the verb was linked as part of a larger expression).
local refl_clitic_verb, post = rmatch(head, "^(.-)( .*)$")
local left_brackets = rsub(refl_clitic_verb, "[^%[]", "")
local right_brackets = rsub(refl_clitic_verb, "[^%]]", "")
if #left_brackets == #right_brackets then
arg1 = iut.remove_redundant_links(refl_clitic_verb) .. arg1 .. post
incorporated_headword_head_into_lemma = true
else
-- Try again using the form without links.
local linkless_head = m_links.remove_links(head)
if linkless_head:find(" ") then
refl_clitic_verb, post = rmatch(linkless_head, "^(.-)( .*)$")
arg1 = refl_clitic_verb .. arg1 .. post
else
error("Unable to incorporate <...> spec into explicit head due to a multiword linked verb or " ..
"unbalanced brackets; please include <> explicitly: " .. arg1)
end
end
else
-- Will be incorporated through `head` below in the call to normalize_all_lemmas().
incorporated_headword_head_into_lemma = true
end
end
local function split_bracketed_runs_into_words(bracketed_runs)
return put.split_alternating_runs(bracketed_runs, " ", "preserve splitchar")
end
local parse_props = {
parse_indicator_spec = parse_indicator_spec,
-- Split words only on spaces, not on hyphens, because that messes up reflexive verb parsing.
split_bracketed_runs_into_words = split_bracketed_runs_into_words,
allow_default_indicator = true,
allow_blank_lemma = true,
}
local alternant_multiword_spec = iut.parse_inflected_text(arg1, parse_props)
alternant_multiword_spec.pos = pos or "verbs"
alternant_multiword_spec.args = args
alternant_multiword_spec.source_template = source_template
alternant_multiword_spec.verb_form_of_form = verb_form_of_form
alternant_multiword_spec.incorporated_headword_head_into_lemma = incorporated_headword_head_into_lemma
normalize_all_lemmas(alternant_multiword_spec, head)
detect_all_indicator_specs(alternant_multiword_spec)
local inflect_props = {
slot_list = alternant_multiword_spec.all_verb_slots,
inflect_word_spec = conjugate_verb,
get_variants = function(form) return rsub(form, not_var_code_c, "") end,
-- We add links around the generated verbal forms rather than allow the entire multiword
-- expression to be a link, so ensure that user-specified links get included as well.
include_user_specified_links = true,
}
iut.inflect_multiword_or_alternant_multiword_spec(alternant_multiword_spec, inflect_props)
-- Remove redundant brackets around entire forms.
for slot, forms in pairs(alternant_multiword_spec.forms) do
for _, form in ipairs(forms) do
form.form = iut.remove_redundant_links(form.form)
end
end
compute_categories_and_annotation(alternant_multiword_spec)
if args.json and source_template == "gl-reinteg-conj" then
-- Remove variant codes to avoid causing problems with bots.
for slot, forms in pairs(alternant_multiword_spec.forms) do
for _, form in ipairs(forms) do
form.form = export.remove_variant_codes(form.form)
end
end
return require("Module:JSON").toJSON(alternant_multiword_spec.forms)
end
return alternant_multiword_spec
end
-- Entry point for {{gl-reinteg-conj}}. Template-callable function to parse and conjugate a verb given
-- user-specified arguments and generate a displayable table of the conjugated forms.
function export.show(frame)
local parent_args = frame:getParent().args
local params = {
[1] = {},
["noautolinktext"] = {type = "boolean"},
["noautolinkverb"] = {type = "boolean"},
["pagename"] = {}, -- for testing/documentation pages
["json"] = {type = "boolean"}, -- for bot use
}
local args = require("Module:parameters").process(parent_args, params)
local alternant_multiword_spec = export.do_generate_forms(parent_args, "gl-reinteg-conj")
if type(alternant_multiword_spec) == "string" then
-- JSON return value
return alternant_multiword_spec
end
show_forms(alternant_multiword_spec)
return make_table(alternant_multiword_spec) ..
require("Module:utilities").format_categories(alternant_multiword_spec.categories, lang, nil, nil, force_cat)
end
return export
14sia4ovn4ow08yd5c8it9ov4dqf6vd
ภาคผนวก:ปฏิบูรณาการนิยม
100
410886
5758921
1994773
2026-08-24T12:17:36Z
Octahedron80
267
5758921
wikitext
text/x-wiki
'''ปฏิบูรณาการนิยม''' (Reintegrationism) คือขบวนการทางภาษาและวัฒนธรรมที่สนับสนุนความเป็นหนึ่งเดียวของ{{w|ภาษากาลิเซีย}}และ{{w|ภาษาโปรตุเกส}}ในฐานะภาษาเดียว บรรทัดฐานการสะกดคำได้รับการจัดการโดย{{w|สมาคมภาษาแห่งกาลิเซีย}} (Associaçom Galega da Língua: AGAL) และ{{w|สถาบันภาษาโปรตุเกสแห่งกาลิเซีย}} (Academia Galega da Língua Portuguesa: AGLP)
อักขรวิธีภาษากาลิเซียมาตรฐานที่กำหนดโดย{{w|ราชบัณฑิตยสถานกาลิเซีย}} (Real Academia Galega: RAG) ในช่วงทศวรรษ 1980 มีพื้นฐานมาจากอักขรวิธีของ{{w|ภาษาสเปน}}<ref>https://publicacions.academia.gal/index.php/rag/catalog/book/57</ref> ผู้สนับสนุนปฏิบูรณาการนิยมยืนกรานว่า การใช้อักขรวิธีแบบโปรตุเกสอาจเป็นวิธีที่มีประสิทธิภาพในการต่อต้านกระบวน{{w|การเปลี่ยนแปลงภาษา}}และรักษาถ้อยคำภาษากาลิเซียไว้<ref>https://agal-gz.org/faq/doku.php?id=pt_agal</ref> ซึ่งรวมถึงการนำ[[:หมวดหมู่:ภาษากาลิเซีย-โปรตุเกสเก่า|รูปเขียนในสมัยกลาง]]กลับคืนมา (ซึ่งมักจะบรรจบกับภาษาโปรตุเกส) และการนำกฎอักขรวิธีภาษาโปรตุเกสมาใช้ในภาษากาลิเซีย โดยหลีกเลี่ยงคำยืมจากภาษาสเปน
การเปลี่ยนแปลงการสะกดส่วนใหญ่ เช่น nh แทน ñ และ lh แทน ll มีแนวโน้มที่จะตรงกับรูปเขียนที่พบในภาษากาลิเซียสมัยกลาง หรือสมัยปัจจุบันที่ไม่ถือว่าเป็นมาตรฐาน (เช่น การลงท้ายด้วย -is แทนคำนามที่ลงท้ายด้วย -l)<ref>https://galp.xunta.gal/seo-fisterra-ria-muros-noia/mellora-do-proceso-produtivo-do-polbo-de-lonxa</ref><ref>https://www.lingua.gal/c/document_library/get_file?file_path=/portal-lingua/celga/celga-1/material-alumno/Manual_Aula_de_Galego_1_resumo_gramatical.pdf</ref> การเปลี่ยนแปลงนี้ยังคำนึงถึงสระกลางเปิดและปิดของภาษากาลิเซียด้วย ซึ่งช่วยให้ผู้อ่านที่ไม่คุ้นเคยกับคำเช่น [[bidê]] หรือ [[balé]] ทราบวิธีการออกเสียง และภาษาถิ่นที่ยังคงรักษาความแตกต่างระหว่าง {{IPAchar|/ʒ, ʃ/}}; {{IPAchar|/z̺, s̺/}} และ {{IPAchar|/z̻, s̻/}} เช่น ผู้พูดจากภูมิภาค Baixa Limia<ref>Fernández Rei, Francisco (2003), Dialectoloxía da lingua galega (in Galician) (3rd ed.), Vigo: Edicións Xerais de Galicia, {{ISBN|978-84-7507-472-6}}</ref>
== อ่านเพิ่ม ==
* {{pedia|Reintegrationism}}
* [https://agal-gz.org/faq/doku.php?id=pt_agal The Galician Language Association's FAQ Wiki (in Galician).]
* [https://archive.org/details/ProblemasDaLnguaGalega.ColeoDeArtigosDeRicardoCarballoCalero/page/n127/mode/2up?view=theater Problemas da Língua Galega by Ricardo Carvalho Calero (in Galician).]
== อ้างอิง ==
{{รายการอ้างอิง}}
<references/>
[[หมวดหมู่:ภาคผนวกภาษากาลิเซีย]]
eficmosi3u9db32aw5cau7lv9kb1dg5
5758922
5758921
2026-08-24T12:17:46Z
Octahedron80
267
Octahedron80 ย้ายหน้า [[ภาคผนวก:คตินิยมบูรณาการใหม่]] ไปยัง [[ภาคผนวก:ปฏิบูรณาการนิยม]]
5758921
wikitext
text/x-wiki
'''ปฏิบูรณาการนิยม''' (Reintegrationism) คือขบวนการทางภาษาและวัฒนธรรมที่สนับสนุนความเป็นหนึ่งเดียวของ{{w|ภาษากาลิเซีย}}และ{{w|ภาษาโปรตุเกส}}ในฐานะภาษาเดียว บรรทัดฐานการสะกดคำได้รับการจัดการโดย{{w|สมาคมภาษาแห่งกาลิเซีย}} (Associaçom Galega da Língua: AGAL) และ{{w|สถาบันภาษาโปรตุเกสแห่งกาลิเซีย}} (Academia Galega da Língua Portuguesa: AGLP)
อักขรวิธีภาษากาลิเซียมาตรฐานที่กำหนดโดย{{w|ราชบัณฑิตยสถานกาลิเซีย}} (Real Academia Galega: RAG) ในช่วงทศวรรษ 1980 มีพื้นฐานมาจากอักขรวิธีของ{{w|ภาษาสเปน}}<ref>https://publicacions.academia.gal/index.php/rag/catalog/book/57</ref> ผู้สนับสนุนปฏิบูรณาการนิยมยืนกรานว่า การใช้อักขรวิธีแบบโปรตุเกสอาจเป็นวิธีที่มีประสิทธิภาพในการต่อต้านกระบวน{{w|การเปลี่ยนแปลงภาษา}}และรักษาถ้อยคำภาษากาลิเซียไว้<ref>https://agal-gz.org/faq/doku.php?id=pt_agal</ref> ซึ่งรวมถึงการนำ[[:หมวดหมู่:ภาษากาลิเซีย-โปรตุเกสเก่า|รูปเขียนในสมัยกลาง]]กลับคืนมา (ซึ่งมักจะบรรจบกับภาษาโปรตุเกส) และการนำกฎอักขรวิธีภาษาโปรตุเกสมาใช้ในภาษากาลิเซีย โดยหลีกเลี่ยงคำยืมจากภาษาสเปน
การเปลี่ยนแปลงการสะกดส่วนใหญ่ เช่น nh แทน ñ และ lh แทน ll มีแนวโน้มที่จะตรงกับรูปเขียนที่พบในภาษากาลิเซียสมัยกลาง หรือสมัยปัจจุบันที่ไม่ถือว่าเป็นมาตรฐาน (เช่น การลงท้ายด้วย -is แทนคำนามที่ลงท้ายด้วย -l)<ref>https://galp.xunta.gal/seo-fisterra-ria-muros-noia/mellora-do-proceso-produtivo-do-polbo-de-lonxa</ref><ref>https://www.lingua.gal/c/document_library/get_file?file_path=/portal-lingua/celga/celga-1/material-alumno/Manual_Aula_de_Galego_1_resumo_gramatical.pdf</ref> การเปลี่ยนแปลงนี้ยังคำนึงถึงสระกลางเปิดและปิดของภาษากาลิเซียด้วย ซึ่งช่วยให้ผู้อ่านที่ไม่คุ้นเคยกับคำเช่น [[bidê]] หรือ [[balé]] ทราบวิธีการออกเสียง และภาษาถิ่นที่ยังคงรักษาความแตกต่างระหว่าง {{IPAchar|/ʒ, ʃ/}}; {{IPAchar|/z̺, s̺/}} และ {{IPAchar|/z̻, s̻/}} เช่น ผู้พูดจากภูมิภาค Baixa Limia<ref>Fernández Rei, Francisco (2003), Dialectoloxía da lingua galega (in Galician) (3rd ed.), Vigo: Edicións Xerais de Galicia, {{ISBN|978-84-7507-472-6}}</ref>
== อ่านเพิ่ม ==
* {{pedia|Reintegrationism}}
* [https://agal-gz.org/faq/doku.php?id=pt_agal The Galician Language Association's FAQ Wiki (in Galician).]
* [https://archive.org/details/ProblemasDaLnguaGalega.ColeoDeArtigosDeRicardoCarballoCalero/page/n127/mode/2up?view=theater Problemas da Língua Galega by Ricardo Carvalho Calero (in Galician).]
== อ้างอิง ==
{{รายการอ้างอิง}}
<references/>
[[หมวดหมู่:ภาคผนวกภาษากาลิเซีย]]
eficmosi3u9db32aw5cau7lv9kb1dg5
5758927
5758922
2026-08-24T12:22:05Z
Octahedron80
267
/* อ่านเพิ่ม */
5758927
wikitext
text/x-wiki
'''ปฏิบูรณาการนิยม''' (Reintegrationism) คือขบวนการทางภาษาและวัฒนธรรมที่สนับสนุนความเป็นหนึ่งเดียวของ{{w|ภาษากาลิเซีย}}และ{{w|ภาษาโปรตุเกส}}ในฐานะภาษาเดียว บรรทัดฐานการสะกดคำได้รับการจัดการโดย{{w|สมาคมภาษาแห่งกาลิเซีย}} (Associaçom Galega da Língua: AGAL) และ{{w|สถาบันภาษาโปรตุเกสแห่งกาลิเซีย}} (Academia Galega da Língua Portuguesa: AGLP)
อักขรวิธีภาษากาลิเซียมาตรฐานที่กำหนดโดย{{w|ราชบัณฑิตยสถานกาลิเซีย}} (Real Academia Galega: RAG) ในช่วงทศวรรษ 1980 มีพื้นฐานมาจากอักขรวิธีของ{{w|ภาษาสเปน}}<ref>https://publicacions.academia.gal/index.php/rag/catalog/book/57</ref> ผู้สนับสนุนปฏิบูรณาการนิยมยืนกรานว่า การใช้อักขรวิธีแบบโปรตุเกสอาจเป็นวิธีที่มีประสิทธิภาพในการต่อต้านกระบวน{{w|การเปลี่ยนแปลงภาษา}}และรักษาถ้อยคำภาษากาลิเซียไว้<ref>https://agal-gz.org/faq/doku.php?id=pt_agal</ref> ซึ่งรวมถึงการนำ[[:หมวดหมู่:ภาษากาลิเซีย-โปรตุเกสเก่า|รูปเขียนในสมัยกลาง]]กลับคืนมา (ซึ่งมักจะบรรจบกับภาษาโปรตุเกส) และการนำกฎอักขรวิธีภาษาโปรตุเกสมาใช้ในภาษากาลิเซีย โดยหลีกเลี่ยงคำยืมจากภาษาสเปน
การเปลี่ยนแปลงการสะกดส่วนใหญ่ เช่น nh แทน ñ และ lh แทน ll มีแนวโน้มที่จะตรงกับรูปเขียนที่พบในภาษากาลิเซียสมัยกลาง หรือสมัยปัจจุบันที่ไม่ถือว่าเป็นมาตรฐาน (เช่น การลงท้ายด้วย -is แทนคำนามที่ลงท้ายด้วย -l)<ref>https://galp.xunta.gal/seo-fisterra-ria-muros-noia/mellora-do-proceso-produtivo-do-polbo-de-lonxa</ref><ref>https://www.lingua.gal/c/document_library/get_file?file_path=/portal-lingua/celga/celga-1/material-alumno/Manual_Aula_de_Galego_1_resumo_gramatical.pdf</ref> การเปลี่ยนแปลงนี้ยังคำนึงถึงสระกลางเปิดและปิดของภาษากาลิเซียด้วย ซึ่งช่วยให้ผู้อ่านที่ไม่คุ้นเคยกับคำเช่น [[bidê]] หรือ [[balé]] ทราบวิธีการออกเสียง และภาษาถิ่นที่ยังคงรักษาความแตกต่างระหว่าง {{IPAchar|/ʒ, ʃ/}}; {{IPAchar|/z̺, s̺/}} และ {{IPAchar|/z̻, s̻/}} เช่น ผู้พูดจากภูมิภาค Baixa Limia<ref>Fernández Rei, Francisco (2003), Dialectoloxía da lingua galega (in Galician) (3rd ed.), Vigo: Edicións Xerais de Galicia, {{ISBN|978-84-7507-472-6}}</ref>
== อ่านเพิ่ม ==
* {{pedia|Reintegrationism|lang=en}}
* [https://agal-gz.org/faq/doku.php?id=pt_agal The Galician Language Association's FAQ Wiki (in Galician).]
* [https://archive.org/details/ProblemasDaLnguaGalega.ColeoDeArtigosDeRicardoCarballoCalero/page/n127/mode/2up?view=theater Problemas da Língua Galega by Ricardo Carvalho Calero (in Galician).]
== อ้างอิง ==
{{รายการอ้างอิง}}
<references/>
[[หมวดหมู่:ภาคผนวกภาษากาลิเซีย]]
oit8kn8s03el2c5hde3l10pm31he6dp
ministre
0
514530
5759067
5130490
2026-08-25T05:07:35Z
Octahedron80
267
/* ภาษาเดนมาร์ก */ เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5759067
wikitext
text/x-wiki
{{also/auto}}
== ภาษากาตาลา ==
=== รากศัพท์ ===
{{ety|ca|:bor|la:minister}}
{{bor+|ca|la|minister}}
=== การออกเสียง ===
* {{ca-IPA}}
* {{audio|ca|LL-Q7026 (cat)-Marvives-ministre.wav|a=Barcelona}}
* {{homophones|ca|ministra}}
=== คำนาม ===
{{ca-noun|m|f=+}}
# [[รัฐมนตรี]]
==== ลูกคำ ====
{{col3|ca
|ministrable
|primer ministre
|primera ministra
}}
==== คำเกี่ยวข้อง ====
* {{l|ca|ministeri}}
* {{l|ca|ministrable}}
=== อ่านเพิ่ม ===
* {{R:ca:IEC2}}
* {{R:ca:GDLC}}
* {{R:ca:DNV}}
* {{R:ca:DCVB}}
== ภาษาเดนมาร์ก ==
=== คำนาม ===
{{head|da|รูปนาม|g=c}}
# {{inflection of|da|minister||indef|p}}
== ภาษานอร์เวย์แบบบุ๊กมอล ==
=== รูปแบบอื่น ===
* {{alt|nb|ministere|ministrer}}
=== คำนาม ===
{{head|nb|รูปนาม|g=m}}
# {{inflection of|nb|minister||indefinite|p}}
== ภาษาโปรตุเกส ==
=== คำกริยา ===
{{head|pt|รูปกริยา}}
# {{pt-verb form of|ministrar}}
== ภาษาฝรั่งเศส ==
=== รากศัพท์ ===
{{ety|fr|:inh|fro:-<ety:bor<la:minister>>}}
จาก{{inh|fr|fro|-}}, {{bor+|fr|la|minister}}
=== การออกเสียง ===
* {{fr-IPA}}
* {{audio|fr|Fr-ministre.ogg}}
* {{audio|fr|LL-Q150 (fra)-DSwissK-ministre.wav|a=<<Switzerland>> (<<Valais>>)}}
* {{audio|fr|LL-Q150 (fra)-Poslovitch-ministre.wav|a=<<France>> (<<Vosges>>)}}
* {{audio|fr|LL-Q150 (fra)-Jérémy-Günther-Heinz Jähnick-ministre.wav|a=<<France>> (<<Somain>>)}}
=== คำนาม ===
{{fr-noun|mfbysense|+|f=ministresse}}
# [[รัฐมนตรี]]
# [[นกอินดิโกบันทิง]] (indigo bunting) ซึ่งเป็นนกที่มีชื่อทางอนุกรมวิธานว่า {{taxlink|Passerina cyanea|species}}
==== ลูกคำ ====
* {{l|fr|agenda de ministre}}
* {{l|fr|ministrable}}
* {{l|fr|premier ministre}}
* {{l|fr|première ministre}}
==== คำเกี่ยวข้อง ====
* {{l|fr|ministère}}
==== คำสืบทอด ====
* {{desc|ht|minis}}
=== อ่านเพิ่ม ===
* {{R:fr:TLFi}}
== ภาษาลัตเวีย ==
=== รากศัพท์ ===
จาก{{suffix|lv|ministrs|e|gloss1=minister|gloss2={{l|en|feminine|fem.}}}}.
=== การออกเสียง ===
* {{audio|lv|lv-riga-ministre.ogg}}
=== คำนาม ===
{{lv-noun|f|5th|masc=ministrs}}
# [[รัฐมนตรี]] (หญิง)
#: {{ux|lv|Latvijas veselības '''ministre''' Baiba Rozentāle|Latvian health '''minister''' Baiba Rozentāle|inline=1|translation=ไบบา โรเซนตาเล '''รัฐมนตรี'''ว่าการกระทรวงสาธารณสุขแห่งลัตเวีย}}
==== การผันรูป ====
{{lv-decl-noun|minis|e|5th||tr|tr|extrawidth=-60}}
==== คำเกี่ยวข้อง ====
* {{l|lv|ministrija}}
== ภาษาลิทัวเนีย ==
=== คำนาม ===
{{head|lt|รูปนาม|g=m}}
# {{inflection of|lt|ministras||loc//voc|s}}
== ภาษาสเปน ==
=== คำกริยา ===
{{head|es|รูปกริยา}}
# {{es-verb form of|ministrar}}
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun}}
# {{obsolete form of|en|minister}}
=== คำกริยา ===
{{en-verb}}
# {{obsolete form of|en|minister}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eiimnrst|Tenriism|Terminis|interims|minister|smirnite}}
== ภาษาอังกฤษกลาง ==
=== รากศัพท์ 1 ===
{{bor+|enm|fro|ministre}}, จาก{{der|enm|la|minister}}
==== รูปแบบอื่น ====
* {{alter|enm|minister|ministir|minyster|mynestre|mynster|mynyster|mynystir|mynystre}}
==== การออกเสียง ====
* {{IPA|enm|/ˈministər/|/ˈmin(ə)stər/}}
==== คำนาม ====
{{enm-noun|pl=ministres}}
# [[ลูกจ้าง]]หรือ[[เลขานุการ]]; ผู้ที่[[รับใช้]]และ[[ช่วยเหลือ]]ผู้อื่น:
## บุคคลที่ได้รับมอบหมายให้ทำ[[หน้าที่]]หรือ[[งาน]]; [[ผู้แทน]]
## [[เบี้ยล่าง]]หรือ[[หุ่นเชิด]]ของผู้อื่นในเชิง[[อุปมา]]หรือโดย[[ไม่รู้ตัว]]
# สมาชิกของ[[คณะสงฆ์]]ในศาสนา[[คริสต์]] โดยเฉพาะอย่างยิ่งเมื่อ[[ประกอบ]][[ศีลศักดิ์สิทธิ์]]
# ลูกจ้างหรือผู้อยู่ใน[[ความอุปการะ]]ของ[[นักบวช]]
# ผู้ที่[[บริหาร]]หรือเป็น[[ผู้นำ]][[คณะนักบวช]]
# [[ข้าราชการพลเรือน]]หรือสมาชิกของรัฐบาล; เจ้าหน้าที่[[ฝ่ายบริหาร]]
# {{lb|enm|หายาก}} สมาชิกคณะสงฆ์ของศาสนาที่ไม่ใช่ศาสนาคริสต์
===== คำเกี่ยวข้อง =====
* {{l|enm|ministracioun}}
* {{l|enm|mynisterie}}
* {{l|enm|mynystren}}
* {{l|enm|mynystrynge}}
===== คำสืบทอด =====
* {{desctree|en|minister}}
* {{desc|sco|meenister}}
===== อ้างอิง =====
* {{R:MED Online|entry=ministre |pos=n |id=MED27841 |accessdate=2018-06-20}}
=== รากศัพท์ 2 ===
==== คำกริยา ====
{{head|enm|คำกริยา|altform=1}}
# {{alternative form of|enm|mynystren}}
{{C|enm|ศาสตรคริสต์|Monasticism|อาชีพ|บุคคล|ศาสนา}}
== ภาษาอิตาลี ==
=== คำนาม ===
{{head|it|รูปนาม|g=f}}
# {{plural of|it|ministra}}
=== คำสลับอักษร ===
* {{anagrams|it|a=eiimnrst|entrismi|mentirsi|mestrini|sentirmi|stermini}}
== ภาษาอุตซิตา ==
=== รากศัพท์ ===
จาก{{der|oc|la|minister}}
=== การออกเสียง ===
* {{audio|oc|LL-Q14185 (oci)-Davidgrosclaude-ministre.wav|a=Béarn}}
=== คำนาม ===
{{oc-noun|m}}
# [[รัฐมนตรี]]
{{c|oc|Government|อาชีพ}}
k4evrtcqo3aiy16c7xrzj0hg0mhr0oe
5759072
5759067
2026-08-25T05:09:44Z
Octahedron80
267
/* รากศัพท์ */
5759072
wikitext
text/x-wiki
{{also/auto}}
== ภาษากาตาลา ==
=== รากศัพท์ ===
{{ety|ca|:bor|la:minister}}
{{bor+|ca|la|minister}}
=== การออกเสียง ===
* {{ca-IPA}}
* {{audio|ca|LL-Q7026 (cat)-Marvives-ministre.wav|a=Barcelona}}
* {{homophones|ca|ministra}}
=== คำนาม ===
{{ca-noun|m|f=+}}
# [[รัฐมนตรี]]
==== ลูกคำ ====
{{col3|ca
|ministrable
|primer ministre
|primera ministra
}}
==== คำเกี่ยวข้อง ====
* {{l|ca|ministeri}}
* {{l|ca|ministrable}}
=== อ่านเพิ่ม ===
* {{R:ca:IEC2}}
* {{R:ca:GDLC}}
* {{R:ca:DNV}}
* {{R:ca:DCVB}}
== ภาษาเดนมาร์ก ==
=== คำนาม ===
{{head|da|รูปนาม|g=c}}
# {{inflection of|da|minister||indef|p}}
== ภาษานอร์เวย์แบบบุ๊กมอล ==
=== รูปแบบอื่น ===
* {{alt|nb|ministere|ministrer}}
=== คำนาม ===
{{head|nb|รูปนาม|g=m}}
# {{inflection of|nb|minister||indefinite|p}}
== ภาษาโปรตุเกส ==
=== คำกริยา ===
{{head|pt|รูปกริยา}}
# {{pt-verb form of|ministrar}}
== ภาษาฝรั่งเศส ==
=== รากศัพท์ ===
{{ety|fr|:inh|fro:-<ety:bor<la:minister>>}}
จาก{{inh|fr|fro|-}}, {{bor+|fr|la|minister}}
=== การออกเสียง ===
* {{fr-IPA}}
* {{audio|fr|Fr-ministre.ogg}}
* {{audio|fr|LL-Q150 (fra)-DSwissK-ministre.wav|a=<<Switzerland>> (<<Valais>>)}}
* {{audio|fr|LL-Q150 (fra)-Poslovitch-ministre.wav|a=<<France>> (<<Vosges>>)}}
* {{audio|fr|LL-Q150 (fra)-Jérémy-Günther-Heinz Jähnick-ministre.wav|a=<<France>> (<<Somain>>)}}
=== คำนาม ===
{{fr-noun|mfbysense|+|f=ministresse}}
# [[รัฐมนตรี]]
# [[นกอินดิโกบันทิง]] (indigo bunting) ซึ่งเป็นนกที่มีชื่อทางอนุกรมวิธานว่า {{taxlink|Passerina cyanea|species}}
==== ลูกคำ ====
* {{l|fr|agenda de ministre}}
* {{l|fr|ministrable}}
* {{l|fr|premier ministre}}
* {{l|fr|première ministre}}
==== คำเกี่ยวข้อง ====
* {{l|fr|ministère}}
==== คำสืบทอด ====
* {{desc|ht|minis}}
=== อ่านเพิ่ม ===
* {{R:fr:TLFi}}
== ภาษาลัตเวีย ==
=== รากศัพท์ ===
จาก{{suffix|lv|ministrs|e|gloss1=รัฐมนตรี|gloss2=หญิง}}
=== การออกเสียง ===
* {{audio|lv|lv-riga-ministre.ogg}}
=== คำนาม ===
{{lv-noun|f|5th|masc=ministrs}}
# [[รัฐมนตรี]] (หญิง)
#: {{ux|lv|Latvijas veselības '''ministre''' Baiba Rozentāle|Latvian health '''minister''' Baiba Rozentāle|inline=1|translation=ไบบา โรเซนตาเล '''รัฐมนตรี'''ว่าการกระทรวงสาธารณสุขแห่งลัตเวีย}}
==== การผันรูป ====
{{lv-decl-noun|minis|e|5th||tr|tr|extrawidth=-60}}
==== คำเกี่ยวข้อง ====
* {{l|lv|ministrija}}
== ภาษาลิทัวเนีย ==
=== คำนาม ===
{{head|lt|รูปนาม|g=m}}
# {{inflection of|lt|ministras||loc//voc|s}}
== ภาษาสเปน ==
=== คำกริยา ===
{{head|es|รูปกริยา}}
# {{es-verb form of|ministrar}}
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun}}
# {{obsolete form of|en|minister}}
=== คำกริยา ===
{{en-verb}}
# {{obsolete form of|en|minister}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eiimnrst|Tenriism|Terminis|interims|minister|smirnite}}
== ภาษาอังกฤษกลาง ==
=== รากศัพท์ 1 ===
{{bor+|enm|fro|ministre}}, จาก{{der|enm|la|minister}}
==== รูปแบบอื่น ====
* {{alter|enm|minister|ministir|minyster|mynestre|mynster|mynyster|mynystir|mynystre}}
==== การออกเสียง ====
* {{IPA|enm|/ˈministər/|/ˈmin(ə)stər/}}
==== คำนาม ====
{{enm-noun|pl=ministres}}
# [[ลูกจ้าง]]หรือ[[เลขานุการ]]; ผู้ที่[[รับใช้]]และ[[ช่วยเหลือ]]ผู้อื่น:
## บุคคลที่ได้รับมอบหมายให้ทำ[[หน้าที่]]หรือ[[งาน]]; [[ผู้แทน]]
## [[เบี้ยล่าง]]หรือ[[หุ่นเชิด]]ของผู้อื่นในเชิง[[อุปมา]]หรือโดย[[ไม่รู้ตัว]]
# สมาชิกของ[[คณะสงฆ์]]ในศาสนา[[คริสต์]] โดยเฉพาะอย่างยิ่งเมื่อ[[ประกอบ]][[ศีลศักดิ์สิทธิ์]]
# ลูกจ้างหรือผู้อยู่ใน[[ความอุปการะ]]ของ[[นักบวช]]
# ผู้ที่[[บริหาร]]หรือเป็น[[ผู้นำ]][[คณะนักบวช]]
# [[ข้าราชการพลเรือน]]หรือสมาชิกของรัฐบาล; เจ้าหน้าที่[[ฝ่ายบริหาร]]
# {{lb|enm|หายาก}} สมาชิกคณะสงฆ์ของศาสนาที่ไม่ใช่ศาสนาคริสต์
===== คำเกี่ยวข้อง =====
* {{l|enm|ministracioun}}
* {{l|enm|mynisterie}}
* {{l|enm|mynystren}}
* {{l|enm|mynystrynge}}
===== คำสืบทอด =====
* {{desctree|en|minister}}
* {{desc|sco|meenister}}
===== อ้างอิง =====
* {{R:MED Online|entry=ministre |pos=n |id=MED27841 |accessdate=2018-06-20}}
=== รากศัพท์ 2 ===
==== คำกริยา ====
{{head|enm|คำกริยา|altform=1}}
# {{alternative form of|enm|mynystren}}
{{C|enm|ศาสตรคริสต์|Monasticism|อาชีพ|บุคคล|ศาสนา}}
== ภาษาอิตาลี ==
=== คำนาม ===
{{head|it|รูปนาม|g=f}}
# {{plural of|it|ministra}}
=== คำสลับอักษร ===
* {{anagrams|it|a=eiimnrst|entrismi|mentirsi|mestrini|sentirmi|stermini}}
== ภาษาอุตซิตา ==
=== รากศัพท์ ===
จาก{{der|oc|la|minister}}
=== การออกเสียง ===
* {{audio|oc|LL-Q14185 (oci)-Davidgrosclaude-ministre.wav|a=Béarn}}
=== คำนาม ===
{{oc-noun|m}}
# [[รัฐมนตรี]]
{{c|oc|Government|อาชีพ}}
42zh3c2if7upzcpwq1o0ss5ii9wri75
5759073
5759072
2026-08-25T05:10:15Z
Octahedron80
267
/* คำนาม */
5759073
wikitext
text/x-wiki
{{also/auto}}
== ภาษากาตาลา ==
=== รากศัพท์ ===
{{ety|ca|:bor|la:minister}}
{{bor+|ca|la|minister}}
=== การออกเสียง ===
* {{ca-IPA}}
* {{audio|ca|LL-Q7026 (cat)-Marvives-ministre.wav|a=Barcelona}}
* {{homophones|ca|ministra}}
=== คำนาม ===
{{ca-noun|m|f=+}}
# [[รัฐมนตรี]]
==== ลูกคำ ====
{{col3|ca
|ministrable
|primer ministre
|primera ministra
}}
==== คำเกี่ยวข้อง ====
* {{l|ca|ministeri}}
* {{l|ca|ministrable}}
=== อ่านเพิ่ม ===
* {{R:ca:IEC2}}
* {{R:ca:GDLC}}
* {{R:ca:DNV}}
* {{R:ca:DCVB}}
== ภาษาเดนมาร์ก ==
=== คำนาม ===
{{head|da|รูปนาม|g=c}}
# {{inflection of|da|minister||indef|p}}
== ภาษานอร์เวย์แบบบุ๊กมอล ==
=== รูปแบบอื่น ===
* {{alt|nb|ministere|ministrer}}
=== คำนาม ===
{{head|nb|รูปนาม|g=m}}
# {{inflection of|nb|minister||indefinite|p}}
== ภาษาโปรตุเกส ==
=== คำกริยา ===
{{head|pt|รูปกริยา}}
# {{pt-verb form of|ministrar}}
== ภาษาฝรั่งเศส ==
=== รากศัพท์ ===
{{ety|fr|:inh|fro:-<ety:bor<la:minister>>}}
จาก{{inh|fr|fro|-}}, {{bor+|fr|la|minister}}
=== การออกเสียง ===
* {{fr-IPA}}
* {{audio|fr|Fr-ministre.ogg}}
* {{audio|fr|LL-Q150 (fra)-DSwissK-ministre.wav|a=<<Switzerland>> (<<Valais>>)}}
* {{audio|fr|LL-Q150 (fra)-Poslovitch-ministre.wav|a=<<France>> (<<Vosges>>)}}
* {{audio|fr|LL-Q150 (fra)-Jérémy-Günther-Heinz Jähnick-ministre.wav|a=<<France>> (<<Somain>>)}}
=== คำนาม ===
{{fr-noun|mfbysense|+|f=ministresse}}
# [[รัฐมนตรี]]
# [[นกอินดิโกบันทิง]] (indigo bunting) ซึ่งเป็นนกที่มีชื่อทางอนุกรมวิธานว่า {{taxlink|Passerina cyanea|species}}
==== ลูกคำ ====
* {{l|fr|agenda de ministre}}
* {{l|fr|ministrable}}
* {{l|fr|premier ministre}}
* {{l|fr|première ministre}}
==== คำเกี่ยวข้อง ====
* {{l|fr|ministère}}
==== คำสืบทอด ====
* {{desc|ht|minis}}
=== อ่านเพิ่ม ===
* {{R:fr:TLFi}}
== ภาษาลัตเวีย ==
=== รากศัพท์ ===
จาก{{suffix|lv|ministrs|e|gloss1=รัฐมนตรี|gloss2=หญิง}}
=== การออกเสียง ===
* {{audio|lv|lv-riga-ministre.ogg}}
=== คำนาม ===
{{lv-noun|f|5th|masc=ministrs}}
# [[รัฐมนตรี]] (หญิง)
#: {{ux|lv|Latvijas veselības '''ministre''' Baiba Rozentāle|ไบบา โรเซนตาเล '''รัฐมนตรี'''ว่าการกระทรวงสาธารณสุขแห่งลัตเวีย|inline=1}}
==== การผันรูป ====
{{lv-decl-noun|minis|e|5th||tr|tr|extrawidth=-60}}
==== คำเกี่ยวข้อง ====
* {{l|lv|ministrija}}
== ภาษาลิทัวเนีย ==
=== คำนาม ===
{{head|lt|รูปนาม|g=m}}
# {{inflection of|lt|ministras||loc//voc|s}}
== ภาษาสเปน ==
=== คำกริยา ===
{{head|es|รูปกริยา}}
# {{es-verb form of|ministrar}}
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun}}
# {{obsolete form of|en|minister}}
=== คำกริยา ===
{{en-verb}}
# {{obsolete form of|en|minister}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eiimnrst|Tenriism|Terminis|interims|minister|smirnite}}
== ภาษาอังกฤษกลาง ==
=== รากศัพท์ 1 ===
{{bor+|enm|fro|ministre}}, จาก{{der|enm|la|minister}}
==== รูปแบบอื่น ====
* {{alter|enm|minister|ministir|minyster|mynestre|mynster|mynyster|mynystir|mynystre}}
==== การออกเสียง ====
* {{IPA|enm|/ˈministər/|/ˈmin(ə)stər/}}
==== คำนาม ====
{{enm-noun|pl=ministres}}
# [[ลูกจ้าง]]หรือ[[เลขานุการ]]; ผู้ที่[[รับใช้]]และ[[ช่วยเหลือ]]ผู้อื่น:
## บุคคลที่ได้รับมอบหมายให้ทำ[[หน้าที่]]หรือ[[งาน]]; [[ผู้แทน]]
## [[เบี้ยล่าง]]หรือ[[หุ่นเชิด]]ของผู้อื่นในเชิง[[อุปมา]]หรือโดย[[ไม่รู้ตัว]]
# สมาชิกของ[[คณะสงฆ์]]ในศาสนา[[คริสต์]] โดยเฉพาะอย่างยิ่งเมื่อ[[ประกอบ]][[ศีลศักดิ์สิทธิ์]]
# ลูกจ้างหรือผู้อยู่ใน[[ความอุปการะ]]ของ[[นักบวช]]
# ผู้ที่[[บริหาร]]หรือเป็น[[ผู้นำ]][[คณะนักบวช]]
# [[ข้าราชการพลเรือน]]หรือสมาชิกของรัฐบาล; เจ้าหน้าที่[[ฝ่ายบริหาร]]
# {{lb|enm|หายาก}} สมาชิกคณะสงฆ์ของศาสนาที่ไม่ใช่ศาสนาคริสต์
===== คำเกี่ยวข้อง =====
* {{l|enm|ministracioun}}
* {{l|enm|mynisterie}}
* {{l|enm|mynystren}}
* {{l|enm|mynystrynge}}
===== คำสืบทอด =====
* {{desctree|en|minister}}
* {{desc|sco|meenister}}
===== อ้างอิง =====
* {{R:MED Online|entry=ministre |pos=n |id=MED27841 |accessdate=2018-06-20}}
=== รากศัพท์ 2 ===
==== คำกริยา ====
{{head|enm|คำกริยา|altform=1}}
# {{alternative form of|enm|mynystren}}
{{C|enm|ศาสตรคริสต์|Monasticism|อาชีพ|บุคคล|ศาสนา}}
== ภาษาอิตาลี ==
=== คำนาม ===
{{head|it|รูปนาม|g=f}}
# {{plural of|it|ministra}}
=== คำสลับอักษร ===
* {{anagrams|it|a=eiimnrst|entrismi|mentirsi|mestrini|sentirmi|stermini}}
== ภาษาอุตซิตา ==
=== รากศัพท์ ===
จาก{{der|oc|la|minister}}
=== การออกเสียง ===
* {{audio|oc|LL-Q14185 (oci)-Davidgrosclaude-ministre.wav|a=Béarn}}
=== คำนาม ===
{{oc-noun|m}}
# [[รัฐมนตรี]]
{{c|oc|Government|อาชีพ}}
7fhlbraq0g5d2n6gcck2cv8dp4okgn8
loosers
0
2137976
5759092
5469103
2026-08-25T05:39:33Z
Octahedron80
267
/* ภาษาอังกฤษ */ นำเข้าจาก enwikt เก็บกวาด
5759092
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== การออกเสียง ===
* {{IPA|en|/ˈluzɚz/|a=GA,CA}}
* {{rhymes|en|uːzə(ɹ)z|s=2}}
=== คำนาม ===
{{head|en|รูปนาม}}
# {{plural of|en|looser}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eloorss|soolers}}
mesxqhehwxm6rjohjokhpk9sbpqvoeg
แม่แบบ:RQ:Landon Francesca Carrara
10
2288329
5759086
5757847
2026-08-25T05:29:42Z
Octahedron80
267
5759086
wikitext
text/x-wiki
{{#invoke:quote|call_quote_template
|en
|author = [[w:Letitia Elizabeth Landon|L[etitia] E[lizabeth] L[andon]]]
|chapter = {{{chapter|{{{2|
{{#if:{{{page|}}}{{{pageref|}}}{{{3|}}}
| {{#switch:{{uc:{{{volume|}}}{{{1|}}}}}
| I = {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<20
| I
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<29
| II
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<38
| III
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<48
| IV
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<65
| V
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<72
| VI
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<86
| VII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<95
| VIII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<108
| IX
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<118
| X
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<130
| XI
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<139
| XII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<146
| XIII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<155
| XIV
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<166
| XV
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<179
| XVI
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<204
| XVII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<211
| XVIII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<224
| XIX
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<244
| XX
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<252
| XXI
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<273
| XXII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<285
| XXIII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<292
| XXIV
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<301
| XXV
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<309
| XXVI
| XXVII
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
| II = {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<11
| I
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<28
| II
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<35
| III
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<42
| IV
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<52
| V
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<63
| VI
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<71
| VII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<80
| VIII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<105
| IX
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<111
| X
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<119
| XI
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<159
| XII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<166
| XIII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<172
| XIV
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<182
| XV
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<189
| XVI
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<203
| XVII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<211
| XVIII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<218
| XIX
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<225
| XX
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<232
| XXI
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<242
| XXII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<260
| XXIII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<266
| XXIV
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<276
| XXV
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<281
| XXVI
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<292
| XXVII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<300
| XXVIII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<308
| XXIX
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<316
| XXX
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<323
| XXXI
| XXXII
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
| III = {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<9
| I
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<15
| II
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<20
| III
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<32
| IV
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<39
| V
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<45
| VI
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<55
| VII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<64
| VIII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<72
| IX
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<78
| X
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<87
| XI
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<97
| XII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<105
| XIII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<113
| XIV
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<128
| XV
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<136
| XVI
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<147
| XVII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<153
| XVIII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<164
| XIX
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<171
| XX
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<182
| XXI
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<189
| XXII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<200
| XXIII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<211
| XXIV
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<218
| XXV
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<224
| XXVI
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<230
| XXVII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<237
| XXVIII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<243
| XXIX
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<251
| XXX
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<259
| XXXI
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<269
| XXXII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<276
| XXXIII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<285
| XXXIV
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<299
| XXXV
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<305
| XXXVI
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<312
| XXXVII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<320
| XXXVIII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<332
| XXXIX
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<341
| XL
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<349
| XLI
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<356
| XLII
| {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<361
| XLIII
| XLIV
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}}}}}
|title = Francesca Carrara.{{nb...|[...] In Three Volumes.}}
|location = London
|publisher = [[w:Richard Bentley (publisher)|Richard Bentley]],{{nb...|New Burlington Street}}, (successor to [[w:Henry Colburn|Henry Colburn]])
|year = 1834
|volume = {{#switch:{{uc:{{{volume|}}}{{{1|}}}}}
| I|II|III = {{uc:{{{volume|{{{1|}}}}}}}}
| {{maintenance line|<nowiki>please specify |volume=I to III</nowiki>}}
}}
|pageparam = 3
|pageurl = https://archive.org/details/francesccarrara0{{R2A|{{{volume|}}}{{{1|}}}|no_error=1}}lelluoft/page/{{#ifeq:{{{page|}}}{{{pageref|}}}{{{3|}}}|1
| n{{#ifeq:{{uc:{{{volume|}}}{{{1|}}}}}|III|4|10}}
| {{{page|{{{pageref|{{{3|}}}}}}}}}
}}/mode/1up
|oclc = 630079698
|textparam = 4
|footer = {{#if:{{{footer|}}}|{{small|{{{footer}}}}}}}
|t={{{t|}}}
|translation={{{translation|}}}
|allowparams = chapter,2,pageref,volume,1,t,translation
}}<noinclude>{{documentation}}</noinclude>
k260kw7dq4rpk0flx41pq6ms1wryjod
แม่แบบ:RQ:Taylor Eniautos
10
2308504
5759083
5664924
2026-08-25T05:24:59Z
Octahedron80
267
5759083
wikitext
text/x-wiki
{{#invoke:quote|call_quote_template
|en
|author = [[w:Jeremy Taylor|Jer[emy] Taylor]]
|chapter = {{#switch:{{{part|}}}{{{1|}}}
| 1 = [XXV Sermons Preached at Golden Grove: Being for the Winter Half-year,{{nb...|Beginning on Advent-Sunday, untill Whit-Sunday}}.] 
| 2 = [XXVIII Sermons Preached at Golden Grove; Being for the Summer Half-year,{{nb...|Beginning on Whit-Sunday, and Ending on the XXV. Sunday after Trinity. Together with a Discourse of the Divine Institution, Necessity, Sacredness, and Separation of the Office Ministerial}}.] 
| 3 = Clerus Domini: Or, A Discourse of the Divine Institution, Necessity, Sacrednesse, and Separation of the Office Ministerial.{{nb...|Together with the Nature and Manner of Its Power and Operation. Written by the Speciall Command of Our Late King.}}
}}{{#if:{{{sermon|}}}{{{2|}}}
| Sermon {{uc:{{#if:{{num|{{{sermon|}}}{{{2|}}}}}|{{A2R|{{{sermon|{{{2|}}}}}}}}|{{{sermon|{{{2|}}}}}}}}}}
}}{{#if:{{{chapter|}}}{{{sermonname|}}}
| {{#switch:{{{chapter|}}}{{{sermonname|}}}
| Epistle Dedicatory 1 = To the Right Honourable and Most Truly Noble, Richard Lord Vaughan, Earl of Carbery, &c.
| Epistle Dedicatory 2 = To the Right Honourable and Truly Noble, Richard Lord Vaughan, Earl of Carbery, Baron of Emlin, and Molingar, Knight of the Honourable Order of the Bath
| {{#if:{{{sermon|}}}{{{2|}}}
|. {{ucfirst:{{#invoke:string/templates|replace|{{{chapter|{{{sermonname|}}}}}}|'|’}}}}.
| {{ucfirst:{{#invoke:string/templates|replace|{{{chapter|{{{sermonname|}}}}}}|'|’}}}}
}}
}}
}}
|chapterurl = {{#switch:{{{chapter|}}}
| Epistle Dedicatory 1 = {{#if:{{{page|}}}{{{3|}}}|https://books.google.com/books?id=jEtPAQAAIAAJ&pg=PP{{{page|{{{3|}}}}}}}}
| Epistle Dedicatory 2 = {{#if:{{{page|}}}{{{3|}}}|https://books.google.com/books?id=jEtPAQAAIAAJ&pg=RA1-PP{{{page|{{{3|}}}}}}}}
}}
|title = {{lang|grc|[[ἐνιαυτός|ΕΝΙΑΥΤΟΣ]]}} [Eniautos]. A Course of Sermons for All the Sundays of the Year.{{nb...|Fitted to the Great Necessities, and for the Supplying the Wants of Preaching in Many Parts of this Nation. Together with a Discourse of the Divine Institution, Necessity, Sacredness, and Separation of the Office Ministerial. By Jer. Taylor D.D. The Second Edition Corrected.}}
|edition = 2nd
|location = London
|publisher = {{...|Printed for}} [[w:Richard Royston|Richard Royston]]{{nb...|at the Angel in Invie [sic: Ivie]-lane}}
|year = {{#if:{{{date|}}}
| {{#time:'''Y''' F j|{{{date}}}+10 days}} (Gregorian calendar; published '''{{#ifeq:{{{part|}}}{{{1|}}}|1|1653|1651}}''')
| {{#if:{{{year|}}}
| '''{{{year}}}''' {{{month|}}} (published '''{{#ifeq:{{{part|}}}{{{1|}}}|1|1653|1651}}''')
| {{#switch:{{{part|}}}{{{1|}}}
| 1 = 1653
| 2|3 = 1651
| 1651–1653
}}
}}
}}
|year_published = {{#ifeq:{{{part|}}}{{{1|}}}|2|1654|1655}}
|section = {{#if:{{{section|}}}
| section {{uc:{{#if:{{num|{{{section}}}}}|{{A2R|{{{section}}}}}|{{{section}}}}}}}
}}
|page = {{#switch:{{{chapter|}}}
| Epistle Dedicatory 1|Epistle Dedicatory 2 =<!--Do nothing-->
| {{{page|{{{3|}}}}}}
}}
|pageurl = https://books.google.com/books?id=jEtPAQAAIAAJ&pg={{#switch:{{{part|}}}{{{1|}}}
| 2 = RA1-
| 3 = RA2-
}}PA{{{page|{{{pageref|{{{3|}}}}}}}}}
|oclc = 1051524189
|textparam = 4
|propagateparams = pages
|t={{{t|}}}
|translation={{{translation|}}}
|allowparams = part,1,sermon,2,chapter,sermonname,page,3,date,year,month,section,pageref,t,translation
}}<noinclude>{{documentation}}</noinclude>
lg4tudkprvzdzsodp2p1z5xzyq3j8kx
democratism
0
2357462
5759024
5757915
2026-08-25T03:31:46Z
Octahedron80
267
/* ดูเพิ่ม */
5759024
wikitext
text/x-wiki
== ภาษาโรมาเนีย ==
=== รากศัพท์ ===
{{bor+|ro|fr|démocratisme}}
=== คำนาม ===
{{ro-noun|n|-}}
# [[อุดมการณ์]]แห่ง[[ประชาธิปไตย]]
==== การผันรูป ====
{{ro-noun-n|n=sg}}
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
จาก{{suffix|en|democrat|ism}}
=== คำนาม ===
{{en-noun|~}}
# [[หลักการ]]หรือ[[จิตวิญญาณ]]ของ[[ประชาธิปไตย]]; [[อุดมการณ์]]แห่งประชาธิปไตย
#* {{quote-book|en|year=2020|author=Jack Fong|title=Employing Nietzsche’s Sociological Imagination|publisher=Lexington Books|chapter=Preface|isbn=9781793620439|page=vii|pageurl=https://books.google.com/books?id=CmDwDwAAQBAJ&pg=PR7&dq=%22jingoisms%22&hl=&cd=4&source=gbs_api#v=onepage&q=%22jingoisms%22&f=false|text=At a time when the leaders of the “free” world can run systems in an authoritarian manner, replete with their jingoisms and subtexts of internal colonialism, it is rather urgent that we demystify '''democratism''', one that in its current iteration in the United States has enabled the emergence of what can be seen as a totalitarian democracy; {{...}}|translation=ในเวลาที่บรรดาผู้นำของโลก “เสรี” สามารถบริหารระบบไปในทางอำนาจนิยม ซึ่งเต็มไปด้วยลัทธิคลั่งชาติและนัยแฝงของลัทธิอาณานิคมภายในประเทศ จึงค่อนข้างเป็นเรื่องเร่งด่วนที่เราจะต้องตีแผ่'''อุดมการณ์ประชาธิปไตย'''ให้กระจ่างแจ้ง ซึ่งอุดมการณ์นี้ในรูปแบบปัจจุบันในสหรัฐอเมริกาได้เอื้อให้เกิดสิ่งที่อาจมองได้ว่าเป็นประชาธิปไตยแบบอำนาจเบ็ดเสร็จ {{...}}}}
#* {{quote-book|en|year=2022|author=Emily B. Finley|title=The Ideology of Democratism|publisher=Oxford University Press|isbn=9780197642313|page=23|pageurl=https://books.google.com/books?id=6pd8EAAAQBAJ&pg=PA23&dq=%22democratism%22&hl=&cd=7&source=gbs_api#v=onepage&q=%22democratism%22&f=false|text='''Democratism''' is framed within the democratic lexicon, but its defining feature is a longing for a new type of existence that has little to do with “rule by the people.”|translation='''อุดมการณ์ประชาธิปไตย'''ถูกวางกรอบไว้ภายในวงศัพท์ของประชาธิปไตย แต่ลักษณะเฉพาะที่กำหนดความเป็นมันคือความปรารถนาต่อการดำรงอยู่รูปแบบใหม่ซึ่งแทบจะไม่เกี่ยวอะไรเลยกับ “การปกครองโดยประชาชน”}}
==== คำเกี่ยวข้อง ====
* {{l|en|democratist}}
==== ดูเพิ่ม ====
* {{l|en|republicanism}}
{{c|en|คตินิยม}}
78xcyz48sewwpnntv9k34touy4bx9ut
republicanism
0
2357463
5759025
5757914
2026-08-25T03:31:52Z
Octahedron80
267
/* ดูเพิ่ม */
5759025
wikitext
text/x-wiki
== ภาษาโรมาเนีย ==
=== รากศัพท์ ===
{{bor+|ro|fr|républicanisme}}; เทียบเท่า {{affix|ro|republican|-ism}}
=== คำนาม ===
{{ro-noun|n|-}}
# [[อุดมการณ์]]ซึ่ง[[ประชาชน]]เป็นผู้ทรง[[อำนาจอธิปไตย]]
==== การผันรูป ====
{{ro-noun-n|n=sg}}
== ภาษาอังกฤษ ==
{{wp|en:}}
=== รากศัพท์ ===
{{ety|en|:af|republican|-ism|text=+|tree=1}}
=== การออกเสียง ===
* {{audio|en|LL-Q1860 (eng)-Vealhurl-republicanism.wav|a=Southern England}}
=== คำนาม ===
{{en-noun|~}}
# [[อุดมการณ์]]ทางการเมืองของการเป็น[[พลเมือง]]ใน[[รัฐ]]แบบ[[สาธารณรัฐ]]ซึ่ง[[ประชาชน]]เป็นผู้ทรง[[อำนาจอธิปไตย]]
==== คำเกี่ยวข้อง ====
* {{l|en|republican}}, {{l|en|Republican}}
==== ดูเพิ่ม ====
* {{l|en|democratism}}
{{cln|en|6-syllable words}}
{{C|en|คตินิยม}}
4ndbnwfclx92ni1akfdl5lwbhi3tfhu
collection procedure
0
2358010
5758908
2026-08-24T11:59:18Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758908
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun}}
# {{synonym of|en|debt collection}}
s7j5kr2sgxmjwatupdu0wrg9hmba3be
debt enforcement
0
2358011
5758909
2026-08-24T11:59:31Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758909
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun|-}}
# {{synonym of|en|debt collection}}
#* {{quote-journal|en|date=17 August 2023|author=Aditya Chakrabortty|work=The Guardian|title=Can’t pay and they really do take it away: what happens when the bailiffs come knocking|url=https://www.theguardian.com/commentisfree/2023/aug/17/bailiffs-pay-car-impounded-poor-britain-poverty|passage=Since the cost of living crisis began, more than 2 million people have been contacted by a bailiff, while the big '''debt-enforcement''' companies are reporting record profits.|translation=นับตั้งแต่วิกฤตค่าครองชีพเริ่มต้นขึ้น ประชาชนกว่า 2 ล้านคนได้รับการติดต่อจากเจ้าพนักงานบังคับคดี ในขณะที่บริษัท'''ติดตามทวงหนี้'''รายใหญ่ต่างรายงานผลกำไรสูงเป็นประวัติการณ์}}
sqzlzfbowaaguslo47ebf5123t2gwqw
encashment
0
2358012
5758910
2026-08-24T12:00:19Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758910
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
จาก{{suffix|en|encash|ment}}
=== คำนาม ===
{{en-noun|~}}
# {{lb|en|การเงิน}} [[การขึ้นเงิน]]; [[การแลกเปลี่ยน]][[เช็ค]], [[ดราฟต์]], ฯลฯ เป็น[[เงิน]]
#: {{syn|en|cashing}}
#: {{ux|en|'''encashment''' of earned leave|translation=การแลกวันลาสะสมเป็นเงิน}}
=== อ้างอิง ===
* {{R:Webster 1913}}
syciuwj8cc9e8am10dx69zml90srio5
debt collector
0
2358013
5758911
2026-08-24T12:00:44Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758911
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun}}
# {{synonym of|en|collection agency}}
j2zluvthvhgvinb5yrhwkfq9ldytwux
collection agency
0
2358014
5758912
2026-08-24T12:01:42Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758912
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun}}
# {{lb|en|กฎหมาย|ธุรกิจ}} [[บริษัท]]ที่[[เจ้าหนี้]]หรือ[[ผู้ให้กู้]]ใช้เพื่อ[[เรียกคืน]][[เงิน]]ที่เกินกำหนดชำระ หรือจาก[[บัญชี]]ที่ได้[[ผิดนัดชำระหนี้]]
#: {{syn|en|debt collector}}
e2ap56jimcdinrs823qc3px40n25vih
desagraviar
0
2358015
5758913
2026-08-24T12:03:34Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758913
wikitext
text/x-wiki
== ภาษาสเปน ==
=== รากศัพท์ ===
{{ety|es|:af|des-|agraviar|text=+|tree=1}}
=== การออกเสียง ===
{{es-pr}}
=== คำกริยา ===
{{es-verb}}
# [[ชดใช้]], [[ไถ่โทษ]], [[ขอขมา]]
==== การผันรูป ====
{{es-conj}}
=== อ่านเพิ่ม ===
* {{R:es:DRAE}}
lr8pe9oaxff22tdv35pz9glsxhxncvi
nussi
0
2358016
5758914
2026-08-24T12:05:48Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5758914
wikitext
text/x-wiki
== ภาษาฟินแลนด์ ==
=== คำกริยา ===
{{head|fi|รูปกริยา}}
# {{inflection of|fi|nussia||3|s|past|ind|;|pres|act|ind|conn|;|2|s|pres|imp|;|2|s|pres|act|imp|conn}}
=== คำสลับอักษร ===
* {{anagrams|fi|a=inssu|sisun|susin|unssi}}
== ภาษาอาฟาร์ ==
{{number box|aa|2}}
=== รากศัพท์ ===
จาก{{bor|aa|ar|نُصْف}}
=== การออกเสียง ===
* {{aa-IPA|nússi}}
=== คำนาม ===
{{aa-noun|nússi|g=m}}
# [[ครึ่ง]]
#: {{syn|aa|gárab}}
==== อ้างอิง ====
* {{R:aa:Hassan Kamil:2015}}
== ภาษาเอสโตเนีย ==
=== คำนาม ===
{{head|et|รูปนาม}}
# {{noun form of|et|nuss||gen|s}}
# {{noun form of|et|nuss||par|s}}
# {{noun form of|et|nuss||ill|s}}
7h9yz28m5n32is4ebn1d17vu7ut06pf
unssi
0
2358017
5758915
2026-08-24T12:05:59Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758915
wikitext
text/x-wiki
== ภาษาฟินแลนด์ ==
=== รากศัพท์ ===
Borrowed from {{bor|fi|sv|uns}}, แรกสุดจาก{{der|fi|la|uncia}}
=== การออกเสียง ===
{{fi-p}}
=== คำนาม ===
{{fi-noun}}
# [[ออนซ์]] {{gloss|ในฟินแลนด์ มีค่าประมาณ 27.9, 29.6 หรือ 28.3 กรัม ขึ้นอยู่กับบริบท}}
==== การผันรูป ====
{{fi-decl-risti|unss|||a}}
==== ลูกคำ ====
{{col|fi|title=compounds
|hopeaunssi
|kultaunssi
|troy-unssi
}}
=== อ่านเพิ่ม ===
* {{R:fi:KTSK|accessdate=2023-07-04}}
=== คำสลับอักษร ===
* {{anagrams|fi|a=inssu|nussi|sisun|susin}}
{{C|fi|หน่วยวัด}}
pbl8i7w48st2n7mb2ebtgahf7kfcv0i
5758916
5758915
2026-08-24T12:06:09Z
Octahedron80
267
/* รากศัพท์ */
5758916
wikitext
text/x-wiki
== ภาษาฟินแลนด์ ==
=== รากศัพท์ ===
{{bor+|fi|sv|uns}}, แรกสุดจาก{{der|fi|la|uncia}}
=== การออกเสียง ===
{{fi-p}}
=== คำนาม ===
{{fi-noun}}
# [[ออนซ์]] {{gloss|ในฟินแลนด์ มีค่าประมาณ 27.9, 29.6 หรือ 28.3 กรัม ขึ้นอยู่กับบริบท}}
==== การผันรูป ====
{{fi-decl-risti|unss|||a}}
==== ลูกคำ ====
{{col|fi|title=compounds
|hopeaunssi
|kultaunssi
|troy-unssi
}}
=== อ่านเพิ่ม ===
* {{R:fi:KTSK|accessdate=2023-07-04}}
=== คำสลับอักษร ===
* {{anagrams|fi|a=inssu|nussi|sisun|susin}}
{{C|fi|หน่วยวัด}}
2q39y95x3tb8ve780cnyr24xjv48r6l
describir
0
2358018
5758917
2026-08-24T12:08:17Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758917
wikitext
text/x-wiki
== ภาษากาลิเซีย ==
=== รูปแบบอื่น ===
* {{alt|gl|descrever||แบบบูรณาการนิยม}}
=== รากศัพท์ ===
จาก{{der|gl|la|dēscrībō|dēscrībere|t=บรรยาย}}
=== คำกริยา ===
{{gl-verb}}
# [[บรรยาย]], [[พรรณนา]]
==== การผันรูป ====
{{gl-conj}}
==== คำเกี่ยวข้อง ====
* {{l|gl|descrición}}
* {{l|gl|descrição}}
=== อ้างอิง ===
https://academia.gal/dicionario/-/termo/busca/describir
== ภาษาสเปน ==
=== รากศัพท์ ===
จาก{{der|es|la|dēscrībō|dēscrībere|t=บรรยาย}}
=== การออกเสียง ===
{{es-pr}}
=== คำกริยา ===
{{es-verb}}
# [[บรรยาย]], [[พรรณนา]]ด้วยคำพูด
# [[ลากเส้น]], [[วาดเส้น]], บรรยาย[[ลักษณะ]]
==== หมายเหตุการใช้ ====
* รูปกริยาขยายอดีตกาล {{m|es|descripto}} ใช้ในอาร์เจนตินาและอุรุกวัย
* รูปกริยาขยายที่ไม่เป็นมาตรฐาน {{m|es|describido}} พบได้ทั่วไป
==== การผันรูป ====
{{es-conj}}
==== คำเกี่ยวข้อง ====
{{col|es
|descripción<g:f>
|descriptivo
}}
=== ดูเพิ่ม ===
* {{l|es|escribir}}
=== อ่านเพิ่ม ===
* {{R:es:DRAE}}
ec72ngmfnab0fp5i2ndfnbrp6ehifm8
5758928
5758917
2026-08-24T12:24:12Z
Octahedron80
267
/* รูปแบบอื่น */
5758928
wikitext
text/x-wiki
== ภาษากาลิเซีย ==
=== รูปแบบอื่น ===
* {{alt|gl|descrever||ปฏิบูรณาการนิยม}}
=== รากศัพท์ ===
จาก{{der|gl|la|dēscrībō|dēscrībere|t=บรรยาย}}
=== คำกริยา ===
{{gl-verb}}
# [[บรรยาย]], [[พรรณนา]]
==== การผันรูป ====
{{gl-conj}}
==== คำเกี่ยวข้อง ====
* {{l|gl|descrición}}
* {{l|gl|descrição}}
=== อ้างอิง ===
https://academia.gal/dicionario/-/termo/busca/describir
== ภาษาสเปน ==
=== รากศัพท์ ===
จาก{{der|es|la|dēscrībō|dēscrībere|t=บรรยาย}}
=== การออกเสียง ===
{{es-pr}}
=== คำกริยา ===
{{es-verb}}
# [[บรรยาย]], [[พรรณนา]]ด้วยคำพูด
# [[ลากเส้น]], [[วาดเส้น]], บรรยาย[[ลักษณะ]]
==== หมายเหตุการใช้ ====
* รูปกริยาขยายอดีตกาล {{m|es|descripto}} ใช้ในอาร์เจนตินาและอุรุกวัย
* รูปกริยาขยายที่ไม่เป็นมาตรฐาน {{m|es|describido}} พบได้ทั่วไป
==== การผันรูป ====
{{es-conj}}
==== คำเกี่ยวข้อง ====
{{col|es
|descripción<g:f>
|descriptivo
}}
=== ดูเพิ่ม ===
* {{l|es|escribir}}
=== อ่านเพิ่ม ===
* {{R:es:DRAE}}
24i9n4bnhbkpuj6o78bb6xomrldabej
ᨲᩬ᩶ᩁ
0
2358020
5758929
2026-08-24T12:24:50Z
Alifshinobi
397
สร้างหน้าด้วย "== ภาษาคำเมือง == === รูปแบบอื่น === {{nod-alt|~=ต้อน}} === การออกเสียง === * {{IPA|nod|/tɔːn˦˦ʔ/|a=เชียงใหม่}} === รากศัพท์ 1 === ==== คำกริยา ==== {{nod-verb}} # {{lb|nod|สกรรม}} [[รับ]], [[รับ]][[เอา]] # {{lb|nod|สกรรม}} [[รับรอง]] === รากศัพท์ 2 === =..."
5758929
wikitext
text/x-wiki
== ภาษาคำเมือง ==
=== รูปแบบอื่น ===
{{nod-alt|~=ต้อน}}
=== การออกเสียง ===
* {{IPA|nod|/tɔːn˦˦ʔ/|a=เชียงใหม่}}
=== รากศัพท์ 1 ===
==== คำกริยา ====
{{nod-verb}}
# {{lb|nod|สกรรม}} [[รับ]], [[รับ]][[เอา]]
# {{lb|nod|สกรรม}} [[รับรอง]]
=== รากศัพท์ 2 ===
==== คำกริยา ====
{{nod-verb}}
# {{lb|nod|สกรรม}} [[ให้]][[ของ]][[เพื่อ]][[เอาใจ]] [[อย่าง]][[เช่น]][[ซื้อ]][[ของ]][[ไป]][[แจก]][[เด็ก]] ๆ [[หลัง]][[จาก]][[ไป]][[เที่ยว]][[ทาง]][[ไกล]][[มา]]
=== อ้างอิง ===
{{รายการอ้างอิง}}
* ''พจนานุกรมภาษาล้านนา = The Lanna dictionary'' (พิมพ์ครั้งที่ 2). (พ.ศ. 2550). เชียงใหม่: สถาบันภาษา ศิลปะและวัฒนธรรม มหาวิทยาลัยราชภัฏเชียงใหม่.
sjjj3c3bxrzixu7iv0szrki5zzp3d9w
trapsing
0
2358021
5758930
2026-08-24T12:25:14Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758930
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำกริยา ===
{{head|en|รูปกริยา}}
# {{inflection of|en|trapse||ing-form}}
=== คำนาม ===
{{en-noun}}
# {{alternative form of|en|traipsing}}
2nmxe4d3dhygleaj89zuxtiyz9gae83
descrever
0
2358022
5758932
2026-08-24T12:25:51Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5758932
wikitext
text/x-wiki
== ภาษากาลิเซีย ==
=== คำกริยา ===
{{gl-reinteg-verb}}
# {{gl-reinteg sp|describir}}
==== การผันรูป ====
{{gl-reinteg-conj}}
==== คำเกี่ยวข้อง ====
* {{l|gl|descriçom}}, {{l|gl|descrição}}
=== อ้างอิง ===
* {{R:gl:Estraviz}}
== ภาษาโปรตุเกส ==
=== รากศัพท์ ===
{{ety|pt|:bor|la:describō<t:dēscrībere>|text=+|tree=1}}
=== การออกเสียง ===
{{pt-IPA|des^crevêr}}
=== คำกริยา ===
{{pt-verb}}
# {{lb|pt|สกรรมกริยา}} [[บรรยาย]], [[พรรณนา]] {{gloss|นำเสนอเป็นคำพูด; ให้รายละเอียดของ}}
# {{lb|pt|สกรรมกริยา}} บรรยาย; [[ลากเส้น]], [[วาดเส้น]] {{gloss|เคลื่อนที่ในลักษณะที่เส้นทางทำให้เกิดรูปทรงที่กำหนด}}
# {{lb|pt|อนุกรมวิธาน|สกรรมกริยา}} [[บรรยาย]] {{gloss|แนะนำหน่วยอนุกรมวิธานสู่วงการวิทยาศาสตร์}}
# {{lb|pt|คณิตศาสตร์|สกรรมกริยา}} [[บรรยาย]] {{gloss|ทำให้เกิดโครงสร้างทางเรขาคณิต}}
==== การผันรูป ====
{{pt-conj}}
==== คำเกี่ยวข้อง ====
* {{l|pt|descrição}}
* {{l|pt|descrito}}
* {{l|pt|descritor}}
=== อ่านเพิ่ม ===
* {{R:pt:Aulete}}
* {{R:pt:Priberam}}
428g4zc0rc97liopjt3v8rahnsvrxh5
แม่แบบ:gl-reintegrationist spelling of
10
2358023
5758933
2026-08-24T12:27:08Z
Octahedron80
267
นำเข้าจาก enwikt
5758933
wikitext
text/x-wiki
{{#invoke:form of/templates|form_of_t|รูปสะกด[[ภาคผนวก:ปฏิบูรณาการนิยม|ปฏิบูรณาการนิยม]]ของ|lang=gl|term_param=1|cat=รูปปฏิบูรณาการนิยม}}<!--
--><noinclude>{{documentation}}</noinclude>
tvlz84foz4othfv9ri2qtqmtr74lbtd
แม่แบบ:gl-reinteg sp
10
2358024
5758934
2026-08-24T12:27:21Z
Octahedron80
267
นำเข้าจาก enwikt
5758934
wikitext
text/x-wiki
#REDIRECT [[Template:gl-reintegrationist spelling of]]
kms1s0eqaf50q82fve74g5bhhk39pwy
neturpināšana
0
2358025
5758938
2026-08-24T12:37:26Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758938
wikitext
text/x-wiki
== ภาษาลัตเวีย ==
=== รากศัพท์ ===
จาก{{suffix|lv|neturpināt|šana|alt1=neturpinā(t)|gloss1=ไม่ทำต่อ}}
=== การออกเสียง ===
{{rfap|lv}}
=== คำนาม ===
{{lv-noun|f|4th}}
# [[การ]][[ไม่]][[ทำ]][[ต่อ]]; {{verbal noun of|lv|neturpināt}}
==== การผันรูป ====
{{lv-decl-noun|neturpināšan|a|4th|no-pl}}
9nfmgxmx61dfbjpuy2kw6b3frtgq158
escaure
0
2358026
5758939
2026-08-24T12:38:26Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758939
wikitext
text/x-wiki
== ภาษากาตาลา ==
=== รากศัพท์ ===
{{ety|ca|:inh|la-vul:*excadĕre}}
{{inh+|ca|la-vul|*excadĕre}}; {{surf|ca|es-|caure}}
=== การออกเสียง ===
* {{ca-IPA}}
* {{audio|ca|LL-Q7026 (cat)-Marvives-escaure.wav|a=Barcelona}}
=== คำกริยา ===
{{ca-verb}}
# {{lb|ca|อกรรมกริยา}} [[เหมาะสม]], [[เข้ากัน]] {{gloss|มีความเหมาะสมหรือเข้าที}}
#: {{syn|ca|convenir}}
#: {{uxi|ca|si escau|ถ้าเหมาะสม; ถ้าสามารถปรับใช้ได้}}
# {{lb|ca|กริยาสะท้อน}} [[บังเอิญ]]ไปอยู่ (ที่ใดที่หนึ่ง) {{gloss|อยู่ที่ใดที่หนึ่งโดยบังเอิญ}}
# {{lb|ca|กริยาสะท้อน}} [[ตรงกับ]] (วัน) {{gloss|เกิดขึ้นในวันใดวันหนึ่งเฉพาะ}}
==== การผันรูป ====
{{ca-conj}}
==== คำเกี่ยวข้อง ====
* {{l|ca|caure}}
=== อ่านเพิ่ม ===
* {{R:ca:IEC2}}
9augz3r3a0k3xmitt5szyyef2w8wp2p
desforestar
0
2358027
5758940
2026-08-24T12:39:37Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758940
wikitext
text/x-wiki
== ภาษากาตาลา ==
=== การออกเสียง ===
* {{ca-IPA}}
* {{audio|ca|LL-Q7026 (cat)-Marvives-desforestar.wav|a=Barcelona}}
=== คำกริยา ===
{{ca-verb|root=é}}<!-- based on [[forest]] in cawikt -->
# [[ตัด]][[ไม้]][[ทำลาย]][[ป่า]]
#: {{syn|ca|desboscar}}
==== การผันรูป ====
{{ca-conj}}
=== อ่านเพิ่ม ===
* {{R:ca:GDLC}}
* {{R:ca:IEC2}}
aojz7rrlbb69s2qn1fiejsq3m2m40uz
ᦎᦱᧅ
0
2358028
5758941
2026-08-24T12:40:14Z
Ai Ku Karng
17824
สร้างหน้าด้วย "== ภาษาไทลื้อ == === รากศัพท์ === {{inh+|khb|tai-pro|*p.raːkᴰ||ตาก}}; ร่วมเชื้อสายกับ{{cog|th|ตาก}}, {{cog|lo|ຕາກ}}, {{cog|nod|ᨲᩣ᩠ᨠ}}, {{cog|kkh|ᨲᩣ᩠ᨠ}}, {{cog|shn|တၢၵ်ႇ}}, {{cog|blt|ꪔꪱꪀ}}, {{cog|twh|ꪔꪱꪀ}}, {{cog|tdd|ᥖᥣᥐᥱ}}, {{cog|skb|ปร̄าก}}, {{cog|za|dak}}, {{cog|zzj|pyak}} === การออกเสี..."
5758941
wikitext
text/x-wiki
== ภาษาไทลื้อ ==
=== รากศัพท์ ===
{{inh+|khb|tai-pro|*p.raːkᴰ||ตาก}}; ร่วมเชื้อสายกับ{{cog|th|ตาก}}, {{cog|lo|ຕາກ}}, {{cog|nod|ᨲᩣ᩠ᨠ}}, {{cog|kkh|ᨲᩣ᩠ᨠ}}, {{cog|shn|တၢၵ်ႇ}}, {{cog|blt|ꪔꪱꪀ}}, {{cog|twh|ꪔꪱꪀ}}, {{cog|tdd|ᥖᥣᥐᥱ}}, {{cog|skb|ปร̄าก}}, {{cog|za|dak}}, {{cog|zzj|pyak}}
=== การออกเสียง ===
{{khb-pron}}
=== คำกริยา ===
{{khb-verb|l=ᨲᩣ᩠ᨠ}}
# [[ตาก]]
lvpxvlc8ctqgzb8j0mqs7g9nguy6lob
condecorar
0
2358029
5758942
2026-08-24T12:41:35Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5758942
wikitext
text/x-wiki
== ภาษากาตาลา ==
=== รากศัพท์ ===
{{ety|ca|:bor|la:condecorō<alt:condecorāre>}}
{{bor+|ca|la|condecorō|condecorāre}}
=== การออกเสียง ===
* {{ca-IPA}}
* {{rhymes|ca|a(ɾ)|s=4}}
=== คำกริยา ===
{{ca-verb|root=ó}}<!-- like [[decorar]] -->
# {{lb|ca|สกรรมกริยา|การทหาร}} [[ประดับ]][[เหรียญตรา]], [[มอบ]][[รางวัล]]
==== การผันรูป ====
{{ca-conj}}
==== ลูกคำ ====
* {{l|ca|condecoració}}
=== อ่านเพิ่ม ===
* {{R:ca:IEC2}}
* {{R:ca:GDLC}}
* {{R:ca:DNV}}
* {{R:ca:DCVB}}
== ภาษาโปรตุเกส ==
=== รากศัพท์ ===
{{ety|pt|:bor|la:condecorō<alt:condecorāre>|text=+|tree=1}}
=== การออกเสียง ===
{{pt-IPA}}
* {{hyph|pt|con|de|co|rar}}
=== คำกริยา ===
{{pt-verb}}
# {{lb|pt|สกรรมกริยา|การทหาร}} [[ประดับ]][[เหรียญตรา]]
==== การผันรูป ====
{{pt-conj}}
==== ลูกคำ ====
* {{l|pt|condecoração}}
=== อ่านเพิ่ม ===
* {{R:pt:Aulete}}
* {{R:pt:Priberam}}
== ภาษาสเปน ==
=== รากศัพท์ ===
จาก{{der|es|la|condecorō|condecorāre}}
=== การออกเสียง ===
{{es-pr}}
=== คำกริยา ===
{{es-verb}}
# {{lb|es|สกรรมกริยา|การทหาร}} [[ประดับ]][[เหรียญตรา]], [[มอบ]][[รางวัล]]
==== การผันรูป ====
{{es-conj}}
==== ลูกคำ ====
{{col|es|condecoración}}
=== อ่านเพิ่ม ===
* {{R:es:DRAE}}
lrgyw2xqkd4vk2dks4kahrbbeuokzlt
紅心大戰
0
2358030
5758943
2026-08-24T12:43:20Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758943
wikitext
text/x-wiki
== ภาษาจีน ==
{{zh-forms|s=红心大战|type=22}}
=== การออกเสียง ===
{{zh-pron
|m=hóngxīndàzhàn
|cat=n
}}
=== คำนาม ===
{{head|zh|คำนาม}}
# {{lb|zh|จีนแผ่นดินใหญ่|เกมไพ่}} [[ฮาตส์]]
==== คำพ้องความ ====
* {{qualifier|Taiwan|Hong Kong}} {{zh-l|傷心小棧}}
3yhqcoxzu75mf7g9n8z1ivj9o3vs7db
5758945
5758943
2026-08-24T12:44:16Z
Octahedron80
267
5758945
wikitext
text/x-wiki
== ภาษาจีน ==
{{zh-forms|s=红心大战|type=22}}
=== การออกเสียง ===
{{zh-pron
|m=hóngxīndàzhàn
|cat=n
}}
=== คำนาม ===
{{head|zh|คำนาม}}
# {{lb|zh|จีนแผ่นดินใหญ่|เกมไพ่}} [[ฮาตส์]]
==== คำพ้องความ ====
* {{qualifier|ไต้หวัน|ฮ่องกง}} {{zh-l|傷心小棧}}
mzz88vn2epd1xi3wlkmqsxugd6hax9m
傷心小棧
0
2358031
5758944
2026-08-24T12:44:16Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758944
wikitext
text/x-wiki
== ภาษาจีน ==
{{zh-forms|s=伤心小栈|type=211}}
=== การออกเสียง ===
{{zh-pron
|m=shāngxīnxiǎozhàn
|c=soeng1 sam1 siu2 zaan2
|cat=n
}}
=== คำนาม ===
{{head|zh|คำนาม}}
# {{lb|zh|ไต้หวัน|ฮ่องกง|เกมไพ่}} [[ฮาตส์]]
==== คำพ้องความ ====
* {{qualifier|จีนแผ่นดินใหญ่}} {{zh-l|紅心大戰}}
ilgf574dzcjqv9inoey5muul14qm9nm
傷心
0
2358032
5758946
2026-08-24T12:45:40Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758946
wikitext
text/x-wiki
== ภาษาจีน ==
{{zh-forms|s=伤心}}
=== การออกเสียง ===
{{zh-pron
|m=shāngxīn
|ma=Zh-shangxin.ogg
|c=soeng1 sam1
|ca=LL-Q9186-Luilui6666-伤心.wav
|h=pfs=sông-sîm;gd=song1 xim1
|mb=sióng-séng
|mn=qz,tw,xm:siong-sim/zz:siang-sim
|mn-t=siên1 sim1/sion1 sim1
|mn-t_note=siên1 sim1 - Chaozhou; sion1 sim1 - Jieyang
|w=sh:1saon shin1;sz:1saon sin1
|mc=1
|oc=1
|cat=a,v
}}
=== คำคุณศัพท์ ===
{{head|zh|คำคุณศัพท์}}
# [[เศร้า]]; [[เสียใจ]]; [[อกหัก]]
#: {{zh-x|我 越 想 越 覺得 傷心。|ยิ่งฉันคิด ฉันก็ยิ่งรู้สึก'''เศร้า'''}}
==== คำพ้องความ ====
{{syn-saurus|zh|悲傷}}
=== คำกริยา ===
{{zh-verb|type=vo}} {{tlb|zh|อกรรมกริยา}}
# ทำให้ใครบางคน[[อกหัก]]; ทำให้ใครบางคนเศร้า; ทำให้[[เสียใจ]]
#: {{zh-x|難道 你 不 知道 你 現在 已經 '''傷''' 了 很 多 人 的 '''心''' 嗎?|นี่คุณไม่รู้หรือว่าตอนนี้คุณได้ทำให้คนมากมายต้อง'''เสียใจ'''ไปแล้ว?}}
#* {{zh-x|是故 懷 戚 者 聞 之,莫不 憯{cǎn}懍 慘悽,愀愴 傷心。|หากผู้ที่อมทุกข์ได้สดับฟังดนตรีนี้ พวกเขาล้วนจะโศกเศร้าและเจ็บปวด ความโศกเศร้าจะ'''ทำร้ายจิตใจ'''พวกเขา และพวกเขาไม่อาจกลั้นเสียงคร่ำครวญอันโศกสลดได้|ref={{lang|zh|《[[s:zh:琴賦|琴賦]]》}} (''บทประพันธ์เรื่อง[[w:Guqin|ฉิน]]'') โดย {{w|Ji Kang|จี คัง}} (ปี 223–262); ฉบับแปลปี 1941 โดย {{w|Robert van Gulik|รอเบิร์ต ฟัน คูลิก}}}}
=== คำสืบทอด ===
{{CJKV||j=傷%心|しょう%しん|상심|thương tâm}}
{{cat|cmn|Elementary Mandarin}}
{{C|zh|อารมณ์}}
oekfpa5bojyvn981q6b5r6fs4m071i8
retail price
0
2358033
5758947
2026-08-24T12:47:42Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758947
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun}}
# {{lb|en|การจัดการ|การบัญชี}} [[ราคา]]ที่[[ลูกค้า]][[จ่าย]]สำหรับ[[สินค้า]]ใน[[ร้านค้า]]
==== Coordinate terms ====
* {{l|en|asking price}}
* {{l|en|base price}}
* {{l|en|bid price}}
* {{l|en|invoice price}}
* {{l|en|list price}}
* {{l|en|purchase price}}
* {{l|en|reserve price}}
* {{l|en|selling price}}
* {{l|en|sticker price}}
* {{l|en|unit price}}
t61n5m5nmaakpo8zwm5fh7ytwvqtvz5
5758948
5758947
2026-08-24T12:49:22Z
Octahedron80
267
/* คำนาม */
5758948
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun}}
# {{lb|en|การจัดการ|การบัญชี}} [[ราคาขายปลีก]]; [[ราคา]]ที่[[ลูกค้า]][[จ่าย]]สำหรับ[[สินค้า]]ใน[[ร้านค้า]]
==== Coordinate terms ====
* {{l|en|asking price}}
* {{l|en|base price}}
* {{l|en|bid price}}
* {{l|en|invoice price}}
* {{l|en|list price}}
* {{l|en|purchase price}}
* {{l|en|reserve price}}
* {{l|en|selling price}}
* {{l|en|sticker price}}
* {{l|en|unit price}}
d4jqbvzkplracbll3ugf1n1wotm4gi7
5758951
5758948
2026-08-24T12:57:46Z
Octahedron80
267
/* Coordinate terms */
5758951
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun}}
# {{lb|en|การจัดการ|การบัญชี}} [[ราคาขายปลีก]]; [[ราคา]]ที่[[ลูกค้า]][[จ่าย]]สำหรับ[[สินค้า]]ใน[[ร้านค้า]]
==== คำเกี่ยวข้อง ====
* {{l|en|asking price}}
* {{l|en|base price}}
* {{l|en|bid price}}
* {{l|en|invoice price}}
* {{l|en|list price}}
* {{l|en|purchase price}}
* {{l|en|reserve price}}
* {{l|en|selling price}}
* {{l|en|sticker price}}
* {{l|en|unit price}}
pa5r0q7jzajhvnhz6f3kimue0oy5cqr
unit price
0
2358034
5758950
2026-08-24T12:51:22Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758950
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
{{wp|en:}}
=== การออกเสียง ===
* {{audio|en|LL-Q1860 (eng)-Vealhurl-unit price.wav|a=Southern England}}
=== คำนาม ===
{{en-noun}}
# {{lb|en|ธุรกิจ|การตลาด}} [[ราคาต่อหน่วย]]; [[ราคา]]ของ[[สินค้า]]ใน[[ปริมาณ]][[มาตรฐาน]] เช่น ตาม[[น้ำหนัก]]หรือ[[ปริมาตร]] {{ng|(ตัวอย่างเช่น หากราคาบิสกิตหนึ่งห่อคือ 100 เปโซ และ[[น้ำหนักสุทธิ]]ของห่อคือ 250 กรัม ดังนั้นราคาต่อหน่วยของบิสกิตต่อกิโลกรัมจะเท่ากับ 400 เปโซ)}}
#: {{cot|en|unit cost|;|retail price}}
#* {{quote-journal|en|title=Health minister Edwina Hart wants law to force up the price of alcohol in Wales|work=Daily Post|author=Tom Bodden|date=April 28, 2010|passage=After 10 years, a '''unit price''' of between 40p-50p could reduce the number of alcohol-related deaths in Wales by 200-250, she said.|translation=หลังจากผ่านไป 10 ปี '''ราคาต่อหน่วย'''ที่อยู่ระหว่าง 40-50 เพนซ์ อาจช่วยลดจำนวนผู้เสียชีวิตที่เกี่ยวข้องกับแอลกอฮอล์ในเวลส์ลงได้ 200-250 คน เธอกล่าว}}
2ypjfkg3aj0pz0anjn8i6t2o7er3n1m
ᩉ᩠ᨶᩬᨦᨲᩩᨦ
0
2358035
5758952
2026-08-24T13:25:32Z
Ai Ku Karng
17824
สร้างหน้าด้วย "== ภาษาเขิน == === รากศัพท์ === {{com|kkh|ᩉ᩠ᨶᩬᨦ|ᨲᩩᨦ|t1=หนอง แอ่งน้ำ|t2=ตุงคฤๅษี}} === การออกเสียง === * {{IPA|kkh|/nɔːŋ˧˨˥.tuŋ˧˨˥/|a=เชียงตุง}} === คำวิสามานยนาม === {{kkh-proper noun}} # [[หนองตุง]]"
5758952
wikitext
text/x-wiki
== ภาษาเขิน ==
=== รากศัพท์ ===
{{com|kkh|ᩉ᩠ᨶᩬᨦ|ᨲᩩᨦ|t1=หนอง แอ่งน้ำ|t2=ตุงคฤๅษี}}
=== การออกเสียง ===
* {{IPA|kkh|/nɔːŋ˧˨˥.tuŋ˧˨˥/|a=เชียงตุง}}
=== คำวิสามานยนาม ===
{{kkh-proper noun}}
# [[หนองตุง]]
kiv2s1nzg7aom7ytj3r6de7o8ev5955
5758953
5758952
2026-08-24T13:27:59Z
Ai Ku Karng
17824
5758953
wikitext
text/x-wiki
== ภาษาเขิน ==
=== รากศัพท์ ===
{{com|kkh|ᩉ᩠ᨶᩬᨦ|ᨲᩩᨦ|t1=หนอง, แอ่งน้ำ|t2=ตุงคฤๅษี}}
=== การออกเสียง ===
* {{IPA|kkh|/nɔːŋ˧˨˥.tuŋ˧˨˥/|a=เชียงตุง}}
=== คำวิสามานยนาม ===
{{kkh-proper noun}}
# [[หนองตุง]]
n04d3ep0hpvp11r3wuye3ibwe2vzvxb
คุยกับผู้ใช้:Rattanaporn Phongpa
3
2358036
5758955
2026-08-24T15:42:16Z
New user message
2698
เพิ่ม[[Template:Welcome|สารต้อนรับ]]ในหน้าคุยของผู้ใช้ใหม่
5758955
wikitext
text/x-wiki
{{Template:Welcome|realName=|name=Rattanaporn Phongpa}}
-- [[ผู้ใช้:New user message|New user message]] ([[คุยกับผู้ใช้:New user message|คุย]]) 22:42, 24 สิงหาคม 2569 (+07)
k2ufehjydfvjsax6zt41zkzgftxm3qx
ehe
0
2358037
5758957
2026-08-24T17:26:06Z
Ponpan
693
สร้างหน้าด้วย "== ภาษาเยอรมัน == === รูปแบบอื่น === * {{alt|de|eh}} === การออกเสียง === * {{IPA|de|/ˈʔeːə/}} * {{audio|de|De-ehe.ogg|a=<<Germany>> (<<Berlin>>)}} === คำสันธาน === {{head|de|คำสันธาน|cat2=สันธานนำซ้อนความ|นำซ้อนความ}} # [[ก่อน]], ก่อน[[ที่]] #: {{syn|de|bevor}} #: {{ant|de|n..."
5758957
wikitext
text/x-wiki
== ภาษาเยอรมัน ==
=== รูปแบบอื่น ===
* {{alt|de|eh}}
=== การออกเสียง ===
* {{IPA|de|/ˈʔeːə/}}
* {{audio|de|De-ehe.ogg|a=<<Germany>> (<<Berlin>>)}}
=== คำสันธาน ===
{{head|de|คำสันธาน|cat2=สันธานนำซ้อนความ|นำซ้อนความ}}
# [[ก่อน]], ก่อน[[ที่]]
#: {{syn|de|bevor}}
#: {{ant|de|nachdem}}
#: {{ux|de|Der Winter muss enden, '''ehe''' der Sommer kommt.|ฤดูหนาวต้องสิ้นสุด'''ก่อนที่'''ฤดูร้อนจะมาถึง}}
#* {{RQ:Heyking Orgelpfeifen|page=34|passage=Durch die noch leeren dunklen Straßen hallte der Hufschlag nahender Pferde auf dem feuchten Pflaster, lange '''ehe''' etwas von ihnen zu sehen war.|translation=เสียงกีบเท้าของม้าที่กำลังใกล้เข้ามากระทบพื้นหินถนนอันเปียกชื้นดังก้องไปตามถนนที่ยังคงว่างเปล่าและมืดมิด นาน'''ก่อนที่จะ'''มองเห็นตัวพวกมันเสียอีก}}
==== ลูกคำ ====
* {{l|de|ehedem}}
=== อ่านเพิ่ม ===
* {{R:de:Duden|ehe_Konjunktion_bevor|ehe (Konjunktion, bevor)}}
* {{R:de:DWDS}}
7bnw3cvi5cpsesu4bmheb7p2at8z8bs
5758958
5758957
2026-08-24T17:26:25Z
Ponpan
693
/* คำสันธาน */
5758958
wikitext
text/x-wiki
== ภาษาเยอรมัน ==
=== รูปแบบอื่น ===
* {{alt|de|eh}}
=== การออกเสียง ===
* {{IPA|de|/ˈʔeːə/}}
* {{audio|de|De-ehe.ogg|a=<<Germany>> (<<Berlin>>)}}
=== คำสันธาน ===
{{head|de|คำสันธาน|cat2=คำสันธานนำซ้อนความ|นำซ้อนความ}}
# [[ก่อน]], ก่อน[[ที่]]
#: {{syn|de|bevor}}
#: {{ant|de|nachdem}}
#: {{ux|de|Der Winter muss enden, '''ehe''' der Sommer kommt.|ฤดูหนาวต้องสิ้นสุด'''ก่อนที่'''ฤดูร้อนจะมาถึง}}
#* {{RQ:Heyking Orgelpfeifen|page=34|passage=Durch die noch leeren dunklen Straßen hallte der Hufschlag nahender Pferde auf dem feuchten Pflaster, lange '''ehe''' etwas von ihnen zu sehen war.|translation=เสียงกีบเท้าของม้าที่กำลังใกล้เข้ามากระทบพื้นหินถนนอันเปียกชื้นดังก้องไปตามถนนที่ยังคงว่างเปล่าและมืดมิด นาน'''ก่อนที่จะ'''มองเห็นตัวพวกมันเสียอีก}}
==== ลูกคำ ====
* {{l|de|ehedem}}
=== อ่านเพิ่ม ===
* {{R:de:Duden|ehe_Konjunktion_bevor|ehe (Konjunktion, bevor)}}
* {{R:de:DWDS}}
8edbq7u31rg7fe6omr2xyv22riey32r
5758959
5758958
2026-08-24T17:26:53Z
Ponpan
693
5758959
wikitext
text/x-wiki
{{also|Ehe|eĥe|èhʻè|ęhęʼ|ê hề}}
== ภาษาเยอรมัน ==
=== รูปแบบอื่น ===
* {{alt|de|eh}}
=== การออกเสียง ===
* {{IPA|de|/ˈʔeːə/}}
* {{audio|de|De-ehe.ogg|a=<<Germany>> (<<Berlin>>)}}
=== คำสันธาน ===
{{head|de|คำสันธาน|cat2=คำสันธานนำซ้อนความ|นำซ้อนความ}}
# [[ก่อน]], ก่อน[[ที่]]
#: {{syn|de|bevor}}
#: {{ant|de|nachdem}}
#: {{ux|de|Der Winter muss enden, '''ehe''' der Sommer kommt.|ฤดูหนาวต้องสิ้นสุด'''ก่อนที่'''ฤดูร้อนจะมาถึง}}
#* {{RQ:Heyking Orgelpfeifen|page=34|passage=Durch die noch leeren dunklen Straßen hallte der Hufschlag nahender Pferde auf dem feuchten Pflaster, lange '''ehe''' etwas von ihnen zu sehen war.|translation=เสียงกีบเท้าของม้าที่กำลังใกล้เข้ามากระทบพื้นหินถนนอันเปียกชื้นดังก้องไปตามถนนที่ยังคงว่างเปล่าและมืดมิด นาน'''ก่อนที่จะ'''มองเห็นตัวพวกมันเสียอีก}}
==== ลูกคำ ====
* {{l|de|ehedem}}
=== อ่านเพิ่ม ===
* {{R:de:Duden|ehe_Konjunktion_bevor|ehe (Konjunktion, bevor)}}
* {{R:de:DWDS}}
cq21miy4j4mbz92pty8upztt448dgyn
tabula rasa
0
2358038
5758962
2026-08-24T19:28:47Z
Alifshinobi
397
สร้างหน้าด้วย "==ภาษาอังกฤษ== ===การออกเสียง=== * {{IPA|en|/ˈtæbjʊlə ˈɹɑːzə/|/ˈtæbjʊlə ˈɹeɪzə/}} * {{audio|en|en-us-tabularasa.ogg|a=GA}} ===คำนาม=== {{en-noun|tabulae rasae|tabulæ rasæ|nolink=1}} # [[แผ่นที่ว่างเปล่า]] #: {{syn|en|blank slate}}"
5758962
wikitext
text/x-wiki
==ภาษาอังกฤษ==
===การออกเสียง===
* {{IPA|en|/ˈtæbjʊlə ˈɹɑːzə/|/ˈtæbjʊlə ˈɹeɪzə/}}
* {{audio|en|en-us-tabularasa.ogg|a=GA}}
===คำนาม===
{{en-noun|tabulae rasae|tabulæ rasæ|nolink=1}}
# [[แผ่นที่ว่างเปล่า]]
#: {{syn|en|blank slate}}
1xodqkxfkpnyzmd5r2t5x825ue981hx
ᨯᩣ
0
2358039
5758963
2026-08-24T20:22:20Z
Alifshinobi
397
สร้างหน้าด้วย "== ภาษาคำเมือง == === รูปแบบอื่น === {{nod-alt|~=ดา}} === การออกเสียง === * {{IPA|nod|/daː˧˧/|a=เชียงใหม่}} === รากศัพท์ 1 === ==== คำนาม ==== {{nod-noun}} # {{lang|nod|([[ᨾᩯ᩠ᨦ]]~)}} [[แมลง]][[ชนิด]][[หนึ่ง]] [[เรียก]][[ว่า]] {{l|nod|[[ᨾᩯ᩠ᨦ]]ᨯᩣ}} === รากศัพ..."
5758963
wikitext
text/x-wiki
== ภาษาคำเมือง ==
=== รูปแบบอื่น ===
{{nod-alt|~=ดา}}
=== การออกเสียง ===
* {{IPA|nod|/daː˧˧/|a=เชียงใหม่}}
=== รากศัพท์ 1 ===
==== คำนาม ====
{{nod-noun}}
# {{lang|nod|([[ᨾᩯ᩠ᨦ]]~)}} [[แมลง]][[ชนิด]][[หนึ่ง]] [[เรียก]][[ว่า]] {{l|nod|[[ᨾᩯ᩠ᨦ]]ᨯᩣ}}
=== รากศัพท์ 2 ===
==== คำกริยา ====
{{nod-verb}}
# {{lb|nod|สกรรม}} [[จัด]]
# {{lb|nod|สกรรม}} [[เตรียม]]
=== รากศัพท์ 3 ===
==== คำกริยาวิเศษณ์ ====
{{nod-adv|-}}
# [[จน]][[จะ]], [[เกือบ]][[จะ]]
=== อ้างอิง ===
{{รายการอ้างอิง}}
* ''พจนานุกรมภาษาล้านนา = The Lanna dictionary'' (พิมพ์ครั้งที่ 2). (พ.ศ. 2550). เชียงใหม่: สถาบันภาษา ศิลปะและวัฒนธรรม มหาวิทยาลัยราชภัฏเชียงใหม่.
ha9mtw1ut9qxc6987v13z9hffg7412y
5758965
5758963
2026-08-24T20:23:17Z
Alifshinobi
397
/* คำนาม */
5758965
wikitext
text/x-wiki
== ภาษาคำเมือง ==
=== รูปแบบอื่น ===
{{nod-alt|~=ดา}}
=== การออกเสียง ===
* {{IPA|nod|/daː˧˧/|a=เชียงใหม่}}
=== รากศัพท์ 1 ===
==== คำนาม ====
{{nod-noun|ᨲ᩠ᩅᩫ}}
# {{lang|nod|([[ᨾᩯ᩠ᨦ]]~)}} [[แมลง]][[ชนิด]][[หนึ่ง]] [[เรียก]][[ว่า]] {{l|nod|[[ᨾᩯ᩠ᨦ]]ᨯᩣ}}
=== รากศัพท์ 2 ===
==== คำกริยา ====
{{nod-verb}}
# {{lb|nod|สกรรม}} [[จัด]]
# {{lb|nod|สกรรม}} [[เตรียม]]
=== รากศัพท์ 3 ===
==== คำกริยาวิเศษณ์ ====
{{nod-adv|-}}
# [[จน]][[จะ]], [[เกือบ]][[จะ]]
=== อ้างอิง ===
{{รายการอ้างอิง}}
* ''พจนานุกรมภาษาล้านนา = The Lanna dictionary'' (พิมพ์ครั้งที่ 2). (พ.ศ. 2550). เชียงใหม่: สถาบันภาษา ศิลปะและวัฒนธรรม มหาวิทยาลัยราชภัฏเชียงใหม่.
68jcn4us6ns9ryjfvqrrqdvylji0cc2
ᨾᩯ᩠ᨦᨯᩣ
0
2358040
5758964
2026-08-24T20:22:52Z
Alifshinobi
397
เปลี่ยนทางหน้าไปยัง [[ᨯᩣ]]
5758964
wikitext
text/x-wiki
#เปลี่ยนทาง [[ᨯᩣ]]
npwdjgcxd90xk3z25fi18495nf5j6d7
sticker price
0
2358041
5758967
2026-08-25T02:14:11Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758967
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun}}
# {{lb|en|การตลาด}} [[ราคา]]ที่แสดงไว้บนหรือใกล้กับ[[สินค้า]]เพื่อระบุราคาที่เสนอขายสินค้านั้น
==== คำเกี่ยวข้อง ====
* [[list price]]
* [[MSRP]]
* [[SRP]]
* [[sticker shock]]
* [[RRP]]
dadfs6gv8ekjdfxxcj8ko49mt9qzyty
selling price
0
2358042
5758968
2026-08-25T02:15:35Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758968
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun}}
# {{lb|en|ธุรกิจ}} [[ราคาขาย]]; [[ราคา]]ที่ตั้งไว้เพื่อ[[ขาย]][[สินค้า]]
#: {{syn|en|sale price}}
#: {{cot|en|purchase price}}
=== ดูเพิ่ม ===
* {{l|en|list price}}
16wbh749983suh62cyho7fhtqmmbrn0
sale price
0
2358043
5758969
2026-08-25T02:17:50Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758969
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun}}
# [[ราคาขาย]]; [[ราคา]]ที่เสนอขายของ[[สินค้า]]
# ราคาที่[[ลดลง]]ของบางสิ่งในระหว่าง[[การลดราคา]]
=== คำสลับอักษร ===
* {{anagrams|en|a=aceeilprs|episclera|periclase|prelacies|replicase|specialer}}
k2h0gi4d2txlmkgypj0uuk6evwz0yku
reserve price
0
2358044
5758970
2026-08-25T02:19:11Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758970
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
{{wp|en:reservation price}}
=== คำนาม ===
{{en-noun}}
# [[ราคา]]ที่ผู้ขายกำหนดไว้ใน[[การประมูล]] ซึ่งหากต่ำกว่าราคานี้จะไม่สามารถขายสินค้าหรือของชิ้นนั้นได้
#: {{ux|en|Bidding did not reach the '''reserve price''', so the lot was withdrawn.|translation=การเสนอราคาไม่ถึง'''ราคาขั้นต่ำที่กำหนดไว้''' ดังนั้นสินค้าจึงถูกถอนออกไป}}
==== คำพ้องความ ====
* {{l|en|reservation price}}
* {{l|en|reserve}}
* {{l|en|upset price}}
==== ดูเพิ่ม ====
* {{l|en|starting price}}
* {{l|en|no-reserve auction}}
0lrlt4a7mjebryvn4e8kbktp6rz8x63
5758977
5758970
2026-08-25T02:25:52Z
Octahedron80
267
/* คำนาม */
5758977
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
{{wp|en:reservation price}}
=== คำนาม ===
{{en-noun}}
# [[ราคาสงวน]]; [[ราคา]]ที่ผู้ขายกำหนดไว้ใน[[การประมูล]] ซึ่งหากต่ำกว่าราคานี้จะไม่สามารถขายสินค้าหรือของชิ้นนั้นได้
#: {{ux|en|Bidding did not reach the '''reserve price''', so the lot was withdrawn.|translation=การเสนอราคาไม่ถึง'''ราคาขั้นต่ำที่กำหนดไว้''' ดังนั้นสินค้าจึงถูกถอนออกไป}}
==== คำพ้องความ ====
* {{l|en|reservation price}}
* {{l|en|reserve}}
* {{l|en|upset price}}
==== ดูเพิ่ม ====
* {{l|en|starting price}}
* {{l|en|no-reserve auction}}
qjpa94qvgy5an5htpfvngo9fbebw2i3
reservation price
0
2358045
5758971
2026-08-25T02:20:05Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758971
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun}}
# {{synonym of|en|bottom line||ผลลัพธ์ขั้นต่ำที่ยอมรับได้จากการเจรจา}}
0t6mazuetes6cq8bug8txq23m9w21pb
bottom line
0
2358046
5758972
2026-08-25T02:22:02Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758972
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
อ้างอิงถึงบรรทัดสุดท้ายในงบกำไรขาดทุนหรือบันทึกทางบัญชีอื่น ๆ ตามตัวอักษร
=== การออกเสียง ===
* {{audio|en|en-au-bottom line.ogg|a=AU}}
=== คำนาม ===
{{en-noun|~}}
# {{lb|en|นับได้|นับไม่ได้|ธุรกิจ}} [[ยอด]][[คงเหลือ]][[สุดท้าย]]; จำนวน[[เงิน]]หรือ[[กำไร]]ที่เหลืออยู่หลังจากรวมยอดทั้งหมดแล้ว
#* {{see citations|en}}
# {{lb|en|สำนวน}} [[บทสรุป]]หรือ[[ผลลัพธ์]]; [[ข้อมูล]]ที่[[สำคัญ]]ที่สุด
#: {{syn|en|upshot|net-net}}
#: {{ux|en|The '''bottom line''' is that there simply are not enough hours in the day to finish all there is to do.|translation='''บทสรุป'''ก็คือว่า ในหนึ่งวันมีเวลาไม่เพียงพอที่จะทำทุกอย่างให้เสร็จสิ้นได้เลย}}
#* {{quote-song|en|year=1980|author=w:Teena Marie|album=Irons in the Fire|title=I Need Your Lovin’|passage=I need your lovin' and that's the '''bottom line''' / I need your lovin' or just a little time|translation=ฉันต้องการความรักจากคุณ และนั่นคือ'''สิ่งสำคัญที่สุด''' / ฉันต้องการความรักจากคุณ หรือขอเวลาเพียงเล็กน้อย}}
#* {{quote-book|en
|year=1988
|author=w:Richard Nixon
|chapter=The Superpowers
|title=1999: Victory Without War
|url=https://archive.org/details/1999victorywitho00nixo/
|publisher=w:Simon and Schuster
|ISBN=0-671-62712-0
|LCCN=88-4547
|OCLC=17321859
|page=38
|pageurl=https://archive.org/details/1999victorywitho00nixo/page/38/
|text=When Gorbachev totals up the balance sheet of Soviet strengths and weaknesses, the '''bottom line''' is not encouraging. Moscow has put itself into a unique historical position: It does not have a single ally among the major powers of the world.|translation=เมื่อกอร์บาชอฟรวมงบดุลจุดแข็งและจุดอ่อนของสหภาพโซเวียต '''ผลลัพธ์ที่ได้'''นั้นไม่น่าชื่นชมเลย มอสโกได้นำตัวเองเข้าสู่ตำแหน่งทางประวัติศาสตร์ที่ไม่เหมือนใคร นั่นคือ ไม่มีพันธมิตรแม้แต่ประเทศเดียวในหมู่มหาอำนาจของโลก}}
#* {{quote-web|en|author=w:Phil McNulty|title='England horribly fallible in defence' against Kosovo in Euro 2020 qualifying|work=w:BBC Sport|url=https://www.bbc.com/sport/football/49657650|date=10 September 2019|text=The '''bottom line''' is this - England have little or no chance of beating quality international sides if they defend as shoddily and carelessly as this, if they give possession away as cheaply as this and are as easy to get at as Kosovo made it look.|archiveurl=https://web.archive.org/web/20210213194655/https://www.bbc.com/sport/football/49657650|translation='''บทสรุป'''ก็คือ อังกฤษแทบจะไม่มีโอกาสเอาชนะทีมระดับนานาชาติที่มีคุณภาพได้เลย หากพวกเขาเล่นเกมรับได้อย่างย่ำแย่และสะเพร่าเช่นนี้ หากพวกเขาเสียการครองบอลไปอย่างง่ายดาย และถูกเจาะได้ง่ายเหมือนที่โคโซโวทำให้เห็น}}
#* {{quote-journal|en|date=2023 July 26|author=Stefanie Foster|title=Rebuild trust or it's game over|journal=RAIL|issue=988|page=3|text=But the '''bottom line''' is that passengers want to see staff at a station and be able to find them easily.|translation=แต่'''สิ่งสำคัญที่สุด'''ก็คือ ผู้โดยสารต้องการเห็นเจ้าหน้าที่ที่สถานีและสามารถหาพวกเขาพบได้ง่าย}}
#* {{see more citations|en}}
# {{lb|en|สำนวน}} ผลลัพธ์ขั้นต่ำที่[[ยอมรับ]]ได้จาก[[การเจรจา]]
#: {{ux|en|My '''bottom line''' for this job is $125,000; any less and I'll walk away.|translation='''ผลลัพธ์ขั้นต่ำที่ยอมรับได้'''ของฉันสำหรับงานนี้คือ 125,000 ดอลลาร์ หากน้อยกว่านี้ฉันจะขอผ่าน}}
#: {{synonyms|en|BATNA|reservation price}}
==== ลูกคำ ====
{{col|en|bottom-line|bottom liner|qq1=รูปคำกริยา}}
==== คำเกี่ยวข้อง ====
{{col|en|at bottom<!--ในท้ายที่สุด-->|bottom dollar|rock bottom<!--ผลลัพธ์ขั้นต่ำที่ยอมรับได้-->}}
=== คำกริยาวิเศษณ์ ===
{{en-adv|-}}
# {{lb|en|ขยายประโยค}} {{syn of|en|all in all#คำกริยาวิเศษณ์}}
#: {{ux|en|'''Bottom line''', there's no way we're coming to the family reunion, as we can't afford hotel stays and airfares right now.|translation='''สรุปสั้น ๆ เลยนะ''' ไม่มีทางที่เราจะไปร่วมงานรวมญาติได้ เพราะตอนนี้เราไม่มีเงินจ่ายค่าที่พักและตั๋วเครื่องบิน}}
ofmjxzt11hrua2gr9afta4tjnhyb0od
5758973
5758972
2026-08-25T02:22:22Z
Octahedron80
267
/* คำนาม */
5758973
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
อ้างอิงถึงบรรทัดสุดท้ายในงบกำไรขาดทุนหรือบันทึกทางบัญชีอื่น ๆ ตามตัวอักษร
=== การออกเสียง ===
* {{audio|en|en-au-bottom line.ogg|a=AU}}
=== คำนาม ===
{{en-noun|~}}
# {{lb|en|นับได้|นับไม่ได้|ธุรกิจ}} [[ยอด]][[คงเหลือ]][[สุดท้าย]]; จำนวน[[เงิน]]หรือ[[กำไร]]ที่เหลืออยู่หลังจากรวมยอดทั้งหมดแล้ว
# {{lb|en|สำนวน}} [[บทสรุป]]หรือ[[ผลลัพธ์]]; [[ข้อมูล]]ที่[[สำคัญ]]ที่สุด
#: {{syn|en|upshot|net-net}}
#: {{ux|en|The '''bottom line''' is that there simply are not enough hours in the day to finish all there is to do.|translation='''บทสรุป'''ก็คือว่า ในหนึ่งวันมีเวลาไม่เพียงพอที่จะทำทุกอย่างให้เสร็จสิ้นได้เลย}}
#* {{quote-song|en|year=1980|author=w:Teena Marie|album=Irons in the Fire|title=I Need Your Lovin’|passage=I need your lovin' and that's the '''bottom line''' / I need your lovin' or just a little time|translation=ฉันต้องการความรักจากคุณ และนั่นคือ'''สิ่งสำคัญที่สุด''' / ฉันต้องการความรักจากคุณ หรือขอเวลาเพียงเล็กน้อย}}
#* {{quote-book|en
|year=1988
|author=w:Richard Nixon
|chapter=The Superpowers
|title=1999: Victory Without War
|url=https://archive.org/details/1999victorywitho00nixo/
|publisher=w:Simon and Schuster
|ISBN=0-671-62712-0
|LCCN=88-4547
|OCLC=17321859
|page=38
|pageurl=https://archive.org/details/1999victorywitho00nixo/page/38/
|text=When Gorbachev totals up the balance sheet of Soviet strengths and weaknesses, the '''bottom line''' is not encouraging. Moscow has put itself into a unique historical position: It does not have a single ally among the major powers of the world.|translation=เมื่อกอร์บาชอฟรวมงบดุลจุดแข็งและจุดอ่อนของสหภาพโซเวียต '''ผลลัพธ์ที่ได้'''นั้นไม่น่าชื่นชมเลย มอสโกได้นำตัวเองเข้าสู่ตำแหน่งทางประวัติศาสตร์ที่ไม่เหมือนใคร นั่นคือ ไม่มีพันธมิตรแม้แต่ประเทศเดียวในหมู่มหาอำนาจของโลก}}
#* {{quote-web|en|author=w:Phil McNulty|title='England horribly fallible in defence' against Kosovo in Euro 2020 qualifying|work=w:BBC Sport|url=https://www.bbc.com/sport/football/49657650|date=10 September 2019|text=The '''bottom line''' is this - England have little or no chance of beating quality international sides if they defend as shoddily and carelessly as this, if they give possession away as cheaply as this and are as easy to get at as Kosovo made it look.|archiveurl=https://web.archive.org/web/20210213194655/https://www.bbc.com/sport/football/49657650|translation='''บทสรุป'''ก็คือ อังกฤษแทบจะไม่มีโอกาสเอาชนะทีมระดับนานาชาติที่มีคุณภาพได้เลย หากพวกเขาเล่นเกมรับได้อย่างย่ำแย่และสะเพร่าเช่นนี้ หากพวกเขาเสียการครองบอลไปอย่างง่ายดาย และถูกเจาะได้ง่ายเหมือนที่โคโซโวทำให้เห็น}}
#* {{quote-journal|en|date=2023 July 26|author=Stefanie Foster|title=Rebuild trust or it's game over|journal=RAIL|issue=988|page=3|text=But the '''bottom line''' is that passengers want to see staff at a station and be able to find them easily.|translation=แต่'''สิ่งสำคัญที่สุด'''ก็คือ ผู้โดยสารต้องการเห็นเจ้าหน้าที่ที่สถานีและสามารถหาพวกเขาพบได้ง่าย}}
#* {{see more citations|en}}
# {{lb|en|สำนวน}} ผลลัพธ์ขั้นต่ำที่[[ยอมรับ]]ได้จาก[[การเจรจา]]
#: {{ux|en|My '''bottom line''' for this job is $125,000; any less and I'll walk away.|translation='''ผลลัพธ์ขั้นต่ำที่ยอมรับได้'''ของฉันสำหรับงานนี้คือ 125,000 ดอลลาร์ หากน้อยกว่านี้ฉันจะขอผ่าน}}
#: {{synonyms|en|BATNA|reservation price}}
==== ลูกคำ ====
{{col|en|bottom-line|bottom liner|qq1=รูปคำกริยา}}
==== คำเกี่ยวข้อง ====
{{col|en|at bottom<!--ในท้ายที่สุด-->|bottom dollar|rock bottom<!--ผลลัพธ์ขั้นต่ำที่ยอมรับได้-->}}
=== คำกริยาวิเศษณ์ ===
{{en-adv|-}}
# {{lb|en|ขยายประโยค}} {{syn of|en|all in all#คำกริยาวิเศษณ์}}
#: {{ux|en|'''Bottom line''', there's no way we're coming to the family reunion, as we can't afford hotel stays and airfares right now.|translation='''สรุปสั้น ๆ เลยนะ''' ไม่มีทางที่เราจะไปร่วมงานรวมญาติได้ เพราะตอนนี้เราไม่มีเงินจ่ายค่าที่พักและตั๋วเครื่องบิน}}
i7fehczoa37sh0bz7hlkk5p91llpeaj
5758974
5758973
2026-08-25T02:22:37Z
Octahedron80
267
/* คำนาม */
5758974
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
อ้างอิงถึงบรรทัดสุดท้ายในงบกำไรขาดทุนหรือบันทึกทางบัญชีอื่น ๆ ตามตัวอักษร
=== การออกเสียง ===
* {{audio|en|en-au-bottom line.ogg|a=AU}}
=== คำนาม ===
{{en-noun|~}}
# {{lb|en|นับได้|นับไม่ได้|ธุรกิจ}} [[ยอด]][[คงเหลือ]][[สุดท้าย]]; จำนวน[[เงิน]]หรือ[[กำไร]]ที่เหลืออยู่หลังจากรวมยอดทั้งหมดแล้ว
# {{lb|en|สำนวน}} [[บทสรุป]]หรือ[[ผลลัพธ์]]; [[ข้อมูล]]ที่[[สำคัญ]]ที่สุด
#: {{syn|en|upshot|net-net}}
#: {{ux|en|The '''bottom line''' is that there simply are not enough hours in the day to finish all there is to do.|translation='''บทสรุป'''ก็คือว่า ในหนึ่งวันมีเวลาไม่เพียงพอที่จะทำทุกอย่างให้เสร็จสิ้นได้เลย}}
#* {{quote-song|en|year=1980|author=w:Teena Marie|album=Irons in the Fire|title=I Need Your Lovin’|passage=I need your lovin' and that's the '''bottom line''' / I need your lovin' or just a little time|translation=ฉันต้องการความรักจากคุณ และนั่นคือ'''สิ่งสำคัญที่สุด''' / ฉันต้องการความรักจากคุณ หรือขอเวลาเพียงเล็กน้อย}}
#* {{quote-book|en
|year=1988
|author=w:Richard Nixon
|chapter=The Superpowers
|title=1999: Victory Without War
|url=https://archive.org/details/1999victorywitho00nixo/
|publisher=w:Simon and Schuster
|ISBN=0-671-62712-0
|LCCN=88-4547
|OCLC=17321859
|page=38
|pageurl=https://archive.org/details/1999victorywitho00nixo/page/38/
|text=When Gorbachev totals up the balance sheet of Soviet strengths and weaknesses, the '''bottom line''' is not encouraging. Moscow has put itself into a unique historical position: It does not have a single ally among the major powers of the world.|translation=เมื่อกอร์บาชอฟรวมงบดุลจุดแข็งและจุดอ่อนของสหภาพโซเวียต '''ผลลัพธ์ที่ได้'''นั้นไม่น่าชื่นชมเลย มอสโกได้นำตัวเองเข้าสู่ตำแหน่งทางประวัติศาสตร์ที่ไม่เหมือนใคร นั่นคือ ไม่มีพันธมิตรแม้แต่ประเทศเดียวในหมู่มหาอำนาจของโลก}}
#* {{quote-web|en|author=w:Phil McNulty|title='England horribly fallible in defence' against Kosovo in Euro 2020 qualifying|work=w:BBC Sport|url=https://www.bbc.com/sport/football/49657650|date=10 September 2019|text=The '''bottom line''' is this - England have little or no chance of beating quality international sides if they defend as shoddily and carelessly as this, if they give possession away as cheaply as this and are as easy to get at as Kosovo made it look.|archiveurl=https://web.archive.org/web/20210213194655/https://www.bbc.com/sport/football/49657650|translation='''บทสรุป'''ก็คือ อังกฤษแทบจะไม่มีโอกาสเอาชนะทีมระดับนานาชาติที่มีคุณภาพได้เลย หากพวกเขาเล่นเกมรับได้อย่างย่ำแย่และสะเพร่าเช่นนี้ หากพวกเขาเสียการครองบอลไปอย่างง่ายดาย และถูกเจาะได้ง่ายเหมือนที่โคโซโวทำให้เห็น}}
#* {{quote-journal|en|date=2023 July 26|author=Stefanie Foster|title=Rebuild trust or it's game over|journal=RAIL|issue=988|page=3|text=But the '''bottom line''' is that passengers want to see staff at a station and be able to find them easily.|translation=แต่'''สิ่งสำคัญที่สุด'''ก็คือ ผู้โดยสารต้องการเห็นเจ้าหน้าที่ที่สถานีและสามารถหาพวกเขาพบได้ง่าย}}
# {{lb|en|สำนวน}} ผลลัพธ์ขั้นต่ำที่[[ยอมรับ]]ได้จาก[[การเจรจา]]
#: {{ux|en|My '''bottom line''' for this job is $125,000; any less and I'll walk away.|translation='''ผลลัพธ์ขั้นต่ำที่ยอมรับได้'''ของฉันสำหรับงานนี้คือ 125,000 ดอลลาร์ หากน้อยกว่านี้ฉันจะขอผ่าน}}
#: {{synonyms|en|BATNA|reservation price}}
==== ลูกคำ ====
{{col|en|bottom-line|bottom liner|qq1=รูปคำกริยา}}
==== คำเกี่ยวข้อง ====
{{col|en|at bottom<!--ในท้ายที่สุด-->|bottom dollar|rock bottom<!--ผลลัพธ์ขั้นต่ำที่ยอมรับได้-->}}
=== คำกริยาวิเศษณ์ ===
{{en-adv|-}}
# {{lb|en|ขยายประโยค}} {{syn of|en|all in all#คำกริยาวิเศษณ์}}
#: {{ux|en|'''Bottom line''', there's no way we're coming to the family reunion, as we can't afford hotel stays and airfares right now.|translation='''สรุปสั้น ๆ เลยนะ''' ไม่มีทางที่เราจะไปร่วมงานรวมญาติได้ เพราะตอนนี้เราไม่มีเงินจ่ายค่าที่พักและตั๋วเครื่องบิน}}
murws89dqnfft2g8jp1l37t1qh55u3o
upset price
0
2358047
5758975
2026-08-25T02:24:20Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758975
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
เทียบ {{m|en|set up}}, กล่าวคือ ตายตัว, กำหนดไว้แล้ว
=== คำนาม ===
{{en-noun}}
# [[ราคา]][[ต่ำ]]สุดที่สามารถ[[ขาย]][[สินค้า]][[ประมูล]]ได้
#: {{synonyms|en|reserve}}
#* {{RQ:Scott Guy Mannering|passage=After a solemn pause, Mr. Glossin offered the '''upset price''' for the lands and barony of Ellangowan.|translation=หลังจากหยุดนิ่งอย่างเคร่งขรึม คุณกลอสซินได้เสนอ'''ราคาขั้นต่ำ'''สำหรับที่ดินและบารอนีแห่งเอลแลนโกวัน}}
{{C|en|การเงิน}}
234r7llv5omjba6xyq1zonm27fbrs3n
5758978
5758975
2026-08-25T02:26:26Z
Octahedron80
267
/* คำนาม */
5758978
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
เทียบ {{m|en|set up}}, กล่าวคือ ตายตัว, กำหนดไว้แล้ว
=== คำนาม ===
{{en-noun}}
# [[ราคาขั้นต่ำ]]; [[ราคา]][[ต่ำ]]สุดที่สามารถ[[ขาย]][[สินค้า]][[ประมูล]]ได้
#: {{synonyms|en|reserve}}
#* {{RQ:Scott Guy Mannering|passage=After a solemn pause, Mr. Glossin offered the '''upset price''' for the lands and barony of Ellangowan.|translation=หลังจากหยุดนิ่งอย่างเคร่งขรึม คุณกลอสซินได้เสนอ'''ราคาขั้นต่ำ'''สำหรับที่ดินและบารอนีแห่งเอลแลนโกวัน}}
{{C|en|การเงิน}}
s1qd1ggd0z47rihuc56y71s39l35gbs
purchase price
0
2358048
5758976
2026-08-25T02:25:24Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758976
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun}}
# {{lb|en|การบัญชี|การจัดการ}} [[ราคา]]ที่[[ซื้อ]]สิ่งใดสิ่งหนึ่งมาจริง ๆ โดยเฉพาะใน[[มุมมอง]]ของผู้ซื้อ
#: {{cot|en|asking price|base price|bid price|invoice price|list price|reserve price|retail price|selling price|sticker price|unit price}}
0ewzwo8ytj0xgb6sf1sie3awjh9tmtm
reserves
0
2358049
5758979
2026-08-25T02:26:49Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5758979
wikitext
text/x-wiki
== ภาษากาตาลา ==
=== รากศัพท์ 1 ===
==== คำนาม ====
{{head|ca|รูปนาม}}
# {{plural of|ca|reserva}}
=== รากศัพท์ 2 ===
==== คำกริยา ====
{{head|ca|รูปกริยา}}
# {{ca-verb form of|reservar}}
== ภาษาดัตช์ ==
=== การออกเสียง ===
* {{audio|nl|Nl-reserves.ogg}}
=== คำนาม ===
{{head|nl|รูปนาม}}
# {{plural of|nl|reserve}}
== ภาษาโปรตุเกส ==
=== คำกริยา ===
{{head|pt|รูปกริยา}}
# {{pt-verb form of|reservar}}
== ภาษาละติน ==
=== คำกริยา ===
{{head|la|รูปกริยา|head=reservēs}}
# {{inflection of|la|reservō||2|s|pres|actv|subj}}
== ภาษาสเปน ==
=== คำกริยา ===
{{head|es|รูปกริยา}}
# {{es-verb form of|reservar}}
== ภาษาอังกฤษ ==
=== การออกเสียง ===
* {{IPA|en|/ɹɪˈzɝvz/|a=GA}}
* {{IPA|en|/ɹɪˈzɜːvz/|a=RP}}
* {{rhymes|en|ɜː(ɹ)vz|s=2}}
* {{hyph|en|re|serves}}
* {{audio|en|en-us-reserves.ogg|a=US}}
=== คำนาม ===
{{head|en|รูปนาม}}
# {{plural of|en|reserve}}
=== คำกริยา ===
{{head|en|รูปกริยา}}
# {{inflection of|en|reserve||s-verb-form}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eeerrssv|reverses}}
hdzrfe3059ay96m9lem2k1sxol5ecyy
reverses
0
2358050
5758980
2026-08-25T02:27:04Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5758980
wikitext
text/x-wiki
== ภาษาฝรั่งเศส ==
=== การออกเสียง ===
* {{fr-IPA|pos=v}}
=== คำกริยา ===
{{head|fr|รูปกริยา}}
# {{inflection of|fr|reverser||2|s|pres|ind//sub}}
=== คำสลับอักษร ===
* {{l|fr|réserves}}, {{l|fr|réservés}}
* {{l|fr|resserve}}
== ภาษาละติน ==
=== คำกริยา ===
{{head|la|รูปกริยา|head=reversēs}}
# {{inflection of|la|reversō||2|s|pres|actv|subj}}
== ภาษาสเปน ==
=== คำกริยา ===
{{head|es|รูปกริยา}}
# {{es-verb form of|reversar}}
== ภาษาอังกฤษ ==
=== คำนาม ===
{{head|en|รูปนาม}}
# {{plural of|en|reverse}}
=== คำกริยา ===
{{head|en|รูปกริยา}}
# {{inflection of|en|reverse||s-verb-form}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eeerrssv|reserves}}
gnbladsnb0e5wk1wzhssex8c6vse8jt
réserves
0
2358051
5758981
2026-08-25T02:27:16Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758981
wikitext
text/x-wiki
== ภาษาฝรั่งเศส ==
=== การออกเสียง ===
* {{audio|fr|LL-Q150 (fra)-Lyokoï-réserves.wav|a=<<France>> (<<Lyon>>)}}
=== คำกริยา ===
{{head|fr|รูปกริยา}}
# {{inflection of|fr|réserver||2|s|pres|ind//sub}}
=== คำสลับอักษร ===
* {{l|fr|resserve}}
* {{l|fr|reverses}}
b1nrx6u89g2z0t3tr3dwqgplwf306or
réservés
0
2358052
5758982
2026-08-25T02:27:19Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758982
wikitext
text/x-wiki
== ภาษาฝรั่งเศส ==
=== รูปกริยาขยาย ===
{{head|fr|รูปผันรูปกริยาขยายอดีตกาล|g=m-p}}
# {{masculine plural of|fr|réservé}}
=== คำสลับอักษร ===
* {{l|fr|resserve}}
* {{l|fr|reverses}}
dpeh52t73bleegcsxmqj7s25o6fkin4
reserved
0
2358053
5758983
2026-08-25T02:29:33Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758983
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== การออกเสียง ===
* {{IPA|en|/ɹɪˈzɝvd/|a=GA}}
* {{IPA|en|/ɹɪˈzɜːvd/|a=RP}}
* {{audio|en|LL-Q1860 (eng)-Persent101-reserved.wav|a=US}}
* {{hyph|en|re|served}}
=== คำกริยา ===
{{head|en|รูปกริยา}}
# {{inflection of|en|reserve#คำกริยา||ed-form}}
=== คำคุณศัพท์ ===
{{en-adj}}
# {{lb|en|เปรียบเทียบได้}} [[สำรวม]], [[สงวนท่าที]]ในการแสดง[[อารมณ์]]หรือ[[ความคิดเห็น]]
#: {{syn|en|restrained|reticent}}
#: {{nsyn|en|taciturn|untalkative|อรรถาภิธาน:taciturn}}
#: {{ux|en|He was a quiet, '''reserved''' person.|translation=เขาเป็นคนเงียบ ๆ และ'''สงวนท่าที'''}}
#* {{quote-journal|en|year=1942|month=July-August|author=Chas. S. Lake|title=Some C.M.Es. I Have Known: II—C. J. Bowen Cooke|journal=Railway Magazine|page=223|text=Before I met Mr. Bowen Cooke I had been given to understand that he was of a '''reserved''' nature, and on occasion could be a "bit of a martinet"; [...].|translation=ก่อนที่ผมจะพบกับคุณโบเวน คุก ผมได้รับรู้มาว่าเขาเป็นคนมีนิสัย'''สงวนท่าที''' และในบางครั้งก็อาจเป็น "คนที่เจ้าระเบียบ" อยู่บ้าง...}}
# {{lb|en|เปรียบเทียบไม่ได้}} [[สงวน]]หรือ[[จอง]]ไว้สำหรับบุคคลหรือวัตถุประสงค์เฉพาะ; มีคนจองแล้ว
#: {{syn|en|in reserve}}
#: {{nearsyn|en|allocated|assigned|dedicated}}
#: {{ux|en|I'm sorry, sir, but these are '''reserved''' seats.|translation=ขอโทษครับท่าน แต่ที่นั่งเหล่านี้เป็นที่นั่งที่'''จองไว้'''แล้ว}}
#* {{quote-book|en|year=1929|author=[[w:Arthur Conan Doyle|Sir Arthur Conan Doyle]]|title=When the World Screamed|url=http://gutenberg.net.au/ebooks01/0100031h.html|passage=A special '''reserved''' enclosure with sandbags and a corrugated iron roof was set aside for three members of the Royal Family.|translation=พื้นที่ปิดล้อมพิเศษที่'''สงวนไว้'''พร้อมกระสอบทรายและหลังคาเหล็กลูกฟูกถูกจัดเตรียมไว้สำหรับพระบรมวงศานุวงศ์สามพระองค์}}
#* {{quote-journal|en|date=2024 July 24|author=Christian Wolmar|title=Overcrowded trains... and inconvenience for passengers|journal=RAIL|issue=1014|page=44|text=The LNER website, for example, tries to stop people buying off-peak tickets for services that the company reckons are full, even though there is nothing to prevent people without a seat reservation from getting on a particular service. Indeed, I did so recently on the Inverness midday train, which is a superb service to York, and inevitably there were plenty of '''reserved''' seats where the passengers had not turned up.|translation=ตัวอย่างเช่น เว็บไซต์ LNER พยายามหยุดไม่ให้ผู้คนซื้อตั๋วนอกช่วงเวลาเร่งด่วนสำหรับบริการที่บริษัทประเมินว่าเต็มแล้ว แม้ว่าจะไม่มีสิ่งใดขัดขวางผู้ที่ไม่ได้จองที่นั่งจากการขึ้นรถไฟขบวนใดขบวนหนึ่งก็ตาม อันที่จริง ผมเพิ่งทำเช่นนั้นไปเมื่อไม่นานมานี้บนรถไฟสายอินเวอร์เนสช่วงเที่ยง ซึ่งเป็นบริการที่ยอดเยี่ยมไปยังยอร์ก และหลีกเลี่ยงไม่ได้เลยที่จะมีที่นั่งซึ่ง'''ถูกจองไว้'''จำนวนมากโดยที่ผู้โดยสารไม่ได้มาปรากฏตัว}}
==== ลูกคำ ====
{{col|en|nonreserved|underreserved|unreserved|reserved track|all rights reserved|no rights reserved|reserved case|reserved list|reserved powers|some rights reserved|{{l|en|reserved word}} (computing)|reservedly|reservedness|reserved bus lane}}
=== ดูเพิ่ม ===
* {{l|en|shy}}
=== คำสลับอักษร ===
* {{anagrams|en|a=deeerrsv|deserver|reversed}}
{{C|en|บุคลิกภาพ}}
0b8uv255tgcpmqu2bffzyga76ml8wvo
reversed
0
2358054
5758984
2026-08-25T02:31:53Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758984
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== การออกเสียง ===
* {{audio|en|en-us-reversed.ogg|a=US}}
=== คำกริยา ===
{{head|en|รูปกริยา}}
# {{inflection of|en|reverse||ed-form}}
=== คำคุณศัพท์ ===
{{en-adj|-}}
# [[พลิก]]กลับหรือ[[สลับ]]เป็น[[ตรงกันข้าม]]; ซึ่งเอาข้างในออกข้างนอกหรือ[[กลับหัว]]
#* {{quote-journal|en|year=2011|month=April|journal=w:The Atlantic|author=w:Newton Minow|title=A Vaster Wasteland|passage=Fifty years ago, the FCC regulated telephone service that came by wire, and television service that came through the air. Today, as MIT’s Nicholas Negroponte predicted, these services are mostly '''reversed'''.|translation=เมื่อห้าสิบปีก่อน FCC กำกับดูแลบริการโทรศัพท์ที่มาทางสาย และบริการโทรทัศน์ที่มาทางอากาศ ในปัจจุบัน ดังที่นิโคลัส เนโกรพอนต์ แห่ง MIT ได้ทำนายไว้ บริการเหล่านี้ส่วนใหญ่ได้'''สลับกัน'''แล้ว}}
# {{lb|en|พฤกษศาสตร์}} ซึ่ง[[พลิกกลับ]]
==== ลูกคำ ====
{{col|en|nonreversed|photoreversed|reversedly|unreversed
|sides reversed is|pall reversed|reversed pall}}
=== คำสลับอักษร ===
* {{anagrams|en|a=deeerrsv|deserver|reserved}}
n12imvxykgnfk7var720fdn3wn6a5kf
5758985
5758984
2026-08-25T02:32:16Z
Octahedron80
267
/* คำคุณศัพท์ */
5758985
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== การออกเสียง ===
* {{audio|en|en-us-reversed.ogg|a=US}}
=== คำกริยา ===
{{head|en|รูปกริยา}}
# {{inflection of|en|reverse||ed-form}}
=== คำคุณศัพท์ ===
{{en-adj|-}}
# [[พลิก]]กลับหรือ[[สลับ]]เป็น[[ตรงกันข้าม]]; ซึ่งเอาข้างในออกข้างนอกหรือ[[กลับหัว]]
#* {{quote-journal|en|year=2011|month=April|journal=w:The Atlantic|author=w:Newton Minow|title=A Vaster Wasteland|passage=Fifty years ago, the FCC regulated telephone service that came by wire, and television service that came through the air. Today, as MIT’s Nicholas Negroponte predicted, these services are mostly '''reversed'''.|translation=เมื่อห้าสิบปีก่อน FCC กำกับดูแลบริการโทรศัพท์ที่มาทางสาย และบริการโทรทัศน์ที่มาทางอากาศ ในปัจจุบัน ดังที่นิโคลัส เนโกรพอนต์ แห่ง MIT ได้ทำนายไว้ บริการเหล่านี้ส่วนใหญ่ได้'''สลับกัน'''แล้ว}}
# {{lb|en|พฤกษศาสตร์}} ซึ่งพลิกกลับ ([[resupinate]])
==== ลูกคำ ====
{{col|en|nonreversed|photoreversed|reversedly|unreversed
|sides reversed is|pall reversed|reversed pall}}
=== คำสลับอักษร ===
* {{anagrams|en|a=deeerrsv|deserver|reserved}}
7ep9dm4q10gw10bkq9uo90nv444ovsn
reveres
0
2358055
5758990
2026-08-25T02:46:59Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5758990
wikitext
text/x-wiki
== ภาษากาลิเซีย ==
=== คำกริยา ===
{{head|gl|รูปกริยา}}
# {{gl-verb form of|rever<no_built_in>}}
== ภาษาโปรตุเกส ==
=== คำกริยา ===
{{head|pt|รูปกริยา}}
# {{pt-verb form of|rever}}
== ภาษาอังกฤษ ==
=== คำกริยา ===
{{head|en|รูปกริยา}}
# {{inflection of|en|revere||s-verb-form}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eeerrsv|Reserve|reserve|reverse|severer|veerers}}
== ภาษาอังกฤษกลาง ==
=== คำนาม ===
{{head|enm|รูปนาม}}
# {{plural of|enm|revere}}
hq0g2aaq1go2wfyusnhb1x0f6u9jgan
severer
0
2358056
5758991
2026-08-25T02:48:08Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758991
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ 1 ===
==== การออกเสียง ====
* {{IPA|en|/sɪˈvɪəɹə(ɹ)/}}
* {{audio|en|LL-Q1860 (eng)-Vealhurl-severer.wav|a=Southern England}}
==== คำคุณศัพท์ ====
{{head|en|คำคุณศัพท์ขั้นกว่า}}
# {{en-comparative of|severe}}
=== รากศัพท์ 2 ===
{{ety|en|:af|sever|-er<id:agent noun>|text=+|tree=1}}
==== การออกเสียง ====
* {{IPA|en|/ˈsɛvəɹə(ɹ)/}}
* {{audio|en|LL-Q1860 (eng)-Vealhurl-severer2.wav|a=Southern England}}
==== คำนาม ====
{{en-noun}}
# [[ผู้]]ที่[[ตัด]], ผู้ที่[[แบ่งแยก]], ผู้[[ตัดขาด]]
#* {{quote-book|en|year=1862|author=Sir Daniel Wilson|title=Prehistoric man, researches into the origin of civilisation|page=133|passage=They received this name from the jealousy of their rivals, who thereby intimated that they were '''severers''' of the unity of the Algonquin nation, as a people who were setting up an independent government {{...}}|translation=พวกเขาได้รับชื่อนี้จากความอิจฉาริษยาของคู่แข่ง ซึ่งได้กล่าวเป็นนัยว่าพวกเขาคือ'''ผู้ตัดขาด'''ความสามัคคีของชนชาติอัลกอนควิน ในฐานะกลุ่มคนที่กำลังก่อตั้งรัฐบาลอิสระ {{...}}}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eeerrsv|Reserve|Reveres|reserve|reveres|reverse|veerers}}
{{cln|en|heteronyms}}
a6rsik1beineiem4ufyxlvcq8wn1v9w
reservist
0
2358057
5758992
2026-08-25T02:52:09Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5758992
wikitext
text/x-wiki
== ภาษาดัตช์ ==
=== รากศัพท์ ===
Borrowed from {{bor|nl|fr|réserviste}}. Equivalent to {{suffix|nl|reserve|ist}}.
=== การออกเสียง ===
* {{IPA|nl|/ˌreː.zɛrˈvɪst/|/ˌreː.zərˈvɪst/}}
* {{audio|nl|Nl-reservist.ogg}}
* {{hyphenation|nl|re|ser|vist}}
* {{rhymes|nl|ɪst}}
=== คำนาม ===
{{nl-noun|m|-en|-}}
# {{lb|nl|military}} [[ทหาร]][[กองหนุน]]
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
{{ety|en|:af|reserve|-ist|text=+|tree=1}}
=== การออกเสียง ===
* {{audio|en|LL-Q1860 (eng)-Knabrupt-reservist.wav|a=General American}}
=== คำนาม ===
{{en-noun}}
# [[ทหาร]]ที่ถูกจัดให้เป็น[[กองหนุน]]: ซึ่งหลังจากการฝึกแล้ว จะไม่ได้ปฏิบัติหน้าที่[[ประจำการ]]เต็มเวลาอีกต่อไป
#* {{quote-book|en|year=1898|author=w:H.G. Wells|title=w:The War of the Worlds|publisher=William Heinemann|location=London|page=124|passage=One of the men there, a '''reservist''' he said he was, told my brother he had seen the heliograph flickering in the west.|translation=ชายคนหนึ่งที่นั่น ซึ่งบอกว่าตัวเขาเองเป็น'''ทหารกองหนุน''' ได้บอกพี่ชายของฉันว่าเขาเห็นแสงสัญญาณเฮลิโอกราฟกะพริบอยู่ทางทิศตะวันตก}}
==== คำพ้องความ ====
* {{l|en|weekend warrior}}
==== คำเกี่ยวข้อง ====
* {{l|en|reservism}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eeirrsstv|restrives|reverists}}
3ugvs71jitn56wauiq0xdc0mwqw7bkq
5758993
5758992
2026-08-25T02:52:32Z
Octahedron80
267
/* รากศัพท์ */
5758993
wikitext
text/x-wiki
== ภาษาดัตช์ ==
=== รากศัพท์ ===
{{bor+|nl|fr|réserviste}}; เทียบเท่า {{suffix|nl|reserve|ist}}
=== การออกเสียง ===
* {{IPA|nl|/ˌreː.zɛrˈvɪst/|/ˌreː.zərˈvɪst/}}
* {{audio|nl|Nl-reservist.ogg}}
* {{hyphenation|nl|re|ser|vist}}
* {{rhymes|nl|ɪst}}
=== คำนาม ===
{{nl-noun|m|-en|-}}
# {{lb|nl|military}} [[ทหาร]][[กองหนุน]]
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
{{ety|en|:af|reserve|-ist|text=+|tree=1}}
=== การออกเสียง ===
* {{audio|en|LL-Q1860 (eng)-Knabrupt-reservist.wav|a=General American}}
=== คำนาม ===
{{en-noun}}
# [[ทหาร]]ที่ถูกจัดให้เป็น[[กองหนุน]]: ซึ่งหลังจากการฝึกแล้ว จะไม่ได้ปฏิบัติหน้าที่[[ประจำการ]]เต็มเวลาอีกต่อไป
#* {{quote-book|en|year=1898|author=w:H.G. Wells|title=w:The War of the Worlds|publisher=William Heinemann|location=London|page=124|passage=One of the men there, a '''reservist''' he said he was, told my brother he had seen the heliograph flickering in the west.|translation=ชายคนหนึ่งที่นั่น ซึ่งบอกว่าตัวเขาเองเป็น'''ทหารกองหนุน''' ได้บอกพี่ชายของฉันว่าเขาเห็นแสงสัญญาณเฮลิโอกราฟกะพริบอยู่ทางทิศตะวันตก}}
==== คำพ้องความ ====
* {{l|en|weekend warrior}}
==== คำเกี่ยวข้อง ====
* {{l|en|reservism}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eeirrsstv|restrives|reverists}}
q4cossy3pncxnl722ufvc56hswggqwg
reservisten
0
2358058
5758994
2026-08-25T02:53:05Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5758994
wikitext
text/x-wiki
== ภาษาดัตช์ ==
=== การออกเสียง ===
* {{audio|nl|Nl-reservisten.ogg}}
=== คำนาม ===
{{head|nl|รูปนาม}}
# {{plural of|nl|reservist}}
== ภาษาสวีเดน ==
=== คำนาม ===
{{head|sv|รูปนาม}}
# {{noun form of|sv|reservist||def|s}}
g9lth3pgg5en402tkw9sige39399po5
reservists
0
2358059
5758995
2026-08-25T02:53:10Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5758995
wikitext
text/x-wiki
== ภาษาสวีเดน ==
=== คำนาม ===
{{head|sv|รูปนาม}}
# {{noun form of|sv|reservist||indef|gen|s}}
== ภาษาอังกฤษ ==
=== คำนาม ===
{{head|en|รูปนาม}}
# {{plural of|en|reservist}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eeirrssstv|servitress}}
ki2ckvimrjsc4rbzpeuphffe7urx56x
servitress
0
2358060
5758996
2026-08-25T02:54:01Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5758996
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
จาก{{suffix|en|servitor|ess<id:female>}}
=== คำนาม ===
{{en-noun}}
# {{lb|en|historical}} [[คนรับใช้]][[หญิง]]
#: {{syn|en|servitrix}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eeirrssstv|reservists}}
0bm0k96yeyck26kqy9bp4mdnjk5isky
หมวดหมู่:User uk-4
14
2358061
5758998
2026-08-25T02:55:57Z
Babel AutoCreate
4995
สร้างหน้าหมวดหมู่[[-|บาเบล]]อัตโนมัติ
5758998
wikitext
text/x-wiki
{{Babel category|level=4|language={{langname|uk}}|ISO=uk}}<!--no need ยูเครน--> [[Category:User_uk|4]]
j23fwvvxwqilepy3xpi2882d21rir4s
หมวดหมู่:User it-2
14
2358062
5758999
2026-08-25T02:55:57Z
Babel AutoCreate
4995
สร้างหน้าหมวดหมู่[[-|บาเบล]]อัตโนมัติ
5758999
wikitext
text/x-wiki
{{Babel category|level=2|language={{langname|it}}|ISO=it}}<!--no need อิตาลี--> [[Category:User_it|2]]
n1bvj8sqhdd7sih8own9hjme3sgpefm
list price
0
2358063
5759000
2026-08-25T03:00:53Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759000
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun}}
# {{lb|en|ธุรกิจ}} [[ราคาขายปลีก]]ของ[[สินค้า]] ตามที่[[ผู้ผลิต]]หรือ[[ผู้จัดจำหน่าย]]ปลีกแนะนำ หรือตามที่ระบุไว้ใน[[แค็ตตาล็อก]] (ราคาป้าย, ราคาตามบัญชี, ราคาปก)
#* {{quote-text|en|year=1870|author=w:Charles Reade|title=Put Yourself in His Place|chapter=5
|passage=A respectable workman was with me yesterday, and objected that you receive from Mr. Cheetham a higher payment than the '''list price'''.|translation=คนงานที่น่านับถือคนหนึ่งอยู่กับฉันเมื่อวานนี้ และได้คัดค้านว่าคุณได้รับค่าตอบแทนจากคุณชีธามสูงกว่า'''ราคาที่กำหนดไว้'''}}
#* {{quote-journal|en|date=April 29 1966|title=Autos: How to Pay Less for a New Car|titleurl=https://web.archive.org/web/20120119140508/http://www.time.com/time/magazine/article/0,9171,835454,00.html|journal=Time
|passage=Paying the manufacturer's '''list price''' shown on the window sticker of a new car may be about as smart as snapping up an itinerant rug merchant's opening offer.|translation=การจ่ายเงินตาม'''ราคาป้าย'''ของผู้ผลิตที่แสดงบนสติกเกอร์ติดหน้าต่างรถยนต์คันใหม่อาจดูฉลาดพอ ๆ กับการรีบตะครุบข้อเสนอแรกของพ่อค้าขายพรมเร่ร่อน}}
#* {{quote-journal|en|date=Oct 20 2009|author=Motoko Rich|title=In Book-Pricing Battle, How Low Can They Go?|titleurl=http://www.nytimes.com/2009/10/21/books/21price.html|journal=New York Times|accessdate=23 Oct 2011
|passage=Publishers typically sell hardcover books to retailers at half the '''list price''', while retailers set consumer prices.|translation=โดยปกติแล้วสำนักพิมพ์จะขายหนังสือปกแข็งให้กับร้านค้าปลีกในราคาครึ่งหนึ่งของ'''ราคาปก''' ในขณะที่ร้านค้าปลีกจะเป็นผู้กำหนดราคาสำหรับผู้บริโภค}}
==== ดูเพิ่ม ====
* {{l|en|MSRP}}
* {{l|en|SRP}}
* {{l|en|RRP}}
* {{l|en|sticker price}}
* {{l|en|guide price}}
=== อ้างอิง ===
* {{R:OneLook}}
=== คำสลับอักษร ===
* {{anagrams|en|a=ceiilprst|price list|pricelist}}
q8urf7uunqkbm3t4tf4r97y9yow4u65
pricelist
0
2358064
5759001
2026-08-25T03:01:24Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759001
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
จาก{{affix|en|price|list}}
=== คำนาม ===
{{en-noun}}
# {{alternative form of|en|price list}}
=== คำสลับอักษร ===
* {{anagrams|en|a=ceiilprst|list price}}
sn8yk9tio7i6mqmo3a5wjdku3egx1p6
price list
0
2358065
5759002
2026-08-25T03:03:33Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759002
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รูปแบบอื่น ===
* {{alter|en|pricelist|price-list}}
=== รากศัพท์ ===
จาก{{affix|en|price|list}}; เทียบ{{noncog|fy|priislist|t=รายการราคา}}, {{noncog|nl|prijslijst|t=รายการราคา}}, {{noncog|de|Preisliste|t=รายการราคา}}, {{noncog|da|prisliste|t=รายการราคา}}, {{noncog|sv|prislista|t=รายการราคา}}, {{noncog|no|prisliste|t=รายการราคา}}
=== การออกเสียง ===
* {{audio|en|LL-Q1860 (eng)-Vealhurl-price list.wav|a=Southern England}}
=== คำนาม ===
{{en-noun}}
# {{lb|en|ธุรกิจ}} [[รายการ]][[สินค้า]]สำหรับขายพร้อมระบุ[[ราคา]] (รายการราคา, ใบแจ้งราคา)
=== คำสลับอักษร ===
* {{anagrams|en|a=ceiilprst|list price}}
6as4o346n4q4fdk0y56sn8gz3u3ifdu
guide price
0
2358066
5759003
2026-08-25T03:04:07Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759003
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun}}
# {{rfdef|en}}
==== ดูเพิ่ม ====
* {{l|en|list price}}
=== อ่านเพิ่ม ===
* {{R:Cambridge}}
s0colatx5zbqoaros2raqvl92oj7r7y
RRP
0
2358067
5759004
2026-08-25T03:04:38Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759004
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun}}
# {{alt case form of|en|rrp}}
# {{lb|en|countable|physiology}} {{initialism of|en|w:relative refractory period}}
#: {{cot|en|ARP|ERP}}
=== คำสลับอักษร ===
* {{anagrams|en|a=prr|PRR}}
otfxkctimzj8p1fqwra0qq5okwy34bg
rrp
0
2358068
5759005
2026-08-25T03:06:02Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759005
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รูปแบบอื่น ===
* {{l|en|RRP}}
=== คำนาม ===
{{en-noun}}
# {{lb|en|เศรษฐศาสตร์}} {{initialism of|en|[[recommend|Recommend]]ed [[retail price|Retail Price]]||ราคาขายปลีกที่แนะนำ}}
==== คำพ้องความ ====
* [[MSRP]] {{qualifier|US|Canada}}
==== ดูเพิ่ม ====
* [[SRP]]
* [[list price]]
* [[sticker price]]
=== อ่านเพิ่ม ===
* {{pedia|Suggested retail price}}
=== คำสลับอักษร ===
* {{anagrams|en|a=prr|PRR}}
pqy0k0lj2rwzmakcxmsjryf67gpr77a
5759006
5759005
2026-08-25T03:06:46Z
Octahedron80
267
/* อ่านเพิ่ม */
5759006
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รูปแบบอื่น ===
* {{l|en|RRP}}
=== คำนาม ===
{{en-noun}}
# {{lb|en|เศรษฐศาสตร์}} {{initialism of|en|[[recommend|Recommend]]ed [[retail price|Retail Price]]||ราคาขายปลีกที่แนะนำ}}
==== คำพ้องความ ====
* [[MSRP]] {{qualifier|US|Canada}}
==== ดูเพิ่ม ====
* [[SRP]]
* [[list price]]
* [[sticker price]]
=== อ่านเพิ่ม ===
* {{pedia|Suggested retail price|lang=en}}
=== คำสลับอักษร ===
* {{anagrams|en|a=prr|PRR}}
qsygie3d4j7eq3hano7kazlcxf2hlca
SRP
0
2358069
5759007
2026-08-25T03:07:42Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759007
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun}}
# {{lb|en|programming}} {{initialism of|en|single responsibility principle||หลักการความรับผิดชอบเดียว}}
# {{lb|en|commerce}} {{initialism of|en|suggested retail price||ราคาขายปลีกที่แนะนำ}}
=== ดูเพิ่ม ===
* {{sense|programming}} {{l|en|SOLID}}
* {{sense|commerce}} {{l|en|MSRP}}
=== คำสลับอักษร ===
* {{anagrams|en|a=prs|PRS|PRs|PSR|RPS|RPs|SPR}}
ko62u5hsz7krmdg4fzla5dzznm735q6
PRR
0
2358070
5759008
2026-08-25T03:11:49Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759008
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun}}
# {{lb|en|immunology}} {{initialism of|en|pattern recognition receptor||ตัวรับรู้รูปแบบ}}
# {{lb|en|pharmacology}} {{initialism of|en|proportional reporting ratio||อัตราส่วนการรายงานตามสัดส่วน}}
# {{lb|en|neuroanatomy}} {{initialism of|en|w:parietal reach region||บริเวณเข้าถึงส่วนข้างขมับ}}
# {{lb|en|politics}} {{initialism of|en|[[populist]] [[radical]] [[right]]||ฝ่ายขวาประชานิยมหัวรุนแรง}}
#* {{quote-web|en|author=Erik R. Tillman|title=Authoritarianism and Support for Populist Radical Right Parties|url=https://www.gesis.org/fileadmin/upload/dienstleistung/daten/umfragedaten/wahlstudien/dokumente/Tillman_auth_radright_EES.pdf|page=1|work=w:DePaul University|passage=Understanding the sources of support for populist radical right ('''PRR''') parties is important given that they are now the third-largest parties in a number of European party systems. Prior research has largely focused on the contextual determinants of '''PRR''' party support, examining whether unemployment or immigration levels (e.g., Knigge 1998, Lubbers et al 2002, Golder 2003, Jesuit et al 2009) or the political opportunity structure (e.g., Arzheimer 2009, Golder 2003, Norris 2005) affect support. Less is known about the individuals who vote for '''PRRs'''.|translation=การทำความเข้าใจแหล่งที่มาของการสนับสนุนพรรคฝ่ายขวาประชานิยมหัวรุนแรง ('''PRR''') เป็นสิ่งสำคัญ เนื่องจากปัจจุบันพรรคเหล่านี้เป็นพรรคที่ใหญ่เป็นอันดับสามในระบบพรรคการเมืองของยุโรปหลายแห่ง งานวิจัยก่อนหน้านี้ส่วนใหญ่มุ่งเน้นไปที่ปัจจัยกำหนดบริบทของการสนับสนุนพรรค '''PRR''' โดยตรวจสอบว่าระดับการว่างงานหรือการอพยพเข้าเมือง (เช่น Knigge 1998, Lubbers et al 2002, Golder 2003, Jesuit et al 2009) หรือโครงสร้างโอกาสทางการเมือง (เช่น Arzheimer 2009, Golder 2003, Norris 2005) ส่งผลต่อการสนับสนุนหรือไม่ ยังไม่ค่อยมีใครทราบเกี่ยวกับบุคคลที่ลงคะแนนเสียงให้กับกลุ่มพรรค '''PRR''' มากนัก}}
=== คำสลับอักษร ===
* {{anagrams|en|a=prr|RRP|rrp}}
ne96nk0y9rgjp7d4171qvhwv4kwib6r
populism
0
2358071
5759009
2026-08-25T03:16:46Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759009
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
{{wp|en:}}
=== รากศัพท์ ===
{{ety|en|:af|la:populus|-ism|text=+|tree=1}}
=== การออกเสียง ===
{{rfp|en}}
* {{audio|en|LL-Q1860 (eng)-Vealhurl-populism.wav|a=Southern England}}
=== คำนาม ===
{{en-noun|~}}
# {{lb|en|ปรัชญา}} [[ประชานิยม]]; [[ลัทธิ]]หรือ[[ปรัชญา]][[การเมือง]]ที่เสนอว่า[[สิทธิ]]และ[[อำนาจ]]ของ[[คนธรรมดา]]ถูก[[เอาเปรียบ]]โดยกลุ่ม[[ชนชั้นนำ]]ผู้มี[[อภิสิทธิ์]] และสนับสนุน[[การต่อสู้]]ของพวกเขาเพื่อเอาชนะสิ่งนี้
#* {{quote-journal|en|author=Endeavour|title=Against Slopulism|magazine=w:Counter-Currents|url=https://counter-currents.com/2025/05/against-slopulism/|date=2025-05-02|passage=In the early 21st century, the tide of '''populism''' in Western countries has been primarily driven by demographic shifts, deindustrialization, inflation, a hostile cultural climate, and a collapse in social cohesion.|archiveurl=https://web.archive.org/web/20250621134940/https://counter-currents.com/2025/05/against-slopulism/|translation=ในช่วงต้นศตวรรษที่ 21 กระแสของ'''ประชานิยม'''ในประเทศตะวันตกถูกขับเคลื่อนเป็นหลักโดยการเปลี่ยนแปลงทางประชากรศาสตร์ การลดทอนความเป็นอุตสาหกรรม ภาวะเงินเฟ้อ สภาพแวดล้อมทางวัฒนธรรมที่เป็นปฏิปักษ์ และการพังทลายของความสมานฉันท์ในสังคม}}
# {{lb|en|เสื่อมเสีย}} [[ประชานิยม]]; [[แนวปฏิบัติ]]ใน[[การดึงดูด]]หรือ[[ตอบสนอง]][[ผลประโยชน์]]ของ[[คนสามัญ]]ทั่วไป
#* {{quote-text|en|year=2006|author=Prasanta Chakravarty|title=Like Parchment in the Fire|page=104
|passage=It is not crass '''populism''' or majoritanianism that ratifies the legitimacy of the polity or the administration.|translation=ไม่ใช่'''ประชานิยม'''อันหยาบช้าหรือการยึดถือเสียงข้างมากหรอกที่จะให้การรับรองความชอบธรรมของรัฐหรือการบริหารงาน}}
==== ลูกคำ ====
{{col|en|ecopopulism|pseudopopulism|technopopulism
|left-wing populism|neopopulism|penal populism|punitive populism|right-wing populism|sadopopulism|slopulism}}
==== คำเกี่ยวข้อง ====
{{col|en|populist}}
=== ดูเพิ่ม ===
* {{l|en|demagoguery}}
* {{l|en|people's party}}
{{c|en|Ideologies}}
== ภาษาโรมาเนีย ==
=== รากศัพท์ ===
{{bor+|ro|fr|populisme}}; {{surf|ro|popul|-ism}}
=== คำนาม ===
{{ro-noun|n|-}}
# [[ประชานิยม]]
==== การผันรูป ====
{{ro-noun-n|n=sg}}
2y593rxgrbxd7oq9t5ddag9x8bfypbn
5759010
5759009
2026-08-25T03:16:58Z
Octahedron80
267
เรียงลำดับหัวเรื่องภาษา
5759010
wikitext
text/x-wiki
== ภาษาโรมาเนีย ==
=== รากศัพท์ ===
{{bor+|ro|fr|populisme}}; {{surf|ro|popul|-ism}}
=== คำนาม ===
{{ro-noun|n|-}}
# [[ประชานิยม]]
==== การผันรูป ====
{{ro-noun-n|n=sg}}
== ภาษาอังกฤษ ==
{{wp|en:}}
=== รากศัพท์ ===
{{ety|en|:af|la:populus|-ism|text=+|tree=1}}
=== การออกเสียง ===
{{rfp|en}}
* {{audio|en|LL-Q1860 (eng)-Vealhurl-populism.wav|a=Southern England}}
=== คำนาม ===
{{en-noun|~}}
# {{lb|en|ปรัชญา}} [[ประชานิยม]]; [[ลัทธิ]]หรือ[[ปรัชญา]][[การเมือง]]ที่เสนอว่า[[สิทธิ]]และ[[อำนาจ]]ของ[[คนธรรมดา]]ถูก[[เอาเปรียบ]]โดยกลุ่ม[[ชนชั้นนำ]]ผู้มี[[อภิสิทธิ์]] และสนับสนุน[[การต่อสู้]]ของพวกเขาเพื่อเอาชนะสิ่งนี้
#* {{quote-journal|en|author=Endeavour|title=Against Slopulism|magazine=w:Counter-Currents|url=https://counter-currents.com/2025/05/against-slopulism/|date=2025-05-02|passage=In the early 21st century, the tide of '''populism''' in Western countries has been primarily driven by demographic shifts, deindustrialization, inflation, a hostile cultural climate, and a collapse in social cohesion.|archiveurl=https://web.archive.org/web/20250621134940/https://counter-currents.com/2025/05/against-slopulism/|translation=ในช่วงต้นศตวรรษที่ 21 กระแสของ'''ประชานิยม'''ในประเทศตะวันตกถูกขับเคลื่อนเป็นหลักโดยการเปลี่ยนแปลงทางประชากรศาสตร์ การลดทอนความเป็นอุตสาหกรรม ภาวะเงินเฟ้อ สภาพแวดล้อมทางวัฒนธรรมที่เป็นปฏิปักษ์ และการพังทลายของความสมานฉันท์ในสังคม}}
# {{lb|en|เสื่อมเสีย}} [[ประชานิยม]]; [[แนวปฏิบัติ]]ใน[[การดึงดูด]]หรือ[[ตอบสนอง]][[ผลประโยชน์]]ของ[[คนสามัญ]]ทั่วไป
#* {{quote-text|en|year=2006|author=Prasanta Chakravarty|title=Like Parchment in the Fire|page=104
|passage=It is not crass '''populism''' or majoritanianism that ratifies the legitimacy of the polity or the administration.|translation=ไม่ใช่'''ประชานิยม'''อันหยาบช้าหรือการยึดถือเสียงข้างมากหรอกที่จะให้การรับรองความชอบธรรมของรัฐหรือการบริหารงาน}}
==== ลูกคำ ====
{{col|en|ecopopulism|pseudopopulism|technopopulism
|left-wing populism|neopopulism|penal populism|punitive populism|right-wing populism|sadopopulism|slopulism}}
==== คำเกี่ยวข้อง ====
{{col|en|populist}}
=== ดูเพิ่ม ===
* {{l|en|demagoguery}}
* {{l|en|people's party}}
{{c|en|Ideologies}}
amuyl0epy6nf309uj3mokr8mrvt2kt8
5759013
5759010
2026-08-25T03:18:31Z
Octahedron80
267
/* คำนาม */
5759013
wikitext
text/x-wiki
== ภาษาโรมาเนีย ==
=== รากศัพท์ ===
{{bor+|ro|fr|populisme}}; {{surf|ro|popul|-ism}}
=== คำนาม ===
{{ro-noun|n|-}}
# [[ประชานิยม]]
==== การผันรูป ====
{{ro-noun-n|n=sg}}
== ภาษาอังกฤษ ==
{{wp|en:}}
=== รากศัพท์ ===
{{ety|en|:af|la:populus|-ism|text=+|tree=1}}
=== การออกเสียง ===
{{rfp|en}}
* {{audio|en|LL-Q1860 (eng)-Vealhurl-populism.wav|a=Southern England}}
=== คำนาม ===
{{en-noun|~}}
# {{lb|en|ปรัชญา}} [[ประชานิยม]]; [[ลัทธิ]]หรือ[[ปรัชญา]][[การเมือง]]ที่เสนอว่า[[สิทธิ]]และ[[อำนาจ]]ของ[[คนธรรมดา]]ถูก[[เอาเปรียบ]]โดยกลุ่ม[[ชนชั้นนำ]]ผู้มี[[อภิสิทธิ์]] และสนับสนุน[[การต่อสู้]]ของพวกเขาเพื่อเอาชนะสิ่งนี้
#* {{quote-journal|en|author=Endeavour|title=Against Slopulism|magazine=w:Counter-Currents|url=https://counter-currents.com/2025/05/against-slopulism/|date=2025-05-02|passage=In the early 21st century, the tide of '''populism''' in Western countries has been primarily driven by demographic shifts, deindustrialization, inflation, a hostile cultural climate, and a collapse in social cohesion.|archiveurl=https://web.archive.org/web/20250621134940/https://counter-currents.com/2025/05/against-slopulism/|translation=ในช่วงต้นศตวรรษที่ 21 กระแสของ'''ประชานิยม'''ในประเทศตะวันตกถูกขับเคลื่อนเป็นหลักโดยการเปลี่ยนแปลงทางประชากรศาสตร์ การลดทอนความเป็นอุตสาหกรรม ภาวะเงินเฟ้อ สภาพแวดล้อมทางวัฒนธรรมที่เป็นปฏิปักษ์ และการพังทลายของความสมานฉันท์ในสังคม}}
# {{lb|en|เสื่อมเสีย}} [[แนวปฏิบัติ]]ใน[[การดึงดูด]]หรือ[[ตอบสนอง]][[ผลประโยชน์]]ของ[[คนสามัญ]]ทั่วไป
#* {{quote-text|en|year=2006|author=Prasanta Chakravarty|title=Like Parchment in the Fire|page=104
|passage=It is not crass '''populism''' or majoritanianism that ratifies the legitimacy of the polity or the administration.|translation=ไม่ใช่'''ประชานิยม'''อันหยาบช้าหรือการยึดถือเสียงข้างมากหรอกที่จะให้การรับรองความชอบธรรมของรัฐหรือการบริหารงาน}}
==== ลูกคำ ====
{{col|en|ecopopulism|pseudopopulism|technopopulism
|left-wing populism|neopopulism|penal populism|punitive populism|right-wing populism|sadopopulism|slopulism}}
==== คำเกี่ยวข้อง ====
{{col|en|populist}}
=== ดูเพิ่ม ===
* {{l|en|demagoguery}}
* {{l|en|people's party}}
{{c|en|Ideologies}}
efjas5j5aoel3pxsmcvuucqgy4a7dgx
5759014
5759013
2026-08-25T03:19:16Z
Octahedron80
267
/* คำนาม */
5759014
wikitext
text/x-wiki
== ภาษาโรมาเนีย ==
=== รากศัพท์ ===
{{bor+|ro|fr|populisme}}; {{surf|ro|popul|-ism}}
=== คำนาม ===
{{ro-noun|n|-}}
# [[ประชานิยม]]
==== การผันรูป ====
{{ro-noun-n|n=sg}}
== ภาษาอังกฤษ ==
{{wp|en:}}
=== รากศัพท์ ===
{{ety|en|:af|la:populus|-ism|text=+|tree=1}}
=== การออกเสียง ===
{{rfp|en}}
* {{audio|en|LL-Q1860 (eng)-Vealhurl-populism.wav|a=Southern England}}
=== คำนาม ===
{{en-noun|~}}
# {{lb|en|ปรัชญา}} [[ประชานิยม]]; [[ลัทธิ]]หรือ[[ปรัชญา]][[การเมือง]]ที่เสนอว่า[[สิทธิ]]และ[[อำนาจ]]ของ[[คนธรรมดา]]ถูก[[เอาเปรียบ]]โดยกลุ่ม[[ชนชั้นนำ]]ผู้มี[[อภิสิทธิ์]] และสนับสนุน[[การต่อสู้]]ของพวกเขาเพื่อเอาชนะสิ่งนี้
#* {{quote-journal|en|author=Endeavour|title=Against Slopulism|magazine=w:Counter-Currents|url=https://counter-currents.com/2025/05/against-slopulism/|date=2025-05-02|passage=In the early 21st century, the tide of '''populism''' in Western countries has been primarily driven by demographic shifts, deindustrialization, inflation, a hostile cultural climate, and a collapse in social cohesion.|archiveurl=https://web.archive.org/web/20250621134940/https://counter-currents.com/2025/05/against-slopulism/|translation=ในช่วงต้นศตวรรษที่ 21 กระแสของ'''ประชานิยม'''ในประเทศตะวันตกถูกขับเคลื่อนเป็นหลักโดยการเปลี่ยนแปลงทางประชากรศาสตร์ การลดทอนความเป็นอุตสาหกรรม ภาวะเงินเฟ้อ สภาพแวดล้อมทางวัฒนธรรมที่เป็นปฏิปักษ์ และการพังทลายของความสมานฉันท์ในสังคม}}
# {{lb|en|เสื่อมเสีย}} [[ประชานิยม]]; [[แนวปฏิบัติ]]ใน[[การดึงดูด]]หรือ[[ตอบสนอง]][[ผลประโยชน์]]ของ[[คนสามัญ]]ทั่วไป
#* {{quote-text|en|year=2006|author=Prasanta Chakravarty|title=Like Parchment in the Fire|page=104
|passage=It is not crass '''populism''' or majoritanianism that ratifies the legitimacy of the polity or the administration.|translation=ไม่ใช่'''ประชานิยม'''อันหยาบช้าหรือการยึดถือเสียงข้างมากหรอกที่จะให้การรับรองความชอบธรรมของรัฐหรือการบริหารงาน}}
==== ลูกคำ ====
{{col|en|ecopopulism|pseudopopulism|technopopulism
|left-wing populism|neopopulism|penal populism|punitive populism|right-wing populism|sadopopulism|slopulism}}
==== คำเกี่ยวข้อง ====
{{col|en|populist}}
=== ดูเพิ่ม ===
* {{l|en|demagoguery}}
* {{l|en|people's party}}
{{c|en|Ideologies}}
amuyl0epy6nf309uj3mokr8mrvt2kt8
5759015
5759014
2026-08-25T03:19:44Z
Octahedron80
267
/* คำนาม */
5759015
wikitext
text/x-wiki
== ภาษาโรมาเนีย ==
=== รากศัพท์ ===
{{bor+|ro|fr|populisme}}; {{surf|ro|popul|-ism}}
=== คำนาม ===
{{ro-noun|n|-}}
# [[ประชานิยม]]
==== การผันรูป ====
{{ro-noun-n|n=sg}}
== ภาษาอังกฤษ ==
{{wp|en:}}
=== รากศัพท์ ===
{{ety|en|:af|la:populus|-ism|text=+|tree=1}}
=== การออกเสียง ===
{{rfp|en}}
* {{audio|en|LL-Q1860 (eng)-Vealhurl-populism.wav|a=Southern England}}
=== คำนาม ===
{{en-noun|~}}
# {{lb|en|ปรัชญา|การเมือง}} [[ประชานิยม]]; [[ลัทธิ]]หรือ[[ปรัชญา]][[การเมือง]]ที่เสนอว่า[[สิทธิ]]และ[[อำนาจ]]ของ[[คนธรรมดา]]ถูก[[เอาเปรียบ]]โดยกลุ่ม[[ชนชั้นนำ]]ผู้มี[[อภิสิทธิ์]] และสนับสนุน[[การต่อสู้]]ของพวกเขาเพื่อเอาชนะสิ่งนี้
#* {{quote-journal|en|author=Endeavour|title=Against Slopulism|magazine=w:Counter-Currents|url=https://counter-currents.com/2025/05/against-slopulism/|date=2025-05-02|passage=In the early 21st century, the tide of '''populism''' in Western countries has been primarily driven by demographic shifts, deindustrialization, inflation, a hostile cultural climate, and a collapse in social cohesion.|archiveurl=https://web.archive.org/web/20250621134940/https://counter-currents.com/2025/05/against-slopulism/|translation=ในช่วงต้นศตวรรษที่ 21 กระแสของ'''ประชานิยม'''ในประเทศตะวันตกถูกขับเคลื่อนเป็นหลักโดยการเปลี่ยนแปลงทางประชากรศาสตร์ การลดทอนความเป็นอุตสาหกรรม ภาวะเงินเฟ้อ สภาพแวดล้อมทางวัฒนธรรมที่เป็นปฏิปักษ์ และการพังทลายของความสมานฉันท์ในสังคม}}
# {{lb|en|เสื่อมเสีย}} [[ประชานิยม]]; [[แนวปฏิบัติ]]ใน[[การดึงดูด]]หรือ[[ตอบสนอง]][[ผลประโยชน์]]ของ[[คนสามัญ]]ทั่วไป
#* {{quote-text|en|year=2006|author=Prasanta Chakravarty|title=Like Parchment in the Fire|page=104
|passage=It is not crass '''populism''' or majoritanianism that ratifies the legitimacy of the polity or the administration.|translation=ไม่ใช่'''ประชานิยม'''อันหยาบช้าหรือการยึดถือเสียงข้างมากหรอกที่จะให้การรับรองความชอบธรรมของรัฐหรือการบริหารงาน}}
==== ลูกคำ ====
{{col|en|ecopopulism|pseudopopulism|technopopulism
|left-wing populism|neopopulism|penal populism|punitive populism|right-wing populism|sadopopulism|slopulism}}
==== คำเกี่ยวข้อง ====
{{col|en|populist}}
=== ดูเพิ่ม ===
* {{l|en|demagoguery}}
* {{l|en|people's party}}
{{c|en|Ideologies}}
9u621zrh7flcmu9qz7cvwhrh8yf5hj8
5759023
5759015
2026-08-25T03:31:33Z
Octahedron80
267
/* ดูเพิ่ม */
5759023
wikitext
text/x-wiki
== ภาษาโรมาเนีย ==
=== รากศัพท์ ===
{{bor+|ro|fr|populisme}}; {{surf|ro|popul|-ism}}
=== คำนาม ===
{{ro-noun|n|-}}
# [[ประชานิยม]]
==== การผันรูป ====
{{ro-noun-n|n=sg}}
== ภาษาอังกฤษ ==
{{wp|en:}}
=== รากศัพท์ ===
{{ety|en|:af|la:populus|-ism|text=+|tree=1}}
=== การออกเสียง ===
{{rfp|en}}
* {{audio|en|LL-Q1860 (eng)-Vealhurl-populism.wav|a=Southern England}}
=== คำนาม ===
{{en-noun|~}}
# {{lb|en|ปรัชญา|การเมือง}} [[ประชานิยม]]; [[ลัทธิ]]หรือ[[ปรัชญา]][[การเมือง]]ที่เสนอว่า[[สิทธิ]]และ[[อำนาจ]]ของ[[คนธรรมดา]]ถูก[[เอาเปรียบ]]โดยกลุ่ม[[ชนชั้นนำ]]ผู้มี[[อภิสิทธิ์]] และสนับสนุน[[การต่อสู้]]ของพวกเขาเพื่อเอาชนะสิ่งนี้
#* {{quote-journal|en|author=Endeavour|title=Against Slopulism|magazine=w:Counter-Currents|url=https://counter-currents.com/2025/05/against-slopulism/|date=2025-05-02|passage=In the early 21st century, the tide of '''populism''' in Western countries has been primarily driven by demographic shifts, deindustrialization, inflation, a hostile cultural climate, and a collapse in social cohesion.|archiveurl=https://web.archive.org/web/20250621134940/https://counter-currents.com/2025/05/against-slopulism/|translation=ในช่วงต้นศตวรรษที่ 21 กระแสของ'''ประชานิยม'''ในประเทศตะวันตกถูกขับเคลื่อนเป็นหลักโดยการเปลี่ยนแปลงทางประชากรศาสตร์ การลดทอนความเป็นอุตสาหกรรม ภาวะเงินเฟ้อ สภาพแวดล้อมทางวัฒนธรรมที่เป็นปฏิปักษ์ และการพังทลายของความสมานฉันท์ในสังคม}}
# {{lb|en|เสื่อมเสีย}} [[ประชานิยม]]; [[แนวปฏิบัติ]]ใน[[การดึงดูด]]หรือ[[ตอบสนอง]][[ผลประโยชน์]]ของ[[คนสามัญ]]ทั่วไป
#* {{quote-text|en|year=2006|author=Prasanta Chakravarty|title=Like Parchment in the Fire|page=104
|passage=It is not crass '''populism''' or majoritanianism that ratifies the legitimacy of the polity or the administration.|translation=ไม่ใช่'''ประชานิยม'''อันหยาบช้าหรือการยึดถือเสียงข้างมากหรอกที่จะให้การรับรองความชอบธรรมของรัฐหรือการบริหารงาน}}
==== ลูกคำ ====
{{col|en|ecopopulism|pseudopopulism|technopopulism
|left-wing populism|neopopulism|penal populism|punitive populism|right-wing populism|sadopopulism|slopulism}}
==== คำเกี่ยวข้อง ====
{{col|en|populist}}
=== ดูเพิ่ม ===
* {{l|en|demagoguery}}
* {{l|en|people's party}}
{{c|en|คตินิยม}}
1i3mhythotvsn8ubj39wkdusff0godt
populisms
0
2358072
5759012
2026-08-25T03:18:14Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5759012
wikitext
text/x-wiki
== ภาษาสวีเดน ==
=== คำนาม ===
{{head|sv|รูปนาม}}
# {{noun form of|sv|populism||indef|gen|s}}
== ภาษาอังกฤษ ==
=== คำนาม ===
{{head|en|รูปนาม}}
# {{plural of|en|populism}}
opwnj7ytytl2e5thxbcl01l3ramjggo
populist
0
2358073
5759016
2026-08-25T03:26:13Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5759016
wikitext
text/x-wiki
== ภาษาเซอร์โบ-โครเอเชีย ==
=== รูปแบบอื่น ===
* {{alt|sh|popùlista||Bosnia|Serbia}}
=== การออกเสียง ===
* {{IPA|sh|/popǔlist/}}
* {{hyphenation|sh|po|pu|list}}
=== คำนาม ===
{{sh-noun|popùlist|m-an}}
# {{lb|sh|Croatia}} [[บุคคล]]ผู้[[สนับสนุน]][[ประชานิยม]]
==== การผันรูป ====
{{sh-decl-noun
|populist|populisti
|populista|populista
|populistu|populistima
|populista|populiste
|populiste|populisti
|populistu|populistima
|populistom|populistima
}}
== ภาษาดัตช์ ==
=== การออกเสียง ===
* {{IPA|nl|/ˌpoːpyˈlɪst/}}
* {{audio|nl|Nl-populist.ogg}}
* {{hyphenation|nl|po|pu|list}}
=== คำนาม ===
{{nl-noun|n|-en|+}}
# [[บุคคล]]ผู้[[สนับสนุน]][[ประชานิยม]] {{gloss|ผู้สนับสนุนประชานิยมทางการเมือง ซึ่งอ้างว่ากลุ่มชนชั้นนำนั้นเหินห่างจากคนสามัญทั่วไป}}
# {{lb|nl|เสื่อมเสีย}} ผู้[[ปลุกปั่น]] ([[demagogue]])
==== ลูกคำ ====
* {{l|nl|populistisch}}
==== คำเกี่ยวข้อง ====
* {{l|nl|populisme}}
{{C|nl|การเมือง}}
== ภาษาโรมาเนีย ==
=== รากศัพท์ ===
{{bor+|ro|fr|populiste}}; {{surf|ro|popul|-ist}}
=== คำคุณศัพท์ ===
{{ro-adj}}
# [[บุคคล]]ผู้[[สนับสนุน]][[ประชานิยม]]
==== การผันรูป ====
{{ro-decl-adj}}
=== คำนาม ===
{{ro-noun|m|populiști}}
# [[บุคคล]]ผู้[[สนับสนุน]][[ประชานิยม]]
==== การผันรูป ====
{{ro-noun-m|pl=populiști}}
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
{{ety|en|:af|la:populus|-ist|text=+|tree=1}}
=== การออกเสียง ===
* {{IPA|en|/ˈpɒp.jʊ.lɪst/|a=RP}}
* {{audio|en|LL-Q1860 (eng)-Vealhurl-populist.wav|a=Southern England}}
* {{IPA|en|/ˈpɑ.pjə.lɪst/|a=GA,CA}}
* {{IPA|en|/ˈpɔp.jʉ.lɪst/|a=AU}}
=== คำนาม ===
{{en-noun}}
# [[บุคคล]]ผู้[[สนับสนุน]][[ประชานิยม]] (ขบวนการต่อต้านชนชั้นนำที่ปกครองประเทศ ซึ่งถูกมองว่าไม่ได้กระทำการเพื่อผลประโยชน์ของคนสามัญทั่วไป)
#* {{quote-journal|en|date=3 January 2013|author=Luke Harding; Uki Goni|journal=w:The Guardian|url=http://www.guardian.co.uk/uk/2013/jan/02/argentina-britain-hand-back-falklands
|passage=Critics suggest that Fernández, an unashamed '''populist''' and nationalist, is seeking to deflect attention from social disharmony at home.|archiveurl=https://web.archive.org/web/20230608033955/https://www.theguardian.com/uk/2013/jan/02/argentina-britain-hand-back-falklands|translation=นักวิจารณ์ชี้ว่าเฟอร์นันเดซ ซึ่งเป็น'''นักประชานิยม'''และนักชาตินิยมอย่างเปิดเผย กำลังพยายามเบี่ยงเบนความสนใจจากความแตกแยกทางสังคมในประเทศ}}
#* {{quote-journal|en-GB|author=Andrew Anthony|title=Liberalism and Its Discontents by Francis Fukuyama review – a defence of liberalism… from a former neocon|work=w:The Guardian|date=2022-03-08|url=https://www.theguardian.com/books/2022/mar/08/liberalism-and-its-discontents-by-francis-fukuyama-review-a-defence-of-liberalism-from-a-former-neocon|issn=0261-3077|passage=On top of all that, rightwing '''populists''' and leftwing progressives have made significant inroads into western politics.|archiveurl=https://web.archive.org/web/20230713224821/https://www.theguardian.com/books/2022/mar/08/liberalism-and-its-discontents-by-francis-fukuyama-review-a-defence-of-liberalism-from-a-former-neocon|translation=นอกเหนือจากนั้นทั้งหมด '''นักประชานิยม'''ฝ่ายขวาและนักก้าวหน้าฝ่ายซ้ายได้เข้ามามีบทบาทสำคัญในการเมืองชาติตะวันตก}}
#* {{quote-journal|en|author=Endeavour|title=Against Slopulism|magazine=w:Counter-Currents|url=https://counter-currents.com/2025/05/against-slopulism/|date=2025-05-02|passage=So as to not throw too much of the blame on American '''populists''', the right in other Western countries is also guilty of adopting this crass and anti-intellectual brand of politics.|archiveurl=https://web.archive.org/web/20250621134940/https://counter-currents.com/2025/05/against-slopulism/|translation=เพื่อไม่ให้เป็นการโยนความผิดให้กับ'''นักประชานิยม'''ชาวอเมริกันมากเกินไป ฝ่ายขวาในประเทศตะวันตกอื่น ๆ ก็มีความผิดเช่นกันในการนำการเมืองรูปแบบที่หยาบช้าและต่อต้านปัญญาชนนี้มาใช้}}
# [[นักการเมือง]]ผู้สนับสนุน[[นโยบาย]]เฉพาะบางอย่างเพียงเพราะนโยบายเหล่านั้นเป็นที่[[นิยม]]
# บุคคลผู้สนับสนุนหลักการ[[ประชาธิปไตย]]
==== ลูกคำ ====
{{col|en|antipopulist|ecopopulist|flopulist|macropopulist|neopopulist|prepopulist|pseudopopulist|sadopopulist|slopulist|technopopulist
|sadopopulism}}
=== คำคุณศัพท์ ===
{{en-adj}}
# แบบ[[ประชาธิปไตย]]
# {{lb|en|ใช้กับนโยบายทางการเมือง}} ที่นำเสนอเพียงเพราะว่าจะได้รับความนิยม
# เกี่ยวกับ[[ประชานิยม]]
#* {{quote-journal|en-US|author=Nathan Taylor Pemberton|title=When Posting Becomes Its Own Style of Politics|work=w:The New York Times|date=2026-02-13|url=https://www.nytimes.com/interactive/2026/02/13/style/slopulism-trump-conservative-social-media.html|issn=0362-4331|passage=On the right, this can look like gleeful cruelty, sadistic memes, posts that “own the libs” or sensationalized claims about fraud and conspiracy. On the left, it could be social justice messaging, online identity politics or '''populist''' economic proposals to, say, tax the rich.|translation=สำหรับฝ่ายขวา สิ่งนี้อาจดูเหมือนความโหดร้ายอย่างเริงร่า มีมแนวซาดิสต์ โพสต์ที่ "ตอกหน้าพวกเสรีนิยม" หรือการกล่าวอ้างที่เกินจริงเกี่ยวกับการฉ้อโกงและการสมรู้ร่วมคิด สำหรับฝ่ายซ้าย อาจเป็นข้อความเกี่ยวกับความยุติธรรมทางสังคม การเมืองเรื่องอัตลักษณ์บนโลกออนไลน์ หรือข้อเสนอทางเศรษฐกิจแบบ'''ประชานิยม''' เช่น การเก็บภาษีคนรวย}}
==== คำพ้องความ ====
* {{l|en|populistic}}
{{c|en|บุคคล}}
sfqbrdr4g06iw3t0sfphltmngqgq8cf
5759018
5759016
2026-08-25T03:27:43Z
Octahedron80
267
/* คำนาม */
5759018
wikitext
text/x-wiki
== ภาษาเซอร์โบ-โครเอเชีย ==
=== รูปแบบอื่น ===
* {{alt|sh|popùlista||Bosnia|Serbia}}
=== การออกเสียง ===
* {{IPA|sh|/popǔlist/}}
* {{hyphenation|sh|po|pu|list}}
=== คำนาม ===
{{sh-noun|popùlist|m-an}}
# {{lb|sh|Croatia}} [[บุคคล]]ผู้[[สนับสนุน]][[ประชานิยม]]
==== การผันรูป ====
{{sh-decl-noun
|populist|populisti
|populista|populista
|populistu|populistima
|populista|populiste
|populiste|populisti
|populistu|populistima
|populistom|populistima
}}
== ภาษาดัตช์ ==
=== การออกเสียง ===
* {{IPA|nl|/ˌpoːpyˈlɪst/}}
* {{audio|nl|Nl-populist.ogg}}
* {{hyphenation|nl|po|pu|list}}
=== คำนาม ===
{{nl-noun|n|-en|+}}
# [[บุคคล]]ผู้[[สนับสนุน]][[ประชานิยม]] {{gloss|ผู้สนับสนุนประชานิยมทางการเมือง ซึ่งอ้างว่ากลุ่มชนชั้นนำนั้นเหินห่างจากคนสามัญทั่วไป}}
# {{lb|nl|เสื่อมเสีย}} ผู้[[ปลุกปั่น]] ([[demagogue]])
==== ลูกคำ ====
* {{l|nl|populistisch}}
==== คำเกี่ยวข้อง ====
* {{l|nl|populisme}}
{{C|nl|การเมือง}}
== ภาษาโรมาเนีย ==
=== รากศัพท์ ===
{{bor+|ro|fr|populiste}}; {{surf|ro|popul|-ist}}
=== คำคุณศัพท์ ===
{{ro-adj}}
# [[บุคคล]]ผู้[[สนับสนุน]][[ประชานิยม]]
==== การผันรูป ====
{{ro-decl-adj}}
=== คำนาม ===
{{ro-noun|m|populiști}}
# [[บุคคล]]ผู้[[สนับสนุน]][[ประชานิยม]]
==== การผันรูป ====
{{ro-noun-m|pl=populiști}}
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
{{ety|en|:af|la:populus|-ist|text=+|tree=1}}
=== การออกเสียง ===
* {{IPA|en|/ˈpɒp.jʊ.lɪst/|a=RP}}
* {{audio|en|LL-Q1860 (eng)-Vealhurl-populist.wav|a=Southern England}}
* {{IPA|en|/ˈpɑ.pjə.lɪst/|a=GA,CA}}
* {{IPA|en|/ˈpɔp.jʉ.lɪst/|a=AU}}
=== คำนาม ===
{{en-noun}}
# นักประชานิยม, [[บุคคล]]ผู้[[สนับสนุน]][[ประชานิยม]] (ขบวนการต่อต้านชนชั้นนำที่ปกครองประเทศ ซึ่งถูกมองว่าไม่ได้กระทำการเพื่อผลประโยชน์ของคนสามัญทั่วไป)
#* {{quote-journal|en|date=3 January 2013|author=Luke Harding; Uki Goni|journal=w:The Guardian|url=http://www.guardian.co.uk/uk/2013/jan/02/argentina-britain-hand-back-falklands
|passage=Critics suggest that Fernández, an unashamed '''populist''' and nationalist, is seeking to deflect attention from social disharmony at home.|archiveurl=https://web.archive.org/web/20230608033955/https://www.theguardian.com/uk/2013/jan/02/argentina-britain-hand-back-falklands|translation=นักวิจารณ์ชี้ว่าเฟอร์นันเดซ ซึ่งเป็น'''นักประชานิยม'''และนักชาตินิยมอย่างเปิดเผย กำลังพยายามเบี่ยงเบนความสนใจจากความแตกแยกทางสังคมในประเทศ}}
#* {{quote-journal|en-GB|author=Andrew Anthony|title=Liberalism and Its Discontents by Francis Fukuyama review – a defence of liberalism… from a former neocon|work=w:The Guardian|date=2022-03-08|url=https://www.theguardian.com/books/2022/mar/08/liberalism-and-its-discontents-by-francis-fukuyama-review-a-defence-of-liberalism-from-a-former-neocon|issn=0261-3077|passage=On top of all that, rightwing '''populists''' and leftwing progressives have made significant inroads into western politics.|archiveurl=https://web.archive.org/web/20230713224821/https://www.theguardian.com/books/2022/mar/08/liberalism-and-its-discontents-by-francis-fukuyama-review-a-defence-of-liberalism-from-a-former-neocon|translation=นอกเหนือจากนั้นทั้งหมด '''นักประชานิยม'''ฝ่ายขวาและนักก้าวหน้าฝ่ายซ้ายได้เข้ามามีบทบาทสำคัญในการเมืองชาติตะวันตก}}
#* {{quote-journal|en|author=Endeavour|title=Against Slopulism|magazine=w:Counter-Currents|url=https://counter-currents.com/2025/05/against-slopulism/|date=2025-05-02|passage=So as to not throw too much of the blame on American '''populists''', the right in other Western countries is also guilty of adopting this crass and anti-intellectual brand of politics.|archiveurl=https://web.archive.org/web/20250621134940/https://counter-currents.com/2025/05/against-slopulism/|translation=เพื่อไม่ให้เป็นการโยนความผิดให้กับ'''นักประชานิยม'''ชาวอเมริกันมากเกินไป ฝ่ายขวาในประเทศตะวันตกอื่น ๆ ก็มีความผิดเช่นกันในการนำการเมืองรูปแบบที่หยาบช้าและต่อต้านปัญญาชนนี้มาใช้}}
# [[นักการเมือง]]ผู้สนับสนุน[[นโยบาย]]เฉพาะบางอย่างเพียงเพราะนโยบายเหล่านั้นเป็นที่[[นิยม]]
# บุคคลผู้สนับสนุนหลักการ[[ประชาธิปไตย]]
==== ลูกคำ ====
{{col|en|antipopulist|ecopopulist|flopulist|macropopulist|neopopulist|prepopulist|pseudopopulist|sadopopulist|slopulist|technopopulist
|sadopopulism}}
=== คำคุณศัพท์ ===
{{en-adj}}
# แบบ[[ประชาธิปไตย]]
# {{lb|en|ใช้กับนโยบายทางการเมือง}} ที่นำเสนอเพียงเพราะว่าจะได้รับความนิยม
# เกี่ยวกับ[[ประชานิยม]]
#* {{quote-journal|en-US|author=Nathan Taylor Pemberton|title=When Posting Becomes Its Own Style of Politics|work=w:The New York Times|date=2026-02-13|url=https://www.nytimes.com/interactive/2026/02/13/style/slopulism-trump-conservative-social-media.html|issn=0362-4331|passage=On the right, this can look like gleeful cruelty, sadistic memes, posts that “own the libs” or sensationalized claims about fraud and conspiracy. On the left, it could be social justice messaging, online identity politics or '''populist''' economic proposals to, say, tax the rich.|translation=สำหรับฝ่ายขวา สิ่งนี้อาจดูเหมือนความโหดร้ายอย่างเริงร่า มีมแนวซาดิสต์ โพสต์ที่ "ตอกหน้าพวกเสรีนิยม" หรือการกล่าวอ้างที่เกินจริงเกี่ยวกับการฉ้อโกงและการสมรู้ร่วมคิด สำหรับฝ่ายซ้าย อาจเป็นข้อความเกี่ยวกับความยุติธรรมทางสังคม การเมืองเรื่องอัตลักษณ์บนโลกออนไลน์ หรือข้อเสนอทางเศรษฐกิจแบบ'''ประชานิยม''' เช่น การเก็บภาษีคนรวย}}
==== คำพ้องความ ====
* {{l|en|populistic}}
{{c|en|บุคคล}}
k05vsl072290olu9v64nlbz5guvkbk8
5759019
5759018
2026-08-25T03:28:06Z
Octahedron80
267
5759019
wikitext
text/x-wiki
== ภาษาเซอร์โบ-โครเอเชีย ==
=== รูปแบบอื่น ===
* {{alt|sh|popùlista||Bosnia|Serbia}}
=== การออกเสียง ===
* {{IPA|sh|/popǔlist/}}
* {{hyphenation|sh|po|pu|list}}
=== คำนาม ===
{{sh-noun|popùlist|m-an}}
# {{lb|sh|Croatia}} นักประชานิยม, [[บุคคล]]ผู้[[สนับสนุน]][[ประชานิยม]]
==== การผันรูป ====
{{sh-decl-noun
|populist|populisti
|populista|populista
|populistu|populistima
|populista|populiste
|populiste|populisti
|populistu|populistima
|populistom|populistima
}}
== ภาษาดัตช์ ==
=== การออกเสียง ===
* {{IPA|nl|/ˌpoːpyˈlɪst/}}
* {{audio|nl|Nl-populist.ogg}}
* {{hyphenation|nl|po|pu|list}}
=== คำนาม ===
{{nl-noun|n|-en|+}}
# นักประชานิยม, [[บุคคล]]ผู้[[สนับสนุน]][[ประชานิยม]] {{gloss|ผู้สนับสนุนประชานิยมทางการเมือง ซึ่งอ้างว่ากลุ่มชนชั้นนำนั้นเหินห่างจากคนสามัญทั่วไป}}
# {{lb|nl|เสื่อมเสีย}} ผู้[[ปลุกปั่น]] ([[demagogue]])
==== ลูกคำ ====
* {{l|nl|populistisch}}
==== คำเกี่ยวข้อง ====
* {{l|nl|populisme}}
{{C|nl|การเมือง}}
== ภาษาโรมาเนีย ==
=== รากศัพท์ ===
{{bor+|ro|fr|populiste}}; {{surf|ro|popul|-ist}}
=== คำคุณศัพท์ ===
{{ro-adj}}
# นักประชานิยม, [[บุคคล]]ผู้[[สนับสนุน]][[ประชานิยม]]
==== การผันรูป ====
{{ro-decl-adj}}
=== คำนาม ===
{{ro-noun|m|populiști}}
# นักประชานิยม, [[บุคคล]]ผู้[[สนับสนุน]][[ประชานิยม]]
==== การผันรูป ====
{{ro-noun-m|pl=populiști}}
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
{{ety|en|:af|la:populus|-ist|text=+|tree=1}}
=== การออกเสียง ===
* {{IPA|en|/ˈpɒp.jʊ.lɪst/|a=RP}}
* {{audio|en|LL-Q1860 (eng)-Vealhurl-populist.wav|a=Southern England}}
* {{IPA|en|/ˈpɑ.pjə.lɪst/|a=GA,CA}}
* {{IPA|en|/ˈpɔp.jʉ.lɪst/|a=AU}}
=== คำนาม ===
{{en-noun}}
# นักประชานิยม, [[บุคคล]]ผู้[[สนับสนุน]][[ประชานิยม]] (ขบวนการต่อต้านชนชั้นนำที่ปกครองประเทศ ซึ่งถูกมองว่าไม่ได้กระทำการเพื่อผลประโยชน์ของคนสามัญทั่วไป)
#* {{quote-journal|en|date=3 January 2013|author=Luke Harding; Uki Goni|journal=w:The Guardian|url=http://www.guardian.co.uk/uk/2013/jan/02/argentina-britain-hand-back-falklands
|passage=Critics suggest that Fernández, an unashamed '''populist''' and nationalist, is seeking to deflect attention from social disharmony at home.|archiveurl=https://web.archive.org/web/20230608033955/https://www.theguardian.com/uk/2013/jan/02/argentina-britain-hand-back-falklands|translation=นักวิจารณ์ชี้ว่าเฟอร์นันเดซ ซึ่งเป็น'''นักประชานิยม'''และนักชาตินิยมอย่างเปิดเผย กำลังพยายามเบี่ยงเบนความสนใจจากความแตกแยกทางสังคมในประเทศ}}
#* {{quote-journal|en-GB|author=Andrew Anthony|title=Liberalism and Its Discontents by Francis Fukuyama review – a defence of liberalism… from a former neocon|work=w:The Guardian|date=2022-03-08|url=https://www.theguardian.com/books/2022/mar/08/liberalism-and-its-discontents-by-francis-fukuyama-review-a-defence-of-liberalism-from-a-former-neocon|issn=0261-3077|passage=On top of all that, rightwing '''populists''' and leftwing progressives have made significant inroads into western politics.|archiveurl=https://web.archive.org/web/20230713224821/https://www.theguardian.com/books/2022/mar/08/liberalism-and-its-discontents-by-francis-fukuyama-review-a-defence-of-liberalism-from-a-former-neocon|translation=นอกเหนือจากนั้นทั้งหมด '''นักประชานิยม'''ฝ่ายขวาและนักก้าวหน้าฝ่ายซ้ายได้เข้ามามีบทบาทสำคัญในการเมืองชาติตะวันตก}}
#* {{quote-journal|en|author=Endeavour|title=Against Slopulism|magazine=w:Counter-Currents|url=https://counter-currents.com/2025/05/against-slopulism/|date=2025-05-02|passage=So as to not throw too much of the blame on American '''populists''', the right in other Western countries is also guilty of adopting this crass and anti-intellectual brand of politics.|archiveurl=https://web.archive.org/web/20250621134940/https://counter-currents.com/2025/05/against-slopulism/|translation=เพื่อไม่ให้เป็นการโยนความผิดให้กับ'''นักประชานิยม'''ชาวอเมริกันมากเกินไป ฝ่ายขวาในประเทศตะวันตกอื่น ๆ ก็มีความผิดเช่นกันในการนำการเมืองรูปแบบที่หยาบช้าและต่อต้านปัญญาชนนี้มาใช้}}
# [[นักการเมือง]]ผู้สนับสนุน[[นโยบาย]]เฉพาะบางอย่างเพียงเพราะนโยบายเหล่านั้นเป็นที่[[นิยม]]
# บุคคลผู้สนับสนุนหลักการ[[ประชาธิปไตย]]
==== ลูกคำ ====
{{col|en|antipopulist|ecopopulist|flopulist|macropopulist|neopopulist|prepopulist|pseudopopulist|sadopopulist|slopulist|technopopulist
|sadopopulism}}
=== คำคุณศัพท์ ===
{{en-adj}}
# แบบ[[ประชาธิปไตย]]
# {{lb|en|ใช้กับนโยบายทางการเมือง}} ที่นำเสนอเพียงเพราะว่าจะได้รับความนิยม
# เกี่ยวกับ[[ประชานิยม]]
#* {{quote-journal|en-US|author=Nathan Taylor Pemberton|title=When Posting Becomes Its Own Style of Politics|work=w:The New York Times|date=2026-02-13|url=https://www.nytimes.com/interactive/2026/02/13/style/slopulism-trump-conservative-social-media.html|issn=0362-4331|passage=On the right, this can look like gleeful cruelty, sadistic memes, posts that “own the libs” or sensationalized claims about fraud and conspiracy. On the left, it could be social justice messaging, online identity politics or '''populist''' economic proposals to, say, tax the rich.|translation=สำหรับฝ่ายขวา สิ่งนี้อาจดูเหมือนความโหดร้ายอย่างเริงร่า มีมแนวซาดิสต์ โพสต์ที่ "ตอกหน้าพวกเสรีนิยม" หรือการกล่าวอ้างที่เกินจริงเกี่ยวกับการฉ้อโกงและการสมรู้ร่วมคิด สำหรับฝ่ายซ้าย อาจเป็นข้อความเกี่ยวกับความยุติธรรมทางสังคม การเมืองเรื่องอัตลักษณ์บนโลกออนไลน์ หรือข้อเสนอทางเศรษฐกิจแบบ'''ประชานิยม''' เช่น การเก็บภาษีคนรวย}}
==== คำพ้องความ ====
* {{l|en|populistic}}
{{c|en|บุคคล}}
50po4oxg8rpjrz4ge1k8c4knqon08in
5759041
5759019
2026-08-25T04:01:04Z
Octahedron80
267
/* คำนาม */
5759041
wikitext
text/x-wiki
== ภาษาเซอร์โบ-โครเอเชีย ==
=== รูปแบบอื่น ===
* {{alt|sh|popùlista||Bosnia|Serbia}}
=== การออกเสียง ===
* {{IPA|sh|/popǔlist/}}
* {{hyphenation|sh|po|pu|list}}
=== คำนาม ===
{{sh-noun|popùlist|m-an}}
# {{lb|sh|Croatia}} นักประชานิยม, [[บุคคล]]ผู้[[สนับสนุน]][[ประชานิยม]]
==== การผันรูป ====
{{sh-decl-noun
|populist|populisti
|populista|populista
|populistu|populistima
|populista|populiste
|populiste|populisti
|populistu|populistima
|populistom|populistima
}}
== ภาษาดัตช์ ==
=== การออกเสียง ===
* {{IPA|nl|/ˌpoːpyˈlɪst/}}
* {{audio|nl|Nl-populist.ogg}}
* {{hyphenation|nl|po|pu|list}}
=== คำนาม ===
{{nl-noun|n|-en|+}}
# นักประชานิยม, [[บุคคล]]ผู้[[สนับสนุน]][[ประชานิยม]] {{gloss|ผู้สนับสนุนประชานิยมทางการเมือง ซึ่งอ้างว่ากลุ่มชนชั้นนำนั้นเหินห่างจากคนสามัญทั่วไป}}
# {{lb|nl|เสื่อมเสีย}} [[นักกวนเมือง]], [[นักหลอกล่อทางการเมือง]] ([[demagogue]])
==== ลูกคำ ====
* {{l|nl|populistisch}}
==== คำเกี่ยวข้อง ====
* {{l|nl|populisme}}
{{C|nl|การเมือง}}
== ภาษาโรมาเนีย ==
=== รากศัพท์ ===
{{bor+|ro|fr|populiste}}; {{surf|ro|popul|-ist}}
=== คำคุณศัพท์ ===
{{ro-adj}}
# นักประชานิยม, [[บุคคล]]ผู้[[สนับสนุน]][[ประชานิยม]]
==== การผันรูป ====
{{ro-decl-adj}}
=== คำนาม ===
{{ro-noun|m|populiști}}
# นักประชานิยม, [[บุคคล]]ผู้[[สนับสนุน]][[ประชานิยม]]
==== การผันรูป ====
{{ro-noun-m|pl=populiști}}
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
{{ety|en|:af|la:populus|-ist|text=+|tree=1}}
=== การออกเสียง ===
* {{IPA|en|/ˈpɒp.jʊ.lɪst/|a=RP}}
* {{audio|en|LL-Q1860 (eng)-Vealhurl-populist.wav|a=Southern England}}
* {{IPA|en|/ˈpɑ.pjə.lɪst/|a=GA,CA}}
* {{IPA|en|/ˈpɔp.jʉ.lɪst/|a=AU}}
=== คำนาม ===
{{en-noun}}
# นักประชานิยม, [[บุคคล]]ผู้[[สนับสนุน]][[ประชานิยม]] (ขบวนการต่อต้านชนชั้นนำที่ปกครองประเทศ ซึ่งถูกมองว่าไม่ได้กระทำการเพื่อผลประโยชน์ของคนสามัญทั่วไป)
#* {{quote-journal|en|date=3 January 2013|author=Luke Harding; Uki Goni|journal=w:The Guardian|url=http://www.guardian.co.uk/uk/2013/jan/02/argentina-britain-hand-back-falklands
|passage=Critics suggest that Fernández, an unashamed '''populist''' and nationalist, is seeking to deflect attention from social disharmony at home.|archiveurl=https://web.archive.org/web/20230608033955/https://www.theguardian.com/uk/2013/jan/02/argentina-britain-hand-back-falklands|translation=นักวิจารณ์ชี้ว่าเฟอร์นันเดซ ซึ่งเป็น'''นักประชานิยม'''และนักชาตินิยมอย่างเปิดเผย กำลังพยายามเบี่ยงเบนความสนใจจากความแตกแยกทางสังคมในประเทศ}}
#* {{quote-journal|en-GB|author=Andrew Anthony|title=Liberalism and Its Discontents by Francis Fukuyama review – a defence of liberalism… from a former neocon|work=w:The Guardian|date=2022-03-08|url=https://www.theguardian.com/books/2022/mar/08/liberalism-and-its-discontents-by-francis-fukuyama-review-a-defence-of-liberalism-from-a-former-neocon|issn=0261-3077|passage=On top of all that, rightwing '''populists''' and leftwing progressives have made significant inroads into western politics.|archiveurl=https://web.archive.org/web/20230713224821/https://www.theguardian.com/books/2022/mar/08/liberalism-and-its-discontents-by-francis-fukuyama-review-a-defence-of-liberalism-from-a-former-neocon|translation=นอกเหนือจากนั้นทั้งหมด '''นักประชานิยม'''ฝ่ายขวาและนักก้าวหน้าฝ่ายซ้ายได้เข้ามามีบทบาทสำคัญในการเมืองชาติตะวันตก}}
#* {{quote-journal|en|author=Endeavour|title=Against Slopulism|magazine=w:Counter-Currents|url=https://counter-currents.com/2025/05/against-slopulism/|date=2025-05-02|passage=So as to not throw too much of the blame on American '''populists''', the right in other Western countries is also guilty of adopting this crass and anti-intellectual brand of politics.|archiveurl=https://web.archive.org/web/20250621134940/https://counter-currents.com/2025/05/against-slopulism/|translation=เพื่อไม่ให้เป็นการโยนความผิดให้กับ'''นักประชานิยม'''ชาวอเมริกันมากเกินไป ฝ่ายขวาในประเทศตะวันตกอื่น ๆ ก็มีความผิดเช่นกันในการนำการเมืองรูปแบบที่หยาบช้าและต่อต้านปัญญาชนนี้มาใช้}}
# [[นักการเมือง]]ผู้สนับสนุน[[นโยบาย]]เฉพาะบางอย่างเพียงเพราะนโยบายเหล่านั้นเป็นที่[[นิยม]]
# บุคคลผู้สนับสนุนหลักการ[[ประชาธิปไตย]]
==== ลูกคำ ====
{{col|en|antipopulist|ecopopulist|flopulist|macropopulist|neopopulist|prepopulist|pseudopopulist|sadopopulist|slopulist|technopopulist
|sadopopulism}}
=== คำคุณศัพท์ ===
{{en-adj}}
# แบบ[[ประชาธิปไตย]]
# {{lb|en|ใช้กับนโยบายทางการเมือง}} ที่นำเสนอเพียงเพราะว่าจะได้รับความนิยม
# เกี่ยวกับ[[ประชานิยม]]
#* {{quote-journal|en-US|author=Nathan Taylor Pemberton|title=When Posting Becomes Its Own Style of Politics|work=w:The New York Times|date=2026-02-13|url=https://www.nytimes.com/interactive/2026/02/13/style/slopulism-trump-conservative-social-media.html|issn=0362-4331|passage=On the right, this can look like gleeful cruelty, sadistic memes, posts that “own the libs” or sensationalized claims about fraud and conspiracy. On the left, it could be social justice messaging, online identity politics or '''populist''' economic proposals to, say, tax the rich.|translation=สำหรับฝ่ายขวา สิ่งนี้อาจดูเหมือนความโหดร้ายอย่างเริงร่า มีมแนวซาดิสต์ โพสต์ที่ "ตอกหน้าพวกเสรีนิยม" หรือการกล่าวอ้างที่เกินจริงเกี่ยวกับการฉ้อโกงและการสมรู้ร่วมคิด สำหรับฝ่ายซ้าย อาจเป็นข้อความเกี่ยวกับความยุติธรรมทางสังคม การเมืองเรื่องอัตลักษณ์บนโลกออนไลน์ หรือข้อเสนอทางเศรษฐกิจแบบ'''ประชานิยม''' เช่น การเก็บภาษีคนรวย}}
==== คำพ้องความ ====
* {{l|en|populistic}}
{{c|en|บุคคล}}
p6f0o32v97kn83vjcayh6nz0gez92u2
populists
0
2358074
5759017
2026-08-25T03:27:06Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5759017
wikitext
text/x-wiki
== ภาษาสวีเดน ==
=== คำนาม ===
{{head|sv|รูปนาม}}
# {{noun form of|sv|populist||indef|gen|s}}
== ภาษาอังกฤษ ==
=== คำนาม ===
{{head|en|รูปนาม}}
# {{plural of|en|populist}}
epy1xnvhztc00aap04n3bf2tttrvumc
populisten
0
2358075
5759020
2026-08-25T03:29:14Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5759020
wikitext
text/x-wiki
== ภาษาดัตช์ ==
=== การออกเสียง ===
* {{audio|nl|Nl-populisten.ogg}}
=== คำนาม ===
{{head|nl|รูปนาม}}
# {{plural of|nl|populist}}
== ภาษาสวีเดน ==
=== คำนาม ===
{{head|sv|รูปนาม}}
# {{noun form of|sv|populist||def|s}}
jdv6w9po10tosxiae1scpw2zi5gugnq
ecopopulism
0
2358076
5759021
2026-08-25T03:30:47Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759021
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
จาก{{prefix|en|eco|populism}}
=== คำนาม ===
{{en-noun|-}}
# {{lb|en|การเมือง}} [[รูปแบบ]]หนึ่งของ[[ประชานิยม]]ที่[[ใส่ใจ]][[สิ่งแวดล้อม]]
==== คำเกี่ยวข้อง ====
* {{l|en|ecopopulist}}
{{c|en|Ideologies}}
dhckwcu5iuryp1yrx007e1pt8pzgdjw
5759022
5759021
2026-08-25T03:31:15Z
Octahedron80
267
5759022
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
จาก{{prefix|en|eco|populism}}
=== คำนาม ===
{{en-noun|-}}
# {{lb|en|การเมือง}} [[รูปแบบ]]หนึ่งของ[[ประชานิยม]]ที่[[ใส่ใจ]][[สิ่งแวดล้อม]]
==== คำเกี่ยวข้อง ====
* {{l|en|ecopopulist}}
{{c|en|คตินิยม}}
0cp4bn2y5ytf1sh6egvjn3kcvv01xsc
left-wing populism
0
2358077
5759026
2026-08-25T03:33:57Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759026
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun|-}}
# {{lb|en|การเมือง}} [[ประชานิยมฝ่ายซ้าย]]; [[อุดมการณ์]]ทางการเมืองที่ผสมผสาน[[การเมือง]][[ฝ่ายซ้าย]]เข้ากับ[[วาทศิลป์]]และ[[แก่นเรื่อง]]แบบ[[ประชานิยม]] โดยมักจะวางกรอบให้[[ความเหลื่อมล้ำ]]ทาง[[สังคม]] [[การเมือง]] และ[[เศรษฐกิจ]]เป็นสาเหตุรากเหง้าของ[[ปัญหา]]ในประเทศ รวมถึงการกล่าวโทษ[[กลุ่มผู้มีอำนาจ]]ทางการเมืองและกลุ่มผลประโยชน์เอกชน (เช่น [[คนรวย]], [[สถาบันการเงิน]], [[บรรษัท]]) ว่าเป็นผู้รับผิดชอบหลัก
#: {{ant|en|right-wing populism}}
4txirb8p97dmfgpzeuxo51gmrzxm4uy
right-wing populism
0
2358078
5759027
2026-08-25T03:36:00Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759027
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun|-}}
# {{lb|en|การเมือง}} [[ประชานิยมฝ่ายขวา]]; [[อุดมการณ์]]ทางการเมืองที่ผสมผสาน[[การเมือง]][[ฝ่ายขวา]]เข้ากับ[[วาทศิลป์]]และ[[แก่นเรื่อง]]แบบ[[ประชานิยม]] โดยมักจะวางกรอบให้[[การสูญเสีย]][[อธิปไตย]]แห่ง[[ชาติ]] (ผ่านทาง[[การอพยพ]][[เข้าเมือง]], [[โลกาภิวัตน์]], [[พหุวัฒนธรรมนิยม]] ฯลฯ) เป็นสาเหตุรากเหง้าของ[[ปัญหา]]ในประเทศ รวมถึงการกล่าวโทษ[[กลุ่มผู้มีอำนาจ]]ทาง[[การเมือง]]และสถาบันระดับ[[สากล]] (เช่น [[สื่อ]][[กระแสหลัก]], [[แวดวงวิชาการ]], [[องค์กร]][[ระหว่างประเทศ]]) ว่าเป็นผู้รับผิดชอบหลัก
#: {{ant|en|left-wing populism}}
6v515hvw26gzkekmu436pz000qt1xep
neopopulism
0
2358079
5759028
2026-08-25T03:38:06Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759028
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
{{wp|en:Neo-populism}}
=== รูปแบบอื่น ===
* {{l|en|neo-populism}}
=== รากศัพท์ ===
จาก{{prefix|en|neo|populism}}
=== คำนาม ===
{{en-noun|-}}
# {{lb|en|การเมือง}} [[ขบวนการ]]ทาง[[วัฒนธรรม]]และ[[การเมือง]] ซึ่งส่วนใหญ่เกิดขึ้นในประเทศแถบ[[ลาตินอเมริกา]] แตกต่างจาก[[ประชานิยม]]ในศตวรรษที่ 20 ตรงที่มีการผสมผสานทัศนคติ[[ฝ่ายซ้าย]]และ[[ฝ่ายขวา]]ที่อยู่ขั้วตรงข้ามกันมาแต่เดิมเข้าด้วยกันอย่าง[[สุดขั้ว]] และมีการใช้[[สื่อ]][[อิเล็กทรอนิกส์]]เป็นเครื่องมือในการ[[เผยแพร่]]
#* {{quote-journal|en|date=December 1, 2007|author=RAÚL ISAÍAS BADUEL|title=Why I Parted Ways With Chávez|work=New York Times|url=http://www.nytimes.com/2007/12/01/opinion/01baduel.html|passage=President Chávez has been buying and selling against this idea, continuing to practice the kind of '''neopopulism''' that will reach its limit only when the country receives what economists call an external shock.|translation=ประธานาธิบดีชาเวซได้ทำการซื้อขายสวนทางกับแนวคิดนี้ โดยยังคงดำเนินวิถีทางแบบ'''ประชานิยมแนวใหม่'''ที่จะไปถึงขีดจำกัดก็ต่อเมื่อประเทศได้รับสิ่งที่นักเศรษฐศาสตร์เรียกว่าแรงกระแทกจากภายนอก}}
==== คำเกี่ยวข้อง ====
* {{l|en|neopopulist}}
ih6ch6gi81szbf1iin62dnqon59w6xd
penal populism
0
2358080
5759029
2026-08-25T03:40:21Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759029
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
{{wp|en:}}
=== คำนาม ===
{{en-noun|-}}
# {{lb|en|กฎหมาย}} [[กระบวนการ]]ที่[[พรรคการเมือง]]หลัก[[แข่งขัน]]กันเพื่อแสดง[[ความเด็ดขาด]]กับ[[อาชญากรรม]]
==== ดูเพิ่ม ====
* {{l|en|sadopopulism}}
{{C|en|อาชญากรรม}}
ez6h5wcch1isexyea2rynbulnwhhec0
sadopopulism
0
2358081
5759030
2026-08-25T03:45:48Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759030
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
จาก{{prefix|en|sado|populism}}, บัญญัติโดยนักประวัติศาสตร์ ทิโมธี สไนเดอร์ (Timothy Snyder),<!-- initially with a specific meaning (a system in which a leader deliberately harms their own voters, blames the voters' enemies, and encourages the votes look to the leader to stop the pain), but in broader use--> จากนั้นได้รับอิทธิพลจากคำและแนวคิดที่มีมาก่อนหน้าอย่าง "political sadism" (ซาดิสม์ทางการเมือง)<!-- (in which a leader appeals to their base by promising to hurt other people)-->
=== คำนาม ===
{{en-noun|-}}
# {{lb|en|การเมือง}} [[กลยุทธ์]]หรือ[[การกระทำ]]ทาง[[การเมือง]]ที่[[ผู้นำ]][[ดึงดูด]]ประชาชนโดยการ[[ทำร้าย]]พวกเขา แต่โน้มน้าวให้พวกเขาเชื่อว่าคนที่พวกเขาเกลียดชังนั้นเป็นฝ่ายผิดหรือกำลังทนทุกข์ทรมานมากกว่า
#* {{quote-book|en|date=2019-11-05|author=Fintan O'Toole|title=The Politics of Pain: Postwar England and the Rise of Nationalism|publisher=Liveright Publishing|isbn=9781631496462
|text={{...}} 'sadopopulism', in which people are willing to inflict pain on themselves so long as they can believe that, in the same moment, they are making their enemies hurt more: {{nb...}}|translation={{...}} 'ประชานิยมแบบซาดิสม์' (sadopopulism) ซึ่งผู้คนเต็มใจที่จะสร้างความเจ็บปวดให้กับตนเอง ตราบใดที่พวกเขาสามารถเชื่อได้ว่า ในขณะเดียวกันนั้น พวกเขากำลังทำให้ศัตรูของตนเจ็บปวดมากกว่า: {{nb...}}}}
==== คำเกี่ยวข้อง ====
* {{l|en|sadopopulist}}
==== ดูเพิ่ม ====
* {{l|en|penal populism}}
9lir7q914g85t46bke6rgn6lh550w4d
5759031
5759030
2026-08-25T03:46:59Z
Octahedron80
267
/* คำนาม */
5759031
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
จาก{{prefix|en|sado|populism}}, บัญญัติโดยนักประวัติศาสตร์ ทิโมธี สไนเดอร์ (Timothy Snyder),<!-- initially with a specific meaning (a system in which a leader deliberately harms their own voters, blames the voters' enemies, and encourages the votes look to the leader to stop the pain), but in broader use--> จากนั้นได้รับอิทธิพลจากคำและแนวคิดที่มีมาก่อนหน้าอย่าง "political sadism" (ซาดิสม์ทางการเมือง)<!-- (in which a leader appeals to their base by promising to hurt other people)-->
=== คำนาม ===
{{en-noun|-}}
# {{lb|en|การเมือง}} [[กลยุทธ์]]หรือ[[การกระทำ]]ทาง[[การเมือง]]ที่[[ผู้นำ]][[ดึงดูด]]ประชาชนโดย[[การทำร้าย]]ตัวประชาชนเอง แต่โน้มน้าวให้พวกเขาเชื่อว่าคนที่พวกเขาเกลียดชังนั้นเป็นฝ่ายผิดหรือกำลังทนทุกข์ทรมานมากกว่า
#* {{quote-book|en|date=2019-11-05|author=Fintan O'Toole|title=The Politics of Pain: Postwar England and the Rise of Nationalism|publisher=Liveright Publishing|isbn=9781631496462
|text={{...}} 'sadopopulism', in which people are willing to inflict pain on themselves so long as they can believe that, in the same moment, they are making their enemies hurt more: {{nb...}}|translation={{...}} 'ประชานิยมแบบซาดิสม์' (sadopopulism) ซึ่งผู้คนเต็มใจที่จะสร้างความเจ็บปวดให้กับตนเอง ตราบใดที่พวกเขาสามารถเชื่อได้ว่า ในขณะเดียวกันนั้น พวกเขากำลังทำให้ศัตรูของตนเจ็บปวดมากกว่า: {{nb...}}}}
==== คำเกี่ยวข้อง ====
* {{l|en|sadopopulist}}
==== ดูเพิ่ม ====
* {{l|en|penal populism}}
epcar1s98vc538xwqtikebk91z4a9jm
pseudopopulism
0
2358082
5759032
2026-08-25T03:48:06Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759032
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
จาก{{prefix|en|pseudo|populism}}
=== คำนาม ===
{{en-noun|-}}
# [[ประชานิยม]][[เท็จ]]
49damqxux2g5i60nmu3cyq7r9bscmpk
punitive populism
0
2358083
5759033
2026-08-25T03:48:19Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759033
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun|-}}
# {{syn of|en|penal populism}}
533259raxam53agwdv02fc74np8d8rm
slopulism
0
2358084
5759034
2026-08-25T03:50:45Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759034
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
{{blend|en|slop|populism}}
=== คำนาม ===
{{en-noun|-}}
# {{lb|en|การเมือง|คำสร้างใหม่|เสื่อมเสีย}} [[ประชานิยม]]ที่มีลักษณะเฉพาะคือ[[มีม]][[คุณภาพต่ำ]] (มักจะเป็น[[เจเนอเรทิฟเอไอ|เอไอเชิงรู้สร้าง]]) และ[[ทฤษฎีสมคบคิด]]
#* {{quote-journal|en|author=Endeavour|title=Against Slopulism|magazine=w:Counter-Currents|url=https://counter-currents.com/2025/05/against-slopulism/|date=2025-05-02|passage=Excessive contrarianism against the liberal establishment has also resulted in '''slopulism''' spiralling off into the most moronic of conspiracy theories.|archiveurl=https://web.archive.org/web/20250621134940/https://counter-currents.com/2025/05/against-slopulism/|translation=การต่อต้านขั้วอำนาจเสรีนิยมอย่างสุดโต่งยังส่งผลให้'''ประชานิยมขยะ (slopulism)''' ถลำลึกลงไปสู่ทฤษฎีสมคบคิดที่งี่เง่าที่สุด}}
#* {{quote-journal|en|author=Russell Walter|title=The Spectre of Slopulism|magazine=The Russell Walter Substack|url=http://russellwalter.substack.com/p/the-spectre-of-slopulism|date=2025-05-19|passage=A spectre is haunting the online right—the spectre of '''slopulism'''. Musk now pays X users for impressions. This financially incentivizes people to produce slop (they're putting PRONOUNS in the drinking water!).|archiveurl=https://web.archive.org/web/20250730052210/http://russellwalter.substack.com/p/the-spectre-of-slopulism|translation=ปีศาจกำลังหลอกหลอนฝ่ายขวาบนโลกออนไลน์—ปีศาจแห่ง'''ประชานิยมขยะ''' ในขณะนี้มัสก์จ่ายเงินให้ผู้ใช้ X สำหรับยอดการมองเห็น สิ่งนี้จูงใจทางการเงินให้ผู้คนผลิตขยะออกมา (พวกเขากำลังใส่คำสรรพนามลงในน้ำดื่ม!)}}
#* {{RQ:NYT|author=Nathan Taylor Pemberton|title=Trolling Democracy|url=https://www.nytimes.com/2025/07/10/opinion/trolling-democracy.html|date=10 July 2025|passage=The key ingredient to this online soup is extremism: from nativism to racial science to casual neo-Nazism and textbook misogyny. Presented to followers via livestreams, memes and X posts, this deluge of far-right content has been called "'''slopulism'''" — a vibes-based politics designed for social media and born from social media.|translation=ส่วนผสมสำคัญของซุปออนไลน์นี้คือลัทธิสุดโต่ง: ตั้งแต่คตินิยมชนพื้นเมือง วิทยาศาสตร์เกี่ยวกับเชื้อชาติ ไปจนถึงลัทธินีโอนาซีแบบผิวเผิน และความเกลียดชังผู้หญิงตามตำรา การไหลบ่าของเนื้อหาฝ่ายขวาจัดที่นำเสนอต่อผู้ติดตามผ่านไลฟ์สตรีม มีม และโพสต์บน X นี้ถูกเรียกว่า "'''slopulism'''" — การเมืองที่อิงจากความรู้สึกซึ่งออกแบบมาเพื่อโซเชียลมีเดียและถือกำเนิดขึ้นจากโซเชียลมีเดีย}}
#* {{quote-journal|en|date=22 May 2026|author=Justin Briley|title=We Owe Each Other Better: Reject Slopulism, Embrace Building the Republic|journal=Liberal Currents|url=https://www.liberalcurrents.com/we-owe-each-other-better-reject-slopulism-embrace-building-the-republic/|volume=|issue=|page=|text=In light of this anti-tax '''slopulism''', it bears repeating that taxes per se are not bad. They are not a punishment, they are not theft. They may be misused, but that depends on how frequently we choose to elect Republicans.|translation=เมื่อพิจารณาถึง'''ประชานิยมขยะ'''ที่ต่อต้านการเก็บภาษีนี้แล้ว ก็สมควรที่จะย้ำอีกครั้งว่า ภาษีในตัวมันเองนั้นไม่ได้แย่ มันไม่ใช่การลงโทษ มันไม่ใช่การลักทรัพย์ มันอาจถูกนำไปใช้ในทางที่ผิด แต่ก็ขึ้นอยู่กับว่าเราเลือกพรรครีพับลิกันบ่อยแค่ไหน}}
# {{hot sense|date=13 February 2026}} {{lb|en|การเมือง|คำสร้างใหม่|เสื่อมเสีย}} {{U|populism|ประชานิยม}}ที่มีลักษณะเฉพาะคือข้อกล่าวอ้างที่[[คลุมเครือ]], [[ไม่จริงใจ]], หรือเป็น[[อุดมคติ]]มากเกินไป
#* {{quote-journal|en|date=13 February 2026|author=Nathan Taylor Pemberton|title=Is 'Slopulism' Shaping Our Politics?|journal=The New York Times|url=https://www.nytimes.com/interactive/2026/02/13/style/slopulism-trump-conservative-social-media.html|volume=|issue=|page=|text='''Slopulism''', as described by these commentators, is a kind of political post that elides concrete political concerns in favor of the fast-acting satisfactions of social media rage and culture-war jargon.|translation='''Slopulism''' ดังที่นักวิจารณ์เหล่านี้อธิบายไว้ คือโพสต์ทางการเมืองประเภทหนึ่งที่ละทิ้งข้อกังวลทางการเมืองที่เป็นรูปธรรม เพื่อไปหาความพึงพอใจที่เกิดขึ้นอย่างรวดเร็วจากความโกรธแค้นบนโซเชียลมีเดียและคำศัพท์เฉพาะในสงครามวัฒนธรรม}}
#* {{quote-journal|en|date=18 March 2026|author=Ben Ritz|title=Democrats Learned the Wrong Lesson From 2024|journal=The Atlantic|url=https://www.theatlantic.com/ideas/2026/03/democrats-slopulism-economic-policy/686419/|volume=|issue=|page=|text=But Democratic lawmakers are failing just as badly to articulate an alternative vision. Instead, some of them seem to be trying to out-Trump the president with their own brand of “'''slopulism'''”—half-baked policy proposals that sound good only if you don’t think too hard about them, and that would, if enacted, hurt the people they’re supposed to help.|translation=แต่สมาชิกสภานิติบัญญัติของพรรคเดโมแครตก็ล้มเหลวไม่แพ้กันในการนำเสนอวิสัยทัศน์ทางเลือก ในทางกลับกัน บางคนดูเหมือนจะพยายามเอาชนะทรัมป์ด้วย “'''slopulism'''” ในแบบฉบับของพวกเขาเอง—ซึ่งก็คือข้อเสนอนโยบายแบบครึ่ง ๆ กลาง ๆ ที่ฟังดูดีก็ต่อเมื่อคุณไม่ได้คิดถึงมันมากเกินไป และหากบังคับใช้จริง ก็จะทำร้ายคนที่พวกเขาตั้งใจจะช่วยเหลือ}}
#* {{quote-journal|en|date=18 March 2026|author=David Wallace-Wells|title=Can the Democrats Become the Party of the People Again?|journal=The New York Times|url=https://www.nytimes.com/2026/03/18/opinion/democrats-populism-inequality.html|volume=|issue=|page=|text=Already, skeptics joke about '''slopulism''' — a term for populist appeals that seem unserious or superficial, the equivalent of clickbait. Some of the budget math looks, even to progressives, a bit questionable, and it’s not clear, for all the talk of economic injustice, whether the party really means it.|translation=ตอนนี้ กลุ่มคนที่กังขาก็ล้อเลียนเกี่ยวกับ '''slopulism''' แล้ว — ซึ่งเป็นคำเรียกการดึงดูดใจแบบประชานิยมที่ดูไม่จริงจังหรือผิวเผิน เทียบเท่ากับคลิกเบต การคำนวณงบประมาณบางส่วนดูน่าสงสัยแม้แต่กับกลุ่มหัวก้าวหน้าเองก็ตาม และสำหรับทุกสิ่งที่พูดถึงเกี่ยวกับความอยุติธรรมทางเศรษฐกิจ ก็ไม่เป็นที่แน่ชัดว่าพรรคนี้หมายความตามนั้นจริง ๆ หรือไม่}}
==== คำเกี่ยวข้อง ====
{{col|en|slopulist}}
{{c|en|ปัญญาประดิษฐ์}}
3w4i031npjnl91zmnuahlavtc3rx0dc
5759036
5759034
2026-08-25T03:52:52Z
Octahedron80
267
/* คำนาม */
5759036
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
{{blend|en|slop|populism}}
=== คำนาม ===
{{en-noun|-}}
# {{lb|en|การเมือง|คำสร้างใหม่|เสื่อมเสีย}} [[ประชานิยม]]ที่มีลักษณะเฉพาะคือ[[มีม]][[คุณภาพต่ำ]] (มักจะเป็น[[เจเนอเรทิฟเอไอ|เอไอเชิงรู้สร้าง]]) และ[[ทฤษฎีสมคบคิด]]
#* {{quote-journal|en|author=Endeavour|title=Against Slopulism|magazine=w:Counter-Currents|url=https://counter-currents.com/2025/05/against-slopulism/|date=2025-05-02|passage=Excessive contrarianism against the liberal establishment has also resulted in '''slopulism''' spiralling off into the most moronic of conspiracy theories.|archiveurl=https://web.archive.org/web/20250621134940/https://counter-currents.com/2025/05/against-slopulism/|translation=การต่อต้านขั้วอำนาจเสรีนิยมอย่างสุดโต่งยังส่งผลให้'''ประชานิยมขยะ (slopulism)''' ถลำลึกลงไปสู่ทฤษฎีสมคบคิดที่งี่เง่าที่สุด}}
#* {{quote-journal|en|author=Russell Walter|title=The Spectre of Slopulism|magazine=The Russell Walter Substack|url=http://russellwalter.substack.com/p/the-spectre-of-slopulism|date=2025-05-19|passage=A spectre is haunting the online right—the spectre of '''slopulism'''. Musk now pays X users for impressions. This financially incentivizes people to produce slop (they're putting PRONOUNS in the drinking water!).|archiveurl=https://web.archive.org/web/20250730052210/http://russellwalter.substack.com/p/the-spectre-of-slopulism|translation=ปีศาจกำลังหลอกหลอนฝ่ายขวาบนโลกออนไลน์—ปีศาจแห่ง'''ประชานิยมขยะ''' ในขณะนี้มัสก์จ่ายเงินให้ผู้ใช้ X สำหรับยอดการมองเห็น สิ่งนี้จูงใจทางการเงินให้ผู้คนผลิตขยะออกมา (พวกเขากำลังใส่คำสรรพนามลงในน้ำดื่ม!)}}
#* {{RQ:NYT|author=Nathan Taylor Pemberton|title=Trolling Democracy|url=https://www.nytimes.com/2025/07/10/opinion/trolling-democracy.html|date=10 July 2025|passage=The key ingredient to this online soup is extremism: from nativism to racial science to casual neo-Nazism and textbook misogyny. Presented to followers via livestreams, memes and X posts, this deluge of far-right content has been called "'''slopulism'''" — a vibes-based politics designed for social media and born from social media.|translation=ส่วนผสมสำคัญของซุปออนไลน์นี้คือลัทธิสุดโต่ง: ตั้งแต่คตินิยมชนพื้นเมือง วิทยาศาสตร์เกี่ยวกับเชื้อชาติ ไปจนถึงลัทธินีโอนาซีแบบผิวเผิน และความเกลียดชังผู้หญิงตามตำรา การไหลบ่าของเนื้อหาฝ่ายขวาจัดที่นำเสนอต่อผู้ติดตามผ่านไลฟ์สตรีม มีม และโพสต์บน X นี้ถูกเรียกว่า "'''slopulism'''" — การเมืองที่อิงจากความรู้สึกซึ่งออกแบบมาเพื่อโซเชียลมีเดียและถือกำเนิดขึ้นจากโซเชียลมีเดีย}}
#* {{quote-journal|en|date=22 May 2026|author=Justin Briley|title=We Owe Each Other Better: Reject Slopulism, Embrace Building the Republic|journal=Liberal Currents|url=https://www.liberalcurrents.com/we-owe-each-other-better-reject-slopulism-embrace-building-the-republic/|volume=|issue=|page=|text=In light of this anti-tax '''slopulism''', it bears repeating that taxes per se are not bad. They are not a punishment, they are not theft. They may be misused, but that depends on how frequently we choose to elect Republicans.|translation=เมื่อพิจารณาถึง'''ประชานิยมขยะ'''ที่ต่อต้านการเก็บภาษีนี้แล้ว ก็สมควรที่จะย้ำอีกครั้งว่า ภาษีในตัวมันเองนั้นไม่ได้แย่ มันไม่ใช่การลงโทษ มันไม่ใช่การลักทรัพย์ มันอาจถูกนำไปใช้ในทางที่ผิด แต่ก็ขึ้นอยู่กับว่าเราเลือกพรรครีพับลิกันบ่อยแค่ไหน}}
# {{hot sense|date=13 February 2026}} {{lb|en|การเมือง|คำสร้างใหม่|เสื่อมเสีย}} ประชานิยมที่มีลักษณะเฉพาะคือข้อกล่าวอ้างที่[[คลุมเครือ]], [[ไม่จริงใจ]], หรือเป็น[[อุดมคติ]]มากเกินไป
#* {{quote-journal|en|date=13 February 2026|author=Nathan Taylor Pemberton|title=Is 'Slopulism' Shaping Our Politics?|journal=The New York Times|url=https://www.nytimes.com/interactive/2026/02/13/style/slopulism-trump-conservative-social-media.html|volume=|issue=|page=|text='''Slopulism''', as described by these commentators, is a kind of political post that elides concrete political concerns in favor of the fast-acting satisfactions of social media rage and culture-war jargon.|translation='''Slopulism''' ดังที่นักวิจารณ์เหล่านี้อธิบายไว้ คือโพสต์ทางการเมืองประเภทหนึ่งที่ละทิ้งข้อกังวลทางการเมืองที่เป็นรูปธรรม เพื่อไปหาความพึงพอใจที่เกิดขึ้นอย่างรวดเร็วจากความโกรธแค้นบนโซเชียลมีเดียและคำศัพท์เฉพาะในสงครามวัฒนธรรม}}
#* {{quote-journal|en|date=18 March 2026|author=Ben Ritz|title=Democrats Learned the Wrong Lesson From 2024|journal=The Atlantic|url=https://www.theatlantic.com/ideas/2026/03/democrats-slopulism-economic-policy/686419/|volume=|issue=|page=|text=But Democratic lawmakers are failing just as badly to articulate an alternative vision. Instead, some of them seem to be trying to out-Trump the president with their own brand of “'''slopulism'''”—half-baked policy proposals that sound good only if you don’t think too hard about them, and that would, if enacted, hurt the people they’re supposed to help.|translation=แต่สมาชิกสภานิติบัญญัติของพรรคเดโมแครตก็ล้มเหลวไม่แพ้กันในการนำเสนอวิสัยทัศน์ทางเลือก ในทางกลับกัน บางคนดูเหมือนจะพยายามเอาชนะทรัมป์ด้วย “'''slopulism'''” ในแบบฉบับของพวกเขาเอง—ซึ่งก็คือข้อเสนอนโยบายแบบครึ่ง ๆ กลาง ๆ ที่ฟังดูดีก็ต่อเมื่อคุณไม่ได้คิดถึงมันมากเกินไป และหากบังคับใช้จริง ก็จะทำร้ายคนที่พวกเขาตั้งใจจะช่วยเหลือ}}
#* {{quote-journal|en|date=18 March 2026|author=David Wallace-Wells|title=Can the Democrats Become the Party of the People Again?|journal=The New York Times|url=https://www.nytimes.com/2026/03/18/opinion/democrats-populism-inequality.html|volume=|issue=|page=|text=Already, skeptics joke about '''slopulism''' — a term for populist appeals that seem unserious or superficial, the equivalent of clickbait. Some of the budget math looks, even to progressives, a bit questionable, and it’s not clear, for all the talk of economic injustice, whether the party really means it.|translation=ตอนนี้ กลุ่มคนที่กังขาก็ล้อเลียนเกี่ยวกับ '''slopulism''' แล้ว — ซึ่งเป็นคำเรียกการดึงดูดใจแบบประชานิยมที่ดูไม่จริงจังหรือผิวเผิน เทียบเท่ากับคลิกเบต การคำนวณงบประมาณบางส่วนดูน่าสงสัยแม้แต่กับกลุ่มหัวก้าวหน้าเองก็ตาม และสำหรับทุกสิ่งที่พูดถึงเกี่ยวกับความอยุติธรรมทางเศรษฐกิจ ก็ไม่เป็นที่แน่ชัดว่าพรรคนี้หมายความตามนั้นจริง ๆ หรือไม่}}
==== คำเกี่ยวข้อง ====
{{col|en|slopulist}}
{{c|en|ปัญญาประดิษฐ์}}
exwn34vva5jmb3z557pvsoaxyhptskl
5759037
5759036
2026-08-25T03:54:15Z
Octahedron80
267
/* คำนาม */
5759037
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
{{blend|en|slop|populism}}
=== คำนาม ===
{{en-noun|-}}
# {{lb|en|การเมือง|คำสร้างใหม่|เสื่อมเสีย}} [[ประชานิยม]]ที่มีลักษณะเฉพาะคือ[[มีม]][[คุณภาพต่ำ]] (มักจะเป็น[[เจเนอเรทิฟเอไอ|เอไอเชิงรู้สร้าง]]) และ[[ทฤษฎีสมคบคิด]]
#* {{quote-journal|en|author=Endeavour|title=Against Slopulism|magazine=w:Counter-Currents|url=https://counter-currents.com/2025/05/against-slopulism/|date=2025-05-02|passage=Excessive contrarianism against the liberal establishment has also resulted in '''slopulism''' spiralling off into the most moronic of conspiracy theories.|archiveurl=https://web.archive.org/web/20250621134940/https://counter-currents.com/2025/05/against-slopulism/|translation=การต่อต้านขั้วอำนาจเสรีนิยมอย่างสุดโต่งยังส่งผลให้'''ประชานิยมขยะ (slopulism)''' ถลำลึกลงไปสู่ทฤษฎีสมคบคิดที่งี่เง่าที่สุด}}
#* {{quote-journal|en|author=Russell Walter|title=The Spectre of Slopulism|magazine=The Russell Walter Substack|url=http://russellwalter.substack.com/p/the-spectre-of-slopulism|date=2025-05-19|passage=A spectre is haunting the online right—the spectre of '''slopulism'''. Musk now pays X users for impressions. This financially incentivizes people to produce slop (they're putting PRONOUNS in the drinking water!).|archiveurl=https://web.archive.org/web/20250730052210/http://russellwalter.substack.com/p/the-spectre-of-slopulism|translation=ปีศาจกำลังหลอกหลอนฝ่ายขวาบนโลกออนไลน์—ปีศาจแห่ง'''ประชานิยมขยะ''' ในขณะนี้มัสก์จ่ายเงินให้ผู้ใช้ X สำหรับยอดการมองเห็น สิ่งนี้จูงใจทางการเงินให้ผู้คนผลิตขยะออกมา (พวกเขากำลังใส่คำสรรพนามลงในน้ำดื่ม!)}}
#* {{RQ:NYT|author=Nathan Taylor Pemberton|title=Trolling Democracy|url=https://www.nytimes.com/2025/07/10/opinion/trolling-democracy.html|date=10 July 2025|passage=The key ingredient to this online soup is extremism: from nativism to racial science to casual neo-Nazism and textbook misogyny. Presented to followers via livestreams, memes and X posts, this deluge of far-right content has been called "'''slopulism'''" — a vibes-based politics designed for social media and born from social media.|translation=ส่วนผสมสำคัญของซุปออนไลน์นี้คือลัทธิสุดโต่ง: ตั้งแต่คตินิยมชนพื้นเมือง วิทยาศาสตร์เกี่ยวกับเชื้อชาติ ไปจนถึงลัทธินีโอนาซีแบบผิวเผิน และความเกลียดชังผู้หญิงตามตำรา การไหลบ่าของเนื้อหาฝ่ายขวาจัดที่นำเสนอต่อผู้ติดตามผ่านไลฟ์สตรีม มีม และโพสต์บน X นี้ถูกเรียกว่า "'''slopulism'''" — การเมืองที่อิงจากความรู้สึกซึ่งออกแบบมาเพื่อโซเชียลมีเดียและถือกำเนิดขึ้นจากโซเชียลมีเดีย}}
#* {{quote-journal|en|date=22 May 2026|author=Justin Briley|title=We Owe Each Other Better: Reject Slopulism, Embrace Building the Republic|journal=Liberal Currents|url=https://www.liberalcurrents.com/we-owe-each-other-better-reject-slopulism-embrace-building-the-republic/|volume=|issue=|page=|text=In light of this anti-tax '''slopulism''', it bears repeating that taxes per se are not bad. They are not a punishment, they are not theft. They may be misused, but that depends on how frequently we choose to elect Republicans.|translation=เมื่อพิจารณาถึง'''ประชานิยมขยะ'''ที่ต่อต้านการเก็บภาษีนี้แล้ว ก็สมควรที่จะย้ำอีกครั้งว่า ภาษีในตัวมันเองนั้นไม่ได้แย่ มันไม่ใช่การลงโทษ มันไม่ใช่การลักทรัพย์ มันอาจถูกนำไปใช้ในทางที่ผิด แต่ก็ขึ้นอยู่กับว่าเราเลือกพรรครีพับลิกันบ่อยแค่ไหน}}
# {{lb|en|การเมือง|คำสร้างใหม่|เสื่อมเสีย}} ประชานิยมที่มีลักษณะเฉพาะคือข้อกล่าวอ้างที่[[คลุมเครือ]], [[ไม่จริงใจ]], หรือเป็น[[อุดมคติ]]มากเกินไป
#* {{quote-journal|en|date=13 February 2026|author=Nathan Taylor Pemberton|title=Is 'Slopulism' Shaping Our Politics?|journal=The New York Times|url=https://www.nytimes.com/interactive/2026/02/13/style/slopulism-trump-conservative-social-media.html|volume=|issue=|page=|text='''Slopulism''', as described by these commentators, is a kind of political post that elides concrete political concerns in favor of the fast-acting satisfactions of social media rage and culture-war jargon.|translation='''Slopulism''' ดังที่นักวิจารณ์เหล่านี้อธิบายไว้ คือโพสต์ทางการเมืองประเภทหนึ่งที่ละทิ้งข้อกังวลทางการเมืองที่เป็นรูปธรรม เพื่อไปหาความพึงพอใจที่เกิดขึ้นอย่างรวดเร็วจากความโกรธแค้นบนโซเชียลมีเดียและคำศัพท์เฉพาะในสงครามวัฒนธรรม}}
#* {{quote-journal|en|date=18 March 2026|author=Ben Ritz|title=Democrats Learned the Wrong Lesson From 2024|journal=The Atlantic|url=https://www.theatlantic.com/ideas/2026/03/democrats-slopulism-economic-policy/686419/|volume=|issue=|page=|text=But Democratic lawmakers are failing just as badly to articulate an alternative vision. Instead, some of them seem to be trying to out-Trump the president with their own brand of “'''slopulism'''”—half-baked policy proposals that sound good only if you don’t think too hard about them, and that would, if enacted, hurt the people they’re supposed to help.|translation=แต่สมาชิกสภานิติบัญญัติของพรรคเดโมแครตก็ล้มเหลวไม่แพ้กันในการนำเสนอวิสัยทัศน์ทางเลือก ในทางกลับกัน บางคนดูเหมือนจะพยายามเอาชนะทรัมป์ด้วย “'''slopulism'''” ในแบบฉบับของพวกเขาเอง—ซึ่งก็คือข้อเสนอนโยบายแบบครึ่ง ๆ กลาง ๆ ที่ฟังดูดีก็ต่อเมื่อคุณไม่ได้คิดถึงมันมากเกินไป และหากบังคับใช้จริง ก็จะทำร้ายคนที่พวกเขาตั้งใจจะช่วยเหลือ}}
#* {{quote-journal|en|date=18 March 2026|author=David Wallace-Wells|title=Can the Democrats Become the Party of the People Again?|journal=The New York Times|url=https://www.nytimes.com/2026/03/18/opinion/democrats-populism-inequality.html|volume=|issue=|page=|text=Already, skeptics joke about '''slopulism''' — a term for populist appeals that seem unserious or superficial, the equivalent of clickbait. Some of the budget math looks, even to progressives, a bit questionable, and it’s not clear, for all the talk of economic injustice, whether the party really means it.|translation=ตอนนี้ กลุ่มคนที่กังขาก็ล้อเลียนเกี่ยวกับ '''slopulism''' แล้ว — ซึ่งเป็นคำเรียกการดึงดูดใจแบบประชานิยมที่ดูไม่จริงจังหรือผิวเผิน เทียบเท่ากับคลิกเบต การคำนวณงบประมาณบางส่วนดูน่าสงสัยแม้แต่กับกลุ่มหัวก้าวหน้าเองก็ตาม และสำหรับทุกสิ่งที่พูดถึงเกี่ยวกับความอยุติธรรมทางเศรษฐกิจ ก็ไม่เป็นที่แน่ชัดว่าพรรคนี้หมายความตามนั้นจริง ๆ หรือไม่}}
==== คำเกี่ยวข้อง ====
{{col|en|slopulist}}
{{c|en|ปัญญาประดิษฐ์}}
66ecacjx577kfct0yjefkcug00fy4np
technopopulism
0
2358085
5759038
2026-08-25T03:55:52Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759038
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
{{wp|Techno-populism}}
=== รูปแบบอื่น ===
* {{alt|en|techno-populism}}
=== รากศัพท์ ===
จาก{{prefix|en|techno|populism}}
=== คำนาม ===
{{en-noun|-}}
# [[ขบวนการ]]ทาง[[การเมือง]]ที่สนับสนุนการใช้[[เทคโนโลยีสารสนเทศ]]เพื่อ[[ช่วยเหลือ]][[ประชาธิปไตย]]
==== คำเกี่ยวข้อง ====
{{col4|en
|technopopulist
}}
==== ดูเพิ่ม ====
{{col4|en
|cyberpopulism
|technofascism
}}
48vfjku0mhi1bo7q36rnd1c2ujoc178
demagoguery
0
2358086
5759039
2026-08-25T03:57:28Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759039
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
{{ety|en|:af|demagogue|-ery|text=+|tree=1}}
=== การออกเสียง ===
* {{IPA|en|/ˌdɛməˈɡɑɡəɹi/|a=GA}}
* {{IPA|en|/ˌdɛməˈɡɒɡəɹi/|a=RP}}
* {{audio|en|LL-Q1860 (eng)-Vealhurl-demagoguery.wav|a=Southern England}}
=== คำนาม ===
{{en-noun|~}}
# [[การกระทำ]]ของผู้[[ปลุกปั่น]][[ฝูงชน]]
#* {{quote-journal|en|title=Gas Deregulation|magazine=w:The New York Times|url=https://www.nytimes.com/1976/02/04/archives/gas-deregulation.html|date=04-02-1976|passage=Long before the energy crisis the debate over deregulation of natural gas prices raged stormily, stirring high emotions, '''demagogueries''' and mutual deceptions, and with literally billions of dollars at stake.|translation=นานก่อนจะเกิดวิกฤตการณ์พลังงาน การโต้เถียงเกี่ยวกับการยกเลิกการควบคุมราคาก๊าซธรรมชาติได้ปะทุขึ้นอย่างรุนแรง ปลุกเร้าอารมณ์อันพลุ่งพล่าน '''การกระทำแบบผู้ปลุกปั่นฝูงชน''' และการหลอกลวงซึ่งกันและกัน โดยมีเงินหลายพันล้านดอลลาร์เป็นเดิมพัน}}
#* {{quote-journal|en|author=Jason Stanley|title=Democracy and the Demagogue|magazine=w:The New York Times|url=https://archive.nytimes.com/opinionator.blogs.nytimes.com/2015/10/12/democracy-and-the-demagogue/|date=12-10-2015|passage=The desire for politicians who are sincere explains not only the strategic value of '''demagoguery''' (and hence the campaign choices of candidates like Trump who may not in fact believe their own demagogic bombast).|translation=ความต้องการนักการเมืองที่มีความจริงใจไม่เพียงแต่อธิบายถึงคุณค่าเชิงกลยุทธ์ของ'''การกระทำแบบผู้ปลุกปั่นฝูงชน'''เท่านั้น (และด้วยเหตุนี้จึงอธิบายถึงทางเลือกในการหาเสียงของผู้สมัครอย่างทรัมป์ ซึ่งในความเป็นจริงอาจไม่ได้เชื่อในคำพูดโอ้อวดแบบนักปลุกปั่นของตนเองด้วยซ้ำ)}}
# [[วาทศิลป์]]ที่ปลุกเร้า[[อคติ]]ของประชาชน
7jlw3wtmqmprl7ioi5udm96kdjdurci
5759040
5759039
2026-08-25T03:59:01Z
Octahedron80
267
/* คำนาม */
5759040
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
{{ety|en|:af|demagogue|-ery|text=+|tree=1}}
=== การออกเสียง ===
* {{IPA|en|/ˌdɛməˈɡɑɡəɹi/|a=GA}}
* {{IPA|en|/ˌdɛməˈɡɒɡəɹi/|a=RP}}
* {{audio|en|LL-Q1860 (eng)-Vealhurl-demagoguery.wav|a=Southern England}}
=== คำนาม ===
{{en-noun|~}}
# [[การกระทำ]]ของ[[นักกวนเมือง]]หรือ[[นักหลอกล่อทางการเมือง]]
#* {{quote-journal|en|title=Gas Deregulation|magazine=w:The New York Times|url=https://www.nytimes.com/1976/02/04/archives/gas-deregulation.html|date=04-02-1976|passage=Long before the energy crisis the debate over deregulation of natural gas prices raged stormily, stirring high emotions, '''demagogueries''' and mutual deceptions, and with literally billions of dollars at stake.|translation=นานก่อนจะเกิดวิกฤตการณ์พลังงาน การโต้เถียงเกี่ยวกับการยกเลิกการควบคุมราคาก๊าซธรรมชาติได้ปะทุขึ้นอย่างรุนแรง ปลุกเร้าอารมณ์อันพลุ่งพล่าน '''การกระทำแบบนักหลอกล่อทางการเมือง''' และการหลอกลวงซึ่งกันและกัน โดยมีเงินหลายพันล้านดอลลาร์เป็นเดิมพัน}}
#* {{quote-journal|en|author=Jason Stanley|title=Democracy and the Demagogue|magazine=w:The New York Times|url=https://archive.nytimes.com/opinionator.blogs.nytimes.com/2015/10/12/democracy-and-the-demagogue/|date=12-10-2015|passage=The desire for politicians who are sincere explains not only the strategic value of '''demagoguery''' (and hence the campaign choices of candidates like Trump who may not in fact believe their own demagogic bombast).|translation=ความต้องการนักการเมืองที่มีความจริงใจไม่เพียงแต่อธิบายถึงคุณค่าเชิงกลยุทธ์ของ'''การกระทำแบบนักหลอกล่อทางการเมือง'''เท่านั้น (และด้วยเหตุนี้จึงอธิบายถึงทางเลือกในการหาเสียงของผู้สมัครอย่างทรัมป์ ซึ่งในความเป็นจริงอาจไม่ได้เชื่อในคำพูดโอ้อวดแบบนักปลุกปั่นของตนเองด้วยซ้ำ)}}
# [[วาทศิลป์]]ที่ปลุกเร้า[[อคติ]]ของประชาชน
linfuirvm5xglkjk9vx6anvcosow1e7
5759042
5759040
2026-08-25T04:01:46Z
Octahedron80
267
/* คำนาม */
5759042
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ ===
{{ety|en|:af|demagogue|-ery|text=+|tree=1}}
=== การออกเสียง ===
* {{IPA|en|/ˌdɛməˈɡɑɡəɹi/|a=GA}}
* {{IPA|en|/ˌdɛməˈɡɒɡəɹi/|a=RP}}
* {{audio|en|LL-Q1860 (eng)-Vealhurl-demagoguery.wav|a=Southern England}}
=== คำนาม ===
{{en-noun|~}}
# [[การกระทำ]]ของ[[นักกวนเมือง]]หรือ[[นักหลอกล่อทางการเมือง]] โดย[[การปลุกปั่น]][[ฝูงชน]]
#* {{quote-journal|en|title=Gas Deregulation|magazine=w:The New York Times|url=https://www.nytimes.com/1976/02/04/archives/gas-deregulation.html|date=04-02-1976|passage=Long before the energy crisis the debate over deregulation of natural gas prices raged stormily, stirring high emotions, '''demagogueries''' and mutual deceptions, and with literally billions of dollars at stake.|translation=นานก่อนจะเกิดวิกฤตการณ์พลังงาน การโต้เถียงเกี่ยวกับการยกเลิกการควบคุมราคาก๊าซธรรมชาติได้ปะทุขึ้นอย่างรุนแรง ปลุกเร้าอารมณ์อันพลุ่งพล่าน '''การกระทำแบบนักหลอกล่อทางการเมือง''' และการหลอกลวงซึ่งกันและกัน โดยมีเงินหลายพันล้านดอลลาร์เป็นเดิมพัน}}
#* {{quote-journal|en|author=Jason Stanley|title=Democracy and the Demagogue|magazine=w:The New York Times|url=https://archive.nytimes.com/opinionator.blogs.nytimes.com/2015/10/12/democracy-and-the-demagogue/|date=12-10-2015|passage=The desire for politicians who are sincere explains not only the strategic value of '''demagoguery''' (and hence the campaign choices of candidates like Trump who may not in fact believe their own demagogic bombast).|translation=ความต้องการนักการเมืองที่มีความจริงใจไม่เพียงแต่อธิบายถึงคุณค่าเชิงกลยุทธ์ของ'''การกระทำแบบนักหลอกล่อทางการเมือง'''เท่านั้น (และด้วยเหตุนี้จึงอธิบายถึงทางเลือกในการหาเสียงของผู้สมัครอย่างทรัมป์ ซึ่งในความเป็นจริงอาจไม่ได้เชื่อในคำพูดโอ้อวดแบบนักปลุกปั่นของตนเองด้วยซ้ำ)}}
# [[วาทศิลป์]]ที่ปลุกเร้า[[อคติ]]ของประชาชน
llm4by4xwc9462i0a1j8zewjxcqvryf
demagogues
0
2358087
5759044
2026-08-25T04:07:33Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759044
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== การออกเสียง ===
* {{audio|en|LL-Q1860 (eng)-Wodencafe-demagogues.wav|a=US}}
=== คำนาม ===
{{head|en|รูปนาม}}
# {{plural of|en|demagogue}}
=== คำกริยา ===
{{head|en|รูปกริยา}}
# {{inflection of|en|demagogue||s-verb-form}}
tur8cu2p6s66f9rrk9s1qyzm0sat0i9
demagog
0
2358088
5759046
2026-08-25T04:11:50Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5759046
wikitext
text/x-wiki
== ภาษากาตาลา ==
=== รากศัพท์ ===
{{ety|ca|:bor|grc:δημαγωγός<t:ผู้นำที่ได้รับความนิยม>}}
{{bor+|ca|grc|δημαγωγός||ผู้นำที่ได้รับความนิยม}}
=== การออกเสียง ===
* {{ca-IPA|ò}}
* {{audio|ca|LL-Q7026 (cat)-Marvives-demagog.wav|a=Barcelona}}
=== คำนาม ===
{{ca-noun|m|f=+}}
# [[นักกวนเมือง]], [[นักหลอกล่อทางการเมือง]]
==== คำเกี่ยวข้อง ====
* {{l|ca|demo-}}
* {{l|ca|demagògia}}
* {{l|ca|demagògic}}
=== อ่านเพิ่ม ===
* {{R:ca:IEC2}}
{{C|ca|บุคคล}}
== ภาษาเช็ก ==
=== การออกเสียง ===
* {{cs-IPA}}
=== คำนาม ===
{{cs-noun|m-an|f=demagožka}}
# [[นักกวนเมือง]], [[นักหลอกล่อทางการเมือง]]
# [[ผู้นำ]]ทางการเมือง
==== การผันรูป ====
{{cs-ndecl|m.an}}
==== คำเกี่ยวข้อง ====
* ดูที่ {{l|cs|démos}}
{{col|cs|demagogie|demagogický}}
=== อ่านเพิ่ม ===
* {{R:cs:PSJC}}
* {{R:cs:SSJC}}
* {{R:cs:IJP}}
== ภาษาเซอร์โบ-โครเอเชีย ==
=== การออกเสียง ===
* {{IPA|sh|/demǎɡoɡ/}}
* {{hyphenation|sh|de|ma|gog}}
=== คำนาม ===
{{sh-noun|demàgog|m-an}}
# [[นักกวนเมือง]], [[นักหลอกล่อทางการเมือง]]
==== การผันรูป ====
{{sh-decl-noun
|demagog|demagozi
|demagoga|demagoga
|demagogu|demagozima
|demagoga|demagoge
|demagože|demagozi
|demagogu|demagozima
|demagogom|demagozima
}}
== ภาษาเดนมาร์ก ==
=== รากศัพท์ ===
จาก{{der|da|grc|δημαγωγός}}
=== คำนาม ===
{{da-noun|en|er}}
# {{lb|da|derogatory}} [[นักกวนเมือง]], [[นักหลอกล่อทางการเมือง]]
#: {{syn|da|folkeforfører}}
==== การผันรูป ====
{{da-decl|en|er}}
==== ลูกคำ ====
* {{l|da|demagogisk}}
=== อ้างอิง ===
* {{R:DDO}}
== ภาษาโปแลนด์ ==
=== การออกเสียง ===
{{pl-pr|a=Pl-demagog.ogg}}
=== คำนาม ===
{{pl-noun|m-pr}}
# [[นักกวนเมือง]], [[นักหลอกล่อทางการเมือง]]
==== การผันรูป ====
{{pl-decl-noun-masc-pers|demago|g|[[demagogowie]]/[[demagodzy]]}}
=== อ่านเพิ่ม ===
* {{R:pl:WSJP}}
* {{R:pl:PWN}}
== ภาษาโรมาเนีย ==
=== รากศัพท์ ===
{{bor+|ro|fr|démagogue}}
=== คำนาม ===
{{ro-noun|m|demagogi|f=demagogă}}
# [[นักกวนเมือง]], [[นักหลอกล่อทางการเมือง]]
==== การผันรูป ====
{{ro-noun-m}}
== ภาษาสวีเดน ==
=== คำนาม ===
{{sv-noun|c}}
# [[นักกวนเมือง]], [[นักหลอกล่อทางการเมือง]]
==== การผันรูป ====
{{sv-infl-noun-c-er}}
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun}}
# {{lb|en|US}} {{alternative spelling of|en|demagogue}}
=== คำกริยา ===
{{en-verb}}
# {{lb|en|US}} {{alternative spelling of|en|demagogue}}
=== คำสลับอักษร ===
* {{anagrams|en|a=adeggmo|god game}}
== ภาษาอินโดนีเซีย ==
{{wp|id:}}
=== รากศัพท์ ===
จาก{{bor|id|nl|demagoog}}, จาก{{der|id|frm|-}} {{m|fr|démagogue}}, จาก{{der|id|grc|δημαγωγός|t=ผู้นำที่ได้รับความนิยม, ผู้นำฝูงชน}}, จาก{{compound|grc|δῆμος|t1=people|ἀγωγός|t2=guide|nocat=1}}.
=== การออกเสียง ===
* {{IPA|id|[deˈmaɡɔk̚]}}
* {{hyphenation|id|dé|ma|gog}}
=== คำนาม ===
{{id-noun|head=démagog}}
# {{lb|id|politics}} [[นักกวนเมือง]], [[นักหลอกล่อทางการเมือง]]
==== คำเกี่ยวข้อง ====
{{col|id
|demagogi
}}
=== อ่านเพิ่ม ===
* {{R:KBBI Daring}}
pz1bwehbb5f0oia4ru84mhv969x96bo
demagogs
0
2358089
5759047
2026-08-25T04:12:24Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5759047
wikitext
text/x-wiki
== ภาษากาตาลา ==
=== คำนาม ===
{{head|ca|รูปนาม}}
# {{plural of|ca|demagog}}
== ภาษาสวีเดน ==
=== คำนาม ===
{{head|sv|รูปนาม}}
# {{noun form of|sv|demagog||indef|gen|s}}
== ภาษาอังกฤษ ==
=== คำนาม ===
{{head|en|รูปนาม}}
# {{plural of|en|demagog}}
=== คำสลับอักษร ===
* {{anagrams|en|a=adeggmos|god games}}
o9vxf44d0d5o83ix3zg4wm56vvckzx7
demagoga
0
2358090
5759048
2026-08-25T04:12:33Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5759048
wikitext
text/x-wiki
== ภาษากาลิเซีย ==
=== คำคุณศัพท์ ===
{{head|gl|รูปคุณศัพท์}}
# {{feminine singular of|gl|demagogo}}
=== คำนาม ===
{{gl-noun|f}}
# {{female equivalent of|gl|demagogo}}
== ภาษาโปรตุเกส ==
=== การออกเสียง ===
{{pt-IPA|demagóga}}
* {{hyph|pt|de|ma|go|ga}}
=== คำนาม ===
{{pt-noun|f}}
# {{female equivalent of|pt|demagogo}}
== ภาษาสเปน ==
=== การออกเสียง ===
{{es-pr}}
=== คำนาม ===
{{es-noun|f}}
# {{female equivalent of|es|demagogo}}
=== คำคุณศัพท์ ===
{{head|es|รูปคุณศัพท์}}
# {{adj form of|es|demagogo||f|s}}
== ภาษาอิตาลี ==
=== การออกเสียง ===
{{it-pr|^ò}}
=== คำนาม ===
{{it-noun|f}}
# {{female equivalent of|it|demagogo}}
sc7gvy1o19v7xnzs7axe4bjnatg3exc
demagogas
0
2358091
5759049
2026-08-25T04:12:46Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5759049
wikitext
text/x-wiki
== ภาษากาลิเซีย ==
=== คำคุณศัพท์ ===
{{head|gl|รูปคุณศัพท์}}
# {{feminine plural of|gl|demagogo}}
=== คำนาม ===
{{head|gl|รูปนาม}}
# {{plural of|gl|demagoga}}
== ภาษาโปรตุเกส ==
=== คำนาม ===
{{head|pt|รูปนาม}}
# {{plural of|pt|demagoga}}
== ภาษาสเปน ==
=== การออกเสียง ===
{{es-pr}}
=== คำคุณศัพท์ ===
{{head|es|รูปคุณศัพท์|g=f-p}}
# {{adj form of|es|demagogo||f|p}}
=== คำนาม ===
{{head|es|รูปนาม|g=f-p}}
# {{plural of|es|demagoga}}
fp68qj9lkekmomgn4e9wedc3bgnaik2
demagoghe
0
2358092
5759050
2026-08-25T04:13:02Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759050
wikitext
text/x-wiki
== ภาษาอิตาลี ==
=== การออกเสียง ===
{{it-pr|^ò}}
=== คำนาม ===
{{head|it|รูปนาม|g=f}}
# {{plural of|it|demagoga}}
g19fq19msu7a4ymq9vqvyv7yqh82z14
demagogen
0
2358093
5759051
2026-08-25T04:13:15Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5759051
wikitext
text/x-wiki
== ภาษาดัตช์ ==
=== การออกเสียง ===
* {{audio|nl|Nl-demagogen.ogg}}
=== คำนาม ===
{{head|nl|รูปนาม}}
# {{plural of|nl|demagoog}}
== ภาษาสวีเดน ==
=== คำนาม ===
{{head|sv|รูปนาม}}
# {{noun form of|sv|demagog||def|s}}
3cwzl5cqpumyc6k51lc6zktgr8jmo2s
demagoger
0
2358094
5759052
2026-08-25T04:13:18Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759052
wikitext
text/x-wiki
== ภาษาสวีเดน ==
=== คำนาม ===
{{head|sv|รูปนาม}}
# {{noun form of|sv|demagog||indef|p}}
h16k08abp3cvcth0pxak2wf9lyl1652
demagogă
0
2358095
5759053
2026-08-25T04:13:48Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759053
wikitext
text/x-wiki
== ภาษาโรมาเนีย ==
=== คำนาม ===
{{ro-noun|f|demagoge}}
# {{female equivalent of|ro|demagog}}
==== การผันรูป ====
{{ro-noun-f-ă|demagog}}
p2z07bstxjab1fnq3vp9qrljo9ieeap
engouffrer
0
2358096
5759055
2026-08-25T04:49:08Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759055
wikitext
text/x-wiki
== ภาษาฝรั่งเศส ==
=== รากศัพท์ ===
จาก{{affix|fr|en-|gouffre|-er<id:verbal>}}
=== การออกเสียง ===
* {{fr-IPA|pos=v}}
* {{audio|fr|LL-Q150 (fra)-Lepticed7-engouffrer.wav|a=<<France>> (<<Toulouse>>)}}
* {{audio|fr|LL-Q150 (fra)-Jérémy-Günther-Heinz Jähnick-engouffrer.wav|a=<<France>> (<<Somain>>)}}
=== คำกริยา ===
{{fr-verb}}
# {{lb|fr|สกรรมกริยา}} [[กลืน]][[กิน]], [[ดูดกลืน]]
#* {{RQ:Verne Tour|chapter=30
|passage=Des pelletées de charbon et de bois furent '''engouffrées''' dans le foyer de sa chaudière, le feu se ranima, la pression monta de nouveau, et, vers deux heures après midi, la machine revenait en arrière vers la station de Kearney.
|translation=ถ่านหินและฟืนหลายพลั่วถูก'''กลืนหายเข้าไป'''ในเตาของหม้อไอน้ำ ไฟลุกโชนขึ้นมาอีกครั้ง ความดันเพิ่มขึ้นใหม่ และเมื่อเวลาประมาณบ่ายสองโมง เครื่องจักรก็แล่นถอยหลังกลับไปที่สถานีเคียร์นีย์}}
# {{lb|fr|สกรรมกริยา}} [[สวาปาม]], [[เขมือบ]]
# {{lb|fr|กริยาสะท้อน}} [[พุ่ง]]เข้าไป, [[ทะยาน]]เข้าไป, [[กรู]]กันเข้าไป
#: {{syn|fr|précipiter}}
#* {{RQ:Proust Temps|volume=2
|passage=Et tous les quatre qui trouvaient que le phénomène international du Palace, implanté à Balbec, y avait fait fleurir le luxe plus que la bonne cuisine, '''s'engouffraient''' dans une voiture, {{...|allaient dîner à une demi-lieue de là dans un petit restaurant réputé où ils avaient avec le cuisinier d'interminables conférences sur la composition du menu et la confection des plats.}}
|translation=และแล้วทั้งสี่คน ผู้ซึ่งพบว่าปรากฏการณ์ระดับนานาชาติของโรงแรมพาเลซที่ตั้งอยู่ในบาลเบ็กนั้น ได้ทำให้ที่นั่นเต็มไปด้วยความหรูหราฟู่ฟ่ามากกว่าอาหารรสเลิศ จึงพากัน'''กรูกันเข้าไป'''ในรถม้า {{...|และไปรับประทานอาหารเย็นที่อยู่ห่างออกไปครึ่งลีก ในร้านอาหารเล็ก ๆ ที่มีชื่อเสียงดีแห่งหนึ่ง ซึ่งพวกเขาได้ปรึกษาหารือกับพ่อครัวอย่างไม่รู้จักจบสิ้นเกี่ยวกับองค์ประกอบของเมนูและการปรุงอาหารแต่ละจาน}}}}
==== การผันรูป ====
{{fr-conj-auto}}
=== อ่านเพิ่ม ===
* {{R:fr:TLFi}}
e0huje1nnz44qylf4xidplin9c21syt
Saison
0
2358097
5759056
2026-08-25T04:50:08Z
Ponpan
693
สร้างหน้าด้วย "{{also|saison|saîson}} == ภาษาเยอรมัน == === รากศัพท์ === {{ety|de|:bor|fr:saison}} {{bor+|de|fr|saison}} === การออกเสียง === * {{IPA|de|/zɛˈzõː/}} * {{IPA|de|/zɛˈzɔŋ/}} * เยอรมนีตอนใต้และออสเตรีย: {{IPA|de|/sɛˈsoːn/}} * {{audio|de|De-Saison.ogg|a=<<Germany>> (<<Berlin>>)}} * {{audio|de|De-Saison2.ogg|a=<<Germany>> (<<Berlin>>)}}..."
5759056
wikitext
text/x-wiki
{{also|saison|saîson}}
== ภาษาเยอรมัน ==
=== รากศัพท์ ===
{{ety|de|:bor|fr:saison}}
{{bor+|de|fr|saison}}
=== การออกเสียง ===
* {{IPA|de|/zɛˈzõː/}}
* {{IPA|de|/zɛˈzɔŋ/}}
* เยอรมนีตอนใต้และออสเตรีย: {{IPA|de|/sɛˈsoːn/}}
* {{audio|de|De-Saison.ogg|a=<<Germany>> (<<Berlin>>)}}
* {{audio|de|De-Saison2.ogg|a=<<Germany>> (<<Berlin>>)}}
=== คำนาม ===
{{de-noun|f,s:en}}
# [[ฤดูกาล]], [[ฤดู]] {{gloss|ช่วงเวลาใดเวลาหนึ่งของปีที่เกิดเหตุการณ์เฉพาะอย่างขึ้น}}
#: {{syn|de|Jahreszeit}}
# {{lb|de|กีฬา}} [[ฤดูกาล]] {{gloss|ช่วงเวลาของปีที่ทีมต่าง ๆ แข่งขันกัน}}
==== การผันรูป ====
{{de-ndecl|f,s:en}}
==== ลูกคำ ====
{{col|de
|Hauptsaison
|Hochsaison
|Nebensaison
|Saisonkarte
|Vorsaison
}}
=== อ่านเพิ่ม ===
* {{R:de:DWDS}}
* {{R:de:UniLeipzig}}
* {{R:de:Duden}}
* {{pedia|lang=de}}
7qxgrq834mdr0exwmhwzv5ba0ggm05s
enjoinder
0
2358098
5759057
2026-08-25T04:50:26Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759057
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำนาม ===
{{en-noun}}
# [[คำร้องขอ]]หรือ[[ข้อเรียกร้อง]]จาก[[ผู้มีอำนาจ]]
==== คำพ้องความ ====
* {{l|en|imposition}}, {{l|en|injunction}}
87ho29is0tybstt5vspl2y8pe4gctwj
metsätalousministeri
0
2358099
5759058
2026-08-25T04:52:55Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759058
wikitext
text/x-wiki
== ภาษาฟินแลนด์ ==
=== รากศัพท์ ===
{{compound|fi|metsätalous|gloss1=การป่าไม้|ministeri|gloss2=รัฐมนตรี}}
=== การออกเสียง ===
{{fi-p|metsä-talous/ministeri}}
=== คำนาม ===
{{fi-noun}}
# [[รัฐมนตรี]]กระทรวง[[ป่าไม้]]
==== หมายเหตุการใช้ ====
ตำแหน่งนี้ไม่มีอีกต่อไปแล้วในฐานะตำแหน่งรัฐมนตรีอิสระในรัฐบาลฟินแลนด์ ตั้งแต่ปี 1968 ความรับผิดชอบของอดีต {{m|fi|maatalousministeri||รัฐมนตรีว่าการกระทรวงเกษตร}} และ {{m|fi||metsätalousministeri||รัฐมนตรีว่าการกระทรวงสาธารณสุข}} ได้ถูกรวมเข้าด้วยกันภายใต้ตำแหน่งรัฐมนตรีเดียวคือ {{m|fi|maa- ja metsätalousministeri||รัฐมนตรีว่าการกระทรวงเกษตรและสาธารณสุข}}
==== การผันรูป ====
{{fi-decl-paperi|metsätalousminister|ä}}
=== อ่านเพิ่ม ===
* {{R:fi:KTSK|accessdate=2023-07-03}}
c1eyqbfmwq08bjnwyq2w3z3v8sotrty
5759059
5759058
2026-08-25T04:53:14Z
Octahedron80
267
/* หมายเหตุการใช้ */
5759059
wikitext
text/x-wiki
== ภาษาฟินแลนด์ ==
=== รากศัพท์ ===
{{compound|fi|metsätalous|gloss1=การป่าไม้|ministeri|gloss2=รัฐมนตรี}}
=== การออกเสียง ===
{{fi-p|metsä-talous/ministeri}}
=== คำนาม ===
{{fi-noun}}
# [[รัฐมนตรี]]กระทรวง[[ป่าไม้]]
==== หมายเหตุการใช้ ====
ตำแหน่งนี้ไม่มีอีกต่อไปแล้วในฐานะตำแหน่งรัฐมนตรีอิสระในรัฐบาลฟินแลนด์ ตั้งแต่ปี 1968 ความรับผิดชอบของอดีต {{m|fi|maatalousministeri||รัฐมนตรีว่าการกระทรวงเกษตร}} และ {{m|fi|metsätalousministeri||รัฐมนตรีว่าการกระทรวงสาธารณสุข}} ได้ถูกรวมเข้าด้วยกันภายใต้ตำแหน่งรัฐมนตรีเดียวคือ {{m|fi|maa- ja metsätalousministeri||รัฐมนตรีว่าการกระทรวงเกษตรและสาธารณสุข}}
==== การผันรูป ====
{{fi-decl-paperi|metsätalousminister|ä}}
=== อ่านเพิ่ม ===
* {{R:fi:KTSK|accessdate=2023-07-03}}
d81wj48j1k6qmpthgg27xgb3pfi6bed
5759060
5759059
2026-08-25T04:53:54Z
Octahedron80
267
/* หมายเหตุการใช้ */
5759060
wikitext
text/x-wiki
== ภาษาฟินแลนด์ ==
=== รากศัพท์ ===
{{compound|fi|metsätalous|gloss1=การป่าไม้|ministeri|gloss2=รัฐมนตรี}}
=== การออกเสียง ===
{{fi-p|metsä-talous/ministeri}}
=== คำนาม ===
{{fi-noun}}
# [[รัฐมนตรี]]กระทรวง[[ป่าไม้]]
==== หมายเหตุการใช้ ====
ตำแหน่งนี้ไม่มีอีกต่อไปแล้วในฐานะตำแหน่งรัฐมนตรีอิสระในรัฐบาลฟินแลนด์ ตั้งแต่ปี 1968 ความรับผิดชอบของอดีต {{m|fi|maatalousministeri||รัฐมนตรีว่าการกระทรวงเกษตร}} และ {{m|fi|metsätalousministeri||รัฐมนตรีว่าการกระทรวงป่าไม้}} ได้ถูกรวมเข้าด้วยกันภายใต้ตำแหน่งรัฐมนตรีเดียวคือ {{m|fi|maa- ja metsätalousministeri||รัฐมนตรีว่าการกระทรวงเกษตรและป่าไม้}}
==== การผันรูป ====
{{fi-decl-paperi|metsätalousminister|ä}}
=== อ่านเพิ่ม ===
* {{R:fi:KTSK|accessdate=2023-07-03}}
rq0z4ay518t175qjfxkxve3kpd0c8ie
5759061
5759060
2026-08-25T04:54:09Z
Octahedron80
267
/* คำนาม */
5759061
wikitext
text/x-wiki
== ภาษาฟินแลนด์ ==
=== รากศัพท์ ===
{{compound|fi|metsätalous|gloss1=การป่าไม้|ministeri|gloss2=รัฐมนตรี}}
=== การออกเสียง ===
{{fi-p|metsä-talous/ministeri}}
=== คำนาม ===
{{fi-noun}}
# [[รัฐมนตรี]]ว่าการกระทรวง[[ป่าไม้]]
==== หมายเหตุการใช้ ====
ตำแหน่งนี้ไม่มีอีกต่อไปแล้วในฐานะตำแหน่งรัฐมนตรีอิสระในรัฐบาลฟินแลนด์ ตั้งแต่ปี 1968 ความรับผิดชอบของอดีต {{m|fi|maatalousministeri||รัฐมนตรีว่าการกระทรวงเกษตร}} และ {{m|fi|metsätalousministeri||รัฐมนตรีว่าการกระทรวงป่าไม้}} ได้ถูกรวมเข้าด้วยกันภายใต้ตำแหน่งรัฐมนตรีเดียวคือ {{m|fi|maa- ja metsätalousministeri||รัฐมนตรีว่าการกระทรวงเกษตรและป่าไม้}}
==== การผันรูป ====
{{fi-decl-paperi|metsätalousminister|ä}}
=== อ่านเพิ่ม ===
* {{R:fi:KTSK|accessdate=2023-07-03}}
cjaef829a5qyk4ucszt0pn8wzl3qomc
maatalousministeri
0
2358100
5759062
2026-08-25T04:55:13Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759062
wikitext
text/x-wiki
== ภาษาฟินแลนด์ ==
=== รากศัพท์ ===
{{affix|fi|maatalous|ministeri}}
=== การออกเสียง ===
{{fi-p|maa-talous/ministeri}}
=== คำนาม ===
{{fi-noun}}
# [[รัฐมนตรี]]ว่าการกระทรวง[[เกษตร]]
==== การผันรูป ====
{{fi-decl-paperi|maatalousminister|ä}}
=== อ่านเพิ่ม ===
* {{R:fi:KTSK|accessdate=2023-07-03}}
pgt2pbw6ke0eau9gytditutok2msw4z
maa- ja metsätalousministeri
0
2358101
5759063
2026-08-25T04:56:26Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759063
wikitext
text/x-wiki
== ภาษาฟินแลนด์ ==
{{wp|fi:+ö}}
=== รากศัพท์ ===
{{compound|fi|maatalous|gloss1=เกษตรกรรม|metsätalous|gloss2=การป่าไม้|ministeri|gloss3=รัฐมนตรี}}
=== คำนาม ===
{{fi-noun|head=[[maatalous|maa]]- [[ja]] [[metsätalous]][[ministeri]]}}
# [[รัฐมนตรี]]ว่าการกระทรวง[[เกษตร]]และ[[ป่าไม้]] (ของฟินแลนด์)
==== การผันรูป ====
{{fi-decl-paperi|maa- ja metsätalousminister|ä}}
==== คำเกี่ยวข้อง ====
* {{l|fi|maa- ja metsätalousministeriö}}
8vijbdtba3by54ml907j0jg1f28ctjm
ministeri
0
2358102
5759064
2026-08-25T05:00:06Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5759064
wikitext
text/x-wiki
== ภาษากรีนแลนด์ ==
=== รากศัพท์ ===
จาก{{bor|kl|da|minister}}
=== คำนาม ===
{{kl-noun|ministerit}}
# [[รัฐมนตรี]]
==== คำเกี่ยวข้อง ====
{{col|kl|ministeriuneq<t:นายกรัฐมนตรี>}}
=== อ้างอิง ===
* {{R:DAKA}}
* {{R:Katersat|14587}}
== ภาษากาตาลา ==
=== รากศัพท์ ===
{{ety|ca|:bor|la:ministerium}}
{{bor+|ca|la|ministerium}}
=== การออกเสียง ===
* {{ca-IPA|è}}
* {{audio|ca|LL-Q7026 (cat)-Marvives-ministeri.wav|a=Barcelona}}
=== คำนาม ===
{{ca-noun|m}}
# [[กระทรวง]]
==== คำเกี่ยวข้อง ====
* {{l|ca|ministerial}}
* {{l|ca|ministre}}
=== อ่านเพิ่ม ===
* {{R:ca:IEC2}}
* {{R:ca:GDLC}}
* {{R:ca:DNV}}
* {{R:ca:DCVB}}
== ภาษาซิซิลี ==
=== คำนาม ===
{{head|scn|รูปนาม}}
# {{plural of|scn|ministeru}}
== ภาษาฟินแลนด์ ==
=== รากศัพท์ ===
จาก{{bor|fi|sv|minister}}, จาก{{der|fi|la|minister}}
=== การออกเสียง ===
{{fi-pronunciation}}
=== คำนาม ===
{{fi-noun}}
# [[รัฐมนตรี]] {{gloss|สมาชิกของ[[คณะรัฐมนตรี]]}}
# {{n-g|[[ตำแหน่ง]][[กิตติมศักดิ์]]ลำดับที่สองที่มอบโดย{{w|ประธานาธิบดีฟินแลนด์}}}}
==== การผันรูป ====
{{fi-decl-paperi|minister|ä}}
==== ลูกคำ ====
{{col|fi
|ministerillinen
|ministeristö
|ministeriys
|ministeriö
}}
{{col|fi|title=compounds
|alueministeri
|ammattiministeri
|ammattiministeristö
|apulaisministeri
|asuntoministeri
|elinkeinoministeri
|eurooppaministeri
|finanssiministeri
|hallintoministeri
|kansliaministeri
|kauppaministeri
|kehitysministeri
|kehitysyhteistyöministeri
|kulttuuriministeri
|kuntaministeri
|liikenneministeri
|maa- ja metsätalousministeri
|maatalousministeri
|metsätalousministeri
|ministerikausi
|ministerikierros
|ministerikokous
|ministerilista
|ministerineuvos
|ministerineuvosto
|ministerinleike
|ministerinpaikka
|ministerinsalkku
|ministerinvaihdos
|ministerinvirka
|ministeriryhmä
|ministerivaliokunta
|ministerivaltiosihteeri
|ministerivastuu
|ministerivierailu
|naisministeri
|oikeusministeri
|opetusministeri
|perheministeri
|peruspalveluministeri
|puolustusministeri
|pääministeri
|rahaministeri
|sisäasiainministeri
|sisäministeri
|sosiaaliministeri
|sotaministeri
|teollisuusministeri
|terveysministeri
|työministeri
|työvoimaministeri
|ulkoasiainministeri
|ulkomaankauppaministeri
|ulkoministeri
|urheiluministeri
|valtioministeri
|valtiovarainministeri
|vastuuministeri
|veroministeri
|viestintäministeri
|ympäristöministeri
}}
=== อ่านเพิ่ม ===
* {{R:fi:KTSK|accessdate=2023-07-03}}
=== คำสลับอักษร ===
* {{anagrams|fi|a=eiiimnrst|siirtimen}}
{{C|fi|Titles}}
== ภาษาอิตาลี ==
=== คำนาม ===
{{head|it|รูปนาม|g=m}}
# {{plural of|it|ministero}}
=== คำสลับอักษร ===
* {{anagrams|it|a=eiiimnrst|intermisi}}
d2zh4lf32wvr5zs3do8hc4aqfdn0pq4
ministeris
0
2358103
5759065
2026-08-25T05:00:24Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759065
wikitext
text/x-wiki
== ภาษากาตาลา ==
=== คำนาม ===
{{head|ca|รูปนาม}}
# {{plural of|ca|ministeri}}
ldy3htst7gy7ng4u4h7xo5x6pdrn544
ministero
0
2358104
5759066
2026-08-25T05:00:48Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759066
wikitext
text/x-wiki
== ภาษาอิตาลี ==
=== รากศัพท์ ===
จาก{{uder|it|la|ministerium}}
=== การออกเสียง ===
{{it-pr|ministèro}}
* {{audio|it|LL-Q652 (ita)-LangPao-ministero.wav}}
=== คำนาม ===
{{it-noun|m}}
# [[กระทรวง]]
==== ลูกคำ ====
* {{l|it|pubblico ministero}}
==== คำเกี่ยวข้อง ====
* {{l|it|ministeriale}}
* {{l|it|ministro}}
=== คำสลับอักษร ===
* {{anagrams|it|a=eiimnorst|intromise|rimestino|sterminio}}
h6mja3q079t7oqesm2kyzgvymqt81tc
ministres
0
2358105
5759068
2026-08-25T05:08:00Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5759068
wikitext
text/x-wiki
== ภาษากาตาลา ==
=== คำนาม ===
{{head|ca|รูปนาม}}
# {{plural of|ca|ministre}}
# {{plural of|ca|ministra}}
== ภาษาโปรตุเกส ==
=== คำกริยา ===
{{head|pt|รูปกริยา}}
# {{pt-verb form of|ministrar}}
== ภาษาฝรั่งเศส ==
=== คำนาม ===
{{head|fr|รูปนาม|g=p}}
# {{plural of|fr|ministre}}
== ภาษาละติน ==
=== คำกริยา ===
{{head|la|รูปกริยา|head=ministrēs}}
# {{inflection of|la|ministrō||2|s|pres|actv|subj}}
== ภาษาลัตเวีย ==
=== คำนาม ===
{{head|lv|รูปนาม|g=f}}
# {{inflection of|lv|ministre||gen|s|;|nom//voc//acc|p}}
== ภาษาสเปน ==
=== คำกริยา ===
{{head|es|รูปกริยา}}
# {{es-verb form of|ministrar}}
== ภาษาอังกฤษ ==
=== คำนาม ===
{{head|en|รูปนาม}}
# {{plural of|en|ministre}}
=== คำกริยา ===
{{head|en|รูปกริยา}}
# {{inflection of|en|ministre||s-verb-form}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eiimnrsst|ministers|misinsert}}
== ภาษาอังกฤษกลาง ==
=== คำนาม ===
{{head|enm|รูปนาม}}
# {{plural of|enm|ministre}}
== ภาษาอุตซิตา ==
=== คำนาม ===
{{head|oc|รูปนาม}}
# {{plural of|oc|ministre}}
hy3aptnivogmv32v6kfn6qp58st993e
ministers
0
2358106
5759069
2026-08-25T05:08:19Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5759069
wikitext
text/x-wiki
== ภาษาดัตช์ ==
=== การออกเสียง ===
* {{IPA|nl|/miˈnɪstərs/}}
* {{audio|nl|Nl-ministers.ogg}}
* {{hyphenation|nl|mi|nis|ters}}
=== คำนาม ===
{{head|nl|รูปนาม}}
# {{plural of|nl|minister}}
== ภาษาฟรีเชียตะวันตก ==
=== คำนาม ===
{{head|fy|รูปนาม}}
# {{plural of|fy|minister}}
== ภาษาสวีเดน ==
=== คำนาม ===
{{head|sv|รูปนาม}}
# {{noun form of|sv|minister||indef|gen|s}}
== ภาษาอังกฤษ ==
=== การออกเสียง ===
* {{IPA|en|/ˈmɪnəstɚz/|/ˈmɪnɪstɚz/|a=GA,CA}}
=== คำนาม ===
{{head|en|รูปนาม}}
# {{plural of|en|minister}}
=== คำกริยา ===
{{head|en|รูปกริยา}}
# {{inflection of|en|minister||s-verb-form}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eiimnrsst|ministres|misinsert}}
0e3dyur69ulway8r9tnx4sxxsnn13hf
ministere
0
2358107
5759070
2026-08-25T05:09:06Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5759070
wikitext
text/x-wiki
== ภาษานอร์เวย์แบบบุ๊กมอล ==
=== รูปแบบอื่น ===
* {{alt|nb|ministre|ministrer}}
=== คำนาม ===
{{head|nb|รูปนาม|g=m}}
# {{inflection of|nb|minister||indefinite|p}}
== ภาษาอังกฤษกลาง ==
=== คำกริยา ===
{{head|enm|คำกริยา|altform=1}}
# {{alternative form of|enm|mynystren}}
4ezzugurvwhgvl7qkxay0r4uhgn9ex7
ministrer
0
2358108
5759071
2026-08-25T05:09:11Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5759071
wikitext
text/x-wiki
== ภาษานอร์เวย์แบบบุ๊กมอล ==
=== รูปแบบอื่น ===
* {{alt|nb|ministere|ministre}}
=== คำนาม ===
{{head|nb|รูปนาม|g=m}}
# {{inflection of|nb|minister||indefinite|p}}
== ภาษาละติน ==
=== คำกริยา ===
{{head|la|รูปกริยา}}
# {{inflection of|la|ministrō||1|s|pres|pasv|subj}}
5eez5ckg40bqrd4m1bcikjwpk7travc
ministir
0
2358109
5759074
2026-08-25T05:11:43Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759074
wikitext
text/x-wiki
== ภาษาอังกฤษกลาง ==
=== คำนาม ===
{{head|enm|คำนาม|altform=1}}
# {{alternative form of|enm|ministre}}
f6rh55cx51rnku4z7xmzyon6vjy8d45
minyster
0
2358110
5759075
2026-08-25T05:11:54Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5759075
wikitext
text/x-wiki
== ภาษาคาชุบ ==
=== การออกเสียง ===
{{csb-pr}}
=== คำนาม ===
{{csb-noun|m-pr|adj=minystersczi}}
# {{alternative form of|csb|minister}}
==== การผันรูป ====
{{csb-decl-noun|minyster|minystra|minystrowi|minystra|minystrã|minystrze|minyster/minystrze|minystrowie|minystrów|minystróm|minystrów|minystrama|minystrach|minystrowie}}
==== ลูกคำ ====
{{col|csb|title=noun|minysterstwò}}
=== อ่านเพิ่ม ===
* {{R:csb:SPK|minister}}
* {{R:csb:ISKJ|+|3551}}
== ภาษาอังกฤษกลาง ==
=== คำนาม ===
{{head|enm|คำนาม|altform=1}}
# {{alternative form of|enm|ministre}}
bz3ix0a9hw88tr2nckjy272ttivk0mp
mynestre
0
2358111
5759076
2026-08-25T05:11:59Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759076
wikitext
text/x-wiki
== ภาษาอังกฤษกลาง ==
=== คำนาม ===
{{head|enm|คำนาม|altform=1}}
# {{alternative form of|enm|ministre}}
f6rh55cx51rnku4z7xmzyon6vjy8d45
mynyster
0
2358112
5759077
2026-08-25T05:12:12Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759077
wikitext
text/x-wiki
== ภาษาอังกฤษกลาง ==
=== คำนาม ===
{{head|enm|คำนาม|altform=1}}
# {{alternative form of|enm|ministre}}
f6rh55cx51rnku4z7xmzyon6vjy8d45
mynystir
0
2358113
5759078
2026-08-25T05:12:16Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759078
wikitext
text/x-wiki
== ภาษาอังกฤษกลาง ==
=== รากศัพท์ 1 ===
==== คำนาม ====
{{head|enm|คำนาม|altform=1}}
# {{alternative form of|enm|ministre}}
=== รากศัพท์ 2 ===
==== คำกริยา ====
{{head|enm|คำกริยา|altform=1}}
# {{alternative form of|enm|mynystren}}
n5en0kqdrluqgwn5wmip8bmc39u236d
mynystre
0
2358114
5759079
2026-08-25T05:12:20Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759079
wikitext
text/x-wiki
== ภาษาอังกฤษกลาง ==
=== รากศัพท์ 1 ===
==== คำนาม ====
{{head|enm|คำนาม|altform=1}}
# {{alternative form of|enm|ministre}}
=== รากศัพท์ 2 ===
==== คำกริยา ====
{{head|enm|คำกริยา|altform=1}}
# {{alternative form of|enm|mynystren}}
n5en0kqdrluqgwn5wmip8bmc39u236d
ministring
0
2358115
5759080
2026-08-25T05:12:52Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759080
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ 1 ===
จาก{{prefix|en|mini|string}}
==== คำนาม ====
{{en-noun}}
# [[สาย]], [[เส้น]] หรือ[[เชือก]]ขนาดเล็ก
# [[มินิสตริง]]; [[เวกเตอร์]][[ดีเอ็นเอ]]แบบ[[วงปิด]][[โควาเลนต์]][[เชิงเส้น]]ขนาดสั้น
#* {{quote-journal|en|date=November 13, 2015|author=|title=Physical Characterization of Gemini Surfactant-Based Synthetic Vectors for the Delivery of Linear Covalently Closed (LCC) DNA Ministrings|journal=PLOS ONE|url=http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0142875|doi=10.1371/journal.pone.0142875|volume=|issue=|pages=
|passage=One hour prior to transfection, the culture medium was replaced with serum-free RPMI medium. 0.4 μg of DNA (pNN9 or DNA '''ministring'''), diluted in 50 μl of serum-free OptiMEM culture medium, was mixed with different aliquots of 1.5 mM 16-3-16 gemini surfactant solution to yield N + /P − charge ratios of 3:1 and 5:1.|translation=หนึ่งชั่วโมงก่อนการนำส่งดีเอ็นเอเข้าสู่เซลล์ อาหารเลี้ยงเชื้อถูกเปลี่ยนเป็นอาหาร RPMI ที่ปราศจากซีรัม จากนั้นนำดีเอ็นเอปริมาณ 0.4 ไมโครกรัม (pNN9 หรือดีเอ็นเอ'''มินิสตริง''') ที่เจือจางในอาหารเลี้ยงเชื้อ OptiMEM ที่ปราศจากซีรัมปริมาณ 50 ไมโครลิตร มาผสมกับสารละลายสารลดแรงตึงผิวเจมินี 16-3-16 ความเข้มข้น 1.5 มิลลิโมลาร์ ในปริมาณที่แบ่งไว้ต่าง ๆ กัน เพื่อให้ได้อัตราส่วนประจุ N+ / P− ที่ 3:1 และ 5:1}}
=== รากศัพท์ 2 ===
==== คำกริยา ====
{{head|en|รูปกริยา}}
# {{inflection of|en|ministre||ing-form}}
== ภาษาอังกฤษกลาง ==
=== คำนาม ===
{{head|enm|คำนาม|altform=1}}
# {{alternative form of|enm|mynystrynge}}
j9tj0d2ku0aqddcolp2vt2hr8htnjw0
ministrings
0
2358116
5759081
2026-08-25T05:13:45Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759081
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำนาม ===
{{head|en|รูปนาม}}
# {{plural of|en|ministring}}
#* {{quote-journal|en|date=November 13, 2015|author=|title=Physical Characterization of Gemini Surfactant-Based Synthetic Vectors for the Delivery of Linear Covalently Closed (LCC) DNA Ministrings|journal=PLOS ONE|url=http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0142875|doi=10.1371/journal.pone.0142875|volume=|issue=|pages=|passage=Due to topological differences from conventional c ircular c ovalently c losed (CCC) plasmid DNA vectors, the linear topology of LCC DNA '''ministrings''' may present differences with regards to DNA interaction and the physicochemical properties influencing DNA-surfactant interactions in the formulation of lipoplexed particles.|translation=เนื่องจากความแตกต่างทางทอพอโลยีจากเวกเตอร์พลาสมิดดีเอ็นเอแบบวงปิดโควาเลนต์ (CCC) ทั่วไป ทอพอโลยีเชิงเส้นของดีเอ็นเอ'''มินิสตริง'''แบบ LCC อาจแสดงให้เห็นความแตกต่างในแง่ของอันตรกิริยาของดีเอ็นเอและคุณสมบัติทางฟิสิกส์เคมีที่มีอิทธิพลต่ออันตรกิริยาระหว่างดีเอ็นเอกับสารลดแรงตึงผิวในการเตรียมอนุภาคไลโปเพล็กซ์}}
lqap3c694djql6uewqxmqo9v6lcn2bm
ministered
0
2358117
5759084
2026-08-25T05:25:30Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759084
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== การออกเสียง ===
* {{IPA|en|/ˈmɪnɪstɚd/|/ˈmɪnəstɚd/|a=US,CA}}
* {{rhymes|en|ɪnɪstə(ɹ)d|s=3}}
=== คำกริยา ===
{{head|en|รูปกริยา}}
# {{inflection of|en|minister||ed-form}}
=== คำสลับอักษร ===
* {{anagrams|en|a=deeiimnrst|terminised}}
hjln2kry1qlf9mquwttgoz1tyrps1vb
ministering
0
2358118
5759085
2026-08-25T05:27:04Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759085
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำกริยา ===
{{head|en|รูปกริยา}}
# {{inflection of|en|minister||ing-form}}
=== คำคุณศัพท์ ===
{{en-adj|-}}
# เกี่ยวกับผู้ที่หรือสิ่งที่ให้[[การดูแล]][[ช่วยเหลือ]] หรือ[[บริหาร]][[จัดการ]]
#* {{RQ:Landon Francesca Carrara|page=126|volume=II|text=Hitherto all that I had acquired had been unsatisfactory—the reward was too distant; but Carrara's mystic eloquence brought the result of our midnight vigils visibly before me; and when I left him, it was to dream of the glorious secrets which, once penetrated, would lay all nature open to our eyes, and leave all its '''ministering''' spirits bowed to our rule by spell and sign.|translation=จนถึงบัดนี้ สิ่งที่ข้าได้รับมาทั้งหมดนั้นยังไม่น่าพึงพอใจนัก—รางวัลนั้นอยู่ห่างไกลเกินไป; แต่วาทศิลป์อันลี้ลับของคาร์รารานั้นได้นำผลลัพธ์ของการเฝ้าระวังยามเที่ยงคืนของเรามาปรากฏชัดต่อหน้าข้า; และเมื่อข้าจากเขามา มันก็คือการเฝ้าฝันถึงความลับอันรุ่งโรจน์ซึ่งหากเจาะทะลวงเข้าไปได้แล้ว ก็จะเปิดเผยธรรมชาติทั้งหมดต่อสายตาของเรา และทำให้วิญญาณ'''ผู้คอยรับใช้'''ทั้งหมดของมันต้องยอมจำนนต่อกฎเกณฑ์ของเราด้วยเวทมนตร์และสัญลักษณ์}}
==== ลูกคำ ====
{{col|en|ministering angel}}
=== คำนาม ===
{{en-noun}}
# [[การกระทำ]]ของผู้ที่ดูแลช่วยเหลือหรือรับใช้; [[การปรนนิบัติ]], [[การดูแล]]ช่วยเหลือ
#* {{quote-text|en|year=1896|author=Andrew Lang|title=A Monk of Fife
|passage=I could not be in your daughter's company, and have the grace of her gentle '''ministerings'''.|translation=ข้าพเจ้าไม่สามารถอยู่เป็นเพื่อนลูกสาวของท่าน และได้รับความกรุณาจาก'''การดูแลเอาใจใส่'''อย่างอ่อนโยนของเธอได้}}
=== คำสลับอักษร ===
* {{anagrams|en|a=egiiimnnrst|terminising}}
{{cln|en|คำกริยานาม}}
3yoxwbbmur3fbttww60139gduuyvh6q
獸穴
0
2358119
5759091
2026-08-25T05:37:25Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759091
wikitext
text/x-wiki
== ภาษาจีน ==
{{zh-forms|s=兽穴}}
=== การออกเสียง ===
{{zh-pron
|m=shòu穴
|cat=n
}}
=== คำนาม ===
{{head|zh|คำนาม}}
# [[รัง]]; [[ถ้ำ]]
opwsigovndojohexy5sh63jj2kq5v8w
looser
0
2358120
5759093
2026-08-25T05:41:35Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759093
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== รากศัพท์ 1 ===
==== การออกเสียง ====
* {{IPA|en|/ˈluːsə/|a=RP}}
* {{IPA|en|/ˈlusɚ/|a=GenAm}}
==== คำคุณศัพท์ ====
{{head|en|คำคุณศัพท์ขั้นกว่า}}
# {{en-comparative of|loose}}
#: {{ux|en|Her new T-shirt was just a little bit '''looser''' than the old one.|translation=เสื้อยืดตัวใหม่ของเธอหลวมกว่าตัวเก่าอยู่เล็กน้อย}}
#: {{ux|en|The law is too strict; it should be made '''looser'''.|translation=กฎหมายเข้มงวดเกินไป ควรทำให้ผ่อนปรนมากกว่านี้}}
=== รากศัพท์ 2 ===
{{ety|en|:af|loose|-er<id:agent noun>|text=+|tree=1}}
==== การออกเสียง ====
* {{IPA|en|/ˈluːsə/|a=RP}}
* {{IPA|en|/ˈlusɚ/|a=GenAm}}
==== คำนาม ====
{{en-noun}}
# ผู้ที่[[แก้]], ผู้ที่ปล่อยให้[[หลุด]] หรือผู้ที่[[ปลดปล่อย]]ให้เป็นอิสระ
#* {{quote-text|en|year=1844|author=John Wesley|title=The Magazine of the Wesleyan Methodist Church
|passage=Therefore we cannot but infer that they did not understand the promise of their Lord as uttered in a sense at variance with the established forms of language, as conveying the doctrine which the clerical binders and '''loosers''' of later ages teach.|translation=ดังนั้นเราจึงอดไม่ได้ที่จะอนุมานว่าพวกเขาไม่ได้เข้าใจคำสัญญาขององค์พระผู้เป็นเจ้าในความหมายที่ขัดแย้งกับรูปแบบทางภาษาที่กำหนดไว้ ว่าเป็นการสื่อถึงหลักคำสอนที่กลุ่มนักบวชผู้ผูกมัดและ'''ผู้ปลดปล่อย'''แห่งยุคหลัง ๆ สอนกัน}}
#* {{quote-text|en|year=1884|author=Stephen Bleecker Luce; Aaron Ward|title=Text-book of Seamanship
|passage='''Loosers''' of topsails and courses, and men stationed at boom tricing-lines, {{...}}|translation='''ผู้ปลดเชือก'''ใบเรือท็อปซอลและใบเรือหลัก และเหล่าพลประจำสถานีที่เชือกดึงบูม {{...}}}}
=== รากศัพท์ 3 ===
==== คำนาม ====
{{head|en|รูปสะกดผิด}}
# {{misspelling of|en|loser}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eloors|roleos|sooler}}
== ภาษาฝรั่งเศส ==
=== การออกเสียง ===
* {{audio|fr|LL-Q150 (fra)-Jérémy-Günther-Heinz Jähnick-looser.wav|a=<<France>> (<<Somain>>)}}
=== คำนาม ===
{{fr-noun|m}}
# {{alternative form of|fr|loser}}
ahbuwpl6tuobnysq61gmwaxjhqvudqa
5759094
5759093
2026-08-25T05:41:51Z
Octahedron80
267
เรียงลำดับหัวเรื่องภาษา
5759094
wikitext
text/x-wiki
== ภาษาฝรั่งเศส ==
=== การออกเสียง ===
* {{audio|fr|LL-Q150 (fra)-Jérémy-Günther-Heinz Jähnick-looser.wav|a=<<France>> (<<Somain>>)}}
=== คำนาม ===
{{fr-noun|m}}
# {{alternative form of|fr|loser}}
== ภาษาอังกฤษ ==
=== รากศัพท์ 1 ===
==== การออกเสียง ====
* {{IPA|en|/ˈluːsə/|a=RP}}
* {{IPA|en|/ˈlusɚ/|a=GenAm}}
==== คำคุณศัพท์ ====
{{head|en|คำคุณศัพท์ขั้นกว่า}}
# {{en-comparative of|loose}}
#: {{ux|en|Her new T-shirt was just a little bit '''looser''' than the old one.|translation=เสื้อยืดตัวใหม่ของเธอหลวมกว่าตัวเก่าอยู่เล็กน้อย}}
#: {{ux|en|The law is too strict; it should be made '''looser'''.|translation=กฎหมายเข้มงวดเกินไป ควรทำให้ผ่อนปรนมากกว่านี้}}
=== รากศัพท์ 2 ===
{{ety|en|:af|loose|-er<id:agent noun>|text=+|tree=1}}
==== การออกเสียง ====
* {{IPA|en|/ˈluːsə/|a=RP}}
* {{IPA|en|/ˈlusɚ/|a=GenAm}}
==== คำนาม ====
{{en-noun}}
# ผู้ที่[[แก้]], ผู้ที่ปล่อยให้[[หลุด]] หรือผู้ที่[[ปลดปล่อย]]ให้เป็นอิสระ
#* {{quote-text|en|year=1844|author=John Wesley|title=The Magazine of the Wesleyan Methodist Church
|passage=Therefore we cannot but infer that they did not understand the promise of their Lord as uttered in a sense at variance with the established forms of language, as conveying the doctrine which the clerical binders and '''loosers''' of later ages teach.|translation=ดังนั้นเราจึงอดไม่ได้ที่จะอนุมานว่าพวกเขาไม่ได้เข้าใจคำสัญญาขององค์พระผู้เป็นเจ้าในความหมายที่ขัดแย้งกับรูปแบบทางภาษาที่กำหนดไว้ ว่าเป็นการสื่อถึงหลักคำสอนที่กลุ่มนักบวชผู้ผูกมัดและ'''ผู้ปลดปล่อย'''แห่งยุคหลัง ๆ สอนกัน}}
#* {{quote-text|en|year=1884|author=Stephen Bleecker Luce; Aaron Ward|title=Text-book of Seamanship
|passage='''Loosers''' of topsails and courses, and men stationed at boom tricing-lines, {{...}}|translation='''ผู้ปลดเชือก'''ใบเรือท็อปซอลและใบเรือหลัก และเหล่าพลประจำสถานีที่เชือกดึงบูม {{...}}}}
=== รากศัพท์ 3 ===
==== คำนาม ====
{{head|en|รูปสะกดผิด}}
# {{misspelling of|en|loser}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eloors|roleos|sooler}}
sk1yyo63312ruei3w1f6cxm90xfmbwx
roleos
0
2358121
5759095
2026-08-25T05:42:10Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5759095
wikitext
text/x-wiki
== ภาษาสเปน ==
=== คำนาม ===
{{head|es|รูปนาม|g=m-p}}
# {{plural of|es|roleo}}
== ภาษาอังกฤษ ==
=== คำนาม ===
{{head|en|รูปนาม}}
# {{plural of|en|roleo}}
=== คำสลับอักษร ===
* {{anagrams|en|a=eloors|looser|sooler}}
mliltbhcglihohl5z7xpknnm67bff6v
piirakka
0
2358122
5759098
2026-08-25T06:32:36Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5759098
wikitext
text/x-wiki
== ภาษาฟินแลนด์ ==
{{wp|fi:}}
[[ไฟล์:FoodApplePie.jpg|thumb|{{m|fi|omenapiirakka|Omenapiirakka|apple pie}}]]
=== รากศัพท์ ===
{{suffix|fi|piiras|t1=pie|alt1=piira-|kka}}
=== การออกเสียง ===
{{fi-pronunciation}}
=== คำนาม ===
{{fi-noun}}
# [[พาย]] {{gloss|ประเภทของขนมอบซึ่งประกอบด้วยเปลือกแป้งด้านนอกและไส้}}
#: {{syn|fi|piiras}}
# พาย {{gloss|อาหารที่ไม่ใช่ขนมอบที่มีลักษณะคล้ายพาย}}
#: {{syn|fi|piiras}}
# [[ปีรอก]] (pirog) {{gloss|พายสไตล์รัสเซีย}}
#: {{syn|fi|piiras}}
# [[ปิโรจกี]] (pirozhki) {{gloss|ขนมอบชิ้นเล็กสอดไส้เนื้อสับละเอียด ผัก หรือผลไม้ นำไปอบหรือทอด จากอาหารยุโรปตะวันออก}}
#: {{syn|fi|keitinpiirakka|piiras}}
# [[แพสตี]] (pasty) {{gloss|ใช้เรียกพายเนื้อและผักปรุงรสบางประเภท; แคบกว่าคำในภาษาอังกฤษ}}
#: {{par|fi|pasteija}}
# {{lb|fi|ภาษาปาก}} [[แผนภูมิวงกลม]]
#: {{syn|fi|piirakkakaavio}}
# {{lb|fi|ภาษาปาก|หยาบคาย}} [[อวัยวะเพศหญิง]]
#: {{syn|fi|pipari|ripsipiirakka}}
==== การผันรูป ====
{{fi-decl-solakka|piira|kk|k|a}}
==== คำจ่ากลุ่ม ====
* {{l|fi|leivonnainen}}
==== คำลูกกลุ่ม ====
{{col4|fi
|empanada
|kakkara
|kalitta
|keitinpiiras
|kokkonen
|kukkonen
|lörtsy
|parsipiiras
|perunakakkara
|pyörö
|pyörönen
|rönttönen
|sipanniekka
|sultsina
|tapuntainen
|tsupukka
|umpikukkonen
|vatruska
}}
==== ลูกคำ ====
{{col|fi|title=compounds
|atomipiirakka
|avopiirakka
|hakkoopiirakka
|kaalipiirakka
|kalapiirakka
|karjalanpiirakka
|kasvispiirakka
|keitinpiirakka
|kirsikkapiirakka
|kukkopiirakka
|kurpitsapiirakka
|lanttupiirakka
|lihapiirakka
|lohipiirakka
|mansikkapiirakka
|marjapiirakka
|mustikkapiirakka
|omenapiirakka
|pannupiirakka
|perunapiirakka
|piirakkadiagrammi
|piirakkakaavio
|piirakkakaulin
|piirakkalasta
|piirakkapulikka
|piirakkataikina
|piirakkavuoka
|rahkapiirakka
|raparperipiirakka
|riisipiirakka
|ripsipiirakka
|rusupiirakka
|sienipiirakka
|sipulipiirakka
|sulhaspiirakka
|umpipiirakka
|uunipiirakka
|vadelmapiirakka
|vetypiirakka
}}
=== อ่านเพิ่ม ===
* {{R:fi:KTSK|accessdate=2023-07-03}}
{{C|fi|Cakes and pastries|Genitalia}}
== ภาษาอิงเกรีย ==
[[ไฟล์:Яблочный пирог crop.jpg|thumb|Piirakka.]]
=== รากศัพท์ ===
{{bor+|izh|ru|пирог}}; ร่วมเชื้อสายกับ{{cog|fi|piirakka}} และ{{cog|krl|piirakka}}
=== การออกเสียง ===
* {{izh-p}}
=== คำนาม ===
{{head|izh|คำนาม}}
# [[พาย]]
==== การผันรูป ====
{{izh-decl/kana|kk|k}}
==== คำพ้องความ ====
* {{l|izh|piiras}}
==== ลูกคำ ====
{{col4|izh
|lihapiirakka|lanttupiirakka|kalapiirakka}}
=== อ้างอิง ===
* {{R:izh:Nirvi:1971|page=414}}
{{C|izh|Cakes and pastries}}
eekdk0fyi193r59o0yvjrkjbsbsrv85
5759099
5759098
2026-08-25T06:32:54Z
Octahedron80
267
/* รากศัพท์ */
5759099
wikitext
text/x-wiki
== ภาษาฟินแลนด์ ==
{{wp|fi:}}
[[ไฟล์:FoodApplePie.jpg|thumb|{{m|fi|omenapiirakka|Omenapiirakka|apple pie}}]]
=== รากศัพท์ ===
{{suffix|fi|piiras|t1=พาย|alt1=piira-|kka}}
=== การออกเสียง ===
{{fi-pronunciation}}
=== คำนาม ===
{{fi-noun}}
# [[พาย]] {{gloss|ประเภทของขนมอบซึ่งประกอบด้วยเปลือกแป้งด้านนอกและไส้}}
#: {{syn|fi|piiras}}
# พาย {{gloss|อาหารที่ไม่ใช่ขนมอบที่มีลักษณะคล้ายพาย}}
#: {{syn|fi|piiras}}
# [[ปีรอก]] (pirog) {{gloss|พายสไตล์รัสเซีย}}
#: {{syn|fi|piiras}}
# [[ปิโรจกี]] (pirozhki) {{gloss|ขนมอบชิ้นเล็กสอดไส้เนื้อสับละเอียด ผัก หรือผลไม้ นำไปอบหรือทอด จากอาหารยุโรปตะวันออก}}
#: {{syn|fi|keitinpiirakka|piiras}}
# [[แพสตี]] (pasty) {{gloss|ใช้เรียกพายเนื้อและผักปรุงรสบางประเภท; แคบกว่าคำในภาษาอังกฤษ}}
#: {{par|fi|pasteija}}
# {{lb|fi|ภาษาปาก}} [[แผนภูมิวงกลม]]
#: {{syn|fi|piirakkakaavio}}
# {{lb|fi|ภาษาปาก|หยาบคาย}} [[อวัยวะเพศหญิง]]
#: {{syn|fi|pipari|ripsipiirakka}}
==== การผันรูป ====
{{fi-decl-solakka|piira|kk|k|a}}
==== คำจ่ากลุ่ม ====
* {{l|fi|leivonnainen}}
==== คำลูกกลุ่ม ====
{{col4|fi
|empanada
|kakkara
|kalitta
|keitinpiiras
|kokkonen
|kukkonen
|lörtsy
|parsipiiras
|perunakakkara
|pyörö
|pyörönen
|rönttönen
|sipanniekka
|sultsina
|tapuntainen
|tsupukka
|umpikukkonen
|vatruska
}}
==== ลูกคำ ====
{{col|fi|title=compounds
|atomipiirakka
|avopiirakka
|hakkoopiirakka
|kaalipiirakka
|kalapiirakka
|karjalanpiirakka
|kasvispiirakka
|keitinpiirakka
|kirsikkapiirakka
|kukkopiirakka
|kurpitsapiirakka
|lanttupiirakka
|lihapiirakka
|lohipiirakka
|mansikkapiirakka
|marjapiirakka
|mustikkapiirakka
|omenapiirakka
|pannupiirakka
|perunapiirakka
|piirakkadiagrammi
|piirakkakaavio
|piirakkakaulin
|piirakkalasta
|piirakkapulikka
|piirakkataikina
|piirakkavuoka
|rahkapiirakka
|raparperipiirakka
|riisipiirakka
|ripsipiirakka
|rusupiirakka
|sienipiirakka
|sipulipiirakka
|sulhaspiirakka
|umpipiirakka
|uunipiirakka
|vadelmapiirakka
|vetypiirakka
}}
=== อ่านเพิ่ม ===
* {{R:fi:KTSK|accessdate=2023-07-03}}
{{C|fi|Cakes and pastries|Genitalia}}
== ภาษาอิงเกรีย ==
[[ไฟล์:Яблочный пирог crop.jpg|thumb|Piirakka.]]
=== รากศัพท์ ===
{{bor+|izh|ru|пирог}}; ร่วมเชื้อสายกับ{{cog|fi|piirakka}} และ{{cog|krl|piirakka}}
=== การออกเสียง ===
* {{izh-p}}
=== คำนาม ===
{{head|izh|คำนาม}}
# [[พาย]]
==== การผันรูป ====
{{izh-decl/kana|kk|k}}
==== คำพ้องความ ====
* {{l|izh|piiras}}
==== ลูกคำ ====
{{col4|izh
|lihapiirakka|lanttupiirakka|kalapiirakka}}
=== อ้างอิง ===
* {{R:izh:Nirvi:1971|page=414}}
{{C|izh|Cakes and pastries}}
31ywojbvqgz14pf5lcy3lutat1dr8t3
5759100
5759099
2026-08-25T06:33:11Z
Octahedron80
267
/* ภาษาฟินแลนด์ */
5759100
wikitext
text/x-wiki
== ภาษาฟินแลนด์ ==
{{wp|fi:}}
[[ไฟล์:FoodApplePie.jpg|thumb|{{m|fi|omenapiirakka|Omenapiirakka|พายแอปเปิล}}]]
=== รากศัพท์ ===
{{suffix|fi|piiras|t1=พาย|alt1=piira-|kka}}
=== การออกเสียง ===
{{fi-pronunciation}}
=== คำนาม ===
{{fi-noun}}
# [[พาย]] {{gloss|ประเภทของขนมอบซึ่งประกอบด้วยเปลือกแป้งด้านนอกและไส้}}
#: {{syn|fi|piiras}}
# พาย {{gloss|อาหารที่ไม่ใช่ขนมอบที่มีลักษณะคล้ายพาย}}
#: {{syn|fi|piiras}}
# [[ปีรอก]] (pirog) {{gloss|พายสไตล์รัสเซีย}}
#: {{syn|fi|piiras}}
# [[ปิโรจกี]] (pirozhki) {{gloss|ขนมอบชิ้นเล็กสอดไส้เนื้อสับละเอียด ผัก หรือผลไม้ นำไปอบหรือทอด จากอาหารยุโรปตะวันออก}}
#: {{syn|fi|keitinpiirakka|piiras}}
# [[แพสตี]] (pasty) {{gloss|ใช้เรียกพายเนื้อและผักปรุงรสบางประเภท; แคบกว่าคำในภาษาอังกฤษ}}
#: {{par|fi|pasteija}}
# {{lb|fi|ภาษาปาก}} [[แผนภูมิวงกลม]]
#: {{syn|fi|piirakkakaavio}}
# {{lb|fi|ภาษาปาก|หยาบคาย}} [[อวัยวะเพศหญิง]]
#: {{syn|fi|pipari|ripsipiirakka}}
==== การผันรูป ====
{{fi-decl-solakka|piira|kk|k|a}}
==== คำจ่ากลุ่ม ====
* {{l|fi|leivonnainen}}
==== คำลูกกลุ่ม ====
{{col4|fi
|empanada
|kakkara
|kalitta
|keitinpiiras
|kokkonen
|kukkonen
|lörtsy
|parsipiiras
|perunakakkara
|pyörö
|pyörönen
|rönttönen
|sipanniekka
|sultsina
|tapuntainen
|tsupukka
|umpikukkonen
|vatruska
}}
==== ลูกคำ ====
{{col|fi|title=compounds
|atomipiirakka
|avopiirakka
|hakkoopiirakka
|kaalipiirakka
|kalapiirakka
|karjalanpiirakka
|kasvispiirakka
|keitinpiirakka
|kirsikkapiirakka
|kukkopiirakka
|kurpitsapiirakka
|lanttupiirakka
|lihapiirakka
|lohipiirakka
|mansikkapiirakka
|marjapiirakka
|mustikkapiirakka
|omenapiirakka
|pannupiirakka
|perunapiirakka
|piirakkadiagrammi
|piirakkakaavio
|piirakkakaulin
|piirakkalasta
|piirakkapulikka
|piirakkataikina
|piirakkavuoka
|rahkapiirakka
|raparperipiirakka
|riisipiirakka
|ripsipiirakka
|rusupiirakka
|sienipiirakka
|sipulipiirakka
|sulhaspiirakka
|umpipiirakka
|uunipiirakka
|vadelmapiirakka
|vetypiirakka
}}
=== อ่านเพิ่ม ===
* {{R:fi:KTSK|accessdate=2023-07-03}}
{{C|fi|Cakes and pastries|Genitalia}}
== ภาษาอิงเกรีย ==
[[ไฟล์:Яблочный пирог crop.jpg|thumb|Piirakka.]]
=== รากศัพท์ ===
{{bor+|izh|ru|пирог}}; ร่วมเชื้อสายกับ{{cog|fi|piirakka}} และ{{cog|krl|piirakka}}
=== การออกเสียง ===
* {{izh-p}}
=== คำนาม ===
{{head|izh|คำนาม}}
# [[พาย]]
==== การผันรูป ====
{{izh-decl/kana|kk|k}}
==== คำพ้องความ ====
* {{l|izh|piiras}}
==== ลูกคำ ====
{{col4|izh
|lihapiirakka|lanttupiirakka|kalapiirakka}}
=== อ้างอิง ===
* {{R:izh:Nirvi:1971|page=414}}
{{C|izh|Cakes and pastries}}
f2p0wql7p0yr7i86bppu43likqw35ry
5759101
5759100
2026-08-25T06:33:54Z
Octahedron80
267
/* อ่านเพิ่ม */
5759101
wikitext
text/x-wiki
== ภาษาฟินแลนด์ ==
{{wp|fi:}}
[[ไฟล์:FoodApplePie.jpg|thumb|{{m|fi|omenapiirakka|Omenapiirakka|พายแอปเปิล}}]]
=== รากศัพท์ ===
{{suffix|fi|piiras|t1=พาย|alt1=piira-|kka}}
=== การออกเสียง ===
{{fi-pronunciation}}
=== คำนาม ===
{{fi-noun}}
# [[พาย]] {{gloss|ประเภทของขนมอบซึ่งประกอบด้วยเปลือกแป้งด้านนอกและไส้}}
#: {{syn|fi|piiras}}
# พาย {{gloss|อาหารที่ไม่ใช่ขนมอบที่มีลักษณะคล้ายพาย}}
#: {{syn|fi|piiras}}
# [[ปีรอก]] (pirog) {{gloss|พายสไตล์รัสเซีย}}
#: {{syn|fi|piiras}}
# [[ปิโรจกี]] (pirozhki) {{gloss|ขนมอบชิ้นเล็กสอดไส้เนื้อสับละเอียด ผัก หรือผลไม้ นำไปอบหรือทอด จากอาหารยุโรปตะวันออก}}
#: {{syn|fi|keitinpiirakka|piiras}}
# [[แพสตี]] (pasty) {{gloss|ใช้เรียกพายเนื้อและผักปรุงรสบางประเภท; แคบกว่าคำในภาษาอังกฤษ}}
#: {{par|fi|pasteija}}
# {{lb|fi|ภาษาปาก}} [[แผนภูมิวงกลม]]
#: {{syn|fi|piirakkakaavio}}
# {{lb|fi|ภาษาปาก|หยาบคาย}} [[อวัยวะเพศหญิง]]
#: {{syn|fi|pipari|ripsipiirakka}}
==== การผันรูป ====
{{fi-decl-solakka|piira|kk|k|a}}
==== คำจ่ากลุ่ม ====
* {{l|fi|leivonnainen}}
==== คำลูกกลุ่ม ====
{{col4|fi
|empanada
|kakkara
|kalitta
|keitinpiiras
|kokkonen
|kukkonen
|lörtsy
|parsipiiras
|perunakakkara
|pyörö
|pyörönen
|rönttönen
|sipanniekka
|sultsina
|tapuntainen
|tsupukka
|umpikukkonen
|vatruska
}}
==== ลูกคำ ====
{{col|fi|title=compounds
|atomipiirakka
|avopiirakka
|hakkoopiirakka
|kaalipiirakka
|kalapiirakka
|karjalanpiirakka
|kasvispiirakka
|keitinpiirakka
|kirsikkapiirakka
|kukkopiirakka
|kurpitsapiirakka
|lanttupiirakka
|lihapiirakka
|lohipiirakka
|mansikkapiirakka
|marjapiirakka
|mustikkapiirakka
|omenapiirakka
|pannupiirakka
|perunapiirakka
|piirakkadiagrammi
|piirakkakaavio
|piirakkakaulin
|piirakkalasta
|piirakkapulikka
|piirakkataikina
|piirakkavuoka
|rahkapiirakka
|raparperipiirakka
|riisipiirakka
|ripsipiirakka
|rusupiirakka
|sienipiirakka
|sipulipiirakka
|sulhaspiirakka
|umpipiirakka
|uunipiirakka
|vadelmapiirakka
|vetypiirakka
}}
=== อ่านเพิ่ม ===
* {{R:fi:KTSK|accessdate=2023-07-03}}
{{C|fi|Cakes and pastries|อวัยวะเพศ}}
== ภาษาอิงเกรีย ==
[[ไฟล์:Яблочный пирог crop.jpg|thumb|Piirakka.]]
=== รากศัพท์ ===
{{bor+|izh|ru|пирог}}; ร่วมเชื้อสายกับ{{cog|fi|piirakka}} และ{{cog|krl|piirakka}}
=== การออกเสียง ===
* {{izh-p}}
=== คำนาม ===
{{head|izh|คำนาม}}
# [[พาย]]
==== การผันรูป ====
{{izh-decl/kana|kk|k}}
==== คำพ้องความ ====
* {{l|izh|piiras}}
==== ลูกคำ ====
{{col4|izh
|lihapiirakka|lanttupiirakka|kalapiirakka}}
=== อ้างอิง ===
* {{R:izh:Nirvi:1971|page=414}}
{{C|izh|Cakes and pastries}}
g5tvp61wkgmipin2ahnn7cdvqaqz0dt
quitar
0
2358123
5759102
2026-08-25T07:00:46Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5759102
wikitext
text/x-wiki
== ภาษากาตาลา ==
=== การออกเสียง ===
* {{ca-IPA}}
=== คำกริยา ===
{{ca-verb}}
# [[ยกโทษ]], [[ให้]][[พ้น]][[ความผิด]]; [[ปล่อยตัว]] {{gloss|ประกาศให้พ้นจากโทษ ความผิด หรือความรู้สึกผิด}}
# [[ชดใช้]], [[ชดเชย]] {{gloss|จ่ายเงินหรือให้รางวัลแก่ผู้หนึ่งผู้ใดเพื่อแลกกับการทำงานที่ได้ทำไป}}
==== การผันรูป ====
{{ca-conj}}
==== คำเกี่ยวข้อง ====
* {{l|ca|quiti}}
=== อ่านเพิ่ม ===
* {{R:ca:IEC2}}
== ภาษากาลิเซีย ==
=== รากศัพท์ ===
เป็นไปได้ว่ายืมโดยกึ่งเรียนรู้จาก{{der|gl|la-med|quitāre||ปล่อยตัว, ปลดเปลื้อง, ทำให้เป็นอิสระ}}, จาก{{der|gl|la-lat|quieto|quietō, quietāre}}, หรือจาก{{der|gl|la|quietus}}
=== คำกริยา ===
{{gl-verb}}
# [[นำ]][[ออก]]
==== การผันรูป ====
{{gl-conj}}
{{gl-reinteg-conj}}
=== อ่านเพิ่ม ===
* {{R:gl:DRAG}}
* {{R:gl:Estraviz}}
== ภาษาโปรตุเกส ==
=== การออกเสียง ===
{{pt-IPA}}
* {{hyphenation|pt|qui|tar}}
=== รากศัพท์ 1 ===
จาก{{inh|pt|roa-opt|quitar}}, จาก{{der|pt|la-lat|quieto|quiētāre|t=ยกฟ้อง, ปลดเปลื้อง, ปล่อยตัว}}, จาก{{der|pt|la|quiētō|quiētāre}}; อาจผ่านทาง{{der|pt|fro|quitter}} แม้ว่าจะยังไม่แน่ชัด
==== คำกริยา ====
{{pt-verb}}
# [[จ่าย]], [[ชำระ]]
# ชำระ[[หนี้]], [[ปลดเปลื้อง]] {{gloss|หนี้สิน}}
#: {{ant|pt|cobrar}}
===== การผันรูป =====
{{pt-conj}}
=== รากศัพท์ 2 ===
จาก{{suffix|pt|kit|ar|lang1=en|pos=verb}}
==== คำกริยา ====
{{pt-verb}}
# {{lb|pt|โปรตุเกส|ภาษาปาก}} [[แต่ง]][[รถ]], [[จูน]]รถ
#: {{syn|pt|tunar}}
===== การผันรูป =====
{{pt-conj}}
=== รากศัพท์ 3 ===
จาก{{suffix|pt|quit|ar|lang1=en|pos=คำกริยา}}
==== คำกริยา ====
{{pt-verb}}
# {{lb|pt|บราซิล|สแลงอินเทอร์เน็ต}} [[เลิก]], [[ออก]] (จากเกมหรือระบบ) {{gloss|สภาพแวดล้อมออนไลน์}}
===== การผันรูป =====
{{pt-conj}}
=== อ่านเพิ่ม ===
* {{R:pt:Aulete}}
* {{R:pt:Priberam}}
== ภาษาโรมานช์ ==
=== รากศัพท์ ===
จาก{{inh|rm|la|cōgitō|cōgitāre}}
=== คำกริยา ===
{{rm-verb}}
# {{lb|rm|Sursilvan}} [[คิด]], [[เชื่อ]], [[คาดการณ์]], มี[[ความคิดเห็น]]เกี่ยวกับ
== ภาษาสเปน ==
=== รากศัพท์ ===
{{ety|es|:der|la-med:quitāre<unc><ety:from<quiētō<alt:quiētāre>><quiētus>>}}
เป็นไปได้ว่ายืมโดยกึ่งเรียนรู้จาก{{der|es|la-med|quitāre|t=ปล่อยตัว, ปลดเปลื้อง, ทำให้เป็นอิสระ}}, จาก{{der|es|la-lat|quietō|quietāre}}, หรือจาก{{der|es|la|quietus}} (ผ่านทางคำคุณศัพท์ภาษาสเปนเก่า {{m|osp|quito}} ซึ่งมีวิวัฒนาการทางสัทวิทยาที่ผิดปกติ); เทียบ{{cog|en|quiet}} และ {{m|en|quit}} รวมถึง{{cog|fr|quitter}}; ดูเพิ่มที่คำในภาษาสเปน {{m|es|quedar}} และ {{m|es|quietar}}
=== การออกเสียง ===
{{es-pr}}
=== คำกริยา ===
{{es-verb}}
# {{lb|es|สกรรมกริยา}} [[ถอด]][[ออก]], [[นำ]]ออก, [[เอา]]ออก, [[เก็บ]]ออก, [[กำจัด]]ออก, [[ปัดเป่า]]
# {{lb|es|สกรรมกริยา}} [[กำจัด]], [[จัดการ]][[ให้]][[พ้นทาง]]
# {{lb|es|สกรรมกริยา}} เอาออกไป, ทำให้[[หลุด]]ออก
#: {{uxi|es|¡'''Quíten'''melo!|translation=เอาออกไปจากฉันที!}}
# {{lb|es|สกรรมกริยา}} [[พราก]], [[แย่ง]]ไป, [[ยึด]]เอาไป {{qualifier|ใช้กับกรรมรอง}}
# {{lb|es|สกรรมกริยา|กริยาสะท้อน}} ถอดออก, นำออก, [[ถอด]] (เช่น [[เสื้อผ้า]] หรือเครื่องแต่งกาย)
#: {{uxi|es|'''quitarse''' la mascarilla|translation=ถอดหน้ากากอนามัยออก}}
# {{lb|es|กริยาสะท้อน}} ถูกถอดออก หรือถูกนำออก
# {{lb|es|กริยาสะท้อน}} กำจัดออก, [[สลัด]]ให้[[พ้นตัว]] {{gloss|สิ่งที่ตนเองมีหรือเกี่ยวข้อง}}
# {{lb|es|กริยาสะท้อน}} [[เลิก]], [[ละ]] {{gloss|การสูบบุหรี่ ฯลฯ}}
#: {{uxi|es|'''quitarse''' de fumar|[[เลิก]]สูบบุหรี่}}
# {{lb|es|กริยาสะท้อน}} [[ขยับ]]ออกไป, [[หลบ]]ไป, [[ถอย]]ออกไป
#: {{syn|es|quitarse del medio}}
# {{lb|es|สกรรมกริยา|กานาเรียส}} [[ถ่าย]] {{gloss|เช่น ภาพถ่าย}}
#: {{syn|es|sacar|tomar|tirar}}
==== การผันรูป ====
{{es-conj}}
==== คำพ้องความ ====
{{col|es|toller}}
==== ลูกคำ ====
{{col|es
|a calzón quitado
|censo al quitar
|de quita y pon|quitar el hojaldre al pastel
|herrar o quitar el banco
|ignorancia no quita pecado
|lo cortés no quita lo valiente
|no quitar ojo
|por un quítame allá
|por quítame allá esas pajas
|quién quita
|quitaesmalte
|quitamanchas
|quitamiedos
|quitanieves
|quitapinturas
|quitar hierro
|quitar la cabeza
|quitar la cara
|quitar la teta
|quitarse
|quitarse de cuentos
|quitarse de encima<t:to shake off, to throw off>
|quitarse la vida<t:to take one's own life>
|quitarle la vida<t:to take somebody's life>
|quitarle importancia<t:to downplay, to play down; to de-emphasize>
|quitarse un peso de encima
|quitarse el sombrero
|quitavidas
|reír a casquillo quitado
|sin quitar ni poner
|un quítame allá esas pajas
|vender al quitar
}}
=== อ่านเพิ่ม ===
* {{R:es:DRAE}}
* {{R:es:DBC}}
== ภาษาอัสตูเรียส ==
=== คำกริยา ===
{{ast-verb}}
# [[กำจัด]], [[จัดการ]]ให้[[พ้นทาง]], [[สะสาง]]
# [[ถอด]][[ออก]] (เช่น เสื้อผ้า); [[ปิด]] (เช่น เครื่องใช้ไฟฟ้าหรืออุปกรณ์)
# [[เลิก]], [[ละ]], [[เลิกทำ]]
# [[เอา]]ออกไป, [[นำ]]ไปเสีย, [[พราก]]ไป
==== การผันรูป ====
{{ast-conj-ar|quit}}
== ภาษาอินเทอร์ลิงกวา ==
=== คำกริยา ===
{{ia-verb|ar}}
# [[เลิก]], [[ละ]]
==== การผันรูป ====
{{ia-conj|quit|ar}}
i8xwhdgdk9os6hc3j98ht9hjofcfbcf
quito
0
2358124
5759103
2026-08-25T07:02:59Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5759103
wikitext
text/x-wiki
== ภาษากาตาลา ==
=== การออกเสียง ===
* {{ca-IPA}}
=== คำกริยา ===
{{head|ca|รูปกริยา}}
# {{ca-verb form of|quitar}}
== ภาษากาลิเซีย ==
=== คำกริยา ===
{{head|gl|รูปกริยา}}
# {{gl-verb form of|quitar}}
== ภาษาโปรตุเกส ==
=== การออกเสียง ===
{{pt-IPA}}
=== รากศัพท์ 1 ===
{{ety|pt|:bor|kmb:kitu<ref:{{R:pt:Infopédia}}>|text=+|tree=1}}
==== คำนาม ====
{{pt-noun|m}}
# {{lb|pt|แองโกลา}} [[ภาชนะ]]สำหรับขนส่งหรือเก็บ[[น้ำ]]
=== รากศัพท์ 2 ===
จาก{{m|pt|bocadito}}.
==== คำนาม ====
{{pt-noun|m}}
# {{lb|pt|โปรตุเกส|ไม่เป็นทางการ}} [[นิดหน่อย]], [[เล็กน้อย]] {{gloss|ปริมาณเล็กน้อยของสิ่งใดสิ่งหนึ่ง}}
#: {{uxi|pt|Queres um '''quito'''?|Do you want a '''bit'''?|translation=เธอเอาสัก'''นิด'''ไหม?}}
=== รากศัพท์ 3 ===
{{ety|pt|nl=1}}
==== คำกริยา ====
{{head|pt|รูปกริยา}}
# {{pt-verb form of|quitar}}
=== อ้างอิง ===
{{reflist}}
=== อ่านเพิ่ม ===
* {{R:pt:Aulete}}
* {{R:pt:Priberam}}
== ภาษาละติน ==
=== รากศัพท์ 1 ===
{{ety|la|title=quitō|:bor|fro:quitter|text=+|tree=1}}
==== รูปแบบอื่น ====
* {{alt|la|quittō}}
==== การออกเสียง ====
* {{la-IPA|quitō}}
==== คำกริยา ====
{{la-verb|1+|quitō}} {{lb|la|med}}
# [[ปลดเปลื้อง]]จาก[[พันธะ]]หรือ[[ข้อผูกมัด]]
# [[สละสิทธิ์]]การเรียกร้องของตนใน
===== การผันรูป =====
{{la-conj|1+|quitō}}
==== อ่านเพิ่ม ====
* {{R:Logeion}}
=== รากศัพท์ 2 ===
==== การออกเสียง ====
* {{la-IPA|quītō}}
==== คำกริยา ====
{{head|la|รูปกริยา|head=quītō}}
# {{inflection of|la|queō||2//3|s|futr|actv|impr}}
== ภาษาสเปน ==
=== การออกเสียง ===
{{es-pr}}
=== คำคุณศัพท์ ===
{{es-adj}}
# [[ได้]][[รับ]][[การยกเว้น]]
#: {{syn|es|exento}}
# [[อิสระ]], [[ว่าง]]
#: {{syn|es|libre}}
=== คำกริยา ===
{{head|es|รูปกริยา}}
# {{es-verb form of|quitar}}
=== อ่านเพิ่ม ===
* {{R:es:DRAE}}
670ypjqqf2opa92no0t7pxrmhvz3dl3
5759104
5759103
2026-08-25T07:03:16Z
Octahedron80
267
/* คำนาม */
5759104
wikitext
text/x-wiki
== ภาษากาตาลา ==
=== การออกเสียง ===
* {{ca-IPA}}
=== คำกริยา ===
{{head|ca|รูปกริยา}}
# {{ca-verb form of|quitar}}
== ภาษากาลิเซีย ==
=== คำกริยา ===
{{head|gl|รูปกริยา}}
# {{gl-verb form of|quitar}}
== ภาษาโปรตุเกส ==
=== การออกเสียง ===
{{pt-IPA}}
=== รากศัพท์ 1 ===
{{ety|pt|:bor|kmb:kitu<ref:{{R:pt:Infopédia}}>|text=+|tree=1}}
==== คำนาม ====
{{pt-noun|m}}
# {{lb|pt|แองโกลา}} [[ภาชนะ]]สำหรับขนส่งหรือเก็บ[[น้ำ]]
=== รากศัพท์ 2 ===
จาก{{m|pt|bocadito}}.
==== คำนาม ====
{{pt-noun|m}}
# {{lb|pt|โปรตุเกส|ไม่เป็นทางการ}} [[นิดหน่อย]], [[เล็กน้อย]] {{gloss|ปริมาณเล็กน้อยของสิ่งใดสิ่งหนึ่ง}}
#: {{uxi|pt|Queres um '''quito'''?|เธอเอาสัก'''นิด'''ไหม?}}
=== รากศัพท์ 3 ===
{{ety|pt|nl=1}}
==== คำกริยา ====
{{head|pt|รูปกริยา}}
# {{pt-verb form of|quitar}}
=== อ้างอิง ===
{{reflist}}
=== อ่านเพิ่ม ===
* {{R:pt:Aulete}}
* {{R:pt:Priberam}}
== ภาษาละติน ==
=== รากศัพท์ 1 ===
{{ety|la|title=quitō|:bor|fro:quitter|text=+|tree=1}}
==== รูปแบบอื่น ====
* {{alt|la|quittō}}
==== การออกเสียง ====
* {{la-IPA|quitō}}
==== คำกริยา ====
{{la-verb|1+|quitō}} {{lb|la|med}}
# [[ปลดเปลื้อง]]จาก[[พันธะ]]หรือ[[ข้อผูกมัด]]
# [[สละสิทธิ์]]การเรียกร้องของตนใน
===== การผันรูป =====
{{la-conj|1+|quitō}}
==== อ่านเพิ่ม ====
* {{R:Logeion}}
=== รากศัพท์ 2 ===
==== การออกเสียง ====
* {{la-IPA|quītō}}
==== คำกริยา ====
{{head|la|รูปกริยา|head=quītō}}
# {{inflection of|la|queō||2//3|s|futr|actv|impr}}
== ภาษาสเปน ==
=== การออกเสียง ===
{{es-pr}}
=== คำคุณศัพท์ ===
{{es-adj}}
# [[ได้]][[รับ]][[การยกเว้น]]
#: {{syn|es|exento}}
# [[อิสระ]], [[ว่าง]]
#: {{syn|es|libre}}
=== คำกริยา ===
{{head|es|รูปกริยา}}
# {{es-verb form of|quitar}}
=== อ่านเพิ่ม ===
* {{R:es:DRAE}}
nn7plawazxy1gqw3kyaerkne1xlsw07
quitos
0
2358125
5759105
2026-08-25T07:03:38Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5759105
wikitext
text/x-wiki
== ภาษาโปรตุเกส ==
=== คำนาม ===
{{head|pt|รูปนาม}}
# {{plural of|pt|quito}}
== ภาษาสเปน ==
=== คำคุณศัพท์ ===
{{head|es|รูปคุณศัพท์|g=m-p}}
# {{adj form of|es|quito||m|p}}
dni3no9rzhd3a9s4fobu4hcqe5s9y8e
แม่แบบ:rm-verb
10
2358126
5759106
2026-08-25T07:06:15Z
Octahedron80
267
นำเข้าจาก enwikt
5759106
wikitext
text/x-wiki
{{head|rm|คำกริยา|head={{{head|{{pagename}}}}}|cat2=คำกริยา{{#switch:{{{type|}}}|auxiliary|defective|impersonal|modal|reflexive={{{type}}}}}}}<noinclude>{{documentation}}</noinclude>
q2wsepbrskorn9pmis3kgqnty7u5aa4
ปัดเป่า
0
2358127
5759107
2026-08-25T07:08:54Z
Octahedron80
267
สร้างหน้าด้วย "== ภาษาไทย == === รากศัพท์ === {{com+|th|ปัด|เป่า}} === การออกเสียง === {{th-pron|ปัด-เป่า}} === คำกริยา === {{th-verb}} # [[ทำ]][[พิธี]][[เสก]][[เป่า]][[เพื่อ]][[ให้]][[ความเจ็บไข้]][[หาย]] # [[แก้]][[ความลำบาก]][[ขัดข้อง]]ให้[[หมด]][..."
5759107
wikitext
text/x-wiki
== ภาษาไทย ==
=== รากศัพท์ ===
{{com+|th|ปัด|เป่า}}
=== การออกเสียง ===
{{th-pron|ปัด-เป่า}}
=== คำกริยา ===
{{th-verb}}
# [[ทำ]][[พิธี]][[เสก]][[เป่า]][[เพื่อ]][[ให้]][[ความเจ็บไข้]][[หาย]]
# [[แก้]][[ความลำบาก]][[ขัดข้อง]]ให้[[หมด]][[ไป]]
sc4yn41a4whno7jk7lgvbcurvbb55gm
การปัดเป่า
0
2358128
5759108
2026-08-25T07:08:59Z
Octahedron80
267
สร้างคำอัตโนมัติ
5759108
wikitext
text/x-wiki
== ภาษาไทย ==
=== รากศัพท์ ===
{{prefix|th|การ|ปัดเป่า}}
=== การออกเสียง ===
{{th-pron|กาน-ปัด-เป่า}}
=== คำนาม ===
{{th-noun}}
# {{abstract noun of|th|ปัดเป่า}}
gvhx13pdmi7xy26ypq7861yzf28w1nx
a calzón quitado
0
2358129
5759109
2026-08-25T07:11:20Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759109
wikitext
text/x-wiki
== ภาษาสเปน ==
=== การออกเสียง ===
{{es-pr}}
=== คำกริยาวิเศษณ์ ===
{{es-adv}}
# {{lb|es|หยาบคาย|สำนวน|เอลซัลวาดอร์}} อย่าง[[ตรงไปตรงมา]]โดยสิ้นเชิง, อย่าง[[จริงใจ]]ที่สุด
#: {{syn|es|al chile<qq:เม็กซิโก>}}
#: {{ux|es|Hablemos '''a calzón quitado''': necesita ayuda.|มาพูดกันแบบ'''ตรงไปตรงมา'''กันเลยดีกว่า: เขาต้องการความช่วยเหลือ}}
=== อ่านเพิ่ม ===
* {{R:es:DRAE}}
f71brgyfa5bfsyqdf9e5mm2kcyxepki
de quita y pon
0
2358130
5759110
2026-08-25T07:12:23Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759110
wikitext
text/x-wiki
== ภาษาสเปน ==
=== การออกเสียง ===
{{es-pr}}
=== คำคุณศัพท์ ===
{{es-adj|inv=1}}
# {{lb|es|สำนวน}} ซึ่ง[[ถอด]]ออกได้, แบบถอด[[ประกอบ]]
# {{lb|es|สำนวน}} [[ชั่วคราว]], [[ผ่าน]][[ไป]]อย่าง[[รวดเร็ว]], ไม่[[ยั่งยืน]]
=== อ่านเพิ่ม ===
* {{R:es:DRAE}}
obcb9snctjm3pyx8nbxr2iiijjgw70m
herrar o quitar el banco
0
2358131
5759111
2026-08-25T07:12:52Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759111
wikitext
text/x-wiki
== ภาษาสเปน ==
=== คำกริยา ===
{{es-verb}}
# {{lb|es|สำนวน}} [[ตัดสินใจ]], [[ตกลงใจ]]
=== อ่านเพิ่ม ===
* {{R:es:DRAE}}
mel4infqt91rfp2xsiegd14gcvi38se
por un quítame allá
0
2358132
5759112
2026-08-25T07:14:29Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759112
wikitext
text/x-wiki
== ภาษาสเปน ==
=== การออกเสียง ===
{{es-pr}}
=== คำกริยาวิเศษณ์ ===
{{es-adv}}
# {{lb|es|สำนวน}} เพื่อเรื่อง[[เล็กๆ น้อยๆ]], เพื่อสิ่งของ[[ราคา]][[ถูก]]มากหรือแทบจะ[[ฟรี]]
8pd347j3qevaiux5x4fa4mpo6acgkdb
quién quita
0
2358133
5759113
2026-08-25T07:15:22Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759113
wikitext
text/x-wiki
== ภาษาสเปน ==
=== การออกเสียง ===
{{es-pr}}
=== วลี ===
{{head|es|วลี}}
# {{lb|es|ละตินอเมริกา}} [[ใคร]][[จะ]][[ไป]][[รู้]], [[ไม่]][[แน่]][[หรอก]][[นะ]]
#: {{ux|es|'''Quién quita''' y hoy encuentras a tu media naranja…|'''ใครจะไปรู้''' วันนี้คุณอาจจะเจอเนื้อคู่ของคุณก็ได้นะ…}}
==== หมายเหตุการใช้ ====
* มักตามด้วย {{m|es|que}} หรือในเม็กซิโกมักตามด้วย {{m|es|y}}
jztefme6dqbdl514kzippsb9ka9o7ww
quitaesmalte
0
2358134
5759114
2026-08-25T07:16:42Z
Octahedron80
267
นำเข้าจาก enwikt เก็บกวาด
5759114
wikitext
text/x-wiki
== ภาษาสเปน ==
=== รากศัพท์ ===
{{es-verb-obj|quitar<t:เอาออก>|esmalte<t:ยาทาเล็บ>}}
=== การออกเสียง ===
{{es-pr}}
=== คำนาม ===
{{es-noun|m}}
# [[น้ำยา]][[ล้าง]][[เล็บ]]
=== ดูเพิ่ม ===
* {{l|es|quitamanchas}}
=== อ่านเพิ่ม ===
* {{R:es:DRAE}}
is1o8265shnlbwlvf2qvt6nuogezn6m
พี่หรั่ง
0
2358135
5759115
2026-08-25T09:53:19Z
Nnnei
17034
สร้างหน้าด้วย "== ภาษาไทย == === รากศัพท์ === {{com|th|พี่|หรั่ง}} (ตัดมาจาก [[ฝรั่ง]]) === การออกเสียง === {{th-pron|พี่-หฺรั่ง}} === คำนาม === {{th-noun}} # {{lb|th|ปาก|สแลง}} [[ชาวตะวันตก]]"
5759115
wikitext
text/x-wiki
== ภาษาไทย ==
=== รากศัพท์ ===
{{com|th|พี่|หรั่ง}} (ตัดมาจาก [[ฝรั่ง]])
=== การออกเสียง ===
{{th-pron|พี่-หฺรั่ง}}
=== คำนาม ===
{{th-noun}}
# {{lb|th|ปาก|สแลง}} [[ชาวตะวันตก]]
9h4paiocos77v41fyb9g2lw2m6jdben