Wiktionary
zhwiktionary
https://zh.wiktionary.org/wiki/Wiktionary:%E9%A6%96%E9%A1%B5
MediaWiki 1.47.0-wmf.22
case-sensitive
Media
Special
Talk
User
User talk
Wiktionary
Wiktionary talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
Appendix
Appendix talk
Transwiki
Transwiki talk
Rhymes
Rhymes talk
Thesaurus
Thesaurus talk
Citations
Citations talk
Reconstruction
Reconstruction talk
TimedText
TimedText talk
Module
Module talk
Event
Event talk
世界語
0
912
9938428
9922092
2026-10-04T15:36:02Z
Hiyuune
119685
/* 詞源 */
9938428
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=世界语|type=21}}
{{zh-wp}}
{{interwiktionary|code=eo}}
===詞源===
{{wasei kango|世%界%語|せ%かい%ご}}。經過[[:w:二葉亭四迷|二葉亭四迷]]於1906年出版的同名書籍而普及。<ref>{{cite-web|url=http://www.espero.com.cn/2014-01/06/content_31101253.htm|title=Partopreninte la 32-an Komunan Seminarion de Aziaj Junularoj|work=El Popola Ĉinio|eo|date=2014-01-06}}</ref>
===發音===
{{zh-pron
|m=shìjièyǔ
|c=sai3 gaai3 jyu5
|mn=Sè-kài-gí
|cat=pn
}}
===專有名詞===
{{zh-proper noun}}
# [[波蘭]]籍[[猶太人]][[眼科]][[醫生]]{{w|柴門霍夫}}博士(1859-1917)在1887年公佈的一種[[人造]]的[[國際輔助語]]
====翻譯====
{{trans-top|人工語言}}
* 阿尔巴尼亚语:{{t+|sq|esperanto|n}}
* 阿拉伯语:{{t+|ar|إِسْبَرَانْتُو|m|tr=ʾisbarantū}}、{{t|ar|إِسْپَرَانْتُو|m|tr=ʾisparantū}}
* 亚美尼亚语:{{t+|hy|էսպերանտո}}
* 阿萨姆语:{{t|as|এস্পেৰাণ্ট ভাষা}}
* 阿斯图里亚斯语:{{t+|ast|esperantu|m}}
* 巴斯克语:{{t+|eu|esperanto}}
* 白俄罗斯语:{{t+|be|эспера́нта|n}}、{{t|be|эспэра́нта|n}} {{qualifier|傳統正字法}}
* 布列塔尼语:{{t+|br|esperanteg|m}}
* 保加利亚语:{{t|bg|есперанто}}
* 加泰罗尼亚语:{{t+|ca|esperanto|m}}
* 捷克语:{{t+|cs|esperanto|n}}
* 迪维希语:{{t|dv|އެސްޕެރަންތޯ}}
* 荷兰语:{{t+|nl|Esperanto|n}}
* 英語:{{t+|en|Esperanto}}
* 世界语:{{t+|eo|Esperanto}}
* 爱沙尼亚语:{{t+|et|Esperanto}}
* 芬兰语:{{t+|fi|esperanto}}
* 法语:{{t+|fr|espéranto|m}}
* 加利西亚语:{{t+|gl|esperanto|m}}
* 格鲁吉亚语:{{t|ka|ესპერანტო}}
* 德语:{{t+|de|Esperanto|n}}
* 希腊语:{{t|el|Εσπεράντο}}
* 格陵兰语:{{t|kl|Esperanto}}
* 古吉拉特语:{{t+|gu|એસ્પેરાન્તો}}
* 夏威夷语:{{t|haw|‘ōlelo Ekepelānako}}
* 希伯来语:{{t+|he|אֶסְפֶּרַנְטוֹ|tr=esperanto}}
* 印地语:{{t+|hi|एस्पेरान्तो}}
* 匈牙利语:{{t+|hu|eszperantó}}
* 伊多语:{{t+|io|Esperanto}}、{{t+|io|Espo}}
* 因特语:{{t+|ia|esperanto}}
* 因紐特語:{{t+|iu|ᐃᓯᐱᕋᓐᑐ}}
* 爱尔兰语:{{t|ga|Esperanto}}、{{t|ga|Sprantais|f}}
* 意大利语:{{t+|it|esperanto}}
* 日语:{{t+|ja|エスペラント|tr=Esuperanto}}、{{t+|ja|エスペラント語|tr=Esuperanto-go}}
* 卡舒比語:{{t|csb|esperanto|n}}
* 哈萨克语:{{t|kk|эсперанто}}
* 朝鲜语:{{t+|ko|^에스페란토}}
* 库尔德语:
*: 北库尔德语:{{t+|kmr|esperantoyî|f}}
* 拉丁语:{{t|la|Lingua Esperantica|f}}、{{t|la|Lingua Zamenhofiana|f}}
* 马其顿语:{{t|mk|еспера́нто|n}}
* 马拉雅拉姆语:{{t|ml|എസ്പെരാന്തോ}}
* 纳瓦特尔语:{{t|nah|netēmachīliztlahtōlli}}、{{t|nah|esperantotlahtōlli}}
* 挪威语:{{t+|no|esperanto}}
* 奥克语:{{t+|oc|esperanto|m}}
* 波斯语:{{t+|fa|اسپرانتو|tr=esperânto}}
* 波兰语:{{t+|pl|esperanto|n}}
* 葡萄牙语:{{t+|pt|esperanto|m}}
* 罗马尼亚语:{{t+|ro|esperanto}}、{{t|ro|[[limba]] [[esperanto]]}}
* 俄语:{{t+|ru|эспера́нто|n}}
* 盧森尼亞語:{{t|rue|есперанто|n}}
* 盧旺達語:{{t|rw|Icyesiperanto}}
* 塞尔维亚-克罗地亚语:
*: 西里尔字母:{{t|sh|еспера̀нто|m}}、{{t|sh|есперантски|m}}
*: 罗马字母:{{t+|sh|esperànto|m}}、{{t+|sh|esperantski|m}}
* 西西里语:{{t+|scn|esperantu|m}}
* 西里西亞語:{{t|szl|esperanto|n}}
* 斯洛伐克语:{{t+|sk|esperanto|n}}
* 斯洛文尼亚语:{{t+|sl|esperanto|n}}
* 索布语:
*: 下索布语:{{t|dsb|esperanto|n}}
*: 上索布语:{{t+|hsb|esperanto|n}}
* 西班牙语:{{t+|es|esperanto|m}}
* 斯瓦希里语:{{t|sw|Kiesperanto}}
* 史瓦濟語:{{t|ss|sí-Speranto}}、{{t|ss|síSperanto}}
* 瑞典语:{{t+|sv|esperanto|c}}
* 他加禄语:{{t+|tl|Esperanto}}
* 泰语:{{t|th|เอสเปรันโต|tr=àyt-bpay-ran-dtoh}}、{{t+|th|ภาษาเอสเปรันโต|tr=paa-săa àyt-bpay-ran-dtoh}}
* 土耳其语:{{t+|tr|Esperanto}}
* 越南语:{{t+|vi|quốc tế ngữ}}、{{t|vi|tiếng quốc tế ngữ}}、{{t+|vi|thế giới ngữ}}
* 沃拉普克语:{{t+|vo|Sperantapük}}
* 意第绪语:{{t+|yi|עספּעראַנטאָ|n}}
{{trans-bottom}}
===參見===
* {{langcat|eo}}
===參考資料===
{{reflist}}
===延伸閱讀===
* {{ISO 639|ref=1|eo||epo}}
* {{ethnologue|epo}}
{{zh-cat|人造語言}}
==日語==
{{ja-kanjitab|せ|かい|ご|yomi=o}}
===發音===
{{ja-pron|せかいご|acc=h|acc_ref=DJR}}
===名詞===
{{ja-noun|せかいご}}
# [[國際輔助語]]
# [[世界語言]]
====近義詞====
* {{ja-r|国%際%語|こく%さい%ご}}
* {{ja-r|国%際%補%助%語|こく%さい% ほ%じょ%ご}}
====派生語彙====
* {{desc|zh|-|bor=1}} {{zh-l|世界語}}
* {{desc|ko|-|bor=1}} {{ko-l|세계어}}
* {{desc|vi|-|bor=1}} {{vi-l|thế giới ngữ}}
===參考資料===
{{reflist}}
{{c|ja|人造語言|sort=せかいこ'}}
==朝鮮語==
{{ko-hanjatab}}
===名詞===
{{ko-noun|hangeul=세계어|head=[[世界]][[語]]}}
# {{hanja form of|세계어|[[國際輔助語]]}}
==越南語==
{{vi-hantutab}}
===專有名詞===
{{vi-proper noun|sc=Hani}}
# {{han tu form of|thế giới ngữ}}
7mfjpt72cp0xr1fk7wyaahb6ffugdn0
Wiktionary:统计
4
1718
9938465
9937942
2026-10-05T02:14:36Z
TongcyBot
83009
機器人:更新每日統計數據(2026-10-05)
9938465
wikitext
text/x-wiki
{{Interwiki}}
{{shortcut|WT:STAT}}
==基本資料==
{| class="wikitable"
! 項目 !! 資料
|-
! MediaWiki版本
| {{CURRENTVERSION}}
|-
! 詞條數量
| [[Special:Statistics|'''{{NUMBEROFARTICLES}}''']]
|-
! 總頁面數
| {{NUMBEROFPAGES}}
|-
! 已編碼的語言數量
| {{#invoke:list of languages|count}}
|-
! 檔案數量
| {{NUMBEROFFILES}}
|-
! 註冊用戶數
| {{NUMBEROFUSERS}}
|-
! 活躍用戶數
| {{NUMBEROFACTIVEUSERS}}
|-
! 管理員數量
| {{NUMBEROFADMINS}}
|-
! 全站頁面編輯次數
| {{NUMBEROFEDITS}}
|}
其他資料請參考[[Special:Statistics]]。
==頁面==
本表是中文维基詞典詞條数依日期到達的里程碑,以每一万个词条为单位计数。<!-- 以下內容已不再更新
* 近期統計圖表(區分機器人與一般用戶,選擇zhwiktionary_p,每日自動更新):[https://tools.wmflabs.org/wmcharts/wmchart0001.php 編輯次數]{{·}}[https://tools.wmflabs.org/wmcharts/wmchart0002.php 新增詞條數量]-->
* 目前的詞條數:'''{{NUMBEROFARTICLES}}'''({{重新整理|更新}})。
{{Milestone}}
==与相邻语言版本的比较==
中文维基词典词条收录量为'''{{NUMBEROFARTICLES}}''',在所有语言版本的詞典中[[meta:Wiktionary#List of Wiktionaries|'''位列第4''']]。
{{autoStat
| 2026-09-01
| fr | mg | zh | th | el
| 6997535 | 6023134 | 2380192 | 2206521 | 1585904
| 6998238 | 6024873 | 2380554 | 2206523 | 1585917
| 7000127 | 6026546 | 2380887 | 2206607 | 1585946
| 7000656 | 6029380 | 2381509 | 2206651 | 1585971
| 7003003 | 6031154 | 2381927 | 2206689 | 1585985
| 7004167 | 6032755 | 2382273 | 2206693 | 1586008
| 7006837 | 6034370 | 2382636 | 2206694 | 1586076
| 7007218 | 6035533 | 2383103 | 2206700 | 1586104
| 7008103 | 6035941 | 2383540 | 2206787 | 1586119
| 7008906 | 6036586 | 2383959 | 2206792 | 1586128
| 7009409 | 6038227 | 2384261 | 2206803 | 1586142
| 7009787 | 6039498 | 2384800 | 2206835 | 1596586
| 7010299 | 6040280 | 2385265 | 2206838 | 1611050
| 7010652 | 6041105 | 2385801 | 2206852 | 1611062
| 7010891 | 6042008 | 2386137 | 2206856 | 1611079
| 7011114 | 6042770 | 2386453 | 2206890 | 1611165
| 7011512 | 6043840 | 2386815 | 2206977 | 1611178
| 7011875 | 6044192 | 2387177 | 2207036 | 1611191
| 7012192 | 6044642 | 2387486 | 2207045 | 1616152
| 7012627 | 6046884 | 2387788 | 2207045 | 1616861
| 7013224 | 6047546 | 2388205 | 2207131 | 1621664
| 7013869 | 6048082 | 2388988 | 2207162 | 1621699
| 7014495 | 6048392 | 2389021 | 2207187 | 1621721
| 7015177 | 6048873 | 2389437 | 2207217 | 1621746
| 7015484 | 6051500 | 2390060 | 2207218 | 1621762
| 7016417 | 6058398 | 2390641 | 2207222 | 1621777
| 7017175 | 6064817 | 2391068 | 2207245 | 1626804
| 7018084 | 6066870 | 2391703 | 2207247 | 1642410
| 7018560 | 6068253 | 2392193 | 2207247 | 1652475
| 7019074 | 6069355 | 2392720 | 2207247 | 1662451
| 7019522 | 6071464 | 2392934 | 2207248 | 1677499
| 7019915 | 6074591 | 2393234 | 2207248 | 1677514
| 7020418 | 6075819 | 2393498 | 2207269 | 1677536
| 7020745 | 6076647 | 2393734 | 2207269 | 1678556
| 7021263 | 6078363 | 2394334 | 2207269 | 1694705
| 7021761 | 6079669 | 2394797 | 2207270 | 1694715
}}
* 来源:[https://wikistats.wmcloud.org/display.php?t=wt Wikistats] 统计的具体时间为当日1时(UTC)左右,近似表示前一天的数据
* 关于里程碑,参见[[Wiktionary:宣告]]
==页面访问统计==
历史数据参见:[[Wiktionary:统计/存档]]
===总页面浏览量===
{{Collapse2|header=最近一年中文維基詞典的存取量|float=right
|{{Graph:PageViews| 365 | _ |scale=sqrt}}
}}
{{Chart
| chart = ZhWiktionary_Monthly_Pageviews_Since_2016.chart
| align = center
| title = 中文維基詞典歷年瀏覽量
}}
数据来源:[https://stats.wikimedia.org/#/zh.wiktionary.org/reading/total-page-views/normal|table|1-year|~total|monthly Total page views]
===热词===
页面浏览量最高的词条:
{{Wiktionary:統計/熱詞
|year=2024 |month=6
|t1=尛 |cat1=[[:Category:漢字|漢字]] |v1=5,385 |m1=82.8
|t2=。 |cat2=[[:Category:標點符號|標點符號]] |v2=5,355 |m2=94.4
|t3=! |cat3=[[:Category:標點符號|標點符號]] |v3=3,407 |m3=74.2
|t4=凪 |cat4=[[:Category:和製漢字|和製漢字]]|v4=3,120 |m4=62.0
|t5=雫 |cat5=[[:Category:和製漢字|和製漢字]] |v5= 3,114 |m5=64.6
|t6=又双叒叕 |cat6=[[:Category:漢語副詞|漢語副詞]] |v6=2,528 |m6=73.4
|t7=你好 |cat7=[[:Category:漢語感嘆詞|漢語感嘆詞]] |v7=2,513 |m7=41.1
|t8=昶 |cat8=[[:Category:漢字|漢字]] |v8=2,412 |m8=56.7
|t9=肉便器 |cat9=[[:Category:漢語名詞|漢語名詞]] |v9=2,345 |m9=78.4
|t10=辻 |cat10=[[:Category:和製漢字|和製漢字]] |v10=2,150 |m10=71.8
}}
数据来源:[https://pageviews.toolforge.org/topviews/?project=zh.wiktionary.org&platform=all-access&date={{CURRENTYEAR}}-{{CURRENTMONTH}}&excludes= Topviews Analysis - Most viewed pages of a project]
==收录词条==
{{also|Wiktionary:统计/各语言词条}}
==参看==
*[[Special:Statistics|基本统计]]
[[Category:維基詞典統計]]
hdpqndogxbfpssk4gsx1zwpxs2cp2ok
Китайская Народная Республика
0
35314
9938418
9438569
2026-10-04T12:59:41Z
Vichycombo
128658
9938418
wikitext
text/x-wiki
==俄語==
{{slim-wikipedia|lang=ru}}
[[Image:Flag of the People's Republic of China.svg|thumb|{{lang|ru|[[флаг|Флаг]] [[КНР]]}}|upright=1]]
[[Image:中華人民共和國國徽.svg|thumb|{{lang|ru|[[герб|Герб]] [[КНР]]}}|upright=1]]
===詞源===
{{lit|中國人民共和國}}。
===發音===
* {{ru-IPA|Кита́йская Наро́дная Респу́блика}}
* {{audio|ru|Ru-Китайская Народная Республика.ogg}}
===專有名詞===
{{ru-proper noun+|[[китайский|Кита́йская]]|+|_|[[народный|Наро́дная]]|+|_|[[республика|Респу́блика]]}}
# {{place|ru|國家|r/東亞|t1=中華人民共和國}}
#: {{syn|ru|Кита́й|КНР}}
#: {{ux|ru|'''Кита́йская Наро́дная Респу́блика''' явля́ется социалисти́ческим госуда́рством демократи́ческой диктату́ры наро́да, руководи́мым рабо́чим кла́ссом и осно́ванное на сою́зе рабо́чих и крестья́н.|中華人民共和國是工人階級領導的、以工農聯盟為基礎的人民民主專政的社會主義國家。<sub>(1982年中華人民共和國憲法第一條)</sub>}}
====變格====
{{ru-noun-table|[[китайский|Кита́йская]]|+|_|[[народный|Наро́дная]]|+|_|[[республика|Респу́блика]]|n=sg}}
====相關詞====
* {{l|ru|кита́ец}}、{{l|ru|китая́нка}}
* {{l|ru|кита́йский}}
juz3fhy7necd43mjfqfqdhdp8af65e5
榆
0
308955
9938471
9660233
2026-10-05T07:50:46Z
~2026-53362-38
135581
/* 日語 */
9938471
wikitext
text/x-wiki
{{character info/new}}
{{漢}}
* {{总笔画|13}}
* {{部首|木|9}}
* 其他变体:-{[[楡]]}-
{{字形拆解|2346}}
=== 参考 ===
* {{大字源|927|19}}
* {{汉语大字典|2|1253|1}}
* {{宋本广韵|76|36}}
* {{Unihan数据|6986}}
=== 编码 ===
{{汉字编码|仓颉=DOMN|四角号码=4892<sub>1</sub>|Unicode|十进制=27014|UTF8=E6 A6 86 |UTF16=6986|UTF32=00006986|Big5=B7AE|CCCII=214530|CNS1986=1-6454|CNS1992=1-6454|EACC=214530|GB80=5160|GB90=5160|KPS2000=4C8A|中文电码|中国大陆=2810|台湾=2810}}
==漢語==
{{zh-forms|alt=楡}}
===字源===
{{Han etym}}
{{Han compound|木|俞|c1=s|c2=p|t1=|ls=psc}}.
===發音===
{{zh-pron
|m=yú
|m-s=
|c=jyu4
|c-t=
|g=
|h=pfs=
|j=
|mb=
|md=
|mn=qz,xm:û/zz:î/qz,xm:lû/zz:jî/kh:jiû/tp:liû/twvk:jû
|mn_note=û/î - 文讀;lû/jî/jiû/liû/jû - 白讀
|mn-t=
|w=
|x=
|mc=y
|oc=y
|ma=
|cat=n
}}
===釋義===
{{head|zh|漢字}}
# [[榆樹]]
===組詞===
{{col3|zh|暮景桑榆|望杏瞻榆|枌榆|桑榆|桑榆晚景|桑榆暮影|桑榆暮景|桑榆末景|榆塞|榆木|榆枋|榆樹|榆次|榆火|榆白皮|榆瞑豆重|榆社|榆莢|榆莢雨|榆葉梅|榆錢|榆關|榔榆|白榆|豆重榆瞑}}
==日語==
{{huge|{{Lang|ja|榆}}|220%}}
===讀音===
{{ja-readings
|goon=ゆ
|kanon=ゆ
|kun=にれ-
|kun=のん-
}}
==朝鮮語==
:{{huge|{{Lang|ko|榆}}|220%}}
===讀音===
{{朝字音||[[유]] (yu)}}
{{異體字}}
:{| class="wikitable" width=60% border="2"
|-
|align="center"| <span style="font-size: x-large;"> [http://chardb.iis.sinica.edu.tw/meancompare/6986/6961 楡]</span>
|}
{{異體字注}}
[[Category:待分類的漢語詞]]
[[Category:漢語|木09]]
[[分類:汉语汉字|木09]]
[[Category:待分類的日語詞]]
[[Category:日語]]
[[Category:待分類的朝鮮語詞]]
[[Category:朝鮮語]]
oz64h8pzisd9mhds0p03vwpi7oj7p1p
贓
0
314383
9938460
9932600
2026-10-04T23:38:55Z
Fglffer
55252
/* 漢語 */
9938460
wikitext
text/x-wiki
{{also|赃}}
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=154|rad=貝|as=14|sn=21|four=63850|canj=BCIMS|ids=⿰貝臧}}
====參見====
* {{l|mul|臟}}
====參考資料====
{{Han ref|kx=1213.020|dkj=36962|dj=1679.170|hdz=63660.010|uh=8D13|ch=0012790005.010|sbgy=0183.12}}
==漢語==
{{zh-forms|t2=贜|s=赃|ns=𰷭|alt=賍,賘}}
===字源===
{{Han etym}}
===發音===
{{zh-pron
|m=zāng
|m-s=
|c=zong1
|c-t=
|g=
|h=pfs=
|j=
|mb=
|md=
|mn=chng/chong
|mn_note=chng - 白讀; chong - 文讀
|mn-t=
|w=
|x=
|mc=y
|oc=y
|cat=n,v
}}
===釋義===
{{head|zh|漢字}}
# 通過不[[正當]]手段(如盜竊、貪污)得到的[[財物]]
# {{†}} [[受賄]]
===組詞===
{{col3|zh|人贓俱獲|併贓拿賊|併贓治罪|倒贓|分贓|坐地分贓|并贓拿敗|拿賊拿贓|拿賊見贓|栽贓|濫吏贓官|真贓|真贓實犯|真贓正賊|誣盜插贓|貪贓|貪贓壞法|貪贓枉法|買物栽贓|賊贓|贓仗|贓埋|贓官|贓款|贓汙|贓汙狼藉|贓物|贓物罪|贓誣|贓證|贓車|贓銀|起贓|追贓|過贓犯法|領贓|銷贓}}
==日語==
===漢字===
{{ja-kanji|grade=|rs=貝14}}
# {{rfdef|ja|sort=貝14}}
====讀音====
{{ja-readings
|goon=そう
|kanon=そう
|kanyoon=ぞう
|kun=かくす
}}
==朝鮮語==
===詞源===
源自{{der|ko|ltc|sort=장|-}} {{ltc-l|贓}}。
{{hanja-ety
|dk={{hanja-dongguk|자ᇰ|càng}}
|m={{hanja-hunmong|자ᇰ|càng|雜語#하29B}}
|mh=자ᇰ믈〮<ref>{{lang|ko|贓物}} [stolen goods]</ref> 자ᇰ
|ref={{reflist}}
}}
===發音===
{{ko-hanja-pron|장}}
===漢字===
{{ko-hanja-search}}
{{ko-hanja|[[장물]]([[贓物]])|장}}
# {{hanja form of|장|[[贓物]]}}
====組詞====
{{der-top3|組詞}}
* {{ko-l|장리|贓吏}}
* {{ko-l|장물|贓物}}
* {{ko-l|장물죄|贓物罪}}
{{der-bottom}}
===參考資料===
* {{R:hanjadoc|12134}}
==越南語==
===漢字===
{{vi-readings|rs=貝14|reading=tang}}
# {{rfdef|vi|sort=貝14}}
0xzxkzcybcdxhp3i3fkq5uts4beakd7
贜
0
314387
9938463
8428680
2026-10-04T23:41:14Z
Fglffer
55252
9938463
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=154|rad=貝|as=18|sn=25|four=|canj=BCTIS|ids=⿰貝藏}}
====來源====
* {{Han ref|kx=1213.201|dkj=36990|dj=1680.100|hdz=63661.150|uh=8D1C|ud=36124|ch=0012800002.010}}
==漢語==
{{zh-see|贓}}
==日語==
===漢字===
{{ja-kanji|grade=|rs=貝18}}
# {{rfdef|ja|sort=貝18}}
====讀音====
* {{ja-readings|on=ぞう,そう|kun=かくす|nanori=}}
==朝鮮語==
===漢字===
{{ko-hanja|hangeul=장|eumhun=|rv=jang|mr=chang|y=cang}}
# {{rfdef|ko|sort=貝18}}
dguhmlwkfkf228mfxzvjqml21z2b5j4
赃
0
314424
9938459
7695163
2026-10-04T23:38:12Z
Fglffer
55252
/* 漢語 */
9938459
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=154|rad=贝|as=06|sn=10|four=|canj=BOIG|ids=⿰贝庄}}
====來源====
* {{Han ref|kx=1213.211|hdz=63640.020|uh=8D43|ud=36163}}
==漢語==
===詞源1===
{{zh-see|贓}}
===詞源2===
{{zh-see|賍}}
146gaswqkeo63u1v8yo0en5eigw86kc
步武
0
589196
9938436
7618269
2026-10-04T16:09:38Z
徐元昊
122104
新詞條 還需完善
9938436
wikitext
text/x-wiki
==漢語==
{{zh-forms|lit=一步與半步}}
===發音===
{{zh-pron
|m=bùwǔ
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# {{lb|zh|literary}} [[腳步]];[[步伐]]
#* {{zh-x|循玩 足 忘 疲,稍 覺{jué} 步武 輕。安 能 事 翦伐,持 用 資 徒行。||TCP|ref=唐·{{w|柳宗元}}〈[[s:植靈壽木|植靈壽木]]〉}}
#* {{zh-x|積 旬 之 外,玉女 稍稍 與 @^行達 爭先,步武 相接。||CL|ref=唐·{{w|薛用弱}}《[[s:集異記|集異記]]》(見於《[[s:太平廣記/卷第063#玉女|太平廣記·卷六十三·玉女]]》)}}
#* {{zh-x|靄靄 祥雲 隨 步武,累累 秋 冢 嘆 蓬蒿。||TCP|ref=唐·{{w|杜牧}}〈[[s:全唐詩/卷521#贈李處士長句四韻|贈李處士長句四韻]]〉}}
#* {{zh-x|蹇驢 步武 碎,短 瑟 弦 柱 促。仰 看 泉 落 珮,俯 聽 石 響 轂。||TCP|ref=宋·{{w|蘇軾}}〈次韻高要令劉湜峽山寺見寄〉}}
#* {{zh-x|豈但 煙霄 隨 步武,故應{yīng} 冰雪 換 形容。||TCP|ref=宋·{{w|陸游}}〈道室雜詠〉}}
# {{lb|zh|literary|figurative}} 極短的[[距離]];[[咫尺]]
#* {{zh-x|然 一 旅 之 眾,不.足以 揚 名,步武 之間,不.足以 騁 跡。||CL|ref=三國魏·{{w|吳質}}〈[[s:答東阿王書|答東阿王書]]〉}}
#* {{zh-x|彼 雖 尋-飛 絕-景{yǐng},止 而 不 行,則 步武 不-過 焉。||CL|ref=晉·{{w|葛洪}}《[[s:抱朴子/外篇/卷03|抱朴子·外篇·勖學]]》}}
#* {{zh-x|隔闊 相{xiāng}思,發 於 寤寐。相{xiāng}去 步武,而 趨舍 異 規,其 為{wéi} 愴恨,胡 可 勝{shēng}言!||CL|ref=南朝宋·{{w|范曄}}《[[s:後漢書/卷58|後漢書·卷五十八·臧洪傳]]》}}
#* {{zh-x|w:晉成帝\^成帝 w:咸和\^咸和 元年,大霧,步武 不 相{xiāng}見。||CL|ref=舊晉書,《[[s:太平御覽/0878|太平御覽·卷八百七十八]]》引}}
# {{lb|zh|literary|figurative}} [[效法]];[[追隨]]
#* {{zh-x|考第 居-甲,自-天 昭回。分命 邦畿,步武 獲-陪。||CL|ref=唐·{{w|柳宗元}}《[[s:|為韋京兆祭杜河中文]]》}}
====衍生詞====
{{col3|zh|步武堂皇|步武前賢}}
===參考資料===
* {{R:zh:cbgycdxdb|22261}}
* {{R:zh:HYDCD}}
44soexcegv2qyxzhu0fitu2m6vw1pnw
礼遇
0
660105
9938444
7998705
2026-10-04T17:44:45Z
TongcyDai
53191
9938444
wikitext
text/x-wiki
{{also|禮遇}}
==漢語==
{{zh-see|禮遇}}
==日語==
{{ja-kanjitab|れい|ぐう|yomi=on}}
===發音===
{{ja-pron|れいぐう|acc=0|acc_ref=SMK7,DJR,NHK,NKD2}}
===名詞===
{{ja-noun|れいぐう}}
# [[禮遇]]
#: {{ja-x|厚い'''礼%遇'''を受ける|あつい '''れい%ぐう''' を うける|受到盛情'''禮遇'''}}
===動詞===
{{ja-verb-suru|tr=trans|れいぐう}}
# [[禮遇]]
====活用====
{{ja-suru|れいぐう}}
===參考資料===
* {{R:Kanjipedia Kotoba|0007241100}}
{{reflist}}
2hibhp4ddltfy8vjv26jvaqpmu7d77p
エスペラント
0
707982
9938464
9920265
2026-10-04T23:45:46Z
Fglffer
55252
/* 日語 */
9938464
wikitext
text/x-wiki
==日語==
{{wikipedia|lang=ja}}
===詞源===
借自{{bor|ja|eo|Esperanto}}。<ref name="KDJ">{{R:Kokugo Dai Jiten}}</ref><ref name="DJR">{{R:Daijirin}}</ref>
===發音===
{{ja-pron|acc=4|dev=2|acc_ref=DJR,NHK,SMK5}}
===專有名詞===
{{ja-pos|proper}}
# [[世界語]]
====同義詞====
* {{ja-r|エスペラント語|エスペラント-ご|caps=y}}
===參考資料===
{{reflist}}
0andpsp61e7vj1ee878urwf2ld5848o
Freiraum
0
784523
9938442
4832331
2026-10-04T17:07:34Z
Hzy980512
19278
9938442
wikitext
text/x-wiki
==德语==
===词源===
{{ety|de|:af|frei<t:[[自由]]的>|Raum<t:[[房间]],[[空间]]>}}
{{compound|de|frei|Raum|t1=[[自由]]的|t2=[[房间]],[[空间]]}}。
===发音===
* {{IPA|de|/ˈfʁaɪ̯ˌʁaʊ̯m/}}
* {{rhymes|de|aʊ̯m}}
* {{hyph|de|Frei|raum}}
* {{audio|de|De-Freiraum.ogg|a=<<Germany>> (<<Berlin>>)}}
* {{audio|de|De-at-Freiraum.ogg|a=Austria}}
===名词===
{{de-noun|m,(e)s,^e}}
# (选择等的)[[空间]],[[自由]],[[余地]]
# [[空地]],空间
====变格====
{{de-ndecl|m,(e)s,^e}}
===延伸阅读===
* {{R:de:DWDS}}
* {{R:de:Duden}}
dqxqw7uoyflaryza5kmkrbyxvi6jlmu
Theke
0
805057
9938421
9549946
2026-10-04T14:18:08Z
TongcyDai
53191
9938421
wikitext
text/x-wiki
==德语==
===词源===
原指“纸盒子”,源自{{w|低地法兰克语}}和{{w|西中部德语}}方言(可考自16世纪初),可能经由{{der|de|dum|teke}}(对比过时现代{{cog|nl|teek}}),源自{{der|de|la|thēca}},源自{{der|de|grc|θήκη}}。本词在19世纪被引入现代标准德语,在德国西部比其他地方要更常用。
===发音===
* {{IPA|de|/ˈteːkə/}}
* {{audio|de|De-Theke.ogg}}
===名词===
{{de-noun|f}}
# ([[餐厅]]等的)[[柜台]],[[吧檯]]
#: {{syn|de|Tresen}}
# {{lb|de|方言|主要|德国西部}} (商店等的)[[收银台]],[[柜台]]
#: {{syn|de|Ladentisch}}
====变格====
{{de-ndecl|f}}
===延伸阅读===
* {{R:de:Duden}}
s749mjj2u9g4phku5usxx1t16zeb8gt
pendeln
0
820155
9938441
8865549
2026-10-04T17:01:27Z
Hzy980512
19278
9938441
wikitext
text/x-wiki
{{also|Pendeln}}
==德语==
===词源===
{{ety|de|:af|Pendel|-n}}
源自{{af|de|Pendel|-n}}.
===发音===
* {{audio|de|De-pendeln.ogg|a=<<Germany>> (<<Berlin>>)}}
===动词===
{{de-verb|<haben,sein>}} {{tlb|de|intransitive}}
# 来回[[摆动]],[[摇摆]] {{+aux|de|haben}}
#: {{uxi|de|den Kopf '''pendeln''' lassen|'''来回摆动'''头;让头晃来晃去}}
# 来回走;{{lb|de|尤指}} 上下班,[[通勤]] {{+aux|de|sein}}
#: {{ux|de|Jetzt kann ich von zu Hause aus '''pendeln'''.|我现在可以从家里'''通勤'''了。}}
# (摆渡车,列车等)来回运行,[[往返]] {{+aux|de|sein}}
====变位====
{{de-conj|<haben,sein>}}
====派生词汇====
{{col|de
|Pendler
}}
===延伸阅读===
* {{R:de:DWDS}}
* {{R:de:UniLeipzig}}
* {{R:de:Duden}}
* {{R:de:OpenThesaurus}}
==瑞典語==
===名詞===
{{head|sv|名詞變格形}}
# {{noun form of|sv|pendel||def|s}}
atfhieem0tju7zdrebtk9stsbcvqhsu
pendelnd
0
820159
9938482
4999721
2026-10-05T09:05:47Z
Sayonzei
40728
9938482
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ˈpɛndl̩nt/}}
* {{audio|de|De-pendelnd.ogg|a=柏林}}
===分詞===
{{head|de|現在分詞}}
# {{present participle of|de|pendeln}}
====變格====
{{de-adecl}}
36yjl4r1vpdts20ybnzcbo8zb5i1o3j
行為
0
942483
9938467
9931946
2026-10-05T07:16:11Z
Jiba1219
110530
/* 日語 */
9938467
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=行为|t2=行爲}}
===發音===
{{zh-pron
|m=xíngwéi
|c=hang4 wai4
|h=pfs=hàng-vì
|md=hèng-òi
|mn=hêng-ûi
|mn-t=gian5 ui5
|ma=y
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# {{lb|zh|countable|uncountable}} 受[[思想]][[支配]]而[[表現]]在外的[[舉止]][[動作]]{{zh-mw|m:個|m:種}}
#: {{zh-x|不 道德 的 行為{wéi} }}
#: {{zh-x|自殺 行為{wéi} }}
#: {{zh-x|文明 行為{wéi} }}
#: {{zh-x|行為{wéi} 不檢}}
#: {{zh-x|欺騙 行為{wéi} }}
#: {{zh-x|行為{wéi} 規範}}
#* {{zh-x|余 之 亡-妻 於 夫人 之 孫女 為{wéi} 第三 而 光祿 之 長{zhǎng}女,知 夫人 之 行為{wéi} 尤 詳,故 為{wéi} 之 銘。||CL|ref=宋·曾鞏《壽安縣太君張氏墓誌銘》}}
#* {{zh-x|他 在 這 一天 只有 像 木偶 一般 地{de} 行為{wéi}。||ref=巴金《滅亡》第四章}}
#* {{zh-x|^魯 ^@大海:哼{hng}!這 是 假 的,你們 自己 假作 的 電報 來 離間{jiàn} 我們 的。你們 這種 卑鄙 無賴 的 行為{wéi}!||ref=曹禺《雷雨》第二幕}}
# {{lb|zh|countable|uncountable}} [[行動]];[[行徑]]{{zh-mw|m:個|m:種}}
#: {{zh-x|戰爭 行為{wéi} }}
#: {{zh-x|恐怖 行為{wéi} }}
#: {{zh-x|違法 行為{wéi} }}
====同義詞====
* {{s|舉止}} {{qual|書面}} {{zh-l|行事}}、{{zh-l|作為}}
====衍生詞====
{{col3|zh|行為藝術|行為科學|行為能力|行為準則|性行為|社會行為|自助行為|行為主義|認知行為治療|侵權行為|長期行為|犯罪行為|認知行為療法|辯證行為療法|辯證行為治療}}
====相關詞====
* {{zh-l|活動}}
{{zh-cat|Intermediate}}
==日語==
{{ja-kanjitab|こう|い|yomi=kanon,on}}
===發音===
* {{ja-pron|こうい|acc=1|acc_ref=NHK}}
===名詞===
{{ja-noun|hhira=かうゐ|こうい}}
# [[行動]],[[舉止]]
#: {{ja-usex|[[テロ]]'''行%為'''|テロ '''こう%い'''|恐怖'''行為'''}}
#: {{ja-usex|[[核]][[開%発]][[は]][[挑%発]]'''行%為'''[[だ]]。|かく かい%はつ は ちょう%はつ '''こう%い''' だ。|核子開發是挑釁'''行為'''。}}
# [[執行]]
===來源===
{{reflist}}
==越南語==
{{vi-hantutab}}
===名詞===
{{vi-noun|sc=Hani}}
# {{alt form|vi|行爲||{{vi-Han form of|hành vi}}}}
5zmieq28qwphrq11m7s3lt4d4icizco
主観
0
970003
9938469
9922180
2026-10-05T07:38:01Z
Jiba1219
110530
9938469
wikitext
text/x-wiki
==日語==
{{ja-kanjitab|しゅ|かん|yomi=kanon,o}}
===發音===
{{ja-pron|しゅかん|acc=0|dev=1|acc_ref=NHK}}
===名詞===
{{ja-noun|しゅかん|hhira=しゆくわん}}
# [[主觀]]
====反義詞====
* {{ja-r|客%観|きゃっ%かん}}
====派生詞彙====
* {{ja-r|主%観%的|しゅ%かん%てき}}
===參考資料===
{{reflist}}
{{c|ja|哲學|sort=しゅかん}}
i2zgwy3g5p9ok11wjyzkq6nditsq6xz
主管
0
1114668
9938468
8300158
2026-10-05T07:37:00Z
Jiba1219
110530
/* 日語 */
9938468
wikitext
text/x-wiki
==漢語==
{{zh-forms}}
===發音===
{{zh-pron
|m=zhǔguǎn
|c=zyu2 gun2
|h=pfs=chú-kón
|mn=chú-koán
|cat=v,n
}}
===動詞===
{{zh-verb}}
# [[負擔]][[責任]]
#: {{zh-x|主管 部門|}}
# [[主持]][[管理]]
{{例|宋·王禹偁《謫居感事》詩|縣花聊'''主管''',寺棘且羈縻。}}
{{例|宋·吳自牧《夢粱錄‧內司官》|內官散祗候,不記多數,各有所轄職名,'''主管'''事務。}}
====翻譯====
{{trans-top|負擔責任}}
* 阿塞拜疆語:{{t|az|məsul}}, {{t|az|cavabdeh}}
* 保加利亞語:{{t|bg|отговорен за}}
* 荷蘭語:{{t+|nl|verantwoordelijk}}
* 英語:{{t+|en|in charge}}
* 芬蘭語:參見{{t+|fi|vastata}}, {{t+|fi|vastuu}}
* 法語:{{t+|fr|responsable}}
* 德語:{{t+|de|verantwortlich}}, {{t+|de|zuständig}}
* 希臘語:{{t+|el|υπεύθυνος}}, {{t+|el|αρμόδιος}}
* 意大利語:{{t|it|in carica}}
* 庫爾德語:
*: 中庫爾德語:{{t|ckb|گرتنە ئەستۆ}}
* 波斯語:{{t+|fa|مسئول|tr=mas'ul}}
* 波蘭語:{{t+|pl|odpowiedzialny}}
* 葡萄牙語:{{t+|pt|incumbido}}
* 俄語:{{t+|ru|отве́тственный}} {{l|ru|за}}(+賓格), {{t+|ru|отвеча́ющий}} {{l|ru|за}}(+賓格)
* 蘇格蘭蓋爾語:{{t|gd|an urra ri}}
* 塞爾維亞-克羅地亞語:{{t+|sh|odgovoran}}
* 西班牙語:{{t+|es|encargado}},{{t+|es|responsable}}, {{t|es|a cargo}}
* 烏茲別克語:{{t+|uz|javobgarlik}}
{{trans-bottom}}
===名詞===
{{head|zh|名詞}}
# [[掌管]]某種專門[[事務]]的[[職官]]
{{例|《文獻通考‧職官十六》|熙寧七年……令杞等提舉,置都大提舉及'''主管'''、同'''主管''',各因其資品高下除授云。}}
{{例|《宋史‧職官志十》|宋制,設祠祿之官,以佚老優賢……又有提舉、提點、'''主管'''。}}
# [[管家]]。
{{例|《京本通俗小說‧志誠張主管》|一個開線鋪的員外張士廉……家有十萬貲財,用兩個'''主管'''營運。}}
{{例|《水滸傳》第六二回|蔡福來到樓上看時,卻是'''主管'''李固。各施禮罷,蔡福道:‘'''主管'''有何見教?’}}
# 指[[店鋪]][[掌事]]人
{{例|《古今小說‧新橋市韓五賣春情》|新造一所房屋,令子吳山,再撥'''主管'''幫扶,也好開一個舖。}}
# 領導人;[[老闆]];[[首領]];[[監督]]
#: {{zh-x|假如 給 你 一個 機會 當 '''主管''',你 如何 解決 實際 問題 ?|}}
====翻譯====
{{trans-top|公司或計畫的領導人}}
* 加泰羅尼亞語:{{t|ca|supervisor|m}}
* 捷克語:{{t+|cs|dozorce|m}}, {{t+|cs|inspektor|m}}, {{t|cs|dohližitel|m}}
* 荷蘭語:{{t+|nl|toezichthouder|m}}, {{t+|nl|leidinggevende}}
* 英語:{{t+|en|supervisor}}
* 芬蘭語:{{t+|fi|valvoja}}, {{t+|fi|tarkastaja}}
* 法語:{{t+|fr|superviseur|m}}
* 加利西亞語:{{t+|gl|supervisor|m}}
* 格魯吉亞語:{{t|ka|უფროსი}}, {{t|ka|ხელმძღვანელი}}, {{t|ka|მენეჯერი}}, {{t|ka|ზედამხედველი}}, {{t|ka|ინსპექტორი}}, {{t|ka|კონტროლერი}}
* 德語:{{t+|de|Aufseher}}, {{t+|de|Vorgesetzter|m}}
* 希臘語:{{t+|el|επόπτης|m}}
*: 古希臘語:{{t|grc|ἐπόπτης|m}}, {{t|grc|ἐπίσκοπος|m}}
* 匈牙利語:{{t+|hu|munkafelügyelő}}
* 愛爾蘭語:{{t|ga|maor|m}}
* 意大利語:{{t|it|supervisore|m}}
* 日語:{{t+|ja|主管|tr=しゅかん, shukan}}, {{t|ja|スーパーバイザー|tr=sūpābaizā}}, {{t+|ja|監督}}, {{t+|ja|監察}}, {{t+|ja|管理者}}, {{t|ja|管理人}}
* 高棉語:{{t|km|មេការ|tr=mee kaa}}
* 庫爾德語:
*: 中庫爾德語:{{t+|ckb|چاودێر}}
* 挪威語:
*: 書面挪威語:{{t|nb|oppsynsmann|m}}
*: 新挪威語:{{t|nn|oppsynsmann|m}}
* 門諾低地德語:{{t|pdt|Äwasechta|m}}
* 波蘭語:{{t+|pl|naczelnik|m}}, {{t+|pl|nadzorca|m}}
* 葡萄牙語:{{t+|pt|supervisor|m}}
* 俄語:{{t+|ru|нача́льник|m}}, {{t+|ru|руководи́тель|m}}, {{qualifier|貶義}} {{t+|ru|надсмо́трщик|m}}, {{qualifier|貶義}} {{t+|ru|надзира́тель|m}}, {{qualifier|製造業、建築業}} {{t+|ru|ма́стер|m}}, {{t+|ru|суперва́йзер|m|tr=supervájzɛr}}
* 塞爾維亞-克羅地亞語:
*: 西里爾字母:{{t|sh|супервизор|m|sc=Cyrl}}, {{t|sh|надзорник|m|sc=Cyrl}}, {{t|sh|надгледник|m|sc=Cyrl}}, {{t|sh|надређени|m|sc=Cyrl}}, {{t|sh|претпостављени|m|sc=Cyrl}}
*: 拉丁字母:{{t+|sh|supervizor|m}}, {{t+|sh|nadzornik|m}}, {{t+|sh|nadglednik|m}}, {{t+|sh|nadređeni|m}}, {{t+|sh|pretpostavljeni|m}}
* 西班牙語:{{t+|es|supervisor|m}}, {{t+|es|director|m}}
* 他加祿語:{{t|tl|tagamasid}}
* 意第緒語:{{t|yi|אויגהאַלטער|m}}
{{trans-bottom}}
{{c|zh|人|職業}}
==日語==
{{ja-kanjitab|しゅ|かん|yomi=kanon,on}}
===名詞===
{{ja-noun|しゅかん}}
# [[管理]]
# [[管理人]]/[[指導者]]
===動詞===
{{ja-verb-suru|tr=trans|しゅかん}}
# [[監督]]
====活用====
{{ja-suru|しゅかん}}
==朝鮮語==
{{ko-hanjatab}}
===名詞===
{{ko-noun|hangeul=주관}}
# {{hanja form of|주관|}}
==越南語==
{{vi-hantutab}}
===名詞===
{{vi-noun|sc=Hani}}
# {{han tu form of|chủ quản|}}
fxhugxwu2ofl110awy3j59cfg0qejc0
9938470
9938468
2026-10-05T07:38:52Z
Jiba1219
110530
/* 日語 */
9938470
wikitext
text/x-wiki
==漢語==
{{zh-forms}}
===發音===
{{zh-pron
|m=zhǔguǎn
|c=zyu2 gun2
|h=pfs=chú-kón
|mn=chú-koán
|cat=v,n
}}
===動詞===
{{zh-verb}}
# [[負擔]][[責任]]
#: {{zh-x|主管 部門|}}
# [[主持]][[管理]]
{{例|宋·王禹偁《謫居感事》詩|縣花聊'''主管''',寺棘且羈縻。}}
{{例|宋·吳自牧《夢粱錄‧內司官》|內官散祗候,不記多數,各有所轄職名,'''主管'''事務。}}
====翻譯====
{{trans-top|負擔責任}}
* 阿塞拜疆語:{{t|az|məsul}}, {{t|az|cavabdeh}}
* 保加利亞語:{{t|bg|отговорен за}}
* 荷蘭語:{{t+|nl|verantwoordelijk}}
* 英語:{{t+|en|in charge}}
* 芬蘭語:參見{{t+|fi|vastata}}, {{t+|fi|vastuu}}
* 法語:{{t+|fr|responsable}}
* 德語:{{t+|de|verantwortlich}}, {{t+|de|zuständig}}
* 希臘語:{{t+|el|υπεύθυνος}}, {{t+|el|αρμόδιος}}
* 意大利語:{{t|it|in carica}}
* 庫爾德語:
*: 中庫爾德語:{{t|ckb|گرتنە ئەستۆ}}
* 波斯語:{{t+|fa|مسئول|tr=mas'ul}}
* 波蘭語:{{t+|pl|odpowiedzialny}}
* 葡萄牙語:{{t+|pt|incumbido}}
* 俄語:{{t+|ru|отве́тственный}} {{l|ru|за}}(+賓格), {{t+|ru|отвеча́ющий}} {{l|ru|за}}(+賓格)
* 蘇格蘭蓋爾語:{{t|gd|an urra ri}}
* 塞爾維亞-克羅地亞語:{{t+|sh|odgovoran}}
* 西班牙語:{{t+|es|encargado}},{{t+|es|responsable}}, {{t|es|a cargo}}
* 烏茲別克語:{{t+|uz|javobgarlik}}
{{trans-bottom}}
===名詞===
{{head|zh|名詞}}
# [[掌管]]某種專門[[事務]]的[[職官]]
{{例|《文獻通考‧職官十六》|熙寧七年……令杞等提舉,置都大提舉及'''主管'''、同'''主管''',各因其資品高下除授云。}}
{{例|《宋史‧職官志十》|宋制,設祠祿之官,以佚老優賢……又有提舉、提點、'''主管'''。}}
# [[管家]]。
{{例|《京本通俗小說‧志誠張主管》|一個開線鋪的員外張士廉……家有十萬貲財,用兩個'''主管'''營運。}}
{{例|《水滸傳》第六二回|蔡福來到樓上看時,卻是'''主管'''李固。各施禮罷,蔡福道:‘'''主管'''有何見教?’}}
# 指[[店鋪]][[掌事]]人
{{例|《古今小說‧新橋市韓五賣春情》|新造一所房屋,令子吳山,再撥'''主管'''幫扶,也好開一個舖。}}
# 領導人;[[老闆]];[[首領]];[[監督]]
#: {{zh-x|假如 給 你 一個 機會 當 '''主管''',你 如何 解決 實際 問題 ?|}}
====翻譯====
{{trans-top|公司或計畫的領導人}}
* 加泰羅尼亞語:{{t|ca|supervisor|m}}
* 捷克語:{{t+|cs|dozorce|m}}, {{t+|cs|inspektor|m}}, {{t|cs|dohližitel|m}}
* 荷蘭語:{{t+|nl|toezichthouder|m}}, {{t+|nl|leidinggevende}}
* 英語:{{t+|en|supervisor}}
* 芬蘭語:{{t+|fi|valvoja}}, {{t+|fi|tarkastaja}}
* 法語:{{t+|fr|superviseur|m}}
* 加利西亞語:{{t+|gl|supervisor|m}}
* 格魯吉亞語:{{t|ka|უფროსი}}, {{t|ka|ხელმძღვანელი}}, {{t|ka|მენეჯერი}}, {{t|ka|ზედამხედველი}}, {{t|ka|ინსპექტორი}}, {{t|ka|კონტროლერი}}
* 德語:{{t+|de|Aufseher}}, {{t+|de|Vorgesetzter|m}}
* 希臘語:{{t+|el|επόπτης|m}}
*: 古希臘語:{{t|grc|ἐπόπτης|m}}, {{t|grc|ἐπίσκοπος|m}}
* 匈牙利語:{{t+|hu|munkafelügyelő}}
* 愛爾蘭語:{{t|ga|maor|m}}
* 意大利語:{{t|it|supervisore|m}}
* 日語:{{t+|ja|主管|tr=しゅかん, shukan}}, {{t|ja|スーパーバイザー|tr=sūpābaizā}}, {{t+|ja|監督}}, {{t+|ja|監察}}, {{t+|ja|管理者}}, {{t|ja|管理人}}
* 高棉語:{{t|km|មេការ|tr=mee kaa}}
* 庫爾德語:
*: 中庫爾德語:{{t+|ckb|چاودێر}}
* 挪威語:
*: 書面挪威語:{{t|nb|oppsynsmann|m}}
*: 新挪威語:{{t|nn|oppsynsmann|m}}
* 門諾低地德語:{{t|pdt|Äwasechta|m}}
* 波蘭語:{{t+|pl|naczelnik|m}}, {{t+|pl|nadzorca|m}}
* 葡萄牙語:{{t+|pt|supervisor|m}}
* 俄語:{{t+|ru|нача́льник|m}}, {{t+|ru|руководи́тель|m}}, {{qualifier|貶義}} {{t+|ru|надсмо́трщик|m}}, {{qualifier|貶義}} {{t+|ru|надзира́тель|m}}, {{qualifier|製造業、建築業}} {{t+|ru|ма́стер|m}}, {{t+|ru|суперва́йзер|m|tr=supervájzɛr}}
* 塞爾維亞-克羅地亞語:
*: 西里爾字母:{{t|sh|супервизор|m|sc=Cyrl}}, {{t|sh|надзорник|m|sc=Cyrl}}, {{t|sh|надгледник|m|sc=Cyrl}}, {{t|sh|надређени|m|sc=Cyrl}}, {{t|sh|претпостављени|m|sc=Cyrl}}
*: 拉丁字母:{{t+|sh|supervizor|m}}, {{t+|sh|nadzornik|m}}, {{t+|sh|nadglednik|m}}, {{t+|sh|nadređeni|m}}, {{t+|sh|pretpostavljeni|m}}
* 西班牙語:{{t+|es|supervisor|m}}, {{t+|es|director|m}}
* 他加祿語:{{t|tl|tagamasid}}
* 意第緒語:{{t|yi|אויגהאַלטער|m}}
{{trans-bottom}}
{{c|zh|人|職業}}
==日語==
{{ja-kanjitab|しゅ|かん|yomi=kanon,on}}
===發音===
{{ja-pron|しゅかん|acc=0|dev=1|acc_ref=NHK}}
===名詞===
{{ja-noun|しゅかん}}
# [[管理]]
# [[管理人]]/[[指導者]]
===動詞===
{{ja-verb-suru|tr=trans|しゅかん}}
# [[監督]]
====活用====
{{ja-suru|しゅかん}}
===參考資料===
{{reflist}}
==朝鮮語==
{{ko-hanjatab}}
===名詞===
{{ko-noun|hangeul=주관}}
# {{hanja form of|주관|}}
==越南語==
{{vi-hantutab}}
===名詞===
{{vi-noun|sc=Hani}}
# {{han tu form of|chủ quản|}}
q86ifwyiqafadgvozsg5khrjxbezy0o
賘
0
1159701
9938461
5218352
2026-10-04T23:39:44Z
Fglffer
55252
9938461
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=154|rad=貝|as=07|sn=14|four=|canj=BCIGI|ids=⿰貝庒}}
====來源====
* {{Han ref|kx=1209.081|hdz=63643.041|uh=8CD8}}
==漢語==
{{zh-see|贓|v}}
qxh2hq53ycymzzbj3h3vbyyi4lo7ob7
奴工
0
1178820
9938466
6974489
2026-10-05T03:37:56Z
Public class
107487
內容擴充
9938466
wikitext
text/x-wiki
==漢語==
{{zh-forms}}
===發音===
{{zh-pron
|m=núgōng
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# 被當成[[奴隸]]般[[役使]]的[[工人]]
#* {{quote-journal|zh|date=Oct 4 2026|title=“奴工理論”成為中國網絡流行新詞|journal=聯合早報|url=https://www.zaobao.com.sg/news/china/story20261004-9781063}}
#*: {{zh-q|“奴工 理論”稱,無論 一個 系統 看起來 多麼 高端 先進,只要 其中 一個 環節 使用 了“奴工”方式,由於 木桶 效應,最終 整個 系統 提供 的 產品 或 服務 必然 也是 低 質量 的。}}
62om1vjmsxrz7blzd1kf9ghxrl5piyd
Module:Th-hom/data
828
1376220
9938472
9045579
2026-10-05T08:42:51Z
Octahedron80
9183
9938472
Scribunto
text/plain
-- Must keep only correct spellings.
local hom = {
['กด'] = {'กช','กฎ','กด'},
['กน'] = {'กน','กล'},
['กอ'] = {'ก','ก.','กอ'},
['กอบ'] = {'กอบ','กอปร'},
['กอ-ระ-กด'] = {'กรกช','กรกฎ','กรกฏ'},
['กะ-บิน'] = {'กบินทร์','กบิล','กะบิล'},
['กะ-โบน'] = {'กโบร','กโบล'},
['กะ-ปิ'] = {'กปิ','กะปิ'},
['กะ-มะ-ลาด'] = {'กมลาศ','กมลาสน์'},
['กะ-รัน'] = {'กรัณฑ์','กรัณย์'},
['กะ-ลา'] = {'กลา','กะลา'},
['กะ-สัด-ตฺรี'] = {'กษัตรี','กษัตรีย์'},
['กะ-เสียน'] = {'เกษียณ','เกษียน','เกษียร'},
['กะ-หฺรีด'] = {'กรีษ','กรีส'},
['กัด'] = {'กรรตุ','กัด'},
['กัน'] = {'กรร','กรรฐ์','กรรณ','กรรม์','กัญ','กัณฐ์','กัณฑ์','กัณณ์','กัณห์','กัน','กันต์','กันย์','กัลป์'},
['กัน-ดาน'] = {'กันดาร','กันดาล'},
['กัน-ยา'] = {'กัญญา','กันยา'},
['กัน-แสง'] = {'กรรแสง','กันแสง'},
['กับ'] = {'กับ','กัป'},
['กาด'] = {'กาจ','กาฐ','กาด','การ์ด'},
['ก๊าด'] = {'ก๊าซ','ก๊าด','การ์ด'},
['กาน'] = {'กาญจน์','กาน','กานต์','กานท์','การ','การณ์','การย์','กาล','กาฬ'},
['กาบ'] = {'กาบ','กาพย์'},
['กา-รัน'] = {'การันย์','การันต์'},
['กา-รุน'] = {'การุญ','การุณย์'},
['ก้าว'] = {'ก้าว','เก้า'},
['กำ'] = {'กรรม','กำ'},
['กำ-นัน'] = {'กำนัน','กำนัล'},
['กำ-มะ-กอน'] = {'กรรมกร','กรรมกรณ์'},
['กำ-มาน'] = {'กรรมาร','กัมมาร'},
['กุด'] = {'กุฏิ','กุด'},
['กุน'] = {'กุณฑ์','กุน','กุล'},
['กุม'] = {'กุม','กุมภ์'},
['กูด'] = {'กูฏ','กูด'},
['กูน'] = {'กูณฑ์','กูน'},
['กฺรน'] = {'กรณฑ์','กรน'},
['กฺระ-ดาด'] = {'กระดาด','กระดาษ'},
['กฺระ-บวน'] = {'กระบวน','กระบวร'},
['กฺระ-เบน'] = {'กระเบญ','กระเบน'},
['กฺระ-สาบ'] = {'กระษาปณ์','กระสาบ'},
['กฺระ-เสียน'] = {'กระเษียร','กระเสียน','กระเสียร'},
['กฺระ-ไส'] = {'กระษัย','กระไส'},
['กฺระ-หฺนก'] = {'กระนก','กระหนก'},
['กฺราว'] = {'กราว','กราวด์'},
['กฺรำ'] = {'กรัม','กรำ'},
['กฺรี-ทา'] = {'กรีฑา','กรีธา'},
['กฺลด'] = {'กลด','กลศ'},
['เก'] = {'เก','เกย์'},
['เกด'] = {'เกด','เกตุ','เกศ','เกส'},
['เก็ด'] = {'เก็จ','เก็ด'},
['เกน'] = {'เกณฑ์','เกน'},
['เก-สา'] = {'เกศา','เกสา'},
['เก-สี'] = {'เกศี','เกสี'},
['เกา-บิน'] = {'เกาบิน','เกาบิล'},
['เกียด'] = {'เกียจ','เกียด','เกียรติ'},
['โกด'] = {'โกฏิ','โกฐ','โกศ','โกษ','โกส'},
['โก-สน'] = {'โกศล','โกสน'},
['โกฺรด'] = {'โกรด','โกรธ','โกรศ'},
['ไก๊'] = {'ไก๊','ไกด์','ไก๊ด์'},
['ขอ'] = {'ข','ข.','ขอ','ฃ','ฃอ'},
['ขอด'] = {'ขอด','คอร์ด','คอร์ต'},
['ขัด'] = {'ขัช','ขัด'},
['ขัน'] = {'ขรรค์','ขัณฑ์','ขัน','ขันธ์'},
['ขาน'] = {'ขาน','ขาล'},
['ขีด-คั่น'] = {'ขีดขั้น','ขีดคั่น'},
['เข็น'] = {'เข็ญ','เข็น'},
['ไข'] = {'ขัย','ไข'},
['คด'] = {'คช','คด','คต'},
['คน'] = {'คน','คนธ์','คล'},
['คม'] = {'คม','คมน์'},
['ควน'] = {'ควณ','ควน','ควร'},
['คอ'] = {'ค','ค.','คอ','คอร์','ฅ','ฅอ','ฆ'},
['ค็่อน'] = {'ข้อน','ค่อน'}, --short
['ค็่อย'] = {'ข้อย','ค่อย'}, --short
['ค้อส'] = {'คอร์ส','คอส'},
['คะ-นะ'] = {'คณะ','ฆน','ฆนะ'},
['คัด'] = {'คัด','คัต'},
['คัน'] = {'ครรภ์','คัน','คันถ์','คันธ์','คัล'},
['คั่น'] = {'ขั้น','คั่น'},
['คับ'] = {'ครรภ','คับ','คัป','คัพภ์'},
['คั่ว'] = {'ขั้ว','คั่ว'},
['ค่า'] = {'ข้า','ค่า','ฆ่า'},
['ค่าง'] = {'ข้าง','ค่าง'},
['คาด'] = {'คาด','คาธ','คาส','ฆาต'},
['คาน'] = {'คาน','ฆาน'},
['คำ-นวน'] = {'คำนวณ','คำนวร'},
['คี่'] = {'ขี้','คี่'},
['คุด'] = {'คุด','คุต'},
['คูน'] = {'คูณ','คูน'},
['คฺราด'] = {'คราด','คราส'},
['คฺรึน'] = {'คฤนถ์','ครึน'},
['คฺวั่น'] = {'ขวั้น','ควั่น'},
['คฺวาน'] = {'ควาญ','ควาน'},
['เคียน'] = {'เคียน','เคียร'},
['เคี่ยว'] = {'เขี้ยว','เคี่ยว'},
['แค'] = {'แค','แคร์'},
['โคด'] = {'โคตร','โฆษ'},
['งอ'] = {'ง','ง.','งอ'},
['จน'] = {'จญ','จน','จล','จลน์'},
['จอ'] = {'จ','จ.','จอ'},
['จอน'] = {'จร','จอน'},
['จะ-หฺรด'] = {'จรด','จรส'},
['จัก'] = {'จัก','จักร'},
['จัน'] = {'จรรย์','จัณฑ์','จัน','จันท์','จันทร์','จันทน์'},
['จัน-โจด'] = {'จันโจษ','จรรโจษ'},
['จาก'] = {'จาก','จาค'},
['จาน'] = {'จาน','จาร'},
['จาบ'] = {'จาบ','จาป'},
['จำ'] = {'จรรม','จำ'},
['จำ-นัน'] = {'จำนรรจ์','จำนัล'},
['จำ-เนียน'] = {'จำเนียน','จำเนียร'},
['จิด'] = {'จิต','จิตต์','จิตร'},
['จุน'] = {'จุณ','จุน','จุล'},
['โจด'] = {'โจท','โจทก์','โจทย์','โจษ'},
['โจน'] = {'โจน','โจร','โจล'},
['ไจ'] = {'ใจ','ไจ'},
['ฉอ'] = {'ฉ','ฉ.'},
['ฉัด'] = {'ฉัด','ฉัตร'},
['ฉัน'] = {'ฉัน','ฉันท์'},
['ฉาบ'] = {'ฉาบ','ฉาป'},
['ฉิน'] = {'ฉิน','ฉินท์'},
['เฉด'] = {'เฉด','เฉท'},
['ชง'] = {'ชง','ชงฆ์'},
['ชน'] = {'ชน','ชนม์','ชล'},
['ชวน'] = {'ชวน','ชวร'},
['ชอ'] = {'ช','ช.','ฌ'},
['ช่อ'] = {'ฉ้อ','ช่อ'},
['ช็อก'] = {'ช็อก','ชอล์ก'},
['ชอน'] = {'ชร','ชอน'},
['ชะ-เลง'] = {'ชะเลง','เชลง'},
['ชัก'] = {'ชัก','ชัค'},
['ชัด'] = {'ชัฏ','ชัด'},
['ชาด'] = {'ชาด','ชาต','ชาติ'},
['ช้าด'] = {'ชาด','ชาร์จ','ชาร์ต'},
['ชาน'] = {'ชาญ','ชาน','ชาร','ชาล','ฌาน'},
['ชำ-นัน'] = {'ชำนรร','ชำนัญ','ชำนัน'},
['ชำ-เนียน'] = {'ชำเนียน','ชำเนียร'},
['ชิด'] = {'ชิด','ชิต'},
['ชิบ'] = {'ชิบ','ชิป'},
['เช็ก'] = {'เช็ก','เช็ค'},
['เชอ'] = {'เชอ','เฌอ'},
['เชา'] = {'เชาว์','เชาวน์'},
['เชียน'] = {'เชียร','เชียรณ์'},
['แช'] = {'แช','แชร์'},
['โชก'] = {'โชก','โชค'},
['โชด'] = {'โชต','โชติ'},
['ไช'] = {'ชัย','ไช','ไชย'},
['ซวด'] = {'ซวด','ทรวด'},
['ซอ'] = {'ซ','ซ.','ซอ','ทรอ'},
['ซ็่อม'] = {'ซ่อม','ส้อม'}, --short
['ซับ'] = {'ซับ','ทรัพย์'},
['ซ่า'] = {'ซ่า','ซ่าส์'},
['ซ่าง'] = {'ซ่าง','สร้าง'},
['ซาบ'] = {'ซาบ','ทราบ'},
['ซาย'] = {'ไซน์','ทราย'},
['ซิก'] = {'ซิก','ซิกข์'},
['ซิ่น'] = {'ซิ่น','สิ้น'},
['ซิบ'] = {'ซิบ','ซิป'},
['ซุบ'] = {'ซุบ','ซุป'},
['ซู่'] = {'ซู่','สู้'},
['เซ็่น'] = {'เซ่น','เส้น'}, --short
['เซล'] = {'เซล','เซลล์','เซลส์'},
['เซ่อ'] = {'เซ่อ','เซอร์'},
['เซ่า'] = {'เศร้า','เส้า'},
['เซี่ยว'] = {'เซี่ยว','เสี้ยว'},
['แซ่'] = {'แซ่','แส้'},
['โซม'] = {'โซม','โซรม','โทรม'},
['ไซ'] = {'ไซ','ไทร'},
['ไซ่'] = {'ไส้','ไสร้'},
['ไซ้'] = {'ไซ้','ไซซ์','ไซต์','ไซร้'},
['ดวด'] = {'ดวจ','ดวด'},
['ดอ'] = {'ฎ','ด','ดอ'},
['ดอน'] = {'ดร','ดอน'},
['ดาด'] = {'ดาด','ดาษ'},
['ดาน'] = {'ดาน','ดาร','ดาล'},
['ดาม'] = {'ดาม','ดามพ์'},
['ด้าย'] = {'ด้าย','ได้'},
['ดาว'] = {'ดาว','ดาวน์'},
['ดำ'] = {'ดำ','ดัมพ์'},
['ดำ-นาน'] = {'ดำนาณ','ดำนาน'},
['ดิด'] = {'ดิฐ','ดิตถ์','ดิษฐ์'},
['ดุด'] = {'ดุจ','ดุด'},
['ดุน'] = {'ดุน','ดุล','ดุลย์'},
['ดุ-สิด'] = {'ดุษิต','ดุสิต'},
['เดด'] = {'เดช','เดชน์','เดต'},
['เด็ด'] = {'เด็จ','เด็ด'},
['เดียน'] = {'เดียร','เดียรถ์'},
['โดน'] = {'โดน','โดร','โดรณ'},
['ได'] = {'ใด','ได','ไดร์'},
['ตอ'] = {'ฏ','ต','ต.','ตอ'},
['ตะ-เค่'] = {'ตะเข้','ตะเฆ่'},
['ตัก'] = {'ตรรก','ตัก','ตักร'},
['ตัด'] = {'ตัด','ตัถย์'},
['ตาน'] = {'ตาน','ตาล','ตาฬ'},
['ต้าย'] = {'ใต้','ไต้'},
['ตุน'] = {'ตุน','ตุล','ตุลย์'},
['ตฺรวด'] = {'ตรวจ','ตรวด'},
['ตฺรี'] = {'ตรี','ตฤๅ'},
['เตียน'] = {'เตียน','เตียรถ์'},
['ไตฺร'] = {'ตรัย','ไตร'},
['ถอ'] = {'ฐ','ถ','ถ.'},
['ถะ-หฺวัน'] = {'ถวัล','ถวัลย์'},
['ถะ-หฺวิน'] = {'ถวิน','ถวิล'},
['ถาน'] = {'ฐาน','ถาน'},
['ถุน'] = {'ถุน','ถุล'},
['เถน'] = {'เถน','เถร'},
['ทง'] = {'ธง','ธงก์'},
['ทด'] = {'ทด','ทท','ทศ'},
['ทน'] = {'ทน','ทนต์','ทล','ธน'},
['ท่วย'] = {'ถ้วย','ท่วย'},
['ทอ'] = {'ฑ','ฒ','ท','ท.','ทอ','ธ','ธ.'},
['ท็่อง'] = {'ถ้อง','ท่อง'}, --short
['ทอน'] = {'ทอน','ธร'},
['ทอ-ระ-มาน'] = {'ทรมาน','ธรมาน'},
['ทอ-ระ-ราด'] = {'ทรราช','ทรราชย์'},
['ทะ-ลาย'] = {'ทลาย','ทะลาย'},
['ทะ-วาย'] = {'ทวาย','ทะวาย'},
['ทะ-วิ-บด'] = {'ทวิบถ','ทวิบท'},
['ทัก'] = {'ทัก','ทักข์','ทักษ์'},
['ทัด'] = {'ทัด','ทัต','ทัศ','ทัศน์','ธัช'},
['ทัน'] = {'ทัณฑ์','ทัน','ทันต์','ทันธ์','ธรรม์','ธัญ'},
['ทับ'] = {'ทรรป','ทรรปณ์','ทับ','ทัพ'},
['ทับ-ปะ-นะ'] = {'ทรรปณะ','ทัปนะ'},
['ท่า'] = {'ถ้า','ท่า'},
['ทาด'] = {'ทาษ','ทาส','ธาตุ'},
['ทาน'] = {'ทาน','ทานต์','ทาร','ธาร'},
['ทา-ยาด'] = {'ทายาด','ทายาท'},
['ท้าว'] = {'ท้าว','เท้า'},
['ทำ'] = {'ทำ','ธรรม'},
['ทิ-คำ-พอน'] = {'ทิคัมพร','ทิฆัมพร'},
['ทิด'] = {'ทิช','ทิด','ทิต','ทิศ'},
['ทิบ'] = {'ทิป','ทิพ','ทิพย์'},
['ทุก'] = {'ทุก','ทุกข์'},
['ทุด'] = {'ทุส','ธุช','ธุต'},
['ทุ-ระ-กำ'] = {'ทุรกรรม','ธุรกรรม'},
['ทูน'] = {'ทูน','ทูล'},
['ทูบ'] = {'ทูบ','ธูป'},
['เท'] = {'เท','เทห์'},
['เทด'] = {'เทศ','เทศน์'},
['เท-พิน'] = {'เทพิน','เทพินทร์'},
['เท-วัน'] = {'เทวัญ','เทวัน'},
['เท่า'] = {'เฒ่า','เถ้า','เท่า'},
['เทิน'] = {'เทอญ','เทิน','เทิร์น'},
['เทียน'] = {'เทียน','เทียร','เทียรฆ์','เธียร'},
['โท'] = {'โท','โทร'},
['โท-ระ-ทัด'] = {'โทรทรรศน์','โทรทัศน์'},
['ไท'] = {'ไท','ไทย'},
['นบ'] = {'นบ','นพ','นภ'},
['นอ'] = {'ณ','น','น.','นอ'},
['นอ-ระ-กาน'] = {'นรกานต์','นรการ'},
['นะ'] = {'ณ','นะ'},
['นัก'] = {'นัก','นัข','นัค'},
['นัด'] = {'นัจ','นัฏ','นัฑ','นัด','นัตถุ์'},
['น่า'] = {'น่า','หน้า'},
['นาก'] = {'นาก','นาค'},
['นาด'] = {'นาฏ','นาด','นาถ','นาท','นาศ'},
['นิด'] = {'นิจ','นิด','นิตย์','นิติ','นิทร'},
['นิ-ติ-กอน'] = {'นิติกร','นิติกรณ์'},
['นิ-ติ-กาน'] = {'นิติการ','นิติการณ์'},
['นิ-ทาน'] = {'นิทาน','นิธาน'},
['นิ-ระ-มาน'] = {'นิรมาณ','นิรมาน'},
['นิ-โรด'] = {'นิโรช','นิโรธ'},
['นิ-วาด'] = {'นิวาต','นิวาส'},
['นิ-สาด'] = {'นิษาท','นิสาท'},
['นี่'] = {'นี่','หนี้'},
['นุด'] = {'นุช','นุด','นุต'},
['เน-ระ-นาด'] = {'เนรนาด','เนรนาถ'},
['เน่า'] = {'เน่า','เหน้า'},
['เนียน'] = {'เนียน','เนียร'},
['ไน'] = {'นัย','นัยน์','ใน','ไน'},
['บง'] = {'บง','บงก์','บงสุ์'},
['บด'] = {'บฏ','บด','บถ','บท'},
['บอ'] = {'บ','บ.','บอ'},
['บ่อ'] = {'บ่','บ่อ'},
['บอด'] = {'บอด','บอร์ด'},
['บอ-พิด'] = {'บพิตร','บพิธ'},
['บอ-ริ-พัน'] = {'บริพันธ์','บริภัณฑ์'},
['บะ-หฺรัด'] = {'บรัด','บรัศว์'},
['บัง-คน'] = {'บังคน','บังคล'},
['บัด'] = {'บัฏ','บัด','บัตร','บัทม์'},
['บัน'] = {'บรรณ','บรรพ์','บัน','บัล'},
['บัน-ดิด'] = {'บัณฑิต','บัณฑิตย์'},
['บัน-เดาะ'] = {'บัณเฑาะก์','บัณเฑาะว์'},
['บัน-ยง'] = {'บรรยง','บรรยงก์'},
['บัน-หฺลาด'] = {'บัลลาด','บัลลาสต์'},
['บับ'] = {'บรรพ','บัพ'},
['บา'] = {'บา','บาร์'},
['บาด'] = {'บาด','บาต','บาตร','บาท','บาศ','บาศก์'},
['บาน'] = {'บาน','บาล'},
['บิด'] = {'บิฐ','บิด','บิต'},
['บิน'] = {'บิณฑ์','บิน','บิล'},
['บุด'] = {'บุด','บุตร','บุษย์'},
['บุบ'] = {'บุบ','บุพ'},
['บูน'] = {'บูร','บูรณ์','บูรพ์'},
['ไบ'] = {'ใบ','ไบ'},
['ปอ'] = {'ป','ป.','ปอ'},
['ปอน'] = {'ปอน','ปอนด์'},
['ปะ-ติ'] = {'ปฏิ','ปติ'},
['ปะ-ติ-พาก'] = {'ปฏิพากย์','ปฏิภาค'},
['ปะ-ติ-วัด'] = {'ปฏิวัติ','ปติวัตร'},
['ปะ-ถะ-พี'] = {'ปฐพี','ปถพี'},
['ปะ-ริ-พัน'] = {'ปริพันธ์','ปริภัณฑ์'},
['ปะ-ริ-พาด'] = {'ปริภาษ','ปริภาษณ์'},
['ปะ-ริ-หาน'] = {'ปริหาน','ปริหาร'},
['ปะ-วาน'] = {'ปวาล','ปวาฬ'},
['ปะ-วิด'] = {'ปวิช','ปวิตร','ปวิธ'},
['ปะ-สาด'] = {'ปสาท','ปสาสน์'},
['ปะ-หาน'] = {'ปหาน','ปหาร'},
['ปะ-หฺรอด'] = {'ปรอด','ปรอท'},
['ปะ-หฺรัด'] = {'ปรัด','ปรัศว์'},
['ปัก'] = {'ปัก','ปักข์','ปักษ์'},
['ปัง'] = {'ปัง','ปังสุ์'},
['ปัด'] = {'ปัฏ','ปัด','ปัทม์'},
['ปาด'] = {'ปาด','ปาท','ปาส'},
['ปาน'] = {'ปาน','ปาล'},
['ปาม'] = {'ปาม','ปาล์ม'},
['ปุด'] = {'ปุฏ','ปุด','ปุตต์'},
['ปฺระ-กิด'] = {'ประกิด','ประกิต'},
['ปฺระ-กฺริด'] = {'ประกฤต','ประกฤติ'},
['ปฺระ-จัน'] = {'ประจัญ','ประจัน'},
['ปฺระ-จาก'] = {'ประจาก','ประจาค'},
['ปฺระ-ทาน'] = {'ประทาน','ประธาน'},
['ปฺระ-ทุด'] = {'ประทุฐ','ประทุษ','ประทุษฐ์'},
['ปฺระ-พัด'] = {'ประพัด','ประพัทธ์'},
['ปฺระ-พาด'] = {'ประพาต','ประพาส','ประภาษ','ประภาส'},
['ปฺระ-พฺรึด'] = {'ประพฤติ','ประพฤทธิ์'},
['ปฺระ-มวน'] = {'ประมวญ','ประมวล'},
['ปฺระ-วัด'] = {'ประวรรต','ประวรรตน์'},
['ปฺระ-วาด'] = {'ประวาต','ประวาส'},
['ปฺระ-วิด'] = {'ประวิช','ประวิตร'},
['ปฺระ-สบ'] = {'ประสบ','ประสพ'},
['ปฺระ-สม'] = {'ประศม','ประสม'},
['ปฺระ-สาด'] = {'ประศาสน์','ประสาท','ประสาธน์'},
['ปฺระ-สาน'] = {'ประสาน','ประสาร'},
['ปฺระ-สูด'] = {'ประสูต','ประสูติ'},
['ปฺระ-หาน'] = {'ประหาณ','ประหาร'},
['ปฺระ-หฺวัด'] = {'ประวัติ','ประหวัด'},
['ปฺระ-หฺวัด-กาน'] = {'ประวัติการ','ประวัติการณ์'},
['ปฺระ-หฺวัด-ติ-กาน'] = {'ประวัติการ','ประวัติการณ์'},
['ปฺราง'] = {'ปราง','ปรางค์'},
['ปฺราด'] = {'ปราชญ์','ปราด','ปราศ'},
['ปฺราน'] = {'ปราณ','ปราน'},
['ปฺรา-นี'] = {'ปราณี','ปรานี'},
['ปฺราบ'] = {'ปราบ','ปราปต์'},
['ปฺรา-ไส'] = {'ปราศรัย','ปราสัย'},
['ผอ'] = {'ผ','ผ.'},
['ผะ-เอิน'] = {'เผอิญ','เผอิล'},
['ฝอ'] = {'ฝ','ฝ.'},
['พง'] = {'พง','พงศ์'},
['พด'] = {'พจน์','พด'},
['พน'] = {'พน','พล'},
['พบ'] = {'พบ','ภพ'},
['พอ'] = {'พ','พ.','พอ','ภ','ภ.'},
['พอน'] = {'พร','พอน'},
['พะ-นะ'] = {'พน','ภณะ'},
['พะ-นิด'] = {'พณิช','พณิชย์'},
['พะ-ยด'] = {'พยชน์','พยศ'},
['พะ-ยัก'] = {'พยัก','พยัคฆ์'},
['พะ-ยาน'] = {'พยาน','พยาล'},
['พะ-ยุ'] = {'พยุ','พยุห์'},
['พัก'] = {'พรรค','พัก','พักตร์','พักร','ภักดิ์','ภักษ์','ภัค','ภัคน์'},
['พัด'] = {'พรรษ','พัช','พัฒน์','พัด','พัตร','พัทธ์','พัสตร์','ภัจ','ภัต','ภัตต์','ภัตร','ภัทร'},
['พัน'] = {'พรรค์','พรรณ','พัญจน์','พัน','พันธ์','พันธน์','พันธุ์','ภัณฑ์'},
['พับ'] = {'พับ','ภัพ'},
['พา'] = {'พา','ภา'},
['พ่า'] = {'ผ้า','พ่าห์'},
['พาก'] = {'พาก','พากย์','ภาค','ภาคย์'},
['พา-ชี'] = {'พาชี','ภาชี'},
['พาด'] = {'พาด','พาต','พาท','พาทย์','พาธ','พาส','พาสน์','ภาษ','ภาษณ์','ภาส','ภาสน์'},
['พาน'] = {'พาณ','พาน','พาล','พาฬ','ภาณ','ภาร'},
['พา-นิด'] = {'พาณิช','พาณิชย์','พานิช'},
['พา-นิ-นี'] = {'พาณินี','ภาณินี'},
['พา-นี'] = {'พาณี','ภาณี'},
['พาบ'] = {'ภาพ','ภาพย์'},
['พาม'] = {'พาม','ภาม'},
['พาย'] = {'พาย','ภาย'},
['พ่าย'] = {'ผ้าย','พ่าย'},
['พา-รา'] = {'พารา','ภารา'},
['พา-ลี'] = {'พาลี','พาฬี'},
['พิ-กัด'] = {'พิกัด','พิกัติ'},
['พิ-จิด'] = {'พิจิต','พิจิตร'},
['พิด'] = {'พิชญ์','พิตร','พิทย์','พิศ','พิษ','ภิท','ภิส'},
['พิน'] = {'พิณ','ภิน','ภินท์','ภินทน์'},
['พิ-นิด'] = {'พินิจ','พินิต','พินิศ'},
['พิ-พัด'] = {'พิพัฒ','พิพัฒน์','พิภัช'},
['พิ-พาก'] = {'พิพากษ์','พิภาค'},
['พิ-รุน'] = {'พิรุณ','พิรุฬห์'},
['พิ-โลน'] = {'พิโลน','พิโลล'},
['พิ-สัด'] = {'พิสัช','ภิษัช'},
['พี่'] = {'ผี้ว์','พี่'},
['พึ่ง'] = {'ผึ้ง','พึ่ง'},
['พืด'] = {'พืช','พืด'},
['พุก'] = {'พุก','ภุกต์'},
['พุด'] = {'พุฒ','พุด','พุทธ','พุธ','ภุช','ภุต','ภุส'},
['พู'] = {'พู','ภู'},
['พู่'] = {'ผู้','พู่','ภู่'},
['พูด'] = {'พูด','ภูต'},
['พฺรม'] = {'พรม','พรหม'},
['พฺรึด'] = {'พฤฒ','พฤต','พฤติ','พฤทธ์','พฤทธิ์','ภฤตย์','ภฤศ','ภฤษฏ์'},
['พฺรึน'] = {'พฤนต์','พฤนท์'},
['พฺรู'] = {'พรู','ภรู'},
['พฺลำ'] = {'พลัม','พลำ'},
['เพด'] = {'เพฐน์','เพตร','เพท','เพศ','เพส','เภท'},
['เพ็ด'] = {'เพ็จ','เพชร'},
['เพียน'] = {'เพียน','เพียร'},
['เพฺริด'] = {'เพริด','เพริศ'},
['แพด'] = {'แพทย์','แพศย์'},
['โพก'] = {'โพก','โภค'},
['โพด'] = {'โพด','โพธ','โพธิ','โภช','โภชย์','โภชน์'},
['ไพ'] = {'ไพ','ภัย'},
['ไพ-ริน'] = {'ไพริน','ไพรินทร์','ไภริน'},
['ไพ-รี'] = {'ไพรี','ไภรี'},
['ฟอ'] = {'ฟ','ฟ.'},
['ฟาย'] = {'ฟาย','ไฟล์'},
['ฟิด'] = {'ฟิด','ฟิต'},
['มน'] = {'มณฑ์','มน','มนต์','มนตร์','มนท์','มล'},
['มวน'] = {'มวน','มวล'},
['มอ'] = {'ม','ม.','มอ'},
['มอน'] = {'มรณ์','มอญ','มอน'},
['ม็อบ'] = {'ม็อบ','ม็อป'},
['มะ-หัน'] = {'มหันต์','มหัล'},
['มะ-เห-สัก'] = {'มเหศักดิ์','มเหสักข์'},
['มัก'] = {'มรรค','มัก','มัคค์'},
['มัด'] = {'มัด','มัตต์'},
['มัด-ทะ-ยะ'] = {'มัทยะ','มัธย'},
['มัน'] = {'มัน','มันส์'},
['มั่น'] = {'มั่น','หมั้น'},
['มา'] = {'มา','มาห์'},
['มาก'] = {'มาก','มารค'},
['มาด'] = {'มาด','มาตร','มาท','มาศ','มาส'},
['มาน'] = {'มาน','มาร','มาลย์'},
['มา-นบ'] = {'มาณพ','มานพ'},
['มา-นัด'] = {'มานัต','มานัส'},
['มิด'] = {'มิด','มิตร','มิศร์'},
['มีน'] = {'มีน','มีฬห์'},
['มุก'] = {'มุก','มุข','มุคธ์'},
['มุด-ทา'] = {'มุททา','มุทธา'},
['มูน'] = {'มูน','มูล'},
['เม'] = {'เม','เมล์','เมห์'},
['เมน'] = {'เมน','เมรุ'},
['เม้า'] = {'เม้า','เมาท์'},
['เมิน'] = {'เมิน','เมิล'},
['โม่'] = {'โม่','โม่ห์'},
['โมก'] = {'โมก','โมกข์'},
['ไม่'] = {'ไม่','ไหม้'},
['ไม-ยะ-ราบ'] = {'ไมยราบ','ไมยราพ'},
['ยน'] = {'ยนต์','ยนตร์','ยล'},
['ยวน'] = {'ญวน','ยวน'},
['ยอ'] = {'ญ','ญ.','ย','ยอ'},
['ยัก'] = {'ยัก','ยักข์','ยักษ์'},
['ยัด'] = {'ยัชน์','ยัด'},
['ยัน'] = {'ยัญ','ยัน','ยันต์','ยันตร์'},
['ย่า'] = {'ย่า','หญ้า'},
['ยาด'] = {'ญาติ','ยาตร'},
['ยาน'] = {'ญาณ','ยาน'},
['ยิบ'] = {'ญิบ','ยิบ'},
['ยี่'] = {'ยี่','ญี่'},
['ยุก'] = {'ยุกต์','ยุค'},
['ยุด'] = {'ยุด','ยุต','ยุทธ์'},
['ยุบ'] = {'ยุบ','ยุพ'},
['เยา'] = {'เยา','เยาว์'},
['โยก'] = {'โยก','โยกต์'},
['โยด'] = {'โยชน์','โยด','โยต'},
['ไย'] = {'ใย','ไย'},
['รง'] = {'รง','รงกุ์','รงค์'},
['รด'] = {'รด','รถ','รท','รส'},
['รน'] = {'รณ','รน'},
['รบ'] = {'รบ','รพ'},
['รม'] = {'รม','รมย์'},
['รม-มะ-นี'] = {'รมณี','รมณีย์'},
['รอ'] = {'ร','ร.','รอ'},
['ระ-ยะ'] = {'รยะ','ระยะ'},
['ระ-หัด'] = {'รหัท','รหัส','รหัสย์','ระหัด'},
['รัก'] = {'รัก','รักข์','รักษ์'},
['รัง'] = {'รัง','รังค์'},
['รัด'] = {'รัช','รัชต์','รัชน์','รัฐ','รัด','รัต','รัตน์','รัถ'},
['รา-ชัน'] = {'ราชัน','ราชันย์'},
['ราด'] = {'ราช','ราชย์','ราด','ราต','ราตร','ราษฎร์'},
['ราน'] = {'ราญ','ราน'},
['ราบ'] = {'ราบ','ราพณ์'},
['รำ'] = {'รัมย์','รำ'},
['รำ-หัด'] = {'รำหัด','รำหัส'},
['ริด'] = {'ริด','ฤทธิ์'},
['รีด'] = {'รีด','รีต'},
['รึ'] = {'รึ','ฤ'},
['รุก'] = {'รุก','รุกข์'},
['รุด'] = {'รุจ','รุจน์','รุด','รุต','รุทธ์','รุษฏ์'},
['โรด'] = {'โรจ','โรจน์','โรท','โรธ','โรษ'},
['โร-มัน'] = {'โรมัญจ์','โรมัน'},
['ไร'] = {'รัย','ไร'},
['ไร้'] = {'ไร้','ไรต์'},
['ลบ'] = {'ลบ','ลพ'},
['ลอ'] = {'ล','ล.','ลอ','ฬ'},
['ลัก'] = {'ลัก','ลักข์','ลักษณ์','ลักษมณ์','ลัคน์'},
['ลัด'] = {'ลัด','ลัทธ์'},
['ลัน'] = {'ลัญจ์','ลัญฉ์','ลัน'},
['ลับ'] = {'ลับ','ลัพธ์','ลัภ','ลัภย์'},
['ล่า'] = {'ล่า','หล้า'},
['ลาด'] = {'ลาช','ลาด'},
['ลาน'] = {'ลาญ','ลาน'},
['ลาบ'] = {'ลาบ','ลาป','ลาภ'},
['ลิง'] = {'ลิง','ลิงค์'},
['ลิด'] = {'ลิด','ลิต','ลิตร'},
['ลิบ'] = {'ลิบ','ลิป','ลิปต์','ลิฟต์'},
['ลือ'] = {'ลือ','ฦๅ'},
['ลือ-ชา'] = {'ลือชา','ฦๅชา'},
['ลือ-สาย'] = {'ลือสาย','ฦๅสาย'},
['ลุด'] = {'ลุต','ลุท','ลุทธ์'},
['ลุบ'] = {'ลุปต์','ลุพธ์'},
['เลก'] = {'เลก','เลข'},
['เลด'] = {'เลต','เลศ'},
['เล็น'] = {'เลนส์','เล็น'},
['เล่า'] = {'เล่า','เหล้า'},
['โลด'] = {'โลด','โลท'},
['วง'] = {'วง','วงก์','วงศ์','วงษ์'},
['วอ'] = {'ว','ว.','วอ','วอร์'},
['วะ-ตะ'] = {'วฏ','วต','วตะ'},
['วะ-นิด'] = {'วณิช','วณิชย์'},
['วะ-ลัน'] = {'วลัญช์','วลัณชน์'},
['วัก'] = {'วรรค','วรรคย์','วัก','วัค'},
['วัง'] = {'วัง','วังก์'},
['วัด'] = {'วรรช','วรรชย์','วรรษ','วัจฉ์','วัจน์','วัช','วัชฌ์','วัฏ','วัฒน์','วัด','วัต','วัตถ์','วัตร','วัติ','วัทน์','วัสตร์','วัสน์'},
['วัด-สะ'] = {'วรรษ','วัตสะ','วัส','วัสสะ'},
['วัน'] = {'วรรณ','วัญฌ์','วัณ','วัณฏ์','วัน','วันต์','วันท์','วัลก์','วัลย์'},
['ว่า'] = {'ว่า','หว้า'},
['วาด'] = {'วาด','วาต','วาท','วาทย์'},
['วาน'] = {'วาน','วาร','วาล','วาฬ'},
['วา-นิด'] = {'วานิช','วาณิชย์'},
['วาย'] = {'วาย','ไวน์'},
['ว่าย'] = {'ว่าย','ไหว้'},
['วาว'] = {'วาล์ว','วาว'},
['วิ-กาน'] = {'วิการ','วิกาล'},
['วิ-คาด'] = {'วิฆาต','วิฆาส'},
['วิ-จิด'] = {'วิจิต','วิจิตร'},
['วิด'] = {'วิชญ์','วิด','วิทย์','วิธ'},
['วิ-ทาน'] = {'วิทารณ์','วิทาลน์'},
['วิ-ทู'] = {'วิทู','วิธู'},
['วิ-ทูน'] = {'วิฑูรย์','วิทูร'},
['วิ-นิด'] = {'วินิจ','วินิต'},
['วิ-พาก'] = {'วิพากษ์','วิภาค'},
['วิ-พาด'] = {'วิภาช','วิภาษ','วิภาส'},
['วิ-มน'] = {'วิมน','วิมล'},
['วิ-รัด'] = {'วิรัช','วิรัติ'},
['วิ-โรด'] = {'วิโรจ','วิโรจน์','วิโรฒ','วิโรธ','วิโรธน์'},
['วิ-ลาด'] = {'วิลาด','วิลาศ','วิลาส'},
['วิ-ไล'] = {'วิลัย','วิไล'},
['วิ-วัด'] = {'วิวรรธน์','วิวัฏ','วิวัฒน์'},
['วิ-วิด'] = {'วิวิจ','วิวิต','วิวิธ'},
['วิ-สาน'] = {'วิษาณ','วิสาร'},
['วิ-เสด'] = {'วิเศษ','วิเศษณ์','วิเสท'},
['วุด'] = {'วุฐิ','วุฒ','วุฒิ','วุด'},
['เวด'] = {'เวช','เวฐน์','เวตน์','เวตร','เวท','เวทย์','เวธ','เวศม์','เวศย์','เวสน์','เวสม์'},
['เวน'] = {'เวน','เวร'},
['เวียน'] = {'เวียน','เวียร'},
['แวด'] = {'แวด','แวตร'},
['ไว'] = {'วัย','ไว','ไวทย์'},
['สก'] = {'ศก','สก'},
['สง'] = {'สง','สงค์','สงฆ์','สรง'},
['สง-กา'] = {'ศงกา','สงกา'},
['สน'] = {'สณฑ์','สน'},
['สน-ทัด'] = {'สนทรรศ','สนทรรศน์'},
['สบ'] = {'ศพ','สบ'},
['สม-โพด'] = {'สมโพธน์','สมโพธิ','สมโภช'},
['สม-รด'] = {'สมรด','สมรส'},
['สวน'] = {'สรวล','สวน'},
['สวม'] = {'สรวม','สวม'},
['สอ'] = {'ศ','ศ.','ศอ','ษ','ส','ส.','สอ'},
['สอน'] = {'ศร','สร','สอน'},
['สะ'] = {'สระ','สะ'},
['สะ-กน'] = {'ศกล','สกนธ์','สกล'},
['สะ-กะ-ตะ'] = {'ศกฏะ','สกฏ','สกฏะ'},
['สะ-กุน'] = {'ศกุน','ศกุนต์','สกุณ','สกุน','สกุนต์','สกุล'},
['สะ-เด็ด'] = {'สะเด็ด','เสด็จ'},
['สะ-ตะ'] = {'ศต','ศตะ','สต','สตะ'},
['สะ-ตะ-กะ'] = {'ศตกะ','สตกะ'},
['สะ-ถน'] = {'สถน','สถล'},
['สะ-ถะ'] = {'ศฐะ','สฐะ'},
['สะ-ถาน'] = {'สถาน','สถาล'},
['สะ-บด'] = {'สบจ','สบถ'},
['สะ-พาบ'] = {'สพาบ','สภาพ'},
['สะ-มัด'] = {'สมรรถ','สมัช','สมัต'},
['สะ-มา'] = {'ษมา','สมา'},
['สะ-มิด'] = {'สมิต','สมิทธ์'},
['สะ-ยะ-นะ'] = {'ศยนะ','สยนะ'},
['สะ-ระ-พะ'] = {'สรพะ','สรภะ'},
['สะ-หฺนุก'] = {'สนุก','สนุข'},
['สะ-หฺมุด'] = {'สมุด','สมุทร'},
['สะ-หฺยาม'] = {'ศยาม','สยาม'},
['สะ-หฺลิด'] = {'ศลิษฏ์','สลิด'},
['สะ-เหฺลด'] = {'เศลษ','เศลษม์','เสลด'},
['สะ-หฺวาด'] = {'สวาด','สวาดิ','สวาท','สวาสดิ์'},
['สะ-เหฺวด'] = {'เศวต','เศวตร'},
['สัก'] = {'สัก','สัค','ศักดิ์','ศักย์'},
['สัง'] = {'สังข์','สังค์'},
['สัง-กอน'] = {'ศังกร','สังกร'},
['สัง-กา'] = {'ศังกา','สังกา'},
['สัด'] = {'ษัฏ','ษัฑ','ษัษ','สัจ','สัด','สัต','สัตย์','สัตว์'},
['สัด-ทา'] = {'ศรัทธา','สัทธา'},
['สัน'] = {'ศัล','ศัลย์','สรร','สรรค์','สรรพ์','สัณฑ์','สัณห์','สัน','สันต์'},
['สัน-ทาน'] = {'สันทาน','สันธาน'},
['สับ'] = {'ศัพท์','สรรพ','สับ','สัพ'},
['สาก'] = {'ศาก','สาก'},
['สาด'] = {'ศราทธ์','ศาต','ศารท','ศาสตร์','ศาสน์','สาด','สาต','สารท','สาสน์'},
['สา-ทิด'] = {'สาทิส','สาธิต'},
['สา-ทุ'] = {'สาทุ','สาธุ'},
['สาน'] = {'ศาณ','ศานต์','ศาล','สาน','สาร'},
['สาบ'] = {'ศาป','สาบ','สาป'},
['สา-มน'] = {'สามนต์','สามล'},
['สา-ระ-บัน'] = {'สารบรรณ','สารบัญ'},
['สา-ระ-พี'] = {'สารพี','สารภี'},
['สำ-พาด'] = {'สัมพาธ','สัมภาษณ์'},
['สำ-ริด'] = {'สัมฤทธิ์','สำริด'},
['สิ-ขา'] = {'ศิขา','สิขา'},
['สิง'] = {'สิง','สิงค์','สิงห์'},
['สิง-คาน'] = {'ศฤงคาร','สิงคาร','สิงคาล'},
['สิด'] = {'ศิษฏ์','ศิษย์','สิท','สิทธ์','สิทธิ์'},
['สิน'] = {'ศิลป์','สิญจน์','สิน','สินธุ์'},
['สี'] = {'ศรี','สี','สีห์'},
['สึก'] = {'ศึก','สึก'},
['สุก'] = {'ศุกร์','สุก','สุกข์','สุข'},
['สุ-จิด'] = {'สุจิต','สุจิตร'},
['สุด'] = {'สุด','สุต','สุทธ์'},
['สุด-ทิ'] = {'ศุทธิ','สุทธิ'},
['สุบ-พะ'] = {'ศุภ','สุภ'},
['สูด'] = {'ศูทร','สูด','สูต','สูต','สูตร','สูท'},
['สูน'] = {'ศูนย์','ศูล','สูญ','สูร','สูรย์'},
['เสด'] = {'เศรษฐ์','เศษ'},
['เส-นี'] = {'เสณี','เสนี','เสนีย์'},
['เสา'] = {'เศาร์','เสา','เสาร์'},
['โสด'] = {'โสด','โสต','โสรจ'},
['โสม'] = {'โสม','โสมย์'},
['ไส'] = {'สัยน์','ใส','ไส','ไสย'},
['ไส-ยา'] = {'ศัยยา','ไสยา'},
['หง'] = {'หง','หงส์'},
['หอ'] = {'ห','ห.','หอ'},
['หัด'] = {'หัจญ์','หัช','หัด','หัต','หัตถ์','หัส','หัสต์'},
['หาน'] = {'หาญ','หาร'},
['หิด'] = {'หิด','หิต'},
['หิ-รัน'] = {'หิรัญ','หิรัณย์'},
['หฺลอด'] = {'ลอร์ด','หลอด'},
['หฺย่า'] = {'หย่า','อย่า'},
['หฺยิบ'] = {'หญิบ','หยิบ'},
['เห็ด'] = {'เห็จ','เห็ด'},
['เหฺน็ด'] = {'เน็ต','เหน็ด'},
['โหน'] = {'โหน','โหร'},
['โหฺวด'] = {'โหวด','โหวต'},
['ไห'] = {'หัย','ไห'},
['อง'] = {'อง','องก์','องค์','องศ์'},
['อวน'] = {'อวน','อวล'},
['ออ'] = {'อ','อ.','ออ','ออร์'},
['ออ-ระ-หัน'] = {'อรหัน','อรหันต์'},
['อะ-นัน'] = {'อนัญ','อนันต์','อนันตร์'},
['อะ-นุ-สอน'] = {'อนุสร','อนุสรณ์'},
['อะ-นุ-สาด'] = {'อนุศาสน์','อนุสาสน์'},
['อะ-พิ-วัน'] = {'อภิวัน','อภิวันทน์'},
['อะ-พิ-สิด'] = {'อภิสิต','อภิสิทธิ์'},
['อะ-รัน'] = {'อรัญ','อรัณย์'},
['อัก'] = {'อรรค','อรรฆ','อรรฆย์','อัก'},
['อัง'] = {'อัง','อังก์'},
['อัง-คาด'] = {'อังคาส','อังฆาต'},
['อัด'] = {'อรรจน์','อรรถ','อรรธ','อัฏ','อัฐ','อัฒ','อัด','อัต','อัตถ์','อัทธ์'},
['อัน'] = {'อัน','อันต์'},
['อา'] = {'อา','อาร์','อาว์'},
['อา-จาน'] = {'อาจาร','อาจารย์'},
['อาด'] = {'อาจ','อาด','อาตม์','อาสน์'},
['อา-ทาน'] = {'อาธาน','อาธาร'},
['อา-นน'] = {'อานน','อานนท์'},
['อา-พัด'] = {'อาพัด','อาพัทธ์'},
['อา-พาด'] = {'อาพาธ','อาภาส'},
['อา-ยัด'] = {'อายัด','อายัต'},
['อา-วุด'] = {'อาวุต','อาวุธ'},
['อา-สิน'] = {'อาสิญจ์','อาสิน'},
['อำ'] = {'อัม','อำ'},
['อำ-นาด'] = {'อำนาจ','อำนาถ'},
['อิง'] = {'อิง','อิงค์'},
['อิด'] = {'อิฐ','อิด','อิศร','อิษฏ์','อิส'},
['อิน'] = {'อิน','อินท์','อินทร์','อินธน์'},
['อิน-ซี'] = {'อินทรี','อินทรีย์'},
['อี-เมล'] = {'อีเมล','อีเมล์'},
['อุก'] = {'อุก','อุค'},
['อุด'] = {'อุจ','อุด'},
['อุ-ทาน'] = {'อุทาน','อุทาร'},
['อุ-บาด'] = {'อุบาท','อุบาทว์'},
['อุ-สา'] = {'อุษา','อุสา'},
['อูด'] = {'อูฐ','อูด'},
['เอา-ทาน'] = {'เอาทาร','เอาทารย์'},
['แอ'] = {'แอ','แอร์'},
['โอด'] = {'โอช','โอฐ','โอด','โอษฐ์'},
['โอม'] = {'โอม','โอห์ม'},
['ฮอ'] = {'ฮ','ฮ.'},
['ไฮ่'] = {'ให้','ไห้'},
}
return hom
i8ov2klbwl058flmrop2oikavga8tx9
Module:De-headword
828
1378190
9938446
9515308
2026-10-04T18:09:16Z
TongcyDai
53191
同步 enwikt(rev 91628482):頁名取自 Module:headword/data;指小詞的 accel 形式改用 Module:accel 認得的「指小」
9938446
Scribunto
text/plain
local export = {}
local pos_functions = {}
local headword_utilities_module = "Module:headword utilities"
local inflection_utilities_module = "Module:inflection utilities"
local lang = require("Module:languages").getByCode("de")
local legal_gender = {
["m"] = true,
["f"] = true,
["n"] = true,
["p"] = true,
}
local gender_names = {
["m"] = "陽性",
["f"] = "陰性",
["n"] = "中性",
}
local legal_verb_classes = {
["1"] = true,
["2"] = true,
["3"] = true,
["4"] = true,
["5"] = true,
["6"] = true,
["7"] = true,
}
local function ine(val)
if val == "" then return nil else return val end
end
local function glossary_link(entry, text)
text = text or entry
return "[[Appendix:Glossary#" .. entry .. "|" .. text .. "]]"
end
local function track(page)
require("Module:debug").track("de-headword/" .. page)
return true
end
-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.show(frame)
local args = frame:getParent().args
PAGENAME = mw.loadData("Module:headword/data").pagename
local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.")
local class = frame.args[2]; if class == "" then class = nil end
local data = {lang = lang, pos_category = poscat, categories = {}, heads = {}, genders = {}, inflections = {}}
if pos_functions[poscat] then
pos_functions[poscat](class, args, data)
end
return
require("Module:headword").full_headword(data)
end
local function old_adjectives(class, args, data)
track("de-adj-old")
local params = {
[1] = {list = "comp"},
[2] = {list = "sup"},
["head"] = {list = true},
}
local args = require("Module:parameters").process(args, params)
data.heads = args["head"]
if args[1][1] == "-" then
table.insert(data.inflections, {label = "無比較級"})
table.insert(data.categories, "德語無比較級形容詞")
return
end
if #args[1] > 0 then
for i, form in ipairs(args[1]) do
args[1][i] = {term = (form == "er" and PAGENAME .. "er" or form),
accel = {form = "比較級"}}
end
else
args[1] = {request = true}
track("de-adj lacking comparative")
end
args[1].label = glossary_link("比較級")
table.insert(data.inflections, args[1])
if #args[2] > 0 then
for i, form in ipairs(args[2]) do
args[2][i] = {
term = "am [[" .. ((form == "st" or form == "sten") and PAGENAME .. "sten" or (form == "est" or form == "esten") and PAGENAME .. "esten" or form) .. "]]",
accel = {form = "最高級"}}
end
else
args[2] = {request = true}
track("de-adj lacking superlative")
end
args[2].label = glossary_link("最高級")
table.insert(data.inflections, args[2])
end
pos_functions["形容詞"] = function(class, args, data, proper)
-- Compatibility with old calling convention, either if old= is given or any arg no longer supported is given.
if ine(args.old) or ine(args[2]) or ine(args.comp1) or ine(args.comp2) or ine(args.comp3) or
ine(args.sup1) or ine(args.sup2) or ine(args.sup3) or args[1] == "-" then
return old_adjectives(class, args, data)
else
-- Remove this code once we convert to the new format.
track("de-adj-need-old")
end
local alternant_multiword_spec = require("Module:de-adjective").do_generate_forms(args, nil, "from headword")
data.heads = alternant_multiword_spec.args.head
data.id = alternant_multiword_spec.args.id
data.sort = alternant_multiword_spec.args.sort
local function do_adj_form(slot, label, should_be_present, accel_form)
local forms = alternant_multiword_spec.forms[slot]
local retval
if not forms then
if not should_be_present then
return
end
retval = {label = "無" .. label}
else
retval = {label = label, accel = accel_form and {form = accel_form} or nil}
local prev_footnotes
for _, form in ipairs(forms) do
local footnotes = form.footnotes
if footnotes and prev_footnotes and require("Module:table").deepEquals(footnotes, prev_footnotes) then
footnotes = nil
end
prev_footnotes = form.footnotes
local quals, refs = require(inflection_utilities_module).
convert_footnotes_to_qualifiers_and_references(footnotes)
local term = form.form
table.insert(retval, {term = term, q = quals, refs = refs, genders = genders})
end
end
table.insert(data.inflections, retval)
end
if alternant_multiword_spec.props.indecl then
table.insert(data.inflections, {label = glossary_link("無詞形變化")})
if alternant_multiword_spec.props.predonly then
table.insert(data.inflections, {label = "僅作表語"})
elseif alternant_multiword_spec.props.nopred then
table.insert(data.inflections, {label = "無表語形式"})
end
else
if alternant_multiword_spec.props.nopred then
table.insert(data.inflections, {label = "無表語形式"})
end
do_adj_form("str_nom_m", "強變化主格陽性單數", true)
local should_comp_sup =
alternant_multiword_spec.forms.comp_pred or alternant_multiword_spec.forms.sup_pred or
alternant_multiword_spec.forms.comp_str_nom_m or alternant_multiword_spec.forms.sup_str_nom_m
if not should_comp_sup then
table.insert(data.inflections, {label = "無比較級"})
else
-- If there is no predicative comparative, but there is an attributive comparative, include it;
-- otherwise, include the predicative comparative (if any). If there is no comparative but a superlative,
-- this will display "no comparative".
if not alternant_multiword_spec.forms.comp_pred and alternant_multiword_spec.forms.comp_str_nom_m then
do_adj_form("comp_str_nom_m", "強變化比較級主格陽性單數", true)
else
do_adj_form("comp_pred", glossary_link("比較級"), true, "比較級")
end
-- Same as above, for the superlative.
if not alternant_multiword_spec.forms.sup_pred and alternant_multiword_spec.forms.sup_str_nom_m then
do_adj_form("sup_str_nom_m", "強變化最高級主格陽性單數", true)
else
do_adj_form("sup_pred", glossary_link("最高級"), true, "最高級")
end
end
end
-- Add categories.
for _, cat in ipairs(alternant_multiword_spec.categories) do
table.insert(data.categories, cat)
end
-- Use the "linked" form of the lemma as the head if no head= explicitly given.
data.no_redundant_head_cat = true -- always set since we have a different lemma linking algorithm from [[Module:headword]].
if #data.heads == 0 then
data.heads = {}
local lemmas = alternant_multiword_spec.forms.the_lemma or {}
for _, lemma_obj in ipairs(lemmas) do
local head = alternant_multiword_spec.args.nolinkhead and lemma_obj.form or
require(headword_utilities_module).add_links_to_multiword_term(lemma_obj.form,
{split_hyphen_when_space = alternant_multiword_spec.args.splithyph})
local quals, refs = require(inflection_utilities_module).
convert_footnotes_to_qualifiers_and_references(lemma_obj.footnotes)
table.insert(data.heads, {term = head, q = quals, refs = refs})
end
end
end
local function old_nouns(class, args, data)
track("de-noun-old")
local params = {
[1] = {list = "g", default = "?"},
[2] = {list = "gen"},
[3] = {list = "pl"},
[4] = {list = "dim"},
["head"] = {list = true},
["m"] = {list = true},
["f"] = {list = true},
["old"] = {type = "boolean"},
}
local args = require("Module:parameters").process(args, params)
data.heads = args["head"]
-- Gender
for _, g in ipairs(args[1]) do
if legal_gender[g] then
table.insert(data.genders, g)
if g == "p" then
table.insert(data.categories, "德語唯複名詞")
else
table.insert(data.categories, "德語" .. gender_names[g] .. "名詞")
end
else
if g == "m-s" or g == "f-s" or g == "n-s" or g == "m-p" or g == "f-p" or g == "n-p" then
require("Module:debug").track("de-headword/genders")
end
table.insert(data.genders, "?")
end
end
if args[1][1] ~= "p" then
-- Genitive
if not args[2][1] then
if args[1][1] == "m" or args[1][1] == "n" then
table.insert(args[2], PAGENAME .. "s")
else
table.insert(args[2], PAGENAME)
end
end
for i, form in ipairs(args[2]) do
args[2][i] = {term = form}
end
args[2].accel = {form = "gen|s"}
args[2].label = "屬格"
table.insert(data.inflections, args[2])
-- Plural
if not args[3][1] and data.pos_category == "名詞" then
table.insert(args[3], PAGENAME .. "en")
end
if args[3][1] == "-" then
table.insert(data.inflections, {label = "無複數"})
table.insert(data.categories, "德語不可數名詞")
elseif #args[3] > 0 then
for i, form in ipairs(args[3]) do
args[3][i] = {term = form}
end
args[3].accel = {form = "p"}
args[3].label = "複數"
table.insert(data.inflections, args[3])
end
end
-- Diminutive
if #args[4] > 0 then
for i, form in ipairs(args[4]) do
args[4][i] = {term = form, genders = {"n"}}
end
args[4].accel = {form = "指小", gender = "n"}
args[4].label = "指小詞"
table.insert(data.inflections, args[4])
end
-- Other gender
if #args.f > 0 then
args.f.label = "陰性"
if args.f[1] == "in" then
args.f[1] = PAGENAME .. "in"
end
if args.f[1] == PAGENAME .. "in" then
args.f.accel = {form = "陰性", gender = "f"}
args.f.label = "陰性"
end
table.insert(data.inflections, args.f)
end
if #args.m > 0 then
args.m.label = "陽性"
table.insert(data.inflections, args.m)
end
end
pos_functions["名詞"] = function(class, args, data, proper)
-- Compatibility with old calling convention, either if old= is given or any arg no longer supported is given.
if ine(args.old) or ine(args[2]) or ine(args[3]) or ine(args[4]) or ine(args.g1) or ine(args.g2) or ine(args.g3) or
ine(args.gen1) or ine(args.gen2) or ine(args.gen3) or ine(args.pl1) or ine(args.pl2) or ine(args.pl3) then
return old_nouns(class, args, data)
end
local m_de_noun = require("Module:de-noun")
local alternant_multiword_spec = m_de_noun.do_generate_forms(args, nil, "from headword", proper)
data.heads = alternant_multiword_spec.args.head
data.genders = alternant_multiword_spec.genders
data.id = alternant_multiword_spec.args.id
data.sort = alternant_multiword_spec.args.sort
if not proper then
data.pos_category = alternant_multiword_spec.pos
if alternant_multiword_spec.pos == "後綴" then
table.insert(data.categories, "構成名詞的德語後綴")
end
end
local function get_nom_articles(alternant_multiword_spec)
local articles = {}
local m_table = require("Module:table")
if alternant_multiword_spec.number == "pl" then
m_table.insertIfNot(articles, "[[die]]")
else
for _, gender in ipairs(alternant_multiword_spec.genders) do
if gender.spec == "m" then
m_table.insertIfNot(articles, "[[der]]")
elseif gender.spec == "f" then
m_table.insertIfNot(articles, "[[die]]")
elseif gender.spec == "n" then
m_table.insertIfNot(articles, "[[das]]")
else
error("Internal error: Unrecognized gender '" .. gender.spec .. "'")
end
end
end
return table.concat(articles, "/")
end
local function get_gen_s_articles(alternant_multiword_spec)
local articles = {}
local m_table = require("Module:table")
if alternant_multiword_spec.number == "pl" then
error("Internal error: Should not be called on plural-only nouns")
else
for _, gender in ipairs(alternant_multiword_spec.genders) do
if gender.spec == "m" or gender.spec == "n" then
m_table.insertIfNot(articles, "[[des]]")
elseif gender.spec == "f" then
m_table.insertIfNot(articles, "[[der]]")
else
error("Internal error: Unrecognized gender '" .. gender.spec .. "'")
end
end
end
return table.concat(articles, "/")
end
local function do_noun_form(slot, label, should_be_present, accel_form, genders, prefix)
local forms = alternant_multiword_spec.forms[slot]
local retval
if not forms then
if not should_be_present then
return
end
retval = {label = "無" .. label}
else
retval = {label = label, accel = accel_form and {form = accel_form} or nil}
local prev_footnotes
for _, form in ipairs(forms) do
local footnotes = form.footnotes
if footnotes and prev_footnotes and require("Module:table").deepEquals(footnotes, prev_footnotes) then
footnotes = nil
end
prev_footnotes = form.footnotes
local quals, refs = require(inflection_utilities_module).convert_footnotes_to_qualifiers_and_references(footnotes)
local term = form.form
if prefix then
if not term:find("[%[%]]") then
term = "[[" .. term .. "]]"
end
term = prefix .. " " .. term
end
table.insert(retval, {term = term, q = quals, refs = refs, genders = genders})
end
end
table.insert(data.inflections, retval)
end
if proper then
table.insert(data.inflections, {label = glossary_link("專有名詞")})
end
local decl_types = alternant_multiword_spec.decl_type
if decl_types and #decl_types > 0 then
local decl_descs = {}
for _, decl_type in ipairs(decl_types) do
table.insert(decl_descs, glossary_link(decl_type .. "變格", decl_type))
end
table.insert(data.inflections, {label = table.concat(decl_descs, " <small>或</small> ")})
end
local overall_adj = alternant_multiword_spec.props.overall_adj
local article = alternant_multiword_spec.props.article
local surname = alternant_multiword_spec.props.surname
local langname = alternant_multiword_spec.props.langname
local saw_f = false
local saw_mn = false
for _, gender in ipairs(alternant_multiword_spec.genders) do
if gender.spec == "f" then
saw_f = true
elseif gender.spec == "m" or gender.spec == "n" then
saw_mn = true
end
end
local fem_sg_only = not saw_mn and alternant_multiword_spec.number ~= "pl"
if not alternant_multiword_spec.first_noun and alternant_multiword_spec.first_adj then
table.insert(data.inflections, {label = "形容詞性"})
end
if surname then
table.insert(data.inflections, {label = "姓氏"})
end
if langname then
table.insert(data.inflections, {label = "語言名稱"})
end
if alternant_multiword_spec.number == "pl" then
table.insert(data.inflections, {label = glossary_link("唯複")})
end
if article then
table.insert(data.inflections, {label = "通常帶定冠詞"})
end
if alternant_multiword_spec.number == "pl" then
if overall_adj then
do_noun_form("wk_nom_p", "定指複數", true, nil, nil, "[[die]]")
end
elseif surname then
do_noun_form("gen_m_s", "陽性屬格", true)
do_noun_form("gen_f_s", "陰性屬格", true)
do_noun_form("nom_p", "複數", true)
elseif langname then
do_noun_form("gen_s", "屬格", true)
do_noun_form("nom_s_alt", "主格替代形式(搭配定冠詞)", true)
do_noun_form("gen_s_alt", "屬格替代形式", true)
-- There should be no plural; this will trigger the display of 'no plural'.
do_noun_form("nom_p", "複數", true)
elseif overall_adj then
if article then
if not fem_sg_only then
do_noun_form("wk_nom_s", "定指主格", true, nil, nil, get_nom_articles(alternant_multiword_spec))
end
do_noun_form("wk_gen_s", "定指屬格", true, nil, nil, get_gen_s_articles(alternant_multiword_spec))
do_noun_form("wk_nom_p", "定指複數", not proper, nil, nil, "[[die]]")
else
do_noun_form("wk_nom_s", "定指主格", true, nil, nil, get_nom_articles(alternant_multiword_spec))
do_noun_form("str_gen_s", "屬格", true, nil, nil, not saw_f and "([[des]])" or nil)
if saw_f then
do_noun_form("wk_gen_s", "定指屬格", true, nil, nil, get_gen_s_articles(alternant_multiword_spec))
end
do_noun_form("str_nom_p", "複數", not proper)
do_noun_form("wk_nom_p", "定指複數", nil, nil, nil, "[[die]]")
end
else
if article then
do_noun_form("gen_s", "定指屬格", true, nil, nil, get_gen_s_articles(alternant_multiword_spec))
do_noun_form("nom_p", "定指複數", not proper, nil, nil, "[[die]]")
else
do_noun_form("gen_s", "屬格", true)
do_noun_form("nom_p", "複數", not proper)
end
end
-- FIXME: Should we include the article in the singular equivalent if .article is given? I have no examples to go by.
do_noun_form("sg", "單數")
do_noun_form("dim", "指小詞", nil, "指小", {"n"}, article and "[[das]]" or nil)
do_noun_form("m", "陽性", nil, nil, nil, article and "[[der]]" or nil)
do_noun_form("f", "陰性", nil, "陰性", nil, article and "[[die]]" or nil)
do_noun_form("n", "中性", nil, "中性", nil, article and "[[das]]" or nil)
-- Add categories.
for _, cat in ipairs(alternant_multiword_spec.categories) do
table.insert(data.categories, cat)
end
-- Use the "linked" form of the lemma as the head if no head= explicitly given.
data.no_redundant_head_cat = true -- always set since we have a different lemma linking algorithm from [[Module:headword]].
if #data.heads == 0 then
data.heads = {}
local lemmas = m_de_noun.get_lemmas(alternant_multiword_spec, "linked variant")
for _, lemma_obj in ipairs(lemmas) do
local head = alternant_multiword_spec.args.nolinkhead and lemma_obj.form or
require(headword_utilities_module).add_links_to_multiword_term(lemma_obj.form,
{split_hyphen_when_space = alternant_multiword_spec.args.splithyph})
if article and (not overall_adj or fem_sg_only) then
head = get_nom_articles(alternant_multiword_spec) .. " " .. head
end
local quals, refs = require(inflection_utilities_module).
convert_footnotes_to_qualifiers_and_references(lemma_obj.footnotes)
table.insert(data.heads, {term = head, q = quals, refs = refs})
end
end
end
pos_functions["專有名詞"] = function(class, args, data)
return pos_functions["名詞"](class, args, data, "專有名詞")
end
pos_functions["動詞"] = function(class, args, data)
if args[2] then -- old-style
local params = {
[1] = {list = "pres", required = true},
["pres_qual"] = {list = "pres\1_qual", allow_holes = true},
[2] = {list = "past", required = true},
["past_qual"] = {list = "past\1_qual", allow_holes = true},
[3] = {list = "pp", required = true},
["pp_qual"] = {list = "pp\1_qual", allow_holes = true},
[4] = {list = "pastsubj"},
["pastsubj_qual"] = {list = "pastsubj\1_qual", allow_holes = true},
["aux"] = {list = true},
["aux_qual"] = {list = "aux\1_qual", allow_holes = true},
["head"] = {list = true},
["class"] = {list = true},
}
local args = require("Module:parameters").process(args, params)
data.heads = args["head"]
local function collect_forms(label, accel_form, forms, qualifiers)
if forms[1] == "-" then
return {label = "無" .. label}
else
-- Disable this for now as deduplication between headword and conjugation table doesn't work correctly.
-- local into_table = accel_form and {label = label, accel = {form = accel_form}} or {label = label}
local into_table = {label = label}
for i, form in ipairs(forms) do
table.insert(into_table, {term = form, q = qualifiers[i] and {qualifiers[i]} or nil})
end
return into_table
end
end
if #args.class > 0 then
local class_descs, cats = require("Module:de-verb").process_verb_classes(args.class)
for _, cats in ipairs(cats) do
table.insert(data.categories, cats)
end
table.insert(data.inflections, {label = require("Module:table").serialCommaJoin(class_descs, {conj = "or"})})
end
table.insert(data.inflections, collect_forms("第三人稱單數現在時", "3|s|pres", args[1], args.pres_qual))
table.insert(data.inflections, collect_forms("過去時", "1//3|s|pret", args[2], args.past_qual))
table.insert(data.inflections, collect_forms("過去分詞", "perf|part", args[3], args.pp_qual))
if #args[4] > 0 then
table.insert(data.inflections, collect_forms("過去虛擬式", "1//3|s|sub|II", args[4], args.pastsubj_qual))
end
if #args.aux > 0 then
table.insert(data.inflections, collect_forms("助動詞", nil, args.aux, args.aux_qual))
end
return
end
local function get_headword_inflection(forms, label, accel_form)
if forms then
-- Disable this for now as deduplication between heardword and conjugation table doesn't work correctly.
-- local inflection = accel_form and {label = label, accel = {form = accel_form}} or {label = label}
local inflection = {label = label}
for _, form in ipairs(forms) do
local qualifiers
if form.footnotes then
qualifiers = {}
for _, footnote in ipairs(form.footnotes) do
footnote = footnote:gsub("^%[(.*)%]$", "%1")
table.insert(qualifiers, footnote)
end
end
table.insert(inflection, {term = form.form, q = qualifiers})
end
return inflection
elseif label then
return {label = "無" .. label}
else
return {}
end
end
local alternant_multiword_spec = require("Module:de-verb").do_generate_forms(args, "from headword")
for _, cat in ipairs(alternant_multiword_spec.categories) do
table.insert(data.categories, cat)
end
table.insert(data.inflections, {label = table.concat(alternant_multiword_spec.verb_types, " <small>或</small> ")})
if #data.heads == 0 then
data.no_redundant_head_cat = true
for _, head in ipairs(alternant_multiword_spec.forms.infinitive_linked) do
table.insert(data.heads, head.form)
end
end
table.insert(data.inflections, get_headword_inflection(alternant_multiword_spec.forms.pres_3s,
"第三人稱單數現在時", "3|s|pres"))
local pret_3s = alternant_multiword_spec.forms.pret_3s
table.insert(data.inflections, get_headword_inflection(pret_3s, "過去式", "1//3|s|pret"))
table.insert(data.inflections, get_headword_inflection(alternant_multiword_spec.forms.perf_part,
"過去分詞", "perf|part"))
-- See if we need the past subjunctive, i.e. there exist past subjunctive forms whose stem is not the
-- same as some past tense form. To facilitate comparison, we truncate final -e in both preterite 3s
-- and past subjunctive 3s, to handle cases like subjunctive 'ginge aus' vs. preterite 'ging aus'.
-- We need to compare 3s forms (and not e.g. 3p forms, where the issue with truncating -e doesn't
-- occur) so we work correctly with impersonal verbs.
local need_past_subj
local truncated_pret_3s_forms = {}
if pret_3s then
for _, form in ipairs(pret_3s) do
local truncated_form = form.form:gsub("e$", ""):gsub("e ", " ") -- discard 2nd retval
table.insert(truncated_pret_3s_forms, truncated_form)
end
end
local subii_3s = alternant_multiword_spec.forms.subii_3s
local truncated_subii_3s_forms = {}
if subii_3s then
for _, form in ipairs(subii_3s) do
local truncated_form = form.form:gsub("e$", ""):gsub("e ", " ") -- discard 2nd retval
table.insert(truncated_subii_3s_forms, truncated_form)
end
end
for _, past_subj_form in ipairs(truncated_subii_3s_forms) do
local saw_same = false
for _, pret_3s_form in ipairs(truncated_pret_3s_forms) do
if past_subj_form == pret_3s_form then
saw_same = true
break
end
end
if not saw_same then
need_past_subj = true
break
end
end
if need_past_subj then
table.insert(data.inflections, get_headword_inflection(subii_3s, "過去虛擬式", "1//3|s|sub|II"))
end
local auxes = alternant_multiword_spec.forms.aux
table.insert(data.inflections, get_headword_inflection(auxes, "助動詞"))
end
return export
2paucw8er1udnn7f25plezmc072je52
User:A2093064-bot/task/4/output/list
2
1393351
9938455
9908175
2026-10-04T20:22:12Z
A2093064-bot
60065
[[User:A2093064-bot/task/4|機器人4]]:產生未連結到維基數據項目的頁面列表
9938455
wikitext
text/x-wiki
* 本頁面以特殊條件篩選掉[[Special:UnconnectedPages]]中絕不可能連結的頁面。
* 產生時間:<onlyinclude>2026年10月4日 (日) 20:22 (UTC)</onlyinclude>
== Wiktionary ==
# [[:Wiktionary:每日一詞/2026年/10月10日]]
# [[:Wiktionary:每日一詞/2026年/10月9日]]
# [[:Wiktionary:每日一詞/2027年/2月25日]]
# [[:Wiktionary:外語每日一詞/2026年/9月30日]]
# [[:Wiktionary:外語每日一詞/2026年/9月29日]]
# [[:Wiktionary:每日一詞/2026年/10月7日]]
# [[:Wiktionary:每日一詞/2026年/10月2日]]
# [[:Wiktionary:每日一詞/2026年/10月3日]]
# [[:Wiktionary:每日一詞/2026年/9月27日]]
# [[:Wiktionary:每日一詞/2026年/10月1日]]
# [[:Wiktionary:每日一詞/2026年/9月30日]]
# [[:Wiktionary:每日一詞/2026年/10月8日]]
# [[:Wiktionary:每日一詞/2026年/10月4日]]
# [[:Wiktionary:每日一詞/2026年/10月6日]]
# [[:Wiktionary:每日一詞/2026年/9月29日]]
# [[:Wiktionary:每日一詞/2026年/9月26日]]
# [[:Wiktionary:外語每日一詞/2026年/9月28日]]
# [[:Wiktionary:外語每日一詞/2026年/9月26日]]
# [[:Wiktionary:每日一詞/2026年/9月24日]]
# [[:Wiktionary:每日一詞/2026年/9月22日]]
# [[:Wiktionary:每日一詞/2026年/9月23日]]
# [[:Wiktionary:每日一詞/2026年/9月21日]]
# [[:Wiktionary:每日一詞/2026年/9月20日]]
# [[:Wiktionary:外語每日一詞/2026年/9月27日]]
# [[:Wiktionary:外語每日一詞/2026年/9月25日]]
# [[:Wiktionary:外語每日一詞/2026年/9月24日]]
# [[:Wiktionary:外語每日一詞/2026年/9月23日]]
# [[:Wiktionary:外語每日一詞/2026年/9月22日]]
# [[:Wiktionary:外語每日一詞/2026年/9月21日]]
# [[:Wiktionary:外語每日一詞/2026年/9月20日]]
# [[:Wiktionary:外語每日一詞/2026年/9月19日]]
# [[:Wiktionary:外語每日一詞/2026年/9月18日]]
# [[:Wiktionary:外語每日一詞/2026年/9月17日]]
# [[:Wiktionary:外語每日一詞/2026年/9月16日]]
# [[:Wiktionary:外語每日一詞/2026年/9月14日]]
# [[:Wiktionary:外語每日一詞/2026年/9月13日]]
# [[:Wiktionary:每日一詞/2026年/9月18日]]
# [[:Wiktionary:外語每日一詞/2026年/9月10日]]
# [[:Wiktionary:外語每日一詞/2026年/9月11日]]
# [[:Wiktionary:外語每日一詞/2026年/9月9日]]
# [[:Wiktionary:每日一詞/2026年/9月19日]]
# [[:Wiktionary:每日一詞/2026年/9月16日]]
# [[:Wiktionary:每日一詞/2026年/9月17日]]
# [[:Wiktionary:外語每日一詞/2026年/9月12日]]
# [[:Wiktionary:每日一詞/2026年/9月12日]]
# [[:Wiktionary:每日一詞/2026年/9月11日]]
# [[:Wiktionary:每日一詞/2026年/9月13日]]
# [[:Wiktionary:每日一詞/2026年/9月10日]]
# [[:Wiktionary:外語每日一詞/2026年/9月15日]]
# [[:Wiktionary:外語每日一詞/2026年/9月8日]]
# [[:Wiktionary:外語每日一詞/2026年/9月4日]]
# [[:Wiktionary:外語每日一詞/2026年/9月6日]]
# [[:Wiktionary:外語每日一詞/2026年/9月5日]]
# [[:Wiktionary:外語每日一詞/2026年/9月3日]]
# [[:Wiktionary:外語每日一詞/2026年/9月1日]]
# [[:Wiktionary:外語每日一詞/2026年/9月2日]]
# [[:Wiktionary:每日一詞/2026年/9月7日]]
# [[:Wiktionary:每日一詞/2026年/9月8日]]
# [[:Wiktionary:每日一詞/2026年/9月6日]]
# [[:Wiktionary:每日一詞/2026年/9月5日]]
# [[:Wiktionary:外語每日一詞/2026年/9月7日]]
# [[:Wiktionary:外語每日一詞/2026年/8月31日]]
# [[:Wiktionary:外語每日一詞/2026年/8月30日]]
# [[:Wiktionary:外語每日一詞/2026年/8月29日]]
# [[:Wiktionary:外語每日一詞/2026年/8月28日]]
# [[:Wiktionary:外語每日一詞/2026年/8月27日]]
# [[:Wiktionary:每日一詞/2026年/8月31日]]
# [[:Wiktionary:每日一詞/2026年/9月1日]]
# [[:Wiktionary:每日一詞/2026年/8月30日]]
# [[:Wiktionary:每日一詞/2026年/8月29日]]
# [[:Wiktionary:每日一詞/2026年/8月28日]]
# [[:Wiktionary:每日一詞/2026年/8月26日]]
# [[:Wiktionary:每日一詞/2026年/8月25日]]
# [[:Wiktionary:外語每日一詞/2026年/8月26日]]
# [[:Wiktionary:外語每日一詞/2026年/8月25日]]
# [[:Wiktionary:外語每日一詞/2026年/8月24日]]
# [[:Wiktionary:外語每日一詞/2026年/8月23日]]
# [[:Wiktionary:每日一詞/2026年/8月24日]]
# [[:Wiktionary:每日一詞/2026年/8月23日]]
# [[:Wiktionary:外語每日一詞/2026年/8月22日]]
# [[:Wiktionary:外語每日一詞/2026年/8月21日]]
# [[:Wiktionary:外語每日一詞/2026年/8月20日]]
# [[:Wiktionary:每日一詞/2026年/8月27日]]
# [[:Wiktionary:每日一詞/2026年/8月20日]]
# [[:Wiktionary:每日一詞/2026年/8月19日]]
# [[:Wiktionary:每日一詞/2027年/3月20日]]
# [[:Wiktionary:每日一詞/2026年/8月21日]]
# [[:Wiktionary:每日一詞/2026年/8月18日]]
# [[:Wiktionary:每日一詞/2026年/8月17日]]
# [[:Wiktionary:每日一詞/2026年/8月14日]]
# [[:Wiktionary:每日一詞/2026年/8月13日]]
# [[:Wiktionary:每日一詞/2026年/8月12日]]
# [[:Wiktionary:外語每日一詞/2026年/8月19日]]
# [[:Wiktionary:外語每日一詞/2026年/8月18日]]
# [[:Wiktionary:外語每日一詞/2026年/8月17日]]
# [[:Wiktionary:外語每日一詞/2026年/8月16日]]
# [[:Wiktionary:外語每日一詞/2026年/8月15日]]
# [[:Wiktionary:外語每日一詞/2026年/8月14日]]
# [[:Wiktionary:外語每日一詞/2026年/8月13日]]
# [[:Wiktionary:外語每日一詞/2026年/8月12日]]
# [[:Wiktionary:外語每日一詞/2026年/8月11日]]
# [[:Wiktionary:每日一詞/2026年/8月11日]]
# [[:Wiktionary:每日一詞/2026年/8月22日]]
# [[:Wiktionary:每日一詞/2026年/8月10日]]
# [[:Wiktionary:外語每日一詞/2026年/8月10日]]
# [[:Wiktionary:外語每日一詞/2026年/8月9日]]
# [[:Wiktionary:每日一詞/2026年/8月9日]]
# [[:Wiktionary:外語每日一詞/2026年/8月8日]]
# [[:Wiktionary:每日一詞/2026年/8月8日]]
# [[:Wiktionary:每日一詞/2026年/8月7日]]
# [[:Wiktionary:每日一詞/2026年/8月6日]]
# [[:Wiktionary:每日一詞/2026年/8月4日]]
# [[:Wiktionary:外語每日一詞/2026年/8月7日]]
# [[:Wiktionary:外語每日一詞/2026年/8月6日]]
# [[:Wiktionary:外語每日一詞/2026年/8月4日]]
# [[:Wiktionary:外語每日一詞/2026年/8月5日]]
# [[:Wiktionary:每日一詞/2026年/8月5日]]
# [[:Wiktionary:每日一詞/2026年/8月3日]]
# [[:Wiktionary:外語每日一詞/2026年/8月3日]]
# [[:Wiktionary:外語每日一詞/2026年/8月2日]]
# [[:Wiktionary:外語每日一詞/2026年/8月1日]]
# [[:Wiktionary:每日一詞/2026年/8月16日]]
# [[:Wiktionary:外語每日一詞/2026年/7月31日]]
# [[:Wiktionary:外語每日一詞/2026年/7月30日]]
# [[:Wiktionary:外語每日一詞/2026年/7月29日]]
# [[:Wiktionary:每日一詞/2026年/8月2日]]
# [[:Wiktionary:每日一詞/2026年/8月15日]]
# [[:Wiktionary:每日一詞/2026年/7月30日]]
# [[:Wiktionary:每日一詞/2026年/7月28日]]
# [[:Wiktionary:外語每日一詞/2026年/7月28日]]
# [[:Wiktionary:外語每日一詞/2026年/7月27日]]
# [[:Wiktionary:外語每日一詞/2026年/7月26日]]
# [[:Wiktionary:外語每日一詞/2026年/7月25日]]
# [[:Wiktionary:外語每日一詞/2026年/7月24日]]
# [[:Wiktionary:外語每日一詞/2026年/7月23日]]
# [[:Wiktionary:外語每日一詞/2026年/7月22日]]
# [[:Wiktionary:每日一詞/2026年/7月29日]]
# [[:Wiktionary:每日一詞/2026年/7月27日]]
# [[:Wiktionary:每日一詞/2026年/7月22日]]
# [[:Wiktionary:每日一詞/2026年/7月26日]]
# [[:Wiktionary:每日一詞/2026年/7月23日]]
# [[:Wiktionary:每日一詞/2026年/7月21日]]
# [[:Wiktionary:每日一詞/2026年/7月20日]]
# [[:Wiktionary:每日一詞/2026年/7月18日]]
# [[:Wiktionary:每日一詞/2026年/12月18日]]
# [[:Wiktionary:每日一詞/2026年/7月19日]]
# [[:Wiktionary:外語每日一詞/2026年/7月20日]]
# [[:Wiktionary:外語每日一詞/2026年/7月19日]]
# [[:Wiktionary:外語每日一詞/2026年/7月21日]]
# [[:Wiktionary:外語每日一詞/2026年/7月18日]]
# [[:Wiktionary:外語每日一詞/2026年/7月16日]]
# [[:Wiktionary:外語每日一詞/2026年/7月15日]]
# [[:Wiktionary:外語每日一詞/2026年/7月17日]]
# [[:Wiktionary:外語每日一詞/2026年/7月13日]]
# [[:Wiktionary:外語每日一詞/2026年/7月14日]]
# [[:Wiktionary:每日一詞/2026年/7月17日]]
# [[:Wiktionary:每日一詞/2026年/7月16日]]
# [[:Wiktionary:每日一詞/2026年/7月15日]]
# [[:Wiktionary:每日一詞/2026年/9月9日]]
# [[:Wiktionary:每日一詞/2026年/7月31日]]
# [[:Wiktionary:每日一詞/2026年/7月14日]]
# [[:Wiktionary:每日一詞/2026年/7月12日]]
# [[:Wiktionary:每日一詞/2026年/7月11日]]
# [[:Wiktionary:外語每日一詞/2026年/7月12日]]
# [[:Wiktionary:外語每日一詞/2026年/7月11日]]
# [[:Wiktionary:外語每日一詞/2026年/7月10日]]
# [[:Wiktionary:外語每日一詞/2026年/7月9日]]
# [[:Wiktionary:每日一詞/2026年/7月10日]]
# [[:Wiktionary:每日一詞/2026年/7月9日]]
# [[:Wiktionary:每日一詞/2026年/7月8日]]
# [[:Wiktionary:每日一詞/2026年/7月7日]]
# [[:Wiktionary:外語每日一詞/2026年/7月8日]]
# [[:Wiktionary:外語每日一詞/2026年/7月7日]]
# [[:Wiktionary:外語每日一詞/2026年/7月6日]]
# [[:Wiktionary:每日一詞/2026年/7月6日]]
# [[:Wiktionary:每日一詞/2026年/7月5日]]
# [[:Wiktionary:外語每日一詞/2026年/7月5日]]
# [[:Wiktionary:外語每日一詞/2026年/7月4日]]
# [[:Wiktionary:外語每日一詞/2026年/7月3日]]
# [[:Wiktionary:每日一詞/2026年/10月5日]]
# [[:Wiktionary:每日一詞/2026年/7月4日]]
# [[:Wiktionary:每日一詞/2026年/9月3日]]
# [[:Wiktionary:每日一詞/2026年/7月3日]]
# [[:Wiktionary:每日一詞/2026年/7月2日]]
# [[:Wiktionary:每日一詞/2026年/7月1日]]
# [[:Wiktionary:每日一詞/2026年/6月30日]]
# [[:Wiktionary:每日一詞/2026年/6月29日]]
# [[:Wiktionary:每日一詞/2026年/6月27日]]
# [[:Wiktionary:每日一詞/2026年/6月28日]]
# [[:Wiktionary:外語每日一詞/2026年/7月2日]]
# [[:Wiktionary:外語每日一詞/2026年/7月1日]]
# [[:Wiktionary:外語每日一詞/2026年/6月30日]]
# [[:Wiktionary:外語每日一詞/2026年/6月29日]]
# [[:Wiktionary:外語每日一詞/2026年/6月28日]]
# [[:Wiktionary:外語每日一詞/2026年/6月27日]]
# [[:Wiktionary:外語每日一詞/2026年/6月26日]]
# [[:Wiktionary:每日一詞/2026年/6月25日]]
# [[:Wiktionary:外語每日一詞/2027年/5月16日]]
# [[:Wiktionary:外語每日一詞/2026年/6月25日]]
# [[:Wiktionary:外語每日一詞/2026年/6月24日]]
# [[:Wiktionary:外語每日一詞/2026年/6月23日]]
# [[:Wiktionary:每日一詞/2026年/6月23日]]
# [[:Wiktionary:每日一詞/2026年/6月26日]]
# [[:Wiktionary:外語每日一詞/2026年/6月22日]]
# [[:Wiktionary:外語每日一詞/2026年/6月21日]]
# [[:Wiktionary:外語每日一詞/2026年/6月20日]]
# [[:Wiktionary:每日一詞/2026年/6月20日]]
# [[:Wiktionary:每日一詞/2026年/6月19日]]
# [[:Wiktionary:每日一詞/2026年/6月18日]]
# [[:Wiktionary:外語每日一詞/2026年/6月18日]]
# [[:Wiktionary:外語每日一詞/2026年/6月17日]]
# [[:Wiktionary:外語每日一詞/2026年/6月14日]]
# [[:Wiktionary:外語每日一詞/2026年/6月13日]]
# [[:Wiktionary:每日一詞/2027年/6月1日]]
# [[:Wiktionary:每日一詞/2026年/6月17日]]
# [[:Wiktionary:每日一詞/2026年/11月4日]]
# [[:Wiktionary:每日一詞/2026年/6月16日]]
# [[:Wiktionary:每日一詞/2026年/6月22日]]
# [[:Wiktionary:外語每日一詞/2026年/6月12日]]
# [[:Wiktionary:外語每日一詞/2026年/6月11日]]
# [[:Wiktionary:外語每日一詞/2026年/6月16日]]
# [[:Wiktionary:外語每日一詞/2026年/6月10日]]
# [[:Wiktionary:外語每日一詞/2026年/6月9日]]
# [[:Wiktionary:每日一詞/2026年/7月13日]]
# [[:Wiktionary:每日一詞/2026年/6月14日]]
# [[:Wiktionary:每日一詞/2026年/6月13日]]
# [[:Wiktionary:每日一詞/2026年/6月11日]]
# [[:Wiktionary:每日一詞/2026年/6月12日]]
# [[:Wiktionary:每日一詞/2026年/6月9日]]
# [[:Wiktionary:每日一詞/2026年/6月8日]]
# [[:Wiktionary:每日一詞/2026年/6月7日]]
# [[:Wiktionary:外語每日一詞/2026年/6月7日]]
# [[:Wiktionary:外語每日一詞/2026年/6月5日]]
# [[:Wiktionary:外語每日一詞/2026年/6月6日]]
# [[:Wiktionary:每日一詞/2026年/6月6日]]
# [[:Wiktionary:每日一詞/2026年/6月5日]]
# [[:Wiktionary:外語每日一詞/2026年/6月8日]]
# [[:Wiktionary:外語每日一詞/2026年/6月15日]]
# [[:Wiktionary:外語每日一詞/2026年/6月4日]]
# [[:Wiktionary:外語每日一詞/2026年/6月3日]]
# [[:Wiktionary:每日一詞/2026年/6月3日]]
# [[:Wiktionary:每日一詞/2026年/6月4日]]
# [[:Wiktionary:外語每日一詞/2026年/6月2日]]
# [[:Wiktionary:外語每日一詞/2026年/6月1日]]
# [[:Wiktionary:外語每日一詞/2026年/5月31日]]
# [[:Wiktionary:外語每日一詞/2026年/5月30日]]
# [[:Wiktionary:外語每日一詞/2026年/5月29日]]
# [[:Wiktionary:每日一詞/2026年/6月2日]]
# [[:Wiktionary:每日一詞/2026年/6月1日]]
# [[:Wiktionary:每日一詞/2026年/5月31日]]
# [[:Wiktionary:每日一詞/2026年/6月21日]]
# [[:Wiktionary:每日一詞/2026年/6月10日]]
# [[:Wiktionary:外語每日一詞/2026年/5月28日]]
# [[:Wiktionary:外語每日一詞/2026年/5月27日]]
# [[:Wiktionary:外語每日一詞/2026年/5月26日]]
# [[:Wiktionary:外語每日一詞/2026年/5月25日]]
# [[:Wiktionary:每日一詞/2026年/5月30日]]
# [[:Wiktionary:每日一詞/2026年/5月29日]]
# [[:Wiktionary:每日一詞/2026年/5月28日]]
# [[:Wiktionary:每日一詞/2026年/5月26日]]
# [[:Wiktionary:每日一詞/2026年/5月27日]]
# [[:Wiktionary:每日一詞/2026年/5月25日]]
# [[:Wiktionary:每日一詞/2026年/5月24日]]
# [[:Wiktionary:每日一詞/2026年/6月24日]]
# [[:Wiktionary:每日一詞/2026年/7月25日]]
# [[:Wiktionary:每日一詞/2026年/5月23日]]
# [[:Wiktionary:外語每日一詞/2026年/5月24日]]
# [[:Wiktionary:外語每日一詞/2026年/5月23日]]
# [[:Wiktionary:外語每日一詞/2026年/5月22日]]
# [[:Wiktionary:外語每日一詞/2026年/5月21日]]
# [[:Wiktionary:外語每日一詞/2026年/5月20日]]
# [[:Wiktionary:每日一詞/2026年/5月22日]]
# [[:Wiktionary:每日一詞/2026年/6月15日]]
# [[:Wiktionary:每日一詞/2026年/5月21日]]
# [[:Wiktionary:每日一詞/2026年/5月20日]]
# [[:Wiktionary:每日一詞/2026年/5月19日]]
# [[:Wiktionary:詞頻列表/法文]]
# [[:Wiktionary:詞頻列表/捷克文/SYN2015前15,000個捷克文單詞]]
# [[:Wiktionary:詞頻列表/捷克文]]
# [[:Wiktionary:詞頻列表/英文/Wikipedia (2016)/30001-40000]]
# [[:Wiktionary:詞頻列表/英文/Wikipedia (2016)/20001-30000]]
# [[:Wiktionary:詞頻列表/英文/Wikipedia (2016)/10001-20000]]
# [[:Wiktionary:詞頻列表/英文]]
# [[:Wiktionary:詞頻列表]]
# [[:Wiktionary:外語每日一詞/2026年/5月19日]]
# [[:Wiktionary:外語每日一詞/2026年/5月18日]]
# [[:Wiktionary:每日一詞/2026年/5月17日]]
# [[:Wiktionary:外語每日一詞/2026年/5月16日]]
# [[:Wiktionary:外語每日一詞/2026年/5月17日]]
# [[:Wiktionary:每日一詞/2026年/5月16日]]
# [[:Wiktionary:每日一詞/2027年/1月15日]]
# [[:Wiktionary:每日一詞/2026年/5月15日]]
# [[:Wiktionary:每日一詞/2026年/5月14日]]
# [[:Wiktionary:每日一詞/2026年/5月13日]]
# [[:Wiktionary:每日一詞/2026年/5月12日]]
# [[:Wiktionary:外語每日一詞/2026年/5月15日]]
# [[:Wiktionary:外語每日一詞/2026年/5月14日]]
# [[:Wiktionary:外語每日一詞/2026年/5月13日]]
# [[:Wiktionary:外語每日一詞/2026年/5月12日]]
# [[:Wiktionary:外語每日一詞/2026年/5月11日]]
# [[:Wiktionary:外語每日一詞/2026年/5月10日]]
# [[:Wiktionary:外語每日一詞/2026年/5月9日]]
# [[:Wiktionary:外語每日一詞/2026年/5月8日]]
# [[:Wiktionary:每日一詞/2026年/5月11日]]
# [[:Wiktionary:每日一詞/2026年/5月10日]]
# [[:Wiktionary:每日一詞/2026年/5月9日]]
# [[:Wiktionary:每日一詞/2026年/5月8日]]
# [[:Wiktionary:每日一詞/2026年/5月7日]]
# [[:Wiktionary:圖片詞典/uk:Fingers]]
# [[:Wiktionary:外語每日一詞/2026年/5月6日]]
# [[:Wiktionary:外語每日一詞/2026年/5月7日]]
# [[:Wiktionary:外語每日一詞/2026年/5月5日]]
# [[:Wiktionary:外語每日一詞/2026年/5月4日]]
# [[:Wiktionary:每日一詞/2026年/5月6日]]
# [[:Wiktionary:每日一詞/2026年/5月4日]]
# [[:Wiktionary:每日一詞/2026年/9月28日]]
# [[:Wiktionary:每日一詞/2026年/9月15日]]
# [[:Wiktionary:每日一詞/2026年/5月3日]]
# [[:Wiktionary:每日一詞/2026年/5月2日]]
# [[:Wiktionary:外語每日一詞/2026年/5月1日]]
# [[:Wiktionary:外語每日一詞/2026年/5月3日]]
# [[:Wiktionary:外語每日一詞/2026年/5月2日]]
# [[:Wiktionary:外語每日一詞/2026年/4月30日]]
# [[:Wiktionary:外語每日一詞/2026年/4月29日]]
# [[:Wiktionary:外語每日一詞/2026年/4月28日]]
# [[:Wiktionary:每日一詞/2026年/5月1日]]
# [[:Wiktionary:每日一詞/2026年/4月30日]]
# [[:Wiktionary:每日一詞/2026年/4月28日]]
# [[:Wiktionary:每日一詞/2026年/4月29日]]
# [[:Wiktionary:外語每日一詞/2026年/4月27日]]
# [[:Wiktionary:每日一詞/2026年/4月27日]]
# [[:Wiktionary:外語每日一詞/2026年/4月26日]]
# [[:Wiktionary:外語每日一詞/2026年/4月25日]]
# [[:Wiktionary:外語每日一詞/2026年/4月24日]]
# [[:Wiktionary:外語每日一詞/2026年/4月23日]]
# [[:Wiktionary:每日一詞/2026年/4月26日]]
# [[:Wiktionary:每日一詞/2026年/11月28日]]
# [[:Wiktionary:每日一詞/2026年/4月25日]]
# [[:Wiktionary:每日一詞/2026年/4月24日]]
# [[:Wiktionary:每日一詞/2026年/4月23日]]
# [[:Wiktionary:每日一詞/2026年/5月18日]]
# [[:Wiktionary:每日一詞/2026年/4月22日]]
# [[:Wiktionary:每日一詞/2026年/4月21日]]
# [[:Wiktionary:每日一詞/2026年/4月20日]]
# [[:Wiktionary:每日一詞/2026年/4月19日]]
# [[:Wiktionary:外語每日一詞/2026年/4月21日]]
# [[:Wiktionary:外語每日一詞/2026年/4月20日]]
# [[:Wiktionary:外語每日一詞/2026年/4月19日]]
# [[:Wiktionary:外語每日一詞/2026年/4月18日]]
# [[:Wiktionary:外語每日一詞/2026年/4月17日]]
# [[:Wiktionary:每日一詞/2027年/2月12日]]
# [[:Wiktionary:圖片詞典/hy:Solar System]]
# [[:Wiktionary:每日一詞/2026年/4月18日]]
# [[:Wiktionary:外語每日一詞/2026年/4月16日]]
# [[:Wiktionary:外語每日一詞/2026年/4月15日]]
# [[:Wiktionary:外語每日一詞/2026年/4月13日]]
# [[:Wiktionary:外語每日一詞/2026年/4月12日]]
# [[:Wiktionary:每日一詞/2026年/4月16日]]
# [[:Wiktionary:每日一詞/2026年/4月14日]]
# [[:Wiktionary:每日一詞/2026年/4月12日]]
# [[:Wiktionary:每日一詞/2026年/4月15日]]
# [[:Wiktionary:每日一詞/2026年/4月13日]]
# [[:Wiktionary:每日一詞/2026年/4月11日]]
# [[:Wiktionary:每日一詞/2026年/8月1日]]
# [[:Wiktionary:外語每日一詞/2026年/4月14日]]
# [[:Wiktionary:每日一詞/2026年/4月10日]]
# [[:Wiktionary:每日一詞/2026年/4月9日]]
# [[:Wiktionary:外語每日一詞/2026年/4月11日]]
# [[:Wiktionary:外語每日一詞/2026年/4月10日]]
# [[:Wiktionary:外語每日一詞/2026年/4月9日]]
# [[:Wiktionary:外語每日一詞/2026年/4月8日]]
# [[:Wiktionary:外語每日一詞/2026年/4月7日]]
# [[:Wiktionary:外語每日一詞/2026年/4月6日]]
# [[:Wiktionary:外語每日一詞/2026年/4月5日]]
# [[:Wiktionary:每日一詞/2026年/11月17日]]
# [[:Wiktionary:每日一詞/2026年/4月7日]]
# [[:Wiktionary:每日一詞/2026年/4月8日]]
# [[:Wiktionary:每日一詞/2026年/4月6日]]
# [[:Wiktionary:每日一詞/2026年/4月4日]]
# [[:Wiktionary:外語每日一詞/2026年/4月4日]]
# [[:Wiktionary:外語每日一詞/2026年/4月3日]]
# [[:Wiktionary:外語每日一詞/2026年/4月2日]]
# [[:Wiktionary:外語每日一詞/2026年/4月1日]]
# [[:Wiktionary:每日一詞/2026年/4月3日]]
# [[:Wiktionary:每日一詞/2026年/9月4日]]
# [[:Wiktionary:每日一詞/2026年/4月1日]]
# [[:Wiktionary:外語每日一詞/2026年/3月31日]]
# [[:Wiktionary:外語每日一詞/2026年/3月30日]]
# [[:Wiktionary:每日一詞/2026年/3月31日]]
# [[:Wiktionary:每日一詞/2026年/3月30日]]
# [[:Wiktionary:外語每日一詞/2026年/3月29日]]
# [[:Wiktionary:每日一詞/2026年/3月29日]]
# [[:Wiktionary:每日一詞/2026年/3月28日]]
# [[:Wiktionary:每日一詞/2027年/2月4日]]
# [[:Wiktionary:每日一詞/2026年/3月27日]]
# [[:Wiktionary:外語每日一詞/2026年/3月28日]]
# [[:Wiktionary:外語每日一詞/2026年/3月27日]]
# [[:Wiktionary:外語每日一詞/2026年/3月26日]]
# [[:Wiktionary:每日一詞/2026年/3月26日]]
# [[:Wiktionary:每日一詞/2026年/3月24日]]
# [[:Wiktionary:每日一詞/2026年/3月25日]]
# [[:Wiktionary:每日一詞/2026年/3月23日]]
# [[:Wiktionary:外語每日一詞/2026年/3月25日]]
# [[:Wiktionary:外語每日一詞/2026年/3月24日]]
# [[:Wiktionary:外語每日一詞/2026年/3月23日]]
# [[:Wiktionary:外語每日一詞/2026年/3月22日]]
# [[:Wiktionary:外語每日一詞/2026年/3月21日]]
# [[:Wiktionary:外語每日一詞/2026年/3月20日]]
# [[:Wiktionary:外語每日一詞/2026年/3月19日]]
# [[:Wiktionary:外語每日一詞/2026年/3月18日]]
# [[:Wiktionary:每日一詞/2026年/4月5日]]
# [[:Wiktionary:每日一詞/2026年/3月22日]]
# [[:Wiktionary:每日一詞/2026年/10月17日]]
# [[:Wiktionary:每日一詞/2026年/4月17日]]
# [[:Wiktionary:每日一詞/2026年/4月2日]]
# [[:Wiktionary:每日一詞/2026年/3月18日]]
# [[:Wiktionary:每日一詞/2026年/3月17日]]
# [[:Wiktionary:每日一詞/2026年/3月16日]]
# [[:Wiktionary:每日一詞/2026年/3月15日]]
# [[:Wiktionary:外語每日一詞/2026年/3月17日]]
# [[:Wiktionary:外語每日一詞/2026年/3月16日]]
# [[:Wiktionary:外語每日一詞/2026年/3月15日]]
# [[:Wiktionary:外語每日一詞/2026年/3月14日]]
# [[:Wiktionary:外語每日一詞/2026年/3月13日]]
# [[:Wiktionary:外語每日一詞/2026年/3月12日]]
# [[:Wiktionary:外語每日一詞/2026年/3月10日]]
# [[:Wiktionary:外語每日一詞/2026年/3月11日]]
# [[:Wiktionary:外語每日一詞/2027年/3月8日]]
# [[:Wiktionary:每日一詞/2026年/3月14日]]
# [[:Wiktionary:每日一詞/2026年/3月13日]]
# [[:Wiktionary:每日一詞/2026年/3月9日]]
# [[:Wiktionary:每日一詞/2026年/9月14日]]
# [[:Wiktionary:每日一詞/2026年/3月8日]]
# [[:Wiktionary:每日一詞/2026年/3月7日]]
# [[:Wiktionary:每日一詞/2026年/3月6日]]
# [[:Wiktionary:每日一詞/2026年/3月19日]]
# [[:Wiktionary:每日一詞/2026年/3月5日]]
# [[:Wiktionary:每日一詞/2026年/3月21日]]
# [[:Wiktionary:每日一詞/2026年/3月11日]]
# [[:Wiktionary:每日一詞/2026年/3月4日]]
# [[:Wiktionary:每日一詞/2026年/3月10日]]
# [[:Wiktionary:每日一詞/2026年/3月3日]]
# [[:Wiktionary:每日一詞/2026年/9月2日]]
# [[:Wiktionary:每日一詞/2026年/3月2日]]
# [[:Wiktionary:每日一詞/2026年/2月28日]]
# [[:Wiktionary:每日一詞/2026年/2月27日]]
# [[:Wiktionary:每日一詞/2026年/2月26日]]
# [[:Wiktionary:每日一詞/2026年/2月25日]]
# [[:Wiktionary:每日一詞/2026年/2月24日]]
# [[:Wiktionary:每日一詞/2026年/2月21日]]
# [[:Wiktionary:每日一詞/2026年/2月20日]]
# [[:Wiktionary:每日一詞/2026年/2月22日]]
# [[:Wiktionary:每日一詞/2026年/2月23日]]
# [[:Wiktionary:每日一詞/2026年/2月18日]]
# [[:Wiktionary:每日一詞/2026年/2月19日]]
# [[:Wiktionary:每日一詞/2026年/2月17日]]
# [[:Wiktionary:每日一詞/2026年/2月16日]]
# [[:Wiktionary:每日一詞/2026年/2月15日]]
# [[:Wiktionary:每日一詞/2026年/2月13日]]
# [[:Wiktionary:每日一詞/2026年/2月12日]]
# [[:Wiktionary:每日一詞/2026年/2月11日]]
# [[:Wiktionary:每日一詞/2026年/2月10日]]
# [[:Wiktionary:每日一詞/2026年/2月9日]]
# [[:Wiktionary:每日一詞/2026年/2月8日]]
# [[:Wiktionary:每日一詞/2026年/2月7日]]
# [[:Wiktionary:每日一詞/2026年/2月6日]]
# [[:Wiktionary:每日一詞/2026年/2月14日]]
# [[:Wiktionary:每日一詞/2026年/2月5日]]
# [[:Wiktionary:每日一詞/2026年/2月3日]]
# [[:Wiktionary:每日一詞/2026年/2月2日]]
# [[:Wiktionary:每日一詞/2026年/2月1日]]
# [[:Wiktionary:每日一詞/2026年/1月31日]]
# [[:Wiktionary:每日一詞/2026年/5月5日]]
# [[:Wiktionary:每日一詞/2026年/1月30日]]
# [[:Wiktionary:每日一詞/2026年/1月29日]]
# [[:Wiktionary:每日一詞/2026年/1月28日]]
# [[:Wiktionary:每日一詞/2026年/1月27日]]
# [[:Wiktionary:每日一詞/2026年/1月26日]]
# [[:Wiktionary:每日一詞/2026年/1月25日]]
# [[:Wiktionary:每日一詞/2026年/7月24日]]
# [[:Wiktionary:每日一詞/2026年/1月24日]]
# [[:Wiktionary:每日一詞/2026年/1月23日]]
# [[:Wiktionary:每日一詞/2026年/1月22日]]
# [[:Wiktionary:每日一詞/2026年/1月21日]]
# [[:Wiktionary:每日一詞/2026年/1月20日]]
# [[:Wiktionary:每日一詞/2026年/1月19日]]
# [[:Wiktionary:每日一詞/2026年/1月18日]]
# [[:Wiktionary:每日一詞/2026年/1月17日]]
# [[:Wiktionary:每日一詞/2026年/1月16日]]
# [[:Wiktionary:每日一詞/2026年/1月14日]]
# [[:Wiktionary:每日一詞/2026年/1月15日]]
# [[:Wiktionary:每日一詞/2026年/1月13日]]
# [[:Wiktionary:每日一詞/2026年/1月12日]]
# [[:Wiktionary:每日一詞/2026年/1月11日]]
# [[:Wiktionary:每日一詞/2026年/1月10日]]
# [[:Wiktionary:每日一詞/2026年/1月8日]]
# [[:Wiktionary:每日一詞/2026年/1月9日]]
# [[:Wiktionary:每日一詞/2026年/1月6日]]
# [[:Wiktionary:每日一詞/2026年/1月7日]]
# [[:Wiktionary:每日一詞/2026年/1月5日]]
# [[:Wiktionary:每日一詞/2026年/1月4日]]
# [[:Wiktionary:每日一詞/2026年/1月3日]]
# [[:Wiktionary:每日一詞/2026年/1月2日]]
# [[:Wiktionary:外語每日一詞/2025年/12月28日]]
# [[:Wiktionary:外語每日一詞/2025年/12月27日]]
# [[:Wiktionary:外語每日一詞/2025年/12月30日]]
# [[:Wiktionary:外語每日一詞/2025年/12月25日]]
# [[:Wiktionary:外語每日一詞/2025年/12月26日]]
# [[:Wiktionary:外語每日一詞/2025年/12月24日]]
# [[:Wiktionary:外語每日一詞/2025年/12月23日]]
# [[:Wiktionary:外語每日一詞/2025年/12月21日]]
# [[:Wiktionary:外語每日一詞/2025年/12月20日]]
# [[:Wiktionary:外語每日一詞/2025年/12月19日]]
# [[:Wiktionary:每日一詞/2025年/12月28日]]
# [[:Wiktionary:每日一詞/2025年/12月30日]]
# [[:Wiktionary:每日一詞/2025年/12月27日]]
# [[:Wiktionary:每日一詞/2026年/3月1日]]
# [[:Wiktionary:每日一詞/2025年/12月26日]]
# [[:Wiktionary:每日一詞/2025年/12月25日]]
# [[:Wiktionary:每日一詞/2025年/12月24日]]
# [[:Wiktionary:每日一詞/2026年/2月4日]]
# [[:Wiktionary:每日一詞/2025年/12月22日]]
# [[:Wiktionary:每日一詞/2025年/12月21日]]
# [[:Wiktionary:每日一詞/2025年/12月20日]]
# [[:Wiktionary:每日一詞/2025年/12月19日]]
# [[:Wiktionary:每日一詞/2025年/12月18日]]
# [[:Wiktionary:每日一詞/2025年/12月17日]]
# [[:Wiktionary:每日一詞/2025年/12月15日]]
# [[:Wiktionary:每日一詞/2025年/12月13日]]
# [[:Wiktionary:每日一詞/2026年/9月25日]]
# [[:Wiktionary:每日一詞/2025年/12月14日]]
# [[:Wiktionary:外語每日一詞/2025年/12月18日]]
# [[:Wiktionary:每日一詞/2025年/12月12日]]
# [[:Wiktionary:每日一詞/2025年/12月11日]]
# [[:Wiktionary:每日一詞/2025年/12月10日]]
# [[:Wiktionary:每日一詞/2025年/12月29日]]
# [[:Wiktionary:每日一詞/2025年/12月23日]]
# [[:Wiktionary:每日一詞/2025年/12月16日]]
# [[:Wiktionary:每日一詞/2025年/12月9日]]
# [[:Wiktionary:每日一詞/2025年/12月8日]]
# [[:Wiktionary:每日一詞/2025年/12月7日]]
# [[:Wiktionary:每日一詞/2025年/12月6日]]
# [[:Wiktionary:外語每日一詞/2025年/12月17日]]
# [[:Wiktionary:每日一詞/2025年/12月3日]]
# [[:Wiktionary:外語每日一詞/2025年/12月13日]]
# [[:Wiktionary:外語每日一詞/2025年/12月16日]]
# [[:Wiktionary:外語每日一詞/2025年/12月12日]]
# [[:Wiktionary:外語每日一詞/2025年/12月10日]]
# [[:Wiktionary:外語每日一詞/2025年/12月29日]]
# [[:Wiktionary:每日一詞/2025年/11月30日]]
# [[:Wiktionary:每日一詞/2025年/12月4日]]
# [[:Wiktionary:每日一詞/2025年/11月28日]]
# [[:Wiktionary:每日一詞/2025年/11月29日]]
# [[:Wiktionary:每日一詞/2025年/11月27日]]
# [[:Wiktionary:每日一詞/2026年/3月12日]]
# [[:Wiktionary:每日一詞/2025年/11月23日]]
# [[:Wiktionary:每日一詞/2025年/11月26日]]
# [[:Wiktionary:每日一詞/2025年/11月25日]]
# [[:Wiktionary:每日一詞/2025年/12月5日]]
# [[:Wiktionary:每日一詞/2025年/11月24日]]
# [[:Wiktionary:外語每日一詞/2025年/12月9日]]
# [[:Wiktionary:外語每日一詞/2025年/12月11日]]
# [[:Wiktionary:外語每日一詞/2025年/12月22日]]
# [[:Wiktionary:外語每日一詞/2025年/12月14日]]
# [[:Wiktionary:外語每日一詞/2025年/12月31日]]
# [[:Wiktionary:外語每日一詞/2025年/12月7日]]
# [[:Wiktionary:外語每日一詞/2025年/12月6日]]
# [[:Wiktionary:外語每日一詞/2025年/12月5日]]
# [[:Wiktionary:外語每日一詞/2025年/12月4日]]
# [[:Wiktionary:外語每日一詞/2025年/12月3日]]
# [[:Wiktionary:外語每日一詞/2025年/12月2日]]
# [[:Wiktionary:外語每日一詞/2025年/11月29日]]
# [[:Wiktionary:外語每日一詞/2025年/11月28日]]
# [[:Wiktionary:外語每日一詞/2025年/11月27日]]
# [[:Wiktionary:每日一詞/2025年/11月22日]]
# [[:Wiktionary:每日一詞/2025年/11月21日]]
# [[:Wiktionary:外語每日一詞/2025年/11月25日]]
# [[:Wiktionary:外語每日一詞/2025年/11月30日]]
# [[:Wiktionary:外語每日一詞/2025年/11月26日]]
# [[:Wiktionary:外語每日一詞/2025年/12月15日]]
# [[:Wiktionary:外語每日一詞/2025年/12月8日]]
# [[:Wiktionary:外語每日一詞/2025年/11月23日]]
# [[:Wiktionary:外語每日一詞/2025年/11月22日]]
# [[:Wiktionary:外語每日一詞/2025年/11月21日]]
# [[:Wiktionary:外語每日一詞/2025年/11月20日]]
# [[:Wiktionary:外語每日一詞/2025年/11月19日]]
# [[:Wiktionary:外語每日一詞/2025年/11月18日]]
# [[:Wiktionary:每日一詞/2025年/11月20日]]
# [[:Wiktionary:每日一詞/2025年/11月19日]]
# [[:Wiktionary:外語每日一詞/2025年/11月16日]]
# [[:Wiktionary:每日一詞/2025年/11月18日]]
# [[:Wiktionary:每日一詞/2025年/11月17日]]
# [[:Wiktionary:每日一詞/2025年/11月16日]]
# [[:Wiktionary:外語每日一詞/2025年/11月15日]]
# [[:Wiktionary:外語每日一詞/2025年/11月14日]]
# [[:Wiktionary:外語每日一詞/2025年/11月13日]]
# [[:Wiktionary:每日一詞/2025年/11月15日]]
# [[:Wiktionary:每日一詞/2025年/11月13日]]
# [[:Wiktionary:每日一詞/2025年/11月10日]]
# [[:Wiktionary:每日一詞/2025年/11月12日]]
# [[:Wiktionary:每日一詞/2025年/11月11日]]
# [[:Wiktionary:每日一詞/2025年/12月1日]]
# [[:Wiktionary:每日一詞/2025年/11月9日]]
# [[:Wiktionary:每日一詞/2025年/11月7日]]
# [[:Wiktionary:每日一詞/2025年/11月8日]]
# [[:Wiktionary:每日一詞/2025年/11月6日]]
# [[:Wiktionary:每日一詞/2025年/11月5日]]
# [[:Wiktionary:每日一詞/2025年/11月14日]]
# [[:Wiktionary:每日一詞/2025年/11月4日]]
# [[:Wiktionary:每日一詞/2025年/11月3日]]
# [[:Wiktionary:每日一詞/2025年/11月2日]]
# [[:Wiktionary:每日一詞/2025年/12月2日]]
# [[:Wiktionary:每日一詞/2025年/11月1日]]
# [[:Wiktionary:每日一詞/2025年/10月31日]]
# [[:Wiktionary:每日一詞/2025年/10月30日]]
# [[:Wiktionary:每日一詞/2025年/10月28日]]
# [[:Wiktionary:外語每日一詞/2025年/12月1日]]
# [[:Wiktionary:每日一詞/2025年/10月27日]]
# [[:Wiktionary:外語每日一詞/2025年/11月12日]]
# [[:Wiktionary:外語每日一詞/2025年/11月11日]]
# [[:Wiktionary:外語每日一詞/2025年/11月8日]]
# [[:Wiktionary:外語每日一詞/2025年/11月7日]]
# [[:Wiktionary:外語每日一詞/2025年/11月6日]]
# [[:Wiktionary:外語每日一詞/2025年/11月5日]]
# [[:Wiktionary:外語每日一詞/2025年/11月4日]]
# [[:Wiktionary:外語每日一詞/2025年/11月24日]]
# [[:Wiktionary:外語每日一詞/2025年/11月3日]]
# [[:Wiktionary:外語每日一詞/2025年/11月1日]]
# [[:Wiktionary:外語每日一詞/2025年/10月31日]]
# [[:Wiktionary:外語每日一詞/2025年/10月30日]]
# [[:Wiktionary:外語每日一詞/2025年/10月29日]]
# [[:Wiktionary:外語每日一詞/2025年/10月28日]]
# [[:Wiktionary:外語每日一詞/2025年/10月27日]]
# [[:Wiktionary:每日一詞/2026年/1月1日]]
# [[:Wiktionary:每日一詞/2025年/10月25日]]
# [[:Wiktionary:外語每日一詞/2025年/11月17日]]
# [[:Wiktionary:外語每日一詞/2025年/11月10日]]
# [[:Wiktionary:外語每日一詞/2025年/10月25日]]
# [[:Wiktionary:每日一詞/2025年/10月23日]]
# [[:Wiktionary:每日一詞/2025年/10月24日]]
# [[:Wiktionary:每日一詞/2025年/10月22日]]
# [[:Wiktionary:每日一詞/2025年/10月20日]]
# [[:Wiktionary:外語每日一詞/2025年/10月24日]]
# [[:Wiktionary:外語每日一詞/2025年/10月23日]]
# [[:Wiktionary:外語每日一詞/2025年/10月21日]]
# [[:Wiktionary:外語每日一詞/2025年/10月20日]]
# [[:Wiktionary:外語每日一詞/2025年/11月2日]]
# [[:Wiktionary:每日一詞/2025年/10月21日]]
# [[:Wiktionary:每日一詞/2025年/10月26日]]
# [[:Wiktionary:每日一詞/2025年/10月19日]]
# [[:Wiktionary:外語每日一詞/2025年/10月26日]]
# [[:Wiktionary:外語每日一詞/2025年/10月19日]]
# [[:Wiktionary:每日一詞/2025年/10月17日]]
# [[:Wiktionary:每日一詞/2025年/12月31日]]
# [[:Wiktionary:外語每日一詞/2025年/10月18日]]
# [[:Wiktionary:外語每日一詞/2025年/10月17日]]
# [[:Wiktionary:外語每日一詞/2025年/10月16日]]
# [[:Wiktionary:外語每日一詞/2025年/10月15日]]
# [[:Wiktionary:外語每日一詞/2025年/10月14日]]
# [[:Wiktionary:外語每日一詞/2025年/10月13日]]
# [[:Wiktionary:每日一詞/2025年/10月18日]]
# [[:Wiktionary:每日一詞/2025年/10月16日]]
# [[:Wiktionary:外語每日一詞/2025年/10月22日]]
# [[:Wiktionary:外語每日一詞/2025年/10月12日]]
# [[:Wiktionary:外語每日一詞/2025年/10月11日]]
# [[:Wiktionary:外語每日一詞/2025年/10月10日]]
# [[:Wiktionary:外語每日一詞/2025年/10月8日]]
# [[:Wiktionary:外語每日一詞/2025年/10月7日]]
# [[:Wiktionary:每日一詞/2025年/10月14日]]
# [[:Wiktionary:每日一詞/2025年/10月15日]]
# [[:Wiktionary:每日一詞/2025年/10月13日]]
# [[:Wiktionary:每日一詞/2025年/10月12日]]
# [[:Wiktionary:每日一詞/2025年/10月11日]]
# [[:Wiktionary:每日一詞/2025年/10月10日]]
# [[:Wiktionary:每日一詞/2025年/10月8日]]
# [[:Wiktionary:每日一詞/2025年/10月9日]]
# [[:Wiktionary:每日一詞/2025年/10月6日]]
# [[:Wiktionary:每日一詞/2025年/10月1日]]
# [[:Wiktionary:外語每日一詞/2025年/10月6日]]
# [[:Wiktionary:每日一詞/2025年/10月5日]]
# [[:Wiktionary:每日一詞/2025年/10月4日]]
# [[:Wiktionary:每日一詞/2025年/10月3日]]
# [[:Wiktionary:每日一詞/2025年/9月29日]]
# [[:Wiktionary:每日一詞/2025年/10月2日]]
# [[:Wiktionary:每日一詞/2025年/10月7日]]
# [[:Wiktionary:每日一詞/2025年/9月28日]]
# [[:Wiktionary:外語每日一詞/2026年/4月22日]]
# [[:Wiktionary:外語每日一詞/2025年/10月5日]]
# [[:Wiktionary:外語每日一詞/2025年/10月4日]]
# [[:Wiktionary:每日一詞/2025年/9月27日]]
# [[:Wiktionary:外語每日一詞/2025年/11月9日]]
# [[:Wiktionary:外語每日一詞/2025年/9月30日]]
# [[:Wiktionary:外語每日一詞/2025年/9月29日]]
# [[:Wiktionary:外語每日一詞/2025年/9月28日]]
# [[:Wiktionary:外語每日一詞/2025年/9月27日]]
# [[:Wiktionary:外語每日一詞/2025年/9月26日]]
# [[:Wiktionary:外語每日一詞/2025年/10月9日]]
# [[:Wiktionary:外語每日一詞/preload]]
# [[:Wiktionary:外語每日一詞/2025年/10月3日]]
# [[:Wiktionary:外語每日一詞/2025年/10月2日]]
# [[:Wiktionary:外語每日一詞/2025年/9月25日]]
# [[:Wiktionary:每日一詞/2025年/9月30日]]
# [[:Wiktionary:每日一詞/2025年/9月26日]]
# [[:Wiktionary:每日一詞/2025年/9月25日]]
# [[:Wiktionary:每日一詞/2025年/9月24日]]
# [[:Wiktionary:每日一詞/2025年/9月23日]]
# [[:Wiktionary:每日一詞/2025年/9月22日]]
# [[:Wiktionary:外語每日一詞/2025年/9月24日]]
# [[:Wiktionary:外語每日一詞/2025年/9月23日]]
# [[:Wiktionary:外語每日一詞/2025年/9月20日]]
# [[:Wiktionary:外語每日一詞/2025年/9月19日]]
# [[:Wiktionary:外語每日一詞/2025年/9月18日]]
# [[:Wiktionary:外語每日一詞/2025年/9月21日]]
# [[:Wiktionary:外語每日一詞/2025年/9月17日]]
# [[:Wiktionary:外語每日一詞/2025年/9月16日]]
# [[:Wiktionary:每日一詞/2025年/9月21日]]
# [[:Wiktionary:每日一詞/2025年/9月20日]]
# [[:Wiktionary:每日一詞/2025年/9月19日]]
# [[:Wiktionary:每日一詞/2025年/9月18日]]
# [[:Wiktionary:每日一詞/2025年/9月17日]]
# [[:Wiktionary:每日一詞/2025年/9月16日]]
# [[:Wiktionary:每日一詞/2025年/9月15日]]
# [[:Wiktionary:外語每日一詞/2025年/9月14日]]
# [[:Wiktionary:每日一詞/2025年/9月14日]]
# [[:Wiktionary:外語每日一詞/2025年/9月13日]]
# [[:Wiktionary:每日一詞/2025年/9月13日]]
# [[:Wiktionary:每日一詞/2025年/9月12日]]
# [[:Wiktionary:每日一詞/2025年/9月11日]]
# [[:Wiktionary:外語每日一詞/2025年/9月12日]]
# [[:Wiktionary:外語每日一詞/2025年/9月11日]]
# [[:Wiktionary:每日一詞/2025年/9月10日]]
# [[:Wiktionary:每日一詞/2025年/9月8日]]
# [[:Wiktionary:外語每日一詞/2025年/9月10日]]
# [[:Wiktionary:外語每日一詞/2025年/9月9日]]
# [[:Wiktionary:外語每日一詞/2025年/9月22日]]
# [[:Wiktionary:圖片詞典/la:kinship]]
# [[:Wiktionary:外語每日一詞/2025年/10月1日]]
# [[:Wiktionary:外語每日一詞/2025年/9月15日]]
# [[:Wiktionary:外語每日一詞/2025年/9月8日]]
# [[:Wiktionary:每日一詞/2025年/9月7日]]
# [[:Wiktionary:每日一詞/2025年/9月9日]]
# [[:Wiktionary:每日一詞/2025年/9月6日]]
# [[:Wiktionary:外語每日一詞/2025年/9月7日]]
# [[:Wiktionary:外語每日一詞/2025年/9月6日]]
# [[:Wiktionary:外語每日一詞/2025年/9月5日]]
# [[:Wiktionary:外語每日一詞/2025年/9月3日]]
# [[:Wiktionary:外語每日一詞/2025年/9月2日]]
# [[:Wiktionary:外語每日一詞/2025年/9月4日]]
# [[:Wiktionary:每日一詞/2025年/9月5日]]
# [[:Wiktionary:每日一詞/2025年/9月4日]]
# [[:Wiktionary:外語每日一詞/2025年/8月31日]]
# [[:Wiktionary:外語每日一詞/2025年/8月30日]]
# [[:Wiktionary:每日一詞/2025年/8月31日]]
# [[:Wiktionary:每日一詞/2025年/9月3日]]
# [[:Wiktionary:每日一詞/2025年/9月2日]]
# [[:Wiktionary:每日一詞/2025年/8月30日]]
# [[:Wiktionary:每日一詞/2025年/8月29日]]
# [[:Wiktionary:每日一詞/2025年/8月28日]]
# [[:Wiktionary:每日一詞/2025年/8月27日]]
# [[:Wiktionary:外語每日一詞/2025年/8月29日]]
# [[:Wiktionary:外語每日一詞/2025年/8月28日]]
# [[:Wiktionary:外語每日一詞/2025年/8月26日]]
# [[:Wiktionary:外語每日一詞/2025年/8月25日]]
# [[:Wiktionary:外語每日一詞/2025年/8月27日]]
# [[:Wiktionary:外語每日一詞/2025年/8月24日]]
# [[:Wiktionary:外語每日一詞/2025年/8月23日]]
# [[:Wiktionary:外語每日一詞/2025年/8月22日]]
# [[:Wiktionary:外語每日一詞/2025年/8月21日]]
# [[:Wiktionary:每日一詞/2025年/8月26日]]
# [[:Wiktionary:每日一詞/2025年/8月22日]]
# [[:Wiktionary:每日一詞/2025年/8月24日]]
# [[:Wiktionary:每日一詞/2025年/8月23日]]
# [[:Wiktionary:每日一詞/2025年/8月21日]]
# [[:Wiktionary:每日一詞/2025年/9月1日]]
# [[:Wiktionary:外語每日一詞/2025年/8月20日]]
# [[:Wiktionary:每日一詞/2025年/8月20日]]
# [[:Wiktionary:外語每日一詞/2025年/8月19日]]
# [[:Wiktionary:外語每日一詞/2025年/8月18日]]
# [[:Wiktionary:每日一詞/2025年/8月19日]]
# [[:Wiktionary:每日一詞/2025年/8月18日]]
# [[:Wiktionary:每日一詞/2025年/8月17日]]
# [[:Wiktionary:外語每日一詞/2025年/8月16日]]
# [[:Wiktionary:外語每日一詞/2025年/8月15日]]
# [[:Wiktionary:每日一詞/2025年/8月16日]]
# [[:Wiktionary:每日一詞/2025年/8月15日]]
# [[:Wiktionary:外語每日一詞/2025年/8月14日]]
# [[:Wiktionary:外語每日一詞/2025年/8月13日]]
# [[:Wiktionary:外語每日一詞/2025年/8月12日]]
# [[:Wiktionary:每日一詞/2025年/8月14日]]
# [[:Wiktionary:每日一詞/2025年/8月13日]]
# [[:Wiktionary:每日一詞/2025年/8月11日]]
# [[:Wiktionary:每日一詞/2025年/8月12日]]
# [[:Wiktionary:外語每日一詞/2025年/8月11日]]
# [[:Wiktionary:外語每日一詞/2025年/8月10日]]
# [[:Wiktionary:每日一詞/2025年/8月9日]]
# [[:Wiktionary:外語每日一詞/2025年/9月1日]]
# [[:Wiktionary:外語每日一詞/2025年/8月9日]]
# [[:Wiktionary:外語每日一詞/2025年/8月8日]]
# [[:Wiktionary:每日一詞/2025年/8月6日]]
# [[:Wiktionary:每日一詞/2025年/8月7日]]
# [[:Wiktionary:每日一詞/2025年/8月8日]]
# [[:Wiktionary:每日一詞/2025年/8月5日]]
# [[:Wiktionary:每日一詞/2025年/8月4日]]
# [[:Wiktionary:每日一詞/2026年/3月20日]]
# [[:Wiktionary:外語每日一詞/2025年/8月7日]]
# [[:Wiktionary:外語每日一詞/2025年/8月4日]]
# [[:Wiktionary:外語每日一詞/2025年/8月6日]]
# [[:Wiktionary:外語每日一詞/2025年/8月5日]]
# [[:Wiktionary:外語每日一詞/2025年/8月3日]]
# [[:Wiktionary:外語每日一詞/2025年/8月2日]]
# [[:Wiktionary:外語每日一詞/2025年/8月1日]]
# [[:Wiktionary:外語每日一詞/2025年/7月31日]]
# [[:Wiktionary:外語每日一詞/2025年/7月30日]]
# [[:Wiktionary:外語每日一詞/2025年/7月29日]]
# [[:Wiktionary:外語每日一詞/2025年/7月28日]]
# [[:Wiktionary:每日一詞/2025年/8月3日]]
# [[:Wiktionary:每日一詞/2025年/8月2日]]
# [[:Wiktionary:每日一詞/2025年/7月31日]]
# [[:Wiktionary:每日一詞/2025年/7月30日]]
# [[:Wiktionary:每日一詞/2025年/7月29日]]
# [[:Wiktionary:每日一詞/2025年/7月28日]]
# [[:Wiktionary:每日一詞/2025年/8月1日]]
# [[:Wiktionary:每日一詞/2025年/7月26日]]
# [[:Wiktionary:每日一詞/2025年/7月27日]]
# [[:Wiktionary:外語每日一詞/2025年/7月25日]]
# [[:Wiktionary:外語每日一詞/2025年/7月24日]]
# [[:Wiktionary:外語每日一詞/2025年/7月23日]]
# [[:Wiktionary:外語每日一詞/2025年/7月22日]]
# [[:Wiktionary:每日一詞/2025年/7月24日]]
# [[:Wiktionary:每日一詞/2025年/7月25日]]
# [[:Wiktionary:每日一詞/2025年/7月23日]]
# [[:Wiktionary:每日一詞/2025年/7月22日]]
# [[:Wiktionary:外語每日一詞/2025年/7月21日]]
# [[:Wiktionary:每日一詞/2025年/7月21日]]
# [[:Wiktionary:外語每日一詞/2025年/7月27日]]
# [[:Wiktionary:外語每日一詞/2025年/7月20日]]
# [[:Wiktionary:外語每日一詞/2025年/7月19日]]
# [[:Wiktionary:外語每日一詞/2025年/7月18日]]
# [[:Wiktionary:每日一詞/2025年/7月20日]]
# [[:Wiktionary:每日一詞/2025年/8月25日]]
# [[:Wiktionary:每日一詞/2025年/7月18日]]
# [[:Wiktionary:外語每日一詞/2025年/7月17日]]
# [[:Wiktionary:外語每日一詞/2025年/7月16日]]
# [[:Wiktionary:每日一詞/2025年/7月16日]]
# [[:Wiktionary:每日一詞/2025年/7月14日]]
# [[:Wiktionary:每日一詞/2025年/7月19日]]
# [[:Wiktionary:每日一詞/2025年/7月17日]]
# [[:Wiktionary:每日一詞/2025年/7月15日]]
# [[:Wiktionary:每日一詞/2025年/7月12日]]
# [[:Wiktionary:每日一詞/2025年/10月29日]]
# [[:Wiktionary:每日一詞/2025年/7月13日]]
# [[:Wiktionary:每日一詞/2025年/7月11日]]
# [[:Wiktionary:每日一詞/2025年/7月9日]]
# [[:Wiktionary:外語每日一詞/2025年/7月15日]]
# [[:Wiktionary:每日一詞/2025年/7月5日]]
# [[:Wiktionary:每日一詞/2025年/7月10日]]
# [[:Wiktionary:外語每日一詞/2025年/7月14日]]
# [[:Wiktionary:外語每日一詞/2025年/7月11日]]
# [[:Wiktionary:外語每日一詞/2025年/7月10日]]
# [[:Wiktionary:外語每日一詞/2025年/7月9日]]
# [[:Wiktionary:外語每日一詞/2025年/7月8日]]
# [[:Wiktionary:外語每日一詞/2025年/7月7日]]
# [[:Wiktionary:外語每日一詞/2025年/7月12日]]
# [[:Wiktionary:外語每日一詞/2025年/7月5日]]
# [[:Wiktionary:外語每日一詞/2025年/7月6日]]
# [[:Wiktionary:外語每日一詞/2025年/7月13日]]
# [[:Wiktionary:外語每日一詞/2025年/7月3日]]
# [[:Wiktionary:外語每日一詞/2025年/7月4日]]
# [[:Wiktionary:每日一詞/2025年/7月7日]]
# [[:Wiktionary:每日一詞/2025年/7月8日]]
# [[:Wiktionary:每日一詞/2025年/7月6日]]
# [[:Wiktionary:每日一詞/2025年/7月4日]]
# [[:Wiktionary:每日一詞/2025年/7月3日]]
# [[:Wiktionary:每日一詞/2025年/7月2日]]
# [[:Wiktionary:外語每日一詞/2025年/7月2日]]
# [[:Wiktionary:外語每日一詞/2025年/6月30日]]
# [[:Wiktionary:外語每日一詞/2025年/6月28日]]
# [[:Wiktionary:外語每日一詞/2025年/6月27日]]
# [[:Wiktionary:每日一詞/2025年/6月30日]]
# [[:Wiktionary:每日一詞/2025年/6月28日]]
# [[:Wiktionary:每日一詞/2025年/6月26日]]
# [[:Wiktionary:外語每日一詞/2025年/8月17日]]
# [[:Wiktionary:外語每日一詞/2025年/6月26日]]
# [[:Wiktionary:外語每日一詞/2025年/6月25日]]
# [[:Wiktionary:外語每日一詞/2025年/7月1日]]
# [[:Wiktionary:外語每日一詞/2025年/6月24日]]
# [[:Wiktionary:每日一詞/2025年/7月1日]]
# [[:Wiktionary:外語每日一詞/2025年/7月26日]]
# [[:Wiktionary:每日一詞/2025年/6月29日]]
# [[:Wiktionary:每日一詞/2025年/6月27日]]
# [[:Wiktionary:每日一詞/2025年/6月24日]]
# [[:Wiktionary:每日一詞/2025年/6月25日]]
# [[:Wiktionary:每日一詞/2025年/6月22日]]
# [[:Wiktionary:每日一詞/2025年/6月23日]]
# [[:Wiktionary:每日一詞/2025年/6月21日]]
# [[:Wiktionary:外語每日一詞/2025年/6月29日]]
# [[:Wiktionary:每日一詞/2025年/6月20日]]
# [[:Wiktionary:每日一詞/2025年/6月19日]]
# [[:Wiktionary:外語每日一詞/2025年/6月23日]]
# [[:Wiktionary:每日一詞/2025年/6月17日]]
# [[:Wiktionary:每日一詞/2025年/6月18日]]
# [[:Wiktionary:外語每日一詞/2025年/6月22日]]
# [[:Wiktionary:外語每日一詞/2025年/6月21日]]
# [[:Wiktionary:外語每日一詞/2025年/6月19日]]
# [[:Wiktionary:外語每日一詞/2025年/6月18日]]
# [[:Wiktionary:外語每日一詞/2025年/6月17日]]
# [[:Wiktionary:外語每日一詞/2025年/6月16日]]
# [[:Wiktionary:每日一詞/2025年/6月16日]]
# [[:Wiktionary:外語每日一詞/2025年/6月20日]]
# [[:Wiktionary:外語每日一詞/2025年/6月14日]]
# [[:Wiktionary:外語每日一詞/2025年/6月13日]]
# [[:Wiktionary:外語每日一詞/2025年/6月15日]]
# [[:Wiktionary:外語每日一詞/2025年/6月12日]]
# [[:Wiktionary:每日一詞/2025年/6月15日]]
# [[:Wiktionary:每日一詞/2025年/6月14日]]
# [[:Wiktionary:每日一詞/2025年/6月13日]]
# [[:Wiktionary:每日一詞/2025年/6月12日]]
# [[:Wiktionary:每日一詞/2025年/6月11日]]
# [[:Wiktionary:外語每日一詞/2025年/6月11日]]
# [[:Wiktionary:外語每日一詞/2025年/6月10日]]
# [[:Wiktionary:每日一詞/2025年/6月10日]]
# [[:Wiktionary:每日一詞/2025年/6月9日]]
# [[:Wiktionary:每日一詞/2025年/6月8日]]
# [[:Wiktionary:外語每日一詞/2025年/6月8日]]
# [[:Wiktionary:外語每日一詞/2025年/6月7日]]
# [[:Wiktionary:外語每日一詞/2025年/6月6日]]
# [[:Wiktionary:外語每日一詞/2025年/6月5日]]
# [[:Wiktionary:每日一詞/2025年/6月7日]]
# [[:Wiktionary:外語每日一詞/2025年/6月4日]]
# [[:Wiktionary:外語每日一詞/2025年/6月3日]]
# [[:Wiktionary:每日一詞/2025年/6月4日]]
# [[:Wiktionary:每日一詞/2025年/6月6日]]
# [[:Wiktionary:外語每日一詞/2025年/6月9日]]
# [[:Wiktionary:外語每日一詞/2025年/6月2日]]
# [[:Wiktionary:每日一詞/2025年/6月5日]]
# [[:Wiktionary:每日一詞/2025年/6月3日]]
# [[:Wiktionary:每日一詞/2025年/6月2日]]
# [[:Wiktionary:外語每日一詞/2025年/6月1日]]
# [[:Wiktionary:外語每日一詞/2026年/6月19日]]
# [[:Wiktionary:每日一詞/2025年/6月1日]]
# [[:Wiktionary:外語每日一詞/2025年/5月30日]]
# [[:Wiktionary:重定向]]
# [[:Wiktionary:每日一詞/2025年/5月31日]]
# [[:Wiktionary:外語每日一詞/2025年/5月29日]]
# [[:Wiktionary:外語每日一詞/2025年/5月31日]]
# [[:Wiktionary:每日一詞/2025年/5月30日]]
# [[:Wiktionary:每日一詞/2025年/5月29日]]
# [[:Wiktionary:每日一詞/2025年/5月28日]]
# [[:Wiktionary:外語每日一詞/2025年/5月28日]]
# [[:Wiktionary:外語每日一詞/2025年/5月27日]]
# [[:Wiktionary:每日一詞/2025年/5月27日]]
# [[:Wiktionary:每日一詞/2025年/5月26日]]
# [[:Wiktionary:外語每日一詞/2025年/5月26日]]
# [[:Wiktionary:每日一詞/2025年/5月25日]]
# [[:Wiktionary:外語每日一詞/2025年/5月25日]]
# [[:Wiktionary:外語每日一詞/2025年/5月24日]]
# [[:Wiktionary:每日一詞/2025年/5月24日]]
# [[:Wiktionary:每日一詞/2025年/5月23日]]
# [[:Wiktionary:外語每日一詞/2025年/5月23日]]
# [[:Wiktionary:每日一詞/2025年/5月22日]]
# [[:Wiktionary:每日一詞/2025年/5月21日]]
# [[:Wiktionary:每日一詞/2025年/5月20日]]
# [[:Wiktionary:每日一詞/2025年/5月19日]]
# [[:Wiktionary:外語每日一詞/2025年/5月22日]]
# [[:Wiktionary:外語每日一詞/2025年/5月20日]]
# [[:Wiktionary:外語每日一詞/2025年/5月21日]]
# [[:Wiktionary:每日一詞/2025年/5月18日]]
# [[:Wiktionary:外語每日一詞/2025年/5月19日]]
# [[:Wiktionary:外語每日一詞/2025年/5月18日]]
# [[:Wiktionary:外語每日一詞/2025年/5月17日]]
# [[:Wiktionary:外語每日一詞/2025年/5月16日]]
# [[:Wiktionary:每日一詞/2025年/5月17日]]
# [[:Wiktionary:每日一詞/2025年/5月16日]]
# [[:Wiktionary:外語每日一詞/2025年/5月15日]]
# [[:Wiktionary:每日一詞/2025年/5月15日]]
# [[:Wiktionary:每日一詞/2025年/5月14日]]
# [[:Wiktionary:外語每日一詞/2025年/5月14日]]
# [[:Wiktionary:外語每日一詞/2025年/5月13日]]
# [[:Wiktionary:外語每日一詞/2025年/5月12日]]
# [[:Wiktionary:外語每日一詞/2025年/5月11日]]
# [[:Wiktionary:每日一詞/2025年/5月13日]]
# [[:Wiktionary:每日一詞/2025年/5月11日]]
# [[:Wiktionary:每日一詞/2025年/5月12日]]
# [[:Wiktionary:每日一詞/2025年/5月10日]]
# [[:Wiktionary:外語每日一詞/2025年/5月10日]]
# [[:Wiktionary:外語每日一詞/2025年/5月9日]]
# [[:Wiktionary:外語每日一詞/2025年/5月8日]]
# [[:Wiktionary:外語每日一詞/2025年/5月7日]]
# [[:Wiktionary:每日一詞/2025年/5月9日]]
# [[:Wiktionary:每日一詞/2025年/5月7日]]
# [[:Wiktionary:每日一詞/2025年/5月8日]]
# [[:Wiktionary:每日一詞/2025年/5月6日]]
# [[:Wiktionary:外語每日一詞/2025年/5月6日]]
# [[:Wiktionary:每日一詞/2025年/5月5日]]
# [[:Wiktionary:每日一詞/2025年/5月4日]]
# [[:Wiktionary:外語每日一詞/2025年/5月4日]]
# [[:Wiktionary:每日一詞/2025年/5月3日]]
# [[:Wiktionary:外語每日一詞/2025年/5月3日]]
# [[:Wiktionary:外語每日一詞/2025年/5月2日]]
# [[:Wiktionary:每日一詞/2025年/5月2日]]
# [[:Wiktionary:每日一詞/2025年/5月1日]]
# [[:Wiktionary:外語每日一詞/2025年/5月1日]]
# [[:Wiktionary:外語每日一詞/2025年/4月30日]]
# [[:Wiktionary:外語每日一詞/2025年/4月29日]]
# [[:Wiktionary:每日一詞/2025年/4月30日]]
# [[:Wiktionary:外語每日一詞/2025年/4月28日]]
# [[:Wiktionary:每日一詞/2025年/4月28日]]
# [[:Wiktionary:外語每日一詞/2025年/4月27日]]
# [[:Wiktionary:每日一詞/2025年/4月29日]]
# [[:Wiktionary:每日一詞/2025年/4月27日]]
# [[:Wiktionary:外語每日一詞/2025年/4月26日]]
# [[:Wiktionary:外語每日一詞/2025年/4月25日]]
# [[:Wiktionary:每日一詞/2025年/4月25日]]
# [[:Wiktionary:外語每日一詞/2025年/4月24日]]
# [[:Wiktionary:每日一詞/2025年/4月24日]]
# [[:Wiktionary:每日一詞/2025年/4月23日]]
# [[:Wiktionary:外語每日一詞/2025年/4月22日]]
# [[:Wiktionary:外語每日一詞/2025年/4月23日]]
# [[:Wiktionary:外語每日一詞/2025年/4月21日]]
# [[:Wiktionary:每日一詞/2025年/4月21日]]
# [[:Wiktionary:每日一詞/2025年/4月22日]]
# [[:Wiktionary:外語每日一詞/2025年/4月20日]]
# [[:Wiktionary:外語每日一詞/2025年/4月19日]]
# [[:Wiktionary:每日一詞/2025年/4月20日]]
# [[:Wiktionary:每日一詞/2025年/4月19日]]
# [[:Wiktionary:朝鮮語]]
# [[:Wiktionary:外語每日一詞/2025年/4月18日]]
# [[:Wiktionary:每日一詞/2025年/4月17日]]
# [[:Wiktionary:每日一詞/2025年/4月18日]]
# [[:Wiktionary:每日一詞/2025年/4月16日]]
# [[:Wiktionary:外語每日一詞/2025年/4月17日]]
# [[:Wiktionary:外語每日一詞/2025年/4月16日]]
# [[:Wiktionary:外語每日一詞/2025年/4月15日]]
# [[:Wiktionary:外語每日一詞/2025年/4月14日]]
# [[:Wiktionary:每日一詞/2025年/4月26日]]
# [[:Wiktionary:外語每日一詞/2025年/4月12日]]
# [[:Wiktionary:每日一詞/2025年/4月15日]]
# [[:Wiktionary:每日一詞/2025年/4月14日]]
# [[:Wiktionary:每日一詞/2025年/4月13日]]
# [[:Wiktionary:外語每日一詞/2025年/4月13日]]
# [[:Wiktionary:外語每日一詞/2025年/4月11日]]
# [[:Wiktionary:每日一詞/2025年/4月12日]]
# [[:Wiktionary:每日一詞/2025年/4月11日]]
# [[:Wiktionary:每日一詞/2025年/4月10日]]
# [[:Wiktionary:外語每日一詞/2025年/4月10日]]
# [[:Wiktionary:外語每日一詞/2025年/4月9日]]
# [[:Wiktionary:外語每日一詞/2025年/4月8日]]
# [[:Wiktionary:外語每日一詞/2025年/4月7日]]
# [[:Wiktionary:外語每日一詞/2025年/4月6日]]
# [[:Wiktionary:外語每日一詞/2025年/4月5日]]
# [[:Wiktionary:外語每日一詞/2025年/4月4日]]
# [[:Wiktionary:每日一詞/2025年/4月9日]]
# [[:Wiktionary:每日一詞/2025年/4月7日]]
# [[:Wiktionary:每日一詞/2025年/4月8日]]
# [[:Wiktionary:每日一詞/2025年/4月6日]]
# [[:Wiktionary:每日一詞/2025年/4月5日]]
# [[:Wiktionary:每日一詞/2025年/4月4日]]
# [[:Wiktionary:外語每日一詞/2025年/4月3日]]
# [[:Wiktionary:每日一詞/2025年/4月3日]]
# [[:Wiktionary:外語每日一詞/2025年/4月2日]]
# [[:Wiktionary:每日一詞/2025年/4月2日]]
# [[:Wiktionary:外語每日一詞/2025年/4月1日]]
# [[:Wiktionary:外語每日一詞/2025年/3月31日]]
# [[:Wiktionary:每日一詞/2025年/3月31日]]
# [[:Wiktionary:外語每日一詞/2025年/3月30日]]
# [[:Wiktionary:外語每日一詞/2025年/3月29日]]
# [[:Wiktionary:外語每日一詞/2025年/3月28日]]
# [[:Wiktionary:外語每日一詞/2025年/3月27日]]
# [[:Wiktionary:外語每日一詞/2025年/3月26日]]
# [[:Wiktionary:每日一詞/2025年/3月29日]]
# [[:Wiktionary:每日一詞/2025年/3月30日]]
# [[:Wiktionary:每日一詞/2025年/3月28日]]
# [[:Wiktionary:每日一詞/2025年/4月1日]]
# [[:Wiktionary:外語每日一詞/2025年/3月25日]]
# [[:Wiktionary:外語每日一詞/2025年/3月24日]]
# [[:Wiktionary:外語每日一詞/2025年/3月23日]]
# [[:Wiktionary:每日一詞/2025年/3月27日]]
# [[:Wiktionary:每日一詞/2025年/3月26日]]
# [[:Wiktionary:每日一詞/2025年/3月24日]]
# [[:Wiktionary:每日一詞/2025年/3月25日]]
# [[:Wiktionary:每日一詞/2025年/3月22日]]
# [[:Wiktionary:每日一詞/2025年/3月23日]]
# [[:Wiktionary:外語每日一詞/2025年/3月22日]]
# [[:Wiktionary:外語每日一詞/2025年/3月21日]]
# [[:Wiktionary:每日一詞/2025年/3月21日]]
# [[:Wiktionary:每日一詞/2025年/3月20日]]
# [[:Wiktionary:每日一詞/2025年/3月19日]]
# [[:Wiktionary:外語每日一詞/2025年/3月20日]]
# [[:Wiktionary:外語每日一詞/2025年/3月19日]]
# [[:Wiktionary:外語每日一詞/2025年/3月18日]]
# [[:Wiktionary:外語每日一詞/2025年/3月17日]]
# [[:Wiktionary:每日一詞/2025年/3月18日]]
# [[:Wiktionary:每日一詞/2025年/3月17日]]
# [[:Wiktionary:外語每日一詞/2025年/3月16日]]
# [[:Wiktionary:每日一詞/2025年/3月16日]]
# [[:Wiktionary:外語每日一詞/2025年/3月15日]]
# [[:Wiktionary:外語每日一詞/2025年/3月13日]]
# [[:Wiktionary:外語每日一詞/2025年/3月12日]]
# [[:Wiktionary:外語每日一詞/2025年/3月11日]]
# [[:Wiktionary:外語每日一詞/2025年/3月14日]]
# [[:Wiktionary:外語每日一詞/2025年/3月10日]]
# [[:Wiktionary:外語每日一詞/2025年/3月9日]]
# [[:Wiktionary:每日一詞/2025年/3月8日]]
# [[:Wiktionary:每日一詞/2025年/3月15日]]
# [[:Wiktionary:外語每日一詞/2025年/3月8日]]
# [[:Wiktionary:外語每日一詞/2025年/3月7日]]
# [[:Wiktionary:外語每日一詞/2025年/3月6日]]
# [[:Wiktionary:外語每日一詞/2025年/3月5日]]
# [[:Wiktionary:外語每日一詞/2025年/3月4日]]
# [[:Wiktionary:外語每日一詞/2025年/3月3日]]
# [[:Wiktionary:外語每日一詞/2025年/3月2日]]
# [[:Wiktionary:每日一詞/2025年/3月14日]]
# [[:Wiktionary:每日一詞/2025年/3月13日]]
# [[:Wiktionary:每日一詞/2025年/3月12日]]
# [[:Wiktionary:每日一詞/2025年/3月11日]]
# [[:Wiktionary:每日一詞/2025年/3月9日]]
# [[:Wiktionary:每日一詞/2025年/3月10日]]
# [[:Wiktionary:每日一詞/2025年/3月7日]]
# [[:Wiktionary:每日一詞/2025年/3月6日]]
# [[:Wiktionary:外語每日一詞/2025年/3月1日]]
# [[:Wiktionary:外語每日一詞/2025年/2月28日]]
# [[:Wiktionary:外語每日一詞/2025年/2月27日]]
# [[:Wiktionary:每日一詞/2025年/3月4日]]
# [[:Wiktionary:每日一詞/2025年/3月2日]]
# [[:Wiktionary:每日一詞/2025年/3月5日]]
# [[:Wiktionary:每日一詞/2025年/3月3日]]
# [[:Wiktionary:每日一詞/2025年/3月1日]]
# [[:Wiktionary:每日一詞/2025年/2月27日]]
# [[:Wiktionary:外語每日一詞/2025年/2月26日]]
# [[:Wiktionary:外語每日一詞/2025年/2月25日]]
# [[:Wiktionary:外語每日一詞/2025年/2月24日]]
# [[:Wiktionary:外語每日一詞/2025年/2月23日]]
# [[:Wiktionary:外語每日一詞/2025年/2月22日]]
# [[:Wiktionary:每日一詞/2025年/2月28日]]
# [[:Wiktionary:每日一詞/2025年/2月26日]]
# [[:Wiktionary:每日一詞/2025年/2月22日]]
# [[:Wiktionary:每日一詞/2025年/2月24日]]
# [[:Wiktionary:每日一詞/2025年/2月20日]]
# [[:Wiktionary:每日一詞/2025年/2月25日]]
# [[:Wiktionary:外語每日一詞/2025年/2月21日]]
# [[:Wiktionary:外語每日一詞/2025年/2月20日]]
# [[:Wiktionary:外語每日一詞/2025年/2月19日]]
# [[:Wiktionary:外語每日一詞/2025年/2月18日]]
# [[:Wiktionary:每日一詞/2025年/2月23日]]
# [[:Wiktionary:每日一詞/2025年/2月21日]]
# [[:Wiktionary:外語每日一詞/2025年/2月17日]]
# [[:Wiktionary:外語每日一詞/2025年/2月16日]]
# [[:Wiktionary:每日一詞/2025年/2月19日]]
# [[:Wiktionary:每日一詞/2025年/2月18日]]
# [[:Wiktionary:每日一詞/2025年/2月17日]]
# [[:Wiktionary:外語每日一詞/2025年/2月14日]]
# [[:Wiktionary:外語每日一詞/2025年/2月15日]]
# [[:Wiktionary:外語每日一詞/2025年/2月13日]]
# [[:Wiktionary:每日一詞/2025年/2月16日]]
# [[:Wiktionary:每日一詞/2025年/2月14日]]
# [[:Wiktionary:每日一詞/2025年/2月15日]]
# [[:Wiktionary:外語每日一詞/2025年/5月5日]]
# [[:Wiktionary:外語每日一詞/2025年/2月11日]]
# [[:Wiktionary:外語每日一詞/2025年/2月10日]]
# [[:Wiktionary:外語每日一詞/2025年/2月9日]]
# [[:Wiktionary:外語每日一詞/2025年/2月8日]]
# [[:Wiktionary:每日一詞/2025年/2月12日]]
# [[:Wiktionary:外語每日一詞/2025年/2月7日]]
# [[:Wiktionary:每日一詞/2025年/2月13日]]
# [[:Wiktionary:每日一詞/2025年/2月11日]]
# [[:Wiktionary:每日一詞/2025年/2月9日]]
# [[:Wiktionary:每日一詞/2025年/2月10日]]
# [[:Wiktionary:每日一詞/2025年/2月6日]]
# [[:Wiktionary:每日一詞/2025年/2月8日]]
# [[:Wiktionary:每日一詞/2025年/8月10日]]
# [[:Wiktionary:外語每日一詞/2025年/2月6日]]
# [[:Wiktionary:外語每日一詞/2025年/2月12日]]
# [[:Wiktionary:每日一詞/2025年/2月7日]]
# [[:Wiktionary:每日一詞/2025年/2月5日]]
# [[:Wiktionary:每日一詞/2025年/2月4日]]
# [[:Wiktionary:外語每日一詞/2025年/2月5日]]
# [[:Wiktionary:外語每日一詞/2025年/2月3日]]
# [[:Wiktionary:外語每日一詞/2025年/2月2日]]
# [[:Wiktionary:外語每日一詞/2025年/1月30日]]
# [[:Wiktionary:外語每日一詞/2025年/2月1日]]
# [[:Wiktionary:外語每日一詞/2025年/1月31日]]
# [[:Wiktionary:外語每日一詞/2025年/1月29日]]
# [[:Wiktionary:外語每日一詞/2025年/1月26日]]
# [[:Wiktionary:外語每日一詞/2025年/1月25日]]
# [[:Wiktionary:外語每日一詞/2025年/1月24日]]
# [[:Wiktionary:外語每日一詞/2025年/1月23日]]
# [[:Wiktionary:外語每日一詞/2025年/1月27日]]
# [[:Wiktionary:每日一詞/2025年/2月3日]]
# [[:Wiktionary:外語每日一詞/2025年/2月4日]]
# [[:Wiktionary:外語每日一詞/2025年/1月28日]]
# [[:Wiktionary:外語每日一詞/2025年/1月22日]]
# [[:Wiktionary:每日一詞/2025年/2月2日]]
# [[:Wiktionary:每日一詞/2025年/2月1日]]
# [[:Wiktionary:每日一詞/2025年/1月31日]]
# [[:Wiktionary:每日一詞/2025年/1月30日]]
# [[:Wiktionary:每日一詞/2025年/1月27日]]
# [[:Wiktionary:每日一詞/2025年/1月28日]]
# [[:Wiktionary:每日一詞/2025年/1月25日]]
# [[:Wiktionary:每日一詞/2025年/1月26日]]
# [[:Wiktionary:每日一詞/2025年/1月24日]]
# [[:Wiktionary:每日一詞/2025年/1月22日]]
# [[:Wiktionary:每日一詞/2025年/1月23日]]
# [[:Wiktionary:每日一詞/2025年/1月21日]]
# [[:Wiktionary:每日一詞/2025年/1月19日]]
# [[:Wiktionary:外語每日一詞/2025年/1月21日]]
# [[:Wiktionary:外語每日一詞/2025年/1月20日]]
# [[:Wiktionary:每日一詞/2025年/1月20日]]
# [[:Wiktionary:外語每日一詞/2025年/1月19日]]
# [[:Wiktionary:外語每日一詞/2025年/1月18日]]
# [[:Wiktionary:外語每日一詞/2025年/1月16日]]
# [[:Wiktionary:每日一詞/2025年/1月18日]]
# [[:Wiktionary:每日一詞/2025年/1月17日]]
# [[:Wiktionary:每日一詞/2025年/1月16日]]
# [[:Wiktionary:外語每日一詞/2025年/1月14日]]
# [[:Wiktionary:外語每日一詞/2025年/1月15日]]
# [[:Wiktionary:每日一詞/2025年/1月15日]]
# [[:Wiktionary:每日一詞/2025年/1月13日]]
# [[:Wiktionary:外語每日一詞/2025年/1月13日]]
# [[:Wiktionary:外語每日一詞/2025年/1月12日]]
# [[:Wiktionary:外語每日一詞/2025年/1月11日]]
# [[:Wiktionary:外語每日一詞/2025年/1月9日]]
# [[:Wiktionary:每日一詞/2025年/1月14日]]
# [[:Wiktionary:每日一詞/2025年/1月12日]]
# [[:Wiktionary:每日一詞/2025年/1月9日]]
# [[:Wiktionary:外語每日一詞/2025年/1月8日]]
# [[:Wiktionary:外語每日一詞/2025年/1月7日]]
# [[:Wiktionary:每日一詞/2025年/1月8日]]
# [[:Wiktionary:每日一詞/2025年/1月10日]]
# [[:Wiktionary:每日一詞/2025年/1月7日]]
# [[:Wiktionary:每日一詞/2025年/1月6日]]
# [[:Wiktionary:每日一詞/2025年/1月5日]]
# [[:Wiktionary:每日一詞/2025年/1月11日]]
# [[:Wiktionary:每日一詞/2025年/1月4日]]
# [[:Wiktionary:外語每日一詞/2025年/1月5日]]
# [[:Wiktionary:外語每日一詞/2025年/1月4日]]
# [[:Wiktionary:每日一詞/2025年/1月3日]]
# [[:Wiktionary:外語每日一詞/2025年/1月3日]]
# [[:Wiktionary:外語每日一詞/2025年/1月17日]]
# [[:Wiktionary:每日一詞/2025年/1月29日]]
# [[:Wiktionary:每日一詞/2025年/1月1日]]
# [[:Wiktionary:外語每日一詞/2025年/1月2日]]
# [[:Wiktionary:外語每日一詞/2025年/1月1日]]
# [[:Wiktionary:每日一詞/2025年/1月2日]]
# [[:Wiktionary:每日一詞/2024年/12月31日]]
# [[:Wiktionary:外語每日一詞/2024年/12月29日]]
# [[:Wiktionary:外語每日一詞/2024年/12月28日]]
# [[:Wiktionary:外語每日一詞/2024年/12月31日]]
# [[:Wiktionary:每日一詞/2024年/12月30日]]
# [[:Wiktionary:外語每日一詞/2025年/1月10日]]
# [[:Wiktionary:外語每日一詞/2024年/12月27日]]
# [[:Wiktionary:外語每日一詞/2025年/1月6日]]
# [[:Wiktionary:每日一詞/2024年/12月28日]]
# [[:Wiktionary:每日一詞/2024年/12月29日]]
# [[:Wiktionary:每日一詞/2024年/12月27日]]
# [[:Wiktionary:每日一詞/2024年/12月25日]]
# [[:Wiktionary:每日一詞/2024年/12月24日]]
# [[:Wiktionary:每日一詞/2024年/12月23日]]
# [[:Wiktionary:外語每日一詞/2024年/12月25日]]
# [[:Wiktionary:外語每日一詞/2024年/12月26日]]
# [[:Wiktionary:外語每日一詞/2024年/12月24日]]
# [[:Wiktionary:外語每日一詞/2024年/12月23日]]
# [[:Wiktionary:外語每日一詞/2024年/12月21日]]
# [[:Wiktionary:每日一詞/2024年/12月22日]]
# [[:Wiktionary:外語每日一詞/2024年/12月20日]]
# [[:Wiktionary:外語每日一詞/2024年/12月19日]]
# [[:Wiktionary:外語每日一詞/2024年/12月18日]]
# [[:Wiktionary:外語每日一詞/2024年/12月22日]]
# [[:Wiktionary:每日一詞/2024年/12月21日]]
# [[:Wiktionary:每日一詞/2024年/12月20日]]
# [[:Wiktionary:每日一詞/2024年/12月19日]]
# [[:Wiktionary:每日一詞/2024年/12月18日]]
# [[:Wiktionary:外語每日一詞/2024年/12月16日]]
# [[:Wiktionary:外語每日一詞/2024年/12月15日]]
# [[:Wiktionary:外語每日一詞/2024年/12月14日]]
# [[:Wiktionary:外語每日一詞/2024年/12月13日]]
# [[:Wiktionary:外語每日一詞/2024年/12月12日]]
# [[:Wiktionary:外語每日一詞/2024年/12月11日]]
# [[:Wiktionary:外語每日一詞/2024年/12月10日]]
# [[:Wiktionary:每日一詞/2024年/12月17日]]
# [[:Wiktionary:每日一詞/2024年/12月16日]]
# [[:Wiktionary:外語每日一詞/2024年/12月9日]]
# [[:Wiktionary:每日一詞/2024年/12月15日]]
# [[:Wiktionary:每日一詞/2024年/12月14日]]
# [[:Wiktionary:外語每日一詞/2024年/12月7日]]
# [[:Wiktionary:外語每日一詞/2024年/12月6日]]
# [[:Wiktionary:外語每日一詞/2024年/12月4日]]
# [[:Wiktionary:外語每日一詞/2024年/12月3日]]
# [[:Wiktionary:外語每日一詞/2024年/12月17日]]
# [[:Wiktionary:外語每日一詞/2024年/12月2日]]
# [[:Wiktionary:每日一詞/2024年/12月13日]]
# [[:Wiktionary:每日一詞/2024年/12月12日]]
# [[:Wiktionary:每日一詞/2024年/12月10日]]
# [[:Wiktionary:每日一詞/2024年/12月8日]]
# [[:Wiktionary:每日一詞/2024年/12月11日]]
# [[:Wiktionary:每日一詞/2024年/12月6日]]
# [[:Wiktionary:每日一詞/2024年/12月9日]]
# [[:Wiktionary:每日一詞/2024年/12月4日]]
# [[:Wiktionary:外語每日一詞/2024年/12月8日]]
# [[:Wiktionary:外語每日一詞/2024年/12月1日]]
# [[:Wiktionary:外語每日一詞/2024年/12月5日]]
# [[:Wiktionary:外語每日一詞/2024年/11月30日]]
# [[:Wiktionary:外語每日一詞/2024年/11月29日]]
# [[:Wiktionary:每日一詞/2024年/12月7日]]
# [[:Wiktionary:每日一詞/2024年/12月2日]]
# [[:Wiktionary:每日一詞/2024年/11月29日]]
# [[:Wiktionary:每日一詞/2024年/12月5日]]
# [[:Wiktionary:外語每日一詞/2024年/11月28日]]
# [[:Wiktionary:每日一詞/2024年/12月3日]]
# [[:Wiktionary:每日一詞/2024年/12月1日]]
# [[:Wiktionary:每日一詞/2024年/11月30日]]
# [[:Wiktionary:每日一詞/2024年/11月28日]]
# [[:Wiktionary:外語每日一詞/2024年/11月27日]]
# [[:Wiktionary:外語每日一詞/2024年/11月26日]]
# [[:Wiktionary:每日一詞/2024年/11月26日]]
# [[:Wiktionary:每日一詞/2024年/11月25日]]
# [[:Wiktionary:外語每日一詞/2024年/11月25日]]
# [[:Wiktionary:外語每日一詞/2024年/11月24日]]
# [[:Wiktionary:每日一詞/2024年/11月24日]]
# [[:Wiktionary:每日一詞/2024年/11月23日]]
# [[:Wiktionary:外語每日一詞/2024年/11月23日]]
# [[:Wiktionary:每日一詞/2024年/11月22日]]
# [[:Wiktionary:每日一詞/2024年/11月21日]]
# [[:Wiktionary:每日一詞/2024年/11月27日]]
# [[:Wiktionary:每日一詞/2024年/11月20日]]
# [[:Wiktionary:外語每日一詞/2024年/11月22日]]
# [[:Wiktionary:每日一詞/2024年/11月19日]]
# [[:Wiktionary:外語每日一詞/2024年/11月21日]]
# [[:Wiktionary:外語每日一詞/2024年/11月20日]]
# [[:Wiktionary:外語每日一詞/2024年/11月19日]]
# [[:Wiktionary:每日一詞/2024年/11月18日]]
# [[:Wiktionary:每日一詞/2024年/11月17日]]
# [[:Wiktionary:外語每日一詞/2024年/11月18日]]
# [[:Wiktionary:外語每日一詞/2024年/11月17日]]
# [[:Wiktionary:每日一詞/2024年/11月14日]]
# [[:Wiktionary:每日一詞/2024年/11月15日]]
# [[:Wiktionary:外語每日一詞/2024年/11月16日]]
# [[:Wiktionary:外語每日一詞/2024年/11月14日]]
# [[:Wiktionary:外語每日一詞/2024年/11月13日]]
# [[:Wiktionary:外語每日一詞/2024年/11月12日]]
# [[:Wiktionary:外語每日一詞/2024年/11月15日]]
# [[:Wiktionary:每日一詞/2024年/11月13日]]
# [[:Wiktionary:外語每日一詞/2024年/11月8日]]
# [[:Wiktionary:外語每日一詞/2024年/11月11日]]
# [[:Wiktionary:每日一詞/2024年/11月11日]]
# [[:Wiktionary:每日一詞/2024年/11月12日]]
# [[:Wiktionary:每日一詞/2024年/11月16日]]
# [[:Wiktionary:每日一詞/2024年/11月9日]]
# [[:Wiktionary:每日一詞/2024年/11月10日]]
# [[:Wiktionary:每日一詞/2024年/11月8日]]
# [[:Wiktionary:外語每日一詞/2024年/11月9日]]
# [[:Wiktionary:外語每日一詞/2024年/11月7日]]
# [[:Wiktionary:外語每日一詞/2024年/11月4日]]
# [[:Wiktionary:外語每日一詞/2024年/11月6日]]
# [[:Wiktionary:每日一詞/2024年/11月7日]]
# [[:Wiktionary:外語每日一詞/2024年/11月3日]]
# [[:Wiktionary:每日一詞/2024年/11月4日]]
# [[:Wiktionary:每日一詞/2024年/11月5日]]
# [[:Wiktionary:每日一詞/2024年/11月2日]]
# [[:Wiktionary:每日一詞/2024年/11月3日]]
# [[:Wiktionary:每日一詞/2024年/10月31日]]
# [[:Wiktionary:每日一詞/2024年/11月1日]]
# [[:Wiktionary:外語每日一詞/2024年/11月1日]]
# [[:Wiktionary:外語每日一詞/2024年/11月10日]]
# [[:Wiktionary:外語每日一詞/2024年/10月31日]]
# [[:Wiktionary:外語每日一詞/2024年/10月30日]]
# [[:Wiktionary:外語每日一詞/2024年/10月29日]]
# [[:Wiktionary:每日一詞/2024年/10月30日]]
# [[:Wiktionary:每日一詞/2024年/10月29日]]
# [[:Wiktionary:每日一詞/2024年/10月28日]]
# [[:Wiktionary:外語每日一詞/2024年/11月5日]]
# [[:Wiktionary:外語每日一詞/2024年/10月28日]]
# [[:Wiktionary:每日一詞/2024年/11月6日]]
# [[:Wiktionary:每日一詞/2024年/10月27日]]
# [[:Wiktionary:每日一詞/2024年/10月26日]]
# [[:Wiktionary:每日一詞/2024年/10月25日]]
# [[:Wiktionary:外語每日一詞/2024年/10月27日]]
# [[:Wiktionary:每日一詞/2024年/10月24日]]
# [[:Wiktionary:外語每日一詞/2024年/10月26日]]
# [[:Wiktionary:外語每日一詞/2024年/11月2日]]
# [[:Wiktionary:每日一詞/2024年/10月23日]]
# [[:Wiktionary:每日一詞/2024年/10月22日]]
# [[:Wiktionary:每日一詞/2024年/10月21日]]
# [[:Wiktionary:每日一詞/2024年/10月20日]]
# [[:Wiktionary:每日一詞/2024年/10月19日]]
# [[:Wiktionary:外語每日一詞/2024年/10月23日]]
# [[:Wiktionary:外語每日一詞/2024年/10月22日]]
# [[:Wiktionary:外語每日一詞/2024年/10月25日]]
# [[:Wiktionary:每日一詞/2024年/10月18日]]
# [[:Wiktionary:每日一詞/2024年/10月17日]]
# [[:Wiktionary:每日一詞/2024年/10月16日]]
# [[:Wiktionary:每日一詞/2024年/10月15日]]
# [[:Wiktionary:每日一詞/2024年/10月14日]]
# [[:Wiktionary:每日一詞/2024年/10月13日]]
# [[:Wiktionary:每日一詞/2024年/10月12日]]
# [[:Wiktionary:每日一詞/2024年/10月11日]]
# [[:Wiktionary:外語每日一詞/2024年/10月21日]]
# [[:Wiktionary:每日一詞/2024年/10月10日]]
# [[:Wiktionary:每日一詞/2024年/10月9日]]
# [[:Wiktionary:每日一詞/2024年/10月8日]]
# [[:Wiktionary:每日一詞/2024年/10月7日]]
# [[:Wiktionary:每日一詞/2024年/10月6日]]
# [[:Wiktionary:外語每日一詞/2024年/10月24日]]
# [[:Wiktionary:外語每日一詞/2024年/10月20日]]
# [[:Wiktionary:外語每日一詞/2024年/10月18日]]
# [[:Wiktionary:外語每日一詞/2024年/10月16日]]
# [[:Wiktionary:外語每日一詞/2024年/10月15日]]
# [[:Wiktionary:外語每日一詞/2024年/10月1日]]
# [[:Wiktionary:每日一詞/2024年/9月30日]]
# [[:Wiktionary:每日一詞/2024年/10月1日]]
# [[:Wiktionary:每日一詞/2024年/9月29日]]
# [[:Wiktionary:外語每日一詞/2024年/10月14日]]
# [[:Wiktionary:每日一詞/2024年/9月28日]]
# [[:Wiktionary:每日一詞/2024年/9月27日]]
# [[:Wiktionary:外語每日一詞/2024年/10月19日]]
# [[:Wiktionary:外語每日一詞/2024年/10月17日]]
# [[:Wiktionary:外語每日一詞/2024年/10月13日]]
# [[:Wiktionary:外語每日一詞/2024年/10月12日]]
# [[:Wiktionary:外語每日一詞/2024年/10月11日]]
# [[:Wiktionary:外語每日一詞/2024年/10月10日]]
# [[:Wiktionary:每日一詞/2024年/12月26日]]
# [[:Wiktionary:外語每日一詞/2024年/12月30日]]
# [[:Wiktionary:外語每日一詞/2024年/10月8日]]
# [[:Wiktionary:每日一詞/2024年/10月5日]]
# [[:Wiktionary:外語每日一詞/2024年/10月7日]]
# [[:Wiktionary:每日一詞/2024年/10月4日]]
# [[:Wiktionary:外語每日一詞/2024年/10月6日]]
# [[:Wiktionary:每日一詞/2024年/10月2日]]
# [[:Wiktionary:外語每日一詞/2024年/10月5日]]
# [[:Wiktionary:外語每日一詞/2024年/10月4日]]
# [[:Wiktionary:外語每日一詞/2024年/9月30日]]
# [[:Wiktionary:外語每日一詞/2024年/10月9日]]
# [[:Wiktionary:外語每日一詞/2024年/9月29日]]
# [[:Wiktionary:外語每日一詞/2024年/9月28日]]
# [[:Wiktionary:外語每日一詞/2024年/9月26日]]
# [[:Wiktionary:外語每日一詞/2024年/10月3日]]
# [[:Wiktionary:外語每日一詞/2024年/9月25日]]
# [[:Wiktionary:外語每日一詞/2024年/9月24日]]
# [[:Wiktionary:每日一詞/2024年/9月26日]]
# [[:Wiktionary:外語每日一詞/2024年/9月23日]]
# [[:Wiktionary:每日一詞/2024年/9月25日]]
# [[:Wiktionary:每日一詞/2024年/9月24日]]
# [[:Wiktionary:外語每日一詞/2024年/9月22日]]
# [[:Wiktionary:每日一詞/2024年/10月3日]]
# [[:Wiktionary:外語每日一詞/2024年/9月21日]]
# [[:Wiktionary:外語每日一詞/2024年/10月2日]]
# [[:Wiktionary:外語每日一詞/2024年/9月20日]]
# [[:Wiktionary:外語每日一詞/2024年/9月27日]]
# [[:Wiktionary:外語每日一詞/2024年/9月19日]]
# [[:Wiktionary:外語每日一詞/2024年/9月18日]]
# [[:Wiktionary:外語每日一詞/2024年/9月17日]]
# [[:Wiktionary:每日一詞/2024年/9月23日]]
# [[:Wiktionary:外語每日一詞/2024年/9月16日]]
# [[:Wiktionary:外語每日一詞/2024年/9月15日]]
# [[:Wiktionary:每日一詞/2024年/9月22日]]
# [[:Wiktionary:每日一詞/2024年/9月21日]]
# [[:Wiktionary:每日一詞/2024年/9月20日]]
# [[:Wiktionary:外語每日一詞/2024年/9月14日]]
# [[:Wiktionary:每日一詞/2024年/9月19日]]
# [[:Wiktionary:外語每日一詞/2024年/9月13日]]
# [[:Wiktionary:外語每日一詞/2024年/9月12日]]
# [[:Wiktionary:每日一詞/2024年/9月18日]]
# [[:Wiktionary:每日一詞/2024年/9月17日]]
# [[:Wiktionary:每日一詞/2024年/9月16日]]
# [[:Wiktionary:外語每日一詞/2024年/9月11日]]
# [[:Wiktionary:外語每日一詞/2024年/9月10日]]
# [[:Wiktionary:每日一詞/2024年/9月15日]]
# [[:Wiktionary:每日一詞/2024年/9月14日]]
# [[:Wiktionary:外語每日一詞/2024年/9月9日]]
# [[:Wiktionary:外語每日一詞/2024年/9月8日]]
# [[:Wiktionary:外語每日一詞/2024年/8月16日]]
# [[:Wiktionary:每日一詞/2024年/9月13日]]
# [[:Wiktionary:每日一詞/2024年/9月12日]]
# [[:Wiktionary:外語每日一詞/2024年/9月7日]]
# [[:Wiktionary:外語每日一詞/2024年/9月6日]]
# [[:Wiktionary:每日一詞/2024年/9月11日]]
# [[:Wiktionary:每日一詞/2024年/9月10日]]
# [[:Wiktionary:每日一詞/2024年/9月9日]]
# [[:Wiktionary:外語每日一詞/2024年/9月5日]]
# [[:Wiktionary:外語每日一詞/2024年/9月4日]]
# [[:Wiktionary:外語每日一詞/2024年/9月1日]]
# [[:Wiktionary:外語每日一詞/2024年/9月3日]]
# [[:Wiktionary:外語每日一詞/2024年/8月14日]]
# [[:Wiktionary:外語每日一詞/2024年/8月13日]]
# [[:Wiktionary:每日一詞/2024年/9月8日]]
# [[:Wiktionary:每日一詞/2024年/9月7日]]
# [[:Wiktionary:每日一詞/2024年/9月6日]]
# [[:Wiktionary:每日一詞/2024年/9月5日]]
# [[:Wiktionary:每日一詞/2024年/9月4日]]
# [[:Wiktionary:每日一詞/2024年/9月3日]]
# [[:Wiktionary:外語每日一詞/2024年/8月12日]]
# [[:Wiktionary:外語每日一詞/2024年/8月11日]]
# [[:Wiktionary:外語每日一詞/2024年/8月15日]]
# [[:Wiktionary:每日一詞/2024年/9月2日]]
# [[:Wiktionary:外語每日一詞/2024年/8月10日]]
# [[:Wiktionary:每日一詞/2024年/8月7日]]
# [[:Wiktionary:每日一詞/2024年/9月1日]]
# [[:Wiktionary:每日一詞/2024年/8月5日]]
# [[:Wiktionary:外語每日一詞/2024年/8月9日]]
# [[:Wiktionary:外語每日一詞/2024年/8月8日]]
# [[:Wiktionary:外語每日一詞/2024年/8月7日]]
# [[:Wiktionary:外語每日一詞/2024年/8月6日]]
# [[:Wiktionary:外語每日一詞/2024年/8月5日]]
# [[:Wiktionary:外語每日一詞/2024年/8月4日]]
# [[:Wiktionary:外語每日一詞/2024年/8月3日]]
# [[:Wiktionary:每日一詞/2024年/8月6日]]
# [[:Wiktionary:每日一詞/2024年/8月4日]]
# [[:Wiktionary:每日一詞/2024年/8月3日]]
# [[:Wiktionary:每日一詞/2024年/8月2日]]
# [[:Wiktionary:外語每日一詞/2024年/8月2日]]
# [[:Wiktionary:每日一詞/2024年/8月1日]]
# [[:Wiktionary:外語每日一詞/2024年/8月1日]]
# [[:Wiktionary:每日一詞/2024年/8月31日]]
# [[:Wiktionary:外語每日一詞/2024年/8月31日]]
# [[:Wiktionary:每日一詞/2024年/8月30日]]
# [[:Wiktionary:每日一詞/2024年/8月29日]]
# [[:Wiktionary:外語每日一詞/2024年/8月30日]]
# [[:Wiktionary:外語每日一詞/2024年/8月29日]]
# [[:Wiktionary:外語每日一詞/2024年/8月28日]]
# [[:Wiktionary:外語每日一詞/2024年/8月27日]]
# [[:Wiktionary:外語每日一詞/2024年/8月26日]]
# [[:Wiktionary:每日一詞/2024年/8月28日]]
# [[:Wiktionary:外語每日一詞/2024年/8月25日]]
# [[:Wiktionary:每日一詞/2024年/8月27日]]
# [[:Wiktionary:每日一詞/2024年/8月26日]]
# [[:Wiktionary:每日一詞/2024年/8月25日]]
# [[:Wiktionary:每日一詞/2024年/8月24日]]
# [[:Wiktionary:每日一詞/2024年/8月23日]]
# [[:Wiktionary:外語每日一詞/2024年/8月24日]]
# [[:Wiktionary:每日一詞/2024年/8月22日]]
# [[:Wiktionary:每日一詞/2024年/8月21日]]
# [[:Wiktionary:每日一詞/2024年/8月20日]]
# [[:Wiktionary:外語每日一詞/2024年/8月23日]]
# [[:Wiktionary:外語每日一詞/2024年/8月22日]]
# [[:Wiktionary:每日一詞/2024年/8月19日]]
# [[:Wiktionary:外語每日一詞/2024年/8月21日]]
# [[:Wiktionary:外語每日一詞/2024年/8月20日]]
# [[:Wiktionary:外語每日一詞/2024年/8月19日]]
# [[:Wiktionary:每日一詞/2024年/8月18日]]
# [[:Wiktionary:每日一詞/2024年/8月17日]]
# [[:Wiktionary:外語每日一詞/2024年/8月18日]]
# [[:Wiktionary:首頁/分類]]
# [[:Wiktionary:外語每日一詞/2024年/8月17日]]
# [[:Wiktionary:外語每日一詞/2024年/9月2日]]
# [[:Wiktionary:外語每日一詞/預設]]
# [[:Wiktionary:每日一詞/2024年/8月16日]]
# [[:Wiktionary:每日一詞/2024年/8月15日]]
# [[:Wiktionary:每日一詞/2024年/8月14日]]
# [[:Wiktionary:每日一詞/2024年/8月13日]]
# [[:Wiktionary:每日一詞/2024年/8月12日]]
# [[:Wiktionary:每日一詞/2024年/8月11日]]
# [[:Wiktionary:每日一詞/2024年/8月10日]]
# [[:Wiktionary:每日一詞/2024年/8月9日]]
# [[:Wiktionary:每日一詞/預設]]
# [[:Wiktionary:每日一詞/2024年/8月8日]]
# [[:Wiktionary:首頁/語言入口]]
# [[:Wiktionary:首頁/段落]]
# [[:Wiktionary:首頁/首頁統計]]
# [[:Wiktionary:Picture dictionary/th:prep-place]]
# [[:Wiktionary:Picture dictionary/th:head]]
# [[:Wiktionary:亞美尼亞語轉寫]]
# [[:Wiktionary:蒙古語轉寫]]
# [[:Wiktionary:布里亞特語轉寫]]
# [[:Wiktionary:科普特語轉寫]]
# [[:Wiktionary:藏語轉寫]]
# [[:Wiktionary:日語轉寫]]
# [[:Wiktionary:馬其頓語轉寫]]
# [[:Wiktionary:維吾爾語轉寫]]
# [[:Wiktionary:統計/熱詞]]
# [[:Wiktionary:坏笑话和删除的胡话/Gates]]
# [[:Wiktionary:坏笑话和删除的胡话/Piyush Karia]]
# [[:Wiktionary:坏笑话和删除的胡话/甘肃省委组织部]]
# [[:Wiktionary:坏笑话和删除的胡话/女性的胸部]]
# [[:Wiktionary:坏笑话和删除的胡话/李晓明]]
# [[:Wiktionary:坏笑话和删除的胡话/因小失大的出处]]
# [[:Wiktionary:坏笑话和删除的胡话/template]]
# [[:Wiktionary:新词推荐]]
# [[:Wiktionary:佈局解釋/漢語]]
# [[:Wiktionary:佈局解釋/日語]]
# [[:Wiktionary:创建页面]]
# [[:Wiktionary:样式指南]]
# [[:Wiktionary:维基词典语言列表]]
# [[:Wiktionary:注音索引/ㄓ]]
# [[:Wiktionary:WikiProject汉语]]
# [[:Wiktionary:茶室/header]]
# [[:Wiktionary:注音索引/ㄕ]]
# [[:Wiktionary:漢語詞族/于]]
# [[:Wiktionary:漢語詞族]]
# [[:Wiktionary:漢語詞族/丩]]
# [[:Wiktionary:中式英語]]
# [[:Wiktionary:洋泾浜英语]]
# [[:Wiktionary:维基百科版首页]]
# [[:Wiktionary:漢語辭彙索引/冷]]
# [[:Wiktionary:德语不规则动词]]
# [[:Wiktionary:德语动词]]
# [[:Wiktionary:中文数字]]
# [[:Wiktionary:漢語辭彙索引/一]]
# [[:Wiktionary:漢語辭彙索引/了]]
# [[:Wiktionary:现代标准汉语]]
# [[:Wiktionary:漢語辭彙索引/就]]
# [[:Wiktionary:漢語辭彙索引/欲]]
# [[:Wiktionary:漢語辭彙索引/埃]]
# [[:Wiktionary:漢語辭彙索引/哀]]
# [[:Wiktionary:化學專有名詞 C]]
# [[:Wiktionary:化學專有名詞 B]]
# [[:Wiktionary:化學專有名詞 A]]
# [[:Wiktionary:術語專有名詞]]
# [[:Wiktionary:漢字專題/invite]]
# [[:Wiktionary:漢字專題/漢字相關資訊參考]]
# [[:Wiktionary:漢字專題/編輯參考]]
# [[:Wiktionary:漢語發音表記]]
# [[:Wiktionary:朝鲜语發音表記]]
# [[:Wiktionary:WikiProject 漢字/樣例]]
# [[:Wiktionary:Chaguan]]
# [[:Wiktionary:諺文索引/ㅎ]]
# [[:Wiktionary:諺文索引/ㅍ]]
# [[:Wiktionary:諺文索引/ㅌ]]
# [[:Wiktionary:諺文索引/ㅋ]]
# [[:Wiktionary:諺文索引/ㅊ]]
# [[:Wiktionary:諺文索引/ㅈ]]
# [[:Wiktionary:諺文索引/ㅇ]]
# [[:Wiktionary:諺文索引/ㅅ]]
# [[:Wiktionary:諺文索引/ㅂ]]
# [[:Wiktionary:諺文索引/ㅁ]]
# [[:Wiktionary:諺文索引/ㄹ]]
# [[:Wiktionary:諺文索引/ㄷ]]
# [[:Wiktionary:諺文索引/ㄴ]]
# [[:Wiktionary:諺文索引/ㄱ]]
# [[:Wiktionary:粤語常用字]]
# [[:Wiktionary:快捷方式]]
# [[:Wiktionary:漢語辭彙索引/阿]]
# [[:Wiktionary:WikiProject概念分類]]
# [[:Wiktionary:快速索引]]
# [[:Wiktionary:日语词汇索引]]
# [[:Wiktionary:共享资源图像巡视/header]]
# [[:Wiktionary:常见问题解答/读者]]
# [[:Wiktionary:常见问题解答/项目]]
# [[:Wiktionary:antivandaltool.js]]
# [[:Wiktionary:其他语言]]
# [[:Wiktionary:姊妹项目]]
# [[:Wiktionary:动词]]
# [[:Wiktionary:形容词]]
# [[:Wiktionary:名词]]
# [[:Wiktionary:格式]]
# [[:Wiktionary:葡萄牙语]]
# [[:Wiktionary:英语]]
# [[:Wiktionary:意大利语]]
# [[:Wiktionary:注音]]
# [[:Wiktionary:解释]]
# [[:Wiktionary:汉字统一部首表]]
# [[:Wiktionary:普通话异读词审音表]]
# [[:Wiktionary:越南语基本条目]]
# [[:Wiktionary:乌尔都语基本条目]]
# [[:Wiktionary:匈牙利语基本条目]]
# [[:Wiktionary:芬兰语基本条目]]
# [[:Wiktionary:弗里西语基本条目]]
# [[:Wiktionary:法罗语基本条目]]
# [[:Wiktionary:葡萄牙语基本条目]]
# [[:Wiktionary:荷兰语基本条目]]
# [[:Wiktionary:波兰语基本条目]]
# [[:Wiktionary:斐济语基本条目]]
# [[:Wiktionary:所有模板列表/语言]]
# [[:Wiktionary:所有模板列表]]
# [[:Wiktionary:马尔他语基本条目]]
# [[:Wiktionary:希伯来语基本条目]]
# [[:Wiktionary:阿拉伯语基本条目]]
# [[:Wiktionary:阿姆哈拉语基本条目]]
# [[:Wiktionary:斯洛文尼亚语基本条目]]
# [[:Wiktionary:斯洛伐克语基本条目]]
# [[:Wiktionary:僧伽罗语基本条目]]
# [[:Wiktionary:萨丁尼亚语基本条目]]
# [[:Wiktionary:梵语基本条目]]
# [[:Wiktionary:普什图语基本条目]]
# [[:Wiktionary:旁遮普语基本条目]]
# [[:Wiktionary:奥塞梯语基本条目]]
# [[:Wiktionary:尼泊尔语基本条目]]
# [[:Wiktionary:低地德语基本条目]]
# [[:Wiktionary:卢森堡语基本条目]]
# [[:Wiktionary:康瓦尔语基本条目]]
# [[:Wiktionary:印地语基本条目]]
# [[:Wiktionary:马恩语基本条目]]
# [[:Wiktionary:盖尔语基本条目]]
# [[:Wiktionary:爱尔兰语基本条目]]
# [[:Wiktionary:法语基本条目]]
# [[:Wiktionary:波斯语基本条目]]
# [[:Wiktionary:威尔士语基本条目]]
# [[:Wiktionary:布列塔尼语基本条目]]
# [[:Wiktionary:孟加拉语基本条目]]
# [[:Wiktionary:阿萨姆语基本条目]]
# [[:Wiktionary:世界语基本条目]]
# [[:Wiktionary:伊多语基本条目]]
# [[:Wiktionary:道本语基本条目]]
# [[:Wiktionary:乌克兰语基本条目]]
# [[:Wiktionary:瑞典语基本条目]]
# [[:Wiktionary:塞尔维亚语基本条目]]
# [[:Wiktionary:西西里语基本条目]]
# [[:Wiktionary:俄语基本条目]]
# [[:Wiktionary:罗马尼亚语基本条目]]
# [[:Wiktionary:挪威语基本条目]]
# [[:Wiktionary:新挪威语基本条目]]
# [[:Wiktionary:拉脱维亚语基本条目]]
# [[:Wiktionary:立陶宛语基本条目]]
# [[:Wiktionary:拉丁语基本条目]]
# [[:Wiktionary:意大利语基本条目]]
# [[:Wiktionary:克罗地亚语基本条目]]
# [[:Wiktionary:爱沙尼亚语基本条目]]
# [[:Wiktionary:西班牙语基本条目]]
# [[:Wiktionary:英语基本条目]]
# [[:Wiktionary:德语基本条目]]
# [[:Wiktionary:丹麦语基本条目]]
# [[:Wiktionary:捷克语基本条目]]
# [[:Wiktionary:科西嘉语基本条目]]
# [[:Wiktionary:加泰兰语基本条目]]
# [[:Wiktionary:保加利亚语基本条目]]
# [[:Wiktionary:南非语基本条目]]
# [[:Wiktionary:冰岛语基本条目]]
# [[:Wiktionary:GNU自由文档许可证文本/非正式翻译]]
# [[:Wiktionary:专题/歇后语]]
# [[:Wiktionary:专题/成语]]
# [[:Wiktionary:度量衡]]
# [[:Wiktionary:Block log]]
# [[:Wiktionary:藏语词汇索引/བ་]]
# [[:Wiktionary:藏语词汇索引]]
# [[:Wiktionary:印地语汇索引]]
# [[:Wiktionary:法语规则动词变位表]]
# [[:Wiktionary:法语]]
# [[:Wiktionary:汉语]]
# [[:Wiktionary:消息定制]]
# [[:Wiktionary:MediaWiki索引]]
# [[:Wiktionary:Protection log]]
# [[:Wiktionary:删除纪录]]
# [[:Wiktionary:图像标记]]
# [[:Wiktionary:工具]]
# [[:Wiktionary:漢字專題]]
# [[:Wiktionary:WikiProject/模板]]
# [[:Wiktionary:词典术语]]
# [[:Wiktionary:新词新语]]
# [[:Wiktionary:上载纪录]]
== Template ==
# [[:Template:Zgh-head]]
# [[:Template:Zen-head]]
# [[:Template:Tzm-head]]
# [[:Template:Tmh-head]]
# [[:Template:Tez-head]]
# [[:Template:Swn-head]]
# [[:Template:Sjs-head]]
# [[:Template:Siz-head]]
# [[:Template:Shy-head]]
# [[:Template:Shi-head]]
# [[:Template:Sds-head]]
# [[:Template:Rif-head]]
# [[:Template:Mzb-head]]
# [[:Template:Kab-head]]
# [[:Template:Jbn-head]]
# [[:Template:Gnc-head]]
# [[:Template:Gho-head]]
# [[:Template:Gha-head]]
# [[:Template:Cnu-head]]
# [[:Template:Ber-fog-head]]
# [[:Template:Auj-head]]
# [[:Template:Gho-conj]]
# [[:Template:Rif-conj]]
# [[:Template:Name respelling]]
# [[:Template:R:Vasmer:1923]]
# [[:Template:Table:continents/ar]]
# [[:Template:R:mk:SDA]]
# [[:Template:R:blc:Nater:2022]]
# [[:Template:Table:colors/lbe]]
# [[:Template:R:lbe:Gadzhiev]]
# [[:Template:R:lbe:Digiev]]
# [[:Template:R:zh:academy]]
# [[:Template:R:zh:idioms]]
# [[:Template:R:alu:Naitoro]]
# [[:Template:R:apw:WAED]]
# [[:Template:R:bol:Gimba2009]]
# [[:Template:R:arp:Cowell & Moss:2008]]
# [[:Template:R:pmw:Callaghan:1984]]
# [[:Template:R:nsq:Callaghan:1987]]
# [[:Template:R:yao:Sanderson:1922]]
# [[:Template:R:yao:Hetherwick:1902]]
# [[:Template:R:shi:Tunirt]]
# [[:Template:R:QAS2012]]
# [[:Template:R:qfa-yen:Fortescue–Vajda:2022]]
# [[:Template:R:kab:Guerrab:2014]]
# [[:Template:R:lmw:Callaghan:1965]]
# [[:Template:List:countries in Europe/bhh]]
# [[:Template:R:poz-oce:Tyron & Hackman:1983]]
# [[:Template:Table:suits/sa]]
# [[:Template:Table:hijri calendar/fa]]
# [[:Template:Table:hijri calendar/ja]]
# [[:Template:Table:hijri calendar/hi]]
# [[:Template:Table:musical note values/ja]]
# [[:Template:Table:relative dates/ja]]
# [[:Template:Table:continents/th]]
# [[:Template:Table:continents/ta]]
# [[:Template:Table:continents/syl]]
# [[:Template:Table:continents/km]]
# [[:Template:Table:continents/ka]]
# [[:Template:Table:continents/id]]
# [[:Template:Table:continents/he]]
# [[:Template:Table:continents/bg]]
# [[:Template:Table:continents/ajp]]
# [[:Template:Table:continents/aii]]
# [[:Template:Gadget tag]]
# [[:Template:List:blues/pt]]
# [[:Template:R:mul:Hong:2024]]
# [[:Template:R:kwd:Keesing:1975]]
# [[:Template:Talk quote inline]]
# [[:Template:R:slr:Ölmez]]
# [[:Template:R:pl:Śliwiński:2016]]
# [[:Template:U:en:NNES-and-children]]
# [[:Template:R:pac:Watson]]
# [[:Template:Feminist form of]]
# [[:Template:User:Public class/Zh-forms]]
# [[:Template:R:cst:Colós-Guzman-Harrington]]
# [[:Template:Ms-pr]]
# [[:Template:R:fo:Jacobsen:2021]]
# [[:Template:Az-inf-p]]
# [[:Template:Az-IPA]]
# [[:Template:R:Century]]
# [[:Template:Huu-class]]
# [[:Template:R:cel:EDPC/pageurl]]
# [[:Template:Kw-sgl]]
# [[:Template:Apheretic form of]]
# [[:Template:R:lt:VŽ]]
# [[:Template:Wortschatz Leipzig frequency list header]]
# [[:Template:Search box]]
# [[:Template:Flatlist]]
# [[:Template:U:ru:aspectual stress variant]]
# [[:Template:R:sva:Saghliani:2016]]
# [[:Template:List:countries in Asia/uz]]
# [[:Template:List:countries in North America/de]]
# [[:Template:List:countries in South America/de]]
# [[:Template:R:ssb:Akamine:2003]]
# [[:Template:R:nun:Sun:2005]]
# [[:Template:Demo2c]]
# [[:Template:R:liv:LDW]]
# [[:Template:R:ssf:Niida:2018]]
# [[:Template:Table:relative dates/it]]
# [[:Template:Table:days of the week/enm]]
# [[:Template:List:Cereals/en]]
# [[:Template:R:sij:Bradshaw:2025]]
# [[:Template:R:suc:Bulalang:2024]]
# [[:Template:List:constituent countries of the United Kingdom/vi]]
# [[:Template:List:countries in South America/ko]]
# [[:Template:R:bkz:Andersen:2014]]
# [[:Template:R:nmb:Fox:1979]]
# [[:Template:R:lzl:Crowley:2006]]
# [[:Template:Wal-prop]]
# [[:Template:List:continents/wal]]
# [[:Template:List:countries in Europe/wal]]
# [[:Template:R:Key & Key 1953]]
# [[:Template:Mong-decl]]
# [[:Template:Xng-pron]]
# [[:Template:RQ:Shakespeare Henry 4-1]]
# [[:Template:Etystub]]
# [[:Template:RQ:Webster Malfi]]
# [[:Template:RQ:Shakespeare As You Like It]]
# [[:Template:Also/urt]]
# [[:Template:Hnn-adv]]
# [[:Template:Hil-adv]]
# [[:Template:Eggcorn of]]
# [[:Template:R:tai:PPT]]
# [[:Template:RQ:cather Song of the Lark]]
# [[:Template:Trans-top-see]]
# [[:Template:Piecewise doublet]]
# [[:Template:Lt-noun-m-us-2]]
# [[:Template:Interproject-box]]
# [[:Template:Fro-conj-frire]]
# [[:Template:Jpx-hcj-kanjitab]]
# [[:Template:Auto cat/test]]
# [[:Template:RQ:amf:Haalin Mallano]]
# [[:Template:Fo-decl-noun-n4]]
# [[:Template:Fo-decl-noun-m15-p]]
# [[:Template:Sh-part form]]
# [[:Template:Mn-decl-noun1]]
# [[:Template:Xal-verb]]
# [[:Template:Mn-verb-form]]
# [[:Template:Mn-vh]]
# [[:Template:Mn-suffix]]
# [[:Template:Izh-decl/kärpäin]]
# [[:Template:Ht-ety-z]]
# [[:Template:Ba-prondecl-base]]
# [[:Template:Mt-conj/I-ae-oo]]
# [[:Template:Kzg-kanji]]
# [[:Template:Okn-head]]
# [[:Template:Orv-decl-noun-u]]
# [[:Template:Ofs-conj-wk2]]
# [[:Template:Paper-A]]
# [[:Template:Paper sizes]]
# [[:Template:ISO 216]]
# [[:Template:List:seasons/zh]]
# [[:Template:List:seasons/vo]]
# [[:Template:List:seasons/ug]]
# [[:Template:List:leptons/es]]
# [[:Template:List:continents/tr]]
# [[:Template:List:continents/tl/Tglg]]
# [[:Template:List:continents/tl/Latn]]
# [[:Template:List:continents/sv]]
# [[:Template:List:continents/scn]]
# [[:Template:List:continents/rsk]]
# [[:Template:List:continents/ro]]
# [[:Template:List:continents/pt]]
# [[:Template:List:continents/pl]]
# [[:Template:List:continents/or]]
# [[:Template:List:continents/nn]]
# [[:Template:List:continents/nb]]
# [[:Template:List:continents/my]]
# [[:Template:List:continents/mt]]
# [[:Template:List:continents/ms/Arab]]
# [[:Template:List:continents/ms]]
# [[:Template:List:continents/ml]]
# [[:Template:List:continents/mhr]]
# [[:Template:List:continents/lt]]
# [[:Template:List:continents/kw]]
# [[:Template:List:continents/ja/landmasses]]
# [[:Template:List:continents/ja/continents]]
# [[:Template:List:continents/it]]
# [[:Template:List:continents/is]]
# [[:Template:List:continents/io]]
# [[:Template:List:continents/id]]
# [[:Template:List:continents/hu]]
# [[:Template:List:continents/hrx]]
# [[:Template:List:continents/hi]]
# [[:Template:List:continents/fur]]
# [[:Template:List:continents/fr]]
# [[:Template:List:continents/en]]
# [[:Template:List:continents/de]]
# [[:Template:List:continents/cy]]
# [[:Template:List:continents/cs]]
# [[:Template:List:continents/bg]]
# [[:Template:List:continents/az/Latn]]
# [[:Template:List:continents/an]]
# [[:Template:R:te:TVK]]
# [[:Template:List:Bengali script letters/bn]]
# [[:Template:List:Gregorian calendar months/lb]]
# [[:Template:List:Gregorian calendar months/hu]]
# [[:Template:List:Gregorian calendar months/de]]
# [[:Template:List:terms for fingers/yrl]]
# [[:Template:R:ine:IEL]]
# [[:Template:R:et:ETY]]
# [[:Template:Gem-prefix]]
# [[:Template:La-suffix-verb]]
# [[:Template:R:eu:EDB]]
# [[:Template:Latin script letter names/ko]]
# [[:Template:RQ:X]]
# [[:Template:Mns-nor-conj-table-reg]]
# [[:Template:R:svm:Pangloss]]
# [[:Template:R:wied 1841]]
# [[:Template:R:say 1823]]
# [[:Template:Pejorative of]]
# [[:Template:Is-rhymelink]]
# [[:Template:Is-rhymesee]]
# [[:Template:Osx-decl-noun]]
# [[:Template:R:ber:Kossmann 2013]]
# [[:Template:Ja-non-lexical-pitch]]
# [[:Template:Sla-conj]]
# [[:Template:R:pl:Siarkowski:1891]]
# [[:Template:Rap-personal pronouns]]
# [[:Template:R:pl:Kolberg:1877]]
# [[:Template:Tg-numeral]]
# [[:Template:Tr-IPA]]
# [[:Template:R:tg:Vozhaju]]
# [[:Template:R:en:Ying-Han Da Cidian 2]]
# [[:Template:Fa-xlit]]
# [[:Template:R:ja:Xinshiji Ri-Han Shuangjie Da Cidian]]
# [[:Template:R:th:Tai Han Cidian 1990]]
# [[:Template:R:egy:TLA]]
# [[:Template:R:fa:Bosiyu Hanyu Cidian 1981]]
# [[:Template:Nd-adj]]
# [[:Template:Nr-adj]]
# [[:Template:R:loa:van Baarda:1904]]
# [[:Template:List:provinces of Algeria/en]]
# [[:Template:Also/aao]]
# [[:Template:R:ii:LiMa1981]]
# [[:Template:R:vi:TỪ ĐIỄN TỪ HÁN VIỆT]]
# [[:Template:Tt-conj-c]]
# [[:Template:Tt-conj-v]]
# [[:Template:Tt-conj-head]]
# [[:Template:R:NHK2016]]
# [[:Template:List:elementary particles/es]]
# [[:Template:Sw-variant]]
# [[:Template:Sga-suffix]]
# [[:Template:Mt-suffix]]
# [[:Template:Tsg-pr]]
# [[:Template:Fr-conj-copier-coller]]
# [[:Template:R:ar:Alaboyu Hanyu Cidian 2008]]
# [[:Template:R:te:G. N. Reddy 1979]]
# [[:Template:Pbg-conj]]
# [[:Template:Quote-qualifier]]
# [[:Template:R:fa:Bosiyu Hanyu Cidian 1997]]
# [[:Template:R:ru:Xinshidai E-Han Xiangjie Da Cidian]]
# [[:Template:R:ru:Xinshidai Da E-Han Cidian]]
# [[:Template:R:uk:Xinbian Wukelanyu Hanyu Cidian]]
# [[:Template:Bbl-IPA]]
# [[:Template:Mhr-num]]
# [[:Template:R:pl:Sławski]]
# [[:Template:R:cdo:Feng 1998]]
# [[:Template:RQ:Kim Dung AHXD]]
# [[:Template:Okn-kanji]]
# [[:Template:Tkn-kanji]]
# [[:Template:Picdic/vi/Gesicht]]
# [[:Template:La-gerund]]
# [[:Template:List:provinces of Laos/lo]]
# [[:Template:R:cs:Slovník univerbizátu]]
# [[:Template:R:zlw-osk:Rocchi]]
# [[:Template:Box]]
# [[:Template:Zh-Religion-syn]]
# [[:Template:Zle-ono-decl-noun-o-n]]
# [[:Template:Tcy-noun]]
# [[:Template:R:scn:Traina]]
# [[:Template:Bn-formal personal pronoun un]]
# [[:Template:R:si:Carter]]
# [[:Template:R:cs:Naše přijmení:2019]]
# [[:Template:User sl-3]]
# [[:Template:R:pl:SgOWiM]]
# [[:Template:Uk-1928 superseded spelling of]]
# [[:Template:R:ml:Warrier]]
# [[:Template:Kn-personal pronouns]]
# [[:Template:Ml-personal pronouns]]
# [[:Template:R:sq:Svane:1992]]
# [[:Template:Hrx-adj]]
# [[:Template:Fro-decl-adj-f]]
# [[:Template:Eu-personal pronouns/table]]
# [[:Template:Fi-decl-kuollut-risti]]
# [[:Template:Oc-conj-èsser]]
# [[:Template:Oc-conj-viure]]
# [[:Template:R:zh:Xiandai Hanyu Fangyan Da Cidian]]
# [[:Template:Ryu-pron]]
# [[:Template:Wp sup]]
# [[:Template:Also/abq]]
# [[:Template:Filter-avoidance spelling of]]
# [[:Template:Sw-conj/table-intrans]]
# [[:Template:Hnn-pr]]
# [[:Template:Hnn-head]]
# [[:Template:U:de:unadapted]]
# [[:Template:Yi-def-art]]
# [[:Template:R:ja:YHS]]
# [[:Template:R:Gogen Yurai Jiten]]
# [[:Template:Ka-decl-adj-auto]]
# [[:Template:R:zh:CiYuan3]]
# [[:Template:RQ:RFC]]
# [[:Template:Mdh-pr]]
# [[:Template:U:ca:deprecated use of diacritic]]
# [[:Template:Ja-number-counter:つ]]
# [[:Template:Mwr-adv]]
# [[:Template:Link/sl-tonal]]
# [[:Template:Also/કતર]]
# [[:Template:R:eo:ReVo]]
# [[:Template:R:eo:PIV 2020]]
# [[:Template:Troponyms]]
# [[:Template:Yue-etym-clip-en]]
# [[:Template:Ja-number-counter:分]]
# [[:Template:Tl-letter-def]]
# [[:Template:Yur-verb]]
# [[:Template:Zlw-opl-adj]]
# [[:Template:R:cs:Machek:1954]]
# [[:Template:Protected page text/template]]
# [[:Template:Mhr-adj]]
# [[:Template:R:tr:MBTS]]
# [[:Template:R:av:Saidov:1967]]
# [[:Template:Nb-former-context]]
# [[:Template:Vep-decl-kuva]]
# [[:Template:Vep-decl-kivi]]
# [[:Template:Vep-decl-vezi]]
# [[:Template:Izh-decl/kevät]]
# [[:Template:Hrx-ndecl-n]]
# [[:Template:Hrx-ndecl-f]]
# [[:Template:Hrx-decl-cell]]
# [[:Template:Hrx-ndecl-blank-full]]
# [[:Template:Hrx-ndecl-m]]
# [[:Template:Table:USA/lo]]
# [[:Template:De-decl-dieser]]
# [[:Template:Pi-sc-core]]
# [[:Template:Mch-variant]]
# [[:Template:Izh-conj/ampua]]
# [[:Template:Klj-dial]]
# [[:Template:Ur-conj-y]]
# [[:Template:Ur-conj-c]]
# [[:Template:Ur-conj-head]]
# [[:Template:Ur-conj-simp]]
# [[:Template:Ur-conj-no-aspect]]
# [[:Template:Fi-stats-given-name/num]]
# [[:Template:He-ot-lo-sofit]]
# [[:Template:He-dagesh-khazak]]
# [[:Template:Niqud]]
# [[:Template:He-dagesh-kal]]
# [[:Template:He-dotless-shin]]
# [[:Template:He-conj-pi'el/ע״י]]
# [[:Template:Fo-decl-noun-f30]]
# [[:Template:Is-decl-noun-dóttir]]
# [[:Template:Fi-conj-katketa]]
# [[:Template:Fi-conj-juosta]]
# [[:Template:Ojp-pron-verb-2-2]]
# [[:Template:外語每日一詞]]
# [[:Template:每日一詞]]
# [[:Template:U:hu:preferred-verbal-prefix]]
# [[:Template:Ja-from-kaminidan-ext]]
# [[:Template:Ja-from-kaminidan]]
# [[:Template:Also/atsi]]
# [[:Template:Nv-theme-header]]
# [[:Template:Nv-theme-row]]
# [[:Template:R:mww:Heimbach]]
# [[:Template:Nv-positional-verbs]]
# [[:Template:Nv-classificatory-verbs]]
# [[:Template:Nv-pos-vowel]]
# [[:Template:R:lo:Kerr]]
# [[:Template:RQ:Gosenshu]]
# [[:Template:Mdash]]
# [[:Template:List:Cuneiform letters/peo]]
# [[:Template:Nv-possessive pronouns]]
# [[:Template:Table:suits/gl]]
# [[:Template:R:JC03]]
# [[:Template:R:sq:Jungg:1895]]
# [[:Template:R:ABC]]
# [[:Template:R:zh:Hanyu Wailaici Cidian]]
# [[:Template:R:Yoji Jukugo o Shiru Jiten]]
# [[:Template:R:Jitsu]]
# [[:Template:Mdh-adj]]
# [[:Template:R:Daijirin4]]
# [[:Template:Table:chess pieces/aii]]
# [[:Template:R:be:Skarnik]]
# [[:Template:Ga-mut-cons]]
# [[:Template:Table:tastes/ja]]
# [[:Template:List:senses/ja]]
# [[:Template:R:nan-hbl:TLKKS]]
# [[:Template:Ko-etym-jamo]]
# [[:Template:Glink/ja]]
# [[:Template:R:iir:ID]]
# [[:Template:Tyz]]
# [[:Template:List:states of Brazil/pt]]
# [[:Template:Fro-conj-corre]]
# [[:Template:Label language-specific data documentation]]
# [[:Template:Xug-kanjitab]]
# [[:Template:Yoi-kanjitab]]
# [[:Template:Tkn-kanjitab]]
# [[:Template:Gl-pr]]
# [[:Template:Fax-past participle]]
# [[:Template:Jam-pron]]
# [[:Template:Bar-adverb]]
# [[:Template:Mt-hija]]
# [[:Template:Mt-infl-personal pronoun]]
# [[:Template:Dum-decl-ppron]]
# [[:Template:Mt-pronoun]]
# [[:Template:Nmy-IPA]]
# [[:Template:Ofs-decl-ppron]]
# [[:Template:Osx-prep]]
# [[:Template:Osx-adv]]
# [[:Template:Fo-decl-noun-f17]]
# [[:Template:Fo-decl-noun-f18]]
# [[:Template:Fo-decl-noun-f14]]
# [[:Template:Is-decl-noun-nátt]]
# [[:Template:Non-decl-f-c]]
# [[:Template:Fo-decl-interrog-pron]]
# [[:Template:Aii-infl-noun-f-mascpl]]
# [[:Template:Aii-conj-verb/G-3i]]
# [[:Template:Aii-infl-noun-f-ircnstr-irmascpl]]
# [[:Template:R:Agham]]
# [[:Template:Pra-pron]]
# [[:Template:Nv-verbtable-ext]]
# [[:Template:Category]]
# [[:Template:List:en:here-there-where]]
# [[:Template:Fr-card-noun]]
# [[:Template:List:compass points/jv]]
# [[:Template:Gu-g]]
# [[:Template:U:ko:Dongguk Jeong'un]]
# [[:Template:R:jpx:ONCOJ]]
# [[:Template:Topic cat data submodule documentation]]
# [[:Template:Nv-verbtable-full]]
# [[:Template:Nv-stem-set-row]]
# [[:Template:Nv-stem-set-footer]]
# [[:Template:R:DiCanio 2014]]
# [[:Template:R:cau:Klimov:1994]]
# [[:Template:R:ccs:Klimov:1988]]
# [[:Template:Vi-suffix]]
# [[:Template:R:pl:WSWO]]
# [[:Template:Nv-postpositions-lowtone]]
# [[:Template:Santali-digits]]
# [[:Template:Nv-personal pronouns]]
# [[:Template:R:Georges]]
# [[:Template:U:en:Forebears 2014]]
# [[:Template:U:en:2010 US Census]]
# [[:Template:Nv-pos-lowtone-secondary]]
# [[:Template:Mdh-IPA]]
# [[:Template:Pam-proper noun]]
# [[:Template:War-noun]]
# [[:Template:Acw-conj/I-a-u]]
# [[:Template:La-suffix-adj]]
# [[:Template:Aii-infl-noun-f-ircnstr-q]]
# [[:Template:Yrk-numeral]]
# [[:Template:Aii-infl-noun-f-vowel]]
# [[:Template:Ro-conj-a-iez]]
# [[:Template:Ro-conj-a-i]]
# [[:Template:Ro-conj-a-hez]]
# [[:Template:AutoStat]]
# [[:Template:Se-table-ppron]]
# [[:Template:Pl-pre-1936]]
# [[:Template:List:Chinese calendar months/za]]
# [[:Template:R:SWO]]
# [[:Template:Pl-conj-ap-impersonal]]
# [[:Template:Pl-conj-ai-nąć]]
# [[:Template:Nv-pos-hightone]]
# [[:Template:Nv-stem-set-header]]
# [[:Template:R:cs:Nase rec]]
# [[:Template:Grk-mar-adverb]]
# [[:Template:Grk-mar-preposition]]
# [[:Template:Nv-verbtable]]
# [[:Template:Sux-possessive pronouns]]
# [[:Template:Ko-new]]
# [[:Template:List:continents/te]]
# [[:Template:El-nM-ης-2a]]
# [[:Template:El-nM-ος-3c]]
# [[:Template:R:sjd:Antonova:2021]]
# [[:Template:My-verb-set]]
# [[:Template:Nod-adj]]
# [[:Template:Ky-adv]]
# [[:Template:Table:days of the week/dng]]
# [[:Template:Lij-conj]]
# [[:Template:R:myv:Serebrennikov:1993]]
# [[:Template:Jv-krama of]]
# [[:Template:Jv-krama inggil of]]
# [[:Template:Non-decl-f-in]]
# [[:Template:Hcol3]]
# [[:Template:Kn-decl-a-epi]]
# [[:Template:Vep-decl-homen]]
# [[:Template:聯綿詞]]
# [[:Template:R:es:DAMER]]
# [[:Template:Sw-cl]]
# [[:Template:Sw-conj/table-trans]]
# [[:Template:Ltg-part]]
# [[:Template:Hanja form of-lite]]
# [[:Template:Xug-kanji]]
# [[:Template:Mvi-kanji]]
# [[:Template:Mvi-head]]
# [[:Template:Vi-l-lite]]
# [[:Template:Han tu form of-lite]]
# [[:Template:Rys-readings]]
# [[:Template:Rys-kanji]]
# [[:Template:Rys-head]]
# [[:Template:Yoi-kanji]]
# [[:Template:Pl-conj-ai-VII]]
# [[:Template:R:jam:majstro.com]]
# [[:Template:Fi-adv-dir]]
# [[:Template:Sla-decl-pron-hard-dual]]
# [[:Template:Sa-suffix]]
# [[:Template:Ha-pos]]
# [[:Template:R:hy:Orengo:2019]]
# [[:Template:Hy-decl-աստված]]
# [[:Template:Aii-infl-noun-irp-irs]]
# [[:Template:Aii-infl-noun-m-ircnstr]]
# [[:Template:Aii-infl-noun-f-vowel-irs]]
# [[:Template:Syc-decl-noun-f-vowel-stem]]
# [[:Template:Aii-infl-noun-f-vowel-irp-irs]]
# [[:Template:Aii-infl-noun-constr-pl]]
# [[:Template:R:nan:MacGowan]]
# [[:Template:R:Useinov 2007]]
# [[:Template:Ja-from-shimonidan-ext]]
# [[:Template:Mvi-readings]]
# [[:Template:Yoi-readings]]
# [[:Template:Xug-head]]
# [[:Template:Xug-readings]]
# [[:Template:Yrk-noun]]
# [[:Template:R:pl:SXVI]]
# [[:Template:Aii-infl-noun-m-irfempl]]
# [[:Template:List:continents/uk]]
# [[:Template:Aii-infl-noun-m-irs]]
# [[:Template:Mk-decl-noun-m-сиромав]]
# [[:Template:Aii-infl-noun-m-irp]]
# [[:Template:Aii-infl-noun-m-ircnstr-irs]]
# [[:Template:Hy-noun-ոջ-ներ]]
# [[:Template:Tru personal pronouns]]
# [[:Template:Aii-infl-noun-f-yod]]
# [[:Template:Aii-infl-noun-f]]
# [[:Template:Aii-infl-noun-m]]
# [[:Template:Aii-infl-noun-m-irv1-irs3-irp]]
# [[:Template:Syc-decl-noun]]
# [[:Template:L-vertical]]
# [[:Template:Aii-infl-noun]]
# [[:Template:Xcl-noun-ա]]
# [[:Template:R:zle-ono:DND₂]]
# [[:Template:Ps-decl-adj-ablaut-addition]]
# [[:Template:Informal form of]]
# [[:Template:Table:國際象棋棋子/yi]]
# [[:Template:Table:國際象棋棋子/fi]]
# [[:Template:Table:國際象棋棋子/th]]
# [[:Template:Table:國際象棋棋子/gl]]
# [[:Template:Table:國際象棋棋子/pt]]
# [[:Template:Table:國際象棋棋子/la]]
# [[:Template:Table:國際象棋棋子/lv]]
# [[:Template:Table:國際象棋棋子/he]]
# [[:Template:Table:國際象棋棋子/is]]
# [[:Template:Table:國際象棋棋子/fo]]
# [[:Template:Table:國際象棋棋子/syc]]
# [[:Template:Table:國際象棋棋子/ug]]
# [[:Template:Table:國際象棋棋子/gd]]
# [[:Template:Table:國際象棋棋子/ga]]
# [[:Template:Table:國際象棋棋子/ka]]
# [[:Template:Table:國際象棋棋子/hy]]
# [[:Template:Table:國際象棋棋子/cy]]
# [[:Template:Mqs-numeral]]
# [[:Template:Table:gregorian calendar/ta]]
# [[:Template:Ja-number-counter:月(つき)]]
# [[:Template:Table:gregorian calendar/ml]]
# [[:Template:Grk-mar-IPA]]
# [[:Template:Xcl-noun-?]]
# [[:Template:Vep-decl-ilo]]
# [[:Template:Fo-decl-noun-n4-s]]
# [[:Template:Non-decl-m-nd]]
# [[:Template:Osx-decl-noun-nd]]
# [[:Template:Ro-conj-duce]]
# [[:Template:Osx-decl-noun-z-n]]
# [[:Template:Goh-decl-noun]]
# [[:Template:Fo-decl-noun-n13]]
# [[:Template:Ru-IPA-manual]]
# [[:Template:Tyv-adj]]
# [[:Template:R:ca:DCVB]]
# [[:Template:R:ca:DNV]]
# [[:Template:R:ca:GDLC]]
# [[:Template:Fax-noun]]
# [[:Template:Fro-conj-moudre]]
# [[:Template:Izh-dir-see]]
# [[:Template:Syc-adj]]
# [[:Template:Vep-decl-sana]]
# [[:Template:Gem-decl-noun-i-mf]]
# [[:Template:Ge'ez Script numerals]]
# [[:Template:Klj-v3]]
# [[:Template:Klj-v2]]
# [[:Template:Klj-v1]]
# [[:Template:Klj-infl-noun-table]]
# [[:Template:Klj-infl-noun]]
# [[:Template:Klj-variant]]
# [[:Template:Language extradata documentation]]
# [[:Template:Gez-personal pronouns]]
# [[:Template:Osx-decl-noun-a-n1]]
# [[:Template:Ryu-r/args]]
# [[:Template:Ryu-r/multi]]
# [[:Template:Ary-conj-fiʕʕal-yfiʕʕal]]
# [[:Template:Krl-proper noun]]
# [[:Template:Vep-decl-ma]]
# [[:Template:Szl-IPA]]
# [[:Template:Fi-infl-compound-numeral-partitive]]
# [[:Template:Fi-infl-compound-numeral]]
# [[:Template:Az-initialism/v]]
# [[:Template:Az-initialism]]
# [[:Template:Ms-IPA]]
# [[:Template:Et-IPA/old]]
# [[:Template:Ur-adj-1]]
# [[:Template:Is-decl-einn]]
# [[:Template:Ps-decl-adj-2]]
# [[:Template:Ps-decl-adj-m-consonant]]
# [[:Template:Table:chess pieces/oc]]
# [[:Template:Zh-new/der]]
# [[:Template:RQ:Bacon Sylva Sylvarum]]
# [[:Template:Hu-conj-izzik]]
# [[:Template:Fa-poss-egân]]
# [[:Template:Table:chess pieces/nl]]
# [[:Template:Table:chess pieces/mr]]
# [[:Template:Table:chess pieces/ast]]
# [[:Template:Table:chess pieces/fa]]
# [[:Template:Fa-predicative]]
# [[:Template:Fa-pred-c]]
# [[:Template:Fa-possessive-unc]]
# [[:Template:Fa-poss-c-unc]]
# [[:Template:Fa-basic-unc]]
# [[:Template:Fa-basic-c-unc]]
# [[:Template:Fa-decl-c-unc]]
# [[:Template:Ro-conj-scrie]]
# [[:Template:Fi-infinitive of]]
# [[:Template:IPA link]]
# [[:Template:R:ine:CIEL]]
# [[:Template:Sd-adj]]
# [[:Template:RQ:Ibn al-ʿawwām]]
# [[:Template:Var]]
# [[:Template:Table:hijri calendar/zh]]
# [[:Template:R:szl:SGŚ]]
# [[:Template:Es-conj-ír]]
# [[:Template:R:DGLO]]
# [[:Template:Ne-verb set]]
# [[:Template:R:gl:DDGM]]
# [[:Template:Table:suits/sh]]
# [[:Template:Highlight]]
# [[:Template:Quoted term]]
# [[:Template:Harakat-fa]]
# [[:Template:Fo-decl-noun-m6-s]]
# [[:Template:Ary-personal pronouns]]
# [[:Template:Table:chess pieces/eo]]
# [[:Template:Cu-decl-num5]]
# [[:Template:Orv-decl-adj-hard]]
# [[:Template:Orv-decl-adj]]
# [[:Template:Cu-cardinals]]
# [[:Template:El-nF-ες-2b]]
# [[:Template:R:LOGEION]]
# [[:Template:Ug-noun-c]]
# [[:Template:Acw-rootbox]]
# [[:Template:Ur-decl-pronoun]]
# [[:Template:Pa-decl-adj]]
# [[:Template:Ur-decl-adj-2]]
# [[:Template:Ne-z]]
# [[:Template:Ne-decl-adj]]
# [[:Template:Gu-decl-adj]]
# [[:Template:Gu-adj-c]]
# [[:Template:Earthly branch]]
# [[:Template:List:earthly branches/vi]]
# [[:Template:List:camelids/ja]]
# [[:Template:List:camelids/en]]
# [[:Template:Heavenly stem]]
# [[:Template:Fj-personal pronouns]]
# [[:Template:Punjabi-digits]]
# [[:Template:Gu-noun-m-c]]
# [[:Template:Ps-noun-f-ai]]
# [[:Template:Nb-verb-comireg]]
# [[:Template:Vot-decl-pron/miä]]
# [[:Template:Lb-decl-dësen]]
# [[:Template:List:basic character strokes/zh]]
# [[:Template:Fi-personal pronouns]]
# [[:Template:Sjd-adj]]
# [[:Template:Cs-decl-noun/čedič]]
# [[:Template:Cs-decl-noun/zámek]]
# [[:Template:Cs-decl-noun/Václav]]
# [[:Template:Cs-decl-noun/vlk]]
# [[:Template:Cs-decl-noun/učitel]]
# [[:Template:Cs-decl-noun/tuleň]]
# [[:Template:Cs-decl-noun/tanec]]
# [[:Template:Cs-decl-noun/stroj]]
# [[:Template:Cs-decl-noun/starosta]]
# [[:Template:Cs-decl-noun/soudce]]
# [[:Template:Cs-decl-noun/Robátko]]
# [[:Template:Cs-decl-noun/pán]]
# [[:Template:Cs-decl-noun/občan]]
# [[:Template:Cs-decl-noun/muž]]
# [[:Template:Cs-decl-noun/král]]
# [[:Template:Cs-decl-noun/kabel]]
# [[:Template:Cs-decl-noun/hrad]]
# [[:Template:Cs-decl-noun/hodnostář]]
# [[:Template:Cs-decl-noun/hnůj]]
# [[:Template:Cs-decl-noun/datel]]
# [[:Template:Cs-decl-noun/cizinec]]
# [[:Template:Cs-decl-noun/Bulhar]]
# [[:Template:Cs-decl-noun/bratr]]
# [[:Template:Cs-decl-noun/admirál]]
# [[:Template:Cs-decl-noun/tuk]]
# [[:Template:Ro-ord]]
# [[:Template:It-card-inv]]
# [[:Template:List:hundreds/gl]]
# [[:Template:Ml-verb set]]
# [[:Template:Table:chess pieces/ajp]]
# [[:Template:Te-verbtable]]
# [[:Template:Telugu 3rd person pronouns]]
# [[:Template:Ta-conj-auto]]
# [[:Template:Ta-decl]]
# [[:Template:Tamil-digits]]
# [[:Template:Kannada-digits]]
# [[:Template:Kn-decl-e-i-ai]]
# [[:Template:Malayalam-digits]]
# [[:Template:Table:chess pieces/ml]]
# [[:Template:Table:gregorian calendar/ar]]
# [[:Template:List:Gregorian calendar months/fa/dari]]
# [[:Template:Ps-noun-f-o]]
# [[:Template:Pnb-noun-m-c]]
# [[:Template:Sl-decl-noun-otrok]]
# [[:Template:Mai-IPA]]
# [[:Template:Mai-noun]]
# [[:Template:Hu-conj-alkuszik]]
# [[:Template:List:Chinese sexagenary cycle terms/ja]]
# [[:Template:U:tr:homograph pronunciation]]
# [[:Template:Sexagenary cycle]]
# [[:Template:Hu-conj-metsz]]
# [[:Template:Table:chess pieces/fy]]
# [[:Template:Li-decl-adj]]
# [[:Template:Fo-decl-noun-f33-s]]
# [[:Template:Nn-verb-comireg]]
# [[:Template:El-nM-ας-2a]]
# [[:Template:R:grc:NA28]]
# [[:Template:Mt-interjection]]
# [[:Template:Buc reading of]]
# [[:Template:Km-letter]]
# [[:Template:Ky-verb]]
# [[:Template:Pi-decl-adj]]
# [[:Template:Ur-x]]
# [[:Template:Kls-personal pronouns]]
# [[:Template:Kls-pronoun]]
# [[:Template:Uk-ndecl-manual-pl]]
# [[:Template:Ru-acronym of]]
# [[:Template:Sgs-noun]]
# [[:Template:Ps-noun-m-animate]]
# [[:Template:La-praenominal abbreviation of]]
# [[:Template:Az-comp/v]]
# [[:Template:Az-comp/q]]
# [[:Template:Az-comp/k]]
# [[:Template:Az-comp/cc]]
# [[:Template:Az-comp/c]]
# [[:Template:Katharevousa]]
# [[:Template:Nominalization of]]
# [[:Template:Table:聲調/zh]]
# [[:Template:+plural]]
# [[:Template:Ko-root of]]
# [[:Template:Table:days of the week/sla-pro]]
# [[:Template:Osx-decl-noun-n-n]]
# [[:Template:Goh-decl-noun-o-f]]
# [[:Template:He-verb-conjugation]]
# [[:Template:He-conj-table]]
# [[:Template:He-adj form of]]
# [[:Template:He-adj form]]
# [[:Template:Sui personal pronouns]]
# [[:Template:List:brain lobes/ja]]
# [[:Template:Sl-decl-adj-table-single]]
# [[:Template:Sl-decl-num-dva]]
# [[:Template:El-prefix]]
# [[:Template:Ko-l/args]]
# [[:Template:Ko-l/multi]]
# [[:Template:He-excessive spelling of]]
# [[:Template:U:ru:numeral]]
# [[:Template:He-prep-inflection]]
# [[:Template:List:earthly branches/zh]]
# [[:Template:List:Hebrew calendar months/he]]
# [[:Template:Xcl-noun-ի-?]]
# [[:Template:Hy-noun-ու-իկ]]
# [[:Template:Xcl-noun-ի-ա-pl]]
# [[:Template:Xcl-noun-հայր]]
# [[:Template:Hy-noun-որ-եր]]
# [[:Template:Xcl-noun-ն]]
# [[:Template:Xcl-noun-ն-3-pl]]
# [[:Template:Xcl-noun-ու-pl]]
# [[:Template:Xcl-noun-ն-2]]
# [[:Template:Xcl-noun-կին]]
# [[:Template:Xcl-decl-noun-pl]]
# [[:Template:Xcl-noun-ո-ա-unc]]
# [[:Template:Xcl-noun-ի]]
# [[:Template:Ko-adj-form]]
# [[:Template:R:slr:Lianyun]]
# [[:Template:Izh-decl/lähe]]
# [[:Template:Ba-noun-c-pl]]
# [[:Template:Roa-gal-noun]]
# [[:Template:List:Gregorian calendar months/sh/Cyrl]]
# [[:Template:Mn-adverb]]
# [[:Template:Uk-ndecl-manual-sg]]
# [[:Template:SeeSynonyms]]
# [[:Template:Neuter singular past participle of]]
# [[:Template:Passive participle of]]
# [[:Template:Ps-noun-m-ay-finalstress]]
# [[:Template:Nn-decl-adj-table]]
# [[:Template:Nn-decl-adj]]
# [[:Template:Cu-decl-of-тъ]]
# [[:Template:Pl-decl-numeral]]
# [[:Template:Pl-decl-numeral-coll]]
# [[:Template:Pl-decl-numeral2]]
# [[:Template:Xcl-noun-ի-ա-unc]]
# [[:Template:RQ:Cantigas de Santa Maria]]
# [[:Template:Xcl-noun-ի-unc]]
# [[:Template:Xcl-noun-ա-unc]]
# [[:Template:Nog-noun]]
# [[:Template:Ky-adj]]
# [[:Template:Trk-cmn-decl-noun]]
# [[:Template:Az-arabic-noun-decl-v]]
# [[:Template:Cv-personal pronouns]]
# [[:Template:Cv-decl-pron]]
# [[:Template:Tdd-noun]]
# [[:Template:Kpv-decl-ppron]]
# [[:Template:R:cel:Zair:2012]]
# [[:Template:Collapse2]]
# [[:Template:Kpv-personal pronouns]]
# [[:Template:Is-conj-preterite]]
# [[:Template:Pl-conj-ai-X]]
# [[:Template:Ltg-IPA]]
# [[:Template:Table:mines/trk-pro]]
# [[:Template:Xcl-noun-ո]]
# [[:Template:Xcl-noun-ու]]
# [[:Template:Bulgarian demonstrative pronouns]]
# [[:Template:Tby-noun]]
# [[:Template:Kpv-demonstratives]]
# [[:Template:Xal-personal pronouns]]
# [[:Template:Bua-personal pronouns]]
# [[:Template:Table:minerals/sah]]
# [[:Template:List:countries in Europe/be]]
# [[:Template:Te-noun-decl]]
# [[:Template:Table:days of the week/ml]]
# [[:Template:Tyz-Nom form of]]
# [[:Template:Ky-letter]]
# [[:Template:Pl-conj-ai-impersonal]]
# [[:Template:Hi-adecl]]
# [[:Template:RQ:Stevenson Osbourne Wrecker]]
# [[:Template:RQ:Reade Simpleton]]
# [[:Template:R:sla:Zhivlov:2016]]
# [[:Template:R:mdf:Bereczki:1986]]
# [[:Template:Got-rom-categoryTOC]]
# [[:Template:El-nM-ων-ονες-2b]]
# [[:Template:Ja-kanji forms-IVS/關於IVS]]
# [[:Template:Mn-see]]
# [[:Template:Mn-IPA-see]]
# [[:Template:Numrad]]
# [[:Template:R:AJaszo 2007]]
# [[:Template:R:Aikio 2018]]
# [[:Template:R:Eory 2007]]
# [[:Template:Uz-stem-specify]]
# [[:Template:Uz-verb-stem]]
# [[:Template:R:cs:XJHCD]]
# [[:Template:Fro-conj-vivre]]
# [[:Template:Vec-conj-auto]]
# [[:Template:Sga-adj]]
# [[:Template:Ast-verb-er]]
# [[:Template:M/sl-tonal]]
# [[:Template:Izh-conj/kyntää]]
# [[:Template:Fi-conj-soutaa]]
# [[:Template:Fro-conj-pondre]]
# [[:Template:R:inc:IAIL]]
# [[:Template:R:gju:Rahi:2015]]
# [[:Template:Qfliteral]]
# [[:Template:Ndash]]
# [[:Template:Fro-conj-salir]]
# [[:Template:Map-bms-rom]]
# [[:Template:Table-of-niqqud]]
# [[:Template:He-table-of-niqqud]]
# [[:Template:He-numeral form]]
# [[:Template:He-noun form]]
# [[:Template:Yi-possessive pronouns]]
# [[:Template:Yi-decl-poss]]
# [[:Template:Yi-unpointed form of]]
# [[:Template:Lb-conj-irregular]]
# [[:Template:Yi-personal pronouns]]
# [[:Template:Judeo-Arabic spelling of]]
# [[:Template:El-nN-ο-α-3c]]
# [[:Template:Is-verb-ri]]
# [[:Template:He-personal pronouns]]
# [[:Template:He-interj]]
# [[:Template:R:ru:AN1891]]
# [[:Template:Izh-decl/vahti]]
# [[:Template:Phonetic alphabet]]
# [[:Template:Nup-pos]]
# [[:Template:Nup-noun]]
# [[:Template:Fro-conj-metre]]
# [[:Template:Odt-decl-noun-n-m]]
# [[:Template:漢語家世]]
# [[:Template:Uk-decl-pron]]
# [[:Template:Uk-pro-sam]]
# [[:Template:Be-decl-pron]]
# [[:Template:Be-pro-sam]]
# [[:Template:CategoryTOC/ru]]
# [[:Template:Tt-personal pronouns]]
# [[:Template:Ro-noun-n-uri-Cyrl]]
# [[:Template:Meod-ref]]
# [[:Template:My-suffix]]
# [[:Template:My-particle]]
# [[:Template:My-adj]]
# [[:Template:Nl-pronadv of]]
# [[:Template:List:continents/bn]]
# [[:Template:1]]
# [[:Template:Ja-usex/example]]
# [[:Template:Xcl-noun-ո-ա]]
# [[:Template:Fro-decl-adj-mf]]
# [[:Template:Gmq-osw-conj-st]]
# [[:Template:Used in phrasal verbs]]
# [[:Template:Related terms]]
# [[:Template:Frr-f-cardinals]]
# [[:Template:Fro-conj-rover]]
# [[:Template:Nl-noun-adj]]
# [[:Template:West Frisian personal pronouns]]
# [[:Template:Ro-pp-s]]
# [[:Template:Koi-IPA]]
# [[:Template:Koi-noun]]
# [[:Template:Fro-conj-aidier]]
# [[:Template:Non-decl-blank-sing]]
# [[:Template:R:ZH-PSWT]]
# [[:Template:Non-decl-adj-comp]]
# [[:Template:Gmq-osw-decl-cell]]
# [[:Template:Gmq-osw-decl-noun-a-m]]
# [[:Template:Fro-conj-traire]]
# [[:Template:Nrf-conj-traire]]
# [[:Template:U:fr:may take être]]
# [[:Template:Non-decl-f-o]]
# [[:Template:R:pcc:BYHCD]]
# [[:Template:Kpv-decl-noun]]
# [[:Template:Kjh-decl-noun-man]]
# [[:Template:Se-infl-adj-even]]
# [[:Template:Izh-conj/oppia]]
# [[:Template:Se-infl-noun-odd]]
# [[:Template:Se-infl-noun-odd-ng]]
# [[:Template:Se-infl-noun-contr]]
# [[:Template:Se-infl-noun-even-ng]]
# [[:Template:Smn-decl-noun-even-u-oin]]
# [[:Template:Gmq-osw-conj-table]]
# [[:Template:Gmq-osw-conj-wk1-long]]
# [[:Template:Nl-conj-wk-cht]]
# [[:Template:Fo-decl-noun-n5-s]]
# [[:Template:Nn-decl-cell]]
# [[:Template:Nn-decl-blank-full2]]
# [[:Template:Nn-decl-m-an]]
# [[:Template:Mkh-mvi-pron]]
# [[:Template:Co-conj/à]]
# [[:Template:Mkh-mvi-noun]]
# [[:Template:Nl-decl-past-ptc]]
# [[:Template:R:za:GFCY1]]
# [[:Template:R:za:GFCY2]]
# [[:Template:R:za:GFCY5]]
# [[:Template:R:za:GFCY4]]
# [[:Template:Picdic/de/Gesicht]]
# [[:Template:Kw-mut-cons]]
# [[:Template:Fa-conjunction]]
# [[:Template:Lisu-def]]
# [[:Template:Ug-conj]]
# [[:Template:Mdf-noun-def-gen]]
# [[:Template:Mdf-noun-gen]]
# [[:Template:Mdf-noun-def-manual]]
# [[:Template:Mdf-noun-manual]]
# [[:Template:Udm-pers-pron]]
# [[:Template:Tr-verb form of]]
# [[:Template:Bg-reflexive-си]]
# [[:Template:Tibetan-digits]]
# [[:Template:Trk-pro-decl-noun]]
# [[:Template:Mfe-verb]]
# [[:Template:R:Robert]]
# [[:Template:R:Larousse]]
# [[:Template:Ru-mult-adverbs]]
# [[:Template:Is-conj-w1]]
# [[:Template:R:Pons]]
# [[:Template:Goh-decl-noun-n-m]]
# [[:Template:Fro-conj-faire]]
# [[:Template:R:Anglo-Norman On-Line Hub]]
# [[:Template:Perfective form of]]
# [[:Template:R:ar:Oxford]]
# [[:Template:R:ar:Langenscheidt]]
# [[:Template:Ru-phrase]]
# [[:Template:Evn-verb]]
# [[:Template:R:sh:Skok1971]]
# [[:Template:Xal-numeral]]
# [[:Template:Pl-conj-ap-X]]
# [[:Template:Pl-decl-pronoun]]
# [[:Template:Pl-decl-generic]]
# [[:Template:Mt-noun-pl]]
# [[:Template:R:ine:Mallory 2006]]
# [[:Template:Pl-conj-ap-XI]]
# [[:Template:Pl-conj-ap-eć]]
# [[:Template:Pl-conj-ap-eję]]
# [[:Template:Pl-conj-ap-IX]]
# [[:Template:Rhyme cat]]
# [[:Template:Pl-conj-defective]]
# [[:Template:Pl-verb-defective]]
# [[:Template:Pl-conj-ai-IX]]
# [[:Template:List:Western astrology signs/en]]
# [[:Template:Pl-conj-ap-yć]]
# [[:Template:Pl-conj-see]]
# [[:Template:Pl-conj-ai-ić]]
# [[:Template:Pl-conj-ap-nąć]]
# [[:Template:Grk-mar-noun]]
# [[:Template:Grk-mar-personal pronouns]]
# [[:Template:Nrf-conj-craithe]]
# [[:Template:Te-categoryTOC]]
# [[:Template:Palindrome appendix]]
# [[:Template:Mul-proper noun]]
# [[:Template:ISO 3166]]
# [[:Template:R:xcl:Godel]]
# [[:Template:Zh-pronunciation spelling of]]
# [[:Template:R:olo:Zarinova:2012]]
# [[:Template:Ja-name-to]]
# [[:Template:R:ine:Sihler:1995]]
# [[:Template:Rhymes row]]
# [[:Template:R:Browne 1927]]
# [[:Template:Table:zodiac/zh]]
# [[:Template:R:bsl:Matasović:2013]]
# [[:Template:Cu-conj-нести]]
# [[:Template:Ko-lenis form of]]
# [[:Template:Ko-yin form of]]
# [[:Template:U:ru:large numeral]]
# [[:Template:List:shi'er-lü/ja]]
# [[:Template:List:shi'er-lü/ko]]
# [[:Template:Quote-meta/paramdoc]]
# [[:Template:Charles Dickens quotation templates]]
# [[:Template:RQ:Dickens David Copperfield]]
# [[:Template:William Shakespeare quotation templates]]
# [[:Template:RQ:Shakespeare Henry 5]]
# [[:Template:之過去被動分詞]]
# [[:Template:R:rue:Kercha:2012]]
# [[:Template:Character info/A]]
# [[:Template:Character info/A]]
# [[:Template:Double image aside]]
# [[:Template:Non-noun form]]
# [[:Template:Sh-decl-noun-m]]
# [[:Template:Da-letter]]
# [[:Template:It-letter]]
# [[:Template:Ga-letter]]
# [[:Template:Ia-letter]]
# [[:Template:Id-letter]]
# [[:Template:Nv-letter]]
# [[:Template:La-letter]]
# [[:Template:Tg-adv]]
# [[:Template:Rom-verb]]
# [[:Template:Diagonal split header]]
# [[:Template:Tlw]]
# [[:Template:Zh-list]]
# [[:Template:La-suffix-noun]]
# [[:Template:Syndiff]]
# [[:Template:So-letter]]
# [[:Template:Nup-letter]]
# [[:Template:Ryu-kyujitai spelling of]]
# [[:Template:Scots personal pronouns]]
# [[:Template:Ro-letter]]
# [[:Template:Q-lite]]
# [[:Template:Nn-pronu-note]]
# [[:Template:Vi-letter]]
# [[:Template:Headtempdocboiler]]
# [[:Template:Headtempdocboiler:letter]]
# [[:Template:Tl-letter]]
# [[:Template:Cite]]
# [[:Template:Yo-personal pronouns]]
# [[:Template:IPAchar-lite]]
# [[:Template:IPA-lite]]
# [[:Template:Latn-def-lite]]
# [[:Template:G-lite/node]]
# [[:Template:G-lite]]
# [[:Template:Bg-PRO]]
# [[:Template:Bg-reflexive]]
# [[:Template:Zu-combining stem of]]
# [[:Template:Xh-combining stem of]]
# [[:Template:Ny-pronoun]]
# [[:Template:It-adj-sup]]
# [[:Template:Fo-decl-noun-f1-s]]
# [[:Template:Izh-decl/patsas]]
# [[:Template:Non-decl-m-i2]]
# [[:Template:U:egy:suffix pronoun]]
# [[:Template:Nci-proper noun]]
# [[:Template:SI-unit-abb2]]
# [[:Template:R:LBG]]
# [[:Template:RQ:DTC DTD CPN]]
# [[:Template:Ko-ref]]
# [[:Template:Bn-decl-noun-c]]
# [[:Template:Bn-noun-ô-anim]]
# [[:Template:It-adj-form]]
# [[:Template:Non-decl-f-i]]
# [[:Template:Hu-months-abbr]]
# [[:Template:Mul-numberchart/86]]
# [[:Template:Mul-numberchart/88]]
# [[:Template:Mul-numberchart/89]]
# [[:Template:Mul-numberchart/91]]
# [[:Template:Mul-numberchart/92]]
# [[:Template:Mul-numberchart/93]]
# [[:Template:Mul-numberchart/94]]
# [[:Template:Mul-numberchart/95]]
# [[:Template:Mul-numberchart/96]]
# [[:Template:Mul-numberchart/97]]
# [[:Template:Mul-numberchart/98]]
# [[:Template:Mul-numberchart/99]]
# [[:Template:Mul-numberchart/85]]
# [[:Template:Mul-numberchart/84]]
# [[:Template:Mul-numberchart/83]]
# [[:Template:Mul-numberchart/82]]
# [[:Template:Mul-numberchart/81]]
# [[:Template:Mul-numberchart/100]]
# [[:Template:Mul-numberchart/10]]
# [[:Template:Mul-numberchart/90]]
# [[:Template:Mul-numberchart/80]]
# [[:Template:Mul-numberchart/20]]
# [[:Template:Mul-numberchart/30]]
# [[:Template:Mul-numberchart/40]]
# [[:Template:Mul-numberchart/50]]
# [[:Template:Mul-numberchart/60]]
# [[:Template:Mul-numberchart/70]]
# [[:Template:Sort]]
# [[:Template:Is-decl-noun-base/sgindef]]
# [[:Template:Pronunciation variant of]]
# [[:Template:R:cdy:Wang 2010]]
# [[:Template:R:MYYJ]]
# [[:Template:Ny-new]]
# [[:Template:Uk-ordinals]]
# [[:Template:Rue-decl-noun]]
# [[:Template:U:uk:у-в]]
# [[:Template:R:zhx-teo:Diopou 2010]]
# [[:Template:RQ:Tran Trong Kim VNSL]]
# [[:Template:Rm-verb]]
# [[:Template:Uk-adecl-manual]]
# [[:Template:Sdc-adj]]
# [[:Template:R:egx-dem:DG]]
# [[:Template:RQ:Milton Paradise Lost]]
# [[:Template:R:Bader2007]]
# [[:Template:R:egy:Gardiner]]
# [[:Template:R:egy:Calligraphy]]
# [[:Template:R:egy:Loprieno]]
# [[:Template:Charlotte Bronte quotation templates]]
# [[:Template:RQ:Charlotte Bronte Shirley]]
# [[:Template:Hy-conj-ալ]]
# [[:Template:Sdc-noun]]
# [[:Template:Th-cls]]
# [[:Template:Sh-coll-link]]
# [[:Template:Transterm]]
# [[:Template:RQ:Shakespeare Othello]]
# [[:Template:Kpv-decl/unc]]
# [[:Template:Kpv-decl-hard/unc]]
# [[:Template:Bulgarian cardinal numerals]]
# [[:Template:Emojipic]]
# [[:Template:Aii-decl-noun]]
# [[:Template:Th-morse letter]]
# [[:Template:El-pron-form]]
# [[:Template:El-art-def]]
# [[:Template:Swadesh list 207 trans pronunciation]]
# [[:Template:Nn-noun-f2/2012]]
# [[:Template:Uz-adv]]
# [[:Template:Ja-toyo-depre]]
# [[:Template:Tg-predicative]]
# [[:Template:Tg-pred-c]]
# [[:Template:Bulgarian possessive pronouns]]
# [[:Template:El-nN-ο-3ab]]
# [[:Template:Hu-conj-choose-long-or-short]]
# [[:Template:Hu-conj-suf]]
# [[:Template:Perfectives]]
# [[:Template:Lld-adj/l/pl]]
# [[:Template:Lld-adj/l/fpl]]
# [[:Template:Lld-adj/l/f]]
# [[:Template:Sah-personal pronouns]]
# [[:Template:Orv-verb]]
# [[:Template:Ba-беҙ]]
# [[:Template:Sga-decl-a-fem]]
# [[:Template:Table:days of the week/et]]
# [[:Template:Csb-decl-noun/table]]
# [[:Template:Sk-môj]]
# [[:Template:Sk-tvoj]]
# [[:Template:Hsb-decl-poss-pron]]
# [[:Template:Hsb-decl-pron-60]]
# [[:Template:Dsb-decl-pron-60]]
# [[:Template:Sk-svoj]]
# [[:Template:Sh-adj-indef]]
# [[:Template:Hsb-decl-adj1]]
# [[:Template:Lt-form-part]]
# [[:Template:Pl-conj-ai-yć]]
# [[:Template:Sl-decl-noun-table-unc2]]
# [[:Template:Sl-decl-num]]
# [[:Template:Fr-dualh]]
# [[:Template:Tg-adj]]
# [[:Template:Rebracketing]]
# [[:Template:Mdf-verb-manual-table]]
# [[:Template:Mdf-verb-manual]]
# [[:Template:Xcl-decl-noun]]
# [[:Template:Xcl-noun-ի-ա]]
# [[:Template:Ru-ordinals]]
# [[:Template:参考书籍]]
# [[:Template:Is-decl-noun-base/pl]]
# [[:Template:RQ:Douglass Bondage]]
# [[:Template:RQ:Pyle Robin Hood]]
# [[:Template:RQ:Thackeray Vanity Fair]]
# [[:Template:Sq-case]]
# [[:Template:Sl-infl-dati]]
# [[:Template:Imperfective form of]]
# [[:Template:Zh-hypo]]
# [[:Template:Zh-hyper]]
# [[:Template:Morse links]]
# [[:Template:Mn-noun-form]]
# [[:Template:Ru-initialism of]]
# [[:Template:Az-noun-cyrl-v]]
# [[:Template:PIE numerals]]
# [[:Template:Mdf-noun-pos-table]]
# [[:Template:Mdf-noun-pos]]
# [[:Template:Ko-numeral usage note]]
# [[:Template:R:ga:Finck]]
# [[:Template:RQ:I Am a Cat]]
# [[:Template:List:Western astrology signs/th]]
# [[:Template:Ch-personal pronouns]]
# [[:Template:Kpv-decl/prop]]
# [[:Template:Kpv-decl-hard/prop]]
# [[:Template:Sl-decl-noun-m-ov]]
# [[:Template:Kpv-decl-soft]]
# [[:Template:RQ:Bibbja]]
# [[:Template:Orv-table entry]]
# [[:Template:Ru-decl-noun-irreg-unc]]
# [[:Template:Gl-conj-table]]
# [[:Template:Fo-decl-noun-n3-s]]
# [[:Template:Upright]]
# [[:Template:Is-decl-noun-base/sg]]
# [[:Template:Is-decl-noun-base/sgpl]]
# [[:Template:Section link-lite]]
# [[:Template:Ro-conj-veni]]
# [[:Template:Relational adjective of]]
# [[:Template:Foreign name]]
# [[:Template:Ny-proper noun]]
# [[:Template:Uncommon form of]]
# [[:Template:Tyv-v2-v4]]
# [[:Template:Tyv-v4]]
# [[:Template:Tyv-v2]]
# [[:Template:Ru-decl-adj-irreg]]
# [[:Template:Ru-abbrev of]]
# [[:Template:Ru-Zodiac]]
# [[:Template:Hy-noun-ու-ներ-inf]]
# [[:Template:Hy-conj]]
# [[:Template:Hy-conj-ել]]
# [[:Template:Xcl-decl-noun-unc]]
# [[:Template:Xcl-noun-ո-unc]]
# [[:Template:Hy-decl-verb]]
# [[:Template:Xcl-verb-form]]
# [[:Template:Non-decl-adj-weak]]
# [[:Template:Non-decl-m-an]]
# [[:Template:Okm-noun]]
# [[:Template:Kpv-decl-vowel]]
# [[:Template:Kpv-decl-hard]]
# [[:Template:Kpv-decl-adj]]
# [[:Template:Sux-signs]]
# [[:Template:Vo-conj]]
# [[:Template:Sumerogram of]]
# [[:Template:R:sux:ePSD2]]
# [[:Template:R:sux:DGS]]
# [[:Template:Sux-alts]]
# [[:Template:Xgn-comparison-Cyrl]]
# [[:Template:Ko-div]]
# [[:Template:Uk-decl-num3]]
# [[:Template:Rue-cardinals]]
# [[:Template:越南语猪商行话数词]]
# [[:Template:Sga-decl-o-masc]]
# [[:Template:Uk-conj-buty]]
# [[:Template:Uk-categoryTOC]]
# [[:Template:Ru-pre-reform]]
# [[:Template:Sla-alt-pal2]]
# [[:Template:Sla-alt-pal1]]
# [[:Template:Sla-decl-adj-hard]]
# [[:Template:Sla-adj]]
# [[:Template:Mk-decl-adj-table-full]]
# [[:Template:R:OpenThesaurus]]
# [[:Template:Az-question]]
# [[:Template:El-nN-μα-ματα-3b1]]
# [[:Template:Pitjantjatjara bound pronoun]]
# [[:Template:Pitjantjatjara pronouns]]
# [[:Template:Japanese first-person pronouns]]
# [[:Template:Tts-pronoun]]
# [[:Template:Pi-pronoun]]
# [[:Template:El-nN-α-2a]]
# [[:Template:Izh-decl/kolmas]]
# [[:Template:Nl-decl-pres-ptc]]
# [[:Template:El-nM-ης-εις-2a]]
# [[:Template:Zu-phrase]]
# [[:Template:El-nN-εν-εντα-2b]]
# [[:Template:El-nF-η-εις-3b2]]
# [[:Template:Ar-quran-def]]
# [[:Template:Vi-prep]]
# [[:Template:Zh-alt-lb]]
# [[:Template:Ko-suffix]]
# [[:Template:Mak-verb form]]
# [[:Template:R:rom:Boretzky-Igla]]
# [[:Template:R:Basrim 2008]]
# [[:Template:Grc-conj]]
# [[:Template:El-nN-η-3b]]
# [[:Template:Omr-noun]]
# [[:Template:Ko-etym-nativised]]
# [[:Template:Table:days of the week/uz]]
# [[:Template:Ancient Greek personal pronouns 2]]
# [[:Template:El-nN-αν-αντα-2b]]
# [[:Template:El-nN-ος-οτα-1]]
# [[:Template:El-army-ranks]]
# [[:Template:As-proper noun]]
# [[:Template:Bengali-digits]]
# [[:Template:Ja-adj-ku]]
# [[:Template:El-nN-α-3b]]
# [[:Template:El-nF-α-ες-3c]]
# [[:Template:List:prefectures of Japan/ja]]
# [[:Template:List:prefectures of Japan/en]]
# [[:Template:El-nN-ι-ια-2a1]]
# [[:Template:Fi-alt-personal]]
# [[:Template:Ko-interj]]
# [[:Template:El-nM-ας-ες-2d]]
# [[:Template:El-nM-ους-ουδες-1]]
# [[:Template:El-nN-αν-αντα-0]]
# [[:Template:El-nN-ι-ια-3a1]]
# [[:Template:El-nN-υ-εα-1]]
# [[:Template:El-nM-ιας-ιες-2b]]
# [[:Template:El-n-genP]]
# [[:Template:Tl-personal pronouns]]
# [[:Template:El-nI-υς-ύες-1]]
# [[:Template:El-nM-ης-ηδες-3b]]
# [[:Template:Grc-categoryTOC]]
# [[:Template:Tl-infl-table2]]
# [[:Template:Tl-infl-in]]
# [[:Template:Nap-pronouns]]
# [[:Template:Zlw-slv-decl-noun]]
# [[:Template:Ancient Greek personal pronouns 1]]
# [[:Template:El-nM-ιας-ηδες-3a]]
# [[:Template:El-nN-ια-2a2]]
# [[:Template:El-nF-αδες-1]]
# [[:Template:El-nN-ως-2]]
# [[:Template:Is-conj-w2]]
# [[:Template:He-root-link]]
# [[:Template:Fi-conj-vanheta]]
# [[:Template:Km-prep]]
# [[:Template:Fi-conj-valita]]
# [[:Template:Km-suffix]]
# [[:Template:Ug-uly of]]
# [[:Template:Ug-latin]]
# [[:Template:Sa-sc/label]]
# [[:Template:Sa-sc]]
# [[:Template:Km-con]]
# [[:Template:Pl-conj-ai-XI]]
# [[:Template:Pl-conj-ap-uję]]
# [[:Template:Pl-conj-ap-ić]]
# [[:Template:Ary-pron-inflection]]
# [[:Template:Km-prefix]]
# [[:Template:Cab-pronouns]]
# [[:Template:Km-pronoun]]
# [[:Template:El-nM-ωρ-ορες-2b]]
# [[:Template:El-nN-ι-2b]]
# [[:Template:Fr-conjunction]]
# [[:Template:Fi-conj-sallia]]
# [[:Template:El-nN-μο-ματα-3b]]
# [[:Template:Pl-decl-adj-owy]]
# [[:Template:Uses TemplateStyles]]
# [[:Template:Tlm]]
# [[:Template:Grc-lak]]
# [[:Template:Grc-dor]]
# [[:Template:Grc-koi]]
# [[:Template:Grc-att]]
# [[:Template:El-nM-ης-ηδες-1]]
# [[:Template:He-wv]]
# [[:Template:He-pausal]]
# [[:Template:He-noun form of]]
# [[:Template:El-nN-μα-3b]]
# [[:Template:副詞性賓格]]
# [[:Template:El-nN-ον-οντα-2b]]
# [[:Template:Zh-CD/link]]
# [[:Template:R:Rollov]]
# [[:Template:El-nM-ες-εδες-1]]
# [[:Template:Des-bottom]]
# [[:Template:Ko-verb set]]
# [[:Template:Ko-etym-verbal-suffix]]
# [[:Template:R:la:Francese]]
# [[:Template:R:zle-ono:Mihajlovič 2012]]
# [[:Template:El-nM-ας-ες-3c]]
# [[:Template:French possessive pronouns]]
# [[:Template:French possessive adjectives]]
# [[:Template:La-decl-ppron]]
# [[:Template:Zh-hg/s]]
# [[:Template:RQ:Kokinshū]]
# [[:Template:El-n-gen-ff]]
# [[:Template:El-nF-η-εις-2a]]
# [[:Template:El-nN-ος-η-3b]]
# [[:Template:Named-after/list]]
# [[:Template:Ps-noun-f-a]]
# [[:Template:Portuguese possessive adjectives]]
# [[:Template:Gl-pron-possess]]
# [[:Template:La-det]]
# [[:Template:Lif-adv]]
# [[:Template:Lif-adj]]
# [[:Template:El-nF-η-ες-3b1]]
# [[:Template:El-punctuation]]
# [[:Template:El-nM-ης-3a]]
# [[:Template:Th-ant-list]]
# [[:Template:Nod-noun]]
# [[:Template:Shn-adj]]
# [[:Template:Vi-conj]]
# [[:Template:El-decl-1st-person]]
# [[:Template:El-decl-2nd-person]]
# [[:Template:El-decl-εγώ]]
# [[:Template:El-nF-ος-οι-1]]
# [[:Template:El-thirteen]]
# [[:Template:El-fourteen]]
# [[:Template:G2]]
# [[:Template:El-nF-α-αδες-1]]
# [[:Template:El-nM-ος-οι-2b]]
# [[:Template:El-nM-ων-ωνες-2b]]
# [[:Template:El-nF-α-ες-1a]]
# [[:Template:Yoi-romanization of]]
# [[:Template:Yoi-romaji]]
# [[:Template:Wuh-personal pronouns]]
# [[:Template:El-nN-ες-η-1]]
# [[:Template:El-nN-υ-ια-2b]]
# [[:Template:R:aou:HYC2008]]
# [[:Template:El-taxonomy]]
# [[:Template:El-nM-εας-εις-1]]
# [[:Template:El-nM-ας-αδες-1]]
# [[:Template:Goh-decl-noun-a-n]]
# [[:Template:Goh-decl-noun-i-f]]
# [[:Template:R:swi:WXE2020]]
# [[:Template:El-decl-3rd-person]]
# [[:Template:Cv-decl]]
# [[:Template:Pi-conj-special]]
# [[:Template:Pi-verb]]
# [[:Template:Crx-letter-def]]
# [[:Template:Tg-infl-noun/link]]
# [[:Template:Mn-numeral-form]]
# [[:Template:Lld-adj/-/pl]]
# [[:Template:Lld-adj/-/fpl]]
# [[:Template:Lld-adj/-/f]]
# [[:Template:El-nF-ου-ουδες-1]]
# [[:Template:Lb-decl-personal pronouns]]
# [[:Template:R:swi:PYX2014]]
# [[:Template:El-nN-ας-ατα-2b]]
# [[:Template:Xsy-categoryTOC]]
# [[:Template:Picdiclabel/label]]
# [[:Template:澳門]]
# [[:Template:El-n-gen]]
# [[:Template:El-nM-εας-εις-1b]]
# [[:Template:El-nN-ο-3a]]
# [[:Template:File other]]
# [[:Template:PD-Layout]]
# [[:Template:El-nF-η-3b1]]
# [[:Template:El-nN-μα-ματα-2b]]
# [[:Template:Th-rel]]
# [[:Template:Th-syn-see]]
# [[:Template:Ping2]]
# [[:Template:Tru-numeral]]
# [[:Template:Gmq-rom]]
# [[:Template:Holonym]]
# [[:Template:Eo-quantities of bytes]]
# [[:Template:El-nF-ος-οι-3b1]]
# [[:Template:R:ru:Dahl]]
# [[:Template:El-nM-ιας-ιες-2c]]
# [[:Template:List:compass points/de]]
# [[:Template:El-nM-ης-ες-1]]
# [[:Template:El-nM-ος-οι-3d]]
# [[:Template:El-nN-ι-ια-2b]]
# [[:Template:El-nF-η-εις-3b]]
# [[:Template:El-nN-ι-ια-1]]
# [[:Template:El-nN-ος-η-2c]]
# [[:Template:El-nF-η-ες-2a]]
# [[:Template:El-nF-α-1]]
# [[:Template:El-nM-ης-ηδες-2a]]
# [[:Template:El-nN-ο-α-3ab]]
# [[:Template:El-nM-ας-ες-2a]]
# [[:Template:El-nM-ας-ες-2b]]
# [[:Template:El-nN-ο-α-3a]]
# [[:Template:El-nF-α-ες-1]]
# [[:Template:El-nM-ος-3a]]
# [[:Template:El-nF-α-ες-3a1]]
# [[:Template:El-nF-ος-οι-2a]]
# [[:Template:El-nN-ο-α-1]]
# [[:Template:El-nN-ος-η-2b]]
# [[:Template:Osp-noun]]
# [[:Template:El-nF-η-ες-2b]]
# [[:Template:Osx-decl-noun-a-m]]
# [[:Template:El-nF-α-ες-2d]]
# [[:Template:El-nN-ι-ια-2a2]]
# [[:Template:El-nN-μα-ματα-3b]]
# [[:Template:El-nN-ια-2a1]]
# [[:Template:El-nM-ας-ες-3b]]
# [[:Template:Ha-adj]]
# [[:Template:La-interj]]
# [[:Template:El-nF-α-ες-2c]]
# [[:Template:El-nF-η-ες-2b1]]
# [[:Template:El-nM-ας-3b]]
# [[:Template:El-n-genS]]
# [[:Template:El-nN-ο-1]]
# [[:Template:El-nM-ος-οι-3a]]
# [[:Template:El-nM-ος-3b]]
# [[:Template:El-nF-α-ες-3b1]]
# [[:Template:El-nM-ος-οι-3c]]
# [[:Template:El-nF-ος-2a]]
# [[:Template:El-nF-η-3b]]
# [[:Template:El-nF-α-ες-3b2]]
# [[:Template:El-nM-ας-1]]
# [[:Template:El-nN-ο-2a]]
# [[:Template:El-nM-ος-1]]
# [[:Template:El-nF-η-1]]
# [[:Template:De-conj-old]]
# [[:Template:RQ:Rəsulzadə]]
# [[:Template:世界語詞條模板]]
# [[:Template:世界語詞條分類]]
# [[:Template:Zu-infl-verb]]
# [[:Template:Scn-article]]
# [[:Template:Az-noun-form]]
# [[:Template:Gn-personal pronouns]]
# [[:Template:Az-decl-comp/k]]
# [[:Template:Az-decl-comp/cc]]
# [[:Template:Az-decl-comp/c]]
# [[:Template:Az-decl-comp/q]]
# [[:Template:Az-decl-comp/v]]
# [[:Template:R:Oxford English Dictionary]]
# [[:Template:RQ:Scott Ivanhoe]]
# [[:Template:Az-letter]]
# [[:Template:Eu-letter]]
# [[:Template:Pt-letter]]
# [[:Template:Yue-jyut]]
# [[:Template:List:states of India/bn]]
# [[:Template:Fa-preposition]]
# [[:Template:Sco-past of]]
# [[:Template:Frm-past participle]]
# [[:Template:Is-patronymics]]
# [[:Template:Ro-conj-aux]]
# [[:Template:It-pron-adj]]
# [[:Template:Odt-decl-table]]
# [[:Template:Kaw-noun]]
# [[:Template:Jv-rom]]
# [[:Template:R:King James Version]]
# [[:Template:Pcd-adj]]
# [[:Template:Frm-present participle]]
# [[:Template:R:ine:Cheung2007]]
# [[:Template:R:ine:IELC]]
# [[:Template:Non-decl-n-an]]
# [[:Template:R:ms:BSJ1950]]
# [[:Template:Mul-kangxi radical-def/def]]
# [[:Template:Ja-r/args]]
# [[:Template:Ja-r/multi]]
# [[:Template:Japanese number]]
# [[:Template:Mul-kangxi radical-def/switch]]
# [[:Template:Gv-adj]]
# [[:Template:Lt-numeral]]
# [[:Template:Pt-cardinal]]
# [[:Template:Non-decl-n-a]]
# [[:Template:Et-decl-puri]]
# [[:Template:Fo-conj-56s]]
# [[:Template:Scn-adj-iu]]
# [[:Template:Pi-adj]]
# [[:Template:Non-decl-f-on]]
# [[:Template:Khb-verb]]
# [[:Template:Lt-decl-pers-pron]]
# [[:Template:Lt-3rd-person-m]]
# [[:Template:Sq-personal pronouns]]
# [[:Template:Ro-decl-adj-2]]
# [[:Template:Gd-adj]]
# [[:Template:Ro-name]]
# [[:Template:Ro-conj-e-ut]]
# [[:Template:Izh-personal pronouns]]
# [[:Template:Izh-decl/maa]]
# [[:Template:Izh-decl-ppron]]
# [[:Template:T-simple]]
# [[:Template:缅甸文]]
# [[:Template:R:Okinawa Goten]]
# [[:Template:Mk-decl-noun-око]]
# [[:Template:Sga-decl-noun-table]]
# [[:Template:Zh-no-solo]]
# [[:Template:Kw mut cons]]
# [[:Template:Sv-cardinal]]
# [[:Template:Sa-decl-noun-ās-m]]
# [[:Template:Sa-decl-noun-ās-f]]
# [[:Template:Sa-decl-noun-n-n]]
# [[:Template:Sa-decl-noun-i-m]]
# [[:Template:Sa-decl-noun-as-n]]
# [[:Template:Mk-decl-num]]
# [[:Template:Mk-decl-num-два]]
# [[:Template:Mk-decl-adj-е]]
# [[:Template:R:mk:DRMJ]]
# [[:Template:Mk-conj-table-impersonal]]
# [[:Template:Mk-conj-сум]]
# [[:Template:Mk-conj-и-е]]
# [[:Template:Mk-conj-и-impersonal]]
# [[:Template:Mk-conj-и-3]]
# [[:Template:Mk-conj-и-2]]
# [[:Template:Mk-conj-е-а-impersonal]]
# [[:Template:Mk-conj-е-4]]
# [[:Template:Mk-conj-е-2]]
# [[:Template:Mk-conj-2-е-о]]
# [[:Template:Mk-conj-и-а]]
# [[:Template:Mk-conj-и-1]]
# [[:Template:Mk-conj-е-0]]
# [[:Template:Mk-conj-е-е]]
# [[:Template:Mk-conj-е-о]]
# [[:Template:Mk-conj-е-а]]
# [[:Template:Mk-conj-е-1]]
# [[:Template:Desc/sl-tonal]]
# [[:Template:Bho-verb]]
# [[:Template:Tr-decl-pronoun]]
# [[:Template:Legend]]
# [[:Template:Lo-adj]]
# [[:Template:Te-verb form]]
# [[:Template:R:ami:Jiang2012]]
# [[:Template:Hit-decl-an]]
# [[:Template:Hit-decl-adj]]
# [[:Template:Hit-decl-adj-aš]]
# [[:Template:Et-decl-nõder]]
# [[:Template:R:az:Huseynov]]
# [[:Template:R:EKSS]]
# [[:Template:R:ii:600]]
# [[:Template:Gs]]
# [[:Template:R:lis:LHCD]]
# [[:Template:臺灣原住民族人名說明]]
# [[:Template:Fix]]
# [[:Template:Ml]]
# [[:Template:Latin script letter names/ja]]
# [[:Template:Ja-hentaigana-dakuten2]]
# [[:Template:Ja-hentaigana-dakuten]]
# [[:Template:Li-adj]]
# [[:Template:Projectlink/wikipedia]]
# [[:Template:Date.day+n]]
# [[:Template:Rounddown]]
# [[:Template:MilestonePrediction]]
# [[:Template:Milestone]]
# [[:Template:NS1]]
# [[:Template:Milestoneitem]]
# [[:Template:Ja-hentaigana-def]]
# [[:Template:Ja-etym hentaigana]]
# [[:Template:Ja-hentaigana]]
# [[:Template:古日語假名]]
# [[:Template:Span-tt/tooltip]]
# [[:Template:Span-tt]]
# [[:Template:變體假名字體]]
# [[:Template:Cquote]]
# [[:Template:List:上標數字/mul]]
# [[:Template:R:hi:Chaturvedi]]
# [[:Template:List helper-3]]
# [[:Template:Lv-decl-AdjN-def-1]]
# [[:Template:List:continents/lv]]
# [[:Template:Lv-pronoun]]
# [[:Template:Lv-categoryTOC]]
# [[:Template:User gender]]
# [[:Template:Az-c2]]
# [[:Template:Az-c1]]
# [[:Template:Az-verb-stem-last]]
# [[:Template:Az-verb-stem]]
# [[:Template:Lv-decl-AdjN-def-2]]
# [[:Template:Lv-reflexive of]]
# [[:Template:Lv-decl-AdjN-def-4]]
# [[:Template:Lv-decl-AdjN]]
# [[:Template:Eu-adv]]
# [[:Template:Ms-categoryTOC]]
# [[:Template:List:coffees/ms/Arab]]
# [[:Template:List:coffees/ms/Latn]]
# [[:Template:Ms-prefix]]
# [[:Template:Lv-conj-3]]
# [[:Template:Lv-conj-2]]
# [[:Template:En-prep phrase]]
# [[:Template:Ms-der]]
# [[:Template:Ms-prep]]
# [[:Template:Nb-verb-4]]
# [[:Template:Lt-conj-1-circum]]
# [[:Template:Brai-script/extensions/boiler]]
# [[:Template:List:antileptons/lt]]
# [[:Template:Ro-adv]]
# [[:Template:Pt-obsolete-hellenism]]
# [[:Template:Inc-opa-adj]]
# [[:Template:Ja-kana-mannyogana-etym]]
# [[:Template:Kmr-verb]]
# [[:Template:RQ:Sanchez Pell freda]]
# [[:Template:RQ:Leizarraga]]
# [[:Template:Kok-pos]]
# [[:Template:R:gl:CX]]
# [[:Template:Egy-glyph]]
# [[:Template:R:Poerwadarminta 1939]]
# [[:Template:User:QFQ/formatnoun]]
# [[:Template:Table:國際象棋棋子/sw]]
# [[:Template:User:QFQ/formatipa]]
# [[:Template:R:szy:語法概論]]
# [[:Template:Table:紙牌/sw]]
# [[:Template:List:continents/sw]]
# [[:Template:幽]]
# [[:Template:達悟語時間詞]]
# [[:Template:Indonesian informal you]]
# [[:Template:User:QFQ/formatformof]]
# [[:Template:Realtemplate]]
# [[:Template:User:QFQ/faketemplate]]
# [[:Template:List:states of India/hi]]
# [[:Template:Table:suits/hi]]
# [[:Template:R:Cantalausa]]
# [[:Template:Spanish conjugation type]]
# [[:Template:Langhd/cat]]
# [[:Template:Languages by country]]
# [[:Template:Table:紙牌/cs]]
# [[:Template:Table:季節/cs]]
# [[:Template:Fmbox/warning ruler]]
# [[:Template:Editnotices/Page/User:CrowleyBot]]
# [[:Template:Oldid]]
# [[:Template:幽默存檔]]
# [[:Template:坏笑话和删除的胡话]]
# [[:Template:語後綴]]
# [[:Template:瓦鄉]]
# [[:Template:潮州]]
# [[:Template:Zodiac]]
# [[:Template:De-pronoun]]
# [[:Template:R:kac:JXL]]
# [[:Template:晉]]
# [[:Template:Lic-categoryTOC]]
# [[:Template:R:族語學習手冊/code]]
# [[:Template:Verb form of]]
# [[:Template:R:族語學習手冊]]
# [[:Template:黎語人稱代詞]]
# [[:Template:R:ycr:真田信治 2015]]
# [[:Template:R:ycr:真田信治 簡月真 2012]]
# [[:Template:R:ycr:簡月真 2018a]]
# [[:Template:R:ycr:簡月真 真田信治 2011]]
# [[:Template:R:ycr:黃美金 2010]]
# [[:Template:哥特聖經]]
# [[:Template:Ami-syn/table]]
# [[:Template:Trv-syn/table]]
# [[:Template:Trv-syn]]
# [[:Template:User th-4]]
# [[:Template:User th-1]]
# [[:Template:User nan-taiwan]]
# [[:Template:User nan]]
# [[:Template:Ami-syn]]
# [[:Template:秀姑巒阿美]]
# [[:Template:恆春阿美]]
# [[:Template:海岸阿美]]
# [[:Template:馬蘭阿美]]
# [[:Template:南勢阿美]]
# [[:Template:R:族語學習詞表]]
# [[:Template:R:部落核定彙整表]]
# [[:Template:Num2rad]]
# [[:Template:Han character variant]]
# [[:Template:滇]]
# [[:Template:家名]]
# [[:Template:氏族名]]
# [[:Template:Ja-vb-1-s-う]]
# [[:Template:Mn-adjective]]
# [[:Template:R:族語新詞/103]]
# [[:Template:R:族語新詞]]
# [[:Template:R:臺灣原住民族語言分布參考表]]
# [[:Template:湘]]
# [[:Template:Zh-syn-list]]
# [[:Template:Col2]]
# [[:Template:Poj reading of]]
# [[:Template:Kaifang]]
# [[:Template:IPA letters/getstressed]]
# [[:Template:Inflection]]
# [[:Template:R:lmy:verdizade19b]]
# [[:Template:De-verb-irregular]]
# [[:Template:De-adnj]]
# [[:Template:Yi]]
# [[:Template:Mi]]
# [[:Template:Km]]
# [[:Template:Nds-de]]
# [[:Template:R:Xin Shidai Ri-han Cidian]]
# [[:Template:Mnw]]
# [[:Template:R:hy:Trq]]
# [[:Template:Mt-rootbox]]
# [[:Template:HSK]]
# [[:Template:Rhyme list end]]
# [[:Template:Rhyme list begin]]
# [[:Template:Table:德國紙牌/sh]]
# [[:Template:政]]
# [[:Template:CategoryTOC/sh]]
# [[:Template:Table:西班牙牌/sh]]
# [[:Template:Table:紙牌/sh]]
# [[:Template:PL:1911]]
# [[:Template:Ky]]
# [[:Template:Kaifang-EO]]
# [[:Template:List:continents/ru]]
# [[:Template:振假名/表示]]
# [[:Template:De-interjection]]
# [[:Template:Nb]]
# [[:Template:韻書列表]]
# [[:Template:R:svenska.se]]
# [[:Template:Mg]]
# [[:Template:Nv]]
# [[:Template:Examples-right]]
# [[:Template:Bg-noun-m-i]]
# [[:Template:Bg-noun-f-a1]]
# [[:Template:Ba-decl-noun]]
# [[:Template:Hi-decl-adj]]
# [[:Template:Table:Zodiac/ja]]
# [[:Template:Table:Zodiac/ko]]
# [[:Template:Table:Zodiac/en]]
# [[:Template:Table:Zodiac/zh]]
# [[:Template:Table:Zodiac]]
# [[:Template:Table:Chinese Zodiac/en]]
# [[:Template:Table:Chinese Zodiac/zh]]
# [[:Template:Table:Chinese Zodiac]]
# [[:Template:Table:Solar System/zh]]
# [[:Template:Table:Solar system]]
# [[:Template:Table:days of the week/zh]]
# [[:Template:Table:days of the week]]
# [[:Template:漳州]]
# [[:Template:閩東]]
# [[:Template:閩北]]
# [[:Template:Uk-adj-и́й]]
# [[:Template:Uk-decl-noun]]
# [[:Template:化 ja]]
# [[:Template:化 en]]
# [[:Template:Bg-noun-f-ya1]]
# [[:Template:Uk-decl-noun-unc]]
# [[:Template:Uk-adj-table]]
# [[:Template:Uk-adj-ий]]
# [[:Template:Uk-decl-adj]]
# [[:Template:Redirect4]]
# [[:Template:Jbovlaste]]
# [[:Template:ArabForm]]
# [[:Template:Mul]]
# [[:Template:Or]]
# [[:Template:Midashi]]
# [[:Template:Ja-conj]]
# [[:Template:Ja-v]]
# [[:Template:Ja-n]]
# [[:Template:Inline tag]]
# [[:Template:Yomi/ap]]
# [[:Template:Yomi]]
# [[:Template:Rmjsup]]
# [[:Template:Pah]]
# [[:Template:Pahl]]
# [[:Template:香港]]
# [[:Template:矿]]
# [[:Template:平水韻]]
# [[:Template:Messagebox]]
# [[:Template:Experimental]]
# [[:Template:List:fractions/mul]]
# [[:Template:Kk]]
# [[:Template:客家]]
# [[:Template:釋名]]
# [[:Template:Mns]]
# [[:Template:Cdo]]
# [[:Template:Wikipedia multiplearticle]]
# [[:Template:-ba-]]
# [[:Template:Ojp-conj/verbconj]]
# [[:Template:Ojp-conj]]
# [[:Template:Ojp-verbconj]]
# [[:Template:Inf-ojp]]
# [[:Template:Inf-ja-aux2]]
# [[:Template:In category]]
# [[:Template:Protection Templates]]
# [[:Template:Lua]]
# [[:Template:管理員名單]]
# [[:Template:日正字]]
# [[:Template:日俗字]]
# [[:Template:汉语读音/lua]]
# [[:Template:Py]]
# [[:Template:Hanindex]]
# [[:Template:-pn-]]
# [[:Template:De-decl-noun-sg]]
# [[:Template:De-vb-2/Sandbox]]
# [[:Template:De-vb-tb/Sandbox]]
# [[:Template:Da-nm]]
# [[:Template:粵語人稱代詞]]
# [[:Template:Zh-pronoun]]
# [[:Template:Mandarin TOC]]
# [[:Template:Cantonese TOC]]
# [[:Template:Yale reading of]]
# [[:Template:It-nm]]
# [[:Template:Main Page Talk Header]]
# [[:Template:Lb-nm]]
# [[:Template:Is-nm]]
# [[:Template:Fo-prnc]]
# [[:Template:Fo-nm]]
# [[:Template:Ca-aj]]
# [[:Template:Rm-nm]]
# [[:Template:Ca-nm]]
# [[:Template:满文及转写/手动]]
# [[:Template:Yi-vb]]
# [[:Template:Vo-nm]]
# [[:Template:Yi-nm]]
# [[:Template:Ja-vb-1-う]]
# [[:Template:De-nm-prefix]]
# [[:Template:De-vb-prefix]]
# [[:Template:Ja-vb-1-む]]
# [[:Template:ManchuUnicode]]
# [[:Template:满文及转写]]
# [[:Template:閩南參/han]]
# [[:Template:閩南參/seng]]
# [[:Template:閩南參/khi]]
# [[:Template:閩南參/loan]]
# [[:Template:閩南參/cha]]
# [[:Template:閩南參/thai]]
# [[:Template:閩南參/ko]]
# [[:Template:閩南參/hong]]
# [[:Template:閩南參/ho]]
# [[:Template:閩南參/bo]]
# [[:Template:閩南參]]
# [[:Template:相似白話字]]
# [[:Template:Ja-vb-1-つ]]
# [[:Template:Ja-vb-2]]
# [[:Template:Ja-vb]]
# [[:Template:Blocksnotice]]
# [[:Template:Chem/initialA]]
# [[:Template:Dummy ref]]
# [[:Template:Documentation subpage]]
# [[:Template:错字重定向]]
# [[:Template:-n p-]]
# [[:Template:汉语词汇專題]]
# [[:Template:Ms-cat]]
# [[:Template:Es-aj]]
# [[:Template:Nl-cat]]
# [[:Template:Es-cat]]
# [[:Template:Es-nm]]
# [[:Template:Ja-cat]]
# [[:Template:粵台]]
# [[:Template:粵台/轉]]
# [[:Template:He-aj]]
# [[:Template:台華雙語辭典]]
# [[:Template:Ja-aj-い]]
# [[:Template:Ja-aj-tb]]
# [[:Template:Ar-nm-tb]]
# [[:Template:Ja-vb-1-く]]
# [[:Template:Ko-conj-adj-darata]]
# [[:Template:Quotation]]
# [[:Template:Ja-vb-1-す]]
# [[:Template:No documentation]]
# [[:Template:論述列表]]
# [[:Template:方針列表]]
# [[:Template:User JS-0]]
# [[:Template:User coder-0]]
# [[:Template:Babel field 1]]
# [[:Template:Babel field]]
# [[:Template:Babel field 0]]
# [[:Template:Ja-vb-1-る]]
# [[:Template:Ja-vb-tb]]
# [[:Template:Forcevariant]]
# [[:Template:Novariant]]
# [[:Template:Citation/core]]
# [[:Template:Ton]]
# [[:Template:粵新]]
# [[:Template:藏轉/表]]
# [[:Template:藏轉/濾]]
# [[:Template:藏轉/碼]]
# [[:Template:藏轉/音節]]
# [[:Template:藏轉]]
# [[:Template:El-l]]
# [[:Template:Link/en]]
# [[:Template:Fa-gen-c]]
# [[:Template:Phli]]
# [[:Template:中國大陸]]
# [[:Template:日字見]]
# [[:Template:土庫曼語]]
# [[:Template:越漢詞]]
# [[:Template:朝漢詞]]
# [[:Template:粵音/ø]]
# [[:Template:漢詞新]]
# [[:Template:國際音標/判]]
# [[:Template:Ar-root-entry]]
# [[:Template:阿塞拜疆语]]
# [[:Template:例注]]
# [[:Template:奧斯曼土耳其語]]
# [[:Template:LR]]
# [[:Template:圖2]]
# [[:Template:여씨-존]]
# [[:Template:閩南]]
# [[:Template:첩해신어(원간본)]]
htgkf9avtsgjyeij0ovxlv0kqrlmnjt
Module:Inflection utilities
828
1416279
9938445
9504755
2026-10-04T18:09:15Z
TongcyDai
53191
同步 enwikt(rev 92734074):form object metadata 處理、scrape_inflection()、移除舊式註腳符號支援;本地化不變
9938445
Scribunto
text/plain
local export = {}
local m_links = require("Module:links")
local m_str_utils = require("Module:string utilities")
local m_table = require("Module:table")
local put = require("Module:parse utilities")
local headword_data_module = "Module:headword/data"
local script_utilities_module = "Module:script utilities"
local pages_module = "Module:pages"
local template_parser_module = "Module:template parser"
local is_callable = require("Module:fun").is_callable
local split = m_str_utils.split
local ufind = m_str_utils.find
local usub = m_str_utils.sub
local ucfirst = m_str_utils.ucfirst
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
local dump = mw.dumpObject
local new_title = mw.title.new
local insert = table.insert
local concat = table.concat
local insert_if_not = m_table.insertIfNot
local shallow_copy = m_table.shallowCopy
local function track(page)
require("Module:debug/track")("inflection utilities/" .. page)
return true
end
local footnote_abbrevs = {
["a"] = "古舊",
["c"] = "口語",
["d"] = "方言",
["fp"] = "民歌",
["l"] = "書面",
["lc"] = "低級口語",
["p"] = "詩歌化",
["pej"] = "貶義",
["r"] = "罕用",
}
--[==[ intro:
The following code is used in building up the inflection of terms in inflected languages, where a term can potentially
consist of several inflected words, each surrounded by fixed text, and a given slot (e.g. accusative singular) of a
given word can potentially consist of multiple possible inflected forms. In addition, each form may be associated with
a manual transliteration and/or a list of footnotes (or qualifiers, in the case of headword lines). The following
terminology is helpful to understand:
* A '''term''' is a word or multiword expression that can be inflected. A multiword term may in turn consist of several
single-word inflected terms with surrounding fixed text. A term belongs to a particular '''part of speech''' (e.g.
noun, verb, adjective, etc.).
* An '''inflection dimension''' is a particular dimension over which a term may be inflected, such as case, number,
gender, person, tense, mood, voice, aspect, etc.
* The '''lemma''' is the particular form of a term under which the term is entered into a dictionary. For example, for
verbs, it is most commonly the infinitive, but this differs for some languages: e.g. Latin, Greek and Bulgarian use
the first-person singular present indicative (active voice in the case of Latin and Greek); Sanskrit and Macedonian
use the third-person singular present indicative (active voice in the case of Sanskrit); Hebrew and Arabic use the
third-person singular masculine past (aka "perfect"); etc. For nouns, the lemma form is most commonly the nominative
singular, but e.g. for Old French it is the objective singular and for Sanskrit it is the root.
* A '''slot''' is a particular combination of inflection dimensions. An example might be "accusative plural" for a noun,
or "first-person singular present indicative" for a verb. Slots are named in a language-specific fashion. For
example, the slot "accusative plural" might have a name `accpl`, while "first-person singular present indicative"
might be variously named `pres1s`, `pres_ind_1_sg`, etc. Each slot is filled with zero or more '''forms'''.
* A '''form''' is a particular inflection of a slot for a particular term. Note that a given slot may (and often does)
have more than one associated form; these different forms are termed '''variants'''. An example is
{{m+|de|Bug||bow (of a ship)}}, which has two genitive singular forms ''Buges'' and ''Bugs''; two plural forms in all
cases, e.g. nominative plural ''Buge'' and ''Büge''; and two dative singular forms ''Bug'' and rare/archaic ''Buge''.
The form variants for a given slot are ordered, and generally should have the more common and/or preferred variants
first, along with rare, archaic or obsolete variants last (if they are included at all).
* Forms are described using '''form objects''', which are Lua objects taking the form
`{form="``form_value``", translit="``manual_translit``", footnotes={"``footnote``", "``footnote``", ...}}`.
(Additional '''metadata''' may be present in a form object, although the support for preserving such metadata when
transformations are applied to form objects isn't yet complete.) ``form_value`` is a '''form value''' specifying the
value of the form itself in the term's script. ``manual_translit`` specifies optional manual transliteration for the
form, in case (a) the form value is in a different script; and (b) either the form's automatic transliteration is
incorrect and needs to be overridden, or the language of the term has no automatic transliteration (e.g. in the case
of Persian and Hebrew). ``footnote`` is a footnote to be attached to the form in question, and should be e.g.
{"[archaic]"} or {"[only in the meaning 'to succeed (an officeholder)']"}, i.e. the string must be surrounded by
brackets and should begin with a lowercase letter and not end in a period/full stop. When such footnotes are converted
to actual footnotes in a table of inflected forms, the brackets will be removed, the first letter will be capitalized
and a period/full stop will be added to the end. (However, when such footnotes are used as qualifiers in headword
lines, only the brackets will be removed, with no capitalization or final period.) Note that only ``form_value`` is
mandatory.
* A list of zero or more form objects is termed a '''form object list''', or usually just a '''form list'''. Such lists
are ordered and go into form tables (see below).
* A '''form table''' is a Lua table (i.e. a dictionary) describing all the possible inflections of a given term. The
keys in such a table are slots (strings) and the values are form lists. '''NOTE:''' All inflection code assumes and
maintains the invariant that no two slots, and no two forms in a single slot, share the same form object (by
reference, i.e. the Lua object describing a form object should never be shared in two places). This allows for safely
side-effecting form objects in certain sorts of operations. This same invariant necessarily applies to the Lua list
objects containing the form objects, but does '''NOT''' apply to metadata inside of form objects. In particular, a
list of footnotes may well be shared among different form objects. This means it is '''NOT''' safe to side-effect
such lists, and in fact no code in this module that manipulates footnote lists will ever side-effect such lists; they
are treated as immutable.
* Some functions, to save memory, accept and work with abbreviated forms of form objects and/or form lists.
Specifically, an '''abbreviated form object''' is either a form object or a string, the latter corresponding to a form
object whose form value is the string and all other properties are nil. Similarly, an '''abbreviated form list''' is
either a single abbreviated form object or a list of such objects, i.e. any of a string, form object or list of
strings and/or form objects. Functions that do not accept such abbreviated structures may be said to insist on being
passed form objects in '''full form''', or form lists in '''full list form'''.
* Each slot is associated with an '''accelerator tag set''', which is a list of inflection tags that are used when
generating an accelerator entry for the forms in the slot (see [[WT:ACCEL]]). For example, the first singular present
indicative of a verb might have slot name `pres_1sg` and corresponding accelerator tag set `1|s|pres|ind`. As shown,
the accelerator tag set is a string consisting of inflection tags (as used in {{tl|inflection of}}) separated by `|`.
Despite the terminology ''tag set'', the tags in a tag set are ordered, although the same tag should never occur
twice.
* Some inflected terms are '''multiword''', i.e. they consist of multiple '''words''', where each word is generally
separated by spaces or sometimes hyphens. In such a term, some of the words inflect, while others remain fixed. Words
that inflect are termed '''inflecting words''' (or more correctly '''inflecting parts''', since in some circumstances,
parts of a word can inflect). The '''fixed text''' is all the parts of a multiword term that do not inflect.
* The descriptor that describes how a given term inflects is called an '''inflection spec''', and consists of the lemma
form of the term itself, annotated with an '''angle bracket spec''' after each inflecting word. As the name implies,
an angle bracket spec is surrounded by angle brackets (`<...>`). A simple example is {{m+|de|Feder||feather}}, whose
inflection spec looks like `Feder<f>`, where `f` specifies the feminine gender. In this case, although there are
several properties that could be specified between angle brackets, all except the gender are optional and have been
left out, indicating that defaults should be used. Another example is {{m+|de|Baske|Basque person}}, whose inflection
spec looks like `Baske<m.weak>`, where `m` specifies the masculine gender and `weak` specifies the weak inflection.
Note that individual components of an angle bracket spec like `m` and `weak` are termed '''indicators''' and are
separated by periods/full stops. A slightly more complex example is {{m+|de|Zeitgeist||zeitgeist}}, whose inflection
spec looks like `Zeitgeist<m,es:s,er>` and which specifies three things in a single '''compound indicator''': `m` (the
masculine gender); `es:s` (the genitive singular, which can end in either ''-es'' or ''-s''); and `er` (the
nomininative plural, which ends in ''-er'').
* If there are several inflecting words in a term, each one will be followed by its own angle bracket spec. An example
is {{m+|de|schwarzes Loch||black hole}}, whose inflection spec looks like `schwarzes<+> Loch<n,es:s,^er>`. Here,
the adjective ''schwarzes'' (the nominative neuter singular of {{m|de|schwarz||black}}) is followed by the angle
bracket spec `<+>` specifying that it inflects as an adjective, and the noun ''Loch'' has the angle bracket spec
`<n,es:s,^er>`, indicating (similarly to the above example) that it is neuter, has a genitive singular in either
''-es'' or ''-s'', and has a nominative plural in ''-er'' with umlaut, hence ''Löcher'' (the `^` specifies that the
form requires umlaut).
* Sometimes a given term has multiple ways of inflecting that differ in ways that can't be specified using a single
angle bracket spec. This is supported using '''alternants''', which are specified using double parentheses. (This is
so that terms that themselves contain parentheses can be specified without interference.) An example is
{{m+|uk|русин||Rusyn}}, which can be stressed either as ''ру́син'' (stress on the first syllable and following accent
paradigm ''a'', hence genitive singular ''ру́сина'') or ''руси́н'' (stress on the second syllable and following accent
paradigm ''b'', hence genitive singular ''русина́''; note how the stress moves onto the ending, in accordance with the
accent paradigm). This is specified using `((ру́син<pr>,руси́н<b.pr>))`, i.e. each separate the alternants with a comma
and surround them with double parentheses. (Here, `pr` means that the terms belong to the personal animacy class, and
`b` specifies the accent paradigm; paradigm ''a'' is the default and hence is omitted.)
* Note that occasionally, parts of a single space-delimited word can inflect separately. An example is
{{m+|la|rōsmarīnus||rosemary}}, which is a compound of {{m+|la|rōs||dew}} and {{m|la|marīnus||marine, of the sea}}.
In this compound, both parts of the compound can inflect separately; hence genitive singular ''rōrismarīnī'',
accusative singular ''rōremmarīnum'', etc. Alternatively, only the second part inflects; hence genitive singular
''rōsmarīnī'', accusative singular ''rōsmarīnum'', etc. This is specified as
`((rōs/rōr<3.M>marīnus<2>,rōsmarīnus<2>))`. Here, the term {{m|la|rōs}} by itself would have inflection spec
`rōs/rōr<3.M>` (indicating that it is third declension masculine with a non-nominative-singular stem ''rōr-'') and
the term {{m|la|marīnus}} would have inflection spec `<2>` (indicating that it is second declension; the masculine
gender is inferred from the ''-us'' ending). When combined in a single inflection spec, the doubly-inflecting
alternant is written `rōs/rōr<3.M>marīnus<2>`, with each inflecting part followed by its corresponding angle bracket
spec, and the singly-inflecting alternant is written `rōsmarīnus<2>`. As this example shows, the two alternants
need not correspond in how many inflecting parts there are. It should also be noted that fixed text can surround
an alternant and it is even possible to supply multiple alternants in a single inflection spec (e.g. if the term
has two words in it and each word requires an alternant to inflect).
* The result of parsing a single angle bracket spec is stored into a '''word spec'''. The structure of a word spec is
fairly arbitrary and is determined by the user-written `parse_indicator_spec` function, but always contains a form
table under the `forms` key that is populated during inflection (see below). A parameter or local variable that holds
a word spec is conventionally named `base` for historical reasons. Word specs are grouped together into a structure
termed a '''multiword spec''', which describes one or more word specs along with the fixed text in between and around
the inflected words. Multiword specs are in turn grouped into structures termed '''alternant specs''', indicating
the distinct alternants and the words in each alternant. Finally, multiword specs and alternant specs are grouped into
an '''alternant multiword spec''', which is the top-level object describing an inflection spec. Each of these
different specs has a form table in it stored in the `forms` key that is populated during the inflection process and
contains the form objects that specify the inflections of this part of the full multiword term. (It should be noted
that the term '''spec''' is overloaded to mean two different things: the user-specified descriptor that specifies the
lemma form of the term and associated inflection, and the associated internal Lua object that encapsulates all
information derived from the descriptor, along with later-generated information on how to inflect the term(s) being
described.)
* Among these various "spec" structures, the two most important are the top-level alternant multiword spec and the
bottom-level word spec or "base". You will rarely find it necessary to manipulate the intermediate structures or
concern yourself with the details of their formation.
* The term ''form'' is unfortunately overloaded in various modules to mean several things. In particular, for
historical reasons, the form value inside of a form object is stored using the key `form`; the form table inside of an
alternant multiword spec, a word spec (or "base") and the intermediate structures is stored using the key `forms`; and
the accelerator tag set is internally referred to in [[WT:ACCEL]] as a "form". To avoid confusion, the following
conventions are followed in code in this module, and should be followed for code in invoking modules as well:
*# Functions that accept form objects often name the relevant parameter `form` (if a single form object is required) or
`forms` (if a list of form objects, aka form list, is required).
*# Functions that accept abbreviated form objects should (but don't always) indicate this by naming the parameter
`abform` (for a single abbreviated form object) or `abforms` (for an abbreviated form list).
*# Functions that accept a form value (the native-script string portion of a form object, stored for historical reasons
in the `.form` property) should '''not''' call such a parameter `form`, but instead use something that makes clear
that a form value is required, such as `formval` or sometimes just `val`.
*# Similarly, functions that accept a form table should '''not''' call such a parameter `forms` (although for historical
reasons the form table in an alternant multiword spec is stored in the field `forms`). Instead, use `formtable` or
`formtab`, or similar name that makes clear that the value is a form table (i.e. a map from slot to form list).
====Footnote handling====
Each form can have one or more attached footnotes. The form of a footnote as specified by the user and stored in form
values is e.g. {"[archaic]"} or {"[only in the meaning 'to succeed (an officeholder)']"}, i.e. the string must be
surrounded by brackets and should begin with a lowercase letter and not end in a period/full stop. When such footnotes
are converted to actual footnotes in a table of inflected forms, the brackets will be removed, the first letter will be
capitalized and a period/full stop will be added to the end. (However, when such footnotes are used as qualifiers in
headword lines, only the brackets will be removed, with no capitalization or final period.)
When merging two forms into one, such as when concatenating the form objects of two inflected words in a multiword term
or deduplicating form objects sharing the same form value during `show_forms()`, the footnotes are generally combined as
well. This means that if one form object has footnotes and the other doesn't, the resulting form object inherits the
footnotes of the object that has them, and if both form objects have footnotes, the resulting form object gets all
footnotes from both source form objects, with duplicates removed. However, when inserting a form into a form table slot
that already has a form whose form value and translit are identical to the new form, the behavior is different. In
under normal circumstances the footnotes of the new form are ''not'' incorporated into those of the existing form (if
any), but are simply dropped. To understand why this makes sense, consider a term that has two possible forms of its
lemma (e.g. two forms differing in stress or in vowel length), where the second form is archaic, rare, colloquial or the
like, and has an attached footnote indicating this. An example of this is {{m+|ru|кожух||sheepskin coat; bullet shell}},
where the form ''кожу́х'' with accent pattern ''b'' is more common overall but the form ''ко́жух'' with accent pattern
''c(1)'' is more common among professionals. On first glance, this could be indicated using
`((кожу́х<b>,ко́жух<c(1).[professional usage only]>))`. But some forms of these two declensions are the same (in
particular, the genitive, dative, instrumental and prepositional plural). If for these slots, the footnotes of the
duplicate forms were combined (i.e. the footnotes of the second declension pattern were added to the already-existing
form taken from the first declension pattern), these forms would wrongly be labeled as ''professional usage only''.
For this reason, it makes more sense to drop the footnotes of the second form when deduplicating.
The same sort of behavior makes sense when a single lemma can have two different declensions, the second of which
requires a footnote and where some forms in the two declensions are shared. An example of this is
{{m+|uk|окови́та||strong, high-quality liquor}}, which can be inflected adjectivally or (rarely) nominally. This would be
indicated as `((окови́та<sg.+>,окови́та<sg.[rare]>))` where the `+` indicates adjectival declension and the `sg` indicates
that this term only exists in the singular. Here, the two declensions differ in the genitive, dative/locative and
vocative (respectively, adjectival ''окови́тої'', ''окови́тій'', ''окови́та'' vs. nominal ''окови́ти'', ''окови́ті'',
''окови́то'') but are the same in the accusative (''окови́ту'') and instrumental (''окови́тою''). Again, dropping the
footnotes of the second form when deduplicating is correct and including them would be wrong.
This behavior can be changed by attaching a '''footnote modifier''' to the footnote associated the second form. A
footnote modifier is a symbol attached to the beginning of a footnote, directly following the opening bracket. The
following modifiers are currently recognized:
* `!` or `+`: If placed on a footnote of the second form, combine that footnote with those of the first form (if any)
rather than dropping it.
* `*`: If placed on a footnote of the first form, drop that footnote when merging a second form with any footnotes.
An example where the `*` modifier makes sense is a modification of the above example with {{m+|ru|кожух}}. If we
notated it as `((кожу́х<b.[more common among laymen]>,ко́жух<c(1).[more common among professionals]>))`, the shared forms
would wrongly have the footnote ''more common among laymen'' when in fact they are the only possible forms. If instead
we used `((кожу́х<b.[*more common among laymen]>,ко́жух<c(1).[more common among professionals]>))`, the shared forms
would correctly have no footnote.
]==]
local function extract_footnote_modifiers(footnote)
local footnote_mods, footnote_without_mods = footnote:match("^%[([!*+]?)(.*)%]$")
if not footnote_mods then
error("Saw footnote '" .. footnote .. "' not surrounded by brackets")
end
return footnote_mods, footnote_without_mods
end
function export.deduplicate_footnotes(existing, new)
if not new then
return existing
end
-- Check to see if there are existing footnotes with *; if so, remove them.
if existing then
local any_footnotes_with_asterisk = false
for _, footnote in ipairs(existing) do
local footnote_mods, _ = extract_footnote_modifiers(footnote)
if footnote_mods:find("%*") then
any_footnotes_with_asterisk = true
break
end
end
if any_footnotes_with_asterisk then
local filtered_footnotes = {}
for _, footnote in ipairs(existing) do
local footnote_mods, _ = extract_footnote_modifiers(footnote)
if not footnote_mods:find("%*") then
insert(filtered_footnotes, footnote)
end
end
if #filtered_footnotes > 0 then
existing = filtered_footnotes
else
existing = nil
end
end
end
-- The behavior here has changed; track cases where the old behavior might
-- be needed by adding ! to the footnote.
track("combining-footnotes")
local any_footnotes_with_bang = false
for _, footnote in ipairs(new) do
local footnote_mods, _ = extract_footnote_modifiers(footnote)
if footnote_mods:find("[!+]") then
any_footnotes_with_bang = true
break
end
end
if any_footnotes_with_bang then
if not existing then
existing = {}
else
existing = shallow_copy(existing)
end
for _, footnote in ipairs(new) do
local already_seen = false
local footnote_mods, footnote_without_mods = extract_footnote_modifiers(footnote)
if footnote_mods:find("[!+]") then
for _, existing_footnote in ipairs(existing) do
local _, existing_footnote_without_mods = extract_footnote_modifiers(existing_footnote)
if existing_footnote_without_mods == footnote_without_mods then
already_seen = true
break
end
end
if not already_seen then
insert(existing, footnote)
end
end
end
end
return existing
end
--[==[
Combine two sets of footnotes. If either is {nil}, just return the other, and if both are {nil}, return {nil}.
]==]
function export.combine_footnotes(notes1, notes2)
if not notes1 and not notes2 then
return nil
end
if not notes1 then
return notes2
end
if not notes2 then
return notes1
end
local combined = shallow_copy(notes1)
for _, note in ipairs(notes2) do
insert_if_not(combined, note)
end
return combined
end
function export.combine_formobj_lists(list1, list2, metadata)
if not list1 and not list2 then
return nil
end
if not list1 then
return list2
end
if not list2 then
return list1
end
return export.insert_formobjs_into_list {
existing_list = list1,
formobjs = list2,
metadata = metadata,
}
end
function export.looks_like_formobj_list(list)
if list == nil then
return true
end
if type(list) ~= "table" then
return false
end
for k, v in pairs(list) do
if type(k) ~= "number" then
return false
end
if type(v) ~= "table" then
return false
end
if type(v.form) ~= "string" then
return false
end
end
return true
end
function export.looks_like_boolean(object)
return object == nil or type(object) == "boolean"
end
function export.default_fallback_deduplicate_handler(_prop, existing, _new)
return existing, true
end
function export.default_fallback_combine_handler(_prop, existing, new)
if export.looks_like_formobj_list(existing) and export.looks_like_formobj_list(new) then
return export.combine_formobj_lists(existing, new), true
end
if export.looks_like_boolean(existing) and export.looks_like_boolean(new) then
return existing or new, true
end
if existing ~= nil then
return existing, true
end
return new, true
end
--[=[
Default handler functions for working with form object metadata. The user-specific metadata structure has the same
format. The key is a specific metadata field and the value is an object with fields specifying handlers and other
properties of the metadata. The recognized per-metadata fields are:
* `deduplicate`: Handler to deduplicate form objects when inserting a form object into an existing list (e.g. in a
form table) and two form objects have the same form value and translit. It is passed two values, respectively the
metadata property from the existing list object and the new object being inserted into the list. The default and
most common behavior here is to preserve the property from the existing object, even if {nil}, and discard the value
from the new object. This is what is done in footnotes, for example, unless the existing footnote is preceded by a *
(meaning to discard both values) or the new one is preceded by a + (meaning to preserve and combine both values,
which is not currrently used anywhere and may not make sense). This ensures, for example, that if a noun can be
declined according to two paradigms and the second one is rare, the {"rare"} footnote on the second one gets
discarded whenever the two paradigms coincide.
* `combine`: Handler to combine form objects when deriving a new object from an existing one. This is conceptually very
different from deduplication. In this situation, the existing and new objects may or may not match in form value and
translit, and since the new form object is a derivative of the existing one, it should combine the metadata
properties of both, preserving as much information as possible and not discarding anything. Combining footnotes, for
example, means taking the footnotes from either one, and if both exising and new objects have footnotes, merging
the two lists and removing duplicates. (The only exception is if a new footnote is preceded by !, which causes
existing footnotes to be discarded. This is termed an ''override'', and allows e.g. for one form of a paradigm to
override the footnote associated with the paradigm as a whole, as for example if a paradigm is archaic except for
one of the forms.) The default `combine` strategy is as follows:
*# If both the existing and new objects are {nil} or "look like" form object lists (i.e. are tables where all keys are
numeric and all values are tables with a `form` key whose value is a string), combine them using
`insert_formobjs_into_list`.
*# If both the existing and new objects are {nil} or boolean, combine them using `A or B`.
*# Otherwise, take the existing value if it is non-{nil}, and if not, take the new value. Note that this means that the
existing value will be kept even if it is {false} (which would not happen if the new value were {true}); this allows
for metadata where {false} is a special signal and keys are otherwise strings or objects. However, in general if the
metadata objects are not boolean and not form object lists, they will need a custom combine handler.
Some keys in the metadata handler object are special:
* `*`: This provides "fallback" handlers. These handlers are called for all metadata fields without dedicated handlers.
These handlers work similar to normal `deduplicate` and `combine` handlers except (a) they are passed three values,
first the metadata property name and then the existing and new values; (b) they should return two values, first the
appropriate merged value and second a boolean indicating whether the property was handled. (If {false} is returned,
the first value is ignored and should be {nil}.) Dedicated and fallback handlers are called in the following order:
(1) dedicated user-specified handlers; (2) dedicated default handlers; (3) fallback user-specified handlers;
(4) fallback default handlers. This ensures that standard dedicated default handlers (particularly for footnotes)
get run prior to the user-specified fallback handlers; otherwise, practically all such fallback handlers will need
to check for and ignore footnotes.
* `_side_effect_formobjs`: If true, existing form objects can be side-effected during deduplication or combining. This
requires that two logically distinct form objects in a given form table never have the same reference. (Generally
two such objects should be in different slots. If two references to the same object occur in different positions
in the list of form objects under a single slot, it indicates an internal error in the deduplication mechanism.)
This means that user code that generates form objects for insertion into a table must take care never to reuse
existing form objects (e.g. when setting one slot equal to another slot), but must always shallow-copy the form
objects. This is not the default for this reason, and in fact it's not clear that implementing this results in any
efficiency gain (it may actually be the reverse, since form objects have to be copied that could otherwise be
shared).
]=]
local default_metadata_handlers = {
footnotes = {
deduplicate = export.deduplicate_footnotes,
combine = export.combine_footnotes,
},
["*"] = {
deduplicate = export.default_fallback_deduplicate_handler,
combine = export.default_fallback_combine_handler,
}
}
local function is_non_metadata_property(k)
return k == "form" or k == "translit"
end
-- Call the appropriate handler for merging the metadata for property `prop` with values `existing_val` and `new_val`,
-- using method `method` (either "deduplicate" or "combine"). `metadata` is the structure describing all properties of
-- all metadata in a given form object. This looks for, in order:
-- 1. A handler for the specific property in `metadata`.
-- 2. A default handler for the specific property.
-- 3. A fallback handler in `metadata`.
-- 4. A default fallback handler.
-- Return the new value.
local function call_merge_metadata_handler(metadata, prop, method, existing_val, new_val)
local function try_specific(handler_struct, prop)
if handler_struct and handler_struct[prop] and handler_struct[prop][method] then
return (handler_struct[prop][method](existing_val, new_val)), true
end
return nil, false
end
local function try_fallback(handler_struct, prop)
if handler_struct and handler_struct["*"] and handler_struct["*"][method] then
-- Two values are returned from the handler, the new value and whether the property was handled.
return handler_struct["*"][method](prop, existing_val, new_val)
end
return nil, false
end
local retval, matched = try_specific(metadata, prop)
if matched then
return retval
end
retval, matched = try_specific(default_metadata_handlers, prop)
if matched then
return retval
end
retval, matched = try_fallback(metadata, prop)
if matched then
return retval
end
retval, matched = try_fallback(default_metadata_handlers, prop)
return retval
end
-- Merge the metadata of two form objects using `method` (either "deduplicate" or "combine"). `metadata` is the
-- structure describing all properties of all metadata in a given form object. Metadata is merged between
-- `existing_formobj` (on the left) and `new_formobj` (on the right), and is normally stored into `existing_formobj`,
-- but will be stored into `new_formobj` if `merge_into_new` is given. If `metadata` allows for side-effecting, the
-- changes will be made by side-effecting the object to be changed; otherwise, a shallow copy of the object will be
-- made if necessary (only if the new value is not equal to the existing value). Returns two values, the changed form
-- object (which may be the same as one of the passed-in objects) and a flag which is true if a copy was made of a form
-- object.
local function merge_metadata(metadata, method, existing_formobj, new_formobj, merge_into_new)
local props_of_either = nil
for k, _ in pairs(existing_formobj) do
if not is_non_metadata_property(k) then
props_of_either = props_of_either or {}
props_of_either[k] = true
end
end
for k, _ in pairs(new_formobj) do
if not is_non_metadata_property(k) then
props_of_either = props_of_either or {}
props_of_either[k] = true
end
end
local store_object = merge_into_new and new_formobj or existing_formobj
if props_of_either then
if metadata._side_effect_formobjs then
for k, _ in pairs(props_of_either) do
store_object[k] = call_merge_metadata_handler(metadata, k, method, existing_formobj[k], new_formobj[k])
end
else
local need_to_copy = false
local new_values = {}
for k, _ in pairs(props_of_either) do
local newval = call_merge_metadata_handler(metadata, k, method, existing_formobj[k], new_formobj[k])
if newval ~= store_object[k] and not m_table.deepEquals(newval, store_object[k]) then
need_to_copy = true
end
new_values[k] = newval
end
if need_to_copy then
store_object = shallow_copy(store_object)
for k, _ in pairs(props_of_either) do
store_object[k] = new_values[k]
end
end
return store_object, need_to_copy
end
else
return store_object, false
end
end
--[==[
Insert a form object (see above) into a list of such objects. If the form is already present (i.e. both the form
value and translit, if any, match), the footnotes of the existing and new form might be combined (specifically,
footnotes in the new form beginning with `+` will be combined).
]==]
function export.insert_formobj_into_list(data)
local existing_list = data.existing_list
local formobj = data.formobj
-- Don't do anything if the form object is nil.
if not formobj then
return existing_list
end
for i, existing_formobj in ipairs(existing_list) do
if existing_formobj.form == formobj.form and existing_formobj.translit == formobj.translit then
local new_existing, copied = merge_metadata(data.metadata, "deduplicate", existing_formobj, formobj)
if copied then
local list_copy = shallow_copy(existing_list)
list_copy[i] = new_existing
return list_copy
end
return existing_list
end
end
-- Form not found.
insert(existing_list, formobj)
return existing_list
end
--[==[
Insert a list of form objects (see above) into an existing list of such objects. ``forms`` can be {nil},
in which case nothing happens. This is equivalent to calling `insert_form_into_list` for each form object.
]==]
function export.insert_formobjs_into_list(data)
local existing_list = data.existing_list
local formobjs = data.formobjs
if not formobjs then
return existing_list
end
for _, formobj in ipairs(formobjs) do
existing_list = export.insert_formobj_into_list {
existing_list = existing_list,
formobj = formobj,
metadata = data.metadata,
}
end
return existing_list
end
--[==[
Insert a form object (see above) into the given slot in the given form table. On input, `data` is an object with the
following fields:
* `formtable`: A form table (see above).
* `slot`: A slot in the form table, i.e. a key whose value is a form object list.
* `formobj`: A form object to be inserted into the slot. Can be {nil}, in which case nothing happens.
* `metadata`: The metadata structure describing how to combine user-specified metadata. Can be {nil} if there is no
user-specified metadata or the default fallback metadata handlers are sufficient (which is usually the case if the
all user-specified metadata is boolean).
]==]
function export.insert_formobj_into_form_table(data)
local formtable, slot, formobj, metadata = data.formtable, data.slot, data.formobj, data.metadata
-- Don't do anything if the form object is nil.
if not formobj then
return
end
if not formtable[slot] then
formtable[slot] = {}
end
formtable[slot] = export.insert_formobj_into_list {
existing_list = formtable[slot],
formobj = formobj,
metadata = metadata,
}
end
--[==[
Insert a list of form objects (see above) into the given slot in the given form table. On input, `data` is an object
with the following fields:
* `formtable`: A form table (see above).
* `slot`: A slot in the form table, i.e. a key whose value is a form object list.
* `formobjs`: A list of form objects (in "full list" form) to be inserted into the slot. Can be {nil} or an empty list,
in which case nothing happens.
* `metadata`: The metadata structure describing how to combine user-specified metadata. Can be {nil} if there is no
user-specified metadata or the default fallback metadata handlers are sufficient (which is usually the case if the
all user-specified metadata is boolean).
]==]
function export.insert_formobjs_into_form_table(data)
local formtable, slot, formobjs, metadata = data.formtable, data.slot, data.formobjs, data.metadata
if not formobjs or not formobjs[1] then
return
end
if not formtable[slot] then
formtable[slot] = {}
end
formtable[slot] = export.insert_formobjs_into_list {
existing_list = formtable[slot],
formobjs = formobjs,
metadata = metadata,
}
end
--[==[
Flatmap a function over a list of form objects and return the (potentially flattened) results. Flatmapping is like
a normal mapping operation except that the function being called may return a list, and all values returned are
concatenated into a single flattened list. On input, `data` is an object with the following fields:
* `formobjs`: A list of form objects to map over, in "full list form" (see above).
* `fn`: The function to map over each form object. If a form object's value is {"?"}, the form object is preserved on
output and the function is not called. Otherwise, the function is called with one argument, the form object, and
should {nil} (equivalent to returning an empty list) or an abbreviated form list (i.e. anything that is convertible
into a full list form, such as a single form value, a list of form values, a form object or a list of form objects).
For each form object in the return value, the metadata of the object mapped over is combined with the metadata of
the returned object, unless `no_combine_metadata` is given. The resulting form objects from all function calls are
flattened into a list and deduplicated in the same fashion as `insert_formobj_into_list()` (in case two different
form objects map to the same form value).
* `metadata`: The metadata structure describing how to combine user-specified metadata. Can be {nil} if there is no
user-specified metadata or the default fallback metadata handlers are sufficient (which is usually the case if the
all user-specified metadata is boolean).
* `no_combine_metadata`: See `fn` above. If given, metadata from objects mapped over will not be combined into the
returned objects.
NOTE: There is no `map_formobjs` function provided because `flatmap_formobjs` will correctly handle functions that
return single form objects.
]==]
function export.flatmap_formobjs(data)
local formobjs, fn, metadata, no_combine_metadata =
data.formobjs, data.fn, data.metadata, data.no_combine_metadata
if not formobjs then
return nil
end
local retval = {}
for _, formobj in ipairs(formobjs) do
local funret
if formobj.form == "?" then
if metadata and metadata._side_effect_formobjs then
funret = shallow_copy(formobj)
else
funret = formobj
end
else
funret = fn(formobj)
end
if funret then
funret = export.convert_to_full_list_form(funret)
for _, fr in ipairs(funret) do
if not no_combine_metadata then
fr = merge_metadata(metadata, "combine", formobj, fr, "merge_into_new")
end
retval = export.insert_formobj_into_list {
existing_list = retval,
formobj = fr,
metadata = metadata,
}
end
end
end
return retval
end
--[==[
Insert a form object (see above) into a list of such objects. If the form is already present (i.e. both the form
value and translit, if any, match), the footnotes of the existing and new form might be combined (specifically,
footnotes in the new form beginning with `!` will be combined).
]==]
function export.insert_form_into_list(list, form)
-- Don't do anything if the form object or the form inside it is nil. This simplifies
-- form insertion in the presence of inflection generating functions that may return nil,
-- such as generate_noun_vocative() and generate_noun_count_form().
if not form or not form.form then
return
end
for _, listform in ipairs(list) do
if listform.form == form.form and listform.translit == form.translit then
listform.footnotes = export.deduplicate_footnotes(listform.footnotes, form.footnotes)
return
end
end
-- Form not found.
insert(list, form)
end
--[==[
Insert a list of form objects (see above) into an existing list of such objects. ``forms`` can be {nil},
in which case nothing happens. This is equivalent to calling `insert_form_into_list` for each form object.
]==]
function export.insert_forms_into_list(list, forms)
if not forms then
return
end
for _, form in ipairs(forms) do
export.insert_form_into_list(list, form)
end
end
--[==[
Insert a form object (see above) into the given slot in the given form table. ``form`` can be {nil}, in which case
nothing happens.
]==]
function export.insert_form(formtable, slot, form)
-- Don't do anything if the form object or the form inside it is nil. This simplifies
-- form insertion in the presence of inflection generating functions that may return nil,
-- such as generate_noun_vocative() and generate_noun_count_form().
if not form or not form.form then
return
end
if not formtable[slot] then
formtable[slot] = {}
end
export.insert_form_into_list(formtable[slot], form)
end
--[==[
Insert a list of form objects (see above) into the given slot in the given form table. ``forms`` can be {nil},
in which case nothing happens.
]==]
function export.insert_forms(formtable, slot, forms)
if not forms then
return
end
for _, form in ipairs(forms) do
export.insert_form(formtable, slot, form)
end
end
--[==[
Identity mapping function.
]==]
function export.identity(formval, translit)
return formval, translit
end
local function form_value_transliterable(formval)
return formval ~= "?" and formval ~= "—"
end
local function call_map_function_str(str, fun)
if str == "?" then
return "?"
end
local newformval, newtranslit = fun(str)
if newtranslit then
return {form=newformval, translit=newtranslit}
else
return newformval
end
end
-- FIXME: This doesn't correctly handle metadata.
local function call_map_function_obj(form, fun)
if form.form == "?" then
return {form = "?", footnotes = form.footnotes}
end
local newformval, newtranslit = fun(form.form, form.translit)
return {form = newformval, translit = newtranslit, footnotes = form.footnotes}
end
--[==[
Map a function over the form values in ``forms`` (a list of form objects in "full list form"; see above). If an
input form value is {"?"}, it is preserved on output and the function is not called. Otherwise, the function is
called with two arguments, the original form and manual translit; if manual translit isn't relevant, it's fine to
declare the function with only one argument. The return value is either a single value (the new form) or two values
(the new form and new manual translit). The footnotes (if any) from the input form objects are preserved on output. Uses
`insert_form_into_list()` to insert the resulting form objects into the returned list in case two different forms map
to the same thing.
FIXME: Expand this to correctly handle metadata, or create a variant that correctly handles metadata.
]==]
function export.map_forms(forms, fun)
if not forms then
return nil
end
local retval = {}
for _, form in ipairs(forms) do
export.insert_form_into_list(retval, call_map_function_obj(form, fun))
end
return retval
end
--[==[
Map a list-returning function over the form values in ``forms`` (a list of form objects in "full list form"; see
above). If an input form value is {"?"}, it is preserved on output and the function is not called. Otherwise, the
function is called with two arguments, the original form and manual translit; if manual translit isn't relevant, it's
fine to declare the function with only one argument. The return value of the function can be {nil} or an abbreviated
form list (i.e. anything that is convertible into a full list form, such as a single form value, a list of form
values, a form object or a list of form objects). For each form object in the return value, the footnotes of that form
object (if any) are combined with any footnotes from the input form object, and the result inserted into the returned
list using `insert_form_into_list()` in case two different forms map to the same thing.
]==]
function export.flatmap_forms(forms, fun)
if not forms then
return nil
end
local retval = {}
for _, form in ipairs(forms) do
local funret = form.form == "?" and form or fun(form.form, form.translit)
if funret then
funret = export.convert_to_general_list_form(funret)
for _, fr in ipairs(funret) do
local newform = {
form = fr.form,
translit = fr.translit,
footnotes = export.combine_footnotes(form.footnotes, fr.footnotes)
}
export.insert_form_into_list(retval, newform)
end
end
end
return retval
end
--[==[
Map a function over the form values in ``abforms`` (an abbreviated form list). If the input form value is {"?"}, it is
preserved on output and the function is not called. If ``first_only`` is given and ``abforms`` is a list, only map over
the first element. Return value is of the same form as ``abforms``, unless ``abforms`` is a string and the function
returns both form value and manual translit (in which case the return value is a form object). The function is called
with two arguments, the original form value and manual translit; if manual translit isn't relevant, it's fine to declare
the function with only one argument. The return value is either a single value (the new form value) or two values (the
new form value and new manual translit). The footnotes (if any) from the input form objects are preserved on output.
FIXME: This function is used only in [[Module:bg-verb]] and should be moved into that module.
]==]
function export.map_form_or_forms(abforms, fun, first_only)
if not abforms then
return nil
elseif type(abforms) == "string" then
return call_map_function_str(abforms, fun)
elseif abforms.form then
return call_map_function_obj(abforms, fun)
else
local retval = {}
for i, abform in ipairs(abforms) do
if first_only then
return export.map_form_or_forms(abform, fun)
end
insert(retval, export.map_form_or_forms(abform, fun))
end
return retval
end
end
--[==[
Expand a given footnote (as specified by the user, including the surrounding brackets) into the form to be inserted
into the final generated table. If ``no_parse_refs`` is not given and the footnote is a reference (of the form
{"[ref:...]"}), parse and return the specified reference(s). Two values are returned, `footnote_string` (the expanded
footnote, or nil if the second value is present) and `references` (a list of objects of the form
`{text = ``text``, name = ``name``, group = ``group``}` if the footnote is a reference and ``no_parse_refs`` is not
given, otherwise {nil}). Unless ``return_raw`` is given, the returned footnote string is capitalized and has a final
period added.
]==]
function export.expand_footnote_or_references(note, return_raw, no_parse_refs)
local _, notetext = extract_footnote_modifiers(note)
if not no_parse_refs and notetext:find("^ref:") then
-- a reference
notetext = notetext:gsub("^ref:", "")
local parsed_refs = require("Module:references").parse_references(notetext)
for i, ref in ipairs(parsed_refs) do
if type(ref) == "string" then
parsed_refs[i] = {text = ref}
end
end
return nil, parsed_refs
end
if footnote_abbrevs[notetext] then
notetext = footnote_abbrevs[notetext]
track("footnote-whole-abbrev")
else
local split_notes = split(notetext, "<(.-)>")
for i, split_note in ipairs(split_notes) do
if i % 2 == 0 then
split_notes[i] = footnote_abbrevs[split_note]
track("footnote-angle-bracket-abbrev")
if not split_notes[i] then
-- Don't error for now, because HTML might be in the footnote.
-- Instead we should switch the syntax here to e.g. <<a>> to avoid
-- conflicting with HTML.
split_notes[i] = "<" .. split_note .. ">"
track("footnote-unrecognized-angle-bracket-abbrev")
--error("Unrecognized footnote abbrev: <" .. split_note .. ">")
else
track("footnote-recognized-angle-bracket-abbrev")
end
end
end
notetext = concat(split_notes)
end
return return_raw and notetext or ucfirst(notetext) .. "。"
end
--[==[
Convert a list of foonotes to qualifiers and references for use in [[Module:headword]] or similar. Returns two values,
a list of qualifiers (possibly {nil}) and a list of reference structures (possibly {nil}), following the structure
defined in [[Module:references]]).
]==]
function export.convert_footnotes_to_qualifiers_and_references(footnotes)
if not footnotes then
return nil
end
local quals, refs
for _, qualifier in ipairs(footnotes) do
local this_footnote, this_refs = export.expand_footnote_or_references(qualifier, "return raw")
if this_refs then
if not refs then
refs = this_refs
else
for _, ref in ipairs(this_refs) do
insert(refs, ref)
end
end
else
if not quals then
quals = {this_footnote}
else
insert(quals, this_footnote)
end
end
end
return quals, refs
end
--[==[
Combine an abbreviated form object (either a string or a table) with additional footnotes, possibly replacing the form
value and/or translit in the process. Normally called in one of two ways:
(1) `combine_form_and_footnotes(``form_obj``, ``addl_footnotes``, ``new_form``, ``new_translit``)` where ``form_obj``
is an existing abbreviated form object; ``addl_footnotes`` is either {nil}, a single string (a footnote) or a list
of footnotes; ``new_formval`` is either {nil} or the new form value to substitute; and ``new_translit`` is either
{nil} or the new translit string to substitute.
(2) `combine_form_and_footnotes(``form_value``, ``footnotes``)`, where ``form_value`` is a form value (a string) and
``footnotes`` is either {nil}, a single string (a footnote) or a list of footnotes.
In either case, a form object is returned, preserving as many properties as possible from any existing form object in
``abform``. Do the minimal amount of work; e.g. if ``abform`` is a form object and ``addl_footnotes``, ``new_formval``
and ``new_translit`` are all {nil}, the same object as passed in is returned. Under no circumstances is the existing
form object side-effected.
'''FIXME:''' This does not correctly preserve metadata.
]==]
function export.combine_form_and_footnotes(abform, addl_footnotes, new_formval, new_translit)
if type(addl_footnotes) == "string" then
addl_footnotes = {addl_footnotes}
end
if not addl_footnotes and not new_formval and not new_translit then
return abform
end
if type(abform) == "string" then
new_formval = new_formval or abform
return {form = new_formval, translit = new_translit, footnotes = addl_footnotes}
end
abform = shallow_copy(abform)
if new_formval then
abform.form = new_formval
end
if new_translit then
abform.translit = new_translit
end
if addl_footnotes then
abform.footnotes = export.combine_footnotes(abform.footnotes, addl_footnotes)
end
return abform
end
--[==[
Convert an abbreviated form list (either a string, form object, or list of either) into full list form.
This function does not side-effect any of the objects passed into ``abforms``, but will return ``abforms``
unchanged if already in full list form.
]==]
function export.convert_to_full_list_form(abforms)
if type(abforms) == "string" then
return {{form = abforms}}
elseif abforms.form then
return {abforms}
else
-- Check if already in full list form and return directly if so.
local must_convert = false
for _, form in ipairs(abforms) do
if type(form) == "string" then
must_convert = true
break
end
end
if not must_convert then
return abforms
end
end
local retval = {}
for _, form in ipairs(abforms) do
if type(form) == "string" then
insert(retval, {form = form})
else
insert(retval, form)
end
end
return retval
end
--[==[
Convert an abbreviated form list (either a string, form object, or list of either) into full list form. If
``footnotes`` is supplied, then for each form in the form list, combine the form's footnotes with ``footnotes``.
This function does not side-effect any of the objects passed into ``abforms``, but will return ``abforms``
unchanged if already in full list form and ``footnotes`` is {nil}.
'''FIXME:''' This does not correctly preserve metadata.
]==]
function export.convert_to_general_list_form(abforms, footnotes)
if type(footnotes) == "string" then
footnotes = {footnotes}
end
if type(abforms) == "string" then
return {{form = abforms, footnotes = footnotes}}
elseif abforms.form then
return {export.combine_form_and_footnotes(abforms, footnotes)}
elseif not footnotes then
-- Check if already in full list form and return directly if so.
local must_convert = false
for _, form in ipairs(abforms) do
if type(form) == "string" then
must_convert = true
break
end
end
if not must_convert then
return abforms
end
end
local retval = {}
for _, form in ipairs(abforms) do
if type(form) == "string" then
insert(retval, {form = form, footnotes = footnotes})
else
insert(retval, export.combine_form_and_footnotes(form, footnotes))
end
end
return retval
end
local function is_table_of_strings(forms)
for k, v in pairs(forms) do
if type(k) ~= "number" or type(v) ~= "string" then
return false
end
end
return true
end
local function lang_or_func_transliterate(func, lang, text)
local retval
if func then
retval = func(text)
else
retval = (lang:transliterate(text))
end
-- FIXME! Hack to work around bug in ...:transliterate(). Remove me as soon as this bug is fixed.
if not retval and (text == " " or text == "-" or text == "-́" or text == "?" or text == "-∅") then
retval = text
end
if not retval then
error(("Unable to transliterate text '%s'"):format(text))
end
return retval
end
--[==[
Combine ``stems`` and ``endings`` and store into slot ``slot`` of form table ``formtable``. Either of ``stems`` and
``endings`` can be {nil} or an abbreviated form list. The combination of a given stem and ending happens using
``combine_stem_ending``, which takes two parameters (stem and ending, each a string) and returns one value (a string).
If manual transliteration is present in either ``stems`` or ``endings``, ``lang`` (a language object or a function of
one argument to transliterate a string) along with ``combine_stem_ending_tr`` (a function for combining manual
transliterations that works much like ``combine_stem_ending``) must be given. ``footnotes``, if specified, is a list of
additional footnotes to attach to the resulting inflections (stem+ending combinations). The resulting inflections are
inserted into the form table using `insert_form()`, in case of duplication.
]==]
function export.add_forms(formtable, slot, stems, endings, combine_stem_ending, lang, combine_stem_ending_tr, footnotes)
if stems == nil or endings == nil then
return
end
local function combine(stem, ending)
if stem == "?" or ending == "?" then
return "?"
end
return combine_stem_ending(stem, ending)
end
local function transliterate(text)
return lang_or_func_transliterate(is_callable(lang) and lang or nil, lang, text)
end
if type(stems) == "string" and type(endings) == "string" then
export.insert_form(formtable, slot, {form = combine(stems, endings), footnotes = footnotes})
elseif type(stems) == "string" and is_table_of_strings(endings) then
for _, ending in ipairs(endings) do
export.insert_form(formtable, slot, {form = combine(stems, ending), footnotes = footnotes})
end
else
stems = export.convert_to_general_list_form(stems)
endings = export.convert_to_general_list_form(endings, footnotes)
for _, stem in ipairs(stems) do
for _, ending in ipairs(endings) do
local new_footnotes = nil
if stem.footnotes and ending.footnotes then
new_footnotes = shallow_copy(stem.footnotes)
for _, footnote in ipairs(ending.footnotes) do
insert_if_not(new_footnotes, footnote)
end
elseif stem.footnotes then
new_footnotes = stem.footnotes
elseif ending.footnotes then
new_footnotes = ending.footnotes
end
local new_form = combine(stem.form, ending.form)
local new_translit
if new_form ~= "?" and (stem.translit or ending.translit) then
if not lang or not combine_stem_ending_tr then
error("Internal error: With manual translit, 'lang' and 'combine_stem_ending_tr' must be passed to 'add_forms'")
end
local stem_tr = stem.translit or transliterate(m_links.remove_links(stem.form))
local ending_tr = ending.translit or transliterate(m_links.remove_links(ending.form))
new_translit = combine_stem_ending_tr(stem_tr, ending_tr)
end
export.insert_form(formtable, slot, {form = new_form, translit = new_translit, footnotes = new_footnotes})
end
end
end
end
--[==[
Combine any number of form components and store into slot ``slot`` of form table ``formtable``. ``components`` is a list of abbreviated form
lists which should be concatenated similarly to how `add_forms()` does it, and stored in ``slot`` along with any footnotes in ``footnotes``.
More specifically:
# If there are no components, nothing happens.
# If there is one component, it is converted to full list form and `insert_forms()` called.
# If there are two components, they are treated as stems and endings respectively and `add_forms()` is called.
# If there are three or more components, they are concatenated left-to-right in the manner of a `reduce()` operation: the first two components
are combined using `add_forms()` and stored into a temporary table, then the next component is combined with the result of the previous
operation, etc. In the last combination, footnotes in `footnotes` are combined in, and the result stored into `formtable`.
This should generally be used when you are likely to have three or more components, as in [[Module:ar-verb]] (prefixes, stems and endings)
and [[Module:de-verb]] (which in some situations has five components combined together). ``combine_stem_ending``, ``lang``,
``combine_stem_ending_tr`` and ``footnotes`` are as in `add_forms()`.
]==]
function export.add_multiple_forms(formtable, slot, components, combine_stem_ending, lang, combine_stem_ending_tr, footnotes)
if #components == 0 then
return
elseif #components == 1 then
local forms = export.convert_to_general_list_form(components[1], footnotes)
export.insert_forms(formtable, slot, forms)
elseif #components == 2 then
local stems = components[1]
local endings = components[2]
export.add_forms(formtable, slot, stems, endings, combine_stem_ending, lang, combine_stem_ending_tr, footnotes)
else
local prev = components[1]
for i=2, #components do
local temptable = {}
export.add_forms(temptable, slot, prev, components[i], combine_stem_ending, lang, combine_stem_ending_tr,
i == #components and footnotes or nil)
prev = temptable[slot]
end
export.insert_forms(formtable, slot, prev)
end
end
local function iterate_slot_list_or_table(props, do_slot)
if props.slot_list then
for _, slot_and_accel_tag_set in ipairs(props.slot_list) do
local slot, accel_tag_set = unpack(slot_and_accel_tag_set)
do_slot(slot, accel_tag_set)
end
else
for slot, accel_tag_set in pairs(props.slot_table) do
do_slot(slot, accel_tag_set)
end
end
end
function export.default_split_bracketed_runs_into_words(bracketed_runs, data)
-- If the text begins with a hyphen, include the hyphen in the set of allowed characters
-- for an inflected segment. This way, e.g. conjugating "-ir" is treated as a regular
-- -ir verb rather than a hyphen + irregular [[ir]].
local is_suffix = (not data or data.text_index == 1) and bracketed_runs[1]:find("^%-")
local split_pattern = is_suffix and " " or "[ %-]"
return put.split_alternating_runs(bracketed_runs, split_pattern, "preserve splitchar")
end
local function props_transliterate(props, text)
return lang_or_func_transliterate(props.transliterate, props.lang, text)
end
local function parse_before_or_post_text(data)
-- NOTE: data.text_index is also used (in `default_split_bracketed_runs_into_words`).
local props, text, segments, lemma_is_last = data.props, data.text, data.segments, data.lemma_is_last
-- Call parse_balanced_segment_run() to keep multiword links together.
local bracketed_runs = put.parse_balanced_segment_run(text, "[", "]")
-- Split normally on space or hyphen (but customizable). Use preserve_splitchar so we know whether the separator was
-- a space or hyphen.
local space_separated_groups
if props.split_bracketed_runs_into_words then
space_separated_groups = props.split_bracketed_runs_into_words(bracketed_runs)
end
if not space_separated_groups then
space_separated_groups = export.default_split_bracketed_runs_into_words(bracketed_runs, data)
end
local parsed_components = {}
local parsed_components_translit = {}
local saw_manual_translit = false
local lemma
for j, space_separated_group in ipairs(space_separated_groups) do
local component = concat(space_separated_group)
if lemma_is_last and j == #space_separated_groups then
lemma = component
if lemma == "" and not props.allow_blank_lemma then
error("Word is blank: '" .. concat(segments) .. "'")
end
elseif component:find("//") then
-- Manual translit or respelling specified.
if not props.lang then
error("Manual translit not allowed for this language; if this is incorrect, 'props.lang' must be set internally")
end
saw_manual_translit = true
local split_components = split(component, "//", "plain")
if #split_components ~= 2 then
error("Term with translit or respelling should have only one // in it: " .. component)
end
local translit
component, translit = unpack(split_components)
if props.transliterate_respelling then
translit = props.transliterate_respelling(translit)
end
insert(parsed_components, component)
insert(parsed_components_translit, translit)
else
insert(parsed_components, component)
insert(parsed_components_translit, false) -- signal that it may need later transliteration
end
end
if saw_manual_translit then
for j, parsed_component in ipairs(parsed_components) do
if not parsed_components_translit[j] then
parsed_components_translit[j] = props_transliterate(props, m_links.remove_links(parsed_component))
end
end
end
text = concat(parsed_components)
local translit
if saw_manual_translit then
translit = concat(parsed_components_translit)
end
return text, translit, lemma
end
--[=[
Parse a segmented multiword spec such as "[[медичний|меди́чна]]<+> [[сестра́]]<*,*#.pr>" (in Ukrainian).
"Segmented" here means it is broken up on <...> segments using parse_balanced_segment_run(text, "<", ">"),
e.g. the above text would be passed in as {"[[медичний|меди́чна]]", "<+>", " [[сестра́]]", "<*,*#.pr>", ""}.
The return value is a table of the form
{
word_specs = {``word_spec``, ``word_spec``, ...},
post_text = "``text-at-end``",
post_text_no_links = "``text-at-end-no-links``",
post_text_translit = "``manual-translit-of-text-at-end``" or nil (if no manual translit or respelling was specified in the post-text)
}
where ``word_spec`` describes an individual inflected word and "``text-at-end``" is any raw text that may occur
after all inflected words. Individual words or linked text (including multiword text) may be given manual
transliteration or respelling in languages that support this using ``text``//``translit`` or ``text``//``respelling``.
Each ``word_spec`` is of the form returned by parse_indicator_spec():
{
lemma = "``lemma``",
before_text = "``text-before-word``",
before_text_no_links = "``text-before-word-no-links``",
before_text_translit = "``manual-translit-of-text-before-word``" or nil (if no manual translit or respelling was specified in the before-text)
-- Fields as described in parse_indicator_spec()
...
}
For example, the return value for "[[медичний|меди́чна]]<+> [[сестра́]]<*,*#.pr>" is
{
word_specs = {
{
lemma = "[[медичний|меди́чна]]",
overrides = {},
adj = true,
before_text = "",
before_text_no_links = "",
forms = {},
},
{
lemma = "[[сестра́]]",
overrides = {},
stresses = {
{
reducible = true,
genpl_reversed = false,
},
{
reducible = true,
genpl_reversed = true,
},
},
animacy = "pr",
before_text = " ",
before_text_no_links = " ",
forms = {},
},
},
post_text = "",
post_text_no_links = "",
}
]=]
local function parse_multiword_spec(segments, props, disable_allow_default_indicator)
local multiword_spec = {
word_specs = {}
}
if not disable_allow_default_indicator then
if #segments == 1 then
if props.allow_default_indicator then
insert(segments, "<>")
insert(segments, "")
elseif props.angle_brackets_omittable then
segments[1] = "<" .. segments[1] .. ">"
insert(segments, 1, "")
insert(segments, "")
end
end
end
-- Loop over every other segment. The even-numbered segments are angle-bracket specs while
-- the odd-numbered segments are the text between them.
for i = 2, #segments - 1, 2 do
local before_text, before_text_translit, lemma =
parse_before_or_post_text {
props = props,
text = segments[i - 1],
text_index = i - 1,
segments = segments,
lemma_is_last = true
}
local base = props.parse_indicator_spec(segments[i], lemma)
base.before_text = before_text
base.before_text_no_links = m_links.remove_links(base.before_text)
base.before_text_translit = before_text_translit
base.lemma = base.lemma or lemma
insert(multiword_spec.word_specs, base)
end
multiword_spec.post_text, multiword_spec.post_text_translit =
parse_before_or_post_text {
props = props,
text = segments[#segments],
text_index = #segments,
segments = segments,
lemma_is_last = false
}
multiword_spec.post_text_no_links = m_links.remove_links(multiword_spec.post_text)
return multiword_spec
end
--[=[
Parse an alternant, e.g. "((родо́вий,родови́й))" or "((ру́син<pr>,руси́н<b.pr>))" (both in Ukrainian).
The return value is a table of the form
{
alternants = {``multiword_spec``, ``multiword_spec``, ...}
}
where ``multiword_spec`` describes a given alternant and is as returned by parse_multiword_spec().
]=]
local function parse_alternant(alternant, props)
local alternant_text = alternant:match("^%(%((.*)%)%)$")
local segments = put.parse_balanced_segment_run(alternant_text, "<", ">")
local comma_separated_groups = put.split_alternating_runs(segments, "%s*,%s*")
local alternant_spec = {alternants = {}}
for _, comma_separated_group in ipairs(comma_separated_groups) do
insert(alternant_spec.alternants, parse_multiword_spec(comma_separated_group, props))
end
return alternant_spec
end
--[==[
Top-level parsing function. Parse text describing one or more inflected words. `text` is the inflected text to parse,
which generally has `<...>` specs following words to be inflected, and may have alternants indicated using double
parens. Examples:
* {"[[медичний|меди́чна]]<+> [[сестра́]]<*,*#.pr>"} (Ukrainian, for {{m|uk|меди́чна сестра́||nurse|lit=medical sister}});
* {"((ру́син<pr>,руси́н<b.pr>))"} (Ukrainian, for {{m|uk|русин||Rusyn}}, with two possible stress patterns);
* {"पंचायती//पंचाय*ती राज<M>"} (Hindi, for {{m|hi|पंचायती राज||village council}}, with phonetic respelling in the
before-text component);
* {"((<M>,<M.plstem:फ़तूह.dirpl:फ़तूह>))"} (Hindi, for {{m|hi|फ़तह||win, victory}} when used on that page, where the lemma
is omitted and taken from the pagename);
* {""} (for any number of Hindi adjectives, where the lemma is omitted and taken from the pagename, and the angle
bracket spec <> is assumed);
* {"काला<+>धन<M>"} (Hindi, for {{m|hi|कालाधन||black money}}, showing that closed compounds where each part is declined
can be correctly handled).
`props` is an object specifying properties used during parsing, as follows:
```{
parse_indicator_spec = __function__(``angle_bracket_spec``, ``lemma``) `''(required)''`,
lang = __lang object__,
transliterate_respelling = __function__(``respelling_or_translit``) `''(optional)''`,
split_bracketed_runs_into_words = __function__(``bracket_split_runs``) `''(optional)''`,
allow_default_indicator = __boolean__,
angle_brackets_omittable = __boolean__,
allow_blank_lemma = __boolean__,
}```
`parse_indicator_spec` is a required function that takes two arguments, a string surrounded by angle brackets and the
lemma, and should return an arbitrary object containing properties describing the indicators inside of the angle
brackets). This object is often called a '''base''' and given the argument name `base` in inflection code.
`lang` is the language object for the language in question; only needed if manual translit or respelling may be present
using `//`.
`transliterate_respelling` is a function that is only needed if respelling is allowed in place of manual translit after
`//`. It takes one argument, the respelling or translit, and should return the transliteration of any respelling but
return any translit unchanged.
`split_bracketed_runs_into_words` is an optional function to split the passed-in text into words. It is used, for
example, to determine what text constitutes a word when followed by an angle-bracket spec, i.e. what the lemma to be
inflected is vs. surrounding fixed text. It takes one argument, the result of splitting the original text on brackets,
and should return alternating runs of words and split characters, or nil to apply the default algorithm. Specifically,
the value passed in is the result of calling `parse_balanced_segment_run(``text``, "[", "]")` from
[[Module:parse utilities]] on the original text, and the default version of this function calls
`split_alternating_runs(``bracketed_runs``, ``pattern``, "preserve splitchar")`, where ``bracketed_runs`` is the value
passed in and ``pattern`` splits on either spaces or hyphens (unless the text begins with a hyphen, in which case
splitting is only on spaces, so that suffixes can be inflected).
`allow_default_indicator` should be {true} if an empty indicator in angle brackets `<>` can be omitted and should be
automatically added at the end of the multiword text (if no alternants) or at the end of each alternant (if alternants
present).
`angle_brackets_omittable` should be {true} if angle brackets can be omitted around a non-empty indicator in the
presence of a blank lemma. In this case, if the combined indicator spec has no angle brackets, they will be added around
the indicator (or around all indicators, if alternants are present). This only makes sense when `allow_blank_lemma` is
specified.
`allow_blank_lemma` should be {true} of if a blank lemma is allowed; in such a case, the calling function should
substitute a default lemma, typically taken from the pagename.
The return value is a table referred to as an '''alternant multiword spec''', and is of the form
```{
alternant_or_word_specs = {``alternant_or_word_spec``, ``alternant_or_word_spec``, ...},
post_text = "``text_at_end``",
post_text_no_links = "``text_at_end_no_links``",
post_text_translit = "``translit_of_text_at_end``" `(or nil)`,
}```
where `alternant_or_word_spec` is either an '''alternant spec''' as returned by `parse_alternant()` or a
'''multiword spec''' as described in the comment above `parse_multiword_spec()`. An alternant spec looks as follows:
```{
alternants = {``multiword_spec``, ``multiword_spec``, ...},
before_text = "``text_before_alternant``",
before_text_no_links = "``text_before_alternant``",
before_text_translit = "``translit_of_text_before_alternant``" `(or nil)`,
}```
i.e. it is like what is returned by `parse_alternant()` but has extra `before_text` and `before_text_no_links` fields.
]==]
function export.parse_inflected_text(text, props)
if props.angle_brackets_omittable and not props.allow_blank_lemma then
error("If 'angle_brackets_omittable' is specified, so should 'allow_blank_lemma'")
end
local alternant_multiword_spec = {alternant_or_word_specs = {}}
local alternant_segments = split(text, "(%(%(.-%)%))")
local last_post_text, last_post_text_no_links, last_post_text_translit
for i = 1, #alternant_segments do
if i % 2 == 1 then
local segments = put.parse_balanced_segment_run(alternant_segments[i], "<", ">")
-- Disable allow_default_indicator if alternants are present and we're processing
-- the non-alternant text. Otherwise we will try to treat the non-alternant text
-- surrounding the alternants as an inflected word rather than as raw text.
local multiword_spec = parse_multiword_spec(segments, props, #alternant_segments ~= 1)
for _, word_spec in ipairs(multiword_spec.word_specs) do
insert(alternant_multiword_spec.alternant_or_word_specs, word_spec)
end
last_post_text = multiword_spec.post_text
last_post_text_no_links = multiword_spec.post_text_no_links
last_post_text_translit = multiword_spec.post_text_translit
else
local alternant_spec = parse_alternant(alternant_segments[i], props)
alternant_spec.before_text = last_post_text
alternant_spec.before_text_no_links = last_post_text_no_links
alternant_spec.before_text_translit = last_post_text_translit
insert(alternant_multiword_spec.alternant_or_word_specs, alternant_spec)
end
end
alternant_multiword_spec.post_text = last_post_text
alternant_multiword_spec.post_text_no_links = last_post_text_no_links
alternant_multiword_spec.post_text_translit = last_post_text_translit
-- Save boolean properties from `props`. We need at least `allow_default_indicator` when implementing
-- `reconstruct_original_spec()`.
alternant_multiword_spec.allow_default_indicator = props.allow_default_indicator
alternant_multiword_spec.angle_brackets_omittable = props.angle_brackets_omittable
alternant_multiword_spec.allow_blank_lemma = props.allow_blank_lemma
return alternant_multiword_spec
end
-- Inflect alternants in ``alternant_spec`` (an object as returned by parse_alternant()).
-- This sets the form values in ```alternant_spec``.forms` for all slots.
-- (If a given slot has no values, it will not be present in ```alternant_spec``.forms`).
local function inflect_alternants(alternant_spec, props)
alternant_spec.forms = {}
for _, multiword_spec in ipairs(alternant_spec.alternants) do
export.inflect_multiword_or_alternant_multiword_spec(multiword_spec, props)
iterate_slot_list_or_table(props, function(slot)
if not props.skip_slot or not props.skip_slot(slot) then
export.insert_forms(alternant_spec.forms, slot, multiword_spec.forms[slot])
end
end)
end
end
--[=[
Subfunction of `inflect_multiword_or_alternant_multiword_spec()`. This is used in building up the inflections of
multiword expressions. The basic purpose of this function is to append a set of forms representing the inflections of
a given inflected term in a given slot onto the existing forms for that slot. Given a multiword expression potentially
consisting of several inflected terms along with fixed text in between, we work iteratively from left to right, adding
the new forms onto the existing ones. Normally, all combinations of new and existing forms are created, meaning if
there are M existing forms and N new ones, we will end up with M*N forms. However, some of these combinations can be
rejected using the variant mechanism (see the description of get_variants below).
Specifically, `formtable` is a table of per-slot forms, where the key is a slot and the value is a list of form objects
(objects of the form {form=``form``, translit=``manual_translit``, footnotes=``footnotes``}). `slot` is the slot in question.
`forms` specifies the forms to be appended onto the existing forms, and is likewise a list of form objects. `props`
is the same as in `inflect_multiword_or_alternant_multiword_spec()`. `before_text` is the fixed text that goes before
the forms to be added. `before_text_no_links` is the same as `before_text` but with any links (i.e. hyperlinks of the
form [[``term``]] or [[``term``|``display``]]) converted into raw terms using remove_links() in [[Module:links]], and
`before_text_translit` is optional manual translit of `before_text_no_links`.
Note that the value "?" in a form is "infectious" in that if either the existing or new form has the value "?", the
resulting combination will also be "?". This allows "?" to be used to mean "unknown".
]=]
local function append_forms(props, formtable, slot, forms, before_text, before_text_no_links, before_text_translit)
if not forms then
return
end
local old_forms = formtable[slot] or {{form = ""}}
local ret_forms = {}
for _, old_form in ipairs(old_forms) do
for _, form in ipairs(forms) do
local old_form_vars = props.get_variants and props.get_variants(old_form.form) or ""
local form_vars = props.get_variants and props.get_variants(form.form) or ""
if old_form_vars ~= "" and form_vars ~= "" and old_form_vars ~= form_vars then
-- Reject combination due to non-matching variant codes.
else
local new_formval
local new_translit
if old_form.form == "?" or form.from == "?" then
new_formval = "?"
else
new_formval = old_form.form .. before_text .. form.form
if old_form.translit or before_text_translit or form.translit then
if not props.lang then
error("Internal error: If manual translit is given, 'props.lang' must be set")
end
if not before_text_translit then
before_text_translit = props_transliterate(props, before_text_no_links) or ""
end
local old_translit =
old_form.translit or props_transliterate(props, m_links.remove_links(old_form.form)) or ""
local translit =
form.translit or props_transliterate(props, m_links.remove_links(form.form)) or ""
new_translit = old_translit .. before_text_translit .. translit
end
end
local new_formobj
local new_footnotes = export.combine_footnotes(old_form.footnotes, form.footnotes)
if new_formval == form.form and new_translit == form.translit then
-- Automatically preserve metadata when possible.
new_formobj = shallow_copy(form)
new_formobj.footnotes = new_footnotes
else
new_formobj = {form=new_formval, translit=new_translit, footnotes=new_footnotes}
if props.combine_metadata then
props.combine_metadata {
slot = slot,
dest_form = new_formobj,
form1 = old_form,
form2 = form,
between_text = before_text,
between_text_no_links = before_text_no_links,
between_text_translit = before_text_translit,
}
end
end
insert(ret_forms, new_formobj)
end
end
end
formtable[slot] = ret_forms
end
--[==[
Top-level inflection function. Create the inflections of a noun, verb, adjective or similar. `alternant_multiword_spec`
is as
returned by `parse_inflected_text` and describes the properties of the term to be inflected, including all the
user-provided inflection specifications (e.g. the number, gender, conjugation/declension/etc. of each word) and the
surrounding text. `props` indicates how to do the actual inflection (see below). The resulting inflected forms are
stored into the `.forms` property of `multiword_spec`. This property holds a table whose keys are slots (i.e. ID's
of individual inflected forms, such as "pres_1sg" for the first-person singular present indicative tense of a verb)
and whose values are lists of the form `{ form = ``form``, translit = ``manual_translit_or_nil``, footnotes = ``footnote_list_or_nil``}`,
where ``form`` is a string specifying the value of the form (e.g. "ouço" for the first-person singular present indicative
of the Portuguese verb [[ouvir]]); ``manual_translit_or_nil`` is the corresponding manual transliteration if needed (i.e.
if the form is in a non-Latin script and the automatic transliteration is incorrect or unavailable), otherwise nil;
and ``footnote_list_or_nil`` is a list of footnotes to be attached to the form, or nil for no footnotes. Note that
currently footnotes must be surrounded by brackets, e.g "[archaic]", and should not begin with a capital letter or end
with a period. (Conversion from "[archaic]" to "Archaic." happens automatically.)
This function has no return value, but modifies `multiword_spec` in-place, adding the `forms` table as described above.
After calling this function, call show_forms() on the `forms` table to convert the forms and footnotes given in this
table to strings suitable for display.
`props` is an object specifying properties used during inflection, as follows:
```{
slot_list = {{"``slot``", "``accel``"}, {"``slot``", "``accel``"}, ...},
slot_table = {``slot`` = "``accel``", ``slot`` = "``accel``", ...},
skip_slot = nil `or` __function__(slot),
lang = nil `or` __lang_object__,
inflect_word_spec = __function__(base),
get_variants = nil 'or` __function__(formval),
combine_metadata = nil `or` __function__(data),
include_user_specified_links = __boolean__,
}```
`slot_list` is a list of two-element lists of slots and associated accelerator tags. ``slot`` is arbitrary but should
correspond with slot names as generated by `inflect_word_spec`. ``accel`` is the corresponding accelerator tags; e.g. if
``slot`` is "pres_1sg", ``accel`` might be "1|s|pres|ind". ``accel`` is actually unused during inflection, but is used
during `show_forms()`, which takes the same `slot_list` as a property upon input.
`slot_table` is a table mapping slots to associated accelerator tags and serves the same function as `slot_list`. Only
one of `slot_list` or `slot_table` must be given. For new code it is preferable to use `slot_list` because this allows
you to control the order of processing slots, which may occasionally be important.
`skip_slot` is a function of one argument, a slot name, and should return a boolean indicating whether to skip the
given slot during inflection. It can be used, for example, to skip singular slots if the overall term being inflected
is plural-only, and vice-versa.
`lang` is a language object. This is only used to generate manual transliteration. If the language is written in the
Latin script or manual transliteration cannot be specified in the input to parse_inflected_text(), this can be omitted.
(Manual transliteration is allowed if the `lang` object is set in the `props` passed to parse_inflected_text().)
`inflect_word_spec` is the function to do the actual inflection. It is passed a single argument, which is a ``word_spec``
object describing the word to be inflected and the user-provided inflection specifications. It is exactly the same as
was returned by the `parse_indicator_spec` function provided in the `props` sent on input to `parse_inflected_text`, but
has additional fields describing the word to be inflected and the surrounding text, as follows:
```{
lemma = "``lemma``",
before_text = "``text-before-word``",
before_text_no_links = "``text-before-word-no-links``",
before_text_translit = "``manual-translit-of-text-before-word``" or nil (if no manual translit or respelling was specified in the before-text)
-- Fields as described in parse_indicator_spec()
...
}```
Here ``lemma`` is the word to be inflected as specified by the user (including any links if so given), and the
`before_text*` fields describe the raw text preceding the word to be inflected. Any other fields in this object are as
set by `parse_inflected_text`, and describe things like the gender, number, conjugation/declension, etc. as specified
by the user in the <...> spec following the word to be inflected.
`inflect_word_spec` should initialize the `.forms` property of the passed-in ``word_spec`` object to the inflected forms of
the word in question. The value of this property is a table of the same format as the `.forms` property that is
ultimately generated by inflect_multiword_or_alternant_multiword_spec() and described above near the top of this
documentation: i.e. a table whose keys are slots and whose values are lists of the form
`{ form = ``form``, translit = ``manual_translit_or_nil``, footnotes = ``footnote_list_or_nil``}`.
`get_variants` is either {nil} or a function of one argument (a string, a form value). The purpose of
this function is to ensure that in a multiword term where a given slot has more than one possible variant, the final
output has only parallel variants in it. For example, feminine nouns and adjectives in Russian have two possible
endings, one typically in -ой (-oj) and the other in -ою (-oju). If we have a feminine adjective-noun combination (or
a hyphenated feminine noun-noun combination, or similar), and we don't specify `get_variants`, we'll end up with four
values for the instrumental singular: one where both adjective and noun end in -ой, one where both end in -ою, and
two where one of the words ends in -ой and the other in -ою. In general if we have N words each with K variants, we'll
end up with an explosion of N^K possibilities. `get_variants` avoids this by returning a variant code (an arbitary
string) for each variant. If two words each have a non-empty variant code, and the variant codes disagree, the
combination will be rejected. If `get_variants` is not provided, or either variant code is an empty string, or the
variant codes agree, the combination is allowed.
The recommended way to use `get_variants` is as follows:
1. During inflection in `inflect_word_spec`, add a special character or string to each of the variants generated for a
given slot when there is more than one. (As an optimization, do this only when there is more than one word being
inflected.) Special Unicode characters can be used for this purpose, e.g. U+FFF0, U+FFF1, ..., U+FFFD, which have
no meaning in Unicode.
2. Specify `get_variants` as a function that pulls out and returns the special character(s) or string included in the
variant forms.
3. When calling show_forms(), specify a `canonicalize` function that removes the variant code character(s) or string
from each form before converting to the display form.
See [[Module:hi-verb]] and [[Module:hi-common]] for an example of doing this in a generalized fashion. (Look for
add_variant_codes(), get_variants() and remove_variant_codes().)
`combine_metadata` is a function that is invoked when combining two form objects along along with in-between text and
storing into a destination form object. When this happens, if the the form value and translit in the first form object
is empty and the in-between text is likewise empty (which regularly happens when appending the form object describing
the first word in a multiword expression to empty base text), the second form object is simply shallow-copied along with
all of its metadata, and any footnotes are combined appropriately (normally the first form object is such a case won't
have footnotes). Otherwise, a new form object is constructed by combining the form values, translit and footnotes from
the two objects and in-between text, and calling `combine_metadata` to combine any other metadata. Leave this
unspecified if there is no additional metadata or if you don't want any metadata carried over. (Examples of metadata
that should generally not be carried over are glosses of individual words, sense ID's and similar word-level properties
that can't easily be combined to generate a multiword equivalent. Examples of metadata that should be carried over and
combined are qualifiers, labels and certain boolean properties such as an uncertainty flag indicating that a given form
is uncertain. For some metadata, it is more complex; for example, if both source words have the same gender or part of
speech, the destination should keep that value, but if they differ, it may be safest to leave the field blank.) This
function, if specified, is called with a single argument as follows:
```{
slot = "__string__",
dest_form = __formobj__,
form1 = __formobj__,
form2 = __formobj__,
between_text = "__string__",
between_text_no_links = "__string__",
between_text_translit = "__string__" `or` nil
}```
Here, `slot` is the slot whose forms are being constructed. `dest_form` is the destination form object into which the
combined metadata should be written, and is pre-populated with appropriate `form`, `translit` and `footnotes` fields.
`form1` and `form2` are the two source forms being combined, and `between_text` is the text to be inserted between the
two source forms. `between_text_no_links` is the same as `between_text` but with double-bracket links removed, and
`between_text_translit` is the manual transliteration of `between_text_no_links`, if specified. The function should
return nothing, but should side-effect `dest_form` as appropriate.
`include_user_specified_links`, if given, ensures that user-specified links in the raw text surrounding a given word
are preserved in the output. If omitted or set to false, such links will be removed and the whole multiword expression
will be linked.
]==]
function export.inflect_multiword_or_alternant_multiword_spec(multiword_spec, props)
multiword_spec.forms = {}
local is_alternant_multiword = not not multiword_spec.alternant_or_word_specs
for _, word_spec in ipairs(is_alternant_multiword and multiword_spec.alternant_or_word_specs or multiword_spec.word_specs) do
if word_spec.alternants then
inflect_alternants(word_spec, props)
else
props.inflect_word_spec(word_spec)
end
iterate_slot_list_or_table(props, function(slot)
if not props.skip_slot or not props.skip_slot(slot) then
append_forms(props, multiword_spec.forms, slot, word_spec.forms[slot],
(slot:find("linked") or props.include_user_specified_links) and
word_spec.before_text or word_spec.before_text_no_links,
word_spec.before_text_no_links, word_spec.before_text_translit
)
end
end)
end
if multiword_spec.post_text ~= "" then
local pseudoform = {{form=""}}
iterate_slot_list_or_table(props, function(slot)
-- If slot is empty or should be skipped, don't try to append post-text.
if (not props.skip_slot or not props.skip_slot(slot)) and multiword_spec.forms[slot] then
append_forms(props, multiword_spec.forms, slot, pseudoform,
(slot:find("linked") or props.include_user_specified_links) and
multiword_spec.post_text or multiword_spec.post_text_no_links,
multiword_spec.post_text_no_links, multiword_spec.post_text_translit
)
end
end)
end
end
function export.map_word_specs(alternant_multiword_spec, fun)
for _, alternant_or_word_spec in ipairs(alternant_multiword_spec.alternant_or_word_specs) do
if alternant_or_word_spec.alternants then
for _, multiword_spec in ipairs(alternant_or_word_spec.alternants) do
for _, word_spec in ipairs(multiword_spec.word_specs) do
fun(word_spec)
end
end
else
fun(alternant_or_word_spec)
end
end
end
function export.create_footnote_obj()
return {
notes = {},
seen_notes = {},
noteindex = 1,
seen_refs = {},
}
end
function export.get_footnote_text(footnotes, footnote_obj)
if not footnotes then
return ""
end
local link_indices = {}
local all_refs = {}
for _, footnote in ipairs(footnotes) do
local refs
footnote, refs = export.expand_footnote_or_references(footnote)
if footnote then
local this_noteindex = footnote_obj.seen_notes[footnote]
if not this_noteindex then
-- Generate a footnote index.
this_noteindex = footnote_obj.noteindex
footnote_obj.noteindex = footnote_obj.noteindex + 1
insert(footnote_obj.notes, '<sup style="color: var(--wikt-palette-red, red)">' .. this_noteindex .. '</sup>' .. footnote)
footnote_obj.seen_notes[footnote] = this_noteindex
end
insert_if_not(link_indices, this_noteindex)
end
if refs then
for _, ref in ipairs(refs) do
if not ref.name then
local this_refhash = footnote_obj.seen_refs[ref.text]
if not this_refhash then
-- Different text needs to have different auto-generated names, globally across the entire page,
-- including across different invocations of {{it-verb}} or {{it-conj}}. The easiest way to accomplish
-- this is to use a message-digest hashing function. It does not have to be cryptographically secure
-- (MD5 is insecure); it just needs to have low probability of collisions.
this_refhash = mw.hash.hashValue("md5", ref.text)
footnote_obj.seen_refs[ref.text] = this_refhash
end
ref.autoname = this_refhash
end
-- I considered using "n" as the default group rather than nothing, to more clearly distinguish regular
-- footnotes from references, but this requires referencing group "n" as <references group="n"> below,
-- which is non-obvious.
insert_if_not(all_refs, ref)
end
end
end
table.sort(link_indices)
local function sort_refs(r1, r2)
-- FIXME, we are now sorting on an arbitrary hash. Should we keep track of the order we
-- saw the autonamed references and sort on that?
if r1.autoname and r2.name then
return true
elseif r1.name and r2.autoname then
return false
elseif r1.name and r2.name then
return r1.name < r2.name
else
return r1.autoname < r2.autoname
end
end
table.sort(all_refs, sort_refs)
for i, ref in ipairs(all_refs) do
local refargs = {name = ref.name or ref.autoname, group = ref.group}
all_refs[i] = mw.getCurrentFrame():extensionTag("ref", ref.text, refargs)
end
local link_text
if #link_indices > 0 then
link_text = '<sup style="color: var(--wikt-palette-red, red)">' .. concat(link_indices, ",") .. '</sup>'
else
link_text = ""
end
local ref_text = concat(all_refs)
if link_text ~= "" and ref_text ~= "" then
return link_text .. "<sup>,</sup>" .. ref_text
else
return link_text .. ref_text
end
end
--[==[
Add links around words in a term. If multiword_only, do it only in multiword terms.
]==]
function export.add_links(form, multiword_only)
if form == "" or form == " " then
return form
end
if not form:find("%[%[") then
if ufind(form, "[%s%p]") then --optimization to avoid loading [[Module:headword]] on single-word forms
local m_headword = require("Module:headword")
if m_headword.head_is_multiword(form) then
form = m_headword.add_multiword_links(form)
end
end
if not multiword_only and not form:find("%[%[") then
form = "[[" .. form .. "]]"
end
end
return form
end
--[==[
Remove redundant link surrounding entire term.
]==]
function export.remove_redundant_links(term)
return (term:gsub("^%[%[([^%[%]|]*)%]%]$", "%1"))
end
--[==[
Add links to all before and after text; for use in inflection modules that preserve links in multiword lemmas and
include links in non-lemma forms rather than allowing the entire form to be a link. If `remember_original`, remember
the original user-specified before/after text so we can reconstruct the original spec later. `add_links` is a
function of one argument to add links to a given piece of text; if unspecified, it defaults to `export.add_links`.
]==]
function export.add_links_to_before_and_after_text(alternant_multiword_spec, remember_original, add_links)
add_links = add_links or export.add_links
local function add_links_remember_original(object, field)
if remember_original then
object["user_specified_" .. field] = object[field]
end
object[field] = add_links(object[field])
end
for _, alternant_or_word_spec in ipairs(alternant_multiword_spec.alternant_or_word_specs) do
add_links_remember_original(alternant_or_word_spec, "before_text")
if alternant_or_word_spec.alternants then
for _, multiword_spec in ipairs(alternant_or_word_spec.alternants) do
for _, word_spec in ipairs(multiword_spec.word_specs) do
add_links_remember_original(word_spec, "before_text")
end
add_links_remember_original(multiword_spec, "post_text")
end
end
end
add_links_remember_original(alternant_multiword_spec, "post_text")
end
--[==[
Reconstruct the original overall spec from the output of parse_inflected_text(), so we can use it in the
language-specific acceleration module in the implementation of {{tl|pt-verb form of}} and the like. `props` is an
optional table of properties. Currently only `preprocess_angle_bracket_spec` is recognized, and is an optional function
of one argument that is called to process an angle-bracket spec before inserting into the reconstructed spec.
]==]
function export.reconstruct_original_spec(alternant_multiword_spec, props)
local parts = {}
props = props or {}
local function ins(txt)
insert(parts, txt)
end
local function insert_angle_bracket_spec(spec)
if props.preprocess_angle_bracket_spec then
spec = props.preprocess_angle_bracket_spec(spec)
end
ins(spec)
end
for _, alternant_or_word_spec in ipairs(alternant_multiword_spec.alternant_or_word_specs) do
ins(alternant_or_word_spec.user_specified_before_text)
if alternant_or_word_spec.alternants then
ins("((")
for i, multiword_spec in ipairs(alternant_or_word_spec.alternants) do
if i > 1 then
ins(",")
end
for _, word_spec in ipairs(multiword_spec.word_specs) do
ins(word_spec.user_specified_before_text)
ins(word_spec.user_specified_lemma)
insert_angle_bracket_spec(word_spec.angle_bracket_spec)
end
ins(multiword_spec.user_specified_post_text)
end
ins("))")
else
ins(alternant_or_word_spec.user_specified_lemma)
insert_angle_bracket_spec(alternant_or_word_spec.angle_bracket_spec)
end
end
ins(alternant_multiword_spec.user_specified_post_text)
local retval = concat(parts)
if alternant_multiword_spec.allow_default_indicator then
-- As a special case, if we see e.g. "amar<>", remove the <>. Don't do this if there are spaces or alternants.
if not retval:find(" ") and not retval:find("%(%(") then
local retval_no_angle_brackets = retval:match("^(.*)<>$")
if retval_no_angle_brackets then
return retval_no_angle_brackets
end
end
end
return retval
end
--[==[
Convert the forms in ``formtable`` (a form table, whose keys are slots and whose values are lists of form objects, each
of which is a table of the form `form = ``form``, translit = ``manual_translit_or_nil``, footnotes = ``footnote_list_or_nil``, no_accel = ``true_to_suppress_accelerators``, ... `)
into strings. The form table is side-effected. Each form list turns into a string consisting of a comma-separated list
of linked forms, with accelerators (unless `no_accel` is set in a given form object). If `include_translit` is
specified, each string consists of a comma-separated list of form values (each formatted as a link), an HTML
`<br/>`, and a comma-separated list of transliterations. `props` is a table used in generating the strings, as
follows:
```{
lang = __lang_object__,
lemmas = {"``lemma``", "``lemma``", ...},
slot_list = {{"``slot``", "``accel``"}, {"``slot``", "``accel``"}, ...},
slot_table = {``slot`` = "``accel``", ``slot`` = "``accel``", ...},
include_translit = __boolean__,
create_footnote_obj = nil `or` __function__(),
canonicalize = nil or __function__(formval),
preprocess_forms = nil `or` __function__(data),
no_deduplicate_forms = __boolean__,
combine_metadata_during_dedup = nil `or` __function__(data),
transform_accel_obj = nil `or` __function__(slot, form, accel_obj),
format_forms = nil `or` __function__(data),
generate_link = nil `or` __function__(data),
format_tr = nil `or` __function__(data),
join_spans = nil `or` __function__(data),
footnotes = nil or {"``extra_footnote``", "``extra_footnote``", ...},
}```
`lemmas` is the list of lemmas, used in the accelerators.
`slot_list` is a list of two-element lists of slots and associated accelerator tag sets. ``slot`` should correspond
to slots generated during `inflect_multiword_or_alternant_multiword_spec()`. ``accel`` is the corresponding accelerator
tag set; e.g. if ``slot`` is "pres_1sg", ``accel`` might be "1|s|pres|ind". ``accel`` is used in generating entries for
accelerator support (see [[WT:ACCEL]]).
`slot_table` is a table mapping slots to associated accelerator tag sets and serves the same function as `slot_list`.
Only one of `slot_list` or `slot_table` must be given. For new code it is preferable to use `slot_list` because this
allows you to control the order of processing slots, which may occasionally be important.
`include_translit`, if given, causes transliteration to be included in the generated strings.
The function works as follows:
# Create an object to hold footnotes (customizable using `create_footnote_obj`).
# Generate the comma-separated lemma form values and store in `.lemma` in the form table.
# Loop over the slots specified using `slot_list` or `slot_table`. For each slot:
## Canonicalize the form values (customizable using `canonicalize`; by default does nothing).
## Preprocess the forms (customizable using `preprocess_forms`; by default does nothing).
## Unless `no_deduplicate_forms` is set, deduplicate forms in a slot sharing the same form value but possibly different
transliteration. (This happens e.g. in Russian, where it is relatively common for a given form to have two possible
transliterations, one reflecting a more nativized pronunciation where Cyrillic е triggers palatalization of the
preceding consonant, and one reflecting a more "foreign" pronunciation where this palatalization does not happen. In
such a case, the automatic transliteration would normally suffice for the more nativized pronunciation but the more
"foreign" pronunciation will need manual transliteration.) As part of deduplication, footnotes will be combined using
`combine_footnotes`; distinct manual transliterations will be combined into a list (meaning the `translit` field of
form objects in some subsequent `props` functions may hold a list; this will be noted when possible); and any
remaining metadata will be combined using the `combine_metadata_during_dedup` method, if provided.
## Add acceleration to all forms. The acceleration tag set associated with a given form comes from `slot_list` or
`slot_table`, i.e. all forms in a given slot have the same tag set. However, different forms will have different
associated transliterations stored into the accelerator object associated with the form, as well as possibly
different lemmas. In particular, when there are multiple lemma forms, this is often due to alternative ways to
pronounce the lemma (e.g. alternative stress positions or vowel lengths), and there are often associated non-lemma
forms that match each lemma. An example given in the introduction is {{m+|uk|русин||Rusyn}}, stressed in the lemma
as ''ру́син'' or ''руси́н'' with associated genitive singulars ''ру́сина'' and ''русина́''. We would like the
auto-generated accelerator entry for {{m|uk|русина}} to show the variant ''ру́сина'' as having lemma ''ру́син'' and
the variant ''русина́'' as having the lemma ''руси́н'', rather than showing both variants as having both lemmas,
which is less accurate. As a result, the code that generates acceleration objects for forms matches up forms and
lemmas one-to-one if possible. If this is not possible, the matching is usually one lemma to many forms, as in
{{m+|uk|міст||bridge}} with genitive singular ''мо́сту'' or ''моста́'' (in which case all forms get the same lemma), or
many lemmas to one form, as in {{m+|uk|черга||turn, queue}} stressed either ''че́рга'' or ''черга́'' with nominative
singular only ''че́рги'' (in which case the single form gets assicated all lemmas). If there are multiple lemmas and
multiple forms, the algorithm attempts to align them as evenly as possible (e.g. two lemma variants to four forms
means the first two forms get assigned the first lemma variant and the last two forms get assigned the second lemma
variant); this is often going to be incorrect, but (a) there's unlikely to be a single algorithm that works in all
such circumstances, and (b) these cases are very rare. Finally, note the following:
##* No acceleration is assigned to a form if any of the following apply: (a) there are no lemmas given in
`props.lemmas`; (b) the `no_accel` key in the form object has a non-falsy value; (c) the form value of the form is
{"?"} or an em-dash ({"—"}); (d) the accelerator tag set is given as a hyphen {"-"}); or (e) the form value contains
an internal link.
##* The accelerator code sets the `formval_for_link` key in each form object to the version of the form value that
should be passed to `full_link()` in [[Module:links]]. This is usually the same as the passed-in form value, but
differs when the entire form value is surrounded with a redundant internal link (which is removed).
##* The resulting accelerator object can be modified (or replaced entirely) by the `transform_accel_obj` function. This
is used, for example, in [[Module:es-verb]], [[Module:pt-verb]] and other Romance-language verb conjugation modules
(likewise [[Module:ar-verb]]) to replace the tag set with the original verb spec used to generate the verb, so that
the accelerator code can generate the appropriate call to {{tl|es-verb form of}}, {{tl|pt-verb form of}} or the
like, which computes the inflections, instead of directly listing the inflections.
## Format the forms into strings. The entire default process can be replaced using `format_forms`; otherwise the default
algorithm works as follows:
### Generate the '''form value spans''', with one entry (a linked HTML-ized version of the form value) per form. This
can be customized using `generate_link`. (Various modules do this. For example, the Arabic verb module includes
qualifiers, labels, ID's and the like that can be specified by the user; the Portuguese and reintegrated Galician
verb modules italicize certain superseded or otherwise less-desirable forms instead of linking them normally; the
German verb module adds {{m|de|dass}} to subjunctive forms and optional pronouns to imperative forms; and the German
adjective module adds articles to adjective forms normally accompanied by articles and the equivalent of "he/she is"
etc. to predicate forms.) The default uses `full_link()` in [[Module:links]] (with transliteration generation
disabled) concatenated with the appropriate footnote symbol(s) (if any).
### Generate the '''transliteration spans''', with one entry per distinct translit, auto-generated if manual translit
isn't available. Note that, due to the earlier form value deduplication step, there may be multiple translits per
form object. These translits are themselves deduplicated to get the list of spans. (Such duplication can happen, for
example, in Arabic with terms containing a glottal stop in them; there may be multiple ways of spelling the glottal
stop or ''hamza'' in Arabic, but only one way of transliterating it.) Each span consists of an object specifying
the translit and the list of footnotes. These objects are then converted to formatted strings, either using
`format_tr` if supplied or else calling `tag_translit()` in [[Module:script utilities]] and concatenating the
appropriate footnote symbol(s) (if any).
### Combine the form value and transliteration spans. If `join_spans` is supplied, use it; otherwise, concatenate the
form value spans (comma-separated) and (if available) transliteration spans (comma-separated), and (if appropriate)
combine them using {<br />}.
`create_footnote_obj` is an optional function of no arguments to create the footnote object used to track footnotes;
see `create_footnote_obj()`. Customizing it is useful to prepopulate the footnote table using `get_footnote_text()`.
`canonicalize` is an optional function of one argument (a form value) to canonicalize each form before processing; it
can return nil for no change. The most common purpose of this function is to remove variant codes from the form value.
See the documentation for `inflect_multiword_or_alternant_multiword_spec()` for a description of variant codes and their
purpose.
`preprocess_forms` is an optional function of one argument (a table of properties) to preprocess the form objects as
a whole. It runs after `canonicalize` (meaning that the form values passed in are canonicalized) and before
deduplication and the addition of acceleration info. The property table passed in has the following properties:
* `slot`: The slot being processed.
* `forms`: The list of form objects for this slot.
* `accel_tag_set`: The accelerator tag set for this slot, taken from `slot_list` or `slot_table`.
* `footnote_obj`: The footnote object returned by the `create_footnote_obj` property or the default
`create_footnote_obj()` function.
`preprocess_forms` should return a list of preprocessed form objects, or {nil} to use the passed-in `forms`. If this
function does deduplication, you should set `no_deduplicate_forms` to disable the default deduplication process.
`no_deduplicate_forms`, if set, disables the deduplication step (see above).
`combine_metadata_during_dedup` is an optional function of one argument (a table of properties) to combine the metadata
of deduplicated form objects. The property table passed in has the following properties:
* `slot`: The slot being processed.
* `existing_form`: The existing form object into which a duplicated form is being combined.
* `dup_form`: The duplicated form being combined into `existing_form`.
* `existing_form_pos`: The one-based position of the existing form in the deduplicated form list (not necessarily its
original position).
* `dup_form_pos`: The one-based position of the duplicated form in its original list.
The following should be noted about the form objects passed in:
# The form values in `.form` have been canonicalized using `.canonicalize`, if provided.
# The form values in `existing_form` and `dup_form` are always the same.
# The footnotes in `existing_form` have already been combined with those in `dup_form`.
# If there was manual translit either in `existing_form` (prior to deduplication) or in `dup_form`, there will be
manual translit in `existing_form.translit` that is a list and combines any previous accumulated translits in
`existing_form` as well as the translit in `dup_form` (even if one of them was specified as {nil} indicating an
automatic translit). This means that the translit in `existing_form.translit` is always either {nil} or a list of
strings (and the same applies to `dup_form.translit`).
`transform_accel_obj` is an optional function of three arguments (``slot``, ``formobj``, ``accel_obj``) to transform the
default constructed accelerator object in ``accel_obj`` into an object that should be passed to `full_link()` in
[[Module:links]]. It should return the new accelerator object, or {nil} for no acceleration. (If {nil} is returned,
the corresponding form has no acceleration; this is unlike most customization functions, where returning {nil} causes
the default algorithm to be invoked.) The function can destructively modify the accelerator object passed in.
'''NOTE''': This is called even when the passed-in ``accel_obj`` is {nil} (see the (a) through (e) reasons above why no
acceleration may be assigned to a form). Thus, your code needs to do something sensible in this case. The description
above of how `show_forms()` works inclues various examples of modules that supply a `transform_accel_obj` function and
the reasons for doing so.
`format_forms`, if supplied, is a function that entirely replaces the formatting portion of `show_forms()`. An example
of why you might want to do this is to get a different layout than the default, e.g. one where translit is displayed
next to each form value instead of the form values and translits grouped and displayed on separate lines. Under normal
circumstances, you should not do this, but instead customize the functions that replace specific parts of the default
formatting algorithm (see below). This function is passed one argument (a table of properties) and should return a
string (the formatted forms, ready to store into the slot in the form table) or {nil} to proceed with the default
algorithm (see above). The property table passed in has the following properties:
* `slot`: The slot being processed.
* `forms`: The list of form objects, deduplicated and with accelerator info added.
* `footnote_obj`: The footnote object returned by the `create_footnote_obj` property or the default
`create_footnote_obj()` function.
The following should be noted about the form objects in `forms`:
# There are extra fields `formval_for_link` and `accel_obj`. The first one is as described above under the paragraph
beginning "Add acceleration to all forms" under "The function works as follows". The second one is the accelerator
object in the format expected by [[Module:links]].
# The `translit` field, if non-{nil}, is a list of transliterations rather than a single transliteration; this is due to
the form value deduplication step.
`generate_link` is an optional function to generate the link text for a given form value. It is passed a single argument
(a table of properties) and should return a string, the formatted link. If it returns {nil}, the default algorithm (see
above) is invoked. The property table passed in has the following properties:
* `slot`: The slot being processed.
* `form`: The form to be converted to a formatted link. As with the `format_forms` function described above, the form
objects passed in contain extra fields `formval_for_link` and `accel_obj` (both of which will normally be used), and
the `translit` field, if non-{nil}, is a list.
* `pos`: The one-based position of the form being processed, in the list of form value spans. Rarely used.
* `footnote_obj`: The footnote object returned by the `create_footnote_obj` property or the default
`create_footnote_obj()` function. Normally used in order to get the footnote symbol associated with any footnotes in
`footnotes`.
The description above of how `show_forms()` works inclues various examples of modules that supply a `generate_link`
function and the reasons for doing so.
`format_tr` is an optional function to generate the formatted text for a given transliteration. It is passed a single
argument (a table of properties) and should return a string, the formatted transliteration text. If it returns {nil},
the default algorithm (see above) is invoked. The property table passed in has the following properties:
* `slot`: The slot being processed.
* `tr_for_tag`: The transliteration to process.
* `pos`: The one-based position of the transliteration being processed, in the list of transliteration spans. Rarely
used.
* `footnotes`: The list of footnotes associated with all form objects with this transliteration. (If there were multiple
form objects with the same transliteration, the list of footnotes will have been generated using
`combine_footnotes()`.)
* `footnote_obj`: The footnote object returned by the `create_footnote_obj` property or the default
`create_footnote_obj()` function. Normally used in order to get the footnote symbol associated with any footnotes in
`footnotes`.
`join_spans` is an optional function to join the processed form value and transliteration spans into a formatted string.
It is passed a single argument (a table of properties) and should return the final string to store into the form table
slot. If it returns {nil}, the default algorithm (see above) is invoked. The property table passed in has the following
properties:
* `slot`: The slot being processed.
* `formval_spans`: A list of strings, the formatted form value spans.
* `tr_spans`: A list of strings, the formatted transliteration spans. If there is no transliteration, this will be an
empty list.
A custom `join_spans` is provided by [[Module:de-verb]], which concatenates the form value spans vertically (using
{"<br />"}) instead of horizontally using a comma, as is normal; this is because there is no translit and the form
values are often long, containing extra words attached during `generate_link()`. The only exception is the `aux` slot
holding the auxiliaries, which is concatenated horizontally using {" or "}. [[Module:de-adjective]] similarly provides
a custom `join_spans` function that concatenates the form value spans vertically.
]==]
function export.show_forms(formtable, props)
local footnote_obj = props.create_footnote_obj and props.create_footnote_obj() or export.create_footnote_obj()
local function fetch_formval_and_translit(entry, remove_links)
local formval, translit
if type(entry) == "table" then
formval, translit = entry.form, entry.translit
else
formval = entry
end
if remove_links then
formval = m_links.remove_links(formval)
end
return formval, translit
end
local lemma_formvals = {}
for _, lemma in ipairs(props.lemmas) do
local lemma_formval, _ = fetch_formval_and_translit(lemma)
insert_if_not(lemma_formvals, lemma_formval)
end
formtable.lemma = #lemma_formvals > 0 and concat(lemma_formvals, ", ") or
mw.loadData(headword_data_module).pagename
-- For safety, since we in-place modify `lemmas` usually before processing a given slot, make a copy.
local props_lemmas = shallow_copy(props.lemmas)
for i, lemma in ipairs(props_lemmas) do
props_lemmas[i] = shallow_copy(lemma)
end
local function do_slot(slot, accel_tag_set)
local formobjs = formtable[slot]
if formobjs then
if type(formobjs) ~= "table" then
error("Internal error: For slot '" .. slot .. "', expected table but saw " .. dump(formobjs))
end
-- Maybe canonicalize the form values (e.g. remove variant codes and monosyllabic accents).
if props.canonicalize then
for _, form in ipairs(formobjs) do
form.form = props.canonicalize(form.form) or form.form
end
end
-- Preprocess the forms as a whole if called for.
if props.preprocess_forms then
formobjs = props.preprocess_forms {
slot = slot,
forms = formobjs,
accel_tag_set = accel_tag_set,
footnote_obj = footnote_obj,
} or formobjs
end
-- Maybe deduplicate form values (happens e.g. in Russian with two terms with the same Russian form but
-- different translits).
if not props.no_deduplicate_forms then
local deduped_formobjs = {}
for i, form in ipairs(formobjs) do
local function combine_forms(existing_form, dup_form, pos)
assert(existing_form.form == dup_form.form)
-- Combine footnotes.
existing_form.footnotes = export.combine_footnotes(existing_form.footnotes, dup_form.footnotes)
-- If translit is being generated, and there's manual translit associated with either form, we
-- need to generate any missing translits and combine them, taking into account the fact that a
-- translit value may actually be a list of translits (particularly with the existing form if we
-- already combined an item with manual translit into it).
if props.include_translit and form_value_transliterable(existing_form.form) and (
existing_form.translit or dup_form.translit) then
local combined_translit
if not existing_form.translit then
combined_translit = {
props_transliterate(props, m_links.remove_links(existing_form.form))
}
elseif type(existing_form.translit) == "string" then
combined_translit = {existing_form.translit}
else
combined_translit = existing_form.translit
end
local dup_form_translit = dup_form.translit
if not dup_form_translit then
-- dup_form.form is the same as existing_form.form (see assert above), but this is
-- defensive programming in case that changes
dup_form_translit = {props_transliterate(props, m_links.remove_links(dup_form.form))}
elseif type(dup_form_translit) == "string" then
dup_form_translit = {dup_form_translit}
end
for _, translit in ipairs(dup_form_translit) do
insert_if_not(combined_translit, translit)
end
existing_form.translit = combined_translit
end
if props.combine_metadata_during_dedup then
props.combine_metadata_during_dedup {
slot = slot,
existing_form = existing_form,
existing_form_pos = pos,
dup_form = dup_form,
dup_form_pos = i,
}
end
end
insert_if_not(deduped_formobjs, form, {
key = function(formobj) return formobj.form end,
combine = combine_forms,
})
end
formobjs = deduped_formobjs
end
-- Add acceleration info to form objects.
for i, form in ipairs(formobjs) do
local formval = form.form
if not form_value_transliterable(formval) then
form.formval_for_link = formval
else
local formval_for_link
formval_for_link = formval
-- remove redundant link surrounding entire form
formval_for_link = export.remove_redundant_links(formval_for_link)
form.formval_for_link = formval_for_link
-------------------- Compute the accelerator object. -----------------
local accel_obj
-- Check if form still has links; if so, don't add accelerators because the resulting entries will
-- be wrong.
if props_lemmas[1] and not form.no_accel and accel_tag_set ~= "-" and
not formval_for_link:find("%[%[") then
-- If there is more than one form or more than one lemma, things get tricky. Often, there are
-- the same number of forms as lemmas, e.g. for Ukrainian [[зимовий]] "wintry; winter (rel.)",
-- which can be stressed зимо́вий or зимови́й with corresponding masculine/neuter genitive
-- singulars зимо́вого or зимово́го etc. In this case, usually the forms and lemmas match up so
-- we do this. If there are different numbers of forms than lemmas, it's usually one lemma
-- against several forms e.g. Ukrainian [[міст]] "bridge" with genitive singular мо́сту or моста́
-- (accent patterns b or c) or [[ложка|ло́жка]] "spoon" with nominative plural ло́жки or ложки́
-- (accent patterns a or c). Here, we should assign the same lemma to both forms. The opposite
-- can happen, e.g. [[черга]] "turn, queue" stressed че́рга or черга́ with nominative plural only
-- че́рги (accent patterns a or d). Here we should assign both lemmas to the same form. In more
-- complicated cases, with more than one lemma and form and different numbers of each, we try
-- to align them as much as possible, e.g. if there are somehow eight forms and three lemmas,
-- we assign lemma 1 to forms 1-3, lemma 2 to forms 4-6 and lemma 3 to forms 7 and 8, and
-- conversely if there are somehow three forms and eight lemmas. This is likely to be wrong, but
-- (a) there's unlikely to be a single algorithm that works in all such circumstances, and (b)
-- these cases are vanishingly rare or nonexistent. Properly we should try to remember which
-- form was generated by which lemma, but that is significant extra work for little gain.
local first_lemma, last_lemma
if #formobjs >= #props_lemmas then
-- More forms than lemmas. Try to even out the forms assigned per lemma.
local forms_per_lemma = math.ceil(#formobjs / #props_lemmas)
first_lemma = math.floor((i - 1) / forms_per_lemma) + 1
last_lemma = first_lemma
else
-- More lemmas than forms. Try to even out the lemmas assigned per form.
local lemmas_per_form = math.ceil(#props_lemmas / #formobjs)
first_lemma = (i - 1) * lemmas_per_form + 1
last_lemma = math.min(first_lemma + lemmas_per_form - 1, #props_lemmas)
end
local accel_lemma, accel_lemma_translit
if first_lemma == last_lemma then
accel_lemma, accel_lemma_translit =
fetch_formval_and_translit(props_lemmas[first_lemma], "remove links")
else
accel_lemma = {}
accel_lemma_translit = {}
for j=first_lemma, last_lemma do
local this_accel_lemma, this_accel_lemma_translit =
fetch_formval_and_translit(props_lemmas[j], "remove links")
-- Do not use insert() especially for the translit because it may be nil and in
-- that case we want gaps in the array.
accel_lemma[j - first_lemma + 1] = this_accel_lemma
accel_lemma_translit[j - first_lemma + 1] = this_accel_lemma_translit
end
end
local accel_translit
if props.include_translit and form.translit then
if type(form.translit) == "table" then
accel_translit = concat(form.translit, ", ")
elseif type(form.translit) == "string" then
accel_translit = form.translit
else
error(("Internal error: For slot '%s', form translit is not a table or string: %s"):
format(slot, dump(form.translit)))
end
end
accel_obj = {
form = accel_tag_set,
translit = accel_translit,
lemma = accel_lemma,
lemma_translit = props.include_translit and accel_lemma_translit or nil,
}
end
-- Postprocess if requested.
if props.transform_accel_obj then
accel_obj = props.transform_accel_obj(slot, form, accel_obj)
end
form.accel_obj = accel_obj
end
end
-- Format the form objects into a string for insertion into the table.
local formatted_forms
if props.format_forms then
formatted_forms = props.format_forms {
slot = slot,
forms = formobjs,
footnote_obj = footnote_obj,
}
end
if not formatted_forms then
-- Default algorithm: Separate form values and translits and concatenate on separate lines.
-- Form values have already been deduplicated but we may need to deduplicate translits (this happens
-- e.g. in Arabic where there may be multiple ways of spelling a hamza in the Arabic script but only
-- one way in transliteration).
local formval_spans = {}
local tr_spans = {}
for i, form in ipairs(formobjs) do
local link
if props.generate_link then
link = props.generate_link {
slot = slot,
pos = i,
form = form,
footnote_obj = footnote_obj,
}
end
if not link then
link = m_links.full_link {
lang = props.lang, term = form.formval_for_link, tr = "-", accel = form.accel_obj
} .. export.get_footnote_text(form.footnotes, footnote_obj)
end
formval_spans[i] = link
if props.include_translit then
local translits = form.translit or props_transliterate(props, m_links.remove_links(form.form))
if type(translits) == "string" then
translits = {translits}
end
for _, tr in ipairs(translits) do
local tr_for_tag = tr -- formerly may have differed due to old-style footnote symbols
insert_if_not(tr_spans, {
tr_for_tag = tr_for_tag,
footnotes = form.footnotes,
}, {
key = function(trobj) return trobj.tr_for_tag end,
combine = function(trobj, newtrobj)
-- Combine footnotes.
trobj.footnotes = export.combine_footnotes(trobj.footnotes, newtrobj.footnotes)
end,
})
end
end
end
for i, tr_span in ipairs(tr_spans) do
local formatted_tr
if props.format_tr then
formatted_tr = props.format_tr {
slot = slot,
pos = i,
tr_for_tag = tr_span.tr_for_tag,
footnotes = tr_span.footnotes,
footnote_obj = footnote_obj,
}
end
if not formatted_tr then
formatted_tr = require(script_utilities_module).tag_translit(tr_span.tr_for_tag, props.lang,
"default", " style=\"color: var(--wikt-palette-grey-8,#888);\"") ..
export.get_footnote_text(tr_span.footnotes, footnote_obj)
end
tr_spans[i] = formatted_tr
end
if props.join_spans then
formatted_forms = props.join_spans {
slot = slot,
formval_spans = formval_spans,
tr_spans = tr_spans,
}
end
if not formatted_forms then
local formval_span = concat(formval_spans, ", ")
local tr_span
if #tr_spans > 0 then
tr_span = concat(tr_spans, ", ")
end
if tr_span then
formatted_forms = formval_span .. "<br />" .. tr_span
else
formatted_forms = formval_span
end
end
end
formtable[slot] = formatted_forms
else
formtable[slot] = "—"
end
end
iterate_slot_list_or_table(props, do_slot)
formtable.footnote = concat(footnote_obj.notes, "<br />")
end
--[==[
Find the inflection spec for a given lemma by scraping the contents of the section for the lemma's language, looking
for the appropriate inflection template (which may in some cases be a headword template with inflections specified in
the headword, as for {{tl|en-verb}}). An inflection ID can be given; in that case, the value of the appropriate ID param
(usually `id=`) must match the specified ID; otherwise, any inflection template call of the right name will work. If
anything goes wrong in the process, a string is returned describing the error message; otherwise an object is returned,
where `template` is the template found (an object of the form returned by `find_templates` in
[[Module:template parser]]).
There is one param, an object with the following fields:
* `lemma`: The page to scrape for inflection calls.
* `langname`: The name of the language of the lemma (e.g. {"English"} or {"Icelandic"}). Only that section is scraped.
* `infltemp`: A string specifying the name of the template containing the inflections, or a function of one argument,
the template object (an object of the form returned by `find_templates` in [[Module:template parser]]), which should
return true if the given object specifies an appropriate inflection template.
* `idparam`: The name of the parameter holding the inflection ID used to disambiguate lemmas with multiple inflections.
* `inflid`: The inflection ID that must match the value of the `idparam` parameter specified by the inflection template.
If not specified, there must be exactly one matching inflection template present, and it must not have a value given
for the `idparam` parameter. Otherwise, all matching inflection templates must have a value specified for the
`idparam` parameter of the template, and there must be exactly one template whose `idparam` parameter value is the
same as the value of `inflid`.
Find the inflection spec by scraping the contents of the Icelandic section of `lemma`, looking for `infltemp` calls
(where template is e.g. "is-ndecl", "is-adecl" or "is-conj") If `inflid` is given, it must match the value of the
|id= param specified to the inflection template; otherwise, any inflection template call will work. If anything goes
wrong in the process, a string is returned describing the error message; otherwise a table of inflections is
returned, each containing a field `infl` with the inflection spec. The inflection spec comes from the |deriv=,
|deriv2=, etc. params in the inflection template if specified and `is_deriv` is given; otherwise from 1=, 2=, etc.
If `allow_empty_infl` is given, a missing inflection spec in 1= is allowed and converted to an empty string;
otherwise, an error is signaled.
]==]
function export.scrape_inflection(data)
local langname, lemma, infltemp, inflid, idparam =
data.langname, data.lemma, data.infltemp, data.inflid, data.idparam
local lang_lemma = ("%s base lemma '[[%s]]'"):format(langname, lemma)
local title = new_title(lemma)
if title then
local content = title:getContent()
if content then
local langtext = require(pages_module).get_section(content, langname)
if langtext then
local inflobjs_by_id = {}
local inflobjs_without_id = {}
local ordered_seen_ids = {}
for template in require(template_parser_module).find_templates(langtext) do
local matches
if type(infltemp) == "string" then
matches = template:get_name() == infltemp
else
matches = infltemp(template)
end
if matches then
local inflobj = {template = template}
local args = template:get_arguments()
local tid = args[idparam]
if tid then
if inflobjs_by_id[tid] then
return ("For %s base lemma '[[%s]]', saw id='%s' twice"):format(
langname, lemma, tid
)
end
inflobjs_by_id[tid] = inflobj
insert_if_not(ordered_seen_ids, tid)
else
insert(inflobjs_without_id, inflobj)
end
end
end
local function concat_ordered_seen_ids()
local quoted_seen_ids = {}
for _, seen_id in ipairs(ordered_seen_ids) do
insert(quoted_seen_ids, "'" .. seen_id .. "'")
end
return m_table.serialCommaJoin(quoted_seen_ids, {dontTag = true})
end
local formatted_template = type(infltemp) == "string" and ("[[Template:%s]]"):format(infltemp) or
"inflection template"
local formatted_template_sing_article = type(infltemp) == "string" and
("[[Template:%s]]"):format(infltemp) or "an inflection template"
local formatted_template_plural = type(infltemp) == "string" and "'s" or "s"
if ordered_seen_ids[1] and inflobjs_without_id[1] then
return ("For %s, saw %s %s%s with id=%s as well as %s %s%s without ID; this is not allowed; " ..
"with multiple %s calls, all must have id= params"):format(lang_lemma, #ordered_seen_ids,
formatted_template, ordered_seen_ids[2] and formatted_template_plural or "",
concat_ordered_seen_ids(), #inflobjs_without_id, formatted_template,
inflobjs_without_id[2] and formatted_template_plural or "", formatted_template)
elseif not ordered_seen_ids[1] and not inflobjs_without_id[1] then
return ("For %s, found %s section but couldn't find any calls to %s"):format(
lang_lemma, langname, formatted_template_sing_article)
elseif #inflobjs_without_id > 1 then
return ("For %s, found %s %s%s without ID's; this is not allowed; with multiple %s calls, " ..
"all must have id= params"):format(lang_lemma, #inflobjs_without_id, formatted_template,
formatted_template_plural, formatted_template)
elseif inflid then
if inflobjs_by_id[inflid] then
return inflobjs_by_id[inflid]
elseif ordered_seen_ids[1] then
return ("For %s, found %s section but couldn't find any inflections matching ID '%s'; " ..
"instead found ID's %s; you may have misspelled the ID"):format(lang_lemma, langname,
inflid, concat_ordered_seen_ids())
else
return ("For %s, found %s section with a single %s without ID, but ID requirement '%s' " ..
"specified; consider removing the ID requirement"):format(lang_lemma, langname,
formatted_template, inflid)
end
elseif inflobjs_without_id[1] then
-- only one infl template, and it doesn't have an id=; return it
return inflobjs_without_id[1]
elseif ordered_seen_ids[2] then
return ("For %s, saw %s %s%s with id=%s but with a request to return the inflection without " ..
"ID; consider adding an ID restriction to the scrape request, e.g. '@@:%s' for " ..
"self-scraping or '@%s:%s' for scraping from another page"):format(lang_lemma,
#ordered_seen_ids, formatted_template, formatted_template_plural, concat_ordered_seen_ids(),
ordered_seen_ids[1], usub(lemma, 1, 1), ordered_seen_ids[1])
else
return ("For %s, found %s section with a single %s with id=%s, but the scrape request didn't " ..
"specify an ID; consider removing the id= param from the %s call unless you expect to add " ..
"more such calls to the page in the future (in which case add the ID to the scrape request, " ..
"e.g. '@@:%s' for self-scraping or '@%s:%s' for scraping from another page"):format(lang_lemma,
langname, formatted_template, concat_ordered_seen_ids(), formatted_template,
ordered_seen_ids[1], usub(lemma, 1, 1), ordered_seen_ids[1])
end
else
return ("For %s, page exists but has no %s section"):format(lang_lemma, langname)
end
else
return ("For %s, couldn't fetch contents for page; page may not exist"):format(lang_lemma)
end
else
return ("Bad %s; couldn't create title object"):format(lang_lemma)
end
end
return export
htx0q5b25q5r599t1ps38dw6lkwlswa
Template:De-verb/doc
10
1426056
9938451
9521771
2026-10-04T18:20:08Z
TongcyDai
53191
加上大寫可分成分的例子(Rad.fahren)
9938451
wikitext
text/x-wiki
{{documentation subpage}}
==简介==
模板使用的参数与{{temp|de-conj-auto}}一样,会生成德语动词的合适标题行。您应该从{{temp|de-conj-auto}}复制参数给{{temp|de-verb}}。
==范例==
===弱变化动词===
<code><nowiki>{{de-verb}}</nowiki></code> (位于{{m|de|herrschen}}) ⇒<br style="line-height: 200%;"/>
{{de-verb|herrschen}}
<code><nowiki>{{de-verb}}</nowiki></code> (位于{{m|de|spazieren}}) ⇒<br style="line-height: 200%;"/>
{{de-verb|spazieren}}
{{temp demo|de-verb|führen<haben,sein>}}
{{temp demo|de-verb|an.beraumen}}
{{temp demo|de-verb|wieder.gut.machen}}
<code><nowiki>{{de-verb}}</nowiki></code>(位于{{m|de|atmen}}) ⇒<br style="line-height: 200%;"/>
{{de-verb|atmen}}
<code><nowiki>{{de-verb}}</nowiki></code> (位于{{m|de|verhandeln}}) ⇒<br style="line-height: 200%;"/>
{{de-verb|verhandeln}}
<code><nowiki>{{de-verb}}</nowiki></code> (位于{{m|de|geifern}}) ⇒<br style="line-height: 200%;"/>
{{de-verb|geifern}}
<code><nowiki>{{de-verb}}</nowiki></code> (位于{{m|de|entern}}) ⇒<br style="line-height: 200%;"/>
{{de-verb|entern}}
<code><nowiki>{{de-verb}}</nowiki></code> (位于{{m|de|fensterln}}) ⇒<br style="line-height: 200%;"/>
{{de-verb|fensterln}}
{{temp demo|de-verb|offenbaren<-ge,+ge>}}
{{temp demo|de-verb|knien<einfix>}}
{{temp demo|de-verb|bringen<brachte,gebracht,brächte>}}
{{temp demo|de-verb|senden<sendete:sandte,gesendet:gesandt>}}
{{temp demo|de-verb|((managen,managen<managete,gemanaget:gemanaged.einfix.[更罕用]>))}}
<code><nowiki>{{de-verb|[[Hand|Hände]]_[[schütteln]]}}</nowiki></code> ⇒<br style="line-height: 200%;"/>
{{de-verb|[[Hand|Hände]]_[[schütteln]]}}
<code><nowiki>{{de-verb|[[sich]]<accpron>_[[auf]]_[[sein]]en<pron>_[[Lorbeer]]en_[[aus.ruhen]]}}</nowiki></code> ⇒<br style="line-height: 200%;"/>
{{de-verb|[[sich]]<accpron>_[[auf]]_[[sein]]en<pron>_[[Lorbeer]]en_[[aus.ruhen]]}}
===强变化动词===
{{temp demo|de-verb|singen<sang,gesungen,sänge>}}
{{temp demo|de-verb|geben<gibt#gab,gegeben,gäbe>}}
{{temp demo|de-verb|laufen<läuft#lief,gelaufen.sein>}}
{{temp demo|de-verb|Rad.fahren<fährt#fuhr,gefahren,führe.sein>}}
{{temp demo|de-verb|speien<spie,gespien>}}
{{temp demo|de-verb|fahren<fährt#fuhr,gefahren,führe.haben,sein>}}
{{temp demo|de-verb|auf.bekommen<bekam,bekommen,bekäme>}}
{{temp demo|de-verb|ab.blasen<bläst#blies,geblasen>}}
{{temp demo|de-verb|über.treten<tritt-#trat,getreten,träte.sein>}}
{{temp demo|de-verb|übertreten<übertritt-#übertrat,übertreten,überträte>}}
{{temp demo|de-verb|bersten<birst-#barst,geborsten,bärste>}}
{{temp demo|de-verb|fechten<ficht-:fechtet#focht,gefochten,föchte>}}
{{temp demo|de-verb|beheben<behob:behub[古舊],behoben,behöbe:behübe>}}
{{temp demo|de-verb|spazieren_gehen<ging,gegangen.sein>}}
{{temp demo|de-verb|zu.treffen<trifft#traf,getroffen,träfe.only3s>}}
{{temp demo|de-verb|aus.erkiesen<erkor[古舊],erkoren[古舊],erköre[古舊].inf[棄用]>}}
<code><nowiki>{{de-verb|aus.schneiden<schnitt,geschnitten> [[und]] ein.fügen<>}}</nowiki></code> ⇒<br style="line-height: 200%;"/>
{{de-verb|aus.schneiden<schnitt,geschnitten> [[und]] ein.fügen<>}}
===过去现在动词===
{{temp demo|de-verb|können<pretpres.kann#konnte,gekonnt,könnte>}}
===不规则动词===
{{temp demo|de-verb|sein<irreg.sein>}}
{{temp demo|de-verb|weh.tun<irreg>}}
{{temp demo|de-verb|behaben<irreg>}}
{{temp demo|de-verb|auf.behaben<irreg>}}
{{temp demo|de-verb|auf.thun<irreg>}}
==手动参数==
有时可能会遇到(尤其是已弃用或方言的)某些{{temp|de-conj-auto}}无法处理的动词。虽然更长远的解决方法是给{{temp|de-conj-auto}}添加这个动词的支持,但目前您可以手动指定该动词的重要词形。
===范例===
<code><nowiki>{{de-verb|class=6|schläht|schlug|geschlagen|schlüge|aux=haben}}</nowiki></code> ⇒<br style="line-height: 200%;"/>
{{de-verb|head=schlahn|class=6|schläht|schlug|geschlagen|schlüge|aux=haben}}
<code><nowiki>{{de-verb|class=irregstrong|staht|stand|past2=stund|gestanden|pp2=gestahn}}</nowiki></code> ⇒<br style="line-height: 200%;"/>
{{de-verb|head=stahn|class=irregstrong|staht|stand|past2=stund|gestanden|pp2=gestahn}}
===参数===
; {{para|1|req=1}}、{{para|pres2}}、{{para|pres3}}, ...
: 指定第三人称单数现在时。<code>-</code>表示没有。
; {{para|2|req=1}}、{{para|past2}}、{{para|past3}}, ...
: 指定第一/第三人称单数过去式。<code>-</code>表示没有。
; {{para|3|req=1}}、{{para|pp2}}、{{para|pp3}}, ...
: 指定过去分词。<code>-</code>表示没有。
; {{para|4}}、{{para|pastsubj2}}、{{para|pastsubj3}}, ...
: 指定第一/第三人称单数过去虚拟式。<code>-</code>表示没有。若省略,则认为使用与过去式相同的词干。
; {{para|aux}}、{{para|aux2}}, ...
: 指定助词(一般是<code>haben</code>或<code>sein</code>)。
; {{para|class}}、{{para|class2}}, ...
: 指定词类。允许的值有<code>weak</code>(弱变化)、<code>1</code> .. <code>7</code>(强变化动词类别)、<code>irregweak</code>(不规则弱变化)、<code>irregstrong</code>(不规则强变化)、<code>mixed</code>(混合强弱)、<code>pretpres</code>(过去现在)、<code>irreg</code>(不规则)。
<includeonly>
{{hwcat}}
</includeonly>
2gtw4qzt9jgaxaqbvqwbuu2jegzlsvz
𰷭
0
1449075
9938462
5864108
2026-10-04T23:40:47Z
Fglffer
55252
9938462
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=154|rad=贝|as=14|sn=18|four=|canj=|ids=⿰贝臧}}
====來源====
* {{Han ref|kx=|dkj=|dj=|hdz=|uh=30DED}}
==漢語==
{{zh-see|贓|ns}}
5gqv5r5ywqi73gurxol8rdt5zhptna4
Module:De-verb
828
1450782
9938427
9495934
2026-10-04T14:48:41Z
TongcyDai
53191
同步 enwikt(rev 91628980):json=、pagename=、Rad.fahren 式可分前綴、註腳與 accel 修正;本地化
9938427
Scribunto
text/plain
local export = {}
--[=[
Authorship: Ben Wing <benwing2>
]=]
--[=[
TERMINOLOGY:
-- "slot" = A particular combination of tense/mood/person/number/etc.
Example slot names for verbs are "pres_1s" (present first singular) and
"subc_subii_3p" (subordinate-clause subjunctive II third plural).
Each slot is filled with zero or more forms.
-- "form" = The conjugated German form representing the value of a given slot.
-- "lemma" = The dictionary form of a given German term. For German, always the infinitive.
]=]
--[=[
FIXME:
1. Handle fensterln. (DONE)
2. Handle spie- past tense of speien. (DONE)
3. Make sure rathen, verheirathen work. (DONE)
4. Modify einfix to better handle managen, framen. (DONE)
5. Use variant codes so variant imperatives with and without -e match up in conjoined verbs e.g. [[ausschneiden und einfügen]].
6. In conjoined verbs e.g. [[ausschneiden und einfügen]], don't repeat auxiliaries.
7. Support 'nosplitprefix' meaning that no forms exist where the prefix is split form the main verb, e.g.
[[voreinstellen]]. (DONE)
--]=]
local lang = require("Module:languages").getByCode("de")
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 rfind = m_string_utilities.find
local rmatch = m_string_utilities.match
local rsplit = m_string_utilities.split
local lcfirst = m_string_utilities.lcfirst
local function link_term(term, face)
return m_links.full_link({ lang = lang, term = term }, face)
end
local vowel = "aeiouyäëïöüÿáéíóúýàèìòùỳâêîôûŷãẽĩõũỹ"
local vowel_c = "[" .. vowel .. "]"
local not_vowel_c = "[^" .. vowel .. "]"
local function ends_in_dt(stem)
return stem:find("[dt]h?$")
end
local inseparable_prefixes = {
"be", "emp", "ent", "er", "ge", "miss", "miß", "ver", "zer",
-- can also be separable
"durch", "hinter", "über", "um", "unter", "voll", "wider", "wieder",
}
local wuerde = link_term("würde", "term")
local past_subjunctive_single_word_preferred = m_table.listToSet {
"haben", "sein", "können", "müssen", "dürfen", "mögen", "sollen", "wollen", "werden"
}
local past_subjunctive_single_word_preferred_footnote = "[更常用。避免使用帶" .. wuerde .. "的形式]"
local past_subjunctive_single_word_often_used = m_table.listToSet {
"bleiben", "brauchen", "bringen", "fallen", "finden", "geben", "gehen", "halten", "heißen", "heissen",
"kommen", "laufen", "lassen", "liegen", "nehmen", "sehen", "stehen", "tun", "thun", "wissen"
}
local past_subjunctive_single_word_often_used_footnote = "[這一形式和使用" .. wuerde .. "的用法均存在]"
local past_subjunctive_single_word_rare_footnote = "[罕用,除非在非常正式的場合,否則一般使用" .. wuerde .. "代替]"
local schst_footnote = "[德語區的口語中均有使用,且奧地利官方承認]"
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 persnum_to_index = {}
for k, v in pairs(person_number_list) do
persnum_to_index[v] = k
end
local imp_person_number_list = { "2s", "2p", }
local verb_slots_basic = {
{"infinitive", "inf"},
{"infinitive_linked", "inf"},
{"pres_part", "pres|part"},
{"perf_part", "past|part"},
{"zu_infinitive", "zu"}, -- will be handled specially by [[Module:accel/de]]
{"aux", "-"},
}
local verb_slots_subordinate_clause = {
}
local verb_slots_composed = {
}
-- 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 the set of inflection tags to add after the person/number tags,
-- or "-" to use "-" as the inflection tags (which indicates that no accelerator entry
-- should be generated).
local function add_slot_personal(verb_slots, slot_prefix, tag_suffix)
for persnum, persnum_tag in pairs(all_persons_numbers) do
local slot = slot_prefix .. "_" .. persnum
if tag_suffix == "-" then
table.insert(verb_slots, {slot, "-"})
else
table.insert(verb_slots, {slot, persnum_tag .. "|" .. tag_suffix})
end
end
end
add_slot_personal(verb_slots_basic, "pres", "pres")
add_slot_personal(verb_slots_basic, "subi", "sub:I")
add_slot_personal(verb_slots_basic, "pret", "pret")
add_slot_personal(verb_slots_basic, "subii", "sub:II")
table.insert(verb_slots_basic, {"imp_2s", "s|imp"})
table.insert(verb_slots_basic, {"imp_2p", "p|imp"})
add_slot_personal(verb_slots_subordinate_clause, "subc_pres", "dep|pres")
add_slot_personal(verb_slots_subordinate_clause, "subc_subi", "dep|sub:I")
add_slot_personal(verb_slots_subordinate_clause, "subc_pret", "dep|pret")
add_slot_personal(verb_slots_subordinate_clause, "subc_subii", "dep|sub:II")
add_slot_personal(verb_slots_composed, "perf_ind", "-")
add_slot_personal(verb_slots_composed, "perf_sub", "-")
add_slot_personal(verb_slots_composed, "plup_ind", "-")
add_slot_personal(verb_slots_composed, "plup_sub", "-")
table.insert(verb_slots_composed, {"futi_inf", "-"})
add_slot_personal(verb_slots_composed, "futi_subi", "-")
add_slot_personal(verb_slots_composed, "futi_ind", "-")
add_slot_personal(verb_slots_composed, "futi_subii", "-")
table.insert(verb_slots_composed, {"futii_inf", "-"})
add_slot_personal(verb_slots_composed, "futii_subi", "-")
add_slot_personal(verb_slots_composed, "futii_ind", "-")
add_slot_personal(verb_slots_composed, "futii_subii", "-")
local all_verb_slots = {}
for _, slot_and_accel in ipairs(verb_slots_basic) do
table.insert(all_verb_slots, slot_and_accel)
end
for _, slot_and_accel in ipairs(verb_slots_subordinate_clause) do
table.insert(all_verb_slots, slot_and_accel)
end
for _, slot_and_accel in ipairs(verb_slots_composed) do
table.insert(all_verb_slots, slot_and_accel)
end
local pronouns = { "ich", "du", "er", "wir", "ihr", "sie", }
local irreg_verbs = {
["haben"] = {
["pres"] = { "habe", "hast", "hat", "haben", "habt", "haben", },
["pret"] = { "hatte", "hattest", "hatte", "hatten", "hattet", "hatten", },
["subi"] = { "habe", "habest", "habe", "haben", "habet", "haben", },
["subii"] = { "hätte", "hättest", "hätte", "hätten", "hättet", "hätten", },
["imp"] = { {"hab", "habe"}, "habt", },
["presp"] = "habend",
["pp"] = "habt",
},
["sein"] = {
["pres"] = { "bin", "bist", "ist", "sind", "seid", "sind", },
["pret"] = { "war", "warst", "war", "waren", "wart", "waren", },
["subi"] = { "sei", {"seist", "seiest"}, "sei", "seien", "seiet", "seien", },
["subii"] = { "wäre", {"wärst", "wärest"}, "wäre", "wären", {"wärt", "wäret"}, "wären", },
["imp"] = { "sei", "seid", },
["presp"] = "seiend",
["pp"] = "wesen",
},
["tun"] = {
["pres"] = { "tue", "tust", "tut", "tun", "tut", "tun", },
["pret"] = { "tat", {"tatest", "tatst"}, "tat", "taten", "tatet", "taten", },
["subi"] = { "tue", "tuest", "tue", "tuen", "tuet", "tuen", },
["subii"] = { "täte", "tätest", "täte", "täten", "tätet", "täten", },
["imp"] = { {"tu", "tue"}, "tut", },
["presp"] = "tuend",
["pp"] = "tan",
},
-- FIXME, maybe we should construct this automatically from "tun".
["thun"] = {
["pres"] = { "thue", "thust", "thut", "thun", "thut", "thun", },
["pret"] = { "that", {"thatest", "thatst"}, "that", "thaten", "thatet", "thaten", },
["subi"] = { "thue", "thuest", "thue", "thuen", "thuet", "thuen", },
["subii"] = { "thäte", "thätest", "thäte", "thäten", "thätet", "thäten", },
["imp"] = { {"thu", "thue"}, "thut", },
["presp"] = "thuend",
["pp"] = "than",
},
["werden"] = {
["pres"] = { "werde", "wirst", "wird", "werden", "werdet", "werden", },
["pret"] = {
{"wurde", {form = "ward", footnotes = {"[古舊]"}}},
{"wurdest", {form = "wardst", footnotes = {"[古舊]"}}},
{"wurde", {form = "ward", footnotes = {"[古舊]"}}},
"wurden",
"wurdet",
"wurden",
},
["subi"] = { "werde", "werdest", "werde", "werden", "werdet", "werden", },
["subii"] = { "würde", "würdest", "würde", "würden", "würdet", "würden", },
["imp"] = { {"werd", "werde"}, "werdet", },
["presp"] = "werdend",
["pp"] = "worden",
},
}
local reflexive_possessive_forms = {
["sein"] = {"mein", "dein", "sein", "unser", "euer", "ihr"},
["seine"] = {"meine", "deine", "seine", "unsere", "eure", "ihre"},
["seinen"] = {"meinen", "deinen", "seinen", "unseren", "euren", "ihren"},
["seinem"] = {"meinem", "deinem", "seinem", "unserem", "eurem", "ihrem"},
["seiner"] = {"meiner", "deiner", "seiner", "unserer", "eurer", "ihrer"},
["seines"] = {"meines", "deines", "seines", "unseses", "eures", "ihres"},
}
local reflexive_case_forms = {
["accpron"] = {"mich", "dich", "sich", "uns", "euch", "sich"},
["datpron"] = {"mir", "dir", "sich", "uns", "euch", "sich"},
}
local function skip_slot(base, slot)
if not slot:find("[123]") then
-- Don't skip non-personal slots.
return false
end
if base.nofinite then
return true
end
if base.nosplitprefix then
-- Verbs that don't allow split prefixes, e.g. [[voreinstellen]], don't have forms where the prefix is
-- split from the main verb, including the present, preterite, subjunctive I and II and imperative (but
-- not the subordinate clause equivalents).
return slot:find("^pre[st]") or slot:find("^subi") or slot:find("^imp_")
end
if base.only3s and not slot:find("3s") or
base.only3sp and not slot:find("3[sp]") then
return true
end
return false
end
local function strip_spaces(text)
return text:gsub("^%s*(.-)%s*", "%1")
end
local function escape_sein_sich_indicators(arg1)
if not arg1:find("pron>") then
return arg1
end
local segments = put.parse_balanced_segment_run(arg1, "<", ">")
-- Loop over every other segment. The even-numbered segments are angle-bracket specs while
-- the odd-numbered segments are the text between them.
for i = 2, #segments - 1, 2 do
if segments[i] == "<accpron>" then
segments[i] = "⦃⦃accpron⦄⦄"
elseif segments[i] == "<datpron>" then
segments[i] = "⦃⦃datpron⦄⦄"
elseif segments[i] == "<pron>" then
segments[i] = "⦃⦃pron⦄⦄"
end
end
return table.concat(segments)
end
local function undo_escape_form(form)
-- assign to var to throw away second value
local newform = form:gsub("⦃⦃", "<"):gsub("⦄⦄", ">")
return newform
end
local function remove_sein_sich_indicators(form)
-- assign to var to throw away second value
local newform = form:gsub("⦃⦃.-⦄⦄", "")
return newform
end
local function replace_sein_sich_indicators(slot, form)
if not form:find("⦃") then
return form
end
local persnum = slot:match("^.*_([123][sp])$")
local index
if persnum then
index = persnum_to_index[persnum]
else
index = 3
end
form = form:gsub("sich(%]*)⦃⦃accpron⦄⦄", function(brackets)
return reflexive_case_forms.accpron[index] .. brackets
end)
form = form:gsub("sich(%]*)⦃⦃datpron⦄⦄", function(brackets)
return reflexive_case_forms.datpron[index] .. brackets
end)
form = form:gsub("(seine?[mnrs]?)(%]*)⦃⦃pron⦄⦄", function(sein_form, brackets)
if reflexive_possessive_forms[sein_form] then
return reflexive_possessive_forms[sein_form][index] .. brackets
else
error("Unrecognized sein-form '" .. sein_form .. "' in slot " .. slot .. ": " .. undo_escape_form(form))
end
end)
form = form:gsub("sein%]%]e?[mnrs]?⦃⦃pron⦄⦄", function(sein_ending)
local sein_form = "sein" .. sein_ending
if reflexive_possessive_forms[sein_form] then
return reflexive_possessive_forms["sein"][index] .. "|" .. reflexive_possessive_forms[sein_form][index] .. "]]"
else
error("Unrecognized sein-form '" .. sein_form .. "' in slot " .. slot .. ": " .. undo_escape_form(form))
end
end)
if form:find("⦃⦃") or form:find("⦄⦄") then
error("Unrecognized pronoun substitution in slot " .. slot .. ": " .. undo_escape_form(form))
end
return form
end
local function combine_stem_ending(slot, stem, ending)
local ending_with_pound = ending .. "#"
if ending_with_pound:find("^st[ #]") then
if rfind(stem, "[sxzß]$") then
ending = ending:gsub("^s", "")
elseif stem:find("st$") then
-- bersten
ending = ending:gsub("^st", "")
end
elseif ending_with_pound:find("^t[ #]") and stem:find("th?$") then
ending = ending:gsub("^t", "")
end
return replace_sein_sich_indicators(slot, stem .. ending)
end
local function add(base, slot, stems, endings, footnotes)
if skip_slot(base, slot) then
return
end
local function do_combine_stem_ending(stem, ending)
return combine_stem_ending(slot, stem, ending)
end
iut.add_forms(base.forms, slot, stems, endings, do_combine_stem_ending, nil, nil,
iut.combine_footnotes(footnotes, base.all_footnotes))
end
local function add_multi(base, slot, stems_and_endings, footnotes)
if skip_slot(base, slot) then
return
end
local function do_combine_stem_ending(stem, ending)
return combine_stem_ending(slot, stem, ending)
end
iut.add_multiple_forms(base.forms, slot, stems_and_endings, do_combine_stem_ending, nil, nil,
iut.combine_footnotes(footnotes, base.all_footnotes))
end
local function add3(base, slot, stems1, stems2, endings, footnotes)
return add_multi(base, slot, {stems1, stems2, endings}, footnotes)
end
local function add4(base, slot, stems1, stems2, stems3, endings, footnotes)
return add_multi(base, slot, {stems1, stems2, stems3, endings}, footnotes)
end
local function add5(base, slot, stems1, stems2, stems3, stems4, endings, footnotes)
return add_multi(base, slot, {stems1, stems2, stems3, stems4, endings}, footnotes)
end
local function get_subii_note(base)
if base.from_headword then
-- don't include autogenerated note if from_headword, so it doesn't end up in the headword qualifiers
return nil
end
if past_subjunctive_single_word_preferred[base.base_verb] then
return {past_subjunctive_single_word_preferred_footnote}
elseif past_subjunctive_single_word_often_used[base.base_verb] then
return {past_subjunctive_single_word_often_used_footnote}
end
return {past_subjunctive_single_word_rare_footnote}
end
local function add_zu_infinitive(base)
if base.any_pre_pref then
local zu
if base.pre_pref == "" or base.pre_pref:find(" $") then
zu = "zu "
else
zu = "zu"
end
add(base, "zu_infinitive", base.pre_pref .. zu, base.bare_infinitive)
end
end
local function add_present(base, pretpres)
local stems = base.infstem
local stems23 = base.pres_23 or stems
local function doadd(slot_pref, form_pref)
-- Do forms based off the infinitive stem.
for _, stemform in ipairs(stems) do
local prefixed_stem = form_pref .. stemform.form
local syncopated_stem = base.unstressed_el_er and prefixed_stem:gsub("e([lr])$", "%1")
local function addit(slot, stem, ending, footnotes)
add(base, slot_pref .. slot, stem, ending .. (slot_pref == "" and base.post_pref or ""),
iut.combine_footnotes(footnotes, stemform.footnotes))
end
-- first singular present indicative
if not pretpres then -- pres_1s for preterite-present verbs used pres23 stem
if base.unstressed_el_er then
addit("pres_1s", syncopated_stem, "e")
addit("pres_1s", prefixed_stem, "e")
addit("pres_1s", prefixed_stem, "")
else
addit("pres_1s", prefixed_stem, "e")
end
end
-- plural present indicative
local e_in_2p = ends_in_dt(prefixed_stem) or base.unstressed_e_infix
if e_in_2p then
addit("pres_2p", prefixed_stem, "et")
else
addit("pres_2p", prefixed_stem, "t")
end
if base.unstressed_el_er or base.unstressed_erl then
addit("pres_1p", prefixed_stem, "n")
addit("pres_3p", prefixed_stem, "n")
else
addit("pres_1p", prefixed_stem, "en")
addit("pres_3p", prefixed_stem, "en")
end
-- subjunctive I
addit("subi_1s", prefixed_stem, "e")
addit("subi_2s", prefixed_stem, "est")
addit("subi_3s", prefixed_stem, "e")
addit("subi_2p", prefixed_stem, "et")
if base.unstressed_el_er then
addit("subi_1s", syncopated_stem, "e")
addit("subi_2s", syncopated_stem, "est")
addit("subi_3s", syncopated_stem, "e")
addit("subi_2p", syncopated_stem, "et")
end
if base.unstressed_el_er then
addit("subi_1p", prefixed_stem, "n")
addit("subi_3p", prefixed_stem, "n")
else
addit("subi_1p", prefixed_stem, "en")
addit("subi_3p", prefixed_stem, "en")
end
-- imperative plural; most preterite-present verbs don't have it, and [[wissen]] is handled below
if slot_pref == "" and not pretpres then
if e_in_2p then
addit("imp_2p", prefixed_stem, "et")
else
addit("imp_2p", prefixed_stem, "t")
end
end
end
-- Do forms based off of pres23 stem (also includes pres_1sg in preterite-present verbs).
for _, stem23form in ipairs(stems23) do
local prefixed_stem23 = form_pref .. stem23form.form
local function addit(slot, stem, ending, footnotes)
add(base, slot_pref .. slot, stem, ending .. (slot_pref == "" and base.post_pref or ""),
iut.combine_footnotes(footnotes, stem23form.footnotes))
end
if pretpres then
-- Totally different code for preterite-present singular and imperative.
addit("pres_1s", prefixed_stem23, "")
addit("pres_2s", prefixed_stem23, "st")
addit("pres_3s", prefixed_stem23, "")
if slot_pref == "" and base.base_verb == "wissen" then
-- Only [[wissen]] among the preterite-present verbs has an imperative.
addit("imp_2s", "wiss", "e")
-- dewikt mentions 'wisset' as an alternative, but not in Duden
addit("imp_2p", "wiss", "t")
end
else
-- Normal code path.
local stem23_is_same_as_stem
for _, stemform in ipairs(stems) do
if stemform.form == stem23form.form then
stem23_is_same_as_stem = true
break
end
end
-- present 2/3 singular
local e_in_23s = base.unstressed_e_infix or stem23_is_same_as_stem and ends_in_dt(prefixed_stem23)
if e_in_23s then
addit("pres_2s", prefixed_stem23, "est")
addit("pres_3s", prefixed_stem23, "et")
else
addit("pres_2s", prefixed_stem23, "st")
if prefixed_stem23:find("sch$") then
addit("pres_2s", prefixed_stem23, "t",
not base.from_headword and {schst_footnote} or nil)
end
addit("pres_3s", prefixed_stem23, "t")
end
-- imperative singular; this may or may not be based off the pres23 stem
-- Specifically, if the pres23 stem is different from the infinitive stem and does not have an ä or ö
-- in it ([[fahren]], er [[fährt]] but imperative [[fahr]]/[[fahre]]; [[stoßen]], er [[stößt]] but
-- imperative [[stoß]]/[[stoße]]), use it. Don't add -e unless '.longimp' is given (for [[sehen]], with
-- imperatives [[sieh]] and [[siehe]]; but normally [[geben]] with imperative only [[gib]], similarly
-- for [[treten]], [[gelten]], [[bergen]], [[etc.]]). In all other cases, use the infinitive stem, and
-- under normal circumstances include two variants, without -e and with -e. We include only the variant
-- with -e if '.e' is given ([[atmen]], [[zeichnen]], etc.), and we include only the variant without -e
-- if '.shortimp' is given (unclear if this is needed for any verb).
if slot_pref == "" then
if not rfind(prefixed_stem23, "[äö]") and not stem23_is_same_as_stem then
addit("imp_2s", prefixed_stem23, "")
if base.longimp then
addit("imp_2s", prefixed_stem23, "e")
end
else
assert(form_pref == "")
for _, stemform in ipairs(stems) do
local function addimp(stem, ending)
add(base, "imp_2s", stem, ending .. base.post_pref, stemform.footnotes)
end
local stem = stemform.form
if base.unstressed_el_er then
local syncopated_stem = stem:gsub("e([lr])$", "%1")
addimp(syncopated_stem, "e")
end
if base.unstressed_e_infix then
addimp(stem, "e")
elseif base.shortimp then
addimp(stem, "")
else
addimp(stem, "")
addimp(stem, "e")
end
end
end
end
end
end
end
-- Do the basic forms
doadd("", "")
-- Also do the subordinate clause forms if any alternants have a prefix.
if base.any_pre_pref then
doadd("subc_", base.pre_pref)
end
-- Do the miscellaneous non-finite forms
add3(base, "pres_part", base.pre_pref, base.bare_infinitive, "d")
add_zu_infinitive(base)
end
-- Add the past forms and/or subjunctive II forms. `is_past` should be true if we're conjugating the past tense
-- (not the past subjunctive), in which case the stems in `stem` should be the actual 1s/3s forms, ending in -te
-- or -de if weak. If `is_past` is false, we're conjugating the past subjunctive. In that case, the stems passed
-- in should include -e if that needs to be preserved in all forms (specifically, for [[spie]] past of [[speien]];
-- syncopated #'spist' is not allowed). (In practice, we chop off the final -e of explicitly user-specified past
-- subjunctive forms and otherwise pass in the actual past tense. This means that user-specified past subjunctives
-- in -te (e.g. [[brächte]]) will be passed in as 'brächt' but past subjunctives defaulted from the past tense
-- will be passed in e.g. as 'lachte'. This works because for stems in -t and -d, the result is the same.)
local function add_past_or_subii(base, slot_pref, stems, is_past)
local function doadd(full_slot_pref, form_pref)
for _, stemform in ipairs(stems) do
local prefixed_stem = form_pref .. stemform.form
local ends_in_e = prefixed_stem:find("e$")
-- Normally, the weak past tense ends in -te and the strong past does not end in -e. An exception is
-- [[spie]] (past tense of [[speien]]), which will be treated as weak (superseded spellings like
-- 'spieen' will not be generated).
local is_strong = is_past and not ends_in_e
prefixed_stem = prefixed_stem:gsub("e$", "")
local stem_ends_in_dt = ends_in_dt(prefixed_stem)
local function addit(slot, ending, footnotes)
local subii_footnotes
if full_slot_pref:find("subii") then
subii_footnotes = get_subii_note(base)
end
add(base, full_slot_pref .. slot, prefixed_stem, ending .. (full_slot_pref == slot_pref and base.post_pref or ""),
iut.combine_footnotes(subii_footnotes, iut.combine_footnotes(footnotes, stemform.footnotes)))
end
if is_strong then
addit("1s", "")
addit("3s", "")
if not stem_ends_in_dt then
if rfind(prefixed_stem, "[sxzß]$") then
addit("2s", "est")
end
addit("2s", "st")
addit("2p", "t")
else
-- bitten -> batest or batst, similarly for laden, raten, etc.
addit("2s", "est")
if not prefixed_stem:find("st$") then
-- bersten
addit("2s", "st")
end
addit("2p", "et")
end
else
-- Weak past and past subjunctive have same endings when ending in -d or -t (always the case for weak past).
addit("1s", "e")
addit("3s", "e")
if not stem_ends_in_dt and not ends_in_e then
addit("2s", "est") -- more formal; FIXME: should we footnote this?
addit("2p", "et") -- more formal; FIXME: should we footnote this?
addit("2s", "st")
addit("2p", "t")
else
addit("2s", "est")
addit("2p", "et")
end
end
-- Both pasts, as well as past subjunctive, have same endings in 1p and 3p.
addit("1p", "en")
addit("3p", "en")
end
end
-- Do the basic forms
doadd(slot_pref, "")
-- Also do the subordinate clause forms if any alternants have a prefix.
if base.any_pre_pref then
doadd("subc_" .. slot_pref, base.pre_pref)
end
end
local conjs = {}
conjs["normal"] = function(base)
add_present(base)
add_past_or_subii(base, "pret_", base.past, "past")
add_past_or_subii(base, "subii_", base.past_sub or base.past)
end
conjs["pretpres"] = function(base)
add_present(base, "pretpres")
add_past_or_subii(base, "pret_", base.past, "past")
add_past_or_subii(base, "subii_", base.past_sub or base.past)
end
conjs["irreg"] = function(base)
local function doadd(slot_pref)
local function addit(slot, forms, footnotes)
if slot_pref == "" then
add3(base, slot, base.insep_prefix, forms, base.post_pref, footnotes)
else
add(base, slot_pref .. slot, base.pre_pref .. base.insep_prefix, forms, footnotes)
end
end
-- Do present, preterite, subjunctive I and II.
for _, slot_tense in ipairs({"pres", "pret", "subi", "subii"}) do
for index, forms in ipairs(base.irregverbobj[slot_tense]) do
local persnum = person_number_list[index]
local footnotes
if slot_tense == "subii" then
footnotes = get_subii_note(base)
end
addit(slot_tense .. "_" .. persnum, forms, footnotes)
end
end
-- Do imperative.
if slot_pref == "" then
for index, forms in ipairs(base.irregverbobj["imp"]) do
local persnum = imp_person_number_list[index]
addit("imp_" .. persnum, forms)
end
end
end
-- Do the basic forms
doadd("")
-- Also do the subordinate clause forms if any alternants have a prefix.
if base.any_pre_pref then
doadd("subc_")
end
-- Do the miscellaneous non-finite forms
iut.add_multiple_forms(base, "pp", {base.ge_prefix, base.insep_prefix, base.irregverbobj["pp"]},
-- We don't want to use combine_stem_ending because we want sein-sich indicators to be left alone,
-- so they get replaced later when constructing composed forms.
function(stem, ending) return stem .. ending end)
add(base, "perf_part", base.pre_pref, base.pp)
-- only [[werden]] by itself; not [[loswerden]], [[fertigwerden]], etc.
if base.lemma == "werden" then
iut.insert_form(base.forms, "perf_part", {form = "worden", footnotes = {"[作助動詞時]"}})
end
add(base, "pres_part", base.pre_pref .. base.insep_prefix, base.irregverbobj["presp"])
add_zu_infinitive(base)
end
local function add_composed_forms(base)
local function add_composed(tense_mood, index, persnum, auxforms, participle, suffix, footnotes)
local pers_auxforms = iut.convert_to_general_list_form(auxforms[index])
local linked_pers_auxforms = iut.map_forms(pers_auxforms, function(form) return "[[" .. form .. "]] " end)
add4(base, tense_mood .. "_" .. persnum, linked_pers_auxforms, "[[" .. base.pre_pref, participle, "]]" .. suffix, footnotes)
end
local function add_composed_perf(tense_mood, index, persnum, haben_auxforms, sein_auxforms, haben_suffix, sein_suffix)
for _, auxform in ipairs(base.aux) do
if auxform.form == "haben" then
add_composed(tense_mood, index, persnum, haben_auxforms, base.pp, haben_suffix, auxform.footnotes)
end
if auxform.form == "sein" then
add_composed(tense_mood, index, persnum, sein_auxforms, base.pp, sein_suffix, auxform.footnotes)
end
end
end
local haben_forms = irreg_verbs["haben"]
local sein_forms = irreg_verbs["sein"]
local werden_forms = irreg_verbs["werden"]
for index, persnum in ipairs(person_number_list) do
add_composed_perf("perf_ind", index, persnum, haben_forms["pres"], sein_forms["pres"], "", "")
add_composed_perf("perf_sub", index, persnum, haben_forms["subi"], sein_forms["subi"], "", "")
add_composed_perf("plup_ind", index, persnum, haben_forms["pret"], sein_forms["pret"], "", "")
add_composed_perf("plup_sub", index, persnum, haben_forms["subii"], sein_forms["subii"], "", "")
for _, mood in ipairs({"ind", "subi", "subii"}) do
local tense = mood == "ind" and "pres" or mood
add_composed("futi_" .. mood, index, persnum, werden_forms[tense], base.bare_infinitive, "")
add_composed_perf("futii_" .. mood, index, persnum, werden_forms[tense], werden_forms[tense], " [[haben]]", " [[sein]]")
end
end
add3(base, "futi_inf", "[[" .. base.pre_pref, base.bare_infinitive, "]] [[werden]]")
add5(base, "futii_inf", "[[" .. base.pre_pref, base.pp, "]] [[", base.aux, "]] [[werden]]")
end
local function handle_derived_slots(base)
-- Compute linked versions of potential lemma slots, for use in {{de-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
iut.insert_forms(base.forms, 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 conjugate_verb(base)
if not conjs[base.conj] then
error("Internal error: Unrecognized conjugation type '" .. base.conj .. "'")
end
conjs[base.conj](base)
add_composed_forms(base)
-- No overrides implemented currently.
-- process_slot_overrides(base)
handle_derived_slots(base)
end
local function parse_indicator_spec(angle_bracket_spec)
local base = {}
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 function fetch_specs(comma_separated_group, transform_form)
if not comma_separated_group then
return {{}}
end
local specs = {}
local colon_separated_groups = put.split_alternating_runs(comma_separated_group, ":")
for _, colon_separated_group in ipairs(colon_separated_groups) do
local form = colon_separated_group[1]
if transform_form then
form = transform_form(form)
end
table.insert(specs, {form = form, footnotes = fetch_footnotes(colon_separated_group)})
end
return specs
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 comma_separated_groups = put.split_alternating_runs(dot_separated_group, "%s*[,#]%s*", "preserve splitchar")
local first_element = comma_separated_groups[1][1]
if first_element == "haben" or first_element == "sein" then
for j = 1, #comma_separated_groups, 2 do
if j > 1 and strip_spaces(comma_separated_groups[j - 1][1]) ~= "," then
parse_err("Separator of # not allowed with haben or sein")
end
local aux = comma_separated_groups[j][1]
if aux ~= "haben" and aux ~= "sein" then
parse_err("Unrecognized auxiliary '" .. aux .. "'")
end
if base.aux then
for _, existing_aux in ipairs(base.aux) do
if existing_aux.form == aux then
parse_err("Auxiliary '" .. aux .. "' specified twice")
end
end
else
base.aux = {}
end
table.insert(base.aux, {form = aux, footnotes = fetch_footnotes(comma_separated_groups[j])})
end
elseif first_element == "-ge" or first_element == "+ge" then
for j = 1, #comma_separated_groups, 2 do
if j > 1 and strip_spaces(comma_separated_groups[j - 1][1]) ~= "," then
parse_err("Separator of # not allowed with +ge or -ge")
end
local prefix = comma_separated_groups[j][1]
if prefix ~= "+ge" and prefix ~= "-ge" then
parse_err("Unrecognized ge- prefix '" .. prefix .. "'")
end
local ge_prefix
if prefix == "+ge" then
ge_prefix = "ge"
else
ge_prefix = ""
end
if base.ge_prefix then
for _, existing_prefix in ipairs(base.ge_prefix) do
if existing_prefix.form == ge_prefix then
parse_err("Ge- prefix '" .. prefix .. "' specified twice")
end
end
else
base.ge_prefix = {}
end
table.insert(base.ge_prefix, {form = ge_prefix, footnotes = fetch_footnotes(comma_separated_groups[j])})
end
elseif #comma_separated_groups > 1 then
-- principal parts specified
if base.past then
parse_err("Can't specify principal parts twice")
end
assert(#comma_separated_groups[2] == 1)
local past_index
local first_separator = strip_spaces(comma_separated_groups[2][1])
if first_separator == "#" then
-- present 3rd singular specified
base.pres_23 = fetch_specs(comma_separated_groups[1], function(form)
local stem
if base.conj == "pretpres" then
stem = form
else
stem = form:match("^(.-)%-$")
if not stem then
stem = form:match("^(.-)e?t$")
end
end
if stem then
return stem
else
parse_err("Present 3sg form '" .. form .. "' should end in - (for the stem) or -t")
end
end)
past_index = 3
else
past_index = 1
end
base.past = fetch_specs(comma_separated_groups[past_index], function(form)
return form
end)
if #comma_separated_groups < past_index + 2 then
parse_err("Missing past participle spec")
end
assert(#comma_separated_groups[past_index + 1] == 1)
if strip_spaces(comma_separated_groups[past_index + 1][1]) ~= "," then
parse_err("Only first separator can be a #")
end
base.pp = fetch_specs(comma_separated_groups[past_index + 2], function(form)
if form:find("e[nd]$") or form:find("t$") then
return form
else
parse_err("Past participle '" .. form .. "' should end in -en, -t, or -ed")
end
end)
if #comma_separated_groups > past_index + 2 then
assert(#comma_separated_groups[past_index + 3] == 1)
if strip_spaces(comma_separated_groups[past_index + 3][1]) ~= "," then
parse_err("Only first separator can be a #")
end
base.past_sub = fetch_specs(comma_separated_groups[past_index + 4], function(form)
local stem = form:match("^(.-)e$")
if not stem then
parse_err("Past subjunctive '" .. form .. "' should end in -e")
end
return stem
end)
if #comma_separated_groups > past_index + 4 then
parse_err("Too many specs given")
end
end
elseif first_element == "pretpres" or first_element == "irreg" then
if #comma_separated_groups[1] > 1 then
parse_err("No footnotes allowed with '" .. first_element .. "' spec")
end
if base.conj then
parse_err("Conjugation specified as '" .. first_element .. "' but already specified or autodetermined as '" .. base.conj .. "'")
end
base.conj = first_element
elseif first_element == "einfix" or first_element == "-einfix" then
if #comma_separated_groups[1] > 1 then
parse_err("No footnotes allowed with '" .. first_element .. "' spec")
end
base.unstressed_e_infix = first_element == "einfix"
elseif first_element == "shortimp" or first_element == "longimp" or
first_element == "only3s" or first_element == "only3sp" or
first_element == "nofinite" or first_element == "nosplitprefix" then
if #comma_separated_groups[1] > 1 then
parse_err("No footnotes allowed with '" .. first_element .. "' spec")
end
base[first_element] = true
elseif first_element == "" or first_element == "inf" then
local footnotes = fetch_footnotes(comma_separated_groups[1])
if not footnotes then
parse_err("Empty spec and 'inf' spec without footnotes not allowed")
end
if first_element == "inf" then
base.infstem_footnotes = footnotes
else
base.all_footnotes = footnotes
end
else
parse_err("Unrecognized spec '" .. comma_separated_groups[1][1] .. "'")
end
end
return base
end
-- Normalize all lemmas, splitting off separable prefixes and substituting the pagename for blank lemmas.
local function normalize_all_lemmas(alternant_multiword_spec, from_headword, pagename)
local any_pre_pref
iut.map_word_specs(alternant_multiword_spec, function(base)
if base.lemma == "" then
base.lemma = pagename
end
if base.lemma:find("_") and not base.lemma:find("%[%[") then
-- If lemma is multiword and has no links, add links automatically.
base.lemma= "[[" .. base.lemma:gsub("_", "]]_[[") .. "]]"
end
base.orig_lemma = base.lemma
base.orig_lemma_no_links = m_links.remove_links(base.lemma)
-- Normalize the linked lemma by removing dot, underscore, and <pron> and such indicators.
base.linked_lemma = remove_sein_sich_indicators(base.lemma:gsub("%.", ""):gsub("_", " "))
base.lemma = m_links.remove_links(base.linked_lemma)
local lemma = base.orig_lemma_no_links
base.pre_pref, base.post_pref = "", ""
local prefix, verb = lemma:match("^(.*)_(.-)$")
if prefix then
prefix = prefix:gsub("_", " ") -- in case of multiple preceding words
base.pre_pref = base.pre_pref .. prefix .. " "
base.post_pref = base.post_pref .. " " .. prefix
else
verb = lemma
end
prefix, base.base_verb = verb:match("^(.*)%.(.-)$")
if prefix then
-- Lowercase the separable prefixes (but not postfixes) to allow for specified infinitive `Rad.fahren`,
-- which becomes actual infinitive [[radfahren]] but 'ich fahre Rad' etc.
local prefix_parts = rsplit(prefix, "%.")
for i, prefix_part in ipairs(prefix_parts) do
prefix_parts[i] = lcfirst(prefix_part)
end
-- There may be multiple separable prefixes (e.g. [[wiedergutmachen]], ich mache wieder gut)
base.pre_pref = base.pre_pref .. table.concat(prefix_parts)
base.post_pref = base.post_pref .. " " .. prefix:gsub("%.", " ")
else
base.base_verb = verb
end
if base.pre_pref ~= "" then
any_pre_pref = true
end
if base.only3s then
alternant_multiword_spec.only3s = true
end
if base.only3sp then
alternant_multiword_spec.only3sp = true
end
-- Remove <pron> indicators and such.
local reconstructed_lemma = remove_sein_sich_indicators(base.pre_pref .. base.base_verb)
base.lemma = reconstructed_lemma
base.from_headword = from_headword
end)
if any_pre_pref then
iut.map_word_specs(alternant_multiword_spec, function(base)
base.any_pre_pref = true
end)
end
if alternant_multiword_spec.only3s then
iut.map_word_specs(alternant_multiword_spec, function(base)
if not base.only3s then
error("If some alternants specify 'only3s', all must")
end
end)
end
if alternant_multiword_spec.only3sp then
iut.map_word_specs(alternant_multiword_spec, function(base)
if not base.only3sp then
error("If some alternants specify 'only3sp', all must")
end
end)
end
end
local function detect_verb_type(base, verb_types)
local this_verb_types = {}
local function set_verb_type()
base.verb_types = this_verb_types
if verb_types then
for _, verb_type in ipairs(this_verb_types) do
m_table.insertIfNot(verb_types, verb_type)
end
end
end
if base.conj == "pretpres" then
m_table.insertIfNot(this_verb_types, "pretpres")
set_verb_type()
return
elseif base.conj == "irreg" then
m_table.insertIfNot(this_verb_types, "irreg")
set_verb_type()
return
end
local infstem = m_table.deepCopy(base.infstem)
local past = m_table.deepCopy(base.past)
local pp = m_table.deepCopy(base.pp)
local function matches_forms(forms, expected, ending_to_chop)
expected = expected:gsub("C", not_vowel_c) .. "$"
local seen = false
for _, form in ipairs(forms) do
local stem
if ending_to_chop then
stem = rmatch(form.form, "^(.*)" .. ending_to_chop .. "$")
else
stem = form.form
end
if stem and rfind("#" .. stem, expected) then
seen = true
form.seen = form.seen or "maybe"
end
end
return seen
end
local function reset_maybes(forms, value)
for _, form in ipairs(forms) do
if form.seen == "maybe" then
form.seen = value
end
end
end
local function reset_all_maybes(value)
reset_maybes(infstem, value)
reset_maybes(past, value)
reset_maybes(pp, value)
end
local function has_unseen_weak_pp()
for _, form in ipairs(pp) do
if not form.seen and form.form:find("[dt]$") then
return true
end
end
return false
end
local function has_unseen_strong_pp()
for _, form in ipairs(pp) do
if not form.seen and form.form:find("n$") then
return true
end
end
return false
end
local function check(verbtype, infre, pastre, ppre, exclude)
if exclude then
for _, form in ipairs(infstem) do
if exclude(form.form) then
return
end
end
end
if matches_forms(infstem, infre) and
matches_forms(past, pastre) and
matches_forms(pp, ppre, "en") then
m_table.insertIfNot(this_verb_types, verbtype)
reset_all_maybes(true)
else
reset_all_maybes(false)
end
end
local function check_strong()
check("1", "Ce[iy]C*", "CieC*", "Cie?C*") -- beigen, bleiben, gedeihen, leihen, meiden, preisen, reiben, reihen,
-- scheiden, scheinen, schreiben, schreien, schweigen, speiben, speien, speisen, steigen, treiben, weisen,
-- zeihen; use 'Cie?C*' for past participle to handle 'schrien', 'spien'
check("1", "Ce[iy]C*", "CiC*", "CiC*") -- beißen/beissen/beyßen/beyssen, bleichen, fleißen/fleissen, gleichen,
-- gleiten, greifen, kneifen, kreischen, leiden, pfeifen, reißen/reissen, reiten, scheißen/scheissen,
-- schleichen, schleifen, schleißen/schleissen, schmeißen/schmeissen, schneiden/schneyden, schreiten,
-- spleißen/spleissen, streichen, streiten, weichen
check("2", "CieC*", "CoC*", "CoC*") -- biegen, bieten, fliegen, fliehen, fließen/fliessen, frieren,
-- genießen/geniessen, gießen/giessen, kiesen, kriechen, riechen, schieben, schießen/schiessen, schliefen,
-- schließen/schliessen, sieden, sprießen/spriessen, stieben, triefen, verdrießen/verdriessen, verlieren,
-- wiegen, ziehen
check("2", "CauC*", "CoC*", "CoC*") -- krauchen, saufen, saugen
check("2", "CüC", "CoC", "CoC") -- lügen, trügen
local function exclude_nehmen_sprechen(form)
-- need to exclude nehmen, stehlen, befehlen/empfehlen, sprechen, brechen, stechen
return rfind(form, vowel_c .. "ch$") or rfind(form, vowel_c .. "h" .. not_vowel_c .. "$")
end
check("3", "C[ei]CC+", "CaCC+", "C[ou]CC+", exclude_nehmen_sprechen) -- [with e, + o in pp]: bergen, bersten,
-- gelten, helfen, schelten, sterben, verderben, werben, werfen; [with i, + u in pp]: binden, brinnen, dringen,
-- finden, gelingen, klingen, misslingen, ringen, schlingen, schwinden, schwingen, singen, sinken, springen,
-- stinken, trinken, winden, wringen, zwingen; [with i, + o in pp]: rinnen, gewinnen, schwimmen, sinnen,
-- spinnen
check("3", "C[eiaö]CC+", "CoCC+", "CoCC+", exclude_nehmen_sprechen)
-- [with e]: dreschen, fechten, flechten, melken, quellen, schmelzen, schwellen; [with i]: glimmen, klimmen;
-- [with a]: schallen (geschallt), erschallen; [with ö]: erlöschen
check("3", "quell", "quoll", "quoll") -- need to special-case quellen due to u preceding e
check("3", "schind", "schund", "schund") -- need to special-case due to 'u' in past
check("4", "C[eäo]C*", "Cah?Ch?", "CoC*") -- [with e]: befehlen, brechen, schrecken, nehmen, sprechen, stechen,
-- stecken (gesteckt), stehlen, treffen; [with ä]: gebären; [with o]: kommen
check("4", "C[äe]C", "Coh?C", "Coh?C", function(form) return form:find("heb$") end)
-- [with ä]: gären, wägen, schwären; [with e]: bewegen, weben, scheren (but not heben)
check("5", "C[ei]C*", "CaC", "CeC*") -- [with e, one C]: geben, genesen, geschehen, lesen, meßen, sehen, treten;
-- [with e, two C]: essen, fressen, messen, vergessen; [with i, two C]: bitten, sitzen
check("5", "C[ei]C*", "Cass", "Cess") -- essen, fressen, messen, sitzen in Swiss spelling
check("5", "CieC", "CaC", "CeC") -- liegen
check("6", "CaC*", "CuC*", "CaC*") -- backen, fragen (gefragt), graben, laden, mahlen, schaffen, schlagen,
-- tragen, wachsen, waschen
check("6", "heb", "h[ou]b", "hob") -- we need to special-case this because heben (class 6 per Wikipedia) has the
-- exact same vowels as weben (class 4 per Wikipedia)
check("6", "schwör", "schw[ou]r", "schwor") -- only strong verb with these vowels
check("7", "CaC*", "CieC*", "CaC*") -- blasen, braten, fallen, halten, lassen, raten/rathen, schlafen
check("7", "C[aäe]C*", "CiC*", "CaC*") -- [with a]: fangen; [with ä]: hängen; [with e]: gehen
check("7", "Ce[iy]C*", "CieC*", "Ce[iy]C*") -- heißen/heissen/heyßen/heyssen
check("7", "CauC*", "CieC*", "CauC*") -- hauen, laufen
check("7", "CoC*", "CieC*", "CoC*") -- stoßen/stossen
check("7", "CuC*", "CieC*", "CuC*") -- rufen
end
for _, form in ipairs(past) do
local past_stem = form.form:match("^(.*)te$")
-- matches_forms() expects a Lua pattern so we need to escape special pattern chars (e.g. * in [[f*cken]])
past_stem = past_stem and m_string_utilities.pattern_escape(past_stem) or nil
if past_stem then
if matches_forms(infstem, "#" .. past_stem) then
-- Need to run matches_forms() on all possibilities even if earlier ones match,
-- to mark the seen forms correctly.
local matches_pp = matches_forms(pp, "#" .. past_stem .. "t")
matches_pp = matches_forms(pp, "#ge" .. past_stem .. "t") or matches_pp
if matches_pp then
m_table.insertIfNot(this_verb_types, "weak")
form.seen = true
reset_all_maybes(true)
else
reset_all_maybes(false)
end
end
end
if not form.seen and form.form:find("ete$") then
if matches_forms(infstem, "#" .. past_stem:gsub("e$", "")) then
-- Need to run matches_forms() on all possibilities even if earlier ones match,
-- to mark the seen forms correctly.
local matches_pp = matches_forms(pp, "#" .. past_stem .. "t")
matches_pp = matches_forms(pp, "#ge" .. past_stem .. "t") or matches_pp
matches_pp = matches_forms(pp, "#" .. past_stem .. "d") or matches_pp
matches_pp = matches_forms(pp, "#ge" .. past_stem .. "d") or matches_pp
if matches_pp then
m_table.insertIfNot(this_verb_types, "weak")
form.seen = true
reset_all_maybes(true)
else
reset_all_maybes(false)
end
end
end
if past_stem and not form.seen then
if not has_unseen_weak_pp() and has_unseen_strong_pp() then
m_table.insertIfNot(this_verb_types, "mixed")
else
m_table.insertIfNot(this_verb_types, "irregweak")
end
matches_forms(pp, "#" .. past_stem .. "t")
matches_forms(pp, "#ge" .. past_stem .. "t")
form.seen = true
reset_all_maybes(true)
end
if not form.seen then
check_strong()
end
if not form.seen then
if not has_unseen_strong_pp() and has_unseen_weak_pp() then
m_table.insertIfNot(this_verb_types, "mixed")
else
m_table.insertIfNot(this_verb_types, "irregstrong")
end
end
end
for _, form in ipairs(pp) do
if not form.seen then
if form.form:find("n$") then
if m_table.contains(this_verb_types, "strong") then
m_table.insertIfNot(this_verb_types, "irregstrong")
elseif m_table.contains(this_verb_types, "weak") then
m_table.insertIfNot(this_verb_types, "mixed")
end
elseif form.form:find("[dt]$") then
if m_table.contains(this_verb_types, "weak") then
m_table.insertIfNot(this_verb_types, "irregweak")
elseif m_table.contains(this_verb_types, "strong") then
m_table.insertIfNot(this_verb_types, "mixed")
end
end
end
end
base.verb_types = this_verb_types
if verb_types then
for _, verb_type in ipairs(this_verb_types) do
m_table.insertIfNot(verb_types, verb_type)
end
end
set_verb_type()
end
local function detect_indicator_spec(base)
base.forms = {}
base.aux = base.aux or {{form = "haben"}}
base.bare_infinitive = {{form = base.base_verb, footnotes = base.infstem_footnotes}}
add(base, "infinitive", base.pre_pref, base.bare_infinitive)
if base.only3s and base.only3sp then
error("'only3s' and 'only3sp' cannot both be specified")
end
if base.conj == "irreg" then
for irregverb, verbobj in pairs(irreg_verbs) do
base.insep_prefix = base.base_verb:match("^(.-)" .. irregverb .. "$")
if base.insep_prefix then
base.irregverb = irregverb
base.irregverbobj = verbobj
if not base.ge_prefix then
if base.insep_prefix ~= "" then
base.ge_prefix = {{form = ""}}
else
base.ge_prefix = {{form = "ge"}}
end
end
return
end
end
error("Unrecognized irregular base verb '" .. base.base_verb .. "'")
end
-- The following applies to everything but 'irreg' verbs.
local infstem, infroot = base.base_verb:match("^((.*)e[lr])n$")
if infstem then
base.unstressed_el_er = true
else
infstem, infroot = base.base_verb:match("^((.*)erl)n$") -- [[fensterln]]
if infstem then
base.unstressed_erl = true
else
infstem = base.base_verb:match("^(.*)en$")
infroot = infstem
if not infstem then
error("Unrecognized infinitive, should end in -en, -eln, -ern or -erln: '" .. base.base_verb .. "'")
end
end
end
base.infstem = {{form = infstem, footnotes = base.infstem_footnotes}}
if base.unstressed_e_infix == nil then
-- Autodetect whether we need an -e- infix in the pres_2s and pres_3s ([[atmen]], [[eignen]], etc.).
-- Almost all such cases have -Cmen or -Cnen where C is a consonant other than r or l and other than the
-- following m or n (hence [[meinen]], [[lernen]], [[filmen]], [[schwimmen]] should be excluded); we also
-- need to exclue -Vhmen and -Vhnen ([[wohnen]], [[rühmen]]), but not -Chmen and -Chnen ([[zeichnen]]).
if base.base_verb:find("[mn]en$") and not base.base_verb:find("([mn])%1en$") and
not rfind(base.base_verb, vowel_c .. "[hrl]?[mn]en$") then
base.unstressed_e_infix = true
end
end
if not base.conj then
base.conj = "normal"
end
if base.conj == "normal" then
local weak_past
if not base.past then
if base.unstressed_e_infix or ends_in_dt(infstem) then
weak_past = infstem .. "et"
else
weak_past = infstem .. "t"
end
base.past = {{form = weak_past .. "e"}}
end
if not base.pp then
if not weak_past then
error("Internal error: past was explicitly given but not past participle")
end
if not base.ge_prefix then
local no_ge
for _, insep_prefix in ipairs(inseparable_prefixes) do
-- There must be a vowel following the inseparable prefix; excludes beben, bechern, belfern, bellen, bessern,
-- beten, betteln, betten, erben, erden, ernten, erzen, entern, gecken, gehren, gellen, gerben, geten, missen,
-- zergen, zerren, etc.
if rfind(infroot, "^" .. insep_prefix .. ".*" .. vowel_c .. ".*") and
-- Exclude cases like beigen, beichten, beugen, beulen, geifern; this also wrongly excludes
-- beirren, which needs -ge.
not rfind(infroot, "^[bg]e[iu]" .. not_vowel_c .. "*$") then
no_ge = true
break
end
-- Check for -ier preceded by a vowel (excludes bieren, frieren, gieren, schmieren, stieren, zieren, etc.)
if not base.unstressed_el_er and not base.unstressed_erl and rfind(infroot, "^.*" .. vowel_c .. ".*ier$") then
no_ge = true
break
end
end
if no_ge then
base.ge_prefix = {{form = ""}}
else
base.ge_prefix = {{form = "ge"}}
end
end
base.pp = iut.map_forms(base.ge_prefix, function(form)
if base.unstressed_el_er or base.unstressed_erl then
return form .. base.base_verb:gsub("n$", "") .. "t"
else
return form .. weak_past
end
end)
end
else
if not base.pp then
error("For '" .. base.conj .. "' type verbs, past participle must be explicitly given")
end
end
add(base, "perf_part", base.pre_pref, base.pp)
end
local function detect_all_indicator_specs(alternant_multiword_spec)
iut.map_word_specs(alternant_multiword_spec, function(base)
detect_indicator_spec(base)
detect_verb_type(base)
end)
end
-- Set the overall auxiliary or auxiliaries. We can't do this using the normal inflection
-- code as it will produce e.g. '[[haben]] und [[haben]]' for conjoined verbs.
local function compute_auxiliary(alternant_multiword_spec)
iut.map_word_specs(alternant_multiword_spec, function(base)
iut.insert_forms(alternant_multiword_spec.forms, "aux", base.aux)
end)
end
function export.process_verb_classes(classes)
local class_descs = {}
local cats = {}
local function insert_desc(desc)
m_table.insertIfNot(class_descs, desc)
end
local function insert_cat(cat)
m_table.insertIfNot(cats, "德語" .. cat)
end
for _, class in ipairs(classes) do
if class == "weak" then
insert_desc("[[Appendix:Glossary#weak verb|弱變化]]")
insert_cat("弱變化動詞")
elseif class == "irregweak" then
insert_desc("[[Appendix:Glossary#irregular|不規則]][[Appendix:Glossary#weak verb|弱變化]]")
insert_cat("弱變化動詞")
insert_cat("不規則弱變化動詞")
elseif class == "pretpres" then
insert_desc("[[Appendix:Glossary#preterite-present verb|過去形現在式]]")
insert_cat("過去形現在式動詞")
elseif class == "irreg" then
insert_desc("[[Appendix:Glossary#irregular|不規則]]")
insert_cat("不規則動詞")
elseif class == "mixed" then
insert_desc("混合變化")
insert_cat("混合變化動詞")
elseif class == "irregstrong" then
insert_desc("[[Appendix:Glossary#irregular|不規則]][[Appendix:Glossary#strong verb|強變化]]")
insert_cat("強變化動詞")
insert_cat("不規則強變化動詞")
elseif class:find("^[1-7]$") then
insert_desc(class .. "類[[Appendix:Glossary#strong verb|強變化]]")
insert_cat("強變化動詞")
insert_cat(class .. "類強變化動詞")
else
error("Unrecognized verb class '" .. class .. "'")
end
end
return class_descs, cats
end
local function add_categories_and_annotation(alternant_multiword_spec, base, from_headword, manual)
local function insert_cat(full_cat)
m_table.insertIfNot(alternant_multiword_spec.categories, full_cat)
end
if not from_headword then
for _, slot_and_accel in ipairs(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("變位模板中帶紅鏈的德語動詞")
must_break = true
break
end
end
end
end
if must_break then
break
end
end
end
if manual then
return
end
local class_descs, cats = export.process_verb_classes(base.verb_types)
for _, desc in ipairs(class_descs) do
m_table.insertIfNot(alternant_multiword_spec.verb_types, desc)
end
-- Don't place multiword terms in categories like 'German class 4 strong verbs' to avoid spamming the
-- categories with such terms.
if from_headword and not base.lemma:find(" ") then
for _, cat in ipairs(cats) do
insert_cat(cat)
end
end
for _, aux in ipairs(base.aux) do
m_table.insertIfNot(alternant_multiword_spec.auxiliaries, link_term(aux.form, "term"))
if from_headword and not base.lemma:find(" ") then -- see above
insert_cat("使用" .. aux.form .. "作為助動詞的德語動詞")
-- Set flags for use below in adding 'German verbs using haben and sein as auxiliary'
alternant_multiword_spec["saw_" .. aux.form] = true
end
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, from_headword, manual)
alternant_multiword_spec.categories = {}
alternant_multiword_spec.verb_types = {}
alternant_multiword_spec.auxiliaries = {}
iut.map_word_specs(alternant_multiword_spec, function(base)
add_categories_and_annotation(alternant_multiword_spec, base, from_headword)
end)
if manual then
alternant_multiword_spec.annotation = ""
return
end
local ann_parts = {}
table.insert(ann_parts, table.concat(alternant_multiword_spec.verb_types, " <small>或</small> "))
if #alternant_multiword_spec.auxiliaries > 0 then
table.insert(ann_parts, ",助動詞" .. table.concat(alternant_multiword_spec.auxiliaries, " <small>或</small> "))
end
if from_headword and alternant_multiword_spec.saw_haben and alternant_multiword_spec.saw_sein then
m_table.insertIfNot(alternant_multiword_spec.categories, "使用haben和sein作為助動詞的德語動詞")
end
alternant_multiword_spec.annotation = table.concat(ann_parts)
end
local function show_forms(alternant_multiword_spec)
local lemmas = iut.map_forms(alternant_multiword_spec.forms.infinitive,
remove_sein_sich_indicators)
alternant_multiword_spec.lemmas = lemmas -- save for later use in make_table()
local linked_pronouns = {}
for index, pronoun in ipairs(pronouns) do
-- use 'es' instead of 'er' for 3s-only verbs
if index == 3 and alternant_multiword_spec.only3s then
linked_pronouns[index] = link_term("es")
else
linked_pronouns[index] = link_term(pronoun)
end
end
local dass = link_term("dass") .. " "
local function generate_link(data)
local link = m_links.full_link {
lang = lang, term = data.form.formval_for_link, tr = "-", accel = data.form.accel_obj
}
local footnote_text = iut.get_footnote_text(data.form.footnotes, data.footnote_obj)
local persnum = data.slot:match("^imp_(2[sp])$")
if persnum then
link = link .. " (" .. linked_pronouns[persnum_to_index[persnum]] .. ")"
else
persnum = data.slot:match("^.*_([123][sp])$")
if persnum then
link = linked_pronouns[persnum_to_index[persnum]] .. " " .. link
end
if data.slot:find("^subc_") then
link = dass .. link
end
end
return link .. footnote_text
end
local function join_spans(data)
if data.slot == "aux" then
return table.concat(data.formval_spans, " <small>或</small> ")
else
return table.concat(data.formval_spans, "<br />")
end
end
local props = {
lang = lang,
lemmas = lemmas,
generate_link = generate_link,
join_spans = join_spans,
}
props.slot_list = verb_slots_basic
iut.show_forms(alternant_multiword_spec.forms, props)
alternant_multiword_spec.footnote_basic = alternant_multiword_spec.forms.footnote
props.slot_list = verb_slots_subordinate_clause
iut.show_forms(alternant_multiword_spec.forms, props)
alternant_multiword_spec.footnote_subordinate_clause = alternant_multiword_spec.forms.footnote
props.slot_list = verb_slots_composed
iut.show_forms(alternant_multiword_spec.forms, props)
alternant_multiword_spec.footnote_composed = alternant_multiword_spec.forms.footnote
end
local notes_template = [=[
<div style="width:100%;text-align:left;background:var(--wikt-palette-grey-blue-1,#d9ebff)">
<div style="display:inline-block;text-align:left;padding-left:1em;padding-right:1em">
{footnote}
</div></div>
]=]
local zu_infinitive_table = [=[
|-
! colspan=2 style="background:var(--wikt-palette-grey-2,#d0d0d0)" | zu-不定式
| colspan=4 data-accel-col=1 | {zu_infinitive}
]=]
local basic_table = [=[
<div class="NavFrame" style="">
<div class="NavHead" style="">{title}的變位形式</div>
<div class="NavContent">
{\op}| style="border: 1px solid var(--wikt-palette-black,#000000); border-collapse:collapse; background:var(--wikt-palette-white,#fafafa); text-align:center; width:100%" class="inflection-table"
|-
! colspan=2 style="background:var(--wikt-palette-grey-2,#d0d0d0)" | <span title="Infinitiv">不定式</span>
| colspan=4 data-accel-col=1 | {infinitive}
|-
! colspan=2 style="background:var(--wikt-palette-grey-2,#d0d0d0)" | <span title="Partizip I (Partizip Präsens)">現在分詞</span>
| colspan=4 data-accel-col=20 | {pres_part}
|-
! colspan=2 style="background:var(--wikt-palette-grey-2,#d0d0d0)" | <span title="Partizip II (Partizip Perfekt)">過去分詞</span>
| colspan=4 data-accel-col=20 | {perf_part}
{zu_infinitive_table}|-
! colspan=2 style="background:var(--wikt-palette-grey-2,#d0d0d0)" | <span title="Hilfsverb">助動詞</span>
| colspan=4 | {aux}
|-
| rowspan=2 style="background:var(--wikt-palette-grey-indigo-3,#a0ade3)" |
! colspan=2 style="background:var(--wikt-palette-grey-indigo-3,#a0ade3)" | <span title="Indikativ">直陳式</span>
| rowspan=2 style="background:var(--wikt-palette-grey-indigo-3,#a0ade3)" |
! colspan=2 style="background:var(--wikt-palette-grey-indigo-3,#a0ade3)" | <span title="Konjunktiv">虛擬式</span>
|-
! style="background:var(--wikt-palette-grey-indigo-3,#a0ade3)" | 單數
! style="background:var(--wikt-palette-grey-indigo-3,#a0ade3)" | 複數
! style="background:var(--wikt-palette-grey-indigo-3,#a0ade3)" | 單數
! style="background:var(--wikt-palette-grey-indigo-3,#a0ade3)" | 複數
|-
! rowspan=3 style="background:var(--wikt-palette-grey-blue-3,#c0cfe4); width:7em" | <span title="Präsens">現在時</span>
| data-accel-col=2 | {pres_1s}
| data-accel-col=3 | {pres_1p}
! rowspan=3 style="background:var(--wikt-palette-grey-blue-3,#c0cfe4); width:7em" | <span title="Konjunktiv I (Konjunktiv Präsens)">i</span>
| data-accel-col=10 | {subi_1s}
| data-accel-col=11 | {subi_1p}
|-
| data-accel-col=2 | {pres_2s}
| data-accel-col=3 | {pres_2p}
| data-accel-col=10 | {subi_2s}
| data-accel-col=11 | {subi_2p}
|-
| data-accel-col=2 | {pres_3s}
| data-accel-col=3 | {pres_3p}
| data-accel-col=10 | {subi_3s}
| data-accel-col=11 | {subi_3p}
|-
| colspan=6 style="background:var(--wikt-palette-grey-2,#d5d5d5); height: .25em" |
|-
! rowspan=3 style="background:var(--wikt-palette-grey-blue-3,#c0cfe4)" | <span title="Präteritum">過去式</span>
| data-accel-col=6 | {pret_1s}
| data-accel-col=7 | {pret_1p}
! rowspan=3 style="background:var(--wikt-palette-grey-blue-3,#c0cfe4)" | <span title="Konjunktiv II (Konjunktiv Präteritum)">ii</span>
| data-accel-col=14 | {subii_1s}
| data-accel-col=15 | {subii_1p}
|-
| data-accel-col=6 | {pret_2s}
| data-accel-col=7 | {pret_2p}
| data-accel-col=14 | {subii_2s}
| data-accel-col=15 | {subii_2p}
|-
| data-accel-col=6 | {pret_3s}
| data-accel-col=7 | {pret_3p}
| data-accel-col=14 | {subii_3s}
| data-accel-col=15 | {subii_3p}
|-
| colspan=6 style="background:var(--wikt-palette-grey-2,#d5d5d5); height: .25em" |
|-
! style="background:var(--wikt-palette-grey-blue-3,#c0cfe4)" | <span title="Imperativ">命令式</span>
| data-accel-col=18 | {imp_2s}
| data-accel-col=19 | {imp_2p}
| colspan=3 style="background:var(--wikt-palette-grey-1,#e0e0e0)" |
|{\cl}{notes_clause}</div></div>
]=]
local subordinate_clause_table = [=[
<div class="NavFrame" style="">
<div class="NavHead" style="">{title}的從句形式</div>
<div class="NavContent">
{\op}| style="border: 1px solid var(--wikt-palette-black,#000000); border-collapse:collapse; background:var(--wikt-palette-white,#fafafa); text-align:center; width:100%" class="inflection-table"
|-
| style="background:var(--wikt-palette-grey-indigo-3,#a0ade3)" |
! colspan=2 style="background:var(--wikt-palette-grey-indigo-3,#a0ade3)" | <span title="Indikativ">直陳式</span>
| style="background:var(--wikt-palette-grey-indigo-3,#a0ade3)" |
! colspan=2 style="background:var(--wikt-palette-grey-indigo-3,#a0ade3)" | <span title="Konjunktiv">虛擬式</span>
|-
! rowspan=3 style="background:var(--wikt-palette-grey-blue-3,#c0cfe4); width:7em" | <span title="Präsens">現在時</span>
| data-accel-col=4 | {subc_pres_1s}
| data-accel-col=5 | {subc_pres_1p}
! rowspan=3 style="background:var(--wikt-palette-grey-blue-3,#c0cfe4); width:7em" | <span title="Konjunktiv I (Konjunktiv Präsens)">i</span>
| data-accel-col=12 | {subc_subi_1s}
| data-accel-col=13 | {subc_subi_1p}
|-
| data-accel-col=4 | {subc_pres_2s}
| data-accel-col=5 | {subc_pres_2p}
| data-accel-col=12 | {subc_subi_2s}
| data-accel-col=13 | {subc_subi_2p}
|-
| data-accel-col=4 | {subc_pres_3s}
| data-accel-col=5 | {subc_pres_3p}
| data-accel-col=12 | {subc_subi_3s}
| data-accel-col=13 | {subc_subi_3p}
|-
| colspan=6 style="background:var(--wikt-palette-grey-2,#d5d5d5); height: .25em" |
|-
! rowspan=3 style="background:var(--wikt-palette-grey-blue-3,#c0cfe4)" | <span title="Präteritum">過去式</span>
| data-accel-col=8 | {subc_pret_1s}
| data-accel-col=9 | {subc_pret_1p}
! rowspan=3 style="background:var(--wikt-palette-grey-blue-3,#c0cfe4)" | <span title="Konjunktiv II (Konjunktiv Präteritum)">ii</span>
| data-accel-col=16 | {subc_subii_1s}
| data-accel-col=17 | {subc_subii_1p}
|-
| data-accel-col=8 | {subc_pret_2s}
| data-accel-col=9 | {subc_pret_2p}
| data-accel-col=16 | {subc_subii_2s}
| data-accel-col=17 | {subc_subii_2p}
|-
| data-accel-col=8 | {subc_pret_3s}
| data-accel-col=9 | {subc_pret_3p}
| data-accel-col=16 | {subc_subii_3s}
| data-accel-col=17 | {subc_subii_3p}
|{\cl}{notes_clause}</div></div>
]=]
local composed_table = [=[
<div class="NavFrame" style="">
<div class="NavHead" style="">{title}的複合形式</div>
<div class="NavContent">
{\op}| style="border: 1px solid var(--wikt-palette-black,#000000); border-collapse:collapse; background:var(--wikt-palette-white,#fafafa); text-align:center; width:100%" class="inflection-table"
|-
! colspan=6 style="background:var(--wikt-palette-grey-green-4,#99cc99)" | <span title="Perfekt">完成時</span>
|-
! style="background:var(--wikt-palette-grey-green-4,#99cc99)" |
! style="background:var(--wikt-palette-grey-green-4,#99cc99)" | 單數
! style="background:var(--wikt-palette-grey-green-4,#99cc99)" | 複數
! style="background:var(--wikt-palette-grey-green-4,#99cc99)" |
! style="background:var(--wikt-palette-grey-green-4,#99cc99)" | 單數
! style="background:var(--wikt-palette-grey-green-4,#99cc99)" | 複數
|-
! rowspan=3 style="background:var(--wikt-palette-grey-green-2,#cfedcc); width:7em" | <span title="Indikativ">直陳式</span>
| {perf_ind_1s}
| {perf_ind_1p}
! rowspan=3 style="background:var(--wikt-palette-grey-green-2,#cfedcc); width:7em" | <span title="Konjunktiv">虛擬式</span>
| {perf_sub_1s}
| {perf_sub_1p}
|-
| {perf_ind_2s}
| {perf_ind_2p}
| {perf_sub_2s}
| {perf_sub_2p}
|-
| {perf_ind_3s}
| {perf_ind_3p}
| {perf_sub_3s}
| {perf_sub_3p}
|-
! colspan=6 style="background:var(--wikt-palette-grey-green-4,#99CC99)" | <span title="Plusquamperfekt">過去完成時</span>
|-
! rowspan=3 style="background:var(--wikt-palette-grey-green-2,#cfedcc)" | <span title="Indikativ">直陳式</span>
| {plup_ind_1s}
| {plup_ind_1p}
! rowspan=3 style="background:var(--wikt-palette-grey-green-2,#cfedcc)" | <span title="Konjunktiv">虛擬式</span>
| {plup_sub_1s}
| {plup_sub_1p}
|-
| {plup_ind_2s}
| {plup_ind_2p}
| {plup_sub_2s}
| {plup_sub_2p}
|-
| {plup_ind_3s}
| {plup_ind_3p}
| {plup_sub_3s}
| {plup_sub_3p}
|-
! colspan=6 style="background:var(--wikt-palette-grey-indigo-4,#9999DF)" | <span title="Futur I">將來一式</span>
|-
! rowspan=3 style="background:var(--wikt-palette-grey-indigo-2,#ccccff)" | <span title="Infinitiv">不定式</span>
| rowspan=3 colspan=2 | {futi_inf}
! rowspan=3 style="background:var(--wikt-palette-grey-indigo-2,#ccccff)" | <span title="Konjunktiv I (Konjunktiv Präsens)">虛擬一式</span>
| {futi_subi_1s}
| {futi_subi_1p}
|-
| {futi_subi_2s}
| {futi_subi_2p}
|-
| {futi_subi_3s}
| {futi_subi_3p}
|-
! colspan=6 style="background:var(--wikt-palette-grey-2,#d5d5d5); height: .25em" |
|-
! rowspan=3 style="background:var(--wikt-palette-grey-indigo-2,#ccccff)" | <span title="Indikativ">直陳式</span>
| {futi_ind_1s}
| {futi_ind_1p}
! rowspan=3 style="background:var(--wikt-palette-grey-indigo-2,#ccccff)" | <span title="Konjunktiv II (Konjunktiv Präteritum)">虛擬二式</span>
| {futi_subii_1s}
| {futi_subii_1p}
|-
| {futi_ind_2s}
| {futi_ind_2p}
| {futi_subii_2s}
| {futi_subii_2p}
|-
| {futi_ind_3s}
| {futi_ind_3p}
| {futi_subii_3s}
| {futi_subii_3p}
|-
! colspan=6 style="background:var(--wikt-palette-grey-indigo-4,#9999DF)" | <span title="Futur II">將來二式</span>
|-
! rowspan=3 style="background:var(--wikt-palette-grey-indigo-2,#ccccff)" | <span title="Infinitiv">不定式</span>
| rowspan=3 colspan=2 | {futii_inf}
! rowspan=3 style="background:var(--wikt-palette-grey-indigo-2,#ccccff)" | <span title="Konjunktiv I (Konjunktiv Präsens)">虛擬一式</span>
| {futii_subi_1s}
| {futii_subi_1p}
|-
| {futii_subi_2s}
| {futii_subi_2p}
|-
| {futii_subi_3s}
| {futii_subi_3p}
|-
! colspan=6 style="background:var(--wikt-palette-grey-2,#d5d5d5); height: .25em" |
|-
! rowspan=3 style="background:var(--wikt-palette-grey-indigo-2,#ccccff)" | <span title="Indikativ">直陳式</span>
| {futii_ind_1s}
| {futii_ind_1p}
! rowspan=3 style="background:var(--wikt-palette-grey-indigo-2,#ccccff)" | <span title="Konjunktiv II (Konjunktiv Präteritum)">虛擬二式</span>
| {futii_subii_1s}
| {futii_subii_1p}
|-
| {futii_ind_2s}
| {futii_ind_2p}
| {futii_subii_2s}
| {futii_subii_2p}
|-
| {futii_ind_3s}
| {futii_ind_3p}
| {futii_subii_3s}
| {futii_subii_3p}
|{\cl}{notes_clause}</div></div>]=]
local function make_table(alternant_multiword_spec)
local forms = alternant_multiword_spec.forms
forms.title = link_term(alternant_multiword_spec.lemmas[1].form, "term")
if alternant_multiword_spec.annotation ~= "" then
forms.title = forms.title .. " (" .. alternant_multiword_spec.annotation .. ")"
end
-- Maybe format the subordinate clause table.
local formatted_subordinate_clause_table
if forms.subc_pres_3s ~= "—" then -- use 3s in case of only3s verb
forms.zu_infinitive_table = m_string_utilities.format(zu_infinitive_table, forms)
forms.footnote = alternant_multiword_spec.footnote_subordinate_clause
forms.notes_clause = forms.footnote ~= "" and m_string_utilities.format(notes_template, forms) or ""
formatted_subordinate_clause_table = m_string_utilities.format(subordinate_clause_table, forms)
else
forms.zu_infinitive_table = ""
formatted_subordinate_clause_table = ""
end
-- Format the basic table.
forms.footnote = alternant_multiword_spec.footnote_basic
forms.notes_clause = forms.footnote ~= "" and m_string_utilities.format(notes_template, forms) or ""
local formatted_basic_table = m_string_utilities.format(basic_table, forms)
-- Format the composed table.
forms.footnote = alternant_multiword_spec.footnote_composed
forms.notes_clause = forms.footnote ~= "" and m_string_utilities.format(notes_template, forms) or ""
local formatted_composed_table = m_string_utilities.format(composed_table, forms)
-- Paste them together.
return formatted_basic_table .. formatted_subordinate_clause_table .. formatted_composed_table
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(parent_args, from_headword, def)
local params = {
[1] = true,
pagename = true,
json = {type = "boolean"}, -- for bot use
}
if from_headword then
params["lemma"] = {list = true}
params["id"] = true
end
local args = require("Module:parameters").process(parent_args, params)
local pagename = args.pagename or mw.loadData("Module:headword/data").pagename
if not args[1] then
if pagename == "De-conj" or pagename == "De-verb" then -- l10n: page titles begin with a capital letter on this wiki
args[1] = def or "aus.fahren<fährt#fuhr,gefahren,führe.haben,sein>"
else
args[1] = pagename
-- If pagename has spaces in it, add links around each word
if args[1]:find(" ") then
args[1] = "[[" .. args[1]:gsub(" ", "]] [[") .. "]]"
end
end
end
local parse_props = {
parse_indicator_spec = parse_indicator_spec,
lang = lang,
allow_default_indicator = true,
allow_blank_lemma = true,
}
local escaped_arg1 = escape_sein_sich_indicators(args[1])
local alternant_multiword_spec = iut.parse_inflected_text(escaped_arg1, parse_props)
alternant_multiword_spec.pos = "verbs"
alternant_multiword_spec.args = args
normalize_all_lemmas(alternant_multiword_spec, from_headword, pagename)
detect_all_indicator_specs(alternant_multiword_spec)
local inflect_props = {
slot_list = all_verb_slots,
lang = lang,
inflect_word_spec = conjugate_verb,
-- 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)
compute_auxiliary(alternant_multiword_spec)
compute_categories_and_annotation(alternant_multiword_spec, from_headword)
if args.json then
return require("Module:JSON").toJSON(alternant_multiword_spec)
end
return alternant_multiword_spec
end
-- Entry point for {{de-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 alternant_multiword_spec = export.do_generate_forms(parent_args)
if type(alternant_multiword_spec) == "string" then -- json=1 specified
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)
end
local numbered_params = {
-- required params
[1] = "infinitive",
[2] = "pres_part",
[3] = "perf_part",
[4] = "aux",
[5] = "pres_1s",
[6] = "pres_2s",
[7] = "pres_3s",
[8] = "pres_1p",
[9] = "pres_2p",
[10] = "pres_3p",
[11] = "pret_1s",
[12] = "pret_2s",
[13] = "pret_3s",
[14] = "pret_1p",
[15] = "pret_2p",
[16] = "pret_3p",
[17] = "subi_1s",
[18] = "subi_2s",
[19] = "subi_3s",
[20] = "subi_1p",
[21] = "subi_2p",
[22] = "subi_3p",
[23] = "subii_1s",
[24] = "subii_2s",
[25] = "subii_3s",
[26] = "subii_1p",
[27] = "subii_2p",
[28] = "subii_3p",
[29] = "imp_2s",
[30] = "imp_2p",
-- [31] formerly the 2nd variant of imp_2s; now no longer allowed (use comma-separated 29=)
-- [32] formerly indicated whether the 2nd variant of imp_2s was present
-- optional params
[33] = "subc_pres_1s",
[34] = "subc_pres_2s",
[35] = "subc_pres_3s",
[36] = "subc_pres_1p",
[37] = "subc_pres_2p",
[38] = "subc_pres_3p",
[39] = "subc_pret_1s",
[40] = "subc_pret_2s",
[41] = "subc_pret_3s",
[42] = "subc_pret_1p",
[43] = "subc_pret_2p",
[44] = "subc_pret_3p",
[45] = "subc_subi_1s",
[46] = "subc_subi_2s",
[47] = "subc_subi_3s",
[48] = "subc_subi_1p",
[49] = "subc_subi_2p",
[50] = "subc_subi_3p",
[51] = "subc_subii_1s",
[52] = "subc_subii_2s",
[53] = "subc_subii_3s",
[54] = "subc_subii_1p",
[55] = "subc_subii_2p",
[56] = "subc_subii_3p",
[57] = "zu_infinitive",
}
local max_required_param = 30
-- Externally callable function to parse and conjugate a verb where all forms are given manually.
-- 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_manual(parent_args)
local params = {
json = {type = "boolean"},
}
for paramnum, _ in pairs(numbered_params) do
params[paramnum] = {required = paramnum <= max_required_param}
end
local args = require("Module:parameters").process(parent_args, params)
local base = {
forms = {},
manual = true,
}
local function process_numbered_param(paramnum)
local argval = args[paramnum]
if paramnum == 4 then
if argval == "h" then
base.aux = {{form = "haben"}}
elseif argval == "s" then
base.aux = {{form = "sein"}}
elseif argval == "hs" then
base.aux = {{form = "haben"}, {form = "sein"}}
elseif argval == "sh" then
base.aux = {{form = "sein"}, {form = "haben"}}
elseif not argval then
error("Missing auxiliary in 4=")
else
error("Unrecognized auxiliary 4=" .. argval)
end
elseif argval and argval ~= "-" then
local split_vals = rsplit(argval, "%s*,%s*")
for _, val in ipairs(split_vals) do
-- FIXME! This won't work with commas or brackets in footnotes.
-- To fix this, use functions from [[Module:inflection utilities]].
local form, footnote = val:match("^(.-)%s*(%[[^%]%[]-%])$")
local footnotes
if form then
footnotes = {footnote}
else
form = val
end
local slot = numbered_params[paramnum]
--if slot:find("subii") then
-- local subii_footnotes = get_subii_note(base)
-- footnotes = iut.combine_footnotes(subii_footnotes, footnotes)
--end
iut.insert_form(base.forms, slot, {form = form, footnotes = footnotes})
end
end
end
-- Do the infinitive first as we need to reference it in subjunctive II footnotes.
process_numbered_param(1)
for paramnum, _ in pairs(numbered_params) do
if paramnum ~= 1 then
process_numbered_param(paramnum)
end
end
add_composed_forms(base)
compute_categories_and_annotation(base, nil, "manual")
return base, args.json
end
-- Entry point for {{de-conj-table}}. Template-callable function to parse and conjugate a verb given
-- manually-specified inflections and generate a displayable table of the conjugated forms.
function export.show_manual(frame)
local parent_args = frame:getParent().args
local base, json = export.do_generate_forms_manual(parent_args)
if json then
return require("Module:JSON").toJSON(base)
end
show_forms(base)
return make_table(base) .. require("Module:utilities").format_categories(base.categories, lang)
end
return export
017yb910un5nahrwj1424tgh4eosx2d
Module:Accel/de
828
1511604
9938447
8113960
2026-10-04T18:09:17Z
TongcyDai
53191
accel 形式名稱對齊 Module:De-headword 傳入的中文名稱(指小、陰性、中性)
9938447
Scribunto
text/plain
return {generate = function (params, entry)
local template = {
["alternative"] = "alternative form of",
}
if params.form == "zu" then
entry.def = "{{de-zu-infinitive of|" .. params.origin .. "}}"
elseif template[params.form] then
entry.def = entry.make_def(template[params.form])
end
if params.form == "指小" then -- l10n
entry.head = "{{de-noun|n}}"
entry.declension = "{{de-ndecl|n}}"
end
if params.form == "陰性" then -- l10n
entry.head = "{{de-noun|f}}"
entry.def = "{{female equivalent of|de|" .. params.origin .. "}}"
entry.declension = "{{de-ndecl|f}}"
end
if params.form == "中性" then -- l10n
entry.pos = "noun"
entry.head = "{{de-noun|+}}"
local adj = mw.getContentLanguage():lcfirst(params.target):gsub("es$", "")
entry.def = "{{nominalization of|de|" .. adj .. "}}"
entry.declension = "{{de-ndecl|+}}"
end
local ending = params.form:match("^adj%-form%-(.*)$")
if ending then
local auto_ending = require("Module:de-inflections").determine_adj_ending(params.origin, params.target)
if auto_ending and auto_ending == ending then
entry.def = "{{de-adj form of|" .. params.origin .. "}}"
else
entry.def = "{{de-adj form of|" .. params.origin .. "|" .. ending .. "}}"
end
end
end}
dqyyqayj7zur6qdv4tl1zh06vkuxoai
Spielothek
0
1540495
9938414
9549464
2026-10-04T12:22:46Z
TongcyDai
53191
9938414
wikitext
text/x-wiki
==德語==
===詞源===
{{ety|de|:af|Spiel|-o-|-thek}}
{{compound|de|Spiel|-o-|-thek}}。
===發音===
* {{IPA|de|/ʃpiloˈteːk/}}
* {{hyph|de|Spie|lo|thek}}
* {{audio|de|De-Spielothek.ogg}}
===名詞===
{{de-noun|f}}
# [[遊戲廳]],[[遊藝場]]
====變格====
{{de-ndecl|f}}
===延伸閱讀===
* {{R:de:Duden}}
i4juppr75fa5oylj2jsvb3ii4euiigf
Template:De-conj/doc
10
1689141
9938449
9523276
2026-10-04T18:19:59Z
TongcyDai
53191
補上大寫可分成分(Rad.fahren)、pagename=、json= 的說明;修正一處少了右方括號的範例
9938449
wikitext
text/x-wiki
{{documentation subpage}}{{uses lua|Module:de-verb}}
==參數==
===弱變化動詞===
對於大多數弱變化動詞,無需指定任何參數。例如,對於 {{m|de|verwandeln||變形}},只需寫:
:{{temp|de-conj}}
這會產生:
{{de-conj|verwandeln}}
注意,本模組會自動識別以 {{m|de||-eln}} 結尾的動詞需要特殊處理,且以 {{m|de||ver-}} 開頭的動詞在過去分詞中不加 {{m|de||ge-}} 前綴。
您也可以明確指定動詞,這在(例如)於「User:……」或其他測試頁面上調用 {{temp|de-conj}} 時很有用:
:{{temp|de-conj|verwandeln}}
結果與上面相同,但適用於任何頁面。
如果動詞帶有可分前綴(separable prefix),請在前綴和主動詞之間加上 <code>.</code>,例如對於 {{m|de|abzeichnen||描繪、素描}},請使用:
:{{temp|de-conj|ab.zeichnen}}
這會產生:
{{de-conj|ab.zeichnen}}
注意,本模組會自動識別此特定動詞需要在某些詞尾前插入額外的 {{m|de||e}}(例如第三人稱單數現在時 {{m|de||zeichnet ab}},相較於 {{m|de||verwandelt}} 或 {{m|de||macht auf}} 沒有這個額外的 {{m|de||e}});會根據形式正確處理可分前綴位於主動詞之前或之後的情況;並會為有限形式(finite forms)的從屬子句變體添加第三個區塊。
可以處理多個可分前綴,例如對於 {{m|de|wiedergutmachen||補償、彌補}}:
:{{temp|de-conj|wieder.gut.machen}}
這會產生:
{{de-conj|wieder.gut.machen}}
如果可分前綴後面寫有空格,請用下劃線(<code>_</code>)代替點號,例如對於 {{m|de|kennen lernen||認識、了解}}:
:{{temp|de-conj|kennen_lernen}}
這會產生:
{{de-conj|kennen_lernen}}
注意,本模組會自動生成帶空格的 zu-不定式 {{m|de||kennen zu lernen}}(在 {{m|de|zu}} 後),而另一種/舊式拼寫 {{m|de|kennenlernen}}(使用 {{temp|de-conj|kennen.lernen}})則會生成 zu-不定式 {{m|de||kennenzulernen}}。
可以使用多個下劃線,就像多個點號一樣,並且下劃線可以與點號結合使用,如 {{m|de|fest einprogrammieren||(在軟體中)寫死/硬編碼}}:
:{{temp|de-conj|fest_ein.programmieren}}
===強變化動詞===
對於強變化動詞,您必須指定基本形式(principal parts);最少需要過去式和過去分詞,如果第三人稱單數現在時和/或過去虛擬式不可預測,也需一併指定。例如,對於 {{m|de|rufen||呼叫、喊}},請使用:
:{{temp|de-conj|rufen<rief,gerufen>}}
這會產生:
{{de-conj|rufen<rief,gerufen>}}
這裡不需要給出第三人稱單數或過去虛擬式,因為它們可以分別從不定式和過去式推導出來。
對於可分前綴,如上所述使用 <code>.</code>,例如對於 {{m|de|anrufen||打電話}}:
:{{temp|de-conj|an.rufen<rief,gerufen>}}
注意,可分前綴只需寫一次,而在 <code><...></code> 內的形式不帶前綴。
然而,如果是不可分前綴,則必須重複寫出,例如對於 {{m|de|berufen||引用、訴諸}}:
:{{temp|de-conj|berufen<berief,berufen>}}
如果過去虛擬式的詞幹與過去式不同,請在尖括號內指定第一人稱單數過去虛擬式作為第三個基本形式,例如對於 {{m|de|finden||找到}},其第一人稱單數過去虛擬式為 {{m|de||fände}}:
:{{temp|de-conj|finden<fand,gefunden,fände>}}
如果第二和第三人稱單數直陳現在時的詞幹與不定式不同,請在過去式'''之前'''指定第三人稱單數直陳現在時,並用 <code>#</code> 分隔,如 {{m|de|verlassen||離開}}:
:{{temp|de-conj|verlassen<verlässt#verließ,verlassen>}}
有時,您可能需要同時指定第三人稱單數直陳現在時和過去虛擬式,如 {{m|de|sprechen||說話}}:
:{{temp|de-conj|sprechen<spricht#sprach,gesprochen,spräche>}}
如果第三人稱單數直陳現在時以構成詞幹一部分的 {{m|de||-t}} 結尾,請在該形式後加上 <code>-</code> 來表示這是一個詞幹,如 {{m|de|raten||建議、猜測}},其第三人稱單數現在時為 {{m|de||rät}}(第二人稱單數現在時為 {{m|de||rätst}} 而非 #{{m|de||räst}}):
:{{temp|de-conj|raten<rät-#riet,geraten>}}
===指定助動詞===
有些動詞使用 {{m|de|sein}} 作為助動詞,代替或加上 {{m|de|haben}}。例如 {{m|de|gehen}} 使用 {{m|de|sein}},如 {{m|de||ich bin gegangen|我走了/我已經走了}}。要指示這一點,請在尖括號內寫上 <code>sein</code>,如下所示:
:{{temp|de-conj|gehen<ging,gegangen.sein>}}
這會產生:
{{de-conj|gehen<ging,gegangen.sein>}}
這裡,<code>.</code> 用於分隔尖括號內不同的「指示符」(規格);基本形式算作一個指示符,助動詞算作另一個。
若要指示弱變化動詞使用 {{m|de|sein}},如 {{m|de|spazieren||散步、溜達}},請寫作:
:{{temp|de-conj|<sein>}}
或者:
:{{temp|de-conj|spazieren<sein>}}
這裡,因為尖括號內只有一個指示符,所以不需要分隔用的 <code>.</code>。
如果動詞可以接 <code>haben</code> 或 <code>sein</code>,如 {{m|de|fahren||行駛、駕駛}},請將兩者都指定出來,用逗號分隔:
:{{temp|de-conj|fahren<fährt#fuhr,gefahren,führe.haben,sein>}}
這會產生:
{{de-conj|fahren<fährt#fuhr,gefahren,führe.haben,sein>}}
===控制是否顯示 {{m|de||ge-}}===
在弱變化動詞中,本模組會嘗試預測是否在過去分詞中包含 {{m|de|ge-}} 前綴。大多數情況下它能正確運作,使用的演算法如下:
# 如果動詞以 {{m|de|-ieren}} 結尾且前面至少有一個母音,如 {{m|de|studieren}} 或 {{m|de|fotografieren}},則不加 {{m|de||ge-}}。(「前面有一個母音」的規則是為了避免誤判 {{m|de|frieren}}、{{m|de|gieren}}、{{m|de|schmieren}}、{{m|de|stieren}}、{{m|de|zieren}} 等詞。)
# 如果動詞以可識別的不可分前綴開頭,且詞幹中隨後至少有一個母音,則不加 {{m|de||ge-}}。
#* 不可分前綴列表如下:{{m|de|be-}}、{{m|de|emp-}}、{{m|de|ent-}}、{{m|de|er-}}、{{m|de|ge-}}、{{m|de|miss-}}、{{m|de|miß-}}、{{m|de|ver-}} 和 {{m|de|zer-}},以及以下既可是可分也可是不可分的前綴:{{m|de|durch-}}、{{m|de|hinter-}}、{{m|de|über-}}、{{m|de|um-}}、{{m|de|unter-}}、{{m|de|voll-}}、{{m|de|wider-}}、{{m|de|wieder-}}。
#* 「隨後有一個母音」的規則是為了避免誤判 {{m|de|beben}}、{{m|de|bechern}}、{{m|de|belfern}}、{{m|de|bellen}}、{{m|de|bessern}}、{{m|de|beten}}、{{m|de|betteln}}、{{m|de|betten}}、{{m|de|erben}}、{{m|de|erden}}、{{m|de|ernten}}、{{m|de|erzen}}、{{m|de|entern}}、{{m|de|gecken}}、{{m|de|gehren}}、{{m|de|gellen}}、{{m|de|gerben}}、{{m|de|geten}}、{{m|de|missen}}、{{m|de|zergen}}、{{m|de|zerren}} 等詞。
#* 作為此規則的例外,對於以{{m|de||bei-}}、{{m|de||beu-}}、{{m|de||gei-}} 或 {{m|de||geu-}} 開頭且詞幹中隨後沒有母音的動詞,此規則'''不'''生效。這避免了誤判 {{m|de|beigen}}、{{m|de|beichten}}、{{m|de|beugen}}、{{m|de|beulen}} 和 {{m|de|geifern}}。(這也錯誤地排除了 {{m|de|beirren}},該詞需要明確使用 <code>-ge</code> 指示符;見下文。)
# 所有其他動詞預設加上 {{m|de||ge-}} 前綴。
偶爾此演算法會失效。對於這些情況,請在尖括號內顯式指定 <code>+ge</code> 或 <code>-ge</code>。例如,{{m|de|posaunen||吹號、大聲宣佈}} 不帶 {{m|de||ge-}},但既不以可識別的不可分前綴開頭,也不以 {{m|de||-ieren}} 結尾。請如下指定此動詞:
:{{temp|de-conj|<-ge>}}
相反地,{{m|de|beamen||傳送(科幻或投影機)}} 並非以帶有後續母音的不可分前綴 {{m|de|be-}} 開頭,但確實需要 {{m|de||ge-}}。請如下指定:
:{{temp|de-conj|<+ge>}}
如果動詞兩種情況皆可,即帶或不帶 {{m|de||ge-}} 均可,請指定兩種變體,例如 {{m|de|offenbaren||揭示、透露}},其過去分詞可以是 {{m|de||offenbart}} 或 {{m|de||geoffenbart}}:
:{{temp|de-conj|<-ge,+ge>}}
如上所述,像 <code>-ge</code> 這樣的設定是一個「指示符」。如果你需要在尖括號內指定多個指示符,請用點號分隔。例如 {{m|de|karriolen||乘馬車奔馳}},它同時需要 <code>-ge</code> 和 <code>sein</code>。請如下指定:
:{{temp|de-conj|<-ge.sein>}}
===控制是否顯示 {{m|de||-e-}} 中綴===
有些弱變化動詞,例如 {{m|de|atmen||呼吸}} 和 {{m|de|zeichnen||繪畫}},在某些形式中有額外的 {{m|de||-e-}}({{m|de||du atmest}}, {{m|de||er atmet}}, {{m|de||ich atmete}}),且裸命令式 #{{m|de||atm}} 被抑制。通常這是自動判定的:
# 動詞詞幹以 {{m|de||r}} 或 {{m|de||l}} 以外的輔音結尾,後面接 {{m|de||m}} 或 {{m|de||n}} 者,會有額外的 {{m|de||-e-}}。(因此 {{m|de|lernen||學習}} 和 {{m|de|filmen||拍攝}} 沒有。)
# 但以 母音 + {{m|de||h}} + {{m|de||m}}/{{m|de||n}}' 結尾的動詞(如 {{m|de|wohnen||居住}}、{{m|de|rühmen||讚揚、誇耀}})沒有。
# 以 {{m|de||-mmen}} 或 {{m|de||-nnen}}' 結尾的動詞(如 {{m|de|stimmen||調音、正確}}、{{m|de|spannen||拉緊}})也沒有。
這可以使用 <code>einfix</code> 指示符強制顯示額外的 {{m|de||-e-}},或用 <code>-einfix</code> 強制不顯示。例如,{{m|de|knien||跪}} 的第二人稱單數為 {{m|de||du kniest}}(而非 #{{m|de||du knist}}),可用於此詞:
:{{temp|de-conj|<einfix>}}
一些借自英語的動詞,如 {{m|de|managen||管理}} 和 {{m|de|framen||(誣陷/構陷/制定框架)}},變位時可以帶或不帶額外的 {{m|de||-e-}}。要指定這一點,請使用交替形式,詳見下文 [[#其他變位方式|#其他變位方式]]。
===長與短命令式===
大多數動詞都有以 {{m|de||-e}} 結尾的「長」命令式和不以 {{m|de||-e}} 結尾的「短」命令式。例外如下:
# 具有獨特第三人稱單數詞幹的動詞(如 {{m|de|treten||踏}},第三人稱單數 {{m|de||er tritt}})使用該詞幹作為命令式,並且只有「短」變體:{{m|de||tritt!}} 而非 #{{m|de||tritte!}}。例外:如果第三人稱單數詞幹中有 {{m|de||ä}}或{{m|de||ö}}(如 {{m|de|fahren||行駛}},{{m|de||er fährt}};{{m|de|stoßen||推、撞}},{{m|de||er stößt}}),則'''不'''使用此詞幹。取而代之的是使用不定式詞幹,且同時存在「長」和「短」變體:{{m|de||fahr!}} 或 {{m|de||fahre!}}。
# 在第二和第三人稱單數現在時具有 {{m|de||-e-}} 中綴的動詞(見上文 [[#控制是否顯示_-{-e-}-_中綴|#控制是否顯示 {{m|de||-e-}} 中綴]])只有「長」變體:{{m|de||atme!|呼吸!}}、{{m|de||zeichne!|繪畫!}},而非 #{{m|de||atm!}} 或 #{{m|de||zeichn!}}。
# 其他動詞同時具有「長」和「短」變體。
對於只有短命令式的第 (1) 類動詞,可以使用指示符 <code>longimp</code> 強制同時顯示長短變體。例如用於 {{m|de|sehen||看}},其第三人稱單數現在時為 {{m|de||er sieht}},命令式可以是 {{m|de||sieh!}}或{{m|de||siehe!}}:
:{{temp|de-conj|sehen<sieht#sah,gesehen,sähe.longimp>}}
對於同時具有長短命令式的第 (3) 類動詞,可以使用指示符 <code>shortimp</code> 抑制長變體並強制只顯示短變體。
===不規則弱變化動詞===
有些動詞在過去式中作為弱變化動詞變位,但形式不規則。例如 {{m|de|bringen||帶來}}(過去式 {{m|de||brachte}})和 {{m|de|andenken||考慮、打算}}(過去式 {{m|de||dachte an}})。要指定例如 {{m|de|andenken}} 的變位,請使用以下格式:
:{{temp|de-conj|an.denken<dachte,gedacht,dächte>}}
注意其格式與強變化動詞完全相同,指定了所有必要的基本形式。模組知道這是一個弱變化動詞,因為過去式以 {{m|de||-te}} 結尾,而強變化動詞的過去式以其他內容(通常是輔音)結尾。
===不規則動詞===
少數動詞的不規則程度超出了指定基本形式所能處理的正常變化範圍。這些動詞是 {{m|de|sein||是}}、{{m|de|haben||有}}、{{m|de|werden||變成}} 和 {{m|de|tun||做}},以及它們的派生詞。對於這些動詞,請使用指示符 <code>irreg</code>。無需指定任何基本形式,因為模組對這些特定動詞有特殊處理。例如,對於 {{m|de|sein}}:
:{{temp|de-conj|<irreg.sein>}}
這裡我們只指定了指示符 <code>irreg</code>(表示該動詞不規則)和 <code>sein</code>(表示助動詞)。
===過去形現在式動詞===
對於像 {{m|de|können||能夠、會}} 和 {{m|de|wissen||知道}} 這樣的過去形現在式動詞(preterite-present verbs),請使用指示符 <code>pretpres</code> 並照常指定基本形式。這些動詞與強變化動詞的主要區別在於,通常作為第二和第三人稱單數現在時的詞幹,在這些動詞中用於整個單數現在時,且詞尾類似於強變化動詞。例如,對於 {{m|de|können}}:
:{{temp|de-conj|können<pretpres.kann#konnte,gekonnt,könnte>}}
這會產生:
{{de-conj|können<pretpres.kann#konnte,gekonnt,könnte>}}
唯一具有命令式的過去-現在時動詞是 {{m|de|wissen}},模組會對其命令式進行特殊處理。
===多種變體基本形式===
有些動詞有多個可能的過去式、過去分詞或過去虛擬式。要指示這點,請用冒號分隔變體。例如 {{m|de|heben}},其過去虛擬式為 {{m|de||höbe}}或{{m|de||hübe}}:
:{{temp|de-conj|heben<hob,gehoben,höbe:hübe>}}
這會產生:
{{de-conj|heben<hob,gehoben,höbe:hübe>}}
另一個例子是 {{m|de|senden||發送}},過去式為 {{m|de||sendete}}或{{m|de||sandte}},對應的過去分詞為 {{m|de||gesendet}}或{{m|de||gesandt}}:
:{{temp|de-conj|senden<sendete:sandte,gesendet:gesandt>}}
===腳註===
當有多種變體可能時,通常並非所有變體都同樣常見。例如,{{m|de|schwimmen||游泳}} 通常過去式為 {{m|de||schwamm}},過去虛擬式為 {{m|de||schwämme}},但也有罕見的過去虛擬式 {{m|de||schwömme}} 和古舊的過去式 {{m|de||schwomm}}(使用至19世紀)。這可以用放在相關形式後方括號內的腳註來表示:
:{{temp|de-conj|schwimmen<schwamm:schwomm[古舊;一直沿用至19世紀],geschwommen,schwämme:schwömme[罕用]>}}
這會產生:
{{de-conj|schwimmen<schwamm:schwomm[古舊;一直沿用至19世紀],geschwommen,schwämme:schwömme[罕用]>}}
注意,腳註會自動大寫首字母並加上結尾句點,且適用於從該基本形式派生的所有形式。還要注意,在腳註中使用逗號、句點,甚至括號或尖括號都沒有問題(只要括號和尖括號正確配對)。這允許您在腳註中插入連結(包括通過使用生成 HTML 的模板如 {{temp|m}})。
即使某個基本形式是唯一的,您也可以為其添加腳註。此外,您可以通過單獨放置腳註作為指示符來為不定式詞幹添加腳註。例如,這對動詞 {{m|de|auserkiesen||選擇}} 很有用,其不定式及所有派生形式皆已廢棄,而過去式 {{m|de||erkor aus{{m|de||和過去分詞}}auserkoren}} 僅是古舊用法,偶爾使用。指定如下:
:{{temp|de-conj|aus.erkiesen<erkor[古舊],erkoren[古舊],erköre[古舊].[棄用]>}}
這會產生:
{{de-conj|aus.erkiesen<erkor[古舊],erkoren[古舊],erköre[古舊].[棄用]>}}
注意這裡 <code>[棄用]</code> 腳註是如何單獨懸掛的;這實際上是為不定式添加了腳註。
您也可以為助動詞以及 <code>+ge</code> 和 <code>-ge</code> 指示符添加腳註。您可以像這樣用於 {{m|de|offenbaren||揭示、透露}}:
:{{temp|de-conj|offenbaren<-ge[推薦用法,更常見],+ge[並不少見]>}}
這會產生:
{{de-conj|offenbaren<-ge[推薦用法,更常見],+ge[並不少見]>}}
這裡,過去分詞 {{m|de||offenbart}}是官方指定的形式且較常見,但替代形式{{m|de||geoffenbart}} 也相當常見。
===其他變位方式===
有些動詞有多種可能的變位方式。例如 {{m|de|auslöschen}},可以是弱變化或強變化。要指示此類替代方案,請將不同的變位方式放在雙括號 <code>((...))</code> 內,用逗號分隔。例如:
:{{temp|de-conj|((aus.löschen,aus.löschen<lischt#losch,geloschen,lösche>))}}
這會產生:
{{de-conj|((aus.löschen,aus.löschen<lischt#losch,geloschen,lösche>))}}
注意變體是如何合併的,以便消除變體之間的冗餘形式。
另一種偶爾出現且可使用此語法的情況是,動詞的前綴既可是可分也可是不可分。例如 {{m|de|obwalten||盛行、存在}},其現在時為 {{m|de||er obwalte}}(重音在第二個音節,過去分詞 {{m|de||obwalten}})或 {{m|de||er walte ob}}(重音在第一個音節,過去分詞 {{m|de||obgewalten}})。指定如下:
:{{temp|de-conj|((obwalten<-ge>,ob.walten))}}
這會產生:
{{de-conj|((obwalten<-ge>,ob.walten))}}
另一個此語法很有用的例子是 {{m|de|framen||(誣陷/構陷/制定框架)}},它有不帶額外 {{m|de||-e-}} 中綴的形式({{m|de||er framt}})和帶有它的形式({{m|de||er framet}})。關於此中綴的資訊請見上文 [[#控制是否顯示_-{-e-}-_中綴|#控制是否顯示 {{m|de||-e-}} 中綴]]。這可以指定如下:
:{{temp|de-conj|((framen,framen<einfix>))}}
或者甚至只需:
:{{temp|de-conj|((,<einfix>))}}
一個類似但更複雜的例子是 {{m|de|managen||管理}},其中帶 {{m|de||-e-}} 中綴的形式({{m|de||er managet}})比不帶的形式({{m|de||er managt}})少見。這可以用腳註表示:
:{{temp|de-conj|((managen,managen<einfix.[較不常見].managete[較不常見],gemanaget[較不常見]:gemanaged[較不常見]>))}}
這會產生:
{{de-conj|((managen,managen<einfix.[較不常見].managete[較不常見],gemanaget[較不常見]:gemanaged[較不常見]>))}}
這裡,我們添加了一個不定式腳註(第一個腳註,不附屬於任何內容),以及過去式和過去分詞的腳註,包括兩個過去分詞變體({{m|de||gemanaget}}和{{m|de||gemanaged}})。注意,當對重複形式進行去重時,腳註(或無腳註)來自第一個形式。這意味著只有在兩種替代變位之間不同的形式才會獲得腳註,這通常是正確的。
===僅第三人稱動詞===
有些動詞僅在第三人稱變位,僅單數或單數和複數。要指示這點,對於僅在第三人稱單數變位的動詞(通常是無人稱動詞),請使用 <code>only3s</code>;對於僅在第三人稱單數和複數變位的動詞,請使用 <code>only3sp</code>。前者的例子是 {{m|de|schwerfallen||感到困難}}:
:{{temp|de-conj|schwer.fallen<fällt#fiel,gefallen.only3s>}}
這會產生:
{{de-conj|schwer.fallen<fällt#fiel,gefallen.only3s>}}
後者的例子是 {{m|de|schiefgehen||出差錯}}:
:{{temp|de-conj|schief.gehen<ging,gegangen.sein.only3sp>}}
僅第三人稱單數的動詞將代詞從 {{m|de|er}} 更改為 {{m|de|es}},與其主要或僅有的無人稱用法一致,但僅在第三人稱單數和複數變位的動詞不進行此更改,因為它們可以接受無生命物體(包括陽性和陰性)作為主語。
===連接動詞===
像 {{m|de|ausschneiden und einfügen||剪下並貼上}} 這樣的連接動詞,可以通過在每個動詞後放置適當的尖括號規格來變位。例如:
:<code><nowiki>{{de-conj|aus.schneiden<schnitt,geschnitten> [[und]] ein.fügen<>}}</nowiki></code>
這會產生:
{{de-conj|aus.schneiden<schnitt,geschnitten> [[und]] ein.fügen<>}}
與單個弱變化動詞不同,這裡 {{m|de|einfügen}} 的尖括號不能省略。
===不可分的可分動詞===
像 {{m|de|voreinstellen}} 這樣的不可分的可分動詞,無法變位成需要拆分前綴的形式。這特別發生在有多個可分動詞前綴的情況下。例如:
:<code><nowiki>{{de-conj|vorein.stellen<nosplitprefix>}}</nowiki></code>
這會產生:
{{de-conj|vorein.stellen<nosplitprefix>}}
===大寫的可分成分===
有些可分動詞的可分成分原本是名詞,合寫時小寫,分開時則要大寫,例如 {{m|de|radfahren}}(''ich fahre Rad'')。這時把可分成分寫成大寫即可:
:<code><nowiki>{{de-conj|Rad.fahren<fährt#fuhr,gefahren,führe.sein>}}</nowiki></code>
這會產生:
{{de-conj|Rad.fahren<fährt#fuhr,gefahren,führe.sein>|pagename=radfahren}}
不定式、分詞這些合寫的形式會自動改成小寫,分開的形式保留大寫。
==其他參數==
; {{para|pagename}}
: 指定要當作頁面名稱的詞,取代實際的頁面名稱。用於說明頁、測試頁,或要在別的頁面上示範時。
; {{para|json|1}}
: 不顯示表格,改以 JSON 格式輸出所有屈折形式及相關資訊,供機器人使用。
<includeonly>
[[Category:德語動詞變位表模板]]
</includeonly>
m5ec40xlhztxu21q26wsskdnss9abpk
Template:Auto-archive/doc
10
1757231
9938456
9685734
2026-10-04T21:17:41Z
Cewbot
61744
[[User:Cewbot/log/20211203/configuration|同步通用頁面]]: [[w:zh:Template:Auto-archive/doc]] [[w:zh:Special:PermanentLink/94597739|2026-09-27]] (輔助理解用的模板說明文件)
9938456
wikitext
text/x-wiki
<noinclude><!-- 本頁面複製自[[w:zh:Template:Auto-archive/doc]],由機器人定期更新。請直接編輯原維基項目頁面,或自設定頁面[[User:Cewbot/log/20211203/configuration]]去除本頁面之後再編輯。 --></noinclude>{{NoteTA|G1=MediaWiki}}{{Documentation subpage}}<!-- 在本行下編輯模板說明 -->
{{Bot use warning|bots=[[User:Cewbot]]}}{{templates|archives}}
== 概要 ==
本模板用於設定機器人自動存檔。機器人每天運行一次程序。
== 如何設定討論頁 ==
本模板必須嵌入於欲存檔頁面,包含於header頁面無效,反而會處理header頁面本身。機器人只處理明確[[Wikipedia:嵌入包含|嵌入引用]]本模板,且不活躍指定時間的討論頁。
常用的標記模板是{{tlc|Auto-archive}}、{{tlc|Auto-archive|...}}。
=== 範例 ===
; {{tlc|Auto-archive}}: 一周內無人回應則存檔。
; {{tlc|Auto-archive|archive_after_last_comment{{=}}1m}}: 一個月內無人回應則存檔。
; {{tlc|Auto-archive|archive_to_subpage{{=}}存檔 %Y年%2m月}}: 以年份與月份存檔。
== 注意事項 ==
* 寫入存檔失敗則不刪除原討論頁內容。
=== 如何避免被存檔 ===
您可採用{{tl|不存檔}}。這定義於[[User:Cewbot/log/20210429/configuration]]。
== 參數及使用方法 ==
{{TemplateData header}}
<templatedata>
{
"description": "機器人的傳統討論頁面存檔設置",
"params": {
"archive_after_last_comment": {
"label": "時間長度",
"description": "最後討論日期開始,經過特定日數才存檔。",
"default": "1 week",
"type": "line",
"required": false,
"suggestedvalues": ["7d", "7 days", "1w", "1 week", "1m", "1 month"]
},
"archive_to_subpage": {
"label": "存檔到哪個子頁面",
"description": "若未設定本參數,機器人會自動偵測子頁面名稱。若無此頁面將會新建出來。建議採用自動偵測,如此可在存檔頁面過大時跳到下個編號。",
"default": "Archive %1",
"type": "line",
"required": false,
"suggestedvalues": ["存檔%1", "Archive %1", "Archive %Y-%2m", "Archive %Y"]
},
"section_level": {
"label": "存檔章節級數",
"description": "一般都是存檔2級章節",
"default": "2",
"type": "number",
"required": false,
"suggestedvalues": ["2", "3"]
},
"hide": {
"label": "隱藏存檔框",
"description": "設為 「yes」以隱藏頁面右上方的存檔框,這通常適用於使用了自訂存檔框的討論頁上。",
"suggestedvalues": ["yes", "no"],
"type": "line",
"default": "no"
}
}
}
</templatedata>
<!--
== 重定向 ==
== 模板編輯說明 ==
-->
== 參見 ==
* https://www.mediawiki.org/wiki/Manual:Pywikibot/archivebot.py
* https://en.wikipedia.org/wiki/User:MiszaBot/config
* https://en.wikipedia.org/wiki/User:Lowercase_sigmabot_III/Archive_HowTo
* https://en.wikipedia.org/wiki/User:ClueBot_III/ArchiveThis
* https://zh.wikipedia.org/wiki/User:Wcam/ArchiveConfig
* https://zh.wikipedia.org/wiki/User:Bluedeck/haystack/easy-archive
* https://www.wikidata.org/wiki/User:SpBot
<includeonly>{{Sandbox other||<!-- 本行下加入模板的分類 -->
[[Category:存档模板]]
}}</includeonly>
8ua057b1xfll2tdf8s5417efaek4pi9
Module:De-common
828
1783202
9938424
9511347
2026-10-04T14:48:09Z
TongcyDai
53191
同步 enwikt(rev 92526902):add_angle_brackets()、module loader;修正多詞交替項掉空格
9938424
Scribunto
text/plain
local export = {}
--[=[
Authorship: <benwing2>
]=]
local M = require("Module:module loader").init {
require = {
put = "Module:parse utilities",
},
}
local rmatch = mw.ustring.match
local vowels = "aeiouyäöüAEIOUYÄÖÜ"
local capletters = "A-ZÄÖÜ"
export.CAP = "[" .. capletters .. "]"
export.V = "[" .. vowels .. "]"
export.NV = "[^" .. vowels .. "]"
export.articles = {
["m"] = {
ind_nom = "ein", def_nom = "der",
ind_gen = "eines", def_gen = "des",
ind_dat = "einem", def_dat = "dem",
ind_acc = "einen", def_acc = "den",
ind_abl = "einen", def_abl = "den",
ind_voc = "einen", def_voc = "den",
},
["f"] = {
ind_nom = "eine", def_nom = "die",
ind_gen = "einer", def_gen = "der",
ind_dat = "einer", def_dat = "der",
ind_acc = "eine", def_acc = "die",
ind_abl = "eine", def_abl = "die",
ind_voc = "eine", def_voc = "die",
},
["n"] = {
ind_nom = "ein", def_nom = "das",
ind_gen = "eines", def_gen = "des",
ind_dat = "einem", def_dat = "dem",
ind_acc = "ein", def_acc = "das",
ind_abl = "ein", def_abl = "das",
ind_voc = "ein", def_voc = "das",
},
["p"] = {
ind_nom = "([[keine]])", def_nom = "die",
ind_gen = "([[keiner]])", def_gen = "der",
ind_dat = "([[keinen]])", def_dat = "den",
ind_acc = "([[keine]])", def_acc = "die",
ind_abl = "?", def_abl = "?",
ind_voc = "?", def_voc = "?",
},
}
local umlaut = {
["a"] = "ä",
["A"] = "Ä",
["o"] = "ö",
["O"] = "Ö",
["u"] = "ü",
["U"] = "Ü",
}
function export.apply_umlaut(term, origterm)
local stem, after = term:match("^(.*[^e])(e[lmnr]?)$")
if stem then
-- Nagel -> Nägel, Garten -> Gärten
return export.apply_umlaut(stem, term) .. after
end
-- Haus -> Häuschen
local before_v, v, after_v = rmatch(term, "^(.*)([Aa])([Uu]" .. export.NV .. "-)$")
if not before_v then
-- Haar -> Härchen
before_v, v, after_v = rmatch(term, "^(.*)([Aa])[Aa](" .. export.NV .. "-)$")
end
if not before_v then
-- Boot -> Bötchen
before_v, v, after_v = rmatch(term, "^(.*)([Oo])[Oo](" .. export.NV .. "-)$")
end
if not before_v then
-- regular umlaut
before_v, v, after_v = rmatch(term, "^(.*)([AaOouU])(" .. export.NV .. "-)$")
end
if before_v then
return before_v .. umlaut[v] .. after_v
end
error("Can't umlaut " .. (origterm or term) .. " because the last vowel isn't a, o, u or au")
end
function export.fetch_footnotes(separated_group, parse_err)
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
function export.fetch_specs(segments, separator, spectype, allow_blank, parse_err)
local separated_groups = M.put.split_alternating_runs_and_strip_spaces(segments, separator)
if allow_blank and #separated_groups == 1 and #separated_groups[1] == 1 and
separated_groups[1][1] == "" then
return nil
end
local specs = {}
for _, separated_group in ipairs(separated_groups) do
local form = separated_group[1]
if form == "" then
parse_err("Blank form not allowed here, but saw '" .. table.concat(segments) .. "'")
end
local new_spec = {form = form, footnotes = export.fetch_footnotes(separated_group, parse_err)}
for _, existing_spec in ipairs(specs) do
if existing_spec.form == new_spec.form then
parse_err("Duplicate " .. spectype .. " spec '" .. table.concat(separated_group) .. "'")
end
end
table.insert(specs, new_spec)
end
return specs
end
function export.add_angle_brackets(text)
local function add_to_one(txt)
if txt:find("<") then
local segments = M.put.parse_multi_delimiter_balanced_segment_run(txt, {{"<", ">"}, {"[", "]"}})
for i = 2, #segments, 2 do
if segments[i]:find("^<.*>$") then
return txt
end
end
end
return "<" .. txt .. ">"
end
if not text:find("%(%(") then
return add_to_one(text)
end
return (text:gsub("%(%((.-)%)%)", function(alternants)
local segments = M.put.parse_multi_delimiter_balanced_segment_run(alternants, {{"<", ">"}, {"[", "]"}})
-- Strip only the spaces around each alternant. Stripping every raw-text segment, as the enwikt version does,
-- removes the space between the words of a multiword alternant ("lüttje<+> [[Lage]]<f>").
local comma_separated_groups = M.put.split_alternating_runs(segments, ",")
local parts = {}
for _, group in ipairs(comma_separated_groups) do
table.insert(parts, add_to_one(M.put.strip_spaces(table.concat(group))))
end
return "((" .. table.concat(parts, ",") .. "))"
end))
end
return export
dqfw6xjedtcejm7tye40bk0ofkduysr
Module:De-noun
828
1783205
9938426
9909052
2026-10-04T14:48:37Z
TongcyDai
53191
同步 enwikt(rev 92540766):改用 Module:inflection-table 與 palette;本地化
9938426
Scribunto
text/plain
local export = {}
--[=[
Authorship: <benwing2>
]=]
--[=[
TERMINOLOGY:
-- "slot" = A particular combination of case/number.
Example slot names for nouns are "voc_s" (vocative singular) and
"gen_p" (genitive plural). Each slot is filled with zero or more forms.
-- "form" = The declined German form representing the value of a given slot.
-- "lemma" = The dictionary form of a given German term. Generally the nominative
masculine singular, but may occasionally be another form if the nominative
masculine singular is missing.
]=]
--[=[
FIXME:
1. Qualifiers in genders should appear as footnotes on the articles.
2. Support notation like <g:f> on feminine/diminutive/masculine, e.g. used for [[Gespons]] (neuter with the meaning
"wife", masculine with the meaning "husband").
3. Fix CSS gender-specific class in table.
4. Support adjectival nouns and adjective-noun combinations. (DONE)
5. Allow period and comma in forms e.g. for [[Eigent.-Whg.]], [[Eigt.-Whg.]] (using a backslash). (DONE)
6. Allow embedded links in genitive/plural/feminine/diminutive/masculine specs, e.g. 'f=![[weiblich]]er Geschäftspartner'.
7. Add 'prop' indicator to indicate proper nouns and suppress the indefinite article.
8. Add 'surname' indicator to indicate surnames, decline appropriately and include both masc and fem variants in the table. (DONE)
9. Add 'langname' indicator to indicate langnames and decline appropriately with its own table with two alternatives. (DONE)
]=]
local M = require("Module:module loader").init {
require = {
com = "Module:de-common",
de_adjective = "Module:de-adjective",
iut = "Module:inflection utilities",
inflection_table = "Module:inflection-table",
JSON = "Module:JSON",
debug = "Module:debug",
links = "Module:links",
parameters = "Module:parameters",
put = "Module:parse utilities",
string_utilities = "Module:string utilities",
table = "Module:table",
utilities = "Module:utilities",
},
loadData = {
headword_data = "Module:headword/data",
},
lazy = {
lang = function() return require("Module:languages").getByCode("de") end,
},
}
local pretend_from_headword = false -- may be set during debugging
local force_cat = false -- may be set during debugging
local u = M.string_utilities.char
local rfind = M.string_utilities.find
local rmatch = M.string_utilities.match
local rsubn = M.string_utilities.gsub
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
local usub = M.string_utilities.sub
local SUB_ESCAPED_PERIOD = u(0xFFF0)
local SUB_ESCAPED_COMMA = u(0xFFF1)
local archaic_dative_note = "[現已不常用,[[:en:Wiktionary:German entry guidelines#Dative_singular_-e_in_noun_declension|參見註解]]]"
-- version of rsubn() that discards all but the first return value
local function rsub(term, foo, bar)
local retval = rsubn(term, foo, bar)
return retval
end
local function track(page)
M.debug.track("de-noun/" .. page)
return true
end
local states = { "str", "wk", "mix" }
local definitenesses = { "ind", "def" }
local cases_with_abl_voc = { "nom", "gen", "dat", "acc", "abl", "voc" }
local basic_cases = { "nom", "gen", "dat", "acc" }
local numbers = { "s", "p" }
local gender_spec_to_full_gender = {
m = "陽性",
f = "陰性",
n = "中性",
}
local case_set_with_abl_voc = M.table.listToSet(cases_with_abl_voc)
local function add_equiv(slot_list)
table.insert(slot_list, {"m_equiv", "-"}) -- masculine equivalent of a feminine or neuter noun
table.insert(slot_list, {"f_equiv", "-"}) -- feminine equivalent of a masculine or neuter noun
table.insert(slot_list, {"n_equiv", "-"}) -- neuter equivalent of a masculine or feminine noun
end
-- Construct noun slots.
local noun_slot_list = {}
add_equiv(noun_slot_list)
local noun_slot_set = {}
for _, number in ipairs(numbers) do
for _, case in ipairs(number == "s" and cases_with_abl_voc or basic_cases) do
local slot = case .. "_" .. number
local accel = case .. "|" .. number
table.insert(noun_slot_list, {slot, accel})
noun_slot_set[slot] = true
end
end
-- Construct noun surname slots.
local surname_slot_list = {
}
local surname_slot_set = {}
local surname_endings = {
{"m_s", "m|s"},
{"f_s", "f|s"},
{"p", "p"},
}
for _, case in ipairs(basic_cases) do
for _, ending_and_accel in ipairs(surname_endings) do
local ending, ending_accel = unpack(ending_and_accel)
local slot = case .. "_" .. ending
local accel = case .. "|" .. ending_accel
table.insert(surname_slot_list, {slot, accel})
surname_slot_set[slot] = true
end
end
-- Construct noun langname slots.
local langname_slot_list = {
}
local langname_slot_set = {}
for _, case in ipairs(basic_cases) do
for _, number in ipairs(numbers) do
for _, is_alt in ipairs { false, true } do
local slot = case .. "_" .. number .. (is_alt and "_alt" or "")
-- FIXME: We should add accelerators for the alternative forms, but this requires hacking the accelerator
-- code in [[Module:inflection utilities]] to specify the alternative lemma; e.g. genitive singular
-- ''Deutschen'' needs to have lemma [[Deutsche]] not [[Deutsch]].
local accel = is_alt and "-" or case .. "|" .. number
table.insert(langname_slot_list, {slot, accel})
langname_slot_set[slot] = true
end
end
end
-- Construct adjectival slots.
local adjectival_slot_list = {}
add_equiv(adjectival_slot_list)
local adjectival_slot_set = {}
for _, state in ipairs(states) do
for _, case in ipairs(basic_cases) do
for _, number in ipairs(numbers) do
local slot = state .. "_" .. case .. "_" .. number
local accel = state .. "|" .. case .. "|" .. number
table.insert(adjectival_slot_list, {slot, accel})
adjectival_slot_set[slot] = true
end
end
end
-- Construct expanded slot lists including linked variants.
local noun_slot_list_with_linked = M.table.shallowCopy(noun_slot_list)
table.insert(noun_slot_list_with_linked, {"nom_s_linked", "nom|s"})
table.insert(noun_slot_list_with_linked, {"nom_p_linked", "nom|p"})
local surname_slot_list_with_linked = M.table.shallowCopy(surname_slot_list)
table.insert(surname_slot_list_with_linked, {"nom_m_s_linked", "nom|m|s"})
local langname_slot_list_with_linked = M.table.shallowCopy(langname_slot_list)
table.insert(langname_slot_list_with_linked, {"nom_s_linked", "nom|s"})
local adjectival_slot_list_with_linked = M.table.shallowCopy(adjectival_slot_list)
table.insert(adjectival_slot_list_with_linked, {"str_nom_s_linked", "str|nom|s"})
table.insert(adjectival_slot_list_with_linked, {"str_nom_p_linked", "str|nom|p"})
-- Construct expanded slot lists including linked variants and articles.
local function add_slot_articles(slot_list, cases, numbers)
for _, case in ipairs(cases) do
for _, number in ipairs(numbers) do
for _, def in ipairs(definitenesses) do
local slotaccel = {"art_" .. def .. "_" .. case .. "_" .. number, "-"}
table.insert(slot_list, slotaccel)
end
end
end
end
local noun_slot_list_with_linked_and_articles = M.table.shallowCopy(noun_slot_list_with_linked)
add_slot_articles(noun_slot_list_with_linked_and_articles, cases_with_abl_voc, numbers)
local surname_slot_list_with_linked_and_articles = M.table.shallowCopy(surname_slot_list_with_linked)
add_slot_articles(surname_slot_list_with_linked_and_articles, basic_cases, {"m_s", "f_s", "p"})
local langname_slot_list_with_linked_and_articles = M.table.shallowCopy(langname_slot_list_with_linked)
add_slot_articles(langname_slot_list_with_linked_and_articles, basic_cases, {"s"})
local adjectival_slot_list_with_linked_and_articles = M.table.shallowCopy(adjectival_slot_list_with_linked)
add_slot_articles(adjectival_slot_list_with_linked_and_articles, basic_cases, numbers)
-- Return true if `prop` is a recognized indicator that can be specified on adjectives in [[Module:de-adjective]].
local function is_adjectival_decl_indicator(prop)
return prop == "ss" or prop == "sync_n" or prop == "sync_mn" or prop == "sync_mns"
end
local function skip_slot(number, slot)
return number == "sg" and rfind(slot, "_p$") or
number == "pl" and rfind(slot, "_s$")
end
local function combine_stem_ending(props, stem, ending)
if ending:find("^%^") then
-- Umlaut requested
ending = rsub(ending, "^%^", "")
stem = M.com.apply_umlaut(stem)
end
if props.ss and stem:find("ß$") and rfind(ending, "^" .. M.com.V) then
stem = rsub(stem, "ß$", "ss")
end
return stem .. ending
end
-- Add a form (a combination of `stem` and `ending`, where either may be a single string, a list of strings, or a
-- list of objects of the form {form=FORM, footnotes=FOOTNOTES}, where FOOTNOTES can be nil or a list of strings)
-- to the given slot `slot`. `gender` specifies the gender of the resulting form ("m", "f" or "n") or nil. (This is
-- used to ensure that the correct article is attached to the form when there are multiple forms with differing
-- genders. If `gender` is nil, articles of all relevant genders will be included. `gender` should only be nil
-- when the slot is plural or when the gender cannot be determined, e.g. in overrides.) `footnotes` specifies
-- any extra footnotes to add to the resulting form, and should be either nil or a list of strings.
-- `process_combined_stem_ending` is a function to process the resulting form before it is inserted. (This is used
-- currently to add an -n to the dative plural.)
local function add(base, slot, stem, ending, gender, footnotes, process_combined_stem_ending)
if not ending or skip_slot(base.number, slot) then
return
end
local function do_combine_stem_ending(stem, ending)
local retval = combine_stem_ending(base.props, stem, ending)
if process_combined_stem_ending then
retval = process_combined_stem_ending(retval)
end
-- For now, don't do this.
-- If gender specified, add a special character to the beginning of the value to indicate the
-- gender. This gets propagated to the end and used in [[Module:de-headword]].
-- if gender then
-- retval = gender_to_gender_char[gender] .. retval
-- end
return retval
end
footnotes = M.iut.combine_footnotes(base.footnotes, footnotes)
local ending_obj = M.iut.combine_form_and_footnotes(ending, footnotes)
-- If we're declining an adjectival noun or adjective-noun combination, and the slot is a noun slot, convert it to
-- the equivalent adjective slots (e.g. gen_s -> str_gen_s/wk_gen_s/mix_gen_s). But don't do that for "m_equiv",
-- "f_equiv", "n_equiv", which are the same in nouns and adjectives.
if base.props.overall_adj and noun_slot_set[slot] and not rfind(slot, "equiv$") then
for _, state in ipairs(states) do
M.iut.add_forms(base.forms, state .. "_" .. slot, stem or base.lemma, ending_obj, do_combine_stem_ending)
end
else
M.iut.add_forms(base.forms, slot, stem or base.lemma, ending_obj, do_combine_stem_ending)
end
end
-- Process an ending spec such as "s", "(e)s", "^er", "^lein", "!Pizzen", etc. as might be found in the genitive,
-- plural, an override, the value of dim=/m=/f=/n=, etc. `endings` is a list of such specs, where each entry of the
-- list is of the form {form=FORM, footnotes=FOOTNOTES} where FOOTNOTES is either nil or {FOOTNOTE, FOOTNOTE, ...}. If
-- `literal_endings` is given, the FORM values should be interpreted literally (i.e. as full forms) rather than as
-- ending specs. `default` is what to substitute if an ending spec is "+", and should be either in the same format as
-- `endings` or something that can be converted to that format, e.g. a string. `literal_default`, if given, indicates
-- that the FORM values in `default` should be interpreted literally, similar to `literal_endings`. `desc` is an
-- English description of what kind of spec is being processed, for error messages. `process` is called for each
-- generated form and is a function of two arguments, STEM and ENDING. If the spec is a full form, STEM will be that
-- form (in the form of an object {form=FORM, footnotes=FOOTNOTES}) and ENDING will be an empty string; otherwise, STEM
-- will be nil and ENDING will be the the ending to process in the form {form=FORM, footnotes=FOOTNOTES}. Note that
-- umlauts are not handled in process_spec(); if the spec passed in specifies an umlaut, e.g. "^chen", process()
-- will be called with a FORM beginning with "^", and must handle the umlaut itself. (Umlauts are properly handled
-- inside of add().)
local function process_spec(endings, literal_endings, default, literal_default, desc, process)
for _, ending in ipairs(endings) do
local function sub_form(form)
return {form = form, footnotes = ending.footnotes}
end
if ending.form == "--" then
-- do nothing
elseif ending.form == "+" then
if not default then
-- Could happen if e.g. gen is given as -- and then a gen_s override with + is specified, or with n= for neuter,
-- where no default is available.
error("Form '+' found for " .. desc .. " but no default is available")
end
process_spec(M.iut.convert_to_general_list_form(default, ending.footnotes), literal_default, nil, nil, desc, process)
else
local full_eform
if literal_endings or rfind(ending.form, "^" .. M.com.CAP) then
full_eform = true
elseif rfind(ending.form, "^!") then
full_eform = true
ending = sub_form(rsub(ending.form, "^!", ""))
end
if full_eform then
process(ending, "")
else
local expanded_endings
local umlaut = rmatch(ending.form, "^(%^?)%(e%)s$" )
if umlaut then
expanded_endings = {"es", "s"}
end
if not umlaut then
umlaut = rmatch(ending.form, "^(%^?)%(s%)$")
if umlaut then
expanded_endings = {"s", ""}
end
end
if not umlaut then
umlaut = rmatch(ending.form, "^(%^?)%(es%)$")
if umlaut then
expanded_endings = {"es", ""}
end
end
if expanded_endings then
local new_endings = {}
for _, expanded_ending in ipairs(expanded_endings) do
table.insert(new_endings, sub_form(umlaut .. expanded_ending))
end
process(nil, new_endings)
else
if ending.form == "-" then
ending = sub_form("")
end
process(nil, ending)
end
end
end
end
end
-- Add an ending spec such as "s", "(e)s", "^er", "^lein", "!Pizzen", etc. as might be found in the genitive, plural,
-- an override, the value of dim=/m=/f=/n=, etc., to the slot `slot` (e.g. "gen_s"). `endings` is a list of such specs,
-- where each entry of the list is of the form {form=FORM, footnotes=FOOTNOTES} where FOOTNOTES is either nil or
-- {FOOTNOTE, FOOTNOTE, ...}. For the meaning of `gender`, `footnotes` and `process_combined_stem_ending`, see add().
-- For the meaning of `default` and `literal_default`, see process_spec().
local function add_spec(base, slot, endings, gender, default, literal_default, footnotes, process_combined_stem_ending)
local function do_add(stem, ending)
add(base, slot, stem, ending, gender, footnotes, process_combined_stem_ending)
end
process_spec(endings, nil, default, literal_default, "slot '" .. slot .. "'", do_add)
end
local function process_slot_overrides(base)
for slot, overrides in pairs(base.overrides) do
if skip_slot(base.number, slot) then
error("Override specified for invalid slot '" .. slot .. "' due to '" .. base.number .. "' number restriction")
end
local origforms = base.forms[slot]
base.forms[slot] = nil
-- Gender is not given by the user.
add_spec(base, slot, overrides, nil, origforms, "literal default")
end
end
local function add_archaic_dative_singular(base, gender, def_gen)
for _, ending in ipairs(base.gens) do
local dat_ending
local ending_form = ending.form
if ending_form == "+" then
ending_form = def_gen
end
if ending_form == "es" or ending_form == "(e)s" then
dat_ending = "e"
elseif ending_form == "ses" then
dat_ending = "se"
elseif base.props.dat_with_e then
dat_ending = "e"
end
if dat_ending then
add(base, "dat_s", nil, dat_ending, gender, M.iut.combine_footnotes(ending.footnotes, {archaic_dative_note}))
end
end
end
local function get_n_ending(base, stem, is_sg)
if rfind(stem, "e$") then
-- typical feminine or weak masculine in -e
return "n"
elseif rfind(stem, "e[lr]$") and not rfind(stem, M.com.NV .. "[ei]e[lr]$") then
-- [[Kammer]], [[Feier]], [[Leier]], but not [[Spur]], [[Beer]], [[Manier]], [[Schmier]] or [[Vier]]
-- similarly, [[Achsel]], [[Gabel]], [[Tafel]], etc. but not [[Ziel]]
return "n"
elseif base.props.weak_n then
-- ''des Nachbarn'', ''des Herrn'', ''des Satyrn'', etc.
return "n"
elseif rfind(stem, "[^aeAE]in$") then
-- [[Chinesin]], [[Doktorin]], etc.; but not words in -ein or -ain such as [[Pein]]
return "nen"
else
return "en"
end
end
local function get_default_gen(base, gender)
if gender == "f" then
return ""
elseif base.props.weak then
return get_n_ending(base, base.lemma, "is singular")
elseif rfind(base.lemma, "nis$") then
-- neuter like [[Erlebnis]], [[Geheimnis]] or occasional masculine like [[Firnis]], [[Penis]]
return "ses"
elseif rfind(base.lemma, M.com.NV .. "us$") then
-- [[Euphemismus]], [[Exitus]], [[Exodus]], etc.
return ""
elseif rfind(base.lemma, "[sßxz]$") then
return "es"
else
return "s"
end
end
local function get_default_pl(base, gender)
if rfind(base.lemma, "nis$") then
-- neuter like [[Erlebnis]], [[Geheimnis]] or feminine like [[Kenntnis]], [[Wildnis]],
-- or occasional masculine like [[Firnis]], [[Penis]]
return "se"
elseif gender == "f" or base.props.weak then
return get_n_ending(base, base.lemma)
elseif rfind(base.lemma, "e$") then
track("default-pl-e-not-f-or-weak")
-- FIXME: This should return "s"
return get_n_ending(base, base.lemma)
elseif gender == "n" and rfind(base.lemma, "lein$") then
-- Diminutives in -lein (those in -chen will automatically get a null ending from -en below)
return ""
elseif gender == "n" and rfind(base.lemma, "um$") then
-- [[Museum]] -> [[Museen]], [[Vakuum]] -> [[Vakuen]]; not masculine [[Baum]] (plural [[Bäume]])
-- or [[Reichtum]] (plural [[Reichtümer]])
return "!" .. rsub(base.lemma, "um$", "en")
elseif rfind(base.lemma, "mus$") then
-- Algorithmus -> Algorithmen, Aphorismus -> Aphorismen
return "!" .. rsub(base.lemma, "us$", "en")
elseif rfind(base.lemma, M.com.NV .. "us$") then
-- [[Abakus]] -> [[Abakusse]], [[Zirkus]] -> [[Zirkusse]], [[Autobus]] -> [[Autobusse]];
-- not [[Applaus]] (plural [[Applause]])
return "se"
elseif rfind(base.lemma, "e[lmnr]$") and not rfind(base.lemma, M.com.NV .. "[ei]e[lnmr]$") then
-- check for weak ending -el, -em, -en, -er, e.g. [[Adler]], [[Meier]], [[Riedel]]; but exclude [[Heer]],
-- [[Bier]], [[Ziel]], which take -e by default
return ""
else
return "e"
end
end
local function decline_singular(base, gender, def_gen)
add(base, "nom_s", nil, "", gender)
add_spec(base, "gen_s", base.gens, gender, def_gen)
if base.props.weak then
local ending = get_n_ending(base, base.lemma, "is singular")
add(base, "dat_s", nil, ending, gender)
add(base, "acc_s", nil, gender == "m" and ending or "", gender)
else
add(base, "dat_s", nil, "", gender)
add_archaic_dative_singular(base, gender, def_gen)
add(base, "acc_s", nil, "", gender)
end
end
local function decline_plural(base, def_pl)
local function process_nom_pl_for_decl_type(stem_ending)
if base.props.saw_mn and base.number ~= "pl" then
if base.props.weak then
M.table.insertIfNot(base.decl_type, "弱變化")
elseif stem_ending == base.lemma .. "n" or stem_ending == base.lemma .. "en" then
M.table.insertIfNot(base.decl_type, "混合變化")
else
M.table.insertIfNot(base.decl_type, "強變化")
end
end
return stem_ending
end
local function process_dat_pl_to_add_n(stem_ending)
if base.props.nodatpln then
return stem_ending
elseif rfind(stem_ending, "e[lr]?$") or rfind(stem_ending, "erl$") then
return stem_ending .. "n"
else
return stem_ending
end
end
add_spec(base, "nom_p", base.pls, nil, def_pl, nil, nil, process_nom_pl_for_decl_type)
add_spec(base, "gen_p", base.pls, nil, def_pl)
add_spec(base, "dat_p", base.pls, nil, def_pl, nil, nil, process_dat_pl_to_add_n)
add_spec(base, "acc_p", base.pls, nil, def_pl)
end
local function decline_noun(base)
if base.number == "pl" then
decline_plural(base, "")
if rfind(base.lemma, "innen$") then
--- Ends in -innen, likely feminine. Chop off, and convert e.g. Chinesinnen -> Chinesen.
local masc = rsub(base.lemma, "innen$", "")
if rfind(masc, "es$") then
masc = masc .. "en"
end
-- No need to specify gender for *_equiv; will be handled correctly in [[Module:de-headword]].
add(base, "m_equiv", masc, "")
else
-- Likely masculine. Try to convert Chinesen -> Chinesinnen, and -er -> -erinnen.
local femstem = rsub(base.lemma, "en$", "")
add(base, "f_equiv", femstem, "innen")
end
else
base.decl_type = {}
for _, genderspec in ipairs(base.genders) do
local gender = genderspec.form
decline_singular(base, gender, get_default_gen(base, gender))
decline_plural(base, get_default_pl(base, gender))
if gender == "m" then
add(base, "f_equiv", rsub(base.lemma, "e$", ""), "in") -- feminine
elseif gender == "f" then
-- Try (sort of) to get the masculine. Remove final -in, and if the result ends in -es, convert to -ese
-- (e.g. Chinesin -> Chinese).
local masc = rsub(base.lemma, "in$", "")
if rfind(masc, "es$") then
masc = masc .. "e"
end
add(base, "m_equiv", masc, "")
end -- do nothing for neuter
end
end
end
local function decline_surname(base)
-- We don't specify gender here. There are always two genders, m and f, which will be handled correctly in
-- [[Module:de-headword]].
add(base, "nom_m_s", nil, "")
add(base, "nom_f_s", nil, "")
local gen_m_s
if rfind(base.lemma, "[sxzß]$") or rfind(base.lemma, "ce$") then
-- [[Marx]], [[Engels]], [[Weiß]], [[Schulz]]
-- also names with silent -s or -x like [[Delacroix]]
gen_m_s = "'"
else
gen_m_s = "s"
end
add_spec(base, "gen_m_s", base.gens, nil, gen_m_s)
add(base, "gen_m_s", nil, "", nil, {"[帶冠詞]"})
add(base, "gen_f_s", nil, "")
add(base, "dat_m_s", nil, "")
add(base, "dat_f_s", nil, "")
add(base, "acc_m_s", nil, "")
add(base, "acc_f_s", nil, "")
local pl_ending
if rfind(base.lemma, "[sxß]$") then
-- [[Marx]], [[Engels]], [[Weiß]]
pl_ending = {"", "ens"}
elseif rfind(base.lemma, "z$") then
-- [[Schulz]], [[Schmitz]]
pl_ending = {"", "es", "ens"}
elseif rfind(base.lemma, "ce$") then
pl_ending = {"", "ns"}
elseif rfind(base.lemma, "e[nlr]?$") then
-- [[Müller]], [[Goethe]], [[Dürer]], [[Schlegel]], [[Münchhausen]]
pl_ending = {"s", ""}
else
-- [[Schmidt]], [[Bergmann]], [[Brentano]]
pl_ending = {"s"}
end
add_spec(base, "nom_p", base.pls, nil, pl_ending)
add_spec(base, "gen_p", base.pls, nil, pl_ending)
add_spec(base, "dat_p", base.pls, nil, pl_ending)
add_spec(base, "acc_p", base.pls, nil, pl_ending)
end
local function decline_toponym(base)
-- We don't specify gender here, which is always neuter.
add(base, "nom_s", nil, "")
local gen_s
local null_footnote
if rfind(base.lemma, "[sxzß]$") then
gen_s = "'"
null_footnote = "[帶冠詞]"
else
gen_s = "s"
null_footnote = "[可帶可不帶冠詞]"
end
add_spec(base, "gen_s", base.gens, nil, gen_s)
add(base, "gen_s", nil, "", nil, {null_footnote})
add(base, "dat_s", nil, "")
add(base, "acc_s", nil, "")
if base.number == "both" then
-- only with explicitly given plural
add_spec(base, "nom_p", base.pls)
add_spec(base, "gen_p", base.pls)
add_spec(base, "dat_p", base.pls)
add_spec(base, "acc_p", base.pls)
end
end
local function decline_langname(base)
-- We don't specify gender here, which is always neuter.
add(base, "nom_s", nil, "")
add(base, "gen_s", nil, "")
-- If explicit genitive singular given, add it (in addition to the null genitive singular), otherwise default to -s.
add_spec(base, "gen_s", base.gens, nil, "s")
add(base, "dat_s", nil, "")
add(base, "acc_s", nil, "")
add(base, "nom_s_alt", nil, "e")
add(base, "gen_s_alt", nil, "en")
add(base, "dat_s_alt", nil, "en")
add(base, "acc_s_alt", nil, "e")
end
local function decline_adjective(base)
-- Construct an equivalent call to {{de-adecl}} based on the adjective indicators we fetched.
local adj_spec_parts = {}
local function ins(val)
table.insert(adj_spec_parts, val)
end
local function ins_dot()
if #adj_spec_parts > 0 then
ins(".")
end
end
local function insert_footnotes(footnotes)
if footnotes then
for _, footnote in ipairs(footnotes) do
ins(footnote)
end
end
end
if base.adj_stem then
ins("stem")
for _, stem in ipairs(base.adj_stem) do
ins(":")
ins(stem.form)
insert_footnotes(stem.footnotes)
end
end
if base.adj_suppress then
ins_dot()
ins("suppress:")
ins(base.adj_suppress)
end
if base.footnotes then
ins_dot()
insert_footnotes(base.footnotes)
end
for prop, _ in pairs(base.props) do
if is_adjectival_decl_indicator(prop) then
ins_dot()
ins(prop)
end
end
local adj_alternant_multiword_spec = M.de_adjective.do_generate_forms(
{base.lemma .. "<" .. table.concat(adj_spec_parts) .. ">"}
)
local function copy(from_slot, to_slot)
base.forms[to_slot] = adj_alternant_multiword_spec.forms[from_slot]
end
local function copy_gender_forms(gender)
local number = gender == "p" and "p" or "s"
for _, state in ipairs(states) do
for _, case in ipairs(basic_cases) do
copy(state .. "_" .. case .. "_" .. gender, state .. "_" .. case .. "_" .. number)
end
end
end
if base.number == "pl" then
copy_gender_forms("p")
-- No need to specify gender for *_equiv; will be handled correctly in [[Module:de-headword]].
add(base, "m_equiv", base.lemma, "e")
add(base, "f_equiv", base.lemma, "e")
add(base, "n_equiv", base.lemma, "e")
else
-- Normally there should be only one gender.
for _, genderspec in ipairs(base.genders) do
local gender = genderspec.form
copy_gender_forms(gender)
-- No need to specify gender for *_equiv; will be handled correctly in [[Module:de-headword]].
add(base, "m_equiv", base.lemma, "er") -- masculine
add(base, "f_equiv", base.lemma, "e") -- feminine
add(base, "n_equiv", base.lemma, "es") -- neuter
end
if base.number ~= "sg" then
copy_gender_forms("p")
end
end
end
-- Return the slots that may contain a lemma, in the order they should be checked. `props` is a property table,
-- coming either from `base` or `alternant_multiword_spec`.
local function get_lemma_slots(props)
if props.surname then
return {"nom_m_s"}
elseif props.overall_adj then
return {"str_nom_s", "str_nom_p"}
else
return {"nom_s", "nom_p"}
end
end
-- Return the lemmas for this term. The return value is a list of {form = FORM, footnotes = FOOTNOTES}.
-- If `linked_variant` is given, return the linked variants (with embedded links if specified that way by the user),
-- otherwies return variants with any embedded links removed. If `remove_footnotes` is given, remove any
-- footnotes attached to the lemmas.
function export.get_lemmas(alternant_multiword_spec, linked_variant, remove_footnotes)
local slots_to_fetch = get_lemma_slots(alternant_multiword_spec.props)
local linked_suf = linked_variant and "_linked" or ""
for _, slot in ipairs(slots_to_fetch) do
if alternant_multiword_spec.forms[slot .. linked_suf] then
local lemmas = alternant_multiword_spec.forms[slot .. linked_suf]
if remove_footnotes then
local lemmas_no_footnotes = {}
for _, lemma in ipairs(lemmas) do
table.insert(lemmas_no_footnotes, {form = lemma.form})
end
return lemmas_no_footnotes
else
return lemmas
end
end
end
return {}
end
local function handle_derived_slots_and_overrides(base)
process_slot_overrides(base)
-- Compute linked versions of potential lemma slots, for use in {{de-noun}}.
-- 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(get_lemma_slots(base.props)) do
M.iut.insert_forms(base.forms, slot .. "_linked", M.iut.map_forms(base.forms[slot], function(form)
if form == base.orig_lemma_no_links and rfind(base.orig_lemma, "%[%[") then
return base.orig_lemma
else
return form
end
end))
end
end
-- Like M.put.split_alternating_runs_and_strip_spaces(), but ensure that backslash-escaped commas and periods are not
-- treated as separators.
local function split_alternating_runs_with_escapes(segments, splitchar)
for i, segment in ipairs(segments) do
segments[i] = rsub(segment, "\\,", SUB_ESCAPED_COMMA)
segments[i] = rsub(segment, "\\%.", SUB_ESCAPED_PERIOD)
end
local separated_groups = M.put.split_alternating_runs_and_strip_spaces(segments, splitchar)
for _, separated_group in ipairs(separated_groups) do
for i, segment in ipairs(separated_group) do
separated_group[i] = rsub(segment, SUB_ESCAPED_COMMA, ",")
separated_group[i] = rsub(segment, SUB_ESCAPED_PERIOD, ".")
end
end
return separated_groups
end
--[=[
Parse an indicator spec (text consisting of angle brackets and zero or more dot-separated indicators within them).
Return value is an object of the form
{
overrides = {
SLOT = {OVERRIDE, OVERRIDE, ...},
...
}, -- where OVERRIDE is {form = FORM, footnotes = FOOTNOTES}; same as `forms` table; FORM can be a full form (only if
beginning with a capital letter or !), otherwise an ending; "-" for an ending means a null ending, while
"--" suppresses the slot entirely, i.e. it is defective
gens = {GEN_SG_SPEC, GEN_SG_SPEC, ...}, same form as OVERRIDE above
pls = {PL_SPEC, PL_SPEC, ...}, same form as OVERRIDE above
forms = {}, -- forms for a single spec alternant; see `forms` below
props = {
PROP = true,
PROP = true,
...
}, -- misc Boolean properties: "weak" (weak noun); "adj" (adjectival noun; set using "+");
"ss" (lemma in -ß changes to -ss- before endings beginning with a vowel; pre-1996 spelling);
"nodatpln" (suppress automatic addition of 'n' in the dative plural after '-e', '-er', '-el')
number = "NUMBER", -- "sg", "pl", "both"; may be missing
adj = true, -- may be missing
-- The following additional fields are added by other functions:
orig_lemma = "ORIGINAL-LEMMA", -- as given by the user or taken from pagename
orig_lemma_no_links = "ORIGINAL-LEMMA-NO-LINKS", -- links removed
lemma = "LEMMA", -- `orig_lemma_no_links`,
forms = {
SLOT = {
{
form = "FORM",
footnotes = {"FOOTNOTE", "FOOTNOTE", ...} -- may be missing
},
...
},
...
},
}
]=]
local function parse_indicator_spec(angle_bracket_spec, lemma, pagename, proper_noun)
if lemma == "" then
lemma = pagename
end
local base = {forms = {}, overrides = {}, props = {prop = proper_noun}}
base.orig_lemma = lemma
base.orig_lemma_no_links = M.links.remove_links(lemma)
base.lemma = base.orig_lemma_no_links
local inside = rmatch(angle_bracket_spec, "^<(.*)>$")
assert(inside)
local function parse_err(msg)
error(msg .. ": <" .. inside .. ">")
end
--[=[
Parse a single override spec and return three values: the slot the override applies to, the original indicator
spec used to specify the slot, and the override specs. The input is a list where the footnotes have been separated
out. For example, given the spec 'dat:-[referring to a card suit, as a term of endearment, and generally in speech]:en[in most cases in writing]',
the input will be a list {"dat:-", "[referring to a card suit, as a term of endearment, and generally in speech]", ":en",
"[in most cases in writing]", ""}
]=]
local function parse_override(segments)
local part = segments[1]
local offset = 4
local case = usub(part, 1, 3)
if not case_set_with_abl_voc[case] then
parse_err("Internal error: unrecognized case in override: '" .. table.concat(segments) .. "'")
end
local indicator = case
local rest = usub(part, offset)
local slot
if rfind(rest, "^pl") then
rest = rsub(rest, "^pl", "")
slot = case .. "_p"
indicator = indicator .. "pl"
else
slot = case .. "_s"
end
if rfind(rest, "^:") then
rest = rsub(rest, "^:", "")
else
parse_err("Slot indicator '" .. indicator .. "' must be followed by a colon: '" .. table.concat(segments) .. "'")
end
if not noun_slot_set[slot] then
parse_err("Unrecognized slot indicator '" .. indicator .. "': '" .. table.concat(segments) .. "'")
end
segments[1] = rest
return slot, indicator, M.com.fetch_specs(segments, ":", "override", nil, parse_err)
end
if inside ~= "" then
local segments = M.put.parse_balanced_segment_run(inside, "[", "]")
local dot_separated_groups = split_alternating_runs_with_escapes(segments, "%.")
for i, dot_separated_group in ipairs(dot_separated_groups) do
local part = dot_separated_group[1]
if i == 1 then
local comma_separated_groups = split_alternating_runs_with_escapes(dot_separated_group, ",")
base.genders = M.com.fetch_specs(comma_separated_groups[1], ":", "gender", nil, parse_err)
local saw_sg = false
local saw_pl = false
local saw_gendered_pl = false
local saw_non_gendered_pl = false
local saw_adj = false
local special_variant = nil
for _, genderspec in ipairs(base.genders) do
local g = genderspec.form
if g == "m" or g == "n" then
-- Set this on `base.props` as it's used in various other places.
base.props.saw_mn = true
saw_sg = true
elseif g == "f" then
saw_sg = true
elseif g == "p" then
saw_pl = true
saw_non_gendered_pl = true
elseif rfind(g, "^[mfn]p$") then
saw_pl = true
saw_gendered_pl = true
elseif g == "+" or g == "p+" or g == "+p" then
if #base.genders > 1 then
parse_err("Can't specify multiple genders with adjectival declension")
end
saw_adj = true
if g ~= "+" then
saw_pl = true
end
elseif g == "surname" or g == "toponym" or g == "langname" then
if #base.genders > 1 then
parse_err("Can't specify multiple genders with " .. g .. " declension")
end
special_variant = g
else
parse_err("Unrecognized gender spec '" .. g .. "'")
end
end
if saw_sg and saw_pl then
parse_err("Can't specify both singular and plural gender specs")
end
if saw_gendered_pl and saw_non_gendered_pl then
parse_err("Can't specify both 'p' and gendered plural specs")
end
local gen_index = (base.props.saw_mn or special_variant) and 2 or 1
local pl_index =
(saw_adj or saw_pl) and 1 or
(base.props.saw_mn or special_variant == "surname" or special_variant == "toponym") and 3 or
2
if #comma_separated_groups > pl_index then
if saw_adj then
parse_err("Can't specify plurals or genitives with adjectival declension")
elseif saw_pl then
parse_err("Can't specify plurals or genitives with plural-only nouns")
elseif base.props.saw_mn then
parse_err("Can specify at most three comma-separated specs when the gender is masculine or "
.. "neuter (gender, genitive, plural)")
elseif special_variant == "surname" or special_variant == "toponym" then
parse_err("Can specify at most three comma-separated specs with '" .. special_variant .. "' "
.. "nouns ('" .. special_variant .. "', genitive, plural)")
elseif special_variant == "langname" then
parse_err("Can specify at most two comma-separated specs with 'langname' "
.. " ('langname', genitive)")
else
parse_err("Can specify at most two comma-separated specs when the gender is feminine "
.. "(gender, plural)")
end
end
if #comma_separated_groups >= gen_index and gen_index > 1 then
base.gens = M.com.fetch_specs(comma_separated_groups[gen_index], ":", "genitive", "allow blank", parse_err)
end
if #comma_separated_groups >= pl_index and pl_index > gen_index then
base.pls = M.com.fetch_specs(comma_separated_groups[pl_index], ":", "plural", "allow blank", parse_err)
end
if special_variant then
if #base.genders > 1 then
parse_err("Internal error: More than one gender spec for '" .. special_variant .. "'")
else
base.props[special_variant] = true
if special_variant == "surname" then
-- FIXME, does it make sense to put the footnotes on the feminine gender (they appear after the gender)?
base.genders = {{form = "m"}, {form = "f", footnotes = base.genders[1].footnotes}}
else
base.genders = {{form = "n", footnotes = base.genders[1].footnotes}}
end
end
elseif saw_adj then
if #base.genders > 1 then
parse_err("Internal error: More than one gender spec for adjectival declension")
else
base.props.adj = true
if saw_pl then
base.number = "pl"
base.genders = {{form = "p", footnotes = base.genders[1].footnotes}}
else
-- Stash the footnotes into `adj_footnotes`; we will put them onto the autodetected gender
-- in determine_adjectival_genders(), which will set base.genders appropriately.
base.adj_footnotes = base.genders[1].footnotes
base.genders = {}
end
end
elseif saw_pl then
-- Convert 'mp' to 'm-p', 'fp' to 'f-p', etc. as that's what [[Module:gender and number]] expects.
for _, genderspec in ipairs(base.genders) do
local gender = rmatch(genderspec.form, "^([mfn])p$")
if gender then
genderspec.form = gender .. "-p"
end
end
base.number = "pl"
end
elseif base.props.adj and part:find("^stem:") then
dot_separated_group[1] = rsub(part, "^stem:", "")
base.adj_stem = M.com.fetch_specs(dot_separated_group, ":", "adjectival stem", nil, parse_err)
elseif base.props.adj and part:find("^suppress:") then
if #dot_separated_group > 1 then
parse_err("Can't specify footnotes with suppress: '" .. table.concat(dot_separated_group) .. "'")
end
-- No need to parse or validate more. Will happen in [[Module:de-adjective]].
base.adj_suppress = rsub(part, "suppress:", "")
elseif part == "" then
if #dot_separated_group == 1 then
parse_err("Blank indicator")
end
base.footnotes = M.com.fetch_footnotes(dot_separated_group, parse_err)
elseif part:find(":") then
-- override
-- FIXME: Handle adjectival overrides
local case_prefix = usub(part, 1, 3)
if case_set_with_abl_voc[case_prefix] then
local slot, slot_indicator, override = parse_override(dot_separated_group)
if base.overrides[slot] then
parse_err("Can't specify override twice for slot '" .. slot_indicator .. "'")
else
base.overrides[slot] = override
end
else
parse_err("Unrecognized indicator '" .. part .. "'")
end
elseif #dot_separated_group > 1 then
local errmsg
if base.props.adj then
errmsg = "Footnotes only allowed with slot overrides, 'stem:' or by themselves"
else
errmsg = "Footnotes only allowed with genitive, plural, slot overrides or by themselves"
end
parse_err(errmsg .. ": '" .. table.concat(dot_separated_group) .. "'")
elseif part == "sg" or part == "both" then
if base.number then
if base.number ~= part then
parse_err("Can't specify '" .. part .. "' along with '" .. base.number .. "'")
else
parse_err("Can't specify '" .. part .. "' twice")
end
end
base.number = part
elseif not base.props.adj and (part == "weak" or part == "weak_n" or part == "ss" or part == "nodatpln" or part == "article" or part == "dat_with_e") then
if base.props[part] then
parse_err("Can't specify '" .. part .. "' twice")
end
base.props[part] = true
if part == "weak_n" then
-- weak_n implies weak
base.props.weak = true
end
elseif base.props.adj and (part == "article" or is_adjectival_decl_indicator(part)) then
if base.props[part] then
parse_err("Can't specify '" .. part .. "' twice")
end
base.props[part] = true
else
parse_err("Unrecognized indicator '" .. part .. "'")
end
end
end
return base
end
-- For an adjectival lemma, synthesize the predicative (lemma) form. It doesn't have to be perfect in that the
-- predicative form itself isn't used, so we don't have to try to convert -abler -> -abel or anything like that.
local function synthesize_adj_lemma(base)
local stem, ending = rmatch(base.lemma, "^(.*)(e[rs]?)$")
if not stem then
error("Unrecognized adjectival lemma, should end in '-er', '-e' or '-es': '" .. base.lemma .. "'")
end
base.lemma = stem
-- Will be ignored if number == "pl"
if ending == "er" then
base.autodetected_gender = "m"
elseif ending == "e" then
base.autodetected_gender = "f"
else
base.autodetected_gender = "n"
end
end
local function detect_indicator_spec(alternant_multiword_spec, base)
if base.props.article then
alternant_multiword_spec.props.article = true
end
for _, prop in ipairs {"surname", "toponym", "langname"} do
if alternant_multiword_spec.props[prop] == nil then
alternant_multiword_spec.props[prop] = base.props[prop]
elseif alternant_multiword_spec.props[prop] ~= base.props[prop] then
-- We do this because we have a special table with its own slots for each of these special variants.
-- FIXME: Consider supporting adjectives with these variants. That requires that we copy the adjectival
-- declensions to the appropriate per-variant slots.
error("If some alternants set '" .. prop .. "', all must do so")
end
end
if base.props.adj then
alternant_multiword_spec.props.overall_adj = true
synthesize_adj_lemma(base)
else
-- Set default values.
base.number =
base.number or
base.props.surname and "both" or
base.pls and "both" or
(alternant_multiword_spec.props.is_proper or base.props.toponym or base.props.langname) and "sg" or
"both"
if not base.props.surname then
if base.number == "pl" then
if base.gens then
error("Internal error: With plural-only noun, no genitive singular specs should be allowed")
end
if base.pls then
error("Internal error: With plural-only noun, no plural specs should be allowed")
end
end
if base.pls and base.number == "sg" then
error("Can't specify explicit plural specs along with explicit '.sg'")
end
end
base.gens = base.gens or {{form = "+"}}
base.pls = base.pls or {{form = "+"}}
end
end
local function detect_all_indicator_specs(alternant_multiword_spec)
M.iut.map_word_specs(alternant_multiword_spec, function(base)
detect_indicator_spec(alternant_multiword_spec, base)
end)
-- Now propagate some properties downwards.
M.iut.map_word_specs(alternant_multiword_spec, function(base)
base.props.overall_adj = alternant_multiword_spec.props.overall_adj
end)
end
local propagate_multiword_properties
local function propagate_alternant_properties(alternant_spec, property, mixed_value, nouns_only)
local seen_property
for _, multiword_spec in ipairs(alternant_spec.alternants) do
propagate_multiword_properties(multiword_spec, property, mixed_value, nouns_only)
if seen_property == nil then
seen_property = multiword_spec[property]
elseif multiword_spec[property] and seen_property ~= multiword_spec[property] then
seen_property = mixed_value
end
end
alternant_spec[property] = seen_property
end
propagate_multiword_properties = function(multiword_spec, property, mixed_value, nouns_only)
local seen_property = nil
local last_seen_nounal_pos = 0
local word_specs = multiword_spec.alternant_or_word_specs or multiword_spec.word_specs
for i = 1, #word_specs do
local is_nounal
if word_specs[i].alternants then
propagate_alternant_properties(word_specs[i], property, mixed_value)
is_nounal = not not word_specs[i][property]
elseif nouns_only then
is_nounal = not word_specs[i].props.adj
else
is_nounal = not not word_specs[i][property]
end
if is_nounal then
if not word_specs[i][property] then
error("Internal error: noun-type word spec without " .. property .. " set")
end
for j = last_seen_nounal_pos + 1, i - 1 do
word_specs[j][property] = word_specs[j][property] or word_specs[i][property]
end
last_seen_nounal_pos = i
if seen_property == nil then
seen_property = word_specs[i][property]
elseif seen_property ~= word_specs[i][property] then
seen_property = mixed_value
end
end
end
if last_seen_nounal_pos > 0 then
for i = last_seen_nounal_pos + 1, #word_specs do
word_specs[i][property] = word_specs[i][property] or word_specs[last_seen_nounal_pos][property]
end
end
multiword_spec[property] = seen_property
end
local function propagate_properties_downward(alternant_multiword_spec, property, default_propval)
local propval1 = alternant_multiword_spec[property] or default_propval
alternant_multiword_spec[property] = propval1
for _, alternant_or_word_spec in ipairs(alternant_multiword_spec.alternant_or_word_specs) do
local propval2 = alternant_or_word_spec[property] or propval1
if alternant_or_word_spec.alternants then
for _, multiword_spec in ipairs(alternant_or_word_spec.alternants) do
local propval3 = multiword_spec[property] or propval2
for _, word_spec in ipairs(multiword_spec.word_specs) do
local propval4 = word_spec[property] or propval3
if propval4 == "mixed" then
error("Attempt to assign mixed " .. property .. " to word")
end
word_spec[property] = propval4
end
end
else
if propval2 == "mixed" then
error("Attempt to assign mixed " .. property .. " to word")
end
alternant_or_word_spec[property] = propval2
end
end
end
--[=[
Propagate `property` ("genders" or "number") from nouns to adjacent adjectives. We proceed as follows:
1. We assume the properties in question are already set on all nouns. This should happen in parse_indicator_spec().
2. We first propagate properties upwards and sideways. We recurse downwards from the top. When we encounter a
multiword spec, we proceed left to right looking for a noun. When we find a noun, we fetch its property
(recursing if the noun is an alternant), and propagate it to any adjectives to its left, up to the next noun
to the left. When we have processed the last noun, we also propagate its property value to any adjectives to the
right. Finally, we set the property value for the multiword spec itself by combining all the non-nil properties of
the individual elements. If all non-nil properties have the same value, the result is that value, otherwise it is
`mixed_value` (which is "mixed" gender, but "both" for number).
3. When we encounter an alternant spec in this process, we recursively process each alternant (which is a multiword
spec) using the previous step, and combine any non-nil properties we encounter the same way as for multiword specs.
4. The effect of steps 2 and 3 is to set the property of each alternant and multiword spec based on its children or its
neighbors.
]=]
local function propagate_properties(alternant_multiword_spec, property, default_propval, mixed_value)
propagate_multiword_properties(alternant_multiword_spec, property, mixed_value, "nouns only")
propagate_multiword_properties(alternant_multiword_spec, property, mixed_value, false)
propagate_properties_downward(alternant_multiword_spec, property, default_propval)
end
-- Set the gender of adjectives and adjectival nouns to the gender autodetected during synthesize_adj_lemma(),
-- unless the form is plural. We don't just set the gender directly in synthesize_adj_lemma() because we don't know
-- until later (i.e. when propagate_properties() is called) whether an adjectival form in -e is feminine or plural.
-- We set the footnotes (i.e. qualifiers) of the gender to the footnotes (if any) specified directly after '+'.
local function determine_adjectival_genders(alternant_multiword_spec)
M.iut.map_word_specs(alternant_multiword_spec, function(base)
if base.props.adj and #base.genders == 0 then
base.genders = {{form = base.number == "pl" and "p" or base.autodetected_gender, footnotes = base.adj_footnotes}}
end
end)
end
-- Find the first noun in a multiword expression and set alternant_multiword_spec.first_noun
-- to the index of that noun. Also find the first adjective and set alternant_multiword_spec.first_adj
-- similarly. If there is a first noun, we use its properties to determine the overall expression's
-- properties; otherwise we use the first adjective's properties, otherwise the first word's properties.
-- If the "word" located this way is not an alternant spec, we just use its properties directly, otherwise
-- we use the properties of the first noun (or failing that the first adjective, or failing that the
-- first word) in each alternative alternant in the alternant spec. For this reason, we need to set the
-- the .first_noun of and .first_adj of each multiword expression embedded in the first noun alternant spec,
-- and the .first_adj of each multiword expression in each adjective alternant spec leading up to the
-- first noun alternant spec.
local function determine_noun_status(alternant_multiword_spec)
for i, alternant_or_word_spec in ipairs(alternant_multiword_spec.alternant_or_word_specs) do
if alternant_or_word_spec.alternants then
local alternant_type
for _, multiword_spec in ipairs(alternant_or_word_spec.alternants) do
for j, word_spec in ipairs(multiword_spec.word_specs) do
if not word_spec.props.adj then
multiword_spec.first_noun = j
alternant_type = "noun"
break
elseif not multiword_spec.first_adj then
multiword_spec.first_adj = j
if not alternant_type then
alternant_type = "adj"
end
end
end
end
if alternant_type == "noun" then
alternant_multiword_spec.first_noun = i
return
elseif alternant_type == "adj" and not alternant_multiword_spec.first_adj then
alternant_multiword_spec.first_adj = i
end
else
if not alternant_or_word_spec.props.adj then
alternant_multiword_spec.first_noun = i
return
elseif not alternant_multiword_spec.first_adj then
alternant_multiword_spec.first_adj = i
end
end
end
end
local function decline_noun_or_adjective(base)
if base.props.surname then
decline_surname(base)
elseif base.props.toponym then
decline_toponym(base)
elseif base.props.langname then
decline_langname(base)
elseif base.props.adj then
decline_adjective(base)
else
decline_noun(base)
end
handle_derived_slots_and_overrides(base)
end
-- Set the overall articles. We can't do this using the normal inflection code as it will produce e.g.
-- '[[der]] [[und]] [[der]]' for conjoined nouns.
local function compute_non_surname_articles(alternant_multiword_spec)
if alternant_multiword_spec.number ~= "pl" then
M.iut.map_word_specs(alternant_multiword_spec, function(base)
for _, genderspec in ipairs(base.genders) do
for _, case in ipairs(cases_with_abl_voc) do
for _, def in ipairs(definitenesses) do
M.iut.insert_form(alternant_multiword_spec.forms, "art_" .. def .. "_" .. case .. "_s",
{form = M.com.articles[genderspec.form][def .. "_" .. case]})
end
end
end
end)
end
for _, case in ipairs(basic_cases) do
for _, def in ipairs(definitenesses) do
M.iut.insert_form(alternant_multiword_spec.forms, "art_" .. def .. "_" .. case .. "_p",
{form = M.com.articles.p[def .. "_" .. case]})
end
end
end
-- Set the overall surname articles. We can't do this using the normal inflection code as it will produce e.g.
-- '[[der]] [[und]] [[der]]' for conjoined nouns.
local function compute_surname_articles(alternant_multiword_spec)
for _, gender in ipairs {"m", "f"} do
for _, case in ipairs(basic_cases) do
for _, def in ipairs(definitenesses) do
M.iut.insert_form(alternant_multiword_spec.forms, "art_" .. def .. "_" .. case .. "_" .. gender .. "_s",
{form = "([[" .. M.com.articles[gender][def .. "_" .. case] .. "]])"})
end
end
end
for _, case in ipairs(basic_cases) do
M.iut.insert_form(alternant_multiword_spec.forms, "art_def_" .. case .. "_p",
{form = "([[" .. M.com.articles.p["def_" .. case] .. "]])"})
end
end
local function compute_articles(alternant_multiword_spec)
if alternant_multiword_spec.props.surname then
compute_surname_articles(alternant_multiword_spec)
else
compute_non_surname_articles(alternant_multiword_spec)
end
end
-- Call a function `fun` over the first noun in the `alternant_multiword_spec`, or over the first noun in each
-- alternant if there is more than one alternant. If there are no nouns, use the first adjective (in the case of an
-- adjectival noun).
local function map_first_noun(alternant_multiword_spec, fun)
local key_entry = alternant_multiword_spec.first_noun or alternant_multiword_spec.first_adj or 1
if #alternant_multiword_spec.alternant_or_word_specs >= key_entry then
local alternant_or_word_spec = alternant_multiword_spec.alternant_or_word_specs[key_entry]
if alternant_or_word_spec.alternants then
for _, multiword_spec in ipairs(alternant_or_word_spec.alternants) do
key_entry = multiword_spec.first_noun or multiword_spec.first_adj or 1
if #multiword_spec.word_specs >= key_entry then
fun(multiword_spec.word_specs[key_entry])
end
end
else
fun(alternant_or_word_spec)
end
end
end
-- Compute the categories to add the noun to, as well as the annotation to display in the
-- declension 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 = {}
alternant_multiword_spec.decl_type = {}
local function insert(cattype)
cattype = rsub(cattype, "~", alternant_multiword_spec.pos)
M.table.insertIfNot(alternant_multiword_spec.categories, cattype:find("的") and cattype:gsub("的", "的德語") or "德語" .. cattype) -- L10N
end
if not alternant_multiword_spec.props.is_proper and alternant_multiword_spec.number == "sg" then
insert("不可數~")
elseif alternant_multiword_spec.number == "pl" then
insert("唯複名詞")
end
local annotation
local annparts = {}
local genderdescs = {}
local decldescs = {}
if alternant_multiword_spec.number == "sg" then
table.insert(annparts, "僅單數")
elseif alternant_multiword_spec.number == "pl" and alternant_multiword_spec.genders[1].spec ~= "p" then
-- If the gender is just 'p', we use "pl-only" below as a substitute for the gender and hook any qualifiers
-- onto it. Note that when 'p' is the gender, there can be only one gender.
table.insert(annparts, "僅複數")
end
for i, genderspec in ipairs(alternant_multiword_spec.genders) do
local genderdesc_parts = {}
local gender = genderspec.spec
if gender == "p" then
table.insert(genderdesc_parts, "僅複數")
else
gender = rsub(gender, "%-p$", "")
table.insert(genderdesc_parts, gender_spec_to_full_gender[gender])
end
if genderspec.q then
table.insert(genderdesc_parts, " (") -- l10n: no italics
table.insert(genderdesc_parts, table.concat(genderspec.q, ", "))
table.insert(genderdesc_parts, ")")
end
table.insert(genderdescs, table.concat(genderdesc_parts))
end
local function insert_decl_type(decl_type)
M.table.insertIfNot(decldescs, decl_type)
M.table.insertIfNot(alternant_multiword_spec.decl_type, decl_type)
end
local function do_word_spec(base)
if base.props.surname then
M.table.insertIfNot(decldescs, "姓氏")
elseif base.props.toponym then
M.table.insertIfNot(decldescs, "地名")
elseif base.props.langname then
M.table.insertIfNot(decldescs, "語言名")
elseif base.decl_type and #base.decl_type > 0 then
-- strong/weak/mixed declension type; should only be present on masculine or neuter nouns with a plural
for _, decl_type in ipairs(base.decl_type) do
if decl_type == "弱變化" then
insert("弱變化~")
elseif decl_type == "混合變化" then
insert("混合變化~")
end
insert_decl_type(decl_type)
end
elseif base.props.saw_mn then
-- For singular-only masculine or neuter nouns, we can still classify as strong or weak.
-- We don't try to classify plural-only nouns. Even for nouns in -n or -en, we have no idea if they are
-- strong (-en is part of the stem), mixed or weak.
if base.props.weak then
insert("弱變化~")
insert_decl_type("弱變化")
else
insert_decl_type("強變化")
end
end
end
-- Use the surname/toponym/langname/weak/strong properties of the noun(s).
map_first_noun(alternant_multiword_spec, do_word_spec)
if #genderdescs > 0 then
table.insert(annparts, table.concat(genderdescs, " // "))
end
if #decldescs > 0 then
table.insert(annparts, table.concat(decldescs, " // "))
end
if not alternant_multiword_spec.first_noun and alternant_multiword_spec.first_adj then
insert("形容詞性~")
table.insert(annparts, "形容詞性")
end
if alternant_multiword_spec.props.langname then
insert("特殊變化語言名稱")
end
alternant_multiword_spec.annotation = table.concat(annparts, ", ")
end
local function compute_headword_genders(alternant_multiword_spec)
alternant_multiword_spec.genders = {}
-- Compute the genders based on the nouns. We don't want to use the adjectives in adjective-noun combinations
-- because that will cause issues in plural-only expressions like [[Kanarische Inseln]], where ''Inseln'' may be
-- 'f-p' but ''Kanarische'' will be just 'p', and we'd end up with both genders.
map_first_noun(alternant_multiword_spec, function(base)
for _, genderspec in ipairs(base.genders) do
-- Create the new spec to insert.
local spec = {spec = genderspec.form, q = genderspec.footnotes}
-- See if the gender of the spec is already present; if so, combine qualifiers.
local saw_existing = false
for _, existing_spec in ipairs(alternant_multiword_spec.genders) do
if existing_spec.spec == spec.spec then
existing_spec.q = M.iut.combine_footnotes(existing_spec.q, spec.q)
saw_existing = true
break
end
end
-- If not, add gender.
if not saw_existing then
table.insert(alternant_multiword_spec.genders, spec)
end
end
end)
-- Now convert the footnotes in the gender specs to qualifiers. This involves removing brackets and expanding any
-- footnote abbreviations.
for _, genderspec in ipairs(alternant_multiword_spec.genders) do
if genderspec.q then
local processed_q = {}
for _, q in ipairs(genderspec.q) do
M.table.insertIfNot(processed_q,
M.iut.expand_footnote_or_references(q, "return raw", "no parse refs"))
end
genderspec.q = processed_q
end
end
end
-- Process the specs in `arg_specs` given for dim=, m=, f=, n= or sg= and store the results in `slot` in
-- `alternant_multiword_spec.forms`. `arg_specs` is a list of specs, each of which is a comma-separated or
-- colon-separated string of specs, where each spec may be a suffix like "in", or a suffix with umlaut like
-- "^chen", or a full form beginning with a capital letter or exclamation point. Suffixes are added onto the lemma
-- with -e removed if present. `default` is the default value to use if "+" is given as a spec, and `literal_default`,
-- if given, indicates that `default` is always a literal (full) form; otherwise, it `default` begins with a
-- lowercase letter, it is taken as a suffix. (This is used in cases like the feminine of [[ordenlicher Professor]],
-- which is generated as "ordentiche Professorin"; we don't want this interpreted as a suffix.) `desc` is an English
-- description of the form whose specs are being processed, for display in error messages.
local function process_dim_m_f_n(alternant_multiword_spec, arg_specs, default, literal_default, slot, desc)
-- We don't want footnotes attached to a lemma to end up in the output. These footnotes typically get there if the
-- syntax `.[footnote]` is used, which attaches a footnote to every form.
local lemmas = export.get_lemmas(alternant_multiword_spec, nil, "remove footnotes")
lemmas = M.iut.map_forms(lemmas, function(form)
return rsub(form, "e$", "")
end)
for _, spec in ipairs(arg_specs) do
local function parse_err(msg)
error(msg .. ": " .. spec)
end
local segments = M.put.parse_balanced_segment_run(spec, "[", "]")
-- Allow comma (preferred) or colon as separator.
local ending_specs = M.com.fetch_specs(segments, "[,:]", desc, nil, parse_err)
-- FIXME, this should propagate the 'ss' property upwards
local props = {}
local function do_combine_stem_ending(stem, ending)
return combine_stem_ending(props, stem, ending)
end
local function process(stem, ending)
M.iut.add_forms(alternant_multiword_spec.forms, slot, stem or lemmas, ending, do_combine_stem_ending)
end
process_spec(ending_specs, nil, default, literal_default, desc, process)
end
end
local function show_forms(alternant_multiword_spec)
local lemmas = export.get_lemmas(alternant_multiword_spec)
local props = {
lang = M.lang,
lemmas = lemmas,
slot_list = alternant_multiword_spec.props.surname and surname_slot_list_with_linked_and_articles
or alternant_multiword_spec.props.langname and langname_slot_list_with_linked_and_articles
or alternant_multiword_spec.props.overall_adj and adjectival_slot_list_with_linked_and_articles
or noun_slot_list_with_linked_and_articles,
}
M.iut.show_forms(alternant_multiword_spec.forms, props)
end
local noun_template_both = [=[
! class="outer" style="width:15%" |
! colspan="3" class="outer" style="width:46%" | 單數
! colspan="2" class="outer" style="width:39%" | 複數
|-
!
! style="width:7%" | [[不定冠詞|不定]]
! style="width:7%" | [[定冠詞|定指]]
! style="width:32%" | 名詞
! style="width:7%" | [[定冠詞|定指]]
! style="width:32%" | 名詞
|-
! 主格
| class="secondary" | {art_ind_nom_s}
| class="secondary" | {art_def_nom_s}
| {nom_s}
| class="secondary" | {art_def_nom_p}
| {nom_p}
|-
! 屬格
| class="secondary" | {art_ind_gen_s}
| class="secondary" | {art_def_gen_s}
| {gen_s}
| class="secondary" | {art_def_gen_p}
| {gen_p}
|-
! 與格
| class="secondary" | {art_ind_dat_s}
| class="secondary" | {art_def_dat_s}
| {dat_s}
| class="secondary" | {art_def_dat_p}
| {dat_p}
|-
! 賓格
| class="secondary" | {art_ind_acc_s}
| class="secondary" | {art_def_acc_s}
| {acc_s}
| class="secondary" | {art_def_acc_p}
| {acc_p}
]=]
local noun_template_both_no_indef = [=[
! class="outer" style="width:15%" |
! colspan="2" class="outer" style="width:39%" | 單數
! colspan="2" class="outer" style="width:39%" | 複數
|-
!
! style="width:7%" | [[定冠詞|定指]]
! style="width:32%" | 名詞
! style="width:7%" | [[定冠詞|定指]]
! style="width:32%" | 名詞
|-
! 主格
| class="secondary" | {art_def_nom_s}
| {nom_s}
| class="secondary" | {art_def_nom_p}
| {nom_p}
|-
! 屬格
| class="secondary" | {art_def_gen_s}
| {gen_s}
| class="secondary" | {art_def_gen_p}
| {gen_p}
|-
! 與格
| class="secondary" | {art_def_dat_s}
| {dat_s}
| class="secondary" | {art_def_dat_p}
| {dat_p}
|-
! 賓格
| class="secondary" | {art_def_acc_s}
| {acc_s}
| class="secondary" | {art_def_acc_p}
| {acc_p}
]=]
local noun_template_abl_voc = [=[
|-
! 離格
| class="secondary" | {art_ind_abl_s}
| class="secondary" | {art_def_abl_s}
| {abl_s}
|-
! 呼格
| class="secondary" | {art_ind_voc_s}
| class="secondary" | {art_def_voc_s}
| {voc_s}]=]
local noun_template_sg = [=[
! class="outer" style="width:24.6%" |
! colspan="3" class="outer" | 單數
|-
!
! style="width:11.5%" | [[不定冠詞|不定]]
! style="width:11.5%" | [[定冠詞|定指]]
! style="width:52.5%" | 名詞
|-
! 主格
| class="secondary" | {art_ind_nom_s}
| class="secondary" | {art_def_nom_s}
| {nom_s}
|-
! 屬格
| class="secondary" | {art_ind_gen_s}
| class="secondary" | {art_def_gen_s}
| {gen_s}
|-
! 與格
| class="secondary" | {art_ind_dat_s}
| class="secondary" | {art_def_dat_s}
| {dat_s}
|-
! 賓格
| class="secondary" | {art_ind_acc_s}
| class="secondary" | {art_def_acc_s}
| {acc_s}{abl_voc_clause}
]=]
local noun_template_sg_no_indef = [=[
! class="outer" style="width:24.6%" |
! colspan="2" class="outer" | 單數
|-
!
! style="width:11.5%" | [[定冠詞|定指]]
! style="width:52.5%" | 名詞
|-
! 主格
| class="secondary" | {art_def_nom_s}
| {nom_s}
|-
! 屬格
| class="secondary" | {art_def_gen_s}
| {gen_s}
|-
! 與格
| class="secondary" | {art_def_dat_s}
| {dat_s}
|-
! 賓格
| class="secondary" | {art_def_acc_s}
| {acc_s}{abl_voc_clause}
]=]
local noun_template_pl = [=[
! class="outer" style="width:24.6%" |
! colspan="2" class="outer" | 複數
|-
!
! style="width:11.5%" | [[定冠詞|定指]]
! style="width:52.5%" | 名詞
|-
! 主格
| class="secondary" | {art_def_nom_p}
| {nom_p}
|-
! 屬格
| class="secondary" | {art_def_gen_p}
| {gen_p}
|-
! 與格
| class="secondary" | {art_def_dat_p}
| {dat_p}
|-
! 賓格
| class="secondary" | {art_def_acc_p}
| {acc_p}
]=]
local noun_template_surname = [=[
! rowspan="2" class="outer" style="width:11%" |
! colspan="6" class="outer" | 單數
! colspan="2" rowspan="2" class="outer" | 複數
|-
! colspan="3" class="outer" | 陽性
! colspan="3" class="outer" | 陰性
|-
!
! style="width:4%" | [[不定冠詞|不定]]
! style="width:4%" | [[定冠詞|定指]]
! style="width:23%" | 名詞
! style="width:4%" | [[不定冠詞|不定]]
! style="width:4%" | [[定冠詞|定指]]
! style="width:23%" | 名詞
! style="width:4%" | [[定冠詞|定指]]
! style="width:23%" | 名詞
|-
! 主格
| class="secondary" | {art_ind_nom_m_s}
| class="secondary" | {art_def_nom_m_s}
| {nom_m_s}
| class="secondary" | {art_ind_nom_f_s}
| class="secondary" | {art_def_nom_f_s}
| {nom_f_s}
| class="secondary" | {art_def_nom_p}
| {nom_p}
|-
! 屬格
| class="secondary" | {art_ind_gen_m_s}
| class="secondary" | {art_def_gen_m_s}
| {gen_m_s}
| class="secondary" | {art_ind_gen_f_s}
| class="secondary" | {art_def_gen_f_s}
| {gen_f_s}
| class="secondary" | {art_def_gen_p}
| {gen_p}
|-
! 與格
| class="secondary" | {art_ind_dat_m_s}
| class="secondary" | {art_def_dat_m_s}
| {dat_m_s}
| class="secondary" | {art_ind_dat_f_s}
| class="secondary" | {art_def_dat_f_s}
| {dat_f_s}
| class="secondary" | {art_def_dat_p}
| {dat_p}
|-
! 賓格
| class="secondary" | {art_ind_acc_m_s}
| class="secondary" | {art_def_acc_m_s}
| {acc_m_s}
| class="secondary" | {art_ind_acc_f_s}
| class="secondary" | {art_def_acc_f_s}
| {acc_f_s}
| class="secondary" | {art_def_acc_p}
| {acc_p}
]=]
local noun_template_langname = [=[
! class="outer" style="width:15%" |
! colspan="4" class="outer" style="width:85%" | 單數([[:en:Wiktionary:German entry guidelines#Declension of language names|表格的用途和意義的解釋]])
|-
!
! style="width:14%" | (通常無冠詞)
! style="width:32%" | 名詞
! style="width:7%" | [[定冠詞|定指]]
! style="width:32%" | 名詞
|-
! 主格
| class="secondary" | ({art_def_nom_s})
| {nom_s}
| class="secondary" | {art_def_nom_s}
| {nom_s_alt}
|-
! 屬格
| class="secondary" | ({art_def_gen_s})
| {gen_s}
| class="secondary" | {art_def_gen_s}
| {gen_s_alt}
|-
! 與格
| class="secondary" | ({art_def_dat_s})
| {dat_s}
| class="secondary" | {art_def_dat_s}
| {dat_s_alt}
|-
! 賓格
| class="secondary" | ({art_def_acc_s})
| {acc_s}
| class="secondary" | {art_def_acc_s}
| {acc_s_alt}
]=]
local adjectival_template_both = [=[
! style="width:15%" |
! colspan="2" | 單數
! colspan="2" | 複數
|- data-wikt-palette-p="blue"
! class="outer" | {gender}
! colspan="4" class="outer" | 強變化
|- data-wikt-palette-p="blue"
! 主格
| colspan="2" | {str_nom_s}
| colspan="2" | {str_nom_p}
|- data-wikt-palette-p="blue"
! 屬格
| colspan="2" | {str_gen_s}
| colspan="2" | {str_gen_p}
|- data-wikt-palette-p="blue"
! 與格
| colspan="2" | {str_dat_s}
| colspan="2" | {str_dat_p}
|- data-wikt-palette-p="blue"
! 賓格
| colspan="2" | {str_acc_s}
| colspan="2" | {str_acc_p}
|- data-wikt-palette-p="green"
! class="outer" |
! colspan="4" class="outer" | 弱變化
|- data-wikt-palette-p="green"
! 主格
| class="secondary" style="width:5em" | {art_def_nom_s}
| {wk_nom_s}
| class="secondary" style="width:5em" | {art_def_nom_p}
| {wk_nom_p}
|- data-wikt-palette-p="green"
! 屬格
| class="secondary" style="width:5em" | {art_def_gen_s}
| {wk_gen_s}
| class="secondary" style="width:5em" | {art_def_gen_p}
| {wk_gen_p}
|- data-wikt-palette-p="green"
! 與格
| class="secondary" style="width:5em" | {art_def_dat_s}
| {wk_dat_s}
| class="secondary" style="width:5em" | {art_def_dat_p}
| {wk_dat_p}
|- data-wikt-palette-p="green"
! 賓格
| class="secondary" style="width:5em" | {art_def_acc_s}
| {wk_acc_s}
| class="secondary" style="width:5em" | {art_def_acc_p}
| {wk_acc_p}
|- data-wikt-palette-p="orange"
! class="outer" |
! colspan="4" class="outer" | 混合變化
|- data-wikt-palette-p="orange"
! 主格
| class="secondary" style="width:5em" | {art_ind_nom_s}
| {mix_nom_s}
| class="secondary" style="width:5em" | {art_ind_nom_p}
| {mix_nom_p}
|- data-wikt-palette-p="orange"
! 屬格
| class="secondary" style="width:5em" | {art_ind_gen_s}
| {mix_gen_s}
| class="secondary" style="width:5em" | {art_ind_gen_p}
| {mix_gen_p}
|- data-wikt-palette-p="orange"
! 與格
| class="secondary" style="width:5em" | {art_ind_dat_s}
| {mix_dat_s}
| class="secondary" style="width:5em" | {art_ind_dat_p}
| {mix_dat_p}
|- data-wikt-palette-p="orange"
! 賓格
| class="secondary" style="width:5em" | {art_ind_acc_s}
| {mix_acc_s}
| class="secondary" style="width:5em" | {art_ind_acc_p}
| {mix_acc_p}
]=]
local adjectival_template_sg = [=[
! style="width:15%" |
! colspan="2" | 單數
|- data-wikt-palette-p="blue"
! class="outer" | {gender}
! colspan="2" class="outer" | 強變化
|- data-wikt-palette-p="blue"
! 主格
| colspan="2" | {str_nom_s}
|- data-wikt-palette-p="blue"
! 屬格
| colspan="2" | {str_gen_s}
|- data-wikt-palette-p="blue"
! 與格
| colspan="2" | {str_dat_s}
|- data-wikt-palette-p="blue"
! 賓格
| colspan="2" | {str_acc_s}
|- data-wikt-palette-p="green"
! class="outer" |
! colspan="2" class="outer" | 弱變化
|- data-wikt-palette-p="green"
! 主格
| class="secondary" style="width:5em" | {art_def_nom_s}
| {wk_nom_s}
|- data-wikt-palette-p="green"
! 屬格
| class="secondary" style="width:5em" | {art_def_gen_s}
| {wk_gen_s}
|- data-wikt-palette-p="green"
! 與格
| class="secondary" style="width:5em" | {art_def_dat_s}
| {wk_dat_s}
|- data-wikt-palette-p="green"
! 賓格
| class="secondary" style="width:5em" | {art_def_acc_s}
| {wk_acc_s}
|- data-wikt-palette-p="orange"
! class="outer" |
! colspan="2" class="outer" | 混合變化
|- data-wikt-palette-p="orange"
! 主格
| class="secondary" style="width:5em" | {art_ind_nom_s}
| {mix_nom_s}
|- data-wikt-palette-p="orange"
! 屬格
| class="secondary" style="width:5em" | {art_ind_gen_s}
| {mix_gen_s}
|- data-wikt-palette-p="orange"
! 與格
| class="secondary" style="width:5em" | {art_ind_dat_s}
| {mix_dat_s}
|- data-wikt-palette-p="orange"
! 賓格
| class="secondary" style="width:5em" | {art_ind_acc_s}
| {mix_acc_s}
]=]
local function make_table(alternant_multiword_spec)
local forms = alternant_multiword_spec.forms
if alternant_multiword_spec.title then
forms.title = alternant_multiword_spec.title
else
forms.title = '<i lang="de" class="Latn">' .. forms.lemma .. '</i> 的變格'
end
local annotation = alternant_multiword_spec.annotation
if annotation == "" then
forms.annotation = ""
else
forms.annotation = " [<span style=\"font-size: smaller;\">" .. annotation .. "</span>]"
end
local table_spec
if alternant_multiword_spec.props.surname then
table_spec = noun_template_surname
elseif alternant_multiword_spec.props.langname then
table_spec = noun_template_langname
elseif alternant_multiword_spec.props.overall_adj then
table_spec =
alternant_multiword_spec.number == "sg" and adjectival_template_sg or
alternant_multiword_spec.number == "pl" and rsub(rsub(adjectival_template_sg, "單數", "複數"), "_s}", "_p}") or
adjectival_template_both
if alternant_multiword_spec.number == "pl" then
forms.gender = ""
else
local genderdesc_parts = {}
for _, gender in ipairs(alternant_multiword_spec.genders) do
table.insert(genderdesc_parts, gender_spec_to_full_gender[gender.spec])
end
forms.gender = table.concat(genderdesc_parts, "<small>或</small>") -- l10n: no italics, no word for "gender"
end
else
local no_indef = alternant_multiword_spec.props.toponym or alternant_multiword_spec.props.article
table_spec =
alternant_multiword_spec.number == "sg" and (no_indef and noun_template_sg_no_indef or noun_template_sg) or
alternant_multiword_spec.number == "pl" and noun_template_pl or
(no_indef and noun_template_both_no_indef or noun_template_both)
if forms.abl_s ~= "—" or forms.voc_s ~= "—" then
forms.abl_voc_clause = M.string_utilities.format(noun_template_abl_voc, forms)
else
forms.abl_voc_clause = ""
end
end
return M.string_utilities.format(M.inflection_table.make_top {
lang = "de",
title = "{title}{annotation}",
palette = "blue",
tall = "yes",
} .. table_spec .. M.inflection_table.make_bottom {
notes = forms.footnote ~= "" and "{footnote}" or nil,
}, forms)
end
-- Externally callable function to parse and decline a noun given user-specified arguments. Return value is
-- ALTERNANT_MULTIWORD_SPEC, an object where the declined forms are in `ALTERNANT_MULTIWORD_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(parent_args, pos, from_headword, is_proper, def)
local params = {
[1] = {required = true, default = "Haus<n,es,^er>"},
pagename = true,
json = {type = "boolean"}, -- for bot use
}
if from_headword or pretend_from_headword then
params["head"] = {list = true}
params["f"] = {list = true}
params["m"] = {list = true}
params["n"] = {list = true}
params["dim"] = {list = true}
params["sg"] = {list = true}
params["id"] = {}
params["sort"] = {}
params["splithyph"] = {type = "boolean"}
params["nolinkhead"] = {type = "boolean"}
end
local args = M.parameters.process(parent_args, params)
local arg1 = M.com.add_angle_brackets(args[1])
local pagename = args.pagename or M.headword_data.pagename
local function do_parse_indicator_spec(angle_bracket_spec, lemma)
return parse_indicator_spec(angle_bracket_spec, lemma, pagename)
end
local parse_props = {
parse_indicator_spec = do_parse_indicator_spec,
allow_default_indicator = true,
allow_blank_lemma = true,
}
local alternant_multiword_spec = M.iut.parse_inflected_text(arg1, parse_props)
alternant_multiword_spec.args = args
alternant_multiword_spec.props = {}
alternant_multiword_spec.props.is_proper = is_proper
detect_all_indicator_specs(alternant_multiword_spec)
local default_number =
(alternant_multiword_spec.props.is_proper or alternant_multiword_spec.props.toponym) and "sg" or "both"
propagate_properties(alternant_multiword_spec, "number", default_number, "both")
-- FIXME, maybe should check that noun genders match adjective genders
determine_adjectival_genders(alternant_multiword_spec)
determine_noun_status(alternant_multiword_spec)
local inflect_props = {
skip_slot = function(slot)
return skip_slot(alternant_multiword_spec.number, slot)
end,
slot_list = alternant_multiword_spec.props.surname and surname_slot_list_with_linked
or alternant_multiword_spec.props.langname and langname_slot_list_with_linked
or alternant_multiword_spec.props.overall_adj and adjectival_slot_list_with_linked
or noun_slot_list_with_linked,
inflect_word_spec = decline_noun_or_adjective,
}
M.iut.inflect_multiword_or_alternant_multiword_spec(alternant_multiword_spec, inflect_props)
compute_articles(alternant_multiword_spec)
compute_headword_genders(alternant_multiword_spec)
if not pos then
-- Compute part of speech for categories. Fetch the first lemma, or failing that (which would only happen
-- if the user overrides the nom_sg and nom_p to be missing) the pagename. If it begins with a hyphen,
-- it's a suffix, else a noun (proper nouns get categorized like nouns).
local lemmas = export.get_lemmas(alternant_multiword_spec)
local first_lemma = #lemmas > 0 and lemmas[1].form or pagename
pos = rfind(first_lemma, "^%-") and "後綴" or "名詞"
end
alternant_multiword_spec.pos = pos
compute_categories_and_annotation(alternant_multiword_spec)
if from_headword or pretend_from_headword then
process_dim_m_f_n(alternant_multiword_spec, args.dim, "^chen", nil, "dim", "diminutive")
process_dim_m_f_n(alternant_multiword_spec, args.f, alternant_multiword_spec.forms.f_equiv,
"literal default", "f", "feminine equivalent")
process_dim_m_f_n(alternant_multiword_spec, args.m, alternant_multiword_spec.forms.m_equiv,
"literal default", "m", "masculine equivalent")
process_dim_m_f_n(alternant_multiword_spec, args.n, alternant_multiword_spec.forms.n_equiv,
"literal default", "n", "neuter equivalent")
process_dim_m_f_n(alternant_multiword_spec, args.sg, nil, nil, "sg", "singular")
end
if args.json then
return M.JSON.toJSON(alternant_multiword_spec)
end
return alternant_multiword_spec
end
-- Entry point for {{de-ndecl}}. Template-callable function to parse and decline a noun given
-- user-specified arguments and generate a displayable table of the declined forms.
function export.show(frame)
local parent_args = frame:getParent().args
local alternant_multiword_spec = export.do_generate_forms(parent_args)
if type(alternant_multiword_spec) == "string" then -- json=1 specified
return alternant_multiword_spec
end
show_forms(alternant_multiword_spec)
return make_table(alternant_multiword_spec) .. M.utilities.format_categories(
alternant_multiword_spec.categories, M.lang, nil, nil, force_cat)
end
return export
a7sdj2bj73bptkojj2co25klp8ucpav
Module:De-adjective
828
1848456
9938425
9511359
2026-10-04T14:48:35Z
TongcyDai
53191
同步 enwikt(rev 92527526):改用 Module:inflection-table 與 palette、json=;本地化
9938425
Scribunto
text/plain
local export = {}
--[=[
Authorship: <benwing2>
]=]
--[=[
TERMINOLOGY:
-- "slot" = A particular combination of state/case/gender/number. Example slot names for adjectives are
"mix_nom_m" (mixed nominative masculine singular), "sup_str_dat_p" (superlative strong dative plural) and
"comp_pred" (comparative predicative). Each slot is filled with zero or more forms.
-- "form" = The declined German form representing the value of a given slot.
-- "lemma" = The dictionary form of a given German term. Generally the predicative, but may be the strong nominative
masculine singular or other form.
]=]
local M = require("Module:module loader").init {
require = {
com = "Module:de-common",
iut = "Module:inflection utilities",
inflection_table = "Module:inflection-table",
JSON = "Module:JSON",
links = "Module:links",
parameters = "Module:parameters",
put = "Module:parse utilities",
string_utilities = "Module:string utilities",
table = "Module:table",
utilities = "Module:utilities",
},
loadData = {
headword_data = "Module:headword/data",
},
lazy = {
lang = function() return require("Module:languages").getByCode("de") end,
},
}
local pretend_from_headword = false
local u = mw.ustring.char
local rsplit = mw.text.split
local rfind = mw.ustring.find
local rmatch = mw.ustring.match
local rgmatch = mw.ustring.gmatch
local rsubn = mw.ustring.gsub
local ulen = mw.ustring.len
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
local uupper = mw.ustring.upper
local OMITTED_E = u(0xFFF0)
-- version of rsubn() that discards all but the first return value
local function rsub(term, foo, bar)
local retval = rsubn(term, foo, bar)
return retval
end
-- version of rsubn() that returns a 2nd argument boolean indicating whether
-- a substitution was made.
local function rsubb(term, foo, bar)
local retval, nsubs = rsubn(term, foo, bar)
return retval, nsubs > 0
end
local function link_term(term, face)
return M.links.full_link({ lang = M.lang, term = term }, face)
end
local endings = {
["str"] = {
["m"] = {"er", "en", "em", "en"},
["f"] = {"e", "er", "er", "e"},
["n"] = {"es", "en", "em", "es"},
["p"] = {"e", "er", "en", "e"},
},
["wk"] = {
["m"] = {"e", "en", "en", "en"},
["f"] = {"e", "en", "en", "e"},
["n"] = {"e", "en", "en", "e"},
["p"] = {"en", "en", "en", "en"},
},
["mix"] = {
["m"] = {"er", "en", "en", "en"},
["f"] = {"e", "en", "en", "e"},
["n"] = {"es", "en", "en", "es"},
["p"] = {"en", "en", "en", "en"},
},
}
local cases = { "nom", "gen", "dat", "acc" }
local genders = { "m", "f", "n", "p" }
local states = { "str", "wk", "mix" }
local comps = { "", "comp", "sup" }
local adjective_slot_list_positive = {
-- We generate the lemma into `the_lemma` because `lemma` is special-cased in M.iut.show_forms()
-- to hold the lemma string.
{"the_lemma", "-"},
}
local adjective_slot_list_comparative = {
}
local adjective_slot_list_superlative = {
}
for _, comp in ipairs(comps) do
local slot_list = comp == "" and adjective_slot_list_positive or
comp == "comp" and adjective_slot_list_comparative or
adjective_slot_list_superlative
local compsup = comp ~= "" and comp .. "_" or ""
for _, state in ipairs(states) do
for _, gender in ipairs(genders) do
local case_endings = endings[state][gender]
for i, case in ipairs(cases) do
local slot = compsup .. state .. "_" .. case .. "_" .. gender
local comp_ending = comp == "comp" and "er" or comp == "sup" and "st" or ""
local accel = "adj-form-" .. comp_ending .. case_endings[i]
table.insert(slot_list, {slot, accel})
end
end
end
table.insert(slot_list, {compsup .. "pred", "-"})
for _, gender in ipairs(genders) do
table.insert(slot_list, {compsup .. "pred_" .. gender, "-"})
end
end
local adjective_slot_set = {}
local all_adjective_slot_list = {}
local function add_slots(slot_list)
for _, slot_accel in ipairs(slot_list) do
table.insert(all_adjective_slot_list, slot_accel)
local slot, accel = unpack(slot_accel)
if slot ~= "the_lemma" then
adjective_slot_set[slot] = true
end
end
end
add_slots(adjective_slot_list_positive)
add_slots(adjective_slot_list_comparative)
add_slots(adjective_slot_list_superlative)
local function add(base, slot, stem, ending, footnotes)
if not ending or base.suppress and base.suppress[ending] then
return
end
local function do_combine_stem_ending(stem, ending)
return rsub(stem, OMITTED_E, "") .. ending
end
if ending == "en" and (base.props.sync_n or base.props.sync_mn or base.props.sync_mns) then
ending = "n"
elseif ending == "em" and (base.props.sync_mn or base.props.sync_mns) then
ending = "m"
elseif ending == "es" and base.props.sync_mns then
ending = "s"
end
footnotes = M.iut.combine_footnotes(base.footnotes, footnotes)
local ending_obj = M.iut.combine_form_and_footnotes(ending, footnotes)
M.iut.add_forms(base.forms, slot, stem, ending_obj, do_combine_stem_ending)
end
local function decline(base, stem, compsup)
for _, state in ipairs(states) do
local prefix = compsup .. state .. "_"
for _, gender in ipairs(genders) do
for i, case in ipairs(cases) do
add(base, prefix .. case .. "_" .. gender, stem, endings[state][gender][i])
end
end
end
end
local function parse_indicator_spec(angle_bracket_spec, lemma, pagename)
if lemma == "" then
lemma = pagename
end
local base = {forms = {}, stems = {}, overrides = {}, props = {}}
base.orig_lemma = lemma
base.orig_lemma_no_links = M.links.remove_links(lemma)
base.lemma = base.orig_lemma_no_links
local inside = rmatch(angle_bracket_spec, "^<(.*)>$")
assert(inside)
local function parse_err(msg)
error(msg .. ": <" .. inside .. ">")
end
--[=[
Parse a single override spec and return two values: the slot the override applies to and the override specs. The
input is a list where the footnotes have been separated out, i.e. parse_balanced_segment_run(..., "[", "]") has
already been called.
]=]
local function parse_override(segments)
local part = segments[1]
local slot, rest = rmatch(part, "^(.-):(.*)$")
if not adjective_slot_set[slot] then
parse_err("Unrecognized slot '" .. slot .. "' in override: '" .. table.concat(segments) .. "'")
end
segments[1] = rest
return slot, M.com.fetch_specs(segments, ":", "override", nil, parse_err)
end
if inside ~= "" then
local segments = M.put.parse_balanced_segment_run(inside, "[", "]")
local dot_separated_groups = M.put.split_alternating_runs_and_strip_spaces(segments, "%.")
for i, dot_separated_group in ipairs(dot_separated_groups) do
local part = dot_separated_group[1]
if part == "comp" then
part = "comp:+"
end
if rfind(part, "^comp:") or rfind(part, "^sup:") or rfind(part, "^stem:") then
local spectype, rest = rmatch(part, "^(.-):(.*)$")
if base[spectype] then
parse_err("Can't specify value for '" .. spectype .. "' twice")
end
dot_separated_group[1] = rest
base[spectype] = M.com.fetch_specs(dot_separated_group, ":", spectype, nil, parse_err)
elseif rfind(part, "^state:") then
if #dot_separated_group > 1 then
parse_err("Can't specify footnotes with 'state': '" .. table.concat(dot_separated_group) .. "'")
end
if base.state then
parse_err("Can't specify value for 'state:' twice")
end
local state = rsub(part, "state:", "")
if not M.table.contains(states, state) then
parse_err("Unrecognized state '" .. state .. "', should be one of " .. table.concat(states, "/"))
end
base.state = state
elseif rfind(part, "^suppress:") then
if #dot_separated_group > 1 then
parse_err("Can't specify footnotes with 'suppress': '" .. table.concat(dot_separated_group) .. "'")
end
if base.suppress then
parse_err("Can't specify value for 'suppress:' twice")
end
part = rsub(part, "suppress:", "")
local endings = rsplit(part, "%s*:%s*")
local suppress = {}
for _, ending in ipairs(endings) do
if ending ~= "e" and ending ~= "em" and ending ~= "en" and ending ~= "er" and ending ~= "es" then
parse_err("Unrecognized ending '" .. ending .. "' in suppress: spec: '" .. table.concat(dot_separated_group) .. "'")
end
suppress[ending] = true
end
base.suppress = suppress
elseif part:find(":") then
local slot, override = parse_override(dot_separated_group)
if base.overrides[slot] then
parse_err("Can't specify override twice for slot '" .. slot .. "'")
else
base.overrides[slot] = override
end
elseif part == "" then
if #dot_separated_group == 1 then
parse_err("Blank indicator")
end
base.footnotes = M.com.fetch_footnotes(dot_separated_group, parse_err)
elseif #dot_separated_group > 1 then
parse_err("Footnotes only allowed with slot overrides, comp:, sup:, stem: or by themselves: '" .. table.concat(dot_separated_group) .. "'")
elseif part == "ss" or part == "indecl" or part == "predonly" or
part == "sync_n" or part == "sync_mn" or part == "sync_mns" then
if base.props[part] then
parse_err("Can't specify '" .. part .. "' twice")
end
base.props[part] = true
else
parse_err("Unrecognized indicator '" .. part .. "'")
end
end
end
return base
end
local function generate_default_stem(base)
if base.props.ss then
return rsub(base.lemma, "ß$", "ss")
end
if base.lemma:find("e$") then
return rsub(base.lemma, "e$", "")
end
return rsub(base.lemma, "([ai])bel$", "%1b" .. OMITTED_E .. "l")
end
local function generate_default_comp(base, stem)
return stem .. "er"
end
local function generate_default_sup(base, stem)
if rfind(stem, OMITTED_E .. "[lmnr]$") then
-- If we omitted -e- in the stem, put it back. E.g. [[simpel]], stem ''simpl-'', comparative
-- ''simpler'', superlative ''simpelst-'', or [[abgeschlossen]], comparative ''abgeschlossener'' or
-- ''abgeschlossner'', superlative just ''abgeschlossenst-''.
local non_ending, ending = rmatch(stem, "^(.*)" .. OMITTED_E .. "([lmnr])$")
if base.props.ss then
-- [[abgeschlossen]] -> ''abgeschloßner'' -> ''abgeschlossenst'' (pre-1996 spelling)
non_ending = rsub(non_ending, "ß$", "ss")
end
return non_ending .. "e" .. ending .. "st"
elseif rfind(stem, "gr[oö]ß$") or rfind(stem, "gr[oö]ss$") then
-- Write this way so we can be called either on positive or comparative stem.
return stem .. "t"
elseif rfind(stem, "h[oö]h$") then
-- [[hoch]], [[ranghoch]], etc.
-- Write this way so we can be called either on positive or comparative stem.
return rsub(stem, "..$", "öchst")
elseif rfind(stem, "n[aä]h$") then
-- [[nah]], [[äquatornah]], [[bahnhofsnah]], [[bodennah]], [[citynah]], [[hautnah]] (has no comp in dewikt),
-- [[körpernah]], [[zeitnah]], etc.
-- NOTE: [[erdnah]], [[praxisnah]] can be either regular (like [[froh]] below) or following [[nah]].
-- Write this way so we can be called either on positive or comparative stem.
return rsub(stem, "..$", "ächst")
elseif rfind(stem, "[aeiouäöü]h$") then
-- [[froh]], [[farbenfroh]], [[lebensfroh]], [[schadenfroh]], [[früh]], [[jäh]] (has only jähest in dewikt), [[rauh]],
-- [[roh]], [[weh]], [[zäh]]
return {stem .. "st", stem .. "est"}
elseif rfind(stem, "e[rl]?nd$") then
-- Present participles; non-present-participles like [[elend]], [[behend]]/[[behende]], [[horrend]] need special-casing
return stem .. "st"
elseif rfind(stem, "[^wi]e[rl]?t$") then
-- Most adjectives in -et, -elt, -ert (past participles specifically), but not adjectives in -iert, -ielt or
-- non-past-participles in -wert; other non-past-participles like [[alert]], [[inert]], [[concret]], [[discret]],
-- [[obsolet]] need special-casing
return stem .. "st"
elseif rfind(stem, "[^e]igt$") then
-- Most adjectives in -igt (past participles specifically), but not adjectives in -eigt such as [[abgeneigt]];
-- exceptions like [[gewitzigt]], [[gerechtfertigt]] need special-casing
return stem .. "st"
elseif rfind(stem, "[ae][iuwy]$") then
-- Those ending in diphthongs can take either -est -or -st (scheu, neu, schlau, frei, blau/blaw, etc.)
return {stem .. "est", stem .. "st"}
elseif rfind(stem, "[szxßdt]$") then
if base.props.ss and rfind(stem, "ß$") then
return rsub(stem, ".$", "ssest")
end
return stem .. "est"
elseif rfind(stem, "sk$") then
-- [[burlesk]], [[chevaleresk]], [[dantesk]], [[grotesk]], [[pittoresk]], [[pythonesk]]; also [[brüsk]], [[promisk]]
return stem .. "est"
elseif rfind(stem, "[^i]sch$") then
-- Adjectives in -sch where it is not an adjective-forming ending typically can take either -est or -st; examples
-- are [[barsch]], [[falsch]], [[fesch]], [[forsch]]/[[nassforsch]], [[frisch]]/[[taufrisch]], [[harsch]],
-- [[keusch]]/[[unkeusch]], [[lasch]], [[morsch]], [[rasch]], [[wirsch]]/[[unwirsch]]; maybe [[krüsch]]/[[krütsch]]?
-- (dewikt says sup. only ''krüschst'', Duden says only ''krüschest''); a few can take only -est per dewikt
-- [[deutsch]]/[[süddeutsch]]/[[teutsch]], [[hübsch]], [[krosch]], [[resch]], [[rösch]]
-- Cases where -sch without -isch occurs that is an adjective-forming ending need special-casing, e.g.
-- [[figelinsch]]
return {stem .. "est", stem .. "st"}
else
return stem .. "st"
end
end
local function process_spec(base, destforms, slot, specs, base_stem, form_default)
local function do_form_default(form)
local retval = form_default(base, form)
if type(retval) ~= "table" then
retval = {retval}
end
return retval
end
specs = specs or {{form = "+"}}
for _, spec in ipairs(specs) do
local forms
if spec.form == "-" then
-- Skip "-"; effectively, no forms get inserted into output.comp.
elseif spec.form == "+" then
forms = M.iut.flatmap_forms(base_stem, do_form_default)
elseif rfind(spec.form, "^%+") then
local ending = rsub(spec.form, "^%+", "")
forms = M.iut.map_forms(base_stem, function(form) return form .. ending end)
elseif spec.form == "^" then
forms = M.iut.flatmap_forms(base_stem, function(form) return do_form_default(M.com.apply_umlaut(form)) end)
elseif rfind(spec.form, "^%^") then
local ending = rsub(spec.form, "^%^", "")
forms = M.iut.map_forms(base_stem, function(form) return M.com.apply_umlaut(form) .. ending end)
elseif spec.form == "-e" then
forms = M.iut.flatmap_forms(base_stem, function(form)
local non_ending, ending = rmatch(form, "^(.*)e([lmnr])$")
if not non_ending then
error("Can't use '-e' with stem '" .. form .. "'; should end in -el, -em, -en or -er")
end
if base.props.ss then
non_ending = rsub(non_ending, "ss$", "ß")
end
return do_form_default(non_ending .. OMITTED_E .. ending)
end)
else
M.iut.insert_form(destforms, slot, spec)
end
if forms then
forms = M.iut.convert_to_general_list_form(forms, spec.footnotes)
M.iut.insert_forms(destforms, slot, forms)
end
end
end
local function detect_indicator_spec(alternant_multiword_spec, base)
-- First generate the stem(s), substituting + with the default formed from the lemma.
process_spec(base, base.stems, "stem", base.stem, {{form = generate_default_stem(base)}},
function(base, stem) return stem end)
-- Next process the superative, if specified. We do this first so that if there is a superative and no
-- comparative specified, we add a comparative; but if sup:- is given, we don't add a comparative.
if base.sup then
process_spec(base, base.stems, "sup", base.sup, base.stems.stem, generate_default_sup)
if base.stems.sup and not base.comp then
base.comp = {{form = "+"}}
end
end
-- Next process the comparative, if specified (or defaulted because a superlative was specified).
if base.comp then
process_spec(base, base.stems, "comp", base.comp, base.stems.stem, generate_default_comp)
end
-- Next, if comparative specified but not superlative, derive the superlative(s) from the comparative(s).
if base.stems.comp and not base.sup then
local sups = M.iut.flatmap_forms(base.stems.comp, function(form)
if not rfind(form, "er$") then
error("Don't know how to derive superlative from comparative '" .. form .. "' because it doesn't end in -er; specify the superlative explicitly using sup:...")
end
local retval = generate_default_sup(base, rsub(form, "er$", ""))
if type(retval) ~= "table" then
retval = {retval}
end
return retval
end)
M.iut.insert_forms(base.stems, "sup", sups)
end
-- Make sure all alternants agree in having a comparative and/or superlative.
for _, compsup in ipairs { {"comp", "has_comp", "comparative"}, {"sup", "has_sup", "superlative"} } do
local stem, altprop, desc = unpack(compsup)
local has_stem = not not base.stems[stem]
if alternant_multiword_spec.props[altprop] == nil then
alternant_multiword_spec.props[altprop] = has_stem
elseif alternant_multiword_spec.props[altprop] ~= has_stem then
error("If one alternant has a " .. desc .. ", all must")
end
end
if base.props.predonly then
base.props.indecl = true
end
if base.overrides.pred and base.overrides.pred[1].form == "-" then
base.props.nopred = true
end
if base.props.predonly and base.props.nopred then
error("Can't be both 'predonly' and 'pred:-'")
end
-- Make sure all alternants agree in 'state' if specified.
local stateval = base.state or false
if alternant_multiword_spec.state == nil then
alternant_multiword_spec.state = stateval
elseif alternant_multiword_spec.state ~= stateval then
error("All alternants must agree in the value of 'state', if specified")
end
-- Make sure all alternants agree in various properties.
for _, propdesc in ipairs { {"indecl"}, {"nopred", "pred:-"}, {"predonly"} } do
local prop, desc = unpack(propdesc)
desc = desc or prop
local val = not not base.props[prop]
if alternant_multiword_spec.props[prop] == nil then
alternant_multiword_spec.props[prop] = val
elseif alternant_multiword_spec.props[prop] ~= val then
error("If one alternant specifies '" .. desc .. "', all must")
end
end
end
local function detect_all_indicator_specs(alternant_multiword_spec)
M.iut.map_word_specs(alternant_multiword_spec, function(base)
detect_indicator_spec(alternant_multiword_spec, base)
end)
end
local function process_slot_overrides(base)
for slot, overrides in pairs(base.overrides) do
local origforms = base.forms[slot]
base.forms[slot] = nil
process_spec(base, base.forms, slot, overrides, origforms, function(base, form) return form end)
end
end
local function decline_adjective(base)
decline(base, base.stems.stem, "")
if base.stems.comp then
decline(base, base.stems.comp, "comp_")
end
if base.stems.sup then
decline(base, base.stems.sup, "sup_")
end
add(base, "the_lemma", base.orig_lemma, "")
add(base, "pred", base.lemma, "")
if base.stems.comp and not base.props.nopred then
add(base, "comp_pred", base.stems.comp, "")
end
if base.stems.sup and not base.props.nopred then
add(base, "sup_pred", M.iut.map_forms(base.stems.sup, function(form)
if not rfind(form, "[%[%]]") then
form = "[[" .. form .. "en]]"
elseif rfind(form, "%]%]$") then
form = rsub(form, "%]%]$", "en]]")
else
form = form .. "en"
end
return "[[am]] " .. form
end), "")
end
process_slot_overrides(base)
end
-- Compute the categories to add the adjective to, as well as the annotation to display in the
-- declension 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 function insert(cattype)
cattype = rsub(cattype, "~", alternant_multiword_spec.pos)
M.table.insertIfNot(alternant_multiword_spec.categories, "德語" .. cattype)
end
local annotation
local annparts = {}
if not alternant_multiword_spec.props.has_comp then
table.insert(annparts, "無比較級")
insert("無比較級~")
end
if not alternant_multiword_spec.forms.pred then
table.insert(annparts, "無謂語")
insert("無謂語~")
end
alternant_multiword_spec.annotation = table.concat(annparts, ", ")
end
local function show_forms(alternant_multiword_spec)
local lemmas = alternant_multiword_spec.forms.the_lemma or {}
local function generate_link(data)
local slot = data.slot
local link = M.links.full_link {
lang = M.lang, term = data.form.formval_for_link, tr = "-", accel = data.form.accel_obj
}
local footnote_text = M.iut.get_footnote_text(data.form.footnotes, data.footnote_obj)
link = link .. footnote_text
if rfind(slot, "pred_m$") then
return link_term("[[er]] [[ist]]") .. " " .. link
elseif rfind(slot, "pred_f$") then
return link_term("[[sie]] [[ist]]") .. " " .. link
elseif rfind(slot, "pred_n$") then
return link_term("[[es]] [[ist]]") .. " " .. link
elseif rfind(slot, "pred_p$") then
return link_term("[[sie]] [[sind]]") .. " " .. link
elseif rfind(slot, "wk_") then
local case, gender = rmatch(slot, ".*wk_(.*)_([mfnp])$")
return link_term(M.com.articles[gender]["def_" .. case]) .. " " .. link
elseif rfind(slot, "mix_") then
local case, gender = rmatch(slot, ".*mix_(.*)_([mfnp])$")
return link_term(M.com.articles[gender]["ind_" .. case]) .. " " .. link
else
return link
end
end
local function join_spans(data)
return table.concat(data.formval_spans, "<br />")
end
local function copy_predicate_forms(compsup)
for _, gender in ipairs(genders) do
alternant_multiword_spec.forms[compsup .. "pred_" .. gender] = alternant_multiword_spec.forms[compsup .. "pred"]
end
end
copy_predicate_forms("")
copy_predicate_forms("comp_")
copy_predicate_forms("sup_")
local props = {
lang = M.lang,
lemmas = lemmas,
generate_link = generate_link,
join_spans = join_spans,
}
props.slot_list = adjective_slot_list_positive
M.iut.show_forms(alternant_multiword_spec.forms, props)
alternant_multiword_spec.footnote_positive = alternant_multiword_spec.forms.footnote
if alternant_multiword_spec.props.has_comp then
props.slot_list = adjective_slot_list_comparative
M.iut.show_forms(alternant_multiword_spec.forms, props)
alternant_multiword_spec.footnote_comparative = alternant_multiword_spec.forms.footnote
end
if alternant_multiword_spec.props.has_sup then
props.slot_list = adjective_slot_list_superlative
M.iut.show_forms(alternant_multiword_spec.forms, props)
alternant_multiword_spec.footnote_superlative = alternant_multiword_spec.forms.footnote
end
end
local single_state_table_spec = [=[
! 主格
| {COMPSUPSTATE_nom_m}
| {COMPSUPSTATE_nom_f}
| {COMPSUPSTATE_nom_n}
| {COMPSUPSTATE_nom_p}
|- data-wikt-palette-p="PALETTE"
! 屬格
| {COMPSUPSTATE_gen_m}
| {COMPSUPSTATE_gen_f}
| {COMPSUPSTATE_gen_n}
| {COMPSUPSTATE_gen_p}
|- data-wikt-palette-p="PALETTE"
! 與格
| {COMPSUPSTATE_dat_m}
| {COMPSUPSTATE_dat_f}
| {COMPSUPSTATE_dat_n}
| {COMPSUPSTATE_dat_p}
|- data-wikt-palette-p="PALETTE"
! 賓格
| {COMPSUPSTATE_acc_m}
| {COMPSUPSTATE_acc_f}
| {COMPSUPSTATE_acc_n}
| {COMPSUPSTATE_acc_p}
]=]
local function state_rows(state, palette)
return rsub(rsub(single_state_table_spec, "PALETTE", palette), "STATE", state)
end
local function make_table(alternant_multiword_spec)
if alternant_multiword_spec.props.indecl then
if alternant_multiword_spec.props.predonly then
return "無詞形變化,僅表語。"
elseif alternant_multiword_spec.props.nopred then
return "無詞形變化,無表語形式。"
else
return "無詞形變化。"
end
end
local forms = alternant_multiword_spec.forms
local table_spec = (alternant_multiword_spec.state and
-- Single-state table
([=[
! rowspan="2" class="outer" | 數和性
! colspan="3" class="outer" | 單數
! rowspan="2" class="outer" | 複數
|-
! class="outer" | 陽性
! class="outer" | 陰性
! class="outer" | 中性
|- data-wikt-palette-p="indigo"
]=] .. state_rows(alternant_multiword_spec.state, "indigo"))
or not alternant_multiword_spec.args.truncate and
-- Normal (non-truncated) table
([=[
! colspan="2" rowspan="2" class="outer" | 數和性
! colspan="3" class="outer" | 單數
! rowspan="2" class="outer" | 複數
|-
! class="outer" | 陽性
! class="outer" | 陰性
! class="outer" | 中性
|- data-wikt-palette-p="yellow"
! colspan="2" class="outer" | 表語
| {COMPSUPpred_m}
| {COMPSUPpred_f}
| {COMPSUPpred_n}
| {COMPSUPpred_p}
|- data-wikt-palette-p="blue"
! rowspan="4" class="outer" | 強變化<br/>(無冠詞)
]=] .. state_rows("str", "blue") .. [=[
|- data-wikt-palette-p="green"
! rowspan="4" class="outer" | 弱變化<br/>(帶定冠詞)
]=] .. state_rows("wk", "green") .. [=[
|- data-wikt-palette-p="orange"
! rowspan="4" class="outer" | 混合變化<br/>(帶不定冠詞)
]=] .. state_rows("mix", "orange"))
or
-- Truncated table, for the documentation page where otherwise we'd hit the template expand limit
[=[
! colspan="2" rowspan="2" class="outer" | 數和性
! colspan="3" class="outer" | 單數
! rowspan="2" class="outer" | 複數
|-
! class="outer" | 陽性
! class="outer" | 陰性
! class="outer" | 中性
|- data-wikt-palette-p="yellow"
! colspan="2" class="outer" | 表語
| {COMPSUPpred_m}
| {COMPSUPpred_f}
| {COMPSUPpred_n}
| {COMPSUPpred_p}
|- data-wikt-palette-p="blue"
! rowspan="2" class="outer" | 強變化<br/>(無冠詞)
! 主格
| {COMPSUPstr_nom_m}
| {COMPSUPstr_nom_f}
| {COMPSUPstr_nom_n}
| {COMPSUPstr_nom_p}
|- data-wikt-palette-p="blue"
! ...
| colspan="4" | ...
|- data-wikt-palette-p="green"
! rowspan="2" class="outer" | 弱變化<br/>(帶定冠詞)
! 主格
| {COMPSUPwk_nom_m}
| {COMPSUPwk_nom_f}
| {COMPSUPwk_nom_n}
| {COMPSUPwk_nom_p}
|- data-wikt-palette-p="green"
! ...
| colspan="4" | ...
|- data-wikt-palette-p="orange"
! rowspan="2" class="outer" | 混合變化<br/>(帶不定冠詞)
! 主格
| {COMPSUPmix_nom_m}
| {COMPSUPmix_nom_f}
| {COMPSUPmix_nom_n}
| {COMPSUPmix_nom_p}
|- data-wikt-palette-p="orange"
! ...
| colspan="4" | ...
]=])
local ital_lemma = '<i lang="de" class="Latn">' .. forms.lemma .. "</i>"
local annotation = alternant_multiword_spec.annotation
if annotation ~= "" then
annotation = " (<span style=\"font-size: smaller;\">" .. annotation .. "</span>)"
end
local function format_degree(compsup, title, footnote)
forms.footnote = footnote
return M.string_utilities.format(M.inflection_table.make_top {
lang = "de",
title = ital_lemma .. " 的" .. title .. annotation, -- l10n: word order
tall = "yes",
} .. rsub(table_spec, "COMPSUP", compsup) .. M.inflection_table.make_bottom {
notes = footnote ~= "" and "{footnote}" or nil,
}, forms)
end
local degrees = {format_degree("", "原級", alternant_multiword_spec.footnote_positive)}
if alternant_multiword_spec.props.has_comp then
table.insert(degrees, format_degree("comp_", "比較級",
alternant_multiword_spec.footnote_comparative))
end
if alternant_multiword_spec.props.has_sup then
table.insert(degrees, format_degree("sup_", "最高級",
alternant_multiword_spec.footnote_superlative))
end
if #degrees == 1 then
return degrees[1]
end
return M.inflection_table.make_box({
title = "-",
flow = "vertical",
}, "\n" .. table.concat(degrees, "\n") .. "\n")
end
local boolean_param = {type = "boolean"}
-- Externally callable function to parse and decline a noun given user-specified arguments.
-- Return value is ALTERNANT_MULTIWORD_SPEC, an object where the declined forms are in `ALTERNANT_MULTIWORD_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(parent_args, pos, from_headword, def)
local params = {
[1] = true,
pagename = true,
-- If truncate=1 is specified, truncate the tables to reduce the template expansion size,
-- for use on documentation and test pages.
truncate = boolean_param,
json = boolean_param, -- for bot use
}
if from_headword or pretend_from_headword then
params["head"] = {list = true}
params["id"] = true
params["sort"] = true
params["splithyph"] = boolean_param
params["nolinkhead"] = boolean_param
params["new"] = boolean_param
end
local args = M.parameters.process(parent_args, params)
local pagename = args.pagename or M.headword_data.pagename
if not args[1] then
if pagename == "De-adecl" then -- l10n: page titles begin with a capital letter on this wiki
args[1] = def or "lang<comp:^>"
else
args[1] = ""
end
end
local arg1 = M.com.add_angle_brackets(args[1])
local function do_parse_indicator_spec(angle_bracket_spec, lemma)
return parse_indicator_spec(angle_bracket_spec, lemma, pagename)
end
local parse_props = {
parse_indicator_spec = do_parse_indicator_spec,
allow_default_indicator = true,
allow_blank_lemma = true,
}
local alternant_multiword_spec = M.iut.parse_inflected_text(arg1, parse_props)
alternant_multiword_spec.pos = pos or "形容詞"
alternant_multiword_spec.args = args
alternant_multiword_spec.forms = {}
alternant_multiword_spec.props = {}
detect_all_indicator_specs(alternant_multiword_spec)
local inflect_props = {
lang = M.lang,
skip_slot = function(slot)
return false
end,
slot_list = all_adjective_slot_list,
inflect_word_spec = decline_adjective,
}
M.iut.inflect_multiword_or_alternant_multiword_spec(alternant_multiword_spec, inflect_props)
compute_categories_and_annotation(alternant_multiword_spec)
if args.json then
return M.JSON.toJSON(alternant_multiword_spec)
end
return alternant_multiword_spec
end
-- Entry point for {{de-adecl}}. Template-callable function to parse and decline
-- an adjective given user-specified arguments and generate a displayable table
-- of the declined forms.
function export.show(frame)
local parent_args = frame:getParent().args
local alternant_multiword_spec = export.do_generate_forms(parent_args)
if type(alternant_multiword_spec) == "string" then -- json=1 specified
return alternant_multiword_spec
end
show_forms(alternant_multiword_spec)
return make_table(alternant_multiword_spec) .. M.utilities.format_categories(
alternant_multiword_spec.categories, M.lang)
end
return export
9gmdanxo5gms9oprrsuyvbdxbloko54
User:Sayonzei/Kotori
2
2129326
9938561
9938060
2026-10-05T09:26:39Z
Sayonzei
40728
9938561
wikitext
text/x-wiki
精製鳥飼料:[[User:KotoriBot]]
==列表==
===法語===
*一個-er結尾的第一類法語動詞(連同本體)理論上可產出'''40'''個新詞條。<br>
:{{col3|fr|}}<!--明日:
;需自行創建
:{{col3|fr|retransmigrer|redésentrelacer|retransfigurer|réobséder|désobséder|désamocher|réamocher|rebuissonner|débuissonner|recolmater|décolmater|désaffréter|redélester|réindividuer|recharrier|recémenter|décémenter|réabsolutiser|désabsolutiser|désacadémiser|désaccastiller|réaccompagner|désaccompagner|réagrémenter|désagrémenter|désalambiquer|désanalphabétiser|désanathématiser|réapostropher|réajourner|désajourner|redétremper|redogmatiser|dédogmatiser|réextirper|réintituler|resolutionner|resouscrire|resulfater|désulfater|réagenouiller|désagenouiller|débouillir|désaccomplir|réaccomplir|réaccoutrer|hâbler}}-->
===加泰===
*一個-ar結尾的普通加泰羅尼亞語動詞(連同本體)理論上可產出'''44'''個新詞條。<br>
:{{col3|ca|}}
===葡加利===
*一個-ar結尾的普通葡萄牙語動詞(連同本體)理論上可產出'''53'''個新詞條。<br>
:{{col3|pt|}}<!--明日:-->
===西===
*一個-ar結尾的普通西班牙語動詞(連同本體、不含合詞)理論上可產出'''58'''個新詞條。<br>
:{{col3|es|}}<!--明日:
;需自行創建
:{{col3|es|}}-->
===德語===
:{{col3|de|}}
===拉丁語===
:{{col3|la|}}<!--明日:-->
:{{col3|la|}}<!--明日:-->
===意大利語===
:{{col3|it|nebulizzare|negreggiare|nereggiare|neologizzare|nichelare|niellare|ninfeggiare}}<!--明日:-->
===俄語===
:{{col3|ru|}}
:{{col3|ru|}}
iddu8i9r67o50eibylhxnsvv2yxddif
易子而食
0
2535278
9938457
8391181
2026-10-04T23:12:04Z
Fglffer
55252
9938457
wikitext
text/x-wiki
==漢語==
{{zh-forms}}
===詞源===
來自《左傳.宣公十五年》:
: {{zh-x|敝邑 易子而食,析骸以爨。|在我的城邦,人們'''交換小孩煮食充飢''',分解骸骨來燒火做飯。|ref=Zuozhuan|collapsed=y}}
===發音===
{{zh-pron
|m=yìzǐ'érshí
|c=jik6 zi2 ji4 sik6
|cat=cy
}}
===成語===
{{head|zh|成語}}
# 形容[[天災人禍]]時,極[[飢餓]]的[[慘況]]
{{cln|zh|來自《左傳》的成語}}
awgvlnba0trbjsves0ihkwewwfon2w1
Template:De-ndecl/doc
10
3178006
9938448
9387692
2026-10-04T18:19:56Z
TongcyDai
53191
補上 pagename=、json= 參數的說明
9938448
wikitext
text/x-wiki
{{documentation subpage}}
{{uses lua|Module:de-noun}}
==介紹==
這個模板應該用來變格所有德語名詞和專有名詞,優先於任何其他可能仍然存在的舊模板。(最終這些舊模板都會被淘汰。)
===陽性和中性名詞===
通常向模板提供一個參數,用來指定性別,可選擇性地指定屬格單數和/或複數。例如,對於名詞 {{m|de|Alarm}},使用:
{{temp|de-ndecl|m,s,e}}
會產生
{{de-ndecl|m,s,e|pagename=Alarm}}
這裡,<code>m</code> 指定性別,<code>s</code> 指定屬格單數詞尾,<code>e</code> 指定複數詞尾。注意該模組足夠智能,會自動在與格複數後加上 ''-n''。
對於屬格單數和複數提供了合理的預設值。在這個例子中,包括 {{m|de|Alarm}} 在內的大多數名詞的預設屬格單數加上 ''-s'',預設複數加上 ''-e'',所以屬格單數和複數都可以省略:
{{temp|de-ndecl|m}}
這會產生與上面相同的結果。
如果某個詞尾有多種可能,用冒號分隔各種可能,如 {{m|de|Fisch||魚}}:
{{temp|de-ndecl|m,es:s,e}}
會產生
{{de-ndecl|m,es:s,e|pagename=Fisch}}
由於屬格單數使用 ''-es'' 或 ''-s'' 非常常見,提供了簡寫 <code>(e)s</code>。連同預設複數,上面的例子可以等價地寫成:
{{temp|de-ndecl|m,(e)s}}
其他這樣的簡寫還有 <code>(s)</code>(''-s'' 或無詞尾)和 <code>(es)</code>(''-es'' 或無詞尾)。
使用 <code>-</code> 來指定空詞尾,例如對於 {{m|de|Mädchen||女孩}},複數 ''Mädchen'':
{{temp|de-ndecl|n,s,-}}
會產生
{{de-ndecl|n,s,-|pagename=Mädchen}}
===陰性名詞===
陰性名詞通常在屬格單數中有空詞尾。因此,陰性名詞的語法省略屬格單數,僅指定複數,如 {{m|de|Ordnung||排列、次序、等級}},複數 ''Ordnungen'':
{{temp|de-ndecl|f,en}}
會產生
{{de-ndecl|f,en|pagename=Ordnung}}
陰性名詞預設為複數 ''-en''(或在 ''e'' 後僅為 ''-n''),所以這可以等價地寫成:
{{temp|de-ndecl|f}}
===變音===
要包含變音,在詞尾前加上 <code>^</code>。例如,對於 {{m|de|Haus||房子}},複數 ''Häuser'',使用以下寫法:
{{temp|de-ndecl|n,es,^er}}
會產生
{{de-ndecl|n,es,^er|pagename=Haus}}
該模組知道變音的正確規則,例如 {{m|de|Apfel||蘋果}} 在複數中變音為 ''Äpfel'':
{{temp|de-ndecl|m,s,^}}
會產生
{{de-ndecl|m,s,^|pagename=Apfel}}
由於 ''-s'' 在大多數情況下是預設的屬格詞尾,這可以等價地寫成:
{{temp|de-ndecl|m,,^}}
===弱變化名詞===
性別、屬格單數和複數之外的其他修飾符稱為''指示符''。這些在句號(<code>.</code>)後指定。一個常見的指示符是 <code>weak</code>,表示弱變化名詞,例如 {{m|de|Präsident||總統}}:
{{temp|de-ndecl|m.weak}}
會產生
{{de-ndecl|m.weak|pagename=Präsident}}
代碼會自動在名詞以 ''-e'' 結尾時用 ''-n'' 代替 ''-en''。但是,如果名詞在輔音後用 ''-n'' 代替 ''-en'',如 {{m|de|Herr}}、{{m|de|Nachbar}}、{{m|de|Satyr}} 及其複合詞,使用 <code>weak_n</code>。例如,{{m|de|Nachbar}} 的一種變格可以這樣表示:
{{temp|de-ndecl|m.weak_n}}
會產生
{{de-ndecl|m.weak_n|pagename=Nachbar}}
如果名詞在單數中用 ''-n'' 但在複數中用 ''-en'',這是 {{m|de|Herr}} 及其複合詞的典型情況,明確指定複數,如下所示:
{{temp|de-ndecl|m,,en.weak_n}}
會產生
{{de-ndecl|m,,en.weak_n|pagename=Herr}}
對於有多種可能變格的名詞,例如弱變化或強變化,使用[[#變體|變體]]記號,如下所述。例如,{{m|de|Diakon||執事,助祭}} 可以強變化或弱變化,可以這樣表示:
{{temp|de-ndecl|((<m>,<m.weak>))}}
會產生
{{de-ndecl|((<m>,<m.weak>))|pagename=Diakon}}
這裡的一般語法是用角括號圍繞每個變格,用逗號分隔它們,並在整個內容外面加上雙重括號。可以有兩個以上的變體;例如對於 {{m|de|Satyr}},它可以是強變化、屬格為 ''-n'' 的弱變化或屬格為 ''-en'' 的弱變化,使用以下寫法:
{{temp|de-ndecl|((<m,s,n>,<m.weak_n>,<m,,n.weak>))}}
會產生
{{de-ndecl|((<m,s,n>,<m.weak_n>,<m,,n.weak>))|pagename=Satyr}}
在這種情況下,複數總是 ''-n'',所以預設會產生其他複數的變體必須明確給出複數。
===其他指示符===
除了 <code>weak</code> 和 <code>weak_n</code>,其他支援的指示符如下:
* <code>sg</code>:僅單數
* <code>article</code>:表示該詞通常與定冠詞一起使用
* <code>nodatpln</code>:在通常會加上的情況下不要在與格複數後加 ''-n''
* <code>ss</code>:在以母音開頭的詞尾前將 ''-ß'' 改為 ''-ss''(在 1996 年前的拼寫中常見)
* <code>dat_with_e</code>:即使不存在帶有 ''-e-'' 的屬格,也包含帶腳註的 ''-e'' 與格變體;見下文
例子:
1. <code>sg</code> 用於僅單數,例如 {{m|de|Butter||奶油,黃油}}:
{{temp|de-ndecl|f.sg}}
會產生
{{de-ndecl|f.sg|pagename=Butter}}
2. <code>article</code> 用於通常與定冠詞一起使用的名詞,例如 {{m|de|Sternenmeer||繁星點點的夜空 {{qual|詩歌語}}}}:
{{temp|de-ndecl|n,s:es.sg.article}}
會產生
{{de-ndecl|n,s:es.sg.article|pagename=Sternenmeer}}
這個指示符在詞頭模板 {{temp|de-noun}} 中特別有用,例如:
{{temp|de-noun|n,s:es.sg.article}}
會產生
{{de-noun|n,s:es.sg.article|pagename=Sternenmeer}}
3. <code>nodatpln</code> 用於抑制在最後的 ''-e''、''-er'' 或 ''-el'' 後與格複數的最後 ''-n'',例如 {{m|de|Retina||視網膜}}:
{{temp|de-ndecl|f,e.nodatpln}}
會產生
{{de-ndecl|f,e.nodatpln|pagename=Retina}}
4. <code>ss</code> 表示最後的 ''-ß'' 在以母音開頭的詞尾前變為 ''-ss''(用於 1996 年前的拼寫),例如 {{m|de|Schluß||結束,結論}}(已廢棄的拼寫):
{{temp|de-ndecl|m,es,^e.ss}}
會產生
{{de-ndecl|m,es,^e.ss|pagename=Schluß}}
5. <code>dat_with_e</code> 用於明確包含帶腳註的 ''-e'' 與格變體,即使不存在帶有 ''-e-'' 的屬格,例如對於 {{m|de|Admiral||海軍上將}}:
{{temp|de-ndecl|m,,e:^e.dat_with_e}}
會產生
{{de-ndecl|m,,e:^e.dat_with_e|pagename=Admiral}}
注意,預設情況下,當屬格形式包含 ''-e-''(屬格指定為 <code>es</code>、<code>(e)s</code> 或 <code>ses</code>)時,會出現 ''-e'' 變體及相關腳註。要抑制其出現,如在新造詞中,使用覆寫 <code>dat:-</code>(見下面的[[#覆寫|覆寫]])。
===不規則屬格和複數===
如果屬格或複數相當不規則,無法使用詞尾和/或使用 <code>^</code> 表示變音來指定。在這些情況下,指定完整形式,例如對於 {{m|de|Vakuum||真空}},複數 ''Vakua'' 或 ''Vakuen'':
{{temp|de-ndecl|m,s,Vakua:Vakuen}}
會產生
{{de-ndecl|m,s,Vakua:Vakuen|pagename=Vakuum}}
注意以 ''-um'' 結尾的中性名詞的預設複數將 ''-um'' 變為 ''-en''(見下文),所以以下寫法等價有效:
{{temp|de-ndecl|m,s,Vakua:+}}
這裡,<code>+</code> 明確請求預設值。
完整形式通過以大寫字母開頭來識別。在少數情況下必須給出完整形式且以小寫字母開頭時,在完整形式前加上 <code>!</code>。例如,對於 {{m|de|deus ex machina}}({{m|de|Deus ex Machina}} 的另一種字母大小寫形式),使用:
{{temp|de-ndecl|m,-,!dei ex machina}}
會產生
{{de-ndecl|m,-,!dei ex machina|pagename=deus ex machina}}
===角括號記號===
有一種可選的記號,明確指定詞條及其變格。例如對於 {{m|de|Haus}},可以使用以下寫法:
{{temp|de-ndecl|Haus<n,es,^er>}}
由於這裡的詞條與角括號附加的詞條相同,可以省略:
{{temp|de-ndecl|<n,es,^er>}}
兩種記號都等價於以下寫法:
{{temp|de-ndecl|n,es,^er}}
對於單詞詞條,通常不需要角括號,但在[[#多詞表達式|多詞表達式]]和[[#變體|變體]]中它們變得必要;見下文。
===預設屬格和複數演算法===
以下演算法產生預設屬格單數:
# 如果名詞是陰性,使用空詞尾。
# 否則,如果名詞是弱變化,在 ''-e'' 後使用 ''-n'',在輔音 + ''-in'' 後使用 ''-nen'',否則使用 ''-en''。
# 否則,如果名詞以 ''-nis'' 結尾(中性如 {{m|de|Erlebnis}}、{{m|de|Geheimnis}} 等,或偶爾陽性如 {{m|de|Firnis}}),使用 ''-ses''。
# 否則,如果名詞以輔音 + ''-us'' 結尾,使用空詞尾,如 {{m|de|Euphemismus}}、{{m|de|Exitus}}、{{m|de|Exodus}} 等。
# 否則,如果名詞以 ''s/ß/x/z'' 結尾,使用 ''-es''。
# 否則,使用 ''-s''。
以下演算法產生預設複數:
# 如果名詞以 ''-nis'' 結尾(中性如 {{m|de|Erlebnis}} 或 {{m|de|Geheimnis}},陰性如 {{m|de|Kenntnis}} 或 {{m|de|Wildnis}},或偶爾陽性如 {{m|de|Firnis}}),使用 ''-se''。
# 否則,如果名詞是陰性或弱變化,在 ''-e'' 後使用 ''-n'',在輔音 + ''-in'' 後使用 ''-nen'',否則使用 ''-en''。
# 否則,如果名詞以 ''-e'' 結尾,使用 ''-n''。
# 否則,如果名詞是中性且以 ''-lein'' 結尾,使用空詞尾。
# 否則,如果名詞是中性且以 ''-um'' 結尾(例如 {{m|de|Museum}} 或 {{m|de|Vakuum}}),將 ''-um'' 替換為 ''-en''。
# 否則,如果名詞以 ''-mus'' 結尾(例如 {{m|de|Algorithmus}} 或 {{m|de|Aphorismus}}),將 ''-mus'' 替換為 ''-men''。
# 否則,如果名詞以輔音 + ''-us'' 結尾(例如 {{m|de|Abakus}}、{{m|de|Zirkus}}、{{m|de|Autobus}}),使用 ''-se''。
# 否則,如果名詞以 ''-el''、''-em''、''-en'' 或 ''-er'' 結尾(例如 {{m|de|Adler}}、{{m|de|Meier}}、{{m|de|Riedel}}),使用空詞尾。(但這不適用於輔音 + ''-eer/-ier''、''-eel/-iel'' 等結尾的名詞,如 {{m|de|Heer}}、{{m|de|Bier}}、{{m|de|Ziel}},它們預設為下面的 ''-e''。)
# 否則,使用 ''-e''。
===多性別名詞===
如果名詞有多個可能的性別,用冒號分隔性別,例如 {{m|de|Abszess||膿腫,潰瘍}}:
{{temp|de-ndecl|m:n}}
會產生
{{de-ndecl|m:n|pagename=Abszess}}
您也可以在給定性別後的方括號中放置腳註/限定語。例如,{{m|de|Abszess}} 主要在奧地利是中性;要註明這一點,使用以下寫法:
{{temp|de-ndecl|m:n[主要用於奧地利]}}
性別限定語不會出現在變格表中,但會出現在詞頭中,這樣指定:
{{temp|de-noun|m:n[主要用於奧地利]}}
會產生
{{de-noun|m:n[主要用於奧地利]|pagename=Abszess}}
===唯複名詞===
要指定唯複名詞,使用 <code>p</code> 代替性別,例如對於 {{m|de|Achtzigerjahre||八十年代}}:
{{temp|de-ndecl|p}}
會產生
{{de-ndecl|p|pagename=Achtzigerjahre}}
唯複名詞不能指定屬格或複數形式,否則會導致錯誤。
===腳註===
腳註可以通過在給定形式後的方括號中放置文字來表示。例如,{{m|de|Geschlecht||性別,類型}} 有現代複數 ''Geschlechter'' 以及過時複數 ''Geschlechte''。要表示這一點,使用以下寫法:
{{temp|de-ndecl|n,s:es,er:e[棄用]}}
會產生
{{de-ndecl|n,s:es,er:e[棄用]|pagename=Geschlecht}}
這樣的腳註在詞頭中顯示為限定語:
{{de-noun|n,s:es,er:e[棄用]|pagename=Geschlecht}}
您也可以為個別性別、覆寫或整個變格加腳註。例如,{{m|de|Hanf}} 通常是陽性但很少是中性。這樣表示:
<code><nowiki>{{de-ndecl|m:n[罕用],(e)s.sg}}</nowiki></code>
會產生
{{de-ndecl|m:n[罕用],(e)s.sg|pagename=Hanf}}
腳註在詞頭中顯示為限定語:
{{de-noun|m:n[罕用],(e)s.sg|pagename=Hanf}}
要為整個變格加腳註,將腳註放在句號後的方括號中。例子見下面的[[#變體|變體]]。
===覆寫===
您可以使用形式 <code>SLOT:VALUE:VALUE:...</code> 覆寫特定的格/數組合,其中 <code>SLOT</code> 指定要覆寫的特定位置,例如 <code>acc</code> 表示賓格單數,<code>datpl</code> 表示與格複數。例如,對於名詞 {{m|de|Häusle||房子 {{qual|指小詞}}}},其複數是 ''Häusle'',與格複數可以是 ''Häuslen'' 或 ''Häusle'',使用以下寫法:
{{temp|de-ndecl|n,-:s,-.datpl:n:-}}
會產生
{{de-ndecl|n,-:s,-.datpl:n:-|pagename=Häusle}}
覆寫的另一個用途是為陰性名詞指定不同的屬格。一個例子是 {{m|de|Quinquagesima||[[五旬節日]]}},它有另一個拉丁語屬格單數 ''Quinquagesimä'',主要在沒有冠詞時使用。這樣指定:
{{temp|de-ndecl|f.gen:-:Quinquagesimä[特別於無冠詞時使用].sg}}
會產生
{{de-ndecl|f.gen:-:Quinquagesimä[特別於無冠詞時使用].sg|pagename=Quinquagesima}}
這裡,我們在方括號中指定腳註,如上面[[#腳註|腳註]]部分所述。關於在覆寫中使用腳註的另一個例子,見下面 {{m|de|Spätzle}} 的變格[[#缺陷形式|下文]]。
已識別的位置名稱如下:
{|class="wikitable"
! 格 !! 單數位置 !! 複數位置
|-
| 主格 || <code>nom</code> || <code>nompl</code>
|-
| 屬格 || <code>gen</code> || <code>genpl</code>
|-
| 賓格 || <code>acc</code> || <code>accpl</code>
|-
| 與格 || <code>dat</code> || <code>datpl</code>
|-
| 奪格 || <code>abl</code> || —
|-
| 呼格 || <code>voc</code> || —
|}
奪格和呼格僅用於某些具有特殊拉丁語變格的詞條,例如 {{m|de|Jesus Christus||耶穌基督}}。
===缺陷形式===
如果某個形式完全缺失,使用 <code>--</code> 來表示。一個例子是 {{m|de|Spätzle||德國麵疙瘩}},它缺少屬格單數。這樣表示:
{{temp|de-ndecl|n,--,-.datpl:-:n[不常見]}}
會產生
{{de-ndecl|n,--,-.datpl:-:n[不常見]|pagename=Spätzle}}
在詞頭中使用時,顯示如下:
{{de-noun|n,--,-.datpl:-:n[不常見]|pagename=Spätzle}}
但是,對於沒有複數形式的名詞,應該使用 <code>.sg</code> 而不是 <code>--</code>。
===嵌入的逗號和句號===
如果您需要包含含有嵌入逗號或句號的形式,在逗號或句號前加反斜槓。例如,對於 {{m|de|Vf.}}({{m|de|Verfasser||作者}} 的縮寫),複數為 ''Vf.'' 或 ''Vff.'',使用以下寫法:
{{temp|de-ndecl|m,-,-:Vff\.}}
會產生
{{de-ndecl|m,-,-:Vff\.|pagename=Vf.}}
===多詞表達式===
要變格多詞表達式,在 {{para|1}} 中包含表達式的文字,並在每個詞後放置被角括號圍繞的該詞的規格。例如,對於 {{m|de|Gesellschaft mit beschränkter Haftung||有限責任公司}}:
<code><nowiki>{{de-ndecl|[[Gesellschaft]]<f> [[mit]] [[beschränkt|beschränkter]] [[Haftung]]}}</nowiki></code>
會產生
{{de-ndecl|[[Gesellschaft]]<f> [[mit]] [[beschränkt|beschränkter]] [[Haftung]]}}
另一個例子,對於 {{m|de|Jäger und Sammler||狩獵採集者}}:
<code><nowiki>{{de-ndecl|[[Jäger]]<m> [[und]] [[Sammler]]<m>}}</nowiki></code>
會產生
{{de-ndecl|[[Jäger]]<m> [[und]] [[Sammler]]<m>}}
不必用方括號圍繞每個詞,但在 {{temp|de-noun}} 中使用時,它確保詞在詞頭中被單獨連結。
任意規格可以包含在角括號內,例如對於 {{m|de|Mittelwort der Gegenwart||現在分詞}}:
<code><nowiki>{{de-ndecl|[[Mittelwort]]<n,(e)s,^er> [[der]] [[Gegenwart]]}}</nowiki></code>
會產生
{{de-ndecl|[[Mittelwort]]<n,(e)s,^er> [[der]] [[Gegenwart]]}}
對於僅單數名詞,在角括號內包含指示符 <code>.sg</code>,如對於 {{m|de|Kreuz des Südens||[[南十字星]]}}:
<code><nowiki>{{de-ndecl|[[Kreuz]]<n.sg> [[des]] [[Süden]]s}}</nowiki></code>
會產生
{{de-ndecl|[[Kreuz]]<n.sg> [[des]] [[Süden]]s}}
可以包含任意數量的變格成分,並會被正確處理。一個有三個的例子是 {{m|de|Heiliges Römisches Reich||[[神聖羅馬帝國]]}}:
<code><nowiki>{{de-ndecl|[[heilig|Heiliges]]<+> [[römisch|Römisches]]<+> [[Reich]]<n,s:es.sg>}}</nowiki></code>
會產生
{{de-ndecl|[[heilig|Heiliges]]<+> [[römisch|Römisches]]<+> [[Reich]]<n,s:es.sg>}}
===形容詞性名詞和形容詞-名詞組合===
有些名詞像形容詞一樣變格。一個例子是 {{m|de|Erwachsener||成人}}(定指主格 ''der Erwachsene'',不定指主格 ''ein Erwachsener'',定指屬格 ''des Erwachsenen'',裸複數 ''Erwachsene'',定指複數 ''die Erwachsenen'' 等)。要表示這一點,用 <code>+</code> 代替變格:
{{temp|de-ndecl|+}}
會產生
{{de-ndecl|+|pagename=Erwachsener}}
詞頭顯示如下:
{{de-noun|+|pagename=Erwachsener}}
注意變格表如何包含強變化(即裸形)、弱變化(即定指)和混合變化(即不定指)形式,詞頭包含主格單數、屬格單數和主格複數的裸形和定指版本。對於這樣的陽性和中性名詞,裸形和定指屬格有相同的詞尾,所以詞頭變位將兩者結合,但對於陰性名詞,它們會被分開。一個例子是 {{m|de|Erwachsene||成年女性}}:
{{temp|de-ndecl|+}}
會產生
{{de-ndecl|+|pagename=Erwachsene}}
詞頭顯示如下:
{{de-noun|+|pagename=Erwachsene}}
您同樣可以使用 <code>+</code> 來對形容詞-名詞組合變格,例如 {{m|de|schwarzes Loch||黑洞}}:
<code><nowiki>{{temp|de-ndecl|[[schwarz]]es<+> [[Loch]]<n,(e)s,^er>}}</nowiki></code>
會產生
{{de-ndecl|[[schwarz]]es<+> [[Loch]]<n,(e)s,^er>}}
詞頭顯示如下:
{{de-noun|[[schwarz]]es<+> [[Loch]]<n,(e)s,^er>}}
這裡,必須使用角括號的替代記號來表示各個詞的變格。必須包含連結以便在詞頭中有到各個詞的連結。
注意性別不需要與 <code>+</code> 一起指定,因為它可以從詞尾自動推斷出來。與名詞一起使用時,形容詞的複數狀態也不需要給出,如 {{m|de|Kanarische Inseln}}:
<code><nowiki>{{temp|de-ndecl|[[kanarisch|Kanarische]]<+> [[Insel]]n<p>}}</nowiki></code>
會產生
{{de-ndecl|[[kanarisch|Kanarische]]<+> [[Insel]]n<p>}}
詞頭顯示如下:
{{de-noun|[[kanarisch|Kanarische]]<+> [[Insel]]n<p>}}
但是,這對僅複數的形容詞性名詞不起作用,因為 ''-e'' 詞尾會被推斷為陰性單數。如果由於某種原因您需要指定這樣的名詞,使用 <code>p+</code> 或 <code>+p</code>,例如對於 {{m|de|Miese}}:
{{temp|de-ndecl|p+}}
會產生
{{de-ndecl|p+|pagename=Miese}}
詞頭顯示如下:
{{de-noun|p+|pagename=Miese}}
===變體===
有時給定表達式有多種可能的變格,無法使用指定多個性別或替代屬格或複數詞尾的現有可能性來輕鬆指定。例如,一些名詞可以強變化或弱變化,在一些多詞表達式中,一個詞可能變格也可能不變格。一個例子是 {{m|de|Hirsch}},通常強變化但有時弱變化(特別是在德國南部和奧地利)。要表示這一點,使用這樣的語法:<code>((ALTERNANT1,ALTERNANT2,...))</code>,其中每個變體必須包含角括號:
{{temp|de-ndecl|((<m,(e)s>,<m.weak.[也用於南德和奧地利]>))}}
會產生
{{de-ndecl|((<m,(e)s>,<m.weak.[也用於南德和奧地利]>))|pagename=Hirsch}}
這裡第一個變體是強變化,第二個是弱變化並包含整個變格腳註(見上面的[[#腳註|腳註]])。詞頭顯示如下:
{{de-noun|((<m,(e)s>,<m.weak.[也用於南德和奧地利]>))|pagename=Hirsch}}
另一個例子是 {{m|de|lüttje Lage||加了一杯[[科恩酒]]的啤酒}},其中 ''lüttje''(低地德語詞)可能變位也可能不變位為正常形容詞:
<code><nowiki>{{de-ndecl|((lüttje<+> [[Lage]]<f>,lüttje [[Lage]]<f>))}}</nowiki></code>
會產生
{{de-ndecl|((lüttje<+> [[Lage]]<f>,lüttje [[Lage]]<f>))}}
詞頭顯示如下:
{{de-noun|((lüttje<+> [[Lage]]<f>,lüttje [[Lage]]<f>))}}
注意變格和詞頭都使用形容詞形式,儘管兩個變體中只有一個包含形容詞。這也是一個我們故意避免連結其中一個成分的例子,因為 ''lüttje'' 本身不是德語詞。
==其他參數==
; {{para|pagename}}
: 指定要當作頁面名稱的詞,取代實際的頁面名稱。用於說明頁、測試頁,或要在別的頁面上示範時。
; {{para|json|1}}
: 不顯示表格,改以 JSON 格式輸出所有屈折形式及相關資訊,供機器人使用。
<includeonly>
[[Category:德語名詞變格表模板]]
</includeonly>
f1kydbudicfqh61aw670btci52j6ysf
Template:De-noun/doc
10
3178014
9938450
9453492
2026-10-04T18:20:07Z
TongcyDai
53191
同步 enwikt:加上僅單數名詞的例子(Schnee)
9938450
wikitext
text/x-wiki
{{documentation subpage}}
這個模板用於所有德語名詞。這個模板會自動將頁面加入到[[:Category:德語名詞]]。由 [[Module:de-headword]] 實現。
{{isAccelerated}}
==用法==
在「詞性」標題(例如 {{m|de|Baum}})下直接使用:
<pre>
==德語==
===名詞===
{{de-noun|m,(e)s,^e|dim=^chen}}
# [[樹]]
</pre>
==參數==
這個模板可以接受各種參數,包括編號參數和命名參數。關於模板和參數的一般幫助,請參見 [[m:Help:Template]]。
; {{para|1}}
: 指定性別、屬格和複數形式。格式與 {{temp|de-ndecl}} 相同;見該模板和下面的例子。
; {{para|dim}}
: 指定名詞的指小形式。格式與 {{para|1}} 中的屬格單數和複數規格相同,但在加上任何詞尾之前會從詞條中移除最後的 ''-e''。如果留空,則不顯示指小詞。
; {{para|f}}, {{para|m}}
: 指定另一性別的等價名詞,用於根據所指對象的自然性別而不同的詞。這些特別用於表示職業的名詞。格式與 {{para|1}} 中的屬格單數和複數規格相同,但在加上任何詞尾之前會從詞條中移除最後的 ''-e''。使用 <code>+</code> 來請求預設值(這對於形容詞變格的名詞如 {{m|de|Erziehungsberechtigter}} 特別有效,會自動生成正確的陰性 {{m|de|Erziehungsberechtigte}})。
; {{para|n}}
: 指定中性等價詞,用於有中性等價詞的形容詞變格名詞,指代性別不明的兒童(比較 {{m|de|Frühgeborenes||早產兒}})。
; {{para|sg}}
: 指定單數等價詞,用於有偶爾單數形式的唯複名詞(plurale tantum)。
; {{para|nolinkhead|1}}
: 在多詞表達式中不自動連結各個詞。
; {{para|splithyph|1}}
: 當有空格時自動連結連字符詞的各個部分(如果沒有空格會自動發生)。
; {{para|head}}, {{para|head2}}, ...
: 明確指定詞頭。只有在多詞表達式中預設自動連結不正確時才需要,即使如此也很少需要;優先使用 {{para|1}} 中帶明確連結的角括號語法。在某些多詞表達式中偶爾有用,其中最好將表達式作為變格的一個單位來處理;例子見 {{temp|de-proper noun}}。
==例子==
{|class="wikitable"
! 名詞 !! 代碼 !! 結果
|-
| {{m|de|Buch}} || {{temp|de-noun|n,(e)s,^er|dim=^lein}} || {{de-noun|n,(e)s,^er|dim=^lein|pagename=Buch}}
|-
| {{m|de|Fuhrmann}} || {{temp|de-noun|m,(e)s,^er:Fuhrleute}} || {{de-noun|m,(e)s,^er:Fuhrleute|pagename=Fuhrmann}}
|-
| {{m|de|Aar}} || {{temp|de-noun|m,(e)s:en,e:en}} || {{de-noun|m,(e)s:en,e:en|pagename=Aar}}
|-
| {{m|de|Park}} || {{temp|de-noun|m,(e)s,s:e:^e}} || {{de-noun|m,(e)s,s:e:^e|pagename=Park}}
|-
| {{m|de|Filter}} || {{temp|de-noun|m:n}} || {{de-noun|m:n|pagename=Filter}}
|-
| {{m|de|Lehrer}} || {{temp|de-noun|m|f=in}} || {{de-noun|m|f=in|pagename=Lehrer}}
|-
| {{m|de|Lehrerin}} || {{temp|de-noun|f|m=Lehrer}} || {{de-noun|f|m=Lehrer|pagename=Lehrerin}}
|-
| {{m|de|Student}} || {{temp|de-noun|m.weak|f=in}} || {{de-noun|m.weak|f=in|pagename=Student}}
|-
| {{m|de|Name}} || {{temp|de-noun|m,ns.weak}} || {{de-noun|m,ns.weak|pagename=Name}}
|-
| {{m|de|Schnee}} || {{temp|de-noun|m.sg}} || {{de-noun|m.sg|pagename=Schnee}}
|-
| {{m|de|Haus}} || {{temp|de-noun|n,es,^er
|dim=^chen,^lein,^le,^el
,^'l,^l,^li[rare, dialectal]}}
| {{de-noun|n,es,^er|dim=^chen,^lein,^le,^el,^'l,^l,^li[rare, dialectal]|pagename=Haus}}
|-
| {{m|de|Agent Provocateur}} || {{temp|de-noun|m,-,Agents Provocateurs:-|nolinkhead=1}} || {{de-noun|m,-,Agents Provocateurs:-|nolinkhead=1|pagename=Agent Provocateur}}
|-
| {{m|de|Abszess}} || {{temp|de-noun|m:n[主要用於奧地利]}} || {{de-noun|m:n[主要用於奧地利]|pagename=Abszess}}
|-
| {{m|de|Geizhals}} || {{temp|de-noun|m,,^e|f=^in[rare]}} || {{de-noun|m,,^e|f=^in[rare]|pagename=Geizhals}}
|-
| {{m|de|schwarzes Loch}} || <code><nowiki>{{de-noun|[[schwarz]]es<+> [[Loch]]<n,es:s,^er>}}</nowiki></code> || {{de-noun|[[schwarz]]es<+> [[Loch]]<n,es:s,^er>}}
|-
| {{m|de|Erwachsener}} || {{temp|de-noun|+|f=+}} || {{de-noun|+|f=+|pagename=Erwachsener}}
|-
| {{m|de|Wessi}} || {{temp|de-noun|m,s:-,s}} <code><nowiki>''or''<br /></nowiki></code><br/>{{temp|de-noun|f[referring to a female],s}} || {{de-noun|m,s:-,s|pagename=Wessi}} ''or''<br /> {{de-noun|f[referring to a female],s|pagename=Wessi}}
|-
|}
<includeonly>{{hwcat}}</includeonly>
d2tlxrr1anl1fh3xvmbetgop2bd1w31
Module:Inflection-table
828
3515052
9938423
9863173
2026-10-04T14:48:07Z
TongcyDai
53191
同步 enwikt(rev 92527507):無標題的 inflection box;預設標題本地化
9938423
Scribunto
text/plain
local export = {}
local M = require("Module:module loader").init({
require = {
parameters = "Module:parameters",
},
loadData = {
headword_data = "Module:headword/data",
},
})
local concat = table.concat
local insert = table.insert
local WRAPPER_CLASS = "inflection-table-wrapper"
local TABLE_CLASS = "inflection-table"
local TITLE_CLASS = "inflection-table-title"
local NO_TITLE_CLASS = "inflection-table-no-title"
local NOTES_CLASS = "inflection-table-notes"
local COLLAPSIBLE_CLASSES = "inflection-table-collapsible inflection-table-collapsed no-vc"
local VS_SWITCHER_CLASS = "vsSwitcher"
local VS_TOGGLE_CLASS = "vsToggleElement"
local BOX_CLASS = "inflection-box"
local BOX_CONTENT_CLASS = "inflection-box-content"
local BOX_NARROW_CLASS = "inflection-table-narrow"
local TR_ALONGSIDE_CLASS = "tr-alongside"
local FLOW_VERTICAL_CLASS = "flow-vertical"
local NO_TITLE_MARKER = "-"
local DEFAULT_PALETTE = "grey"
local DEFAULT_TOGGLE_CATEGORY = "屈折" -- l10n
local DEFAULT_TITLE_FORMAT = "''%s'' 的屈折" -- l10n
local VERTICAL_FLOW = "vertical"
local BASE_STYLE = "width: fit-content"
-- Palettes recognized by [[MediaWiki:Gadget-Palette.css]].
local PALETTES = {
red = true,
scarlet = true,
orange = true,
amber = true,
yellow = true,
lime = true,
green = true,
teal = true,
cyan = true,
blue = true,
indigo = true,
purple = true,
magenta = true,
rose = true,
grey = true,
brown = true,
}
local top_params = {
title = true,
tall = true,
class = true,
["min-width"] = true,
palette = true,
category = true,
lang = true,
["vs-category"] = true,
vsToggleElement = true,
}
local bottom_params = {
notes = true,
}
local box_top_params = {
title = true,
flow = true,
category = true,
}
local function nonempty(value)
return value ~= nil and value ~= "" and value or nil
end
-- Builds the opening <div> and the wikitable header. The markup is deliberately
-- unbalanced -- {{inflection-table-bottom}} closes both -- so this is assembled
-- as text rather than through mw.html, which cannot emit an unclosed node.
function export.make_top(args)
local palette = args.palette or DEFAULT_PALETTE
if not PALETTES[palette] then
error(("Unrecognized palette '%s'; see [[MediaWiki:Gadget-Palette.css]] for the recognized palettes.")
:format(palette))
end
local no_title = args.title == NO_TITLE_MARKER
local wrapper_classes = { WRAPPER_CLASS }
if no_title then
insert(wrapper_classes, NO_TITLE_CLASS)
end
if nonempty(args.tall) then
insert(wrapper_classes, COLLAPSIBLE_CLASSES)
end
if nonempty(args.class) then
insert(wrapper_classes, args.class)
end
local style = BASE_STYLE
local min_width = nonempty(args["min-width"])
if min_width then
style = ("%s; min-width: %s"):format(style, min_width)
end
local vs_category = nonempty(args["vs-category"])
local table_classes = { TABLE_CLASS }
if nonempty(args.lang) then
insert(table_classes, ("%s-%s"):format(TABLE_CLASS, args.lang))
end
if vs_category then
insert(table_classes, VS_SWITCHER_CLASS)
end
local lines = {
('<div class="%s" style="%s" data-wikt-palette-p="%s" data-toggle-category="%s">'):format(
concat(wrapper_classes, " "),
style,
palette,
args.category or DEFAULT_TOGGLE_CATEGORY
),
('{| class="%s"%s'):format(
concat(table_classes, " "),
vs_category and (' data-toggle-category="%s"'):format(vs_category) or ""
),
}
if not no_title then
insert(lines, ('|+ class="%s%s" | %s'):format(
TITLE_CLASS,
nonempty(args.vsToggleElement) and " " .. VS_TOGGLE_CLASS or "",
args.title or DEFAULT_TITLE_FORMAT:format(M.headword_data.pagename)
))
insert(lines, "|-")
end
return concat(lines, "\n") .. "\n"
end
-- Builds the opening markup for {{inflection-box-top}}, a wrapper holding
-- several complete inflection tables side by side. Boxes always place
-- transliterations alongside, so that class is fixed. No palette is emitted:
-- each table inside the box carries its own.
-- {{inflection-table-bottom}} closes this too.
function export.make_box_top(args)
local no_title = args.title == NO_TITLE_MARKER
local classes = {
WRAPPER_CLASS,
BOX_CLASS,
BOX_NARROW_CLASS,
}
if no_title then
insert(classes, NO_TITLE_CLASS) -- zeroes the wrapper's border and padding
else
insert(classes, COLLAPSIBLE_CLASSES)
end
insert(classes, TR_ALONGSIDE_CLASS)
if args.flow == VERTICAL_FLOW then
insert(classes, FLOW_VERTICAL_CLASS)
end
local style, table_style = BASE_STYLE, ""
if no_title then
style = style .. "; background: none"
table_style = ' style="background: none"'
end
local lines = {
('<div class="%s" style="%s" data-toggle-category="%s">'):format(
concat(classes, " "),
style,
args.category or DEFAULT_TOGGLE_CATEGORY
),
('{| class="%s"%s'):format(BOX_CONTENT_CLASS, table_style),
}
if not no_title then
insert(lines, ('|+ class="%s" | %s'):format(
TITLE_CLASS,
args.title or DEFAULT_TITLE_FORMAT:format(M.headword_data.pagename)
))
end
insert(lines, "|-")
insert(lines, "|")
return concat(lines, "\n") .. "\n"
end
-- Closes the wikitable and the wrapper opened by make_top, with the notes block
-- in between.
function export.make_bottom(args)
local notes = args and nonempty(args.notes)
if not notes then
-- The blank line is what the template emitted; kept so the parser sees
-- byte-identical wikitext.
return "|}\n\n</div>"
end
return ('|}\n<div class="%s">\n%s\n</div>\n</div>'):format(NOTES_CLASS, notes)
end
local function split_args(args)
local top_args, bottom_args = {}, {}
for k, v in pairs(args or {}) do
if bottom_params[k] then
bottom_args[k] = v
else
top_args[k] = v
end
end
return top_args, bottom_args
end
-- Builds a complete table around `contents`.
function export.make_table(args, contents)
local top_args, bottom_args = split_args(args)
return export.make_top(top_args) .. contents .. export.make_bottom(bottom_args)
end
-- As export.make_table, for boxes.
function export.make_box(args, contents)
local top_args, bottom_args = split_args(args)
return export.make_box_top(top_args) .. contents .. export.make_bottom(bottom_args)
end
-- Implementation of {{inflection-table-top}}. Other modules should call
-- make_top directly instead.
function export.top(frame)
local args = M.parameters.process(frame:getParent().args, top_params, nil, "inflection-table", "top")
return export.make_top(args)
end
-- Implementation of {{inflection-table-bottom}}. See the note on export.top.
function export.bottom(frame)
local args = M.parameters.process(frame:getParent().args, bottom_params, nil, "inflection-table", "bottom")
return export.make_bottom(args)
end
-- Implementation of {{inflection-box-top}}. See the note on export.top.
function export.box_top(frame)
local args = M.parameters.process(frame:getParent().args, box_top_params, nil, "inflection-table", "box_top")
return export.make_box_top(args)
end
-- Boxes close exactly like plain tables, so these are aliases rather than
-- separate implementations.
export.make_box_bottom = export.make_bottom
export.box_bottom = export.bottom
return export
s0qctwsftddsvavhe0z4nxd87v26eaj
belligerati
0
3542993
9938416
9938141
2026-10-04T12:29:51Z
Sayonzei
40728
/* 英語 */
9938416
wikitext
text/x-wiki
==英語==
===詞源===
{{blend|en|belligerent|literati}},同時亦是 {{m|la|belligerātus}} 的複數。
===名詞===
{{en-noun|p}}
# [[鼓吹]][[戰爭]]的[[文人]]
#* {{quote-book|en|year=2005|author=Tariq Ali|title=Street Fighting Years: An Autobiography Of The Sixties|page=19|passage=I am not, in this instance, referring to the '''belligerati''' - Salman Rushdie, Martin Amis and chums - ever-present in the liberal press on both sides of the Atlantic.}}
#* {{quote-book|en|year=2011|author=Andrew Charlton|title=Man-Made World|page=88|passage=They are the '''belligerati''' who are given opinion columns and radio talkback programs; who are accorded the status of minor celebrities; and there can at times seem no end to the uniquely Australian cross of their public bullying}}
#* {{quote-text|en|year=2011|author=Richard Seymour|title=American Insurgents: A Brief History of American Anti-Imperialism|page=xviii
|passage=Since neoconservatives and the liberal '''belligerati''' have sought to appropriate these ideological resources on behalf of imperialism, aspects of this question will be examined in chapter 1.}}
==拉丁語==
===分詞===
{{head|la|分詞變格形|head=belligerātī}}
# {{inflection of|la|belligerātus||nom//voc|m|p|;|gen|m//n|s}}
pprurkszcajdq2ikfg36o88pxw19gzf
belligerator
0
3542996
9938417
9938144
2026-10-04T12:30:11Z
Sayonzei
40728
/* 拉丁語 */
9938417
wikitext
text/x-wiki
==拉丁語==
===詞源===
{{ety|la|title=belligerātor|:af|belligerō<t:發動戰爭>|-tor|text=+|tree=1}}
===發音===
* {{la-IPA|belligerātor}}
===名詞===
{{la-noun|belligerātor<3>|g=m}}
# [[戰士]],[[鬥士]]
====變格====
{{la-ndecl|belligerātor<3>}}
===動詞===
{{head|la|動詞變位形式|head=belligerātor}}
# {{inflection of|la|belligerō||2//3|s|futr|pasv|impr}}
===參考資料===
* {{R:la:L&S}}
* {{R:la:Gaffiot}}
2luizynqi0pp3khtp4ky1xo1x6frwwz
Spielotheken
0
3543263
9938413
2026-10-04T12:22:18Z
TongcyDai
53191
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ʃpiːloˈteːkn̩/}} * {{audio|de|De-Spielotheken.ogg|a=柏林}} ===名詞=== {{head|de|名詞變格形}} # {{infl of|de|Spielothek||p}}」的新頁面
9938413
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ʃpiːloˈteːkn̩/}}
* {{audio|de|De-Spielotheken.ogg|a=柏林}}
===名詞===
{{head|de|名詞變格形}}
# {{infl of|de|Spielothek||p}}
9clnj1o5840etiqg8ke0c1313afl53h
Category:含有後綴-thek的德語詞
14
3543264
9938415
2026-10-04T12:23:07Z
TongcyBot
83009
養貓
9938415
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Reconstruction:原始西日耳曼語/oʀd
118
3543265
9938419
2026-10-04T14:16:40Z
TongcyDai
53191
[[w:WP:AES|←]]建立內容為「{{reconstructed}} ==原始西日耳曼語== ===詞源=== {{inh+|gmw-pro|gem-pro|*uzdaz}}。 ===名詞=== {{head|gmw-pro|名詞|g=m}} # [[銳利]]的[[尖端]],[[矛]][[尖]],矛 # [[地方]] ====屈折==== {{gmw-infl-noun-a|g=m}} ====派生語彙==== {{top3}} * {{desctree|ang|ord}} * {{desc|ofs|ord}} ** {{desc|frr|od}} ** {{desc|stq|Oud}} ** {{desc|fy|oerd|oarde}} * {{desc|osx|ord}} ** {{desc|gml|ort}} *** {{desc|nds-de|Oort}} *** {{…」的新頁面
9938419
wikitext
text/x-wiki
{{reconstructed}}
==原始西日耳曼語==
===詞源===
{{inh+|gmw-pro|gem-pro|*uzdaz}}。
===名詞===
{{head|gmw-pro|名詞|g=m}}
# [[銳利]]的[[尖端]],[[矛]][[尖]],矛
# [[地方]]
====屈折====
{{gmw-infl-noun-a|g=m}}
====派生語彙====
{{top3}}
* {{desctree|ang|ord}}
* {{desc|ofs|ord}}
** {{desc|frr|od}}
** {{desc|stq|Oud}}
** {{desc|fy|oerd|oarde}}
* {{desc|osx|ord}}
** {{desc|gml|ort}}
*** {{desc|nds-de|Oort}}
*** {{desc|sv|ort|bor=1}}
* {{desc|odt|ort}}
** {{desc|dum|ort|oort}}
*** {{desctree|nl|oord}}
* {{desctree|goh|ort}}
* {{desc|fro|ordé|urdee|t2=尖的|bor=1|der=1}}
** {{desc|enm|urde|urdy|bor=1}}
*** {{desc|en|urdé|urdy}}
{{bottom}}
fd9oyw1jyregf9qdt7t2immmjunf7s1
Reconstruction:原始日耳曼語/uzdaz
118
3543266
9938420
2026-10-04T14:16:43Z
TongcyDai
53191
[[w:WP:AES|←]]建立內容為「{{reconstructed}} ==原始日耳曼語== ===詞源=== 可能來自{{der|gem-pro|ine-pro|*úd|*úd-s|t=向上,離開}}(> {{m|gem-pro|*uz|t=從……出來}})+ {{m|ine-pro|*dʰeh₁-|t=放置}}。<ref name=EDPG>{{R:gem:EDPG|page=563|head=*uzda-}}</ref> 或者與詞根 {{m|ine-pro|*wes-|t=刺}} 有關(與阿爾巴尼亞語 {{m|sq|usht|t=薊}} 相關)。<ref>{{R:de:EWbD|Ort}}</ref> ===發音=== * {{IPA|gem-pro|/ˈuz.dɑz/}} ===名詞…」的新頁面
9938420
wikitext
text/x-wiki
{{reconstructed}}
==原始日耳曼語==
===詞源===
可能來自{{der|gem-pro|ine-pro|*úd|*úd-s|t=向上,離開}}(> {{m|gem-pro|*uz|t=從……出來}})+ {{m|ine-pro|*dʰeh₁-|t=放置}}。<ref name=EDPG>{{R:gem:EDPG|page=563|head=*uzda-}}</ref> 或者與詞根 {{m|ine-pro|*wes-|t=刺}} 有關(與阿爾巴尼亞語 {{m|sq|usht|t=薊}} 相關)。<ref>{{R:de:EWbD|Ort}}</ref>
===發音===
* {{IPA|gem-pro|/ˈuz.dɑz/}}
===名詞===
{{gem-noun|m}}<ref name=EDPG />
# [[銳利]]的[[尖端]]
# [[地方]]
====屈折====
{{gem-decl-noun}}
====派生詞彙====
* {{l|gem-pro|*uzdijaną}}
====派生語彙====
* {{desctree|gmw-pro|*oʀd}}
* {{desctree|non|oddr}}
===參考資料===
{{reflist}}
hppqmzkzts3ylhdreh0a5nog1jtnl6g
Theken
0
3543267
9938422
2026-10-04T14:18:20Z
TongcyDai
53191
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈteːkn̩/}} * {{audio|de|De-Theken.ogg|a=柏林}} * {{audio|de|De-Theken2.ogg|a=柏林}} ===名詞=== {{head|de|名詞變格形}} # {{plural of|de|Theke}}」的新頁面
9938422
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ˈteːkn̩/}}
* {{audio|de|De-Theken.ogg|a=柏林}}
* {{audio|de|De-Theken2.ogg|a=柏林}}
===名詞===
{{head|de|名詞變格形}}
# {{plural of|de|Theke}}
0d9br8h3vpfoj4gksrjy7yje5dww51u
infographic
0
3543268
9938429
2026-10-04T15:54:23Z
Pristome
131990
翻译自[[en:infographic]]
9938429
wikitext
text/x-wiki
==英语==
===词源===
源自{{af|en|info-|graphic}}。
===名词===
{{en-noun}}
# [[信息图形]]。
====派生词汇====
{{col|en|disinfographic
|misinfographic
}}
====相关词汇====
* {{l|en|infography}}
===形容词===
{{en-adj|-}}
# 与信息图形的[[生产]]相关的。
m0otp4bvdbn2jg36ovccz1fue9ourna
9938433
9938429
2026-10-04T16:00:09Z
Pristome
131990
9938433
wikitext
text/x-wiki
==英语==
===词源===
源自{{af|en|info-|graphic}}。
===名词===
{{en-noun}}
# [[信息图形]]([[信息]]的[[可视化]][[展示]])。
====派生词汇====
{{col|en|disinfographic
|misinfographic
}}
====相关词汇====
* {{l|en|infography}}
===形容词===
{{en-adj|-}}
# 与信息图形的[[产生]]相关的。
8l3i1u8b353z03nts411k5xhlyc0ui2
infographics
0
3543269
9938430
2026-10-04T15:56:03Z
Pristome
131990
翻译自[[en:infographics]]
9938430
wikitext
text/x-wiki
==英语==
===名词===
{{en-noun|-}}
# [[数据图形]]
===名词===
{{head|en|noun form}}
# {{plural of|en|infographic}}
aj43zidm6yrv1dvtx6stlabn2sid1rf
9938434
9938430
2026-10-04T16:02:14Z
Pristome
131990
9938434
wikitext
text/x-wiki
==英语==
===名词===
{{en-noun|-}}
# [[数据图形]]([[数据]]的[[可视化]][[展示]])
===名词===
{{head|en|noun form}}
# {{plural of|en|infographic}}
2xht6asnv1f4n1zo3bjbzzercl4xps9
infography
0
3543270
9938431
2026-10-04T15:57:48Z
Pristome
131990
翻译自[[en:infography]]
9938431
wikitext
text/x-wiki
==英语==
===词源===
源自{{confix|en|info|graphy}}。
===名词===
{{en-noun|-}}
# [[信息图形]]的[[生产]]。
qomyeh7pulw5mtpiud7kwcs0gizk4c9
9938432
9938431
2026-10-04T15:58:31Z
Pristome
131990
9938432
wikitext
text/x-wiki
==英语==
===词源===
源自{{confix|en|info|graphy}}。
===名词===
{{en-noun|-}}
# [[信息图形]]的[[产生]]。
t69uhvtax2t46d2kyqdvw3aa7fopr8s
disinfographic
0
3543271
9938435
2026-10-04T16:09:07Z
Pristome
131990
[[w:WP:AES|←]]建立內容為「==英语== ===词源=== {{blend|en|disinformation|infographic}},等同于{{affix|en|dis-|infographic}}。 ===名词=== {{en-noun}} # [[错误]]的[[信息图形]] ====参见==== * {{l|en|misinfographic}}」的新頁面
9938435
wikitext
text/x-wiki
==英语==
===词源===
{{blend|en|disinformation|infographic}},等同于{{affix|en|dis-|infographic}}。
===名词===
{{en-noun}}
# [[错误]]的[[信息图形]]
====参见====
* {{l|en|misinfographic}}
i155oj82kwgr52cwzla0g94c83c1676
9938440
9938435
2026-10-04T16:17:01Z
Pristome
131990
9938440
wikitext
text/x-wiki
==英语==
===词源===
{{blend|en|disinformation|infographic}},等同于{{affix|en|dis-|infographic}}。
===名词===
{{en-noun}}
# [[错误]]的[[信息图形]]。
====参见====
* {{l|en|misinfographic}}
1d4k0hf3wlrmsknc3p0zwqv6qbabm2h
disinfographics
0
3543272
9938437
2026-10-04T16:09:50Z
Pristome
131990
[[w:WP:AES|←]]建立內容為「==英语== ===名词=== {{head|en|noun form}} # {{plural of|en|disinfographic}}」的新頁面
9938437
wikitext
text/x-wiki
==英语==
===名词===
{{head|en|noun form}}
# {{plural of|en|disinfographic}}
dlnpfwch0sq3mwa2p9crp0dr3i9e0ll
misinfographic
0
3543273
9938438
2026-10-04T16:12:57Z
Pristome
131990
[[w:WP:AES|←]]建立內容為「==英语== ===词源=== {{blend|en|misinformation|infographic}},等同于{{affix|en|mis-|infographic}}。 ===名词=== {{en-noun}} # [[易误解]]的[[信息图形]]。 ====参见==== * {{l|en|disinfographic}}」的新頁面
9938438
wikitext
text/x-wiki
==英语==
===词源===
{{blend|en|misinformation|infographic}},等同于{{affix|en|mis-|infographic}}。
===名词===
{{en-noun}}
# [[易误解]]的[[信息图形]]。
====参见====
* {{l|en|disinfographic}}
adzxikse4x4ht1sppscyoo8m7qebyzb
misinfographics
0
3543274
9938439
2026-10-04T16:13:37Z
Pristome
131990
[[w:WP:AES|←]]建立內容為「==英语== ===名词=== {{head|en|noun form}} # {{plural of|en|misinfographic}}」的新頁面
9938439
wikitext
text/x-wiki
==英语==
===名词===
{{head|en|noun form}}
# {{plural of|en|misinfographic}}
ef75okaql713e7qw7vftin5cep3u57b
forex
0
3543275
9938443
2026-10-04T17:22:50Z
Hzy980512
19278
[[w:WP:AES|←]]建立內容為「==英语== ===词源=== [[File:Forex Aalborg ubt.jpeg|thumb|{{lang|en|A branch of {{w|lang=en|Forex Bank}} in [[Aalborg]], [[Denmark]]. It specializes in forex (foreign exchange) services.}}<br />丹麦奥尔堡的一家{{w|en:Forex Bank|FOREX银行}}支行,这家银行专门提供外汇业务。]] {{blend|en|foreign|alt1=for(eign)|exchange|alt2=ex(change)}}. ===发音=== * {{IPA|en|/ˈfɔɹˌɛks/|a=RP,GA}} * {{audio|en|en-au-forex.ogg|…」的新頁面
9938443
wikitext
text/x-wiki
==英语==
===词源===
[[File:Forex Aalborg ubt.jpeg|thumb|{{lang|en|A branch of {{w|lang=en|Forex Bank}} in [[Aalborg]], [[Denmark]]. It specializes in forex (foreign exchange) services.}}<br />丹麦奥尔堡的一家{{w|en:Forex Bank|FOREX银行}}支行,这家银行专门提供外汇业务。]]
{{blend|en|foreign|alt1=for(eign)|exchange|alt2=ex(change)}}.
===发音===
* {{IPA|en|/ˈfɔɹˌɛks/|a=RP,GA}}
* {{audio|en|en-au-forex.ogg|a=AU}}
* {{hyphenation|en|for|ex}}
===名词===
{{en-noun|~}}
# {{abbr of|en|foreign exchange||外币兑换}}:[[外汇]]
#* {{quote-journal|en|magazine=Bankers Monthly|location=Northbrook, Ill.|publisher=Hanover Publishers|year=1974|page=199|column=1|oclc=421859190|passage=If the results of talks with a number of American bankers in Europe reporting on the new scale (post Herstatt) of their '''forex''' dealings, plus what they say of their European colleagues and what "reliable sources" in London project, go into a pocket electronic calculator the display lights up with figures which indicate that '''forex''' staffs in European banks now have at least three quarters of every day free for whittling or reading the classified ads.}}
#* {{quote-book|en|title=Uganda: Industrial Revitalization and Reorientation|location=[Vienna]|publisher=w:United Nations Industrial Development Organization|year=1992|page=10|oclc=782139631|passage=The number of '''forexes''' has increased steadily and 41 had been licensed by December, 1990, of which 33 were active.}}
#* {{quote-book|en|author=Abe Cofnas|chapter=Trading Styles and Strategies|title=The Forex Trading Course: A Self-study Guide to Becoming a Successful Currency Trader|edition=2nd|location=Hoboken, N.J.|publisher=w:en:John Wiley & Sons|year=2015|section=part II (Timing the Trade with Technical Analysis)|page=157|pageurl=https://books.google.com/books?id=FR_YCQAAQBAJ&pg=PA157|isbn=978-1-118-99865-6|passage=The set-and-forget trader is playing fundamental direction and is seeking very large moves of 150 to 300 pips. This trader doesn't want to sit and watch the screen but play the longer moves and forces behind '''forex'''.}}
===延伸阅读===
* {{pedia|lang=en|foreign exchange market}}
===异序词===
* {{anagrams|en|a=eforx|foxer}}
{{C|en|金融}}
==西班牙语==
===名词===
{{es-noun|m|-}}
# [[外汇]]
kjtsnii4is8qfnpdy1emoxsrid2gw4q
9938480
9938443
2026-10-05T09:04:29Z
Sayonzei
40728
/* 名词 */
9938480
wikitext
text/x-wiki
==英语==
===词源===
[[File:Forex Aalborg ubt.jpeg|thumb|{{lang|en|A branch of {{w|lang=en|Forex Bank}} in [[Aalborg]], [[Denmark]]. It specializes in forex (foreign exchange) services.}}<br />丹麦奥尔堡的一家{{w|en:Forex Bank|FOREX银行}}支行,这家银行专门提供外汇业务。]]
{{blend|en|foreign|alt1=for(eign)|exchange|alt2=ex(change)}}.
===发音===
* {{IPA|en|/ˈfɔɹˌɛks/|a=RP,GA}}
* {{audio|en|en-au-forex.ogg|a=AU}}
* {{hyphenation|en|for|ex}}
===名词===
{{en-noun|~}}
# {{abbr of|en|foreign exchange||外币兑换}}:[[外汇]]
#* {{quote-journal|en|magazine=Bankers Monthly|location=Northbrook, Ill.|publisher=Hanover Publishers|year=1974|page=199|column=1|oclc=421859190|passage=If the results of talks with a number of American bankers in Europe reporting on the new scale (post Herstatt) of their '''forex''' dealings, plus what they say of their European colleagues and what "reliable sources" in London project, go into a pocket electronic calculator the display lights up with figures which indicate that '''forex''' staffs in European banks now have at least three quarters of every day free for whittling or reading the classified ads.|t=如果将与一些在欧洲的美国银行家就(赫斯塔特事件后)其'''外汇'''交易的新规模进行的会谈结果,加上他们对欧洲同行的评价,以及伦敦“可靠消息来源”的预测,都输入到袖珍电子计算器中,显示屏就会亮起数字,表明欧洲银行的外汇工作人员现在每天至少有四分之三的时间可以用来削木头或阅读分类广告。}}
#* {{quote-book|en|title=Uganda: Industrial Revitalization and Reorientation|location=[Vienna]|publisher=w:United Nations Industrial Development Organization|year=1992|page=10|oclc=782139631|passage=The number of '''forexes''' has increased steadily and 41 had been licensed by December, 1990, of which 33 were active.|t='''外汇'''交易商的数量稳步增长,到1990年12月,已有41家获得许可,其中33家处于活跃状态。
}}
#* {{quote-book|en|author=Abe Cofnas|chapter=Trading Styles and Strategies|title=The Forex Trading Course: A Self-study Guide to Becoming a Successful Currency Trader|edition=2nd|location=Hoboken, N.J.|publisher=w:en:John Wiley & Sons|year=2015|section=part II (Timing the Trade with Technical Analysis)|page=157|pageurl=https://books.google.com/books?id=FR_YCQAAQBAJ&pg=PA157|isbn=978-1-118-99865-6|passage=The set-and-forget trader is playing fundamental direction and is seeking very large moves of 150 to 300 pips. This trader doesn't want to sit and watch the screen but play the longer moves and forces behind '''forex'''.|t=“设定后就不用管”的交易者关注基本面,追求150到300点的大幅波动。这类交易者不想一直盯着屏幕,而是想把握'''外汇'''市场更长远的走势和背后的驱动力。}}
===延伸阅读===
* {{pedia|lang=en|foreign exchange market}}
===异序词===
* {{anagrams|en|a=eforx|foxer}}
{{C|en|金融}}
==西班牙语==
===名词===
{{es-noun|m|-}}
# [[外汇]]
4edv8rrsuy55tb938qpy0wiha999v92
Template:De-adecl/doc
10
3543276
9938452
2026-10-04T18:20:10Z
TongcyDai
53191
譯自 enwikt Template:de-adecl/documentation;另加 pagename=、json=、truncate= 的說明
9938452
wikitext
text/x-wiki
{{documentation subpage}}
==介紹==
這個模板應該用來變格所有德語形容詞,優先於任何其他可能仍然存在的舊模板。(最終這些舊模板都會被淘汰。)
===快速入門例子===
{|class="wikitable"
! 頁面 !! 例子 !! 說明
|-
| {{m|de|binär||二進位的}} || {{temp|de-adecl}} || 無比較級。
|-
| {{m|de|klein||小的}} || {{temp|de-adecl|comp}} || 有比較級。
|-
| {{m|de|müde||疲倦的}} || {{temp|de-adecl|comp}} || 詞幹自動移除 ''-e'',比較級在 ''-d'' 後加上 ''-est''。
|-
| {{m|de|akzeptabel||可接受的}} || {{temp|de-adecl|comp}} || 詞幹和比較級自動以 ''-abl'' 結尾,但最高級以 ''-abel'' 結尾。
|-
| {{m|de|neu||新的}} || {{temp|de-adecl|comp}} || 以雙母音結尾的形容詞預設有兩個最高級。
|-
| {{m|de|fit||健壯的}} || {{temp|de-adecl|stem:fitt.comp}} || 明確指定詞幹。
|-
| {{m|de|simpel||簡單的}} || {{temp|de-adecl|stem:-e.comp}} || 明確請求在詞幹和比較級中抑制 ''-e-''(比較上面的 {{m|de|akzeptabel}})。
|-
| {{m|de|gut||好的}} || {{temp|de-adecl|comp:besser.sup:best}} || 明確指定比較級和最高級。
|-
| {{m|de|lang||長的}} || {{temp|de-adecl|comp:^}} || 請求在比較級和最高級中變音。
|-
| {{m|de|nass||濕的}} || {{temp|de-adecl|comp:+:^}} || 比較級/最高級有兩種形式,不帶變音和帶變音。
|-
| {{m|de|abgeschlossen||獨立的,封閉的;僻靜的}} || {{temp|de-adecl|comp:+:-e}} || 比較級有兩種形式,不抑制和抑制 ''-e-''。
|-
| {{m|de|aufrecht||直立的}} || {{temp|de-adecl|comp.sup:+est:+st[不常見]}} || 最高級有兩種形式,其中一種標記為不常見。
|-
| {{m|de|rosa||粉紅色的}} || {{temp|de-adecl|stem:rosan:+.comp:rosaner.sup:rosanst:rosast}} || 兩個詞幹和最高級,一個帶中綴 ''-n-'',一個不帶。
|-
| {{m|de|orange||橙色的}} || {{temp|de-adecl|stem:+[正式]:+en[非正式].comp.sup:orangest[正式]:orangenst[非正式]}} || 與 {{m|de|rosa}} 有些類似的例子,帶限定語。
|-
| {{m|de|dunkel||暗的}} || {{temp|de-adecl|stem:-e.comp:+:^[奧地利德語另作].sup:dunkelst}} || 複雜的例子,有帶變音的替代(奧地利)比較級形式。
|-
| {{m|de|erste||第一}} || {{temp|de-adecl|pred:-}} || 無表語形式。
|-
| {{m|de|allerdurchlauchtig||帝王的;顯赫的}} || {{temp|de-adecl|comp:-.sup:+}} || 有最高級但無比較級。
|}
===無比較級形容詞===
最簡單的用法是不提供任何參數。這對於大多數沒有比較級或最高級形式的形容詞已經足夠。例如,對於形容詞 {{m|de|binär||二進位的}},使用:
{{temp|de-adecl}}
會產生
{{de-adecl|pagename=binär}}
===有比較級形容詞===
有比較級形容詞(即有比較級和/或最高級形式的形容詞)通常帶一個參數。對於大多數形容詞,這個參數只需由 <code>comp</code> 一詞構成,表示比較級和最高級形式存在,並應由預設演算法生成(該演算法適用於大多數形容詞)。例如,對於 {{m|de|klein||小的}},使用:
{{temp|de-adecl|comp}}
會產生
{{de-adecl|comp|pagename=klein}}
預設演算法知道形容詞的許多特殊情況。例如,以 {{m|de|-abel}} 結尾的形容詞,其原級和比較級詞幹以 ''-abl'' 結尾,但最高級詞幹以 ''-abel'' 結尾。預設演算法會自動處理這一點。例如,對於 {{m|de|akzeptabel||可接受的}},使用:
{{temp|de-adecl|comp}}
會產生
{{de-adecl|comp|pagename=akzeptabel}}
另一個這樣的情況是 {{m|de|müde||疲倦的}},它去掉 ''-e'' 來構成詞幹,例如原級形式 {{m|de||müder}}、{{m|de||müdes}}、{{m|de||müden}}……;比較級 {{m|de|müder}};以及最高級 ''müdest-''(這裡,在以 ''-d'' 結尾的詞幹後使用最高級詞尾 ''-est'' 而不是 ''-st'')。該模組會自動處理這一點:
{{temp|de-adecl|comp}}
會產生
{{de-adecl|comp|pagename=müde}}
===明確指定比較級或最高級詞幹===
要明確指定比較級和/或最高級詞幹,使用 <code>comp:STEM</code> 和/或 <code>sup:STEM</code>。例如,對於 {{m|de|gut||好的}},使用:
{{temp|de-adecl|comp:besser.sup:best}}
會產生
{{de-adecl|comp:besser.sup:best|pagename=gut}}
幾點說明:
# 每個像 <code>comp</code> 或 <code>sup:best</code> 這樣的表達式稱為''指示符''。如果需要指定多個指示符,用句號/點(<code>.</code>)分隔它們。
# 您可以指定多個比較級和/或最高級詞幹,用冒號分隔;見下面的例子。
# 如果您只指定比較級或只指定最高級,另一個會被適當地推斷出來。
# 要抑制比較級或最高級其中之一而保留另一個,使用 <code>comp:-</code> 或 <code>sup:-</code>。
# 表達式 <code>comp</code> 等價於 <code>comp:+</code>,後者請求預設的比較級詞幹(由原級詞幹推導出來;關於如何明確指定這個詞幹見下文)。
單個比較級或最高級規格可以是以下之一:
# 明確的形式,例如 <code>besser</code> 或 <code>best</code>,如上面的例子。給出的形式應該是比較級或最高級詞幹,詞尾會加在其上。
# 值 <code>+</code>,用來請求預設的比較級或最高級詞幹。預設的比較級詞幹只是在原級詞幹後加上 ''-er'',而預設的最高級詞幹則根據下面[[#預設最高級演算法]]所述的演算法推導出來。
# 像 <code>+est</code> 這樣的值,用來請求將指定的詞尾加在原級詞幹上。
# 值 <code>^</code>,用來請求預設比較級或最高級詞幹的變音變體(即對原級詞幹套用變音,然後使用一般的預設規則生成比較級或最高級詞幹)。
# 像 <code>^est</code> 這樣的值,用來請求將指定的詞尾加在原級詞幹的變音變體上。
# 值 <code>-e</code>,用來請求移除詞尾 ''-el''、''-em''、''-en'' 或 ''-er'' 中的中綴 ''-e-''。更多資訊見下面的[[#明確指定原級詞幹]]。
# 值 <code>-</code>,用來完全抑制比較級或最高級。
注意,由原級詞幹構成形式時,如果有多個原級詞幹,相應地會構成多個形式。
舉例來說,形容詞 {{m|de|aufrecht||直立的}} 有兩個最高級,一個基於詞幹 ''aufrechtest-'',另一個(不常見)基於詞幹 ''aufrechtst-''。這樣指定:
{{temp|de-adecl|comp.sup:+est:+st[不常見]}}
會產生
{{de-adecl|comp.sup:+est:+st[不常見]|pagename=aufrecht|truncate=1}}
注意這裡第二個形式後面方括號中的限定語。任何形式都可以加上這樣的限定語;在變格表中它顯示為腳註,而在詞頭中它顯示為位於該形式之前的斜體限定語。
另一個例子是 {{m|de|abgeschlossen||獨立的,封閉的;僻靜的}},它有兩個比較級:{{m|de|abgeschlossener}} 和 {{m|de|abgeschlossner}}。這樣指定:
{{temp|de-adecl|comp:+:-e}}
會產生
{{de-adecl|comp:+:-e|pagename=abgeschlossen|truncate=1}}
這裡我們使用值 <code>-e</code> 來抑制最後的 ''-e-''。如[[#明確指定原級詞幹|下文]]所述,當這個規格用於原級或比較級時,''-e-'' 會在最高級中恢復,在這個例子中產生 ''abgeschlossenst-''。
抑制某個形式的一個例子是 {{m|de|allerdurchlauchtig||帝王的;顯赫的}},它有最高級 {{m|de||allerdurchlauchtigst-|最顯赫的}}(通常指君主),但沒有比較級。使用以下寫法:
{{temp|de-adecl|comp:-.sup:+}}
會產生
{{de-adecl|comp:-.sup:+|pagename=allerdurchlauchtig|truncate=1}}
===明確指定原級詞幹===
對於某些形容詞,詞條形式(通常與表語形式相同)與用來推導出原級定語屈折形式的詞幹不同。上面的例子有 {{m|de|akzeptabel||可接受的}},它在屈折形式中使用詞幹 ''akzeptabl-'',以及 {{m|de|müde||疲倦的}},它使用詞幹 ''müd-''。該模組會自動處理這兩種情況;但還有其他情況無法自動處理。其中一個例子是 {{m|de|fit||健壯的}},它使用詞幹 ''fitt-''。要在這種情況下指定詞幹,使用:
{{temp|de-adecl|stem:fitt.comp}}
會產生
{{de-adecl|stem:fitt.comp|pagename=fit|truncate=1}}
同一個詞幹 ''fitt-'' 也用於比較級 {{m|de|fitter}} 和最高級 ''fittest-'',它們會自動推導出來(並且在 ''-tt'' 後會自動使用最高級 ''-est'' 代替 ''-st'')。
另一個例子是 {{m|de|simpel||簡單的}},它使用詞幹 ''simpl-'' 來推導出原級({{m|de||simpler}}、{{m|de||simples}}、{{m|de|simplem}}……)和比較級({{m|de|simpler}}),但使用詞條來推導出最高級 ''simpelst-''。您可以明確指定詞幹和最高級兩者,但有提供簡寫:
{{temp|de-adecl|stem:-e.comp}}
會產生
{{de-adecl|stem:-e.comp|pagename=simpel|truncate=1}}
在詞幹中使用 <code>-e</code> 會請求這樣的詞幹:從以 ''-el''、''-em''、''-en'' 或 ''-er'' 結尾的詞條中移除中綴 ''-e-''。不過原本的詞條會被記住,並用作最高級詞幹。
另一個更複雜的例子是 {{m|de|rosa||粉紅色的}},它有兩個詞幹 ''rosan-''({{m|de|rosaner}}、{{m|de|rosanem}}、{{m|de|rosanes}}……)和 ''rosa-''({{m|de|rosaer}}、{{m|de|rosaem}}、{{m|de|rosaes}}……),以及單一的比較級 {{m|de|rosaner}} 和最高級詞幹 ''rosanst-'' 與 ''rosast-''。這樣指定:
{{temp|de-adecl|stem:rosan:+.comp:rosaner.sup:rosanst:rosast}}
會產生
{{de-adecl|stem:rosan:+.comp:rosaner.sup:rosanst:rosast|pagename=rosa|truncate=1}}
這裡,如果使用 <code>comp</code> 或 <code>comp:+</code>,我們會根據兩個可能的詞幹得到兩個比較級:{{m|de|rosaner}} 和 {{m|de|rosaer}}。
===指定變音===
有些形容詞在比較級和/或最高級中有變音。要指定這一點,使用 <code>^</code> 作為比較級詞幹。一個例子是 {{m|de|lang||長的}},比較級 {{m|de|länger}},最高級 ''längst-'':
{{temp|de-adecl|comp:^}}
會產生
{{de-adecl|comp:^|pagename=lang|truncate=1}}
如果有兩個詞幹,帶變音和不帶變音,將兩者都指定出來,用冒號分隔,例如對於 {{m|de|nass||濕的}}:
{{temp|de-adecl|comp:+:^}}
會產生
{{de-adecl|comp:+:^|pagename=nass|truncate=1}}
這裡,<code>+</code> 明確請求預設的比較級。
一個更複雜的例子是 {{m|de|dunkel||暗的}},它有基於詞幹 ''dunkl-'' 的原級形式和帶變音的替代(奧地利)比較級形式,但最高級沒有變音。這樣指定:
{{temp|de-adecl|stem:-e.comp:+:^[奧地利德語另作].sup:dunkelst}}
會產生
{{de-adecl|stem:-e.comp:+:^[奧地利德語另作].sup:dunkelst|pagename=dunkel|truncate=1}}
===其他指示符===
除了指示符 <code>stem:...</code>、<code>comp</code>、<code>comp:...</code> 和 <code>sup:...</code>,其他支援的指示符如下:
* <code>pred:...</code>:覆寫表語形式
* <code>ss</code>:在以母音開頭的詞尾前將 ''-ß'' 改為 ''-ss''(在 1996 年前的拼寫中常見)
* <code>indecl</code>:形容詞無詞形變化(主要在詞頭中有用,使用 {{temp|de-adj}})
* <code>predonly</code>:形容詞僅作表語(主要在詞頭中有用,使用 {{temp|de-adj}})
* <code>sync_n</code>:將 ''-en'' 詞尾縮略(即使用詞尾 ''-n'' 代替 ''-en'')
* <code>sync_mn</code>:將 ''-em'' 和 ''-en'' 詞尾縮略
* <code>sync_mns</code>:將 ''-em''、''-en'' 和 ''-es'' 詞尾縮略
覆寫表語形式特別適合用來將其完全抑制。適用的一個例子是 {{m|de|erste||第一}}:
{{temp|de-adecl|pred:-}}
會產生
{{de-adecl|pred:-|pagename=erste|truncate=1}}
===預設最高級演算法===
注意:最高級規格中的相對引用(例如 <code>+est</code>、<code>+</code>、<code>^</code>)是以原級詞幹為基礎構成的。但是,如果沒有為最高級給出值,最高級會由比較級詞幹推導出來:移除最後的 ''-er'',再根據下面的演算法構成預設最高級。這表示明確的 <code>sup:+</code> 與省略最高級'''並不'''相同(前者將預設最高級演算法套用於原級詞幹,後者則套用於比較級詞幹)。
以下演算法由原級或比較級詞幹產生預設最高級(見上一段):
# 如果詞幹是使用 <code>-e</code> 規格生成的(該規格從以 ''-el''、''-em''、''-en'' 或 ''-er'' 結尾的詞條或詞幹中移除 ''-e-''),則恢復 ''e'',然後加上 ''-st''。例如,如果詞條是 {{m|de|simpel||簡單的}} 並給出了規格 <code>stem:-e</code>,推導出原級詞幹 ''simpl-'' 和比較級詞幹 ''simpler'',則最高級詞幹會是 ''simpelst'',帶有恢復的中綴 ''-e-''。此外,如果給出了指示符 <code>ss</code>(它使用 1996 年前關於 ''ß'' 用法的拼寫慣例來變格形容詞),''ss'' 和 ''ß'' 之間的交替會被正確處理。例如,如果詞條是 {{m|de|abgeschlossen||封閉的;僻靜的}} 並給出了規格 <code>stem:-e.ss</code>,原級詞幹會是 ''abgeschloßn-'',比較級詞幹會是 ''abgeschloßner'',但在最高級中,原本的 ''ss'' 和中綴 ''-e-'' 都會恢復,產生 ''abgeschlossenst-''。
# 否則,我們檢查以下特殊情況:
## 如果詞幹以 ''-groß'' 或 ''-größ''(或以 ''-ss'' 結尾的瑞士變體)結尾,只加上 ''-t''。例如,對於詞條 {{m|de|flächengroß||特別大的}},如果給出規格 <code>comp:^</code>,比較級會是 {{m|de|flächengrößer}}(帶變音),並由此推導出最高級詞幹 ''flächengrößt-''。
## 如果詞幹以 ''-hoh'' 或 ''-höh'' 結尾,將其替換為 ''-höchst''。例如,對於詞條 {{m|de|ranghoch||位階高的}},如果給出規格 <code>stem:ranghoh.comp:^</code>,原級詞幹會是 ''ranghoh-'',比較級會是 {{m|de|ranghöher}}(帶變音),並由此推導出最高級詞幹 ''ranghöchst-''。
## 如果詞幹以 ''-nah'' 或 ''-näh'' 結尾,將其替換為 ''-nächst''。例如,對於詞條 {{m|de|citynah||靠近城市的}},如果給出規格 <code>comp:^</code>,比較級會是 {{m|de|citynäher}}(帶變音),並由此推導出最高級詞幹 ''citynächst-''。
# 否則,如果詞幹以母音 + ''-h'' 結尾,會推導出兩個最高級,一個以 ''-st'' 結尾,另一個以 ''-est'' 結尾。例如,詞條 {{m|de|froh||高興的}} 配合規格 <code>comp</code> 會生成兩個最高級 ''frohst-'' 和 ''frohest-''。
# 否則,如果詞幹看起來像詞尾不帶重音的現在分詞或過去分詞,加上 ''-st'' 來構成最高級詞幹。偶爾出現的詞尾相同的非分詞形容詞通常需要特殊處理。我們具體檢查以下情況:
## 以 ''-end''、''-ernd'' 或 ''-elnd'' 結尾的現在分詞。少數形容詞如 {{m|de|elend||悲慘的}}、{{m|de|behend}}/{{m|de|behende||敏捷的}} 和 {{m|de|horrend||駭人的}} 需要特殊處理。
## 以 ''-et''、''-ert'' 或 ''-elt'' 結尾的過去分詞(但不包括帶重音的詞尾 ''-iert''、''-ielt'' 和 ''-wert'')。少數形容詞如 {{m|de|alert||機敏的}}、{{m|de|inert||惰性的}}、{{m|de|concret||具體的}}、{{m|de|discret||離散的}} 和 {{m|de|obsolet||過時的}} 需要特殊處理。
## 以 ''-igt'' 結尾的過去分詞(但不包括帶重音的詞尾 ''-eigt'',例如在 {{m|de|abgeneigt||不情願的,厭惡的;反對的}} 中)。少數形容詞如 {{m|de|gewitzigt||(因吃過虧而)學乖的}} 和 {{m|de|gerechtfertigt||有正當理由的}} 需要特殊處理。
# 否則,如果詞幹以雙母音結尾,例如 {{m|de|scheu||害羞的}}、{{m|de|neu||新的}}、{{m|de|schlau||聰明的}}、{{m|de|frei||自由的}}、{{m|de|blau}}/{{m|de|blaw||藍色的}},會推導出兩個最高級,一個以 ''-est'' 結尾,另一個以 ''-st'' 結尾。
# 否則,如果詞幹以 ''-s''、''-z''、''-x''、''-ß''、''-d''、''-t'' 或 ''-sk'' 中的任何一個結尾(參見 {{m|de|burlesk||滑稽的}}、{{m|de|grotesk||怪誕的}}、{{m|de|pittoresk||如畫的}}、{{m|de|brüsk||唐突的}}、{{m|de|promisk||濫交的}} 等),加上 ''-est''。
# 否則,如果詞幹以 ''-sch'' 但不是 ''-sch'' 結尾(參見 {{m|de|barsch||粗暴的,不友善的}}、{{m|de|falsch||錯誤的}}、{{m|de|fesch||時髦的}}、{{m|de|forsch||俐落的,大膽的}}、{{m|de|frisch||新鮮的}}、{{m|de|harsch||粗糙的,嚴厲的}}、{{m|de|keusch||貞潔的}}、{{m|de|lasch||軟弱無力的,鬆散的}}、{{m|de|morsch||腐朽的;易碎的}}、{{m|de|rasch||快速的,迅速的}}、{{m|de|wirsch||生氣的,激動的}} 等),會推導出兩個最高級,一個以 ''-est'' 結尾,另一個以 ''-st'' 結尾。
# 否則,加上 ''-st''。
這個演算法相當複雜,但能正確處理絕大多數情況。
===腳註===
腳註可以通過在給定形式後的方括號中放置文字來表示。例如,{{m|de|orange||橙色的}} 有不同的正式和非正式形式。要表示這一點,使用以下寫法:
{{temp|de-adecl|stem:+[正式]:+en[非正式].comp.sup:orangest[正式]:orangenst[非正式]}}
會產生
{{de-adecl|stem:+[正式]:+en[非正式].comp.sup:orangest[正式]:orangenst[非正式]|pagename=orange|truncate=1}}
這樣的腳註在詞頭中顯示為限定語:
{{de-adj|stem:+[正式]:+en[非正式].comp.sup:orangest[正式]:orangenst[非正式]|pagename=orange}}
===角括號記號和變體===
有一種可選的記號,明確指定詞條及其變格。例如對於 {{m|de|lang}},可以使用以下寫法:
{{temp|de-adecl|lang<comp:^>}}
由於這裡的詞條與角括號附加的詞條相同,可以省略:
{{temp|de-adecl|<comp:^>}}
兩種記號都等價於以下寫法,也就是通常的記號:
{{temp|de-adecl|comp:^}}
對於單詞詞條,通常不需要角括號,但在[[#多詞表達式|多詞表達式]](見下文)和變體中它們變得必要。當給定的詞或表達式有多種可能的變格,無法使用指定多個原級、比較級或最高級詞幹的現有可能性來輕鬆指定時,就使用變體。一個例子是 {{m|de|anderer||其他的}},它有帶縮略詞尾的替代形式,特別用於口語,但有時也見於書面語。基本上有兩種可能的變格:一種不帶縮略詞尾,另一種將 ''-em'' 和 ''-en'' 分別縮略為 ''-m'' 和 ''-n''。要指定多種變格,使用這樣的語法:<code>((ALTERNANT1,ALTERNANT2,...))</code>,其中每個變體必須包含角括號。對於 {{m|de|anderer}},使用以下寫法:
{{temp|de-adecl|((<stem:ander:andr[主要用於口語].pred:->,<stem:ander[主要用於口語].sync_mn.pred:->))}}
會產生
{{de-adecl|((<stem:ander:andr[主要用於口語].pred:->,<stem:ander[主要用於口語].sync_mn.pred:->))|pagename=anderer}}
我們可以這樣拆解這個規格:
# 有兩個變體,每個都使用如上所述的角括號記號來表示,其中詞條 <code>anderer</code> 被省略(儘管也可以給出)。
# 第一個變體是 <code>stem:ander:andr[主要用於口語].pred:-</code>。這個變體的運作方式如下:
## 它指定兩個原級詞幹 ''ander-'' 和 ''andr-'',後者附有腳註/限定語「主要用於口語」(見上面的[[#腳註]])。
## 此外,表語形式被抑制,因為不可能說出像 #{{m|de|er ist ander||他是其他的}} 這樣的話。
## 沒有指定比較級或最高級形式,所以不會包含任何這類形式。(英語中不可能說 #"he is more other" 或 #"he is most other";德語也是如此。)
# 第二個變體是 <code>stem:ander[主要用於口語].sync_mn.pred:-</code>。這個變體的運作方式如下:
## 它指定一個原級詞幹 ''ander-'',附有腳註/限定語「主要用於口語」。
## 此外,表語形式被抑制,與第一個變體相同。
## 最後,指示符 <code>sync_mn</code> 使詞尾 ''-em'' 和 ''-en'' 分別縮略為 ''-m'' 和 ''-n''。由於這個指示符包含在只有單一原級詞幹 ''ander-'' 的變體中,縮略詞尾只會加在這個詞幹上,而不會加在第一個變體中的詞幹 ''andr-'' 上。又由於該原級詞幹附有腳註,該腳註會與縮略詞尾一起顯示。最後,注意含有詞尾 ''-er''、''-e'' 和 ''-es'' 的形式也會生成並加在原級詞幹 ''ander-'' 上;但所得的形式 {{m|de|anderer}}、{{m|de|andere}}、{{m|de|anderes}} 與第一個變體生成的形式重複,所以會被抑制。
===多詞表達式===
多詞表達式可以使用與名詞相同的語法來指定(見 [[Template:de-ndecl]]),不過用於形容詞時較不常見,用處也較小。
===覆寫===
您可以使用指示符 <code>SLOT:VALUE:VALUE:...</code> 覆寫特定的格/數/性別組合,其中 <code>SLOT</code> 指定要覆寫的特定位置,例如 <code>mix_nom_m</code> 表示混合變化主格陽性單數,<code>sup_str_dat_p</code> 表示最高級強變化與格複數,<code>comp_pred</code> 表示比較級表語。<code>VALUE</code> 的可能值與上面[[#明確指定比較級或最高級詞幹]]所述相同:明確的形式;值 <code>+</code>,用來請求預設值;像 <code>+en</code> 這樣的值,用來將詞尾加在原級詞幹上;變音變體;值 <code>-e</code>,用來抑制中綴 ''-e-'';以及值 <code>-</code>,用來完全抑制該形式。方括號中的腳註/限定語可以附加在值的末尾,如同原級、比較級或最高級詞幹。
事實上,用來抑制表語形式的常見指示符 <code>pred:-</code> 只是覆寫的一個特例。
已識別的位置名稱如下:
# 原級形式的位置名稱,格式為 <code>STATE_CASE_GENDER</code>。其中:
## <code>STATE</code> 是 <code>str</code>(強變化)、<code>wk</code>(弱變化)或 <code>mix</code>(混合變化)之一;
## <code>CASE</code> 是 <code>nom</code>(主格)、<code>gen</code>(屬格)、<code>dat</code>(與格)或 <code>acc</code>(賓格)之一;
## <code>GENDER</code> 是 <code>m</code>(陽性單數)、<code>f</code>(陰性單數)、<code>n</code>(中性單數)或 <code>p</code>(複數)之一。
# 比較級/最高級形式的位置名稱,格式為 <code>COMP_STATE_CASE_GENDER</code>,其中 <code>COMP</code> 是 <code>comp</code>(比較級)或 <code>sup</code>(最高級),其餘部分同上。
# 表語位置名稱:<code>pred</code>(原級表語)、<code>comp_pred</code>(比較級表語)或 <code>sup_pred</code>(最高級表語)之一。
# 分性別的表語位置名稱:<code>pred_GENDER</code>(原級分性別表語)、<code>comp_pred_GENDER</code>(比較級分性別表語)或 <code>sup_pred_GENDER</code>(最高級分性別表語)之一,其中 <code>GENDER</code> 同上,是 <code>m</code>、<code>f</code>、<code>n</code> 或 <code>p</code> 之一。
==其他參數==
; {{para|pagename}}
: 指定要當作頁面名稱的詞,取代實際的頁面名稱。用於說明頁、測試頁,或要在別的頁面上示範時。
; {{para|json|1}}
: 不顯示表格,改以 JSON 格式輸出所有屈折形式及相關資訊,供機器人使用。
; {{para|truncate|1}}
: 把表格截短(強變化、弱變化、混合變化各只列主格),用來降低說明頁和測試頁的模板展開量。
<includeonly>
[[Category:德語形容詞變格表模板]]
</includeonly>
skagk4b8kspi0yrk9zz91vy118zds0u
Template:De-adj/doc
10
3543277
9938453
2026-10-04T18:20:14Z
TongcyDai
53191
譯自 enwikt Template:de-adj/documentation
9938453
wikitext
text/x-wiki
{{documentation subpage}}
這個模板用於所有德語形容詞。這個模板會自動將頁面加入到[[:Category:德語形容詞]]。由 [[Module:de-headword]] 實現。
{{isAccelerated}}
==用法==
在「詞性」標題(例如 {{m|de|klein}})下直接使用:
<pre>
==德語==
===形容詞===
{{de-adj|comp}}
# [[小]]的
</pre>
==參數==
如果形容詞無比較級(即沒有比較級或最高級形式),這個模板通常不帶參數;如果形容詞有比較級,則帶一個編號參數(通常只是 <code>comp</code>)。
參數:
; {{para|1}}
: 指定詞幹、比較級和/或最高級形式。格式與 {{temp|de-adecl}} 相同;見該模板和下面的例子。
; {{para|nolinkhead|1}}
: 在多詞表達式中不自動連結各個詞。
; {{para|splithyph|1}}
: 當有空格時自動連結連字符詞的各個部分(如果沒有空格會自動發生)。
; {{para|head}}, {{para|head2}}, ...
: 明確指定詞頭。只有在多詞表達式中預設自動連結不正確時才需要,即使如此也很少需要;優先使用 {{para|1}} 中帶明確連結的角括號語法。
==例子==
{|class="wikitable"
! 頁面 !! 例子和結果 !! 說明
|-
| rowspan=2| {{m|de|binär||二進位的}} || {{temp|de-adj}} || rowspan=2| 無比較級。
|-
| {{de-adj|pagename=binär}}
|-
| rowspan=2| {{m|de|klein||小的}} || {{temp|de-adj|comp}} || rowspan=2| 有比較級。
|-
| {{de-adj|comp|pagename=klein}}
|-
| rowspan=2| {{m|de|müde||疲倦的}} || {{temp|de-adj|comp}} || rowspan=2| 詞幹自動移除 ''-e'',最高級在 ''-d'' 後加上 ''-est''。
|-
| {{de-adj|comp|pagename=müde}}
|-
| rowspan=2| {{m|de|akzeptabel||可接受的}} || {{temp|de-adj|comp}} || rowspan=2| 詞幹和比較級自動以 ''-abl'' 結尾,但最高級以 ''-abel'' 結尾。
|-
| {{de-adj|comp|pagename=akzeptabel}}
|-
| rowspan=2| {{m|de|neu||新的}} || {{temp|de-adj|comp}} || rowspan=2| 以雙母音結尾的形容詞預設有兩個最高級。
|-
| {{de-adj|comp|pagename=neu}}
|-
| rowspan=2| {{m|de|fit||健壯的}} || {{temp|de-adj|stem:fitt.comp}} || rowspan=2| 明確指定詞幹。
|-
| {{de-adj|stem:fitt.comp|pagename=fit}}
|-
| rowspan=2| {{m|de|simpel||簡單的}} || {{temp|de-adj|stem:-e.comp}} || rowspan=2| 明確請求在詞幹和比較級中抑制 ''-e-''(比較上面的 {{m|de|akzeptabel}})。
|-
| {{de-adj|stem:-e.comp|pagename=simpel}}
|-
| rowspan=2| {{m|de|gut||好的}} || {{temp|de-adj|comp:besser.sup:best}} || rowspan=2| 明確指定比較級和最高級。
|-
| {{de-adj|comp:besser.sup:best|pagename=gut}}
|-
| rowspan=2| {{m|de|lang||長的}} || {{temp|de-adj|comp:^}} || rowspan=2| 請求在比較級和最高級中變音。
|-
| {{de-adj|comp:^|pagename=lang}}
|-
| rowspan=2| {{m|de|nass||濕的}} || {{temp|de-adj|comp:+:^}} || rowspan=2| 比較級/最高級有兩種形式,不帶變音和帶變音。
|-
| {{de-adj|comp:+:^|pagename=nass}}
|-
| rowspan=2| {{m|de|abgeschlossen||獨立的,封閉的}} || {{temp|de-adj|comp:+:-e}} || rowspan=2| 比較級有兩種形式,不抑制和抑制 ''-e-''。
|-
| {{de-adj|comp:+:-e|pagename=abgeschlossen}}
|-
| rowspan=2| {{m|de|aufrecht||直立的}} || {{temp|de-adj|comp.sup:+est:+st[不常見]}} || rowspan=2| 最高級有兩種形式,其中一種標記為不常見。
|-
| {{de-adj|comp.sup:+est:+st[不常見]|pagename=aufrecht}}
|-
| rowspan=2| {{m|de|rosa||粉紅色的}} || {{temp|de-adj|stem:rosan:+.comp:rosaner.sup:rosanst:rosast}} || rowspan=2| 兩個詞幹和最高級,一個帶中綴 ''-n-'',一個不帶。
|-
| {{de-adj|stem:rosan:+.comp:rosaner.sup:rosanst:rosast|pagename=rosa}}
|-
| rowspan=2| {{m|de|orange||橙色的}} || {{temp|de-adj|stem:+[正式]:+en[非正式].comp.sup:orangest[正式]:orangenst[非正式]}} || rowspan=2| 與 {{m|de|rosa}} 有些類似的例子,帶限定語。
|-
| {{de-adj|stem:+[正式]:+en[非正式].comp.sup:orangest[正式]:orangenst[非正式]|pagename=orange}}
|-
| rowspan=2| {{m|de|dunkel||暗的}} || {{temp|de-adj|stem:-e.comp:+:^[奧地利德語另作].sup:dunkelst}} || rowspan=2| 複雜的例子,有帶變音的替代(奧地利)比較級形式。
|-
| {{de-adj|stem:-e.comp:+:^[奧地利德語另作].sup:dunkelst|pagename=dunkel}}
|-
| rowspan=2| {{m|de|erste||第一}} || {{temp|de-adj|pred:-}} || rowspan=2| 無表語形式。
|-
| {{de-adj|pred:-|pagename=erste}}
|-
| rowspan=2| {{m|de|allerdurchlauchtig||帝王的;顯赫的}} || {{temp|de-adj|comp:-.sup:+}} || rowspan=2| 有最高級但無比較級。
|-
| {{de-adj|comp:-.sup:+|pagename=allerdurchlauchtig}}
|-
| rowspan=2| {{m|de|Cottbuser||科特布斯的}} || {{temp|de-adj|indecl}} || rowspan=2| 無詞形變化。
|-
| {{de-adj|indecl|pagename=Cottbuser}}
|}
<includeonly>{{hwcat}}</includeonly>
pq63uti8z04nvdzysrko253s7iutcxa
Template:De-proper-noun/doc
10
3543278
9938454
2026-10-04T18:20:16Z
TongcyDai
53191
譯自 enwikt Template:de-proper noun/documentation
9938454
wikitext
text/x-wiki
{{documentation subpage}}
這個模板用於所有德語專有名詞。在「詞性」標題下直接使用。它的功能與 {{temp|de-noun}} 完全相同,除了以下幾點:
# 它將頁面分類到[[:Category:德語專有名詞]],而不是[[:Category:德語名詞]]。
# 它在詞頭的屈折部分顯示「專有名詞」標籤。
# 它預設為僅單數,除非明確給出複數或指定了指示符 <code>.both</code>。
# 對於某些類別的名詞,有特殊的指示符可用,會自動處理正確的性別和變格。同樣的指示符在 {{tl|de-ndecl}} 中也可用。
## <code>surname</code> 用於姓氏
## <code>langname</code> 用於以 {{m|de|-isch}} 結尾的語言名稱
## <code>toponym</code> 用於某種沒有文檔說明的情況,但用於例如 {{m|de|Italien|g=n}} 或 {{m|de|Berlin|g=n}},而不用於例如 {{m|de|Türkei|g=f}}
==例子==
1. 位於 {{m|de|Aachen||[[亞琛]]}}:
<pre>
{{de-proper noun|toponym}}
</pre>
會產生
{{de-proper noun|toponym|pagename=Aachen}}
2. 位於 {{m|de|Grinzens||格林岑斯}}:
<pre>
{{de-proper noun|n,'}}
</pre>
或現在
<pre>
{{de-proper noun|toponym}}
</pre>
會產生
{{de-proper noun|n,'|pagename=Grinzens}}
或現在
{{de-proper noun|toponym|pagename=Grinzens}}
3. 位於 {{m|de|Golfkrieg||波斯灣戰爭}}:
<pre>
{{de-proper noun|m,(e)s.both}}
</pre>
會產生
{{de-proper noun|m,(e)s.both|pagename=Golfkrieg}}
4. 位於 {{m|de|Hans||[[漢斯]]}}:
<pre>
{{de-proper noun|m,':ens[過時],^e|dim=^chen,^el,i,^lein}}
</pre>
會產生
{{de-proper noun|m,':ens[過時],^e|dim=^chen,^el,i,^lein|pagename=Hans}}
5. 位於 {{m|de|Eva||[[夏娃]],[[伊娃]]}}:
<pre>
{{de-proper noun|f|dim=Evchen,chen,lein}}
</pre>
會產生
{{de-proper noun|f|dim=Evchen,chen,lein|pagename=Eva}}
6. 位於 {{m|de|St. Vincent und die Grenadinen||[[聖文森及格瑞那丁]]}}:
<pre>
{{de-proper noun|n,St\. Vincent und der Grenadinen|head=[[St. Vincent]] [[und]] [[die]] [[Grenadinen]]}}
</pre>
或現在:
<pre>
{{de-proper noun|toponym,St\. Vincents und der Grenadinen|head=[[St. Vincent]] [[und]] [[die]] [[Grenadinen]]}}
</pre>
會產生
{{de-proper noun|n,St\. Vincents und der Grenadinen|head=[[St. Vincent]] [[und]] [[die]] [[Grenadinen]]}}
或現在:
{{de-proper noun|toponym,St\. Vincents und der Grenadinen|head=[[St. Vincent]] [[und]] [[die]] [[Grenadinen]]|pagename=St. Vincent und die Grenadinen}}
7. 位於 {{m|de|Maier||[[邁爾]]}}:
<pre>
{{de-proper noun|surname}}
</pre>
會產生
{{de-proper noun|surname|pagename=Maier}}
8. 位於 {{m|de|Englisch||[[英語]]}}:
<pre>
{{de-proper noun|langname}}
</pre>
會產生
{{de-proper noun|langname|pagename=Englisch}}
<includeonly>{{hwcat}}</includeonly>
e3sqzfaktdjk75ydlcgqnhv67rsxkuv
糧盡援絕
0
3543279
9938458
2026-10-04T23:18:07Z
Fglffer
55252
新詞條
9938458
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=粮尽援绝}}
===發音===
{{zh-pron
|m=liángjìnyuánjué
|cat=cy
}}
===成語===
{{head|zh|成語}}
# {{lb|zh|literally|軍隊}} [[糧食]][[用盡]],[[救援]][[斷絕]]
# {{lb|zh|figuratively}} 身處極度[[窮困]][[匱乏]]的[[境地]]
====同義詞====
* {{zh-l|彈盡援絕}}
cpp8hnhut9zn4knzns0gnqrcaylega9
不足以
0
3543280
9938473
2026-10-05T09:01:42Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==漢語== {{zh-forms|type=12}} ===發音=== {{zh-pron |m=不zúyǐ |c=bat1 zuk1 ji5 |cat=adv }} ===副詞=== {{head|zh|副詞}} # {{lb|zh|書面}} [[不夠]],不[[足夠]],未達到應有的程度」的新頁面
9938473
wikitext
text/x-wiki
==漢語==
{{zh-forms|type=12}}
===發音===
{{zh-pron
|m=不zúyǐ
|c=bat1 zuk1 ji5
|cat=adv
}}
===副詞===
{{head|zh|副詞}}
# {{lb|zh|書面}} [[不夠]],不[[足夠]],未達到應有的程度
seddx4korkgw24t3rm0cy47trr7pw45
Freiraumes
0
3543281
9938474
2026-10-05T09:02:02Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|[ˈfʁaɪ̯ʁaʊ̯məs]}} * {{audio|de|De-Freiraumes.ogg|a=柏林}} * {{hyph|de|Frei|rau|mes}} ===名詞=== {{head|de|名詞變格形}} # {{inflection of|de|Freiraum||gen|s}}」的新頁面
9938474
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|[ˈfʁaɪ̯ʁaʊ̯məs]}}
* {{audio|de|De-Freiraumes.ogg|a=柏林}}
* {{hyph|de|Frei|rau|mes}}
===名詞===
{{head|de|名詞變格形}}
# {{inflection of|de|Freiraum||gen|s}}
ahn1iupucpxrg8h1jvhe6juoi0lhmny
Freiraums
0
3543282
9938475
2026-10-05T09:02:04Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|[ˈfʁaɪ̯ʁaʊ̯ms]}} * {{audio|de|De-Freiraums.ogg|a=柏林}} * {{hyph|de|Frei|raums}} ===名詞=== {{head|de|名詞變格形}} # {{inflection of|de|Freiraum||gen|s}}」的新頁面
9938475
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|[ˈfʁaɪ̯ʁaʊ̯ms]}}
* {{audio|de|De-Freiraums.ogg|a=柏林}}
* {{hyph|de|Frei|raums}}
===名詞===
{{head|de|名詞變格形}}
# {{inflection of|de|Freiraum||gen|s}}
e32wuee1w6eso74u69xtgtf1zn6n7sa
Freiräume
0
3543283
9938476
2026-10-05T09:02:08Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|[ˈfʁaɪ̯ʁɔɪ̯mə]}} * {{audio|de|De-Freiräume.ogg|a=柏林}} * {{hyph|de|Frei|räu|me}} * {{audio|de|De-at-Freiräume.ogg|a=Austria}} * {{rhymes|de|ɔɪ̯mə}} ===名詞=== {{head|de|名詞變格形}} # {{inflection of|de|Freiraum||nom//acc//gen|p}}」的新頁面
9938476
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|[ˈfʁaɪ̯ʁɔɪ̯mə]}}
* {{audio|de|De-Freiräume.ogg|a=柏林}}
* {{hyph|de|Frei|räu|me}}
* {{audio|de|De-at-Freiräume.ogg|a=Austria}}
* {{rhymes|de|ɔɪ̯mə}}
===名詞===
{{head|de|名詞變格形}}
# {{inflection of|de|Freiraum||nom//acc//gen|p}}
qd24sezulsy0iy074629n87c5jjojdw
Freiraume
0
3543284
9938477
2026-10-05T09:02:26Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈfʁaɪ̯ˌʁaʊ̯mə/}} * {{audio|de|De-Freiraume.ogg|a=柏林}} ===名詞=== {{head|de|名詞變格形}} # {{infl of|de|Freiraum||dat|s}}」的新頁面
9938477
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ˈfʁaɪ̯ˌʁaʊ̯mə/}}
* {{audio|de|De-Freiraume.ogg|a=柏林}}
===名詞===
{{head|de|名詞變格形}}
# {{infl of|de|Freiraum||dat|s}}
503l12g9274173nf98jys3zi2js694u
Freiräumen
0
3543285
9938478
2026-10-05T09:02:28Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈfʁaɪ̯ˌʁɔɪ̯mən/}} * {{audio|de|De-Freiräumen.ogg|a=柏林}} ===名詞=== {{head|de|名詞變格形}} # {{infl of|de|Freiraum||dat|p}}」的新頁面
9938478
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ˈfʁaɪ̯ˌʁɔɪ̯mən/}}
* {{audio|de|De-Freiräumen.ogg|a=柏林}}
===名詞===
{{head|de|名詞變格形}}
# {{infl of|de|Freiraum||dat|p}}
scrfigzgrd7h9xjhea49g5d2ikj5cdd
forexes
0
3543286
9938479
2026-10-05T09:02:57Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==英語== ===名詞=== {{head|en|名詞變格形}} # {{plural of|en|forex}} ===異序詞=== * {{anagrams|en|a=eeforsx|foresex}}」的新頁面
9938479
wikitext
text/x-wiki
==英語==
===名詞===
{{head|en|名詞變格形}}
# {{plural of|en|forex}}
===異序詞===
* {{anagrams|en|a=eeforsx|foresex}}
d0vjmov3s8rrtph9pj85bilrg4d0d28
reigū
0
3543287
9938481
2026-10-05T09:04:51Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==日語== ===羅馬化=== {{ja-romaji}} # {{ja-romanization of|れいぐう}}」的新頁面
9938481
wikitext
text/x-wiki
==日語==
===羅馬化===
{{ja-romaji}}
# {{ja-romanization of|れいぐう}}
1f7rk7ys2s9xs44auv93zons066nz2k
gependelt
0
3543288
9938483
2026-10-05T09:05:48Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ɡəˈpɛndl̩t/}} * {{audio|de|De-gependelt.ogg|a=柏林}} ===分詞=== {{head|de|過去分詞}} # {{past participle of|de|pendeln}} ====變格==== {{de-adecl}}」的新頁面
9938483
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ɡəˈpɛndl̩t/}}
* {{audio|de|De-gependelt.ogg|a=柏林}}
===分詞===
{{head|de|過去分詞}}
# {{past participle of|de|pendeln}}
====變格====
{{de-adecl}}
aee3yq6obntx8rr4ryq8e2978rqo69i
pendelnder
0
3543289
9938484
2026-10-05T09:06:32Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈpɛndl̩ndɐ/}} * {{audio|de|De-pendelnder.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|pendelnd}}」的新頁面
9938484
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ˈpɛndl̩ndɐ/}}
* {{audio|de|De-pendelnder.ogg|a=柏林}}
===分詞===
{{head|de|分詞變格形}}
# {{de-adj form of|pendelnd}}
gaqe52ajdn4jy5r9gz1unrqmrsrhzww
pendelnden
0
3543290
9938485
2026-10-05T09:06:33Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈpɛndl̩ndn̩/}} * {{audio|de|De-pendelnden.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|pendelnd}}」的新頁面
9938485
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ˈpɛndl̩ndn̩/}}
* {{audio|de|De-pendelnden.ogg|a=柏林}}
===分詞===
{{head|de|分詞變格形}}
# {{de-adj form of|pendelnd}}
0fnha8jauuec69tfk4x52lbc2e2klma
pendelnde
0
3543291
9938486
2026-10-05T09:06:33Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈpɛndl̩ndə/}} * {{audio|de|De-pendelnde.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|pendelnd}}」的新頁面
9938486
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ˈpɛndl̩ndə/}}
* {{audio|de|De-pendelnde.ogg|a=柏林}}
===分詞===
{{head|de|分詞變格形}}
# {{de-adj form of|pendelnd}}
l9t5eqp5xudhl27l7jrgk2mkaahn14w
pendelndem
0
3543292
9938487
2026-10-05T09:06:33Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈpɛndl̩ndəm/}} * {{audio|de|De-pendelndem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|pendelnd}}」的新頁面
9938487
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ˈpɛndl̩ndəm/}}
* {{audio|de|De-pendelndem.ogg|a=柏林}}
===分詞===
{{head|de|分詞變格形}}
# {{de-adj form of|pendelnd}}
d3zj6h8rtnrlucm35ysabr453jcg86w
pendelndes
0
3543293
9938488
2026-10-05T09:06:34Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈpɛndl̩ndəs/}} * {{audio|de|De-pendelndes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|pendelnd}}」的新頁面
9938488
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ˈpɛndl̩ndəs/}}
* {{audio|de|De-pendelndes.ogg|a=柏林}}
===分詞===
{{head|de|分詞變格形}}
# {{de-adj form of|pendelnd}}
jkowvmved1pj8ga0fpi9i1p2mqaheg7
gependelter
0
3543294
9938489
2026-10-05T09:06:52Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ɡəˈpɛndl̩tɐ/}} * {{audio|de|De-gependelter.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|gependelt}}」的新頁面
9938489
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ɡəˈpɛndl̩tɐ/}}
* {{audio|de|De-gependelter.ogg|a=柏林}}
===分詞===
{{head|de|分詞變格形}}
# {{de-adj form of|gependelt}}
43xoeqml3f48vziiklwwyoxy4b4vml4
gependeltem
0
3543295
9938490
2026-10-05T09:06:57Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ɡəˈpɛndl̩təm/}} * {{audio|de|De-gependeltem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|gependelt}}」的新頁面
9938490
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ɡəˈpɛndl̩təm/}}
* {{audio|de|De-gependeltem.ogg|a=柏林}}
===分詞===
{{head|de|分詞變格形}}
# {{de-adj form of|gependelt}}
fm2nh9rcobh65142b5ldkuswmcrsdm0
gependeltes
0
3543296
9938491
2026-10-05T09:06:57Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ɡəˈpɛndl̩təs/}} * {{audio|de|De-gependeltes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|gependelt}}」的新頁面
9938491
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ɡəˈpɛndl̩təs/}}
* {{audio|de|De-gependeltes.ogg|a=柏林}}
===分詞===
{{head|de|分詞變格形}}
# {{de-adj form of|gependelt}}
5jlf9kb7i5kmmqhmwrj8j31z6ix2xsk
pendelte
0
3543297
9938492
2026-10-05T09:07:08Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈpɛndl̩tə/}} * {{audio|de|De-pendelte.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|pendeln||1//3|s|pret|;|1//3|s|sub|II}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|gependelt}}」的新頁面
9938492
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ˈpɛndl̩tə/}}
* {{audio|de|De-pendelte.ogg|a=柏林}}
===動詞===
{{head|de|動詞變位形式}}
# {{verb form of|de|pendeln||1//3|s|pret|;|1//3|s|sub|II}}
===分詞===
{{head|de|分詞變格形}}
# {{de-adj form of|gependelt}}
kzw2yjva51797bqcoprmrz9644s2ywu
9938495
9938492
2026-10-05T09:07:26Z
Sayonzei
40728
/* 德語 */
9938495
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ˈpɛndl̩tə/}}
* {{audio|de|De-pendelte.ogg|a=柏林}}
===動詞===
{{head|de|動詞變位形式}}
# {{verb form of|de|pendeln||1//3|s|pret|;|1//3|s|sub|II}}
mjhxx1jnraijussh51oj8fz1gbpr1bk
pendelten
0
3543298
9938493
2026-10-05T09:07:11Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈpɛndl̩tn̩/}} * {{audio|de|De-pendelten.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|pendeln||1//3|p|pret|;|1//3|p|sub|II}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|gependelt}}」的新頁面
9938493
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ˈpɛndl̩tn̩/}}
* {{audio|de|De-pendelten.ogg|a=柏林}}
===動詞===
{{head|de|動詞變位形式}}
# {{verb form of|de|pendeln||1//3|p|pret|;|1//3|p|sub|II}}
===分詞===
{{head|de|分詞變格形}}
# {{de-adj form of|gependelt}}
lw9aid8exza3kba4x8t47ysx22pg32o
9938494
9938493
2026-10-05T09:07:24Z
Sayonzei
40728
/* 德語 */
9938494
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ˈpɛndl̩tn̩/}}
* {{audio|de|De-pendelten.ogg|a=柏林}}
===動詞===
{{head|de|動詞變位形式}}
# {{verb form of|de|pendeln||1//3|p|pret|;|1//3|p|sub|II}}
jn29wdo4pvta45l5mf1booy551h0qj2
gependelten
0
3543299
9938496
2026-10-05T09:07:50Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ɡəˈpɛndl̩tn̩/}} * {{audio|de|De-gependelten.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|gependelt}}」的新頁面
9938496
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ɡəˈpɛndl̩tn̩/}}
* {{audio|de|De-gependelten.ogg|a=柏林}}
===分詞===
{{head|de|分詞變格形}}
# {{de-adj form of|gependelt}}
8uno7alp8nyiph8s4rvanu6lv3jra9v
gependelte
0
3543300
9938497
2026-10-05T09:07:50Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ɡəˈpɛndl̩tə/}} * {{audio|de|De-gependelte.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|gependelt}}」的新頁面
9938497
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ɡəˈpɛndl̩tə/}}
* {{audio|de|De-gependelte.ogg|a=柏林}}
===分詞===
{{head|de|分詞變格形}}
# {{de-adj form of|gependelt}}
2px8m49t1dnc1g5pddr2nmmyw1y5him
pendeltest
0
3543301
9938498
2026-10-05T09:07:51Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈpɛndl̩təst/}} * {{audio|de|De-pendeltest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|pendeln||2|s|pret|;|2|s|sub|II}}」的新頁面
9938498
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ˈpɛndl̩təst/}}
* {{audio|de|De-pendeltest.ogg|a=柏林}}
===動詞===
{{head|de|動詞變位形式}}
# {{verb form of|de|pendeln||2|s|pret|;|2|s|sub|II}}
khx0ddq9p42llyi2t5et1vvsrfqk7a6
pendele
0
3543302
9938499
2026-10-05T09:07:51Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「{{also|Pendélé}} ==荷蘭語== ===動詞=== {{head|nl|動詞變位形式}} # {{infl of|nl|pendelen||s|pres|sub}} ==德語== ===發音=== * {{IPA|de|/ˈpɛndələ/}} * {{audio|de|De-pendele.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|pendeln||1|s|pres|;|s|imp|;|1//3|s|sub|I}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|pender}}」的新頁面
9938499
wikitext
text/x-wiki
{{also|Pendélé}}
==荷蘭語==
===動詞===
{{head|nl|動詞變位形式}}
# {{infl of|nl|pendelen||s|pres|sub}}
==德語==
===發音===
* {{IPA|de|/ˈpɛndələ/}}
* {{audio|de|De-pendele.ogg|a=柏林}}
===動詞===
{{head|de|動詞變位形式}}
# {{verb form of|de|pendeln||1|s|pres|;|s|imp|;|1//3|s|sub|I}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|pender}}
3mmvxrc6fqtyq87g4w4brm0xin0zz5j
pendeltet
0
3543303
9938500
2026-10-05T09:07:51Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈpɛndl̩tət/}} * {{audio|de|De-pendeltet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|pendeln||2|p|pret|;|2|p|sub|II}}」的新頁面
9938500
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ˈpɛndl̩tət/}}
* {{audio|de|De-pendeltet.ogg|a=柏林}}
===動詞===
{{head|de|動詞變位形式}}
# {{verb form of|de|pendeln||2|p|pret|;|2|p|sub|II}}
0e6yt0gku3tam9wg42ucz6ui4u0b9qq
pendelen
0
3543304
9938501
2026-10-05T09:09:14Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==荷蘭語== ===詞源=== 和{{cog|de|pendeln}}、{{cog|en|pendulum}} 同源;最終源自{{der|nl|la|pendulus||懸掛}}。 ===發音=== * {{audio|nl|Nl-pendelen.ogg}} * {{rhymes|nl|ɛndələn|s=3}} ===動詞=== {{nl-verb}} # 通過[[鐘擺]]的[[擺動]]來[[占卜]] # [[通勤]];[[往返]] #: {{syn|nl|forenzen}} ====變位==== {{nl-conj-wk|pendel}} ====派生詞彙==== * {{l|nl|pendelbus}} ==書面挪威語== ===名詞=== {{head…」的新頁面
9938501
wikitext
text/x-wiki
==荷蘭語==
===詞源===
和{{cog|de|pendeln}}、{{cog|en|pendulum}} 同源;最終源自{{der|nl|la|pendulus||懸掛}}。
===發音===
* {{audio|nl|Nl-pendelen.ogg}}
* {{rhymes|nl|ɛndələn|s=3}}
===動詞===
{{nl-verb}}
# 通過[[鐘擺]]的[[擺動]]來[[占卜]]
# [[通勤]];[[往返]]
#: {{syn|nl|forenzen}}
====變位====
{{nl-conj-wk|pendel}}
====派生詞彙====
* {{l|nl|pendelbus}}
==書面挪威語==
===名詞===
{{head|nb|名詞變格形|g=m}}
# {{inflection of|nb|pendel||definite|s}}
==新挪威語==
===名詞===
{{head|nn|名詞變格形|g=m}}
# {{inflection of|nn|pendel||def|s}}
nvg6zkolo886lm7gfferriyx5feoapf
pendelst
0
3543305
9938502
2026-10-05T09:09:38Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈpɛndl̩st/}} * {{audio|de|De-pendelst.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|pendeln||2|s|pres}}」的新頁面
9938502
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ˈpɛndl̩st/}}
* {{audio|de|De-pendelst.ogg|a=柏林}}
===動詞===
{{head|de|動詞變位形式}}
# {{verb form of|de|pendeln||2|s|pres}}
8s5p17wgkuh8q0lqryg27bssqdi17gl
pendelt
0
3543306
9938503
2026-10-05T09:09:41Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==荷蘭語== ===發音=== * {{audio|nl|Nl-pendelt.ogg}} ===動詞=== {{head|nl|動詞變位形式}} # {{infl of|nl|pendelen||pres-t}} ==德語== ===發音=== * {{IPA|de|/ˈpɛndl̩t/}} * {{audio|de|De-pendelt.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|pendeln||3|s|pres|;|2|p|pres|;|p|imp}}」的新頁面
9938503
wikitext
text/x-wiki
==荷蘭語==
===發音===
* {{audio|nl|Nl-pendelt.ogg}}
===動詞===
{{head|nl|動詞變位形式}}
# {{infl of|nl|pendelen||pres-t}}
==德語==
===發音===
* {{IPA|de|/ˈpɛndl̩t/}}
* {{audio|de|De-pendelt.ogg|a=柏林}}
===動詞===
{{head|de|動詞變位形式}}
# {{verb form of|de|pendeln||3|s|pres|;|2|p|pres|;|p|imp}}
g4dhg435gpbepdw0uva3y3usqis4l1g
pendelest
0
3543307
9938504
2026-10-05T09:09:53Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|pendeln||2|s|sub|I}}」的新頁面
9938504
wikitext
text/x-wiki
==德語==
===動詞===
{{head|de|動詞變位形式}}
# {{verb form of|de|pendeln||2|s|sub|I}}
de3qrx8rdh5iyj0uxjlbml36bmqmy16
pendlest
0
3543308
9938505
2026-10-05T09:09:55Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈpɛndləst/}} * {{audio|de|De-pendlest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|pendeln||2|s|sub|I}}」的新頁面
9938505
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ˈpɛndləst/}}
* {{audio|de|De-pendlest.ogg|a=柏林}}
===動詞===
{{head|de|動詞變位形式}}
# {{verb form of|de|pendeln||2|s|sub|I}}
ooyd5pmlv5t2z163ggo5fmebjnqy51l
pendelet
0
3543309
9938506
2026-10-05T09:09:59Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|pendeln||2|p|sub|I}}」的新頁面
9938506
wikitext
text/x-wiki
==德語==
===動詞===
{{head|de|動詞變位形式}}
# {{verb form of|de|pendeln||2|p|sub|I}}
1eak1ulffzk6mpj2q5k9h1pdt0z6ezf
pendlet
0
3543310
9938507
2026-10-05T09:10:05Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈpɛndlət/}} * {{audio|de|De-pendlet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|pendeln||2|p|sub|I}} ==書面挪威語== ===其他形式=== * {{alt|nb|pendla}} ===動詞=== {{head|nb|動詞f}} # {{inflection of|nb|pendle||簡單過去時|;|past|part}}」的新頁面
9938507
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ˈpɛndlət/}}
* {{audio|de|De-pendlet.ogg|a=柏林}}
===動詞===
{{head|de|動詞變位形式}}
# {{verb form of|de|pendeln||2|p|sub|I}}
==書面挪威語==
===其他形式===
* {{alt|nb|pendla}}
===動詞===
{{head|nb|動詞f}}
# {{inflection of|nb|pendle||簡單過去時|;|past|part}}
tc1gtk59ci1gw1uwtjnnpcxue5y9sj6
9938508
9938507
2026-10-05T09:10:19Z
Sayonzei
40728
/* 動詞 */
9938508
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ˈpɛndlət/}}
* {{audio|de|De-pendlet.ogg|a=柏林}}
===動詞===
{{head|de|動詞變位形式}}
# {{verb form of|de|pendeln||2|p|sub|I}}
==書面挪威語==
===其他形式===
* {{alt|nb|pendla}}
===動詞===
{{head|nb|動詞變位形式}}
# {{inflection of|nb|pendle||簡單過去時|;|past|part}}
pg7muej6z1frdbk5wlvyt1mf057wzfv
pendelend
0
3543311
9938509
2026-10-05T09:10:40Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==荷蘭語== ===發音=== * {{audio|nl|Nl-pendelend.ogg}} ===分詞=== {{head|nl|現在分詞}} # {{present participle of|nl|pendelen}} ====變格==== {{nl-decl-pres-ptc}} ===異序詞=== * {{l|nl|pendelden}}」的新頁面
9938509
wikitext
text/x-wiki
==荷蘭語==
===發音===
* {{audio|nl|Nl-pendelend.ogg}}
===分詞===
{{head|nl|現在分詞}}
# {{present participle of|nl|pendelen}}
====變格====
{{nl-decl-pres-ptc}}
===異序詞===
* {{l|nl|pendelden}}
s3yz0w0yugs18xqp6zs2fpz179nep8z
pendelde
0
3543312
9938510
2026-10-05T09:10:42Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==荷蘭語== ===發音=== * {{audio|nl|Nl-pendelde.ogg}} ===動詞=== {{head|nl|動詞變位形式}} # {{infl of|nl|pendelen||past-sg}}」的新頁面
9938510
wikitext
text/x-wiki
==荷蘭語==
===發音===
* {{audio|nl|Nl-pendelde.ogg}}
===動詞===
{{head|nl|動詞變位形式}}
# {{infl of|nl|pendelen||past-sg}}
axir2xifmer5v71wiezkfa4xi4p0jc5
pendelden
0
3543313
9938511
2026-10-05T09:10:47Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==荷蘭語== ===發音=== * {{audio|nl|Nl-pendelden.ogg}} ===動詞=== {{head|nl|動詞變位形式}} # {{infl of|nl|pendelen||past-pl}} ===異序詞=== * {{l|nl|pendelend}}」的新頁面
9938511
wikitext
text/x-wiki
==荷蘭語==
===發音===
* {{audio|nl|Nl-pendelden.ogg}}
===動詞===
{{head|nl|動詞變位形式}}
# {{infl of|nl|pendelen||past-pl}}
===異序詞===
* {{l|nl|pendelend}}
ox89s5zzvsmmgjfx1qrbqfevlqviqk3
gependeld
0
3543314
9938512
2026-10-05T09:10:49Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==荷蘭語== ===發音=== * {{audio|nl|Nl-gependeld.ogg}} ===分詞=== {{nl-past-ptc}} # {{past participle of|nl|pendelen}} ====變格==== {{nl-decl-past-ptc}}」的新頁面
9938512
wikitext
text/x-wiki
==荷蘭語==
===發音===
* {{audio|nl|Nl-gependeld.ogg}}
===分詞===
{{nl-past-ptc}}
# {{past participle of|nl|pendelen}}
====變格====
{{nl-decl-past-ptc}}
josx48fnacb2mhspubw6ymim1n5lcko
pendel
0
3543315
9938513
2026-10-05T09:12:47Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「{{also|Pendel}} ==荷蘭語== ===發音=== * {{audio|nl|Nl-pendel.ogg}} * {{rhymes|nl|ɛndəl|s=2}} ===動詞=== {{head|nl|動詞變位形式}} # {{infl of|nl|pendelen||bare-verb}} ==德語== ===發音=== * {{IPA|de|/ˈpɛndl̩/}} * {{audio|de|De-pendel.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|pendeln||1|s|pres|;|s|imp}} ==書面挪威語== {{wp|no:}} ===詞源=== 源自{{der|nb|la|pendulus}}。…」的新頁面
9938513
wikitext
text/x-wiki
{{also|Pendel}}
==荷蘭語==
===發音===
* {{audio|nl|Nl-pendel.ogg}}
* {{rhymes|nl|ɛndəl|s=2}}
===動詞===
{{head|nl|動詞變位形式}}
# {{infl of|nl|pendelen||bare-verb}}
==德語==
===發音===
* {{IPA|de|/ˈpɛndl̩/}}
* {{audio|de|De-pendel.ogg|a=柏林}}
===動詞===
{{head|de|動詞變位形式}}
# {{verb form of|de|pendeln||1|s|pres|;|s|imp}}
==書面挪威語==
{{wp|no:}}
===詞源===
源自{{der|nb|la|pendulus}}。
===名詞===
{{nb-noun-m1||pendl}}
# [[擺]],[[鐘擺]]
===參考資料===
* {{R:nb:OB}}
==新挪威語==
{{wp|nn:}}
===詞源===
源自{{der|nn|la|pendulus}}。
===名詞===
{{nn-noun-m1||pendl}}
# [[擺]],[[鐘擺]]
===參考資料===
* {{R:nn:OB}}
==瑞典語==
===名詞===
{{sv-noun|c}}
# [[擺]],[[鐘擺]]
# {{lb|sv|運輸|原為 '''[[pendeltåg]]''' 或較少見的 '''[[pendelbuss]]''' 的縮略}} [[通勤]][[運輸]][[系統]]或其中的[[車輛]]
====變格====
{{sv-infl-noun-c-r|3=pendla}}
====派生詞彙====
* {{l|sv|gränspendel}}
{{sense|擺}}
{{col|sv
|pendelaxel
|pendellängd
|pendelstång
|pendelur<t:擺鐘>
}}
{{sense|通勤}}
{{col|sv
|citypendel
|pendelbåt<t:通勤渡轮>
|pendelparkering<t:通勤泊車>
|pendeltåg<t:通勤列车>
|pendeltrafik<t:通勤運輸>
|pendla<t:通勤>
|* pendlare<t:通勤者>
}}
====相關詞彙====
* {{l|sv|pendla}}
* {{l|sv|pendlare}}
* {{l|sv|pendling}}
====參見====
* {{l|sv|skytteltrafik}}
===參考資料===
* {{R:svenska.se|so}}
* {{R:svenska.se|saol}}
* {{R:svenska.se|saob}}
q7ybt54vo2vizder6lgwwpjhb9c5yk9
pendle
0
3543316
9938514
2026-10-05T09:13:15Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「{{also|Pendle}} ==德語== ===發音=== * {{IPA|de|/ˈpɛndlə/}} * {{audio|de|De-pendle.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|pendeln||1|s|pres|;|s|imp|;|1//3|s|sub|I}} ==書面挪威語== ===詞源=== 對照{{cog|de|pendeln}} ===動詞=== {{head|nb|動詞|祈使語氣|pendl|or|pendle|現在時|pendler|被動形|pendles|簡單過去時及過去分詞|pendla|or|pendlet|現在分詞|pendlende}} #…」的新頁面
9938514
wikitext
text/x-wiki
{{also|Pendle}}
==德語==
===發音===
* {{IPA|de|/ˈpɛndlə/}}
* {{audio|de|De-pendle.ogg|a=柏林}}
===動詞===
{{head|de|動詞變位形式}}
# {{verb form of|de|pendeln||1|s|pres|;|s|imp|;|1//3|s|sub|I}}
==書面挪威語==
===詞源===
對照{{cog|de|pendeln}}
===動詞===
{{head|nb|動詞|祈使語氣|pendl|or|pendle|現在時|pendler|被動形|pendles|簡單過去時及過去分詞|pendla|or|pendlet|現在分詞|pendlende}}
# [[搖擺]];[[振蕩]]
# [[通勤]];[[往返]]
====相關詞彙====
* {{l|nb|pendler}} {{qualifier|名詞}}
===參考資料===
* {{R:nb:OB}}
==新挪威語==
===其他形式===
* {{alt|nn|pendla}}
===動詞===
{{nn-verb-1}}
# [[搖擺]];[[振蕩]]
# [[通勤]];[[往返]]
===參考資料===
* {{R:nn:OB}}
54pzlarwsirb9x4wmbfb3sgzpuem84j
nebulizzare
0
3543317
9938515
2026-10-05T09:15:20Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===詞源=== {{ety|it|:af|nebula|-izzare}} 源自 {{suffix|it|nebula|izzare}}。 ===發音=== {{it-pr}} ===動詞=== {{it-verb|a/ì}} # {{lb|it|及物}} 使[[霧化]] ====變位==== {{it-conj|a/ì}} ====派生詞彙==== * {{l|it|nebulizzatore}} * {{l|it|nebulizzazione}} ===異序詞=== * {{anagrams|it|a=abeeilnruzz|nebulizzerà}}」的新頁面
9938515
wikitext
text/x-wiki
==意大利語==
===詞源===
{{ety|it|:af|nebula|-izzare}}
源自 {{suffix|it|nebula|izzare}}。
===發音===
{{it-pr}}
===動詞===
{{it-verb|a/ì}}
# {{lb|it|及物}} 使[[霧化]]
====變位====
{{it-conj|a/ì}}
====派生詞彙====
* {{l|it|nebulizzatore}}
* {{l|it|nebulizzazione}}
===異序詞===
* {{anagrams|it|a=abeeilnruzz|nebulizzerà}}
5k8lc9vzqlvqbbo3cx8mr74yphs7oyk
nebulizzante
0
3543318
9938516
2026-10-05T09:15:26Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{it-presp}} # {{present participle of|it|nebulizzare}}」的新頁面
9938516
wikitext
text/x-wiki
==意大利語==
===分詞===
{{it-presp}}
# {{present participle of|it|nebulizzare}}
dfoac9pkjoboufvcmvetkgim8bp2ml3
nebulizzato
0
3543319
9938517
2026-10-05T09:15:28Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{it-pp}} # {{past participle of|it|nebulizzare}}」的新頁面
9938517
wikitext
text/x-wiki
==意大利語==
===分詞===
{{it-pp}}
# {{past participle of|it|nebulizzare}}
2slg2zbwbzfo45v9ktsjvqpr1kypxr3
nebulizzanti
0
3543320
9938518
2026-10-05T09:15:49Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{head|it|分詞變格形}} # {{plural of|it|nebulizzante}}」的新頁面
9938518
wikitext
text/x-wiki
==意大利語==
===分詞===
{{head|it|分詞變格形}}
# {{plural of|it|nebulizzante}}
bnn7bdvmfkz043dorj25ijwt1y3fpkd
nebulizzata
0
3543321
9938519
2026-10-05T09:15:51Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{head|it|過去分詞變格形|g=f-s}} # {{feminine singular of|it|nebulizzato}}」的新頁面
9938519
wikitext
text/x-wiki
==意大利語==
===分詞===
{{head|it|過去分詞變格形|g=f-s}}
# {{feminine singular of|it|nebulizzato}}
dh0t9rocirvlqs7bscrabc4m5i9nwv5
nebulizzati
0
3543322
9938520
2026-10-05T09:15:53Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{head|it|過去分詞變格形|g=m-p}} # {{masculine plural of|it|nebulizzato}}」的新頁面
9938520
wikitext
text/x-wiki
==意大利語==
===分詞===
{{head|it|過去分詞變格形|g=m-p}}
# {{masculine plural of|it|nebulizzato}}
2subonmmkktqmtkkc0zn65lmsz164gk
nebulizzate
0
3543323
9938521
2026-10-05T09:15:55Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===詞源1=== ====動詞==== {{head|it|動詞變位形式}} # {{inflection of|it|nebulizzare||2|p|pres|indc|;|2|p|impr}} ===詞源2=== ====分詞==== {{head|it|過去分詞變格形|g=f-p}} # {{feminine plural of|it|nebulizzato}}」的新頁面
9938521
wikitext
text/x-wiki
==意大利語==
===詞源1===
====動詞====
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||2|p|pres|indc|;|2|p|impr}}
===詞源2===
====分詞====
{{head|it|過去分詞變格形|g=f-p}}
# {{feminine plural of|it|nebulizzato}}
ot9ccvvomy0fxyk61bu02esw5gg9y4m
nebulizzatore
0
3543324
9938522
2026-10-05T09:16:03Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===詞源=== {{ety|it|:af|nebulizzare|-tore}} 源自 {{suffix|it|nebulizzare|tore}}。 ===發音=== {{it-pr}} ===名詞=== {{it-noun|m}} # [[噴霧器]]」的新頁面
9938522
wikitext
text/x-wiki
==意大利語==
===詞源===
{{ety|it|:af|nebulizzare|-tore}}
源自 {{suffix|it|nebulizzare|tore}}。
===發音===
{{it-pr}}
===名詞===
{{it-noun|m}}
# [[噴霧器]]
rqyc6wsss1my0sejbwsqy9oqk91gpyk
nebulizzatori
0
3543325
9938523
2026-10-05T09:16:19Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===名詞=== {{head|it|名詞變格形|g=m}} # {{plural of|it|nebulizzatore}}」的新頁面
9938523
wikitext
text/x-wiki
==意大利語==
===名詞===
{{head|it|名詞變格形|g=m}}
# {{plural of|it|nebulizzatore}}
m8q6ezp12lb6xmcyc06il3b2j9mo5ai
nebulizzazione
0
3543326
9938524
2026-10-05T09:16:28Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===詞源=== {{ety|it|:af|nebulizzare|-zione}} 源自 {{suffix|it|nebulizzare|zione}}。 ===發音=== {{it-pr}} ===名詞=== {{it-noun|f}} # [[霧化]]」的新頁面
9938524
wikitext
text/x-wiki
==意大利語==
===詞源===
{{ety|it|:af|nebulizzare|-zione}}
源自 {{suffix|it|nebulizzare|zione}}。
===發音===
{{it-pr}}
===名詞===
{{it-noun|f}}
# [[霧化]]
be6b1nzm344r75eqbpebf1wyhdbvft2
nebulizzazioni
0
3543327
9938525
2026-10-05T09:16:53Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===名詞=== {{head|it|名詞變格形|g=f}} # {{plural of|it|nebulizzazione}}」的新頁面
9938525
wikitext
text/x-wiki
==意大利語==
===名詞===
{{head|it|名詞變格形|g=f}}
# {{plural of|it|nebulizzazione}}
qz32ns072xeutgfrhmbb5bt4zqlucto
negreggiare
0
3543328
9938526
2026-10-05T09:17:13Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===詞源=== {{ety|it|:af|negro|-eggiare}} 源自 {{af|it|negro|-eggiare}}。 ===動詞=== {{it-verb|a/é}} # {{tlb|it|不常見|不及物|or|及物}} {{alt form|it|nereggiare}} {{tlb|it|及物}} ====變位==== {{it-conj|a/é}} ===延伸閱讀=== * {{R:it:Treccani}} ===異序詞=== * {{anagrams|it|a=aeeeggginrr|negreggerai}}」的新頁面
9938526
wikitext
text/x-wiki
==意大利語==
===詞源===
{{ety|it|:af|negro|-eggiare}}
源自 {{af|it|negro|-eggiare}}。
===動詞===
{{it-verb|a/é}}
# {{tlb|it|不常見|不及物|or|及物}} {{alt form|it|nereggiare}} {{tlb|it|及物}}
====變位====
{{it-conj|a/é}}
===延伸閱讀===
* {{R:it:Treccani}}
===異序詞===
* {{anagrams|it|a=aeeeggginrr|negreggerai}}
afxg5izg4tryr36qmzup67i09e8koce
negreggiante
0
3543329
9938527
2026-10-05T09:17:17Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{it-presp}} # {{present participle of|it|negreggiare}}」的新頁面
9938527
wikitext
text/x-wiki
==意大利語==
===分詞===
{{it-presp}}
# {{present participle of|it|negreggiare}}
h3x937dq3h98zz0jz1irtwwnrf6qqkl
negreggiato
0
3543330
9938528
2026-10-05T09:17:19Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{it-pp}} # {{past participle of|it|negreggiare}}」的新頁面
9938528
wikitext
text/x-wiki
==意大利語==
===分詞===
{{it-pp}}
# {{past participle of|it|negreggiare}}
avh5xt67gkk0i03fncg78rtkenlsslm
negreggianti
0
3543331
9938529
2026-10-05T09:17:33Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{head|it|分詞變格形}} # {{plural of|it|negreggiante}}」的新頁面
9938529
wikitext
text/x-wiki
==意大利語==
===分詞===
{{head|it|分詞變格形}}
# {{plural of|it|negreggiante}}
2g351lmyluxo6to6nqq6r4bg6kzc7si
negreggiata
0
3543332
9938530
2026-10-05T09:17:41Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{head|it|過去分詞變格形|g=f-s}} # {{feminine singular of|it|negreggiato}} ===異序詞=== * {{anagrams|it|a=aaeeggginrt|gareggiante}}」的新頁面
9938530
wikitext
text/x-wiki
==意大利語==
===分詞===
{{head|it|過去分詞變格形|g=f-s}}
# {{feminine singular of|it|negreggiato}}
===異序詞===
* {{anagrams|it|a=aaeeggginrt|gareggiante}}
a0kqsziu9uqjld89jw6qw1u096zuth3
negreggiate
0
3543333
9938531
2026-10-05T09:17:42Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===詞源1=== ====動詞==== {{head|it|動詞變位形式}} # {{inflection of|it|negreggiare||2|p|pres|ind//sub|;|2|p|imp}} ===詞源2=== ====分詞==== {{head|it|過去分詞變格形|g=f-p}} # {{feminine plural of|it|negreggiato}} ===異序詞=== * {{anagrams|it|a=aeeeggginrt|ingaggerete}}」的新頁面
9938531
wikitext
text/x-wiki
==意大利語==
===詞源1===
====動詞====
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||2|p|pres|ind//sub|;|2|p|imp}}
===詞源2===
====分詞====
{{head|it|過去分詞變格形|g=f-p}}
# {{feminine plural of|it|negreggiato}}
===異序詞===
* {{anagrams|it|a=aeeeggginrt|ingaggerete}}
qvsp5su182lqxbshuuov05st5a1dntr
negreggiati
0
3543334
9938532
2026-10-05T09:17:44Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{head|it|過去分詞變格形|g=m-p}} # {{masculine plural of|it|negreggiato}}」的新頁面
9938532
wikitext
text/x-wiki
==意大利語==
===分詞===
{{head|it|過去分詞變格形|g=m-p}}
# {{masculine plural of|it|negreggiato}}
8gx4e8vhxry4hmltwdk5kh7bae4ze6m
nereggiare
0
3543335
9938533
2026-10-05T09:18:52Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===詞源=== {{ety|it|:af|nero<t:黑色的>|-eggiare}} 源自 {{suffix|it|nero|gloss1=黑色的|eggiare}}。 ===動詞=== {{it-verb|a/é}} {{tlb|it|書面}} # {{lb|it|不及物}} 呈[[黑色]] {{+aux|it|avere}} # {{lb|it|不及物}} 開始變黑 {{qualifier|尤其指水果}} {{+aux|it|avere}} # {{lb|it|rare|及物}} [[染]]成黑色 ====變位==== {{it-conj|a/é}} ====派生詞彙==== * {{l|it|nereggiamento}} * {{l|it|ne…」的新頁面
9938533
wikitext
text/x-wiki
==意大利語==
===詞源===
{{ety|it|:af|nero<t:黑色的>|-eggiare}}
源自 {{suffix|it|nero|gloss1=黑色的|eggiare}}。
===動詞===
{{it-verb|a/é}} {{tlb|it|書面}}
# {{lb|it|不及物}} 呈[[黑色]] {{+aux|it|avere}}
# {{lb|it|不及物}} 開始變黑 {{qualifier|尤其指水果}} {{+aux|it|avere}}
# {{lb|it|rare|及物}} [[染]]成黑色
====變位====
{{it-conj|a/é}}
====派生詞彙====
* {{l|it|nereggiamento}}
* {{l|it|nereggiante}}
===異序詞===
* {{anagrams|it|a=aeeegginrr|nereggerai}}
6il9kim5yko5x4cd3hrvzt3y7eh4sp9
nereggiato
0
3543336
9938534
2026-10-05T09:19:10Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{it-pp|inv=1}} # {{past participle of|it|nereggiare}} ===異序詞=== * {{anagrams|it|a=aeegginort|tenoreggia|toneggiare}}」的新頁面
9938534
wikitext
text/x-wiki
==意大利語==
===分詞===
{{it-pp|inv=1}}
# {{past participle of|it|nereggiare}}
===異序詞===
* {{anagrams|it|a=aeegginort|tenoreggia|toneggiare}}
j2ndmdkrkgc3iu56ngyugfdo6lsd8xi
nereggiante
0
3543337
9938535
2026-10-05T09:20:02Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===發音=== {{it-pr}} ===分詞=== {{it-presp}} # {{present participle of|it|nereggiare}} ===形容詞=== {{it-adj}} {{tlb|it|書面}} #(逐漸)呈現[[黑色]]的 #: {{syn|it|nerastro|nericcio|q2=不不常用|nerigno|q3=書面,罕用|nerognolo}} #: {{ant|it|biancastro|biancheggiante|q2=不不常用|bianchiccio|biancicante|q4=書面|biancoso|q5=書面,古舊}}」的新頁面
9938535
wikitext
text/x-wiki
==意大利語==
===發音===
{{it-pr}}
===分詞===
{{it-presp}}
# {{present participle of|it|nereggiare}}
===形容詞===
{{it-adj}} {{tlb|it|書面}}
#(逐漸)呈現[[黑色]]的
#: {{syn|it|nerastro|nericcio|q2=不不常用|nerigno|q3=書面,罕用|nerognolo}}
#: {{ant|it|biancastro|biancheggiante|q2=不不常用|bianchiccio|biancicante|q4=書面|biancoso|q5=書面,古舊}}
7lo9rmpghv6p6ixhdyul6hph0je1f3t
nereggianti
0
3543338
9938536
2026-10-05T09:20:20Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===形容詞=== {{head|it|形容詞變格形}} # {{adj form of|it|nereggiante||m//f|p}} ===異序詞=== * {{anagrams|it|a=aeeggiinnrt|agrigentine}}」的新頁面
9938536
wikitext
text/x-wiki
==意大利語==
===形容詞===
{{head|it|形容詞變格形}}
# {{adj form of|it|nereggiante||m//f|p}}
===異序詞===
* {{anagrams|it|a=aeeggiinnrt|agrigentine}}
tmt6oxzzeypjxcvxes1bktta2lsirli
neologizzare
0
3543339
9938537
2026-10-05T09:21:07Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===詞源=== {{ety|it|:af|neologia|-izzare}} 源自 {{suffix|it|neologia|izzare}}。 ===動詞=== {{it-verb|a/ì}} # [[創造]][[新詞]] ====變位==== {{it-conj|a/ì}} ===異序詞=== * {{anagrams|it|a=aeegilnoorzz|neologizzerà}}」的新頁面
9938537
wikitext
text/x-wiki
==意大利語==
===詞源===
{{ety|it|:af|neologia|-izzare}}
源自 {{suffix|it|neologia|izzare}}。
===動詞===
{{it-verb|a/ì}}
# [[創造]][[新詞]]
====變位====
{{it-conj|a/ì}}
===異序詞===
* {{anagrams|it|a=aeegilnoorzz|neologizzerà}}
pw6o9cgb41hpuncc1nxj40kjrfmclr4
neologizzante
0
3543340
9938538
2026-10-05T09:21:31Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{it-presp}} # {{present participle of|it|neologizzare}}」的新頁面
9938538
wikitext
text/x-wiki
==意大利語==
===分詞===
{{it-presp}}
# {{present participle of|it|neologizzare}}
o7lrnbwpmp7wjolv575igiimtplxcqo
neologizzato
0
3543341
9938539
2026-10-05T09:21:33Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{it-pp|inv=1}} # {{past participle of|it|neologizzare}} ===異序詞=== * {{anagrams|it|a=aegilnoootzz|teologizzano}}」的新頁面
9938539
wikitext
text/x-wiki
==意大利語==
===分詞===
{{it-pp|inv=1}}
# {{past participle of|it|neologizzare}}
===異序詞===
* {{anagrams|it|a=aegilnoootzz|teologizzano}}
m8dvcc9yb4kh6yrvi6su2h1kqq3ew10
nichelare
0
3543342
9938540
2026-10-05T09:22:14Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===其他形式=== * {{alt|it|nichellare||口語}} ===詞源=== {{ety|it|:af|nichel|-are}} 源自 {{af|it|nichel|-are}}。 ===發音=== {{it-pr}} ===動詞=== {{it-verb|a/ì}} # {{lb|it|及物}} [[鍍]][[鎳]] ====變位==== {{it-conj|a/ì}} ====派生詞彙==== * {{l|it|nichelato}} * {{l|it|nichelatore}} * {{l|it|nichelatura}} ===延伸閱讀=== * {{R:it:Treccani}} ===異序詞=== * {{anagrams|it|a=aceehilnr|nichele…」的新頁面
9938540
wikitext
text/x-wiki
==意大利語==
===其他形式===
* {{alt|it|nichellare||口語}}
===詞源===
{{ety|it|:af|nichel|-are}}
源自 {{af|it|nichel|-are}}。
===發音===
{{it-pr}}
===動詞===
{{it-verb|a/ì}}
# {{lb|it|及物}} [[鍍]][[鎳]]
====變位====
{{it-conj|a/ì}}
====派生詞彙====
* {{l|it|nichelato}}
* {{l|it|nichelatore}}
* {{l|it|nichelatura}}
===延伸閱讀===
* {{R:it:Treccani}}
===異序詞===
* {{anagrams|it|a=aceehilnr|nichelerà}}
==羅馬尼亞語==
===詞源===
{{ety|ro|:af|nichela|-re|text=+|tree=1}}
===名詞===
{{ro-noun|f|nichelări}}
# [[鍍]][[鎳]]
====變格====
{{ro-noun-f-e|nichelar|nichelăr}}
hawwniiuytp2q962rd70q1d88b92yk3
nichela
0
3543343
9938541
2026-10-05T09:22:27Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===動詞=== {{head|it|動詞變位形式}} # {{inflection of|it|nichelare||3|s|pres|indc|;|2|s|impr}} ===異序詞=== * {{anagrams|it|a=acehiln|alcheni}} ==羅馬尼亞語== ===詞源=== {{ety|ro|:bor|fr:nickeler|text=+|tree=1}} ===動詞=== {{ro-verb|conj=1|nichelează|nichelat}} # [[鍍]][[鎳]] ====變位==== {{ro-conj-a-ez}}」的新頁面
9938541
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||3|s|pres|indc|;|2|s|impr}}
===異序詞===
* {{anagrams|it|a=acehiln|alcheni}}
==羅馬尼亞語==
===詞源===
{{ety|ro|:bor|fr:nickeler|text=+|tree=1}}
===動詞===
{{ro-verb|conj=1|nichelează|nichelat}}
# [[鍍]][[鎳]]
====變位====
{{ro-conj-a-ez}}
ffnezlyvwe0sb32mvzy6brycy8oajcg
nichelante
0
3543344
9938542
2026-10-05T09:22:30Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{it-presp}} # {{present participle of|it|nichelare}}」的新頁面
9938542
wikitext
text/x-wiki
==意大利語==
===分詞===
{{it-presp}}
# {{present participle of|it|nichelare}}
7gxnwj9qxu3i5q5e4xv24kcwhwwi8l2
nichelato
0
3543345
9938543
2026-10-05T09:22:34Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{it-pp}} # {{past participle of|it|nichelare}} ===形容詞=== {{it-adj}} # [[鍍]][[鎳]]的」的新頁面
9938543
wikitext
text/x-wiki
==意大利語==
===分詞===
{{it-pp}}
# {{past participle of|it|nichelare}}
===形容詞===
{{it-adj}}
# [[鍍]][[鎳]]的
ldw2wr8iv4drvcysy138qe66ch195rj
nichelanti
0
3543346
9938544
2026-10-05T09:22:45Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{head|it|分詞變格形}} # {{plural of|it|nichelante}}」的新頁面
9938544
wikitext
text/x-wiki
==意大利語==
===分詞===
{{head|it|分詞變格形}}
# {{plural of|it|nichelante}}
pfq42jzm0i5ojfmdj1ue248a6qu5l1n
nichelata
0
3543347
9938545
2026-10-05T09:22:52Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{head|it|過去分詞變格形|g=f-s}} # {{feminine singular of|it|nichelato}}」的新頁面
9938545
wikitext
text/x-wiki
==意大利語==
===分詞===
{{head|it|過去分詞變格形|g=f-s}}
# {{feminine singular of|it|nichelato}}
2gciqg28p84nuhzahqj9u1ajc18l5ud
nichelati
0
3543348
9938546
2026-10-05T09:22:54Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{head|it|過去分詞變格形|g=m-p}} # {{masculine plural of|it|nichelato}}」的新頁面
9938546
wikitext
text/x-wiki
==意大利語==
===分詞===
{{head|it|過去分詞變格形|g=m-p}}
# {{masculine plural of|it|nichelato}}
rm70b80n7s8ul79klduucsrh46e7thg
nichelate
0
3543349
9938547
2026-10-05T09:22:55Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===詞源1=== ====動詞==== {{head|it|動詞變位形式}} # {{inflection of|it|nichelare||2|p|pres|indc|;|2|p|impr}} ===詞源2=== ====分詞==== {{head|it|過去分詞變格形|g=f-p}} # {{feminine plural of|it|nichelato}}」的新頁面
9938547
wikitext
text/x-wiki
==意大利語==
===詞源1===
====動詞====
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||2|p|pres|indc|;|2|p|impr}}
===詞源2===
====分詞====
{{head|it|過去分詞變格形|g=f-p}}
# {{feminine plural of|it|nichelato}}
2iu62q4wkzus5p2chjh59q1hwby25p8
nichelatura
0
3543350
9938548
2026-10-05T09:23:13Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===詞源=== {{ety|it|:af|nichelare|-tura}} 源自 {{af|it|nichelare|-tura}}。 ===名詞=== {{it-noun|f}} # [[鍍]][[鎳]] ===延伸閱讀=== * {{R:it:Treccani}}」的新頁面
9938548
wikitext
text/x-wiki
==意大利語==
===詞源===
{{ety|it|:af|nichelare|-tura}}
源自 {{af|it|nichelare|-tura}}。
===名詞===
{{it-noun|f}}
# [[鍍]][[鎳]]
===延伸閱讀===
* {{R:it:Treccani}}
9hjg33es004jymfss705ohuk7oaj56f
nichelature
0
3543351
9938549
2026-10-05T09:23:33Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===名詞=== {{head|it|名詞變格形|g=f}} # {{plural of|it|nichelatura}}」的新頁面
9938549
wikitext
text/x-wiki
==意大利語==
===名詞===
{{head|it|名詞變格形|g=f}}
# {{plural of|it|nichelatura}}
klgjhsv6ifwl7i96tvike0xsi6bmogj
niellare
0
3543352
9938550
2026-10-05T09:24:07Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===詞源=== {{ety|it|:af|niello|-are}} 源自 {{af|it|niello|-are}}。 ===發音=== {{it-pr|niellàre,#ni.ellàre}} ===動詞=== {{it-verb|a/è}} # {{lb|it|及物}} 用[[烏銀]][[裝飾]] ====變位==== {{it-conj|a/è}} ====派生詞彙==== * {{l|it|niellatore}} * {{l|it|niellatura}} ===異序詞=== * {{anagrams|it|a=aeeillnr|allenire|niellerà}}」的新頁面
9938550
wikitext
text/x-wiki
==意大利語==
===詞源===
{{ety|it|:af|niello|-are}}
源自 {{af|it|niello|-are}}。
===發音===
{{it-pr|niellàre,#ni.ellàre}}
===動詞===
{{it-verb|a/è}}
# {{lb|it|及物}} 用[[烏銀]][[裝飾]]
====變位====
{{it-conj|a/è}}
====派生詞彙====
* {{l|it|niellatore}}
* {{l|it|niellatura}}
===異序詞===
* {{anagrams|it|a=aeeillnr|allenire|niellerà}}
jq2akvsqnykgmqvtmr4m5y7n8fclcss
niellante
0
3543353
9938551
2026-10-05T09:24:22Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{it-presp}} # {{present participle of|it|niellare}}」的新頁面
9938551
wikitext
text/x-wiki
==意大利語==
===分詞===
{{it-presp}}
# {{present participle of|it|niellare}}
8ujuzxf3ht5sfr6urkt101qq6s7556c
niellato
0
3543354
9938552
2026-10-05T09:24:24Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{it-pp}} # {{past participle of|it|niellare}} ===異序詞=== * {{anagrams|it|a=aeillnot|allenito}}」的新頁面
9938552
wikitext
text/x-wiki
==意大利語==
===分詞===
{{it-pp}}
# {{past participle of|it|niellare}}
===異序詞===
* {{anagrams|it|a=aeillnot|allenito}}
0mkmlenp5xuqed824ubn4crohtg9aai
niellanti
0
3543355
9938553
2026-10-05T09:24:35Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{head|it|分詞變格形}} # {{plural of|it|niellante}}」的新頁面
9938553
wikitext
text/x-wiki
==意大利語==
===分詞===
{{head|it|分詞變格形}}
# {{plural of|it|niellante}}
4jfilxq4ot4qzd38ulyqjrai0vyzjjq
niellata
0
3543356
9938554
2026-10-05T09:24:38Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{head|it|過去分詞變格形|g=f-s}} # {{feminine singular of|it|niellato}} ===異序詞=== * {{anagrams|it|a=aaeillnt|alleanti|allenati|allenita|allentai|altaleni|anellati}}」的新頁面
9938554
wikitext
text/x-wiki
==意大利語==
===分詞===
{{head|it|過去分詞變格形|g=f-s}}
# {{feminine singular of|it|niellato}}
===異序詞===
* {{anagrams|it|a=aaeillnt|alleanti|allenati|allenita|allentai|altaleni|anellati}}
ocrbss857fmcwokjbi8u2j7hyz9q547
niellate
0
3543357
9938555
2026-10-05T09:24:41Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===詞源1=== ====動詞==== {{head|it|動詞變位形式}} # {{inflection of|it|niellare||2|p|pres|indc|;|2|p|impr}} ===詞源2=== ====分詞==== {{head|it|過去分詞變格形|g=f-p}} # {{feminine plural of|it|niellato}} ===異序詞=== * {{anagrams|it|a=aeeillnt|allenite}}」的新頁面
9938555
wikitext
text/x-wiki
==意大利語==
===詞源1===
====動詞====
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||2|p|pres|indc|;|2|p|impr}}
===詞源2===
====分詞====
{{head|it|過去分詞變格形|g=f-p}}
# {{feminine plural of|it|niellato}}
===異序詞===
* {{anagrams|it|a=aeeillnt|allenite}}
49ax375c8ozmqgrg4frd4x11o8hjc3o
niellati
0
3543358
9938556
2026-10-05T09:24:43Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{head|it|過去分詞變格形|g=m-p}} # {{masculine plural of|it|niellato}} ===異序詞=== * {{anagrams|it|a=aeiillnt|alleniti}}」的新頁面
9938556
wikitext
text/x-wiki
==意大利語==
===分詞===
{{head|it|過去分詞變格形|g=m-p}}
# {{masculine plural of|it|niellato}}
===異序詞===
* {{anagrams|it|a=aeiillnt|alleniti}}
m9yun6s88t0bx2cn10gk5thyn5qrtvu
niella
0
3543359
9938557
2026-10-05T09:25:45Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「{{also|niellä}} ==加泰羅尼亞語== ===詞源=== {{inh+|ca|la-lat|nigella}},{{inh|ca|la|nigellus|t=呈黑色的}} 的陰性形的名詞化,指的是下述植物的小黑種子。 ===發音=== * {{ca-IPA|é}} ===名詞=== {{ca-noun|f}} # [[麥仙翁]] ({{taxfmt|Agrostemma githago|species}}) #: {{syn|ca|clavell d'ase|clavell de blat}} # [[黑種草]] ({{taxfmt|Nigella damascena|species}}) #: {{syn|ca|flor d'aranya}} ===延伸閱讀…」的新頁面
9938557
wikitext
text/x-wiki
{{also|niellä}}
==加泰羅尼亞語==
===詞源===
{{inh+|ca|la-lat|nigella}},{{inh|ca|la|nigellus|t=呈黑色的}} 的陰性形的名詞化,指的是下述植物的小黑種子。
===發音===
* {{ca-IPA|é}}
===名詞===
{{ca-noun|f}}
# [[麥仙翁]] ({{taxfmt|Agrostemma githago|species}})
#: {{syn|ca|clavell d'ase|clavell de blat}}
# [[黑種草]] ({{taxfmt|Nigella damascena|species}})
#: {{syn|ca|flor d'aranya}}
===延伸閱讀===
* {{R:ca:DCVB}}
* {{R:ca:IEC2}}
{{C|ca|毛茛科植物|石竹科植物|花}}
==法語==
===發音===
* {{homophones|fr|niellas|niellât}}
===動詞===
{{head|fr|動詞變位形式}}
# {{inflection of|fr|nieller||3|s|phis}}
==意大利語==
===發音===
{{it-pr|nièlla,#ni.èlla}}
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||3|s|pres|indc|;|2|s|impr}}
===異序詞===
* {{anagrams|it|a=aeilln|-ellina|Anelli|alleni|allenì|anelli}}
e63lxt4rxikkhf191dmlfmia41dj6sw
ninfeggiare
0
3543360
9938558
2026-10-05T09:26:31Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===詞源=== {{ety|it|:af|ninfa|-eggiare}} 源自 {{af|it|ninfa|-eggiare}}。 ===動詞=== {{it-verb|a/é}} # {{lb|it|不及物|書面|rare|or|古舊}} [[矯揉造作]],[[扭捏]][[作態]] {{+aux|it|avere}} ====變位==== {{it-conj|a/é}} ===延伸閱讀=== * {{R:it:Treccani}} ===異序詞=== * {{anagrams|it|a=aeefggiinnr|ninfeggerai}}」的新頁面
9938558
wikitext
text/x-wiki
==意大利語==
===詞源===
{{ety|it|:af|ninfa|-eggiare}}
源自 {{af|it|ninfa|-eggiare}}。
===動詞===
{{it-verb|a/é}}
# {{lb|it|不及物|書面|rare|or|古舊}} [[矯揉造作]],[[扭捏]][[作態]] {{+aux|it|avere}}
====變位====
{{it-conj|a/é}}
===延伸閱讀===
* {{R:it:Treccani}}
===異序詞===
* {{anagrams|it|a=aeefggiinnr|ninfeggerai}}
1oepjo77gfv39yey34p61zfepmh9jij
ninfeggiante
0
3543361
9938559
2026-10-05T09:26:34Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{it-presp}} # {{present participle of|it|ninfeggiare}}」的新頁面
9938559
wikitext
text/x-wiki
==意大利語==
===分詞===
{{it-presp}}
# {{present participle of|it|ninfeggiare}}
ms9nlpuwfqcseq26m5tbe45i0zqlru9
ninfeggiato
0
3543362
9938560
2026-10-05T09:26:36Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{it-pp|inv=1}} # {{past participle of|it|ninfeggiare}}」的新頁面
9938560
wikitext
text/x-wiki
==意大利語==
===分詞===
{{it-pp|inv=1}}
# {{past participle of|it|ninfeggiare}}
8pd3567rvqmzeipyusdpghi6xh1151f
ninfeggianti
0
3543363
9938562
2026-10-05T09:26:51Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==意大利語== ===分詞=== {{head|it|分詞變格形}} # {{plural of|it|ninfeggiante}}」的新頁面
9938562
wikitext
text/x-wiki
==意大利語==
===分詞===
{{head|it|分詞變格形}}
# {{plural of|it|ninfeggiante}}
emkbnz0nql0mzak61zn8f8yxlsbyrof
nebulizza
0
3543364
9938563
2026-10-05T09:27:58Z
TongcyBot
83009
半自動導入非詞元形式
9938563
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||3|s|pres|indc|;|2|s|impr}}
3mcfikwu82hvgvprd0bctsc1ni6gdb6
nebulizzai
0
3543365
9938564
2026-10-05T09:27:59Z
TongcyBot
83009
半自動導入非詞元形式
9938564
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||1|s|phis}}
bduh3bjrc9qw1h5cmnq0szh0kt3z8lw
nebulizzammo
0
3543366
9938565
2026-10-05T09:28:00Z
TongcyBot
83009
半自動導入非詞元形式
9938565
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||1|p|phis}}
pbqqzg11udx1byc06h7ayk8ib6ncw96
nebulizzando
0
3543367
9938566
2026-10-05T09:28:01Z
TongcyBot
83009
半自動導入非詞元形式
9938566
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動名詞}}
# {{gerund of|it|nebulizzare}}
eujzgak90sqntuizc5d4j373axhysil
nebulizzano
0
3543368
9938567
2026-10-05T09:28:03Z
TongcyBot
83009
半自動導入非詞元形式
9938567
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||3|p|pres|indc}}
264urmbkpxeb2p5t76xr9gvdi1zqke3
nebulizzassero
0
3543369
9938568
2026-10-05T09:28:06Z
TongcyBot
83009
半自動導入非詞元形式
9938568
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||3|p|impf|subj}}
8j37fs7rwyf19w9wfp8qdza8gcd5yqc
nebulizzarono
0
3543370
9938569
2026-10-05T09:28:07Z
TongcyBot
83009
半自動導入非詞元形式
9938569
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||3|p|phis}}
mugcwy2r5vzoi9suxzgui4cx5g7d3pa
nebulizzasse
0
3543371
9938570
2026-10-05T09:28:08Z
TongcyBot
83009
半自動導入非詞元形式
9938570
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||3|s|impf|subj}}
im1kzp1w5csm40c2l4wb3qetnp44zx8
nebulizzassi
0
3543372
9938571
2026-10-05T09:28:09Z
TongcyBot
83009
半自動導入非詞元形式
9938571
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||1//2|s|impf|subj}}
nw4ewdilwy2y1axarzotpw0f0pz1mfa
nebulizzassimo
0
3543373
9938572
2026-10-05T09:28:10Z
TongcyBot
83009
半自動導入非詞元形式
9938572
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||1|p|impf|subj}}
hwr9m368zf3bfbq370kzki146xeamcp
nebulizzaste
0
3543374
9938573
2026-10-05T09:28:13Z
TongcyBot
83009
半自動導入非詞元形式
9938573
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||2|p|phis|;|2|p|impf|subj}}
beimwf7xz6tndc23ep995vycq4wn7di
nebulizzasti
0
3543375
9938574
2026-10-05T09:28:14Z
TongcyBot
83009
半自動導入非詞元形式
9938574
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||2|s|phis}}
2blf1pdbeam24128ynlet22jma3428n
nebulizzava
0
3543376
9938575
2026-10-05T09:28:15Z
TongcyBot
83009
半自動導入非詞元形式
9938575
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||3|s|impf|indc}}
debhaqjc5i590gqrkx1n46ezgjrid75
nebulizzavamo
0
3543377
9938576
2026-10-05T09:28:17Z
TongcyBot
83009
半自動導入非詞元形式
9938576
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||1|p|impf|indc}}
g26n9b8652q18ikytuope2qkrhu62ap
nebulizzavano
0
3543378
9938577
2026-10-05T09:28:18Z
TongcyBot
83009
半自動導入非詞元形式
9938577
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||3|p|impf|indc}}
k1kaqzknxpprryv6twpzgha6f9le93t
nebulizzavate
0
3543379
9938578
2026-10-05T09:28:19Z
TongcyBot
83009
半自動導入非詞元形式
9938578
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||2|p|impf|indc}}
qfqc5jiq76uebr17jkjg901tb04ieig
nebulizzavi
0
3543380
9938579
2026-10-05T09:28:21Z
TongcyBot
83009
半自動導入非詞元形式
9938579
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||2|s|impf|indc}}
gtab0hgxeafw5598x2zct5gyt2qx8w2
nebulizzavo
0
3543381
9938580
2026-10-05T09:28:22Z
TongcyBot
83009
半自動導入非詞元形式
9938580
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||1|s|impf|indc}}
chwsgbmpw1uc3yfiu4y1958zp1xi1cv
nebulizzerai
0
3543382
9938581
2026-10-05T09:28:23Z
TongcyBot
83009
半自動導入非詞元形式
9938581
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||2|s|futr}}
o8lhc744vpynjh1bpngoh88uuo0w1dn
nebulizzeranno
0
3543383
9938582
2026-10-05T09:28:25Z
TongcyBot
83009
半自動導入非詞元形式
9938582
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||3|p|futr}}
j7vwkl7mvqdm9t45ltxr7jdjzj36uac
nebulizzerebbe
0
3543384
9938583
2026-10-05T09:28:26Z
TongcyBot
83009
半自動導入非詞元形式
9938583
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||3|s|cond}}
3o7e5znqpymhrrlckrpj3f7kbukak1v
nebulizzerebbero
0
3543385
9938584
2026-10-05T09:28:27Z
TongcyBot
83009
半自動導入非詞元形式
9938584
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||3|p|cond}}
0icg765dl1dfz1uy1rmuf9w0kgnlyn2
nebulizzerei
0
3543386
9938585
2026-10-05T09:28:29Z
TongcyBot
83009
半自動導入非詞元形式
9938585
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||1|s|cond}}
ceyu8ro4agkeh9pxt6n5xn9e19d6v3f
nebulizzeremmo
0
3543387
9938586
2026-10-05T09:28:30Z
TongcyBot
83009
半自動導入非詞元形式
9938586
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||1|p|cond}}
bh47awy1p2dp5ambor3m41l8zluzsif
nebulizzeremo
0
3543388
9938587
2026-10-05T09:28:31Z
TongcyBot
83009
半自動導入非詞元形式
9938587
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||1|p|futr}}
9kfsv3ec8r672n03hea2c30p94g8wq7
nebulizzereste
0
3543389
9938588
2026-10-05T09:28:32Z
TongcyBot
83009
半自動導入非詞元形式
9938588
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||2|p|cond}}
kyxyp8x7gc7dc55cx79mp2fo4mgipep
nebulizzeresti
0
3543390
9938589
2026-10-05T09:28:33Z
TongcyBot
83009
半自動導入非詞元形式
9938589
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||2|s|cond}}
e25bl3lgb356zrei56up2akavkox978
nebulizzerete
0
3543391
9938590
2026-10-05T09:28:34Z
TongcyBot
83009
半自動導入非詞元形式
9938590
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||2|p|futr}}
3esl1l7lrtv62uq0ny97iimnwetperw
nebulizzerà
0
3543392
9938591
2026-10-05T09:28:36Z
TongcyBot
83009
半自動導入非詞元形式
9938591
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||3|s|futr}}
===異序詞===
* {{anagrams|it|a=abeeilnruzz|nebulizzare}}
q30vz3j31vckhzgz3wwcenxxafj8x0r
nebulizzerò
0
3543393
9938592
2026-10-05T09:28:38Z
TongcyBot
83009
半自動導入非詞元形式
9938592
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||1|s|futr}}
4h2rrvx6mzijacrnjaq2i6dhn7os0v2
nebulizziamo
0
3543394
9938593
2026-10-05T09:28:40Z
TongcyBot
83009
半自動導入非詞元形式
9938593
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||1|p|pres|ind//sub|;|1|p|impr}}
cu453wkxut772p610crq0nkkc3gs9y1
nebulizzi
0
3543395
9938594
2026-10-05T09:28:40Z
TongcyBot
83009
半自動導入非詞元形式
9938594
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||2|s|pres|indc|;|1//2//3|s|pres|subj|;|3|s|impr}}
nk2q3pf2tqddo45f7fqzh60bid8fl3c
nebulizziate
0
3543396
9938595
2026-10-05T09:28:41Z
TongcyBot
83009
半自動導入非詞元形式
9938595
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||2|p|pres|subj}}
fw60su0uxakeaqu3we5nnfivjgc2xq5
nebulizzino
0
3543397
9938596
2026-10-05T09:28:43Z
TongcyBot
83009
半自動導入非詞元形式
9938596
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||3|p|pres|subj|;|3|p|impr}}
h57by8ume2gs9d2h0csrbcy64i9h5v0
nebulizzo
0
3543398
9938597
2026-10-05T09:28:44Z
TongcyBot
83009
半自動導入非詞元形式
9938597
wikitext
text/x-wiki
{{also|nebulizzò}}
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||1|s|pres|indc}}
eqdcqi9r6ogge7p9l2t1419z8n2bv15
nebulizzò
0
3543399
9938598
2026-10-05T09:28:45Z
TongcyBot
83009
半自動導入非詞元形式
9938598
wikitext
text/x-wiki
{{also|nebulizzo}}
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nebulizzare||3|s|phis}}
ir6mi30d5239mlmfltkkihk1w252xmm
negreggerai
0
3543400
9938599
2026-10-05T09:28:46Z
TongcyBot
83009
半自動導入非詞元形式
9938599
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||2|s|fut}}
===異序詞===
* {{anagrams|it|a=aeeeggginrr|negreggiare}}
0w6zjmrhqlma9dwcp1vhtqeh0vurmoh
negreggeranno
0
3543401
9938600
2026-10-05T09:28:47Z
TongcyBot
83009
半自動導入非詞元形式
9938600
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||3|p|fut}}
fqz8avn1w93bpj6rxbta8yp824zq33a
negreggerebbe
0
3543402
9938601
2026-10-05T09:28:49Z
TongcyBot
83009
半自動導入非詞元形式
9938601
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||3|s|cond}}
1kr2dggv0frpezl53wlptup947vl3yi
negreggerebbero
0
3543403
9938602
2026-10-05T09:28:50Z
TongcyBot
83009
半自動導入非詞元形式
9938602
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||3|p|cond}}
8ljh7yywefvbu3fmuzead8z4kfv6fu9
negreggerei
0
3543404
9938603
2026-10-05T09:28:52Z
TongcyBot
83009
半自動導入非詞元形式
9938603
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||1|s|cond}}
3h3xqz0kzquqkywkxj9ocp9n3rvi94o
negreggeremmo
0
3543405
9938604
2026-10-05T09:28:53Z
TongcyBot
83009
半自動導入非詞元形式
9938604
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||1|p|cond}}
ab11px8etbhumhz321xydp4dn5mu4px
negreggeremo
0
3543406
9938605
2026-10-05T09:28:54Z
TongcyBot
83009
半自動導入非詞元形式
9938605
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||1|p|fut}}
c6d9zna0tua3xm683flwkjx0srz1ugn
negreggeresti
0
3543407
9938606
2026-10-05T09:28:56Z
TongcyBot
83009
半自動導入非詞元形式
9938606
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||2|s|cond}}
3bpsbdq6pmytqpchhdx3bgdu2j8c09c
negreggerete
0
3543408
9938607
2026-10-05T09:28:57Z
TongcyBot
83009
半自動導入非詞元形式
9938607
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||2|p|fut}}
3615bu9j9gyczxsceawjz5b6iuof2xi
negreggerà
0
3543409
9938608
2026-10-05T09:28:59Z
TongcyBot
83009
半自動導入非詞元形式
9938608
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||3|s|fut}}
f9oitzkvw54jgbwrepkr9z3wpf5dlen
negreggereste
0
3543410
9938609
2026-10-05T09:29:00Z
TongcyBot
83009
半自動導入非詞元形式
9938609
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||2|p|cond}}
itmrgweav9vy29zmaao9gvc2sfi4sjf
negreggerò
0
3543411
9938610
2026-10-05T09:29:01Z
TongcyBot
83009
半自動導入非詞元形式
9938610
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||1|s|fut}}
hvzc3s8d38xf662k5ggr4xlm683b0kw
negreggi
0
3543412
9938611
2026-10-05T09:29:02Z
TongcyBot
83009
半自動導入非詞元形式
9938611
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||2|s|pres|ind|;|1//2//3|s|pres|sub|;|3|s|imp}}
c717u3r1hnfx5rfckca45inxt3axcsp
negreggia
0
3543413
9938612
2026-10-05T09:29:03Z
TongcyBot
83009
半自動導入非詞元形式
9938612
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||3|s|pres|ind|;|2|s|imp}}
6omrbqx5tesythxjfsp9ugkhllydb0t
negreggiai
0
3543414
9938613
2026-10-05T09:29:04Z
TongcyBot
83009
半自動導入非詞元形式
9938613
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||1|s|phis}}
===異序詞===
* {{anagrams|it|a=aeegggiinr|ingaggerei}}
0dh1hm4hcik0s2sbryf2qtvxus6v2n8
negreggiammo
0
3543415
9938614
2026-10-05T09:29:06Z
TongcyBot
83009
半自動導入非詞元形式
9938614
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||1|p|phis}}
===異序詞===
* {{anagrams|it|a=aeegggimmnor|ingaggeremmo}}
jw6xerg9ooac0vh0a19byyr59yxd7lr
negreggiamo
0
3543416
9938615
2026-10-05T09:29:06Z
TongcyBot
83009
半自動導入非詞元形式
9938615
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||1|p|pres|ind//sub|;|1|p|imp}}
===異序詞===
* {{anagrams|it|a=aeegggimnor|ingaggeremo}}
bttbh81026z1ph9gjiflel084yu2c9n
negreggiando
0
3543417
9938616
2026-10-05T09:29:08Z
TongcyBot
83009
半自動導入非詞元形式
9938616
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動名詞}}
# {{gerund of|it|negreggiare}}
5yov1wcqf2mnfeb2yrib4xsetza7wq3
negreggiarono
0
3543418
9938617
2026-10-05T09:29:10Z
TongcyBot
83009
半自動導入非詞元形式
9938617
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||3|p|phis}}
rejbho56088vjgjpcepngbhfqz0hl2q
negreggiano
0
3543419
9938618
2026-10-05T09:29:11Z
TongcyBot
83009
半自動導入非詞元形式
9938618
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||3|p|pres|ind}}
aezxuysmpb3gq50h4cufhve9940owg0
negreggiasse
0
3543420
9938619
2026-10-05T09:29:12Z
TongcyBot
83009
半自動導入非詞元形式
9938619
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||3|s|impf|sub}}
mvf740pxn338yhyock3ajcjdga2eoyx
negreggiassero
0
3543421
9938620
2026-10-05T09:29:14Z
TongcyBot
83009
半自動導入非詞元形式
9938620
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||3|p|impf|sub}}
nifexeptmtm7iyrkqzyxzz4kma3gh19
negreggiassi
0
3543422
9938621
2026-10-05T09:29:15Z
TongcyBot
83009
半自動導入非詞元形式
9938621
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||1//2|s|impf|sub}}
60fjj8za546kved42171o80td1swaxu
negreggiassimo
0
3543423
9938622
2026-10-05T09:29:16Z
TongcyBot
83009
半自動導入非詞元形式
9938622
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||1|p|impf|sub}}
sm6m5fwwdt9eoedbjj8gzb04dq80ial
negreggiaste
0
3543424
9938623
2026-10-05T09:29:17Z
TongcyBot
83009
半自動導入非詞元形式
9938623
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||2|p|phis|;|2|p|impf|sub}}
===異序詞===
* {{anagrams|it|a=aeeeggginrst|ingaggereste}}
pa4dlt7dgn9dcyt8knvtlyytvhkjbif
negreggiasti
0
3543425
9938624
2026-10-05T09:29:19Z
TongcyBot
83009
半自動導入非詞元形式
9938624
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||2|s|phis}}
===異序詞===
* {{anagrams|it|a=aeegggiinrst|ingaggeresti}}
31nthn1ucw0vzzx1e2qhd4h7l7si08y
negreggiava
0
3543426
9938625
2026-10-05T09:29:20Z
TongcyBot
83009
半自動導入非詞元形式
9938625
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||3|s|impf|ind}}
fkdo63c48tkpy6ru9omg37pk6xp8ww5
negreggiavamo
0
3543427
9938626
2026-10-05T09:29:21Z
TongcyBot
83009
半自動導入非詞元形式
9938626
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||1|p|impf|ind}}
===異序詞===
* {{anagrams|it|a=aaeegggimnorv|aggavigneremo}}
egpqsqkft3yq2wmc90bjvsqcgb4in30
negreggiavano
0
3543428
9938627
2026-10-05T09:29:22Z
TongcyBot
83009
半自動導入非詞元形式
9938627
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||3|p|impf|ind}}
rhcfj9qc236j82kko7afxtombh8951g
negreggiavate
0
3543429
9938628
2026-10-05T09:29:24Z
TongcyBot
83009
半自動導入非詞元形式
9938628
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||2|p|impf|ind}}
===異序詞===
* {{anagrams|it|a=aaeeeggginrtv|aggavignerete}}
s965l36w4aqs9q6oio55s2o4q0ubkqd
negreggiavi
0
3543430
9938629
2026-10-05T09:29:25Z
TongcyBot
83009
半自動導入非詞元形式
9938629
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||2|s|impf|ind}}
chq62zflx92247cifjdhs03khgofchb
negreggiavo
0
3543431
9938630
2026-10-05T09:29:26Z
TongcyBot
83009
半自動導入非詞元形式
9938630
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||1|s|impf|ind}}
pxz7g54muyv59j7hcs41780hnsq23tv
negreggino
0
3543432
9938631
2026-10-05T09:29:28Z
TongcyBot
83009
半自動導入非詞元形式
9938631
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||3|p|pres|sub|;|3|p|imp}}
fcnmas0feco1izulvkitbktmay46sce
negreggio
0
3543433
9938632
2026-10-05T09:29:29Z
TongcyBot
83009
半自動導入非詞元形式
9938632
wikitext
text/x-wiki
{{also|negreggiò}}
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||1|s|pres|ind}}
df1i95k49z6g1u788qt8q1sctwaxwij
negreggiò
0
3543434
9938633
2026-10-05T09:29:30Z
TongcyBot
83009
半自動導入非詞元形式
9938633
wikitext
text/x-wiki
{{also|negreggio}}
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|negreggiare||3|s|phis}}
793yle0p3914zy3n22b1bsgbxxqceo7
neologizza
0
3543435
9938634
2026-10-05T09:29:31Z
TongcyBot
83009
半自動導入非詞元形式
9938634
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||3|s|pres|ind|;|2|s|imp}}
fbbtgaxogl4qqmn9nep6dvagwxyup4y
neologizzai
0
3543436
9938635
2026-10-05T09:29:32Z
TongcyBot
83009
半自動導入非詞元形式
9938635
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||1|s|phis}}
l3166iy2jek7xrt55g6ruct8n73k0d9
neologizzammo
0
3543437
9938636
2026-10-05T09:29:34Z
TongcyBot
83009
半自動導入非詞元形式
9938636
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||1|p|phis}}
f2oxrremnqlqcl424nrk4pk7p0nhu3w
neologizzando
0
3543438
9938637
2026-10-05T09:29:35Z
TongcyBot
83009
半自動導入非詞元形式
9938637
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動名詞}}
# {{gerund of|it|neologizzare}}
djbif8avucbvfqozxchymink3el9m5x
neologizzano
0
3543439
9938638
2026-10-05T09:29:36Z
TongcyBot
83009
半自動導入非詞元形式
9938638
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||3|p|pres|ind}}
43gggg1biug3panefdm5s9n375f0hdw
neologizzarono
0
3543440
9938639
2026-10-05T09:29:37Z
TongcyBot
83009
半自動導入非詞元形式
9938639
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||3|p|phis}}
2yxsuvapnt6opv1axu2w4331xblxxtt
neologizzasse
0
3543441
9938640
2026-10-05T09:29:39Z
TongcyBot
83009
半自動導入非詞元形式
9938640
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||3|s|impf|sub}}
6966yy8h108k17botp3h5gbif101if8
neologizzassero
0
3543442
9938641
2026-10-05T09:29:41Z
TongcyBot
83009
半自動導入非詞元形式
9938641
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||3|p|impf|sub}}
atve4fxxez287m01be4f7o4dw5pm2t2
neologizzassi
0
3543443
9938642
2026-10-05T09:29:42Z
TongcyBot
83009
半自動導入非詞元形式
9938642
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||1//2|s|impf|sub}}
71om5ornt9tfnadz62tf681gqstz2ec
neologizzassimo
0
3543444
9938643
2026-10-05T09:29:43Z
TongcyBot
83009
半自動導入非詞元形式
9938643
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||1|p|impf|sub}}
3r7dmynw3mk1u9tspsih2qyok6wq27x
neologizzaste
0
3543445
9938644
2026-10-05T09:29:44Z
TongcyBot
83009
半自動導入非詞元形式
9938644
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||2|p|phis|;|2|p|impf|sub}}
95hud4srnusronx4qv9lcbx3yb2piz9
neologizzasti
0
3543446
9938645
2026-10-05T09:29:45Z
TongcyBot
83009
半自動導入非詞元形式
9938645
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||2|s|phis}}
j11ww6takquxie1byo3xn56yrgv8b2s
neologizzate
0
3543447
9938646
2026-10-05T09:29:46Z
TongcyBot
83009
半自動導入非詞元形式
9938646
wikitext
text/x-wiki
==意大利語==
===詞源1===
====動詞====
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||2|p|pres|ind|;|2|p|imp}}
===詞源2===
====分詞====
{{head|it|過去分詞變格形|g=f-p}}
# {{feminine plural of|it|neologizzato}}
crsmxnzi6w3jk2uzvnyf3ybkmo0ssx2
neologizzava
0
3543448
9938647
2026-10-05T09:29:48Z
TongcyBot
83009
半自動導入非詞元形式
9938647
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||3|s|impf|ind}}
cvf714cd7ndyfaef3v48d9sktqu3r54
neologizzavamo
0
3543449
9938648
2026-10-05T09:29:49Z
TongcyBot
83009
半自動導入非詞元形式
9938648
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||1|p|impf|ind}}
34cpgk2huthaaxf34xo5h0gd3j41so3
neologizzavano
0
3543450
9938649
2026-10-05T09:29:50Z
TongcyBot
83009
半自動導入非詞元形式
9938649
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||3|p|impf|ind}}
o9pw71hm2c6kwa8r8sn7u6yi0slgqks
neologizzavate
0
3543451
9938650
2026-10-05T09:29:51Z
TongcyBot
83009
半自動導入非詞元形式
9938650
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||2|p|impf|ind}}
faheec6i8nfzr5hbd8ifpkir35cdqyr
neologizzavi
0
3543452
9938651
2026-10-05T09:29:53Z
TongcyBot
83009
半自動導入非詞元形式
9938651
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||2|s|impf|ind}}
1bik9ns83pax6nj5e4z1inpmnn10sc5
neologizzavo
0
3543453
9938652
2026-10-05T09:29:54Z
TongcyBot
83009
半自動導入非詞元形式
9938652
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||1|s|impf|ind}}
2k8fyqzf47rxcbp094p35mj59at7yhj
neologizzerai
0
3543454
9938653
2026-10-05T09:29:55Z
TongcyBot
83009
半自動導入非詞元形式
9938653
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||2|s|fut}}
bzz09ix6lv59hjdsgvnob30oikecx9j
neologizzeranno
0
3543455
9938654
2026-10-05T09:29:56Z
TongcyBot
83009
半自動導入非詞元形式
9938654
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||3|p|fut}}
iytcvo3278rum8ie2kph1brbkj33atf
neologizzerebbe
0
3543456
9938655
2026-10-05T09:29:58Z
TongcyBot
83009
半自動導入非詞元形式
9938655
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||3|s|cond}}
54jccp4mnau591urdzahriqf3ielg0j
neologizzerebbero
0
3543457
9938656
2026-10-05T09:29:59Z
TongcyBot
83009
半自動導入非詞元形式
9938656
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||3|p|cond}}
dqqmf2ss9yk0t447a44y81m0n0b3ook
neologizzerei
0
3543458
9938657
2026-10-05T09:30:00Z
TongcyBot
83009
半自動導入非詞元形式
9938657
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||1|s|cond}}
i74hzhcfnj9cm8nwh43ociaz41do8ag
neologizzeremmo
0
3543459
9938658
2026-10-05T09:30:01Z
TongcyBot
83009
半自動導入非詞元形式
9938658
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||1|p|cond}}
d8d77731l1366exc4fnecsxocvs9aam
neologizzeremo
0
3543460
9938659
2026-10-05T09:30:02Z
TongcyBot
83009
半自動導入非詞元形式
9938659
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||1|p|fut}}
2cmoqgkwjbx6rhvgv3g402gutqi9xu6
neologizzereste
0
3543461
9938660
2026-10-05T09:30:03Z
TongcyBot
83009
半自動導入非詞元形式
9938660
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||2|p|cond}}
1r3vdt0m2a26zrl3smd8p5o8omlwprk
neologizzeresti
0
3543462
9938661
2026-10-05T09:30:05Z
TongcyBot
83009
半自動導入非詞元形式
9938661
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||2|s|cond}}
jaekm2syazqvp8cepxylatlcc8t48zf
neologizzerete
0
3543463
9938662
2026-10-05T09:30:06Z
TongcyBot
83009
半自動導入非詞元形式
9938662
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||2|p|fut}}
p03l93pjrhqc4ucyy7lwib8u89uf8mj
neologizzerà
0
3543464
9938663
2026-10-05T09:30:08Z
TongcyBot
83009
半自動導入非詞元形式
9938663
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||3|s|fut}}
===異序詞===
* {{anagrams|it|a=aeegilnoorzz|neologizzare}}
ayhjsdfvfvoo84knxduhptczu41bcxk
neologizzerò
0
3543465
9938664
2026-10-05T09:30:08Z
TongcyBot
83009
半自動導入非詞元形式
9938664
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||1|s|fut}}
r12ox3able4l1vkjtieisjor4kzoawk
neologizzi
0
3543466
9938665
2026-10-05T09:30:10Z
TongcyBot
83009
半自動導入非詞元形式
9938665
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||2|s|pres|ind|;|1//2//3|s|pres|sub|;|3|s|imp}}
r6axurfzu0rwljd2hsnc8um10ah88mk
neologizziate
0
3543467
9938666
2026-10-05T09:30:13Z
TongcyBot
83009
半自動導入非詞元形式
9938666
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||2|p|pres|sub}}
fp2xuxdevpwsz5xddtz53ara0oqco87
neologizzino
0
3543468
9938667
2026-10-05T09:30:14Z
TongcyBot
83009
半自動導入非詞元形式
9938667
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||3|p|pres|sub|;|3|p|imp}}
1k2m3qbrvhj3nvq920toev5qf9zzroi
neologizzo
0
3543469
9938668
2026-10-05T09:30:15Z
TongcyBot
83009
半自動導入非詞元形式
9938668
wikitext
text/x-wiki
{{also|neologizzò}}
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||1|s|pres|ind}}
cebwbpb22x69twbx1dn1f4h2s5rqj8j
neologizzò
0
3543470
9938669
2026-10-05T09:30:17Z
TongcyBot
83009
半自動導入非詞元形式
9938669
wikitext
text/x-wiki
{{also|neologizzo}}
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||3|s|phis}}
297ohmw78ruchgvpyzzagn8ugfdh19l
nereggerai
0
3543471
9938670
2026-10-05T09:30:18Z
TongcyBot
83009
半自動導入非詞元形式
9938670
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||2|s|futr}}
===異序詞===
* {{anagrams|it|a=aeeegginrr|nereggiare}}
mhjxggko1kfqu6fvepaxdrkz6b4jk2k
nereggeranno
0
3543472
9938671
2026-10-05T09:30:20Z
TongcyBot
83009
半自動導入非詞元形式
9938671
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||3|p|futr}}
p721why29pwbwjzg3hog9n52sj3dylg
nereggerebbe
0
3543473
9938672
2026-10-05T09:30:21Z
TongcyBot
83009
半自動導入非詞元形式
9938672
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||3|s|cond}}
gtynn3820sedlnk3p948zyr3g3sebqc
neologizziamo
0
3543474
9938673
2026-10-05T09:30:22Z
TongcyBot
83009
半自動導入非詞元形式
9938673
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|neologizzare||1|p|pres|ind//sub|;|1|p|imp}}
okloxux7cj4a3ywjbmnevv0d0ocvu7l
nereggerebbero
0
3543475
9938674
2026-10-05T09:30:23Z
TongcyBot
83009
半自動導入非詞元形式
9938674
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||3|p|cond}}
ecycrsy3n46w91fqcwvldgod4axd4p0
nereggerei
0
3543476
9938675
2026-10-05T09:30:24Z
TongcyBot
83009
半自動導入非詞元形式
9938675
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||1|s|cond}}
0n0fhvlcxjwhoc60w1pyzyca8vw2stt
nereggeremmo
0
3543477
9938676
2026-10-05T09:30:26Z
TongcyBot
83009
半自動導入非詞元形式
9938676
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||1|p|cond}}
224iakvtiwcccyih003wb3800xkrsn3
nereggeremo
0
3543478
9938677
2026-10-05T09:30:27Z
TongcyBot
83009
半自動導入非詞元形式
9938677
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||1|p|futr}}
ijgiulpfmn3ek0aavvtcod90ngoxxd5
nereggeresti
0
3543479
9938678
2026-10-05T09:30:30Z
TongcyBot
83009
半自動導入非詞元形式
9938678
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||2|s|cond}}
s63jf0fhgpaaydchicrhakd8sbrgx1d
nereggereste
0
3543480
9938679
2026-10-05T09:30:31Z
TongcyBot
83009
半自動導入非詞元形式
9938679
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||2|p|cond}}
kpa9tuo7c8zhr0i8uzbudxkc0kff8k4
nereggerete
0
3543481
9938680
2026-10-05T09:30:32Z
TongcyBot
83009
半自動導入非詞元形式
9938680
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||2|p|futr}}
5r93y3njyt89a4ldywhcjg3883gnje8
nereggerà
0
3543482
9938681
2026-10-05T09:30:33Z
TongcyBot
83009
半自動導入非詞元形式
9938681
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||3|s|futr}}
q7n2tpl2v7ubr8z7lnxk0jnx2oi91o6
nereggi
0
3543483
9938682
2026-10-05T09:30:35Z
TongcyBot
83009
半自動導入非詞元形式
9938682
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||2|s|pres|indc|;|1//2//3|s|pres|subj|;|3|s|impr}}
===異序詞===
* {{anagrams|it|a=eegginr|reggine}}
s9vlgdfgs8ygholz6lrjk3fx5u4of7k
nereggerò
0
3543484
9938683
2026-10-05T09:30:36Z
TongcyBot
83009
半自動導入非詞元形式
9938683
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||1|s|futr}}
k2gt8gpfs4sytdo7gu85oyvml66luxk
nereggia
0
3543485
9938684
2026-10-05T09:30:37Z
TongcyBot
83009
半自動導入非詞元形式
9938684
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||3|s|pres|indc|;|2|s|impr}}
===異序詞===
* {{anagrams|it|a=aeegginr|reggiane}}
39tu3fqb383ohqcixljb0bo6szihaz0
nereggiai
0
3543486
9938685
2026-10-05T09:30:38Z
TongcyBot
83009
半自動導入非詞元形式
9938685
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||1|s|phis}}
pclixvz065zxu6s2vofcbqghn31y5pz
nereggiammo
0
3543487
9938686
2026-10-05T09:30:39Z
TongcyBot
83009
半自動導入非詞元形式
9938686
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||1|p|phis}}
dz8lgm9hckqkcwx8mnc86aflcvbfnx2
nereggiamo
0
3543488
9938687
2026-10-05T09:30:41Z
TongcyBot
83009
半自動導入非詞元形式
9938687
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||1|p|pres|ind//sub|;|1|p|impr}}
===異序詞===
* {{anagrams|it|a=aeeggimnor|armeggione|remeggiano}}
p8gzyca8av8p099x6y26ggv8v4tvm7l
nereggiano
0
3543489
9938688
2026-10-05T09:30:42Z
TongcyBot
83009
半自動導入非詞元形式
9938688
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||3|p|pres|indc}}
bjpqiyhcxx205zqqxd43odz05m5a5jb
nereggiarono
0
3543490
9938689
2026-10-05T09:30:44Z
TongcyBot
83009
半自動導入非詞元形式
9938689
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||3|p|phis}}
gxb18g1a491gqpsoc6d1csw24uzn6j0
nereggiasse
0
3543491
9938690
2026-10-05T09:30:45Z
TongcyBot
83009
半自動導入非詞元形式
9938690
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||3|s|impf|subj}}
0rj9hm5m4hef4efbuo799wn5qddh1m5
nereggiando
0
3543492
9938691
2026-10-05T09:30:46Z
TongcyBot
83009
半自動導入非詞元形式
9938691
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動名詞}}
# {{gerund of|it|nereggiare}}
jesllbar2p64uhomybyh9khtoa2trqt
nereggiassero
0
3543493
9938692
2026-10-05T09:30:48Z
TongcyBot
83009
半自動導入非詞元形式
9938692
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||3|p|impf|subj}}
td2v1o2hn5rznnbofmxu0m90acmj44g
nereggiassi
0
3543494
9938693
2026-10-05T09:30:48Z
TongcyBot
83009
半自動導入非詞元形式
9938693
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||1//2|s|impf|subj}}
g0x319a3bisbs7trsoioyowhcrwlrao
nereggiassimo
0
3543495
9938694
2026-10-05T09:30:50Z
TongcyBot
83009
半自動導入非詞元形式
9938694
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||1|p|impf|subj}}
g6rbkkt6futyjdo5jxt6475e5gw9gtc
nereggiaste
0
3543496
9938695
2026-10-05T09:30:51Z
TongcyBot
83009
半自動導入非詞元形式
9938695
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||2|p|phis|;|2|p|impf|subj}}
===異序詞===
* {{anagrams|it|a=aeeegginrst|sagginerete}}
0fvv71lcmhnce0zp0u4any5wzqd4nhx
nereggiasti
0
3543497
9938696
2026-10-05T09:30:52Z
TongcyBot
83009
半自動導入非詞元形式
9938696
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||2|s|phis}}
1a3vsscsxyxqfdgcrksrukk3cf3sk9q
nereggiate
0
3543498
9938697
2026-10-05T09:30:53Z
TongcyBot
83009
半自動導入非詞元形式
9938697
wikitext
text/x-wiki
==意大利語==
===詞源1===
====動詞====
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||2|p|pres|ind//sub|;|2|p|impr}}
===詞源2===
====分詞====
{{head|it|過去分詞變格形|g=f-p}}
# {{feminine plural of|it|nereggiato}}
f2xa65n3xstjb2dkf3bq0fxiyejqiux
nereggiavamo
0
3543499
9938698
2026-10-05T09:30:56Z
TongcyBot
83009
半自動導入非詞元形式
9938698
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||1|p|impf|indc}}
===異序詞===
* {{anagrams|it|a=aaeeggimnorv|remeggiavano}}
lvw6jjy5hijztn8tsdziemuofauo47a
nereggiava
0
3543500
9938699
2026-10-05T09:30:57Z
TongcyBot
83009
半自動導入非詞元形式
9938699
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||3|s|impf|indc}}
===異序詞===
* {{anagrams|it|a=aaeegginrv|vaneggerai|vaneggiare}}
6hcmiltq33w3mzh5fduxs9evuez0s6g
nereggiavano
0
3543501
9938700
2026-10-05T09:30:58Z
TongcyBot
83009
半自動導入非詞元形式
9938700
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||3|p|impf|indc}}
rkmjmsc3iwebqwxn93dhudijcmoovxy
nereggiavate
0
3543502
9938701
2026-10-05T09:30:59Z
TongcyBot
83009
半自動導入非詞元形式
9938701
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||2|p|impf|indc}}
29ckpe24wxup5gdvbceo109wpn35kij
nereggiavi
0
3543503
9938702
2026-10-05T09:31:01Z
TongcyBot
83009
半自動導入非詞元形式
9938702
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||2|s|impf|indc}}
===異序詞===
* {{anagrams|it|a=aeeggiinrv|inveggiare|viareggine}}
nxvdf8xm8aty0sxhthnpg1wadav16oq
nereggiavo
0
3543504
9938703
2026-10-05T09:31:01Z
TongcyBot
83009
半自動導入非詞元形式
9938703
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||1|s|impf|indc}}
qgaeyh2jkdqxpck242pjx1s63hnqqwn
nereggino
0
3543505
9938704
2026-10-05T09:31:03Z
TongcyBot
83009
半自動導入非詞元形式
9938704
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||3|p|pres|subj|;|3|p|impr}}
===異序詞===
* {{anagrams|it|a=eegginnor|ingegnerò|inneggerò}}
qscme7uzioqrpeedymjfxjks1nudvqw
nereggio
0
3543506
9938705
2026-10-05T09:31:04Z
TongcyBot
83009
半自動導入非詞元形式
9938705
wikitext
text/x-wiki
{{also|nereggiò}}
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||1|s|pres|indc}}
dgw27a8m6tjdabv7sg8q9ugeu0dho7n
nereggiò
0
3543507
9938706
2026-10-05T09:31:05Z
TongcyBot
83009
半自動導入非詞元形式
9938706
wikitext
text/x-wiki
{{also|nereggio}}
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nereggiare||3|s|phis}}
k8lzl8l7c6papqhei855v7jv2njdu5e
nichelai
0
3543508
9938707
2026-10-05T09:31:06Z
TongcyBot
83009
半自動導入非詞元形式
9938707
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||1|s|phis}}
===異序詞===
* {{anagrams|it|a=acehiiln|niliache}}
sp5zfnbafacukvt9jtj67vovkffi1x2
nichelammo
0
3543509
9938708
2026-10-05T09:31:08Z
TongcyBot
83009
半自動導入非詞元形式
9938708
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||1|p|phis}}
ho0myqw5slmx7byg4bx0p7k4ldkm2fh
nichelando
0
3543510
9938709
2026-10-05T09:31:09Z
TongcyBot
83009
半自動導入非詞元形式
9938709
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動名詞}}
# {{gerund of|it|nichelare}}
51ck5wmv8zem3iw5xxiyf4kt8rh82f5
nichelano
0
3543511
9938710
2026-10-05T09:31:10Z
TongcyBot
83009
半自動導入非詞元形式
9938710
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||3|p|pres|indc}}
3ud724j06ebcr9mmyappnag13t0vkv8
nichelarono
0
3543512
9938711
2026-10-05T09:31:11Z
TongcyBot
83009
半自動導入非詞元形式
9938711
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||3|p|phis}}
a9drw2uzkdne5dld2ouuyatsn82gefj
nichelasse
0
3543513
9938712
2026-10-05T09:31:13Z
TongcyBot
83009
半自動導入非詞元形式
9938712
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||3|s|impf|subj}}
974y79aob7k4hvrcmggag03q5ub9ytf
nichelassero
0
3543514
9938713
2026-10-05T09:31:14Z
TongcyBot
83009
半自動導入非詞元形式
9938713
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||3|p|impf|subj}}
0tvmgyjw712mpfr9zd324b894ek96t3
nichelassi
0
3543515
9938714
2026-10-05T09:31:16Z
TongcyBot
83009
半自動導入非詞元形式
9938714
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||1//2|s|impf|subj}}
gpfufwo4ectrmyghl1z6dvhi673mfix
nichelaste
0
3543516
9938715
2026-10-05T09:31:17Z
TongcyBot
83009
半自動導入非詞元形式
9938715
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||2|p|phis|;|2|p|impf|subj}}
6sobgrtksl7m8eczi3umhoi489zynjj
nichelasti
0
3543517
9938716
2026-10-05T09:31:20Z
TongcyBot
83009
半自動導入非詞元形式
9938716
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||2|s|phis}}
tt6cdkir45nhrez7bqyri155owh1bmz
nichelassimo
0
3543518
9938717
2026-10-05T09:31:22Z
TongcyBot
83009
半自動導入非詞元形式
9938717
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||1|p|impf|subj}}
ijed51ywg1vprjhff383rr7q4hj35gf
nichelava
0
3543519
9938718
2026-10-05T09:31:22Z
TongcyBot
83009
半自動導入非詞元形式
9938718
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||3|s|impf|indc}}
8qe4tu4wmuxmixi0ztz10zya5vskt6g
nichelavamo
0
3543520
9938719
2026-10-05T09:31:23Z
TongcyBot
83009
半自動導入非詞元形式
9938719
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||1|p|impf|indc}}
lld519uriqfwo9fmy1zn7mdt3gpg18b
nichelavano
0
3543521
9938720
2026-10-05T09:31:26Z
TongcyBot
83009
半自動導入非詞元形式
9938720
wikitext
text/x-wiki
==意大利語==
===發音===
{{it-pr|nichelàvano}}
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||3|p|impf|indc}}
m5j4xgqhrrgzh7tglgy80hajjd6p6a8
nichelavate
0
3543522
9938721
2026-10-05T09:31:27Z
TongcyBot
83009
半自動導入非詞元形式
9938721
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||2|p|impf|indc}}
pn9ic792mjyt54yaw1ez9iysxirxn5y
nichelavi
0
3543523
9938722
2026-10-05T09:31:28Z
TongcyBot
83009
半自動導入非詞元形式
9938722
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||2|s|impf|indc}}
f11pcu8vltamwcgbmlbu1eah7s37al6
nichelavo
0
3543524
9938723
2026-10-05T09:31:29Z
TongcyBot
83009
半自動導入非詞元形式
9938723
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||1|s|impf|indc}}
r08sm9sav0s2nppcv9rttkhbt0sq6gp
nichelerai
0
3543525
9938724
2026-10-05T09:31:31Z
TongcyBot
83009
半自動導入非詞元形式
9938724
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||2|s|futr}}
804h7lukunm2xv6lkc1q5gmepet3140
nicheleranno
0
3543526
9938725
2026-10-05T09:31:33Z
TongcyBot
83009
半自動導入非詞元形式
9938725
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||3|p|futr}}
9tz3zgim55dotfs5wyptpi14zugenev
nichelerebbe
0
3543527
9938726
2026-10-05T09:31:34Z
TongcyBot
83009
半自動導入非詞元形式
9938726
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||3|s|cond}}
ld69t3bg6znjigy84zc5aufeuljg78q
nichelerebbero
0
3543528
9938727
2026-10-05T09:31:35Z
TongcyBot
83009
半自動導入非詞元形式
9938727
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||3|p|cond}}
hvqmqm886xwrseqpo0qghua770e223h
nichelerei
0
3543529
9938728
2026-10-05T09:31:36Z
TongcyBot
83009
半自動導入非詞元形式
9938728
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||1|s|cond}}
lexpa16orp3kova8o0jzewng4gnt8t9
nicheleremmo
0
3543530
9938729
2026-10-05T09:31:37Z
TongcyBot
83009
半自動導入非詞元形式
9938729
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||1|p|cond}}
2fdj9qqybi3nwizk5by3obv3l2o5y8t
nicheleremo
0
3543531
9938730
2026-10-05T09:31:38Z
TongcyBot
83009
半自動導入非詞元形式
9938730
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||1|p|futr}}
e52b9ejl8quzzht7cskgs4n69mwoxbi
nichelereste
0
3543532
9938731
2026-10-05T09:31:39Z
TongcyBot
83009
半自動導入非詞元形式
9938731
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||2|p|cond}}
===異序詞===
* {{anagrams|it|a=ceeeehilnrst|elencheresti}}
dfhafip68935ybjxairrkqnu23rv8ma
nicheleresti
0
3543533
9938732
2026-10-05T09:31:41Z
TongcyBot
83009
半自動導入非詞元形式
9938732
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||2|s|cond}}
riobu81zp3tiom76kzk5mzm2poj7wja
nichelerete
0
3543534
9938733
2026-10-05T09:31:42Z
TongcyBot
83009
半自動導入非詞元形式
9938733
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||2|p|futr}}
bnyd1nwqt271ylv1bo9pqdbamqf46f5
nichelerà
0
3543535
9938734
2026-10-05T09:31:43Z
TongcyBot
83009
半自動導入非詞元形式
9938734
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||3|s|futr}}
===異序詞===
* {{anagrams|it|a=aceehilnr|nichelare}}
n02kvyi6gz1ory3nqwn96yvqqr8rtc2
nicheli
0
3543536
9938735
2026-10-05T09:31:46Z
TongcyBot
83009
半自動導入非詞元形式
9938735
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||2|s|pres|indc|;|1//2//3|s|pres|subj|;|3|s|impr}}
===異序詞===
* {{anagrams|it|a=cehiiln|licheni}}
k0i86fcwy785lx2krr4t4565ntihuvz
nichelerò
0
3543537
9938736
2026-10-05T09:31:47Z
TongcyBot
83009
半自動導入非詞元形式
9938736
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||1|s|futr}}
0d20h11kc8kd7gfkl713lxteo8h9ecu
nicheliamo
0
3543538
9938737
2026-10-05T09:31:48Z
TongcyBot
83009
半自動導入非詞元形式
9938737
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||1|p|pres|ind//sub|;|1|p|impr}}
dp08ayezcpsuyoj02zee1nbzema0hoj
nicheliate
0
3543539
9938738
2026-10-05T09:31:49Z
TongcyBot
83009
半自動導入非詞元形式
9938738
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||2|p|pres|subj}}
98qbpxzm2gtimhrnkbfis6ps9a3yujd
nichelino
0
3543540
9938739
2026-10-05T09:31:51Z
TongcyBot
83009
半自動導入非詞元形式
9938739
wikitext
text/x-wiki
{{also|Nichelino}}
==意大利語==
===名詞===
{{it-noun|m}}
# {{lb|it|過時}} a small [[nickel]] [[coin]] used in Italy before the Second World War
# {{lb|it|by extension}} [[money]] of little value
===異序詞===
* {{anagrams|it|a=cehiilnno|chinoline}}
{{C|it|Coins}}
j2ofo8tm3qdxrmpwbnt8ekwnjl3ir5n
9938812
9938739
2026-10-05T09:47:23Z
Sayonzei
40728
/* 意大利語 */
9938812
wikitext
text/x-wiki
{{also|Nichelino}}
==意大利語==
===名詞===
{{it-noun|m}}
# {{lb|it|過時}} 二战钱意大利用的一种小[[镍币]]
# {{lb|it|by extension}} 很少钱
===異序詞===
* {{anagrams|it|a=cehiilnno|chinoline}}
{{C|it|硬幣}}
96np0ovkxgpn66pdjqbs0i9piyp5nuz
nichelo
0
3543541
9938740
2026-10-05T09:31:52Z
TongcyBot
83009
半自動導入非詞元形式
9938740
wikitext
text/x-wiki
{{also|nichelò}}
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||1|s|pres|indc}}
===異序詞===
* {{anagrams|it|a=cehilno|Chilone}}
eoxonws5y1tg73caxv38iftfw8upqjl
nichelò
0
3543542
9938741
2026-10-05T09:31:53Z
TongcyBot
83009
半自動導入非詞元形式
9938741
wikitext
text/x-wiki
{{also|nichelo}}
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|nichelare||3|s|phis}}
===異序詞===
* {{anagrams|it|a=cehilno|Chilone}}
5ojo37vtwe0nxievmomtt36vymysc4k
niellai
0
3543543
9938742
2026-10-05T09:31:54Z
TongcyBot
83009
半自動導入非詞元形式
9938742
wikitext
text/x-wiki
==法語==
===發音===
* {{homophones|fr|niellé|niellée|niellées|nieller|niellés|niellez}}
===動詞===
{{head|fr|動詞變位形式}}
# {{inflection of|fr|nieller||1|s|phis}}
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||1|s|phis}}
===異序詞===
* {{anagrams|it|a=aeiilln|allenii|allinei|lineali}}
spr268ieozgdu9gndslmry4bfdk9iwp
niellammo
0
3543544
9938743
2026-10-05T09:31:56Z
TongcyBot
83009
半自動導入非詞元形式
9938743
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||1|p|phis}}
===異序詞===
* {{anagrams|it|a=aeillmmno|allenimmo}}
1hk3prg8etkqdxc2rpj1ebc4bzjg8bg
niellando
0
3543545
9938744
2026-10-05T09:31:57Z
TongcyBot
83009
半自動導入非詞元形式
9938744
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動名詞}}
# {{gerund of|it|niellare}}
ppyqndbloncbjczsf2fm6485ukynexq
niellano
0
3543546
9938745
2026-10-05T09:31:58Z
TongcyBot
83009
半自動導入非詞元形式
9938745
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||3|p|pres|indc}}
===異序詞===
* {{anagrams|it|a=aeillnno|allenino|anellino|inanello|inanellò|lanoline}}
0rbzexn6sy1xtrcd10fdfwtbb4z6t2m
niellarono
0
3543547
9938746
2026-10-05T09:32:00Z
TongcyBot
83009
半自動導入非詞元形式
9938746
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||3|p|phis}}
===異序詞===
* {{anagrams|it|a=aeillnnoor|allenirono}}
fpbaoeofqh01a6qrw6tz77dgq27vy3m
niellasse
0
3543548
9938747
2026-10-05T09:32:01Z
TongcyBot
83009
半自動導入非詞元形式
9938747
wikitext
text/x-wiki
==法語==
===發音===
* {{homophones|fr|niellasses|niellassent}}
===動詞===
{{head|fr|動詞變位形式}}
# {{inflection of|fr|nieller||1|s|impf|subj}}
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||3|s|impf|subj}}
===異序詞===
* {{anagrams|it|a=aeeillnss|allenisse}}
63eoy8zutxkxr004ng8dyln7y46z8w0
niellassero
0
3543549
9938748
2026-10-05T09:32:02Z
TongcyBot
83009
半自動導入非詞元形式
9938748
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||3|p|impf|subj}}
===異序詞===
* {{anagrams|it|a=aeeillnorss|allenissero}}
f0v1wl9hfam8zl0hxbp2jimdo1bpjw7
niellassi
0
3543550
9938749
2026-10-05T09:32:03Z
TongcyBot
83009
半自動導入非詞元形式
9938749
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||1//2|s|impf|subj}}
===異序詞===
* {{anagrams|it|a=aeiillnss|allenissi}}
h2vaoj88tvhqxme0g67ftdvk0x9fhjt
niellassimo
0
3543551
9938750
2026-10-05T09:32:04Z
TongcyBot
83009
半自動導入非詞元形式
9938750
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||1|p|impf|subj}}
===異序詞===
* {{anagrams|it|a=aeiillmnoss|allenissimo}}
kcd53ts18get5jk2x349uw8o7e07767
niellaste
0
3543552
9938751
2026-10-05T09:32:05Z
TongcyBot
83009
半自動導入非詞元形式
9938751
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||2|p|phis|;|2|p|impf|subj}}
===異序詞===
* {{anagrams|it|a=aeeillnst|alleniste|ellenista|insellate|snelliate}}
0t0nu1ez4agzcosacpxe8iavfi6bgil
niellasti
0
3543553
9938752
2026-10-05T09:32:06Z
TongcyBot
83009
半自動導入非詞元形式
9938752
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||2|s|phis}}
===異序詞===
* {{anagrams|it|a=aeiillnst|allenisti|insellati}}
rv6prjdbyvpb0od253xmcwnzgijyjk9
niellava
0
3543554
9938753
2026-10-05T09:32:08Z
TongcyBot
83009
半自動導入非詞元形式
9938753
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||3|s|impf|indc}}
===異序詞===
* {{anagrams|it|a=aaeillnv|allenavi|alleniva|anellavi}}
6ehq2giss0qcxjfucgkk78xmdd1ba8p
niellavamo
0
3543555
9938754
2026-10-05T09:32:09Z
TongcyBot
83009
半自動導入非詞元形式
9938754
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||1|p|impf|indc}}
===異序詞===
* {{anagrams|it|a=aaeillmnov|allenivamo}}
s8lbgevnpwm7ks2my1vu4tdcvypxam8
niellavano
0
3543556
9938755
2026-10-05T09:32:10Z
TongcyBot
83009
半自動導入非詞元形式
9938755
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||3|p|impf|indc}}
===異序詞===
* {{anagrams|it|a=aaeillnnov|allenivano|inanellavo}}
j0zsrkm03m1oqe9jld8ka7rr4is0b4k
niellavate
0
3543557
9938756
2026-10-05T09:32:11Z
TongcyBot
83009
半自動導入非詞元形式
9938756
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||2|p|impf|indc}}
===異序詞===
* {{anagrams|it|a=aaeeillntv|allenatevi|allenivate|alleviante}}
et92wuyni6ocga55wre1prraws46mz0
niellavi
0
3543558
9938757
2026-10-05T09:32:12Z
TongcyBot
83009
半自動導入非詞元形式
9938757
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||2|s|impf|indc}}
===異序詞===
* {{anagrams|it|a=aeiillnv|allenivi|villanie}}
4v5tvorwebxinmk8b517tdqlp1qeiic
niellavo
0
3543559
9938758
2026-10-05T09:32:14Z
TongcyBot
83009
半自動導入非詞元形式
9938758
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||1|s|impf|indc}}
===異序詞===
* {{anagrams|it|a=aeillnov|Avellino|Vianello|allenivo|allevino|novellai}}
236p7xldiq9dk0zalb6lgafbz3p03u8
niellerai
0
3543560
9938759
2026-10-05T09:32:15Z
TongcyBot
83009
半自動導入非詞元形式
9938759
wikitext
text/x-wiki
==法語==
===發音===
* {{homophones|fr|niellerez}}
===動詞===
{{head|fr|動詞變位形式}}
# {{inflection of|fr|nieller||1|s|simple|futr}}
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||2|s|futr}}
===異序詞===
* {{anagrams|it|a=aeeiillnr|allenirei}}
ormxsx679sm0xcq3ontzjzac93rrlw6
nielleranno
0
3543561
9938760
2026-10-05T09:32:16Z
TongcyBot
83009
半自動導入非詞元形式
9938760
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||3|p|futr}}
c85pp1tdjbh31knmy1x8vs7m7gsna00
niellerebbe
0
3543562
9938761
2026-10-05T09:32:17Z
TongcyBot
83009
半自動導入非詞元形式
9938761
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||3|s|cond}}
725yozu661vct2ah6259m5byu86huh7
niellerebbero
0
3543563
9938762
2026-10-05T09:32:18Z
TongcyBot
83009
半自動導入非詞元形式
9938762
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||3|p|cond}}
byrsgw6xyshhl1nt8r99r4tm1vdm62z
niellerei
0
3543564
9938763
2026-10-05T09:32:19Z
TongcyBot
83009
半自動導入非詞元形式
9938763
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||1|s|cond}}
0tto3op5xpyujuo70ulj4lngax4wqs5
nielleremmo
0
3543565
9938764
2026-10-05T09:32:22Z
TongcyBot
83009
半自動導入非詞元形式
9938764
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||1|p|cond}}
rlj3xizeyzjuetdmtlgrazk9z90039w
nielleremo
0
3543566
9938765
2026-10-05T09:32:23Z
TongcyBot
83009
半自動導入非詞元形式
9938765
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||1|p|futr}}
===異序詞===
* {{anagrams|it|a=eeeillmnor|monellerie}}
5be7alilmebpfv4pjqo0jjab0ehv08j
niellereste
0
3543567
9938766
2026-10-05T09:32:24Z
TongcyBot
83009
半自動導入非詞元形式
9938766
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||2|p|cond}}
===異序詞===
* {{anagrams|it|a=eeeeillnrst|insellerete}}
l8vqlaa2hed108nym0l0ayn39hvfefj
nielleresti
0
3543568
9938767
2026-10-05T09:32:25Z
TongcyBot
83009
半自動導入非詞元形式
9938767
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||2|s|cond}}
dnrd29i7aouac9vbnaz5dv8cfvhkcv0
niellerete
0
3543569
9938768
2026-10-05T09:32:26Z
TongcyBot
83009
半自動導入非詞元形式
9938768
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||2|p|futr}}
r3a5dz5ipkug9zux64q8lhz5z5jokrf
niellerà
0
3543570
9938769
2026-10-05T09:32:28Z
TongcyBot
83009
半自動導入非詞元形式
9938769
wikitext
text/x-wiki
{{also|niellera}}
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||3|s|futr}}
===異序詞===
* {{anagrams|it|a=aeeillnr|allenire|niellare}}
2tkm6f2bmmz863bf1ycqh3bodasim3k
niellerò
0
3543571
9938770
2026-10-05T09:32:29Z
TongcyBot
83009
半自動導入非詞元形式
9938770
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||1|s|futr}}
552qs1nl34x525qavmtbi1s7qwfqtj8
nielli
0
3543572
9938771
2026-10-05T09:32:30Z
TongcyBot
83009
半自動導入非詞元形式
9938771
wikitext
text/x-wiki
==英語==
===名詞===
{{head|en|名詞變格形}}
# {{plural of|en|niello}}
==意大利語==
===發音===
{{it-pr|nièlli,#ni.èlli}}
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||2|s|pres|indc|;|1//2//3|s|pres|subj|;|3|s|impr}}
cj0w9x38t0ei236y3nmqig050mmve3x
nielliamo
0
3543573
9938772
2026-10-05T09:32:31Z
TongcyBot
83009
半自動導入非詞元形式
9938772
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||1|p|pres|ind//sub|;|1|p|impr}}
===異序詞===
* {{anagrams|it|a=aeiillmno|eliminalo}}
3qcx4yxptn7s3ixw24gjlmk6ktjy1yf
nielliate
0
3543574
9938773
2026-10-05T09:32:33Z
TongcyBot
83009
半自動導入非詞元形式
9938773
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||2|p|pres|subj}}
623j0xzblrzdtl494j6l7hvqitcscvh
niellino
0
3543575
9938774
2026-10-05T09:32:34Z
TongcyBot
83009
半自動導入非詞元形式
9938774
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||3|p|pres|subj|;|3|p|impr}}
bvrq6xiwsiyhr1oohusa4pt17kx2emw
niellò
0
3543576
9938775
2026-10-05T09:32:35Z
TongcyBot
83009
半自動導入非詞元形式
9938775
wikitext
text/x-wiki
{{also|niello}}
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|niellare||3|s|phis}}
===異序詞===
* {{anagrams|it|a=eillno|-ellino|ellino}}
492h63cea98bmq2592ai0lje1x45y7k
ninfeggerai
0
3543577
9938776
2026-10-05T09:32:36Z
TongcyBot
83009
半自動導入非詞元形式
9938776
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||2|s|fut}}
===異序詞===
* {{anagrams|it|a=aeefggiinnr|ninfeggiare}}
ixsdodilzm0f0vqsl56rc0c72ano5zz
ninfeggeranno
0
3543578
9938777
2026-10-05T09:32:37Z
TongcyBot
83009
半自動導入非詞元形式
9938777
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||3|p|fut}}
90c9tsly35sjkyfzp55b617gtvdn8bb
ninfeggerebbe
0
3543579
9938778
2026-10-05T09:32:38Z
TongcyBot
83009
半自動導入非詞元形式
9938778
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||3|s|cond}}
tlb80k334l3oepy1epgvkzh1kxxjole
ninfeggerebbero
0
3543580
9938779
2026-10-05T09:32:40Z
TongcyBot
83009
半自動導入非詞元形式
9938779
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||3|p|cond}}
r976o58wqrz5p15s3f8juhi8uwav0wf
ninfeggerei
0
3543581
9938780
2026-10-05T09:32:41Z
TongcyBot
83009
半自動導入非詞元形式
9938780
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||1|s|cond}}
p1fb6cclhwn1ypxurmsl18ih2mdox2f
ninfeggeremmo
0
3543582
9938781
2026-10-05T09:32:42Z
TongcyBot
83009
半自動導入非詞元形式
9938781
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||1|p|cond}}
rpvccn1vo18gz0v8y8zrm8kdkq5cyuj
ninfeggeremo
0
3543583
9938782
2026-10-05T09:32:43Z
TongcyBot
83009
半自動導入非詞元形式
9938782
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||1|p|fut}}
gks9hyziowwpfpo9xmqtant3du9xo4f
ninfeggereste
0
3543584
9938783
2026-10-05T09:32:45Z
TongcyBot
83009
半自動導入非詞元形式
9938783
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||2|p|cond}}
rnrw1hxtum6e8tw0pmi7092bk7pksvc
ninfeggeresti
0
3543585
9938784
2026-10-05T09:32:46Z
TongcyBot
83009
半自動導入非詞元形式
9938784
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||2|s|cond}}
r7yqsdfu965o4s3o3rwgw42c355n3ja
ninfeggerà
0
3543586
9938785
2026-10-05T09:32:48Z
TongcyBot
83009
半自動導入非詞元形式
9938785
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||3|s|fut}}
tirzj5x99y9f12xi28jxsgdob0ihua9
ninfeggerò
0
3543587
9938786
2026-10-05T09:32:49Z
TongcyBot
83009
半自動導入非詞元形式
9938786
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||1|s|fut}}
n6dbn67g6paf4sjhiu1rzzht4aocfts
ninfeggerete
0
3543588
9938787
2026-10-05T09:32:51Z
TongcyBot
83009
半自動導入非詞元形式
9938787
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||2|p|fut}}
8lyrr3n6erk2am2zqnbndxsjls6avms
ninfeggi
0
3543589
9938788
2026-10-05T09:32:52Z
TongcyBot
83009
半自動導入非詞元形式
9938788
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||2|s|pres|ind|;|1//2//3|s|pres|sub|;|3|s|imp}}
7v6ykutea2oumdlrtapgsdy5nhgrpb4
ninfeggiammo
0
3543590
9938789
2026-10-05T09:32:55Z
TongcyBot
83009
半自動導入非詞元形式
9938789
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||1|p|phis}}
pjevvex7xygnbggar9wzjl6wnuvu0q4
ninfeggia
0
3543591
9938790
2026-10-05T09:32:56Z
TongcyBot
83009
半自動導入非詞元形式
9938790
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||3|s|pres|ind|;|2|s|imp}}
jwexplmeprlag2bt5pdxvs91vrlgvyv
ninfeggiai
0
3543592
9938791
2026-10-05T09:32:57Z
TongcyBot
83009
半自動導入非詞元形式
9938791
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||1|s|phis}}
7n1lpt3kv3kq8gmcpl2e0sngh64s334
ninfeggiamo
0
3543593
9938792
2026-10-05T09:32:58Z
TongcyBot
83009
半自動導入非詞元形式
9938792
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||1|p|pres|ind//sub|;|1|p|imp}}
5qbhtm95ca1uwu8s9l2w9p8fu3t6zu4
ninfeggiando
0
3543594
9938793
2026-10-05T09:33:00Z
TongcyBot
83009
半自動導入非詞元形式
9938793
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動名詞}}
# {{gerund of|it|ninfeggiare}}
8t6kfw69w0kkhytn5zxha1hm54nv5cr
ninfeggiano
0
3543595
9938794
2026-10-05T09:33:01Z
TongcyBot
83009
半自動導入非詞元形式
9938794
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||3|p|pres|ind}}
8b0zkacjvme4eknsnmlaxjocchexzoz
ninfeggiarono
0
3543596
9938795
2026-10-05T09:33:02Z
TongcyBot
83009
半自動導入非詞元形式
9938795
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||3|p|phis}}
ne20ho5zqjr6l6nsjg9xqduawwmd4jo
ninfeggiassero
0
3543597
9938796
2026-10-05T09:33:04Z
TongcyBot
83009
半自動導入非詞元形式
9938796
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||3|p|impf|sub}}
qmcgiomstzfeuck0hjpjqps7p8ws9p0
ninfeggiasse
0
3543598
9938797
2026-10-05T09:33:05Z
TongcyBot
83009
半自動導入非詞元形式
9938797
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||3|s|impf|sub}}
0teikfa8dwlyxb98ab45xut5sd34kvm
ninfeggiassi
0
3543599
9938798
2026-10-05T09:33:06Z
TongcyBot
83009
半自動導入非詞元形式
9938798
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||1//2|s|impf|sub}}
8jcnov6z5ijni6tdof1bg4d1d0tffhy
ninfeggiassimo
0
3543600
9938799
2026-10-05T09:33:07Z
TongcyBot
83009
半自動導入非詞元形式
9938799
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||1|p|impf|sub}}
mxp5yrouva9e8pz7bzyx39hjsmsga00
ninfeggiaste
0
3543601
9938800
2026-10-05T09:33:09Z
TongcyBot
83009
半自動導入非詞元形式
9938800
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||2|p|phis|;|2|p|impf|sub}}
s3rxmudkrzzywsck61s3iaq76gylh78
ninfeggiasti
0
3543602
9938801
2026-10-05T09:33:10Z
TongcyBot
83009
半自動導入非詞元形式
9938801
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||2|s|phis}}
hxg0arxk00rp8u15ocjpkuxtfvl2hl6
ninfeggiate
0
3543603
9938802
2026-10-05T09:33:11Z
TongcyBot
83009
半自動導入非詞元形式
9938802
wikitext
text/x-wiki
==意大利語==
===詞源1===
====動詞====
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||2|p|pres|ind//sub|;|2|p|imp}}
===詞源2===
====分詞====
{{head|it|過去分詞變格形|g=f-p}}
# {{feminine plural of|it|ninfeggiato}}
oewllwhynv5yx52i6apiiiq32mm6w8x
ninfeggiava
0
3543604
9938803
2026-10-05T09:33:13Z
TongcyBot
83009
半自動導入非詞元形式
9938803
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||3|s|impf|ind}}
4yga33pf68fkpqd76tkx03s86u0hc21
ninfeggiavamo
0
3543605
9938804
2026-10-05T09:33:14Z
TongcyBot
83009
半自動導入非詞元形式
9938804
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||1|p|impf|ind}}
f6997y64l8i4qhvadbf1a9gaoxqarrg
ninfeggiavano
0
3543606
9938805
2026-10-05T09:33:15Z
TongcyBot
83009
半自動導入非詞元形式
9938805
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||3|p|impf|ind}}
3c6ljed3kfyyp1dav9q1paxqpll838r
ninfeggiavate
0
3543607
9938806
2026-10-05T09:33:16Z
TongcyBot
83009
半自動導入非詞元形式
9938806
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||2|p|impf|ind}}
rboowdkc46zvqg45o4jclpxxi394wci
ninfeggiavi
0
3543608
9938807
2026-10-05T09:33:17Z
TongcyBot
83009
半自動導入非詞元形式
9938807
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||2|s|impf|ind}}
p0w7md50x54n0n7n79ypt5f1ww366p7
ninfeggiavo
0
3543609
9938808
2026-10-05T09:33:19Z
TongcyBot
83009
半自動導入非詞元形式
9938808
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||1|s|impf|ind}}
===異序詞===
* {{anagrams|it|a=aefggiinnov|infiggevano}}
dbz519ww6i2lkcvyvt5lmtkby4dnkxx
ninfeggino
0
3543610
9938809
2026-10-05T09:33:20Z
TongcyBot
83009
半自動導入非詞元形式
9938809
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||3|p|pres|sub|;|3|p|imp}}
trkq266lq4pipyo1gic4o3n8xn8o9v9
ninfeggio
0
3543611
9938810
2026-10-05T09:33:21Z
TongcyBot
83009
半自動導入非詞元形式
9938810
wikitext
text/x-wiki
{{also|ninfeggiò}}
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||1|s|pres|ind}}
cp9c0cfzl64l5jrr5s3wz0fxrrrb60n
ninfeggiò
0
3543612
9938811
2026-10-05T09:33:22Z
TongcyBot
83009
半自動導入非詞元形式
9938811
wikitext
text/x-wiki
{{also|ninfeggio}}
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|ninfeggiare||3|s|phis}}
logpqoirvbfl6kcqm7q63evx3c8m5zn