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&nbsp;/ ''Camillo'' for the '''miniſter''', to poyſon&nbsp;/ 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&nbsp;/ ''Camillo'' for the '''miniſter''', to poyſon&nbsp;/ 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&nbsp;/ ''Camillo'' for the '''miniſter''', to poyſon&nbsp;/ 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&nbsp;/ ''Camillo'' for the '''miniſter''', to poyſon&nbsp;/ 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>&nbsp; &nbsp; การผันรูปแบบบูรณาการนิยมของ {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>&nbsp; &nbsp; การผันรูปแบบปฏิบูรณาการนิยมของ {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>&nbsp; &nbsp; การผันรูปปฏิบูรณาการนิยมของ {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&#91;etitia&#93; E&#91;lizabeth&#93; L&#91;andon&#93;]] |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 = &lsqb;XXV Sermons Preached at Golden Grove: Being for the Winter Half-year,{{nb...|Beginning on Advent-Sunday, untill Whit-Sunday}}.&rsqb;&#32; | 2 = &lsqb;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}}.&rsqb;&#32; | 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'''&nbsp;/ 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&nbsp;- 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'''&nbsp;/ 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&nbsp;- 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'''&nbsp;/ 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&nbsp;- 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