Wiktionary zhwiktionary https://zh.wiktionary.org/wiki/Wiktionary:%E9%A6%96%E9%A1%B5 MediaWiki 1.47.0-wmf.6 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 Wiktionary:统计 4 1718 9814450 9813496 2026-06-16T06:42:11Z TongcyBot 83009 機器人:更新每日統計數據 (2026-06-16) 9814450 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-06-01 | fr | mg | zh | th | el | 6930186 | 5930482 | 2332751 | 2181052 | 1580933 | 6930999 | 5930654 | 2333141 | 2181055 | 1580995 | 6931707 | 5932408 | 2333723 | 2181063 | 1581020 | 6932238 | 5934254 | 2334559 | 2181065 | 1581065 | 6932658 | 5936145 | 2334936 | 2181066 | 1581120 | 6933092 | 5937909 | 2335426 | 2181077 | 1581138 | 6933473 | 5938467 | 2335909 | 2181079 | 1581329 | 6933839 | 5939207 | 2336375 | 2181083 | 1581404 | 6935335 | 5940420 | 2336781 | 2181086 | 1581446 | 6935765 | 5941832 | 2337380 | 2181167 | 1581457 | 6936419 | 5943302 | 2338182 | 2181169 | 1581673 | 6936755 | 5943784 | 2338721 | 2181192 | 1581719 | 6937173 | 5944611 | 2339311 | 2181195 | 1581741 | 6937636 | 5945740 | 2339831 | 2181209 | 1581760 | 6938604 | 5946309 | 2340307 | 2181240 | 1581817 | 6939977 | 5946912 | 2340844 | 2181259 | 1581872 | 6940524 | 5947238 | 2341358 | 2181267 | 1581909 }} * 来源:[https://wikistats.wmcloud.org/display.php?t=wt Wikistats] 统计的具体时间为当日1时(UTC)左右,近似表示前一天的数据 * 关于里程碑,参见[[Wiktionary:宣告]] ==页面访问统计== 历史数据参见:[[Wiktionary:统计/存档]] ===总页面浏览量=== {{Collapse2|header=最近一年中文維基詞典的存取量|float=right |{{Graph:PageViews| 365 | _ |scale=sqrt}} }} {{Collapse2|header=自2016年起中文維基詞典總頁面瀏覽量(時間單位:月)|float=right |{{Graph:Chart | width = 800 | height = 300 | xAxisTitle = 時間 | yAxisTitle = 瀏覽量(次) | x = 2016/01/01,2016/02/01,2016/03/01,2016/04/01,2016/05/01,2016/06/01,2016/07/01,2016/08/01,2016/09/01,2016/10/01,2016/11/01,2016/12/01,2017/01/01,2017/02/01,2017/03/01,2017/04/01,2017/05/01,2017/06/01,2017/07/01,2017/08/01,2017/09/01,2017/10/01,2017/11/01,2017/12/01,2018/01/01,2018/02/01,2018/03/01,2018/04/01,2018/05/01,2018/06/01,2018/07/01,2018/08/01,2018/09/01,2018/10/01,2018/11/01,2018/12/01,2019/01/01,2019/02/01,2019/03/01,2019/04/01,2019/05/01,2019/06/01,2019/07/01,2019/08/01,2019/09/01,2019/10/01,2019/11/01,2019/12/01,2020/01/01,2020/02/01,2020/03/01,2020/04/01,2020/05/01,2020/06/01,2020/07/01,2020/08/01,2020/09/01,2020/10/01,2020/11/01,2020/12/01,2021/01/01,2021/02/01,2021/03/01,2021/04/01,2021/05/01,2021/06/01,2021/07/01,2021/08/01,2021/09/01,2021/10/01,2021/11/01,2021/12/01,2022/01/01,2022/02/01,2022/03/01,2022/04/01,2022/05/01,2022/06/01,2022/07/01,2022/08/01,2022/09/01,2022/10/01,2022/11/01,2022/12/01,2023/01/01,2023/02/01,2023/03/01,2023/04/01,2023/05/01,2023/06/01,2023/07/01,2023/08/01,2023/09/01,2023/10/01,2023/11/01,2023/12/01,2024/01/01,2024/02/01,2024/03/01,2024/04/01,2024/05/01,2024/06/01,2024/07/01,2024/08/01,2024/09/01,2024/10/01,2024/11/01,2024/12/01,2025/01/01,2025/02/01,2025/03/01,2025/04/01,2025/05/01,2025/06/01,2025/07/01,2025/08/01,2025/09/01,2025/10/01,2025/11/01,2025/12/01,2026/01/01,2026/02/01,2026/03/01,2026/04/01 | xType = date | yAxisFormat = | showSymbols = | y1 = 10097003,10370374,8792159,8941196,7730585,8096248,6653053,7707543,10114598,7503416,6761878,8479478,6306309,7029498,7793566,8952099,7201718,7403015,9094546,8753927,8887701,8836025,7012428,8297104,9776325,7383846,6846537,6478883,7844796,6800241,7032236,8907342,8070578,8878639,7374038,10399016,8843049,11735279,15986235,6536323,7794540,6340229,6963086,7077486,7262235,8135613,7350657,5924829,5389757,6706817,5468323,6028296,7420864,8089314,9463391,8952807,8032717,7976343,8839864,8511738,9062568,9099531,9196338,11036657,13507384,12075399,13497219,15603301,16689908,15728651,14140022,16914100,13589392,14818070,19016624,15144543,14891967,17026541,17298554,14032388,14847453,17608848,19967345,16730368,14386645,12098112,13610799,13122059,13901295,13433194,15511876,15674859,17748912,26144678,22153348,21554742,23027727,29476088,31116352,31891299,31844500,26251290,24446253,43524978,42154325,30934003,60141744,38114834,35256147,36402985,32703811,27105782,45361042,55198883,39017796,28042128,37231311,52390983,65887852,43219295,50138160,26315414,38336237,63309024 }} }} {| class="wikitable mw-collapsible mw-collapsed" ! 日期 !! 浏览量 |- | 2026-04-01 || 63,309,024 |- | 2026-03-01 || 38,336,237 |- | 2026-02-01 || 26,315,414 |- | 2026-01-01 || 50,138,160 |- | 2025-12-01 || 43,219,295 |- | 2025-11-01 || 65,887,852 |- | 2025-10-01 || 52,390,983 |- | 2025-09-01 || 37,231,311 |- | 2025-08-01 || 28,042,128 |- | 2025-07-01 || 39,017,796 |- | 2025-06-01 || 55,198,883 |- | 2025-05-01 || 45,361,042 |- | 2025-04-01 || 27,105,782 |- | 2025-03-01 || 32,703,811 |- | 2025-02-01 || 36,402,985 |- | 2025-01-01 || 35,256,147 |- | 2024-12-01 || 38,114,834 |- | 2024-11-01 || 60,141,744 |- | 2024-10-01 || 30,934,003 |- | 2024-09-01 || 42,154,325 |- | 2024-08-01 || 43,524,978 |- | 2024-07-01 || 24,446,253 |- | 2024-06-01 || 26,251,290 |- | 2024-05-01 || 31,844,500 |- | 2024-04-01 || 31,891,299 |- | 2024-03-01 || 31,116,352 |- | 2024-02-01 || 29,476,088 |- | 2024-01-01 || 23,027,727 |- | 2023-12-01 || 21,554,742 |- | 2023-11-01 || 22,153,348 |- | 2023-10-01 || 26,144,678 |- | 2023-09-01 || 17,748,912 |- | 2023-08-01 || 15,674,859 |- | 2023-07-01 || 15,511,876 |- | 2023-06-01 || 13,433,194 |- | 2023-05-01 || 13,901,295 |- | 2023-04-01 || 13,122,059 |- | 2023-03-01 || 13,610,799 |- | 2023-02-01 || 12,098,112 |- | 2023-01-01 || 14,386,645 |- | 2022-12-01 || 16,730,368 |- | 2022-11-01 || 19,967,345 |- | 2022-10-01 || 17,608,848 |- | 2022-09-01 || 14,847,453 |- | 2022-08-01 || 14,032,388 |- | 2022-07-01 || 17,298,554 |- | 2022-06-01 || 17,026,541 |- | 2022-05-01 || 14,891,967 |- | 2022-04-01 || 15,144,543 |- | 2022-03-01 || 19,016,624 |- | 2022-02-01 || 14,818,070 |- | 2022-01-01 || 13,589,392 |- | 2021-12-01 || 16,914,100 |- | 2021-11-01 || 14,140,022 |- | 2021-10-01 || 15,728,651 |- | 2021-09-01 || 16,689,908 |- | 2021-08-01 || 15,603,301 |- | 2021-07-01 || 13,497,219 |- | 2021-06-01 || 12,075399 |- | 2021-05-01 || 13,507,384 |- | 2021-04-01 || 11,036,657 |- | 2021-03-01 || 9,196,338 |- | 2021-02-01 || 9,099,531 |- | 2021-01-01 || 9,062,568 |- | 2020-12-01 || 8,511,738 |- | 2020-11-01 || 8,839,864 |- | 2020-10-01 || 7,976,343 |- | 2020-09-01 || 8,032,717 |- | 2020-08-01 || 8,952,807 |- | 2020-07-01 || 9,463,391 |- | 2020-06-01 || 8,089,314 |- | 2020-05-01 || 7,420,864 |- | 2020-04-01 || 6,028,296 |- | 2020-03-01 || 5,468,323 |- | 2020-02-01 || 6,706,817 |- | 2020-01-01 || 5,389,757 |- | 2019-12-01 || 5,924,829 |- | 2019-11-01 || 7,350,657 |- | 2019-10-01 || 8,135,613 |- | 2019-09-01 || 7,262,235 |- | 2019-08-01 || 7,077,486 |- | 2019-07-01 || 6,963,086 |- | 2019-06-01 || 6,340,229 |- | 2019-05-01 || 7,794,540 |- | 2019-04-01 || 6,536,323 |- | 2019-03-01 || 15,986,235 |- | 2019-02-01 || 11,735,279 |- | 2019-01-01 || 8,843,049 |- | 2018-12-01 || 10,399,016 |- | 2018-11-01 || 7,374,038 |- | 2018-10-01 || 8,878,639 |- | 2018-09-01 || 8,070,578 |- | 2018-08-01 || 8,907,342 |- | 2018-07-01 || 7,032,236 |- | 2018-06-01 || 6,800,241 |- | 2018-05-01 || 7,844,796 |- | 2018-04-01 || 6,478,883 |- | 2018-03-01 || 6,846,537 |- | 2018-02-01 || 7,383,846 |- | 2018-01-01 || 9,776,325 |- | 2017-12-01 || 8,297,104 |- | 2017-11-01 || 7,012,428 |- | 2017-10-01 || 8,836,025 |- | 2017-09-01 || 8,887,701 |- | 2017-08-01 || 8,753,927 |- | 2017-07-01 || 9,094,546 |- | 2017-06-01 || 7,403,015 |- | 2017-05-01 || 7,201,718 |- | 2017-04-01 || 8,952,099 |- | 2017-03-01 || 7,793,566 |- | 2017-02-01 || 7,029,498 |- | 2017-01-01 || 6,306,309 |- | 2016-12-01 || 8,479,478 |- | 2016-11-01 || 6,761,878 |- | 2016-10-01 || 7,503,416 |- | 2016-09-01 || 10,114,598 |- | 2016-08-01 || 7,707,543 |- | 2016-07-01 || 6,653,053 |- | 2016-06-01 || 8,096,248 |- | 2016-05-01 || 7,730,585 |- | 2016-04-01 || 8,941,196 |- | 2016-03-01 || 8,792,159 |- | 2016-02-01 || 10,370,374 |- | 2016-01-01 || 10,097,003 |} 数据来源:[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] ==收录词条== {{See|Wiktionary:统计/各语言词条}} ==参看== *[[Special:Statistics|基本统计]] [[Category:維基詞典統計]] gfogkiopq63nfupq8vnm98nxwlf1eik Nebel 0 11222 9814465 9547862 2026-06-16T06:44:04Z Sayonzei 40728 /* Idioms */ 9814465 wikitext text/x-wiki {{also|nebel}} ==德语== ===发音=== * {{IPA|de|/ˈneːbəl/|[ˈneːbl̩]}} * {{audio|de|De-at-Nebel.ogg|(奥地利)音频}} * {{audio|de|De-Nebel.ogg}} ===词源 1=== 源自{{inh|de|gmh|nebel}},源自{{inh|de|goh|nebul}},源自{{inh|de|gem-pro|*nebulaz}},源自{{der|de|ine-pro|*nébʰos}}(衍生出{{cog|grc|νεφέλη||云,雾}}、{{cog|la|nebula||雾}})。 ====名词==== {{de-noun|m}} # [[雾]] # {{lb|de|天文学}} [[星云]] =====变格===== {{de-ndecl|m}} =====近义词===== * {{l|de|Wolke}} =====衍生词汇===== * {{l|de|nebeln||起雾}} * {{l|de|Nebelung||11月}} {{qualifier|弃用}} * {{l|de|vernebeln}} * {{l|de|nebelhaft}}, {{l|de|nebelartig}}, {{l|de|nebelig}} =====相关词汇===== {{der4|de |Abkühlungsnebel |Bergnebel |Berührungsnebel |Bodennebel |Dampfnebel |Eisnebel |Flussnebel |Frühnebel |Hochnebel |Kaltwassernebel |Küstennebel |Kunstnebel |Mischungsnebel |Moornebel |Morgennebel |Seenebel |Spiralnebel |Sprühnebel |Sternennebel |Strahlungsnebel |Talnebel |Verdunstungsnebel |Wiesennebel |Nebelart |Nebelbank |Nebelbildung |Nebelbogen |Nebeldichte |Nebeldunst |Nebelentstehung |Nebelfleck |Nebelgrenze |Nebelhorn |Nebelkammer |Nebelkerze |Nebelmaschine |Nebelregen |nebelreich |Nebelschicht |Nebelstreif |Nebelschlussleuchte |Nebeltag |Nebeltau |Nebelteppich |Nebeltraufe |Nebeltropfen |Nebelwald |Nebelwand }} =====俗語===== * {{l|de|bei Nacht und Nebel|t=秘密地,悄悄地|lit=在晚上和雾中}} ===词源 2=== ====专有名词==== {{de-proper noun|n}} # 德国石勒苏益格-荷尔斯泰因州的一个镇:{{w|内伯尔}} ===词源 3=== ====专有名词==== {{de-proper noun|m|g2=f}} # {{surname|de}} ===延伸阅读=== * {{R:de:Duden}} jmd5ytg5hw8yxn33s66uq16eajbf0bp post 0 15416 9814647 6222597 2026-06-16T10:13:58Z TongcyDai 53191 9814647 wikitext text/x-wiki {{also|Appendix:"post"的變體}} {{minitoc}} ==英語== [[File:Posts on the saltmarsh, Warton Sands - geograph.org.uk - 1658558.jpg|thumb|right|Wooden posts.]] {{swp|en:}} ===其他形式=== * {{alt|en|poast||棄用}} ===發音=== * {{IPA|en|/pəʊst/|a=RP}} * {{enPR|pōst|a=GA}}、{{IPA|en|/poʊst/}} * {{IPA|en|[poːst]|a=CA}} * {{audio|en|en-us-post.ogg|a=US}} * {{rhymes|en|əʊst|s=1}} ===詞源1=== {{etymon|en|id=柱子|:inh|enm:post<ety:inh<ang:post>:bor<fro:post<ety:der<la:postis>>>>|tree=1}} {{inh+|en|enm|post}},源自{{der|en|ang|post||柱子,門柱}}和{{der|en|fro|post||柱子,直樑}},兩者均源自{{der|en|la|postis||門,柱子,門柱}}。 ====名詞==== {{en-noun}} # 從地面伸出的長[[暗榫]]或[[木板]];[[柵欄]][[柱子]];[[燈柱]] #: {{ux|en|ram a '''post''' into the ground|把'''柱子'''打入地下}} # {{lb|en|建設}} [[壁骨]];[[二乘四木材]] # [[電池]]的[[極]] # {{lb|en|牙科學}} [[樁]](插入[[根管]]中為牙冠提供固位的細長物) # {{lb|en|聲樂|主要|無伴奏合唱}} 在移動的[[和聲]]中延長的最終[[旋律]]音符 # {{lb|en|紙張|印刷}} 一種尺寸為 19.25 英寸 × 15.5 英寸的[[印刷]][[紙]] # {{lb|en|運動}} [[門柱]] #* {{quote-web|en|date=December 29, 2010|author=Chris Whyatt|title=Chelsea 1 - 0 Bolton|work=BBC|url=http://news.bbc.co.uk/sport1/hi/football/eng_prem/9309542.stm|passage=But they marginally improved after the break as {{w|lang=en|Didier Drogba}} hit the '''post'''.|t=但他們在休息後略有改善,{{w|lang=en|迪迪埃·德羅巴}}擊中了'''門柱'''。}} # [[籃球]]場上靠近籃筐的[[位置]] # {{lb|en|棄用}} 旅館或[[客棧]]的[[門柱]],上面用粉筆寫著[[顧客]]的[[賒帳]];因此指欠款,[[債務]] #* {{quote-text|en|year=1600|author=w:en:Samuel Rowlands|title=The knauve of clubs |passage=when God ſends coyne, <br>I will diſcharge your '''poaſt'''|t=當上帝賜予錢幣時,<br>我將清償你的'''賒帳'''}} # [[鉤針]]編織的垂直部分 =====派生詞彙===== {{col6|en|ale post |antepost |A-post |back post |backpost |barpost |bedpost |behind post |be left at the post |B-post |cattlepost |checkpost |C-post |crownpost |deaf as a post |doorpost |D-post |dumb as a post |far post |fencepost |fingerpost |first past the post |flagpost |footpost |from pillar to post |from post to pillar |gatepost |goalpost |gradient post |guarding post |guardpost|Bell Post Hill |guidepost |handpost |headpost |heelpost |high-post |hitching post |housepost |jack post |king post |knight of the post |lamp post |lamppost |listening post |low post |low post area |milepost |millpost |mispost |mooring post |near post |netpost |newel post |observation post |pencil-post bed |pip at the post |pip to the post |pissing post |plucking post |poster |post hanger |posthole |postless |postlike |post mill |post mold |post oak |post parade |postpipe |post position |post prison |post time |postward |postwise |powder-post |powder-post beetle |prick post |queen post |quoin post |reaching-post |ringpost |rubbing post |rudderpost |Samson post |scratching post |seat post |sidepost |signalpost,signal post |signpost |snubbing post |snub post |聲音 post |starting post |stempost |sternpost |strainer post |swinging post |telegraph post |tool post,toolpost |travelling post office |turning post |warping post |watchpost |whipping post |whistle post |winning post }} ====動詞==== {{en-verb}} # {{lb|en|及物}} 在顯眼處懸掛([[告示]])供人閱覽 #: {{ux|en|'''Post''' no bills.|嚴禁'''張貼'''海報}} #: {{ux|en|[[w:en:Martin Luther|Martin Luther]] '''posted''' his ninety five theses on the door of the Castle Church in [[Wittenburg]].|[[w:en:馬丁·路德|馬丁·路德]]在維滕貝格諸聖堂的門上'''張貼'''了《九十五條論綱》。}} # {{lb|en|及物|引申}} [[公開]][[宣布]];[[發布]] #: {{ux|en|The company '''posted''' record profits this quarter.|公司本季度'''公布'''了創紀錄的利潤}} #* {{quote-book|en|year=2001|author=Bernard E. Harcourt|title=Illusion of Order|chapter=4|text=Although New York City preceded many large cities in '''posting''' a drop in homicides and other violent offenses in the early 1990s, by the end of the decade it also seemed to be at the forefront of a possible cyclical rebound.|t=儘管紐約市在 1990 年代初期先於許多大城市'''公布'''了兇殺及其他暴力犯罪的下降,但到了十年末期,它似乎也處於可能出現的週期性反彈的最前沿。}} #* {{quote-web|en|date=23 Aug 24|author=@jbodineh|work=Twitter|url=https://x.com/jbodineh/status/1819905988008272143|text=He’s saying if you can’t win, quitting is okay? What would the PGA say if golfers quit the tournament after '''posting''' a high score?|t=他的意思是如果你贏不了,放棄也沒關係?如果高爾夫球手在'''打出'''高分後退出比賽,PGA 會怎麼說?}} # 將……公之於眾以示[[譴責]]或[[責備]];[[可恥]]地宣揚;發布公告譴責 #: {{ux|en|to '''post''' someone for cowardice|公告某人的懦弱以示'''譴責'''}} #* {{quote-text|en|year=1732|author=w:en:George Granville|title=Epilogue to the She-Gallants|line=13|passage=On Pain of being '''posted''' to your Sorrow<br>Fail not, at Four, to meet me here To-morrow.|t=否則將被'''張貼'''公告令你蒙羞<br>切記,明天四點在此與我相見。}} # {{lb|en|會計}} 將(帳目)從[[日記帳]][[結轉]]到[[分類帳]] #* {{RQ:Arbuthnot Law|chapter=Of John Bull's Second Wife, and the Good Advice that She Gave Him|page=18|passage=You have not '''poſted''' your Books theſe Ten years; hovv is it poſſible for a Man of Buſineſs to keep his Affairs even in the VVorld at this rate?|t=你這十年來都沒有'''結轉'''過帳目;一個生意人怎麼可能在這種情況下維持他在世上的事務?}} # [[通知]];[[提供]][[消息]]給;使熟悉某事的[[細節]](常與 {{m|en||up}} 連用) #* {{quote-journal|en|date=March 2 1872|title=Interviewing a Prince|journal={{w|lang=en|Saturday Review (London newspaper)|Saturday Review}}|volume=33|issue=853|page=273|location=London|passage=thoroughly '''posted''' up in the politics and literature of the day|t=對當今的政治和文學有透徹的'''了解'''}} # {{lb|en|及物}} 存入一筆可能退還也可能不退還的款項 ## {{lb|en|賭博}} 支付([[賭注]]或[[盲注]]) ##: {{ux|en|Since Jim was new to the game, he had to '''post''' $4 in order to receive a hand.|因為吉姆是遊戲新手,他必須'''下注''' 4 美元才能拿到一手牌}} ## {{lb|en|法律}} 支付[[保釋金]] ##: {{co|en|to '''post''' bail|'''交納'''保釋金}} ##* {{quote-book|en|date=2022-01-01|author=Paul Bergman; Sara J. Berman|title=The Criminal Law Handbook: Know Your Rights, Survive the System|publisher=Nolo|isbn=9781413329407|passage=For example, if the police or court sets bail at $1,000, and a suspect owns a fancy watch worth at least that amount, the defendant may be able to use the watch to '''post''' bail.|t=例如,如果警察或法院將保釋金定為 1,000 美元,而嫌疑人擁有一塊價值至少為該數額的精美手錶,被告或許可以使用該手錶來'''交納'''保釋金。}} ##* {{quote-book|en|date=2010-05-18|author=David Andrew Schultz|title=Encyclopedia of the United States Constitution|publisher=Infobase Publishing|isbn=9781438126777|page=45|passage=Because wealthy defendants are better positioned to '''post''' bail or provide collateral, the American bail system has been criticized as being biased against the poor.|t=因為富有的被告更有能力'''交納'''保釋金或提供抵押品,美國的保釋制度一直被批評為對窮人有偏見。}} ##* {{quote-book|en|year=2006|month=05|author=Robert Perry|title=Dirty Money|publisher=iUniverse|isbn=9780595387625|page=34|passage=Carmen '''posted''' a $15,000 bond, and like the other Valenzuelas before her, failed to appear for trial. Morgan's scorecard for case 4: 4.4 pounds seized, 2 Valenzuelas arrested, 1 Valenzuela dismissed, 1 bail jump.|t=卡門'''交納'''了 15,000 美元的保釋金,並且像她之前的其他巴倫蘇埃拉家族成員一樣,未出庭受審。摩根對第四個案件的記分卡:繳獲 4.4 磅,逮捕 2 名巴倫蘇埃拉成員,駁回 1 名巴倫蘇埃拉成員,1 人棄保潛逃。}} ##* {{quote-book|en|year=1996|author=Lee N. June; Matthew Parker|title=Men to Men: Perspectives of Sixteen African-American Christian Men|publisher=Harper Collins|isbn=9780310201571|page=201|passage=When you '''post''' bail, and the case is over, the court system will take 30 percent of that bail which, in this example, will be $3,000 of the original 10 percent that you posted. Hence, you will get $7,000 back.|t=當你'''交納'''保釋金,並且案件結束後,法院系統將抽取該保釋金的 30%,在這個例子中,這將是你最初交納的 10% 中的 3,000 美元。因此,你會拿回 7,000 美元。}} =====派生詞彙===== {{col|en|nonposted|preposted|unposted |post the coal |post up|blogpost |poster }} =====派生語彙===== * {{desc|zh|po|bor=1}} =====參考資料===== * {{R:Online Etymology Dictionary}} ===詞源2=== {{etymon|en|id=郵件|:bor|frm:poste<ety:der<it:posta<id:posita>>>|tree=1}} {{bor+|en|frm|poste}},源自{{der|en|it|posta||停放馬車的地方}},{{m|it|posto||放置的,位於的}}的陰性形式。 ====名詞==== {{en-noun}} # {{lb|en|棄用}} [[驛站]]系統中沿[[驛道]]特定地點駐守的負責人員,負責沿途[[傳遞]][[君主]](及後來其他人)的[[信件]]和[[公文]] {{defdate|16世紀至17世紀}} # {{lb|en|過時}} 驛站,[[中繼站]],或建立在某些公認路線上為旅客提供[[茶點]]和[[住宿]]的一系列[[站點]]之一 #: {{ux|en|a stage or railway '''post'''|公共馬車或鐵路的'''中繼站'''}} # [[軍事]][[基地]];士兵或部隊[[駐紮]]的地點;亦指駐紮在該地點的部隊 #* {{quote-book |en |url=https://archive.org/details/china0000tuan/ |year=1865 |title=Peking and the Pekingese |volume=II |author=David Field Rennie, M.D. |publisher={{w|lang=en|John Murray (publishing house)|John Murray}} |location=London |page=42 |pageurl=https://archive.org/details/pekingandpeking01renngoog/page/n60/ |passage=''September'' 6''th.''—The English mail of the 10th of July arrived to-day, and while Mr. Hart was at the Foreign Office engaged on business with Wan-se-ang and Hang-Ki, he received his Shang-hai letters, one of which contained the news of the recapture by the Imperial forces of the cities of Woo-tu and Nan-ching, two important rebel '''posts'''.|t=9 月 6 日。——7 月 10 日的英國郵件今天到達,當赫德先生在總理衙門與文祥和恆祺洽談業務時,他收到了上海的信件,其中一封包含了帝國軍隊收復武都和南京這兩個重要叛軍'''據點'''的消息。}} # {{lb|en|現|_|歷史}} 沿設定路線[[快遞]]信件和公文的人;[[信使]] {{defdate|自16世紀}} #* {{RQ:Shakespeare Two Gentlemen of Verona|I|iii|line=152|text=I fear my Julia would not deign my lines,<br>Receiving them from such a worthless '''post'''.|t=我怕我的茱莉亞會不屑看我的信,<br>因為是從這樣一個毫無價值的'''信使'''手中收到的。}} #* {{quote-text|en|year=1599|author={{w|lang=en|George Abbot }}|title=Geography, or a Brief Description of the Whole World |passage=in certain {{long s}}et places there be alwaies fresh '''Po{{long s}}ts''', to carry that further which is brought unto them by the others|t=在某些特定的地方總是有新的'''驛使''',以便將其他人送來的東西進一步傳遞下去}} #* {{quote-text|en|year=2011|author=[[w:en:Thomas Penn (historian)|Thomas Penn]]|title=Winter King: Henry VII and the Dawn of Tudor England|page=199|publisher=Penguin|year_published=2012 |passage=information was filtered through the counting-houses and warehouses of Antwerp; '''posts''' galloped along the roads of the Low Countries, while dispatches streamed through Calais, and were passed off the merchant galleys arriving in London from the Flanders ports.|t=信息通過安特衛普的帳房和倉庫過濾;'''信使'''在低地國家的道路上飛馳,而公文則湧過加萊,並從抵達倫敦的法蘭德斯港口的商用槳帆船上傳遞下來。}} # {{lb|en|英國|愛爾蘭|印度|澳大利亞|紐西蘭}} [[郵政]]: ## 遞送[[信件]]、[[包裹]]等的組織或該組織提供的服務 {{defdate|自17世紀}} ##: {{syn|en|mail}} ##: {{ux|en|I sent a parcel via/by '''post'''.|我透過'''郵政'''寄了一個包裹}} ##* '''1707''', {{w|lang=en|Alexander Pope}}, Letter VII (to Mr. Wycherly), November 11 ##*: I take it too as an opportunity of sending you the fair copy of the poem on Dullness, which was not then finished, and which I should not care to hazard by the common '''post'''. ## 單次遞送的信件;遞送給某人或某個地址的單批信件或郵件 {{defdate|自17世紀}} ##: {{syn|en|mail}} ##* {{quote-journal|en|date=2020 November 18|title=Stop & Examine|journal=Rail|page=71|text=Royal Mail worker Evette Chapman gathered a team of 12 colleagues to deliver '''post''' in fancy dress and raise money for a nurses' charity and patients in Musgrove Park Hospital, Taunton.|t=皇家郵政員工埃薇特·查普曼召集了一個由 12 名同事組成的團隊,穿著化裝服遞送'''郵件''',為護士慈善機構和湯頓馬斯格羅夫公園醫院的患者籌集資金。}} # {{senseid|en|電子訊息}} [[貼文]],[[帖子]]{{gl|在電子或網際網路[[論壇]]、[[部落格]]等處發布的訊息}} {{defdate|自20世紀}} #* {{quote-journal|en|journal=w:en:TIME|title=Who Is Balendra Shah, the Rapper On Track to Become Nepal’s Next Prime Minister|date=March 11 2026|author=Chad de Guzman |text=Oli conceded defeat and, in a '''post''' on X Saturday, congratulated Shah. “Balen Babu, Congratulations to you for the victory! May your five-year tenure be smooth and successful—heartfelt best wishes!” |url=https://time.com/article/2026/03/11/balendra-shah-elections-nepal-prime-minister-rsp-gen-z-protests/ |archiveurl=https://web.archive.org/web/20260311233009/https://time.com/article/2026/03/11/balendra-shah-elections-nepal-prime-minister-rsp-gen-z-protests/|t=奧利承認失敗,並在週六 X 上的一篇'''貼文'''中祝賀沙阿。「巴倫·巴布,祝賀你取得勝利!願你五年的任期順利成功——衷心祝願!」}} # {{lb|en|美式足球}} 一種中深遠距離的[[傳球]][[路線]],[[接球員]]從[[爭球線]]直奔球場 10-20 碼,然後以 45 度角切向球場中央(朝向對面的門柱) #: {{ux|en|Two of the receivers ran '''post''' patterns.|兩名接球員跑了'''朝向門柱'''的路線}} # {{lb|en|棄用}} [[匆忙]]或[[迅速]]{{gl|如信使或郵遞員般}} #* {{RQ:Shakespeare Romeo and Juliet|V|iii|line=273|text=And then in '''post''' he came from Mantua.|t=然後他'''星夜兼程'''從曼圖亞趕來。}} # {{lb|en|棄用}} [[主管]]驛站(尤指郵政驛站)的人 #* {{quote-text|en|year=1858|author=w:en:John Gorham Palfrey|title=History of New England|volume=1|chapter=IV|page=136 |passage=there he held the office of postmaster, or, as it was then called, '''''post''''', for several years.|t=在那裡他擔任了幾年的郵政局長,或者當時被稱為'''驛站主管'''。}} =====派生詞彙===== {{col6|en|airpost |block post |blog post,blogpost |book post |border post |borderpost |bottom-post |by return of post |command post |Cossack post |crosspost |customs post |dark post |Dease Lake Post |dispost |drunkpost |flounce post |folio post |freepost |ghost post |gunpost |hardship post |in the post |Job's-post |last post |linkpost |make post |masterpost |megapost |metapost |micropost |mispost |necropost |newspost |outpost |parcel post |penny post |pigeon post |pinned post |pneumatic post |postal |post and pair |postathon |postback |post bag,postbag |post box,postbox |postboy |post-captain |postcard |postcart|post service |post chaise |postcode,post code |postcount,post count |post day |postee |postform |post-free |postgasm |postgirl |postgiro |posthaste,post-haste |posthorn,post horn |posthorse,post-horse |post-house |posthouse |postlady |post lady |postman |postmark |postmaster |postmile |postmistress |post note |postoffice,post office |postperson |postrider,post-rider |postroom |post town |Postville |postwhore |postwoman |postworthy |pre-to-post |registered post |repost |schizopost |sentry post |side-post |spaghetti post |staging post |stick to one's post |sticky post |subpost |take post |telepost |textpost |top-post |tradepost |trade post |waypost |xpost }} =====派生語彙===== {{top4}} * {{desc|bor=1|bg|пост}} * {{desc|bor=1|ca|post}} * {{desc|bor=1|zh|po|PO}} *: {{desc|yue|-}} pou<sup>1</sup> *: {{desc|cmn|-}} pōu *: {{desc|nan|-}} pho͘ * {{desc|bor=1|fr|post}} * {{desc|bor=1|ga|post}} * {{desc|bor=1|de|Post}} *: {{desc|bor=1|gsw|Post}} *: {{desc|bor=1|bar|Post}} * {{desc|bor=1|el|ποστ}} * {{desc|bor=1|hu|poszt}} * {{desc|bor=1|it|post}} * {{desc|bor=1|ja|ポスト}} * {{desc|bor=1|kk|пост}} * {{desc|bor=1|ms|pos}} * {{desc|bor=1|mi|pōhi}} * {{desc|bor=1|pl|post}} * {{desc|bor=1|pt|post}} * {{desc|bor=1|ro|post}} * {{desc|bor=1|ru|пост}} * {{desc|bor=1|gd|post}} * {{desc|bor=1|es|post}} * {{desc|bor=1|sw|posta}} * {{desc|bor=1|uk|пост}} * {{desc|bor=1|cy|post}} {{bottom}} ====動詞==== {{en-verb}} # 乘[[驛馬]]旅行;最初指作為[[信使]]騎驛馬旅行 {{defdate|自16世紀}} #* {{RQ:Mary Shelley Frankenstein|text=Beyond Cologne we descended to the plain of Holland; and we resolved to '''post''' the remainder of our way […].|t=過了科隆,我們下到了荷蘭平原;我們決定剩下的路程乘'''驛馬'''前行 [...]。}} # 快速[[旅行]];[[匆忙]] {{defdate|自16世紀}} #* {{RQ:Shakespeare King Lear|III|vi|line=1|text='''Post''' speedily to my lord your husband.|t=快馬加鞭'''趕到'''我主你丈夫那裡去。}} #* ''c.'' '''1652''', {{w|lang=en|John Milton}}, "On His Blindness", line 13 #*: thousand at his bidding speed,<br>And '''post''' o'er land and ocean without rest;<br>They also serve who only stand and wait. # {{lb|en|英國|愛爾蘭|印度|澳大利亞|紐西蘭}} 透過郵政服務寄送(郵件等) {{defdate|自19世紀}} #: {{ux|en|Mail items '''posted''' before 7.00pm within the Central Business District and before 5.00pm outside the Central Business District will be delivered the next working day.|在中央商業區下午 7:00 前及中央商業區外下午 5:00 前'''寄出'''的郵件將在下一個工作日送達}} # {{lb|en|騎馬}} 在馬鞍上隨著馬的動作起伏,尤指在[[快步]]時 {{defdate|自19世紀}} # {{lb|en|網際網路}} [[po文]],[[發帖]]{{gl|在[[新聞組]]、[[論壇]]、[[部落格]]等處[[發布]](訊息)}} {{defdate|自20世紀}} #: {{ux|en|I couldn't figure it out, so I '''posted''' a question on the mailing list.|我弄不明白,所以我發郵件列表上'''發了'''個問題}} =====派生詞彙===== {{col|en|poster|autopost|repost|郵政 off|unposted|blogpost|drunkpost|flypost|memepost|mispost|multipost|necropost|overpost|postable|postage|unpost}} =====派生語彙===== {{top4}} * {{desc|ca|postejar|bor=1}} * {{desc|nl|posten|bor=1}} * {{desc|fi|postata|bor=1}} * {{desc|fr|poster|bor=1}} * {{desc|ka|პოსტავს|დაპოსტავს|bor=1}} * {{desc|de|posten|bor=1}} *: {{desc|gsw|poste|bor=1}} *: {{desc|bar|postn|bor=1}} * {{desc|it|postare|bor=1}} * {{desc|pl|postować|bor=1}} * {{desc|pt|postar|bor=1}} * {{desc|ro|posta|bor=1}} * {{desc|ru|постить|bor=1}} * {{desc|es|postear|bor=1}} * {{desc|sv|posta|bor=1}} * {{desc|uk|постити|bor=1}} * {{desc|cy|postio|bor=1}} {{bottom}} ====副詞==== {{en-adv|-}} # 使用驛政系統,騎驛馬;透過接力換馬(在每個驛站換馬);因此指[[快速]]地,[[迅速]]地 #* {{RQ:Shakespeare All's Well|IV|5|text=His highness comes '''post''' from Marseilles,|t=殿下從馬賽'''快馬加鞭'''趕來,}} #* {{RQ:Fielding Tom Jones|text=In this posture were affairs at the inn when a gentleman arrived there '''post'''.|t=客棧裡的情形正是如此,這時一位紳士'''乘驛馬'''抵達了。}} #* {{quote-book|en|year=1790|author=w:en:Jane Austen|chapter=Love and Freindship|title=Juvenilia |passage=We therefore determined to change Horses at the next Town and to travel '''Post''' the remainder of the Journey.|t=因此我們決定在下個城鎮換馬,並'''乘驛馬'''走完剩餘的旅程。}} #* {{RQ:Kipling Plain Tales|edition=2nd|story=The Arrest of Lieutenant Golightly|pages=134–135|pageref=135|passage=He prided himself on looking neat even when he was riding '''post'''.|t=他為自己即使在'''騎驛馬飛馳'''時也能看起來衣著整潔而自豪。}} # 透過郵政服務寄送地 =====派生語彙===== * {{desc|de|bor=1|posten}} ===詞源3=== 可能借自{{bor+|en|fr|poste}}。 ====名詞==== {{en-noun}} # 指定的[[崗位]];[[哨所]] #* {{quote-journal|en|date=2013-06-08|volume=407|issue=8839|page=52|magazine=w:en:The Economist |title=[http://www.economist.com/news/international/21579039-chinas-growing-empire-ports-abroad-mainly-about-trade-not-aggression-new-masters The new masters and commanders] |passage=源自the ground, Colombo’s port does not look like much. Those entering it are greeted by wire fences, walls dating back to colonial times and security '''posts'''. For mariners leaving the port after lonely nights on the high seas, the delights of the B52 Night Club and Stallion Pub lie a stumble away.|t=從地面上看,可倫坡港看起來沒什麼特別。進入港口的人會迎面看到鐵絲網、可追溯至殖民時代的牆壁和保安'''哨所'''。對於在公海上度過漫長孤寂之夜後離開港口的海員來說,B52 夜總會和種馬酒吧的樂趣就在幾步之遙。}} # 組織中指定的[[職位]],工作崗位 #* {{quote-book |en |year=2005 |author=w:en:Jesse Helms |chapter=Bill Clinton |title=Here's Where I Stand: A Memoir |url=https://archive.org/details/hereswhereistand0000helm/ |location=[[New York]] |publisher=w:en:Random House |ISBN=0-375-50884-8 |LCCN=2005042795 |OCLC=835465798 |page=198 |pageurl=https://archive.org/details/hereswhereistand0000helm/page/198/ |text=As hard as this may seem for some people to understand, my adamant stand in favor of President Clinton leaving his '''post''' was not personal.|t=儘管這對某些人來說可能很難理解,但我堅決支持克林頓總統離職(離開他的'''崗位''')並非出於個人恩怨。}} #* {{quote-journal|en|date=December 14, 2011|author=Angelique Chrisafis|work=Guardian |title=[http://www.guardian.co.uk/world/2011/dec/14/rachida-dati-french-sexism-elitism Rachida Dati accuses French PM of sexism and elitism] |passage=She was Nicolas Sarkozy's pin-up for diversity, the first Muslim woman with north African parents to hold a major French government '''post'''. But Rachida Dati has now turned on her own party elite with such ferocity that some have suggested she should be expelled from the president's ruling party.|t=她是尼古拉·薩科齊多元化的代表人物,是第一位父母為北非裔、擔任法國政府重要'''職位'''的穆斯林女性。但拉奇達·達蒂現在卻以如此猛烈的攻勢轉向了她自己的黨內精英,以至於有人建議她應該被開除出總統的執政黨。}} =====派生詞彙===== {{col|en|postholder}} ====動詞==== {{en-verb}} # 將(名字)列入[[名單]]{{gl|如為了服役、晉升等}} # [[派任]],[[分派]]到某個[[崗位]] #: {{ux|en|'''Post''' a sentinel in front of the door.|在門前'''設立'''哨兵}} #* {{RQ:De Quincey Works|volume=II|page=116|passage=[I]t might be to obtain a ship for a lieutenant that had passed as master and commander, or to get him "'''posted'''"— {{...}}|t=[它]可能是為了給一名已經晉升為大副和指揮官的中尉弄一艘船,或者讓他被“'''派任'''”——}} ===詞源4=== {{ety|en|id=之後|:bor|la:post|text=+|tree=1}} ====介詞==== {{en-head|prep}} # 在……[[之後]];尤指在具有長期[[影響]]的重大事件之後 #* {{quote-text|en|year=2008|author=Michael Tomasky|chapter=Obama cannot let the right cast him in that 60s show|title=The Guardian|url=http://www.guardian.co.uk/commentisfree/2008/apr/21/barackobama.race |passage=One of the most appealing things for me about Barack Obama has always been that he comes '''post''' the post-60s generation.|t=對我來說,巴拉克·奧巴馬最吸引人的地方之一一直是他來自 60 年代'''之後'''的那一代人。}} #* {{quote-text|en|year=2008|author=Matthew Stevens|chapter=Lew pressured to reveal what he knows|title=The Australian|url=https://web.archive.org/web/20080505115149/http://www.theaustralian.news.com.au/story/0,25197,23599518-5001641,00.html |passage=Lew reckons he had three options for the cash-cow which was Premier '''post''' the Coles sale.|t=Lew 認為在科爾斯出售案'''之後''',對於總理這個搖錢樹,他有三個選擇。}} =====派生詞彙===== {{col6|en |ex post |post factum |post festum |post hoc |post meridiem |post obitum }} ===詞源5=== {{clipping|en|post-production}}。 ====名詞==== {{en-noun|-}} # {{lb|en|電影|非正式}} [[後製]],[[後期]][[製作]] #: {{co|en|We'll fix it in '''post'''.|我們會在'''後期'''處理它}} #* {{quote-book|en|year=2013|author=Bruce Mamer|title=Film Production Technique: Creating the Accomplished Image|passage=Admittedly many of these can be fixed in '''post''', but this may limit your flexibility in other areas.|t=誠然,其中許多問題可以在'''後期'''修復,但這可能會限制你在其他方面的靈活性。}} ====參見==== * {{l|en|post-}} ===詞源6=== {{clipping|en|post mortem}}。 ====名詞==== {{en-noun}} # {{lb|en|醫學|非正式}} [[屍檢]]{{gl|調查屍體的死因}} #* {{quote-text|en|year=2010|author=Sandra Glahn|title=Informed Consent|page=306 |passage=I gotta run. Yes, send the kid to the morgue. We'll do a '''post''' on Monday.|t=我得走了。是的,把孩子送到太平間。我們星期一會做'''屍檢'''。}} ===異序詞=== * {{anagrams|en|a=opst|OTPs|SPTO|spot|TSOP|OSTP|Tops|pots|TPOs|TOPS|stop|tops|Spot|POTS|opts|PTOs}} {{C|en|紙張尺寸}} {{cln|en|作格動詞}} ==布列塔尼語== ===詞源=== {{der+|br|la|postis}}。 ===發音=== * {{IPA|br|/ˈpost/}} ===名詞=== {{br-noun|m|p=postoù|p2=pester}} # [[柱子]];[[桿]] ====近義詞==== * {{l|br|peul}} ==加泰羅尼亞語== ===發音=== * {{ca-IPA|ò}} ===詞源1=== {{inh+|ca|la|postis}}。 ====名詞==== {{ca-noun|f}} # [[木板]] # [[架子]] #: {{syn|ca|lleixa|prestatge}} =====下位詞===== * {{l|ca|tauló}} =====派生詞彙===== * {{l|ca|post de pit}} * {{l|ca|post de planxar}} ===詞源2=== {{inh+|ca|la-vul|postus}},源自 {{m|la|positus}}。 ====名詞==== {{ca-noun|m}} # {{lb|ca|軍事}} [[崗位]] ====分詞==== {{ca-pp}} # {{past participle of|ca|pondre}} ===延伸閱讀=== * {{R:ca:IEC2}} ==辛布里語== ===詞源=== {{bor+|cim|it|posta}}。 ===名詞=== {{cim-noun|f}} {{tlb|cim|Luserna}} # [[郵政]]{{gl|遞送郵件的方法}} # [[郵局]] ====派生詞彙==== * {{l|cim|postkart}} ===參考資料=== * {{R:Patuzzi}} {{c|cim|郵政|建築}} ==康沃爾語== ===發音=== * {{IPA|kw|[pɔːst]}} ===詞源1=== {{bor+|kw|en|post#詞源2}}。 ====名詞==== {{kw-noun|m|r}} # {{lb|kw|郵政服務}} [[郵政]] # {{l|en|mail}} =====相關詞彙===== {{col|kw |lyther<t:信件> |lytherva<t:郵局> |sodhva an post,sodhva bost<t:郵局> |postya<t:郵件、郵政><pos:v> |kod post<t:郵遞區號> }} ===詞源2=== {{bor+|kw|en|post#詞源1}} ====名詞==== {{kw-noun|m|r}} # [[柱子]] # {{l|en|stake}} =====派生詞彙===== {{col|kw |post arwodh<t:signpost> }} ===詞首音變=== {{kw-mut}} ==丹麥語== ===發音=== * {{IPA|da|/ˈpɔst/|[ˈpʰʌsd̥]}} ===詞源1=== 透過{{bor|da|fr|poste|g=m}}借自{{der|da|it|posto||地方,位置}},源自{{der|da|la|positus||位置}},源自動詞{{m|la|pono|pōnō|放置}}。 ====名詞==== {{da-noun|en|er}} # [[職位]],[[崗位]] =====變格===== {{da-decl|en|er}} =====派生詞彙===== * {{l|da|postere}} * {{l|da|vagtpost}} ===詞源2=== 透過{{bor|da|fr|poste|g=f}}借自{{der|da|it|posta||中途停留點,郵局}},源自{{der|da|la|posita}},{{m|la|pono|pōnō|放置}} 的過去分詞。 ====名詞==== {{da-noun|en|-}} # [[郵件]]{{gl|信件或包裹}} # [[郵政]]{{gl|分發信件或包裹的公共機構}} # [[郵差]]{{gl|攜帶信件或包裹的人}} =====變格===== {{da-decl|en|n=sg}} =====派生詞彙===== * {{l|da|postbud}} * {{l|da|postkontor}} ===詞源3=== 透過{{bor|da|fr|poste|g=f}} 借自{{der|da|it|posta||中途停留點,郵局}},源自{{der|da|la|posita}},{{m|la|pono|pōnō|放置}} 的過去分詞。 ====名詞==== {{da-noun|en|er}} # [[項目]]{{gl|預算中的}} =====變格===== {{da-decl|en|er}} =====派生詞彙===== * {{l|da|postere}} ===詞源4=== 透過{{bor|da|gml|post}}借自{{der|da|la|postis||柱子,門柱}}。 ====名詞==== {{da-noun|en|er}} # [[泵]],[[水龍頭]]{{gl|戶外水泵}} # {{lb|da|罕用|用於複合詞}} [[柱子]]{{gl|支撐門或窗戶的}} =====變格===== {{da-decl|en|er}} =====派生詞彙===== * {{l|da|dørpost}} * {{l|da|vandpost}} * {{l|da|vinduespost}} ==荷蘭語== ===詞源1=== {{bor+|nl|frm|poste}},源自{{der|nl|it|posta}}。 ====發音==== * {{IPA|nl|/pɔst/}} * {{audio|nl|Nl-post.ogg}} * {{hyphenation|nl|post}} * {{rhymes|nl|ɔst|s=1}} ====名詞==== {{nl-noun|f,m|-en|+}} # [[郵件]] # [[郵局]] =====派生詞彙===== {{col6|nl |exprespost |kabouterpost |luchtpost |pakketpost |postaal |postadres |postauto |postbeambte |postbedrijf |postblad |postbode |postboot |postbrief |postbus |postcode |postdienst |postduif |posterij |posthoorn |postkantoor |postkoets |postorder |postpakket |postpapier |poststuk |posttarief |posttrein |postverkeer |postvlucht |postwaardestuk |postweg |postwezen |postwissel |postzak |postzegel |streekpost |veldpost |zeepost }} =====派生語彙===== * {{desc|af|pos}} * {{desc|jvn|pos|bor=1}} * {{desc|id|pos|bor=1}} ** {{desc|pey|pos|bor=1}} * {{desc|pap|pòst|bor=1}} ===詞源2=== {{bor+|nl|fr|poste}},源自{{der|nl|it|posto}}。 ====發音==== * {{IPA|nl|/pɔst/}} * {{audio|nl|Nl-post.ogg}} * {{hyphenation|nl|post}} * {{rhymes|nl|ɔst|s=1}} ====名詞==== {{nl-noun|f,m|-en|+}} # [[崗位]],[[駐地]],[[位置]] # [[職位]],崗位,辦公室 #: ''Toekomstig Amerikaans president Barack Obama maakt zijn keuzes bekend voor de '''posten''' binnen zijn kabinet op het gebied van veiligheid en buitenlands beleid.'' &mdash; 當選總統巴拉克·奧巴馬公布了他在內閣中安全和外交政策領域的'''職位'''人選。 <small> (nl.wikipedia, 12/3/2008) </small> =====派生詞彙===== {{col|nl |grenspost |handelspost |legerpost }} =====派生語彙===== * {{desc|af|pos}} * {{desc|id|pos|bor=1}} * {{desc|srm|pósu|bor=1}} * {{desc|srn|postu|bor=1}} ** {{desc|jvn|postu|bor=1}} ===詞源3=== {{bor+|nl|en|post}}。 ====發音==== * {{IPA|nl|/poːst/}} * {{hyphenation|nl|post}} * {{rhymes|nl|oːst|s=1}} ====名詞==== {{nl-noun|m|-s|+}} # [[貼文]],[[帖子]]{{gl|在電子或網際網路論壇、部落格等處發布的訊息}} =====派生詞彙===== {{col|nl |blogpost }} =====相關詞彙===== {{col|nl |posten |poster }} ===詞源4=== ====發音==== * {{IPA|nl|/pɔst/}} * {{audio|nl|Nl-post.ogg}} * {{hyphenation|nl|post}} * {{rhymes|nl|ɔst|s=1}} ====名詞==== {{nl-noun|f|-en|+}} # {{alt form of|nl|pos}} ===詞源5=== {{nonlemma}} ====發音==== * {{IPA|nl|/pɔst/}} * {{audio|nl|Nl-post.ogg}} * {{hyphenation|nl|post}} * {{rhymes|nl|ɔst|s=1}} ====動詞==== {{head|nl|動詞變位形式}} # {{infl of|nl|posten||bare-ten-verb}} ===異序詞=== * {{anagrams|nl|spot|stop}} ==愛沙尼亞語== ===發音=== * {{et-IPA|pos't}} * {{rhymes|et|osʲt|s=1}} * {{hyph|et|post}} ===詞源1=== 借自{{bor|et|nds|post}}或{{bor|et|de|post}}。 ====名詞==== {{et-noun|posti|posti}} # [[郵件]]{{gl|包裹和信件}} #: {{ux|et|Tänast '''posti''' pole ma veel näinud.|我還沒看見今天的'''郵件'''。}} # [[郵政]]{{gl|郵政遞送系統}} #: {{ux|et|Seda ajakirja ei saa '''posti''' kaudu tellida.|這本雜誌無法透過'''郵政'''訂閱。}} =====變格===== {{et-decl-riik|post|||i}} =====派生詞彙===== {{col|et|title=名詞|postitama}} {{col|et|title=副詞|postitsi}} =====複合詞===== {{col|et |aamoripost |aamorpost |ametipost |aviopost |e-post |elektronpost |hommikupost |kiirpost |kulleripost |kullerpost |käsipost |kõnepost |lennupost |pudelipost |pudelpost |rämpspost |tavapost |tigupost |torupost |tuvipost |tähtpost |välipost |välispost |välkpost |õhupost}} {{col|et |posthobune |postiaadress |postiagentuur |postiamet |postiametnik |postiasutus |postiauto |postihobune |postiindeks |postijaam |postikandja |postikapp |postikontroll |postikorraldus |postikott |postikulu |postikviitung |postilaev |postilennuk |postiloend |postimaantee |postimaja |postimaks |postimees |postimüük |postioperatsioon |postipaat |postipakk |postipapa |postipaun |postipoiss |postipunkt |postipäev |postirahakaart |postirobot |postirong |postisaadetis |postisaladus |postisarv |postiside |postitalu |postitariif |postitasku |postitee |postiteenistus |postiteenus |postitempel |postituvi |postitõld |postitöötaja |postivagun |postivedaja |postivedu |postiväärtus |postiühendus |postiülekanne |postiülem |postkaart |postkast |postkontor |postmaantee |postmark |postmeister |postpaber |postside |postvanker}} =====參見===== {{col|et|postiljon}} ===詞源2=== 借自{{bor|et|nds|post}} 或{{bor|et|de|Pfosten}}。 ====名詞==== {{et-noun|posti|posti}} # [[柱子]],[[桿]] #: {{ux|et|Auto sõitis vastu '''posti'''.|一輛汽車撞上了'''柱子'''。}} # [[門柱]] #: {{syn|et|väravapost}} =====變格===== {{et-decl-riik|post|||i}} =====複合詞===== {{col|et |aiapost |ametipost |betoonpost |elektripost |häbipost |implantaadipost |kandepost |kannapost |kiigepost |kilomeetripost |kinnituspost |kirikupost |kivipost |laternapost |malmpost |metallpost |nurgapost |paalpost |paarispost |piiripost |puitpost |raudpost |sillapost |tarapost |telefonipost |telegraafipost |tellingupost |tenderpost |torupost |tugipost |täispost |tööpost |uksepost |vaatluspost |vabepost |vahepost |vahipost |valvepost |verstapost |väravapost}} {{col|et |postiakrobaatika |postiauk |postipolitseinik |postipõrge |postitants |postivahe |postjalg |postvalgusti |postvundament}} ===詞源3=== {{bor+|et|de|Posten}}。 ====名詞==== {{et-noun|posti|posti}} # [[崗位]],[[哨所]] #: {{syn|et|valvepost|vahipost}} ## 在崗位上的[[守衛]];[[哨兵]] # [[職位]],[[工作]]{{gl|組織中的指定職位}} #: {{syn|et|koht|ametikoht|ametipost}} =====變格===== {{et-decl-riik|post|||i}} =====複合詞===== {{col|et |ametipost |eelpost |kontrollpost |piirivalvepost |politseipost |rahvakontrollipost |salapost |sanitaarpost |sõjaväepost |tööpost |vaatluspost |vahipost |valvepost |vetelpäästepost}} {{col|et |postimiilits}} ===參考資料=== * {{R:Sõnaveeb}} * {{R:et:EKSS}} * {{R:et:SP}} {{C|et|郵政|建設|軍事}} ==世界語== ===詞源=== {{ety|eo|:bor|la:post|text=+|tree=1}} ===發音=== {{eo-pr|a=Eo-post.ogg;LL-Q143 (epo)-Lepticed7-post.wav;LL-Q143 (epo)-Robin van der Vliet-post.wav}} ===介詞=== {{head|eo|介詞}} # 在……[[之後]] # 在……[[後面]] ===延伸閱讀=== * {{R:eo:PIV 2020}} * {{R:eo:ReVo}} {{eo BRO|1}} ==法語== ===詞源=== {{ety|fr|:bor|en:post<id:郵件>}} {{bor+|fr|en|post}}。 ===發音=== * {{fr-IPA}} * {{audio|fr|LL-Q150 (fra)-WikiLucas00-post.wav|a=里昂}} ===名詞=== {{fr-noun|m}} # {{lb|fr|網際網路}} [[貼文]],[[帖子]]{{gl|部落格等處的訊息}} ===異序詞=== * {{anagrams|fr|a=opst|pots|spot|stop|tops}} ==德語== ===發音=== * {{IPA|de|/pɔʊ̯st/|/poːst/|/pɔst/}} * {{audio|de|De-post.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|posen||2//3|s|pres|;|2|p|pres|;|p|imp}} # {{verb form of|de|posten||s|imp}} ==因特語== ===詞源=== {{der+|ia|en|post}},也源自{{der|ia|it|post}}和{{der|ia|es|post}}。 ===發音=== * {{IPA|ia|/post/}} ===名詞=== {{ia-noun}} # {{lb|ia|網際網路}} [[貼文]],[[帖子]] ====相關詞彙==== * {{l|ia|postar}} ==愛爾蘭語== ===其他形式=== * {{alt|ga|posta||Cois Fharraige}} ===詞源=== {{bor+|ga|en|post}}。 ===發音=== * {{IPA|ga|[pˠɔsˠt̪ˠ]}} ===名詞=== {{ga-noun|m|poist|poist}} # 木[[柱]],[[樁]] # {{lb|ga|歷史}} [[信使]];[[郵件]];[[郵差]] # {{lb|ga|軍事}} [[崗位]],[[哨所]] # [[職位]],[[工作]] ====變格==== {{ga-decl-m1|p|ost|oist}} ====派生詞彙==== {{col5|ga|title=木柱 |post deiridh<!--stern-post--> |post leapa<!--bedpost--> }} {{col5|ga|title=郵件 |aerphost |bád poist<!--mail-boat--> |cárta poist |cúrsa poist<!--correspondence course--> |fear poist<!--mail carrier, postman--> |máistir poist<!--postmaster--> |máistreás phoist<!--postmistress--> |oifig an phoist<!--post office--> |ordú poist<!--postal order--> |seirbhís phoist<!--postal service--> |stampa poist<!--postage stamp--> |teach poist<!--post-house--> |ríomhphost }} {{col5|ga|title=哨所 |post ceannais<!--command post--> |post comhraic<!--combat post--> |post éisteachta<!--listening post--> |post faire<!--lookout post--> |post rialaithe<!--control post--> }} {{col5|ga|title=職位 |i bpost<!--in the office--> |post muiníne<!--position of trust--> |post mór<!--big job--> }} ===詞首音變=== {{ga-mut}} ===延伸閱讀=== * {{R:ga:Ó Dónaill}} * {{R:ga:EID}} * {{R:ga:NEID}} ==意大利語== ===詞源=== {{ubor|it|en|post}}。 ===發音=== {{it-pr|pòst,póst,!póust<r:DiPI>}} ===名詞=== {{it-noun|m|#}} # {{lb|it|網際網路}} [[貼文]],[[帖子]]{{gl|論壇上的訊息}} ===參考資料=== <references/> ===異序詞=== * {{anagrams|it|a=opst|spot|stop}} ==拉丁語== ===其他形式=== * {{alt|la|poste||Old Latin}} ===詞源=== {{etymon|la|id=之後|:inh|itc-ola:poste<id:之後>|tree=1}} {{inh+|la|itc-ola|poste}},{{inh+|la|itc-pro|*posti}},源自{{der|la|ine-pro|*pósti}},源自 {{m|ine-pro|*pós}}。與 {{m|la|pone|pōne}} 有關。 ===發音=== * {{la-IPA}} ===介詞=== {{la-prep|post|accusative}} # 在……[[後面]]{{gl|指空間}} #: {{ant|la|ante|prae}} # 在……[[之後]],[[自從]];(引申) [[除……之外]]{{gl|指時間}} ===副詞=== {{la-adv|post|-}} # {{qualifier|指[[空間]]}} ## 在後面 ## [[向後]] # {{qualifier|指[[時間]]}} [[後來]];[[之後]] ====派生詞彙==== {{col|la |post- |poster |posterus |postīcus }} ====派生語彙==== {{topN}} * {{desc|sq|poshtë|bor=1|unc=1}} * {{desc|rup|apoi}} * {{desc|roa-ole|pos|pus|post|pues}} ** {{desc|ast|pos|pes}} ** {{desc|mwl|pus|puis}} ** {{desc|roa-leo|pos|pois|pus}} * {{desc|ca|puix}} * {{desc|en|post-|bor=1}} * {{desc|frp|pués|pi|pu|pè}} * {{desc|fr|puis|post-}} * {{desc|gl|pois|despois|pus}} * {{desc|ist|puoi}} * {{desc|it|poi|dopo|pos-|post-}} * {{desc|pt|pois|depois|após|pos-|pós-}} * {{desc|ro|păi|apoi}} * {{desc|es|pues|después|pos-|post-}} * {{desc|vec|po|può}} {{bottomN}} ===參考資料=== * {{R:la:L&S}} * {{R:la:Elementary Lewis}} * {{R:la:du Cange}} * {{R:la:Gaffiot}}<!-- * {{R:M&A}}_--> * {{R:ine:IEW|page=841}} ==拉脫維亞語== ===詞源=== {{rfe|lv}} ===發音=== * {{lv-IPA|puôst|broken}} ===動詞=== {{lv-verb|tr|1st|poš|pos||pos}} # [[整理]],[[打掃]],[[裝飾]] # [[打扮]] ====變位==== {{lv-conj|po|poš|1st|pos||pos|ī|spal-s}} ==默切諾語== ===詞源=== {{root|mhn|ine-pro|*tḱey-}} {{bor+|mhn|it|posta}}。 ===名詞=== {{mhn-noun|f}} # [[郵政]]{{gl|遞送郵件的方法}} # [[郵局]] ====派生詞彙==== * {{l|mhn|postkòrt}} ===參考資料=== * {{R:CLM}} {{c|mhn|通信|建築}} ==北庫爾德語== ===發音=== * {{kmr-IPA}} ===名詞=== {{kmr-noun|m}} # [[皮膚]] ==書面挪威語== {{wp|nb:}} ===詞源=== {{der+|nb|it|posta}} {{qualifier|在給定語義中}}。 ===名詞=== {{nb-noun-m1}} # [[郵件]]{{gl|透過郵政服務寄送的信件等}} ====派生詞彙==== {{col5|nb |e-post |handelspost |kontrollpost |postboks |postbud |postkasse |postkontor |postkort |utpost }} ===參考資料=== * {{R:nb:OB}} ==新挪威語== {{wp|nn:}} ===詞源=== {{der+|nn|it|posta}} {{qualifier|在給定語義中}}。 ===名詞=== {{nn-noun-m1}} # [[郵件]]{{gl|透過郵政服務寄送的信件等}} ====派生詞彙==== {{col4|nn |e-post |handelspost |kontrollpost |postboks |postkontor |postkort |utpost }} ===參考資料=== * {{R:nn:OB}} ==古英語== ===詞源=== {{etymon|ang|:bor|la:postis}} {{bor+|ang|la|postis||柱子,基座}}。 ===發音=== * {{ang-IPA|post}} ===名詞=== {{ang-noun|m}} # [[柱子]] # [[基座]] ====變格==== {{ang-decl-noun-a-m|post}} ====派生語彙==== * {{desc|enm|post|poste}} ** {{desc|en|post}} *** {{desc|de|post|bor=1}} ** {{desc|sco|post|poist}} ==波蘭語== {{wp|pl:}} ===發音=== {{pl-pr|a=Pl-post.ogg}} ===詞源1=== {{ety|pl|id=禁食|:inh|sla-pro:*postъ|text=+|tree=1}} ====名詞==== {{pl-noun|m-in}} # [[禁食]]{{gl|禁絕食物的行為或習慣}} # [[齋戒]]期{{gl|禁絕食物的時期}} =====變格===== {{pl-decl-noun-m-in}} =====派生詞彙===== {{col|pl|title=形容詞|postny}} {{col|pl|title=名詞|Wielki Post}} {{col|pl|title=動詞|pościć}} ===詞源2=== {{ety|pl|id=訊息|:bor|en:post<id:柱子>|text=+|tree=1}} ====名詞==== {{pl-noun|m-anml}} # [[貼文]],[[帖子]]{{gl|訊息}} =====變格===== {{pl-decl-noun-m-anml}} ===延伸閱讀=== * {{R:pl:WSJP}} * {{R:pl:PWN}} {{C|pl|通信}} ==葡萄牙語== ===詞源=== {{ety|pt|:ubor|en:post<id:郵件>|text=+|tree=1}} {{doublet|pt|poste}}。 ===發音=== {{pt-IPA|pôusti*}} ===名詞=== {{pt-noun|m|#s}} # {{lb|pt|網際網路|俚語}} [[貼文]],[[帖子]]{{gl|線上討論中的單條訊息}} #: {{syn|pt|publicação|postagem}} ====相關詞彙==== * {{l|pt|postar}} ===延伸閱讀=== * {{R:pt:Aulete}} * {{R:pt:Priberam}} ==羅馬尼亞語== ===詞源1=== {{der+|ro|sla-pro|*postъ}}。 ====名詞==== {{ro-noun|n|posturi}} # [[齋戒]]{{gl|禁食或進食極少的時期}},[[禁食]] =====變格===== {{ro-noun-n-uri}} =====相關詞彙===== * {{l|ro|posti}} ====參見==== * {{l|ro|păresimi}} * {{l|ro|Postul Mare}} ===詞源2=== {{bor+|ro|fr|poste}}。 ====名詞==== {{ro-noun|n|posturi}} # [[職位]],[[崗位]],[[工作]] # {{lb|ro|網際網路}} [[貼文]],[[帖子]] =====變格===== {{ro-noun-n-uri}} ==蘇格蘭蓋爾語== ===詞源=== {{bor+|gd|en|post}}。 ===發音=== * {{IPA|gd|/pʰɔs̪t̪/}} ===名詞=== {{gd-noun|g=m|gen=puist|pl=puist}} # [[郵件]] # [[柱子]],[[樁]] # {{lb|gd|網際網路}} [[貼文]],[[帖子]] {{gloss|線上}} # [[郵差]],[[信使]] #: {{syn|gd|posta}} ====參見==== * {{l|gd|postaich}} ====派生詞彙==== * {{l|gd|cairt-phuist}} * {{l|gd|post-bàire}} * {{l|gd|post-dealain}} ===動詞=== {{gd-verb|past=phost|fut=postaidh|vn=postadh|pp=poste}} # [[郵寄]] ====變位==== {{gd-conj|postadh}} ===詞首音變=== {{gd-mut-cons|p|ost}} {{C|gd|郵政|職業}} ==塞爾維亞-克羅地亞語== {{wp|sh:}} ===詞源1=== {{inh+|sh|sla-pro|*postъ}}。 ====發音==== * {{sh-IPA|pȏst}} ====名詞==== {{sh-noun|pȏst|m-in}} # [[禁食]],[[齋戒]] =====變格===== {{sh-decl-noun |pȏst|pòstovi |pȍsta|postóvā |pȍstu|postòvima |pȏst|pòstove |pȍste|pȍstovi |pòstu|postòvima |pȍstom|postòvima }} =====派生詞彙===== {{col|sh|title=名詞|pȍsnīk}} ====延伸閱讀==== * {{R:sh:HJP|eVpvWxk%3D}} ===詞源2=== ====發音==== * {{sh-IPA|pȍst}} ====名詞==== {{sh-noun|pȍst|m-in,m-an}} # {{lb|sh|無情|無生}} [[桿]],[[柱子]] # {{lb|sh|籃球|有情|有生}} [[中鋒]] # {{lb|sh|網際網路|無情|無生}} [[貼文]],[[帖子]] {{qualifier|論壇上的等}} ====延伸閱讀==== * {{R:sh:HJP|eVpvWhA%3D}} {{C|sh|進食}} ==斯洛文尼亞語== {{wp|sl:}} ===發音=== * {{sl-IPA|pȍst}} ===名詞=== {{sl-noun|pȍst|m-in}} # [[禁食]],[[齋戒]]{{gl|禁食或進食極少的行為或習慣}} ====變格==== {{sl-decl-noun-m|pòst|pôst|n=sg}} {{rfinfl|sl|名詞}}<!-- locative singular also póstu --> ===延伸閱讀=== {{R:sl:FR}} {{C|sl|進食}} ==西班牙語== ===詞源=== {{ety|es|:bor|en:post<id:郵件>|text=+|tree=1}} {{doublet|es|puesto|poste}}。 ===發音=== {{es-pr|+|poust<q:較不常見>}} ===名詞=== {{es-noun|m|+,posts}} # {{lb|es|網際網路}} [[貼文]],[[帖子]] #: {{syn|es|posteo|publicación}} ====派生詞彙==== {{col|es|postear}} ===延伸閱讀=== * {{R:es:DEA}} ==瑞典語== ===詞源=== {{bor+|sv|en|post}}。 ===發音=== * {{IPA|sv|/pɔst/}} * {{audio|sv|Sv-post.ogg}} * {{rhyme|sv|ɔst|s=1}} ===名詞=== {{sv-noun|c}} # [[郵局]];遞送郵件和包裹的組織 # {{lb|sv|不可數}} [[郵件]];透過郵局寄送的物品總稱 # 列表或議程上的[[項目]] # [[崗位]];指定的駐地 # (被分配或選舉的)[[職位]] #: {{ux|sv|'''Posten''' som ordförande i idrottsföreningen är vakant.|體育協會主席的'''職位'''出缺。}} ====變格==== {{sv-infl-noun-c-er}} ====相關詞彙==== {{col4|sv |posta |Posten |postkontor |postlåda }} ===異序詞=== * {{anagrams|sv|a=opst|stop}} {{C|sv|郵政}} ==土耳其語== [[Image:Chekiang lamb fur skin.jpg|thumb|right|kuzu '''postu''']] ===詞源=== {{der+|tr|ota|پوست}},借自{{der|tr|fa-cls|پوسْت|t=皮膚,毛皮}}。<ref>{{R:tr:Nişanyan|post1}}</ref> ===發音=== * {{IPA|tr|[post]}} ===名詞=== {{tr-noun|u|lar}} # [[毛皮]],[[獸皮]] #: {{syn|tr|kürk|pösteki}} # {{lb|tr|伊斯蘭教|蘇非主義|比喻|引申自用作坐墊的獸皮}} [[塔里卡]]中教長的職位 # {{lb|tr|比喻}} [[職位]],[[職務]],[[席位]] # {{lb|tr|比喻}} [[生命]];[[性命]];[[屁股]] ====變格==== {{tr-infl-noun-c|u|poss=1}} ====派生詞彙==== {{col4|tr |keçi postu |post elden gitmek |post kavgası |postnişin |postu deldirmek |postu kurtarmak |postuna oturmak |postuna saman doldurmak |postundan olmak |postu sermek |post vermek }} ===參考資料=== <references/> ===延伸閱讀=== * {{R:tr:TDK}} * {{R:tr:RTÜK:TS}} ==威爾士語== ===發音=== * {{IPA|cy|/poːsd/|[pʰoːst]|a=cy-N}} * {{IPA|cy|/pɔsd/|[pʰɔst]|a=cy-S}} ===詞源1=== {{bor+|cy|en|post}}。 ====名詞==== {{cy-noun|m|-}} # {{lb|cy|常|帶定冠詞}} [[郵件]] #: {{syn|cy|llythyrgludiad|cludiad}} =====派生詞彙===== {{col|cy |e-bost<t:電子郵件> |postfeistr<t:郵政局長> |postio<t:郵寄> |swyddfa bost<t:郵局> }} ===詞源2=== {{der+|cy|la|postis}}。 ====名詞==== {{cy-noun|m|pyst}} # [[柱子]] #: {{syn|cy|colofn}} =====其他形式===== * {{l|cy|postyn}} =====派生詞彙===== * {{l|cy|cynhalbost||支撐,支柱}} * {{l|cy|mynegbost||路標}} ===詞首音變=== {{cy-mut}} ===延伸閱讀=== * {{R:cy:GyrA|2=post}} * {{R:cy:Gweiadur}} * {{R:cy:GPC}} f9nzm1u45e9b7x2ew7jjjgrqjbstyur postaĵo 0 16473 9814633 6013231 2026-06-16T07:45:58Z TongcyDai 53191 9814633 wikitext text/x-wiki {{also|poŝtaĵo}} ==世界語== ===詞源=== {{ety|eo|:af|post<t:後面>|-aĵo<t:事物>|text=+|tree=1}} ===發音=== {{eo-pr|a=LL-Q143 (epo)-Lepticed7-postaĵo.wav}} ===名詞=== {{eo-head}} # [[背部]],[[背側]] # [[臀部]],[[屁股]] ====派生詞彙==== * {{l|eo|postaĵotruo|t=肛門}} {{C|eo|臀部}} prkcwccpti1bz1ltchaska121s1kojt Europa 0 16902 9814222 9760594 2026-06-16T03:14:24Z InternetArchiveBot 95668 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 9814222 wikitext text/x-wiki {{also|Europą|Európa|Euròpa|Eùropa|eŭropa|Eurōpa|Eŭropa}} {{minitoc}} ==英語== {{wp|en:}} {{wp|en:52 +}} ===詞源=== 源自{{der|en|grc|Εὐρώπη}},希臘神話中的角色名字。 {{doublet|en|Europe}}。 ===發音=== * {{IPA|en|/jʊˈɹoʊpə/}} * {{audio|en|En-Europa.ogg}} ===專有名詞=== [[File:Europa-moon.jpg|thumb|木星的衛星[[木衛二|歐羅巴]]]] {{en-proper noun}} # {{tcl|en|歐羅巴|id=Q165170}} # {{tcl|en|歐羅巴|id=Q3143}} # {{tcl|en|歐羅巴|id=Q155100}} ====派生詞彙==== {{col2|en|Europan|Europa Point}} ====相關詞彙==== {{col|en|Europa regina |Europe |European}} ===參見=== {{table:Solar System/en}} ==南非語== ===詞源=== {{inh+|af|nl|Europa}}。 ===發音=== * {{audio|af|LL-Q14196 (afr)-Oesjaar-Europa.wav}} ===專有名詞=== 源自 {{af-proper noun}} # {{tcl|af|歐洲|id=Q46}} ===參見=== {{list:continents/af}} ==阿斯圖里亞斯語== ===其他形式=== * {{alt|ast|Uropa||棄用}} ===專有名詞=== {{ast-proper noun|f}} # {{tcl|ast|歐洲|id=Q46}} ====相關詞彙==== * {{l|ast|européu}} ==加泰羅尼亞語== ===發音=== * {{ca-IPA|ó}} * {{IPA|ca|[əwˈɾɔ.pə]|a=亦用於巴利阿里,可能亦用於中部但已過時或屬方言}}<!-- GDLC 標示為 /o/,DCVB 標示為 /ɔ/,但在中部可能已過時或屬方言 --> * {{audio|ca|LL-Q7026 (cat)-Unjoanqualsevol-Europa.wav|a=Catalonia}} ===專有名詞=== {{ca-prop|f}} # {{tcl|ca|歐洲|id=Q46}} ====相關詞彙==== {{col|ca|euro |euro- |Europa Central |europeu}} ====參見==== {{list:continents/ca}} ==康沃爾語== ===詞源=== 源自{{der|kw|la|Eurōpa}},源自{{der|kw|grc|Εὐρώπη}}。 ===專有名詞=== {{head|kw|專有名詞|g=m}} # {{tcl|kw|歐洲|id=Q46}} ====同類詞彙==== {{list:continents/kw}} ====派生詞彙==== {{col|kw |Euro<t:歐元> |European,Europeanes<t:歐洲人><pos:n> |europek<t:歐洲的><pos:a> |Eurosenedh<t:歐洲議會> }} ==捷克語== {{wp|cs:+ (měsíc)}} ===發音=== * {{cs-IPA}} * {{rhymes|cs|opa|s=3}} ===專有名詞=== {{cs-proper noun|f}} # {{senseid|cs|Q3143}}{{C|cs|太陽系行星}}{{lb|cs|無情體}} 木星的衛星[[木衛二]] ====變格==== {{cs-ndecl|f.sg}} ===參見=== {{table:Solar System/cs}} ===延伸閱讀=== * {{R:cs:KNLA}} * {{R:cs:IJP}} ==丹麥語== {{wp|da:}} ===詞源=== 經由{{bor|da|la|Eurōpa}},源自{{der|da|grc|Εὐρώπη}}。 ===發音=== * {{IPA|da|[eˈʁoːpʰa]|/œu̯ˈʀoːpæ/}} ===專有名詞=== {{da-proper noun}} # {{tcl|da|歐洲|id=Q46}} ==荷蘭語== {{picdic |image=Blank_map_Europe_with_borders.png |width=470 |height=390 |labels= {{picdiclabel|nl|color=dark blue|fontsize=20|posx=40|posy=10|link=Europa}} {{picdiclabel|nl|color=black|fontsize=14|posx=85|posy=215|link=Duitsland}} {{picdiclabel|nl|color=black|fontsize=14|posx=25|posy=250|link=Frankrijk}} {{picdiclabel|nl|color=black|fontsize=14|posx=-20|posy=310|link=Spanje}} {{picdiclabel|nl|color=black|fontsize=13|posx=30|posy=185|link=Verenigd Koninkrijk}} {{picdiclabel|nl|color=black|fontsize=14|posx=100|posy=300|link=Italië}} {{picdiclabel|nl|color=black|fontsize=14|posx=280|posy=140|link=Rusland}} {{picdiclabel|nl|color=black|fontsize=12|posx=180|posy=330|link=Griekenland}} {{picdiclabel|nl|color=black|fontsize=14|posx=260|posy=310|link=Turkije}} {{picdiclabel|nl|color=black|fontsize=14|posx=140|posy=200|link=Polen}} {{picdiclabel|nl|color=black|fontsize=14|posx=110|posy=130|link=Zweden}} {{picdiclabel|nl|color=black|fontsize=14|posx=70|posy=110|link=Noorwegen}} {{picdiclabel|nl|color=black|fontsize=14|posx=155|posy=100|link=Finland}} {{picdiclabel|nl|color=black|fontsize=10|posx=80|posy=260|link=Zwitserland}} {{picdiclabel|nl|color=black|fontsize=10|posx=110|posy=250|link=Oostenrijk}} {{picdiclabel|nl|color=black|fontsize=10|posx=115|posy=230|link=Tsjechië}} {{picdiclabel|nl|color=black|fontsize=8|posx=145|posy=240|link=Slowakije}} {{picdiclabel|nl|color=black|fontsize=8|posx=145|posy=260|link=Hongarije}} {{picdiclabel|nl|color=black|fontsize=8|posx=110|posy=270|link=Slovenië}} {{picdiclabel|nl|color=black|fontsize=8|posx=115|posy=280|link=Kroatië}} {{picdiclabel|nl|color=black|fontsize=10|posx=140|posy=285|link=Bosnië en Herzegovina|altlink=B.}} {{picdiclabel|nl|color=black|fontsize=10|posx=165|posy=280|link=Servië}} {{picdiclabel|nl|color=black|fontsize=10|posx=200|posy=290|link=Bulgarije}} {{picdiclabel|nl|color=black|fontsize=10|posx=160|posy=320|link=Albanië}} {{picdiclabel|nl|color=black|fontsize=10|posx=120|posy=370|link=Malta}} {{picdiclabel|nl|color=black|fontsize=10|posx=270|posy=350|link=Cyprus}} {{picdiclabel|nl|color=black|fontsize=10|posx=350|posy=270|link=Armenië}} {{picdiclabel|nl|color=black|fontsize=10|posx=190|posy=260|link=Roemenië}} {{picdiclabel|nl|color=black|fontsize=14|posx=210|posy=215|link=Oekraïne}} {{picdiclabel|nl|color=black|fontsize=10|posx=190|posy=185|link=Wit-Rusland}} {{picdiclabel|nl|color=black|fontsize=10|posx=160|posy=170|link=Litouwen}} {{picdiclabel|nl|color=black|fontsize=10|posx=160|posy=155|link=Letland}} {{picdiclabel|nl|color=black|fontsize=10|posx=160|posy=135|link=Estland}} {{picdiclabel|nl|color=black|fontsize=10|posx=-55|posy=325|link=Portugal}} {{picdiclabel|nl|color=black|fontsize=10|posx=60|posy=205|link=Nederland}} {{picdiclabel|nl|color=black|fontsize=10|posx=100|posy=170|link=Denemarken}} {{picdiclabel|nl|color=black|fontsize=10|posx=35|posy=220|link=België}} {{picdiclabel|nl|color=black|fontsize=10|posx=58|posy=230|link=Luxemburg|altlink=L.}} {{picdiclabel|nl|color=black|fontsize=10|posx=-45|posy=190|link=Ierland}} {{picdiclabel|nl|color=grey|fontsize=10|posx=10|posy=205|link=Engeland}} {{picdiclabel|nl|color=grey|fontsize=10|posx=10|posy=155|link=Schotland}} {{picdiclabel|nl|color=black|fontsize=10|posx=-40|posy=55|link=IJsland}} {{picdiclabel|nl|color=black|fontsize=14|posx=315|posy=330|link=Syrië}} {{picdiclabel|nl|color=blue|fontsize=14|posx=200|posy=375|link=Middellandse Zee}} {{picdiclabel|nl|color=blue|fontsize=14|posx=260|posy=270|link=Zwarte Zee}} {{picdiclabel|nl|color=blue|fontsize=10|posx=40|posy=170|link=Noordzee}} {{picdiclabel|nl|color=blue|fontsize=14|posx=-10|posy=90|link=Atlantische Oceaan}} |detail1= B. = [[Bosnië en Herzegovina#Dutch|Bosnië en Herzegovina]] L. = [[Luxemburg#Dutch|Luxemburg]] }} ===詞源=== {{inh+|nl|dum|europa}},源自{{der|nl|la|Eurōpa}},源自{{der|nl|grc|Εὐρώπᾱ}},{{m|grc|Εὐρώπη}}的多利亞方言形式。 ===發音=== * {{IPA|nl|/øːˈroːpaː/|[øˑˈroːpaˑ]|[ʏˑˈroːpaˑ]}} * {{audio|nl|Nl-Europa.ogg}} * {{hyphenation|nl|Eu|ro|pa}} * {{rhymes|nl|oːpaː}} ===專有名詞=== {{nl-proper noun|n|adj=Europees|mdem=Europeaan|fdem=Europese}} # {{tcl|nl|歐洲|id=Q46}} ====派生詞彙==== {{col|nl |Centraal-Europa |euro |euro- |Europeaan |Europeeër |Europees |Noord-Europa |Noordwest-Europa |Oost-Europa |West-Europa |Zuid-Europa |Zuidoost-Europa }} ====派生語彙==== * {{desc|af|Europa}} * {{desc|dcr|Juropa}} * {{desc|ms|bor=1|Eropah}} ** {{desc|id|Eropa}} ===專有名詞=== {{nl-proper noun|f}} # {{tcl|nl|歐羅巴|id=Q3143,Q165170}} ==法拉法拉語== ===詞源=== {{bor+|gur|la|Eurōpa}},源自{{der|gur|grc|Εὐρώπᾱ}},{{m|grc|Εὐρώπη}}的多利亞方言形式。於2021年引入。 ===發音=== * {{IPA|gur|/e.u.ɾo.pa/}} * {{hyphenation|gur|E|u|ro|pa}} * {{rhymes|gur|ɾo.pa}} ===專有名詞=== {{head|gur|專有名詞}} # {{tcl|gur|歐洲|id=Q46}} ====下位詞==== * {{l|gur|Albagɔ}} * {{l|gur|Daŋɔ}} * {{l|gur|Diiki-dapoore-dutsi}} * {{l|gur|Dusgo}} * {{l|gur|Dusgo-peelga}} * {{l|gur|Dutsgo}} * {{l|gur|Fãreŋo}} * {{l|gur|Ɩŋɔ}} * {{l|gur|Malta}} * {{l|gur|Polgo}} * {{l|gur|Portugal}} * {{l|gur|Sɛkɔ}} * {{l|gur|Sɛpaŋɔ}} * {{l|gur|Suis-tẽŋa}} * {{l|gur|Tɩntɩnnɔ}} * {{l|gur|Tʋrkɔ}} * {{l|gur|Ukraigo}} ==法蘭克-普羅旺斯語== {{wp|frp:}} ===詞源=== 源自{{der|frp|la|Eurōpa}},源自{{der|frp|grc|Εὐρώπα}},希臘神話中的角色。 ===專有名詞=== {{frp-proper noun|f}} {{tlb|frp|orbl}} # {{tcl|frp|歐洲|id=Q46}} ===參考資料=== * {{R:frp:DFP|Europe}} * {{R:frp:LTA|16571}} ==加利西亞語== {{wp|gl:+ (homónimos)}} ===詞源=== {{etymon|gl|:inh|roa-opt:Europa<id:歐洲>|id=歐洲|text=++}} ===發音=== {{gl-pr|Ėuròpa<audio:Gl-Europa.ogg>}} * {{hyph|gl|Eu|ro|pa}} ===專有名詞=== {{gl-proper noun}} # {{tcl|gl|歐洲|id=Q46}} # {{tcl|gl|歐羅巴|id=Q165170,Q3143,Q155100}} ====同類詞彙==== {{list:continents/es}} * {{sense|木星的衛星}} {{l|gl|Calisto}}、{{l|gl|Ganímedes}}、{{l|gl|Ío}} ====相關詞彙==== {{col|gl|europeo |Unión Europea |euro}} ==德語== {{wp|de:}} ===詞源=== {{etymon|de|:inh|gmh:Eurōpā<id:歐洲>|id=歐洲|text=+}} ===發音=== * {{IPA|de|/ɔʏ̯ˈʁoːpa/}} * {{audio|de|De-at-Europa.ogg|a=Austria}} * {{audio|de|De-Europa.ogg|a=柏林}} ===專有名詞=== {{de-proper noun|n,-:s:Europens}} # {{tcl|de|歐洲|id=Q46}} #: {{ux|de|'''Europa''' ist der zweitkleinste Kontinent der Erde.|'''歐洲'''是世界上第二小的大洲。}} #: {{ux|de|Deutschland liegt im Herzen '''Europas'''.|德國位於'''歐洲'''的心臟。}} # {{short for|de|Europäische Union|t=[[歐盟]]}} ====變格==== {{de-ndecl|n:f[罕用],-:s:Europens[現罕用].sg}} ====同類詞彙==== {{list:continents/de}} ====相關詞彙==== {{col|de|Europäer |europäisch |europäisieren |Europapolitik}} ====派生語彙==== * {{desc|ta|ஐரோப்பா|unc=1}} ===專有名詞=== {{head|de|專有名詞|g=f|屬格|Europas|or|Europa}} # {{tcl|de|歐羅巴|id=Q165170,Q3143,Q155100}} ===延伸閱讀=== * {{R:de:DWDS}} ==伊多語== ===詞源=== {{bor+|io|en|Europe}}、{{bor|io|fr|Europe}}、{{bor|io|de|Europa}}、{{bor|io|it|Europa}}、{{bor|io|ru|Евро́па}}、{{bor|io|es|Europa}},最終源自{{der|io|la|Eurōpa}},源自{{der|io|grc|Εὐρώπη}}。 ===發音=== * {{IPA|io|/ew.ˈro.pa/|/ɛw.ˈɾɔ.pa/}} ===專有名詞=== {{head|io|專有名詞}} # {{tcl|io|歐洲|id=Q46}} ====派生詞彙==== * {{l|io|Europana||歐洲的}} * {{l|io|Europano||歐洲人}} ====參見==== {{list:continents/io}} ==因特語== {{wp|ia:}} ===專有名詞=== {{head|ia|專有名詞}} # {{tcl|ia|歐洲|id=Q46}} # {{tcl|ia|歐羅巴|id=Q165170,Q3143,Q155100}} ==意大利語== {{wp|it:}}{{wp|it:+ (astronomia)}}{{wp|it:52 +}}{{wp|it:+ (natante)}}{{wp|it:+ (figlia di Agenore)}}{{wp|it:+ (Oceanina)}} ===詞源=== {{ety|it|:bor|la:Eurōpa}} {{bor+|it|la|Eurōpa}}。 ===發音=== {{it-pr|Euròpa}} * {{audio|it|LL-Q652 (ita)-LangPao-Europa.wav}} ===專有名詞=== {{it-proper noun|f}} # {{tcl|it|歐洲|id=Q46}} #: {{hyper|it|Eurasia}} # {{lb|it|航海|帆船航行|運動}} [[歐洲型帆船]]{{gl|奧運帆船級別}} # {{tcl|it|歐羅巴|id=Q165170,Q3143,Q155100}} ====相關詞彙==== {{col|it |eurasiatico |euro |euro- |eurocentristico |eurocentrismo |eurocity |eurocomunismo |eurocomunista |eurocomunistico |eurocrate |eurodeputato |eurodivisa |eurodollaro |euromercato |euromoneta |Europa centrale |Europa meridionale |Europa occidentale |Europa orientale |europarlamento |Europa settentrionale |europeismo |europeista |europeizzare |europeo |europio |europoide |euroscudo |eurosocialismo |eurosocialista |eurovisione }} ===參見=== {{list:continents/it}} {{table:Solar System/it}} ==拉丁語== {{wp|la:+ (mythologia)}} {{wp|la:[[+|+ (continens)]]}} {{wp|la:+ (satelles)}} {{wp|la:52 +}} [[File:Rape of Europa MAN Napoli Inv111475.jpg|thumb|龐貝古城壁畫中坐在公牛(化身為牛的朱庇特)背上的'''歐羅巴''',西元1世紀。]] [[File:Herodotus World Map.jpg|thumb|希羅多德繪製的世界地圖,將'''歐羅巴'''標示在靠近地圖頂部的位置。]] ===其他形式=== * {{alter|la|Eurōpē}} ===詞源=== {{etymon|la|:bor|grc-dor:Εὐρώπα|id=歐洲}} {{bor+|la|grc-dor|Εὐρώπα}};與 {{cog|grc-att|Εὐρώπη}} 同源。 ===發音=== * {{la-IPA|Eurōpa}} ===專有名詞=== {{la-proper noun|Eurōpa<1.loc>}} # {{tcl|la|歐羅巴|id=Q165170}} # {{tcl|la|歐洲|id=Q46}} #* '''43年''', {{w|lang=en|Pomponius Mela|龐波尼烏斯·梅拉}}, ''De situ orbis'', 第1卷第3章: #*: {{quote|la|Brevis '''Europae''' descriptio.—'''Europa''' terminos habet, ab oriente Tanain et Maeotida et Pontum; a meridie reliqua nostri maris; ab occidente Atlanticum; a septentrione Britannicum oceanum.|q=屬格和主格|t='''歐洲'''的簡短描述。——'''歐洲'''的邊界,東邊是塔奈斯河、梅奧蒂達湖和本都;南邊是我們其餘的海洋;西邊是大西洋的邊緣;北邊是不列顛洋。}} #* '''約415年''', {{w|lang=en|Martianus Capella|馬提亞努斯·卡佩拉}}, ''De nuptiis Philologiae et Mercurii'', 第6卷第661節: #*: {{quote|la|Quartus vero et magnus '''Europae''' sinus ab Hellesponto incipiens Maeotis ostio terminatur. Nam arctum mare inter '''Europam''' et Asiam in angustias septem stadiorum interfluens coarctatur; quas angustias Hellespontum dicunt, ubi Xerxes Persidis rex aggregatis navibus ponteque constructo exercitum duxit.|q=屬格和賓格|t='''歐洲'''的第四大灣從赫勒斯滂開始,在梅奧提斯河口結束。因為流經'''歐洲'''和亞洲之間的狹窄海洋被限制在七斯塔迪亞寬的狹長地帶;他們稱之為赫勒斯滂海峽,波斯國王薛西斯曾在那裡集結船隊,並建造橋樑率領他的軍隊。}} # {{tcl|la|歐羅巴|id=Q3143,Q155100|lb=新拉丁語}} ====變格==== {{la-ndecl|Eurōpa<1>}} ====派生詞彙==== {{col|la |Eurōpaeus<t:歐羅巴的,歐洲的><pos:a> |Eurōpēnsis<t:歐洲的><pos:a> }} ====派生語彙==== {{top2}} * {{desc|ca|Europa}} * {{desc|it|Europa}} ** {{desc|scn|Europa|bor=1}} ** {{desc|tr|Avrupa|bor=1}} * {{desc|fro}} ** {{desc|frm}} *** {{desc|fr|Europe}} * {{desc|osp}} ** {{desc|es|Europa}} * {{desc|scn|Aurupa}} {{bottom}} 借詞: {{top2}} * {{desc|bg|Европа}} * {{desc|cmn|歐羅巴}} * {{desc|dum|europa}} ** {{desc|nl|Europa}} {{see desc}} * {{desctree|enm|Europe}} * {{desctree|gmh|Eurōpā}} * {{desctree|roa-opt|Europa}} * {{desc|ro|Europa}} * {{desc|ru|Европа}} {{bottom}} ===參考資料=== * {{R:la:L&S}} * {{R:la:PersEnc}} * {{R:la:Peck}} * {{R:Smith's Persons}} * {{R:Smith's Geography}} ==立陶宛語== {{wp|lt:}} [[Image:LocationEurope.png|thumb|Europa]] ===發音1=== {{lt-pr|Euro^pà}} ====專有名詞==== {{lt-proper noun|f|2|head=Europà}} # {{tcl|lt|歐洲|id=Q46}} =====變格===== {{lt-noun-f-a-2|n=s|Europ|Euròp}} =====相關詞彙===== {{col|lt|europiẽtis<g:m>|europiẽtė<g:f>}} ===發音2=== {{lt-pr|Euròpa}} ====專有名詞==== {{head|lt|專有名詞變格形|head=Euròpa}} # {{infl of|lt|Europà||voc}} ==中古高地德語== ===詞源=== {{etymon|gmh|:lbor|la:Eurōpa<id:歐洲>|id=歐洲|text=++}} ===發音=== {{gmh-IPA|Eurôpâ}} ===專有名詞=== {{head|gmh|專有名詞|g=f|head=Eurōpā}} # {{tcl|gmh|歐洲|id=Q46}} ====派生語彙==== * {{desctree|de|Europa}} ===參考資料=== * {{R:gmh:BMZ|id=E00431}} * {{R:gmh:Kobler|eurōpā}} ==書面挪威語== {{wp|no:}} ===詞源=== {{bor+|nb|la|Europa}},源自{{der|nb|grc|Εὐρώπη}}。 ===發音=== * {{IPA|nb|/æuˈruːpa/|[æʉˈɾuːpa]}} ===專有名詞=== {{head|nb|專有名詞}} # {{tcl|nb|歐洲|id=Q46}} #: {{ux|nb|Hun kan alle hovedstedene i '''Europa'''.|她能說出'''歐洲'''所有的首都。}} ====派生詞彙==== {{col|nb |europakart |europamester |Europakommisjonen |Europaparlamentet |Europarådet |europavei |Nord-Europa |Sentral-Europa |Sør-Europa |Vest-Europa |Øst-Europa }} ====相關詞彙==== {{col|nb|europeisk|europeer}} ===參見=== {{list:continents/nb}} ===參考資料=== * {{R:Ordnett}} * {{R:Etymonline|entry=Europe}} ==新挪威語== {{wp|nn:}} ===詞源=== {{bor+|nn|la|Europa}},源自{{der|nn|grc|Εὐρώπη}}。 ===專有名詞=== {{head|nn|專有名詞}} # {{tcl|nn|歐洲|id=Q46}} #: {{ux|nn|Ho kan alle hovudstadene i '''Europa'''.|她能說出'''歐洲'''所有的首都。}} ====派生詞彙==== {{col|nn |Aust-Europa |europakart |europameister |Europakommisjonen |Europaparlamentet |Europarådet |Nord-Europa |Sentral-Europa |Sør-Europa |Vest-Europa }} ====相關詞彙==== {{col|nn|europeisk|europear}} ==古葡萄牙語== ===其他形式=== * {{alt|roa-opt|Eyropa}} ===詞源=== {{etymon|roa-opt|:lbor|la:Eurōpa<id:歐洲>|id=歐洲|text=++}} ===專有名詞=== {{head|roa-opt|專有名詞|g=f}} # {{tcl|roa-opt|歐洲|id=Q46}} #* {{RQ:roa-opt:Cronica Troiana|page=19|chapter=A Reſpoſta q̃ Eỹtor dou a Reỹ Priamos ſſeu padre|text=Et ſen falla os de '''europa''' ſon amelloꝛ cauallaría do mũdo nẽ q̃ maỹs ſaben de gerra.}} ====派生語彙==== * {{desc|fax|Europa}} * {{desc|gl|Europa}} * {{desctree|pt|Europa}} ===參考資料=== * {{R:roa-opt:DDGM}} * {{R:roa-opt:CX}} ==波蘭語== {{Wiktionary:圖片詞典/pl:map/Europe}} {{wp|pl:}} ===詞源=== {{etymon|pl|id=歐洲|:lbor|la:Eurōpa<id:歐洲>|tree=1}} {{lbor|pl|la|Eurōpa}},源自{{der|pl|grc|Εὐρώπη}}。 ===發音=== {{pl-pr|a=Pl-Europa.ogg}} ===專有名詞=== {{pl-prop|f|adj=europejski}} # {{tcl|pl|歐洲|id=Q46}} #: {{coi|pl|'''Europa''' Północna|北'''歐'''}} # {{tcl|pl|歐羅巴|id=Q165170,Q3143,Q155100}} ====變格==== {{pl-decl-noun-f|tantum=s}} ====派生詞彙==== {{col|pl|euro|Europejczyk|Europejka}} ===參見=== {{list:continents/pl}} {{table:Solar System/pl}} ===延伸閱讀=== * {{R:pl:WSJP}} * {{R:pl:PWN}} ==葡萄牙語== ===詞源=== {{etymon|pt|:inh|roa-opt:Europa<id:歐洲>|id=歐洲|text=++}} ===發音=== {{pt-IPA|[o:ó]}} * {{hyph|pt|Eu|ro|pa}} ===專有名詞=== {{pt-proper noun|f|+}} # {{senseid|pt|continent}} {{tcl|pt|歐洲|id=Q46}} #* {{quote-book|pt|year=2005|author=Wagner Blini, vários autores|title=Salvando Vida - Com Medicina Natural|pageurl=http://books.google.com.br/books?id=IRTbfcR6BEIC&pg=PA215#v=onepage&q&f=false|isbn=9788599513019|page=215|publisher=Editora DCL|passage=O abacate é uma fruta de sabor suave e gosto agradável, nem doce e nem amargo. O sabor neutro, aliado à polpa carnuda e macia, faz dele um dos ingredientes mais versáteis da culinária popular. Na '''Europa''' e na América Central, o abacate é um importante ingrediente para saladas.|t=酪梨是一種味道溫和、口感宜人的水果,既不甜也不苦。其中性的味道,加上多肉柔軟的果肉,使其成為大眾烹飪中最通用的材料之一。在'''歐洲'''和中美洲,酪梨是沙拉的重要材料。}} #* {{quote-book|pt|year=2005|author=Fausto Arnaud Sampaio|title=Matemágica: História, Aplicações e Jogos Matemáticos|pageurl=http://books.google.com.br/books?id=D5Z401WTHW0C&pg=PA31#v=onepage&q&f=false|isbn=9788530807641|page=31|publisher=Papirus Editora|passage=O ábaco foi usado por diversos povos e, até por volta de 1700, foram muito comuns na '''Europa''', quando o cálculo escrito em papel passou a prevalecer.|t=許多民族都使用過算盤;直到1700年左右,當紙上計算開始盛行時,算盤在'''歐洲'''仍然非常普遍。}} #* {{quote-book|pt|year=2014|author=Venceslau de Morais|title=Paisagens da China e do Japão|pageurl=http://books.google.com.br/books?id=Kp4WBQAAQBAJ&pg=PT97#v=onepage&q&f=false|isbn=9789898698261|page=97|publisher=Projecto Adamastor|passage=O shogun, generalíssimo do imperador, com residência em Yedo, assinara por conta própria tratados de amizade e de comércio com a América e com a '''Europa''', e os estrangeiros, em Yokohama, pisavam já afoitamente o solo japonês.|t=居住在江戶的幕府將軍(天皇的大元帥),已自行與美國和'''歐洲'''簽訂了友好和貿易條約,而在橫濱的外國人已經大膽地踏上了日本的土地。}} # {{lb|pt|非正式}} {{syn of|pt|União Europeia|t=歐盟}} # {{senseid|pt|公主}} {{tcl|pt|歐羅巴|id=Q165170}} # {{senseid|pt|衛星}} {{tcl|pt|歐羅巴|id=Q3143}} # {{tcl|pt|歐羅巴|id=Q155100}} ====相關詞彙==== {{col|pt|Eurafrásia|Eurásia|euro|euro-|europeísmo|europeizar|europeu|európio}} ====派生語彙==== {{top2}} * {{desc|bor=1|my|ဥရောပ}} * {{desc|bor=1|hrx|Ëuropa}} * {{desc|bor=1|ja|ヨーロッパ|tr=Yōroppa}} {{bottom}} ==羅馬尼亞語== ===其他形式=== * {{alt|ro|Еуропа||Moldovan Cyrillic spelling}} ===發音=== * {{IPA|ro|/e.uˈro.pa/}} ===專有名詞=== {{ro-proper noun|f}} # {{tcl|ro|歐洲|id=Q46}} # {{tcl|ro|歐羅巴|id=Q165170,Q3143,Q155100}} ====變格==== {{ro-noun-f-ă|Europ|n=sg}} ====相關詞彙==== {{col|ro |Europa Centrală |Europa de Est |Europa de Nord |Europa de Sud |Europa de Vest |european}} ===延伸閱讀=== * {{R:DEX}} ==羅曼什語== ===詞源=== {{bor+|rm|la|Eurōpa}},源自{{der|rm|grc|Εὐρώπη}}。 ===專有名詞=== {{rm-proper noun|head=L'Europa|f}} # {{tcl|rm|歐洲|id=Q46}} # {{tcl|rm|歐羅巴|id=Q165170,Q3143,Q155100}} ==塞爾維亞-克羅地亞語== ===其他形式=== * {{alt|sh|Evrópa||Bosnian|Montenegrin|Serbian}} ===發音=== * {{sh-IPA|Európa}} * {{hyphenation|sh|E|u|ro|pa}} ===專有名詞=== {{sh-propn|Európa|f}} {{tlb|sh|克羅地亞}} # {{tcl|sh|歐洲|id=Q46}} #: {{uxi|sh|'''Europa''' je mozaik naroda, jezika i kultura.|t='''歐洲'''是各民族、語言和文化的馬賽克。}} # {{tcl|sh|歐羅巴|id=Q165170,Q3143,Q155100}} ====變格==== {{sh-decl-noun-unc |Europa |Europe |Europi |Europu |Europo |Europi |Europom }} ==西西里語== ===其他形式=== * {{alter|scn|Aurupa|Arupa||古舊}} * {{alter|scn|Eurupa|Iurupa||現代西西里化}} ===詞源=== 借自{{der|scn|la|Eurōpa}}。Doublet of {{cog|scn|Aurupa}}。 ===發音=== * {{IPA|scn|/ɛwˈɾɔ.pa/}} {{q|標準}} * {{IPA|scn|/iwˈɾu.pa/}} {{q|西西里化}} * {{hyphenation|scn|Eu|rò|pa}} ===專有名詞=== {{scn-noun|Europa|f|}} # {{tcl|scn|歐洲|id=Q46}} # {{tcl|scn|歐羅巴|id=Q165170,Q3143,Q155100}} ====派生詞彙==== {{col|scn |Europa cintrali |Europa dû Norti |Europa miridiunali |Europa sittintriunali |Europa punintina |Europa livantina |Europa dû Sud |eurupeu |eurupea }} ====相關詞彙==== {{col|scn |Uniuni Eurupea |euru |euro}} ==西班牙語== {{wp|es:+ (desambiguación)}} ===詞源=== {{bor+|es|la|Eurōpa}},源自{{der|es|grc-dor|Εὐρώπα}}。 ===發音=== {{es-pr}} ===專有名詞=== {{es-proper noun|f}} # {{tcl|es|歐洲|id=Q46}} #* {{quote-journal|es|author=Lauren Kent|title=Soldados daneses que lucharon junto a EE.UU. se sienten traicionados mientras Trump amenaza a Groenlandia y denigra a la OTAN|magazine=w:es:CNN en Español|url=https://cnnespanol.cnn.com/2026/01/24/mundo/soldados-daneses-lucharon-junto-ee-uu-sienten-traicionados-trax|date=2026-01-24|passage=“Estuve codo con codo con mis compañeros de armas de Estados Unidos, de '''Europa''' y de la OTAN en Afganistán para luchar con ustedes tras lo ocurrido en Estados Unidos el 11-S”, escribió Augustinussen en una publicación en redes sociales.|archiveurl=https://web.archive.org/web/20260126183550/https://cnnespanol.cnn.com/2026/01/24/mundo/soldados-daneses-lucharon-junto-ee-uu-sienten-traicionados-trax|t=奧古斯丁努森在一篇社群媒體貼文中寫道:「911事件發生後,我在阿富汗與來自美國、'''歐洲'''和北約的戰友們並肩作戰,與你們一起戰鬥。」}} # {{tcl|es|歐羅巴|id=Q165170,Q3143,Q155100}} ====派生詞彙==== {{col|es |Europe Central |Europa del Norte |Picos de Europa}} ====相關詞彙==== {{col|es|europeo|Unión Europea|euro}} ====派生語彙==== * {{desc|tl|Europa|Yuropa|bor=1}} * {{desc|mch|Eudojanña|der=1}} ===參見=== {{list:continents/es}} ===延伸閱讀=== * {{R:es:DRAE}} ==瑞典語== {{wp|sv:}} ===詞源=== 最終源自{{der|sv|grc|Εὐρώπα}}。 ===發音=== * {{IPA|sv|/ɛˈruːpa/}} ===專有名詞=== {{sv-proper noun|n}} # {{tcl|sv|歐洲|id=Q46}} ====派生詞彙==== {{col|sv |Centraleuropa |Mellaneuropa |Nordeuropa |Sydeuropa |Västeuropa |Östeuropa }} ====相關詞彙==== {{col|sv |europeisk |europeiska |euro |europé}} ====參見==== {{list:continents/sv}} {{list:countries in Europe/sv}} ===專有名詞=== {{sv-proper noun|c}} # {{tcl|sv|歐羅巴|id=Q165170,Q3143,Q155100}} ===延伸閱讀=== * {{R:svenska.se}} * [https://web.archive.org/web/20250418102125/https://mesh.kib.ki.se/term/D005060/europe Svensk MeSH] ==他加祿語== {{wp|tl:}} ===其他形式=== * {{alt|tl|Yuropa}} ===詞源=== {{bor+|tl|es|Europa}}。 ===發音=== {{tl-pr|+|Ewropa<qq:棄用>|syll=+}} ===專有名詞=== {{tl-proper noun|b=Yuropa}} # {{tcl|tl|歐洲|id=Q46}} # [[歐盟]] #: {{syn|tl|Unyong Europeo}} ====同類詞彙==== {{list:continents/tl/Latn}} ====相關詞彙==== {{col|tl|Europeo|Europea}} ===參考資料=== * {{R:Pambansang Diksiyonaryo}} ==土耳其語== {{wp|tr:+ (mitoloji)}} {{wp|tr:+ (uydu)}} ===專有名詞=== {{tr-proper noun}} # {{tcl|tr|歐羅巴|id=Q165170,Q3143,Q155100}} mhpjehyc9ntcp2a1f1bunviqo9h0o81 Costa Rica 0 42306 9814219 9799561 2026-06-16T03:00:47Z InternetArchiveBot 95668 Rescuing 0 sources and tagging 1 as dead.) #IABot (v2.0.9.5 9814219 wikitext text/x-wiki {{minitoc}} ==英語== {{wp|en:}} ===詞源=== {{bor+|en|es|Costa Rica|t=富裕海岸}}。 ===發音=== * {{IPA|en|/ˌkɒs.tə ˈɹiːkə/|a=RP}} * {{IPA|en|/ˌkɔs.tə ˈɹɪjkə/|a=SSB}} ** {{audio|en|LL-Q1860 (eng)-Soundguys-Costa Rica.wav|a=SSB}} * {{enPR|kōstə rēkə|a=US}}; {{IPA|en|/ˌkoʊ.stə ˈɹi.kə/|/ˌkɑ.stə ˈɹi.kə/}} ** {{audio|en|en-us-Costa Rica.ogg|a=US}} * {{IPA|en|/ˌkɔs.tə ˈɹiːkə/|a=AU}} * {{IPA|en|/ˌkɔs.tə ˈɾi.kə/|a=Scotland}} * {{IPA|en|/ˌkɒs.tə ˈɾiːkə/|a=Wales}} * {{rhymes|en|iːkə|s=2}} ===專有名詞=== {{en-proper noun|nolink=1}} # {{tcl|en|哥斯達黎加|id=Q800}} #* {{quote-journal|en|author=Erin Griffith|title=The Digital Nomads Did Not Prepare for This|work=w:The New York Times|date=2020-11-08|url=https://www.nytimes.com/2020/11/08/business/digital-nomads-regret.html|issn=0362-4331|passage=He got to '''Costa Rica''' in early November. It has poured rain every day. “Spirits,” he said, “are still high.”|t=他11月初抵达'''哥斯达黎加'''。那里每天都下着倾盆大雨。“但人们的情绪依然高昂,”他说。|archiveurl=https://web.archive.org/web/20201111005912/https://www.nytimes.com/2020/11/08/business/digital-nomads-regret.html}} # [[菲律賓]]的多個地點: ## {{place|en|barangay|mun/Batuan|p/馬士弼|c/菲律賓}}。 ## {{place|en|barangay|mun/Almagro|p/薩馬|c/菲律賓}}。 ====派生詞彙==== {{col|en|Costa Rican|CRI|qq1=形容詞|qq2=國家代碼}} ===參見=== {{list:countries in Central America/en}} ===異序詞=== * {{anagrams|en|a=aacciorst|acroatics}} ==阿斯圖里亞斯語== {{wp|ast:}} ===發音=== {{ast-pr}} ===專有名詞=== {{ast-proper noun|f|head=[[costa|Costa]] [[rica|Rica]]}} # {{tcl|ast|哥斯達黎加|id=Q800}} ==布列塔尼語== ===詞源=== {{bor+|br|es|Costa Rica}}。 ===專有名詞=== {{br-proper noun|head=Costa Rica|f}} # {{tcl|br|哥斯達黎加|id=Q800}} ====其他形式==== * {{alt|br|Kosta Rika}} ==加泰羅尼亞語== {{wp|ca:}} ===發音=== * {{ca-IPA|[òs]}} * {{audio|ca|LL-Q7026 (cat)-Millars-Costa Rica.wav|a=Valencia}} ===專有名詞=== {{ca-proper noun|f|head=[[costa|Costa]] [[rica|Rica]]}} # {{tcl|ca|哥斯達黎加|id=Q800}} ====派生詞彙==== * {{l|ca|costa-riqueny}} ==中瓦斯特卡納瓦特爾語== ===專有名詞=== {{head|nch|專有名詞}} # {{tcl|nch|哥斯達黎加|id=Q800}} ==中納瓦特爾語== ===專有名詞=== {{head|nhn|專有名詞}} # {{tcl|nhn|哥斯達黎加|id=Q800}} ==丹麥語== ===專有名詞=== {{da-proper noun|head=Costa Rica}} # {{tcl|da|哥斯達黎加|id=Q800}} ====相關詞彙==== * {{l|da|costaricaner}} * {{l|da|costaricansk}} ==荷蘭語== ===詞源=== {{bor+|nl|es|Costa Rica}}。 ===發音=== * {{IPA|nl|/ˌkɔs.taː ˈri.kaː/}} * {{audio|nl|Nl-Costa Rica.ogg}} ===專有名詞=== {{nl-proper noun|n|nolinkhead=1}} # {{tcl|nl|哥斯達黎加|id=Q800}} ====派生詞彙==== * {{l|nl|Costa Ricaan}} ==芬蘭語== {{wp|fi:}} ===詞源=== {{bor+|fi|es|Costa Rica}}。 ===發音=== {{fi-p|kosta rika|kosta-rika}} ===專有名詞=== {{fi-proper noun|head=Costa Rica}} # {{tcl|fi|哥斯達黎加|id=Q800}} ====變格==== {{fi-decl-kala|n=sg|Costa Ric|||a}} ====派生詞彙==== {{col|fi|title=複合詞 |costaricanhyppyhiiri }} ==法語== {{wp|fr:}} ===發音=== * {{fr-IPA}} * {{audio|fr|LL-Q150 (fra)-GrandCelinien-Costa Rica.wav|a=巴黎}} ===專有名詞=== {{fr-proper noun|m|nolinkhead=1}} # {{tcl|fr|哥斯達黎加|id=Q800}} ==加利西亞語== {{wp|gl:}} ===專有名詞=== {{gl-proper noun|f|head=[[costa|Costa]] [[rica|Rica]]}} # {{tcl|gl|哥斯達黎加|id=Q800}} ====派生詞彙==== * {{l|gl|costarriqueño}} ==德語== ===發音=== * {{audio|de|De-Costa Rica.ogg|a=柏林}} ===專有名詞=== {{de-proper noun|toponym|nolinkhead=1}} # {{tcl|de|哥斯達黎加|id=Q800}} ====變格==== {{de-ndecl|toponym}} ==匈牙利語== {{swp|hu:}} ===發音=== * {{hu-IPA|kosztarika}} * {{hyphenation|hu|Cos|ta Ri|ca}} * {{rhymes|hu|kɒ|s=4}} ===專有名詞=== {{head|hu|專有名詞|head=Costa Rica}} # {{tcl|hu|哥斯達黎加|id=Q800|place_official=hu:Costa Rica-i Köztársaság}} ====變格==== {{hu-infl-nom|Costa Ricá|o|n=sg}}{{hu-pos-tok|Costa Ricá|n=sg}} ====派生詞彙==== * {{l|hu|Costa Rica-i}} ===參見=== {{list:countries in Central America/hu}} ==因特語== ===專有名詞=== {{head|ia|專有名詞|head=Costa Rica}} # {{tcl|ia|哥斯達黎加|id=Q800}} ==意大利語== {{wp|it:}} ===詞源=== {{ubor|it|es|Costa Rica}}。 ===專有名詞=== {{it-proper noun|f|nolinkhead=1}} # {{tcl|it|哥斯達黎加|id=Q800}} ====派生詞彙==== * {{l|it|costaricano}} ===異序詞=== * {{anagrams|it|a=aacciorst|accorasti|cascatori|raccostai|riaccosta|ricascato|scaricato|scorciata|socratica|stracocia}} ==立窩尼亞語== ===詞源=== {{ubor|liv|es|Costa Rica}}。 ===發音=== {{rfp|liv}} <!-- {{liv-p|...}} --> ===專有名詞=== {{head|liv|專有名詞|head=Costa Rica}} # {{tcl|liv|哥斯達黎加|id=Q800}} #: {{ux|liv|San José um '''Costa Rica''' pǟjālgab|聖荷西是'''哥斯達黎加'''的首都}} ====變格==== {{liv-decl|56|n=sg}} ==書面挪威語== {{wp|no:}} ===專有名詞=== {{head|nb|專有名詞|head=Costa Rica}} # {{tcl|nb|哥斯達黎加|id=Q800}} ====相關詞彙==== * {{l|nb|costaricaner}} * {{l|nb|costaricansk}} * {{l|nb|kostarikaner}} * {{l|nb|kostarikansk}} ==新挪威語== {{wp|nn:}} ===專有名詞=== {{head|nn|專有名詞|head=Costa Rica}} # {{tcl|nn|哥斯達黎加|id=Q800}} ====相關詞彙==== * {{l|nn|costarican}}、{{l|nn|costaricanar}} * {{l|nn|costaricansk}} * {{l|nn|kostarikan}}、{{l|nn|kostarikanar}} * {{l|nn|kostarikansk}} ==葡萄牙語== ===發音=== {{pt-IPA|Cósta Rica}} ===專有名詞=== {{pt-proper noun|f|head=[[costa|Costa]] [[rico|Rica]]}} # {{tcl|pt|哥斯達黎加|id=Q800}} ====派生詞彙==== * {{l|pt|costa-ricense}} * {{l|pt|costa-riquenho}} * {{l|pt|costa-riquense}} ==羅馬尼亞語== ===發音=== * {{audio|ro|LL-Q7913 (ron)-KlaudiuMihaila-Costa Rica.wav}} ===專有名詞=== {{head|ro|專有名詞|head=Costa Rica}} # {{tcl|ro|哥斯達黎加|id=Q800}} ==西班牙語== {{wp|es:}} ===發音=== {{es-pr|+<audio:LL-Q1321 (spa)-Rubýñ-Costa Rica.wav<a:Costa Rica>><audio:LL-Q1321 (spa)-Rodelar-Costa Rica.wav<a:Spain>>}} ===專有名詞=== {{es-proper noun|f|head=[[costa|Costa]] [[rica|Rica]]}} # {{tcl|es|哥斯達黎加|id=Q800}} #: {{syn|es|Ticolandia<q:哥斯達黎加、口語>}} ====派生詞彙==== {{col|es|costarricense|costarriqueño}} ===參見=== * {{l|es|tico}} ==瑞典語== {{wp|sv:}} ===發音=== * {{audio|sv|LL-Q9027 (swe)-Moonhouse-Costa Rica.wav}} ===專有名詞=== {{sv-proper noun|n|head=Costa Rica}} # {{tcl|sv|哥斯達黎加|id=Q800}} ====相關詞彙==== * {{l|sv|costarican}} * {{l|sv|costaricansk}} * {{l|sv|costaricanska}} ====參見==== {{list:countries in Central America/sv}} ===參考資料=== * {{R:svenska.se|saol}} * [https://mesh.kib.ki.se/term/D003364/costa-rica Svensk MeSH]{{Dead link|date=June 2026 |bot=InternetArchiveBot |fix-attempted=yes }} ==威爾士語== {{wp|cy:}} ===專有名詞=== {{cy-proper noun|head=Costa Rica|f}} # {{tcl|cy|哥斯達黎加|id=Q800}} ====同類詞彙==== {{list:countries in Central America/cy}} 3clpdku67j5wp1mw81m5rkw43co5kg8 beleuchten 0 300758 9814274 9554841 2026-06-16T04:48:10Z Sayonzei 40728 9814274 wikitext text/x-wiki {{also|Beleuchten}} ==德語== ===詞源=== {{inh+|de|gmh|beliuhten}},{{inh+|de|goh|biliuhten}}。等價於 {{af|de|be-|leuchten}}。 ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtn̩/}} * {{audio|de|De-beleuchten.ogg|a=柏林}} ===動詞=== {{de-verb}} # {{lb|de|及物}} [[照亮]],[[照明]] # {{lb|de|及物|比喻}} [[闡明]],[[說明]] ====變位==== {{de-conj}} ====派生詞彙==== * {{l|de|Beleuchter}}、{{l|de|Beleuchtung}}、{{l|de|Beleuchten}} * {{l|de|beleuchtend}}、{{l|de|beleuchtet}} ====相關詞彙==== * {{l|de|anleuchten}}、{{l|de|aufleuchten}}、{{l|de|erleuchten}}、{{l|de|durchleuchten}} ===延伸閱讀=== * {{R:de:DWDS}} * {{R:de:UniLeipzig}} * {{R:de:Duden}} * {{R:de:Grimm}} qk9s27bgwzm0yitxlyjbvpes24ahvao entgegengesetzt 0 301240 9814611 9557898 2026-06-16T07:09:03Z Sayonzei 40728 9814611 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ɛntˈɡeːɡn̩ɡəˌzɛt͡st/}} * {{audio|de|De-entgegengesetzt.ogg|a=柏林}} * {{audio|de|De-entgegengesetzt2.ogg|a=柏林}} ===分詞=== {{head|de|過去分詞}} # {{past participle of|de|entgegensetzen}} ===形容詞=== {{de-adj|comp}} # [[對立]]的,[[相反]]的 ====變格==== {{de-adecl|comp}} ===延伸閱讀=== * {{R:de:Duden}} * {{R:de:DWDS}} fckyl9iiq6ml7fr6mf6yc4izc315jsp einleuchten 0 336071 9814228 6136296 2026-06-16T04:30:10Z Hzy980512 19278 9814228 wikitext text/x-wiki ==德语== ===词源=== {{inh+|de|gmh|īnliuhten}}、{{inh|de|goh|inliuhtan}}; {{surf|de|ein|leuchten|nocap=1}}。 ===发音=== * {{IPA|de|[ˈaɪ̯nˌlɔɪ̯çtn̩]}} * {{audio|de|De-einleuchten.ogg}} * {{audio|de|De-einleuchten2.ogg|a=<<Germany>> (<<Berlin>>)}} * {{hyphenation|de|ein|leuch|ten}} ===动词=== {{de-verb|ein.leuchten<only3s>}} # {{lb|de|不及物}} 被...[[明白]],让...[[懂得]],被...[[理解]] {{+obj|de|dat<某人>}} #: {{coi|de|Das '''leuchtet''' mir '''ein'''.|我懂了。}} #: {{coi|de|Es will mir nicht recht '''einleuchten,''' dass […]|我没办法理解为什么[…]}} #: {{coi|de|Es will mir durchaus nicht '''einleuchten.'''|我真的没法理解。}} # {{lb|de|及物|now|rare|and|mostly|古旧}} 用...[[感染]],把...植入 {{+obj|de|acc<某事物> + dat<某人里>}} #: {{syn|de|einstrahlen|[[zuteil]] [[machen]]}} ====变位==== {{de-conj|ein.leuchten<only3s>}} ====相关词汇==== * {{l|de|Einleuchten}} * {{l|de|einleuchtend}} * {{l|de|beleuchten}}、{{l|de|erleuchten}} ===延伸阅读=== * {{R:de:DWDS}} * {{R:de:Duden}} fx4uc6oxnzo4vdpb95zu2o7geue9yq9 апоплексический 0 341783 9813790 5064185 2026-06-15T16:56:02Z ~2026-35076-53 133928 9813790 wikitext text/x-wiki ==俄語== ===詞源=== {{af|ru|апоплексия<t:中風>|-ический}}。 ===發音=== * {{ru-IPA|апоплекси́ческий}} ===形容詞=== {{ru-adj|апоплекси́ческий}} # {{lb|ru|medicine|relational}} [[中風]]的 # {{lb|ru|colloquial}} 讓人[[發怒]]的 ====變格==== {{ru-decl-adj|апоплекси́ческий}} 1hno7223kgfu1j1zx2b3axq84b9ej60 gyventi 0 435667 9813764 4945352 2026-06-15T13:33:23Z TongcyDai 53191 9813764 wikitext text/x-wiki ==立陶宛語== ===詞源=== 源自{{der|lt|ine-bsl-pro|*gīw-}},最终源自{{der|lt|ine-pro|*gʷeyh₃-}}。和{{cog|lv|dzīvot}}、{{cog|sla-pro|*živěti}}、{{m|sla-pro|*žiti}}、{{cog|sa|जीवति|tr=jī́vati}}、{{cog|la|vīvō|t=活}}(不定式 {{m|la|vīvere}})同源。 ===發音=== {{lt-pr|gyvénti}} ===動詞=== {{lt-verb|head=gyvénti|gyvẽna|gyvẽno}} # [[活]] # [[住]],[[居住]] #: {{uxi|lt|'''gyventi''' Vilniuje|'''住'''在維爾紐斯}} ====變位==== {{lt-conj-1-circum|gyven|gyven|gyvén|gyvẽn|gyvẽn|3fut=gyveñ}} ====派生詞彙==== {{col|lt|title=帶前綴動詞 |pergyventi }} {{col|lt|title=名詞 |gyvenimas<g:m> |gyventoja<g:f> |gyventojas<g:m> |gyvenvietė<g:f> }} ====相關詞彙==== {{col|lt|title=形容詞 |gyvas }} {{col|lt|title=名詞 |gyvybė<g:f> |gyvulys<g:m> }} {{col|lt|title=動詞 |gyvuoti }} ===延伸閱讀=== * {{R:LKZ}} * {{R:lt:LKEŽDUB}} tali9gt1x75r5uhgq13f86e7rlav6vy 暴徒 0 578564 9814449 6683137 2026-06-16T06:35:49Z Apisite 85347 /* 漢語 */ + zh-forms 9814449 wikitext text/x-wiki ==漢語== {{zh-forms}} ===發音=== {{zh-pron |m=bàotú |c=bou6 tou4 |h=pfs=phau-thù;hrs=h:pauˇ tu |mn=ml:po̍k-tô͘/xm,zz:pō-tô͘ |mn-t=bao6 tu5 |mc=1 |oc=1 |cat=n }} ===名詞=== {{head|zh|名詞}} # {{rfdef|zh}} ===翻譯=== {{翻译-顶}} * 俄語:[[изверг]], [[головорез]], [[злодей]] {{翻译-底}} ==日語== 〈{{Lang|ja|[[暴]][[徒]]}}〉【ぼうと】 #暴徒。 [[Category:待分類的漢語詞]] [[Category:漢語|日11彳07]] [[Category:待分類的日語詞]] [[Category:日語]] jex5ob5zjxd14m32y1hx8zb7nu4x07c 不動產 0 586912 9813888 8777831 2026-06-15T18:15:00Z Jiba1219 110530 /* 日語 */ 9813888 wikitext text/x-wiki ==漢語== {{zh-forms|s=不动产|type=21}} {{zh-wp}} ===發音=== {{zh-pron |m=不dòngchǎn |c=bat1 dung6 caan2 |h=gd=bud5 tung4 san3 |mn=qz:put-tǒng-sán/tw,xm,zz:put-tōng-sán |mn-t=bug4 dong6 suan2 |cat=n }} ===名詞=== {{head|zh|名詞}} # 不能[[移動]]的[[財產]],指[[土地]]、[[房屋]]及[[附着]]於其上不可[[分離]]的部分 #* {{zh-x|他 的 不動產 雖 不多,銀行{háng} 的 存款 也 並 沒有 超過 一萬 去,可是 他 總 以為{wéi} 自己 是 個 紳士。|ref={{w|老舍}}《{{w|四世同堂}}》[[s:四世同堂/23|二三]]}} #* {{zh-x|@朱 ^@延年 才 露 了 面,所有 動產 與 不動產 都 交給 債權-團 分配。|ref='''1958'''年,{{w|周而復}}《上海的早晨》第一部十二}} ====近義詞==== {{syn-saurus|zh|不動產}} ====反義詞==== * {{zh-l|動產}} ====翻譯==== {{trans-top|財產}} * 阿爾巴尼亞語:{{t|sq|pasuri të paluajtshme|m}} * 阿拉伯語:{{t+|ar|عَقَار|m}} * 亞美尼亞語:{{t+|hy|անշարժ գույք}} * 阿塞拜疆語:{{t|az|daşınmaz əmlak}}、{{t+|az|əmlak}} * 巴什基爾語:{{t|ba|күсемһеҙ мөлкәт}} * 白俄羅斯語:{{t|be|нерухо́масць|f}} * 保加利亞語:{{t|bg|недви́жима со́бственост|f}} * 緬甸語:{{t+|my|ထာဝရဥစ္စာ}} * 切羅基語:{{t|chr|ᎦᏙ ᎣᏤᎵᎪ}} * 捷克語:{{t+|cs|nemovitost|f}} * 丹麥語:{{t|da|fast ejendom|c}} * 荷蘭語:{{t+|nl|onroerend goed|n}}、{{t+|nl|immobiliën|m-p}}、{{t+|nl|vastgoed|n}} * 英語:{{t+|en|real estate}}、{{t+|en|immovable}}、{{t+|en|immovable property}}、{{t+|en|property}} {{qualifier|英國}}、{{t+|en|realty}}、{{t+|en|real property}} * 世界語:{{t|eo|nemoveblaĵoj|p}} * 愛沙尼亞語:{{t|et|kinnisvara}} * 芬蘭語:{{t+|fi|kiinteistö}}、{{t+|fi|maaomaisuus}} * 法語:{{t+|fr|immobilier|m}}、{{t|fr|bien immobilier|m}} * 加利西亞語:{{t|gl|ben inmóbel|m}}、{{t|gl|ben raíz|m}} * 格魯吉亞語:{{t|ka|უძრავი ქონება}} * 德語:{{t|de|unbewegliche Sache|f}}、{{t+|de|Immobilie|f}} * 希臘語:{{t+|el|ακίνητο|n}}、{{t+|el|ακίνητη περιουσία|f}} *: 古希臘語:{{t|grc|ἔγγειος|alt=ἔγγειον|n}} * 希伯來語:{{t|he|נכסי דלא ניידי|m-p|tr=nikhséi deló naydéy}}、{{qualifier|縮略}} {{t+|he|נדל״ן|m-p|tr=nadlán}} * 印地語:{{t|hi|भू-संपदा|f}}、{{t|hi|अचल संपत्ति|f}}、{{t|hi|स्थावर संपत्ति|f}} * 匈牙利語:{{t+|hu|ingatlan}} * 冰島語:{{t+|is|fasteign|f}} * 伊多語:{{t|io|terhavajo}}、{{t+|io|imoblo}} * 印尼語:{{t|id|lahan yasan}}、{{t|id|real estat}} * 意大利語:{{t|it|bene immobile|m}} * 日語:{{t+|ja|不動産|tr=ふどうさん, fudōsan}} * 哈薩克語:{{t|kk|жылжымайтын мүлік}} * 高棉語:{{t+|km|អចលនវត្ថុ}}、{{t+|km|អសង្ហារិមៈ}}、{{t|km|អសង្ហារិមទ្រព្យ}} * 朝鮮語:{{t+|ko|부동산(不動產)}} * 吉爾吉斯語:{{t|ky|кыймылсыз мүлк}}、{{t|ky|кыймылсыз буюмдар}} * 老撾語:{{t|lo|ອະ​ສັງ​ຫາ​ລິ​ມະ​ຊັບ}} * 拉丁語:{{t|la|[[rēs]] [[solī]]|f}} * 拉脫維亞語:{{t|lv|nekustamais īpašums|m}} * 立陶宛語:{{t+|lt|nekilnojamasis turtas|m}} * 馬其頓語:{{qualifier|單指其中一個}} {{t|mk|недвижнина|f}}、{{t|mk|недвижност|f}}、{{qualifier|總稱}} {{t|mk|недвижнини|p}}、{{t|mk|недвижности|p}} * 馬來語:{{t+|ms|hartanah}}、{{t+|ms|harta tanah}} * 蒙古語: *: 西里爾字母:{{t|mn|үл хөдлөх хөрөнгө}}、{{t|mn|гэр байшин газар хөрөнгө}} {{qual|中國}} *: 蒙古字母:{{t|mn|ᠦᠯᠦ ᠬᠥᠳᠡᠯᠬᠦ ᠬᠥᠷᠦᠩᠭᠡ}}、{{t|mn|ᠭᠡᠷ ᠪᠠᠶᠢᠰᠢᠨᠩ ᠭᠠᠵᠠᠷ ᠬᠥᠷᠦᠩᠭᠡ}} * 挪威語: *: 書面挪威語:{{t|nb|fast eiendom|m}} *: 新挪威語:{{t|nn|fast eigedom|m}} * 波斯語: *: 伊朗波斯語:{{t+|fa-ira|اَمْلاک}}、{{t+|fa-ira|مُسْتَغِلَّات}}、{{t|fa-ira|اَمْوالِ غِیْرِ مَنْقول}} * 波蘭語:{{t+|pl|nieruchomość|f}} * 葡萄牙語:{{t|pt|bem imóvel|m}}、{{t+|pt|imóvel|m}} * 羅馬尼亞語:{{t+|ro|imobil|n}} * 俄語:{{t+|ru|недви́жимость|f}} * 塞爾維亞-克羅地亞語: *: 西里爾字母:{{t|sh|некретнѝна|f}} *: 拉丁字母:{{t+|sh|nekretnìna|f}} * 斯洛伐克語:{{t|sk|nehnuteľnosť|f}} * 斯洛文尼亞語:{{t+|sl|nepremičnina|f}} * 西班牙語:{{t|es|bien inmueble|m}}、{{t+|es|bien raíz|m}} * 瑞典語:{{t+|sv|fast egendom|c}}、{{t+|sv|fastighet|c}} * 他加祿語:{{t|tl|pingkas}} * 塔吉克語:{{t|tg|мулки ғайриманқул}}、{{t|tg|амволи ғайриманқул}} * 韃靼語:{{t|tt|күчемсез мөлкәт}} * 泰語:{{t+|th|อสังหาริมทรัพย์}} * 土耳其語:{{t+|tr|emlak}}、{{t+|tr|gayrimenkul}} * 烏克蘭語:{{t|uk|нерухо́мість|f}} * 烏茲別克語:{{t+|uz|amlok}}、{{t|uz|koʻchmas mulk}} * 越南語:{{t+|vi|bất động sản}}、{{t+|vi|địa ốc}} {{qualifier|過時}} {{trans-bottom}} ==日語== {{ja-kanjitab|ふ|どう|さん|yomi=kan,goon,kanon}} ===名詞=== {{ja-noun|ふどうさん}} # {{ja-kyu sp|不動産}} ==越南語== {{vi-hantutab|不|動|產}} ===名詞=== {{vi-noun|sc=Hani}} # {{vi-Han form of|bất động sản}} 2y4w3mcachkb7rbwf77bfiplxft1jzh 產業 0 594953 9814681 9087753 2026-06-16T11:01:26Z Jiba1219 110530 /* 日語 */ 9814681 wikitext text/x-wiki ==漢語== {{zh-forms|s=产业|alt=産業}} {{zh-wp}} ===發音=== {{zh-pron |m=chǎnyè |ma=Zh-chanyè.ogg |c=caan2 jip6 |h=pfs=sán-ngia̍p;gd=san3 ngiab6 |mn=sán-gia̍p |mn-t=suan2 ngiab8 |cat=n |ca=LL-Q9186 (yue)-Luilui6666-产业.wav }} ===名詞=== {{head|zh|名詞}} # [[錢財]] #: {{zh-x|變賣 產業}} #: {{zh-x|繼承 產業}} # [[家產]] # 一個[[經濟體]]中,有效運用[[資金]]與[[勞力]]從事[[生產]][[經濟]][[物品]]的各種[[行業]] #: {{zh-x|產業 佈局}} #: {{zh-x|新興{xīng} 產業}} #: {{zh-x|食品 產業}} #: {{zh-x|產業 創新}} #: {{zh-x|高科技 產業}} #: {{zh-x|產業 部門}} #: {{zh-x|煉鋼 產業}} ====同義詞==== * {{s|錢財}} {{syn-saurus|zh|錢財}} * {{s|家產}} {{syn-saurus|zh|家產}} * {{s|行業}} {{zh-l|工業}} ====衍生詞==== {{col3|zh|產業化|產業工人|產業界|產業結構|產業鏈|產業集群|知識產業|產業革命|支柱產業|智力產業}} ====翻譯==== {{trans-top|有效運用資金與勞力從事生產經濟物品的各種行業}} * 阿拉伯語:{{t|ar|صِنَاعَة|f}} * 阿薩姆語:{{t|as|উদ্যোগ}} * 巴什基爾語:{{t|ba|тармаҡ}} * 白俄羅斯語:{{t|be|прамысло́васць|f}}、{{t|be|інду́стрыя|f}}、{{t+|be|галіна́|f}} * 保加利亞語:{{t+|bg|отра́съл|m}} * 康沃爾語:{{t|kw|diwysyans|m}}、{{t|kw|hwel ober|m}} * 捷克語:{{t|cs|branže|f}} * 丹麥語:{{t+|da|industri|c}} * 荷蘭語:{{t+|nl|sector|f}} * 英語:{{t+|en|industry}} * 愛沙尼亞語:{{t|et|valdkond}}、{{t|et|majandusharu}} * 芬蘭語:{{t+|fi|toimiala}}、{{t+|fi|ala}} * 加利西亞語:{{t+|gl|industria|f}} * 德語:{{t+|de|Branche|f}}、{{t+|de|Wirtschaftszweig|m}} * 希臘語:{{t+|el|βιομηχανία|f}} * 希伯來語:{{t+|he|תעשייה|f|tr=ta'asiá|alt=תַּעֲשִׂיָּה / תעשייה}} * 印地語:{{t+|hi|उद्योग|f}} * 匈牙利語:{{t+|hu|iparág}} * 伊多語:{{t+|io|industrio}} * 英格里亞語:{{t|izh|industria}} * 日語:{{t+|ja|産業|tr=さんぎょう, sangyō}}、{{t+|ja|業界|tr=ぎょうかい, gyōkai}}、{{t+|ja|工業|tr=こうぎょう, kōgyō}} * 高棉語:{{t|km|ឧស្សាហកម្ម}} * 朝鮮語:{{t+|ko|산업(産業)}} * 老撾語:{{t|lo|ອຸດສາຫະກຳ}} * 拉脫維亞語:{{t|lv|rūpniecība|f}}、{{t|lv|industrija|f}} * 立陶宛語:{{t+|lt|pramonė|f}}、{{t|lt|industrija|f}} * 盧森堡語:{{t|lb|Industrie|f}} * 馬其頓語:{{t|mk|дејност|f}} * 馬來語:{{t|ms|industri}} * 挪威語: *: 書面挪威語:{{t|nb|forretningsområde|n}} * 波蘭語:{{t+|pl|branża|f}} * 葡萄牙語:{{t+|pt|indústria|f}} * 羅馬尼亞語:{{t+|ro|industrie|f}}、{{t|ro|branșă industrială|f}} * 俄語:{{t+|ru|промы́шленность|f}}、{{t+|ru|индустри́я|f}}、{{t+|ru|о́трасль|f}} * 西班牙語:{{t+|es|industria|f}} * 斯瓦希里語:{{t|sw|tasnia}} * 瑞典語:{{t+|sv|bransch|c}}、{{t+|sv|industri|c}}、{{t+|sv|gren|f}} * 他加祿語:{{t|tl|kalalang}} * 泰盧固語:{{t+|te|పరిశ్రమ}} * 泰語:{{t+|th|อุตสาหกรรม}} * 托克皮辛語:{{t|tpi|indastri}} * 土耳其語:{{t+|tr|endüstri}} * 烏克蘭語:{{t|uk|промисло́вість|f}}、{{t|uk|інду́стрія|f}}、{{t+|uk|га́лузь|f}} * 越南語:{{t+|vi|công nghiệp}} ({{t|vi|工業}}) {{trans-bottom}} {{zh-cat|Advanced}} ==日語== {{ja-kanjitab|さん|ぎょう|yomi=kanon}} ===名詞=== {{ja-noun|さんぎょう}} # {{ja-kyu sp|産業}} ==越南語== {{vi-hantutab}} ===名詞=== {{vi-noun|sc=Hani}} # {{vi-Han form of|sản nghiệp}} 73atoyc2x0hjp4o8bdq9wbx7xtmrc3n 巨蛇座 0 639856 9814448 6832717 2026-06-16T06:32:29Z Apisite 85347 /* 漢語 */ + zh-forms 9814448 wikitext text/x-wiki ==漢語== {{zh-forms}} {{wp|zh:}} ===發音=== {{zh-pron |m=Jùshézuò |c=geoi6 se4 zo6 |cat=pn }} ===專有名詞=== {{head|zh|專有名詞}} # {{lb|zh|constellation}} {{rfdef|zh}} ===翻譯=== {{翻译-顶}} * 俄語:''[[астр.]]'' <nowiki>[</nowiki>[[созвездие]]<nowiki>]</nowiki> [[Змея]] {{翻译-底}} [[Category:漢語|工02虫05广07]] 7upruhlhjf503g8m2bxvy06338zm9z7 инсульт 0 703003 9813791 5081913 2026-06-15T16:58:27Z ~2026-35076-53 133928 9813791 wikitext text/x-wiki ==哈薩克語== {{kk-regional|инсульт|ينسۋلت|insult}} ===詞源=== {{bor+|kk|ru|инсу́льт}},來自{{der|kk|la|īnsultus}}。 ===名詞=== {{kk-noun}} # {{lb|kk|pathology}} [[中風]] ==俄語== ===發音=== * {{ru-IPA|инсу́льт}} ===名詞=== {{ru-noun+|инсу́льт}} # {{lb|ru|pathology}} [[中風]] ====變格==== {{ru-noun-table|инсу́льт}} iwjn351jdw03m39x5jn7jwf6pbq1g8u aufleuchten 0 762720 9814292 4874158 2026-06-16T04:52:03Z Sayonzei 40728 9814292 wikitext text/x-wiki ==德語== ===詞源=== {{inh+|de|gmh|ūfliuhten}},等價於 {{pre|de|auf|leuchten}}。和{{cog|nds-de|upluchten}}、{{m|nds-de|uplüchten}}、{{cog|nl|oplichten}}、{{cog|fy|opljochtsje}}、{{cog|stq|apljuchte}}、{{cog|en|uplight}} 同源。 ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtn̩/}} * {{audio|de|De-aufleuchten.ogg|a=柏林}} ===動詞=== {{de-verb|auf.leuchten}} # {{lb|de|semelfactive|不及物}} [[閃亮]],[[閃爍]] #: {{ux|de|Ich liebe es, wenn deine Augen vor Freude '''aufleuchten'''.|我喜欢看到你眼中'''闪烁着'''喜悦的光芒。}} ====變位==== {{de-conj|auf.leuchten}} ===延伸閱讀=== * {{R:de:Duden}} * {{R:de:DWDS}} d44494r2s3jszivkfowjalvoj6zjgr3 aufleuchtend 0 762722 9814294 1781734 2026-06-16T04:52:23Z Sayonzei 40728 9814294 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtn̩t/}} * {{audio|de|De-aufleuchtend.ogg|a=柏林}} ===分詞=== {{head|de|現在分詞}} # {{present participle of|de|aufleuchten}} ====變格==== {{de-adecl}} qddln048jj2kkcqx7yzpoyehk908jxu ausleuchten 0 763589 9814381 4874615 2026-06-16T06:15:50Z Sayonzei 40728 9814381 wikitext text/x-wiki ==德語== ===詞源=== {{af|de|aus-|leuchten}} ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtn̩/}} * {{audio|de|De-ausleuchten.ogg|a=柏林}} ===動詞=== {{de-verb|aus.leuchten}} # [[照亮]],[[照明]] ====變位==== {{de-conj|aus.leuchten}} ===延伸閱讀=== * {{R:de:Duden}} * {{R:de:DWDS}} o7humdg2ov3c6uzzy5h25nyneflsso2 befrist 0 765726 9814616 4879241 2026-06-16T07:20:19Z Sayonzei 40728 9814616 wikitext text/x-wiki ==德语== ===發音=== * {{IPA|de|/bəˈfʁɪst/}} * {{audio|de|De-befrist.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|befristen||s|imp}} 0m5hr118l47ensqlg9wlsqttl6q639p befristen 0 765727 9814615 4879242 2026-06-16T07:19:32Z Sayonzei 40728 9814615 wikitext text/x-wiki ==德語== ===詞源=== {{ety|de|:af|be-|Frist|-en}} {{affix|de|be-|Frist|-en}} ===發音=== * {{IPA|de|/bəˈfʁɪstn̩/}} * {{hyph|de|be|fris|ten}} * {{audio|de|De-befristen.ogg|a=柏林}} ===動詞=== {{de-verb}} # [[限定]][[時間]] {{+obj|de|:auf<……的>}} ====變位==== {{de-conj}} ====派生詞彙==== * {{l|de|Befristung}} ===延伸閱讀=== * {{R:de:Duden}} * {{R:de:DWDS}} ajxnyog2q9s2ggp2kf90h6w77cz1cez befristet 0 765728 9814614 4879243 2026-06-16T07:18:57Z Sayonzei 40728 9814614 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstət/}} * {{audio|de|De-befristeter Arbeitsvertrag.ogg|a=柏林}} * {{audio|de|De-befristet.ogg|a=柏林}} ===分詞=== {{head|de|過去分詞}} # {{past participle of|de|befristen}} ===形容詞=== {{de-adj}} # 有[[限期]]的,有[[時間]][[限制]]的 ====變格==== {{de-adecl}} ====派生詞彙==== * {{l|de|unbefristet}} ey5s1g38rsj9f1dnraycwunh5gkjzue 9814619 9814614 2026-06-16T07:21:36Z Sayonzei 40728 /* 分詞 */ 9814619 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstət/}} * {{audio|de|De-befristeter Arbeitsvertrag.ogg|a=柏林}} * {{audio|de|De-befristet.ogg|a=柏林}} ===分詞=== {{head|de|過去分詞}} # {{past participle of|de|befristen}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|befristen||3s//2p|pres|;|2p|sub|I|;|p|imp}} ===形容詞=== {{de-adj}} # 有[[限期]]的,有[[時間]][[限制]]的 ====變格==== {{de-adecl}} ====派生詞彙==== * {{l|de|unbefristet}} b45d1osgustv0nej7duvzau6h1fy3pg beleuchtet 0 766090 9814276 4879622 2026-06-16T04:48:25Z Sayonzei 40728 9814276 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtət/}} * {{audio|de|De-beleuchtet.ogg|a=柏林}} ===分詞=== {{head|de|過去分詞}} # {{past participle of|de|beleuchten}} ====變格==== {{de-adecl}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|beleuchten||3|s|pres|;|2|p|pres|;|p|imp|;|2|p|sub|I}} a82yw1861jb13hjueyfz6lckuvqjaad bestrahlen 0 766773 9814360 4881177 2026-06-16T06:11:12Z Sayonzei 40728 9814360 wikitext text/x-wiki ==德語== ===詞源=== {{ety|de|:af|be-|strahlen}} {{prefix|de|be|strahlen}} ===發音=== * {{IPA|de|/bəˈʃtʁaːlən/}} * {{audio|de|De-bestrahlen.ogg|a=柏林}} ===動詞=== {{de-verb}} # [[照耀]],[[照射]] # {{lb|de|醫學}} [[放射]][[治療]] ====變位==== {{de-conj}} ====相關詞彙==== * {{l|de|Bestrahlung}} ===延伸閱讀=== * {{R:de:DWDS}} * {{R:de:UniLeipzig}} * {{R:de:Duden}} astqrasf63e8n1rge2iv4lxzng78pcb doppeldeutig 0 772364 9814563 4918910 2026-06-16T07:01:29Z Sayonzei 40728 9814563 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪç/}} {{qualifier|標準}} * {{audio|de|De-doppeldeutig.ogg|a=柏林}} * {{IPA|de|/-ˌdɔɪ̯tɪk/}} {{qualifier|德國南部、奧地利和瑞士的常見形式}} * {{audio|de|De-doppeldeutig2.ogg|a=柏林}} * {{hyphenation|de|dop|pel|deu|tig}} ===形容詞=== {{de-adj|comp}} # [[模棱兩可]]的,[[意義]][[含糊]]的,可以有[[兩]]種[[解釋]]方式的 ====變格==== {{de-adecl|comp}} ===延伸閱讀=== * {{R:de:Duden}} b6ittd3fi3thkn73sqjh832ltjcx6hb schemenhaft 0 780106 9814515 5024427 2026-06-16T06:52:44Z Sayonzei 40728 9814515 wikitext text/x-wiki ==德語== ===詞源=== {{ety|de|:af|Schemen<t:shadow>|-haft}} {{suffix|de|Schemen|haft|gloss1=模糊的輪廓;幻影}} ===發音=== * {{IPA|de|/ˈʃeːmən/}} * {{audio|de|De-schemenhaft.ogg|a=柏林}} ===形容詞=== {{de-adj|comp}} # [[模糊]]的,[[隱約]]的;[[幻影]]般的 ====變格==== {{de-adecl|comp}} ===延伸閱讀=== * {{R:de:DWDS}} * {{R:de:UniLeipzig}} 242kkoski2djes731dyht4ua70gzv3t leuchtend 0 796169 9814332 4969848 2026-06-16T06:01:42Z Sayonzei 40728 9814332 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈlɔɪ̯çtn̩t/}} * {{audio|de|De-leuchtend.ogg|a=柏林}} ===分詞=== {{head|de|現在分詞}} # {{present participle of|de|leuchten}} ===形容詞=== {{de-adj|comp}} # [[閃亮]]的,[[明亮]]的 # [[鮮艷]]的,[[明艷]]的 ====變格==== {{de-adecl|comp}} ====近義詞==== * {{l|de|strahlend}} ====反義詞==== * {{l|de|nichtleuchtend}} ===副詞=== {{de-adv}} # [[明亮]]地 #: {{syn|de|blendend|strahlend}} ===延伸閱讀=== * {{R:de:Duden}} bem8x60dxipo4ov8wxobi2lapqr0an5 strahlen 0 798363 9814359 9567782 2026-06-16T06:08:38Z Sayonzei 40728 9814359 wikitext text/x-wiki {{also|Strahlen}} ==德語== ===詞源=== 起於16世紀,源自 {{affix|de|Strahl|-en}}。 ===發音=== * {{IPA|de|/ˈʃtraːlən/|[ˈʃtʁaː.lən]|[ˈʃtʁaː.l̩n]}} * {{audio|de|De-strahlen.ogg|a=柏林}} * {{hyphenation|de|strah|len}} * {{homophones|de|Strahlen|Straelen}} ===動詞=== {{de-verb}} # [[閃爍]],[[閃光]] # [[輻射]],[[放射]] # [[洋溢]],[[煥發]] #: {{uxi|de|Du '''strahlst''' vor Freude.|你的脸上'''洋溢着'''幸福的光芒。}} ====變位==== {{de-conj}} ====派生詞彙==== {{col|de|Strahlen|Strahler|Strahlung|Strahlerei|strahlend|bestrahlen|verstrahlen|abstrahlen|anstrahlen|ausstrahlen|einstrahlen|glasstrahlen|sandstrahlen |erstrahlen }} ===延伸閱讀=== * {{R:de:DWDS}} * {{R:de:UniLeipzig}} * {{R:de:Duden}} * {{R:de:OpenThesaurus}} 34pbntv1lat5yndz8f1rjizwrxchljy losgelassen 0 798435 9814230 4972443 2026-06-16T04:34:44Z Sayonzei 40728 9814230 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈloːsɡəˌlasn̩/}} * {{audio|de|De-losgelassen.ogg|a=柏林}} ===分詞=== {{head|de|過去分詞}} # {{past participle of|de|loslassen}} ====變格==== {{de-adecl}} 5pf0h7m2p03sjql2kooocoq7d0ja2oj mehrdeutig 0 804258 9814579 4977732 2026-06-16T07:04:17Z Sayonzei 40728 9814579 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈmeːɐ̯ˌdɔɪ̯tɪç/}} {{qualifier|標準}} * {{IPA|de|/ˈmeːɐ̯ˌdɔɪ̯tɪk/}} {{qualifier|德國南部、奧地利和瑞士的常見形式}} * {{audio|de|De-mehrdeutig.ogg|a=柏林}} * {{audio|de|De-mehrdeutig2.ogg|a=柏林}} * {{hyphenation|de|mehr|deu|tig}} ===形容詞=== {{de-adj|comp}} # [[多義]]的 # [[模棱兩可]]的,[[意義]][[含糊]]的 #: {{ant|de|eindeutig}} ====變格==== {{de-adecl|comp}} ====下位詞==== * {{l|de|zweideutig}}、{{l|de|doppeldeutig}} ====派生詞彙==== * {{l|de|Mehrdeutigkeit}} ===延伸閱讀=== * {{R:de:Duden}} 1dd9axpxxpngm4fs9wpzt3ckb1cr4wz nebelig 0 812552 9814466 6040821 2026-06-16T06:45:03Z Sayonzei 40728 9814466 wikitext text/x-wiki ==德語== ===其他形式=== * {{alter|de|neblig}} ===詞源=== {{inh+|de|gmh|nebelic}},{{inh+|de|goh|nebulīg}}。等價於 {{af|de|Nebel|-ig}}。 ===發音=== * {{IPA|de|/ˈneːbəlɪç/}} {{qualifier|標準}} * {{IPA|de|/ˈneːbəlɪk/}} {{qualifier|德國南部、奧地利和瑞士的常見形式}} * {{audio|de|De-nebelig.ogg|a=柏林}} * {{audio|de|De-nebelig2.ogg|a=柏林}} * {{hyphenation|de|ne|be|lig}} ===形容詞=== {{de-adj|comp}} # [[起霧]]的,[[霧蒙蒙]]的 # {{lb|de|比喻}} [[模糊]]的 ====變格==== {{de-adecl|comp}} ====相關詞彙==== * {{l|de|Nebel}} * {{l|de|nebelhaft}} ====參見==== * {{l|de|nebulös}} ===延伸閱讀=== * {{R:de:DWDS}} * {{R:de:Duden}} ===異序詞=== * {{anagrams|de|a=beegiln|Belgien|Giebeln|neblige}} bodsqvm78o4nnb88bb939gyv5wg125u 9814467 9814466 2026-06-16T06:45:17Z Sayonzei 40728 /* 形容詞 */ 9814467 wikitext text/x-wiki ==德語== ===其他形式=== * {{alter|de|neblig}} ===詞源=== {{inh+|de|gmh|nebelic}},{{inh+|de|goh|nebulīg}}。等價於 {{af|de|Nebel|-ig}}。 ===發音=== * {{IPA|de|/ˈneːbəlɪç/}} {{qualifier|標準}} * {{IPA|de|/ˈneːbəlɪk/}} {{qualifier|德國南部、奧地利和瑞士的常見形式}} * {{audio|de|De-nebelig.ogg|a=柏林}} * {{audio|de|De-nebelig2.ogg|a=柏林}} * {{hyphenation|de|ne|be|lig}} ===形容詞=== {{de-adj|comp}} # [[起霧]]的,[[霧濛濛]]的 # {{lb|de|比喻}} [[模糊]]的 ====變格==== {{de-adecl|comp}} ====相關詞彙==== * {{l|de|Nebel}} * {{l|de|nebelhaft}} ====參見==== * {{l|de|nebulös}} ===延伸閱讀=== * {{R:de:DWDS}} * {{R:de:Duden}} ===異序詞=== * {{anagrams|de|a=beegiln|Belgien|Giebeln|neblige}} n5hsniw1qq5qjynpfoz1mkwdj97bt7p neblig 0 812818 9814483 6040824 2026-06-16T06:47:18Z Sayonzei 40728 9814483 wikitext text/x-wiki ==德語== ===其他形式=== * {{alter|de|nebelig}} ===詞源=== {{inh+|de|gmh|nebelic}},{{inh+|de|goh|nebulīg}}。等價於 {{af|de|Nebel|-ig}}。 ===發音=== * {{IPA|de|/ˈneːblɪç/}} {{qualifier|標準}} * {{IPA|de|/ˈneːblɪk/}} {{qualifier|德國南部、奧地利和瑞士的常見形式}} * {{audio|de|De-neblig.ogg|a=柏林}} * {{audio|de|De-neblig2.ogg|a=柏林}} * {{hyphenation|de|neb|lig}} ===形容詞=== {{de-adj|comp}} # [[起霧]]的,[[霧濛濛]]的 # {{lb|de|比喻}} [[模糊]]的 ====變格==== {{de-adecl|comp}} ====派生詞彙==== * {{l|de|Nebligkeit}} ===延伸閱讀=== * {{R:de:DWDS}} * {{R:de:Duden}} oa30tses7hnatwyil7on5r2bfd33dzp unmissverständlich 0 813982 9814531 5048029 2026-06-16T06:56:02Z Sayonzei 40728 9814531 wikitext text/x-wiki ==德語== ===其他形式=== * {{alter|de|unmißverständlich||pre-1996}} ===詞源=== {{ety|de|:af|un-|missverständlich}} 源自 {{prefix|de|un|missverständlich}}。 ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪç/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪç/}} * {{audio|de|De-unmissverständlich.ogg|a=柏林}} * {{audio|de|De-unmissverständlich2.ogg|a=柏林}} ===形容詞=== {{de-adj|comp}} # [[明確]]的,不[[含糊]]的 # 不會產生[[誤解]]的 # [[毋庸置疑]]的 ====變格==== {{de-adecl|comp}} ====派生詞彙==== * {{l|de|Unmissverständlichkeit}} ===延伸閱讀=== * {{R:de:DWDS}} * {{R:de:UniLeipzig}} * {{R:de:Duden}} 9imkmb73wu8yl9cbze6841pjk3yczbh unmißverständlich 0 813985 9814547 5048037 2026-06-16T06:57:57Z Sayonzei 40728 9814547 wikitext text/x-wiki ==德語== ===形容詞=== {{de-adj|comp}} # {{alternative spelling of|de|unmissverständlich}} ====用法說明==== * {{U:de:deprecated spelling|1996}} ====變格==== {{de-adecl|comp}} 5v74m0fte5sb9qthhw0904k6gd21325 vernebeln 0 818488 9814411 5051681 2026-06-16T06:22:30Z Sayonzei 40728 9814411 wikitext text/x-wiki ==德語== ===詞源=== {{inh+|de|gmh|nebelen}}、{{m|gmh|nibelen}},{{inh+|de|goh|nibulen}}。等價於 {{confix|de|ver|Nebel|n}}。 ===發音=== * {{IPA|de|[fɛɐ̯ˈneːbl̩n]|[fɛɐ̯ˈneːbəln]}} * {{audio|de|De-vernebeln.ogg|a=柏林}} * {{hyphenation|de|ver|ne|beln}} ===動詞=== {{de-verb}} # 使[[籠罩]]在[[霧]]中,使蒙上[[煙霧]] # {{lb|de|比喻}} [[掩蓋]] # [[霧化]] ====變位==== {{de-conj}} ====派生詞彙==== * {{l|de|Vernebeln}} * {{l|de|Vernebelung}} ====相關詞彙==== * {{l|de|verdunkeln||使變暗;遮蔽,掩蓋}}、{{l|de|verfinstern||變昏暗,變陰沉}}、{{l|de|vermehren||增加,滋生}} * {{l|de|Nebel||霧}}、{{l|de|nebeln||}} * {{l|de|Nebelung||十一月}} {{qualifier|棄用}} ===延伸閱讀=== * {{R:de:UniLeipzig}} * {{R:de:Grimm}} * {{R:de:DWDS}} * {{R:de:Duden}} 2g218kcj4li8p0u1rqvo2iieu1pl8j8 vernebelt 0 818491 9814412 1896171 2026-06-16T06:22:43Z Sayonzei 40728 9814412 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩t/}} * {{audio|de|De-vernebelt.ogg|a=柏林}} ===分詞=== {{head|de|過去分詞}} # {{past participle of|de|vernebeln}} ====變格==== {{de-adecl}} imk0g8uecl1pzz32cr886uz8mobt3zw widersprüchlich 0 826259 9814595 5056380 2026-06-16T07:05:44Z Sayonzei 40728 9814595 wikitext text/x-wiki ==德語== ===詞源=== {{ety|de|:af|Widerspruch|-lich}} {{suffix|de|Widerspruch|lich}} ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪç/}} * {{audio|de|De-am widersprüchlichsten.ogg|a=柏林}} * {{audio|de|De-widersprüchlich.ogg|a=柏林}} ===形容詞=== {{de-adj|comp}} # [[矛盾]]的,不[[一致]]的 ====變格==== {{de-adecl|comp}} ===延伸閱讀=== * {{R:de:Duden}} * {{R:de:DWDS}} 7296bsll7ujmlun59grd8yhzbapgrb0 пророк 0 852158 9814371 9540309 2026-06-16T06:12:46Z Apisite 85347 + 保加利亞語 9814371 wikitext text/x-wiki ==保加利亞語== ===詞源=== {{inh+|bg|sla-pro|*prorokъ}}。 ===發音=== * {{bg-pr|проро́к}} ===名詞=== {{bg-noun|проро́к|m}} # [[先知]],[[預言家]] ====變格==== {{bg-ndecl|проро́к<>}} ==馬其頓語== ===詞源=== {{inh+|mk|sla-pro|*prorokъ}}。 ===發音=== * {{mk-IPA}} * {{audio|mk|LL-Q9296 (mkd)-Bjankuloski06-пророк.wav}} ===名詞=== {{mk-noun|m|adj=пророчки|f=пророчица}} # [[先知]],[[預言家]] ====變格==== {{mk-decl-noun-m||пророц|p=1}} {{C|mk|人}} ==俄語== {{swp|lang=ru}} ===替代寫法=== * {{alt|ru|проро́къ||ru-PRO}} ===詞源=== {{inh+|ru|sla-pro|*prorokъ}}. ===發音=== * {{ru-IPA|проро́к}} * {{audio|ru|Ru-пророк.ogg}} ===名詞=== {{ru-noun+|проро́к|a=an|f=проро́чица}} # [[先知]],[[預言家]] #: {{syn|ru|ора́кул|прови́дец|прорица́тель}} #: {{uxi|ru|[[нет|Нет]] '''проро́ка''' [[в]] [[свой|своём]] [[отечество|оте́честве]]|在自己的國家,沒有人是先知。}} ====變格==== {{ru-noun-table|проро́к|a=an}} ====相關詞==== {{rel3|ru |проро́ческий |проро́чество |пророчить }} ===延伸閱讀=== * {{R:ru:BTS}} {{C|ru|宗教|男性}} ==塞爾維亞-克羅地亞語== ===詞源=== {{inh+|sh|sla-pro|*prorokъ}}。 ===名詞=== {{sh-noun|про̀рок|m-in}} # [[先知]],[[預言家]] ====變格==== {{sh-decl-noun|sc=Cyrl |пророк|пророци |пророка|пророка |пророку|пророцима |пророк|пророке |пророче|пророци |пророку|пророцима |пророком|пророцима }} ====相關詞==== * {{l|sh|sc=Cyrl|про̀рећи}} {{C|sh|宗教|人}} ==烏克蘭語== {{swp|lang=uk}} ===詞源=== {{bor+|uk|cu|пророкъ}}<ref>{{R:uk:ESUM|volume=4|page=600}}</ref>,來自{{der|uk|sla-pro|*prorokъ}}。 ===發音=== * {{uk-IPA|проро́к}} * {{audio|uk|Uk-пророк.ogg}} ===名詞=== {{uk-noun|проро́к<pr>|f=проро́чиця}} # [[先知]],[[預言家]] #: {{syn|uk|профе́т}} ====變格==== {{uk-ndecl|проро́к<pr>}} ====相關詞==== {{rel3|uk |проро́чий |{{l|uk|пророкува́ти|g=impf}} |{{l|uk|проро́цтво|g=n}} }} ===來源=== <references/> ===延伸閱讀=== * {{R:uk:SUM-11}} * {{R:uk:Horokh}} * {{R:uk:Kyiv}} * {{R:uk:Slovnyk}} {{C|uk|宗教|男性}} 460q7jvmeodgahrptvpmjq1qhe328ip 産業 0 956680 9814682 9087750 2026-06-16T11:01:40Z Jiba1219 110530 /* 日語 */ 9814682 wikitext text/x-wiki ==漢語== {{zh-see|產業|v}} ==日語== {{ja-kanjitab|さん|ぎょう|yomi=kanon} ===發音=== {{ja-pron|さんぎょう|acc=0|acc_ref=DJR,NHK}} ===名詞=== {{ja-noun|さんぎょう|hhira=さんげふ}} # [[產業]] ====派生詞==== * {{ja-r|産%業%医|さん%ぎょう%い}} * {{ja-r|産%業スパイ|さん%ぎょう スパイ}} * {{ja-r|産業 革命|さんぎょう かくめい}} * {{ja-r|産%業 廃%棄%物|さん%ぎょう はい%き%ぶつ}} ===參考資料=== <references/> ==朝鮮語== {{ko-hanjatab}} ===名詞=== {{ko-noun|hangeul=산업}} # {{hanja form of|산업}} bk2ws9gnxg7yh8qyj0pf4hl039gf2xm 9814683 9814682 2026-06-16T11:01:59Z Jiba1219 110530 /* 日語 */ 9814683 wikitext text/x-wiki ==漢語== {{zh-see|產業|v}} ==日語== {{ja-kanjitab|さん|ぎょう|yomi=kanon}} ===發音=== {{ja-pron|さんぎょう|acc=0|acc_ref=DJR,NHK}} ===名詞=== {{ja-noun|さんぎょう|hhira=さんげふ}} # [[產業]] ====派生詞==== * {{ja-r|産%業%医|さん%ぎょう%い}} * {{ja-r|産%業スパイ|さん%ぎょう スパイ}} * {{ja-r|産業 革命|さんぎょう かくめい}} * {{ja-r|産%業 廃%棄%物|さん%ぎょう はい%き%ぶつ}} ===參考資料=== <references/> ==朝鮮語== {{ko-hanjatab}} ===名詞=== {{ko-noun|hangeul=산업}} # {{hanja form of|산업}} c8idbzm886c2s83fmhh13499rwxvpm3 産地 0 956739 9814661 9019791 2026-06-16T10:18:03Z Jiba1219 110530 /* 日语 */ 9814661 wikitext text/x-wiki ==漢語== {{zh-see|產地|v}} ==日语== {{ja-kanjitab|さん|ち|yomi=kanon}} ===發音=== {{ja-pron|さんち|acc=1|acc_ref=DJR,NHK}} ===名词=== {{ja-noun|さんち}} # [[產地]] # [[出生地]] ====衍生詞==== * {{ja-r|産%地 直%売|さん%ち ちょく%ばい}} ===參考資料=== <references/> ==朝鮮語== {{ko-hanjatab}} ===名詞=== {{ko-noun|hangeul=산지}} # {{hanja form of|산지}} 8ux4c6gijfqalgvrvtwdinxxl96a0zn 内親王 0 959859 9814643 7740213 2026-06-16T09:54:45Z Sayonzei 40728 9814643 wikitext text/x-wiki ==日語== {{ja-kanjitab|yomi=goon|ない|しん|おう|k3=のう}} {{swp|ja:}} ===詞源=== {{pre|ja|内|親王|tr1=nai-|tr2=shinnō|t1=(宮殿)內|pos2=皇帝之兄弟或兒子}}。{{ja-renjō|ō|nō|王|sort=ないしんのう}} ===發音=== {{ja-pron|ないしんのう|acc=5}} ===名詞=== {{ja-noun|ないしんのう|hhira=ないしんわう}} # {{lb|ja|historical}} [[律令制]]下稱[[天皇]]的[[姊妹]]或[[皇女]] # {{w|明治時代}}以後稱[[天皇]]的[[嫡出]][[皇女]]及男系嫡出[[皇孫女]] #: {{syn|ja|内の御子|内の姫御子|姫御子|姫宮|tr=uchi no miko|tr2=uchi no himemiko|tr3=himemiko|tr4=himemiya}} #: {{ja-x|愛%子 内%親%王|^あい%こ ^ない%しん%のう|{{w|愛子內親王}}}} ====參見==== * {{ja-r|親%王|しん%のう|pos=男性}} * {{ja-r|女%王|じょ%.おう|pos=没有内亲王封号的皇族女子}} * {{ja-r|内%親|ない%しん}} * {{ja-r|姫|ひめ}} * {{ja-r|皇%女|こう%じょ}} ===參考資料=== * {{R:Kanjipedia Kotoba|0005379700}} {{C|ja|職業|君主制|日本|女人|sort=ないしんのう}} 5m48i6jbuyke3ryptpdvt509q5y9sl8 背水一戰 0 1311404 9814640 8431095 2026-06-16T09:17:40Z Tony85poon 62011 /* 漢語 */ wp 9814640 wikitext text/x-wiki ==漢語== {{zh-forms|s=背水一战|type=211}} {{wp|背水一战 (消歧义)}} ===發音=== {{zh-pron |m=bèishuǐ-一zhàn |c=bui3 seoi2 jat1 zin3 |cat=cy }} ===成語=== {{head|zh|成語}} # {{lb|zh|比喻義}} 抱著[[必死]]的[[決心]],[[奮戰]][[取勝]] #: {{zh-x|今天 這 場 比賽 一定 要 贏,大家 要 背水一戰 了!}} ===參見=== * {{zh-l|背水陣}} ===參考資料=== * {{R:zh:cbgycdxdb|15192}} 7m9eou5h1w27i6m0dcyce20hojrd8av 9814642 9814640 2026-06-16T09:48:20Z Sayonzei 40728 /* 漢語 */ 9814642 wikitext text/x-wiki ==漢語== {{zh-forms|s=背水一战|type=211}} ===詞源=== 出自漢初名將{{w|韓信}}在{{w|井陘之戰}}的戰術。 ===發音=== {{zh-pron |m=bèishuǐ-一zhàn |c=bui3 seoi2 jat1 zin3 |cat=cy }} ===成語=== {{head|zh|成語}} # {{lb|zh|比喻義}} 抱著[[必死]]的[[決心]],[[奮戰]][[取勝]] #: {{zh-x|今天 這 場 比賽 一定 要 贏,大家 要 背水一戰 了!}} ===參見=== * {{zh-l|背水陣}} ===參考資料=== * {{R:zh:cbgycdxdb|15192}} knckxs5n3tb6503yx55z3tx6x8dpdq8 ass 0 1337971 9813785 9712959 2026-06-15T14:01:17Z TongcyDai 53191 9813785 wikitext text/x-wiki {{also|Appendix:"ass"的變體}} ==跨語言== ===符號=== {{mul-symbol}} # {{ISO 639|3}} ===參見=== * {{langcat}} ==英语== {{wikipedia|lang=en}} ===发音=== * {{enPR|ăs}}, {{IPA|en|/æs/}} * {{audio|en|LL-Q1860 (eng)-Back ache-ass.wav|a=UK}} * {{audio|en|en-us-ass.ogg|a=US}} * {{rhymes|en|æs|s=1}} ===词源 1=== 源自{{inh|en|enm|asse}},源自{{inh|en|ang|assa}},逆构自{{m|ang|assen|t=母驴}},源自{{der|en|cel}}(对比{{cog|sga|asan}}、{{cog|oco|asen}}),源自{{der|en|la|asinus}}。取代了{{cog|ang|esol}},其源自{{cog|gmw-pro|*asil}},亦借自同一个拉丁语词。 ====名词==== {{en-noun}} [[File:Somali Wild Ass.JPG|thumb|Somali wild '''ass''']] # [[驴]] #: {{syn|en|donkey}} #* {{RQ:Browne Pseudodoxia Epidemica|edition=2nd|book=6|chapter=Of the Same [''i.e.'', the Blacknesse of Negroes]|page=282|passage=Thus the '''Aſſe''' having a peculiar mark of a croſſe made by a black liſt down his back, and another athwart, or at right angles down his ſhoulders; common opinion aſcribes this figure unto a peculiar ſignation; ſince that beaſt had the honour to bear our Saviour on his back.}} #* {{quote-book|1=en|year=1972|author=Parliament of the United Kingdom|title=Road Traffic Act 1972|chapter=Part I, section 20(3)|url=https://www.legislation.gov.uk/ukpga/1972/20/pdfs/ukpga_19720020_en.pdf|page=14|text=In this section "animal" means any horse, cattle, '''ass''', mule, sheep, pig, goat or dog.}} # {{lb|en|俚语|较为|_|粗俗}} [[蠢货]] #: {{syn|en|fool|idiot}} #: {{ux|en|That new kid left the cap off the syrup bottle again! What an '''ass'''.|那个新来的小孩又没盖糖浆瓶的盖子,真是'''脑袋有点问题'''。}} #* {{RQ:Doyle Lost World|passage=I had sprung to my feet. I was speaking, and yet I had prepared no words. Tarp Henry, my companion, was plucking at my skirts and I heard him whispering, "Sit down, Malone! Don't make a public '''ass''' of yourself."}} # {{lb|en|printing|俚语|弃用}} [[排版]][[工人]] #: {{syn|en|compositor}} #* {{quote-book|en|year=1841|author=[[w:en:William Savage (printer)|William Savage]]|title=Dictionary of the Art of Printing|page=24|url=https://archive.org/details/bub_gb_S_s1AQAAMAAJ/page/24/mode/2up|text=Sometimes by way of joke, and sometimes by way of irritation, compositors are called '''Asses''' by the pressmen.}} =====下义词===== * {{sense|驴}} {{l|en|donkey}}、{{l|en|onager}}、{{l|en|wild ass}} =====衍生词汇===== {{der3|en|Buridan's ass|the law is an ass|wild ass|zebrass}} =====相关词汇===== * {{l|en|asinine}} ===词源 2=== {{m|en|arse}}的北美变体。最终源自{{inh|en|enm|ars}}、{{m|enm|ers}},源自{{inh|en|ang|ærs}}、{{m|ang|ears}},源自{{inh|en|gmw-pro|*ars}},源自{{inh|en|gem-pro|*arsaz}}(对比{{cog|goh|ars}}({{cog|de|Arsch}})、{{cog|non|ars}}、{{cog|ofs|ers}}),源自{{inh|en|ine-pro|*h₃érsos}}(对比{{cog|grc|ὄρρος}})。 有不少人认为该词曾为委婉词,但它其实原是为了反映舌尖音(尤其是{{IPAchar|/s/}})前{{IPAchar|/ɹ/}}被合并的[[发音拼写]](更早期的形式{{m|en|arse}}仍通用于英国、澳大利亚、新西兰等地),该现象在{{w|中古英语}}起的非标准口语中就有出现。该现象与之后出现R音脱落不同,因为{{IPAchar|/ɹ/}}在能影响其前驱音之前就已经脱落。该现象影响到的其他词(部分词保留了两种形式且词义有所不同)有{{m|en|cuss}}←{{m|en|curse}}、{{m|en|gash}}←{{m|en|garsh}}、{{m|en|bass||鲈鱼}}←{{m|en|barse}}、{{m|en|bust}}←{{m|en|burst}}、{{m|en|passel}}←{{m|en|parcel}},参见[[:en:Category:English terms with assimilation of historic /ɹ/]]。 ====形容词==== {{en-adj|-}} # {{lb|en|粗俗|俚语}} [[差劲]]的,[[不行]]的,[[垃圾]]的 #* {{quote-web|en|url=https://www.dallasnews.com/sports/2019/02/06/former-texas-am-qb-nick-starkel-breaks-down-old-twitter-beef-with-tate-martell/|work=Dallas Morning News|passage=On a recent episode of "The Justin Dunning Podcast," Starkel shared his thoughts on Martell, a former Ohio State quarterback, saying "he's '''ass''' my dude" in reference to Starkel.|title=Former Texas A&M QB Nick Starkel breaks down old Twitter beef with Tate Martell|date=2019-02-05|author=Alex Miller}} #* {{quote-web|en|url=https://musketfire.com/2021/02/21/patriots-cam-newton-exchange-teenager-video/|work=Fansided|passage=For some reason, the teenager thought it’d be a good idea to criticize Newton and say he's "'''ass'''" and that he’s "about to be poor" because he's a free agent.|title=Patriots: Cam Newton getting disrespected by a teenager is everything that’s wrong with society|date=2021-02-21|author=Thomas Carannante}} #* {{quote-web|en|url=https://www.espn.com/nfl/story/_/id/32473036/what-learned-arizona-cardinals-quarterback-kyler-murray-watching-twitch|work=ESPN|passage="You're so '''ass'''," Murray says to another player.|title=What we learned about Arizona Cardinals quarterback Kyler Murray by watching him on Twitch|date=2021-10-28|author=Josh Weinfuss}} ====名词==== {{en-noun|~}} # {{senseid|en|屁股}} {{lb|en|粗俗|俚语|可数|and|不可数}} [[屁股]] #: {{syn|en|Thesaurus:buttocks}} # {{lb|en|粗俗|俚语|可数|and|不可数}} [[屁眼]] #* {{RQ:William Burroughs Naked Lunch|page=81|passage=Train compartment: two sick young junkies on their way to Lexington tear their pants down in convulsions of lust. One of them soaps his cock and works it up the other's '''ass''' with a corkscrew motion.}} # {{lb|en|粗俗|俚语|人的[[物化]]|不可数}} [[性交]][[对象]] {{gl|粗俗地强调了其身体而非其人格}} #: {{syn|en|poontang|poon|punani|pussy|tail|tang|Thesaurus:copulation}} #: {{ux|en|I'm going to go down to the bar and try to get me some '''ass'''.|我准备去酒吧找个'''屄'''来肏。}} #* {{quote-song|en|author=w:Joni Mitchell|year=1971|album=Blue|title=Blue|passage=Acid, booze, and '''ass''' / Needles, guns, and grass}} # {{lb|en|粗俗|俚语|不可数}} [[讨厌]]的东西,[[差劲]]的东西,[[垃圾]] #: {{uxi|en|I feel like '''ass''' today.|今天真他妈'''不爽'''。}} #: {{uxi|en|This room smells like '''ass'''.|这房间'''臭死了'''。}} #: {{uxi|en|What a bunch of '''ass'''.|这都什么'''乱七八糟'''的。}} # {{senseid|en|自己}} {{lb|en|粗俗|俚语|转喻意|人的[[物化]]|可数}} [[家伙]],[[人]] {{gl|能指代自己。可指代身体,安全,或者比喻性地指代工作,将来等}} #: {{cot|en|{{l|en|face}}|{{l|en|hide}}}} #: {{ux|en|Get your lazy '''ass''' out of bed!|赶紧起床你这个懒狗!}} #: {{ux|en|We risk our '''asses''' out there every day.|我们每天都冒生命危险。}} #: {{ux|en|I'ma get medieval on your '''ass'''!|看我不好好修理'''你'''一顿!}} =====用法说明===== * 当使用转喻意,其给整个句子带来负面色彩,带有恼怒的语气: ** “{{lang|en|he has trouble getting his ass up in the morning}}”比“{{lang|en|he has trouble getting up in the morning}}”语气更重,更带负面色彩。 * 不一定表示对被指代人的不赞成: ** “{{lang|en|And who do you think has to clean this mess up? My ass does!}}”(“你觉得是谁要来擦屁股?是他妈的老子!”这句话没有体现对自己的不赞同,而表示对搞砸的人的不赞同) *** (可能会体现一定的厌烦) * 这一用法粗俗,因此仅限于非正式语域,其用于正式上下文中有一定的冒犯意。 * 其词义的内涵在于通过使用身体的一部分转喻整个人,来物化一个人(甚至包括指自己的时候),暗中强调了其身体而非其人格(亦从该观点对比{{m|en|hide|id=self, metonymically|watch his hide|看好他,保护好他}}、{{m|en|face|id=self, metonymically|show his face|露面}}、{{m|en|whatshisface#Etymology|what's-his-face|无名氏}}、{{m|en|meatbag}}或{{m|en|crackhead}})。 * 其变格形式在语法上有代词功能: ** {{m|en|my ass}} = {{m|en|I}}、{{m|en|me}}、{{m|en|myself}} ** {{m|en|your ass}} = {{m|en|you}}、{{m|en|yourself}} ** his ass = {{m|en|he}}、{{m|en|him}}、{{m|en|himself}} ** her ass = {{m|en|she}}、{{m|en|her}}、{{m|en|herself}} ** your asses = {{m|en|y'all}}、{{m|en|y'all}}、{{m|en|yourselves}} ** their asses = {{m|en|they}}、{{m|en|them}}、{{m|en|themselves}} =====衍生词汇===== {{der3|en |assage |[[ass-backwards]], [[ass backward]], [[ass-backward]] |ass bandit |[[ass clown]], [[assclown]] |ass crack |assfuck |assgasm |assgrab |asshat |[[asshole]], [[ass hole]] |asshood |ass in a sling |ass kicking |ass kissing |assle |ass-licker |assmonkey |ass over teakettle |assrun |bare-assed |big-ass |blow it out one's ass |bust ass |bust ass cold |bust one's ass |[[dumbass]], [[dumb ass]], [[dumb-ass]] |[[fatass]], [[fat-ass]] |get one's ass in gear |give a rat's ass |[[half-assed]], [[half-ass]], [[half ass]] |[[hardass]], [[hard-ass]], [[hard-assed]] |haul ass |her ass |his ass |horse's ass |horseshoe up one's ass |[[kick ass]], [[kick-ass]], [[kickass]] |[[kiss ass]], [[kiss-ass]]|kiss my ass |kiss one's ass goodbye|know one's ass from a hole in the ground |laugh one's ass off |my ass |pain in the ass |piece of ass |pop a cap in someone's ass |put one's ass on the line |quarter-assed |shake one's ass |[[smart ass]], [[smart-ass]] |[[someone's ass off]], [[one's ass off]] |stick up one's ass |take it up the ass |their ass |their asses |whoop ass |[[wiseass]], [[wise-ass]] |[[work someone's ass off]], [[work one's ass off]] |your ass |your asses |piss out one's ass|Teck's ass|Tex-ass|ass backwards|ass beating|ass breath|ass call|ass catch|ass cheeks|ass crack of dawn|ass eating|ass floss|ass guard|ass juice|ass kisser|ass licker|ass pounding|ass pull|ass sucker|ass to mouth|ass-breath|ass-kicking|ass-kisser|ass-kissing|ass-licking|ass-pull|ass-rape|bad ass|bad-ass|bee up one's ass|bet one's ass|big ass|bitch-ass|bite my ass|bite my shiny metal ass|blow smoke up someone's ass|bomb-ass|break ass|bubble ass|bug up one's ass|bust a cap in someone's ass|bust someone's ass|candy-ass|cat's ass|cottage cheese ass|cover someone's ass|cracker-ass|crazy-ass|die in the ass|drag ass|duck's ass|eat ass|eating ass|fake-ass|fly-ass|gay-ass|get off one's ass|get one's ass handed to one|get one's ass into gear|get up someone's ass|gnat's ass|grab ass|grab-ass|grassy ass|grown-ass|have one's ass handed to one|have one's head up one's ass|he-ass|jack-ass|jenny-ass|jerk ass|jerk-ass|jive-ass|kick ass and take names|kick someone's ass|kick up the ass|kiss someone's ass|know one's ass from one's elbow|know the difference between one's ass and a hole in the ground|know the difference between one's ass and one's elbow|lard-ass|lazy ass|lazy-ass|lick someone's ass|light someone's ass up|like ass|make an ass of|no-good ass|one's ass is grass|open a can of whoop ass|open up a can of whoop ass|out the ass|pain in one's ass|pickle up one's ass|piss out of one's ass|pole up one's ass|pull out of one's ass|punk-ass|put foot to ass|put one's foot in someone's ass|put one's foot up someone's ass|raggedy-ass|ride someone's ass|rip ass|sad ass|sell one's ass|she-ass|shit ass|shitty-ass|short-ass|shove it up your ass|show one's ass|sick ass|sick-ass|sit on one's ass|sit one's ass down|sketch-ass|slap my ass and call me Judy|slap my ass and call me Sally|stank-ass|strange-ass|suck ass|suck-ass|swamp ass|take one's tongue out of someone's ass|talk out of one's ass|talk out one's ass|talk through one's ass|think the sun shines out of someone's ass|tight as a duck's ass|tits and ass|up one's own ass|up the ass|up to one's ass in alligators|watch one's ass|weird-ass|whoop-ass|with one's thumbs up one's ass|assface|assbutt|buttass|assfucker|asswipe|assholery|asshattery|assclownery|assholic|assholism|assholedom |assholey|asshatty|assholehood|assbag|assholio |assbucket |lameass|assholeness|assfuck |assfucker|sorry ass|stick in one’s ass|asshead|assnose|half-ass|half-arsed|assbrain}} ====助词==== {{head|en|助詞}} # {{synonym of|en|-ass|pos=形容词强调助词}} #: {{ux|en|That was one big '''ass''' fish!|那鱼好'''他妈'''大!}} #: {{ux|en|That's an expensive '''ass''' car!|那辆车真'''他妈'''贵!}} ===延伸阅读=== * {{cite-journal|author=Archibald A. Hill|year=1940|title=Early Loss of [r] before Dentals|journal=PMLA|volume=55|issue=2|pages=308-359|doi=10.2307/458450}} * {{cite-journal|author=L. Sprague de Camp|authorlink=L. Sprague de Camp|year=1971|title=Arse and ass|journal=Journal of the International Phonetic Association|volume=1|issue=2|pages=79–80|doi=10.1017/S0025100300000281}} ===异序词=== * {{anagrams|en|a=ass|SAS|SSA|Sas}} {{catlangname|en|詈語|3字母詞}} {{topics|en|臀部|馬科動物|人}} ==德语== ===动词=== {{head|de|動詞變位形式}} # {{standard spelling of|de|from=SLDE|aß}} ==拉特加莱语== ===词源 1=== 源自{{inh|ltg|ine-bsl-pro|*aśís}}。同源词有{{cog|lv|ass}}和{{cog|lt|ašis}}。 ====发音==== * {{ltg-IPA|ass'}} * {{hyph|ltg|ass}} ====名词==== {{ltg-noun|f|aseite}} # [[轴]] =====变格===== {{ltg-decl-noun/6|ass|oss}} ===词源 2=== {{nonlemma}} ====发音==== * {{ltg-IPA}} * {{hyph|ltg|ass}} ====分词==== {{ltg-part|PrOP}} # {{inflection of|ltg|byut||present|oblique|participle}} ===参考资料=== * {{R:ltg:Bukss:1973|page=131}} ==拉脱维亚语== [[File:Train axle.jpg|200px|thumb|Vagona ass]] [[File:Orienteta taisne.JPG|200px|thumb|Ass]] ===词源 1=== 源自{{inh|lv|ine-bsl-pro|*aśís}},源自{{der|lv|ine-pro|*h₂eḱs-}}。原为i/n-词根,其在波罗的海地区变为了i-词根。<ref name="LEV">{{R:lv:LEV}}。</ref> ====发音==== * {{lv-IPA|as}} {{audio|lv|lv-riga-ass.ogg}} ====名词==== {{lv-noun|f|6th}} # [[轴]] #: {{ux|lv|ratu '''ass'''|'''轴'''承|inline=1}} #: {{ux|lv|vagona '''ass'''|车'''轴'''|inline=1}} #: {{ux|lv|motocikla pakaļējā riteņa '''ass'''|摩托车的后车'''轴'''|inline=1}} # {{lb|lv|mathematics}} [[轴]] #: {{ux|lv|simetrijas, rotācijas '''ass'''|对称'''轴''',旋转'''轴'''|inline=1}} #: {{ux|lv|zemes griešanās '''ass'''|地球的旋转'''轴'''|inline=1}} #: {{ux|lv|koordinātu '''asis'''|坐标'''轴'''|inline=1}} #: {{ux|lv|abscisu, ordinātu '''ass'''|x-、y-'''轴'''|inline=1}} =====变格===== {{lv-decl-noun|a|s|6th||s|s|extrawidth=-60}} ===词源 2=== 与{{m|lv|ass||轴}}同源,原为对应一个人伸展手臂时的长度的度量单位(对比{{cog|ru|са́жень}})。<ref name="LEV"/> ====发音==== * {{lv-IPA|as}} {{audio|lv|lv-riga-ass.ogg}} ====名词==== {{lv-noun|f|6th}} # [[俄丈]] {{gl|俄罗斯旧制长度计量单位,约等于2.13[[米]]}} #: {{ux|lv|jūras '''ass'''|'''英寻'''(约1.83米)|inline=1}} # [[俄丈]] {{gl|俄罗斯测量木材的旧体积计量单位,约2-4[[立方米]]}} #: {{ux|lv|divas '''asis''' malkas|2'''俄丈'''木材|inline=1}} =====变格===== {{lv-decl-noun|a|s|6th||s|s|extrawidth=-60}} ===词源 3=== 源自早期形式{{m|lv|*asus}},源自{{inh|lv|bat-pro|*ašus}},源自{{der|lv|ine-pro|*h₂eḱ-||尖}}。带了附加后缀''*-ro'',同一词根亦产生了{{cog|ine-bsl-pro|*aśras||尖}},派生出拉脱维亚语方言词{{m|lv|asrs}}以及{{cog|lt|-}}同源词{{m|lt|aštrùs}},方言词{{m|lt|ašrùs}}。该词根还派生出带''ak''而非''as''的词(比如{{m|lv|akmens||石头}}、{{m|lv|akots||芒刺}}),可能是原始印欧语的方言变体产生的。拉脱维亚语中,先前的''u''-词根形容词(如{{m|lv|*asus}})被合并到了其他类别下,{{m|lv|*asus}}产生出了''o''-词根和''yo-''词根变体,它们后面成为了独立单词,{{m|lv|ass}}和{{m|lv|ašs}},且语义上有差异(比如亦对比{{m|lv|plats}}和{{m|lv|plašs}}或{{m|lv|dobs}}和{{m|lv|dobjš}})。其他同源词包括{{cog|cu|остръ|sc=Cyrs}}、{{cog|ru|о́стрый}}、{{cog|be|во́стры|sc=Cyrl}}、{{cog|uk|о́стрий|sc=Cyrl}}、{{m|uk|го́стрий|sc=Cyrl}}、{{cog|bg|о́стър|sc=Cyrl}}、{{cog|cs|ostrý}}、{{cog|pl|ostry}}、{{cog|gem-pro|*agjō}}({{cog|goh|ecka}}、{{m|goh|egga||边缘,尖角,尖端,刀刃}}、{{cog|de|Ecke}}、{{cog|sa|अश्रि|अश्रिः|角落,尖角,刃|tr=áśriḥ|sc=Deva}}、{{cog|grc|ἀκή||尖端}}、{{m|grc|ἄκρος||尖的}}、{{cog|la|ācer||尖的}}、{{m|la|aciēs||锋利;刀刃}}。<ref name="LEV"/> ====发音==== * {{lv-IPA|as}} {{audio|lv|lv-riga-ass.ogg}} ====形容词==== {{lv-adj|as}} # [[尖锐]]的,[[锋利]]的 #: {{ux|lv|'''ass''' nazis, zāģis, cirvis|'''锐利'''的刀,锯,斧|inline=1}} #: {{ux|lv|'''ass''' īlens, ilknis|'''锐利'''的锥子,獠牙|inline=1}} #: {{ux|lv|'''asa''' adata|'''尖'''针|inline=1}} #: {{ux|lv|'''asi''' ragi, ilkņi|'''尖'''角,'''尖'''牙|inline=1}} #: {{ux|lv|'''asas''' kalnu galotnes|'''陡峭'''的山顶|inline=1}} #: {{ux|lv|'''ass''' zīmulis|'''尖锐'''的铅笔|inline=1}} # (指身体部位或字体)尖的 #: {{ux|lv|'''asi''' elkoņi|'''弯'''的手肘|inline=1}} #: {{ux|lv|'''asi''' vaigu kauli|'''尖锐'''的颧骨|inline=1}} #: {{ux|lv|'''asas''' burtu formas rokrakstā||inline=1}} # {{lb|lv|指植物}} [[尖]]的,有尖刺的 #: {{ux|lv|'''ass''' dadzis, paeglis, grīslis|'''尖'''蓟,'''尖锐'''的刺柏,'''尖锐'''的莎草|inline=1}} #: {{ux|lv|'''asa''' zāle, nātre|'''尖'''树叶,'''尖锐'''的荨麻|inline=1}} # {{lb|lv|指布料,皮肤等}} [[粗糙]]的 #: {{ux|lv|'''asa''' sejas āda|'''粗糙'''的面部肌肤|inline=1}} #: {{ux|lv|'''ass''' linu dvielis|'''粗'''亚麻制的毛巾|inline=1}} # [[刺激]][[感官]]的 {{gl|如辛辣等}} #: {{ux|lv|'''asa''' mērce|'''辣'''酱|inline=1}} #: {{ux|lv|'''asa''' dūmu smaka|'''刺鼻'''的烟雾气味|inline=1}} #: {{ux|lv|'''ass''' ož pēc hlora|氯的'''刺鼻'''气味|inline=1}} #: {{ux|lv|'''ass''' vējš|'''刺鼻'''的风|inline=1}} #: {{ux|lv|'''asas''' sāpes|'''尖锐'''的疼痛|inline=1}} #: {{ux|lv|'''ass''' klepus|'''重重'''的咳嗽|inline=1}} # [[严厉]]的,[[不留情面]]的 #: {{ux|lv|'''asā''' balss|'''严厉'''的语气|inline=1}} #: {{ux|lv|runāt '''asā''' tonī|用'''严厉'''的语气说话|inline=1}} #: {{ux|lv|'''ass''' sarkasms|'''尖酸'''的讽刺|inline=1}} #: {{ux|lv|'''ass''' pārmetumi|'''严厉'''的批评|inline=1}} #: {{ux|lv|'''asa''' ķilda|'''凶猛'''的争吵|inline=1}} #: {{ux|lv|'''asa''' mēle|'''尖酸刻薄'''的话语|inline=1}} # [[清晰]]的,[[鲜明]]的 #: {{ux|lv|'''asas''' kontūras|'''鲜活'''的形象|inline=1}} #: {{ux|lv|'''asi''' sejas vaibsti|'''鲜明'''的面部特征|inline=1}} #: {{ux|lv|zīmēt '''asām''' līnijām|用'''清晰'''的线条作画|inline=1}} # {{lb|lv|指问题}} [[尖锐]]的,[[重要]]的,[[严重]]的 #: {{ux|lv|'''asa''' problēma|'''严重'''的问题|inline=1}} # [[锐利]]的,[[敏锐]]的 #: {{ux|lv|'''asa''' redze|'''敏锐'''的视觉|inline=1}} #: {{ux|lv|'''ass''' prāts|'''清晰'''的头脑|inline=1}} #: {{ux|lv|'''asa''' uztvere|'''敏锐'''的觉察力|inline=1}} =====变格===== {{lv-decl-adj|as|extrawidth=-100}} =====近义词===== * {{sense|尖锐}} {{l|lv|skaudrs}} * {{sense|严厉,刻薄}} {{l|lv|raupjš}}、{{l|lv|rupjš}}、{{l|lv|negluds}}、{{l|lv|skarbs}} =====反义词===== * {{sense|尖锐}} {{l|lv|truls}}、{{l|lv|neass}} * {{sense|严厉刻薄}} {{l|lv|gluds}}、{{l|lv|maigs}}、{{l|lv|mīksts}} =====衍生词汇===== * {{l|lv|asums}} ===参考资料=== <references /> {{topics|lv|簡單機械|觸覺|計量單位}} ==卢森堡语== ===动词=== {{head|lb|動詞變位形式}} # {{infl of|lb|sinn||3|s|pres}} ==曼岛语== ===词源=== 源自{{inh|gv|sga|ass}},{{m|sga|a|a|id=out of|t=自,离}}的阳性和中性单数形式,源自{{inh|gv|cel-pro|*exs}},源自{{inh|gv|ine-pro|*h₁eǵʰs||来自}}。对比{{cog|ga|as}}。 ===副词=== {{head|gv|副詞}} # [[出]] ===介词=== {{head|gv|介詞}} # 从...中 ====屈折==== {{gv-prep-infl |1sg=assym |2sg=assyd |3sgm=ass |3sgmem=assyn |3sgf=assjee |1pl=assdooin |2pl=assdiu |3pl=assdaue }} ====衍生词汇==== * {{l|gv|ass y cheer}} * {{l|gv|ass y hene}} ===代词=== {{head|gv|前置格代詞}} # {{inflection of|gv|ec||1|p}} ====衍生词汇==== * {{l|gv|assyn}} {{qualifier|强调}} ==中古英语== ===名词=== {{head|enm|名詞}} # {{alternative form of|enm|asshe|t=烧掉的东西}} ==书面挪威语== ===其他形式=== * {{alter|nb|Ass}} {{qual|也可首字母大写}} ===名词=== {{nb-noun-m1}} # {{lb|nb|music}} [[A♭]] ==新挪威语== ===其他形式=== * {{alter|nn|Ass}} {{qual|也可首字母大写}} ===名词=== {{nn-noun-m1}} # {{lb|nn|music}} [[A♭]] ==古爱尔兰语== ===其他形式=== * {{l|sga|as}} * {{l|sga|es}} ===发音=== * {{IPA|sga|/as/}} ===代词=== {{head|sga|前置格代詞}} # {{inflection of|sga|a||3|s|m}} ==瑞典语== ===名词=== {{sv-noun|n}} # {{lb|sv|music}} [[A♭]] # [[挂号信]];{{abbreviation of|sv|[[assurerad]] ([[försändelse]])}} #:{{coord|sv|rek}} ====变格==== {{sv-infl-noun-n-zero|genitive=}} ===异序词=== * {{anagrams|sv|a=ass|s.a.s.|sas}} {{topics|sv|郵政}} ==里菲安语== ===其他形式=== * {{alter|rif|as}} ===词源=== {{rfe|rif}} ===名词=== {{rif-noun|m|pl=ussan}} # [[天]],一天 #: {{syn|rif|nnhar}} # [[白天]] #: {{syn|rif|azir}} ====变格==== {{rif-decl-noun|wass|ussan|wussan}} ====衍生词汇==== * {{l|rif|assa|t=今天}} {{c|rif|一天裡的時刻}} 02wzwe05504cldst2tf8s8evjk9es85 9813788 9813785 2026-06-15T14:04:25Z TongcyDai 53191 9813788 wikitext text/x-wiki {{also|Appendix:"ass"的變體}} ==跨語言== ===符號=== {{mul-symbol}} # {{ISO 639|3}} ===參見=== * {{langcat}} ==英语== {{wikipedia|lang=en}} ===发音=== * {{enPR|ăs}}, {{IPA|en|/æs/}} * {{audio|en|LL-Q1860 (eng)-Back ache-ass.wav|a=UK}} * {{audio|en|en-us-ass.ogg|a=US}} * {{rhymes|en|æs|s=1}} ===词源 1=== 源自{{inh|en|enm|asse}},源自{{inh|en|ang|assa}},逆构自{{m|ang|assen|t=母驴}},源自{{der|en|cel}}(对比{{cog|sga|asan}}、{{cog|oco|asen}}),源自{{der|en|la|asinus}}。取代了{{cog|ang|esol}},其源自{{cog|gmw-pro|*asil}},亦借自同一个拉丁语词。 ====名词==== {{en-noun}} [[File:Somali Wild Ass.JPG|thumb|Somali wild '''ass''']] # [[驴]] #: {{hyper|en|equine#名詞|<|equid#名詞|<|mammal#名詞|<|animal#名詞|<|creature#名詞|critter#Noun}} #: {{hypo|en|donkey#名詞<qq:也視作近義詞>|onager#名詞|wild ass#名詞}} #* {{RQ:KJV|1 Samuel|16|20|passage=And Iesse tooke an '''asse''' laden with bread, and a bottle of wine, and a kid, and sent them by Dauid his sonne vnto Saul.}} #* {{RQ:Browne Pseudodoxia Epidemica|edition=2nd|chapter=Of the Same [''i.e.'', the Blacknesse of Negroes]|page=282|passage=Thus the '''Aſſe''' having a peculiar mark of a croſſe made by a black liſt down his back, and another athwart, or at right angles down his ſhoulders; common opinion aſcribes this figure unto a peculiar ſignation; ſince that beaſt had the honour to bear our Saviour on his back.}} #* {{quote-book|1=en|year=1972|author=Parliament of the United Kingdom|title=Road Traffic Act 1972|chapter=Part I, section 20(3)|url=https://www.legislation.gov.uk/ukpga/1972/20/pdfs/ukpga_19720020_en.pdf|page=14|text=In this section "animal" means any horse, cattle, '''ass''', mule, sheep, pig, goat or dog.}} # {{lb|en|俚语|较为|_|粗俗}} [[蠢货]] #: {{syn|en|fool|idiot}} #: {{ux|en|That new kid left the cap off the syrup bottle again! What an '''ass'''.|那个新来的小孩又没盖糖浆瓶的盖子,真是'''脑袋有点问题'''。}} #* {{RQ:Doyle Lost World|passage=I had sprung to my feet. I was speaking, and yet I had prepared no words. Tarp Henry, my companion, was plucking at my skirts and I heard him whispering, "Sit down, Malone! Don't make a public '''ass''' of yourself."}} # {{lb|en|printing|俚语|弃用}} [[排版]][[工人]] #: {{syn|en|compositor}} #* {{quote-book|en|year=1841|author=[[w:en:William Savage (printer)|William Savage]]|title=Dictionary of the Art of Printing|page=24|url=https://archive.org/details/bub_gb_S_s1AQAAMAAJ/page/24/mode/2up|text=Sometimes by way of joke, and sometimes by way of irritation, compositors are called '''Asses''' by the pressmen.}} =====下义词===== * {{sense|驴}} {{l|en|donkey}}、{{l|en|onager}}、{{l|en|wild ass}} =====衍生词汇===== {{der3|en|Buridan's ass|the law is an ass|wild ass|zebrass}} =====相关词汇===== * {{l|en|asinine}} ===词源 2=== {{m|en|arse}}的北美变体。最终源自{{inh|en|enm|ars}}、{{m|enm|ers}},源自{{inh|en|ang|ærs}}、{{m|ang|ears}},源自{{inh|en|gmw-pro|*ars}},源自{{inh|en|gem-pro|*arsaz}}(对比{{cog|goh|ars}}({{cog|de|Arsch}})、{{cog|non|ars}}、{{cog|ofs|ers}}),源自{{inh|en|ine-pro|*h₃érsos}}(对比{{cog|grc|ὄρρος}})。 有不少人认为该词曾为委婉词,但它其实原是为了反映舌尖音(尤其是{{IPAchar|/s/}})前{{IPAchar|/ɹ/}}被合并的[[发音拼写]](更早期的形式{{m|en|arse}}仍通用于英国、澳大利亚、新西兰等地),该现象在{{w|中古英语}}起的非标准口语中就有出现。该现象与之后出现R音脱落不同,因为{{IPAchar|/ɹ/}}在能影响其前驱音之前就已经脱落。该现象影响到的其他词(部分词保留了两种形式且词义有所不同)有{{m|en|cuss}}←{{m|en|curse}}、{{m|en|gash}}←{{m|en|garsh}}、{{m|en|bass||鲈鱼}}←{{m|en|barse}}、{{m|en|bust}}←{{m|en|burst}}、{{m|en|passel}}←{{m|en|parcel}},参见[[:en:Category:English terms with assimilation of historic /ɹ/]]。 ====形容词==== {{en-adj|-}} # {{lb|en|粗俗|俚语}} [[差劲]]的,[[不行]]的,[[垃圾]]的 #* {{quote-web|en|url=https://www.dallasnews.com/sports/2019/02/06/former-texas-am-qb-nick-starkel-breaks-down-old-twitter-beef-with-tate-martell/|work=Dallas Morning News|passage=On a recent episode of "The Justin Dunning Podcast," Starkel shared his thoughts on Martell, a former Ohio State quarterback, saying "he's '''ass''' my dude" in reference to Starkel.|title=Former Texas A&M QB Nick Starkel breaks down old Twitter beef with Tate Martell|date=2019-02-05|author=Alex Miller}} #* {{quote-web|en|url=https://musketfire.com/2021/02/21/patriots-cam-newton-exchange-teenager-video/|work=Fansided|passage=For some reason, the teenager thought it’d be a good idea to criticize Newton and say he's "'''ass'''" and that he’s "about to be poor" because he's a free agent.|title=Patriots: Cam Newton getting disrespected by a teenager is everything that’s wrong with society|date=2021-02-21|author=Thomas Carannante}} #* {{quote-web|en|url=https://www.espn.com/nfl/story/_/id/32473036/what-learned-arizona-cardinals-quarterback-kyler-murray-watching-twitch|work=ESPN|passage="You're so '''ass'''," Murray says to another player.|title=What we learned about Arizona Cardinals quarterback Kyler Murray by watching him on Twitch|date=2021-10-28|author=Josh Weinfuss}} ====名词==== {{en-noun|~}} # {{senseid|en|屁股}} {{lb|en|粗俗|俚语|可数|and|不可数}} [[屁股]] #: {{syn|en|Thesaurus:buttocks}} # {{lb|en|粗俗|俚语|可数|and|不可数}} [[屁眼]] #* {{RQ:William Burroughs Naked Lunch|page=81|passage=Train compartment: two sick young junkies on their way to Lexington tear their pants down in convulsions of lust. One of them soaps his cock and works it up the other's '''ass''' with a corkscrew motion.}} # {{lb|en|粗俗|俚语|人的[[物化]]|不可数}} [[性交]][[对象]] {{gl|粗俗地强调了其身体而非其人格}} #: {{syn|en|poontang|poon|punani|pussy|tail|tang|Thesaurus:copulation}} #: {{ux|en|I'm going to go down to the bar and try to get me some '''ass'''.|我准备去酒吧找个'''屄'''来肏。}} #* {{quote-song|en|author=w:Joni Mitchell|year=1971|album=Blue|title=Blue|passage=Acid, booze, and '''ass''' / Needles, guns, and grass}} # {{lb|en|粗俗|俚语|不可数}} [[讨厌]]的东西,[[差劲]]的东西,[[垃圾]] #: {{uxi|en|I feel like '''ass''' today.|今天真他妈'''不爽'''。}} #: {{uxi|en|This room smells like '''ass'''.|这房间'''臭死了'''。}} #: {{uxi|en|What a bunch of '''ass'''.|这都什么'''乱七八糟'''的。}} # {{senseid|en|自己}} {{lb|en|粗俗|俚语|转喻意|人的[[物化]]|可数}} [[家伙]],[[人]] {{gl|能指代自己。可指代身体,安全,或者比喻性地指代工作,将来等}} #: {{cot|en|{{l|en|face}}|{{l|en|hide}}}} #: {{ux|en|Get your lazy '''ass''' out of bed!|赶紧起床你这个懒狗!}} #: {{ux|en|We risk our '''asses''' out there every day.|我们每天都冒生命危险。}} #: {{ux|en|I'ma get medieval on your '''ass'''!|看我不好好修理'''你'''一顿!}} =====用法说明===== * 当使用转喻意,其给整个句子带来负面色彩,带有恼怒的语气: ** “{{lang|en|he has trouble getting his ass up in the morning}}”比“{{lang|en|he has trouble getting up in the morning}}”语气更重,更带负面色彩。 * 不一定表示对被指代人的不赞成: ** “{{lang|en|And who do you think has to clean this mess up? My ass does!}}”(“你觉得是谁要来擦屁股?是他妈的老子!”这句话没有体现对自己的不赞同,而表示对搞砸的人的不赞同) *** (可能会体现一定的厌烦) * 这一用法粗俗,因此仅限于非正式语域,其用于正式上下文中有一定的冒犯意。 * 其词义的内涵在于通过使用身体的一部分转喻整个人,来物化一个人(甚至包括指自己的时候),暗中强调了其身体而非其人格(亦从该观点对比{{m|en|hide|id=self, metonymically|watch his hide|看好他,保护好他}}、{{m|en|face|id=self, metonymically|show his face|露面}}、{{m|en|whatshisface#Etymology|what's-his-face|无名氏}}、{{m|en|meatbag}}或{{m|en|crackhead}})。 * 其变格形式在语法上有代词功能: ** {{m|en|my ass}} = {{m|en|I}}、{{m|en|me}}、{{m|en|myself}} ** {{m|en|your ass}} = {{m|en|you}}、{{m|en|yourself}} ** his ass = {{m|en|he}}、{{m|en|him}}、{{m|en|himself}} ** her ass = {{m|en|she}}、{{m|en|her}}、{{m|en|herself}} ** your asses = {{m|en|y'all}}、{{m|en|y'all}}、{{m|en|yourselves}} ** their asses = {{m|en|they}}、{{m|en|them}}、{{m|en|themselves}} =====衍生词汇===== {{der3|en |assage |[[ass-backwards]], [[ass backward]], [[ass-backward]] |ass bandit |[[ass clown]], [[assclown]] |ass crack |assfuck |assgasm |assgrab |asshat |[[asshole]], [[ass hole]] |asshood |ass in a sling |ass kicking |ass kissing |assle |ass-licker |assmonkey |ass over teakettle |assrun |bare-assed |big-ass |blow it out one's ass |bust ass |bust ass cold |bust one's ass |[[dumbass]], [[dumb ass]], [[dumb-ass]] |[[fatass]], [[fat-ass]] |get one's ass in gear |give a rat's ass |[[half-assed]], [[half-ass]], [[half ass]] |[[hardass]], [[hard-ass]], [[hard-assed]] |haul ass |her ass |his ass |horse's ass |horseshoe up one's ass |[[kick ass]], [[kick-ass]], [[kickass]] |[[kiss ass]], [[kiss-ass]]|kiss my ass |kiss one's ass goodbye|know one's ass from a hole in the ground |laugh one's ass off |my ass |pain in the ass |piece of ass |pop a cap in someone's ass |put one's ass on the line |quarter-assed |shake one's ass |[[smart ass]], [[smart-ass]] |[[someone's ass off]], [[one's ass off]] |stick up one's ass |take it up the ass |their ass |their asses |whoop ass |[[wiseass]], [[wise-ass]] |[[work someone's ass off]], [[work one's ass off]] |your ass |your asses |piss out one's ass|Teck's ass|Tex-ass|ass backwards|ass beating|ass breath|ass call|ass catch|ass cheeks|ass crack of dawn|ass eating|ass floss|ass guard|ass juice|ass kisser|ass licker|ass pounding|ass pull|ass sucker|ass to mouth|ass-breath|ass-kicking|ass-kisser|ass-kissing|ass-licking|ass-pull|ass-rape|bad ass|bad-ass|bee up one's ass|bet one's ass|big ass|bitch-ass|bite my ass|bite my shiny metal ass|blow smoke up someone's ass|bomb-ass|break ass|bubble ass|bug up one's ass|bust a cap in someone's ass|bust someone's ass|candy-ass|cat's ass|cottage cheese ass|cover someone's ass|cracker-ass|crazy-ass|die in the ass|drag ass|duck's ass|eat ass|eating ass|fake-ass|fly-ass|gay-ass|get off one's ass|get one's ass handed to one|get one's ass into gear|get up someone's ass|gnat's ass|grab ass|grab-ass|grassy ass|grown-ass|have one's ass handed to one|have one's head up one's ass|he-ass|jack-ass|jenny-ass|jerk ass|jerk-ass|jive-ass|kick ass and take names|kick someone's ass|kick up the ass|kiss someone's ass|know one's ass from one's elbow|know the difference between one's ass and a hole in the ground|know the difference between one's ass and one's elbow|lard-ass|lazy ass|lazy-ass|lick someone's ass|light someone's ass up|like ass|make an ass of|no-good ass|one's ass is grass|open a can of whoop ass|open up a can of whoop ass|out the ass|pain in one's ass|pickle up one's ass|piss out of one's ass|pole up one's ass|pull out of one's ass|punk-ass|put foot to ass|put one's foot in someone's ass|put one's foot up someone's ass|raggedy-ass|ride someone's ass|rip ass|sad ass|sell one's ass|she-ass|shit ass|shitty-ass|short-ass|shove it up your ass|show one's ass|sick ass|sick-ass|sit on one's ass|sit one's ass down|sketch-ass|slap my ass and call me Judy|slap my ass and call me Sally|stank-ass|strange-ass|suck ass|suck-ass|swamp ass|take one's tongue out of someone's ass|talk out of one's ass|talk out one's ass|talk through one's ass|think the sun shines out of someone's ass|tight as a duck's ass|tits and ass|up one's own ass|up the ass|up to one's ass in alligators|watch one's ass|weird-ass|whoop-ass|with one's thumbs up one's ass|assface|assbutt|buttass|assfucker|asswipe|assholery|asshattery|assclownery|assholic|assholism|assholedom |assholey|asshatty|assholehood|assbag|assholio |assbucket |lameass|assholeness|assfuck |assfucker|sorry ass|stick in one’s ass|asshead|assnose|half-ass|half-arsed|assbrain}} ====助词==== {{head|en|助詞}} # {{synonym of|en|-ass|pos=形容词强调助词}} #: {{ux|en|That was one big '''ass''' fish!|那鱼好'''他妈'''大!}} #: {{ux|en|That's an expensive '''ass''' car!|那辆车真'''他妈'''贵!}} ===延伸阅读=== * {{cite-journal|author=Archibald A. Hill|year=1940|title=Early Loss of [r] before Dentals|journal=PMLA|volume=55|issue=2|pages=308-359|doi=10.2307/458450}} * {{cite-journal|author=L. Sprague de Camp|authorlink=L. Sprague de Camp|year=1971|title=Arse and ass|journal=Journal of the International Phonetic Association|volume=1|issue=2|pages=79–80|doi=10.1017/S0025100300000281}} ===异序词=== * {{anagrams|en|a=ass|SAS|SSA|Sas}} {{catlangname|en|詈語|3字母詞}} {{topics|en|臀部|馬科動物|人}} ==德语== ===动词=== {{head|de|動詞變位形式}} # {{standard spelling of|de|from=SLDE|aß}} ==拉特加莱语== ===词源 1=== 源自{{inh|ltg|ine-bsl-pro|*aśís}}。同源词有{{cog|lv|ass}}和{{cog|lt|ašis}}。 ====发音==== * {{ltg-IPA|ass'}} * {{hyph|ltg|ass}} ====名词==== {{ltg-noun|f|aseite}} # [[轴]] =====变格===== {{ltg-decl-noun/6|ass|oss}} ===词源 2=== {{nonlemma}} ====发音==== * {{ltg-IPA}} * {{hyph|ltg|ass}} ====分词==== {{ltg-part|PrOP}} # {{inflection of|ltg|byut||present|oblique|participle}} ===参考资料=== * {{R:ltg:Bukss:1973|page=131}} ==拉脱维亚语== [[File:Train axle.jpg|200px|thumb|Vagona ass]] [[File:Orienteta taisne.JPG|200px|thumb|Ass]] ===词源 1=== 源自{{inh|lv|ine-bsl-pro|*aśís}},源自{{der|lv|ine-pro|*h₂eḱs-}}。原为i/n-词根,其在波罗的海地区变为了i-词根。<ref name="LEV">{{R:lv:LEV}}。</ref> ====发音==== * {{lv-IPA|as}} {{audio|lv|lv-riga-ass.ogg}} ====名词==== {{lv-noun|f|6th}} # [[轴]] #: {{ux|lv|ratu '''ass'''|'''轴'''承|inline=1}} #: {{ux|lv|vagona '''ass'''|车'''轴'''|inline=1}} #: {{ux|lv|motocikla pakaļējā riteņa '''ass'''|摩托车的后车'''轴'''|inline=1}} # {{lb|lv|mathematics}} [[轴]] #: {{ux|lv|simetrijas, rotācijas '''ass'''|对称'''轴''',旋转'''轴'''|inline=1}} #: {{ux|lv|zemes griešanās '''ass'''|地球的旋转'''轴'''|inline=1}} #: {{ux|lv|koordinātu '''asis'''|坐标'''轴'''|inline=1}} #: {{ux|lv|abscisu, ordinātu '''ass'''|x-、y-'''轴'''|inline=1}} =====变格===== {{lv-decl-noun|a|s|6th||s|s|extrawidth=-60}} ===词源 2=== 与{{m|lv|ass||轴}}同源,原为对应一个人伸展手臂时的长度的度量单位(对比{{cog|ru|са́жень}})。<ref name="LEV"/> ====发音==== * {{lv-IPA|as}} {{audio|lv|lv-riga-ass.ogg}} ====名词==== {{lv-noun|f|6th}} # [[俄丈]] {{gl|俄罗斯旧制长度计量单位,约等于2.13[[米]]}} #: {{ux|lv|jūras '''ass'''|'''英寻'''(约1.83米)|inline=1}} # [[俄丈]] {{gl|俄罗斯测量木材的旧体积计量单位,约2-4[[立方米]]}} #: {{ux|lv|divas '''asis''' malkas|2'''俄丈'''木材|inline=1}} =====变格===== {{lv-decl-noun|a|s|6th||s|s|extrawidth=-60}} ===词源 3=== 源自早期形式{{m|lv|*asus}},源自{{inh|lv|bat-pro|*ašus}},源自{{der|lv|ine-pro|*h₂eḱ-||尖}}。带了附加后缀''*-ro'',同一词根亦产生了{{cog|ine-bsl-pro|*aśras||尖}},派生出拉脱维亚语方言词{{m|lv|asrs}}以及{{cog|lt|-}}同源词{{m|lt|aštrùs}},方言词{{m|lt|ašrùs}}。该词根还派生出带''ak''而非''as''的词(比如{{m|lv|akmens||石头}}、{{m|lv|akots||芒刺}}),可能是原始印欧语的方言变体产生的。拉脱维亚语中,先前的''u''-词根形容词(如{{m|lv|*asus}})被合并到了其他类别下,{{m|lv|*asus}}产生出了''o''-词根和''yo-''词根变体,它们后面成为了独立单词,{{m|lv|ass}}和{{m|lv|ašs}},且语义上有差异(比如亦对比{{m|lv|plats}}和{{m|lv|plašs}}或{{m|lv|dobs}}和{{m|lv|dobjš}})。其他同源词包括{{cog|cu|остръ|sc=Cyrs}}、{{cog|ru|о́стрый}}、{{cog|be|во́стры|sc=Cyrl}}、{{cog|uk|о́стрий|sc=Cyrl}}、{{m|uk|го́стрий|sc=Cyrl}}、{{cog|bg|о́стър|sc=Cyrl}}、{{cog|cs|ostrý}}、{{cog|pl|ostry}}、{{cog|gem-pro|*agjō}}({{cog|goh|ecka}}、{{m|goh|egga||边缘,尖角,尖端,刀刃}}、{{cog|de|Ecke}}、{{cog|sa|अश्रि|अश्रिः|角落,尖角,刃|tr=áśriḥ|sc=Deva}}、{{cog|grc|ἀκή||尖端}}、{{m|grc|ἄκρος||尖的}}、{{cog|la|ācer||尖的}}、{{m|la|aciēs||锋利;刀刃}}。<ref name="LEV"/> ====发音==== * {{lv-IPA|as}} {{audio|lv|lv-riga-ass.ogg}} ====形容词==== {{lv-adj|as}} # [[尖锐]]的,[[锋利]]的 #: {{ux|lv|'''ass''' nazis, zāģis, cirvis|'''锐利'''的刀,锯,斧|inline=1}} #: {{ux|lv|'''ass''' īlens, ilknis|'''锐利'''的锥子,獠牙|inline=1}} #: {{ux|lv|'''asa''' adata|'''尖'''针|inline=1}} #: {{ux|lv|'''asi''' ragi, ilkņi|'''尖'''角,'''尖'''牙|inline=1}} #: {{ux|lv|'''asas''' kalnu galotnes|'''陡峭'''的山顶|inline=1}} #: {{ux|lv|'''ass''' zīmulis|'''尖锐'''的铅笔|inline=1}} # (指身体部位或字体)尖的 #: {{ux|lv|'''asi''' elkoņi|'''弯'''的手肘|inline=1}} #: {{ux|lv|'''asi''' vaigu kauli|'''尖锐'''的颧骨|inline=1}} #: {{ux|lv|'''asas''' burtu formas rokrakstā||inline=1}} # {{lb|lv|指植物}} [[尖]]的,有尖刺的 #: {{ux|lv|'''ass''' dadzis, paeglis, grīslis|'''尖'''蓟,'''尖锐'''的刺柏,'''尖锐'''的莎草|inline=1}} #: {{ux|lv|'''asa''' zāle, nātre|'''尖'''树叶,'''尖锐'''的荨麻|inline=1}} # {{lb|lv|指布料,皮肤等}} [[粗糙]]的 #: {{ux|lv|'''asa''' sejas āda|'''粗糙'''的面部肌肤|inline=1}} #: {{ux|lv|'''ass''' linu dvielis|'''粗'''亚麻制的毛巾|inline=1}} # [[刺激]][[感官]]的 {{gl|如辛辣等}} #: {{ux|lv|'''asa''' mērce|'''辣'''酱|inline=1}} #: {{ux|lv|'''asa''' dūmu smaka|'''刺鼻'''的烟雾气味|inline=1}} #: {{ux|lv|'''ass''' ož pēc hlora|氯的'''刺鼻'''气味|inline=1}} #: {{ux|lv|'''ass''' vējš|'''刺鼻'''的风|inline=1}} #: {{ux|lv|'''asas''' sāpes|'''尖锐'''的疼痛|inline=1}} #: {{ux|lv|'''ass''' klepus|'''重重'''的咳嗽|inline=1}} # [[严厉]]的,[[不留情面]]的 #: {{ux|lv|'''asā''' balss|'''严厉'''的语气|inline=1}} #: {{ux|lv|runāt '''asā''' tonī|用'''严厉'''的语气说话|inline=1}} #: {{ux|lv|'''ass''' sarkasms|'''尖酸'''的讽刺|inline=1}} #: {{ux|lv|'''ass''' pārmetumi|'''严厉'''的批评|inline=1}} #: {{ux|lv|'''asa''' ķilda|'''凶猛'''的争吵|inline=1}} #: {{ux|lv|'''asa''' mēle|'''尖酸刻薄'''的话语|inline=1}} # [[清晰]]的,[[鲜明]]的 #: {{ux|lv|'''asas''' kontūras|'''鲜活'''的形象|inline=1}} #: {{ux|lv|'''asi''' sejas vaibsti|'''鲜明'''的面部特征|inline=1}} #: {{ux|lv|zīmēt '''asām''' līnijām|用'''清晰'''的线条作画|inline=1}} # {{lb|lv|指问题}} [[尖锐]]的,[[重要]]的,[[严重]]的 #: {{ux|lv|'''asa''' problēma|'''严重'''的问题|inline=1}} # [[锐利]]的,[[敏锐]]的 #: {{ux|lv|'''asa''' redze|'''敏锐'''的视觉|inline=1}} #: {{ux|lv|'''ass''' prāts|'''清晰'''的头脑|inline=1}} #: {{ux|lv|'''asa''' uztvere|'''敏锐'''的觉察力|inline=1}} =====变格===== {{lv-decl-adj|as|extrawidth=-100}} =====近义词===== * {{sense|尖锐}} {{l|lv|skaudrs}} * {{sense|严厉,刻薄}} {{l|lv|raupjš}}、{{l|lv|rupjš}}、{{l|lv|negluds}}、{{l|lv|skarbs}} =====反义词===== * {{sense|尖锐}} {{l|lv|truls}}、{{l|lv|neass}} * {{sense|严厉刻薄}} {{l|lv|gluds}}、{{l|lv|maigs}}、{{l|lv|mīksts}} =====衍生词汇===== * {{l|lv|asums}} ===参考资料=== <references /> {{topics|lv|簡單機械|觸覺|計量單位}} ==卢森堡语== ===动词=== {{head|lb|動詞變位形式}} # {{infl of|lb|sinn||3|s|pres}} ==曼岛语== ===词源=== 源自{{inh|gv|sga|ass}},{{m|sga|a|a|id=out of|t=自,离}}的阳性和中性单数形式,源自{{inh|gv|cel-pro|*exs}},源自{{inh|gv|ine-pro|*h₁eǵʰs||来自}}。对比{{cog|ga|as}}。 ===副词=== {{head|gv|副詞}} # [[出]] ===介词=== {{head|gv|介詞}} # 从...中 ====屈折==== {{gv-prep-infl |1sg=assym |2sg=assyd |3sgm=ass |3sgmem=assyn |3sgf=assjee |1pl=assdooin |2pl=assdiu |3pl=assdaue }} ====衍生词汇==== * {{l|gv|ass y cheer}} * {{l|gv|ass y hene}} ===代词=== {{head|gv|前置格代詞}} # {{inflection of|gv|ec||1|p}} ====衍生词汇==== * {{l|gv|assyn}} {{qualifier|强调}} ==中古英语== ===名词=== {{head|enm|名詞}} # {{alternative form of|enm|asshe|t=烧掉的东西}} ==书面挪威语== ===其他形式=== * {{alter|nb|Ass}} {{qual|也可首字母大写}} ===名词=== {{nb-noun-m1}} # {{lb|nb|music}} [[A♭]] ==新挪威语== ===其他形式=== * {{alter|nn|Ass}} {{qual|也可首字母大写}} ===名词=== {{nn-noun-m1}} # {{lb|nn|music}} [[A♭]] ==古爱尔兰语== ===其他形式=== * {{l|sga|as}} * {{l|sga|es}} ===发音=== * {{IPA|sga|/as/}} ===代词=== {{head|sga|前置格代詞}} # {{inflection of|sga|a||3|s|m}} ==瑞典语== ===名词=== {{sv-noun|n}} # {{lb|sv|music}} [[A♭]] # [[挂号信]];{{abbreviation of|sv|[[assurerad]] ([[försändelse]])}} #:{{coord|sv|rek}} ====变格==== {{sv-infl-noun-n-zero|genitive=}} ===异序词=== * {{anagrams|sv|a=ass|s.a.s.|sas}} {{topics|sv|郵政}} ==里菲安语== ===其他形式=== * {{alter|rif|as}} ===词源=== {{rfe|rif}} ===名词=== {{rif-noun|m|pl=ussan}} # [[天]],一天 #: {{syn|rif|nnhar}} # [[白天]] #: {{syn|rif|azir}} ====变格==== {{rif-decl-noun|wass|ussan|wussan}} ====衍生词汇==== * {{l|rif|assa|t=今天}} {{c|rif|一天裡的時刻}} 47ud7yibdao8e686sfobq38owlmov5s 9813789 9813788 2026-06-15T14:04:47Z TongcyDai 53191 9813789 wikitext text/x-wiki {{also|Appendix:"ass"的變體}} ==跨語言== ===符號=== {{mul-symbol}} # {{ISO 639|3}} ===參見=== * {{langcat}} ==英语== {{wikipedia|lang=en}} ===发音=== * {{enPR|ăs}}, {{IPA|en|/æs/}} * {{audio|en|LL-Q1860 (eng)-Back ache-ass.wav|a=UK}} * {{audio|en|en-us-ass.ogg|a=US}} * {{rhymes|en|æs|s=1}} ===词源 1=== 源自{{inh|en|enm|asse}},源自{{inh|en|ang|assa}},逆构自{{m|ang|assen|t=母驴}},源自{{der|en|cel}}(对比{{cog|sga|asan}}、{{cog|oco|asen}}),源自{{der|en|la|asinus}}。取代了{{cog|ang|esol}},其源自{{cog|gmw-pro|*asil}},亦借自同一个拉丁语词。 ====名词==== {{en-noun}} [[File:Somali Wild Ass.JPG|thumb|Somali wild '''ass''']] # [[驴]] #: {{hyper|en|equine#名詞|<|equid#名詞|<|mammal#名詞|<|animal#名詞|<|creature#名詞|critter#Noun}} #: {{hypo|en|donkey#名詞<qq:也視作近義詞>|onager#名詞|wild ass#名詞}} #* {{RQ:KJV|1 Samuel|16|20|passage=And Iesse tooke an '''asse''' laden with bread, and a bottle of wine, and a kid, and sent them by Dauid his sonne vnto Saul.}} #* {{RQ:Browne Pseudodoxia Epidemica|edition=2nd|chapter=Of the Same [''i.e.'', the Blacknesse of Negroes]|page=282|passage=Thus the '''Aſſe''' having a peculiar mark of a croſſe made by a black liſt down his back, and another athwart, or at right angles down his ſhoulders; common opinion aſcribes this figure unto a peculiar ſignation; ſince that beaſt had the honour to bear our Saviour on his back.}} #* {{quote-book|1=en|year=1972|author=Parliament of the United Kingdom|title=Road Traffic Act 1972|chapter=Part I, section 20(3)|url=https://www.legislation.gov.uk/ukpga/1972/20/pdfs/ukpga_19720020_en.pdf|page=14|text=In this section "animal" means any horse, cattle, '''ass''', mule, sheep, pig, goat or dog.}} # {{lb|en|俚语|较为|_|粗俗}} [[蠢货]] #: {{syn|en|fool|idiot}} #: {{ux|en|That new kid left the cap off the syrup bottle again! What an '''ass'''.|那个新来的小孩又没盖糖浆瓶的盖子,真是'''脑袋有点问题'''。}} #* {{RQ:Doyle Lost World|passage=I had sprung to my feet. I was speaking, and yet I had prepared no words. Tarp Henry, my companion, was plucking at my skirts and I heard him whispering, "Sit down, Malone! Don't make a public '''ass''' of yourself."}} # {{lb|en|printing|俚语|弃用}} [[排版]][[工人]] #: {{syn|en|compositor}} #* {{quote-book|en|year=1841|author=[[w:en:William Savage (printer)|William Savage]]|title=Dictionary of the Art of Printing|page=24|url=https://archive.org/details/bub_gb_S_s1AQAAMAAJ/page/24/mode/2up|text=Sometimes by way of joke, and sometimes by way of irritation, compositors are called '''Asses''' by the pressmen.}} =====衍生词汇===== {{der3|en|Buridan's ass|the law is an ass|wild ass|zebrass}} =====相关词汇===== * {{l|en|asinine}} ===词源 2=== {{m|en|arse}}的北美变体。最终源自{{inh|en|enm|ars}}、{{m|enm|ers}},源自{{inh|en|ang|ærs}}、{{m|ang|ears}},源自{{inh|en|gmw-pro|*ars}},源自{{inh|en|gem-pro|*arsaz}}(对比{{cog|goh|ars}}({{cog|de|Arsch}})、{{cog|non|ars}}、{{cog|ofs|ers}}),源自{{inh|en|ine-pro|*h₃érsos}}(对比{{cog|grc|ὄρρος}})。 有不少人认为该词曾为委婉词,但它其实原是为了反映舌尖音(尤其是{{IPAchar|/s/}})前{{IPAchar|/ɹ/}}被合并的[[发音拼写]](更早期的形式{{m|en|arse}}仍通用于英国、澳大利亚、新西兰等地),该现象在{{w|中古英语}}起的非标准口语中就有出现。该现象与之后出现R音脱落不同,因为{{IPAchar|/ɹ/}}在能影响其前驱音之前就已经脱落。该现象影响到的其他词(部分词保留了两种形式且词义有所不同)有{{m|en|cuss}}←{{m|en|curse}}、{{m|en|gash}}←{{m|en|garsh}}、{{m|en|bass||鲈鱼}}←{{m|en|barse}}、{{m|en|bust}}←{{m|en|burst}}、{{m|en|passel}}←{{m|en|parcel}},参见[[:en:Category:English terms with assimilation of historic /ɹ/]]。 ====形容词==== {{en-adj|-}} # {{lb|en|粗俗|俚语}} [[差劲]]的,[[不行]]的,[[垃圾]]的 #* {{quote-web|en|url=https://www.dallasnews.com/sports/2019/02/06/former-texas-am-qb-nick-starkel-breaks-down-old-twitter-beef-with-tate-martell/|work=Dallas Morning News|passage=On a recent episode of "The Justin Dunning Podcast," Starkel shared his thoughts on Martell, a former Ohio State quarterback, saying "he's '''ass''' my dude" in reference to Starkel.|title=Former Texas A&M QB Nick Starkel breaks down old Twitter beef with Tate Martell|date=2019-02-05|author=Alex Miller}} #* {{quote-web|en|url=https://musketfire.com/2021/02/21/patriots-cam-newton-exchange-teenager-video/|work=Fansided|passage=For some reason, the teenager thought it’d be a good idea to criticize Newton and say he's "'''ass'''" and that he’s "about to be poor" because he's a free agent.|title=Patriots: Cam Newton getting disrespected by a teenager is everything that’s wrong with society|date=2021-02-21|author=Thomas Carannante}} #* {{quote-web|en|url=https://www.espn.com/nfl/story/_/id/32473036/what-learned-arizona-cardinals-quarterback-kyler-murray-watching-twitch|work=ESPN|passage="You're so '''ass'''," Murray says to another player.|title=What we learned about Arizona Cardinals quarterback Kyler Murray by watching him on Twitch|date=2021-10-28|author=Josh Weinfuss}} ====名词==== {{en-noun|~}} # {{senseid|en|屁股}} {{lb|en|粗俗|俚语|可数|and|不可数}} [[屁股]] #: {{syn|en|Thesaurus:buttocks}} # {{lb|en|粗俗|俚语|可数|and|不可数}} [[屁眼]] #* {{RQ:William Burroughs Naked Lunch|page=81|passage=Train compartment: two sick young junkies on their way to Lexington tear their pants down in convulsions of lust. One of them soaps his cock and works it up the other's '''ass''' with a corkscrew motion.}} # {{lb|en|粗俗|俚语|人的[[物化]]|不可数}} [[性交]][[对象]] {{gl|粗俗地强调了其身体而非其人格}} #: {{syn|en|poontang|poon|punani|pussy|tail|tang|Thesaurus:copulation}} #: {{ux|en|I'm going to go down to the bar and try to get me some '''ass'''.|我准备去酒吧找个'''屄'''来肏。}} #* {{quote-song|en|author=w:Joni Mitchell|year=1971|album=Blue|title=Blue|passage=Acid, booze, and '''ass''' / Needles, guns, and grass}} # {{lb|en|粗俗|俚语|不可数}} [[讨厌]]的东西,[[差劲]]的东西,[[垃圾]] #: {{uxi|en|I feel like '''ass''' today.|今天真他妈'''不爽'''。}} #: {{uxi|en|This room smells like '''ass'''.|这房间'''臭死了'''。}} #: {{uxi|en|What a bunch of '''ass'''.|这都什么'''乱七八糟'''的。}} # {{senseid|en|自己}} {{lb|en|粗俗|俚语|转喻意|人的[[物化]]|可数}} [[家伙]],[[人]] {{gl|能指代自己。可指代身体,安全,或者比喻性地指代工作,将来等}} #: {{cot|en|{{l|en|face}}|{{l|en|hide}}}} #: {{ux|en|Get your lazy '''ass''' out of bed!|赶紧起床你这个懒狗!}} #: {{ux|en|We risk our '''asses''' out there every day.|我们每天都冒生命危险。}} #: {{ux|en|I'ma get medieval on your '''ass'''!|看我不好好修理'''你'''一顿!}} =====用法说明===== * 当使用转喻意,其给整个句子带来负面色彩,带有恼怒的语气: ** “{{lang|en|he has trouble getting his ass up in the morning}}”比“{{lang|en|he has trouble getting up in the morning}}”语气更重,更带负面色彩。 * 不一定表示对被指代人的不赞成: ** “{{lang|en|And who do you think has to clean this mess up? My ass does!}}”(“你觉得是谁要来擦屁股?是他妈的老子!”这句话没有体现对自己的不赞同,而表示对搞砸的人的不赞同) *** (可能会体现一定的厌烦) * 这一用法粗俗,因此仅限于非正式语域,其用于正式上下文中有一定的冒犯意。 * 其词义的内涵在于通过使用身体的一部分转喻整个人,来物化一个人(甚至包括指自己的时候),暗中强调了其身体而非其人格(亦从该观点对比{{m|en|hide|id=self, metonymically|watch his hide|看好他,保护好他}}、{{m|en|face|id=self, metonymically|show his face|露面}}、{{m|en|whatshisface#Etymology|what's-his-face|无名氏}}、{{m|en|meatbag}}或{{m|en|crackhead}})。 * 其变格形式在语法上有代词功能: ** {{m|en|my ass}} = {{m|en|I}}、{{m|en|me}}、{{m|en|myself}} ** {{m|en|your ass}} = {{m|en|you}}、{{m|en|yourself}} ** his ass = {{m|en|he}}、{{m|en|him}}、{{m|en|himself}} ** her ass = {{m|en|she}}、{{m|en|her}}、{{m|en|herself}} ** your asses = {{m|en|y'all}}、{{m|en|y'all}}、{{m|en|yourselves}} ** their asses = {{m|en|they}}、{{m|en|them}}、{{m|en|themselves}} =====衍生词汇===== {{der3|en |assage |[[ass-backwards]], [[ass backward]], [[ass-backward]] |ass bandit |[[ass clown]], [[assclown]] |ass crack |assfuck |assgasm |assgrab |asshat |[[asshole]], [[ass hole]] |asshood |ass in a sling |ass kicking |ass kissing |assle |ass-licker |assmonkey |ass over teakettle |assrun |bare-assed |big-ass |blow it out one's ass |bust ass |bust ass cold |bust one's ass |[[dumbass]], [[dumb ass]], [[dumb-ass]] |[[fatass]], [[fat-ass]] |get one's ass in gear |give a rat's ass |[[half-assed]], [[half-ass]], [[half ass]] |[[hardass]], [[hard-ass]], [[hard-assed]] |haul ass |her ass |his ass |horse's ass |horseshoe up one's ass |[[kick ass]], [[kick-ass]], [[kickass]] |[[kiss ass]], [[kiss-ass]]|kiss my ass |kiss one's ass goodbye|know one's ass from a hole in the ground |laugh one's ass off |my ass |pain in the ass |piece of ass |pop a cap in someone's ass |put one's ass on the line |quarter-assed |shake one's ass |[[smart ass]], [[smart-ass]] |[[someone's ass off]], [[one's ass off]] |stick up one's ass |take it up the ass |their ass |their asses |whoop ass |[[wiseass]], [[wise-ass]] |[[work someone's ass off]], [[work one's ass off]] |your ass |your asses |piss out one's ass|Teck's ass|Tex-ass|ass backwards|ass beating|ass breath|ass call|ass catch|ass cheeks|ass crack of dawn|ass eating|ass floss|ass guard|ass juice|ass kisser|ass licker|ass pounding|ass pull|ass sucker|ass to mouth|ass-breath|ass-kicking|ass-kisser|ass-kissing|ass-licking|ass-pull|ass-rape|bad ass|bad-ass|bee up one's ass|bet one's ass|big ass|bitch-ass|bite my ass|bite my shiny metal ass|blow smoke up someone's ass|bomb-ass|break ass|bubble ass|bug up one's ass|bust a cap in someone's ass|bust someone's ass|candy-ass|cat's ass|cottage cheese ass|cover someone's ass|cracker-ass|crazy-ass|die in the ass|drag ass|duck's ass|eat ass|eating ass|fake-ass|fly-ass|gay-ass|get off one's ass|get one's ass handed to one|get one's ass into gear|get up someone's ass|gnat's ass|grab ass|grab-ass|grassy ass|grown-ass|have one's ass handed to one|have one's head up one's ass|he-ass|jack-ass|jenny-ass|jerk ass|jerk-ass|jive-ass|kick ass and take names|kick someone's ass|kick up the ass|kiss someone's ass|know one's ass from one's elbow|know the difference between one's ass and a hole in the ground|know the difference between one's ass and one's elbow|lard-ass|lazy ass|lazy-ass|lick someone's ass|light someone's ass up|like ass|make an ass of|no-good ass|one's ass is grass|open a can of whoop ass|open up a can of whoop ass|out the ass|pain in one's ass|pickle up one's ass|piss out of one's ass|pole up one's ass|pull out of one's ass|punk-ass|put foot to ass|put one's foot in someone's ass|put one's foot up someone's ass|raggedy-ass|ride someone's ass|rip ass|sad ass|sell one's ass|she-ass|shit ass|shitty-ass|short-ass|shove it up your ass|show one's ass|sick ass|sick-ass|sit on one's ass|sit one's ass down|sketch-ass|slap my ass and call me Judy|slap my ass and call me Sally|stank-ass|strange-ass|suck ass|suck-ass|swamp ass|take one's tongue out of someone's ass|talk out of one's ass|talk out one's ass|talk through one's ass|think the sun shines out of someone's ass|tight as a duck's ass|tits and ass|up one's own ass|up the ass|up to one's ass in alligators|watch one's ass|weird-ass|whoop-ass|with one's thumbs up one's ass|assface|assbutt|buttass|assfucker|asswipe|assholery|asshattery|assclownery|assholic|assholism|assholedom |assholey|asshatty|assholehood|assbag|assholio |assbucket |lameass|assholeness|assfuck |assfucker|sorry ass|stick in one’s ass|asshead|assnose|half-ass|half-arsed|assbrain}} ====助词==== {{head|en|助詞}} # {{synonym of|en|-ass|pos=形容词强调助词}} #: {{ux|en|That was one big '''ass''' fish!|那鱼好'''他妈'''大!}} #: {{ux|en|That's an expensive '''ass''' car!|那辆车真'''他妈'''贵!}} ===延伸阅读=== * {{cite-journal|author=Archibald A. Hill|year=1940|title=Early Loss of [r] before Dentals|journal=PMLA|volume=55|issue=2|pages=308-359|doi=10.2307/458450}} * {{cite-journal|author=L. Sprague de Camp|authorlink=L. Sprague de Camp|year=1971|title=Arse and ass|journal=Journal of the International Phonetic Association|volume=1|issue=2|pages=79–80|doi=10.1017/S0025100300000281}} ===异序词=== * {{anagrams|en|a=ass|SAS|SSA|Sas}} {{catlangname|en|詈語|3字母詞}} {{topics|en|臀部|馬科動物|人}} ==德语== ===动词=== {{head|de|動詞變位形式}} # {{standard spelling of|de|from=SLDE|aß}} ==拉特加莱语== ===词源 1=== 源自{{inh|ltg|ine-bsl-pro|*aśís}}。同源词有{{cog|lv|ass}}和{{cog|lt|ašis}}。 ====发音==== * {{ltg-IPA|ass'}} * {{hyph|ltg|ass}} ====名词==== {{ltg-noun|f|aseite}} # [[轴]] =====变格===== {{ltg-decl-noun/6|ass|oss}} ===词源 2=== {{nonlemma}} ====发音==== * {{ltg-IPA}} * {{hyph|ltg|ass}} ====分词==== {{ltg-part|PrOP}} # {{inflection of|ltg|byut||present|oblique|participle}} ===参考资料=== * {{R:ltg:Bukss:1973|page=131}} ==拉脱维亚语== [[File:Train axle.jpg|200px|thumb|Vagona ass]] [[File:Orienteta taisne.JPG|200px|thumb|Ass]] ===词源 1=== 源自{{inh|lv|ine-bsl-pro|*aśís}},源自{{der|lv|ine-pro|*h₂eḱs-}}。原为i/n-词根,其在波罗的海地区变为了i-词根。<ref name="LEV">{{R:lv:LEV}}。</ref> ====发音==== * {{lv-IPA|as}} {{audio|lv|lv-riga-ass.ogg}} ====名词==== {{lv-noun|f|6th}} # [[轴]] #: {{ux|lv|ratu '''ass'''|'''轴'''承|inline=1}} #: {{ux|lv|vagona '''ass'''|车'''轴'''|inline=1}} #: {{ux|lv|motocikla pakaļējā riteņa '''ass'''|摩托车的后车'''轴'''|inline=1}} # {{lb|lv|mathematics}} [[轴]] #: {{ux|lv|simetrijas, rotācijas '''ass'''|对称'''轴''',旋转'''轴'''|inline=1}} #: {{ux|lv|zemes griešanās '''ass'''|地球的旋转'''轴'''|inline=1}} #: {{ux|lv|koordinātu '''asis'''|坐标'''轴'''|inline=1}} #: {{ux|lv|abscisu, ordinātu '''ass'''|x-、y-'''轴'''|inline=1}} =====变格===== {{lv-decl-noun|a|s|6th||s|s|extrawidth=-60}} ===词源 2=== 与{{m|lv|ass||轴}}同源,原为对应一个人伸展手臂时的长度的度量单位(对比{{cog|ru|са́жень}})。<ref name="LEV"/> ====发音==== * {{lv-IPA|as}} {{audio|lv|lv-riga-ass.ogg}} ====名词==== {{lv-noun|f|6th}} # [[俄丈]] {{gl|俄罗斯旧制长度计量单位,约等于2.13[[米]]}} #: {{ux|lv|jūras '''ass'''|'''英寻'''(约1.83米)|inline=1}} # [[俄丈]] {{gl|俄罗斯测量木材的旧体积计量单位,约2-4[[立方米]]}} #: {{ux|lv|divas '''asis''' malkas|2'''俄丈'''木材|inline=1}} =====变格===== {{lv-decl-noun|a|s|6th||s|s|extrawidth=-60}} ===词源 3=== 源自早期形式{{m|lv|*asus}},源自{{inh|lv|bat-pro|*ašus}},源自{{der|lv|ine-pro|*h₂eḱ-||尖}}。带了附加后缀''*-ro'',同一词根亦产生了{{cog|ine-bsl-pro|*aśras||尖}},派生出拉脱维亚语方言词{{m|lv|asrs}}以及{{cog|lt|-}}同源词{{m|lt|aštrùs}},方言词{{m|lt|ašrùs}}。该词根还派生出带''ak''而非''as''的词(比如{{m|lv|akmens||石头}}、{{m|lv|akots||芒刺}}),可能是原始印欧语的方言变体产生的。拉脱维亚语中,先前的''u''-词根形容词(如{{m|lv|*asus}})被合并到了其他类别下,{{m|lv|*asus}}产生出了''o''-词根和''yo-''词根变体,它们后面成为了独立单词,{{m|lv|ass}}和{{m|lv|ašs}},且语义上有差异(比如亦对比{{m|lv|plats}}和{{m|lv|plašs}}或{{m|lv|dobs}}和{{m|lv|dobjš}})。其他同源词包括{{cog|cu|остръ|sc=Cyrs}}、{{cog|ru|о́стрый}}、{{cog|be|во́стры|sc=Cyrl}}、{{cog|uk|о́стрий|sc=Cyrl}}、{{m|uk|го́стрий|sc=Cyrl}}、{{cog|bg|о́стър|sc=Cyrl}}、{{cog|cs|ostrý}}、{{cog|pl|ostry}}、{{cog|gem-pro|*agjō}}({{cog|goh|ecka}}、{{m|goh|egga||边缘,尖角,尖端,刀刃}}、{{cog|de|Ecke}}、{{cog|sa|अश्रि|अश्रिः|角落,尖角,刃|tr=áśriḥ|sc=Deva}}、{{cog|grc|ἀκή||尖端}}、{{m|grc|ἄκρος||尖的}}、{{cog|la|ācer||尖的}}、{{m|la|aciēs||锋利;刀刃}}。<ref name="LEV"/> ====发音==== * {{lv-IPA|as}} {{audio|lv|lv-riga-ass.ogg}} ====形容词==== {{lv-adj|as}} # [[尖锐]]的,[[锋利]]的 #: {{ux|lv|'''ass''' nazis, zāģis, cirvis|'''锐利'''的刀,锯,斧|inline=1}} #: {{ux|lv|'''ass''' īlens, ilknis|'''锐利'''的锥子,獠牙|inline=1}} #: {{ux|lv|'''asa''' adata|'''尖'''针|inline=1}} #: {{ux|lv|'''asi''' ragi, ilkņi|'''尖'''角,'''尖'''牙|inline=1}} #: {{ux|lv|'''asas''' kalnu galotnes|'''陡峭'''的山顶|inline=1}} #: {{ux|lv|'''ass''' zīmulis|'''尖锐'''的铅笔|inline=1}} # (指身体部位或字体)尖的 #: {{ux|lv|'''asi''' elkoņi|'''弯'''的手肘|inline=1}} #: {{ux|lv|'''asi''' vaigu kauli|'''尖锐'''的颧骨|inline=1}} #: {{ux|lv|'''asas''' burtu formas rokrakstā||inline=1}} # {{lb|lv|指植物}} [[尖]]的,有尖刺的 #: {{ux|lv|'''ass''' dadzis, paeglis, grīslis|'''尖'''蓟,'''尖锐'''的刺柏,'''尖锐'''的莎草|inline=1}} #: {{ux|lv|'''asa''' zāle, nātre|'''尖'''树叶,'''尖锐'''的荨麻|inline=1}} # {{lb|lv|指布料,皮肤等}} [[粗糙]]的 #: {{ux|lv|'''asa''' sejas āda|'''粗糙'''的面部肌肤|inline=1}} #: {{ux|lv|'''ass''' linu dvielis|'''粗'''亚麻制的毛巾|inline=1}} # [[刺激]][[感官]]的 {{gl|如辛辣等}} #: {{ux|lv|'''asa''' mērce|'''辣'''酱|inline=1}} #: {{ux|lv|'''asa''' dūmu smaka|'''刺鼻'''的烟雾气味|inline=1}} #: {{ux|lv|'''ass''' ož pēc hlora|氯的'''刺鼻'''气味|inline=1}} #: {{ux|lv|'''ass''' vējš|'''刺鼻'''的风|inline=1}} #: {{ux|lv|'''asas''' sāpes|'''尖锐'''的疼痛|inline=1}} #: {{ux|lv|'''ass''' klepus|'''重重'''的咳嗽|inline=1}} # [[严厉]]的,[[不留情面]]的 #: {{ux|lv|'''asā''' balss|'''严厉'''的语气|inline=1}} #: {{ux|lv|runāt '''asā''' tonī|用'''严厉'''的语气说话|inline=1}} #: {{ux|lv|'''ass''' sarkasms|'''尖酸'''的讽刺|inline=1}} #: {{ux|lv|'''ass''' pārmetumi|'''严厉'''的批评|inline=1}} #: {{ux|lv|'''asa''' ķilda|'''凶猛'''的争吵|inline=1}} #: {{ux|lv|'''asa''' mēle|'''尖酸刻薄'''的话语|inline=1}} # [[清晰]]的,[[鲜明]]的 #: {{ux|lv|'''asas''' kontūras|'''鲜活'''的形象|inline=1}} #: {{ux|lv|'''asi''' sejas vaibsti|'''鲜明'''的面部特征|inline=1}} #: {{ux|lv|zīmēt '''asām''' līnijām|用'''清晰'''的线条作画|inline=1}} # {{lb|lv|指问题}} [[尖锐]]的,[[重要]]的,[[严重]]的 #: {{ux|lv|'''asa''' problēma|'''严重'''的问题|inline=1}} # [[锐利]]的,[[敏锐]]的 #: {{ux|lv|'''asa''' redze|'''敏锐'''的视觉|inline=1}} #: {{ux|lv|'''ass''' prāts|'''清晰'''的头脑|inline=1}} #: {{ux|lv|'''asa''' uztvere|'''敏锐'''的觉察力|inline=1}} =====变格===== {{lv-decl-adj|as|extrawidth=-100}} =====近义词===== * {{sense|尖锐}} {{l|lv|skaudrs}} * {{sense|严厉,刻薄}} {{l|lv|raupjš}}、{{l|lv|rupjš}}、{{l|lv|negluds}}、{{l|lv|skarbs}} =====反义词===== * {{sense|尖锐}} {{l|lv|truls}}、{{l|lv|neass}} * {{sense|严厉刻薄}} {{l|lv|gluds}}、{{l|lv|maigs}}、{{l|lv|mīksts}} =====衍生词汇===== * {{l|lv|asums}} ===参考资料=== <references /> {{topics|lv|簡單機械|觸覺|計量單位}} ==卢森堡语== ===动词=== {{head|lb|動詞變位形式}} # {{infl of|lb|sinn||3|s|pres}} ==曼岛语== ===词源=== 源自{{inh|gv|sga|ass}},{{m|sga|a|a|id=out of|t=自,离}}的阳性和中性单数形式,源自{{inh|gv|cel-pro|*exs}},源自{{inh|gv|ine-pro|*h₁eǵʰs||来自}}。对比{{cog|ga|as}}。 ===副词=== {{head|gv|副詞}} # [[出]] ===介词=== {{head|gv|介詞}} # 从...中 ====屈折==== {{gv-prep-infl |1sg=assym |2sg=assyd |3sgm=ass |3sgmem=assyn |3sgf=assjee |1pl=assdooin |2pl=assdiu |3pl=assdaue }} ====衍生词汇==== * {{l|gv|ass y cheer}} * {{l|gv|ass y hene}} ===代词=== {{head|gv|前置格代詞}} # {{inflection of|gv|ec||1|p}} ====衍生词汇==== * {{l|gv|assyn}} {{qualifier|强调}} ==中古英语== ===名词=== {{head|enm|名詞}} # {{alternative form of|enm|asshe|t=烧掉的东西}} ==书面挪威语== ===其他形式=== * {{alter|nb|Ass}} {{qual|也可首字母大写}} ===名词=== {{nb-noun-m1}} # {{lb|nb|music}} [[A♭]] ==新挪威语== ===其他形式=== * {{alter|nn|Ass}} {{qual|也可首字母大写}} ===名词=== {{nn-noun-m1}} # {{lb|nn|music}} [[A♭]] ==古爱尔兰语== ===其他形式=== * {{l|sga|as}} * {{l|sga|es}} ===发音=== * {{IPA|sga|/as/}} ===代词=== {{head|sga|前置格代詞}} # {{inflection of|sga|a||3|s|m}} ==瑞典语== ===名词=== {{sv-noun|n}} # {{lb|sv|music}} [[A♭]] # [[挂号信]];{{abbreviation of|sv|[[assurerad]] ([[försändelse]])}} #:{{coord|sv|rek}} ====变格==== {{sv-infl-noun-n-zero|genitive=}} ===异序词=== * {{anagrams|sv|a=ass|s.a.s.|sas}} {{topics|sv|郵政}} ==里菲安语== ===其他形式=== * {{alter|rif|as}} ===词源=== {{rfe|rif}} ===名词=== {{rif-noun|m|pl=ussan}} # [[天]],一天 #: {{syn|rif|nnhar}} # [[白天]] #: {{syn|rif|azir}} ====变格==== {{rif-decl-noun|wass|ussan|wussan}} ====衍生词汇==== * {{l|rif|assa|t=今天}} {{c|rif|一天裡的時刻}} 2hok1h86u1h3ov4mp2oj40v2fno86mp Module:Category tree/entry maintenance 828 1365068 9813910 9655157 2026-06-15T20:03:00Z TongcyDai 53191 9813910 Scribunto text/plain local labels = {} local raw_categories = {} local raw_handlers = {} local functions_module = "Module:fun" local languages_module = "Module:languages" local scripts_module = "Module:scripts" local string_pattern_escape_module = "Module:string/patternEscape" local string_replacement_escape_module = "Module:string/replacementEscape" local table_module = "Module:table" local extend = require(table_module).extend local is_callable = require(functions_module).is_callable local pattern_escape = require(string_pattern_escape_module) local replacement_escape = require(string_replacement_escape_module) local unpack = unpack or table.unpack -- Lua 5.2 compatibility ----------------------------------------------------------------------------- -- -- -- LABELS -- -- -- ----------------------------------------------------------------------------- labels["詞條維護"] = { description = "正在被編輯者關注與改進的{{{langname}}}詞條,或含有{{{langname}}}術語的其他語言詞條。", parents = {{name = "{{{langcat}}}", raw = true}}, umbrella_parents = "分類", } labels["entries without References header"] = { description = "{{{langname}}} entries without a References header.", parents = {"詞條維護"}, can_be_empty = true, hidden = true, } labels["entries without References or Further reading header"] = { description = "{{{langname}}} entries without a References or Further reading header.", parents = {"詞條維護"}, can_be_empty = true, hidden = true, } labels["不存在的詞條"] = { description = "不符合[[Wiktionary:收錄標準|收錄標準]](CFI)的{{{langname}}}詞條。其使用{{tl|no entry|{{{langcode}}}}}模板加入本分類。", parents = {"詞條維護"}, umbrella_parents = "分類", } labels["有詞源樹的詞條"] = { description = "顯示由{{tl|etymon}}模板生成之詞源樹的{{{langname}}}詞條。", parents = {"詞條維護"}, can_be_empty = true, hidden = true, } labels["有詞源文字的詞條"] = { description = "顯示由{{tl|etymon}}模板生成之詞源文字的{{{langname}}}詞條。", parents = {"詞條維護"}, can_be_empty = true, hidden = true, } labels["有etymon的詞條"] = { description = "使用{{tl|etymon}}模板的{{{langname}}}詞條。", parents = {"詞條維護"}, can_be_empty = true, hidden = true, } labels["詞源文字停止語言不在鏈上的詞條"] = { description = "使用帶有{{para|text}}參數的{{tl|etymon}}模板設定為在某個語言停止,但該語言並未出現在生成的詞源鏈上的{{{langname}}}詞條。", parents = {"詞條維護"}, can_be_empty = true, hidden = true, } labels["引用缺失etymon的詞條"] = { description = "使用{{tl|etymon}}模板引用無法找到之etymon的{{{langname}}}詞條,原因可能是目標頁面不存在(紅鏈),或是該頁面沒有{{tl|etymon}}模板。", parents = {"詞條維護"}, can_be_empty = true, hidden = true, } labels["引用歧義etymon的詞條"] = { description = "使用{{tl|etymon}}模板引用etymon時未提供ID的{{{langname}}}詞條;當目標頁面包含多個{{tl|etymon}}模板時,需要提供ID來選擇正確的{{tl|etymon}}模板。", parents = {"詞條維護"}, can_be_empty = true, hidden = true, } labels["引用ID不符之etymon的詞條"] = { description = "使用{{tl|etymon}}模板且ID不符的{{{langname}}}詞條。例如:{{code|lang:entry<id:mismatched ID>}}。", parents = {"詞條維護"}, can_be_empty = true, hidden = true, } labels["引用缺失ID之多個etymon的詞條"] = { description = "使用{{tl|etymon}}模板連結至目標頁面的{{{langname}}}詞條,該頁面在同一語言下有多個{{tl|etymon}}模板,且其中至少一個模板沒有{{para|id}}。當多個{{tl|etymon}}模板共用一個語言章節時,每個模板都必須有不同的{{para|id}},以便連結與後代詞邏輯能夠區分它們。", parents = {"詞條維護"}, can_be_empty = true, hidden = true, } labels["引用缺失etymon之詞源章節的詞條"] = { description = "使用{{tl|etymon}}模板連結至目標頁面的{{{langname}}}詞條,該頁面在同一語言下有多個詞源章節,其中至少一個章節包含該語言的{{tl|etymon}}模板,而至少另一個詞源章節沒有。", parents = {"詞條維護"}, can_be_empty = true, hidden = true, } labels["引用缺少後代詞章節之etymon的詞條"] = { description = "使用{{tl|etymon}}模板引用etymon,但該etymon的來源詞條沒有「後代詞」章節的{{{langname}}}詞條。", parents = {"詞條維護"}, can_be_empty = true, hidden = true, } labels["引用未在後代詞章節列出本詞之etymon的詞條"] = { description = "使用{{tl|etymon}}模板引用etymon,且該etymon的來源詞條有「後代詞」章節,但未在其中列出本詞的{{{langname}}}詞條。", parents = {"詞條維護"}, can_be_empty = true, hidden = true, } labels["需修正desctree的派生語彙"] = { description = "{{{langname}}} descendants to be fixed in desctree.", parents = {"詞條維護"}, can_be_empty = true, hidden = true, } labels["詞請求"] = { description = "Entries with [[Template:der]], [[Template:inh]], [[Template:m]] and similar templates lacking the parameter for linking to {{{langname}}} terms.", parents = {"詞條維護"}, can_be_empty = true, hidden = true, } labels["紅鏈"] = { description = "指向尚未建立的{{{langname}}}詞條的連結。", parents = {"詞條維護"}, catfix = false, can_be_empty = true, hidden = true, } labels["紅鏈/l"] = { description = "使用模板<code>{{[[Template:l|l]]}}</code>產生的{{{langname}}}紅鏈。", parents = {"紅鏈"}, catfix = false, can_be_empty = true, hidden = true, } labels["紅鏈/m"] = { description = "使用模板<code>{{[[Template:m|m]]}}</code>產生的{{{langname}}}紅鏈。", parents = {"紅鏈"}, catfix = false, can_be_empty = true, hidden = true, } labels["紅鏈/t"] = { description = "使用模板<code>{{[[Template:t|t]]}}</code>產生的{{{langname}}}紅鏈。", parents = {"紅鏈"}, catfix = false, can_be_empty = true, hidden = true, } labels["紅鏈/t+"] = { description = "使用模板<code>{{[[Template:t+|t+]]}}</code>產生的{{{langname}}}紅鏈。", parents = {"紅鏈"}, catfix = false, can_be_empty = true, hidden = true, } labels["有國際音標的詞"] = { description = "以國際音標形式給出發音的{{{langname}}}詞彙。關於與本分類相關的請求,請見[[:Category:{{{langname}}}詞條發音請求]]。", parents = {"詞條維護"}, } labels["有音頻鏈接的詞"] = { description = "以音頻鏈接形式給出發音的{{{langname}}}詞彙。", parents = {"詞條維護"}, } labels["terms needing to be assigned to a sense"] = { description = "{{{langname}}} entries that have terms under headers such as \"Synonyms\" or \"Antonyms\" not assigned to a specific sense of the entry in which they appear. Use [[Template:syn]] or [[Template:ant]] to fix these.", parents = {"詞條維護"}, can_be_empty = true, hidden = true, } --[=[ labels["有變格表的"] = { description = "{{{langname}}} entries that contain inflection tables. For requests related to this category, see [[:Category:Requests for inflections in {{{langname}}} entries]].", parents = {"詞條維護"}, } ]=] labels["有詞語搭配的詞"] = { description = "含有用{{tl|co}}等模板添加詞語搭配的{{{langname}}}詞彙。", -- additional = "For requests related to this category, see [[:Category:Requests for collocations in {{{langname}}}]]. See also [[:Category:Requests for quotations in {{{langname}}}]] and [[:Category:Requests for example sentences in {{{langname}}}]].", parents = {"詞條維護"}, } labels["有使用例的詞"] = { description = "含有用{{tl|ux}}等模板添加詞語搭配的{{{langname}}}詞彙。關於與本分類相關的請求,請見[[:Category:{{{langname}}}例句請求]]。另見[[:Category:{{{langname}}}引文請求]]。", parents = {"詞條維護"}, } labels["有引文的詞"] = { description = "含有用[[Template:quote]]、[[Template:quote-book]]和[[Template:quote-journal]]等模板添加的引文的{{{langname}}}詞彙。關於與本分類相關的請求,請見[[:Category:{{{langname}}}引文請求]]。另見[[:Category:{{{langname}}}例句請求]]。", parents = {"詞條維護"}, } labels["標題行有紅鏈的詞"] = { description = "在其標題行中包含紅色鏈接(即未創建的形式)的{{{langname}}}詞。", parents = {"紅鏈"}, can_be_empty = true, hidden = true, } for _, quot_type in ipairs { "引文", "使用例" } do labels["省略翻譯的" .. quot_type] = { description = "{{{langname}}} " .. quot_type .. " where a translation would normally be required but the translation has explicitly been omitted by specifying {{code|-}}. The translation should be supplied instead.", parents = {"詞條維護"}, can_be_empty = true, hidden = true, } end labels["派生形式不詳的詞"] = { description = "使用{{tl|undefined derivation}}的法語條目。這些條目應該使用更具體的詞源模板,例如{{tl|borrowed}}或{{tl|inherited}}。", parents = {"詞條維護"}, can_be_empty = true, hidden = true, } labels["terms with red links in their inflection tables"] = { description = "{{{langname}}} terms that contain red links (i.e. uncreated forms) in their inflection tables.", parents = {"redlinks"}, can_be_empty = true, hidden = true, } for _, pos in ipairs({"名詞", "專有名詞", "動詞", "形容詞", "副詞", "分詞", "限定詞", "代詞", "數詞", "後綴"}) do labels["標題行有紅鏈的" .. pos] = { description = "在其標題行中包含紅色鏈接(即未創建的形式)的{{{langname}}}" .. pos .. "。", parents = {"標題行有紅鏈的詞"}, breadcrumb = pos, can_be_empty = true, hidden = true, } labels[(pos == "動詞" and "變位表" or "變格表") .. "中含有紅鏈的" .. pos] = { description = "{{{langname}}} " .. pos .. " that contain red links (i.e. uncreated forms) in their inflection tables.", parents = {"變格表中含有紅鏈的詞"}, breadcrumb = pos, can_be_empty = true, hidden = true, } end for _, pos in ipairs { "名詞", "專有名詞", "代詞" } do local label = "有未知或不確定複數的" .. pos labels[label] = { description = "{{{langname}}}中" .. label .. "。", additional = "Terms are usually added to this category by specifying {{code|?}} as the plural. As much " .. "is possible, a plural should be added or, if the noun is uncountable, indicated appropriately (usually " .. "using {{code|-}} in place of the plural). Some languages support the value {{code|!}} to indicate " .. "that a plural cannot be attested but the noun is theoretically countable.", breadcrumb = "複數未知或不確定", parents = { {name = pos, sort = "unknown or uncertain plurals"}, "詞條維護", }, } end -- Add 'umbrella_parents' key if not already present. for key, data in pairs(labels) do if not data.umbrella_parents then data.umbrella_parents = "詞條維護子分類" end end local function add_manual_param_category(label, desc, addl_intro, include_addl_continuation) labels[label] = { description = desc or "Pages containing {{{langname}}} " .. label .. ".", additional = addl_intro .. (not include_addl_continuation and "" or "\n\n" .. "Note that the pages in this category are not necessarily the same as the actual term in question. This " .. "frequently happens, for example, with English pages with translation sections, where the term that " .. "triggers the addition of the category is one of the translations."), parents = {"詞條維護"}, -- Set catfix = false because the page will have a mixture of native-language and -- non-native-language pages, but include the normal native-language table of contents headers -- because most pages are in the native language. catfix = false, toc_template = "{{{langcode}}}-categoryTOC", toc_template_full = "{{{langcode}}}-categoryTOC/full", can_be_empty = true, hidden = true, } end add_manual_param_category("以非標準文字書寫的詞", nil, "Pages are placed here if they contain terms written in a script that isn't in the language's " .. "list of scripts in the language data. This may mean the script should be added to the list, or that the wrong language code has been used.", true) add_manual_param_category("手動轉寫與自動轉寫不同的詞", nil, "Pages are placed here if they contain terms whose transliteration has been specified manually using " .. "{{para|tr}} or a similar parameter and is different from the transliteration which is automatically generated.", true) add_manual_param_category("有多餘轉寫的詞", nil, "Pages are placed here if they contain terms whose transliteration has been specified manually using " .. "{{para|tr}} or a similar parameter and is the same as the transliteration which is automatically generated.", true) add_manual_param_category("terms with non-redundant manual script codes", nil, "Pages are placed here if they contain terms whose script code has been specified manually using " .. "{{para|sc}} or a similar parameter and is different from the script code which is automatically generated.", true) add_manual_param_category("有多餘文字代碼的詞", nil, "Pages are placed here if they contain terms whose script code has been specified manually using " .. "{{para|sc}} or a similar parameter and is the same as the script code which is automatically generated.", true) add_manual_param_category("terms with non-redundant non-automated sortkeys", "{{{langname}}} terms with non-redundant non-automated sortkeys.", "Terms are placed here if they have been sorted using a sortkey other than the one which is automatically " .. "generated. This can happen for two reasons:\n# A different sortkey has been specified using the {{para|sort}} " .. "parameter.\n# One or more categories have been added using raw wikitext, which means the page's default " .. "sortkey is used for that category. If that default sortkey is different from the automatic sortkey, then the " .. "page will also be added here.") add_manual_param_category("有多餘排序鍵的詞", "{{{langname}}} terms with redundant sortkeys.", "Terms are placed here if their sortkey has been specified using the {{para|sort}} parameter, and it the same " .. "as the one which is automatically generated.") add_manual_param_category("有多餘目標參數的連結", "Pages containing {{{langname}}} links where the alt text could replace the link target, instead of being given " .. "separately.", "This occurs when the only difference between the link target and the alt text is that the alt text contains " .. "diacritics (or other characters) which would have been ignored anyway had they been included in the link " .. "target. For example, {{tl|l|la|amo|amō}} ({{l|la|amo|amō}}) is exactly the same as {{tl|l|la|amō}} " .. "({{l|la|amō}}), because macrons are automatically stripped from Latin link targets, even though they're still " .. "displayed.") add_manual_param_category("忽略alt參數的連結", "Pages containing {{{langname}}} links where the {{para|alt}} parameter has been ignored.", "This occurs when the main linked text includes a wikilink.") add_manual_param_category("有多餘alt參數的連結", "Pages containing {{{langname}}} links where the {{para|alt}} parameter is redundant.", "This occurs when the alt text makes no difference to the output. For example, {{tl|l|en|foo|foo}} " .. "({{l|en|foo|foo}}) is exactly the same as {{tl|l|en|foo}} ({{l|en|foo}}).") add_manual_param_category("忽略id參數的連結", "Pages containing {{{langname}}} links where the {{para|id}} parameter has been ignored.", "This occurs when the main linked text includes a wikilink.") add_manual_param_category("links with redundant wikilinks", "Pages containing {{{langname}}} links which contain a redundant wikilink.", "This occurs if link target consists of a single wikilink, which should instead be entered in the " .. "conventional manner without link brackets. For example, {{tl|l|en|<nowiki>[[foo]]</nowiki>}} " .. "is the same as {{tl|l|en|foo}}, and {{tl|l|en|<nowiki>[[foo|bar]]</nowiki>}} is the same as " .. "{{tl|l|en|foo|bar}}.\n\nThis also occurs when link templates are nested inside each other " .. "unnecessarily: e.g. {{tl|l|en|{{tl|l|en|foo}}}}") add_manual_param_category("links with manual fragments", "Pages containing {{{langname}}} links where a manual link fragment has been given.", "This occurs when the link fragment has been specified using {{code|#}} after the term, " .. "which overrides the normal fragment generated by link templates that points to the relevant " .. "language section.\n\nLink fragments are used to point to a specific section on a target page, and " .. "it is preferable to use the {{para|id}} parameter to do this, since it is less likely to break if " .. "additional content is added to the target page: for example, the fragment {{code|#Adjective}} " .. "will start pointing to the wrong section if another language with an adjective section is added above " .. "the intended language.") -- Add 'umbrella_parents' key if not already present. for _, data in pairs(labels) do if not data.umbrella_parents then data.umbrella_parents = "詞條維護子分類" end end ----------------------------------------------------------------------------- -- -- -- RAW CATEGORIES -- -- -- ----------------------------------------------------------------------------- raw_categories["詞條維護子分類"] = { description = "Umbrella categories covering topics related to 詞條維護.", additional = "{{{umbrella_meta_msg}}}", parents = { "綜合元分類", {name = "詞條維護", is_label = true, sort = " "}, }, } raw_categories["請求"] = { intro = "{{shortcut|WT:CR|WT:RQ}}", description = "各種請求分類的父分類。", parents = {"Category:维基词典"}, } raw_categories["各語言請求"] = { description = "Categories with requests in various specific languages.", additional = "{{{umbrella_msg}}}", parents = { {name = "請求子分類", sort = " "}, {name = "請求", sort = " "}, }, breadcrumb = "各語言", } raw_categories["請求子分類"] = { description = "Umbrella categories covering topics related to requests.", additional = "{{{umbrella_meta_msg}}}", parents = { "綜合元分類", {name = "請求", sort = " "}, }, } raw_categories["Requests for quotation by source"] = { description = "Categories with requests for quotation, broken out by the source of the quotation.", additional = "Some abbreviated names of sources are explained at [[Wiktionary:Abbreviated Authorities in Webster]].", parents = {{name = "Requests for quotation", sort = "source"}}, breadcrumb = "By source", } raw_categories["Requests for quotation"] = { -- FIXME description = "Words are added to this category by the inclusion in their entries of {{temp|rfv-quote}}.", parents = {{name = "Requests", sort = "quotation"}}, breadcrumb = "Quotation", } raw_categories["Requests for date by source"] = { description = "Categories with requests for date, broken out by the source of the quotation whose date is sought.", parents = {{name = "Requests for date", sort = "source"}}, breadcrumb = "By source", } raw_categories["Requests for date"] = { -- FIXME, break date requests by language and make not-hidden description = "Requests for a date to be added to a quotation.", additional = "To add an article to this category, use {{temp|rfdate}} or {{temp|rfdatek}} to include the author. " .. "Please remove the template from the article once the date has been provided. Articles are also added automatically by " .. "templates such as {{temp|quote-book}} if the year= parameter is not provided. Providing the parameter in each case on " .. "the page automatically removes the article from this category. See [[Wiktionary:Quotations]] for information about " .. "formatting dates and quotations.", parents = {{name = "Requests", sort = "date"}}, breadcrumb = "Date", hidden = true, } raw_categories["各語言翻譯詞"] = { description = "Terms with translations, sorted by language.", parents = {{name = "詞條維護子分類", sort = "translations by language"}}, breadcrumb = "翻譯", } ----------------------------------------------------------------------------- -- -- -- RAW HANDLERS -- -- -- ----------------------------------------------------------------------------- -- This array consists of category match specs. Each spec contains one or more properties, whose values are strings -- that may contain references to other properties using the {{{PROPERTY}}} syntax. Each such spec should have at least -- a `regex` property that matches the name of the category. Capturing groups in this regex can be referenced in other -- properties using {{{1}}} for the first group, {{{2}}} for the second group, etc. Property expansion happens -- recursively if needed (i.e. a property can reference another property, which in turn references a third property). -- -- If there is a `language_name` propery, it specifies the language name (and will typically be a reference to a -- capturing group from the `regex` property); if not specified, it defaults to "{{{1}}}" unless the `nolang` property -- is set, in which case there is no language name derivable from the category name. The language name must be the -- canonical name of a recognized language, or an error is thrown. Based on the language name, the `language_code` and -- `language_object` properties are automatically filled in. -- -- If the `regex` values of multiple category specs match, the first one takes precedence. -- -- Recognized or predefined properties: -- -- `pagename`: Current pagename. -- `regex`: See above. -- `1`, `2`, `3`, ...: See above. -- `language_name`, `language_code`, `language_object`: See above. -- `nolang`: See above. -- `description`: Override the description (normally taken directly from the pagename). -- `template_name`: Name of template which generates this category. -- `template_sample_call`: Syntax for calling the template. Defaults to "{{{template_name}}}|{{{language_code}}}". -- Used to display an example template call and the output of this call. -- `template_actual_sample_call`: Syntax for calling the template. Takes precedence over `template_sample_call` when -- generating example template output (but not when displaying an example template call) and is intended for a -- template call that uses the |nocat=1 parameter. -- `template_example_output`: Override the text that displays example template output (see `template_sample_call`). -- `additional_template_description`: Extra text to be displayed after the example template output. -- `parents`: Parent categories. Should be a list of elements, each of which is an object containing at least a name= -- and sort= field (same format as parents= for regular raw categories, except that the name= and sort= field will -- have {{{PROPERTY}}} references expanded). If no parents are specified, and the pagename is of the form -- "Requests for FOO by language", the parent will be "Request subcategories by language" with FOO as the sort key. -- Otherwise, the `language_name` property must exist, and the parent will be "Requests concerning LANGNAME" with -- the pagename minus any initial "Requests for " as the sort key. -- `umbrella`: Parent all-language category. Sort key is based on the language name. -- `breadcrumb`: Specify the breadcrumb. If `parents` is given, there is no default (i.e. it will end up being the -- pagename). Otherwise, if the pagename is of the form "Requests for FOO by language", "Requests for FOO in BAR", -- or "Requests for FOO", it will be FOO. -- `not_hidden_category`: Don't hide the category. -- `catfix`: Same as `catfix` in regular labels and raw categories, except that request-specific {{{PROPERTY}}} syntax -- is expanded. -- `toc_template`, `toc_template_full`: Same as the corresponding fields in regular labels and raw categories, except -- that request-specific {{{PROPERTY}}} syntax is expanded. -- -- An actual template call can be inserted into a string using the syntax <<{{TEMPLATE|ARG1|ARG2|...}}>>. local function script_name_to_code(name) local sc = require(scripts_module).getByCanonicalName(name) if not sc then error("Unrecognized script name '" .. name .. "'") end return sc:getCode() end local requests_categories = { { regex = "^(.+)相關請求$", allow_etym_lang = true, description = "需要有相關經驗的編者參與的{{{1}}}詞條。", parents = {{name = "詞條維護", is_label = true, sort = "請求"}}, umbrella = "各語言請求", breadcrumb = "請求", not_hidden_category = true }, { regex = "^(.+)詞條詞源請求$", allow_etym_lang = true, umbrella = "各語言詞源請求", template_name = "rfe", }, { regex = "^Requests for expansion of etymologies in (.+) entries$", umbrella = "Requests for expansion of etymologies by language", template_name = "etystub", }, { regex = "^(.+)詞條發音請求", umbrella = "各語言發音請求", template_name = "rfp", }, { regex = "^(.+)詞條發音音訊檔案請求$", umbrella = "各語言發音音訊檔案請求", template_name = "rfap", }, { regex = "^(.+)詞條定義請求", umbrella = "各語言定義請求", template_name = "rfdef", }, { regex = "^Requests for clarification of definitions in (.+) entries$", umbrella = "Requests for clarification of definitions by language", template_name = "rfclarify", }, { -- This is for part-of-speech-specific categories such as -- "Requests for inflections in Northern Ndebele noun entries" or -- "Requests for accents in Ukrainian proper noun entries". -- Here and below, we assume that the part of speech is begins with -- a lowercase letter, while the preceding language name ends in a -- capitalized word. Note that this entry comes before the -- following one and takes precedence over it. regex = "^(.-)([名動形副專][容有]?[名]?詞)詞條屈折請求$", parents = {{name = "{{{language_name}}}詞條屈折請求", sort = "{{{2}}}"}}, umbrella = "各語言{{{2}}}屈折請求", breadcrumb = "{{{2}}}", template_name = "rfinfl", template_sample_call = "{{rfinfl|{{{language_code}}}|{{{2}}}}}", }, { regex = "^(.+)詞條屈折請求$", umbrella = "各語言屈折請求", template_name = "rfinfl", }, { regex = "^各語言(.+)屈折請求$", nolang = true, }, { regex = "^Requests for tone in (.-) ([a-z]+[a-z ]*) entries$", parents = {{name = "Requests for tone in {{{language_name}}} entries", sort = "{{{2}}}"}}, umbrella = "Requests for tone of {{{2}}}s by language", breadcrumb = "{{{2}}}", template_name = "rftone", template_sample_call = "{{rftone|{{{language_code}}}|{{{2}}}}}", }, { regex = "^Requests for tone in (.+) entries$", umbrella = "Requests for tone by language", template_name = "rftone", }, { regex = "^Requests for tone of (.+) by language$", nolang = true, }, { regex = "^Requests for accents in (.-) ([a-z]+[a-z ]*) entries$", parents = {{name = "Requests for accents in {{{language_name}}} entries", sort = "{{{2}}}"}}, umbrella = "Requests for accents of {{{2}}}s by language", breadcrumb = "{{{2}}}", template_name = "rfaccents", template_sample_call = "{{rfaccents|{{{language_code}}}|{{{2}}}}}", }, { regex = "^Requests for accents in (.+) entries$", umbrella = "Requests for accents by language", template_name = "rfaccents", }, { regex = "^Requests for accents of (.+) by language$", nolang = true, }, { regex = "^Requests for aspect in (.-) ([a-z]+[a-z ]*) entries$", parents = {{name = "Requests for aspect in {{{language_name}}} entries", sort = "{{{2}}}"}}, umbrella = "Requests for aspect of {{{2}}}s by language", breadcrumb = "{{{2}}}", template_name = "rfaspect", template_sample_call = "{{rfaspect|{{{language_code}}}|{{{2}}}}}", }, { regex = "^Requests for aspect in (.+) entries$", umbrella = "Requests for aspect by language", template_name = "rfaspect", }, { regex = "^Requests for aspect of (.+) by language$", nolang = true, }, { regex = "^Requests for gender in (.-) ([a-z]+[a-z ]*) entries$", parents = {{name = "Requests for gender in {{{language_name}}} entries", sort = "{{{2}}}"}}, umbrella = "Requests for gender of {{{2}}}s by language", breadcrumb = "{{{2}}}", template_name = "rfgender", template_sample_call = "{{rfgender|{{{language_code}}}|{{{2}}}}}", }, { regex = "^(.+)詞條性別請求", umbrella = "各語言性別請求", template_name = "rfgender", }, { regex = "^Requests for gender of (.+) by language$", nolang = true, }, { regex = "^Requests for example sentences in (.+)$", umbrella = "Requests for example sentences by language", template_name = "rfex", }, { regex = "^([^各].+)引文請求$", umbrella = "各語言引文請求", template_name = "rfquote", }, { regex = "^([^各].+)使用例翻譯請求$", umbrella = "各語言使用例翻譯請求", breadcrumb = "使用例翻譯", template_name = "t-needed", template_sample_call = "{{t-needed|{{{language_code}}}|usex=1}}", template_actual_sample_call = "{{t-needed|{{{language_code}}}|usex=1|nocat=1}}", additional_template_description = "如果使用例是外語並且缺少翻譯,{{temp|ux}}、{{temp|uxi}}、{{temp|quote}}、{{temp|Q}}和{{temp|ja-usex}}模板會自動將頁面添加到此分類中。" }, { regex = "^([^各].+)引文翻譯請求$", umbrella = "各語言引文翻譯請求", breadcrumb = "引文翻譯", template_name = "t-needed", template_sample_call = "{{t-needed|{{{language_code}}}|quote=1}}", template_actual_sample_call = "{{t-needed|{{{language_code}}}|quote=1|nocat=1}}", additional_template_description = "如果使用例是外語並且缺少翻譯,{{temp|quote}}和{{temp|Q}}模板會自動將頁面添加到此分類中。" }, { regex = "^([^各].+)翻譯請求$", umbrella = "各語言翻譯請求", template_name = "t-needed", catfix = "en", }, { regex = "^([^各].+)翻譯檢查請求$", umbrella = "各語言翻譯檢查請求", breadcrumb = "翻譯檢查", template_name = "t-check", template_sample_call = "{{t-check|{{{language_code}}}|example}}", template_example_output = "", catfix = "en", }, { regex = "^(.+)詞轉寫請求", umbrella = "各語言轉寫請求", breadcrumb = "轉寫請求", template_name = "rftranslit", additional_template_description = "如果範例是沒有自動轉寫的語言(例如希伯來語和波斯語)," .. "則 {{tl|head}} 模板及大量特定於該語言的標題行模板變體會自動將頁面加入至此分類。", }, { regex = "^(.+)詞原生文字請求$", allow_etym_lang = true, etym_parents = { {name = "{{{parent_language_name}}}詞原生文字請求", sort = "{{{1}}}"}, {name = "{{{language_name}}}相關請求", sort = "native script"}, }, umbrella = "各語言原生文字請求", template_name = "rfscript", template_actual_sample_call = "{{rfscript|{{{language_code}}}|nocat=1}}", catfix = false, additional_template_description = "使用 {{tl|l}}、{{tl|m}} 和 {{tl|t}} 等模板時,若缺少條目本體但提供了轉寫,會自動將頁面放入此分類。" }, { regex = "^(.+)使用例原生文字請求$", umbrella = "各語言使用例原生文字請求", template_name = "rfscript", template_sample_call = "{{rfscript|{{{language_code}}}|usex=1}}", template_actual_sample_call = "{{rfscript|{{{language_code}}}|usex=1|nocat=1}}", catfix = false, additional_template_description = "使用 {{tl|ux}} 和 {{tl|uxi}} 模板時,如果例子本身缺失但提供了翻譯,會自動將頁面添加到此分類。" }, { regex = "^(.+)引文原生文字請求$", umbrella = "各語言引文原生文字請求", template_name = "rfscript", template_sample_call = "{{rfscript|{{{language_code}}}|quote=1}}", template_actual_sample_call = "{{rfscript|{{{language_code}}}|quote=1|nocat=1}}", catfix = false, additional_template_description = "使用{{tl|quote}} 和 {{code|<nowiki>{{quote-*}}</nowiki>}} 等模板時,如果引文本身缺失但提供了翻譯,會自動將頁面添加到此分類。" }, { regex = "^(.+)詞(.+[文名母])請求$", -- 片假名? language_name = "{{{1}}}", allow_etym_lang = true, parents = {{name = "{{{language_name}}}詞原生文字請求", sort = "{{{2}}}"}}, etym_parents = { {name = "{{{language_name}}}詞原生文字請求", sort = "{{{2}}}"}, {name = "{{{parent_language_name}}}詞{{{2}}}請求", sort = "{{{language_name}}}"}, {name = "{{{language_name}}}相關請求", sort = "{{{2}}} script"}, }, umbrella = "各語言{{{2}}}請求", breadcrumb = "{{{2}}}", etym_breadcrumb = "{{{2}}}", template_name = "rfscript", -- NOTE: The following is used in `template_sample_call` and `template_actual_sample_call`, meaning the -- conversion of script name to script code needs to be done using an inline function like this, instead of -- a {{#invoke:...}} template call. script_code = function(items) return script_name_to_code(items["2"]) end, template_sample_call = "{{rfscript|{{{language_code}}}|sc={{{script_code}}}}}", template_actual_sample_call = "{{rfscript|{{{language_code}}}|sc={{{script_code}}}|nocat=1}}", catfix = false, additional_template_description = "使用 {{tl|l}}、{{tl|m}} 和 {{tl|t}} 等模板時,若缺少條目本體但提供了轉寫,會自動將頁面放入此分類。" }, { regex = "^各語言(.+[文名母])請求$", parents = {{name = "各語言文字請求", sort = "{{{1}}}"}}, breadcrumb = "{{{1}}}", nolang = true, }, { regex = "^各語言文字請求$", nolang = true, }, { regex = "^Requests for images in (.+) entries$", umbrella = "Requests for images by language", template_name = "rfi", }, { regex = "^Requests for references for (.+) terms$", umbrella = "Requests for references by language", template_name = "rfref", }, { regex = "^Requests for references for etymologies in (.+) entries$", parents = {{name = "Requests for references for {{{language_name}}} terms", sort = "etymologies"}}, umbrella = "Requests for references for etymologies by language", breadcrumb = "Etymologies", template_name = "rfv-etym", }, { regex = "^Requests for references for pronunciations in (.+) entries$", parents = {{name = "Requests for references for {{{language_name}}} terms", sort = "pronunciations"}}, umbrella = "Requests for references for pronunciations by language", breadcrumb = "Pronunciations", template_name = "rfv-pron", }, { regex = "^需要注意的(.+)詞$", umbrella = "需要注意的詞", template_name = "attention", template_example_output = "This template does not generate any text in entries.", -- These pages typically contain a mixture of English and native-language entries, so disable catfix. catfix = false, -- Setting catfix = false will normally trigger the English table of contents template. -- We still want the native-language table of contents template, though. toc_template = "{{{language_code}}}-categoryTOC", toc_template_full = "{{{language_code}}}-categoryTOC/full", }, { regex = "^Requests for cleanup in (.+) entries$", umbrella = "Requests for cleanup by language", template_name = "rfc", template_actual_sample_call = "{{rfc|{{{language_code}}}|nocat=1}}", }, { regex = "^Requests for cleanup of Pronunciation N headers in (.+) entries$", umbrella = "Requests for cleanup of Pronunciation N headers by language", template_name = "rfc-pron-n", template_actual_sample_call = "{{rfc-pron-n|{{{language_code}}}|nocat=1}}", template_example_output = "This template does not generate any text in entries.", additional_template_description = [=[ The purpose of this category is to tag entries that use headers with "Pronunciation" and a number. While these headers and structure are sometimes used, they are not specifically prescribed by [[WT:ELE]]. No complete proposal has yet been made on how they should work, what the semantics are, or how they interact with multiple etymologies. As a result they should generally be avoided. Instead, merge the entries (possibly under multiple Etymology sections, if appropriate), and list all pronunciations, appropriately tagged, under a Pronunciation header. [[User:KassadBot|KassadBot]] tags these entries (or used to tag these entries, when the bot was operational). At some point if a proposal is made and adopted as policy, these entries should be reviewed. This category is hidden.]=], }, { regex = "^Requests for deletion in (.+) entries$", umbrella = "Requests for deletion by language", template_name = "rfd", template_actual_sample_call = "{{rfd|{{{language_code}}}|nocat=1}}", }, { regex = "^Requests for verification in (.+) entries$", umbrella = "Requests for verification by language", template_name = "rfv", }, { regex = "^Requests for attention in etymologies in (.+) entries$", umbrella = "Requests for attention in etymologies by language", }, { regex = "^Requests for quotation/(.+)$", description = "Requests for a quotation or for quotations from {{{1}}}.", parents = {{name = "Requests for quotation by source", sort = "{{{1}}}"}}, breadcrumb = "{{{1}}}", nolang = true, template_name = "rfquotek", template_sample_call = "{{rfquotek|LANGCODE|{{{1}}}}}", template_example_output = "\n(where LANGCODE is the language code of the entry)\n\nIt results in the message below:\n\n{{rfquotek|und|{{{1}}}}}", }, { regex = "^Requests for date/(.+)$", description = "Requests for a date for a quotation or quotations from {{{1}}}.", parents = {{name = "Requests for date by source", sort = "{{{1}}}"}}, breadcrumb = "{{{1}}}", nolang = true, template_name = "rfdatek", template_sample_call = "{{rfdatek|LANGCODE|{{{1}}}}}", template_example_output = "\n(where LANGCODE is the language code of the entry)\n\nIt results in the message below:\n\n{{rfdatek|und|{{{1}}}}}", }, } table.insert(raw_handlers, function(data) local langname = data.category:match("^有(.+)翻譯的詞$") local lang = langname and require(languages_module).getByCanonicalName(langname, true, true) if lang then lang = lang:getCode() return { description = "Entries that contain translations into " .. langname .. " which were added using one of the translation templates, such as {{tl|t|" .. lang .. "|...}}, {{tl|t+|" .. lang .. "|...}}, etc.", parents = { {name = "詞條維護", is_label = true, lang = lang, sort = "translations"}, { name = "各語言翻譯詞", sort = langname }, }, breadcrumb = "翻譯", catfix = false, can_be_empty = true, hidden = true, } end end) table.insert(raw_handlers, function(data) local items = {pagename = data.category} local function replace_template_refs(result) if not result then return result end --[[ Replaces pseudo-template code {{{ }}} with the corresponding member of the "items" table. Has to be done at least twice, since some of the items are nested: {{{template_sample_call_with_temp}}} ⇓ {{{{{template_name}}}|{{{language_code}}}}} ⇓ {{attention|en}} ]] while result:find("{{{") do result = mw.ustring.gsub( result, "{{{([^%}%{]+)}}}", function(item) if items[item] then if type(items[item]) == "string" or type(items[item]) == "number" then return items[item] elseif is_callable(items[item]) then return items[item](items) else error('The item "{{{' .. item .. '}}}" is a ' .. type(items[item]) .. ' and can\'t be concatenated. (Pagename: ' .. items.pagename .. '.)') end else error('The item "' .. item .. '" was not found in the "items" table. (Pagename: ' .. items.pagename .. '.)') end end ) end -- Preprocess template code surrounded by << >>, repeatedly from inside out -- in case we have a << >> template call nested inside of another one -- (this doesn't currently happen). We need this mechanism at all because -- in "Requests for SCRIPT script for LANGUAGE terms", we need to convert the -- script to a script code before insertion into the template example code, -- which is inside of <pre> so it won't get expanded by the normal poscatboiler -- mechanism. while result:find("<<") do result = mw.ustring.gsub( result, "<<([^><]+)>>", function (template_code) return mw.getCurrentFrame():preprocess(template_code) end ) end return result end local valid_category = false for i, category in ipairs(requests_categories) do local matchvals = {mw.ustring.match(items.pagename, category.regex)} if #matchvals > 0 then valid_category = true for key, value in pairs(category) do items[key] = value end for key, value in ipairs(matchvals) do items["" .. key] = value end break end end if not valid_category then for i, category in ipairs(requests_categories) do if items.pagename == category.umbrella then valid_category = true items.nolang = true end end end if not valid_category then return nil end if not items.nolang then items.language_name = items.language_name or "{{{1}}}" items.language_name = replace_template_refs(items.language_name) if items.etym_lang_only then items.language_object = require("Module:etymology languages").getByCanonicalName(items.language_name) if not items.language_object then return nil end items.language_code = items.language_object:getCode() items.parent_language_object = items.language_object:getFull() -- Reject weird cases where etymology language has no parent. if not items.parent_language_object then return nil end items.parent_language_code = items.parent_language_object:getCode() items.parent_language_name = items.parent_language_object:getCanonicalName() -- Reject weird cases where the parent language has the same name as the child etymology language. In that case, -- we'll get an infinite parent-category loop. This actually happens, e.g. with Rudbari and Bashkardi. if items.parent_language_name == items.language_name then return nil end else mw.logObject(items) items.language_object = require("Module:languages").getByCanonicalName(items.language_name, true, items.allow_etym_lang) items.language_code = items.language_object:getCode() items.is_etym_lang = items.language_object:hasType("etymology-only") if items.is_etym_lang then items.parent_language_object = items.language_object:getFull() -- Reject weird cases where etymology language has no parent. if not items.parent_language_object then return nil end items.parent_language_code = items.parent_language_object:getCode() items.parent_language_name = items.parent_language_object:getCanonicalName() -- Reject weird cases where the parent language has the same name as the child etymology language. In -- that case, we'll get an infinite parent-category loop. This actually happens, e.g. with Rudbari and -- Bashkardi. if items.parent_language_name == items.language_name then return nil end end end end if items.template_name then items.template_sample_call = items.template_sample_call or "{{{{{template_name}}}|{{{language_code}}}}}" items.full_text_about_the_template = "要提出這個語言的這項請求,請在條目中使用這段代碼(另見[[Template:{{{template_name}}}]]的文檔):\n\n<pre>{{{template_sample_call}}}</pre>" if items.template_example_output then items.full_text_about_the_template = items.full_text_about_the_template .. " " .. items.template_example_output else items.template_actual_sample_call = items.template_actual_sample_call or items.template_sample_call items.full_text_about_the_template = items.full_text_about_the_template .. "\n會產生下面這條消息:\n\n{{{template_actual_sample_call}}}" end if items.additional_template_description then items.full_text_about_the_template = items.full_text_about_the_template .. "\n\n" .. items.additional_template_description end end local parents = items.parents local breadcrumb = items.breadcrumb and replace_template_refs(items.breadcrumb) if parents then for _, parent in ipairs(parents) do parent.name = replace_template_refs(parent.name) parent.sort = replace_template_refs(parent.sort) end else local umbrella_type = items.pagename:match("^各語言(.+)請求$") or items.pagename:match("^需要(.+)的詞$") if umbrella_type then breadcrumb = breadcrumb or umbrella_type parents = {{name = "請求子分類", sort = umbrella_type}} elseif not items.language_name then error("Internal error: Don't know how to compute parents for non-language-specific category '" .. items.pagename .. "'") else local default_breadcrumb = items.pagename:match("^Requests for (.+) in .*$") or items.pagename:match("^Requests for (.+)$") breadcrumb = breadcrumb or default_breadcrumb parents = {{name = items.language_name .. "相關請求", sort = default_breadcrumb}} end end if not items.nolang then table.insert(parents, {name = replace_template_refs(items.umbrella), sort = items.language_name}) end local additional = replace_template_refs(items.full_text_about_the_template) if items.pagename:find("^各語言") then additional = "{{{umbrella_msg}}}" .. (additional and "\n\n" .. additional or "") end return { description = replace_template_refs(items.description) or items.pagename .. "。", lang = items.parent_language_code or items.language_code, additional = additional, parents = parents, -- If no breadcrumb=, it will default to the category name breadcrumb = breadcrumb, catfix = replace_template_refs(items.catfix), toc_template = replace_template_refs(items.toc_template), toc_template_full = replace_template_refs(items.toc_template_full), hidden = not items.not_hidden_category, can_be_empty = true, } end) return {LABELS = labels, RAW_CATEGORIES = raw_categories, RAW_HANDLERS = raw_handlers} 5i7nsxeowjbyt70kvli9eivnqydhlv0 dinte 0 1395111 9813872 7782999 2026-06-15T17:21:39Z TongcyDai 53191 9813872 wikitext text/x-wiki ==阿爾巴尼亞語== ===動詞=== {{head|sq|動詞變位形式}} # {{inflection of|sq|di||3|s|imperfect}} ==阿羅馬尼亞語== ===詞源=== {{inh+|rup|la|dens|dēns, dentem}}。對照{{cog|ro|dinte}}。 ===名詞=== {{head|rup|名詞|g=f}} # {{alternative form of|rup|dinti}} ==伊斯特羅-羅馬尼亞語== ===詞源=== {{inh+|ruo|la|dens|dentem}}。 ===名詞=== {{head|ruo|名詞}} # [[牙齒]] {{C|ruo|牙齒}} ==羅馬尼亞語== ===詞源=== {{inh+|ro|la|dentem}},{{m|la|dēns}} 的賓格單數,最終{{inh+|ro|ine-pro|*h₃dénts}}、{{m|ine-pro|*h₃dónts}}。對照{{cog|es|diente}}、{{cog|ca|dent}}、{{cog|fr|dent}}、{{cog|it|dente}} 以及{{cog|rup|dinti}}。 ===發音=== * {{IPA|ro|[ˈdinte]}} * {{audio|ro|LL-Q7913 (ron)-Filosoful-dinte.wav}} * {{audio|ro|LL-Q7913 (ron)-Andreea Teodoraa-dinte.wav}} ===名詞=== {{ro-noun|m|dinți}} # [[牙齒]] ====變格==== {{ro-noun-m-e|pl=dinți}} ====派生詞彙==== * {{l|ro|dinte de lapte}} * {{l|ro|dința}} * {{l|ro|dințar}} * {{l|ro|dințat}} * {{l|ro|dințos}} ====相關詞彙==== * {{l|ro|dental}} * {{l|ro|dentist}} {{C|ro|牙齒}} ev6bmp720o17dk4tbv5gjfijz8nxwz9 bãrbat 0 1395585 9813833 5701230 2026-06-15T17:15:54Z TongcyDai 53191 9813833 wikitext text/x-wiki {{also|barbat|barbât|bărbat|bărbåt|bărbåț}} ==阿羅馬尼亞語== ===其他形式=== * {{alt|rup|bãrbatu}} ===詞源=== {{inh+|rup|la|barbātus}}。對照{{cog|ro|bărbat}}。 ===名詞=== {{head|rup|名詞|g=m|複數|bãrbats|定指單數|bãrbatlu|定指複數|bãrbatslji}} # [[男人]] #: {{syn|rup|mascur}} #: {{ant|rup|muljari}} # [[丈夫]] #: {{syn|rup|mãrit}} #: {{ant|rup|muljari}} ====派生詞彙==== * {{l|rup|bãrbãtedz}} * {{l|rup|bãrbãtescu}} * {{l|rup|mbãrbãtedz}} * {{l|rup|bãrbãtami}} / {{l|rup|bãrbãtame}} ====相關詞彙==== * {{l|rup|barbã}} * {{l|rup|bãrbutã}} ====參見==== * {{l|rup|om}} * {{l|rup|nveastã}} {{C|rup|男性家庭成員|男人|婚姻}} fppvw7sle0t2zdlxw1yrhphvr2aqt32 dormio 0 1409615 9813893 9628606 2026-06-15T18:26:25Z TongcyDai 53191 9813893 wikitext text/x-wiki {{also|Dormio}} ==拉丁語== ===詞源=== {{etymon|la|id=睡眠|:inh|itc-pro:*dormiō<ref:{{R:Nocentini|hw=dormire}} !!! {{R:itc:EDL|pages=179-180|head=dormiō, -īre}}>|tree=1|text=++}} 音變規律 {{m|ine-pro||*-mj-}} > {{m+|itc-pro||*-nj}} 很可能由於原始印歐語的音節劃分(syllabification)規則而未作用於本詞。帶有成音節 {{m|ine-pro||*m̥}} 的序列 {{m|ine-pro|*gʷem-|*gʷm̥y-}} 演變為 {{m|la|venio|veni-}},而帶有成音節 {{m|ine-pro||*r̥}} 的 {{m|ine-pro||*dr̥my-}} 則演變為 {{m|la||dormi-}}。如果原始印歐語形式被劃分音節為 {{m|ine-pro||*drm̥y-}},預期的拉丁語演變結果將會是 {{m|la||**dreniō}}。<ref>{{R:ine:Byrd:2015|page=141}}</ref> 同源詞包括{{cog|cu|дрѣмати||打瞌睡,打盹}}、{{cog|ru|дрема́ть}}、{{cog|sa|द्राति||睡覺}}、{{cog|grc|δαρθάνω||睡覺}}。 ===發音=== * {{la-IPA|dormiō}} ===動詞=== {{la-verb|4++.pass-impers|dormiō}} # [[睡]],[[睡覺]] #: {{syn|la|dormītō|cubō}} #: {{ant|la|expergīscor|vigilō}} #: {{ux|la|Eō '''dormītum'''.|我準備去'''睡覺'''。}} #: {{ux|la|'''Dormītūrī''' tē salūtant.|'''將要入睡'''的人向您致敬。}} #* {{Q|la|Catullus|Carmina|5|quote=Nōbīs cum semel occidit brevis lūx, nox est perpetua ūna '''dormienda'''.|t=當短暫的光芒在我們身上落下,我們必須'''長眠'''於無盡的黑夜中。}} #* {{Q|la|Horace|Sermones|2|1|7|quote=vērum nequeō '''dormīre'''|t=說實話,我無法'''入睡'''。}} #* '''公元4世紀''',斯特里東的耶柔米(聖耶柔米),《武加大譯本》,24:27: #*: {{quote|la|parum inquam '''dormiēs''' modicum '''dormitābis''' pauxillum manūs cōnserēs ut quiēscās|再'''睡'''片時,'''打盹'''片時,抱著手躺臥片時。{{small|(和合本《箴言》24:33)}}}} ====變位==== {{la-conj|4++.pass-impers|dormiō}} ====派生詞彙==== {{col|la |addormiō |adormīscō |condormiō |condormīscō |dormīscō |dormītō |ēdormiō |ēdormīscō |indormiō |obdormīscō |perdormīscō |redormiō }} ====派生語彙==== {{top4}} * 巴爾幹羅曼語支: ** {{desc|rup|dormu}} ** {{desc|ruo|durmi}} ** {{desc|ruq|dorm}} ** {{desc|ro|dormi|alts=1}} * 達爾馬提亞語: ** {{l|dlm|dormir}} * 義大利-羅曼語支: ** {{desc|co|dorma|dorme}} **: {{desc|sdn|drummí}} ** {{desc|it|dormire}} ** {{desc|nap|dormire}} ** {{desc|sdc|drummí}} ** {{desc|scn|dòrmiri|alts=1}} * 帕達尼亞語支: ** {{desc|egl|durmîr}} ** {{desc|fur|durmî}} ** {{desc|lld|dormir|alts=1}} ** {{desc|lmo|dormì|durmì|dòrmer}} ** {{desc|pms|deurme|durmì|drumì}} ** {{desc|rgn|durmì}} ** {{desc|rm|durmir|alts=1}} ** {{desc|vec|dormir}} * 高盧-羅曼語支: ** {{desc|ca|dormir}} ** {{desc|frp|dormir|alt=dormir, dromir}} ** {{desctree|fro|dormir}} ** {{desctree|pro|dormir}} * 西伊比利亞語支: ** {{desc|an|dormir}} ** {{desc|roa-ole||-}} *** {{desc|ast|dormir}} *** {{desc|roa-leo|dormire}} *** {{desc|mwl|drumir}} ** {{desc|roa-opt|dormir|durmir}} *** {{desc|gl|durmir|dormir}} *** {{desc|pt|dormir}} {{see desc}} ** {{desc|osp|dormir}} *** {{desc|lad|durmir}} *** {{desc|es|dormir}} * 海島羅曼語支: ** {{desc|sc|dormire|dormiri|drommire|drumire}} * 借詞: ** {{desc|bor=1|is|dorma}} {{bottom}} ===參考資料=== {{reflist}} * {{R:la:L&S}} * {{R:la:Elementary Lewis}} * {{R:la:Gaffiot}} * {{R:la:M&A}} {{cln|la|不及物動詞}} {{C|la|睡眠}} 0eu6hgh2uiisrte7rrd5tr9qdriex7u 9813894 9813893 2026-06-15T18:26:42Z TongcyDai 53191 9813894 wikitext text/x-wiki {{also|Dormio}} ==拉丁語== ===詞源=== {{etymon|la|id=睡眠|:inh|itc-pro:*dormiō<ref:{{R:Nocentini|hw=dormire}} !!! {{R:itc:EDL|pages=179-180|head=dormiō, -īre}}>|tree=1|text=++}} 音變規律 {{m|ine-pro||*-mj-}} > {{m+|itc-pro||*-nj}} 很可能由於原始印歐語的音節劃分規則而未作用於本詞。帶有成音節 {{m|ine-pro||*m̥}} 的序列 {{m|ine-pro|*gʷem-|*gʷm̥y-}} 演變為 {{m|la|venio|veni-}},而帶有成音節 {{m|ine-pro||*r̥}} 的 {{m|ine-pro||*dr̥my-}} 則演變為 {{m|la||dormi-}}。如果原始印歐語形式被劃分音節為 {{m|ine-pro||*drm̥y-}},預期的拉丁語演變結果將會是 {{m|la||**dreniō}}。<ref>{{R:ine:Byrd:2015|page=141}}</ref> 同源詞包括{{cog|cu|дрѣмати||打瞌睡,打盹}}、{{cog|ru|дрема́ть}}、{{cog|sa|द्राति||睡覺}}、{{cog|grc|δαρθάνω||睡覺}}。 ===發音=== * {{la-IPA|dormiō}} ===動詞=== {{la-verb|4++.pass-impers|dormiō}} # [[睡]],[[睡覺]] #: {{syn|la|dormītō|cubō}} #: {{ant|la|expergīscor|vigilō}} #: {{ux|la|Eō '''dormītum'''.|我準備去'''睡覺'''。}} #: {{ux|la|'''Dormītūrī''' tē salūtant.|'''將要入睡'''的人向您致敬。}} #* {{Q|la|Catullus|Carmina|5|quote=Nōbīs cum semel occidit brevis lūx, nox est perpetua ūna '''dormienda'''.|t=當短暫的光芒在我們身上落下,我們必須'''長眠'''於無盡的黑夜中。}} #* {{Q|la|Horace|Sermones|2|1|7|quote=vērum nequeō '''dormīre'''|t=說實話,我無法'''入睡'''。}} #* '''公元4世紀''',斯特里東的耶柔米(聖耶柔米),《武加大譯本》,24:27: #*: {{quote|la|parum inquam '''dormiēs''' modicum '''dormitābis''' pauxillum manūs cōnserēs ut quiēscās|再'''睡'''片時,'''打盹'''片時,抱著手躺臥片時。{{small|(和合本《箴言》24:33)}}}} ====變位==== {{la-conj|4++.pass-impers|dormiō}} ====派生詞彙==== {{col|la |addormiō |adormīscō |condormiō |condormīscō |dormīscō |dormītō |ēdormiō |ēdormīscō |indormiō |obdormīscō |perdormīscō |redormiō }} ====派生語彙==== {{top4}} * 巴爾幹羅曼語支: ** {{desc|rup|dormu}} ** {{desc|ruo|durmi}} ** {{desc|ruq|dorm}} ** {{desc|ro|dormi|alts=1}} * 達爾馬提亞語: ** {{l|dlm|dormir}} * 義大利-羅曼語支: ** {{desc|co|dorma|dorme}} **: {{desc|sdn|drummí}} ** {{desc|it|dormire}} ** {{desc|nap|dormire}} ** {{desc|sdc|drummí}} ** {{desc|scn|dòrmiri|alts=1}} * 帕達尼亞語支: ** {{desc|egl|durmîr}} ** {{desc|fur|durmî}} ** {{desc|lld|dormir|alts=1}} ** {{desc|lmo|dormì|durmì|dòrmer}} ** {{desc|pms|deurme|durmì|drumì}} ** {{desc|rgn|durmì}} ** {{desc|rm|durmir|alts=1}} ** {{desc|vec|dormir}} * 高盧-羅曼語支: ** {{desc|ca|dormir}} ** {{desc|frp|dormir|alt=dormir, dromir}} ** {{desctree|fro|dormir}} ** {{desctree|pro|dormir}} * 西伊比利亞語支: ** {{desc|an|dormir}} ** {{desc|roa-ole||-}} *** {{desc|ast|dormir}} *** {{desc|roa-leo|dormire}} *** {{desc|mwl|drumir}} ** {{desc|roa-opt|dormir|durmir}} *** {{desc|gl|durmir|dormir}} *** {{desc|pt|dormir}} {{see desc}} ** {{desc|osp|dormir}} *** {{desc|lad|durmir}} *** {{desc|es|dormir}} * 海島羅曼語支: ** {{desc|sc|dormire|dormiri|drommire|drumire}} * 借詞: ** {{desc|bor=1|is|dorma}} {{bottom}} ===參考資料=== {{reflist}} * {{R:la:L&S}} * {{R:la:Elementary Lewis}} * {{R:la:Gaffiot}} * {{R:la:M&A}} {{cln|la|不及物動詞}} {{C|la|睡眠}} 9rcchr6sqakqxyrf9dxx61k9mraconl 9813895 9813894 2026-06-15T18:27:40Z TongcyDai 53191 9813895 wikitext text/x-wiki {{also|Dormio}} ==拉丁語== ===詞源=== {{etymon|la|id=睡|:inh|itc-pro:*dormiō<ref:{{R:Nocentini|hw=dormire}} !!! {{R:itc:EDL|pages=179-180|head=dormiō, -īre}}>|tree=1|text=++}} 音變規律 {{m|ine-pro||*-mj-}} > {{m+|itc-pro||*-nj}} 很可能由於原始印歐語的音節劃分規則而未作用於本詞。帶有成音節 {{m|ine-pro||*m̥}} 的序列 {{m|ine-pro|*gʷem-|*gʷm̥y-}} 演變為 {{m|la|venio|veni-}},而帶有成音節 {{m|ine-pro||*r̥}} 的 {{m|ine-pro||*dr̥my-}} 則演變為 {{m|la||dormi-}}。如果原始印歐語形式被劃分音節為 {{m|ine-pro||*drm̥y-}},預期的拉丁語演變結果將會是 {{m|la||**dreniō}}。<ref>{{R:ine:Byrd:2015|page=141}}</ref> 同源詞包括{{cog|cu|дрѣмати||打瞌睡,打盹}}、{{cog|ru|дрема́ть}}、{{cog|sa|द्राति||睡覺}}、{{cog|grc|δαρθάνω||睡覺}}。 ===發音=== * {{la-IPA|dormiō}} ===動詞=== {{la-verb|4++.pass-impers|dormiō}} # [[睡]],[[睡覺]] #: {{syn|la|dormītō|cubō}} #: {{ant|la|expergīscor|vigilō}} #: {{ux|la|Eō '''dormītum'''.|我準備去'''睡覺'''。}} #: {{ux|la|'''Dormītūrī''' tē salūtant.|'''將要入睡'''的人向您致敬。}} #* {{Q|la|Catullus|Carmina|5|quote=Nōbīs cum semel occidit brevis lūx, nox est perpetua ūna '''dormienda'''.|t=當短暫的光芒在我們身上落下,我們必須'''長眠'''於無盡的黑夜中。}} #* {{Q|la|Horace|Sermones|2|1|7|quote=vērum nequeō '''dormīre'''|t=說實話,我無法'''入睡'''。}} #* '''公元4世紀''',斯特里東的耶柔米(聖耶柔米),《武加大譯本》,24:27: #*: {{quote|la|parum inquam '''dormiēs''' modicum '''dormitābis''' pauxillum manūs cōnserēs ut quiēscās|再'''睡'''片時,'''打盹'''片時,抱著手躺臥片時。{{small|(和合本《箴言》24:33)}}}} ====變位==== {{la-conj|4++.pass-impers|dormiō}} ====派生詞彙==== {{col|la |addormiō |adormīscō |condormiō |condormīscō |dormīscō |dormītō |ēdormiō |ēdormīscō |indormiō |obdormīscō |perdormīscō |redormiō }} ====派生語彙==== {{top4}} * 巴爾幹羅曼語支: ** {{desc|rup|dormu}} ** {{desc|ruo|durmi}} ** {{desc|ruq|dorm}} ** {{desc|ro|dormi|alts=1}} * 達爾馬提亞語: ** {{l|dlm|dormir}} * 義大利-羅曼語支: ** {{desc|co|dorma|dorme}} **: {{desc|sdn|drummí}} ** {{desc|it|dormire}} ** {{desc|nap|dormire}} ** {{desc|sdc|drummí}} ** {{desc|scn|dòrmiri|alts=1}} * 帕達尼亞語支: ** {{desc|egl|durmîr}} ** {{desc|fur|durmî}} ** {{desc|lld|dormir|alts=1}} ** {{desc|lmo|dormì|durmì|dòrmer}} ** {{desc|pms|deurme|durmì|drumì}} ** {{desc|rgn|durmì}} ** {{desc|rm|durmir|alts=1}} ** {{desc|vec|dormir}} * 高盧-羅曼語支: ** {{desc|ca|dormir}} ** {{desc|frp|dormir|alt=dormir, dromir}} ** {{desctree|fro|dormir}} ** {{desctree|pro|dormir}} * 西伊比利亞語支: ** {{desc|an|dormir}} ** {{desc|roa-ole||-}} *** {{desc|ast|dormir}} *** {{desc|roa-leo|dormire}} *** {{desc|mwl|drumir}} ** {{desc|roa-opt|dormir|durmir}} *** {{desc|gl|durmir|dormir}} *** {{desc|pt|dormir}} {{see desc}} ** {{desc|osp|dormir}} *** {{desc|lad|durmir}} *** {{desc|es|dormir}} * 海島羅曼語支: ** {{desc|sc|dormire|dormiri|drommire|drumire}} * 借詞: ** {{desc|bor=1|is|dorma}} {{bottom}} ===參考資料=== {{reflist}} * {{R:la:L&S}} * {{R:la:Elementary Lewis}} * {{R:la:Gaffiot}} * {{R:la:M&A}} {{cln|la|不及物動詞}} {{C|la|睡眠}} 2w2iyqm2ly3dw1nxs5dmy0l1ceskpk6 gyvūnas 0 1412472 9813767 9777476 2026-06-15T13:33:33Z TongcyDai 53191 9813767 wikitext text/x-wiki ==立陶宛語== {{wikipedia|Gyvūnai|lang=lt}} ===詞源=== 與 {{m|lt|gyvénti}} 有關。 ===發音=== {{lt-pr|gyvū̃nas}} ===名詞=== {{lt-noun|m|gyvūnai|2|sg=gyvū̃nas|pl=gyvū̃nai}} # [[動物]] ====變格==== {{lt-noun-m-as-2|gyvūn|gyvū̃n}} [[Category:立陶宛語 動物]] ev7roywho7zsg0lzxsvdml9dlbprafb nebeln 0 1428339 9814434 9564729 2026-06-16T06:25:15Z Sayonzei 40728 /* 德語 */ 9814434 wikitext text/x-wiki {{also|Nebeln}} {{also|Nebeln}} ==德語== ===詞源=== {{inh+|de|gmh|nebelen}}、{{m|gmh|nibelen}},{{inh+|de|goh|nibulen}}。 ===發音=== * {{IPA|de|[ˈneːbl̩n]|[ˈneːbəln]}} * {{audio|de|De-nebeln.ogg}} * {{audio|de|De-nebeln2.ogg|a=柏林}} * {{hyphenation|de|ne|beln}} ===動詞=== {{de-verb}} # [[起霧]] # 放[[煙幕]] # [[噴霧]] ====變位==== {{de-conj}} ====相關詞彙==== * {{l|de|Nebel||霧}} * {{l|de|Nebelung||十一月}} {{qualifier|棄用}} ===延伸閱讀=== * {{R:de:Duden}} * {{R:de:DWDS}} ecn684fo8pthh3f24x1eyezikbkzxn7 9814435 9814434 2026-06-16T06:25:25Z Sayonzei 40728 9814435 wikitext text/x-wiki {{also|Nebeln}} ==德語== ===詞源=== {{inh+|de|gmh|nebelen}}、{{m|gmh|nibelen}},{{inh+|de|goh|nibulen}}。 ===發音=== * {{IPA|de|[ˈneːbl̩n]|[ˈneːbəln]}} * {{audio|de|De-nebeln.ogg}} * {{audio|de|De-nebeln2.ogg|a=柏林}} * {{hyphenation|de|ne|beln}} ===動詞=== {{de-verb}} # [[起霧]] # 放[[煙幕]] # [[噴霧]] ====變位==== {{de-conj}} ====相關詞彙==== * {{l|de|Nebel||霧}} * {{l|de|Nebelung||十一月}} {{qualifier|棄用}} ===延伸閱讀=== * {{R:de:Duden}} * {{R:de:DWDS}} b0fksn81lp35730lwsdeb4v44efr2nr ⿱女子 0 1430145 9813908 7679343 2026-06-15T19:52:25Z 鬱鬱鬱ㄓㄥ 129813 9813908 wikitext text/x-wiki {{wrongtitle|title=[[File:⿱女子textclear.png|30px|class=skin-invert-image|⿱女子|link=]]}} ==漢字== {{Han char|head=[[File:⿱女子textclear.png|22px|class=skin-invert-image|⿱女子|link=]]|rn=38|rad=女|as=3|sn=6|four=|canj=|ids=⿱女子}} [[File:⿱女子centeredclear.png|thumb|125px|「[[好]]」的異體字。]] ==漢語== {{zh-see|好}} ===參考資料=== * {{R:twedu|A00883-003}} f6ldi8bmmzke2neqap5jaer21c42dkm paukštis 0 1499615 9813727 9804750 2026-06-15T13:26:53Z TongcyDai 53191 9813727 wikitext text/x-wiki ==立陶宛語== {{wp|lt:}} ===其他形式=== * {{alt|lt|paukštė||方言}} ===詞源=== {{root|lt|ine-pro|*pewt-}} 源自{{cog|ine-bsl-pro|*put-|*put-, *pout-}};對比{{cog|lv|putns}} < ''*put-inas''(對比{{cog|lt|-}}方言{{m|lt|pùtinas|t=公雞}});{{cog|sla-pro|*pъtakъ|*pъtákъ}}。立陶宛語形式可以解釋為[[o-級]] ''*pout-'' + {{m|lt|-tis}},以及前置音 ''-k-''。類似的例子可對比{{m|lt|šaukštas|t=湯匙}} < ''*šaud-tas'',{{m|lt|krikstas|t=洗禮}} < ''*krist-'',{{m|lt|pūkšlė|t=蕁麻疹}} < ''*pūt-slė''。 波羅的-斯拉夫語族詞根的起源尚不清楚。Smoczynski 最初提出與{{cog|ine-pro|*peh₂w-|*put-|兒童,幼崽}} 有關聯;對比{{cog|la|putus|t=男孩}}、{{cog|sa|पुत्र​|tr=putrá-|t=兒子,動物幼崽}}、{{m|sa|पोत|tr=póta​|t=動物幼崽}}、{{cog|ae|𐬞𐬎𐬚𐬭𐬀|𐬞𐬎𐬚𐬭𐬀-|兒子}}。此派生過程意味著波羅的-斯拉夫語族詞彙最初必定意為「雛鳥」;對比方言{{m|lt|paũtas|t=蛋}}、{{m|lt|putýtis|t=雛鳥}}。<ref>{{w|lang=en|Wojciech Smoczyński}} ('''1990''') [http://www.baltistica.lt/index.php/baltistica/article/view/2077/1985 'Etimologijos pastabos'] [詞源學筆記], ''Baltistica'', 卷26, 第2期, 第163-164頁.</ref> 然而,他似乎後來放棄了這個詞源假說,轉而將 {{m|lt||paũkštis}} 分析為源自早期的 {{m|lt||*paukstis}} < {{m|lt||*paustis}},這將是一個名詞派生詞,源自假設的 {{m|lt||*paustytis|t=從蛋中孵出}} < {{m|lt||*paus-styti}} < {{m|lt||*paut-styti}}(源自 {{m|lt|paũtas|t=蛋}} 的名詞派生動詞)。<ref>{{R:lt:SEJL|paũkštis|443}}</ref> 在該理論中,Smoczynski 認為{{m|lt||paũtas}} 來自派生出 {{m|lt|pū̃sti|t=吹}} 的同一個詞根的[[o-級]],其本義為「膨脹之物」。<ref>{{R:lt:SEJL|paũtas|443-4}}</ref> ===發音=== {{lt-pr|paũkštis}} ===名詞=== {{lt-noun|m|paũkščiai|2|head=paũkštis}} # [[鳥]]{{gloss|{{w|鳥綱}}的任何動物}} # {{lb|lt|口語}} [[狡猾]]、不值得[[信任]]的[[人]] ====變格==== {{lt-noun-m-tis-2|paukš|paũkš}} ====派生詞彙==== {{col|lt |paukščiukas |paukštinis |paukštiškas |paukštidė |paukštiena |paukštynas |paukščiauti |paukštinėti |paukštgaudys<g:m>,paukštgaudė<g:f> |paukštininkas<g:m>,paukštininkė<g:f> |audrapaukštis |paukštpienė |paukštšunis |paukštvanagis }} ===參考資料=== <references /> {{C|lt|人|鳥}} 5jzpjzz8ddkkqlrchtaa8difnitv4fi gyvatė 0 1535865 9813772 9777469 2026-06-15T13:52:40Z TongcyDai 53191 9813772 wikitext text/x-wiki {{also|gyvate|gyvatę}} ==立陶宛語== {{swp|lt:+s}} ===詞源=== 與 {{m|lt|gyvatà|t=生命}} 相關,源自{{der|lt|ine-bsl-pro|*gīˀwatás}},對比{{cog|sla-pro|*živòtъ|t=生命}}。詞義由「活物」發展而來。<ref>{{R:bat:EDBIL|180|gyvata}}</ref><ref>{{R:lt:ALEW|head=gyvãtė|p1.1=388|id=784}}</ref><ref>{{R:lt:LKEŽDUB}}</ref>詞根參見 {{m|lt|gývas|t=活的}}。 [[File:AD2009Aug07 Natrix helvetica 01.jpg|thumb|Gyvatė]] ===發音=== {{lt-pr|gyvãtė}} ===名詞=== {{lt-noun|f|gyvãtės|2|head=gyvãtė}} # [[蛇]],[[長蟲]] ====變格==== {{lt-noun-f-tė-2|gyva|gyvã}} ====派生詞彙==== {{col|lt |gyvatadatė<t:{{taxlink|Nerophis ophidion|species}}><lit:蛇針> |gyvatbarzdė<t:{{taxlink|Ophiopogon|genus}} spp.><lit:蛇鬚> |gyvatėdis<t:{{taxlink|Circaetus gallicus|species}}><lit:食蛇者> |gyvatgalvis<t:蛇頭;長著蛇頭的> |gyvatynas<t:蛇窩;多蛇的地方> |gyvatinis<t:與蛇有關的;蜿蜒的> |gyvatiškas<t:似蛇的;蜿蜒的> |gyvatukas<t:盤管;穀物清潔工具> |gyvatuodegis<t:長著蛇尾的;{{taxlink|Ophiura|genus}} spp.> |gyvatžolė<t:{{taxlink|Bistorta|genus}} spp.><lit:蛇草> |Gyvatė<t:[[巨蛇座]]> |gyvatnešis<t:{{taxlink|Ophiuchus|genus}}><lit:持蛇者> |žaliagyvatė<t:{{taxlink|Opheodrys|genus}}><lit:綠蛇> }} ===參考資料=== <references /> ===延伸閱讀=== * {{R:LKZ}} * {{R:lt:DŽ}} {{C|lt|蛇}} gbxa9ucwg9e0ycg6832660gtufys5g2 Wiktionary:啤酒馆/topic list 4 1705276 9814694 9812235 2026-06-16T11:53:40Z Cewbot 61744 [[User:Cewbot/log/20170915/configuration|生成議題列表:8個議題]] 9814694 wikitext text/x-wiki <!-- 本頁面由機器人自動更新。若要改進,請聯繫機器人操作者。 --> {| class="wikitable sortable mw-collapsible" style="float:left;" |- ! data-sort-type="number" style="font-weight: normal;" | <small>#</small> !! 💭 話題 !! <span title="發言數/發言人次 (實際上為計算簽名數)">💬</span> !! <span title="參與討論人數/發言人數">👥</span> !! 🙋 最新發言 !! data-sort-type="isoDate" | <span title="最後更新">🕒 <small>(UTC+8)</small></span> |- | style="text-align: right;" | 1 | style="max-width: 24em" | <small>[[:Wiktionary:啤酒馆#Subscribe_to_the_This_Month_in_Education_newsletter_-_learn_from_others_and_share_your_stories|Subscribe to the This Month in Education newsletter - learn from others and share your stories]]</small> | style="text-align: right;background-color: #fcc;" | 0 | style="text-align: right;background-color: #fcc;" | 0 | style="background-color: #ffd;" | | style="background-color: #ffd;" | |- | style="text-align: right;" | 2 | style="max-width: 24em" | <small>[[:Wiktionary:啤酒馆#Do_you_use_Wikidata_in_Wikimedia_sibling_projects?_Tell_us_about_your_experiences|Do you use Wikidata in Wikimedia sibling projects? Tell us about your experiences]]</small> | style="text-align: right;background-color: #fcc;" | 0 | style="text-align: right;background-color: #fcc;" | 0 | style="background-color: #ffd;" | | style="background-color: #ffd;" | |- | style="text-align: right;" | 3 | [[:Wiktionary:啤酒馆#Request_for_comment_(global_AI_policy)|Request for comment (global AI policy)]] | style="text-align: right;background-color: #fcc;" | 1 | style="text-align: right;background-color: #fcc;" | 1 | style="background-color: #bbb;" | [[User:MediaWiki message delivery|<small style="word-wrap: break-word; word-break: break-all;">MediaWiki message delivery</small>]] | style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2026-04-26T00:58:00.000Z" | 2026-04-26 <span style="color: blue;">08:58</span> |- | style="text-align: right;" | 4 | [[:Wiktionary:啤酒馆#台灣分會2026年4月對話時間|台灣分會2026年4月對話時間]] | style="text-align: right;background-color: #fcc;" | 1 | style="text-align: right;background-color: #fcc;" | 1 | style="background-color: #bbb;" | [[User:MediaWiki message delivery|<small style="word-wrap: break-word; word-break: break-all;">MediaWiki message delivery</small>]] | style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2026-04-27T22:52:00.000Z" | 2026-04-28 <span style="color: blue;">06:52</span> |- | style="text-align: right;" | 5 | [[:Wiktionary:啤酒馆#Template:place|Template:place]] | style="text-align: right;" | 3 | style="text-align: right;" | 2 | style="background-color: #bbb;" | [[User:TongcyDai|TongcyDai]] | style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2026-05-14T06:20:00.000Z" | 2026-05-14 <span style="color: blue;">14:20</span> |- | style="text-align: right;" | 6 | style="max-width: 24em" | <small>[[:Wiktionary:啤酒馆#文≠語;詞典而言,可能用【×文】%3E【×語】統一比較好。|文≠語;詞典而言,可能用【×文】&gt;【×語】統一比較好。]]</small> | style="text-align: right;" | 3 | style="text-align: right;" | 3 | style="background-color: #bbb;" | [[Special:Contributions/~2026-29492-30|<span style="color: #c20;">~2026-29492-30</span>]] | style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2026-05-17T07:28:00.000Z" | 2026-05-17 <span style="color: blue;">15:28</span> |- | style="text-align: right;" | 7 | [[:Wiktionary:啤酒馆#台灣分會2026年5對話時間|台灣分會2026年5對話時間]] | style="text-align: right;background-color: #fcc;" | 1 | style="text-align: right;background-color: #fcc;" | 1 | style="background-color: #ddd;" | [[User:MediaWiki message delivery|<small style="word-wrap: break-word; word-break: break-all;">MediaWiki message delivery</small>]] | style="background-color: #ddd;" data-sort-type="isoDate" data-sort-value="2026-05-26T14:09:00.000Z" | 2026-05-26 <span style="color: blue;">22:09</span> |- | style="text-align: right;" | 8 | [[:Wiktionary:啤酒馆#請立刻參與2026年U4C選舉投票|請立刻參與2026年U4C選舉投票]] | style="text-align: right;background-color: #fcc;" | 1 | style="text-align: right;background-color: #fcc;" | 1 | style="background-color: #ddd;" | [[User:Keegan (WMF)|Keegan (WMF)]] | style="background-color: #ddd;" data-sort-type="isoDate" data-sort-value="2026-05-27T17:15:00.000Z" | 2026-05-28 <span style="color: blue;">01:15</span> |} {| class="wikitable mw-collapsible mw-collapsed" style="float: left; margin-left: .5em;;{{#if:{{{no_time_legend|}}}|display:none;|}}" ! title="From the latest bot edit" | 發言更新圖例 |- | style="background-color: #efe;" | * 最近一小時內 |- | style="background-color: #eef;" | * 最近一日內 |- | | * 一週內 |- | style="background-color: #ddd;" | * 一個月內 |- | style="background-color: #bbb;" | * 逾一個月 |- ! 特殊狀態 |- | style="text-decoration: line-through" | 已移動至其他頁面<br />或完成討論之議題 |- ! 手動設定 |- | style="max-width: 12em;" | <small>當列表出現異常時,<br />請先檢查[[User:Cewbot/log/20170915/configuration|設定]]是否有誤</small> |- |} {{Clear}} qigf5zsaa63a89umc50iu7x77m9wvzn Template:RQ:Fielding Tom Jones 10 1713473 9814634 9116722 2026-06-16T08:24:13Z TongcyDai 53191 9814634 wikitext text/x-wiki {{#invoke:quote|call_quote_template |en |author = [[w:亨利·菲尔丁|Henry Fielding]] |chapter = {{#invoke:string|replace|{{{chapter|{{{3|{{#invoke:string|replace|{{{chapter|{{{3|}}}}}}|'|’}}}}}}}}|’’|''}} |title = [[w:en:The History of Tom Jones, a Foundling|The History of Tom Jones, a Foundling]] |trans-title = {{w|湯姆·瓊斯 (小說)|棄兒湯姆·瓊斯的歷史}} |location = London |publisher = [[w:en:Andrew Millar|A[ndrew] Millar]],{{nb...|over-against Catharine-street in the Strand}} |year = 1749 |volume = {{#switch:{{uc:{{{volume|}}}{{{1|}}}}} | I|II|III|IV|V|VI = {{uc:{{{volume|{{{1|}}}}}}}} | {{maintenance line|<nowiki>please specify |volume=I to VI</nowiki>}} }} |section = {{#if:{{{book|}}}{{{2|}}} | book {{{book|{{{2|}}}}}} }} |pageparam = 4 |pageurl = https://books.google.com/books?id={{#switch:{{uc:{{{volume|}}}{{{1|}}}}} | I = o51 | II = IZ9 | III = 4J9 | IV = U6B | V = u6B | VI = Q6F }}aAAAAMAAJ&pg=PA{{{page|{{{pageref|{{{4|}}}}}}}}} |oclc = 928184292 |textparam = 5 |allowparams = chapter,3,volume,1,book,2,pageref,translation,t, }}<noinclude>{{documentation}}</noinclude> 2am7jl93n71yjladglvokd93zm25xkd 9814635 9814634 2026-06-16T08:25:01Z TongcyDai 53191 9814635 wikitext text/x-wiki {{#invoke:quote|call_quote_template |en |author = [[w:亨利·菲尔丁|Henry Fielding]] |chapter = {{#invoke:string|replace|{{{chapter|{{{3|{{#invoke:string|replace|{{{chapter|{{{3|}}}}}}|'|’}}}}}}}}|’’|''}} |title = [[w:en:The History of Tom Jones, a Foundling|The History of Tom Jones, a Foundling]] |trans-title = {{w|湯姆·瓊斯 (小說)|棄兒湯姆·瓊斯的歷史}} |location = London |publisher = [[w:en:Andrew Millar|A[ndrew] Millar]],{{nb...|over-against Catharine-street in the Strand}} |year = 1749 |volume = {{#switch:{{uc:{{{volume|}}}{{{1|}}}}} | I|II|III|IV|V|VI = {{uc:{{{volume|{{{1|}}}}}}}} | {{maintenance line|<nowiki>please specify |volume=I to VI</nowiki>}} }} |section = {{#if:{{{book|}}}{{{2|}}} | book {{{book|{{{2|}}}}}} }} |pageparam = 4 |pageurl = https://books.google.com/books?id={{#switch:{{uc:{{{volume|}}}{{{1|}}}}} | I = o51 | II = IZ9 | III = 4J9 | IV = U6B | V = u6B | VI = Q6F }}aAAAAMAAJ&pg=PA{{{page|{{{pageref|{{{4|}}}}}}}}} |oclc = 928184292 |textparam = 5 |allowparams = chapter,3,volume,1,book,2,pageref |propagateparams=translation,t }}<noinclude>{{documentation}}</noinclude> i5403iv9r886vauzttfyixj0utn5kd3 9814637 9814635 2026-06-16T08:25:31Z TongcyDai 53191 9814637 wikitext text/x-wiki {{#invoke:quote|call_quote_template |en |author = [[w:亨利·菲尔丁|Henry Fielding]] |chapter = {{#invoke:string|replace|{{{chapter|{{{3|{{#invoke:string|replace|{{{chapter|{{{3|}}}}}}|'|’}}}}}}}}|’’|''}} |title = [[w:en:The History of Tom Jones, a Foundling|The History of Tom Jones, a Foundling]] |trans-title = {{w|湯姆·瓊斯 (小說)|棄兒湯姆·瓊斯的歷史}} |location = London |publisher = [[w:en:Andrew Millar|A[ndrew] Millar]],{{nb...|over-against Catharine-street in the Strand}} |year = 1749 |volume = {{#switch:{{uc:{{{volume|}}}{{{1|}}}}} | I|II|III|IV|V|VI = {{uc:{{{volume|{{{1|}}}}}}}} | {{maintenance line|<nowiki>please specify |volume=I to VI</nowiki>}} }} |section = {{#if:{{{book|}}}{{{2|}}} | book {{{book|{{{2|}}}}}} }} |pageparam = 4 |pageurl = https://books.google.com/books?id={{#switch:{{uc:{{{volume|}}}{{{1|}}}}} | I = o51 | II = IZ9 | III = 4J9 | IV = U6B | V = u6B | VI = Q6F }}aAAAAMAAJ&pg=PA{{{page|{{{pageref|{{{4|}}}}}}}}} |oclc = 928184292 |textparam = 5 |allowparams = chapter,3,volume,1,book,2,pageref |propagateparams=translation,t }}<noinclude>{{documentation}}{{quotecat|en}}</noinclude> cshqz3wiklowurfoj5m6cfj6nvihhgq -aĵo 0 1862767 9814658 7189398 2026-06-16T10:15:34Z TongcyDai 53191 9814658 wikitext text/x-wiki {{also|ajo|ajó|aĵo|ajö|-ajo|-ajö|a'jö}} ==世界語== ===其他寫法=== * {{alter|eo|-ajho||H-系統拼寫}} * {{alter|eo|-ajxo||X-系統拼寫}} ===詞源=== {{etymon|eo|:der|la-vul:-āticum|tree=1}} 源自{{der|eo|roa}},最終源自{{der|eo|VL.|-āticum}}。對照{{cog|fr|-age}}、{{cog|es|-aje}}、{{cog|it|-aggio}}。 ===發音=== {{eo-IPA|aĵo}} ===後綴=== {{head|eo|後綴}} # {{non-gloss definition|由其製成或具有其性質的東西。}} #: {{suffixusex|eo|seka|t1=乾的|sekaĵo|t2=乾貨}} #: {{suffixusex|eo|frukto|t1=水果|fruktaĵo|t2=水果做的東西}} #: {{suffixusex|eo|nova|t1=新的|novaĵo|t2=新穎、新奇的事物}}、{{m|eo|novaĵoj|t=新聞}} ====派生詞彙==== {{suffixsee|eo}} {{eo BRO|1}} {{Universala Vortaro}} ====參見==== * {{l|eo|aĵo}} hd4150hmfpipytrfvnr2z14orslsi19 兒童賣淫 0 1898843 9814323 7613998 2026-06-16T05:44:34Z YeBoy371 43905 /* 動詞 */ 9814323 wikitext text/x-wiki ==漢語== {{zh-forms|s=儿童卖淫|type=22}} {{zh-wp}} ===發音=== {{zh-pron |m=értóng màiyín |c=ji4 tung4 maai6 jam4 }} ===名詞=== {{zh-noun}} # 以[[金錢]]或其他代價[[誘拐]]或提供[[兒童]]與其或其他人進行[[性行為]]的舉動 ====翻譯==== {{trans-top|涉及兒童的賣淫行為}} * 丹麥語英語:{{t|da|børneprostitution|c}} * 英語:{{t+|en|child prostitution}} * 日語:{{t|ja|児童売春|tr=じどう ばいしゅん, jidō baishun}} * 挪威語:{{t|no|barneprostitusjon|m}} * 波蘭語: {{t|pl|dziecięca prostytucja|f}} * 泰語: {{t|th|โสเภณีเด็ก|m}} {{trans-bottom}} {{zh-cat|孩童|賣淫}} 6uqislf27c8ni94f0x0u763pgqueybh 9814324 9814323 2026-06-16T05:45:28Z YeBoy371 43905 /* 名詞 */ 9814324 wikitext text/x-wiki ==漢語== {{zh-forms|s=儿童卖淫|type=22}} {{zh-wp}} ===發音=== {{zh-pron |m=értóng màiyín |c=ji4 tung4 maai6 jam4 }} ===名詞=== {{head|zh|名詞}} # 以[[金錢]]或其他代價[[誘拐]]或提供[[兒童]]與其或其他人進行[[性行為]]的舉動 ====翻譯==== {{trans-top|涉及兒童的賣淫行為}} * 丹麥語英語:{{t|da|børneprostitution|c}} * 英語:{{t+|en|child prostitution}} * 日語:{{t|ja|児童売春|tr=じどう ばいしゅん, jidō baishun}} * 挪威語:{{t|no|barneprostitusjon|m}} * 波蘭語: {{t|pl|dziecięca prostytucja|f}} * 泰語: {{t|th|โสเภณีเด็ก|m}} {{trans-bottom}} {{zh-cat|孩童|賣淫}} 2jlf9n88kj81cc7h3vltt0n87cw96h2 9814325 9814324 2026-06-16T05:59:42Z Sayonzei 40728 /* 漢語 */ 9814325 wikitext text/x-wiki ==漢語== {{zh-forms|s=儿童卖淫|type=22}} {{zh-wp}} ===發音=== {{zh-pron |m=értóng màiyín |c=ji4 tung4 maai6 jam4 |cat=n }} ===名詞=== {{head|zh|名詞}} # 以[[金錢]]或其他代價[[誘拐]]或提供[[兒童]]與其或其他人進行[[性行為]]的舉動 ====翻譯==== {{trans-top|涉及兒童的賣淫行為}} * 丹麥語英語:{{t|da|børneprostitution|c}} * 英語:{{t+|en|child prostitution}} * 日語:{{t|ja|児童売春|tr=じどう ばいしゅん, jidō baishun}} * 挪威語:{{t|no|barneprostitusjon|m}} * 波蘭語: {{t|pl|dziecięca prostytucja|f}} * 泰語: {{t|th|โสเภณีเด็ก|m}} {{trans-bottom}} {{zh-cat|孩童|賣淫}} 6guqyu6ucqzeafq19qb9m2v4rb2uji2 Module:Affix/pseudo-loan 828 2054342 9814645 8529673 2026-06-16T10:06:45Z TongcyDai 53191 9814645 Scribunto text/plain local export = {} local debug_force_cat = false -- set to true for testing local m_affix = require("Module:affix") local pseudo_loan_by_source = { ["ar"] = "阿拉伯語", ["de"] = "德語", ["en"] = "英語", ["es"] = "西班牙語", ["fr"] = "法語", ["it"] = "意大利語", ["ja"] = "日語", ["la"] = "拉丁語", } local function get_pseudo_loan_text(lang, source, has_parts, nocap) local langcode = lang:getCode() local sourcecode = source:getCode() local function glossary_pseudo_loan_link(display) return "[[Appendix:Glossary#pseudo-loan|" .. display .. "]]" end local text if langcode == "ja" and sourcecode == "en" then text = "{{m|ja|和製英語}} (" .. glossary_pseudo_loan_link("偽英語") .. ")" text = mw.getCurrentFrame():preprocess(text) elseif pseudo_loan_by_source[sourcecode] then text = "偽" .. pseudo_loan_by_source[sourcecode] else text = "偽" .. source:getCanonicalName() end if has_parts then text = text .. ",源自" end return text end function export.show_pseudo_loan(data) local parts_formatted = {} local categories = {} if not nocat then table.insert(categories, "源自" .. data.source:getCanonicalName() .. "的偽借詞") table.insert(categories, "派生自" .. data.source:getCanonicalName() .. "的詞") end -- Make links out of all the parts for i, part in ipairs(data.parts) do part.part_lang = part.lang -- When the part is in the source language, we need to use `source` so the part gets linked correctly. Otherwise, -- `data.lang` will be used, which is correct, because the value is used as the destination language in -- derived-from categories. An example is [[Ego-Shooter]], a German pseudo-loan from English but where the -- first part is from Latin. part.lang = part.lang or data.source part.sc = part.sc or data.sc table.insert(parts_formatted, m_affix.link_term(part, data)) end local text_sections = {} if not data.notext then table.insert(text_sections, get_pseudo_loan_text(data.lang, data.source, #data.parts > 0, data.nocap)) end table.insert(text_sections, m_affix.join_formatted_parts { data = data, parts_formatted = parts_formatted, categories = categories} ) return table.concat(text_sections) end return export mqpzth2d39y4kpii7qst5znjzngfodv camminus 0 2110843 9813904 9428820 2026-06-15T19:41:19Z TongcyDai 53191 9813904 wikitext text/x-wiki ==拉丁語== ===其他形式=== * {{alter|la|cāmīnus}} ===詞源=== {{etymon|la|title=cammīnus|:bor|cel-gau:*kamman<ety:inh<cel-pro:*kanxsman<id:步伐>>>|:af|-īnus|id=道路|tree=1}} 7世紀末首次見於西班牙文獻。{{bor+|la|cel-gau|*kamman}},派生自{{der|la|cel-pro|*kanxsman}};比較{{cog|xce|kamanom}} 和{{cog|ga|céim|t=步,程度}}。 ===發音=== * {{IPA|la|/kamˈminos/|a=PIWR}} ===名詞=== {{la-noun|cammīnus<2>}} {{tlb|la|LL.|或|ML.}} # [[道]],[[路]] ====變格==== {{la-ndecl|cammīnus<2>}} ====派生詞彙==== * {{l|VL.|*cammīnō}} ====派生語彙==== {{top2}} * {{desc|an|camino|camín}} * {{desc|ast|camín|caminu}} * {{desc|ca|camí}} * {{desc|ext|caminu}} * {{desc|fr|chemin}} * {{desc|it|cammino}} * {{desc|roa-leo|camín}} * {{desc|lij|camìn}} * {{desc|mwl|cammino}} * {{desc|nrf|c'mîn}} * {{desc|oc|camin}} * {{desctree|roa-opt|camỹo}} * {{desc|scn|caminu}} * {{desc|es|camino}} * {{desc|vec|camìn|camin}} {{bottom}} ====參見==== * {{l|la|camīnus}} ===參考資料=== * W. Meyer-Lübke: ''Romanisches etymologisches Wörterbuch''. Heidelberg: Carl Winter’s Universitätsbuchhandlung, 1911. 68r7hh33y7f9b2hijwhv7dsvf4rrah1 User:Sayonzei/Kotori 2 2129326 9814218 9813079 2026-06-16T01:34:08Z Sayonzei 40728 9814218 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}}--> ===加泰=== *一個-ar結尾的普通加泰羅尼亞語動詞(連同本體)理論上可產出'''44'''個新詞條。<br> :{{col3|ca|}} ===葡加利=== *一個-ar結尾的普通葡萄牙語動詞(連同本體)理論上可產出'''53'''個新詞條;但需注意,過去分詞可能不在accel範圍內。<br> :{{col3|pt|}}<!--明日:--> ===西=== *一個-ar結尾的普通西班牙語動詞(連同本體、不含合詞)理論上可產出'''58'''個新詞條。<br> :{{col3|es|}}<!--明日: ;需自行創建 :{{col3|es|}}--> ===德語=== :{{col3|de|}} ===拉丁語=== :{{col3|la|}}<!--明日:--> :{{col3|la|}}<!--明日:--> ===意大利語=== :{{col3|it|}}<!--明日:--> ===俄語=== :{{col3|ru|}} :{{col3|ru|инсульт}} 3ko8aayv9hw7qgtjgk0lz0k2hhmijg4 bråț 0 2206786 9813859 7829613 2026-06-15T17:20:08Z TongcyDai 53191 9813859 wikitext text/x-wiki {{also|Brat|BRAT|brat|brať|brát|braț|brät|Brät}} ==伊斯特羅-羅馬尼亞語== ===詞源=== {{inh+|ruo|la|brachium}}、{{m|la|bracchium}};源自{{der|ruo|grc|βραχίων}}。對照{{cog|ro|braț}}。 ===發音=== * {{IPA|ruo|[ˈbrɔt͡s]}} ===名詞=== {{head|ruo|名詞|g=n|複數|bråțe|定指單數|bråțu|定指複數|bråțele}} # {{lb|ruo|解剖學}} [[手臂]] {{C|ruo|四肢}} av6e5w5ikfm6e607d5swwfiwklhdyia vouloir dire 0 2237310 9814220 7870179 2026-06-16T03:02:45Z Hzy980512 19278 9814220 wikitext text/x-wiki ==法语== ===词源=== {{lit|想说}}。对比其他{{w|罗曼语系}}语言中的大量类似构造:{{cog|it|volere dire}}、{{cog|ca|voler dir}}、{{cog|es|querer decir}}、{{cog|pt|querer dizer}}、{{cog|gl|querer dicir}}和{{cog|nl|willen zeggen}}。 ===发音=== * {{fr-IPA}} * {{audio|fr|Fr-vouloir dire.ogg|音频}} ===动词=== {{fr-verb}} # [[意思]]是,[[意味]]着 #: {{syn|fr|signifier}} #: {{uxi|fr|Que '''veut dire''' cette locution ?|这个词组'''是'''什么'''意思'''?}} #: {{uxi|fr|Qu'est-ce que ça '''veut dire''' ?|那'''是'''什么'''意思'''?}} #: {{uxi|fr|Ça ne '''veut''' rien '''dire'''.|那没什么意义。}} ====变位==== * 见{{m|fr|vouloir}},这个构式中,{{m|fr|dire}}不改变。 q3ch8jms3l065apvx3hkp60js60k8b4 -icus 0 2357688 9814668 8023944 2026-06-16T10:39:26Z TongcyDai 53191 9814668 wikitext text/x-wiki {{also|Icus|ICUs}} ==荷蘭語== ===詞源=== 源自 {{der|nl|la|-icus}}。 ===發音=== * {{audio|nl|Nl--icus.ogg}} ===後綴=== {{head|nl|後綴}} # 表示「……的」或「……學家/學者」 ====派生詞彙==== {{suffixsee|nl}} ==拉丁語== ===詞源1=== {{etymon|la|id=形容詞後綴|:inh|itc-pro:*-ikos<id:形容詞後綴>|tree=1}} 源自 ''i''-詞幹 + {{m|la|-cus}},在某些原始情況下出現,後來被自由使用。與 {{cog|grc|-ικός}}、{{cog|gem-pro|*-gaz|*-igaz}}({{cog|goh|-}} 和 {{cog|ang|-ig}}、{{cog|got|-𐌴𐌹𐌲𐍃}})、{{cog|sa|-इक}}、{{cog|sla-pro|*-ьcь}}(最後一個已化為名詞性後綴,但最初可能也用於形容詞功能)同源。 ====發音==== * {{la-IPA|-icus}} {{qualifier|倒數第三個音節重音}} ====後綴==== {{la-suffix-adj|-icus}} # {{lb|la|構成[[形容詞]]}} ……的;關於……的;屬於……的;源自……的;與……相關的 #: {{sufex|la|cīvis|-icus|cīvicus|t1=公民|t3=公民的;與公民有關的}} #: {{suffixusex|la|Gallus|gloss1=高盧人;高盧的|gallicus|gloss2=關於高盧或高盧人的;高盧的}} #: {{sufex|la|bellum|-icus|bellicus|t1=戰爭|t3=戰爭的;軍事的;好戰的}} #: {{sufex|la|taxus|-icus|taxicus|t1=紅豆杉|t3=紅豆杉的,源自紅豆杉的}} #: {{sufex|la|imber|-icus|imbricus|t1=雨|t3=雨的;帶來雨水的}} #: {{suffixusex|la|metallum|t1=金屬|metallicus|t2=金屬的}} #: {{suffixusex|la|ūnus|gloss1=一|ūnicus|gloss2=單一的,獨特的}} # {{non-gloss|用於從其他名詞構成一些[[名詞化]]的名詞}} #: {{sufex|la|manus|-icus|manica|g1=f|t1=手|alt2=-ica|t3=袖子}} =====用法說明===== 後綴 {{m|la|-icus}} 常加在[[名詞]]後,有時加在[[形容詞]]後,很少加在[[動詞]]後(如 {{m|la|medeor}} > {{m|la|medicus}})。它通常附加於[[族名]](國家、部落或民族的名稱),例如 {{m|la|italus|t=義大利的;義大利人}}。拉丁語中有許多以 {{m|la||-icus}} 結尾的單詞並非在拉丁語中構成,而是借自以 {{m|grc|-ικός}} 結尾的希臘語單詞:例如 {{m|la|tragicus}} 源自 {{m|grc|τραγικός}}。 =====變格===== {{la-adecl|-icus}} =====近義詞===== * {{l|la|-ānus}}、{{l|la|-ēnsis}} =====派生詞彙===== * {{l|la|-ticus}} ** {{l|la|-āticus}} {{suffixsee|la}} =====派生語彙===== {{top2}} * {{desc|rup|-ic}} * {{desc|af|-ies|bor=1}} * {{desc|ast|-icu}} * {{desc|ca|-ic}} * {{desc|nl|-icus|bor=1}} * {{desc|bor=1|en|-ic|-ick}} {{qualifier|棄用}} * {{desc|fr|-ique|bor=1}} * {{desc|gl|-ico}} * {{desc|hu|-ikus|bor=1}} * {{desc|it|-ico}} * {{desc|bor=1|pt|-ico|-igo}} * {{desc|pt|-ego}} * {{desc|ro|-ec|-ic}} * {{desc|scn|-icu}} * {{desc|es|-ico|bor=1}} * {{desc|vec|-ego}} {{bottom}} ===詞源2=== {{etymon|la|title=-īcus|id=長|:der|ine-pro:*-kos|tree=1}} 可能最終擴展自 {{der|la|ine-pro|*-kos}}、{{m|ine-pro|*-ḱos}}([[#詞源1|詞源1]]),其中的 {{m|la||-ī-}} 可能來自工具格形式。<ref>{{R:itc:EDL|head=amō|page=39}}</ref> 對照 {{m|la|-ūcus}} 以及 {{m|la|-ītus}}。亦對照其他包含軟顎音後綴的單詞,如 {{m|la|fēlīx}}。 ====發音==== * {{la-IPA|-īcus}} ====後綴==== {{qualifier|名詞}} {{la-suffix-noun|-īcus<2>|g=m|f=-īca}} {{-}} {{qualifier|形容詞}} {{la-suffix-adj|-īcus}} # {{non-gloss|用於從動詞或名詞構成名詞}} #: {{sufex|la|lectus|-īcus|lectīca|t1=床|alt2=-īca|t3=轎子}} # {{non-gloss|用於從動詞或名詞構成形容詞}} #: {{sufex|la|pudeō|-īcus|pudīcus|alt1=pudet|t1=使羞愧|t3=貞潔的,純潔的}} =====變格===== {{box|title=名詞| {{la-ndecl|-īcus<2>}} {{la-ndecl|-īca<1>}}}} {{box|title=形容詞| {{la-adecl|-īcus}}}} =====派生詞彙===== {{suffixsee|la|id=長}} ===參考資料=== <references/> qwyzfr8paq1ag7dz8s6pelnpe199i3i 9814669 9814668 2026-06-16T10:39:37Z TongcyDai 53191 9814669 wikitext text/x-wiki {{also|Icus|ICUs}} ==荷蘭語== ===詞源=== 源自{{der|nl|la|-icus}}。 ===發音=== * {{audio|nl|Nl--icus.ogg}} ===後綴=== {{head|nl|後綴}} # 表示「……的」或「……學家/學者」 ====派生詞彙==== {{suffixsee|nl}} ==拉丁語== ===詞源1=== {{etymon|la|id=形容詞後綴|:inh|itc-pro:*-ikos<id:形容詞後綴>|tree=1}} 源自 ''i''-詞幹 + {{m|la|-cus}},在某些原始情況下出現,後來被自由使用。與 {{cog|grc|-ικός}}、{{cog|gem-pro|*-gaz|*-igaz}}({{cog|goh|-}} 和 {{cog|ang|-ig}}、{{cog|got|-𐌴𐌹𐌲𐍃}})、{{cog|sa|-इक}}、{{cog|sla-pro|*-ьcь}}(最後一個已化為名詞性後綴,但最初可能也用於形容詞功能)同源。 ====發音==== * {{la-IPA|-icus}} {{qualifier|倒數第三個音節重音}} ====後綴==== {{la-suffix-adj|-icus}} # {{lb|la|構成[[形容詞]]}} ……的;關於……的;屬於……的;源自……的;與……相關的 #: {{sufex|la|cīvis|-icus|cīvicus|t1=公民|t3=公民的;與公民有關的}} #: {{suffixusex|la|Gallus|gloss1=高盧人;高盧的|gallicus|gloss2=關於高盧或高盧人的;高盧的}} #: {{sufex|la|bellum|-icus|bellicus|t1=戰爭|t3=戰爭的;軍事的;好戰的}} #: {{sufex|la|taxus|-icus|taxicus|t1=紅豆杉|t3=紅豆杉的,源自紅豆杉的}} #: {{sufex|la|imber|-icus|imbricus|t1=雨|t3=雨的;帶來雨水的}} #: {{suffixusex|la|metallum|t1=金屬|metallicus|t2=金屬的}} #: {{suffixusex|la|ūnus|gloss1=一|ūnicus|gloss2=單一的,獨特的}} # {{non-gloss|用於從其他名詞構成一些[[名詞化]]的名詞}} #: {{sufex|la|manus|-icus|manica|g1=f|t1=手|alt2=-ica|t3=袖子}} =====用法說明===== 後綴 {{m|la|-icus}} 常加在[[名詞]]後,有時加在[[形容詞]]後,很少加在[[動詞]]後(如 {{m|la|medeor}} > {{m|la|medicus}})。它通常附加於[[族名]](國家、部落或民族的名稱),例如 {{m|la|italus|t=義大利的;義大利人}}。拉丁語中有許多以 {{m|la||-icus}} 結尾的單詞並非在拉丁語中構成,而是借自以 {{m|grc|-ικός}} 結尾的希臘語單詞:例如 {{m|la|tragicus}} 源自 {{m|grc|τραγικός}}。 =====變格===== {{la-adecl|-icus}} =====近義詞===== * {{l|la|-ānus}}、{{l|la|-ēnsis}} =====派生詞彙===== * {{l|la|-ticus}} ** {{l|la|-āticus}} {{suffixsee|la}} =====派生語彙===== {{top2}} * {{desc|rup|-ic}} * {{desc|af|-ies|bor=1}} * {{desc|ast|-icu}} * {{desc|ca|-ic}} * {{desc|nl|-icus|bor=1}} * {{desc|bor=1|en|-ic|-ick}} {{qualifier|棄用}} * {{desc|fr|-ique|bor=1}} * {{desc|gl|-ico}} * {{desc|hu|-ikus|bor=1}} * {{desc|it|-ico}} * {{desc|bor=1|pt|-ico|-igo}} * {{desc|pt|-ego}} * {{desc|ro|-ec|-ic}} * {{desc|scn|-icu}} * {{desc|es|-ico|bor=1}} * {{desc|vec|-ego}} {{bottom}} ===詞源2=== {{etymon|la|title=-īcus|id=長|:der|ine-pro:*-kos|tree=1}} 可能最終擴展自 {{der|la|ine-pro|*-kos}}、{{m|ine-pro|*-ḱos}}([[#詞源1|詞源1]]),其中的 {{m|la||-ī-}} 可能來自工具格形式。<ref>{{R:itc:EDL|head=amō|page=39}}</ref> 對照 {{m|la|-ūcus}} 以及 {{m|la|-ītus}}。亦對照其他包含軟顎音後綴的單詞,如 {{m|la|fēlīx}}。 ====發音==== * {{la-IPA|-īcus}} ====後綴==== {{qualifier|名詞}} {{la-suffix-noun|-īcus<2>|g=m|f=-īca}} {{-}} {{qualifier|形容詞}} {{la-suffix-adj|-īcus}} # {{non-gloss|用於從動詞或名詞構成名詞}} #: {{sufex|la|lectus|-īcus|lectīca|t1=床|alt2=-īca|t3=轎子}} # {{non-gloss|用於從動詞或名詞構成形容詞}} #: {{sufex|la|pudeō|-īcus|pudīcus|alt1=pudet|t1=使羞愧|t3=貞潔的,純潔的}} =====變格===== {{box|title=名詞| {{la-ndecl|-īcus<2>}} {{la-ndecl|-īca<1>}}}} {{box|title=形容詞| {{la-adecl|-īcus}}}} =====派生詞彙===== {{suffixsee|la|id=長}} ===參考資料=== <references/> 0xvwp1ketl2d9b3ipz1d85jq154cw04 0 2495830 9814671 8335041 2026-06-16T10:45:06Z TongcyDai 53191 9814671 wikitext text/x-wiki {{also|é|-e|-è|Appendix:"e"的變體}} ==加泰羅尼亞語== ===發音=== * {{ca-IPA|val=+}} ===後綴=== {{ca-adj}} # {{lb|ca|瓦倫西亞}} {{alt sp|ca|-è}} ==法語== ===發音=== * {{fr-IPA}} * {{homophones|fr|-ée|-ées|-és|-er|hey|et}} ===詞源1=== {{ety|fr|id=形容詞|:inh|frm:-é<id:形容詞>|tree=+}} {{inh+|fr|frm|-é|id=形容詞}},{{inh+|fr|fro|-é|id=形容詞}}、{{m|fro|-et}}、{{m|fro|-at}},{{inh+|fr|la|-ātus|id=形容詞}},{{inh+|fr|itc-pro|*-ātos}}。 {{doublet|fr|-at<id:形容詞><pos:形容詞>|-ate<q:化學>}}。 ====後綴==== {{fr-adj}} # {{lb|fr|語法}} {{ng|規則 {{m|fr|-er}} 動詞的[[過去分詞]]詞根後綴,是動詞不定式的變位形式}};與英語 [[-ed]]、[[-en]]、[[-n]] 同等。 =====派生詞彙===== {{suffixsee|fr}} ===詞源2=== {{ety|fr|id=抽象名詞|:inh|frm:-é<id:抽象名詞>|tree=+}} {{inh+|fr|frm|-é|id=抽象名詞}},{{inh+|fr|fro|-é|id=抽象名詞}},{{inh+|fr|la|-ātus|id=抽象名詞|pos=構成抽象名詞的後綴}}(第四變格),{{inh+|fr|itc-pro|*-tus}},{{inh+|fr|ine-pro|*-tus|pos=由動詞詞根派生動作名詞的後綴}}。 {{doublet|fr|-at<id:抽象名詞><pos:抽象名詞>}}。 ====後綴==== {{fr-noun|m}} # 構成表示[[地位]]、[[職位]]、[[轄區]]或[[領地]]的[[抽象名詞]] #: {{sufex|fr|évêque<t:主教>|évêché<t:主教轄區>}} #: {{sufex|fr|prieur<t:修道院院長>|prieuré<t:修道院>}} #: {{sufex|fr|dauphin<t:法國王太子>|dauphiné<t:王太子的領地>}} ====派生詞彙==== {{suffixsee|fr|id=抽象名詞}} ===詞源3=== {{ety|fr|id=-atum|:inh|la:-ātum<id:結果>}} {{inh+|fr|la|-ātum}}(第二變格),源自以 {{m|la|-ātus}} 結尾的完成時被動分詞的中性單數名詞化形式。 {{doublet|fr|-at<id:-atum><t:表示結果的後綴>}}。 ====後綴==== {{fr-noun|m}} # {{ng|構成表示動詞所表達動作之結果、產物、對象或影響的名詞}} #: {{sufex|fr|précipiter<t:沉澱>|précipité<t:沉澱物>}} ===詞源4=== 主語前位置 {{m|fr|-e}} 的[[諧音]]變化。 ====其他形式==== * {{alter|fr|-è||post-1990}} ====發音==== * {{fr-IPA|-è}} ====後綴==== {{fr-suffix form|動詞}} # {{inflection of|fr|-er||主語前|1|s|pres|indicative|;|主語前|1|s|pres|subj}} #: ''{{l|fr|pensé|pens'''é'''}}-je'' ==匈牙利語== ===發音=== * {{hu-IPA}} * {{rhymes|hu|eː|s=1}} ===詞源1=== 源自廢棄向格後綴(見下文)的分化,其語義變化可能經歷了「朝著他/她」 > 「給他/她」 > 「他/她的」之過程。<ref>{{R:Zaicz 2006}}</ref> ====後綴==== {{head|hu|後綴}} # {{senseid|hu|所有格}} {{lb|hu|非定語性所有格後綴}} ……[[的]]([[屬於]]……,……[[的]][[東西]])。{{ng|用於構成名詞的非定語性<!-- not necessarily predicative-->所有格<ref>{{R:Rounds 2001}} [https://books.google.hu/books?id=ItSTAgAAQBAJ&pg=PA143 第二版的相關頁面 (2009)] {{ISBN|9781135998929}}</ref>形式。對照英語代詞 ''{{m|en||mine, yours}}'' 等。其複數形式為 {{l|hu|-éi}}。}} #: {{m|hu|iskola||學校}} ― {{m|hu|iskoláé|iskolá'''é'''|屬於學校的,學校的,學校的東西}} #: {{uxi|hu|Ez a szék az iskolá'''é'''.|這把椅子'''屬於'''學校 / 是學校'''的'''。|q=作為表語}} #: {{m|hu|ház||房子}} ― {{m|hu|házé|ház'''é'''|房子的東西}} #: {{uxi|hu|A fa árnyéka nagy, a ház'''é''' még nagyobb.|樹的影子很大;房子'''的(影子)'''更大。|q=作為主語的一部分}} # {{lb|hu|非定語性所有格後綴|稍|口語}} ……[[的]]([[屬於]]……,……[[的]][[東西]])。{{ng|它在非正式場合也用於非定語性所有格的複數({{m|hu|-éi}} 顯得有些學究氣)。}} #: {{uxi|hu|Ezek a poharak a Pistá'''é'''.|這些杯子'''屬於'''史蒂夫 / 是史蒂夫'''的'''。}} #* '''2021''', Zsuzsa Mátraházi, ''Nádasdy Ádám: Még Arany János is követett el hibát műfordításban''(採訪{{w|lang=en|Ádám Nádasdy}}), HVG weekly:<sup>[https://hvg.hu/360/202148__nadasdy_adam__arany_tevedeserol_csavarmenetrol__nyelvi_trukkozes]</sup> #*: {{quote|hu|Azt vetették a szememre, hogy a fordításaim értelmesek, szépek és jól követhetők, de kevésbé költőiek, mint az elődeim'''é''', például Arany Jánosé, Babits Mihályé, Mészöly Dezsőé. |translation=我被指責說我的翻譯清晰、優美且易於理解,但不像我的前輩,例如{{w|lang=en|János Arany}}、{{w|lang=en|Mihály Babits}}和{{Wikidata entity link|Q303494}}的'''作品'''那樣富有詩意。}} ====參見==== * [[:Category:匈牙利語名詞變格形]] ===詞源2=== {{inh+|hu|urj-pro|*-j}},它曾作為雙元音的一部分(與名詞詞幹末尾的元音一起),後來變成了 {{m|hu|-á}}/{{m|hu|-é}}。<ref>{{R:Zaicz 2006}}</ref> ====後綴==== {{head|hu|後綴}} # {{lb|hu|棄用|格後綴|nocat=y}}{{cln|hu|帶有古舊詞義的後綴}} {{n-g|用於構成[[向格]],表示方向(「去哪裡」)或目的(「為了什麼」)。}} #: {{syn|hu|-k|-ni|-nyi|q1=具有類似功能的其他廢棄後綴}}<!-- cf. Zaicz for "-nyi": "A nyelvjárásokból ismert -ni, -nyi latívuszi irányragból vált mértékképzővé"; for "-k", see the etymologies of "leg-" and "-nak/-nek" --> #* '''1192–1195''', ''[[w:en:Funeral Sermon and Prayer|喪葬佈道與祈禱]]'', translated by Alan Jenkins (''In Quest of the Miracle Stag: The Poetry of Hungary,'' Vol.&nbsp;1, {{ISBN|9638602422}}, p.&nbsp;30) #*: Menýi miloſtben terumteve eleve mív iſemucut adamut. eſ odutta vola neki paradiſumut haʒó'''á'''. #*:: Mennyi malasztban (= kegyelemben) teremté (= teremtette) kezdetben [az Úr] [a] mi ősünket, Ádámot, és adta (vala) neki [a] paradicsomot ház'''zá'''. ''(現代匈牙利語)'' #*::: 上帝以其神聖的恩典創造了我們的祖先亞當,並賜予他伊甸園'''作為'''他的居所。 =====用法說明===== * {{qualifier|格後綴}}變體: *: '''{{l|hu|-á}}''' 加在後元音單詞上。 *: '''{{l|hu|-é}}''' 加在前元音單詞上。 =====派生詞彙===== {{col4|hu|title=連同其前元音變體 |alá,fölé |-ba//-be |ha |haza |-hoz//-hez//-höz |-i |ide,oda |-ig |-ra//-re |soká |szerte |tova |többé |-va//-ve |-vá//-vé |vissza }} ===詞源3=== ====助詞==== {{head|hu|助詞<!-- according to Nagyszótár -->|cat2=附著詞素}} {{tlb|hu|附著詞素}} # {{lb|hu|方言|主要|特蘭西瓦尼亞}} {{alternative form of|hu|-e||[[是否]]}} {{ng|用於一般疑問句的標記,前面總是用連字號連接。}} #: {{uxi|hu|Nem tudom, hogy sikerül'''-é'''.|我不知道它'''是否'''會成功。}} ===詞源4=== ====後綴==== {{head|hu|後綴}} # {{lb|hu|古舊|_|人稱後綴|nocat=y}}{{cln|hu|帶有古舊詞義的後綴}} {{ng|用於構成前元音動詞的第三人稱單數直陳式過去時限定形式。有關完整詞形變化,請參見[[Template:烏語:hu:conj-preterite|使用說明模板]]。}} #: {{syn|hu|-te|q=現代形式}} #: {{cot|hu|-á|q=用於後元音動詞}} #: {{uxi|hu|A virágokat néz'''é'''.|'''他/她看著'''花。}} <!-- "nézi vala" would be "was looking at…" --> ====參見==== * [[Template:烏語:hu:conj-preterite|包含其完整詞形變化的使用說明模板]] ===詞源5=== 參見 {{m|hu|-e}}。 ====其他形式==== * {{alter|hu|-i|id=所有格單數||方言,除了一些固定形式}} ====後綴==== {{head|hu|後綴}} # {{senseid|hu|結合}} {{combining form of|hu|-e|pos=所有格後綴}} {{n-g|在大多數[[Appendix:Hungarian suffixes#Case_endings|格後綴]]之前,除了[[正式狀態格]]的格後綴之外。}} #: {{afex|hu|feje|alt1=fej'''e'''|t1=他/她/它的頭|-n|fején|alt3=fej'''é'''n|t3=在他/她/它的頭上|nointerp=y}} =====用法說明===== 對於其在標準用法中出現的變體,參見 {{m|hu|-i|id=possessive singular|pos=作為第三人稱單數單一所有物所有格後綴的 ''-e'' 和 ''-é'' 的替代形式}}。 ===參考資料=== <references/> ===延伸閱讀=== * {{sense|是否}} {{R:ErtSz|onlylink=y}},重定向至 {{R:ErtSz|-e}} * {{sense|是否}} {{R:Nagyszotar|onlylink=y}},重定向至 {{R:Nagyszotar|-e}} ==意大利語== ===發音=== {{it-pr}} ===後綴=== {{it-suffix form|動詞}} # {{n-g|與詞幹連用,構成規則 {{m|it|-ere}} 動詞的[[第三人稱]][[遠過去時]]}} #: {{syn|it|-ette}} ==納瓦霍語== ===發音=== * {{IPA|nv|/-ɛ́/|[-é]}} ===後綴=== {{head|nv|後綴}} # {{qualifier|名詞化詞}} {{n-g|做……的人}} ====用法說明==== 類似於英語中的 ''[[-er#英語|-er]]'' 後綴,附在動詞上的 ''-é'' 後綴意思是「做[動詞]的人」。它是 {{l|nv|-í}} 的變體。 ====近義詞==== * {{l|nv|-í}} ==中古法語== ===詞源1=== {{ety|frm|id=形容詞|:inh|fro:-é<id:形容詞>|tree=+}} {{inh+|frm|fro|-é|id=形容詞}},{{inh+|frm|la|-ātus|id=形容詞}},{{inh+|frm|itc-pro|*-ātos}}。 ====後綴==== {{frm-adj|-ee|és|-ees}} # {{lb|frm|語法}} {{ng|規則 {{m|frm|-er}} 動詞的[[過去分詞]]詞根後綴,是動詞不定式的變位形式}};與英語 [[-ed]]、[[-en]]、[[-n]] 同等。 =====派生語彙===== * {{desc|fr|-é<id:形容詞><pos:形容詞>}} ===詞源2=== {{ety|frm|id=抽象名詞|:inh|fro:-é<id:抽象名詞>|tree=+}} {{inh+|frm|fro|-é|id=抽象名詞}},{{inh+|frm|la|-ātus|id=抽象名詞}},{{inh+|frm|itc-pro|*-tus}},{{inh+|frm|ine-pro|*-tus|pos=由動詞詞根派生動作名詞的後綴}}。 ====後綴==== {{frm-noun|m}} # 構成表示[[地位]]、[[職位]]、[[轄區]]或[[領地]]的[[抽象名詞]] #: {{sufex|frm|comte<t:伯爵>|comté<t:伯爵領地>}} #: {{sufex|frm|dauphin<t:法國王太子>|Dauphiné<t:王太子領地>}} =====派生語彙===== * {{desc|fr|-é<id:抽象名詞><pos:抽象名詞>}} ==古法語== ===其他形式=== * {{lang|fro|-e}} {{qualifier|手稿形式}} * {{l|fro|-et}} {{qualifier|12世紀或更早}} ===發音=== * {{IPA|fro|/ˈɛ/}} ===詞源1=== {{ety|fro|id=形容詞|:inh|la:-ātus<id:形容詞>|tree=+}} {{inh+|fro|la|-ātus}}(第一變格),{{inh+|fro|itc-pro|*-ātos}}。{{etydate|842}} 作 {{m|fro|-at}}(在《{{w|lang=en|Oaths of Strasbourg|斯特拉斯堡誓言}}》中的 {{m|fro|jurat}}) >({{etydate|c|1050|nocap=1}})《{{w|lang=en|Song of Roland|羅蘭之歌}}》中的 {{m|fro|-et}};形式 ''{{lang|fro|-é}}'' 首次出現在12世紀。 ====後綴==== {{head|fro|後綴|sort=e}} # {{non-gloss|用於構成規則 -er 動詞的過去分詞}} ====派生語彙==== * {{desctree|frm|-é<id:形容詞><pos:形容詞>}} ===詞源2=== {{ety|fro|id=抽象名詞|:inh|la:-ātus<id:抽象名詞>|tree=+}} {{inh+|fro|la|-ātus|id=抽象名詞}}(第四變格),{{inh+|fro|itc-pro|*-tus}},{{inh+|fro|ine-pro|*-tus|pos=由動詞詞根派生動作名詞的後綴}}。 ====後綴==== {{fro-noun|m}} # 構成表示[[地位]]、[[職位]]、[[轄區]]或[[領地]]的[[抽象名詞]] #: {{sufex|fro|conte<id:count><t:伯爵>|conté<t:伯爵領地>}} =====派生語彙===== * {{desctree|frm|-é<id:抽象名詞><pos:抽象名詞>}} ==斯洛溫語== ===詞源=== {{etymon|zlw-slv|id=名詞|:inh|sla-pro:*-ьje|tree=+|text=+}} ===發音=== {{zlw-slv-pr|h=-|r=-}} ===後綴=== {{head|zlw-slv|後綴|g=n}} # {{ng|構成表示地點的中性名詞,通常源自介詞短語}} # {{ng|由形容詞構成副詞,會引起軟化}} ====派生詞彙==== {{suffixsee|zlw-slv}} ====派生語彙==== * {{desc|zlw-slv|-ê}} ===參見=== * {{l|zlw-slv|-ô}} ==西班牙語== ===詞源=== {{inh+|es|la-vul|-āī}},{{inh+|es|la|-āvī}}。 ===後綴=== {{head|es|後綴變格形}} # {{es-verb form of|-ar}} 2o8hjvdbu2raw0zxj2xguek8gibdqum Module:Etymon 828 2560114 9813885 9740941 2026-06-15T18:02:30Z TongcyDai 53191 9813885 Scribunto text/plain --[=[ This module implements the {{etymon}} template for structured etymology data on Wiktionary. It enables the creation of etymology trees and text by parsing etymon chains, scraping linked pages for their own {{etymon}} data, and recursively building a tree of derivational relationships. Authors: - Original implementation: [[User:Ioaxxere]] - Full refactor (September 2025): [[User:Fenakhay]] ([[Special:Diff/86717746]]) Modules: - [[Module:etymon]]: main module handling parsing, validation, tree building, and page scraping - [[Module:etymon/data]]: keyword definitions, configuration, and status constants - [[Module:etymon/tree]]: etymology tree rendering - [[Module:etymon/text]]: etymology text generation - [[Module:etymon/categories]]: category generation logic - [[Module:etymon/tracking]]: tracking ]=] local export = {} local __state = { cached_etymon_args = {}, cached_etymon_pages = {}, cached_descendants_checks = {}, senseid_parent_etymon = {}, available_etymon_ids = {}, single_etymons = {}, entry_title = nil, entry_lang_code = nil, current_page_has_inline_etymology = false, current_page_has_redundant_etymology = false, used_idless_etymon = false, toplevel_has_inline_etymology = false, toplevel_redundant_etymology = false, toplevel_idless_etymon = false, has_mismatched_id = false, linked_page_multiple_etymons_idless = false, linked_page_partial_etymology_sections = false, partial_etymology_targets = {}, skip_partial_etymology_category = false, max_depth_reached = 0, total_nodes = 0, language_count = {}, toplevel_keyword_stats = {}, id_stats = nil, warnings = {}, } local function reset_invocation_state() __state.current_page_has_inline_etymology = false __state.current_page_has_redundant_etymology = false __state.used_idless_etymon = false __state.toplevel_has_inline_etymology = false __state.toplevel_redundant_etymology = false __state.toplevel_idless_etymon = false __state.has_mismatched_id = false __state.linked_page_multiple_etymons_idless = false __state.linked_page_partial_etymology_sections = false __state.max_depth_reached = 0 __state.total_nodes = 0 __state.language_count = {} __state.toplevel_keyword_stats = {} __state.warnings = {} end local M = require("Module:module loader").init({ require = { data = "Module:etymon/data", tree = "Module:etymon/tree", text = "Module:etymon/text", categories = "Module:etymon/categories", tracking = "Module:etymon/tracking", descendants = "Module:etymon/descendants", anchors = "Module:anchors", etydate = "Module:etydate", etymology = "Module:etymology", families = "Module:families", languages = "Module:languages", languages_errorgetby = "Module:languages/errorGetBy", links = "Module:links", pages = "Module:pages", parameters = "Module:parameters", string_utilities = "Module:string utilities", template_parser = "Module:template parser", utilities = "Module:utilities", debug = "Module:debug", en_utilities = "Module:en-utilities", parse_utilities = "Module:parse utilities", references = "Module:references", template_styles = "Module:TemplateStyles", script_utilities = "Module:script utilities", JSON = "Module:JSON", yesno = "Module:yesno", }, loadData = { headword_data = "Module:headword/data", parameters_data = "Module:parameters/data", text_allowed = "Module:etymon/data/text_allowed", }, }) local Util = {} function Util.format_error(message, preview_only) if preview_only and not M.pages.is_preview() then return nil end return '<span class="error">' .. message .. '</span>' end function Util.add_warning(message, preview_only) local formatted = Util.format_error(message, preview_only) if formatted then table.insert(__state.warnings, formatted) end end function Util.is_text_param_allowed_for_lang(lang) if not lang or type(lang) ~= "table" then return false end local types = lang.getTypes and lang:getTypes() if types and types.family then local code = lang.getCode and lang:getCode() return code and M.text_allowed.families[code] == true end local full_code = lang.getFullCode and lang:getFullCode() if full_code and M.text_allowed.langs[full_code] then return true end if lang.inFamily then for family_code in pairs(M.text_allowed.families) do if lang:inFamily(family_code) then return true end end end return false end function Util.get_lang(code, no_error) if no_error then return M.languages.getByCode(code, nil, true) end return M.languages.getByCode(code, nil, true) or M.languages_errorgetby.code(code, true, true) end -- Match a term language against a text=:lang stop target (supports etymology-only codes). function Util.lang_matches_stop_code(term_lang, stop_code) if not term_lang or not stop_code or stop_code == "" then return false end local stop_lang = Util.get_lang(stop_code, true) if not stop_lang then return false end if term_lang:getCode() == stop_lang:getCode() then return true end if stop_lang:getFullCode() == stop_lang:getCode() then return term_lang:getFullCode() == stop_lang:getCode() end return false end function Util.get_family(code) return M.families.getByCode(code) end function Util.get_lang_exception(lang) -- Families have no language-specific exceptions if lang.getTypes and lang:getTypes().family then return nil end local code = lang:getCode() local lang_exceptions = M.data.config.lang_exceptions if lang_exceptions[code] then return lang_exceptions[code] end for norm_code, exc in pairs(lang_exceptions) do if exc.normalize_to and code == exc.normalize_to then return exc end if exc.normalize_from_families then local should_normalize = false for _, family in ipairs(exc.normalize_from_families) do if lang:inFamily(family) then should_normalize = true break end end if should_normalize and exc.normalize_exclude_families then for _, family in ipairs(exc.normalize_exclude_families) do if lang:inFamily(family) then should_normalize = false break end end end if should_normalize then local ret = {} for k, v in pairs(exc) do ret[k] = v end ret.suppress_tr = nil return ret end end end return nil end function Util.get_norm_lang(lang) local exc = Util.get_lang_exception(lang) if exc and exc.normalize_to then return M.languages.getByCode(exc.normalize_to) end return lang end -- Add default values for boolean modifiers (e.g., <unc> becomes <unc:1>) -- This is needed because Module:parse utilities expects boolean modifiers to have explicit values function Util.add_boolean_defaults(str, param_mods) local result = str for name, spec in pairs(param_mods) do if spec.type == "boolean" then -- Replace <name> with <name:1> (but not <name:...> which already has a value) result = result:gsub("<" .. name .. ">", "<" .. name .. ":1>") end end return result end local REQUEST_TEMPLATE_PARAM_MODS = { rfe = { nocat = { type = "boolean" }, sort = {}, y = {}, m = {}, fragment = {}, section = {}, box = { type = "boolean" }, noes = { type = "boolean" }, }, etystub = { nocat = { type = "boolean" }, sort = {}, nocap = { type = "boolean" }, nodot = { type = "boolean" }, }, } function Util.expand_request_template(frame, template_name, param_value, lang_code) local param_mods = REQUEST_TEMPLATE_PARAM_MODS[template_name] local with_defaults = Util.add_boolean_defaults(param_value, param_mods) local parsed = M.parse_utilities.parse_inline_modifiers(with_defaults, { param_mods = param_mods, generate_obj = function(text) if M.yesno(text, false) then return { is_boolean = true } end return { text = text } end, }) local template_args = { [1] = lang_code } for name in pairs(param_mods) do template_args[name] = parsed[name] end if not parsed.is_boolean then template_args[2] = parsed.text end return " " .. frame:expandTemplate({ title = template_name, args = template_args, }) end -- Centralized term formatting: handles suppress_term (-), unknown_term (empty/+), and regular terms function Util.format_term(term, is_toplevel, opts) opts = opts or {} -- suppress_term (-) returns nil if term.suppress_term then return nil end local lang = term.lang local exc = Util.get_lang_exception(lang) if is_toplevel then local display_text = term.alt or term.title or "" local sc = term.sc or lang:findBestScript(display_text) local bold_text = tostring(mw.html.create("strong") :addClass("selflink") :wikitext(display_text)) return M.script_utilities.tag_text(bold_text, lang, sc, "term") end local link_params = { lang = lang } link_params.term = not term.unknown_term and term.title or nil link_params.alt = term.alt link_params.id = (not term.unknown_term and term.id and term.id ~= "") and term.id or nil if not (exc and exc.suppress_tr) then link_params.tr = term.tr link_params.ts = term.ts else link_params.suppress_tr = true end link_params.lit = (opts.lit ~= "suppress") and term.lit or nil if opts.gloss ~= "suppress" then link_params.gloss = term.t end if term.g and term.g ~= "" then local genders = M.string_utilities.split(term.g, ",") for i = 1, #genders do genders[i] = M.string_utilities.trim(genders[i]) end link_params.genders = genders end if opts.pos ~= "suppress" then link_params.pos = term.pos link_params.ng = term.ng end if exc and exc.suppress_tr then link_params.lit = nil end local show_qualifiers if opts.tree_ql ~= "suppress" then if term.q then link_params.q = term.q end if term.qq then link_params.qq = term.qq end if term.l then link_params.l = term.l end if term.ll then link_params.ll = term.ll end show_qualifiers = term.q or term.qq or term.l or term.ll end return M.links.full_link(link_params, "term", nil, show_qualifiers and true or nil) end local __is_content_page_cached function Util.is_content_page() if __is_content_page_cached == nil then __is_content_page_cached = M.pages.is_content_page(mw.title.getCurrentTitle()) end return __is_content_page_cached end local __page_data_cached function Util.get_page_data() if not __page_data_cached then __page_data_cached = M.headword_data.page end return __page_data_cached end -- Extract base keyword from param (without modifiers) local function get_keyword_base(param) if type(param) ~= "string" then return nil end local base = param:match("^:?([^<]+)") or param:gsub("^:", "") return base end local function is_keyword(param, allow_colon_less) if type(param) ~= "string" then return false end local keywords = M.data.keywords if param:sub(1, 1) == ":" then local base = get_keyword_base(param) return keywords[base] ~= nil end if allow_colon_less then local base = get_keyword_base(param) return keywords[base] ~= nil end return false end local function get_keyword(param, allow_colon_less) if type(param) ~= "string" then return nil end local keywords = M.data.keywords if param:sub(1, 1) == ":" then return get_keyword_base(param) end if allow_colon_less then local base = get_keyword_base(param) if keywords[base] then return base end end return nil end local function normalize_keyword(keyword) if keyword:sub(1, 1) == ":" then return keyword end return ":" .. keyword end -- Resolve keyword (possibly an alias) to its canonical form. Used only at input boundaries local function get_canonical_keyword(keyword) if not keyword then return keyword end return M.data.keyword_canonical[keyword] or keyword end local function is_affix_group_keyword(keyword) local config = keyword and M.data.keywords[keyword] return config and config.affix_categories or false end local function reject_removed_surf_keyword(param) local base = get_keyword_base(param) if base == "surf" then error("The `:surf` keyword has been removed. Use `<surf>` on a formation keyword instead (e.g. `:af<surf>`, `:bor<surf>`).") end end local function copy_keyword_info(source) local copy = {} for k, v in pairs(source) do copy[k] = v end return copy end local function lowercase_glossary_display(text) return text:gsub("(%[%[Appendix:Glossary#[^|]+|)([^%]])([^%]]*)%]%]", function(prefix, first, rest) return prefix .. mw.ustring.lower(first) .. rest .. "]]" end) end local function surf_should_keep_formation_phrase(base) if not base.phrase then return false end if base.glossary then return true end return not (base.phrase == "from" and (base.text == "From" or base.text == "from")) end -- Runtime overrides when <surf> is present on a keyword. local function get_effective_keyword_info(keyword, modifiers) local base = M.data.keywords[keyword] if not base or not modifiers or not modifiers.surf then return base end local effective = copy_keyword_info(base) local surf_text = "[[Appendix:Glossary#字面分析|字面分析]]為" local surf_phrase = "[[Appendix:Glossary#字面分析|字面分析]]為" effective.new_sentence = true effective.invisible = "tree" if surf_should_keep_formation_phrase(base) then effective.phrase = surf_phrase .. base.phrase if base.text then effective.text = surf_text .. lowercase_glossary_display(base.text) else effective.text = surf_text .. base.phrase end else effective.text = surf_text effective.phrase = surf_phrase end return effective end -- Build text/phrase for nominalization with <g:code> (uses data module for codes only). local function get_nominalization_label_for_g(code) if not code or code == "" then return nil end local codes = M.data.nominalization_g_codes local adj = codes[code] if not adj and #code == 2 then local gender_adj = codes[code:sub(1, 1)] local number_adj = codes[code:sub(2, 2)] if gender_adj and number_adj then adj = gender_adj .. number_adj end end if not adj then return nil end local text = adj .. "[[Appendix:Glossary#名詞化|名詞化]],來自" local phrase = adj .. "[[Appendix:Glossary#名詞化|名詞化]],來自" return { text = text, phrase = phrase } end local EtymonParser = {} -- Keyword modifier definitions EtymonParser.keyword_param_mods = { unc = { type = "boolean" }, ref = {}, text = { restrict = { keywords = { "from", "derived" } } }, lit = { restrict = { affix_group = true } }, conj = {}, -- conjunction for alternatives: "and", "or", "and/or", etc. g = { restrict = { keywords = { "nominalization" } } }, surf = { type = "boolean" }, senseid = { restrict = { keywords = { "semantic loan" } } }, } -- Term modifier definitions EtymonParser.etymon_param_mods = { id = {}, t = {}, tr = {}, ts = {}, q = {}, qq = {}, l = {}, ll = {}, pos = {}, ng = {}, alt = {}, g = {}, ety = {}, lit = {}, unc = { type = "boolean" }, ref = {}, aftype = { restrict = { affix_group = true } }, postype = {}, bor = { type = "boolean", restrict = { affix_group = true } }, slbor = { type = "boolean", restrict = { affix_group = true } }, lbor = { type = "boolean", restrict = { affix_group = true } }, } local function get_clean_param_mods(param_mods) local clean = {} for mod_name, mod_def in pairs(param_mods) do clean[mod_name] = {} for key, value in pairs(mod_def) do if key ~= "restrict" then clean[mod_name][key] = value end end end return clean end function EtymonParser.check_modifier_restrictions(modifiers, current_keyword, param_mods) for mod_name, mod_value in pairs(modifiers) do -- Only check restrictions if the modifier has a non-false/nil value if mod_value then local mod_def = param_mods[mod_name] if mod_def and mod_def.restrict then if mod_def.restrict.affix_group then if not is_affix_group_keyword(current_keyword) then local mod_display = mod_value == true and "<" .. mod_name .. ">" or "<" .. mod_name .. ":" .. tostring(mod_value) .. ">" error("The modifier `" .. mod_display .. "` is only allowed for affix-group keywords (e.g. `:af`, `:blend`, `:univ`).") end elseif mod_def.restrict.keywords then local allowed_keywords = mod_def.restrict.keywords local is_allowed = false for _, allowed_keyword in ipairs(allowed_keywords) do if current_keyword == allowed_keyword then is_allowed = true break end end if not is_allowed then local keyword_list = {} for _, kw in ipairs(allowed_keywords) do table.insert(keyword_list, ":" .. kw) end local keyword_str = table.concat(keyword_list, #keyword_list == 2 and " or " or ", ") if #keyword_list > 2 then -- Replace last comma with "or" keyword_str = keyword_str:gsub(", ([^,]+)$", " or %1") end local mod_display = mod_value == true and "<" .. mod_name .. ">" or "<" .. mod_name .. ":" .. tostring(mod_value) .. ">" error("The modifier `" .. mod_display .. "` is only allowed for the keyword" .. (#keyword_list > 1 and "s " or " ") .. keyword_str .. ".") end end end end end end local TERM_RULE_DISALLOW = { suppress = { field = "suppress_term", label = "suppressed" }, unknown = { field = "unknown_term", label = "unknown" }, family = { field = "is_family", label = "family" }, } function EtymonParser.check_etymon_limits(count, limits, label, opts) if not limits then return end opts = opts or {} local min_etymons = limits.min_etymons if min_etymons == nil and not opts.skip_default_min then min_etymons = 1 end if min_etymons and count < min_etymons then if min_etymons > 1 then error("Detected " .. label .. " group with fewer than " .. min_etymons .. " etymons.") else error("Detected " .. label .. " with no etymons.") end end if limits.max_etymons and count > limits.max_etymons then local unit = (limits.max_etymons == 1) and "etymon" or "etymons" error("Detected " .. label .. " with more than " .. limits.max_etymons .. " " .. unit .. ".") end end function EtymonParser.check_term_rules(etymon_data, entry_lang, rules, label) label = label or "term" if rules and rules.disallow then local disallowed = {} for _, typ in ipairs(rules.disallow) do local spec = TERM_RULE_DISALLOW[typ] if spec and etymon_data[spec.field] then table.insert(disallowed, spec.label) end end if #disallowed > 0 then error(label .. " does not support " .. mw.text.listToText(disallowed, "or") .. " etymons.") end end if etymon_data.is_family then if rules and rules.family == "disallowed" then error(label .. " does not support family codes" .. (rules.family_suffix or ".")) elseif not etymon_data.suppress_term then error("Family codes require suppressed term (use family:-).") end end if rules then if rules.require_term and (not etymon_data.term or etymon_data.term == "") then error(label .. " requires a term for each listed form.") end if rules.entry_lang then if Util.get_norm_lang(etymon_data.lang):getFullCode() ~= Util.get_norm_lang(entry_lang):getFullCode() then error(label .. " terms must be in the entry language (" .. entry_lang:getFullCode() .. "), got '" .. etymon_data.lang:getFullCode() .. "'.") end end if rules.ancestor_check then M.etymology.check_ancestor(entry_lang, etymon_data.lang) end elseif etymon_data.is_family and not etymon_data.suppress_term then error("Family codes require suppressed term (use family:-).") end end function EtymonParser.check_keyword_term(etymon_data, entry_lang, keyword) local config = M.data.keywords[keyword] EtymonParser.check_term_rules(etymon_data, entry_lang, config and config.term_rules, "`:" .. keyword .. "`") end function EtymonParser.check_supplement_term(etymon_data, entry_lang, supplement_type) local config = M.data.supplements[supplement_type] EtymonParser.check_term_rules(etymon_data, entry_lang, config and config.term_rules, "|" .. supplement_type .. "=") end -- Parse keyword with modifiers (e.g., ":bor<unc>" or ":bor<ref:{{R:example}}>") function EtymonParser.parse_keyword_modifiers(param) if type(param) ~= "string" then return nil, {} end local base_keyword = get_keyword_base(param) if not base_keyword then return nil, {} end local canonical_keyword = get_canonical_keyword(base_keyword) -- Check if there are any modifiers if not param:find("<", 1, true) then return canonical_keyword, {} end -- Parse modifiers using the same mechanism as etymon parsing local rest_with_defaults = Util.add_boolean_defaults(param, EtymonParser.keyword_param_mods) local function generate_obj(ignored) return {} end local parsed = M.parse_utilities.parse_inline_modifiers(rest_with_defaults:gsub("^:?[^<]+", ""), { param_mods = get_clean_param_mods(EtymonParser.keyword_param_mods), generate_obj = generate_obj }) local modifiers = { unc = parsed.unc or false, ref = parsed.ref, text = parsed.text, lit = parsed.lit, conj = parsed.conj, g = parsed.g, surf = parsed.surf or false, senseid = parsed.senseid, } -- Validate modifiers against restrictions EtymonParser.check_modifier_restrictions(modifiers, canonical_keyword, EtymonParser.keyword_param_mods) return canonical_keyword, modifiers end local function normalize_keyword_param(keyword_with_mods) local trimmed = M.string_utilities.trim(keyword_with_mods) reject_removed_surf_keyword(trimmed:match("^:") and trimmed or (":" .. trimmed)) local base = get_keyword_base(trimmed) if not base or not M.data.keywords[base] then error("Invalid keyword '" .. trimmed .. "' in inline etymology") end local canonical_base = get_canonical_keyword(base) local without_colon = trimmed:gsub("^:", "") local mods_part = without_colon:sub(#base + 1) local kw_param = normalize_keyword(canonical_base .. mods_part) EtymonParser.parse_keyword_modifiers(kw_param) return kw_param end local function get_keyword_mod_names() local names = {} for mod_name in pairs(EtymonParser.keyword_param_mods) do names[mod_name] = true end return names end local function parse_inline_ety_run(ety_string) local body = ety_string or "" if body == "" then error("Empty inline etymology") end local keyword_mod_names = get_keyword_mod_names() local pos = 1 local len = #body local function parse_err(msg) error(msg .. " in inline etymology: '" .. body .. "'") end local function peek_double() return body:sub(pos, pos + 1) == "<<" end local function mod_name_from_unwrapped(unwrapped) return unwrapped:match("^<([^:>]+)") end local function is_keyword_mod(unwrapped) local name = mod_name_from_unwrapped(unwrapped) return name and keyword_mod_names[name] or false end local function read_double_bracket() if not peek_double() then return nil end local start = pos pos = pos + 2 while pos <= len - 1 do if body:sub(pos, pos + 1) == ">>" then local token = body:sub(start, pos + 1) pos = pos + 2 return token, token:sub(2, -2) end pos = pos + 1 end parse_err("Unmatched <<") end local function read_angle_cell() if body:sub(pos, pos) ~= "<" or peek_double() then return nil end local open = pos pos = pos + 1 local depth = 1 local i = pos while i <= len do local ch = body:sub(i, i) if ch == "<" then depth = depth + 1 elseif ch == ">" then depth = depth - 1 if depth == 0 then local inner = body:sub(open + 1, i - 1) pos = i + 1 return inner end end i = i + 1 end parse_err("Unmatched <") end local function read_bare_run() local start = pos while pos <= len and body:sub(pos, pos) ~= "<" do pos = pos + 1 end return body:sub(start, pos - 1) end local function absorb_double_keyword_mods(keyword_str) while peek_double() do local saved = pos local _, unwrapped = read_double_bracket() if is_keyword_mod(unwrapped) then keyword_str = keyword_str .. unwrapped else pos = saved break end end return keyword_str end local kw_start = pos while pos <= len and body:sub(pos, pos) ~= "<" do pos = pos + 1 end local keyword = body:sub(kw_start, pos - 1) if keyword:match("^%s*$") then parse_err("Missing keyword") end keyword = absorb_double_keyword_mods(keyword) local cells = {} while pos <= len do if peek_double() then local _, unwrapped = read_double_bracket() if is_keyword_mod(unwrapped) then parse_err("Unexpected keyword modifier " .. unwrapped .. " outside of a keyword") end table.insert(cells, "+" .. unwrapped) elseif body:sub(pos, pos) == "<" then local inner = read_angle_cell() if inner ~= "" then table.insert(cells, inner) end else local bare = read_bare_run() if bare ~= "" then if bare:sub(1, 1) ~= ":" then parse_err("Unexpected bare text '" .. bare .. "' (use :keyword for nested keywords in inline etymology)") end if not is_keyword(bare, true) then parse_err("Invalid keyword '" .. bare .. "' in inline etymology") end table.insert(cells, absorb_double_keyword_mods(bare)) end end end return { keyword = keyword, cells = cells, } end function EtymonParser.inline_ety_to_pipe(ety_string) local run = parse_inline_ety_run(ety_string) if not run.keyword or run.keyword:match("^%s*$") then return "|" end local pipe_parts = { normalize_keyword_param(M.string_utilities.trim(run.keyword)) } for _, segment in ipairs(run.cells) do if is_keyword(segment, true) then table.insert(pipe_parts, normalize_keyword_param(segment)) else table.insert(pipe_parts, segment) end end return "|" .. table.concat(pipe_parts, "|") .. "|" end function EtymonParser.pipe_to_inline_ety(pipe_string) local cells = {} for cell in pipe_string:gmatch("([^|]+)") do if cell ~= "" then table.insert(cells, cell) end end if #cells == 0 then return "" end local inline_parts = {} for index, cell in ipairs(cells) do local base = get_keyword_base(cell) if base and M.data.keywords[base] then local without_colon = cell:gsub("^:", "") local kw_base, mods = without_colon:match("^([^<]+)(.*)$") local inline_kw = (kw_base or without_colon) .. (mods or ""):gsub("<([^>]+)>", "<<%1>>") if index > 1 then inline_kw = ":" .. inline_kw end table.insert(inline_parts, inline_kw) elseif cell:sub(1, 1) == "+" then local mod = cell:sub(2) if mod:match("^<.->$") then mod = mod:sub(2, -2) end table.insert(inline_parts, "<<" .. mod .. ">>") else table.insert(inline_parts, "<" .. cell .. ">") end end return table.concat(inline_parts, "") end function EtymonParser.parse_inline_ety(ety_string, context_lang) local run = parse_inline_ety_run(ety_string) local keyword = M.string_utilities.trim(run.keyword) reject_removed_surf_keyword(":" .. keyword) if not is_keyword(keyword, true) then error("Invalid keyword '" .. keyword .. "' in inline etymology <ety:" .. keyword .. "...>") end local args = { context_lang:getCode(), normalize_keyword_param(keyword) } for _, segment in ipairs(run.cells) do if is_keyword(segment, true) then table.insert(args, normalize_keyword_param(segment)) else table.insert(args, segment) end end return args end function EtymonParser.parse_etymon(param, context_lang) if is_keyword(param) then return nil end if type(param) ~= "string" then return nil end local lang, rest local is_family = false local before_bracket = param:match("^([^<]*)") or param local lang_code, rest_match = before_bracket:match("^([a-zA-Z][a-zA-Z0-9._-]*):(.*)$") if lang_code then local potential_lang = Util.get_lang(lang_code, true) if potential_lang then lang = potential_lang rest = param:sub(#lang_code + 2) else local potential_family = Util.get_family(lang_code) if potential_family then lang = potential_family rest = param:sub(#lang_code + 2) is_family = true else lang = context_lang rest = param end end else lang = context_lang rest = param end M.tracking.track_term(rest) if rest == "" or rest == "+" then return { lang = lang, term = nil, unknown_term = true, is_family = is_family, } end if rest == "-" then return { lang = lang, term = nil, suppress_term = true, is_family = is_family, } end if not rest:find("<", 1, true) then return { lang = lang, term = M.string_utilities.trim(rest), is_family = is_family, } end local term_text = rest:match("^([^<]*)") or "" local is_unknown = (term_text == "" or term_text == "+") local is_suppress = (term_text == "-") local function generate_obj(ignored_term) return { term = (is_unknown or is_suppress) and nil or M.string_utilities.trim(term_text) } end local rest_with_defaults = Util.add_boolean_defaults(rest, EtymonParser.etymon_param_mods) local parsed_obj = M.parse_utilities.parse_inline_modifiers(rest_with_defaults, { param_mods = get_clean_param_mods(EtymonParser.etymon_param_mods), generate_obj = generate_obj }) if parsed_obj.id and parsed_obj.id:match("^!") then parsed_obj.id = parsed_obj.id:sub(2) parsed_obj.override = true end parsed_obj.lang = lang parsed_obj.is_family = is_family if is_unknown then parsed_obj.unknown_term = true elseif is_suppress then parsed_obj.suppress_term = true end return parsed_obj end function EtymonParser.validate(lang, args, id, title, pos, starts_with_lang_code) -- id is now optional, so only validate if provided if id then if mw.ustring.len(id) < 2 then error("The `id` parameter must have at least two characters.") end if id == title or id == Util.get_page_data().pagename then error("The `id` parameter must not be the same as the page title.") end end local pos_aliases = { ["前綴"] = "prefix", ["後綴"] = "suffix", ["間綴"] = "interfix", ["中綴"] = "infix", ["詞根"] = "root", ["詞"] = "word", } if pos and pos_aliases[pos] then pos = pos_aliases[pos] end -- L10N local valid_pos = { prefix = true, suffix = true, interfix = true, infix = true, root = true, word = true } if pos and not valid_pos[pos] then error("Unknown value provided for `pos`. Valid values: " .. table.concat(require("Module:table").keysToList(valid_pos), ", ") .. ".") end local current_keyword = "from" local current_keyword_explicit = false local keyword_etymons = {} local keywords = M.data.keywords local function checkKeyword() local config = keywords[current_keyword] if current_keyword == "from" and not current_keyword_explicit and #keyword_etymons == 0 then keyword_etymons = {} return end EtymonParser.check_etymon_limits(#keyword_etymons, config, "`:" .. current_keyword .. "`") keyword_etymons = {} end local start_index = starts_with_lang_code and 2 or 1 for i = start_index, #args do local param = args[i] if type(param) ~= "string" then elseif param:sub(1, 1) == ":" and not is_keyword(param) then reject_removed_surf_keyword(param) error("Invalid keyword '" .. param .. "'. Did you mean a valid keyword like ':bor', ':inh', etc.?") elseif is_keyword(param) then checkKeyword() current_keyword = get_canonical_keyword(get_keyword(param)) current_keyword_explicit = true else local etymon_data = EtymonParser.parse_etymon(param, lang) if etymon_data then table.insert(keyword_etymons, param) EtymonParser.check_keyword_term(etymon_data, lang, current_keyword) -- Check modifier restrictions EtymonParser.check_modifier_restrictions(etymon_data, current_keyword, EtymonParser.etymon_param_mods) -- postype must be "root" or "word" local VALID_POSTYPES = { root = true, word = true } if etymon_data.postype and not VALID_POSTYPES[etymon_data.postype] then error("Invalid <postype:" .. etymon_data.postype .. ">; must be \"root\" or \"word\".") end if etymon_data.ety then local inline_args = EtymonParser.parse_inline_ety(etymon_data.ety, etymon_data.lang) EtymonParser.validate(etymon_data.lang, inline_args, nil, nil, nil, true) end else table.insert(keyword_etymons, param) end end end checkKeyword() end local DataRetriever = {} local function format_etymon_id_hint(id_data, idx) local id = type(id_data) == "table" and id_data.id or id_data local pos = type(id_data) == "table" and id_data.pos if id and id ~= "" and id ~= "*" then return '"' .. id .. '"' end if pos and pos ~= "" then return "unnamed (|pos=" .. pos .. "|)" end return "etymon #" .. idx .. " (no |id= on page)" end local function etymon_target_page_link(page, norm_lang) return M.links.full_link({ term = page, lang = norm_lang, no_generate_forms = true, }, "term") end -- Summarize {{etymon}} id slots on a linked page for preview warnings. local function summarize_available_etymon_ids(ids) local id_list = {} local all_idless = true local target_has_idless = false local any_pos = false for i, id_data in ipairs(ids) do local id = type(id_data) == "table" and id_data.id or id_data local pos = type(id_data) == "table" and id_data.pos if id and id ~= "" and id ~= "*" then all_idless = false else target_has_idless = true end if pos and pos ~= "" then any_pos = true end table.insert(id_list, format_etymon_id_hint(id_data, i)) end return { id_list = id_list, all_idless = all_idless, target_has_idless = target_has_idless, any_pos = any_pos, count = #ids, options_text = mw.text.listToText(id_list), } end local function ambiguous_etymon_suggestion(page_link, summary) if summary.all_idless then if summary.any_pos then return " None set `|id=` yet; add a unique `|id=` to each on " .. page_link .. ", then `<id:identifier>` after the term here. Section order / hints: " .. summary.options_text .. "." end return " None set `|id=` yet; add a unique `|id=` to each {{etymon}} in that section from top to bottom, then `<id:identifier>` after the term here (same value as `|id=`)." end return " Specify which one with `<id:identifier>` after the term. Options: " .. summary.options_text .. "." end local function warn_ambiguous_etymon_link(page, norm_lang, ids, is_toplevel) local page_link = etymon_target_page_link(page, norm_lang) local summary = summarize_available_etymon_ids(ids) if is_toplevel and summary.target_has_idless then __state.linked_page_multiple_etymons_idless = true end local lang_name = norm_lang:getCanonicalName() local lead = "Etymology link to " .. page_link .. " is ambiguous (" .. summary.count .. " {{etymon}} templates for " .. lang_name .. ")." Util.add_warning(lead .. ambiguous_etymon_suggestion(page_link, summary), true) end local function is_mismatched_explicit_id(base_key, cached_args, parent_etymon) return cached_args == M.data.STATUS.MISSING and not parent_etymon and #(__state.available_etymon_ids[base_key] or {}) > 0 end local function maybe_flag_partial_etymology_reference(base_key, etymon_data, cached_args, is_toplevel) if not is_toplevel or __state.skip_partial_etymology_category then return end if not __state.partial_etymology_targets[base_key] then return end if etymon_data.id and type(cached_args) == "table" then return end __state.linked_page_partial_etymology_sections = true end local function is_nonlemma_etymon_template(template_args) return template_args and M.yesno(template_args.nl, false) end local function warn_mismatched_explicit_id(page, norm_lang, base_key, etymon_id) local page_link = etymon_target_page_link(page, norm_lang) local summary = summarize_available_etymon_ids(__state.available_etymon_ids[base_key] or {}) local lang_name = norm_lang:getCanonicalName() local lead = "Etymology link to " .. page_link .. " uses `<id:" .. etymon_id .. ">`, but no {{etymon}} on that page has `|id=" .. etymon_id .. "|` for " .. lang_name .. "." Util.add_warning(lead .. " Valid IDs: " .. summary.options_text .. ".", true) end -- Given an etymon data, scrape its page and cache the result in the global state object. function DataRetriever.cache_page_etymons(etymon_page, etymon_title, key, etymon_lang, etymon_id, redirected_from, descendants_is_toplevel) local content = etymon_title:getContent() if not content then __state.cached_etymon_args[key] = M.data.STATUS.REDLINK return end -- Check if the linked page is a redirect. If it is, the template parsing -- code below will be effectively skipped, and `scrape_page` will be called -- again on the redirect target (see the bottom of this function) local lang_section_for_descendants = nil local redirect_target = etymon_title.redirect_target if not redirect_target then content = M.pages.get_section(content, etymon_lang:getFullName(), 2) if not content then __state.cached_etymon_args[key] = M.data.STATUS.MISSING return end lang_section_for_descendants = content end local etymon_lang_code = etymon_lang:getFullCode() local lang_page_key = etymon_lang_code .. ":" .. etymon_page local found_templates_for_lang = {} local found_ids = {} local get_node_class = M.template_parser.class_else_type -- Look for all {{etymon}} templates within the page content using the template parser -- This way the same page is never parsed more than once -- Build a map from senseids to their parent etymonids. local active_etymon_args = nil local etymology_section_count = 0 local etymology_sections_with_etymon = 0 local current_etymology_has_etymon = false local current_etymology_has_nonlemma = false local function finalize_current_etymology_section() if etymology_section_count == 0 then return end if current_etymology_has_etymon or current_etymology_has_nonlemma then etymology_sections_with_etymon = etymology_sections_with_etymon + 1 end current_etymology_has_etymon = false current_etymology_has_nonlemma = false end for node in M.template_parser.parse(content):iterate_nodes() do local node_class = get_node_class(node) if node_class == "heading" then -- A new L2 or etymology section acts as a barrier: an {{etymon}} usage -- used previously cannot be the parent of any subsequent senseids. -- Note that we don't have to check for L2s due to the usage of `M.pages.get_section` above. if node:get_name():find("^Etymology") then finalize_current_etymology_section() etymology_section_count = etymology_section_count + 1 active_etymon_args = nil end elseif node_class == "template" then local template_name = node:get_name() if template_name == "etymon" then local template_args = node:get_arguments() -- Check if this etymon is for our language if template_args[1] == etymon_lang_code then if is_nonlemma_etymon_template(template_args) then if etymology_section_count > 0 then current_etymology_has_nonlemma = true end else if etymology_section_count > 0 then current_etymology_has_etymon = true end table.insert(found_templates_for_lang, template_args) if template_args.id then local etymon_key = lang_page_key .. ":" .. template_args.id __state.cached_etymon_args[etymon_key] = template_args __state.cached_etymon_pages[etymon_key] = tostring(etymon_page) table.insert(found_ids, template_args.id) active_etymon_args = template_args else -- Store idless etymon with default key local etymon_key = lang_page_key .. ":*" __state.cached_etymon_args[etymon_key] = template_args __state.cached_etymon_pages[etymon_key] = tostring(etymon_page) table.insert(found_ids, "*") active_etymon_args = template_args end end end elseif active_etymon_args and template_name == "senseid" then local template_args = node:get_arguments() -- This should always be true for proper usages of {{senseid}}. if template_args[1] == etymon_lang_code and template_args[2] then local sense_id_key = lang_page_key .. ":" .. template_args[2] __state.senseid_parent_etymon[sense_id_key] = active_etymon_args __state.cached_etymon_pages[sense_id_key] = tostring(etymon_page) end end end end finalize_current_etymology_section() if lang_section_for_descendants and etymology_section_count > 1 and etymology_sections_with_etymon > 0 and etymology_sections_with_etymon < etymology_section_count then __state.partial_etymology_targets[lang_page_key] = true end if descendants_is_toplevel and lang_section_for_descendants and #found_templates_for_lang > 0 then M.descendants.cache_page_checks({ lang_section = lang_section_for_descendants, etymon_lang_code = etymon_lang_code, found_templates_for_lang = found_templates_for_lang, entry_title = __state.entry_title, entry_lang_code = __state.entry_lang_code, entry_lang = __state.entry_lang_code and Util.get_lang(__state.entry_lang_code, true) or nil, cached_descendants_checks = __state.cached_descendants_checks, lang_page_key = lang_page_key, redirected_from = redirected_from, }) end local id_data_list = {} for _, args in ipairs(found_templates_for_lang) do local id = args.id or "*" table.insert(id_data_list, { id = id, pos = args.pos }) end __state.available_etymon_ids[lang_page_key] = id_data_list if #found_templates_for_lang == 1 then __state.single_etymons[lang_page_key] = found_templates_for_lang[1] end if redirected_from and __state.available_etymon_ids[lang_page_key] then __state.available_etymon_ids[redirected_from] = __state.available_etymon_ids[redirected_from] or {} for _, id_data in ipairs(__state.available_etymon_ids[lang_page_key]) do table.insert(__state.available_etymon_ids[redirected_from], id_data) end end if __state.cached_etymon_args[key] ~= nil or __state.senseid_parent_etymon[key] ~= nil then -- All done! return elseif redirect_target and not redirected_from then -- Try scraping the redirect. etymon_page = redirect_target.prefixedText DataRetriever.cache_page_etymons(etymon_page, redirect_target, lang_page_key .. ":" .. etymon_id, etymon_lang, etymon_id, lang_page_key, descendants_is_toplevel) __state.cached_etymon_args[key] = __state.cached_etymon_args[etymon_lang_code .. ":" .. etymon_page .. ":" .. etymon_id] else __state.cached_etymon_args[key] = M.data.STATUS.MISSING end end local function has_linkable_term(etymon_data) if etymon_data.is_family or etymon_data.suppress_term or etymon_data.unknown_term then return false end local term = etymon_data.term if term == nil or term == "" then return false end return M.string_utilities.trim(term) ~= "" end local function record_term_id_tracking(etymon_data) if not has_linkable_term(etymon_data) then return end local term_page = M.links.get_link_page(etymon_data.term, etymon_data.lang) M.tracking.record_term_id_usage(__state.id_stats, etymon_data, term_page) end -- Given an etymon object, scrape its page (if necessary) and return its own etymon arguments as well as the page name. function DataRetriever.get_etymon_args(etymon_data, is_toplevel) if not has_linkable_term(etymon_data) then return M.data.STATUS.MISSING, nil, nil, nil end local page = M.links.get_link_page(etymon_data.term, etymon_data.lang) local norm_lang = Util.get_norm_lang(etymon_data.lang) local base_key = norm_lang:getFullCode() .. ":" .. page if etymon_data.id then local key = base_key .. ":" .. etymon_data.id local cached_args = __state.cached_etymon_args[key] or __state.senseid_parent_etymon[key] if cached_args == nil then local title = mw.title.new(page) if not title then error('Invalid page title "' .. page .. '" encountered.') end DataRetriever.cache_page_etymons(page, title, key, norm_lang, etymon_data.id, nil, is_toplevel) end cached_args = __state.cached_etymon_args[key] or __state.senseid_parent_etymon[key] -- refresh -- Get etymon_id from parent if this was resolved via senseid local parent_etymon = __state.senseid_parent_etymon[key] local resolved_etymon_id = parent_etymon and parent_etymon.id local descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = is_toplevel, base_key = base_key, lookup = { explicit_id = etymon_data.id, parent_etymon = parent_etymon, }, }) if is_toplevel and descendants_check == nil then local title = mw.title.new(page) if title then DataRetriever.cache_page_etymons(page, title, key, norm_lang, etymon_data.id, nil, true) descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = true, base_key = base_key, lookup = { explicit_id = etymon_data.id, parent_etymon = parent_etymon, }, }) end end local mismatched_id = is_mismatched_explicit_id(base_key, cached_args, parent_etymon) if mismatched_id and is_toplevel then __state.has_mismatched_id = true M.tracking.record_mismatched_id_usage(__state.id_stats, norm_lang, page, etymon_data.id) warn_mismatched_explicit_id(page, norm_lang, base_key, etymon_data.id) end maybe_flag_partial_etymology_reference(base_key, etymon_data, cached_args, is_toplevel) return cached_args, __state.cached_etymon_pages[key], resolved_etymon_id, descendants_check else __state.used_idless_etymon = true if is_toplevel then __state.toplevel_idless_etymon = true end if __state.available_etymon_ids[base_key] == nil then local title = mw.title.new(page) if not title then error('Invalid page title "' .. page .. '" encountered.') end DataRetriever.cache_page_etymons(page, title, base_key .. ":*", norm_lang, "*", nil, is_toplevel) end local ids = __state.available_etymon_ids[base_key] or {} local count = #ids -- Try to filter by postype if available and we have multiple candidates if count > 1 and etymon_data.postype then local matching_ids = {} for _, id_data in ipairs(ids) do if id_data.pos == etymon_data.postype then table.insert(matching_ids, id_data) end end if #matching_ids == 1 then local matched_id = matching_ids[1].id local matched_key = base_key .. ":" .. matched_id M.tracking.record_idless_resolution(__state.id_stats, norm_lang, page, "postype") local descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = is_toplevel, base_key = base_key, lookup = { id = matched_id }, }) if is_toplevel and descendants_check == nil then local title = mw.title.new(page) if title then DataRetriever.cache_page_etymons(page, title, base_key .. ":*", norm_lang, "*", nil, true) descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = true, base_key = base_key, lookup = { id = matched_id }, }) end end local matched_args = __state.cached_etymon_args[matched_key] maybe_flag_partial_etymology_reference(base_key, etymon_data, matched_args, is_toplevel) return matched_args, __state.cached_etymon_pages[matched_key], nil, descendants_check end end if count == 1 then local only_id_data = ids[1] local only_id = (type(only_id_data) == "table" and only_id_data.id) or only_id_data or "*" M.tracking.record_idless_resolution(__state.id_stats, norm_lang, page, "single") local descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = is_toplevel, base_key = base_key, lookup = { id_data = only_id_data }, }) if is_toplevel and descendants_check == nil then local title = mw.title.new(page) if title then DataRetriever.cache_page_etymons(page, title, base_key .. ":*", norm_lang, "*", nil, true) descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = true, base_key = base_key, lookup = { id_data = only_id_data }, }) end end local single_args = __state.single_etymons[base_key] maybe_flag_partial_etymology_reference(base_key, etymon_data, single_args, is_toplevel) return single_args, __state.cached_etymon_pages[base_key .. ":" .. only_id], nil, descendants_check elseif count > 1 then M.tracking.record_idless_resolution(__state.id_stats, norm_lang, page, "ambiguous") warn_ambiguous_etymon_link(page, norm_lang, ids, is_toplevel) maybe_flag_partial_etymology_reference(base_key, etymon_data, M.data.STATUS.AMBIGUOUS, is_toplevel) return M.data.STATUS.AMBIGUOUS, nil, nil, nil else M.tracking.record_idless_resolution(__state.id_stats, norm_lang, page, "missing") maybe_flag_partial_etymology_reference(base_key, etymon_data, M.data.STATUS.MISSING, is_toplevel) return M.data.STATUS.MISSING, nil, nil, nil end end end local function keyword_invisible_in_tree(keyword_info) if not keyword_info then return false end local inv = keyword_info.invisible return inv == "all" or inv == true or inv == "tree" end -- True when the node has at least one top-level child container visible in the tree. local function node_has_visible_tree_children(node) for _, container in ipairs(node.children or {}) do if not keyword_invisible_in_tree(container.keyword_info) then return true end end return false end -- Count visible term nodes in the tree. local function get_visible_tree_depth(node, skip_child_rendering) local max_depth = 1 if skip_child_rendering or not node then return max_depth end for _, container in ipairs(node.children or {}) do local keyword_info = container.keyword_info if not keyword_invisible_in_tree(keyword_info) then local skip_grandchildren = keyword_info and keyword_info.no_child_categories for _, term in ipairs(container.terms or {}) do if term.is_duplicate then if term.original_has_children then max_depth = math.max(max_depth, 2) end else max_depth = math.max(max_depth, 1 + get_visible_tree_depth(term, skip_grandchildren)) end end end end return max_depth end local function as_param_list(val) if val == nil then return {} end if type(val) == "table" then return val end if type(val) == "string" and val ~= "" then return { val } end return {} end local TreeBuilder = {} local function parse_etymon_references(refs_text) if not refs_text or refs_text == "" then return "" end return M.references.parse_references(refs_text) end local function parse_tree_references(node) if node.ref then node.parsed_ref = parse_etymon_references(node.ref) end if node.children then for _, container in ipairs(node.children) do if container.terms then for _, term in ipairs(container.terms) do parse_tree_references(term) end end end end if node.supplements then for _, supplement in ipairs(node.supplements) do if supplement.terms then for _, term in ipairs(supplement.terms) do parse_tree_references(term) end end end end end -- Build a unique key for deduplication in the seen table function TreeBuilder.build_key(lang, title, args) local norm_lang_code = Util.get_norm_lang(lang):getFullCode() local is_table = type(args) == "table" local id = (is_table and args.id) or "" if title then return norm_lang_code .. ":" .. M.links.get_link_page(title, lang) .. ":" .. id end if is_table and args.status == M.data.STATUS.INLINE then local content_parts = {} for i = 1, #args do content_parts[i] = tostring(args[i]) end return norm_lang_code .. ":*:" .. id .. "\0" .. table.concat(content_parts, "\0") end return norm_lang_code .. ":*:" .. id end -- Copy parsed etymon modifiers onto a tree/supplement term node. function TreeBuilder.apply_etymon_fields(term, etymon_data) term.id = etymon_data.id term.t = etymon_data.t term.tr = etymon_data.tr term.ts = etymon_data.ts term.alt = etymon_data.alt term.g = etymon_data.g term.pos = etymon_data.pos term.ng = etymon_data.ng term.ref = etymon_data.ref term.is_uncertain = etymon_data.unc term.lit = etymon_data.lit term.q = etymon_data.q term.qq = etymon_data.qq term.l = etymon_data.l term.ll = etymon_data.ll term.suppress_term = etymon_data.suppress_term term.unknown_term = etymon_data.unknown_term term.is_family = etymon_data.is_family term.override = etymon_data.override term.aftype = etymon_data.aftype term.postype = etymon_data.postype term.bor = etymon_data.bor term.lbor = etymon_data.lbor term.slbor = etymon_data.slbor end function TreeBuilder.build_supplement_term(etymon_data, entry_lang, supplement_type) EtymonParser.check_supplement_term(etymon_data, entry_lang, supplement_type) local term = { lang = etymon_data.lang, title = etymon_data.term, children = {}, status = M.data.STATUS.OK, } TreeBuilder.apply_etymon_fields(term, etymon_data) return term end function TreeBuilder.build_supplement_terms(entry_lang, supplement_type, param_value) local terms = {} for _, term_param in ipairs(as_param_list(param_value)) do if type(term_param) == "string" and term_param ~= "" then local etymon_data = EtymonParser.parse_etymon(term_param, entry_lang) if etymon_data then table.insert(terms, TreeBuilder.build_supplement_term(etymon_data, entry_lang, supplement_type)) end end end return terms end -- Attach a |param= supplement defined in etymon_data.supplements (e.g. doublet=). function TreeBuilder.append_term_supplement(data_tree, entry_lang, supplement_type, param_value) local config = M.data.supplements[supplement_type] if not config then error("Unknown supplement '" .. tostring(supplement_type) .. "'.") end local terms = TreeBuilder.build_supplement_terms(entry_lang, supplement_type, param_value) if #terms == 0 then return end data_tree.supplements = data_tree.supplements or {} table.insert(data_tree.supplements, { type = supplement_type, config = config, terms = terms, }) M.tracking.record_keyword_usage(__state.toplevel_keyword_stats, supplement_type, entry_lang, entry_lang, true) end function TreeBuilder.build(lang, title, args, seen, depth, stop_recursion) seen = seen or {} depth = depth or 0 local is_toplevel = (depth == 0) if depth > __state.max_depth_reached then __state.max_depth_reached = depth end __state.total_nodes = __state.total_nodes + 1 local lang_code = lang:getCode() __state.language_count[lang_code] = (__state.language_count[lang_code] or 0) + 1 local current_id = (type(args) == "table" and args.id) or "" local key = TreeBuilder.build_key(lang, title, args) local node = { lang = lang, title = title, id = current_id, args = args, children = {}, status = M.data.STATUS.OK } if type(args) ~= "table" or seen[key] then node.status = args or M.data.STATUS.MISSING -- Mark as duplicate if we've seen this node before if seen[key] then node.is_duplicate = true node.duplicate_key = key local original_node = seen[key] if type(original_node) == "table" and original_node.children and #original_node.children > 0 then node.original_has_children = true end end return node end node.status = args.status or M.data.STATUS.OK seen[key] = node -- If stop_recursion is set, skip parsing children but check for visible children if stop_recursion then local keywords = M.data.keywords local has_visible_children = false for i = 2, #args do local param = args[i] if type(param) == "string" then local keyword_base = get_keyword_base(param) if keyword_base and keywords[keyword_base] then local _, kw_modifiers = EtymonParser.parse_keyword_modifiers(param:sub(1, 1) == ":" and param or (":" .. param)) if not keyword_invisible_in_tree(get_effective_keyword_info(keyword_base, kw_modifiers)) then has_visible_children = true break end elseif param:sub(1, 1) ~= ":" then -- It's a term (not a keyword), so there are visible children has_visible_children = true break end end end node.has_visible_children = has_visible_children return node end -- Parse args into keyword containers local current_keyword = "from" local current_keyword_modifiers = {} local current_container = nil local function ensure_container() if not current_container or current_container.keyword ~= current_keyword then local keyword_info = get_effective_keyword_info(current_keyword, current_keyword_modifiers) current_container = { keyword = current_keyword, keyword_info = keyword_info, keyword_modifiers = current_keyword_modifiers, terms = {}, } table.insert(node.children, current_container) -- Override keyword text/phrase for nominalization with <g:code> if current_keyword_modifiers.g and current_keyword == "nominalization" then local labels = get_nominalization_label_for_g(current_keyword_modifiers.g) if not labels then local codes = {} for c in pairs(M.data.nominalization_g_codes) do table.insert(codes, c) end table.sort(codes) error("Invalid <g:" .. tostring(current_keyword_modifiers.g) .. ">. Supported codes for nominalization: " .. table.concat(codes, ", ")) end current_container.keyword_info = copy_keyword_info(keyword_info) current_container.keyword_info.text = labels.text current_container.keyword_info.phrase = labels.phrase end end return current_container end for i = 2, #args do local param = args[i] if is_keyword(param) then local keyword, modifiers = EtymonParser.parse_keyword_modifiers(param) if not keyword then error("Invalid keyword '" .. param .. "'.") end current_keyword = keyword current_keyword_modifiers = modifiers current_container = nil -- Force new container for new keyword elseif type(param) == "string" and param:sub(1, 1) == ":" then reject_removed_surf_keyword(param) error("Invalid keyword '" .. param .. "'. Did you mean a valid keyword like ':bor', ':inh', etc.?") elseif type(param) == "string" then local etymon_data = EtymonParser.parse_etymon(param, lang) if etymon_data then -- Track keyword usage at top level M.tracking.record_keyword_usage(__state.toplevel_keyword_stats, current_keyword, lang, etymon_data.lang, is_toplevel) local term_node = {} local container -- Handle suppress_term (-) and unknown_term (empty or +) directly if etymon_data.suppress_term or etymon_data.unknown_term then container = ensure_container() if etymon_data.ety then local inline_args = EtymonParser.parse_inline_ety(etymon_data.ety, etymon_data.lang) inline_args.id = etymon_data.id inline_args.status = M.data.STATUS.INLINE term_node = TreeBuilder.build(etymon_data.lang, nil, inline_args, seen, depth + 1) else term_node = { lang = etymon_data.lang, children = {}, status = M.data.STATUS.OK, } end TreeBuilder.apply_etymon_fields(term_node, etymon_data) else -- Regular term: fetch arguments from page record_term_id_tracking(etymon_data) local etymon_args, page_of, resolved_etymon_id, descendants_check = DataRetriever.get_etymon_args(etymon_data, is_toplevel) -- Check for <ety> inline parameter doesn't override the scraped arguments, unless the latter are missing if etymon_data.ety then if etymon_args == M.data.STATUS.REDLINK or etymon_args == M.data.STATUS.MISSING then __state.current_page_has_inline_etymology = true if is_toplevel then __state.toplevel_has_inline_etymology = true end local inline_args = EtymonParser.parse_inline_ety(etymon_data.ety, etymon_data.lang) -- Track inline ety keywords too local inline_keyword = get_keyword(inline_args[2], true) if inline_keyword and #inline_args >= 3 then local inline_etymon = EtymonParser.parse_etymon(inline_args[3], etymon_data.lang) if inline_etymon then M.tracking.record_keyword_usage(__state.toplevel_keyword_stats, inline_keyword, etymon_data.lang, inline_etymon.lang, is_toplevel) end end inline_args.id = etymon_data.id inline_args.status = M.data.STATUS.INLINE etymon_args = inline_args term_node.page_of = __state.cached_etymon_pages[key] -- term node is on the same page as the parent else -- Scraped arguments exist, <ety> is redundant and ignored __state.current_page_has_redundant_etymology = true if is_toplevel then __state.toplevel_redundant_etymology = true end end end -- Ensure container exists before checking keyword info container = ensure_container() -- Check if current keyword has no_child_categories - if so, stop recursion local keyword_info = container.keyword_info local should_stop_recursion = (stop_recursion or (keyword_info and keyword_info.no_child_categories)) term_node = TreeBuilder.build(etymon_data.lang, etymon_data.term, etymon_args, seen, depth + 1, should_stop_recursion) term_node.target_key = Util.get_norm_lang(etymon_data.lang):getFullCode() .. ":" .. M.links.get_link_page(etymon_data.term, etymon_data.lang) term_node.etymon_id = resolved_etymon_id -- The actual etymon id when resolved via senseid term_node.page_of = page_of TreeBuilder.apply_etymon_fields(term_node, etymon_data) term_node.missing_descendants_header, term_node.missing_descendants_entry = M.descendants.get_term_sync_flags(current_keyword, term_node.status, descendants_check) end table.insert(container.terms, term_node) end end end return node end -- Convert etymology tree to JSON-serializable table local function tree_to_json(node) local obj = { term = node.title, lang = node.lang:getCode(), lang_name = node.lang:getCanonicalName(), id = (node.id and node.id ~= "") and node.id or nil, status = node.status, is_uncertain = node.is_uncertain or nil, is_duplicate = node.is_duplicate or nil, gloss = node.t, transliteration = node.tr, transcription = node.ts, alt = node.alt, g = node.g, pos = node.pos, ng = node.ng, children = {}, } for _, container in ipairs(node.children or {}) do local keyword_info = container.keyword_info if keyword_info then local container_obj = { keyword = container.keyword, keyword_label = keyword_info.text, keyword_abbrev = keyword_info.abbrev, is_group = keyword_info.is_group or nil, is_invisible = keyword_info.invisible or nil, is_uncertain = (container.keyword_modifiers and container.keyword_modifiers.unc) or nil, terms = {}, } for _, term in ipairs(container.terms or {}) do table.insert(container_obj.terms, tree_to_json(term)) end table.insert(obj.children, container_obj) end end return obj end -- Build and return the etymology data tree for a given term. function export.get_tree(lang, title, args, options) options = options or {} __state.entry_title = title __state.entry_lang_code = lang:getCode() __state.id_stats = M.tracking.new_id_stats() __state.skip_partial_etymology_category = options.skip_partial_etymology_category == true if options.validate then EtymonParser.validate(lang, args, options.id, title, options.pos, false) end local lang_code = lang:getCode() local start_index = (args[1] == lang_code) and 2 or 1 local tree_args = { [1] = lang_code, id = options.id or args.id } for i = start_index, #args do table.insert(tree_args, args[i]) end __state.cached_etymon_args[lang_code .. ":" .. title .. ":" .. (tree_args.id or "")] = tree_args local ety_data_tree = TreeBuilder.build(lang, title, tree_args) parse_tree_references(ety_data_tree) if options.json then return M.JSON.toJSON(tree_to_json(ety_data_tree)) end return ety_data_tree end -- Given a language code, page name and optionally the id= parameter, -- render the tree and only the etymology tree for the relevant page. -- Fetches and parses the corresponding {{etymon}} from the requested page, -- and any further pages needed to render the tree. -- Parameters can be passed either through the #invoke or as -- template parameters *through* an #invoke. function export.render_tree_for_etymon_on_page(frame) local frame_args = frame.args local parent_args = frame:getParent().args local langcode = frame_args[1] or parent_args[1] local pagename = frame_args[2] or parent_args[2] local id = frame_args["id"] or parent_args["id"] local display_title = frame_args["title"] or parent_args["title"] local parsed_title = mw.title.new(pagename, 0) local title if parsed_title.namespace == 0 then title = M.pages.safe_page_name(parsed_title) elseif parsed_title.namespace == 118 then title = "*" .. M.pages.safe_page_name(parsed_title) else error("Unsupported namespace for render_tree_for_etymon_on_page: " .. parsed_title.namespace) end local lang = Util.get_lang(langcode) -- Construct etymon_data for DataRetriever.get_args. local etymon_data = { lang = lang, term = title, id = id } local args, pagename = DataRetriever.get_etymon_args(etymon_data, true) if args == M.data.STATUS.MISSING then error("The etymon template was not found (language " .. langcode .. ", title '" .. title .. "'" .. (id and ", ID '" .. id .. "'" or ", no ID given") .. "). Page contents may have changed in the interim.") end local tree_title = display_title or title if lang:stripDiacritics(M.links.remove_links(tree_title)) ~= lang:stripDiacritics(M.links.remove_links(title)) then M.tracking.track_title_pagename_mismatch(lang) end reset_invocation_state() local ety_data_tree = export.get_tree(lang, tree_title, args, { validate = true, id = id, }) local output = {} table.insert(output, M.template_styles("Module:etymon/styles.css")) table.insert(output, M.tree.render({ data_tree = ety_data_tree, format_term_func = function(term, is_toplevel) return Util.format_term(term, is_toplevel, { gloss = "suppress", pos = "suppress", lit = "suppress", tree_ql = "suppress", }) end, })) return table.concat(output) end function export.main(frame) local parent_args = frame:getParent().args local args = M.parameters.process(parent_args, M.parameters_data.etymon) local lang = args[1] local etymon_args = args[2] local id = args.id local title = args.title local text = args.text local tree = args.tree local etydate = args.etydate local doublet = args.doublet local rfe = args.rfe local etystub = args.etystub local is_nonlemma = M.yesno(args.nl, false) local page_data = Util.get_page_data() if not title then title = page_data.pagename if page_data.namespace == "Reconstruction" then title = "*" .. title end end local entry_pagename = page_data.pagename if page_data.namespace == "Reconstruction" then entry_pagename = "*" .. entry_pagename end if lang:stripDiacritics(M.links.remove_links(title)) ~= lang:stripDiacritics(M.links.remove_links(entry_pagename)) then M.tracking.track_title_pagename_mismatch(lang) end local current_L2 = M.pages.get_current_L2() if current_L2 then local norm_lang = Util.get_norm_lang(lang) local norm_name = norm_lang:getCanonicalName() if current_L2 ~= norm_name and require("Module:zh").st(current_L2) ~= norm_name then -- L10N local lang_desc = lang:getCode() .. " (" .. lang:getCanonicalName() .. ")" if norm_lang:getCode() ~= lang:getCode() then lang_desc = lang_desc .. ", normalized to " .. norm_lang:getCode() .. " (" .. norm_name .. ")" end error("Language '" .. lang_desc .. "' does not match the L2 header (" .. current_L2 .. ").") end end reset_invocation_state() local ety_data_tree = export.get_tree(lang, title, etymon_args, { validate = true, pos = args.pos, id = id, json = args.json, skip_partial_etymology_category = is_nonlemma, }) if args.json then return ety_data_tree end local output = {} local text_allowlist_mode = M.text_allowed.default_mode or "off" if text and text_allowlist_mode ~= "off" and not Util.is_text_param_allowed_for_lang(lang) then local msg = "Etymology texts (parameter <code>text=</code>) are not allowed for " .. lang:getFullName() .. "; see [[Template:etymon#Text allowlist|Template:etymon § Text allowlist]] for the list of languages that may use the <code>text=</code> parameter." if text_allowlist_mode == "error" then error(msg) else Util.add_warning(msg, true) end end local lang_exc = Util.get_lang_exception(lang) if lang_exc and lang_exc.disallow then local disallow = lang_exc.disallow local error_text = " for " .. lang:getFullName() if disallow.ref then error_text = error_text .. "; see " .. disallow.ref else error_text = error_text .. "." end if tree and disallow.tree then error("Etymology trees are not allowed" .. error_text) end if text and disallow.text then error("Etymology texts are not allowed" .. error_text) end end if etydate then local etydate_param_mods = { ref = { list = true, type = "references", allow_holes = true }, refn = { list = true, allow_holes = true }, nocap = { type = "boolean" }, } local function generate_etydate_obj(etydate_text) local etydate_specs = {} for spec in etydate_text:gmatch("[^,]+") do table.insert(etydate_specs, mw.text.trim(spec)) end return { [1] = etydate_specs } end local parsed_etydate = M.parse_utilities.parse_inline_modifiers(etydate, { param_mods = etydate_param_mods, generate_obj = generate_etydate_obj }) local etydate_args = { [1] = parsed_etydate[1], nocap = parsed_etydate.nocap or false, } ety_data_tree.supplements = ety_data_tree.supplements or {} table.insert(ety_data_tree.supplements, { type = "etydate", etydate_text = M.etydate.format_etydate(etydate_args, { omit_refs = true }), etydate_refs = (parsed_etydate.ref and #parsed_etydate.ref > 0) and parsed_etydate.ref or nil, }) end TreeBuilder.append_term_supplement(ety_data_tree, lang, "doublet", doublet) if ety_data_tree.supplements then parse_tree_references(ety_data_tree) end local has_visible_children = node_has_visible_tree_children(ety_data_tree) -- Suppress trees for multiword entries and one-step chains local visible_tree_depth = get_visible_tree_depth(ety_data_tree) local is_trivial_tree = visible_tree_depth <= 2 local is_multiword = title:find("%s") ~= nil or title:find("_") ~= nil if tree and (is_multiword or is_trivial_tree) then tree = false end if tree then table.insert(output, M.template_styles("Module:etymon/styles.css")) table.insert(output, M.tree.render({ data_tree = ety_data_tree, format_term_func = function(term, is_toplevel) return Util.format_term(term, is_toplevel, { gloss = "suppress", pos = "suppress", lit = "suppress", tree_ql = "suppress", }) end, })) end local tree_disallowed = lang_exc and lang_exc.disallow and lang_exc.disallow.tree local ety_tree_json = M.JSON.toJSON(tree_to_json(ety_data_tree)) local anchor = M.anchors.etymonid(lang, id, { no_tree = args.notree, title = title, empty_tree = (not has_visible_children) or tree_disallowed, ety_tree_json = ety_tree_json, }) table.insert(output, anchor) local text_stop_lang_missing = nil if text then local max_depth, stop_at_blue_link, stop_at_lang, stop_at_lang_or_bluelink if text == "++" then max_depth, stop_at_blue_link = false, false elseif text == "+" then max_depth, stop_at_blue_link = 1, false elseif text == "*" then max_depth, stop_at_blue_link = false, true elseif text:match("^:[^*]+%*$") then -- Stop at a specific language OR first bluelink after it, e.g., ":ota*" -- If the target language is a redlink, continue to the first bluelink local lang_code = text:match("^:([^*]+)%*$") if lang_code and lang_code ~= "" then local lang_obj = Util.get_lang(lang_code, true) if lang_obj then stop_at_lang_or_bluelink = lang_code else Util.add_warning('Invalid language code "' .. lang_code .. '" in text parameter. Showing full chain instead.') max_depth, stop_at_blue_link = false, false end else Util.add_warning('Empty language code in text parameter. Showing full chain instead.') max_depth, stop_at_blue_link = false, false end elseif text:sub(1, 1) == ":" then -- Stop at a specific language, e.g., ":ar" stops at first Arabic term local lang_code = text:sub(2) if lang_code ~= "" then -- Validate the language code local lang_obj = Util.get_lang(lang_code, true) if lang_obj then stop_at_lang = lang_code else Util.add_warning('Invalid language code "' .. lang_code .. '" in text parameter. Showing full chain instead.') max_depth, stop_at_blue_link = false, false -- default to ++ end else Util.add_warning('Empty language code in text parameter. Showing full chain instead.') max_depth, stop_at_blue_link = false, false -- default to ++ end else local num = tonumber(text) if num and num >= 1 then max_depth, stop_at_blue_link = num, false else error('Invalid text value "' .. text .. '". Valid values are: "++" (full chain), "+" (first step only), "*" (until first blue link), a number (max steps), ":lang" (stop at language), or ":lang*" (stop at language or first bluelink if redlink)') end end local text_output, text_render_meta = M.text.render({ data_tree = ety_data_tree, format_term_func = Util.format_term, lang_matches_stop_code = Util.lang_matches_stop_code, max_depth = max_depth, stop_at_blue_link = stop_at_blue_link, curr_page = page_data.pagename, nodot = args.nodot, dot = args.dot, stop_at_lang = stop_at_lang, stop_at_lang_or_bluelink = stop_at_lang_or_bluelink, }) table.insert(output, text_output) if stop_at_lang and text_render_meta and not text_render_meta.stop_lang_reached then M.tracking.track_text_stop_lang_missing(lang, stop_at_lang) text_stop_lang_missing = stop_at_lang end end if rfe then table.insert(output, Util.expand_request_template(frame, "rfe", rfe, lang:getCode())) end if etystub then table.insert(output, Util.expand_request_template(frame, "etystub", etystub, lang:getCode())) end if is_nonlemma then table.insert(output, " " .. frame:expandTemplate({ title = "nonlemma", args = {}, })) end local categories = {} if Util.is_content_page() then M.tracking.track_tree_metrics({ max_depth_reached = __state.max_depth_reached, total_nodes = __state.total_nodes, language_count = __state.language_count, lang = lang, }) categories = M.categories.build({ data_tree = ety_data_tree, page_lang = lang, available_etymon_ids = __state.available_etymon_ids, senseid_parent_etymon = __state.senseid_parent_etymon, get_norm_lang_func = Util.get_norm_lang, lang_exc = lang_exc, suppress_categories = lang_exc and lang_exc.suppress_categories, nocat = args.nocat, tree = tree, text = text, exnihilo = args.exnihilo, toplevel_has_inline_etymology = __state.toplevel_has_inline_etymology, toplevel_redundant_etymology = __state.toplevel_redundant_etymology, toplevel_idless_etymon = __state.toplevel_idless_etymon, has_mismatched_id = __state.has_mismatched_id, linked_page_multiple_etymons_idless = __state.linked_page_multiple_etymons_idless, linked_page_partial_etymology_sections = __state.linked_page_partial_etymology_sections, text_stop_lang_missing = text_stop_lang_missing, }) M.tracking.track_keywords(__state.toplevel_keyword_stats, lang) M.tracking.track_page_id(lang, id) M.tracking.track_ids(__state.id_stats, lang) end if #categories > 0 then table.insert(output, M.categories.format(categories, lang)) end if __state.warnings then for i, warning in ipairs(__state.warnings) do table.insert(output, (i == 1 and "\n" or "") .. warning .. "\n") end end return table.concat(output) end return export 9ibt8lmkdjbdks4bdift5n5kdj4dgrf 9813891 9813885 2026-06-15T18:18:11Z TongcyDai 53191 9813891 Scribunto text/plain --[=[ This module implements the {{etymon}} template for structured etymology data on Wiktionary. It enables the creation of etymology trees and text by parsing etymon chains, scraping linked pages for their own {{etymon}} data, and recursively building a tree of derivational relationships. Authors: - Original implementation: [[User:Ioaxxere]] - Full refactor (September 2025): [[User:Fenakhay]] ([[Special:Diff/86717746]]) Modules: - [[Module:etymon]]: main module handling parsing, validation, tree building, and page scraping - [[Module:etymon/data]]: keyword definitions, configuration, and status constants - [[Module:etymon/tree]]: etymology tree rendering - [[Module:etymon/text]]: etymology text generation - [[Module:etymon/categories]]: category generation logic - [[Module:etymon/tracking]]: tracking ]=] local export = {} local __state = { cached_etymon_args = {}, cached_etymon_pages = {}, cached_descendants_checks = {}, senseid_parent_etymon = {}, available_etymon_ids = {}, single_etymons = {}, entry_title = nil, entry_lang_code = nil, current_page_has_inline_etymology = false, current_page_has_redundant_etymology = false, used_idless_etymon = false, toplevel_has_inline_etymology = false, toplevel_redundant_etymology = false, toplevel_idless_etymon = false, has_mismatched_id = false, linked_page_multiple_etymons_idless = false, linked_page_partial_etymology_sections = false, partial_etymology_targets = {}, skip_partial_etymology_category = false, max_depth_reached = 0, total_nodes = 0, language_count = {}, toplevel_keyword_stats = {}, id_stats = nil, warnings = {}, } local function reset_invocation_state() __state.current_page_has_inline_etymology = false __state.current_page_has_redundant_etymology = false __state.used_idless_etymon = false __state.toplevel_has_inline_etymology = false __state.toplevel_redundant_etymology = false __state.toplevel_idless_etymon = false __state.has_mismatched_id = false __state.linked_page_multiple_etymons_idless = false __state.linked_page_partial_etymology_sections = false __state.max_depth_reached = 0 __state.total_nodes = 0 __state.language_count = {} __state.toplevel_keyword_stats = {} __state.warnings = {} end local M = require("Module:module loader").init({ require = { data = "Module:etymon/data", tree = "Module:etymon/tree", text = "Module:etymon/text", categories = "Module:etymon/categories", tracking = "Module:etymon/tracking", descendants = "Module:etymon/descendants", anchors = "Module:anchors", etydate = "Module:etydate", etymology = "Module:etymology", families = "Module:families", languages = "Module:languages", languages_errorgetby = "Module:languages/errorGetBy", links = "Module:links", pages = "Module:pages", parameters = "Module:parameters", string_utilities = "Module:string utilities", template_parser = "Module:template parser", utilities = "Module:utilities", debug = "Module:debug", en_utilities = "Module:en-utilities", parse_utilities = "Module:parse utilities", references = "Module:references", template_styles = "Module:TemplateStyles", script_utilities = "Module:script utilities", JSON = "Module:JSON", yesno = "Module:yesno", }, loadData = { headword_data = "Module:headword/data", parameters_data = "Module:parameters/data", text_allowed = "Module:etymon/data/text_allowed", }, }) local Util = {} function Util.format_error(message, preview_only) if preview_only and not M.pages.is_preview() then return nil end return '<span class="error">' .. message .. '</span>' end function Util.add_warning(message, preview_only) local formatted = Util.format_error(message, preview_only) if formatted then table.insert(__state.warnings, formatted) end end function Util.is_text_param_allowed_for_lang(lang) if not lang or type(lang) ~= "table" then return false end local types = lang.getTypes and lang:getTypes() if types and types.family then local code = lang.getCode and lang:getCode() return code and M.text_allowed.families[code] == true end local full_code = lang.getFullCode and lang:getFullCode() if full_code and M.text_allowed.langs[full_code] then return true end if lang.inFamily then for family_code in pairs(M.text_allowed.families) do if lang:inFamily(family_code) then return true end end end return false end function Util.get_lang(code, no_error) if no_error then return M.languages.getByCode(code, nil, true) end return M.languages.getByCode(code, nil, true) or M.languages_errorgetby.code(code, true, true) end -- Match a term language against a text=:lang stop target (supports etymology-only codes). function Util.lang_matches_stop_code(term_lang, stop_code) if not term_lang or not stop_code or stop_code == "" then return false end local stop_lang = Util.get_lang(stop_code, true) if not stop_lang then return false end if term_lang:getCode() == stop_lang:getCode() then return true end if stop_lang:getFullCode() == stop_lang:getCode() then return term_lang:getFullCode() == stop_lang:getCode() end return false end function Util.get_family(code) return M.families.getByCode(code) end function Util.get_lang_exception(lang) -- Families have no language-specific exceptions if lang.getTypes and lang:getTypes().family then return nil end local code = lang:getCode() local lang_exceptions = M.data.config.lang_exceptions if lang_exceptions[code] then return lang_exceptions[code] end for norm_code, exc in pairs(lang_exceptions) do if exc.normalize_to and code == exc.normalize_to then return exc end if exc.normalize_from_families then local should_normalize = false for _, family in ipairs(exc.normalize_from_families) do if lang:inFamily(family) then should_normalize = true break end end if should_normalize and exc.normalize_exclude_families then for _, family in ipairs(exc.normalize_exclude_families) do if lang:inFamily(family) then should_normalize = false break end end end if should_normalize then local ret = {} for k, v in pairs(exc) do ret[k] = v end ret.suppress_tr = nil return ret end end end return nil end function Util.get_norm_lang(lang) local exc = Util.get_lang_exception(lang) if exc and exc.normalize_to then return M.languages.getByCode(exc.normalize_to) end return lang end -- Add default values for boolean modifiers (e.g., <unc> becomes <unc:1>) -- This is needed because Module:parse utilities expects boolean modifiers to have explicit values function Util.add_boolean_defaults(str, param_mods) local result = str for name, spec in pairs(param_mods) do if spec.type == "boolean" then -- Replace <name> with <name:1> (but not <name:...> which already has a value) result = result:gsub("<" .. name .. ">", "<" .. name .. ":1>") end end return result end local REQUEST_TEMPLATE_PARAM_MODS = { rfe = { nocat = { type = "boolean" }, sort = {}, y = {}, m = {}, fragment = {}, section = {}, box = { type = "boolean" }, noes = { type = "boolean" }, }, etystub = { nocat = { type = "boolean" }, sort = {}, nocap = { type = "boolean" }, nodot = { type = "boolean" }, }, } function Util.expand_request_template(frame, template_name, param_value, lang_code) local param_mods = REQUEST_TEMPLATE_PARAM_MODS[template_name] local with_defaults = Util.add_boolean_defaults(param_value, param_mods) local parsed = M.parse_utilities.parse_inline_modifiers(with_defaults, { param_mods = param_mods, generate_obj = function(text) if M.yesno(text, false) then return { is_boolean = true } end return { text = text } end, }) local template_args = { [1] = lang_code } for name in pairs(param_mods) do template_args[name] = parsed[name] end if not parsed.is_boolean then template_args[2] = parsed.text end return " " .. frame:expandTemplate({ title = template_name, args = template_args, }) end -- Centralized term formatting: handles suppress_term (-), unknown_term (empty/+), and regular terms function Util.format_term(term, is_toplevel, opts) opts = opts or {} -- suppress_term (-) returns nil if term.suppress_term then return nil end local lang = term.lang local exc = Util.get_lang_exception(lang) if is_toplevel then local display_text = term.alt or term.title or "" local sc = term.sc or lang:findBestScript(display_text) local bold_text = tostring(mw.html.create("strong") :addClass("selflink") :wikitext(display_text)) return M.script_utilities.tag_text(bold_text, lang, sc, "term") end local link_params = { lang = lang } link_params.term = not term.unknown_term and term.title or nil link_params.alt = term.alt link_params.id = (not term.unknown_term and term.id and term.id ~= "") and term.id or nil if not (exc and exc.suppress_tr) then link_params.tr = term.tr link_params.ts = term.ts else link_params.suppress_tr = true end link_params.lit = (opts.lit ~= "suppress") and term.lit or nil if opts.gloss ~= "suppress" then link_params.gloss = term.t end if term.g and term.g ~= "" then local genders = M.string_utilities.split(term.g, ",") for i = 1, #genders do genders[i] = M.string_utilities.trim(genders[i]) end link_params.genders = genders end if opts.pos ~= "suppress" then link_params.pos = term.pos link_params.ng = term.ng end if exc and exc.suppress_tr then link_params.lit = nil end local show_qualifiers if opts.tree_ql ~= "suppress" then if term.q then link_params.q = term.q end if term.qq then link_params.qq = term.qq end if term.l then link_params.l = term.l end if term.ll then link_params.ll = term.ll end show_qualifiers = term.q or term.qq or term.l or term.ll end return M.links.full_link(link_params, "term", nil, show_qualifiers and true or nil) end local __is_content_page_cached function Util.is_content_page() if __is_content_page_cached == nil then __is_content_page_cached = M.pages.is_content_page(mw.title.getCurrentTitle()) end return __is_content_page_cached end local __page_data_cached function Util.get_page_data() if not __page_data_cached then __page_data_cached = M.headword_data.page end return __page_data_cached end -- Extract base keyword from param (without modifiers) local function get_keyword_base(param) if type(param) ~= "string" then return nil end local base = param:match("^:?([^<]+)") or param:gsub("^:", "") return base end local function is_keyword(param, allow_colon_less) if type(param) ~= "string" then return false end local keywords = M.data.keywords if param:sub(1, 1) == ":" then local base = get_keyword_base(param) return keywords[base] ~= nil end if allow_colon_less then local base = get_keyword_base(param) return keywords[base] ~= nil end return false end local function get_keyword(param, allow_colon_less) if type(param) ~= "string" then return nil end local keywords = M.data.keywords if param:sub(1, 1) == ":" then return get_keyword_base(param) end if allow_colon_less then local base = get_keyword_base(param) if keywords[base] then return base end end return nil end local function normalize_keyword(keyword) if keyword:sub(1, 1) == ":" then return keyword end return ":" .. keyword end -- Resolve keyword (possibly an alias) to its canonical form. Used only at input boundaries local function get_canonical_keyword(keyword) if not keyword then return keyword end return M.data.keyword_canonical[keyword] or keyword end local function is_affix_group_keyword(keyword) local config = keyword and M.data.keywords[keyword] return config and config.affix_categories or false end local function reject_removed_surf_keyword(param) local base = get_keyword_base(param) if base == "surf" then error("The `:surf` keyword has been removed. Use `<surf>` on a formation keyword instead (e.g. `:af<surf>`, `:bor<surf>`).") end end local function copy_keyword_info(source) local copy = {} for k, v in pairs(source) do copy[k] = v end return copy end local function lowercase_glossary_display(text) return text:gsub("(%[%[Appendix:Glossary#[^|]+|)([^%]])([^%]]*)%]%]", function(prefix, first, rest) return prefix .. mw.ustring.lower(first) .. rest .. "]]" end) end local function surf_should_keep_formation_phrase(base) if not base.phrase then return false end if base.glossary then return true end return not (base.phrase == "from" and (base.text == "From" or base.text == "from")) end -- Runtime overrides when <surf> is present on a keyword. local function get_effective_keyword_info(keyword, modifiers) local base = M.data.keywords[keyword] if not base or not modifiers or not modifiers.surf then return base end local effective = copy_keyword_info(base) local surf_text = "[[Appendix:Glossary#字面分析|字面分析]]為" local surf_phrase = "[[Appendix:Glossary#字面分析|字面分析]]為" effective.new_sentence = true effective.invisible = "tree" if surf_should_keep_formation_phrase(base) then effective.phrase = surf_phrase .. base.phrase if base.text then effective.text = surf_text .. lowercase_glossary_display(base.text) else effective.text = surf_text .. base.phrase end else effective.text = surf_text effective.phrase = surf_phrase end return effective end -- Build text/phrase for nominalization with <g:code> (uses data module for codes only). local function get_nominalization_label_for_g(code) if not code or code == "" then return nil end local codes = M.data.nominalization_g_codes local adj = codes[code] if not adj and #code == 2 then local gender_adj = codes[code:sub(1, 1)] local number_adj = codes[code:sub(2, 2)] if gender_adj and number_adj then adj = gender_adj .. number_adj end end if not adj then return nil end local text = adj .. "[[Appendix:Glossary#名詞化|名詞化]],來自" local phrase = adj .. "[[Appendix:Glossary#名詞化|名詞化]],來自" return { text = text, phrase = phrase } end local EtymonParser = {} -- Keyword modifier definitions EtymonParser.keyword_param_mods = { unc = { type = "boolean" }, ref = {}, text = { restrict = { keywords = { "from", "derived" } } }, lit = { restrict = { affix_group = true } }, conj = {}, -- conjunction for alternatives: "and", "or", "and/or", etc. g = { restrict = { keywords = { "nominalization" } } }, surf = { type = "boolean" }, senseid = { restrict = { keywords = { "semantic loan" } } }, } -- Term modifier definitions EtymonParser.etymon_param_mods = { id = {}, t = {}, tr = {}, ts = {}, q = {}, qq = {}, l = {}, ll = {}, pos = {}, ng = {}, alt = {}, g = {}, ety = {}, lit = {}, unc = { type = "boolean" }, ref = {}, aftype = { restrict = { affix_group = true } }, postype = {}, bor = { type = "boolean", restrict = { affix_group = true } }, slbor = { type = "boolean", restrict = { affix_group = true } }, lbor = { type = "boolean", restrict = { affix_group = true } }, } local function get_clean_param_mods(param_mods) local clean = {} for mod_name, mod_def in pairs(param_mods) do clean[mod_name] = {} for key, value in pairs(mod_def) do if key ~= "restrict" then clean[mod_name][key] = value end end end return clean end function EtymonParser.check_modifier_restrictions(modifiers, current_keyword, param_mods) for mod_name, mod_value in pairs(modifiers) do -- Only check restrictions if the modifier has a non-false/nil value if mod_value then local mod_def = param_mods[mod_name] if mod_def and mod_def.restrict then if mod_def.restrict.affix_group then if not is_affix_group_keyword(current_keyword) then local mod_display = mod_value == true and "<" .. mod_name .. ">" or "<" .. mod_name .. ":" .. tostring(mod_value) .. ">" error("The modifier `" .. mod_display .. "` is only allowed for affix-group keywords (e.g. `:af`, `:blend`, `:univ`).") end elseif mod_def.restrict.keywords then local allowed_keywords = mod_def.restrict.keywords local is_allowed = false for _, allowed_keyword in ipairs(allowed_keywords) do if current_keyword == allowed_keyword then is_allowed = true break end end if not is_allowed then local keyword_list = {} for _, kw in ipairs(allowed_keywords) do table.insert(keyword_list, ":" .. kw) end local keyword_str = table.concat(keyword_list, #keyword_list == 2 and " or " or ", ") if #keyword_list > 2 then -- Replace last comma with "or" keyword_str = keyword_str:gsub(", ([^,]+)$", " or %1") end local mod_display = mod_value == true and "<" .. mod_name .. ">" or "<" .. mod_name .. ":" .. tostring(mod_value) .. ">" error("The modifier `" .. mod_display .. "` is only allowed for the keyword" .. (#keyword_list > 1 and "s " or " ") .. keyword_str .. ".") end end end end end end local TERM_RULE_DISALLOW = { suppress = { field = "suppress_term", label = "suppressed" }, unknown = { field = "unknown_term", label = "unknown" }, family = { field = "is_family", label = "family" }, } function EtymonParser.check_etymon_limits(count, limits, label, opts) if not limits then return end opts = opts or {} local min_etymons = limits.min_etymons if min_etymons == nil and not opts.skip_default_min then min_etymons = 1 end if min_etymons and count < min_etymons then if min_etymons > 1 then error("Detected " .. label .. " group with fewer than " .. min_etymons .. " etymons.") else error("Detected " .. label .. " with no etymons.") end end if limits.max_etymons and count > limits.max_etymons then local unit = (limits.max_etymons == 1) and "etymon" or "etymons" error("Detected " .. label .. " with more than " .. limits.max_etymons .. " " .. unit .. ".") end end function EtymonParser.check_term_rules(etymon_data, entry_lang, rules, label) label = label or "term" if rules and rules.disallow then local disallowed = {} for _, typ in ipairs(rules.disallow) do local spec = TERM_RULE_DISALLOW[typ] if spec and etymon_data[spec.field] then table.insert(disallowed, spec.label) end end if #disallowed > 0 then error(label .. " does not support " .. mw.text.listToText(disallowed, "or") .. " etymons.") end end if etymon_data.is_family then if rules and rules.family == "disallowed" then error(label .. " does not support family codes" .. (rules.family_suffix or ".")) elseif not etymon_data.suppress_term then error("Family codes require suppressed term (use family:-).") end end if rules then if rules.require_term and (not etymon_data.term or etymon_data.term == "") then error(label .. " requires a term for each listed form.") end if rules.entry_lang then if Util.get_norm_lang(etymon_data.lang):getFullCode() ~= Util.get_norm_lang(entry_lang):getFullCode() then error(label .. " terms must be in the entry language (" .. entry_lang:getFullCode() .. "), got '" .. etymon_data.lang:getFullCode() .. "'.") end end if rules.ancestor_check then M.etymology.check_ancestor(entry_lang, etymon_data.lang) end elseif etymon_data.is_family and not etymon_data.suppress_term then error("Family codes require suppressed term (use family:-).") end end function EtymonParser.check_keyword_term(etymon_data, entry_lang, keyword) local config = M.data.keywords[keyword] EtymonParser.check_term_rules(etymon_data, entry_lang, config and config.term_rules, "`:" .. keyword .. "`") end function EtymonParser.check_supplement_term(etymon_data, entry_lang, supplement_type) local config = M.data.supplements[supplement_type] EtymonParser.check_term_rules(etymon_data, entry_lang, config and config.term_rules, "|" .. supplement_type .. "=") end -- Parse keyword with modifiers (e.g., ":bor<unc>" or ":bor<ref:{{R:example}}>") function EtymonParser.parse_keyword_modifiers(param) if type(param) ~= "string" then return nil, {} end local base_keyword = get_keyword_base(param) if not base_keyword then return nil, {} end local canonical_keyword = get_canonical_keyword(base_keyword) -- Check if there are any modifiers if not param:find("<", 1, true) then return canonical_keyword, {} end -- Parse modifiers using the same mechanism as etymon parsing local rest_with_defaults = Util.add_boolean_defaults(param, EtymonParser.keyword_param_mods) local function generate_obj(ignored) return {} end local parsed = M.parse_utilities.parse_inline_modifiers(rest_with_defaults:gsub("^:?[^<]+", ""), { param_mods = get_clean_param_mods(EtymonParser.keyword_param_mods), generate_obj = generate_obj }) local modifiers = { unc = parsed.unc or false, ref = parsed.ref, text = parsed.text, lit = parsed.lit, conj = parsed.conj, g = parsed.g, surf = parsed.surf or false, senseid = parsed.senseid, } -- Validate modifiers against restrictions EtymonParser.check_modifier_restrictions(modifiers, canonical_keyword, EtymonParser.keyword_param_mods) return canonical_keyword, modifiers end local function normalize_keyword_param(keyword_with_mods) local trimmed = M.string_utilities.trim(keyword_with_mods) reject_removed_surf_keyword(trimmed:match("^:") and trimmed or (":" .. trimmed)) local base = get_keyword_base(trimmed) if not base or not M.data.keywords[base] then error("Invalid keyword '" .. trimmed .. "' in inline etymology") end local canonical_base = get_canonical_keyword(base) local without_colon = trimmed:gsub("^:", "") local mods_part = without_colon:sub(#base + 1) local kw_param = normalize_keyword(canonical_base .. mods_part) EtymonParser.parse_keyword_modifiers(kw_param) return kw_param end local function get_keyword_mod_names() local names = {} for mod_name in pairs(EtymonParser.keyword_param_mods) do names[mod_name] = true end return names end local function parse_inline_ety_run(ety_string) local body = ety_string or "" if body == "" then error("Empty inline etymology") end local keyword_mod_names = get_keyword_mod_names() local pos = 1 local len = #body local function parse_err(msg) error(msg .. " in inline etymology: '" .. body .. "'") end local function peek_double() return body:sub(pos, pos + 1) == "<<" end local function mod_name_from_unwrapped(unwrapped) return unwrapped:match("^<([^:>]+)") end local function is_keyword_mod(unwrapped) local name = mod_name_from_unwrapped(unwrapped) return name and keyword_mod_names[name] or false end local function read_double_bracket() if not peek_double() then return nil end local start = pos pos = pos + 2 while pos <= len - 1 do if body:sub(pos, pos + 1) == ">>" then local token = body:sub(start, pos + 1) pos = pos + 2 return token, token:sub(2, -2) end pos = pos + 1 end parse_err("Unmatched <<") end local function read_angle_cell() if body:sub(pos, pos) ~= "<" or peek_double() then return nil end local open = pos pos = pos + 1 local depth = 1 local i = pos while i <= len do local ch = body:sub(i, i) if ch == "<" then depth = depth + 1 elseif ch == ">" then depth = depth - 1 if depth == 0 then local inner = body:sub(open + 1, i - 1) pos = i + 1 return inner end end i = i + 1 end parse_err("Unmatched <") end local function read_bare_run() local start = pos while pos <= len and body:sub(pos, pos) ~= "<" do pos = pos + 1 end return body:sub(start, pos - 1) end local function absorb_double_keyword_mods(keyword_str) while peek_double() do local saved = pos local _, unwrapped = read_double_bracket() if is_keyword_mod(unwrapped) then keyword_str = keyword_str .. unwrapped else pos = saved break end end return keyword_str end local kw_start = pos while pos <= len and body:sub(pos, pos) ~= "<" do pos = pos + 1 end local keyword = body:sub(kw_start, pos - 1) if keyword:match("^%s*$") then parse_err("Missing keyword") end keyword = absorb_double_keyword_mods(keyword) local cells = {} while pos <= len do if peek_double() then local _, unwrapped = read_double_bracket() if is_keyword_mod(unwrapped) then parse_err("Unexpected keyword modifier " .. unwrapped .. " outside of a keyword") end table.insert(cells, "+" .. unwrapped) elseif body:sub(pos, pos) == "<" then local inner = read_angle_cell() if inner ~= "" then table.insert(cells, inner) end else local bare = read_bare_run() if bare ~= "" then if bare:sub(1, 1) ~= ":" then parse_err("Unexpected bare text '" .. bare .. "' (use :keyword for nested keywords in inline etymology)") end if not is_keyword(bare, true) then parse_err("Invalid keyword '" .. bare .. "' in inline etymology") end table.insert(cells, absorb_double_keyword_mods(bare)) end end end return { keyword = keyword, cells = cells, } end function EtymonParser.inline_ety_to_pipe(ety_string) local run = parse_inline_ety_run(ety_string) if not run.keyword or run.keyword:match("^%s*$") then return "|" end local pipe_parts = { normalize_keyword_param(M.string_utilities.trim(run.keyword)) } for _, segment in ipairs(run.cells) do if is_keyword(segment, true) then table.insert(pipe_parts, normalize_keyword_param(segment)) else table.insert(pipe_parts, segment) end end return "|" .. table.concat(pipe_parts, "|") .. "|" end function EtymonParser.pipe_to_inline_ety(pipe_string) local cells = {} for cell in pipe_string:gmatch("([^|]+)") do if cell ~= "" then table.insert(cells, cell) end end if #cells == 0 then return "" end local inline_parts = {} for index, cell in ipairs(cells) do local base = get_keyword_base(cell) if base and M.data.keywords[base] then local without_colon = cell:gsub("^:", "") local kw_base, mods = without_colon:match("^([^<]+)(.*)$") local inline_kw = (kw_base or without_colon) .. (mods or ""):gsub("<([^>]+)>", "<<%1>>") if index > 1 then inline_kw = ":" .. inline_kw end table.insert(inline_parts, inline_kw) elseif cell:sub(1, 1) == "+" then local mod = cell:sub(2) if mod:match("^<.->$") then mod = mod:sub(2, -2) end table.insert(inline_parts, "<<" .. mod .. ">>") else table.insert(inline_parts, "<" .. cell .. ">") end end return table.concat(inline_parts, "") end function EtymonParser.parse_inline_ety(ety_string, context_lang) local run = parse_inline_ety_run(ety_string) local keyword = M.string_utilities.trim(run.keyword) reject_removed_surf_keyword(":" .. keyword) if not is_keyword(keyword, true) then error("Invalid keyword '" .. keyword .. "' in inline etymology <ety:" .. keyword .. "...>") end local args = { context_lang:getCode(), normalize_keyword_param(keyword) } for _, segment in ipairs(run.cells) do if is_keyword(segment, true) then table.insert(args, normalize_keyword_param(segment)) else table.insert(args, segment) end end return args end function EtymonParser.parse_etymon(param, context_lang) if is_keyword(param) then return nil end if type(param) ~= "string" then return nil end local lang, rest local is_family = false local before_bracket = param:match("^([^<]*)") or param local lang_code, rest_match = before_bracket:match("^([a-zA-Z][a-zA-Z0-9._-]*):(.*)$") if lang_code then local potential_lang = Util.get_lang(lang_code, true) if potential_lang then lang = potential_lang rest = param:sub(#lang_code + 2) else local potential_family = Util.get_family(lang_code) if potential_family then lang = potential_family rest = param:sub(#lang_code + 2) is_family = true else lang = context_lang rest = param end end else lang = context_lang rest = param end M.tracking.track_term(rest) if rest == "" or rest == "+" then return { lang = lang, term = nil, unknown_term = true, is_family = is_family, } end if rest == "-" then return { lang = lang, term = nil, suppress_term = true, is_family = is_family, } end if not rest:find("<", 1, true) then return { lang = lang, term = M.string_utilities.trim(rest), is_family = is_family, } end local term_text = rest:match("^([^<]*)") or "" local is_unknown = (term_text == "" or term_text == "+") local is_suppress = (term_text == "-") local function generate_obj(ignored_term) return { term = (is_unknown or is_suppress) and nil or M.string_utilities.trim(term_text) } end local rest_with_defaults = Util.add_boolean_defaults(rest, EtymonParser.etymon_param_mods) local parsed_obj = M.parse_utilities.parse_inline_modifiers(rest_with_defaults, { param_mods = get_clean_param_mods(EtymonParser.etymon_param_mods), generate_obj = generate_obj }) if parsed_obj.id and parsed_obj.id:match("^!") then parsed_obj.id = parsed_obj.id:sub(2) parsed_obj.override = true end parsed_obj.lang = lang parsed_obj.is_family = is_family if is_unknown then parsed_obj.unknown_term = true elseif is_suppress then parsed_obj.suppress_term = true end return parsed_obj end function EtymonParser.validate(lang, args, id, title, pos, starts_with_lang_code) -- id is now optional, so only validate if provided if id then if mw.ustring.len(id) < 1 then error("The `id` parameter must have at least two characters.") end if id == title or id == Util.get_page_data().pagename then error("The `id` parameter must not be the same as the page title.") end end local pos_aliases = { ["前綴"] = "prefix", ["後綴"] = "suffix", ["間綴"] = "interfix", ["中綴"] = "infix", ["詞根"] = "root", ["詞"] = "word", } if pos and pos_aliases[pos] then pos = pos_aliases[pos] end -- L10N local valid_pos = { prefix = true, suffix = true, interfix = true, infix = true, root = true, word = true } if pos and not valid_pos[pos] then error("Unknown value provided for `pos`. Valid values: " .. table.concat(require("Module:table").keysToList(valid_pos), ", ") .. ".") end local current_keyword = "from" local current_keyword_explicit = false local keyword_etymons = {} local keywords = M.data.keywords local function checkKeyword() local config = keywords[current_keyword] if current_keyword == "from" and not current_keyword_explicit and #keyword_etymons == 0 then keyword_etymons = {} return end EtymonParser.check_etymon_limits(#keyword_etymons, config, "`:" .. current_keyword .. "`") keyword_etymons = {} end local start_index = starts_with_lang_code and 2 or 1 for i = start_index, #args do local param = args[i] if type(param) ~= "string" then elseif param:sub(1, 1) == ":" and not is_keyword(param) then reject_removed_surf_keyword(param) error("Invalid keyword '" .. param .. "'. Did you mean a valid keyword like ':bor', ':inh', etc.?") elseif is_keyword(param) then checkKeyword() current_keyword = get_canonical_keyword(get_keyword(param)) current_keyword_explicit = true else local etymon_data = EtymonParser.parse_etymon(param, lang) if etymon_data then table.insert(keyword_etymons, param) EtymonParser.check_keyword_term(etymon_data, lang, current_keyword) -- Check modifier restrictions EtymonParser.check_modifier_restrictions(etymon_data, current_keyword, EtymonParser.etymon_param_mods) -- postype must be "root" or "word" local VALID_POSTYPES = { root = true, word = true } if etymon_data.postype and not VALID_POSTYPES[etymon_data.postype] then error("Invalid <postype:" .. etymon_data.postype .. ">; must be \"root\" or \"word\".") end if etymon_data.ety then local inline_args = EtymonParser.parse_inline_ety(etymon_data.ety, etymon_data.lang) EtymonParser.validate(etymon_data.lang, inline_args, nil, nil, nil, true) end else table.insert(keyword_etymons, param) end end end checkKeyword() end local DataRetriever = {} local function format_etymon_id_hint(id_data, idx) local id = type(id_data) == "table" and id_data.id or id_data local pos = type(id_data) == "table" and id_data.pos if id and id ~= "" and id ~= "*" then return '"' .. id .. '"' end if pos and pos ~= "" then return "unnamed (|pos=" .. pos .. "|)" end return "etymon #" .. idx .. " (no |id= on page)" end local function etymon_target_page_link(page, norm_lang) return M.links.full_link({ term = page, lang = norm_lang, no_generate_forms = true, }, "term") end -- Summarize {{etymon}} id slots on a linked page for preview warnings. local function summarize_available_etymon_ids(ids) local id_list = {} local all_idless = true local target_has_idless = false local any_pos = false for i, id_data in ipairs(ids) do local id = type(id_data) == "table" and id_data.id or id_data local pos = type(id_data) == "table" and id_data.pos if id and id ~= "" and id ~= "*" then all_idless = false else target_has_idless = true end if pos and pos ~= "" then any_pos = true end table.insert(id_list, format_etymon_id_hint(id_data, i)) end return { id_list = id_list, all_idless = all_idless, target_has_idless = target_has_idless, any_pos = any_pos, count = #ids, options_text = mw.text.listToText(id_list), } end local function ambiguous_etymon_suggestion(page_link, summary) if summary.all_idless then if summary.any_pos then return " None set `|id=` yet; add a unique `|id=` to each on " .. page_link .. ", then `<id:identifier>` after the term here. Section order / hints: " .. summary.options_text .. "." end return " None set `|id=` yet; add a unique `|id=` to each {{etymon}} in that section from top to bottom, then `<id:identifier>` after the term here (same value as `|id=`)." end return " Specify which one with `<id:identifier>` after the term. Options: " .. summary.options_text .. "." end local function warn_ambiguous_etymon_link(page, norm_lang, ids, is_toplevel) local page_link = etymon_target_page_link(page, norm_lang) local summary = summarize_available_etymon_ids(ids) if is_toplevel and summary.target_has_idless then __state.linked_page_multiple_etymons_idless = true end local lang_name = norm_lang:getCanonicalName() local lead = "Etymology link to " .. page_link .. " is ambiguous (" .. summary.count .. " {{etymon}} templates for " .. lang_name .. ")." Util.add_warning(lead .. ambiguous_etymon_suggestion(page_link, summary), true) end local function is_mismatched_explicit_id(base_key, cached_args, parent_etymon) return cached_args == M.data.STATUS.MISSING and not parent_etymon and #(__state.available_etymon_ids[base_key] or {}) > 0 end local function maybe_flag_partial_etymology_reference(base_key, etymon_data, cached_args, is_toplevel) if not is_toplevel or __state.skip_partial_etymology_category then return end if not __state.partial_etymology_targets[base_key] then return end if etymon_data.id and type(cached_args) == "table" then return end __state.linked_page_partial_etymology_sections = true end local function is_nonlemma_etymon_template(template_args) return template_args and M.yesno(template_args.nl, false) end local function warn_mismatched_explicit_id(page, norm_lang, base_key, etymon_id) local page_link = etymon_target_page_link(page, norm_lang) local summary = summarize_available_etymon_ids(__state.available_etymon_ids[base_key] or {}) local lang_name = norm_lang:getCanonicalName() local lead = "Etymology link to " .. page_link .. " uses `<id:" .. etymon_id .. ">`, but no {{etymon}} on that page has `|id=" .. etymon_id .. "|` for " .. lang_name .. "." Util.add_warning(lead .. " Valid IDs: " .. summary.options_text .. ".", true) end -- Given an etymon data, scrape its page and cache the result in the global state object. function DataRetriever.cache_page_etymons(etymon_page, etymon_title, key, etymon_lang, etymon_id, redirected_from, descendants_is_toplevel) local content = etymon_title:getContent() if not content then __state.cached_etymon_args[key] = M.data.STATUS.REDLINK return end -- Check if the linked page is a redirect. If it is, the template parsing -- code below will be effectively skipped, and `scrape_page` will be called -- again on the redirect target (see the bottom of this function) local lang_section_for_descendants = nil local redirect_target = etymon_title.redirect_target if not redirect_target then content = M.pages.get_section(content, etymon_lang:getFullName(), 2) if not content then __state.cached_etymon_args[key] = M.data.STATUS.MISSING return end lang_section_for_descendants = content end local etymon_lang_code = etymon_lang:getFullCode() local lang_page_key = etymon_lang_code .. ":" .. etymon_page local found_templates_for_lang = {} local found_ids = {} local get_node_class = M.template_parser.class_else_type -- Look for all {{etymon}} templates within the page content using the template parser -- This way the same page is never parsed more than once -- Build a map from senseids to their parent etymonids. local active_etymon_args = nil local etymology_section_count = 0 local etymology_sections_with_etymon = 0 local current_etymology_has_etymon = false local current_etymology_has_nonlemma = false local function finalize_current_etymology_section() if etymology_section_count == 0 then return end if current_etymology_has_etymon or current_etymology_has_nonlemma then etymology_sections_with_etymon = etymology_sections_with_etymon + 1 end current_etymology_has_etymon = false current_etymology_has_nonlemma = false end for node in M.template_parser.parse(content):iterate_nodes() do local node_class = get_node_class(node) if node_class == "heading" then -- A new L2 or etymology section acts as a barrier: an {{etymon}} usage -- used previously cannot be the parent of any subsequent senseids. -- Note that we don't have to check for L2s due to the usage of `M.pages.get_section` above. if node:get_name():find("^Etymology") then finalize_current_etymology_section() etymology_section_count = etymology_section_count + 1 active_etymon_args = nil end elseif node_class == "template" then local template_name = node:get_name() if template_name == "etymon" then local template_args = node:get_arguments() -- Check if this etymon is for our language if template_args[1] == etymon_lang_code then if is_nonlemma_etymon_template(template_args) then if etymology_section_count > 0 then current_etymology_has_nonlemma = true end else if etymology_section_count > 0 then current_etymology_has_etymon = true end table.insert(found_templates_for_lang, template_args) if template_args.id then local etymon_key = lang_page_key .. ":" .. template_args.id __state.cached_etymon_args[etymon_key] = template_args __state.cached_etymon_pages[etymon_key] = tostring(etymon_page) table.insert(found_ids, template_args.id) active_etymon_args = template_args else -- Store idless etymon with default key local etymon_key = lang_page_key .. ":*" __state.cached_etymon_args[etymon_key] = template_args __state.cached_etymon_pages[etymon_key] = tostring(etymon_page) table.insert(found_ids, "*") active_etymon_args = template_args end end end elseif active_etymon_args and template_name == "senseid" then local template_args = node:get_arguments() -- This should always be true for proper usages of {{senseid}}. if template_args[1] == etymon_lang_code and template_args[2] then local sense_id_key = lang_page_key .. ":" .. template_args[2] __state.senseid_parent_etymon[sense_id_key] = active_etymon_args __state.cached_etymon_pages[sense_id_key] = tostring(etymon_page) end end end end finalize_current_etymology_section() if lang_section_for_descendants and etymology_section_count > 1 and etymology_sections_with_etymon > 0 and etymology_sections_with_etymon < etymology_section_count then __state.partial_etymology_targets[lang_page_key] = true end if descendants_is_toplevel and lang_section_for_descendants and #found_templates_for_lang > 0 then M.descendants.cache_page_checks({ lang_section = lang_section_for_descendants, etymon_lang_code = etymon_lang_code, found_templates_for_lang = found_templates_for_lang, entry_title = __state.entry_title, entry_lang_code = __state.entry_lang_code, entry_lang = __state.entry_lang_code and Util.get_lang(__state.entry_lang_code, true) or nil, cached_descendants_checks = __state.cached_descendants_checks, lang_page_key = lang_page_key, redirected_from = redirected_from, }) end local id_data_list = {} for _, args in ipairs(found_templates_for_lang) do local id = args.id or "*" table.insert(id_data_list, { id = id, pos = args.pos }) end __state.available_etymon_ids[lang_page_key] = id_data_list if #found_templates_for_lang == 1 then __state.single_etymons[lang_page_key] = found_templates_for_lang[1] end if redirected_from and __state.available_etymon_ids[lang_page_key] then __state.available_etymon_ids[redirected_from] = __state.available_etymon_ids[redirected_from] or {} for _, id_data in ipairs(__state.available_etymon_ids[lang_page_key]) do table.insert(__state.available_etymon_ids[redirected_from], id_data) end end if __state.cached_etymon_args[key] ~= nil or __state.senseid_parent_etymon[key] ~= nil then -- All done! return elseif redirect_target and not redirected_from then -- Try scraping the redirect. etymon_page = redirect_target.prefixedText DataRetriever.cache_page_etymons(etymon_page, redirect_target, lang_page_key .. ":" .. etymon_id, etymon_lang, etymon_id, lang_page_key, descendants_is_toplevel) __state.cached_etymon_args[key] = __state.cached_etymon_args[etymon_lang_code .. ":" .. etymon_page .. ":" .. etymon_id] else __state.cached_etymon_args[key] = M.data.STATUS.MISSING end end local function has_linkable_term(etymon_data) if etymon_data.is_family or etymon_data.suppress_term or etymon_data.unknown_term then return false end local term = etymon_data.term if term == nil or term == "" then return false end return M.string_utilities.trim(term) ~= "" end local function record_term_id_tracking(etymon_data) if not has_linkable_term(etymon_data) then return end local term_page = M.links.get_link_page(etymon_data.term, etymon_data.lang) M.tracking.record_term_id_usage(__state.id_stats, etymon_data, term_page) end -- Given an etymon object, scrape its page (if necessary) and return its own etymon arguments as well as the page name. function DataRetriever.get_etymon_args(etymon_data, is_toplevel) if not has_linkable_term(etymon_data) then return M.data.STATUS.MISSING, nil, nil, nil end local page = M.links.get_link_page(etymon_data.term, etymon_data.lang) local norm_lang = Util.get_norm_lang(etymon_data.lang) local base_key = norm_lang:getFullCode() .. ":" .. page if etymon_data.id then local key = base_key .. ":" .. etymon_data.id local cached_args = __state.cached_etymon_args[key] or __state.senseid_parent_etymon[key] if cached_args == nil then local title = mw.title.new(page) if not title then error('Invalid page title "' .. page .. '" encountered.') end DataRetriever.cache_page_etymons(page, title, key, norm_lang, etymon_data.id, nil, is_toplevel) end cached_args = __state.cached_etymon_args[key] or __state.senseid_parent_etymon[key] -- refresh -- Get etymon_id from parent if this was resolved via senseid local parent_etymon = __state.senseid_parent_etymon[key] local resolved_etymon_id = parent_etymon and parent_etymon.id local descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = is_toplevel, base_key = base_key, lookup = { explicit_id = etymon_data.id, parent_etymon = parent_etymon, }, }) if is_toplevel and descendants_check == nil then local title = mw.title.new(page) if title then DataRetriever.cache_page_etymons(page, title, key, norm_lang, etymon_data.id, nil, true) descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = true, base_key = base_key, lookup = { explicit_id = etymon_data.id, parent_etymon = parent_etymon, }, }) end end local mismatched_id = is_mismatched_explicit_id(base_key, cached_args, parent_etymon) if mismatched_id and is_toplevel then __state.has_mismatched_id = true M.tracking.record_mismatched_id_usage(__state.id_stats, norm_lang, page, etymon_data.id) warn_mismatched_explicit_id(page, norm_lang, base_key, etymon_data.id) end maybe_flag_partial_etymology_reference(base_key, etymon_data, cached_args, is_toplevel) return cached_args, __state.cached_etymon_pages[key], resolved_etymon_id, descendants_check else __state.used_idless_etymon = true if is_toplevel then __state.toplevel_idless_etymon = true end if __state.available_etymon_ids[base_key] == nil then local title = mw.title.new(page) if not title then error('Invalid page title "' .. page .. '" encountered.') end DataRetriever.cache_page_etymons(page, title, base_key .. ":*", norm_lang, "*", nil, is_toplevel) end local ids = __state.available_etymon_ids[base_key] or {} local count = #ids -- Try to filter by postype if available and we have multiple candidates if count > 1 and etymon_data.postype then local matching_ids = {} for _, id_data in ipairs(ids) do if id_data.pos == etymon_data.postype then table.insert(matching_ids, id_data) end end if #matching_ids == 1 then local matched_id = matching_ids[1].id local matched_key = base_key .. ":" .. matched_id M.tracking.record_idless_resolution(__state.id_stats, norm_lang, page, "postype") local descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = is_toplevel, base_key = base_key, lookup = { id = matched_id }, }) if is_toplevel and descendants_check == nil then local title = mw.title.new(page) if title then DataRetriever.cache_page_etymons(page, title, base_key .. ":*", norm_lang, "*", nil, true) descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = true, base_key = base_key, lookup = { id = matched_id }, }) end end local matched_args = __state.cached_etymon_args[matched_key] maybe_flag_partial_etymology_reference(base_key, etymon_data, matched_args, is_toplevel) return matched_args, __state.cached_etymon_pages[matched_key], nil, descendants_check end end if count == 1 then local only_id_data = ids[1] local only_id = (type(only_id_data) == "table" and only_id_data.id) or only_id_data or "*" M.tracking.record_idless_resolution(__state.id_stats, norm_lang, page, "single") local descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = is_toplevel, base_key = base_key, lookup = { id_data = only_id_data }, }) if is_toplevel and descendants_check == nil then local title = mw.title.new(page) if title then DataRetriever.cache_page_etymons(page, title, base_key .. ":*", norm_lang, "*", nil, true) descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = true, base_key = base_key, lookup = { id_data = only_id_data }, }) end end local single_args = __state.single_etymons[base_key] maybe_flag_partial_etymology_reference(base_key, etymon_data, single_args, is_toplevel) return single_args, __state.cached_etymon_pages[base_key .. ":" .. only_id], nil, descendants_check elseif count > 1 then M.tracking.record_idless_resolution(__state.id_stats, norm_lang, page, "ambiguous") warn_ambiguous_etymon_link(page, norm_lang, ids, is_toplevel) maybe_flag_partial_etymology_reference(base_key, etymon_data, M.data.STATUS.AMBIGUOUS, is_toplevel) return M.data.STATUS.AMBIGUOUS, nil, nil, nil else M.tracking.record_idless_resolution(__state.id_stats, norm_lang, page, "missing") maybe_flag_partial_etymology_reference(base_key, etymon_data, M.data.STATUS.MISSING, is_toplevel) return M.data.STATUS.MISSING, nil, nil, nil end end end local function keyword_invisible_in_tree(keyword_info) if not keyword_info then return false end local inv = keyword_info.invisible return inv == "all" or inv == true or inv == "tree" end -- True when the node has at least one top-level child container visible in the tree. local function node_has_visible_tree_children(node) for _, container in ipairs(node.children or {}) do if not keyword_invisible_in_tree(container.keyword_info) then return true end end return false end -- Count visible term nodes in the tree. local function get_visible_tree_depth(node, skip_child_rendering) local max_depth = 1 if skip_child_rendering or not node then return max_depth end for _, container in ipairs(node.children or {}) do local keyword_info = container.keyword_info if not keyword_invisible_in_tree(keyword_info) then local skip_grandchildren = keyword_info and keyword_info.no_child_categories for _, term in ipairs(container.terms or {}) do if term.is_duplicate then if term.original_has_children then max_depth = math.max(max_depth, 2) end else max_depth = math.max(max_depth, 1 + get_visible_tree_depth(term, skip_grandchildren)) end end end end return max_depth end local function as_param_list(val) if val == nil then return {} end if type(val) == "table" then return val end if type(val) == "string" and val ~= "" then return { val } end return {} end local TreeBuilder = {} local function parse_etymon_references(refs_text) if not refs_text or refs_text == "" then return "" end return M.references.parse_references(refs_text) end local function parse_tree_references(node) if node.ref then node.parsed_ref = parse_etymon_references(node.ref) end if node.children then for _, container in ipairs(node.children) do if container.terms then for _, term in ipairs(container.terms) do parse_tree_references(term) end end end end if node.supplements then for _, supplement in ipairs(node.supplements) do if supplement.terms then for _, term in ipairs(supplement.terms) do parse_tree_references(term) end end end end end -- Build a unique key for deduplication in the seen table function TreeBuilder.build_key(lang, title, args) local norm_lang_code = Util.get_norm_lang(lang):getFullCode() local is_table = type(args) == "table" local id = (is_table and args.id) or "" if title then return norm_lang_code .. ":" .. M.links.get_link_page(title, lang) .. ":" .. id end if is_table and args.status == M.data.STATUS.INLINE then local content_parts = {} for i = 1, #args do content_parts[i] = tostring(args[i]) end return norm_lang_code .. ":*:" .. id .. "\0" .. table.concat(content_parts, "\0") end return norm_lang_code .. ":*:" .. id end -- Copy parsed etymon modifiers onto a tree/supplement term node. function TreeBuilder.apply_etymon_fields(term, etymon_data) term.id = etymon_data.id term.t = etymon_data.t term.tr = etymon_data.tr term.ts = etymon_data.ts term.alt = etymon_data.alt term.g = etymon_data.g term.pos = etymon_data.pos term.ng = etymon_data.ng term.ref = etymon_data.ref term.is_uncertain = etymon_data.unc term.lit = etymon_data.lit term.q = etymon_data.q term.qq = etymon_data.qq term.l = etymon_data.l term.ll = etymon_data.ll term.suppress_term = etymon_data.suppress_term term.unknown_term = etymon_data.unknown_term term.is_family = etymon_data.is_family term.override = etymon_data.override term.aftype = etymon_data.aftype term.postype = etymon_data.postype term.bor = etymon_data.bor term.lbor = etymon_data.lbor term.slbor = etymon_data.slbor end function TreeBuilder.build_supplement_term(etymon_data, entry_lang, supplement_type) EtymonParser.check_supplement_term(etymon_data, entry_lang, supplement_type) local term = { lang = etymon_data.lang, title = etymon_data.term, children = {}, status = M.data.STATUS.OK, } TreeBuilder.apply_etymon_fields(term, etymon_data) return term end function TreeBuilder.build_supplement_terms(entry_lang, supplement_type, param_value) local terms = {} for _, term_param in ipairs(as_param_list(param_value)) do if type(term_param) == "string" and term_param ~= "" then local etymon_data = EtymonParser.parse_etymon(term_param, entry_lang) if etymon_data then table.insert(terms, TreeBuilder.build_supplement_term(etymon_data, entry_lang, supplement_type)) end end end return terms end -- Attach a |param= supplement defined in etymon_data.supplements (e.g. doublet=). function TreeBuilder.append_term_supplement(data_tree, entry_lang, supplement_type, param_value) local config = M.data.supplements[supplement_type] if not config then error("Unknown supplement '" .. tostring(supplement_type) .. "'.") end local terms = TreeBuilder.build_supplement_terms(entry_lang, supplement_type, param_value) if #terms == 0 then return end data_tree.supplements = data_tree.supplements or {} table.insert(data_tree.supplements, { type = supplement_type, config = config, terms = terms, }) M.tracking.record_keyword_usage(__state.toplevel_keyword_stats, supplement_type, entry_lang, entry_lang, true) end function TreeBuilder.build(lang, title, args, seen, depth, stop_recursion) seen = seen or {} depth = depth or 0 local is_toplevel = (depth == 0) if depth > __state.max_depth_reached then __state.max_depth_reached = depth end __state.total_nodes = __state.total_nodes + 1 local lang_code = lang:getCode() __state.language_count[lang_code] = (__state.language_count[lang_code] or 0) + 1 local current_id = (type(args) == "table" and args.id) or "" local key = TreeBuilder.build_key(lang, title, args) local node = { lang = lang, title = title, id = current_id, args = args, children = {}, status = M.data.STATUS.OK } if type(args) ~= "table" or seen[key] then node.status = args or M.data.STATUS.MISSING -- Mark as duplicate if we've seen this node before if seen[key] then node.is_duplicate = true node.duplicate_key = key local original_node = seen[key] if type(original_node) == "table" and original_node.children and #original_node.children > 0 then node.original_has_children = true end end return node end node.status = args.status or M.data.STATUS.OK seen[key] = node -- If stop_recursion is set, skip parsing children but check for visible children if stop_recursion then local keywords = M.data.keywords local has_visible_children = false for i = 2, #args do local param = args[i] if type(param) == "string" then local keyword_base = get_keyword_base(param) if keyword_base and keywords[keyword_base] then local _, kw_modifiers = EtymonParser.parse_keyword_modifiers(param:sub(1, 1) == ":" and param or (":" .. param)) if not keyword_invisible_in_tree(get_effective_keyword_info(keyword_base, kw_modifiers)) then has_visible_children = true break end elseif param:sub(1, 1) ~= ":" then -- It's a term (not a keyword), so there are visible children has_visible_children = true break end end end node.has_visible_children = has_visible_children return node end -- Parse args into keyword containers local current_keyword = "from" local current_keyword_modifiers = {} local current_container = nil local function ensure_container() if not current_container or current_container.keyword ~= current_keyword then local keyword_info = get_effective_keyword_info(current_keyword, current_keyword_modifiers) current_container = { keyword = current_keyword, keyword_info = keyword_info, keyword_modifiers = current_keyword_modifiers, terms = {}, } table.insert(node.children, current_container) -- Override keyword text/phrase for nominalization with <g:code> if current_keyword_modifiers.g and current_keyword == "nominalization" then local labels = get_nominalization_label_for_g(current_keyword_modifiers.g) if not labels then local codes = {} for c in pairs(M.data.nominalization_g_codes) do table.insert(codes, c) end table.sort(codes) error("Invalid <g:" .. tostring(current_keyword_modifiers.g) .. ">. Supported codes for nominalization: " .. table.concat(codes, ", ")) end current_container.keyword_info = copy_keyword_info(keyword_info) current_container.keyword_info.text = labels.text current_container.keyword_info.phrase = labels.phrase end end return current_container end for i = 2, #args do local param = args[i] if is_keyword(param) then local keyword, modifiers = EtymonParser.parse_keyword_modifiers(param) if not keyword then error("Invalid keyword '" .. param .. "'.") end current_keyword = keyword current_keyword_modifiers = modifiers current_container = nil -- Force new container for new keyword elseif type(param) == "string" and param:sub(1, 1) == ":" then reject_removed_surf_keyword(param) error("Invalid keyword '" .. param .. "'. Did you mean a valid keyword like ':bor', ':inh', etc.?") elseif type(param) == "string" then local etymon_data = EtymonParser.parse_etymon(param, lang) if etymon_data then -- Track keyword usage at top level M.tracking.record_keyword_usage(__state.toplevel_keyword_stats, current_keyword, lang, etymon_data.lang, is_toplevel) local term_node = {} local container -- Handle suppress_term (-) and unknown_term (empty or +) directly if etymon_data.suppress_term or etymon_data.unknown_term then container = ensure_container() if etymon_data.ety then local inline_args = EtymonParser.parse_inline_ety(etymon_data.ety, etymon_data.lang) inline_args.id = etymon_data.id inline_args.status = M.data.STATUS.INLINE term_node = TreeBuilder.build(etymon_data.lang, nil, inline_args, seen, depth + 1) else term_node = { lang = etymon_data.lang, children = {}, status = M.data.STATUS.OK, } end TreeBuilder.apply_etymon_fields(term_node, etymon_data) else -- Regular term: fetch arguments from page record_term_id_tracking(etymon_data) local etymon_args, page_of, resolved_etymon_id, descendants_check = DataRetriever.get_etymon_args(etymon_data, is_toplevel) -- Check for <ety> inline parameter doesn't override the scraped arguments, unless the latter are missing if etymon_data.ety then if etymon_args == M.data.STATUS.REDLINK or etymon_args == M.data.STATUS.MISSING then __state.current_page_has_inline_etymology = true if is_toplevel then __state.toplevel_has_inline_etymology = true end local inline_args = EtymonParser.parse_inline_ety(etymon_data.ety, etymon_data.lang) -- Track inline ety keywords too local inline_keyword = get_keyword(inline_args[2], true) if inline_keyword and #inline_args >= 3 then local inline_etymon = EtymonParser.parse_etymon(inline_args[3], etymon_data.lang) if inline_etymon then M.tracking.record_keyword_usage(__state.toplevel_keyword_stats, inline_keyword, etymon_data.lang, inline_etymon.lang, is_toplevel) end end inline_args.id = etymon_data.id inline_args.status = M.data.STATUS.INLINE etymon_args = inline_args term_node.page_of = __state.cached_etymon_pages[key] -- term node is on the same page as the parent else -- Scraped arguments exist, <ety> is redundant and ignored __state.current_page_has_redundant_etymology = true if is_toplevel then __state.toplevel_redundant_etymology = true end end end -- Ensure container exists before checking keyword info container = ensure_container() -- Check if current keyword has no_child_categories - if so, stop recursion local keyword_info = container.keyword_info local should_stop_recursion = (stop_recursion or (keyword_info and keyword_info.no_child_categories)) term_node = TreeBuilder.build(etymon_data.lang, etymon_data.term, etymon_args, seen, depth + 1, should_stop_recursion) term_node.target_key = Util.get_norm_lang(etymon_data.lang):getFullCode() .. ":" .. M.links.get_link_page(etymon_data.term, etymon_data.lang) term_node.etymon_id = resolved_etymon_id -- The actual etymon id when resolved via senseid term_node.page_of = page_of TreeBuilder.apply_etymon_fields(term_node, etymon_data) term_node.missing_descendants_header, term_node.missing_descendants_entry = M.descendants.get_term_sync_flags(current_keyword, term_node.status, descendants_check) end table.insert(container.terms, term_node) end end end return node end -- Convert etymology tree to JSON-serializable table local function tree_to_json(node) local obj = { term = node.title, lang = node.lang:getCode(), lang_name = node.lang:getCanonicalName(), id = (node.id and node.id ~= "") and node.id or nil, status = node.status, is_uncertain = node.is_uncertain or nil, is_duplicate = node.is_duplicate or nil, gloss = node.t, transliteration = node.tr, transcription = node.ts, alt = node.alt, g = node.g, pos = node.pos, ng = node.ng, children = {}, } for _, container in ipairs(node.children or {}) do local keyword_info = container.keyword_info if keyword_info then local container_obj = { keyword = container.keyword, keyword_label = keyword_info.text, keyword_abbrev = keyword_info.abbrev, is_group = keyword_info.is_group or nil, is_invisible = keyword_info.invisible or nil, is_uncertain = (container.keyword_modifiers and container.keyword_modifiers.unc) or nil, terms = {}, } for _, term in ipairs(container.terms or {}) do table.insert(container_obj.terms, tree_to_json(term)) end table.insert(obj.children, container_obj) end end return obj end -- Build and return the etymology data tree for a given term. function export.get_tree(lang, title, args, options) options = options or {} __state.entry_title = title __state.entry_lang_code = lang:getCode() __state.id_stats = M.tracking.new_id_stats() __state.skip_partial_etymology_category = options.skip_partial_etymology_category == true if options.validate then EtymonParser.validate(lang, args, options.id, title, options.pos, false) end local lang_code = lang:getCode() local start_index = (args[1] == lang_code) and 2 or 1 local tree_args = { [1] = lang_code, id = options.id or args.id } for i = start_index, #args do table.insert(tree_args, args[i]) end __state.cached_etymon_args[lang_code .. ":" .. title .. ":" .. (tree_args.id or "")] = tree_args local ety_data_tree = TreeBuilder.build(lang, title, tree_args) parse_tree_references(ety_data_tree) if options.json then return M.JSON.toJSON(tree_to_json(ety_data_tree)) end return ety_data_tree end -- Given a language code, page name and optionally the id= parameter, -- render the tree and only the etymology tree for the relevant page. -- Fetches and parses the corresponding {{etymon}} from the requested page, -- and any further pages needed to render the tree. -- Parameters can be passed either through the #invoke or as -- template parameters *through* an #invoke. function export.render_tree_for_etymon_on_page(frame) local frame_args = frame.args local parent_args = frame:getParent().args local langcode = frame_args[1] or parent_args[1] local pagename = frame_args[2] or parent_args[2] local id = frame_args["id"] or parent_args["id"] local display_title = frame_args["title"] or parent_args["title"] local parsed_title = mw.title.new(pagename, 0) local title if parsed_title.namespace == 0 then title = M.pages.safe_page_name(parsed_title) elseif parsed_title.namespace == 118 then title = "*" .. M.pages.safe_page_name(parsed_title) else error("Unsupported namespace for render_tree_for_etymon_on_page: " .. parsed_title.namespace) end local lang = Util.get_lang(langcode) -- Construct etymon_data for DataRetriever.get_args. local etymon_data = { lang = lang, term = title, id = id } local args, pagename = DataRetriever.get_etymon_args(etymon_data, true) if args == M.data.STATUS.MISSING then error("The etymon template was not found (language " .. langcode .. ", title '" .. title .. "'" .. (id and ", ID '" .. id .. "'" or ", no ID given") .. "). Page contents may have changed in the interim.") end local tree_title = display_title or title if lang:stripDiacritics(M.links.remove_links(tree_title)) ~= lang:stripDiacritics(M.links.remove_links(title)) then M.tracking.track_title_pagename_mismatch(lang) end reset_invocation_state() local ety_data_tree = export.get_tree(lang, tree_title, args, { validate = true, id = id, }) local output = {} table.insert(output, M.template_styles("Module:etymon/styles.css")) table.insert(output, M.tree.render({ data_tree = ety_data_tree, format_term_func = function(term, is_toplevel) return Util.format_term(term, is_toplevel, { gloss = "suppress", pos = "suppress", lit = "suppress", tree_ql = "suppress", }) end, })) return table.concat(output) end function export.main(frame) local parent_args = frame:getParent().args local args = M.parameters.process(parent_args, M.parameters_data.etymon) local lang = args[1] local etymon_args = args[2] local id = args.id local title = args.title local text = args.text local tree = args.tree local etydate = args.etydate local doublet = args.doublet local rfe = args.rfe local etystub = args.etystub local is_nonlemma = M.yesno(args.nl, false) local page_data = Util.get_page_data() if not title then title = page_data.pagename if page_data.namespace == "Reconstruction" then title = "*" .. title end end local entry_pagename = page_data.pagename if page_data.namespace == "Reconstruction" then entry_pagename = "*" .. entry_pagename end if lang:stripDiacritics(M.links.remove_links(title)) ~= lang:stripDiacritics(M.links.remove_links(entry_pagename)) then M.tracking.track_title_pagename_mismatch(lang) end local current_L2 = M.pages.get_current_L2() if current_L2 then local norm_lang = Util.get_norm_lang(lang) local norm_name = norm_lang:getCanonicalName() if current_L2 ~= norm_name and require("Module:zh").st(current_L2) ~= norm_name then -- L10N local lang_desc = lang:getCode() .. " (" .. lang:getCanonicalName() .. ")" if norm_lang:getCode() ~= lang:getCode() then lang_desc = lang_desc .. ", normalized to " .. norm_lang:getCode() .. " (" .. norm_name .. ")" end error("Language '" .. lang_desc .. "' does not match the L2 header (" .. current_L2 .. ").") end end reset_invocation_state() local ety_data_tree = export.get_tree(lang, title, etymon_args, { validate = true, pos = args.pos, id = id, json = args.json, skip_partial_etymology_category = is_nonlemma, }) if args.json then return ety_data_tree end local output = {} local text_allowlist_mode = M.text_allowed.default_mode or "off" if text and text_allowlist_mode ~= "off" and not Util.is_text_param_allowed_for_lang(lang) then local msg = "Etymology texts (parameter <code>text=</code>) are not allowed for " .. lang:getFullName() .. "; see [[Template:etymon#Text allowlist|Template:etymon § Text allowlist]] for the list of languages that may use the <code>text=</code> parameter." if text_allowlist_mode == "error" then error(msg) else Util.add_warning(msg, true) end end local lang_exc = Util.get_lang_exception(lang) if lang_exc and lang_exc.disallow then local disallow = lang_exc.disallow local error_text = " for " .. lang:getFullName() if disallow.ref then error_text = error_text .. "; see " .. disallow.ref else error_text = error_text .. "." end if tree and disallow.tree then error("Etymology trees are not allowed" .. error_text) end if text and disallow.text then error("Etymology texts are not allowed" .. error_text) end end if etydate then local etydate_param_mods = { ref = { list = true, type = "references", allow_holes = true }, refn = { list = true, allow_holes = true }, nocap = { type = "boolean" }, } local function generate_etydate_obj(etydate_text) local etydate_specs = {} for spec in etydate_text:gmatch("[^,]+") do table.insert(etydate_specs, mw.text.trim(spec)) end return { [1] = etydate_specs } end local parsed_etydate = M.parse_utilities.parse_inline_modifiers(etydate, { param_mods = etydate_param_mods, generate_obj = generate_etydate_obj }) local etydate_args = { [1] = parsed_etydate[1], nocap = parsed_etydate.nocap or false, } ety_data_tree.supplements = ety_data_tree.supplements or {} table.insert(ety_data_tree.supplements, { type = "etydate", etydate_text = M.etydate.format_etydate(etydate_args, { omit_refs = true }), etydate_refs = (parsed_etydate.ref and #parsed_etydate.ref > 0) and parsed_etydate.ref or nil, }) end TreeBuilder.append_term_supplement(ety_data_tree, lang, "doublet", doublet) if ety_data_tree.supplements then parse_tree_references(ety_data_tree) end local has_visible_children = node_has_visible_tree_children(ety_data_tree) -- Suppress trees for multiword entries and one-step chains local visible_tree_depth = get_visible_tree_depth(ety_data_tree) local is_trivial_tree = visible_tree_depth <= 2 local is_multiword = title:find("%s") ~= nil or title:find("_") ~= nil if tree and (is_multiword or is_trivial_tree) then tree = false end if tree then table.insert(output, M.template_styles("Module:etymon/styles.css")) table.insert(output, M.tree.render({ data_tree = ety_data_tree, format_term_func = function(term, is_toplevel) return Util.format_term(term, is_toplevel, { gloss = "suppress", pos = "suppress", lit = "suppress", tree_ql = "suppress", }) end, })) end local tree_disallowed = lang_exc and lang_exc.disallow and lang_exc.disallow.tree local ety_tree_json = M.JSON.toJSON(tree_to_json(ety_data_tree)) local anchor = M.anchors.etymonid(lang, id, { no_tree = args.notree, title = title, empty_tree = (not has_visible_children) or tree_disallowed, ety_tree_json = ety_tree_json, }) table.insert(output, anchor) local text_stop_lang_missing = nil if text then local max_depth, stop_at_blue_link, stop_at_lang, stop_at_lang_or_bluelink if text == "++" then max_depth, stop_at_blue_link = false, false elseif text == "+" then max_depth, stop_at_blue_link = 1, false elseif text == "*" then max_depth, stop_at_blue_link = false, true elseif text:match("^:[^*]+%*$") then -- Stop at a specific language OR first bluelink after it, e.g., ":ota*" -- If the target language is a redlink, continue to the first bluelink local lang_code = text:match("^:([^*]+)%*$") if lang_code and lang_code ~= "" then local lang_obj = Util.get_lang(lang_code, true) if lang_obj then stop_at_lang_or_bluelink = lang_code else Util.add_warning('Invalid language code "' .. lang_code .. '" in text parameter. Showing full chain instead.') max_depth, stop_at_blue_link = false, false end else Util.add_warning('Empty language code in text parameter. Showing full chain instead.') max_depth, stop_at_blue_link = false, false end elseif text:sub(1, 1) == ":" then -- Stop at a specific language, e.g., ":ar" stops at first Arabic term local lang_code = text:sub(2) if lang_code ~= "" then -- Validate the language code local lang_obj = Util.get_lang(lang_code, true) if lang_obj then stop_at_lang = lang_code else Util.add_warning('Invalid language code "' .. lang_code .. '" in text parameter. Showing full chain instead.') max_depth, stop_at_blue_link = false, false -- default to ++ end else Util.add_warning('Empty language code in text parameter. Showing full chain instead.') max_depth, stop_at_blue_link = false, false -- default to ++ end else local num = tonumber(text) if num and num >= 1 then max_depth, stop_at_blue_link = num, false else error('Invalid text value "' .. text .. '". Valid values are: "++" (full chain), "+" (first step only), "*" (until first blue link), a number (max steps), ":lang" (stop at language), or ":lang*" (stop at language or first bluelink if redlink)') end end local text_output, text_render_meta = M.text.render({ data_tree = ety_data_tree, format_term_func = Util.format_term, lang_matches_stop_code = Util.lang_matches_stop_code, max_depth = max_depth, stop_at_blue_link = stop_at_blue_link, curr_page = page_data.pagename, nodot = args.nodot, dot = args.dot, stop_at_lang = stop_at_lang, stop_at_lang_or_bluelink = stop_at_lang_or_bluelink, }) table.insert(output, text_output) if stop_at_lang and text_render_meta and not text_render_meta.stop_lang_reached then M.tracking.track_text_stop_lang_missing(lang, stop_at_lang) text_stop_lang_missing = stop_at_lang end end if rfe then table.insert(output, Util.expand_request_template(frame, "rfe", rfe, lang:getCode())) end if etystub then table.insert(output, Util.expand_request_template(frame, "etystub", etystub, lang:getCode())) end if is_nonlemma then table.insert(output, " " .. frame:expandTemplate({ title = "nonlemma", args = {}, })) end local categories = {} if Util.is_content_page() then M.tracking.track_tree_metrics({ max_depth_reached = __state.max_depth_reached, total_nodes = __state.total_nodes, language_count = __state.language_count, lang = lang, }) categories = M.categories.build({ data_tree = ety_data_tree, page_lang = lang, available_etymon_ids = __state.available_etymon_ids, senseid_parent_etymon = __state.senseid_parent_etymon, get_norm_lang_func = Util.get_norm_lang, lang_exc = lang_exc, suppress_categories = lang_exc and lang_exc.suppress_categories, nocat = args.nocat, tree = tree, text = text, exnihilo = args.exnihilo, toplevel_has_inline_etymology = __state.toplevel_has_inline_etymology, toplevel_redundant_etymology = __state.toplevel_redundant_etymology, toplevel_idless_etymon = __state.toplevel_idless_etymon, has_mismatched_id = __state.has_mismatched_id, linked_page_multiple_etymons_idless = __state.linked_page_multiple_etymons_idless, linked_page_partial_etymology_sections = __state.linked_page_partial_etymology_sections, text_stop_lang_missing = text_stop_lang_missing, }) M.tracking.track_keywords(__state.toplevel_keyword_stats, lang) M.tracking.track_page_id(lang, id) M.tracking.track_ids(__state.id_stats, lang) end if #categories > 0 then table.insert(output, M.categories.format(categories, lang)) end if __state.warnings then for i, warning in ipairs(__state.warnings) do table.insert(output, (i == 1 and "\n" or "") .. warning .. "\n") end end return table.concat(output) end return export 6zqngxhomq787c9v3pt75qfw9xwykwz 9813899 9813891 2026-06-15T19:02:30Z TongcyDai 53191 9813899 Scribunto text/plain --[=[ This module implements the {{etymon}} template for structured etymology data on Wiktionary. It enables the creation of etymology trees and text by parsing etymon chains, scraping linked pages for their own {{etymon}} data, and recursively building a tree of derivational relationships. Authors: - Original implementation: [[User:Ioaxxere]] - Full refactor (September 2025): [[User:Fenakhay]] ([[Special:Diff/86717746]]) Modules: - [[Module:etymon]]: main module handling parsing, validation, tree building, and page scraping - [[Module:etymon/data]]: keyword definitions, configuration, and status constants - [[Module:etymon/tree]]: etymology tree rendering - [[Module:etymon/text]]: etymology text generation - [[Module:etymon/categories]]: category generation logic - [[Module:etymon/tracking]]: tracking ]=] local export = {} local __state = { cached_etymon_args = {}, cached_etymon_pages = {}, cached_descendants_checks = {}, senseid_parent_etymon = {}, available_etymon_ids = {}, single_etymons = {}, entry_title = nil, entry_lang_code = nil, current_page_has_inline_etymology = false, current_page_has_redundant_etymology = false, used_idless_etymon = false, toplevel_has_inline_etymology = false, toplevel_redundant_etymology = false, toplevel_idless_etymon = false, has_mismatched_id = false, linked_page_multiple_etymons_idless = false, linked_page_partial_etymology_sections = false, partial_etymology_targets = {}, skip_partial_etymology_category = false, max_depth_reached = 0, total_nodes = 0, language_count = {}, toplevel_keyword_stats = {}, id_stats = nil, warnings = {}, } local function reset_invocation_state() __state.current_page_has_inline_etymology = false __state.current_page_has_redundant_etymology = false __state.used_idless_etymon = false __state.toplevel_has_inline_etymology = false __state.toplevel_redundant_etymology = false __state.toplevel_idless_etymon = false __state.has_mismatched_id = false __state.linked_page_multiple_etymons_idless = false __state.linked_page_partial_etymology_sections = false __state.max_depth_reached = 0 __state.total_nodes = 0 __state.language_count = {} __state.toplevel_keyword_stats = {} __state.warnings = {} end local M = require("Module:module loader").init({ require = { data = "Module:etymon/data", tree = "Module:etymon/tree", text = "Module:etymon/text", categories = "Module:etymon/categories", tracking = "Module:etymon/tracking", descendants = "Module:etymon/descendants", anchors = "Module:anchors", etydate = "Module:etydate", etymology = "Module:etymology", families = "Module:families", languages = "Module:languages", languages_errorgetby = "Module:languages/errorGetBy", links = "Module:links", pages = "Module:pages", parameters = "Module:parameters", string_utilities = "Module:string utilities", template_parser = "Module:template parser", utilities = "Module:utilities", debug = "Module:debug", en_utilities = "Module:en-utilities", parse_utilities = "Module:parse utilities", references = "Module:references", template_styles = "Module:TemplateStyles", script_utilities = "Module:script utilities", JSON = "Module:JSON", yesno = "Module:yesno", }, loadData = { headword_data = "Module:headword/data", parameters_data = "Module:parameters/data", text_allowed = "Module:etymon/data/text_allowed", }, }) local Util = {} function Util.format_error(message, preview_only) if preview_only and not M.pages.is_preview() then return nil end return '<span class="error">' .. message .. '</span>' end function Util.add_warning(message, preview_only) local formatted = Util.format_error(message, preview_only) if formatted then table.insert(__state.warnings, formatted) end end function Util.is_text_param_allowed_for_lang(lang) if not lang or type(lang) ~= "table" then return false end local types = lang.getTypes and lang:getTypes() if types and types.family then local code = lang.getCode and lang:getCode() return code and M.text_allowed.families[code] == true end local full_code = lang.getFullCode and lang:getFullCode() if full_code and M.text_allowed.langs[full_code] then return true end if lang.inFamily then for family_code in pairs(M.text_allowed.families) do if lang:inFamily(family_code) then return true end end end return false end function Util.get_lang(code, no_error) if no_error then return M.languages.getByCode(code, nil, true) end return M.languages.getByCode(code, nil, true) or M.languages_errorgetby.code(code, true, true) end -- Match a term language against a text=:lang stop target (supports etymology-only codes). function Util.lang_matches_stop_code(term_lang, stop_code) if not term_lang or not stop_code or stop_code == "" then return false end local stop_lang = Util.get_lang(stop_code, true) if not stop_lang then return false end if term_lang:getCode() == stop_lang:getCode() then return true end if stop_lang:getFullCode() == stop_lang:getCode() then return term_lang:getFullCode() == stop_lang:getCode() end return false end function Util.get_family(code) return M.families.getByCode(code) end function Util.get_lang_exception(lang) -- Families have no language-specific exceptions if lang.getTypes and lang:getTypes().family then return nil end local code = lang:getCode() local lang_exceptions = M.data.config.lang_exceptions if lang_exceptions[code] then return lang_exceptions[code] end for norm_code, exc in pairs(lang_exceptions) do if exc.normalize_to and code == exc.normalize_to then return exc end if exc.normalize_from_families then local should_normalize = false for _, family in ipairs(exc.normalize_from_families) do if lang:inFamily(family) then should_normalize = true break end end if should_normalize and exc.normalize_exclude_families then for _, family in ipairs(exc.normalize_exclude_families) do if lang:inFamily(family) then should_normalize = false break end end end if should_normalize then local ret = {} for k, v in pairs(exc) do ret[k] = v end ret.suppress_tr = nil return ret end end end return nil end function Util.get_norm_lang(lang) local exc = Util.get_lang_exception(lang) if exc and exc.normalize_to then return M.languages.getByCode(exc.normalize_to) end return lang end -- Add default values for boolean modifiers (e.g., <unc> becomes <unc:1>) -- This is needed because Module:parse utilities expects boolean modifiers to have explicit values function Util.add_boolean_defaults(str, param_mods) local result = str for name, spec in pairs(param_mods) do if spec.type == "boolean" then -- Replace <name> with <name:1> (but not <name:...> which already has a value) result = result:gsub("<" .. name .. ">", "<" .. name .. ":1>") end end return result end local REQUEST_TEMPLATE_PARAM_MODS = { rfe = { nocat = { type = "boolean" }, sort = {}, y = {}, m = {}, fragment = {}, section = {}, box = { type = "boolean" }, noes = { type = "boolean" }, }, etystub = { nocat = { type = "boolean" }, sort = {}, nocap = { type = "boolean" }, nodot = { type = "boolean" }, }, } function Util.expand_request_template(frame, template_name, param_value, lang_code) local param_mods = REQUEST_TEMPLATE_PARAM_MODS[template_name] local with_defaults = Util.add_boolean_defaults(param_value, param_mods) local parsed = M.parse_utilities.parse_inline_modifiers(with_defaults, { param_mods = param_mods, generate_obj = function(text) if M.yesno(text, false) then return { is_boolean = true } end return { text = text } end, }) local template_args = { [1] = lang_code } for name in pairs(param_mods) do template_args[name] = parsed[name] end if not parsed.is_boolean then template_args[2] = parsed.text end return " " .. frame:expandTemplate({ title = template_name, args = template_args, }) end -- Centralized term formatting: handles suppress_term (-), unknown_term (empty/+), and regular terms function Util.format_term(term, is_toplevel, opts) opts = opts or {} -- suppress_term (-) returns nil if term.suppress_term then return nil end local lang = term.lang local exc = Util.get_lang_exception(lang) if is_toplevel then local display_text = term.alt or term.title or "" local sc = term.sc or lang:findBestScript(display_text) local bold_text = tostring(mw.html.create("strong") :addClass("selflink") :wikitext(display_text)) return M.script_utilities.tag_text(bold_text, lang, sc, "term") end local link_params = { lang = lang } link_params.term = not term.unknown_term and term.title or nil link_params.alt = term.alt link_params.id = (not term.unknown_term and term.id and term.id ~= "") and term.id or nil if not (exc and exc.suppress_tr) then link_params.tr = term.tr link_params.ts = term.ts else link_params.suppress_tr = true end link_params.lit = (opts.lit ~= "suppress") and term.lit or nil if opts.gloss ~= "suppress" then link_params.gloss = term.t end if term.g and term.g ~= "" then local genders = M.string_utilities.split(term.g, ",") for i = 1, #genders do genders[i] = M.string_utilities.trim(genders[i]) end link_params.genders = genders end if opts.pos ~= "suppress" then link_params.pos = term.pos link_params.ng = term.ng end if exc and exc.suppress_tr then link_params.lit = nil end local show_qualifiers if opts.tree_ql ~= "suppress" then if term.q then link_params.q = term.q end if term.qq then link_params.qq = term.qq end if term.l then link_params.l = term.l end if term.ll then link_params.ll = term.ll end show_qualifiers = term.q or term.qq or term.l or term.ll end return M.links.full_link(link_params, "term", nil, show_qualifiers and true or nil) end local __is_content_page_cached function Util.is_content_page() if __is_content_page_cached == nil then __is_content_page_cached = M.pages.is_content_page(mw.title.getCurrentTitle()) end return __is_content_page_cached end local __page_data_cached function Util.get_page_data() if not __page_data_cached then __page_data_cached = M.headword_data.page end return __page_data_cached end -- Extract base keyword from param (without modifiers) local function get_keyword_base(param) if type(param) ~= "string" then return nil end local base = param:match("^:?([^<]+)") or param:gsub("^:", "") return base end local function is_keyword(param, allow_colon_less) if type(param) ~= "string" then return false end local keywords = M.data.keywords if param:sub(1, 1) == ":" then local base = get_keyword_base(param) return keywords[base] ~= nil end if allow_colon_less then local base = get_keyword_base(param) return keywords[base] ~= nil end return false end local function get_keyword(param, allow_colon_less) if type(param) ~= "string" then return nil end local keywords = M.data.keywords if param:sub(1, 1) == ":" then return get_keyword_base(param) end if allow_colon_less then local base = get_keyword_base(param) if keywords[base] then return base end end return nil end local function normalize_keyword(keyword) if keyword:sub(1, 1) == ":" then return keyword end return ":" .. keyword end -- Resolve keyword (possibly an alias) to its canonical form. Used only at input boundaries local function get_canonical_keyword(keyword) if not keyword then return keyword end return M.data.keyword_canonical[keyword] or keyword end local function is_affix_group_keyword(keyword) local config = keyword and M.data.keywords[keyword] return config and config.affix_categories or false end local function reject_removed_surf_keyword(param) local base = get_keyword_base(param) if base == "surf" then error("The `:surf` keyword has been removed. Use `<surf>` on a formation keyword instead (e.g. `:af<surf>`, `:bor<surf>`).") end end local function copy_keyword_info(source) local copy = {} for k, v in pairs(source) do copy[k] = v end return copy end local function lowercase_glossary_display(text) return text:gsub("(%[%[Appendix:Glossary#[^|]+|)([^%]])([^%]]*)%]%]", function(prefix, first, rest) return prefix .. mw.ustring.lower(first) .. rest .. "]]" end) end local function surf_should_keep_formation_phrase(base) if not base.phrase then return false end if base.glossary then return true end return not (base.phrase == "from" and (base.text == "From" or base.text == "from")) end -- Runtime overrides when <surf> is present on a keyword. local function get_effective_keyword_info(keyword, modifiers) local base = M.data.keywords[keyword] if not base or not modifiers or not modifiers.surf then return base end local effective = copy_keyword_info(base) local surf_text = "[[Appendix:Glossary#字面分析|字面分析]]為" local surf_phrase = "[[Appendix:Glossary#字面分析|字面分析]]為" effective.new_sentence = true effective.invisible = "tree" if surf_should_keep_formation_phrase(base) then effective.phrase = surf_phrase .. base.phrase if base.text then effective.text = surf_text .. lowercase_glossary_display(base.text) else effective.text = surf_text .. base.phrase end else effective.text = surf_text effective.phrase = surf_phrase end return effective end -- Build text/phrase for nominalization with <g:code> (uses data module for codes only). local function get_nominalization_label_for_g(code) if not code or code == "" then return nil end local codes = M.data.nominalization_g_codes local adj = codes[code] if not adj and #code == 2 then local gender_adj = codes[code:sub(1, 1)] local number_adj = codes[code:sub(2, 2)] if gender_adj and number_adj then adj = gender_adj .. number_adj end end if not adj then return nil end local text = adj .. "[[Appendix:Glossary#名詞化|名詞化]],來自" local phrase = adj .. "[[Appendix:Glossary#名詞化|名詞化]],來自" return { text = text, phrase = phrase } end local EtymonParser = {} -- Keyword modifier definitions EtymonParser.keyword_param_mods = { unc = { type = "boolean" }, ref = {}, text = { restrict = { keywords = { "from", "derived" } } }, lit = { restrict = { affix_group = true } }, conj = {}, -- conjunction for alternatives: "and", "or", "and/or", etc. g = { restrict = { keywords = { "nominalization" } } }, surf = { type = "boolean" }, senseid = { restrict = { keywords = { "semantic loan" } } }, } -- Term modifier definitions EtymonParser.etymon_param_mods = { id = {}, t = {}, tr = {}, ts = {}, q = {}, qq = {}, l = {}, ll = {}, pos = {}, ng = {}, alt = {}, g = {}, ety = {}, lit = {}, unc = { type = "boolean" }, ref = {}, aftype = { restrict = { affix_group = true } }, postype = {}, bor = { type = "boolean", restrict = { affix_group = true } }, slbor = { type = "boolean", restrict = { affix_group = true } }, lbor = { type = "boolean", restrict = { affix_group = true } }, } local function get_clean_param_mods(param_mods) local clean = {} for mod_name, mod_def in pairs(param_mods) do clean[mod_name] = {} for key, value in pairs(mod_def) do if key ~= "restrict" then clean[mod_name][key] = value end end end return clean end function EtymonParser.check_modifier_restrictions(modifiers, current_keyword, param_mods) for mod_name, mod_value in pairs(modifiers) do -- Only check restrictions if the modifier has a non-false/nil value if mod_value then local mod_def = param_mods[mod_name] if mod_def and mod_def.restrict then if mod_def.restrict.affix_group then if not is_affix_group_keyword(current_keyword) then local mod_display = mod_value == true and "<" .. mod_name .. ">" or "<" .. mod_name .. ":" .. tostring(mod_value) .. ">" error("The modifier `" .. mod_display .. "` is only allowed for affix-group keywords (e.g. `:af`, `:blend`, `:univ`).") end elseif mod_def.restrict.keywords then local allowed_keywords = mod_def.restrict.keywords local is_allowed = false for _, allowed_keyword in ipairs(allowed_keywords) do if current_keyword == allowed_keyword then is_allowed = true break end end if not is_allowed then local keyword_list = {} for _, kw in ipairs(allowed_keywords) do table.insert(keyword_list, ":" .. kw) end local keyword_str = table.concat(keyword_list, #keyword_list == 2 and " or " or ", ") if #keyword_list > 2 then -- Replace last comma with "or" keyword_str = keyword_str:gsub(", ([^,]+)$", " or %1") end local mod_display = mod_value == true and "<" .. mod_name .. ">" or "<" .. mod_name .. ":" .. tostring(mod_value) .. ">" error("The modifier `" .. mod_display .. "` is only allowed for the keyword" .. (#keyword_list > 1 and "s " or " ") .. keyword_str .. ".") end end end end end end local TERM_RULE_DISALLOW = { suppress = { field = "suppress_term", label = "suppressed" }, unknown = { field = "unknown_term", label = "unknown" }, family = { field = "is_family", label = "family" }, } function EtymonParser.check_etymon_limits(count, limits, label, opts) if not limits then return end opts = opts or {} local min_etymons = limits.min_etymons if min_etymons == nil and not opts.skip_default_min then min_etymons = 1 end if min_etymons and count < min_etymons then if min_etymons > 1 then error("Detected " .. label .. " group with fewer than " .. min_etymons .. " etymons.") else error("Detected " .. label .. " with no etymons.") end end if limits.max_etymons and count > limits.max_etymons then local unit = (limits.max_etymons == 1) and "etymon" or "etymons" error("Detected " .. label .. " with more than " .. limits.max_etymons .. " " .. unit .. ".") end end function EtymonParser.check_term_rules(etymon_data, entry_lang, rules, label) label = label or "term" if rules and rules.disallow then local disallowed = {} for _, typ in ipairs(rules.disallow) do local spec = TERM_RULE_DISALLOW[typ] if spec and etymon_data[spec.field] then table.insert(disallowed, spec.label) end end if #disallowed > 0 then error(label .. " does not support " .. mw.text.listToText(disallowed, "or") .. " etymons.") end end if etymon_data.is_family then if rules and rules.family == "disallowed" then error(label .. " does not support family codes" .. (rules.family_suffix or ".")) elseif not etymon_data.suppress_term then error("Family codes require suppressed term (use family:-).") end end if rules then if rules.require_term and (not etymon_data.term or etymon_data.term == "") then error(label .. " requires a term for each listed form.") end if rules.entry_lang then if Util.get_norm_lang(etymon_data.lang):getFullCode() ~= Util.get_norm_lang(entry_lang):getFullCode() then error(label .. " terms must be in the entry language (" .. entry_lang:getFullCode() .. "), got '" .. etymon_data.lang:getFullCode() .. "'.") end end if rules.ancestor_check then M.etymology.check_ancestor(entry_lang, etymon_data.lang) end elseif etymon_data.is_family and not etymon_data.suppress_term then error("Family codes require suppressed term (use family:-).") end end function EtymonParser.check_keyword_term(etymon_data, entry_lang, keyword) local config = M.data.keywords[keyword] EtymonParser.check_term_rules(etymon_data, entry_lang, config and config.term_rules, "`:" .. keyword .. "`") end function EtymonParser.check_supplement_term(etymon_data, entry_lang, supplement_type) local config = M.data.supplements[supplement_type] EtymonParser.check_term_rules(etymon_data, entry_lang, config and config.term_rules, "|" .. supplement_type .. "=") end -- Parse keyword with modifiers (e.g., ":bor<unc>" or ":bor<ref:{{R:example}}>") function EtymonParser.parse_keyword_modifiers(param) if type(param) ~= "string" then return nil, {} end local base_keyword = get_keyword_base(param) if not base_keyword then return nil, {} end local canonical_keyword = get_canonical_keyword(base_keyword) -- Check if there are any modifiers if not param:find("<", 1, true) then return canonical_keyword, {} end -- Parse modifiers using the same mechanism as etymon parsing local rest_with_defaults = Util.add_boolean_defaults(param, EtymonParser.keyword_param_mods) local function generate_obj(ignored) return {} end local parsed = M.parse_utilities.parse_inline_modifiers(rest_with_defaults:gsub("^:?[^<]+", ""), { param_mods = get_clean_param_mods(EtymonParser.keyword_param_mods), generate_obj = generate_obj }) local modifiers = { unc = parsed.unc or false, ref = parsed.ref, text = parsed.text, lit = parsed.lit, conj = parsed.conj, g = parsed.g, surf = parsed.surf or false, senseid = parsed.senseid, } -- Validate modifiers against restrictions EtymonParser.check_modifier_restrictions(modifiers, canonical_keyword, EtymonParser.keyword_param_mods) return canonical_keyword, modifiers end local function normalize_keyword_param(keyword_with_mods) local trimmed = M.string_utilities.trim(keyword_with_mods) reject_removed_surf_keyword(trimmed:match("^:") and trimmed or (":" .. trimmed)) local base = get_keyword_base(trimmed) if not base or not M.data.keywords[base] then error("Invalid keyword '" .. trimmed .. "' in inline etymology") end local canonical_base = get_canonical_keyword(base) local without_colon = trimmed:gsub("^:", "") local mods_part = without_colon:sub(#base + 1) local kw_param = normalize_keyword(canonical_base .. mods_part) EtymonParser.parse_keyword_modifiers(kw_param) return kw_param end local function get_keyword_mod_names() local names = {} for mod_name in pairs(EtymonParser.keyword_param_mods) do names[mod_name] = true end return names end local function parse_inline_ety_run(ety_string) local body = ety_string or "" if body == "" then error("Empty inline etymology") end local keyword_mod_names = get_keyword_mod_names() local pos = 1 local len = #body local function parse_err(msg) error(msg .. " in inline etymology: '" .. body .. "'") end local function peek_double() return body:sub(pos, pos + 1) == "<<" end local function mod_name_from_unwrapped(unwrapped) return unwrapped:match("^<([^:>]+)") end local function is_keyword_mod(unwrapped) local name = mod_name_from_unwrapped(unwrapped) return name and keyword_mod_names[name] or false end local function read_double_bracket() if not peek_double() then return nil end local start = pos pos = pos + 2 while pos <= len - 1 do if body:sub(pos, pos + 1) == ">>" then local token = body:sub(start, pos + 1) pos = pos + 2 return token, token:sub(2, -2) end pos = pos + 1 end parse_err("Unmatched <<") end local function read_angle_cell() if body:sub(pos, pos) ~= "<" or peek_double() then return nil end local open = pos pos = pos + 1 local depth = 1 local i = pos while i <= len do local ch = body:sub(i, i) if ch == "<" then depth = depth + 1 elseif ch == ">" then depth = depth - 1 if depth == 0 then local inner = body:sub(open + 1, i - 1) pos = i + 1 return inner end end i = i + 1 end parse_err("Unmatched <") end local function read_bare_run() local start = pos while pos <= len and body:sub(pos, pos) ~= "<" do pos = pos + 1 end return body:sub(start, pos - 1) end local function absorb_double_keyword_mods(keyword_str) while peek_double() do local saved = pos local _, unwrapped = read_double_bracket() if is_keyword_mod(unwrapped) then keyword_str = keyword_str .. unwrapped else pos = saved break end end return keyword_str end local kw_start = pos while pos <= len and body:sub(pos, pos) ~= "<" do pos = pos + 1 end local keyword = body:sub(kw_start, pos - 1) if keyword:match("^%s*$") then parse_err("Missing keyword") end keyword = absorb_double_keyword_mods(keyword) local cells = {} while pos <= len do if peek_double() then local _, unwrapped = read_double_bracket() if is_keyword_mod(unwrapped) then parse_err("Unexpected keyword modifier " .. unwrapped .. " outside of a keyword") end table.insert(cells, "+" .. unwrapped) elseif body:sub(pos, pos) == "<" then local inner = read_angle_cell() if inner ~= "" then table.insert(cells, inner) end else local bare = read_bare_run() if bare ~= "" then if bare:sub(1, 1) ~= ":" then parse_err("Unexpected bare text '" .. bare .. "' (use :keyword for nested keywords in inline etymology)") end if not is_keyword(bare, true) then parse_err("Invalid keyword '" .. bare .. "' in inline etymology") end table.insert(cells, absorb_double_keyword_mods(bare)) end end end return { keyword = keyword, cells = cells, } end function EtymonParser.inline_ety_to_pipe(ety_string) local run = parse_inline_ety_run(ety_string) if not run.keyword or run.keyword:match("^%s*$") then return "|" end local pipe_parts = { normalize_keyword_param(M.string_utilities.trim(run.keyword)) } for _, segment in ipairs(run.cells) do if is_keyword(segment, true) then table.insert(pipe_parts, normalize_keyword_param(segment)) else table.insert(pipe_parts, segment) end end return "|" .. table.concat(pipe_parts, "|") .. "|" end function EtymonParser.pipe_to_inline_ety(pipe_string) local cells = {} for cell in pipe_string:gmatch("([^|]+)") do if cell ~= "" then table.insert(cells, cell) end end if #cells == 0 then return "" end local inline_parts = {} for index, cell in ipairs(cells) do local base = get_keyword_base(cell) if base and M.data.keywords[base] then local without_colon = cell:gsub("^:", "") local kw_base, mods = without_colon:match("^([^<]+)(.*)$") local inline_kw = (kw_base or without_colon) .. (mods or ""):gsub("<([^>]+)>", "<<%1>>") if index > 1 then inline_kw = ":" .. inline_kw end table.insert(inline_parts, inline_kw) elseif cell:sub(1, 1) == "+" then local mod = cell:sub(2) if mod:match("^<.->$") then mod = mod:sub(2, -2) end table.insert(inline_parts, "<<" .. mod .. ">>") else table.insert(inline_parts, "<" .. cell .. ">") end end return table.concat(inline_parts, "") end function EtymonParser.parse_inline_ety(ety_string, context_lang) local run = parse_inline_ety_run(ety_string) local keyword = M.string_utilities.trim(run.keyword) reject_removed_surf_keyword(":" .. keyword) if not is_keyword(keyword, true) then error("Invalid keyword '" .. keyword .. "' in inline etymology <ety:" .. keyword .. "...>") end local args = { context_lang:getCode(), normalize_keyword_param(keyword) } for _, segment in ipairs(run.cells) do if is_keyword(segment, true) then table.insert(args, normalize_keyword_param(segment)) else table.insert(args, segment) end end return args end function EtymonParser.parse_etymon(param, context_lang) if is_keyword(param) then return nil end if type(param) ~= "string" then return nil end local lang, rest local is_family = false local before_bracket = param:match("^([^<]*)") or param local lang_code, rest_match = before_bracket:match("^([a-zA-Z][a-zA-Z0-9._-]*):(.*)$") if lang_code then local potential_lang = Util.get_lang(lang_code, true) if potential_lang then lang = potential_lang rest = param:sub(#lang_code + 2) else local potential_family = Util.get_family(lang_code) if potential_family then lang = potential_family rest = param:sub(#lang_code + 2) is_family = true else lang = context_lang rest = param end end else lang = context_lang rest = param end M.tracking.track_term(rest) if rest == "" or rest == "+" then return { lang = lang, term = nil, unknown_term = true, is_family = is_family, } end if rest == "-" then return { lang = lang, term = nil, suppress_term = true, is_family = is_family, } end if not rest:find("<", 1, true) then return { lang = lang, term = M.string_utilities.trim(rest), is_family = is_family, } end local term_text = rest:match("^([^<]*)") or "" local is_unknown = (term_text == "" or term_text == "+") local is_suppress = (term_text == "-") local function generate_obj(ignored_term) return { term = (is_unknown or is_suppress) and nil or M.string_utilities.trim(term_text) } end local rest_with_defaults = Util.add_boolean_defaults(rest, EtymonParser.etymon_param_mods) local parsed_obj = M.parse_utilities.parse_inline_modifiers(rest_with_defaults, { param_mods = get_clean_param_mods(EtymonParser.etymon_param_mods), generate_obj = generate_obj }) if parsed_obj.id and parsed_obj.id:match("^!") then parsed_obj.id = parsed_obj.id:sub(2) parsed_obj.override = true end parsed_obj.lang = lang parsed_obj.is_family = is_family if is_unknown then parsed_obj.unknown_term = true elseif is_suppress then parsed_obj.suppress_term = true end return parsed_obj end function EtymonParser.validate(lang, args, id, title, pos, starts_with_lang_code) -- id is now optional, so only validate if provided if id then if mw.ustring.len(id) < 1 then error("The `id` parameter must have at least two characters.") end if id == title or id == Util.get_page_data().pagename then error("The `id` parameter must not be the same as the page title.") end end local pos_aliases = { ["前綴"] = "prefix", ["後綴"] = "suffix", ["間綴"] = "interfix", ["中綴"] = "infix", ["詞根"] = "root", ["詞"] = "word", } if pos and pos_aliases[pos] then pos = pos_aliases[pos] end -- L10N local valid_pos = { prefix = true, suffix = true, interfix = true, infix = true, root = true, word = true } if pos and not valid_pos[pos] then error("Unknown value provided for `pos`. Valid values: " .. table.concat(require("Module:table").keysToList(valid_pos), ", ") .. ".") end local current_keyword = "from" local current_keyword_explicit = false local keyword_etymons = {} local keywords = M.data.keywords local function checkKeyword() local config = keywords[current_keyword] if current_keyword == "from" and not current_keyword_explicit and #keyword_etymons == 0 then keyword_etymons = {} return end EtymonParser.check_etymon_limits(#keyword_etymons, config, "`:" .. current_keyword .. "`") keyword_etymons = {} end local start_index = starts_with_lang_code and 2 or 1 for i = start_index, #args do local param = args[i] if type(param) ~= "string" then elseif param:sub(1, 1) == ":" and not is_keyword(param) then reject_removed_surf_keyword(param) error("Invalid keyword '" .. param .. "'. Did you mean a valid keyword like ':bor', ':inh', etc.?") elseif is_keyword(param) then checkKeyword() current_keyword = get_canonical_keyword(get_keyword(param)) current_keyword_explicit = true else local etymon_data = EtymonParser.parse_etymon(param, lang) if etymon_data then table.insert(keyword_etymons, param) EtymonParser.check_keyword_term(etymon_data, lang, current_keyword) -- Check modifier restrictions EtymonParser.check_modifier_restrictions(etymon_data, current_keyword, EtymonParser.etymon_param_mods) -- postype must be "root" or "word" local VALID_POSTYPES = { root = true, word = true } if etymon_data.postype and not VALID_POSTYPES[etymon_data.postype] then error("Invalid <postype:" .. etymon_data.postype .. ">; must be \"root\" or \"word\".") end if etymon_data.ety then local inline_args = EtymonParser.parse_inline_ety(etymon_data.ety, etymon_data.lang) EtymonParser.validate(etymon_data.lang, inline_args, nil, nil, nil, true) end else table.insert(keyword_etymons, param) end end end checkKeyword() end local DataRetriever = {} local function format_etymon_id_hint(id_data, idx) local id = type(id_data) == "table" and id_data.id or id_data local pos = type(id_data) == "table" and id_data.pos if id and id ~= "" and id ~= "*" then return '"' .. id .. '"' end if pos and pos ~= "" then return "unnamed (|pos=" .. pos .. "|)" end return "etymon #" .. idx .. " (no |id= on page)" end local function etymon_target_page_link(page, norm_lang) return M.links.full_link({ term = page, lang = norm_lang, no_generate_forms = true, }, "term") end -- Summarize {{etymon}} id slots on a linked page for preview warnings. local function summarize_available_etymon_ids(ids) local id_list = {} local all_idless = true local target_has_idless = false local any_pos = false for i, id_data in ipairs(ids) do local id = type(id_data) == "table" and id_data.id or id_data local pos = type(id_data) == "table" and id_data.pos if id and id ~= "" and id ~= "*" then all_idless = false else target_has_idless = true end if pos and pos ~= "" then any_pos = true end table.insert(id_list, format_etymon_id_hint(id_data, i)) end return { id_list = id_list, all_idless = all_idless, target_has_idless = target_has_idless, any_pos = any_pos, count = #ids, options_text = mw.text.listToText(id_list), } end local function ambiguous_etymon_suggestion(page_link, summary) if summary.all_idless then if summary.any_pos then return " None set `|id=` yet; add a unique `|id=` to each on " .. page_link .. ", then `<id:identifier>` after the term here. Section order / hints: " .. summary.options_text .. "." end return " None set `|id=` yet; add a unique `|id=` to each {{etymon}} in that section from top to bottom, then `<id:identifier>` after the term here (same value as `|id=`)." end return " Specify which one with `<id:identifier>` after the term. Options: " .. summary.options_text .. "." end local function warn_ambiguous_etymon_link(page, norm_lang, ids, is_toplevel) local page_link = etymon_target_page_link(page, norm_lang) local summary = summarize_available_etymon_ids(ids) if is_toplevel and summary.target_has_idless then __state.linked_page_multiple_etymons_idless = true end local lang_name = norm_lang:getCanonicalName() local lead = "Etymology link to " .. page_link .. " is ambiguous (" .. summary.count .. " {{etymon}} templates for " .. lang_name .. ")." Util.add_warning(lead .. ambiguous_etymon_suggestion(page_link, summary), true) end local function is_mismatched_explicit_id(base_key, cached_args, parent_etymon) return cached_args == M.data.STATUS.MISSING and not parent_etymon and #(__state.available_etymon_ids[base_key] or {}) > 0 end local function maybe_flag_partial_etymology_reference(base_key, etymon_data, cached_args, is_toplevel) if not is_toplevel or __state.skip_partial_etymology_category then return end if not __state.partial_etymology_targets[base_key] then return end if etymon_data.id and type(cached_args) == "table" then return end __state.linked_page_partial_etymology_sections = true end local function is_nonlemma_etymon_template(template_args) return template_args and M.yesno(template_args.nl, false) end local function warn_mismatched_explicit_id(page, norm_lang, base_key, etymon_id) local page_link = etymon_target_page_link(page, norm_lang) local summary = summarize_available_etymon_ids(__state.available_etymon_ids[base_key] or {}) local lang_name = norm_lang:getCanonicalName() local lead = "Etymology link to " .. page_link .. " uses `<id:" .. etymon_id .. ">`, but no {{etymon}} on that page has `|id=" .. etymon_id .. "|` for " .. lang_name .. "." Util.add_warning(lead .. " Valid IDs: " .. summary.options_text .. ".", true) end -- Given an etymon data, scrape its page and cache the result in the global state object. function DataRetriever.cache_page_etymons(etymon_page, etymon_title, key, etymon_lang, etymon_id, redirected_from, descendants_is_toplevel) local content = etymon_title:getContent() if not content then __state.cached_etymon_args[key] = M.data.STATUS.REDLINK return end -- Check if the linked page is a redirect. If it is, the template parsing -- code below will be effectively skipped, and `scrape_page` will be called -- again on the redirect target (see the bottom of this function) local lang_section_for_descendants = nil local redirect_target = etymon_title.redirect_target if not redirect_target then content = M.pages.get_section(content, etymon_lang:getFullName(), 2) if not content then __state.cached_etymon_args[key] = M.data.STATUS.MISSING return end lang_section_for_descendants = content end local etymon_lang_code = etymon_lang:getFullCode() local lang_page_key = etymon_lang_code .. ":" .. etymon_page local found_templates_for_lang = {} local found_ids = {} local get_node_class = M.template_parser.class_else_type -- Look for all {{etymon}} templates within the page content using the template parser -- This way the same page is never parsed more than once -- Build a map from senseids to their parent etymonids. local active_etymon_args = nil local etymology_section_count = 0 local etymology_sections_with_etymon = 0 local current_etymology_has_etymon = false local current_etymology_has_nonlemma = false local function finalize_current_etymology_section() if etymology_section_count == 0 then return end if current_etymology_has_etymon or current_etymology_has_nonlemma then etymology_sections_with_etymon = etymology_sections_with_etymon + 1 end current_etymology_has_etymon = false current_etymology_has_nonlemma = false end for node in M.template_parser.parse(content):iterate_nodes() do local node_class = get_node_class(node) if node_class == "heading" then -- A new L2 or etymology section acts as a barrier: an {{etymon}} usage -- used previously cannot be the parent of any subsequent senseids. -- Note that we don't have to check for L2s due to the usage of `M.pages.get_section` above. if node:get_name():find("^詞源") or node:get_name():find("^词源") then finalize_current_etymology_section() etymology_section_count = etymology_section_count + 1 active_etymon_args = nil end elseif node_class == "template" then local template_name = node:get_name() if template_name == "etymon" then local template_args = node:get_arguments() -- Check if this etymon is for our language if template_args[1] == etymon_lang_code then if is_nonlemma_etymon_template(template_args) then if etymology_section_count > 0 then current_etymology_has_nonlemma = true end else if etymology_section_count > 0 then current_etymology_has_etymon = true end table.insert(found_templates_for_lang, template_args) if template_args.id then local etymon_key = lang_page_key .. ":" .. template_args.id __state.cached_etymon_args[etymon_key] = template_args __state.cached_etymon_pages[etymon_key] = tostring(etymon_page) table.insert(found_ids, template_args.id) active_etymon_args = template_args else -- Store idless etymon with default key local etymon_key = lang_page_key .. ":*" __state.cached_etymon_args[etymon_key] = template_args __state.cached_etymon_pages[etymon_key] = tostring(etymon_page) table.insert(found_ids, "*") active_etymon_args = template_args end end end elseif active_etymon_args and template_name == "senseid" then local template_args = node:get_arguments() -- This should always be true for proper usages of {{senseid}}. if template_args[1] == etymon_lang_code and template_args[2] then local sense_id_key = lang_page_key .. ":" .. template_args[2] __state.senseid_parent_etymon[sense_id_key] = active_etymon_args __state.cached_etymon_pages[sense_id_key] = tostring(etymon_page) end end end end finalize_current_etymology_section() if lang_section_for_descendants and etymology_section_count > 1 and etymology_sections_with_etymon > 0 and etymology_sections_with_etymon < etymology_section_count then __state.partial_etymology_targets[lang_page_key] = true end if descendants_is_toplevel and lang_section_for_descendants and #found_templates_for_lang > 0 then M.descendants.cache_page_checks({ lang_section = lang_section_for_descendants, etymon_lang_code = etymon_lang_code, found_templates_for_lang = found_templates_for_lang, entry_title = __state.entry_title, entry_lang_code = __state.entry_lang_code, entry_lang = __state.entry_lang_code and Util.get_lang(__state.entry_lang_code, true) or nil, cached_descendants_checks = __state.cached_descendants_checks, lang_page_key = lang_page_key, redirected_from = redirected_from, }) end local id_data_list = {} for _, args in ipairs(found_templates_for_lang) do local id = args.id or "*" table.insert(id_data_list, { id = id, pos = args.pos }) end __state.available_etymon_ids[lang_page_key] = id_data_list if #found_templates_for_lang == 1 then __state.single_etymons[lang_page_key] = found_templates_for_lang[1] end if redirected_from and __state.available_etymon_ids[lang_page_key] then __state.available_etymon_ids[redirected_from] = __state.available_etymon_ids[redirected_from] or {} for _, id_data in ipairs(__state.available_etymon_ids[lang_page_key]) do table.insert(__state.available_etymon_ids[redirected_from], id_data) end end if __state.cached_etymon_args[key] ~= nil or __state.senseid_parent_etymon[key] ~= nil then -- All done! return elseif redirect_target and not redirected_from then -- Try scraping the redirect. etymon_page = redirect_target.prefixedText DataRetriever.cache_page_etymons(etymon_page, redirect_target, lang_page_key .. ":" .. etymon_id, etymon_lang, etymon_id, lang_page_key, descendants_is_toplevel) __state.cached_etymon_args[key] = __state.cached_etymon_args[etymon_lang_code .. ":" .. etymon_page .. ":" .. etymon_id] else __state.cached_etymon_args[key] = M.data.STATUS.MISSING end end local function has_linkable_term(etymon_data) if etymon_data.is_family or etymon_data.suppress_term or etymon_data.unknown_term then return false end local term = etymon_data.term if term == nil or term == "" then return false end return M.string_utilities.trim(term) ~= "" end local function record_term_id_tracking(etymon_data) if not has_linkable_term(etymon_data) then return end local term_page = M.links.get_link_page(etymon_data.term, etymon_data.lang) M.tracking.record_term_id_usage(__state.id_stats, etymon_data, term_page) end -- Given an etymon object, scrape its page (if necessary) and return its own etymon arguments as well as the page name. function DataRetriever.get_etymon_args(etymon_data, is_toplevel) if not has_linkable_term(etymon_data) then return M.data.STATUS.MISSING, nil, nil, nil end local page = M.links.get_link_page(etymon_data.term, etymon_data.lang) local norm_lang = Util.get_norm_lang(etymon_data.lang) local base_key = norm_lang:getFullCode() .. ":" .. page if etymon_data.id then local key = base_key .. ":" .. etymon_data.id local cached_args = __state.cached_etymon_args[key] or __state.senseid_parent_etymon[key] if cached_args == nil then local title = mw.title.new(page) if not title then error('Invalid page title "' .. page .. '" encountered.') end DataRetriever.cache_page_etymons(page, title, key, norm_lang, etymon_data.id, nil, is_toplevel) end cached_args = __state.cached_etymon_args[key] or __state.senseid_parent_etymon[key] -- refresh -- Get etymon_id from parent if this was resolved via senseid local parent_etymon = __state.senseid_parent_etymon[key] local resolved_etymon_id = parent_etymon and parent_etymon.id local descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = is_toplevel, base_key = base_key, lookup = { explicit_id = etymon_data.id, parent_etymon = parent_etymon, }, }) if is_toplevel and descendants_check == nil then local title = mw.title.new(page) if title then DataRetriever.cache_page_etymons(page, title, key, norm_lang, etymon_data.id, nil, true) descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = true, base_key = base_key, lookup = { explicit_id = etymon_data.id, parent_etymon = parent_etymon, }, }) end end local mismatched_id = is_mismatched_explicit_id(base_key, cached_args, parent_etymon) if mismatched_id and is_toplevel then __state.has_mismatched_id = true M.tracking.record_mismatched_id_usage(__state.id_stats, norm_lang, page, etymon_data.id) warn_mismatched_explicit_id(page, norm_lang, base_key, etymon_data.id) end maybe_flag_partial_etymology_reference(base_key, etymon_data, cached_args, is_toplevel) return cached_args, __state.cached_etymon_pages[key], resolved_etymon_id, descendants_check else __state.used_idless_etymon = true if is_toplevel then __state.toplevel_idless_etymon = true end if __state.available_etymon_ids[base_key] == nil then local title = mw.title.new(page) if not title then error('Invalid page title "' .. page .. '" encountered.') end DataRetriever.cache_page_etymons(page, title, base_key .. ":*", norm_lang, "*", nil, is_toplevel) end local ids = __state.available_etymon_ids[base_key] or {} local count = #ids -- Try to filter by postype if available and we have multiple candidates if count > 1 and etymon_data.postype then local matching_ids = {} for _, id_data in ipairs(ids) do if id_data.pos == etymon_data.postype then table.insert(matching_ids, id_data) end end if #matching_ids == 1 then local matched_id = matching_ids[1].id local matched_key = base_key .. ":" .. matched_id M.tracking.record_idless_resolution(__state.id_stats, norm_lang, page, "postype") local descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = is_toplevel, base_key = base_key, lookup = { id = matched_id }, }) if is_toplevel and descendants_check == nil then local title = mw.title.new(page) if title then DataRetriever.cache_page_etymons(page, title, base_key .. ":*", norm_lang, "*", nil, true) descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = true, base_key = base_key, lookup = { id = matched_id }, }) end end local matched_args = __state.cached_etymon_args[matched_key] maybe_flag_partial_etymology_reference(base_key, etymon_data, matched_args, is_toplevel) return matched_args, __state.cached_etymon_pages[matched_key], nil, descendants_check end end if count == 1 then local only_id_data = ids[1] local only_id = (type(only_id_data) == "table" and only_id_data.id) or only_id_data or "*" M.tracking.record_idless_resolution(__state.id_stats, norm_lang, page, "single") local descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = is_toplevel, base_key = base_key, lookup = { id_data = only_id_data }, }) if is_toplevel and descendants_check == nil then local title = mw.title.new(page) if title then DataRetriever.cache_page_etymons(page, title, base_key .. ":*", norm_lang, "*", nil, true) descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = true, base_key = base_key, lookup = { id_data = only_id_data }, }) end end local single_args = __state.single_etymons[base_key] maybe_flag_partial_etymology_reference(base_key, etymon_data, single_args, is_toplevel) return single_args, __state.cached_etymon_pages[base_key .. ":" .. only_id], nil, descendants_check elseif count > 1 then M.tracking.record_idless_resolution(__state.id_stats, norm_lang, page, "ambiguous") warn_ambiguous_etymon_link(page, norm_lang, ids, is_toplevel) maybe_flag_partial_etymology_reference(base_key, etymon_data, M.data.STATUS.AMBIGUOUS, is_toplevel) return M.data.STATUS.AMBIGUOUS, nil, nil, nil else M.tracking.record_idless_resolution(__state.id_stats, norm_lang, page, "missing") maybe_flag_partial_etymology_reference(base_key, etymon_data, M.data.STATUS.MISSING, is_toplevel) return M.data.STATUS.MISSING, nil, nil, nil end end end local function keyword_invisible_in_tree(keyword_info) if not keyword_info then return false end local inv = keyword_info.invisible return inv == "all" or inv == true or inv == "tree" end -- True when the node has at least one top-level child container visible in the tree. local function node_has_visible_tree_children(node) for _, container in ipairs(node.children or {}) do if not keyword_invisible_in_tree(container.keyword_info) then return true end end return false end -- Count visible term nodes in the tree. local function get_visible_tree_depth(node, skip_child_rendering) local max_depth = 1 if skip_child_rendering or not node then return max_depth end for _, container in ipairs(node.children or {}) do local keyword_info = container.keyword_info if not keyword_invisible_in_tree(keyword_info) then local skip_grandchildren = keyword_info and keyword_info.no_child_categories for _, term in ipairs(container.terms or {}) do if term.is_duplicate then if term.original_has_children then max_depth = math.max(max_depth, 2) end else max_depth = math.max(max_depth, 1 + get_visible_tree_depth(term, skip_grandchildren)) end end end end return max_depth end local function as_param_list(val) if val == nil then return {} end if type(val) == "table" then return val end if type(val) == "string" and val ~= "" then return { val } end return {} end local TreeBuilder = {} local function parse_etymon_references(refs_text) if not refs_text or refs_text == "" then return "" end return M.references.parse_references(refs_text) end local function parse_tree_references(node) if node.ref then node.parsed_ref = parse_etymon_references(node.ref) end if node.children then for _, container in ipairs(node.children) do if container.terms then for _, term in ipairs(container.terms) do parse_tree_references(term) end end end end if node.supplements then for _, supplement in ipairs(node.supplements) do if supplement.terms then for _, term in ipairs(supplement.terms) do parse_tree_references(term) end end end end end -- Build a unique key for deduplication in the seen table function TreeBuilder.build_key(lang, title, args) local norm_lang_code = Util.get_norm_lang(lang):getFullCode() local is_table = type(args) == "table" local id = (is_table and args.id) or "" if title then return norm_lang_code .. ":" .. M.links.get_link_page(title, lang) .. ":" .. id end if is_table and args.status == M.data.STATUS.INLINE then local content_parts = {} for i = 1, #args do content_parts[i] = tostring(args[i]) end return norm_lang_code .. ":*:" .. id .. "\0" .. table.concat(content_parts, "\0") end return norm_lang_code .. ":*:" .. id end -- Copy parsed etymon modifiers onto a tree/supplement term node. function TreeBuilder.apply_etymon_fields(term, etymon_data) term.id = etymon_data.id term.t = etymon_data.t term.tr = etymon_data.tr term.ts = etymon_data.ts term.alt = etymon_data.alt term.g = etymon_data.g term.pos = etymon_data.pos term.ng = etymon_data.ng term.ref = etymon_data.ref term.is_uncertain = etymon_data.unc term.lit = etymon_data.lit term.q = etymon_data.q term.qq = etymon_data.qq term.l = etymon_data.l term.ll = etymon_data.ll term.suppress_term = etymon_data.suppress_term term.unknown_term = etymon_data.unknown_term term.is_family = etymon_data.is_family term.override = etymon_data.override term.aftype = etymon_data.aftype term.postype = etymon_data.postype term.bor = etymon_data.bor term.lbor = etymon_data.lbor term.slbor = etymon_data.slbor end function TreeBuilder.build_supplement_term(etymon_data, entry_lang, supplement_type) EtymonParser.check_supplement_term(etymon_data, entry_lang, supplement_type) local term = { lang = etymon_data.lang, title = etymon_data.term, children = {}, status = M.data.STATUS.OK, } TreeBuilder.apply_etymon_fields(term, etymon_data) return term end function TreeBuilder.build_supplement_terms(entry_lang, supplement_type, param_value) local terms = {} for _, term_param in ipairs(as_param_list(param_value)) do if type(term_param) == "string" and term_param ~= "" then local etymon_data = EtymonParser.parse_etymon(term_param, entry_lang) if etymon_data then table.insert(terms, TreeBuilder.build_supplement_term(etymon_data, entry_lang, supplement_type)) end end end return terms end -- Attach a |param= supplement defined in etymon_data.supplements (e.g. doublet=). function TreeBuilder.append_term_supplement(data_tree, entry_lang, supplement_type, param_value) local config = M.data.supplements[supplement_type] if not config then error("Unknown supplement '" .. tostring(supplement_type) .. "'.") end local terms = TreeBuilder.build_supplement_terms(entry_lang, supplement_type, param_value) if #terms == 0 then return end data_tree.supplements = data_tree.supplements or {} table.insert(data_tree.supplements, { type = supplement_type, config = config, terms = terms, }) M.tracking.record_keyword_usage(__state.toplevel_keyword_stats, supplement_type, entry_lang, entry_lang, true) end function TreeBuilder.build(lang, title, args, seen, depth, stop_recursion) seen = seen or {} depth = depth or 0 local is_toplevel = (depth == 0) if depth > __state.max_depth_reached then __state.max_depth_reached = depth end __state.total_nodes = __state.total_nodes + 1 local lang_code = lang:getCode() __state.language_count[lang_code] = (__state.language_count[lang_code] or 0) + 1 local current_id = (type(args) == "table" and args.id) or "" local key = TreeBuilder.build_key(lang, title, args) local node = { lang = lang, title = title, id = current_id, args = args, children = {}, status = M.data.STATUS.OK } if type(args) ~= "table" or seen[key] then node.status = args or M.data.STATUS.MISSING -- Mark as duplicate if we've seen this node before if seen[key] then node.is_duplicate = true node.duplicate_key = key local original_node = seen[key] if type(original_node) == "table" and original_node.children and #original_node.children > 0 then node.original_has_children = true end end return node end node.status = args.status or M.data.STATUS.OK seen[key] = node -- If stop_recursion is set, skip parsing children but check for visible children if stop_recursion then local keywords = M.data.keywords local has_visible_children = false for i = 2, #args do local param = args[i] if type(param) == "string" then local keyword_base = get_keyword_base(param) if keyword_base and keywords[keyword_base] then local _, kw_modifiers = EtymonParser.parse_keyword_modifiers(param:sub(1, 1) == ":" and param or (":" .. param)) if not keyword_invisible_in_tree(get_effective_keyword_info(keyword_base, kw_modifiers)) then has_visible_children = true break end elseif param:sub(1, 1) ~= ":" then -- It's a term (not a keyword), so there are visible children has_visible_children = true break end end end node.has_visible_children = has_visible_children return node end -- Parse args into keyword containers local current_keyword = "from" local current_keyword_modifiers = {} local current_container = nil local function ensure_container() if not current_container or current_container.keyword ~= current_keyword then local keyword_info = get_effective_keyword_info(current_keyword, current_keyword_modifiers) current_container = { keyword = current_keyword, keyword_info = keyword_info, keyword_modifiers = current_keyword_modifiers, terms = {}, } table.insert(node.children, current_container) -- Override keyword text/phrase for nominalization with <g:code> if current_keyword_modifiers.g and current_keyword == "nominalization" then local labels = get_nominalization_label_for_g(current_keyword_modifiers.g) if not labels then local codes = {} for c in pairs(M.data.nominalization_g_codes) do table.insert(codes, c) end table.sort(codes) error("Invalid <g:" .. tostring(current_keyword_modifiers.g) .. ">. Supported codes for nominalization: " .. table.concat(codes, ", ")) end current_container.keyword_info = copy_keyword_info(keyword_info) current_container.keyword_info.text = labels.text current_container.keyword_info.phrase = labels.phrase end end return current_container end for i = 2, #args do local param = args[i] if is_keyword(param) then local keyword, modifiers = EtymonParser.parse_keyword_modifiers(param) if not keyword then error("Invalid keyword '" .. param .. "'.") end current_keyword = keyword current_keyword_modifiers = modifiers current_container = nil -- Force new container for new keyword elseif type(param) == "string" and param:sub(1, 1) == ":" then reject_removed_surf_keyword(param) error("Invalid keyword '" .. param .. "'. Did you mean a valid keyword like ':bor', ':inh', etc.?") elseif type(param) == "string" then local etymon_data = EtymonParser.parse_etymon(param, lang) if etymon_data then -- Track keyword usage at top level M.tracking.record_keyword_usage(__state.toplevel_keyword_stats, current_keyword, lang, etymon_data.lang, is_toplevel) local term_node = {} local container -- Handle suppress_term (-) and unknown_term (empty or +) directly if etymon_data.suppress_term or etymon_data.unknown_term then container = ensure_container() if etymon_data.ety then local inline_args = EtymonParser.parse_inline_ety(etymon_data.ety, etymon_data.lang) inline_args.id = etymon_data.id inline_args.status = M.data.STATUS.INLINE term_node = TreeBuilder.build(etymon_data.lang, nil, inline_args, seen, depth + 1) else term_node = { lang = etymon_data.lang, children = {}, status = M.data.STATUS.OK, } end TreeBuilder.apply_etymon_fields(term_node, etymon_data) else -- Regular term: fetch arguments from page record_term_id_tracking(etymon_data) local etymon_args, page_of, resolved_etymon_id, descendants_check = DataRetriever.get_etymon_args(etymon_data, is_toplevel) -- Check for <ety> inline parameter doesn't override the scraped arguments, unless the latter are missing if etymon_data.ety then if etymon_args == M.data.STATUS.REDLINK or etymon_args == M.data.STATUS.MISSING then __state.current_page_has_inline_etymology = true if is_toplevel then __state.toplevel_has_inline_etymology = true end local inline_args = EtymonParser.parse_inline_ety(etymon_data.ety, etymon_data.lang) -- Track inline ety keywords too local inline_keyword = get_keyword(inline_args[2], true) if inline_keyword and #inline_args >= 3 then local inline_etymon = EtymonParser.parse_etymon(inline_args[3], etymon_data.lang) if inline_etymon then M.tracking.record_keyword_usage(__state.toplevel_keyword_stats, inline_keyword, etymon_data.lang, inline_etymon.lang, is_toplevel) end end inline_args.id = etymon_data.id inline_args.status = M.data.STATUS.INLINE etymon_args = inline_args term_node.page_of = __state.cached_etymon_pages[key] -- term node is on the same page as the parent else -- Scraped arguments exist, <ety> is redundant and ignored __state.current_page_has_redundant_etymology = true if is_toplevel then __state.toplevel_redundant_etymology = true end end end -- Ensure container exists before checking keyword info container = ensure_container() -- Check if current keyword has no_child_categories - if so, stop recursion local keyword_info = container.keyword_info local should_stop_recursion = (stop_recursion or (keyword_info and keyword_info.no_child_categories)) term_node = TreeBuilder.build(etymon_data.lang, etymon_data.term, etymon_args, seen, depth + 1, should_stop_recursion) term_node.target_key = Util.get_norm_lang(etymon_data.lang):getFullCode() .. ":" .. M.links.get_link_page(etymon_data.term, etymon_data.lang) term_node.etymon_id = resolved_etymon_id -- The actual etymon id when resolved via senseid term_node.page_of = page_of TreeBuilder.apply_etymon_fields(term_node, etymon_data) term_node.missing_descendants_header, term_node.missing_descendants_entry = M.descendants.get_term_sync_flags(current_keyword, term_node.status, descendants_check) end table.insert(container.terms, term_node) end end end return node end -- Convert etymology tree to JSON-serializable table local function tree_to_json(node) local obj = { term = node.title, lang = node.lang:getCode(), lang_name = node.lang:getCanonicalName(), id = (node.id and node.id ~= "") and node.id or nil, status = node.status, is_uncertain = node.is_uncertain or nil, is_duplicate = node.is_duplicate or nil, gloss = node.t, transliteration = node.tr, transcription = node.ts, alt = node.alt, g = node.g, pos = node.pos, ng = node.ng, children = {}, } for _, container in ipairs(node.children or {}) do local keyword_info = container.keyword_info if keyword_info then local container_obj = { keyword = container.keyword, keyword_label = keyword_info.text, keyword_abbrev = keyword_info.abbrev, is_group = keyword_info.is_group or nil, is_invisible = keyword_info.invisible or nil, is_uncertain = (container.keyword_modifiers and container.keyword_modifiers.unc) or nil, terms = {}, } for _, term in ipairs(container.terms or {}) do table.insert(container_obj.terms, tree_to_json(term)) end table.insert(obj.children, container_obj) end end return obj end -- Build and return the etymology data tree for a given term. function export.get_tree(lang, title, args, options) options = options or {} __state.entry_title = title __state.entry_lang_code = lang:getCode() __state.id_stats = M.tracking.new_id_stats() __state.skip_partial_etymology_category = options.skip_partial_etymology_category == true if options.validate then EtymonParser.validate(lang, args, options.id, title, options.pos, false) end local lang_code = lang:getCode() local start_index = (args[1] == lang_code) and 2 or 1 local tree_args = { [1] = lang_code, id = options.id or args.id } for i = start_index, #args do table.insert(tree_args, args[i]) end __state.cached_etymon_args[lang_code .. ":" .. title .. ":" .. (tree_args.id or "")] = tree_args local ety_data_tree = TreeBuilder.build(lang, title, tree_args) parse_tree_references(ety_data_tree) if options.json then return M.JSON.toJSON(tree_to_json(ety_data_tree)) end return ety_data_tree end -- Given a language code, page name and optionally the id= parameter, -- render the tree and only the etymology tree for the relevant page. -- Fetches and parses the corresponding {{etymon}} from the requested page, -- and any further pages needed to render the tree. -- Parameters can be passed either through the #invoke or as -- template parameters *through* an #invoke. function export.render_tree_for_etymon_on_page(frame) local frame_args = frame.args local parent_args = frame:getParent().args local langcode = frame_args[1] or parent_args[1] local pagename = frame_args[2] or parent_args[2] local id = frame_args["id"] or parent_args["id"] local display_title = frame_args["title"] or parent_args["title"] local parsed_title = mw.title.new(pagename, 0) local title if parsed_title.namespace == 0 then title = M.pages.safe_page_name(parsed_title) elseif parsed_title.namespace == 118 then title = "*" .. M.pages.safe_page_name(parsed_title) else error("Unsupported namespace for render_tree_for_etymon_on_page: " .. parsed_title.namespace) end local lang = Util.get_lang(langcode) -- Construct etymon_data for DataRetriever.get_args. local etymon_data = { lang = lang, term = title, id = id } local args, pagename = DataRetriever.get_etymon_args(etymon_data, true) if args == M.data.STATUS.MISSING then error("The etymon template was not found (language " .. langcode .. ", title '" .. title .. "'" .. (id and ", ID '" .. id .. "'" or ", no ID given") .. "). Page contents may have changed in the interim.") end local tree_title = display_title or title if lang:stripDiacritics(M.links.remove_links(tree_title)) ~= lang:stripDiacritics(M.links.remove_links(title)) then M.tracking.track_title_pagename_mismatch(lang) end reset_invocation_state() local ety_data_tree = export.get_tree(lang, tree_title, args, { validate = true, id = id, }) local output = {} table.insert(output, M.template_styles("Module:etymon/styles.css")) table.insert(output, M.tree.render({ data_tree = ety_data_tree, format_term_func = function(term, is_toplevel) return Util.format_term(term, is_toplevel, { gloss = "suppress", pos = "suppress", lit = "suppress", tree_ql = "suppress", }) end, })) return table.concat(output) end function export.main(frame) local parent_args = frame:getParent().args local args = M.parameters.process(parent_args, M.parameters_data.etymon) local lang = args[1] local etymon_args = args[2] local id = args.id local title = args.title local text = args.text local tree = args.tree local etydate = args.etydate local doublet = args.doublet local rfe = args.rfe local etystub = args.etystub local is_nonlemma = M.yesno(args.nl, false) local page_data = Util.get_page_data() if not title then title = page_data.pagename if page_data.namespace == "Reconstruction" then title = "*" .. title end end local entry_pagename = page_data.pagename if page_data.namespace == "Reconstruction" then entry_pagename = "*" .. entry_pagename end if lang:stripDiacritics(M.links.remove_links(title)) ~= lang:stripDiacritics(M.links.remove_links(entry_pagename)) then M.tracking.track_title_pagename_mismatch(lang) end local current_L2 = M.pages.get_current_L2() if current_L2 then local norm_lang = Util.get_norm_lang(lang) local norm_name = norm_lang:getCanonicalName() if current_L2 ~= norm_name and require("Module:zh").st(current_L2) ~= norm_name then -- L10N local lang_desc = lang:getCode() .. " (" .. lang:getCanonicalName() .. ")" if norm_lang:getCode() ~= lang:getCode() then lang_desc = lang_desc .. ", normalized to " .. norm_lang:getCode() .. " (" .. norm_name .. ")" end error("Language '" .. lang_desc .. "' does not match the L2 header (" .. current_L2 .. ").") end end reset_invocation_state() local ety_data_tree = export.get_tree(lang, title, etymon_args, { validate = true, pos = args.pos, id = id, json = args.json, skip_partial_etymology_category = is_nonlemma, }) if args.json then return ety_data_tree end local output = {} local text_allowlist_mode = M.text_allowed.default_mode or "off" if text and text_allowlist_mode ~= "off" and not Util.is_text_param_allowed_for_lang(lang) then local msg = "Etymology texts (parameter <code>text=</code>) are not allowed for " .. lang:getFullName() .. "; see [[Template:etymon#Text allowlist|Template:etymon § Text allowlist]] for the list of languages that may use the <code>text=</code> parameter." if text_allowlist_mode == "error" then error(msg) else Util.add_warning(msg, true) end end local lang_exc = Util.get_lang_exception(lang) if lang_exc and lang_exc.disallow then local disallow = lang_exc.disallow local error_text = " for " .. lang:getFullName() if disallow.ref then error_text = error_text .. "; see " .. disallow.ref else error_text = error_text .. "." end if tree and disallow.tree then error("Etymology trees are not allowed" .. error_text) end if text and disallow.text then error("Etymology texts are not allowed" .. error_text) end end if etydate then local etydate_param_mods = { ref = { list = true, type = "references", allow_holes = true }, refn = { list = true, allow_holes = true }, nocap = { type = "boolean" }, } local function generate_etydate_obj(etydate_text) local etydate_specs = {} for spec in etydate_text:gmatch("[^,]+") do table.insert(etydate_specs, mw.text.trim(spec)) end return { [1] = etydate_specs } end local parsed_etydate = M.parse_utilities.parse_inline_modifiers(etydate, { param_mods = etydate_param_mods, generate_obj = generate_etydate_obj }) local etydate_args = { [1] = parsed_etydate[1], nocap = parsed_etydate.nocap or false, } ety_data_tree.supplements = ety_data_tree.supplements or {} table.insert(ety_data_tree.supplements, { type = "etydate", etydate_text = M.etydate.format_etydate(etydate_args, { omit_refs = true }), etydate_refs = (parsed_etydate.ref and #parsed_etydate.ref > 0) and parsed_etydate.ref or nil, }) end TreeBuilder.append_term_supplement(ety_data_tree, lang, "doublet", doublet) if ety_data_tree.supplements then parse_tree_references(ety_data_tree) end local has_visible_children = node_has_visible_tree_children(ety_data_tree) -- Suppress trees for multiword entries and one-step chains local visible_tree_depth = get_visible_tree_depth(ety_data_tree) local is_trivial_tree = visible_tree_depth <= 2 local is_multiword = title:find("%s") ~= nil or title:find("_") ~= nil if tree and (is_multiword or is_trivial_tree) then tree = false end if tree then table.insert(output, M.template_styles("Module:etymon/styles.css")) table.insert(output, M.tree.render({ data_tree = ety_data_tree, format_term_func = function(term, is_toplevel) return Util.format_term(term, is_toplevel, { gloss = "suppress", pos = "suppress", lit = "suppress", tree_ql = "suppress", }) end, })) end local tree_disallowed = lang_exc and lang_exc.disallow and lang_exc.disallow.tree local ety_tree_json = M.JSON.toJSON(tree_to_json(ety_data_tree)) local anchor = M.anchors.etymonid(lang, id, { no_tree = args.notree, title = title, empty_tree = (not has_visible_children) or tree_disallowed, ety_tree_json = ety_tree_json, }) table.insert(output, anchor) local text_stop_lang_missing = nil if text then local max_depth, stop_at_blue_link, stop_at_lang, stop_at_lang_or_bluelink if text == "++" then max_depth, stop_at_blue_link = false, false elseif text == "+" then max_depth, stop_at_blue_link = 1, false elseif text == "*" then max_depth, stop_at_blue_link = false, true elseif text:match("^:[^*]+%*$") then -- Stop at a specific language OR first bluelink after it, e.g., ":ota*" -- If the target language is a redlink, continue to the first bluelink local lang_code = text:match("^:([^*]+)%*$") if lang_code and lang_code ~= "" then local lang_obj = Util.get_lang(lang_code, true) if lang_obj then stop_at_lang_or_bluelink = lang_code else Util.add_warning('Invalid language code "' .. lang_code .. '" in text parameter. Showing full chain instead.') max_depth, stop_at_blue_link = false, false end else Util.add_warning('Empty language code in text parameter. Showing full chain instead.') max_depth, stop_at_blue_link = false, false end elseif text:sub(1, 1) == ":" then -- Stop at a specific language, e.g., ":ar" stops at first Arabic term local lang_code = text:sub(2) if lang_code ~= "" then -- Validate the language code local lang_obj = Util.get_lang(lang_code, true) if lang_obj then stop_at_lang = lang_code else Util.add_warning('Invalid language code "' .. lang_code .. '" in text parameter. Showing full chain instead.') max_depth, stop_at_blue_link = false, false -- default to ++ end else Util.add_warning('Empty language code in text parameter. Showing full chain instead.') max_depth, stop_at_blue_link = false, false -- default to ++ end else local num = tonumber(text) if num and num >= 1 then max_depth, stop_at_blue_link = num, false else error('Invalid text value "' .. text .. '". Valid values are: "++" (full chain), "+" (first step only), "*" (until first blue link), a number (max steps), ":lang" (stop at language), or ":lang*" (stop at language or first bluelink if redlink)') end end local text_output, text_render_meta = M.text.render({ data_tree = ety_data_tree, format_term_func = Util.format_term, lang_matches_stop_code = Util.lang_matches_stop_code, max_depth = max_depth, stop_at_blue_link = stop_at_blue_link, curr_page = page_data.pagename, nodot = args.nodot, dot = args.dot, stop_at_lang = stop_at_lang, stop_at_lang_or_bluelink = stop_at_lang_or_bluelink, }) table.insert(output, text_output) if stop_at_lang and text_render_meta and not text_render_meta.stop_lang_reached then M.tracking.track_text_stop_lang_missing(lang, stop_at_lang) text_stop_lang_missing = stop_at_lang end end if rfe then table.insert(output, Util.expand_request_template(frame, "rfe", rfe, lang:getCode())) end if etystub then table.insert(output, Util.expand_request_template(frame, "etystub", etystub, lang:getCode())) end if is_nonlemma then table.insert(output, " " .. frame:expandTemplate({ title = "nonlemma", args = {}, })) end local categories = {} if Util.is_content_page() then M.tracking.track_tree_metrics({ max_depth_reached = __state.max_depth_reached, total_nodes = __state.total_nodes, language_count = __state.language_count, lang = lang, }) categories = M.categories.build({ data_tree = ety_data_tree, page_lang = lang, available_etymon_ids = __state.available_etymon_ids, senseid_parent_etymon = __state.senseid_parent_etymon, get_norm_lang_func = Util.get_norm_lang, lang_exc = lang_exc, suppress_categories = lang_exc and lang_exc.suppress_categories, nocat = args.nocat, tree = tree, text = text, exnihilo = args.exnihilo, toplevel_has_inline_etymology = __state.toplevel_has_inline_etymology, toplevel_redundant_etymology = __state.toplevel_redundant_etymology, toplevel_idless_etymon = __state.toplevel_idless_etymon, has_mismatched_id = __state.has_mismatched_id, linked_page_multiple_etymons_idless = __state.linked_page_multiple_etymons_idless, linked_page_partial_etymology_sections = __state.linked_page_partial_etymology_sections, text_stop_lang_missing = text_stop_lang_missing, }) M.tracking.track_keywords(__state.toplevel_keyword_stats, lang) M.tracking.track_page_id(lang, id) M.tracking.track_ids(__state.id_stats, lang) end if #categories > 0 then table.insert(output, M.categories.format(categories, lang)) end if __state.warnings then for i, warning in ipairs(__state.warnings) do table.insert(output, (i == 1 and "\n" or "") .. warning .. "\n") end end return table.concat(output) end return export nkf1x5mj4iqdolpmku5xhnz6mopvkje 9813900 9813899 2026-06-15T19:30:48Z TongcyDai 53191 9813900 Scribunto text/plain --[=[ This module implements the {{etymon}} template for structured etymology data on Wiktionary. It enables the creation of etymology trees and text by parsing etymon chains, scraping linked pages for their own {{etymon}} data, and recursively building a tree of derivational relationships. Authors: - Original implementation: [[User:Ioaxxere]] - Full refactor (September 2025): [[User:Fenakhay]] ([[Special:Diff/86717746]]) Modules: - [[Module:etymon]]: main module handling parsing, validation, tree building, and page scraping - [[Module:etymon/data]]: keyword definitions, configuration, and status constants - [[Module:etymon/tree]]: etymology tree rendering - [[Module:etymon/text]]: etymology text generation - [[Module:etymon/categories]]: category generation logic - [[Module:etymon/tracking]]: tracking ]=] local export = {} local __state = { cached_etymon_args = {}, cached_etymon_pages = {}, cached_descendants_checks = {}, senseid_parent_etymon = {}, available_etymon_ids = {}, single_etymons = {}, entry_title = nil, entry_lang_code = nil, current_page_has_inline_etymology = false, current_page_has_redundant_etymology = false, used_idless_etymon = false, toplevel_has_inline_etymology = false, toplevel_redundant_etymology = false, toplevel_idless_etymon = false, has_mismatched_id = false, linked_page_multiple_etymons_idless = false, linked_page_partial_etymology_sections = false, partial_etymology_targets = {}, skip_partial_etymology_category = false, max_depth_reached = 0, total_nodes = 0, language_count = {}, toplevel_keyword_stats = {}, id_stats = nil, warnings = {}, } local function reset_invocation_state() __state.current_page_has_inline_etymology = false __state.current_page_has_redundant_etymology = false __state.used_idless_etymon = false __state.toplevel_has_inline_etymology = false __state.toplevel_redundant_etymology = false __state.toplevel_idless_etymon = false __state.has_mismatched_id = false __state.linked_page_multiple_etymons_idless = false __state.linked_page_partial_etymology_sections = false __state.max_depth_reached = 0 __state.total_nodes = 0 __state.language_count = {} __state.toplevel_keyword_stats = {} __state.warnings = {} end local M = require("Module:module loader").init({ require = { data = "Module:etymon/data", tree = "Module:etymon/tree", text = "Module:etymon/text", categories = "Module:etymon/categories", tracking = "Module:etymon/tracking", descendants = "Module:etymon/descendants", anchors = "Module:anchors", etydate = "Module:etydate", etymology = "Module:etymology", families = "Module:families", languages = "Module:languages", languages_errorgetby = "Module:languages/errorGetBy", links = "Module:links", pages = "Module:pages", parameters = "Module:parameters", string_utilities = "Module:string utilities", template_parser = "Module:template parser", utilities = "Module:utilities", debug = "Module:debug", en_utilities = "Module:en-utilities", parse_utilities = "Module:parse utilities", references = "Module:references", template_styles = "Module:TemplateStyles", script_utilities = "Module:script utilities", JSON = "Module:JSON", yesno = "Module:yesno", }, loadData = { headword_data = "Module:headword/data", parameters_data = "Module:parameters/data", text_allowed = "Module:etymon/data/text_allowed", }, }) local Util = {} function Util.format_error(message, preview_only) if preview_only and not M.pages.is_preview() then return nil end return '<span class="error">' .. message .. '</span>' end function Util.add_warning(message, preview_only) local formatted = Util.format_error(message, preview_only) if formatted then table.insert(__state.warnings, formatted) end end function Util.is_text_param_allowed_for_lang(lang) if not lang or type(lang) ~= "table" then return false end local types = lang.getTypes and lang:getTypes() if types and types.family then local code = lang.getCode and lang:getCode() return code and M.text_allowed.families[code] == true end local full_code = lang.getFullCode and lang:getFullCode() if full_code and M.text_allowed.langs[full_code] then return true end if lang.inFamily then for family_code in pairs(M.text_allowed.families) do if lang:inFamily(family_code) then return true end end end return false end function Util.get_lang(code, no_error) if no_error then return M.languages.getByCode(code, nil, true) end return M.languages.getByCode(code, nil, true) or M.languages_errorgetby.code(code, true, true) end -- Match a term language against a text=:lang stop target (supports etymology-only codes). function Util.lang_matches_stop_code(term_lang, stop_code) if not term_lang or not stop_code or stop_code == "" then return false end local stop_lang = Util.get_lang(stop_code, true) if not stop_lang then return false end if term_lang:getCode() == stop_lang:getCode() then return true end if stop_lang:getFullCode() == stop_lang:getCode() then return term_lang:getFullCode() == stop_lang:getCode() end return false end function Util.get_family(code) return M.families.getByCode(code) end function Util.get_lang_exception(lang) -- Families have no language-specific exceptions if lang.getTypes and lang:getTypes().family then return nil end local code = lang:getCode() local lang_exceptions = M.data.config.lang_exceptions if lang_exceptions[code] then return lang_exceptions[code] end for norm_code, exc in pairs(lang_exceptions) do if exc.normalize_to and code == exc.normalize_to then return exc end if exc.normalize_from_families then local should_normalize = false for _, family in ipairs(exc.normalize_from_families) do if lang:inFamily(family) then should_normalize = true break end end if should_normalize and exc.normalize_exclude_families then for _, family in ipairs(exc.normalize_exclude_families) do if lang:inFamily(family) then should_normalize = false break end end end if should_normalize then local ret = {} for k, v in pairs(exc) do ret[k] = v end ret.suppress_tr = nil return ret end end end return nil end function Util.get_norm_lang(lang) local exc = Util.get_lang_exception(lang) if exc and exc.normalize_to then return M.languages.getByCode(exc.normalize_to) end return lang end -- Add default values for boolean modifiers (e.g., <unc> becomes <unc:1>) -- This is needed because Module:parse utilities expects boolean modifiers to have explicit values function Util.add_boolean_defaults(str, param_mods) local result = str for name, spec in pairs(param_mods) do if spec.type == "boolean" then -- Replace <name> with <name:1> (but not <name:...> which already has a value) result = result:gsub("<" .. name .. ">", "<" .. name .. ":1>") end end return result end local REQUEST_TEMPLATE_PARAM_MODS = { rfe = { nocat = { type = "boolean" }, sort = {}, y = {}, m = {}, fragment = {}, section = {}, box = { type = "boolean" }, noes = { type = "boolean" }, }, etystub = { nocat = { type = "boolean" }, sort = {}, nocap = { type = "boolean" }, nodot = { type = "boolean" }, }, } function Util.expand_request_template(frame, template_name, param_value, lang_code) local param_mods = REQUEST_TEMPLATE_PARAM_MODS[template_name] local with_defaults = Util.add_boolean_defaults(param_value, param_mods) local parsed = M.parse_utilities.parse_inline_modifiers(with_defaults, { param_mods = param_mods, generate_obj = function(text) if M.yesno(text, false) then return { is_boolean = true } end return { text = text } end, }) local template_args = { [1] = lang_code } for name in pairs(param_mods) do template_args[name] = parsed[name] end if not parsed.is_boolean then template_args[2] = parsed.text end return " " .. frame:expandTemplate({ title = template_name, args = template_args, }) end -- Centralized term formatting: handles suppress_term (-), unknown_term (empty/+), and regular terms function Util.format_term(term, is_toplevel, opts) opts = opts or {} -- suppress_term (-) returns nil if term.suppress_term then return nil end local lang = term.lang local exc = Util.get_lang_exception(lang) if is_toplevel then local display_text = term.alt or term.title or "" local sc = term.sc or lang:findBestScript(display_text) local bold_text = tostring(mw.html.create("strong") :addClass("selflink") :wikitext(display_text)) return M.script_utilities.tag_text(bold_text, lang, sc, "term") end local link_params = { lang = lang } link_params.term = not term.unknown_term and term.title or nil link_params.alt = term.alt link_params.id = (not term.unknown_term and term.id and term.id ~= "") and term.id or nil if not (exc and exc.suppress_tr) then link_params.tr = term.tr link_params.ts = term.ts else link_params.suppress_tr = true end link_params.lit = (opts.lit ~= "suppress") and term.lit or nil if opts.gloss ~= "suppress" then link_params.gloss = term.t end if term.g and term.g ~= "" then local genders = M.string_utilities.split(term.g, ",") for i = 1, #genders do genders[i] = M.string_utilities.trim(genders[i]) end link_params.genders = genders end if opts.pos ~= "suppress" then link_params.pos = term.pos link_params.ng = term.ng end if exc and exc.suppress_tr then link_params.lit = nil end local show_qualifiers if opts.tree_ql ~= "suppress" then if term.q then link_params.q = term.q end if term.qq then link_params.qq = term.qq end if term.l then link_params.l = term.l end if term.ll then link_params.ll = term.ll end show_qualifiers = term.q or term.qq or term.l or term.ll end return M.links.full_link(link_params, "term", nil, show_qualifiers and true or nil) end local __is_content_page_cached function Util.is_content_page() if __is_content_page_cached == nil then __is_content_page_cached = M.pages.is_content_page(mw.title.getCurrentTitle()) end return __is_content_page_cached end local __page_data_cached function Util.get_page_data() if not __page_data_cached then __page_data_cached = M.headword_data.page end return __page_data_cached end -- Extract base keyword from param (without modifiers) local function get_keyword_base(param) if type(param) ~= "string" then return nil end local base = param:match("^:?([^<]+)") or param:gsub("^:", "") return base end local function is_keyword(param, allow_colon_less) if type(param) ~= "string" then return false end local keywords = M.data.keywords if param:sub(1, 1) == ":" then local base = get_keyword_base(param) return keywords[base] ~= nil end if allow_colon_less then local base = get_keyword_base(param) return keywords[base] ~= nil end return false end local function get_keyword(param, allow_colon_less) if type(param) ~= "string" then return nil end local keywords = M.data.keywords if param:sub(1, 1) == ":" then return get_keyword_base(param) end if allow_colon_less then local base = get_keyword_base(param) if keywords[base] then return base end end return nil end local function normalize_keyword(keyword) if keyword:sub(1, 1) == ":" then return keyword end return ":" .. keyword end -- Resolve keyword (possibly an alias) to its canonical form. Used only at input boundaries local function get_canonical_keyword(keyword) if not keyword then return keyword end return M.data.keyword_canonical[keyword] or keyword end local function is_affix_group_keyword(keyword) local config = keyword and M.data.keywords[keyword] return config and config.affix_categories or false end local function reject_removed_surf_keyword(param) local base = get_keyword_base(param) if base == "surf" then error("The `:surf` keyword has been removed. Use `<surf>` on a formation keyword instead (e.g. `:af<surf>`, `:bor<surf>`).") end end local function copy_keyword_info(source) local copy = {} for k, v in pairs(source) do copy[k] = v end return copy end local function lowercase_glossary_display(text) return text:gsub("(%[%[Appendix:Glossary#[^|]+|)([^%]])([^%]]*)%]%]", function(prefix, first, rest) return prefix .. mw.ustring.lower(first) .. rest .. "]]" end) end local function surf_should_keep_formation_phrase(base) if not base.phrase then return false end if base.glossary then return true end return not (base.phrase == "from" and (base.text == "From" or base.text == "from")) end -- Runtime overrides when <surf> is present on a keyword. local function get_effective_keyword_info(keyword, modifiers) local base = M.data.keywords[keyword] if not base or not modifiers or not modifiers.surf then return base end local effective = copy_keyword_info(base) local surf_text = "[[Appendix:Glossary#字面分析|字面分析]]為" local surf_phrase = "[[Appendix:Glossary#字面分析|字面分析]]為" effective.new_sentence = true effective.invisible = "tree" if surf_should_keep_formation_phrase(base) then effective.phrase = surf_phrase .. base.phrase if base.text then effective.text = surf_text .. lowercase_glossary_display(base.text) else effective.text = surf_text .. base.phrase end else effective.text = surf_text effective.phrase = surf_phrase end return effective end -- Build text/phrase for nominalization with <g:code> (uses data module for codes only). local function get_nominalization_label_for_g(code) if not code or code == "" then return nil end local codes = M.data.nominalization_g_codes local adj = codes[code] if not adj and #code == 2 then local gender_adj = codes[code:sub(1, 1)] local number_adj = codes[code:sub(2, 2)] if gender_adj and number_adj then adj = gender_adj .. number_adj end end if not adj then return nil end local text = adj .. "[[Appendix:Glossary#名詞化|名詞化]],來自" local phrase = adj .. "[[Appendix:Glossary#名詞化|名詞化]],來自" return { text = text, phrase = phrase } end local EtymonParser = {} -- Keyword modifier definitions EtymonParser.keyword_param_mods = { unc = { type = "boolean" }, ref = {}, text = { restrict = { keywords = { "from", "derived" } } }, lit = { restrict = { affix_group = true } }, conj = {}, -- conjunction for alternatives: "and", "or", "and/or", etc. g = { restrict = { keywords = { "nominalization" } } }, surf = { type = "boolean" }, senseid = { restrict = { keywords = { "semantic loan" } } }, } -- Term modifier definitions EtymonParser.etymon_param_mods = { id = {}, t = {}, tr = {}, ts = {}, q = {}, qq = {}, l = {}, ll = {}, pos = {}, ng = {}, alt = {}, g = {}, ety = {}, lit = {}, unc = { type = "boolean" }, ref = {}, aftype = { restrict = { affix_group = true } }, postype = {}, bor = { type = "boolean", restrict = { affix_group = true } }, slbor = { type = "boolean", restrict = { affix_group = true } }, lbor = { type = "boolean", restrict = { affix_group = true } }, } local function get_clean_param_mods(param_mods) local clean = {} for mod_name, mod_def in pairs(param_mods) do clean[mod_name] = {} for key, value in pairs(mod_def) do if key ~= "restrict" then clean[mod_name][key] = value end end end return clean end function EtymonParser.check_modifier_restrictions(modifiers, current_keyword, param_mods) for mod_name, mod_value in pairs(modifiers) do -- Only check restrictions if the modifier has a non-false/nil value if mod_value then local mod_def = param_mods[mod_name] if mod_def and mod_def.restrict then if mod_def.restrict.affix_group then if not is_affix_group_keyword(current_keyword) then local mod_display = mod_value == true and "<" .. mod_name .. ">" or "<" .. mod_name .. ":" .. tostring(mod_value) .. ">" error("The modifier `" .. mod_display .. "` is only allowed for affix-group keywords (e.g. `:af`, `:blend`, `:univ`).") end elseif mod_def.restrict.keywords then local allowed_keywords = mod_def.restrict.keywords local is_allowed = false for _, allowed_keyword in ipairs(allowed_keywords) do if current_keyword == allowed_keyword then is_allowed = true break end end if not is_allowed then local keyword_list = {} for _, kw in ipairs(allowed_keywords) do table.insert(keyword_list, ":" .. kw) end local keyword_str = table.concat(keyword_list, #keyword_list == 2 and " or " or ", ") if #keyword_list > 2 then -- Replace last comma with "or" keyword_str = keyword_str:gsub(", ([^,]+)$", " or %1") end local mod_display = mod_value == true and "<" .. mod_name .. ">" or "<" .. mod_name .. ":" .. tostring(mod_value) .. ">" error("The modifier `" .. mod_display .. "` is only allowed for the keyword" .. (#keyword_list > 1 and "s " or " ") .. keyword_str .. ".") end end end end end end local TERM_RULE_DISALLOW = { suppress = { field = "suppress_term", label = "suppressed" }, unknown = { field = "unknown_term", label = "unknown" }, family = { field = "is_family", label = "family" }, } function EtymonParser.check_etymon_limits(count, limits, label, opts) if not limits then return end opts = opts or {} local min_etymons = limits.min_etymons if min_etymons == nil and not opts.skip_default_min then min_etymons = 1 end if min_etymons and count < min_etymons then if min_etymons > 1 then error("Detected " .. label .. " group with fewer than " .. min_etymons .. " etymons.") else error("Detected " .. label .. " with no etymons.") end end if limits.max_etymons and count > limits.max_etymons then local unit = (limits.max_etymons == 1) and "etymon" or "etymons" error("Detected " .. label .. " with more than " .. limits.max_etymons .. " " .. unit .. ".") end end function EtymonParser.check_term_rules(etymon_data, entry_lang, rules, label) label = label or "term" if rules and rules.disallow then local disallowed = {} for _, typ in ipairs(rules.disallow) do local spec = TERM_RULE_DISALLOW[typ] if spec and etymon_data[spec.field] then table.insert(disallowed, spec.label) end end if #disallowed > 0 then error(label .. " does not support " .. mw.text.listToText(disallowed, "or") .. " etymons.") end end if etymon_data.is_family then if rules and rules.family == "disallowed" then error(label .. " does not support family codes" .. (rules.family_suffix or ".")) elseif not etymon_data.suppress_term then error("Family codes require suppressed term (use family:-).") end end if rules then if rules.require_term and (not etymon_data.term or etymon_data.term == "") then error(label .. " requires a term for each listed form.") end if rules.entry_lang then if Util.get_norm_lang(etymon_data.lang):getFullCode() ~= Util.get_norm_lang(entry_lang):getFullCode() then error(label .. " terms must be in the entry language (" .. entry_lang:getFullCode() .. "), got '" .. etymon_data.lang:getFullCode() .. "'.") end end if rules.ancestor_check then M.etymology.check_ancestor(entry_lang, etymon_data.lang) end elseif etymon_data.is_family and not etymon_data.suppress_term then error("Family codes require suppressed term (use family:-).") end end function EtymonParser.check_keyword_term(etymon_data, entry_lang, keyword) local config = M.data.keywords[keyword] EtymonParser.check_term_rules(etymon_data, entry_lang, config and config.term_rules, "`:" .. keyword .. "`") end function EtymonParser.check_supplement_term(etymon_data, entry_lang, supplement_type) local config = M.data.supplements[supplement_type] EtymonParser.check_term_rules(etymon_data, entry_lang, config and config.term_rules, "|" .. supplement_type .. "=") end -- Parse keyword with modifiers (e.g., ":bor<unc>" or ":bor<ref:{{R:example}}>") function EtymonParser.parse_keyword_modifiers(param) if type(param) ~= "string" then return nil, {} end local base_keyword = get_keyword_base(param) if not base_keyword then return nil, {} end local canonical_keyword = get_canonical_keyword(base_keyword) -- Check if there are any modifiers if not param:find("<", 1, true) then return canonical_keyword, {} end -- Parse modifiers using the same mechanism as etymon parsing local rest_with_defaults = Util.add_boolean_defaults(param, EtymonParser.keyword_param_mods) local function generate_obj(ignored) return {} end local parsed = M.parse_utilities.parse_inline_modifiers(rest_with_defaults:gsub("^:?[^<]+", ""), { param_mods = get_clean_param_mods(EtymonParser.keyword_param_mods), generate_obj = generate_obj }) local modifiers = { unc = parsed.unc or false, ref = parsed.ref, text = parsed.text, lit = parsed.lit, conj = parsed.conj, g = parsed.g, surf = parsed.surf or false, senseid = parsed.senseid, } -- Validate modifiers against restrictions EtymonParser.check_modifier_restrictions(modifiers, canonical_keyword, EtymonParser.keyword_param_mods) return canonical_keyword, modifiers end local function normalize_keyword_param(keyword_with_mods) local trimmed = M.string_utilities.trim(keyword_with_mods) reject_removed_surf_keyword(trimmed:match("^:") and trimmed or (":" .. trimmed)) local base = get_keyword_base(trimmed) if not base or not M.data.keywords[base] then error("Invalid keyword '" .. trimmed .. "' in inline etymology") end local canonical_base = get_canonical_keyword(base) local without_colon = trimmed:gsub("^:", "") local mods_part = without_colon:sub(#base + 1) local kw_param = normalize_keyword(canonical_base .. mods_part) EtymonParser.parse_keyword_modifiers(kw_param) return kw_param end local function get_keyword_mod_names() local names = {} for mod_name in pairs(EtymonParser.keyword_param_mods) do names[mod_name] = true end return names end local function parse_inline_ety_run(ety_string) local body = ety_string or "" if body == "" then error("Empty inline etymology") end local keyword_mod_names = get_keyword_mod_names() local pos = 1 local len = #body local function parse_err(msg) error(msg .. " in inline etymology: '" .. body .. "'") end local function peek_double() return body:sub(pos, pos + 1) == "<<" end local function mod_name_from_unwrapped(unwrapped) return unwrapped:match("^<([^:>]+)") end local function is_keyword_mod(unwrapped) local name = mod_name_from_unwrapped(unwrapped) return name and keyword_mod_names[name] or false end local function read_double_bracket() if not peek_double() then return nil end local start = pos pos = pos + 2 while pos <= len - 1 do if body:sub(pos, pos + 1) == ">>" then local token = body:sub(start, pos + 1) pos = pos + 2 return token, token:sub(2, -2) end pos = pos + 1 end parse_err("Unmatched <<") end local function read_angle_cell() if body:sub(pos, pos) ~= "<" or peek_double() then return nil end local open = pos pos = pos + 1 local depth = 1 local i = pos while i <= len do local ch = body:sub(i, i) if ch == "<" then depth = depth + 1 elseif ch == ">" then depth = depth - 1 if depth == 0 then local inner = body:sub(open + 1, i - 1) pos = i + 1 return inner end end i = i + 1 end parse_err("Unmatched <") end local function read_bare_run() local start = pos while pos <= len and body:sub(pos, pos) ~= "<" do pos = pos + 1 end return body:sub(start, pos - 1) end local function absorb_double_keyword_mods(keyword_str) while peek_double() do local saved = pos local _, unwrapped = read_double_bracket() if is_keyword_mod(unwrapped) then keyword_str = keyword_str .. unwrapped else pos = saved break end end return keyword_str end local kw_start = pos while pos <= len and body:sub(pos, pos) ~= "<" do pos = pos + 1 end local keyword = body:sub(kw_start, pos - 1) if keyword:match("^%s*$") then parse_err("Missing keyword") end keyword = absorb_double_keyword_mods(keyword) local cells = {} while pos <= len do if peek_double() then local _, unwrapped = read_double_bracket() if is_keyword_mod(unwrapped) then parse_err("Unexpected keyword modifier " .. unwrapped .. " outside of a keyword") end table.insert(cells, "+" .. unwrapped) elseif body:sub(pos, pos) == "<" then local inner = read_angle_cell() if inner ~= "" then table.insert(cells, inner) end else local bare = read_bare_run() if bare ~= "" then if bare:sub(1, 1) ~= ":" then parse_err("Unexpected bare text '" .. bare .. "' (use :keyword for nested keywords in inline etymology)") end if not is_keyword(bare, true) then parse_err("Invalid keyword '" .. bare .. "' in inline etymology") end table.insert(cells, absorb_double_keyword_mods(bare)) end end end return { keyword = keyword, cells = cells, } end function EtymonParser.inline_ety_to_pipe(ety_string) local run = parse_inline_ety_run(ety_string) if not run.keyword or run.keyword:match("^%s*$") then return "|" end local pipe_parts = { normalize_keyword_param(M.string_utilities.trim(run.keyword)) } for _, segment in ipairs(run.cells) do if is_keyword(segment, true) then table.insert(pipe_parts, normalize_keyword_param(segment)) else table.insert(pipe_parts, segment) end end return "|" .. table.concat(pipe_parts, "|") .. "|" end function EtymonParser.pipe_to_inline_ety(pipe_string) local cells = {} for cell in pipe_string:gmatch("([^|]+)") do if cell ~= "" then table.insert(cells, cell) end end if #cells == 0 then return "" end local inline_parts = {} for index, cell in ipairs(cells) do local base = get_keyword_base(cell) if base and M.data.keywords[base] then local without_colon = cell:gsub("^:", "") local kw_base, mods = without_colon:match("^([^<]+)(.*)$") local inline_kw = (kw_base or without_colon) .. (mods or ""):gsub("<([^>]+)>", "<<%1>>") if index > 1 then inline_kw = ":" .. inline_kw end table.insert(inline_parts, inline_kw) elseif cell:sub(1, 1) == "+" then local mod = cell:sub(2) if mod:match("^<.->$") then mod = mod:sub(2, -2) end table.insert(inline_parts, "<<" .. mod .. ">>") else table.insert(inline_parts, "<" .. cell .. ">") end end return table.concat(inline_parts, "") end function EtymonParser.parse_inline_ety(ety_string, context_lang) local run = parse_inline_ety_run(ety_string) local keyword = M.string_utilities.trim(run.keyword) reject_removed_surf_keyword(":" .. keyword) if not is_keyword(keyword, true) then error("Invalid keyword '" .. keyword .. "' in inline etymology <ety:" .. keyword .. "...>") end local args = { context_lang:getCode(), normalize_keyword_param(keyword) } for _, segment in ipairs(run.cells) do if is_keyword(segment, true) then table.insert(args, normalize_keyword_param(segment)) else table.insert(args, segment) end end return args end function EtymonParser.parse_etymon(param, context_lang) if is_keyword(param) then return nil end if type(param) ~= "string" then return nil end local lang, rest local is_family = false local before_bracket = param:match("^([^<]*)") or param local lang_code, rest_match = before_bracket:match("^([a-zA-Z][a-zA-Z0-9._-]*):(.*)$") if lang_code then local potential_lang = Util.get_lang(lang_code, true) if potential_lang then lang = potential_lang rest = param:sub(#lang_code + 2) else local potential_family = Util.get_family(lang_code) if potential_family then lang = potential_family rest = param:sub(#lang_code + 2) is_family = true else lang = context_lang rest = param end end else lang = context_lang rest = param end M.tracking.track_term(rest) if rest == "" or rest == "+" then return { lang = lang, term = nil, unknown_term = true, is_family = is_family, } end if rest == "-" then return { lang = lang, term = nil, suppress_term = true, is_family = is_family, } end if not rest:find("<", 1, true) then return { lang = lang, term = M.string_utilities.trim(rest), is_family = is_family, } end local term_text = rest:match("^([^<]*)") or "" local is_unknown = (term_text == "" or term_text == "+") local is_suppress = (term_text == "-") local function generate_obj(ignored_term) return { term = (is_unknown or is_suppress) and nil or M.string_utilities.trim(term_text) } end local rest_with_defaults = Util.add_boolean_defaults(rest, EtymonParser.etymon_param_mods) local parsed_obj = M.parse_utilities.parse_inline_modifiers(rest_with_defaults, { param_mods = get_clean_param_mods(EtymonParser.etymon_param_mods), generate_obj = generate_obj }) if parsed_obj.id and parsed_obj.id:match("^!") then parsed_obj.id = parsed_obj.id:sub(2) parsed_obj.override = true end parsed_obj.lang = lang parsed_obj.is_family = is_family if is_unknown then parsed_obj.unknown_term = true elseif is_suppress then parsed_obj.suppress_term = true end return parsed_obj end function EtymonParser.validate(lang, args, id, title, pos, starts_with_lang_code) -- id is now optional, so only validate if provided if id then if mw.ustring.len(id) < 1 then error("The `id` parameter must have at least two characters.") end if id == title or id == Util.get_page_data().pagename then error("The `id` parameter must not be the same as the page title.") end end local pos_aliases = { ["前綴"] = "prefix", ["後綴"] = "suffix", ["間綴"] = "interfix", ["中綴"] = "infix", ["詞根"] = "root", ["詞"] = "word", } if pos and pos_aliases[pos] then pos = pos_aliases[pos] end -- L10N local valid_pos = { prefix = true, suffix = true, interfix = true, infix = true, root = true, word = true } if pos and not valid_pos[pos] then error("Unknown value provided for `pos`. Valid values: " .. table.concat(require("Module:table").keysToList(valid_pos), ", ") .. ".") end local current_keyword = "from" local current_keyword_explicit = false local keyword_etymons = {} local keywords = M.data.keywords local function checkKeyword() local config = keywords[current_keyword] if current_keyword == "from" and not current_keyword_explicit and #keyword_etymons == 0 then keyword_etymons = {} return end EtymonParser.check_etymon_limits(#keyword_etymons, config, "`:" .. current_keyword .. "`") keyword_etymons = {} end local start_index = starts_with_lang_code and 2 or 1 for i = start_index, #args do local param = args[i] if type(param) ~= "string" then elseif param:sub(1, 1) == ":" and not is_keyword(param) then reject_removed_surf_keyword(param) error("Invalid keyword '" .. param .. "'. Did you mean a valid keyword like ':bor', ':inh', etc.?") elseif is_keyword(param) then checkKeyword() current_keyword = get_canonical_keyword(get_keyword(param)) current_keyword_explicit = true else local etymon_data = EtymonParser.parse_etymon(param, lang) if etymon_data then table.insert(keyword_etymons, param) EtymonParser.check_keyword_term(etymon_data, lang, current_keyword) -- Check modifier restrictions EtymonParser.check_modifier_restrictions(etymon_data, current_keyword, EtymonParser.etymon_param_mods) -- postype must be "root" or "word" local VALID_POSTYPES = { root = true, word = true } if etymon_data.postype and not VALID_POSTYPES[etymon_data.postype] then error("Invalid <postype:" .. etymon_data.postype .. ">; must be \"root\" or \"word\".") end if etymon_data.ety then local inline_args = EtymonParser.parse_inline_ety(etymon_data.ety, etymon_data.lang) EtymonParser.validate(etymon_data.lang, inline_args, nil, nil, nil, true) end else table.insert(keyword_etymons, param) end end end checkKeyword() end local DataRetriever = {} local function format_etymon_id_hint(id_data, idx) local id = type(id_data) == "table" and id_data.id or id_data local pos = type(id_data) == "table" and id_data.pos if id and id ~= "" and id ~= "*" then return '"' .. id .. '"' end if pos and pos ~= "" then return "unnamed (|pos=" .. pos .. "|)" end return "etymon #" .. idx .. " (no |id= on page)" end local function etymon_target_page_link(page, norm_lang) return M.links.full_link({ term = page, lang = norm_lang, no_generate_forms = true, }, "term") end -- Summarize {{etymon}} id slots on a linked page for preview warnings. local function summarize_available_etymon_ids(ids) local id_list = {} local all_idless = true local target_has_idless = false local any_pos = false for i, id_data in ipairs(ids) do local id = type(id_data) == "table" and id_data.id or id_data local pos = type(id_data) == "table" and id_data.pos if id and id ~= "" and id ~= "*" then all_idless = false else target_has_idless = true end if pos and pos ~= "" then any_pos = true end table.insert(id_list, format_etymon_id_hint(id_data, i)) end return { id_list = id_list, all_idless = all_idless, target_has_idless = target_has_idless, any_pos = any_pos, count = #ids, options_text = mw.text.listToText(id_list), } end local function ambiguous_etymon_suggestion(page_link, summary) if summary.all_idless then if summary.any_pos then return " None set `|id=` yet; add a unique `|id=` to each on " .. page_link .. ", then `<id:identifier>` after the term here. Section order / hints: " .. summary.options_text .. "." end return " None set `|id=` yet; add a unique `|id=` to each {{etymon}} in that section from top to bottom, then `<id:identifier>` after the term here (same value as `|id=`)." end return " Specify which one with `<id:identifier>` after the term. Options: " .. summary.options_text .. "." end local function warn_ambiguous_etymon_link(page, norm_lang, ids, is_toplevel) local page_link = etymon_target_page_link(page, norm_lang) local summary = summarize_available_etymon_ids(ids) if is_toplevel and summary.target_has_idless then __state.linked_page_multiple_etymons_idless = true end local lang_name = norm_lang:getCanonicalName() local lead = "Etymology link to " .. page_link .. " is ambiguous (" .. summary.count .. " {{etymon}} templates for " .. lang_name .. ")." Util.add_warning(lead .. ambiguous_etymon_suggestion(page_link, summary), true) end local function is_mismatched_explicit_id(base_key, cached_args, parent_etymon) return cached_args == M.data.STATUS.MISSING and not parent_etymon and #(__state.available_etymon_ids[base_key] or {}) > 0 end local function maybe_flag_partial_etymology_reference(base_key, etymon_data, cached_args, is_toplevel) if not is_toplevel or __state.skip_partial_etymology_category then return end if not __state.partial_etymology_targets[base_key] then return end if etymon_data.id and type(cached_args) == "table" then return end __state.linked_page_partial_etymology_sections = true end local function is_nonlemma_etymon_template(template_args) return template_args and M.yesno(template_args.nl, false) end local function warn_mismatched_explicit_id(page, norm_lang, base_key, etymon_id) local page_link = etymon_target_page_link(page, norm_lang) local summary = summarize_available_etymon_ids(__state.available_etymon_ids[base_key] or {}) local lang_name = norm_lang:getCanonicalName() local lead = "Etymology link to " .. page_link .. " uses `<id:" .. etymon_id .. ">`, but no {{etymon}} on that page has `|id=" .. etymon_id .. "|` for " .. lang_name .. "." Util.add_warning(lead .. " Valid IDs: " .. summary.options_text .. ".", true) end -- Given an etymon data, scrape its page and cache the result in the global state object. function DataRetriever.cache_page_etymons(etymon_page, etymon_title, key, etymon_lang, etymon_id, redirected_from, descendants_is_toplevel) local content = etymon_title:getContent() if not content then __state.cached_etymon_args[key] = M.data.STATUS.REDLINK return end -- Check if the linked page is a redirect. If it is, the template parsing -- code below will be effectively skipped, and `scrape_page` will be called -- again on the redirect target (see the bottom of this function) local lang_section_for_descendants = nil local redirect_target = etymon_title.redirect_target if not redirect_target then content = M.pages.get_section(content, etymon_lang:getFullName(), 2) if not content then __state.cached_etymon_args[key] = M.data.STATUS.MISSING return end lang_section_for_descendants = content end local etymon_lang_code = etymon_lang:getFullCode() local lang_page_key = etymon_lang_code .. ":" .. etymon_page local found_templates_for_lang = {} local found_ids = {} local get_node_class = M.template_parser.class_else_type -- Look for all {{etymon}} templates within the page content using the template parser -- This way the same page is never parsed more than once -- Build a map from senseids to their parent etymonids. local active_etymon_args = nil local etymology_section_count = 0 local etymology_sections_with_etymon = 0 local current_etymology_has_etymon = false local current_etymology_has_nonlemma = false local function finalize_current_etymology_section() if etymology_section_count == 0 then return end if current_etymology_has_etymon or current_etymology_has_nonlemma then etymology_sections_with_etymon = etymology_sections_with_etymon + 1 end current_etymology_has_etymon = false current_etymology_has_nonlemma = false end for node in M.template_parser.parse(content):iterate_nodes() do local node_class = get_node_class(node) if node_class == "heading" then -- A new L2 or etymology section acts as a barrier: an {{etymon}} usage -- used previously cannot be the parent of any subsequent senseids. -- Note that we don't have to check for L2s due to the usage of `M.pages.get_section` above. if node:get_name():find("^詞源") or node:get_name():find("^词源") then finalize_current_etymology_section() etymology_section_count = etymology_section_count + 1 active_etymon_args = nil end elseif node_class == "template" then local template_name = mw.ustring.lower(node:get_name()) -- L10N lower all template titles if template_name == "etymon" then local template_args = node:get_arguments() -- Check if this etymon is for our language if template_args[1] == etymon_lang_code then if is_nonlemma_etymon_template(template_args) then if etymology_section_count > 0 then current_etymology_has_nonlemma = true end else if etymology_section_count > 0 then current_etymology_has_etymon = true end table.insert(found_templates_for_lang, template_args) if template_args.id then local etymon_key = lang_page_key .. ":" .. template_args.id __state.cached_etymon_args[etymon_key] = template_args __state.cached_etymon_pages[etymon_key] = tostring(etymon_page) table.insert(found_ids, template_args.id) active_etymon_args = template_args else -- Store idless etymon with default key local etymon_key = lang_page_key .. ":*" __state.cached_etymon_args[etymon_key] = template_args __state.cached_etymon_pages[etymon_key] = tostring(etymon_page) table.insert(found_ids, "*") active_etymon_args = template_args end end end elseif active_etymon_args and template_name == "senseid" then local template_args = node:get_arguments() -- This should always be true for proper usages of {{senseid}}. if template_args[1] == etymon_lang_code and template_args[2] then local sense_id_key = lang_page_key .. ":" .. template_args[2] __state.senseid_parent_etymon[sense_id_key] = active_etymon_args __state.cached_etymon_pages[sense_id_key] = tostring(etymon_page) end end end end finalize_current_etymology_section() if lang_section_for_descendants and etymology_section_count > 1 and etymology_sections_with_etymon > 0 and etymology_sections_with_etymon < etymology_section_count then __state.partial_etymology_targets[lang_page_key] = true end if descendants_is_toplevel and lang_section_for_descendants and #found_templates_for_lang > 0 then M.descendants.cache_page_checks({ lang_section = lang_section_for_descendants, etymon_lang_code = etymon_lang_code, found_templates_for_lang = found_templates_for_lang, entry_title = __state.entry_title, entry_lang_code = __state.entry_lang_code, entry_lang = __state.entry_lang_code and Util.get_lang(__state.entry_lang_code, true) or nil, cached_descendants_checks = __state.cached_descendants_checks, lang_page_key = lang_page_key, redirected_from = redirected_from, }) end local id_data_list = {} for _, args in ipairs(found_templates_for_lang) do local id = args.id or "*" table.insert(id_data_list, { id = id, pos = args.pos }) end __state.available_etymon_ids[lang_page_key] = id_data_list if #found_templates_for_lang == 1 then __state.single_etymons[lang_page_key] = found_templates_for_lang[1] end if redirected_from and __state.available_etymon_ids[lang_page_key] then __state.available_etymon_ids[redirected_from] = __state.available_etymon_ids[redirected_from] or {} for _, id_data in ipairs(__state.available_etymon_ids[lang_page_key]) do table.insert(__state.available_etymon_ids[redirected_from], id_data) end end if __state.cached_etymon_args[key] ~= nil or __state.senseid_parent_etymon[key] ~= nil then -- All done! return elseif redirect_target and not redirected_from then -- Try scraping the redirect. etymon_page = redirect_target.prefixedText DataRetriever.cache_page_etymons(etymon_page, redirect_target, lang_page_key .. ":" .. etymon_id, etymon_lang, etymon_id, lang_page_key, descendants_is_toplevel) __state.cached_etymon_args[key] = __state.cached_etymon_args[etymon_lang_code .. ":" .. etymon_page .. ":" .. etymon_id] else __state.cached_etymon_args[key] = M.data.STATUS.MISSING end end local function has_linkable_term(etymon_data) if etymon_data.is_family or etymon_data.suppress_term or etymon_data.unknown_term then return false end local term = etymon_data.term if term == nil or term == "" then return false end return M.string_utilities.trim(term) ~= "" end local function record_term_id_tracking(etymon_data) if not has_linkable_term(etymon_data) then return end local term_page = M.links.get_link_page(etymon_data.term, etymon_data.lang) M.tracking.record_term_id_usage(__state.id_stats, etymon_data, term_page) end -- Given an etymon object, scrape its page (if necessary) and return its own etymon arguments as well as the page name. function DataRetriever.get_etymon_args(etymon_data, is_toplevel) if not has_linkable_term(etymon_data) then return M.data.STATUS.MISSING, nil, nil, nil end local page = M.links.get_link_page(etymon_data.term, etymon_data.lang) local norm_lang = Util.get_norm_lang(etymon_data.lang) local base_key = norm_lang:getFullCode() .. ":" .. page if etymon_data.id then local key = base_key .. ":" .. etymon_data.id local cached_args = __state.cached_etymon_args[key] or __state.senseid_parent_etymon[key] if cached_args == nil then local title = mw.title.new(page) if not title then error('Invalid page title "' .. page .. '" encountered.') end DataRetriever.cache_page_etymons(page, title, key, norm_lang, etymon_data.id, nil, is_toplevel) end cached_args = __state.cached_etymon_args[key] or __state.senseid_parent_etymon[key] -- refresh -- Get etymon_id from parent if this was resolved via senseid local parent_etymon = __state.senseid_parent_etymon[key] local resolved_etymon_id = parent_etymon and parent_etymon.id local descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = is_toplevel, base_key = base_key, lookup = { explicit_id = etymon_data.id, parent_etymon = parent_etymon, }, }) if is_toplevel and descendants_check == nil then local title = mw.title.new(page) if title then DataRetriever.cache_page_etymons(page, title, key, norm_lang, etymon_data.id, nil, true) descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = true, base_key = base_key, lookup = { explicit_id = etymon_data.id, parent_etymon = parent_etymon, }, }) end end local mismatched_id = is_mismatched_explicit_id(base_key, cached_args, parent_etymon) if mismatched_id and is_toplevel then __state.has_mismatched_id = true M.tracking.record_mismatched_id_usage(__state.id_stats, norm_lang, page, etymon_data.id) warn_mismatched_explicit_id(page, norm_lang, base_key, etymon_data.id) end maybe_flag_partial_etymology_reference(base_key, etymon_data, cached_args, is_toplevel) return cached_args, __state.cached_etymon_pages[key], resolved_etymon_id, descendants_check else __state.used_idless_etymon = true if is_toplevel then __state.toplevel_idless_etymon = true end if __state.available_etymon_ids[base_key] == nil then local title = mw.title.new(page) if not title then error('Invalid page title "' .. page .. '" encountered.') end DataRetriever.cache_page_etymons(page, title, base_key .. ":*", norm_lang, "*", nil, is_toplevel) end local ids = __state.available_etymon_ids[base_key] or {} local count = #ids -- Try to filter by postype if available and we have multiple candidates if count > 1 and etymon_data.postype then local matching_ids = {} for _, id_data in ipairs(ids) do if id_data.pos == etymon_data.postype then table.insert(matching_ids, id_data) end end if #matching_ids == 1 then local matched_id = matching_ids[1].id local matched_key = base_key .. ":" .. matched_id M.tracking.record_idless_resolution(__state.id_stats, norm_lang, page, "postype") local descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = is_toplevel, base_key = base_key, lookup = { id = matched_id }, }) if is_toplevel and descendants_check == nil then local title = mw.title.new(page) if title then DataRetriever.cache_page_etymons(page, title, base_key .. ":*", norm_lang, "*", nil, true) descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = true, base_key = base_key, lookup = { id = matched_id }, }) end end local matched_args = __state.cached_etymon_args[matched_key] maybe_flag_partial_etymology_reference(base_key, etymon_data, matched_args, is_toplevel) return matched_args, __state.cached_etymon_pages[matched_key], nil, descendants_check end end if count == 1 then local only_id_data = ids[1] local only_id = (type(only_id_data) == "table" and only_id_data.id) or only_id_data or "*" M.tracking.record_idless_resolution(__state.id_stats, norm_lang, page, "single") local descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = is_toplevel, base_key = base_key, lookup = { id_data = only_id_data }, }) if is_toplevel and descendants_check == nil then local title = mw.title.new(page) if title then DataRetriever.cache_page_etymons(page, title, base_key .. ":*", norm_lang, "*", nil, true) descendants_check = M.descendants.get_lookup_check({ cached_descendants_checks = __state.cached_descendants_checks, is_toplevel = true, base_key = base_key, lookup = { id_data = only_id_data }, }) end end local single_args = __state.single_etymons[base_key] maybe_flag_partial_etymology_reference(base_key, etymon_data, single_args, is_toplevel) return single_args, __state.cached_etymon_pages[base_key .. ":" .. only_id], nil, descendants_check elseif count > 1 then M.tracking.record_idless_resolution(__state.id_stats, norm_lang, page, "ambiguous") warn_ambiguous_etymon_link(page, norm_lang, ids, is_toplevel) maybe_flag_partial_etymology_reference(base_key, etymon_data, M.data.STATUS.AMBIGUOUS, is_toplevel) return M.data.STATUS.AMBIGUOUS, nil, nil, nil else M.tracking.record_idless_resolution(__state.id_stats, norm_lang, page, "missing") maybe_flag_partial_etymology_reference(base_key, etymon_data, M.data.STATUS.MISSING, is_toplevel) return M.data.STATUS.MISSING, nil, nil, nil end end end local function keyword_invisible_in_tree(keyword_info) if not keyword_info then return false end local inv = keyword_info.invisible return inv == "all" or inv == true or inv == "tree" end -- True when the node has at least one top-level child container visible in the tree. local function node_has_visible_tree_children(node) for _, container in ipairs(node.children or {}) do if not keyword_invisible_in_tree(container.keyword_info) then return true end end return false end -- Count visible term nodes in the tree. local function get_visible_tree_depth(node, skip_child_rendering) local max_depth = 1 if skip_child_rendering or not node then return max_depth end for _, container in ipairs(node.children or {}) do local keyword_info = container.keyword_info if not keyword_invisible_in_tree(keyword_info) then local skip_grandchildren = keyword_info and keyword_info.no_child_categories for _, term in ipairs(container.terms or {}) do if term.is_duplicate then if term.original_has_children then max_depth = math.max(max_depth, 2) end else max_depth = math.max(max_depth, 1 + get_visible_tree_depth(term, skip_grandchildren)) end end end end return max_depth end local function as_param_list(val) if val == nil then return {} end if type(val) == "table" then return val end if type(val) == "string" and val ~= "" then return { val } end return {} end local TreeBuilder = {} local function parse_etymon_references(refs_text) if not refs_text or refs_text == "" then return "" end return M.references.parse_references(refs_text) end local function parse_tree_references(node) if node.ref then node.parsed_ref = parse_etymon_references(node.ref) end if node.children then for _, container in ipairs(node.children) do if container.terms then for _, term in ipairs(container.terms) do parse_tree_references(term) end end end end if node.supplements then for _, supplement in ipairs(node.supplements) do if supplement.terms then for _, term in ipairs(supplement.terms) do parse_tree_references(term) end end end end end -- Build a unique key for deduplication in the seen table function TreeBuilder.build_key(lang, title, args) local norm_lang_code = Util.get_norm_lang(lang):getFullCode() local is_table = type(args) == "table" local id = (is_table and args.id) or "" if title then return norm_lang_code .. ":" .. M.links.get_link_page(title, lang) .. ":" .. id end if is_table and args.status == M.data.STATUS.INLINE then local content_parts = {} for i = 1, #args do content_parts[i] = tostring(args[i]) end return norm_lang_code .. ":*:" .. id .. "\0" .. table.concat(content_parts, "\0") end return norm_lang_code .. ":*:" .. id end -- Copy parsed etymon modifiers onto a tree/supplement term node. function TreeBuilder.apply_etymon_fields(term, etymon_data) term.id = etymon_data.id term.t = etymon_data.t term.tr = etymon_data.tr term.ts = etymon_data.ts term.alt = etymon_data.alt term.g = etymon_data.g term.pos = etymon_data.pos term.ng = etymon_data.ng term.ref = etymon_data.ref term.is_uncertain = etymon_data.unc term.lit = etymon_data.lit term.q = etymon_data.q term.qq = etymon_data.qq term.l = etymon_data.l term.ll = etymon_data.ll term.suppress_term = etymon_data.suppress_term term.unknown_term = etymon_data.unknown_term term.is_family = etymon_data.is_family term.override = etymon_data.override term.aftype = etymon_data.aftype term.postype = etymon_data.postype term.bor = etymon_data.bor term.lbor = etymon_data.lbor term.slbor = etymon_data.slbor end function TreeBuilder.build_supplement_term(etymon_data, entry_lang, supplement_type) EtymonParser.check_supplement_term(etymon_data, entry_lang, supplement_type) local term = { lang = etymon_data.lang, title = etymon_data.term, children = {}, status = M.data.STATUS.OK, } TreeBuilder.apply_etymon_fields(term, etymon_data) return term end function TreeBuilder.build_supplement_terms(entry_lang, supplement_type, param_value) local terms = {} for _, term_param in ipairs(as_param_list(param_value)) do if type(term_param) == "string" and term_param ~= "" then local etymon_data = EtymonParser.parse_etymon(term_param, entry_lang) if etymon_data then table.insert(terms, TreeBuilder.build_supplement_term(etymon_data, entry_lang, supplement_type)) end end end return terms end -- Attach a |param= supplement defined in etymon_data.supplements (e.g. doublet=). function TreeBuilder.append_term_supplement(data_tree, entry_lang, supplement_type, param_value) local config = M.data.supplements[supplement_type] if not config then error("Unknown supplement '" .. tostring(supplement_type) .. "'.") end local terms = TreeBuilder.build_supplement_terms(entry_lang, supplement_type, param_value) if #terms == 0 then return end data_tree.supplements = data_tree.supplements or {} table.insert(data_tree.supplements, { type = supplement_type, config = config, terms = terms, }) M.tracking.record_keyword_usage(__state.toplevel_keyword_stats, supplement_type, entry_lang, entry_lang, true) end function TreeBuilder.build(lang, title, args, seen, depth, stop_recursion) seen = seen or {} depth = depth or 0 local is_toplevel = (depth == 0) if depth > __state.max_depth_reached then __state.max_depth_reached = depth end __state.total_nodes = __state.total_nodes + 1 local lang_code = lang:getCode() __state.language_count[lang_code] = (__state.language_count[lang_code] or 0) + 1 local current_id = (type(args) == "table" and args.id) or "" local key = TreeBuilder.build_key(lang, title, args) local node = { lang = lang, title = title, id = current_id, args = args, children = {}, status = M.data.STATUS.OK } if type(args) ~= "table" or seen[key] then node.status = args or M.data.STATUS.MISSING -- Mark as duplicate if we've seen this node before if seen[key] then node.is_duplicate = true node.duplicate_key = key local original_node = seen[key] if type(original_node) == "table" and original_node.children and #original_node.children > 0 then node.original_has_children = true end end return node end node.status = args.status or M.data.STATUS.OK seen[key] = node -- If stop_recursion is set, skip parsing children but check for visible children if stop_recursion then local keywords = M.data.keywords local has_visible_children = false for i = 2, #args do local param = args[i] if type(param) == "string" then local keyword_base = get_keyword_base(param) if keyword_base and keywords[keyword_base] then local _, kw_modifiers = EtymonParser.parse_keyword_modifiers(param:sub(1, 1) == ":" and param or (":" .. param)) if not keyword_invisible_in_tree(get_effective_keyword_info(keyword_base, kw_modifiers)) then has_visible_children = true break end elseif param:sub(1, 1) ~= ":" then -- It's a term (not a keyword), so there are visible children has_visible_children = true break end end end node.has_visible_children = has_visible_children return node end -- Parse args into keyword containers local current_keyword = "from" local current_keyword_modifiers = {} local current_container = nil local function ensure_container() if not current_container or current_container.keyword ~= current_keyword then local keyword_info = get_effective_keyword_info(current_keyword, current_keyword_modifiers) current_container = { keyword = current_keyword, keyword_info = keyword_info, keyword_modifiers = current_keyword_modifiers, terms = {}, } table.insert(node.children, current_container) -- Override keyword text/phrase for nominalization with <g:code> if current_keyword_modifiers.g and current_keyword == "nominalization" then local labels = get_nominalization_label_for_g(current_keyword_modifiers.g) if not labels then local codes = {} for c in pairs(M.data.nominalization_g_codes) do table.insert(codes, c) end table.sort(codes) error("Invalid <g:" .. tostring(current_keyword_modifiers.g) .. ">. Supported codes for nominalization: " .. table.concat(codes, ", ")) end current_container.keyword_info = copy_keyword_info(keyword_info) current_container.keyword_info.text = labels.text current_container.keyword_info.phrase = labels.phrase end end return current_container end for i = 2, #args do local param = args[i] if is_keyword(param) then local keyword, modifiers = EtymonParser.parse_keyword_modifiers(param) if not keyword then error("Invalid keyword '" .. param .. "'.") end current_keyword = keyword current_keyword_modifiers = modifiers current_container = nil -- Force new container for new keyword elseif type(param) == "string" and param:sub(1, 1) == ":" then reject_removed_surf_keyword(param) error("Invalid keyword '" .. param .. "'. Did you mean a valid keyword like ':bor', ':inh', etc.?") elseif type(param) == "string" then local etymon_data = EtymonParser.parse_etymon(param, lang) if etymon_data then -- Track keyword usage at top level M.tracking.record_keyword_usage(__state.toplevel_keyword_stats, current_keyword, lang, etymon_data.lang, is_toplevel) local term_node = {} local container -- Handle suppress_term (-) and unknown_term (empty or +) directly if etymon_data.suppress_term or etymon_data.unknown_term then container = ensure_container() if etymon_data.ety then local inline_args = EtymonParser.parse_inline_ety(etymon_data.ety, etymon_data.lang) inline_args.id = etymon_data.id inline_args.status = M.data.STATUS.INLINE term_node = TreeBuilder.build(etymon_data.lang, nil, inline_args, seen, depth + 1) else term_node = { lang = etymon_data.lang, children = {}, status = M.data.STATUS.OK, } end TreeBuilder.apply_etymon_fields(term_node, etymon_data) else -- Regular term: fetch arguments from page record_term_id_tracking(etymon_data) local etymon_args, page_of, resolved_etymon_id, descendants_check = DataRetriever.get_etymon_args(etymon_data, is_toplevel) -- Check for <ety> inline parameter doesn't override the scraped arguments, unless the latter are missing if etymon_data.ety then if etymon_args == M.data.STATUS.REDLINK or etymon_args == M.data.STATUS.MISSING then __state.current_page_has_inline_etymology = true if is_toplevel then __state.toplevel_has_inline_etymology = true end local inline_args = EtymonParser.parse_inline_ety(etymon_data.ety, etymon_data.lang) -- Track inline ety keywords too local inline_keyword = get_keyword(inline_args[2], true) if inline_keyword and #inline_args >= 3 then local inline_etymon = EtymonParser.parse_etymon(inline_args[3], etymon_data.lang) if inline_etymon then M.tracking.record_keyword_usage(__state.toplevel_keyword_stats, inline_keyword, etymon_data.lang, inline_etymon.lang, is_toplevel) end end inline_args.id = etymon_data.id inline_args.status = M.data.STATUS.INLINE etymon_args = inline_args term_node.page_of = __state.cached_etymon_pages[key] -- term node is on the same page as the parent else -- Scraped arguments exist, <ety> is redundant and ignored __state.current_page_has_redundant_etymology = true if is_toplevel then __state.toplevel_redundant_etymology = true end end end -- Ensure container exists before checking keyword info container = ensure_container() -- Check if current keyword has no_child_categories - if so, stop recursion local keyword_info = container.keyword_info local should_stop_recursion = (stop_recursion or (keyword_info and keyword_info.no_child_categories)) term_node = TreeBuilder.build(etymon_data.lang, etymon_data.term, etymon_args, seen, depth + 1, should_stop_recursion) term_node.target_key = Util.get_norm_lang(etymon_data.lang):getFullCode() .. ":" .. M.links.get_link_page(etymon_data.term, etymon_data.lang) term_node.etymon_id = resolved_etymon_id -- The actual etymon id when resolved via senseid term_node.page_of = page_of TreeBuilder.apply_etymon_fields(term_node, etymon_data) term_node.missing_descendants_header, term_node.missing_descendants_entry = M.descendants.get_term_sync_flags(current_keyword, term_node.status, descendants_check) end table.insert(container.terms, term_node) end end end return node end -- Convert etymology tree to JSON-serializable table local function tree_to_json(node) local obj = { term = node.title, lang = node.lang:getCode(), lang_name = node.lang:getCanonicalName(), id = (node.id and node.id ~= "") and node.id or nil, status = node.status, is_uncertain = node.is_uncertain or nil, is_duplicate = node.is_duplicate or nil, gloss = node.t, transliteration = node.tr, transcription = node.ts, alt = node.alt, g = node.g, pos = node.pos, ng = node.ng, children = {}, } for _, container in ipairs(node.children or {}) do local keyword_info = container.keyword_info if keyword_info then local container_obj = { keyword = container.keyword, keyword_label = keyword_info.text, keyword_abbrev = keyword_info.abbrev, is_group = keyword_info.is_group or nil, is_invisible = keyword_info.invisible or nil, is_uncertain = (container.keyword_modifiers and container.keyword_modifiers.unc) or nil, terms = {}, } for _, term in ipairs(container.terms or {}) do table.insert(container_obj.terms, tree_to_json(term)) end table.insert(obj.children, container_obj) end end return obj end -- Build and return the etymology data tree for a given term. function export.get_tree(lang, title, args, options) options = options or {} __state.entry_title = title __state.entry_lang_code = lang:getCode() __state.id_stats = M.tracking.new_id_stats() __state.skip_partial_etymology_category = options.skip_partial_etymology_category == true if options.validate then EtymonParser.validate(lang, args, options.id, title, options.pos, false) end local lang_code = lang:getCode() local start_index = (args[1] == lang_code) and 2 or 1 local tree_args = { [1] = lang_code, id = options.id or args.id } for i = start_index, #args do table.insert(tree_args, args[i]) end __state.cached_etymon_args[lang_code .. ":" .. title .. ":" .. (tree_args.id or "")] = tree_args local ety_data_tree = TreeBuilder.build(lang, title, tree_args) parse_tree_references(ety_data_tree) if options.json then return M.JSON.toJSON(tree_to_json(ety_data_tree)) end return ety_data_tree end -- Given a language code, page name and optionally the id= parameter, -- render the tree and only the etymology tree for the relevant page. -- Fetches and parses the corresponding {{etymon}} from the requested page, -- and any further pages needed to render the tree. -- Parameters can be passed either through the #invoke or as -- template parameters *through* an #invoke. function export.render_tree_for_etymon_on_page(frame) local frame_args = frame.args local parent_args = frame:getParent().args local langcode = frame_args[1] or parent_args[1] local pagename = frame_args[2] or parent_args[2] local id = frame_args["id"] or parent_args["id"] local display_title = frame_args["title"] or parent_args["title"] local parsed_title = mw.title.new(pagename, 0) local title if parsed_title.namespace == 0 then title = M.pages.safe_page_name(parsed_title) elseif parsed_title.namespace == 118 then title = "*" .. M.pages.safe_page_name(parsed_title) else error("Unsupported namespace for render_tree_for_etymon_on_page: " .. parsed_title.namespace) end local lang = Util.get_lang(langcode) -- Construct etymon_data for DataRetriever.get_args. local etymon_data = { lang = lang, term = title, id = id } local args, pagename = DataRetriever.get_etymon_args(etymon_data, true) if args == M.data.STATUS.MISSING then error("The etymon template was not found (language " .. langcode .. ", title '" .. title .. "'" .. (id and ", ID '" .. id .. "'" or ", no ID given") .. "). Page contents may have changed in the interim.") end local tree_title = display_title or title if lang:stripDiacritics(M.links.remove_links(tree_title)) ~= lang:stripDiacritics(M.links.remove_links(title)) then M.tracking.track_title_pagename_mismatch(lang) end reset_invocation_state() local ety_data_tree = export.get_tree(lang, tree_title, args, { validate = true, id = id, }) local output = {} table.insert(output, M.template_styles("Module:etymon/styles.css")) table.insert(output, M.tree.render({ data_tree = ety_data_tree, format_term_func = function(term, is_toplevel) return Util.format_term(term, is_toplevel, { gloss = "suppress", pos = "suppress", lit = "suppress", tree_ql = "suppress", }) end, })) return table.concat(output) end function export.main(frame) local parent_args = frame:getParent().args local args = M.parameters.process(parent_args, M.parameters_data.etymon) local lang = args[1] local etymon_args = args[2] local id = args.id local title = args.title local text = args.text local tree = args.tree local etydate = args.etydate local doublet = args.doublet local rfe = args.rfe local etystub = args.etystub local is_nonlemma = M.yesno(args.nl, false) local page_data = Util.get_page_data() if not title then title = page_data.pagename if page_data.namespace == "Reconstruction" then title = "*" .. title end end local entry_pagename = page_data.pagename if page_data.namespace == "Reconstruction" then entry_pagename = "*" .. entry_pagename end if lang:stripDiacritics(M.links.remove_links(title)) ~= lang:stripDiacritics(M.links.remove_links(entry_pagename)) then M.tracking.track_title_pagename_mismatch(lang) end local current_L2 = M.pages.get_current_L2() if current_L2 then local norm_lang = Util.get_norm_lang(lang) local norm_name = norm_lang:getCanonicalName() if current_L2 ~= norm_name and require("Module:zh").st(current_L2) ~= norm_name then -- L10N local lang_desc = lang:getCode() .. " (" .. lang:getCanonicalName() .. ")" if norm_lang:getCode() ~= lang:getCode() then lang_desc = lang_desc .. ", normalized to " .. norm_lang:getCode() .. " (" .. norm_name .. ")" end error("Language '" .. lang_desc .. "' does not match the L2 header (" .. current_L2 .. ").") end end reset_invocation_state() local ety_data_tree = export.get_tree(lang, title, etymon_args, { validate = true, pos = args.pos, id = id, json = args.json, skip_partial_etymology_category = is_nonlemma, }) if args.json then return ety_data_tree end local output = {} local text_allowlist_mode = M.text_allowed.default_mode or "off" if text and text_allowlist_mode ~= "off" and not Util.is_text_param_allowed_for_lang(lang) then local msg = "Etymology texts (parameter <code>text=</code>) are not allowed for " .. lang:getFullName() .. "; see [[Template:etymon#Text allowlist|Template:etymon § Text allowlist]] for the list of languages that may use the <code>text=</code> parameter." if text_allowlist_mode == "error" then error(msg) else Util.add_warning(msg, true) end end local lang_exc = Util.get_lang_exception(lang) if lang_exc and lang_exc.disallow then local disallow = lang_exc.disallow local error_text = " for " .. lang:getFullName() if disallow.ref then error_text = error_text .. "; see " .. disallow.ref else error_text = error_text .. "." end if tree and disallow.tree then error("Etymology trees are not allowed" .. error_text) end if text and disallow.text then error("Etymology texts are not allowed" .. error_text) end end if etydate then local etydate_param_mods = { ref = { list = true, type = "references", allow_holes = true }, refn = { list = true, allow_holes = true }, nocap = { type = "boolean" }, } local function generate_etydate_obj(etydate_text) local etydate_specs = {} for spec in etydate_text:gmatch("[^,]+") do table.insert(etydate_specs, mw.text.trim(spec)) end return { [1] = etydate_specs } end local parsed_etydate = M.parse_utilities.parse_inline_modifiers(etydate, { param_mods = etydate_param_mods, generate_obj = generate_etydate_obj }) local etydate_args = { [1] = parsed_etydate[1], nocap = parsed_etydate.nocap or false, } ety_data_tree.supplements = ety_data_tree.supplements or {} table.insert(ety_data_tree.supplements, { type = "etydate", etydate_text = M.etydate.format_etydate(etydate_args, { omit_refs = true }), etydate_refs = (parsed_etydate.ref and #parsed_etydate.ref > 0) and parsed_etydate.ref or nil, }) end TreeBuilder.append_term_supplement(ety_data_tree, lang, "doublet", doublet) if ety_data_tree.supplements then parse_tree_references(ety_data_tree) end local has_visible_children = node_has_visible_tree_children(ety_data_tree) -- Suppress trees for multiword entries and one-step chains local visible_tree_depth = get_visible_tree_depth(ety_data_tree) local is_trivial_tree = visible_tree_depth <= 2 local is_multiword = title:find("%s") ~= nil or title:find("_") ~= nil if tree and (is_multiword or is_trivial_tree) then tree = false end if tree then table.insert(output, M.template_styles("Module:etymon/styles.css")) table.insert(output, M.tree.render({ data_tree = ety_data_tree, format_term_func = function(term, is_toplevel) return Util.format_term(term, is_toplevel, { gloss = "suppress", pos = "suppress", lit = "suppress", tree_ql = "suppress", }) end, })) end local tree_disallowed = lang_exc and lang_exc.disallow and lang_exc.disallow.tree local ety_tree_json = M.JSON.toJSON(tree_to_json(ety_data_tree)) local anchor = M.anchors.etymonid(lang, id, { no_tree = args.notree, title = title, empty_tree = (not has_visible_children) or tree_disallowed, ety_tree_json = ety_tree_json, }) table.insert(output, anchor) local text_stop_lang_missing = nil if text then local max_depth, stop_at_blue_link, stop_at_lang, stop_at_lang_or_bluelink if text == "++" then max_depth, stop_at_blue_link = false, false elseif text == "+" then max_depth, stop_at_blue_link = 1, false elseif text == "*" then max_depth, stop_at_blue_link = false, true elseif text:match("^:[^*]+%*$") then -- Stop at a specific language OR first bluelink after it, e.g., ":ota*" -- If the target language is a redlink, continue to the first bluelink local lang_code = text:match("^:([^*]+)%*$") if lang_code and lang_code ~= "" then local lang_obj = Util.get_lang(lang_code, true) if lang_obj then stop_at_lang_or_bluelink = lang_code else Util.add_warning('Invalid language code "' .. lang_code .. '" in text parameter. Showing full chain instead.') max_depth, stop_at_blue_link = false, false end else Util.add_warning('Empty language code in text parameter. Showing full chain instead.') max_depth, stop_at_blue_link = false, false end elseif text:sub(1, 1) == ":" then -- Stop at a specific language, e.g., ":ar" stops at first Arabic term local lang_code = text:sub(2) if lang_code ~= "" then -- Validate the language code local lang_obj = Util.get_lang(lang_code, true) if lang_obj then stop_at_lang = lang_code else Util.add_warning('Invalid language code "' .. lang_code .. '" in text parameter. Showing full chain instead.') max_depth, stop_at_blue_link = false, false -- default to ++ end else Util.add_warning('Empty language code in text parameter. Showing full chain instead.') max_depth, stop_at_blue_link = false, false -- default to ++ end else local num = tonumber(text) if num and num >= 1 then max_depth, stop_at_blue_link = num, false else error('Invalid text value "' .. text .. '". Valid values are: "++" (full chain), "+" (first step only), "*" (until first blue link), a number (max steps), ":lang" (stop at language), or ":lang*" (stop at language or first bluelink if redlink)') end end local text_output, text_render_meta = M.text.render({ data_tree = ety_data_tree, format_term_func = Util.format_term, lang_matches_stop_code = Util.lang_matches_stop_code, max_depth = max_depth, stop_at_blue_link = stop_at_blue_link, curr_page = page_data.pagename, nodot = args.nodot, dot = args.dot, stop_at_lang = stop_at_lang, stop_at_lang_or_bluelink = stop_at_lang_or_bluelink, }) table.insert(output, text_output) if stop_at_lang and text_render_meta and not text_render_meta.stop_lang_reached then M.tracking.track_text_stop_lang_missing(lang, stop_at_lang) text_stop_lang_missing = stop_at_lang end end if rfe then table.insert(output, Util.expand_request_template(frame, "rfe", rfe, lang:getCode())) end if etystub then table.insert(output, Util.expand_request_template(frame, "etystub", etystub, lang:getCode())) end if is_nonlemma then table.insert(output, " " .. frame:expandTemplate({ title = "nonlemma", args = {}, })) end local categories = {} if Util.is_content_page() then M.tracking.track_tree_metrics({ max_depth_reached = __state.max_depth_reached, total_nodes = __state.total_nodes, language_count = __state.language_count, lang = lang, }) categories = M.categories.build({ data_tree = ety_data_tree, page_lang = lang, available_etymon_ids = __state.available_etymon_ids, senseid_parent_etymon = __state.senseid_parent_etymon, get_norm_lang_func = Util.get_norm_lang, lang_exc = lang_exc, suppress_categories = lang_exc and lang_exc.suppress_categories, nocat = args.nocat, tree = tree, text = text, exnihilo = args.exnihilo, toplevel_has_inline_etymology = __state.toplevel_has_inline_etymology, toplevel_redundant_etymology = __state.toplevel_redundant_etymology, toplevel_idless_etymon = __state.toplevel_idless_etymon, has_mismatched_id = __state.has_mismatched_id, linked_page_multiple_etymons_idless = __state.linked_page_multiple_etymons_idless, linked_page_partial_etymology_sections = __state.linked_page_partial_etymology_sections, text_stop_lang_missing = text_stop_lang_missing, }) M.tracking.track_keywords(__state.toplevel_keyword_stats, lang) M.tracking.track_page_id(lang, id) M.tracking.track_ids(__state.id_stats, lang) end if #categories > 0 then table.insert(output, M.categories.format(categories, lang)) end if __state.warnings then for i, warning in ipairs(__state.warnings) do table.insert(output, (i == 1 and "\n" or "") .. warning .. "\n") end end return table.concat(output) end return export gb4td6ofa2o0se8372kcgx5nd3u3ddl Module:Category tree/wiktionary maintenance 828 2725010 9813905 9696891 2026-06-15T19:43:12Z TongcyDai 53191 9813905 Scribunto text/plain local raw_categories = {} local raw_handlers = {} ----------------------------------------------------------------------------- -- -- -- RAW CATEGORIES -- -- -- ----------------------------------------------------------------------------- raw_categories["維基詞典維護"] = { description = "Categories containing pages that are being tracked for attention and improvement by editors.", breadcrumb = "維護", parents = "維基詞典", } raw_categories["空分類"] = { topright = "{{shortcut|CAT:EC}}", description = "沒有成員的分類。", additional = [=[Categories are placed here by [[Module:category tree]] when they contain no pages or subcategories. Empty categories are not necessarily a problem, but they can clutter up their parent categories, or become orphaned if the structure of the category tree changes. This category therefore helps track down such cases, and allows them to be cleaned up. Because of the way the wiki software works, categories will appear here for a while afterwards if they were empty at first but had entries added to them later. This can be fixed by simply performing a "null edit" on the category page: edit the page, and save without making any changes. (Alternatively, use the "null edit" option provided by the "purge tab" [[Special:Preferences#mw-prefsection-gadgets|gadget]].) This can be avoided by adding entries to categories before creating them. It also helps to create categories from the "bottom up": start at the lowest level that has entries, then create its parent categories, then the parent categories of that, and so on.]=], parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["標題不正確的分類"] = { description = "Categories with names that do not match the expected form within the category tree.", additional = [=[This usually happens when additional parameters have been given to {{tl|auto cat}} that don't match the name of the category, or when there is a problem with capitalization or spacing in the category name. ==參見== * [[:Category:未在分類樹中定義的分類]]]=], parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["未在分類樹中定義的分類"] = { description = "使用了 {{tl|auto cat}} 但未註冊於分類樹資料模組中的分類。", additional = [=[請查看這些分類中顯示的錯誤框以取得更多資訊。 ==參見== * [[:Category:標題不正確的分類]]]=], parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["使用精簡模板的頁面"] = { description = "至少使用一個精簡模板的頁面。", additional = "參見[[:Category:無lua模板]].", breadcrumb = "使用精簡模板", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["有冗餘行內etymon的頁面"] = { description = "頁面中的行內詞源詞條存在,且 ID 與該詞源詞條頁面上的 ID 相符。", additional = "應檢查並簡化這些頁面,以避免重複指定。", breadcrumb = "冗餘行內詞源", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["使用無ID etymon的頁面"] = { description = "頁面使用了 {{tl|etymon}} 但未指定 ID,且目標頁面中該語言只有一個 etymon 模板。", additional = "應更新這些頁面以指定明確的 ID,以免日後新增更多詞源時產生歧義。", breadcrumb = "無 ID 詞源", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["有紅鏈行內詞源的頁面"] = { description = "頁面在另一個 {{tl|etymon}} 內部使用了 {{tl|etymon}},且目標詞條為紅鏈。", additional = "待目標詞條建立後,應檢查這些頁面。", breadcrumb = "紅鏈行內詞源", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["有etymon的頁面"] = { description = "使用 {{tl|etymon}} 模板的頁面。", breadcrumb = "Etymon", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["有詞源樹的頁面"] = { description = "顯示由 {{tl|etymon}} 模板產生的詞源樹的頁面。", breadcrumb = "詞源樹", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["詞源文字停止語言不在鏈上的頁面"] = { description = "Pages where {{tl|etymon}} is used with {{para|text}} set to stop at a language (e.g. {{code|text=:el}}) but that language never appears in the rendered etymology chain.", additional = "These should be reviewed and the {{para|text}} parameter corrected.", breadcrumb = "Etymology text stop language not in chain", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["帶有製表字元的頁面"] = { description = "Wikitext 中包含製表字元的頁面。", additional = "這些頁面中的製表字元應該被刪除或替換為空格,因為它們違反了[[WT:NORM]]。", breadcrumb = "製表字元", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["語言標題順序錯誤的頁面"] = { description = "語言詞條的標題順序錯誤的頁面。", additional = "Level 2 language headings should be in alphabetical order, except for Translingual and English, which go at the top (in that order).", breadcrumb = "語言標題順序錯誤", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["帶有非標準語言標題的頁面"] = { description = "Pages which contain a level 2 heading which does not match any language's canonical name.", additional = "The level 2 language heading for each language should always be that language's canonical name.", breadcrumb = "非標準語言標題", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["包含不需要的L1標題的頁面"] = { description = "包含不需要的L1標題的頁面", additional = "L1標題維基詞典內容頁面,僅因使用者錯誤或故意破壞而出現。", breadcrumb = "不需要的L1標題", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["帶有原始三重括號模板參數的頁面"] = { description = "包含三重括號形式的原始模板參數的頁面。", additional = "三重大括號模板參數(例如{{code|<nowiki>{{{arg}}}</nowiki>}})被用於模板中,因為當頁面被嵌入時,它們會被相關的模板參數取代。儘管理論上它們可以在任何頁面上使用,但目前它們在內容命名空間中沒有合法用途。\n\n此分類中的模板參數通常是由於拼寫錯誤或當 {{tl|subst:}} 與不應替換的模板一起使用時出現的。", breadcrumb = "Raw template arguments", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["存在DEFAULTSORT衝突的頁面"] = { topright = "{{shortcut|CAT:DEFAULTSORT}}", description = "魔術字 {{tl|DEFAULTSORT:}} 被多次使用且有不同值的頁面。", additional = "在某些(但不是全部)情況下,這會導致頁面上顯示警告。在絕大多數情況下,應該<u>刪除</u> wikitext 中明確使用的 {{tl|DEFAULTSORT:}}。這是因為 {{tl|head}} 模板會對其自動處理。在 wikitext 中應使用它的唯一情況是在條目(即主命名空間或重構命名空間)之外。" .. "\n\n亦請參見[[:Category:存在DISPLAYTITLE衝突的頁面]]。", breadcrumb = "DEFAULTSORT衝突", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["存在DISPLAYTITLE衝突的頁面"] = { topright = "{{shortcut|CAT:DISPLAYTITLE}}", description = "魔術字 {{tl|DISPLAYTITLE:}} 被多次使用且有不同值的頁面。", additional = "在某些(但不是全部)情況下,這會導致頁面上顯示警告。在絕大多數情況下,應該<u>刪除</u> wikitext 中明確使用的 {{tl|DISPLAYTITLE:}}。這是因為 {{tl|head}} 模板會對其自動處理。在 wikitext 中應使用它的唯一情況是在條目(即主命名空間或重構命名空間)之外。" .. "\n\n亦請參見[[:Category:存在DEFAULTSORT衝突的頁面]]。", breadcrumb = "DISPLAYTITLE衝突", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["帶有原始排序鍵的頁面"] = { description = "使用帶有原始類別的排序鍵的頁面。", additional = "例如,{{code|<nowiki>[[Category:國際音標符號|B]]</nowiki>}}。" .. "\n\n它們應優先用分類模板替換,因為它們是硬編碼的,而且會覆蓋頁面的 {{tl|DEFAULTSORT:}} 值。如果分類的排序方案有任何變化,這會導致頁面沒有辦法被集中更改。\n\n" .. "相較之下,沒有排序鍵的原始分類問題較小,因為它們會使用 {{tl|DEFAULTSORT:}} 值;這可以集中控制,而且設計上不偏向任何語言,因此避免了不同編者對同一分類使用多種不同排序方案的問題。不過,這些分類仍應以分類模板取代,因為可能還有其他特定語言的排序規則無法套用。", breadcrumb = "原始排序鍵", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["有脚本错误的页面"] = { topright = "{{shortcut|CAT:E|CAT:ERR|CAT:ERROR}}", description = "[[Wiktionary:Scribunto|Lua]]-{zh-hans:模块; zh-hant:模組}-中存在錯誤的頁面。", additional = "如果頁面長期駐留於此,則可能應在<!--[[Wiktionary:GP|the Grease Pit]]-->[[Wiktionary:啤酒館|啤酒館]]報告錯誤。記憶體錯誤是這些錯誤的常見來源;請參閱[[:en:Wiktionary:Lua memory errors|Wiktionary:Lua記憶體錯誤]]中的討論。" .. "\n\n由於-{zh-hans:软件; zh-hant:軟體}-在模板或-{zh-hans:模块; zh-hant:模組}-發生變更時不會立即更新頁面,因此此處列出的錯誤可能已修復。請確保錯誤仍然存在,然後再報告問題。您可以藉由執行[[meta:Help:Dummy_edit#Null_edit|空編輯]](編輯並儲存頁面而不進行實際變更)來執行此操作。如果錯誤消失,則表示已修復。" .. "\n\n<u>您可以使用[https://zh.wiktionary.org/wiki/Special:ApiSandbox#action=purge&format=json&forcelinkupdate=1&generator=categorymembers&utf8=1&formatversion=2&gcmtitle=Category%3A有脚本错误的页面&gcmlimit=20 此-{zh-hans:链接; zh-hant:連結}-] 並按「送出請求」,一次點擊即可清除此分類中最多20個頁面的-{zh-hans:缓存; zh-hant:快取}-。</u>此數字最多可調整為 5,000,但超過 30-100 的任何數字都可能會導致逾時(取決於頁面大小)。" .. "\n\n此類別的內容由[[Template:maintenance category]]控制。目前設定為將討論頁面、使用者頁面以及使用者沙盒模組和模板本放在單獨的分類中。" .. "\n\n另請參閱[[:Category:有解析器函數錯誤的頁面]]。", breadcrumb = "腳本錯誤", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["有解析器函數錯誤的頁面"] = { topright = "{{shortcut|CAT:PFE}}", description = "[[mw:Help:Extension:ParserFunctions|解析器函數]]魔術字有錯誤的頁面。", additional = "這類魔術字的例子包括 {{tl|#expr:}} 和 {{tl|#time:}} 等。如果頁面長期駐留於此,則可能應在<!--[[Wiktionary:GP|the Grease Pit]]-->[[Wiktionary:啤酒館|啤酒館]]報告錯誤。記憶體錯誤是這些錯誤的常見來源;請參閱[[:en:Wiktionary:Lua memory errors|Wiktionary:Lua記憶體錯誤]]中的討論。" .. "\n\n由於-{zh-hans:软件; zh-hant:軟體}-在模板或-{zh-hans:模块; zh-hant:模組}-發生變更時不會立即更新頁面,因此此處列出的錯誤可能已修復。請確保錯誤仍然存在,然後再報告問題。您可以藉由執行[[meta:Help:Dummy_edit#Null_edit|空編輯]](編輯並儲存頁面而不進行實際變更)來執行此操作。如果錯誤消失,則表示已修復。" .. "\n\n<u>您可以使用[https://zh.wiktionary.org/wiki/Special:ApiSandbox#action=purge&format=json&forcelinkupdate=1&generator=categorymembers&utf8=1&formatversion=2&gcmtitle=Category%3A有解析器函數錯誤的頁面&gcmlimit=20 此-{zh-hans:链接; zh-hant:連結}-] 並按「送出請求」,一次點擊即可清除此分類中最多20個頁面的-{zh-hans:缓存; zh-hant:快取}-。</u>此數字最多可調整為 5,000,但超過 30-100 的任何數字都可能會導致逾時(取決於頁面大小)。" .. "\n\n此類別的內容由[[Template:maintenance category]]控制。目前設定為將討論頁面、使用者頁面以及使用者沙盒模組和模板本放在單獨的分類中。" .. "\n\n另請參閱[[:Category:有脚本错误的页面]]。", breadcrumb = "解析器函數錯誤", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["移動、合併和拆分請求"] = { description = "已標記請求移動、合併或拆分的頁面和分類。", breadcrumb = "移動、合併和拆分", parents = {"維基詞典維護", "請求"}, can_be_empty = true, hidden = true, } raw_categories["待合併的頁面"] = { description = "被 {{tl|merge}} 模板標記為待合併的頁面。", parents = {"移動、合併和拆分請求"}, can_be_empty = true, } raw_categories["待移動的頁面"] = { description = "被 {{tl|move}} 模板標記為待移動的頁面。", parents = {"移動、合併和拆分請求"}, can_be_empty = true, } raw_categories["待拆分的頁面"] = { description = "被 {{tl|split}} 模板標記為待拆分的頁面。", parents = {"移動、合併和拆分請求"}, can_be_empty = true, } raw_categories["呼叫模板時使用錯誤參數的頁面"] = { description = "呼叫模板時使用無法辨識的參數的頁面。", breadcrumb = "錯誤模板參數", parents = "維基詞典維護", can_be_empty = true, } raw_categories["使用catfix的頁面"] = { description = "使用了<code>[[MediaWiki:Gadget-catfix.js|catfix]]</code>小工具的頁面。", additional = "此過程透過添加特定語言的格式來處理指向語言特定分類條目的連結,並將這些連結指向條目中該語言的對應章節。", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["調用Template:minitoc的頁面"] = { description = "透過調用 {{tl|minitoc}} 顯示迷你目錄的頁面}}.", additional = "其用於包含許多條目的超大頁面,以協助導航。", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["調用Template:auto cat的分類"] = { description = "已透過調用 {{tl|auto cat}} 放置在其他分類中的分類。", additional = "這是對分類進行子分類的首選方式。設立此分類的主要原因是為了透過使用反向搜索(例如使用 {{code|-incategory:\"{{PAGENAME}}\"}} 限定搜索)來協助找出未使用 {{tl|auto cat}} 的分類。", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["Categories with categories using raw markup"] = { description = "Categories that have been placed in another category using raw wiki markup (e.g. {{code|<nowiki>[[Category:Wiktionary]]</nowiki>}}). They should be added to the [[Module:category tree|category tree]] data instead.", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["使用棄用來源標籤的頁面"] = { description = "使用 [[mw:Extension:SyntaxHighlight|SyntaxHighlight]] 擴充功能以及舊版 {{wt|source}} 標籤而不是 {{wt|syntaxhighlight}} 的頁面。", breadcrumb = "棄用來源標籤", parents = {"維基詞典維護"}, can_be_empty = true, hidden = true, } table.insert(raw_handlers, function(data) local template_type = data.category:match("^呼叫(.+)模板時使用錯誤參數的頁面$") if template_type then local parents = {{ name = "呼叫模板時使用錯誤參數的頁面", sort = template_type == "general use" and "*" or template_type, }} local lang = require("Module:languages").getByCanonicalName(template_type, nil, true) if lang then table.insert(parents, {name = "詞條維護", is_label = true, lang = lang:getCode()}) end return { lang = lang and lang:getCode() or nil, description = "呼叫" .. template_type .. "模板時使用錯誤參數的頁面。", parents = parents, breadcrumb = template_type, } end end) table.insert(raw_handlers, function(data) local template = data.category:match("^呼叫(.+)時使用錯誤參數的頁面$") function get_template_language(template_name) -- convert "R:es:DRAE" and "RQ:es:DRAE" to "es-DRAE" for language matching template_name = template_name:gsub("^RQ?:", "") template_name = template_name:gsub(":", "-") -- Check if the template name starts with a hyphenated language code local lang possible_language_code = template_name:match("^([a-z][a-z][a-z]?-[a-z][a-z][a-z])-") if possible_language_code ~= nil then lang = require("Module:languages").getByCode(possible_language_code) end -- Check if the template name starts with a two or three character language code if lang == nil then possible_language_code = template_name:match("^([a-z][a-z][a-z]?)-") if possible_language_code ~= nil then lang = require("Module:languages").getByCode(possible_language_code) end end return lang end if template then template_name_without_namespace = template:gsub("^Template:", "") lang = get_template_language(template_name_without_namespace) local template_type if lang == nil then template_type = "general use" else template_type = lang:getCanonicalName() end return { lang = lang and lang:getCode() or nil, description = "呼叫[[" .. template .. "]]時使用無法辨識的參數的頁面。", additional = "請檢查這些模板調用並更正或刪除錯誤的參數。", breadcrumb = template, parents = {{ name = "呼叫" .. template_type .. "模板時使用錯誤參數的頁面", sort = template_name_without_namespace, }}, can_be_empty = true, hidden = true, } end end) return {RAW_CATEGORIES = raw_categories, RAW_HANDLERS = raw_handlers} gxqr6eliomljn47k1xm27apdn6q9nj9 9814076 9813905 2026-06-15T20:18:16Z TongcyDai 53191 9814076 Scribunto text/plain local raw_categories = {} local raw_handlers = {} ----------------------------------------------------------------------------- -- -- -- RAW CATEGORIES -- -- -- ----------------------------------------------------------------------------- raw_categories["維基詞典維護"] = { description = "Categories containing pages that are being tracked for attention and improvement by editors.", breadcrumb = "維護", parents = "維基詞典", } raw_categories["空分類"] = { topright = "{{shortcut|CAT:EC}}", description = "沒有成員的分類。", additional = [=[Categories are placed here by [[Module:category tree]] when they contain no pages or subcategories. Empty categories are not necessarily a problem, but they can clutter up their parent categories, or become orphaned if the structure of the category tree changes. This category therefore helps track down such cases, and allows them to be cleaned up. Because of the way the wiki software works, categories will appear here for a while afterwards if they were empty at first but had entries added to them later. This can be fixed by simply performing a "null edit" on the category page: edit the page, and save without making any changes. (Alternatively, use the "null edit" option provided by the "purge tab" [[Special:Preferences#mw-prefsection-gadgets|gadget]].) This can be avoided by adding entries to categories before creating them. It also helps to create categories from the "bottom up": start at the lowest level that has entries, then create its parent categories, then the parent categories of that, and so on.]=], parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["標題不正確的分類"] = { description = "Categories with names that do not match the expected form within the category tree.", additional = [=[This usually happens when additional parameters have been given to {{tl|auto cat}} that don't match the name of the category, or when there is a problem with capitalization or spacing in the category name. ==參見== * [[:Category:未在分類樹中定義的分類]]]=], parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["未在分類樹中定義的分類"] = { description = "使用了 {{tl|auto cat}} 但未註冊於分類樹資料模組中的分類。", additional = [=[請查看這些分類中顯示的錯誤框以取得更多資訊。 ==參見== * [[:Category:標題不正確的分類]]]=], parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["使用精簡模板的頁面"] = { description = "至少使用一個精簡模板的頁面。", additional = "參見[[:Category:無lua模板]].", breadcrumb = "使用精簡模板", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["有冗餘行內etymon的頁面"] = { description = "頁面中的行內詞源詞條存在,且 ID 與該詞源詞條頁面上的 ID 相符。", additional = "應檢查並簡化這些頁面,以避免重複指定。", breadcrumb = "冗餘行內詞源", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["使用無ID之etymon的頁面"] = { description = "頁面使用了 {{tl|etymon}} 但未指定 ID,且目標頁面中該語言只有一個 etymon 模板。", additional = "應更新這些頁面以指定明確的 ID,以免日後新增更多詞源時產生歧義。", breadcrumb = "無 ID 詞源", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["有紅鏈行內詞源的頁面"] = { description = "頁面在另一個 {{tl|etymon}} 內部使用了 {{tl|etymon}},且目標詞條為紅鏈。", additional = "待目標詞條建立後,應檢查這些頁面。", breadcrumb = "紅鏈行內詞源", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["有etymon的頁面"] = { description = "使用 {{tl|etymon}} 模板的頁面。", breadcrumb = "Etymon", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["有詞源樹的頁面"] = { description = "顯示由 {{tl|etymon}} 模板產生的詞源樹的頁面。", breadcrumb = "詞源樹", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["詞源文字停止語言不在鏈上的頁面"] = { description = "Pages where {{tl|etymon}} is used with {{para|text}} set to stop at a language (e.g. {{code|text=:el}}) but that language never appears in the rendered etymology chain.", additional = "These should be reviewed and the {{para|text}} parameter corrected.", breadcrumb = "Etymology text stop language not in chain", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["帶有製表字元的頁面"] = { description = "Wikitext 中包含製表字元的頁面。", additional = "這些頁面中的製表字元應該被刪除或替換為空格,因為它們違反了[[WT:NORM]]。", breadcrumb = "製表字元", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["語言標題順序錯誤的頁面"] = { description = "語言詞條的標題順序錯誤的頁面。", additional = "Level 2 language headings should be in alphabetical order, except for Translingual and English, which go at the top (in that order).", breadcrumb = "語言標題順序錯誤", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["帶有非標準語言標題的頁面"] = { description = "Pages which contain a level 2 heading which does not match any language's canonical name.", additional = "The level 2 language heading for each language should always be that language's canonical name.", breadcrumb = "非標準語言標題", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["包含不需要的L1標題的頁面"] = { description = "包含不需要的L1標題的頁面", additional = "L1標題維基詞典內容頁面,僅因使用者錯誤或故意破壞而出現。", breadcrumb = "不需要的L1標題", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["帶有原始三重括號模板參數的頁面"] = { description = "包含三重括號形式的原始模板參數的頁面。", additional = "三重大括號模板參數(例如{{code|<nowiki>{{{arg}}}</nowiki>}})被用於模板中,因為當頁面被嵌入時,它們會被相關的模板參數取代。儘管理論上它們可以在任何頁面上使用,但目前它們在內容命名空間中沒有合法用途。\n\n此分類中的模板參數通常是由於拼寫錯誤或當 {{tl|subst:}} 與不應替換的模板一起使用時出現的。", breadcrumb = "Raw template arguments", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["存在DEFAULTSORT衝突的頁面"] = { topright = "{{shortcut|CAT:DEFAULTSORT}}", description = "魔術字 {{tl|DEFAULTSORT:}} 被多次使用且有不同值的頁面。", additional = "在某些(但不是全部)情況下,這會導致頁面上顯示警告。在絕大多數情況下,應該<u>刪除</u> wikitext 中明確使用的 {{tl|DEFAULTSORT:}}。這是因為 {{tl|head}} 模板會對其自動處理。在 wikitext 中應使用它的唯一情況是在條目(即主命名空間或重構命名空間)之外。" .. "\n\n亦請參見[[:Category:存在DISPLAYTITLE衝突的頁面]]。", breadcrumb = "DEFAULTSORT衝突", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["存在DISPLAYTITLE衝突的頁面"] = { topright = "{{shortcut|CAT:DISPLAYTITLE}}", description = "魔術字 {{tl|DISPLAYTITLE:}} 被多次使用且有不同值的頁面。", additional = "在某些(但不是全部)情況下,這會導致頁面上顯示警告。在絕大多數情況下,應該<u>刪除</u> wikitext 中明確使用的 {{tl|DISPLAYTITLE:}}。這是因為 {{tl|head}} 模板會對其自動處理。在 wikitext 中應使用它的唯一情況是在條目(即主命名空間或重構命名空間)之外。" .. "\n\n亦請參見[[:Category:存在DEFAULTSORT衝突的頁面]]。", breadcrumb = "DISPLAYTITLE衝突", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["帶有原始排序鍵的頁面"] = { description = "使用帶有原始類別的排序鍵的頁面。", additional = "例如,{{code|<nowiki>[[Category:國際音標符號|B]]</nowiki>}}。" .. "\n\n它們應優先用分類模板替換,因為它們是硬編碼的,而且會覆蓋頁面的 {{tl|DEFAULTSORT:}} 值。如果分類的排序方案有任何變化,這會導致頁面沒有辦法被集中更改。\n\n" .. "相較之下,沒有排序鍵的原始分類問題較小,因為它們會使用 {{tl|DEFAULTSORT:}} 值;這可以集中控制,而且設計上不偏向任何語言,因此避免了不同編者對同一分類使用多種不同排序方案的問題。不過,這些分類仍應以分類模板取代,因為可能還有其他特定語言的排序規則無法套用。", breadcrumb = "原始排序鍵", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["有脚本错误的页面"] = { topright = "{{shortcut|CAT:E|CAT:ERR|CAT:ERROR}}", description = "[[Wiktionary:Scribunto|Lua]]-{zh-hans:模块; zh-hant:模組}-中存在錯誤的頁面。", additional = "如果頁面長期駐留於此,則可能應在<!--[[Wiktionary:GP|the Grease Pit]]-->[[Wiktionary:啤酒館|啤酒館]]報告錯誤。記憶體錯誤是這些錯誤的常見來源;請參閱[[:en:Wiktionary:Lua memory errors|Wiktionary:Lua記憶體錯誤]]中的討論。" .. "\n\n由於-{zh-hans:软件; zh-hant:軟體}-在模板或-{zh-hans:模块; zh-hant:模組}-發生變更時不會立即更新頁面,因此此處列出的錯誤可能已修復。請確保錯誤仍然存在,然後再報告問題。您可以藉由執行[[meta:Help:Dummy_edit#Null_edit|空編輯]](編輯並儲存頁面而不進行實際變更)來執行此操作。如果錯誤消失,則表示已修復。" .. "\n\n<u>您可以使用[https://zh.wiktionary.org/wiki/Special:ApiSandbox#action=purge&format=json&forcelinkupdate=1&generator=categorymembers&utf8=1&formatversion=2&gcmtitle=Category%3A有脚本错误的页面&gcmlimit=20 此-{zh-hans:链接; zh-hant:連結}-] 並按「送出請求」,一次點擊即可清除此分類中最多20個頁面的-{zh-hans:缓存; zh-hant:快取}-。</u>此數字最多可調整為 5,000,但超過 30-100 的任何數字都可能會導致逾時(取決於頁面大小)。" .. "\n\n此類別的內容由[[Template:maintenance category]]控制。目前設定為將討論頁面、使用者頁面以及使用者沙盒模組和模板本放在單獨的分類中。" .. "\n\n另請參閱[[:Category:有解析器函數錯誤的頁面]]。", breadcrumb = "腳本錯誤", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["有解析器函數錯誤的頁面"] = { topright = "{{shortcut|CAT:PFE}}", description = "[[mw:Help:Extension:ParserFunctions|解析器函數]]魔術字有錯誤的頁面。", additional = "這類魔術字的例子包括 {{tl|#expr:}} 和 {{tl|#time:}} 等。如果頁面長期駐留於此,則可能應在<!--[[Wiktionary:GP|the Grease Pit]]-->[[Wiktionary:啤酒館|啤酒館]]報告錯誤。記憶體錯誤是這些錯誤的常見來源;請參閱[[:en:Wiktionary:Lua memory errors|Wiktionary:Lua記憶體錯誤]]中的討論。" .. "\n\n由於-{zh-hans:软件; zh-hant:軟體}-在模板或-{zh-hans:模块; zh-hant:模組}-發生變更時不會立即更新頁面,因此此處列出的錯誤可能已修復。請確保錯誤仍然存在,然後再報告問題。您可以藉由執行[[meta:Help:Dummy_edit#Null_edit|空編輯]](編輯並儲存頁面而不進行實際變更)來執行此操作。如果錯誤消失,則表示已修復。" .. "\n\n<u>您可以使用[https://zh.wiktionary.org/wiki/Special:ApiSandbox#action=purge&format=json&forcelinkupdate=1&generator=categorymembers&utf8=1&formatversion=2&gcmtitle=Category%3A有解析器函數錯誤的頁面&gcmlimit=20 此-{zh-hans:链接; zh-hant:連結}-] 並按「送出請求」,一次點擊即可清除此分類中最多20個頁面的-{zh-hans:缓存; zh-hant:快取}-。</u>此數字最多可調整為 5,000,但超過 30-100 的任何數字都可能會導致逾時(取決於頁面大小)。" .. "\n\n此類別的內容由[[Template:maintenance category]]控制。目前設定為將討論頁面、使用者頁面以及使用者沙盒模組和模板本放在單獨的分類中。" .. "\n\n另請參閱[[:Category:有脚本错误的页面]]。", breadcrumb = "解析器函數錯誤", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["移動、合併和拆分請求"] = { description = "已標記請求移動、合併或拆分的頁面和分類。", breadcrumb = "移動、合併和拆分", parents = {"維基詞典維護", "請求"}, can_be_empty = true, hidden = true, } raw_categories["待合併的頁面"] = { description = "被 {{tl|merge}} 模板標記為待合併的頁面。", parents = {"移動、合併和拆分請求"}, can_be_empty = true, } raw_categories["待移動的頁面"] = { description = "被 {{tl|move}} 模板標記為待移動的頁面。", parents = {"移動、合併和拆分請求"}, can_be_empty = true, } raw_categories["待拆分的頁面"] = { description = "被 {{tl|split}} 模板標記為待拆分的頁面。", parents = {"移動、合併和拆分請求"}, can_be_empty = true, } raw_categories["呼叫模板時使用錯誤參數的頁面"] = { description = "呼叫模板時使用無法辨識的參數的頁面。", breadcrumb = "錯誤模板參數", parents = "維基詞典維護", can_be_empty = true, } raw_categories["使用catfix的頁面"] = { description = "使用了<code>[[MediaWiki:Gadget-catfix.js|catfix]]</code>小工具的頁面。", additional = "此過程透過添加特定語言的格式來處理指向語言特定分類條目的連結,並將這些連結指向條目中該語言的對應章節。", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["調用Template:minitoc的頁面"] = { description = "透過調用 {{tl|minitoc}} 顯示迷你目錄的頁面}}.", additional = "其用於包含許多條目的超大頁面,以協助導航。", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["調用Template:auto cat的分類"] = { description = "已透過調用 {{tl|auto cat}} 放置在其他分類中的分類。", additional = "這是對分類進行子分類的首選方式。設立此分類的主要原因是為了透過使用反向搜索(例如使用 {{code|-incategory:\"{{PAGENAME}}\"}} 限定搜索)來協助找出未使用 {{tl|auto cat}} 的分類。", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["Categories with categories using raw markup"] = { description = "Categories that have been placed in another category using raw wiki markup (e.g. {{code|<nowiki>[[Category:Wiktionary]]</nowiki>}}). They should be added to the [[Module:category tree|category tree]] data instead.", parents = "維基詞典維護", can_be_empty = true, hidden = true, } raw_categories["使用棄用來源標籤的頁面"] = { description = "使用 [[mw:Extension:SyntaxHighlight|SyntaxHighlight]] 擴充功能以及舊版 {{wt|source}} 標籤而不是 {{wt|syntaxhighlight}} 的頁面。", breadcrumb = "棄用來源標籤", parents = {"維基詞典維護"}, can_be_empty = true, hidden = true, } table.insert(raw_handlers, function(data) local template_type = data.category:match("^呼叫(.+)模板時使用錯誤參數的頁面$") if template_type then local parents = {{ name = "呼叫模板時使用錯誤參數的頁面", sort = template_type == "general use" and "*" or template_type, }} local lang = require("Module:languages").getByCanonicalName(template_type, nil, true) if lang then table.insert(parents, {name = "詞條維護", is_label = true, lang = lang:getCode()}) end return { lang = lang and lang:getCode() or nil, description = "呼叫" .. template_type .. "模板時使用錯誤參數的頁面。", parents = parents, breadcrumb = template_type, } end end) table.insert(raw_handlers, function(data) local template = data.category:match("^呼叫(.+)時使用錯誤參數的頁面$") function get_template_language(template_name) -- convert "R:es:DRAE" and "RQ:es:DRAE" to "es-DRAE" for language matching template_name = template_name:gsub("^RQ?:", "") template_name = template_name:gsub(":", "-") -- Check if the template name starts with a hyphenated language code local lang possible_language_code = template_name:match("^([a-z][a-z][a-z]?-[a-z][a-z][a-z])-") if possible_language_code ~= nil then lang = require("Module:languages").getByCode(possible_language_code) end -- Check if the template name starts with a two or three character language code if lang == nil then possible_language_code = template_name:match("^([a-z][a-z][a-z]?)-") if possible_language_code ~= nil then lang = require("Module:languages").getByCode(possible_language_code) end end return lang end if template then template_name_without_namespace = template:gsub("^Template:", "") lang = get_template_language(template_name_without_namespace) local template_type if lang == nil then template_type = "general use" else template_type = lang:getCanonicalName() end return { lang = lang and lang:getCode() or nil, description = "呼叫[[" .. template .. "]]時使用無法辨識的參數的頁面。", additional = "請檢查這些模板調用並更正或刪除錯誤的參數。", breadcrumb = template, parents = {{ name = "呼叫" .. template_type .. "模板時使用錯誤參數的頁面", sort = template_name_without_namespace, }}, can_be_empty = true, hidden = true, } end end) return {RAW_CATEGORIES = raw_categories, RAW_HANDLERS = raw_handlers} 3junfphyy3xe9tla0heh4fds5s97tbn borbĕ 0 2954739 9813844 9050896 2026-06-15T17:18:26Z TongcyDai 53191 9813844 wikitext text/x-wiki ==伊斯特羅-羅馬尼亞語== ===詞源=== {{inh+|ruo|la|barba}}。對比{{cog|ro|barbă}}。 ===名詞=== {{head|ruo|名詞|g=f}} # [[鬍子]] ====相關詞彙==== * {{l|ruo|bărbåt}} {{C|ruo|鬍鬚}} 0eialf1m4l7wboxs9iwqkjjvrf3yh3i Module:Etymon/tree 828 3236728 9813898 9625928 2026-06-15T18:33:39Z TongcyDai 53191 9813898 Scribunto text/plain local export = {} local html_create = mw.html.create local max = math.max local function create_vertical_connector() return html_create('span'):addClass('etytree-connector-vertical') end local function create_abbr(text, title, glossary) local abbr = html_create('abbr') :attr('title', title) :wikitext(text) if glossary then abbr = '[[Appendix:Glossary#' .. glossary .. '|' .. tostring(abbr) .. ']]' end return html_create('span'):addClass('etytree-label'):node(abbr) end local function create_uncertainty_marker() return html_create('abbr') :addClass('etytree-unc') :attr('title', 'uncertain') :wikitext('?') end local function create_label_container() return html_create('span'):addClass('etytree-label-container') end local function invisible_in_tree(inv) return inv == "all" or inv == true or inv == "tree" end local function render_label(term_block, keyword_info, keyword_modifiers, is_uncertain, is_group_child, term_labels) -- Skip label when invisible in tree local has_label = keyword_info and keyword_info.abbrev and not is_group_child and not invisible_in_tree(keyword_info.invisible) -- For group children, keyword uncertainty is shown on the group label, not on individual terms local keyword_uncertain = keyword_modifiers and keyword_modifiers.unc and not is_group_child local show_term_uncertainty = is_uncertain -- Check if we have term-specific labels local has_term_labels = term_labels and #term_labels > 0 if not has_label and not show_term_uncertainty and not keyword_uncertain and not has_term_labels then return end local label_span = create_label_container() if has_label then local glossary_title = keyword_info.glossary and keyword_info.glossary:gsub("_", " ") or keyword_info.abbrev label_span:node(create_abbr( keyword_info.abbrev, glossary_title, keyword_info.glossary )) -- Show uncertainty marker if term or keyword is uncertain if show_term_uncertainty or keyword_uncertain then label_span:node(create_uncertainty_marker()) end else -- No label, but term or keyword is uncertain if show_term_uncertainty or keyword_uncertain then label_span:node(create_uncertainty_marker()) end end -- Add term-specific labels if has_term_labels then for _, label_info in ipairs(term_labels) do label_span:node(create_abbr(label_info.abbrev, label_info.title, label_info.glossary)) end end term_block:node(label_span) end local function render_term_block(node_data, format_term_func, is_toplevel) local link_content = html_create() link_content :tag('span') :addClass('etyl') :wikitext(node_data.lang:getCanonicalName()) :done() local term_text = format_term_func(node_data, is_toplevel) if term_text then link_content :wikitext(' ') :tag('span') :addClass('etytree-term') :wikitext(term_text) :done() end local block = html_create('div'):addClass('etytree-block'):node(link_content) -- Add duplicate styling if this is a duplicate node if node_data.is_duplicate then block:addClass('etytree-duplicate') end return block end local function create_dotted_connector() return html_create('span'):addClass('etytree-connector-dotted') end -- Create an L-shaped connector for nodes with hidden ancestry (duplicate or no_child_categories) local function create_duplicate_connector() local container = html_create('div'):addClass('etytree-duplicate-connector') local inner_wrapper = container:tag('div') inner_wrapper:tag('span'):addClass('etytree-dup-right') inner_wrapper:tag('span'):addClass('etytree-dup-horiz') inner_wrapper:tag('span'):addClass('etytree-dup-left') inner_wrapper:tag('span'):addClass('etytree-dup-arrow'):wikitext('▲') return container end local function render_group_label(connecting_line, keyword_info, keyword_modifiers) local has_abbrev = keyword_info and keyword_info.abbrev local keyword_uncertain = keyword_modifiers and keyword_modifiers.unc -- Nothing to show if no abbrev and no uncertainty if not has_abbrev and not keyword_uncertain then return end local label_span = connecting_line:tag('span'):addClass('etytree-group-label') if has_abbrev then local glossary_title = keyword_info.glossary and keyword_info.glossary:gsub("_", " ") or keyword_info.abbrev label_span:node(create_abbr(keyword_info.abbrev, glossary_title, nil)) end -- Add uncertainty marker if keyword has <unc> modifier if keyword_uncertain then label_span:node(create_uncertainty_marker()) end end local function add_branch_connector(column, index, total) if index == 1 then column:tag('span'):addClass('etytree-branch-left') elseif index == total then column:tag('span'):addClass('etytree-branch-right') else column:tag('span'):addClass('etytree-connector-vertical-short') column:tag('span'):addClass('etytree-branch-mid') end end function export.render(opts) opts = opts or {} local data_tree = opts.data_tree local format_term_func = opts.format_term_func -- Forward declaration local render_term -- Render a container (keyword + its terms) local function render_container(container, is_toplevel) local keyword_info = container.keyword_info local keyword_modifiers = container.keyword_modifiers or {} local is_group = keyword_info and keyword_info.is_group local terms = container.terms or {} -- Skip container entirely only when invisible = "all" (or true) if keyword_info and invisible_in_tree(keyword_info.invisible) then return nil, 0, 0 end if #terms == 0 then return nil, 0, 0 end -- For no_child_categories keywords (calque, semantic loan, etc.), don't render term's children local skip_child_rendering = keyword_info and keyword_info.no_child_categories -- Render each term in the container local rendered_terms = {} local container_height = 0 local container_width = 0 for _, term in ipairs(terms) do -- Collect term-specific labels local term_labels = {} if term.bor then table.insert(term_labels, { abbrev = "bor.", title = "borrowed", glossary = "loanword" }) end if term.slbor then table.insert(term_labels, { abbrev = "slbor.", title = "semi-learned borrowing", glossary = "semi-learned_borrowing" }) end if term.lbor then table.insert(term_labels, { abbrev = "lbor.", title = "learned borrowing", glossary = "learned_borrowing" }) end local term_tree, term_height, term_width = render_term(term, keyword_info, keyword_modifiers, is_group, false, skip_child_rendering, term_labels) table.insert(rendered_terms, { tree = term_tree, height = term_height, width = term_width, is_uncertain = term.is_uncertain, }) container_height = max(container_height, term_height) container_width = container_width + term_width end local rendered_html local has_connector = false if #rendered_terms == 1 then -- Single term: just return it directly rendered_html = rendered_terms[1].tree container_height = rendered_terms[1].height container_width = rendered_terms[1].width else -- Multiple terms: group them together local subtree_container = html_create('div'):addClass('etytree-branch-group') for i, term_data in ipairs(rendered_terms) do local column = html_create('div'):addClass('etytree-branch') column:node(term_data.tree) add_branch_connector(column, i, #rendered_terms) subtree_container:node(column) end local connecting_line = create_vertical_connector() -- Add group label for group keywords if is_group and not invisible_in_tree(keyword_info.invisible) then render_group_label(connecting_line, keyword_info, keyword_modifiers) end rendered_html = html_create() :node(subtree_container) :node(connecting_line) has_connector = true end return rendered_html, container_height, container_width, has_connector end -- Render a term node render_term = function(term_node, keyword_info, keyword_modifiers, is_group_child, is_toplevel_term, skip_child_rendering, term_labels) local tree_width, tree_height = 0, 0 local subtrees = {} -- Process term's children (which are containers) local has_hidden_children = false if not term_node.is_duplicate and not skip_child_rendering then for _, container in ipairs(term_node.children or {}) do local subtree, sub_height, sub_width, subtree_has_connector = render_container(container, is_toplevel_term) if subtree then table.insert(subtrees, { tree = subtree, height = sub_height, width = sub_width, has_connector = subtree_has_connector, }) tree_height = max(tree_height, sub_height) tree_width = tree_width + sub_width end end elseif skip_child_rendering then -- Check if there are any visible children -- When stop_recursion is true, children aren't parsed, but has_visible_children flag is set if term_node.has_visible_children then has_hidden_children = true elseif term_node.children and #term_node.children > 0 then -- Fallback: check parsed children for visibility for _, container in ipairs(term_node.children) do local child_keyword_info = container.keyword_info if not (child_keyword_info and (child_keyword_info.invisible == "all" or child_keyword_info.invisible == true)) then has_hidden_children = true break end end end end local is_toplevel_node = (keyword_info == nil) local term_block = render_term_block(term_node, format_term_func, is_toplevel_node) render_label(term_block, keyword_info, keyword_modifiers, term_node.is_uncertain, is_group_child, term_labels or {}) local term_html = html_create() if #subtrees == 0 then local show_connector = (term_node.is_duplicate and term_node.original_has_children) or has_hidden_children if show_connector then term_html:node(create_duplicate_connector()) end term_html:node(term_block) tree_width = tree_width + 1 elseif #subtrees == 1 then term_html:node(subtrees[1].tree) if not subtrees[1].has_connector then term_html:node(create_vertical_connector()) end term_html:node(term_block) else -- Multiple containers: need to merge them local subtree_container = html_create('div'):addClass('etytree-branch-group') for i, subtree_data in ipairs(subtrees) do local column = html_create('div'):addClass('etytree-branch') column:node(subtree_data.tree) add_branch_connector(column, i, #subtrees) subtree_container:node(column) end local connecting_line = create_vertical_connector() term_html :node(subtree_container) :node(connecting_line) :node(term_block) end return term_html, tree_height + 1, tree_width end local final_tree, final_height, final_width = render_term(data_tree, nil, nil, false, true) local container = html_create('div') :addClass('etytree-body') :node(final_tree) return tostring(html_create('div') :addClass('etytree NavFrame') :attr('data-etytree-height', final_height) :attr('data-etytree-width', final_width) :tag('div') :addClass('NavHead') :tag('div') :wikitext('詞源樹') :done() :done() :tag('div') :addClass('NavContent') :node(container) :done()) end return export e4e5civc7k5kk5ow66usgk7fke1ltpw Module:Etymon/text 828 3236729 9813897 9625902 2026-06-15T18:33:03Z TongcyDai 53191 9813897 Scribunto text/plain local export = {} local loader = require("Module:module loader") local M = loader.init({ require = { en_utilities = "Module:en-utilities", references = "Module:references", senseno = "Module:senseno", }, loadData = { data = "Module:etymon/data", }, }) function export.render(opts) opts = opts or {} local data_tree = opts.data_tree local format_term_func = opts.format_term_func local max_depth = opts.max_depth local stop_at_blue_link = opts.stop_at_blue_link local curr_page = opts.curr_page local nodot = opts.nodot and opts.nodot ~= "" and opts.nodot ~= "0" local function explicit_dot_override() if opts.dot == nil or opts.dot == false then return nil end local d = mw.text.trim(tostring(opts.dot)) if d == "" or d == "." then return nil end return d end local dot_override = explicit_dot_override() local function find_deepest_last_part(tree) if not tree or not tree.container_parts or #tree.container_parts == 0 then return nil end local last_part = tree.container_parts[#tree.container_parts] if last_part.continuation then return find_deepest_last_part(last_part.continuation) end return last_part end local function apply_final_punctuation_override(tree, punct) if not tree or punct == nil then return end local last_part = find_deepest_last_part(tree) if last_part then last_part.punctuation = punct end end local function apply_closing_punctuation_override(tree, is_last_segment) if not is_last_segment then return end local punct if nodot then punct = "" elseif dot_override ~= nil then punct = dot_override else return end apply_final_punctuation_override(tree, punct) end local function has_supplements() return data_tree.supplements and #data_tree.supplements > 0 end local stop_at_lang = opts.stop_at_lang local stop_at_lang_or_bluelink = opts.stop_at_lang_or_bluelink local lang_matches_stop_code = opts.lang_matches_stop_code local stop_lang_reached = false local function term_matches_stop_code(term_lang, stop_code) if lang_matches_stop_code then return lang_matches_stop_code(term_lang, stop_code) end return term_lang and term_lang:getCode() == stop_code end local children = data_tree.children local function has_text_supplements() if not data_tree.supplements then return false end for _, supplement in ipairs(data_tree.supplements) do if supplement.type == "doublet" and supplement.terms and #supplement.terms > 0 then return true end if supplement.type == "etydate" and supplement.etydate_text and supplement.etydate_text ~= "" then return true end end return false end if (not children or #children == 0) and not has_text_supplements() then if stop_at_lang then return "", { stop_lang_reached = false } end return "" end local top_l2 = data_tree.lang:getFullCode() .. ":" .. curr_page local entry_lang = data_tree.lang local function lowercase_glossary_link_display(wikitext) return wikitext:gsub("(%[%[Appendix:Glossary#[^|]+|)([^%]])([^%]]*)%]%]", function(prefix, first, rest) return prefix .. mw.ustring.lower(first) .. rest .. "]]" end) end local function format_sl_senseid_intro(senseid, keyword_text, keyword_phrase, capitalize_senseno, is_uncertain) local senseids = mw.text.split(senseid, "!!", true) local senseno_parts = {} for i, id in ipairs(senseids) do id = mw.text.trim(id) if id ~= "" then table.insert(senseno_parts, M.senseno.link_text(entry_lang:getCode(), { id }, { title = curr_page, uc = (i == 1 and capitalize_senseno) or nil, })) end end if #senseno_parts == 0 then return keyword_text, keyword_phrase end local senseno_text = mw.text.listToText(senseno_parts) local glossary_link = (keyword_text or ""):gsub(" from$", "") local glossary_lower = lowercase_glossary_link_display(glossary_link) if #senseno_parts > 1 then local plural_link = glossary_lower:gsub("|semantic loan%]%]", "|semantic loans]]") if is_uncertain then return senseno_text .. " are possibly " .. plural_link .. " from", senseno_text .. " are possibly semantic loans from" end return senseno_text .. " are " .. plural_link .. " from", senseno_text .. " are semantic loans from" end if is_uncertain then return senseno_text .. " is possibly a " .. glossary_lower .. " from", senseno_text .. " is possibly a semantic loan from" end return senseno_text .. " is a " .. glossary_lower .. " from", senseno_text .. " is a semantic loan from" end -- Get refs for a term local function get_term_refs(term, term_lang, depth) local term_l2 = term_lang:getFullCode() .. ":" .. curr_page if term.parsed_ref and (depth == 1 or term_l2 == top_l2) then return M.references.format_references(term.parsed_ref) end return "" end -- Build a text part for a single term local function build_term_part(term, current_lang, depth) local text = "" local new_lang = current_lang local lang_changed = term.lang:getCanonicalName() ~= current_lang:getCanonicalName() -- Use centralized format_term (handles suppress_term, unknown_term, and regular terms) local term_text = format_term_func(term) if lang_changed then new_lang = term.lang if term_text then text = term.lang:makeWikipediaLink() .. " " .. term_text elseif term.is_family then text = M.en_utilities.add_indefinite_article(term.lang:makeWikipediaLink() .. " language", false) else -- suppress_term with language change: show only language text = term.lang:makeWikipediaLink() end else text = term_text or "" end return { type = "term", text = text, refs = get_term_refs(term, new_lang, depth), lang = new_lang, is_uncertain = term.is_uncertain or false, } end -- Build text parts for a container local function build_container_part(container, node, depth, allow_continuation, fallback_to_bluelink) local keyword_info = container.keyword_info local keyword_modifiers = container.keyword_modifiers or {} local terms = container.terms or {} if not keyword_info or #terms == 0 then return nil end -- Skip building text part when invisible in text ("all", "text", or true) local inv = keyword_info.invisible if inv == "all" or inv == true or inv == "text" then return nil end local is_group = keyword_info.is_group local keyword_uncertain = keyword_modifiers.unc or false -- Determine text and phrase (allowing for overrides) local intro_text = keyword_info.text local phrase = keyword_info.phrase local new_sentence = keyword_info.new_sentence or false if keyword_modifiers.text then -- User-provided override: assumed to be lowercase phrase = keyword_modifiers.text -- Auto-capitalize for intro text (e.g., "derived from" -> "Derived from") intro_text = mw.ustring.upper(phrase:sub(1, 1)) .. phrase:sub(2) end -- Get keyword references local keyword_refs = "" if keyword_modifiers.ref then local parsed_keyword_refs = M.references.parse_references(keyword_modifiers.ref) if parsed_keyword_refs and parsed_keyword_refs ~= "" then keyword_refs = M.references.format_references(parsed_keyword_refs) end end -- Build term parts local term_parts = {} local current_lang = node.lang for _, term in ipairs(terms) do local term_part = build_term_part(term, current_lang, depth) if term_part.text ~= "" then table.insert(term_parts, term_part) current_lang = term_part.lang end end -- Check uncertainty distribution local uncertain_count = 0 for _, term_part in ipairs(term_parts) do if term_part.is_uncertain then uncertain_count = uncertain_count + 1 end end -- If keyword itself is uncertain, treat all terms as uncertain local all_uncertain = keyword_uncertain or (uncertain_count == #term_parts and #term_parts > 0) if is_group and uncertain_count > 0 then all_uncertain = true end local has_mixed_uncertainty = not all_uncertain and uncertain_count > 0 -- Check if there are more steps (only if continuation is allowed) local has_more_steps = false local next_node = nil local first_term = terms[1] -- Check if we should stop at this language local reached_stop_lang = false if stop_at_lang then for _, term in ipairs(terms) do if term.lang and term_matches_stop_code(term.lang, stop_at_lang) then reached_stop_lang = true stop_lang_reached = true break end end elseif stop_at_lang_or_bluelink then -- Check if we should stop at this language, or at the first bluelink if it's a redlink for _, term in ipairs(terms) do if term.lang and term_matches_stop_code(term.lang, stop_at_lang_or_bluelink) then if first_term.status == M.data.STATUS.OK then reached_stop_lang = true else fallback_to_bluelink = true end break end end if fallback_to_bluelink and first_term.status == M.data.STATUS.OK then reached_stop_lang = true end end if allow_continuation and not is_group and #terms == 1 and not reached_stop_lang then local first_term_children = first_term.children if first_term_children and #first_term_children > 0 and (not max_depth or depth < max_depth) then local next_container = first_term_children[1] local next_keyword_info = next_container and next_container.keyword_info if not (next_keyword_info and next_keyword_info.invisible) then if stop_at_blue_link then if first_term.status ~= M.data.STATUS.OK then has_more_steps = true next_node = first_term end else has_more_steps = true next_node = first_term end end end end return { type = "container", intro_text = intro_text, phrase = phrase, senseid = keyword_modifiers.senseid, sl_keyword_text = keyword_modifiers.senseid and keyword_info.text or nil, is_uncertain = all_uncertain, has_mixed_uncertainty = has_mixed_uncertainty, term_parts = term_parts, is_group = is_group, has_more_steps = has_more_steps, next_node = next_node, new_sentence = new_sentence, separate_clause = keyword_info.separate_clause or false, conj = keyword_modifiers.conj or keyword_info.default_conj, -- custom conjunction: "and", "or", "and/or", etc. lit = keyword_modifiers.lit, keyword_refs = keyword_refs, fallback_to_bluelink = fallback_to_bluelink, } end -- Build the full tree of text parts local function build_text_tree(node, depth, allow_continuation, fallback_to_bluelink) local containers = node.children if not containers or #containers == 0 then return nil end local container_parts = {} -- Count containers that get a text part (invisible in text = "all", "text", or true) local visible_container_count = 0 for _, container in ipairs(containers) do local keyword_info = container.keyword_info local inv = keyword_info and keyword_info.invisible if not (inv == "all" or inv == true or inv == "text") then visible_container_count = visible_container_count + 1 end end -- If there are multiple visible containers at this level, don't allow continuation for any local has_multiple_containers = visible_container_count > 1 local should_allow_continuation = allow_continuation and not has_multiple_containers for _, container in ipairs(containers) do local part = build_container_part(container, node, depth, should_allow_continuation, fallback_to_bluelink) if part then -- Recursively build children if there are more steps if part.has_more_steps and part.next_node then part.continuation = build_text_tree(part.next_node, depth + 1, true, part.fallback_to_bluelink) end table.insert(container_parts, part) end end if #container_parts == 0 then return nil end return { type = "tree", container_parts = container_parts, depth = depth, } end -- Check if tree has mixed joining types local function container_join_kind(part) if part.type == "etydate" then return nil end if part.new_sentence or part.separate_clause then return "supplement" end return "or_join" end local function check_complexity(tree) if not tree then return nil end local parts = tree.container_parts if #parts <= 1 then -- Single container if parts[1] and parts[1].continuation then return check_complexity(parts[1].continuation) end return nil end -- Or-join containers must precede any supplemental (calque-like / influence) containers. local seen_supplement = false for _, part in ipairs(parts) do local kind = container_join_kind(part) if kind == "supplement" then seen_supplement = true elseif kind == "or_join" and seen_supplement then error( "Cannot generate etymology text: a main derivation step cannot follow a calque, semantic loan, or influence clause in the same list.") end end for _, part in ipairs(parts) do if part.continuation then check_complexity(part.continuation) end end return nil end -- Analyze tree and assign punctuation local function analyze_punctuation(tree, is_toplevel) if not tree then return end local parts = tree.container_parts local num_parts = #parts for i, part in ipairs(parts) do local is_first = (i == 1) local is_last = (i == num_parts) local next_part = parts[i + 1] -- Analyze term punctuation within container if part.term_parts then -- Terms use Oxford comma style: "A, B, or C" -- Custom conjunction can be specified via conj modifier (e.g., "and/or", "and") local num_terms = #part.term_parts local term_conj = part.conj or "or" -- default to "or" for j, term_part in ipairs(part.term_parts) do local is_last_term = (j == num_terms) if part.is_group then -- Group: terms joined with " + " term_part.joiner = is_last_term and "" or " + " elseif num_terms > 1 then -- Multiple terms not in a group: Oxford comma style if is_last_term then term_part.joiner = "" elseif j == num_terms - 1 then -- Second to last term if num_terms == 2 then term_part.joiner = " " .. term_conj .. " " else term_part.joiner = ", " .. term_conj .. " " end else term_part.joiner = ", " end else -- Single term term_part.joiner = "" end end end -- Determine container punctuation based on what comes next if part.continuation then -- Has continuation part.punctuation = "," -- Recursively analyze continuation analyze_punctuation(part.continuation, false) elseif is_last then -- Last container at this level (may still continue in part.continuation) part.punctuation = "。" elseif next_part and next_part.new_sentence then -- Next container starts a new sentence part.punctuation = "。" elseif next_part and next_part.separate_clause then -- Next container is a separate clause part.punctuation = "," else -- Not last, next is joined with "or" -- Containers use repeated "or" style: "A, or B, or C" part.punctuation = "," end -- Determine joiner to next part -- Containers use repeated "or" style: ", or" between each -- Custom conjunction can be specified via conj modifier local container_conj = part.conj or "or" -- default to "or" if not is_last then if next_part and next_part.new_sentence then -- New sentence part.joiner = " " elseif next_part and next_part.separate_clause then -- Separate clause part.joiner = " " else -- Same sentence: use custom conjunction or default "or" part.joiner = " " .. container_conj .. " " end else part.joiner = "" end -- Determine intro formatting -- Capitalize if first at top level, OR if this container starts a new sentence if (is_first and is_toplevel) or part.new_sentence then part.intro_capitalized = true part.use_full_intro = true else part.intro_capitalized = false part.use_full_intro = false end end end -- Assemble text from analyzed tree local function assemble_text(tree) if not tree then return "" end local result = "" for i, part in ipairs(tree.container_parts) do if part.type == "etydate" then result = result .. part.etydate_text if part.punctuation and part.punctuation ~= "" then result = result .. part.punctuation end if part.etydate_refs and next(part.etydate_refs) then result = result .. M.references.format_references(part.etydate_refs) end if part.joiner and part.joiner ~= "" then result = result .. part.joiner end else -- Build intro local intro_text = part.intro_text local phrase = part.phrase if part.senseid then intro_text, phrase = format_sl_senseid_intro( part.senseid, part.sl_keyword_text, part.phrase, part.intro_capitalized, part.is_uncertain ) end local intro if part.use_full_intro then if part.is_uncertain and not part.senseid then intro = "Possibly " .. phrase else intro = intro_text end else if part.is_uncertain and not part.senseid then intro = "possibly " .. phrase else intro = phrase end end result = result .. intro -- Build terms if #part.term_parts > 0 then result = result for j, term_part in ipairs(part.term_parts) do -- Add "possibly" prefix for uncertain terms when there's mixed uncertainty if part.has_mixed_uncertainty and term_part.is_uncertain then result = result .. "可能" end result = result .. term_part.text -- Add joiner between terms if term_part.joiner ~= "" then -- Check if joiner contains comma (punctuation) local comma_pos = term_part.joiner:find(",") if comma_pos then -- Add up to and including comma result = result .. term_part.joiner:sub(1, comma_pos) -- Add refs after comma if term_part.refs ~= "" then result = result .. term_part.refs end -- Add rest of joiner result = result .. term_part.joiner:sub(comma_pos + 1) else -- No comma, add refs before joiner if term_part.refs ~= "" then result = result .. term_part.refs end result = result .. term_part.joiner end end end -- For the last term, add punctuation then refs local last_term = part.term_parts[#part.term_parts] if last_term and last_term.joiner == "" then if part.punctuation ~= "" then -- If we have literal text, punctuation goes AFTER it if part.lit then -- Add refs first (attached to term) if last_term.refs ~= "" then result = result .. last_term.refs end -- Add keyword refs if part.keyword_refs and part.keyword_refs ~= "" then result = result .. part.keyword_refs end -- Add literal text result = result .. ",字面意思“" .. part.lit .. "”" -- Add punctuation result = result .. part.punctuation else -- Normal behavior: punctuation then refs result = result .. part.punctuation if last_term.refs ~= "" then result = result .. last_term.refs end -- Add keyword refs after term refs if part.keyword_refs and part.keyword_refs ~= "" then result = result .. part.keyword_refs end end else -- No punctuation if last_term.refs ~= "" then result = result .. last_term.refs end -- Add keyword refs if part.keyword_refs and part.keyword_refs ~= "" then result = result .. part.keyword_refs end -- Add literal text if present (even without punctuation) if part.lit then result = result .. ",字面意思“" .. part.lit .. "”" end end end else -- No terms, just add punctuation and keyword refs if part.punctuation ~= "" then result = result .. part.punctuation end -- Add keyword refs even when there are no terms if part.keyword_refs and part.keyword_refs ~= "" then result = result .. part.keyword_refs end end -- Add continuation if part.continuation then result = result .. " " .. assemble_text(part.continuation) end -- Add joiner to next container if part.joiner ~= "" then result = result .. part.joiner end end end return result end local text_tree = build_text_tree(data_tree, 1, true, false) -- Supplements (doublets, etydate, …) are rendered outside the main derivation text tree. local function assemble_supplements() if not data_tree.supplements then return "" end local chunks = {} local pending_trees = {} local function flush_pending_trees() local num = #pending_trees for i, supplement_tree in ipairs(pending_trees) do analyze_punctuation(supplement_tree, true) apply_closing_punctuation_override(supplement_tree, i == num) local chunk = assemble_text(supplement_tree) if chunk ~= "" then table.insert(chunks, chunk) end end pending_trees = {} end for _, supplement in ipairs(data_tree.supplements) do local supplement_tree if supplement.type == "doublet" and supplement.config and supplement.terms and #supplement.terms > 0 then local config = supplement.config local term_parts = {} for _, term in ipairs(supplement.terms) do local term_part = build_term_part(term, entry_lang, 1) if term_part.text ~= "" then table.insert(term_parts, term_part) end end if #term_parts == 0 then supplement_tree = nil else supplement_tree = { type = "tree", container_parts = { { type = "doublet", intro_text = config.text, phrase = config.phrase, term_parts = term_parts, conj = config.default_conj or "and", new_sentence = true, }, }, depth = 1, } end elseif supplement.type == "etydate" and supplement.etydate_text and supplement.etydate_text ~= "" then supplement_tree = { type = "tree", container_parts = { { type = "etydate", etydate_text = supplement.etydate_text, etydate_refs = supplement.etydate_refs, new_sentence = true, }, }, depth = 1, } end if supplement_tree then table.insert(pending_trees, supplement_tree) end end flush_pending_trees() return table.concat(chunks, " ") end if not text_tree then local supplement_text = assemble_supplements() if supplement_text == "" then if stop_at_lang then return "", { stop_lang_reached = false } end return "" end if stop_at_lang then return supplement_text, { stop_lang_reached = false } end return supplement_text end local rendered = "" if text_tree then check_complexity(text_tree) analyze_punctuation(text_tree, true) apply_closing_punctuation_override(text_tree, not has_supplements()) rendered = assemble_text(text_tree) end local supplement_text = assemble_supplements() if supplement_text ~= "" then if rendered ~= "" then rendered = rendered .. " " .. supplement_text else rendered = supplement_text end end if stop_at_lang then return rendered, { stop_lang_reached = stop_lang_reached } end return rendered end return export j2qwgmtpf1ajsn29643mx9odfcbjc2p Module:Etymon/categories 828 3238897 9813887 9740942 2026-06-15T18:08:18Z TongcyDai 53191 9813887 Scribunto text/plain local export = {} local M = require("Module:module loader").init({ require = { etymology = "Module:etymology", affix = "Module:affix", etymology_specialized = "Module:etymology/specialized", utilities = "Module:utilities", }, loadData = { data = "Module:etymon/data", }, }) local borrowing_name_map = { -- L10N ["borrowed"] = "借詞", ["learned"] = "古典借詞", ["semi-learned"] = "半接觸借詞", ["orthographic"] = "形譯詞", ["unadapted"] = "非同化借詞", ["calque"] = "仿譯詞", ["partial-calque"] = "部分仿譯詞", ["semantic-loan"] = "意譯詞", ["terms inherited"] = "繼承詞", } -- Evaluate whether a keyword is transitive for a given term local function is_transitive(transitive_mode, page_lang, term_lang) if transitive_mode == M.data.TRANSITIVE.ALWAYS then return true elseif transitive_mode == M.data.TRANSITIVE.NEVER then return false elseif transitive_mode == M.data.TRANSITIVE.CROSS_LANG then return page_lang:getCode() ~= term_lang:getCode() elseif transitive_mode == M.data.TRANSITIVE.CROSS_LANG_NO_INTERNAL_SOURCE then return page_lang:getCode() ~= term_lang:getCode() end error("Unknown transitive mode: " .. tostring(transitive_mode)) end -- Get keyword config with language-specific overrides local function get_keyword_config(keyword, lang_exc) local base_config = M.data.keywords[keyword] if not base_config then return nil -- Invalid keyword end local overrides = lang_exc and lang_exc.keyword_overrides and lang_exc.keyword_overrides[keyword] if not overrides then return base_config end -- Merge overrides into base config local merged = {} for k, v in pairs(base_config) do merged[k] = v end for k, v in pairs(overrides) do merged[k] = v end return merged end function export.get_cat_name(source) local _, cat_name = M.etymology.get_display_and_cat_name(source, true) return cat_name end -- Normalize affix type aliases local aftype_aliases = { ["pre"] = "prefix", ["suf"] = "suffix", ["in"] = "infix", ["inter"] = "interfix", ["circum"] = "circumfix", ["naf"] = "non-affix", ["root"] = "non-affix", } local function add_category(categories, cat_name, sort_key, sort_base) if categories[cat_name] == nil then categories[cat_name] = { sort_key = sort_key, sort_base = sort_base, } return end local existing = categories[cat_name] if existing.sort_key == nil and sort_key ~= nil then existing.sort_key = sort_key end if existing.sort_base == nil and sort_base ~= nil then existing.sort_base = sort_base end end -- Collect affix categories from top-level group containers local function collect_affix_categories(node, page_lang, available_etymon_ids, senseid_parent_etymon, lang_exc) local parts = {} local part_index = 1 for _, container in ipairs(node.children or {}) do local config = container.keyword_info if config and config.affix_categories then for _, term in ipairs(container.terms or {}) do if not term.unknown_term then local part_data = { term = term.title, tr = term.tr, ts = term.ts, alt = term.alt, itemno = part_index, orig_index = part_index } -- Determine affix type: explicit aftype > pos=root > auto-detect local aftype = term.aftype if aftype then aftype = aftype_aliases[aftype] or aftype part_data.type = aftype elseif term.args and term.args.pos and term.args.pos == "root" then part_data.type = "non-affix" end if term.lang:getCode() ~= page_lang:getCode() then part_data.lang = term.lang end local target_ids = available_etymon_ids[term.target_key] local has_multiple_ids = target_ids and #target_ids > 1 local id_exists_in_disambiguation = false local matched_id = nil -- Count available senseids for the target page local senseid_count = 0 local target_prefix = term.target_key .. ":" if senseid_parent_etymon then for key, _ in pairs(senseid_parent_etymon) do if key:sub(1, #target_prefix) == target_prefix then senseid_count = senseid_count + 1 end end end local has_multiple_senseids = senseid_count > 1 if term.id then -- Check if user provided a valid senseid local senseid_key = term.target_key .. ":" .. term.id if senseid_parent_etymon and senseid_parent_etymon[senseid_key] then if has_multiple_senseids then -- Ambiguous senseid: use senseid matched_id = term.id id_exists_in_disambiguation = true elseif has_multiple_ids then -- Unique senseid but ambiguous etymon: use etymon ID matched_id = term.etymon_id or term.id id_exists_in_disambiguation = true end else -- Check if user provided a valid etymon ID if has_multiple_ids and target_ids then for _, id_data in ipairs(target_ids) do local stored_id = type(id_data) == "table" and id_data.id or id_data if stored_id == term.id then -- Ambiguous etymon: use etymon ID id_exists_in_disambiguation = true matched_id = term.id break end end end -- Fallback: check resolved etymon_id (e.g. from previous steps) if not id_exists_in_disambiguation and has_multiple_ids and term.etymon_id and target_ids then for _, id_data in ipairs(target_ids) do local stored_id = type(id_data) == "table" and id_data.id or id_data if stored_id == term.etymon_id then id_exists_in_disambiguation = true matched_id = term.etymon_id break end end end end end -- Use the matched ID if found if term.override or id_exists_in_disambiguation then part_data.id = matched_id or term.id end table.insert(parts, part_data) part_index = part_index + 1 end end end end if #parts == 0 then return {} end local affix_data = { lang = page_lang, parts = parts, pos = "詞", -- L10N sort_key = nil, } if #parts == 1 then affix_data.allow_no_affixes_or_compounds = true end local affix_categories = M.affix.get_affix_categories_only(affix_data) local result = {} for _, cat in ipairs(affix_categories) do if type(cat) == "table" then table.insert(result, { cat = cat.cat, sort_key = cat.sort_key, sort_base = cat.sort_base }) else table.insert(result, { cat = cat }) end end return result end local function lang_is_source(page_lang, source) return page_lang:getCode() == source:getCode() or page_lang:hasParent(source) end local function is_borrowing_keyword_config(config) return config and (config.borrowing_type or config.specialized_borrowing) end local function add_reborrow_category(categories, page_lang) local lang_name = page_lang:getFullName() add_category(categories, "藉由外語借回的" .. lang_name .. "詞") -- L10N end local function borrow_returns_to_page_lang(page_lang, source, in_foreign_branch) if not in_foreign_branch then return false end if source:getFullCode() == page_lang:getFullCode() then return true end return page_lang:hasParent(source) end local function node_borrows_from_lang(node, page_lang, visited, in_foreign_branch) visited = visited or {} if not node or visited[node] then return false end visited[node] = true if node.is_duplicate then if node.duplicate_of then return node_borrows_from_lang(node.duplicate_of, page_lang, visited, in_foreign_branch) end return false end local node_is_foreign = in_foreign_branch or (node.lang and node.lang:getFullCode() ~= page_lang:getFullCode()) for _, container in ipairs(node.children or {}) do if is_borrowing_keyword_config(container.keyword_info) then for _, child_term in ipairs(container.terms or {}) do if borrow_returns_to_page_lang(page_lang, child_term.lang, node_is_foreign) then return true end end end for _, child_term in ipairs(container.terms or {}) do if child_term.status == M.data.STATUS.OK or child_term.status == M.data.STATUS.INLINE then if node_borrows_from_lang(child_term, page_lang, visited, node_is_foreign) then return true end end end end return false end local function should_add_reborrow_category(page_lang, term) if page_lang:getCode() == term.lang:getCode() then return false end if term.status ~= M.data.STATUS.OK and term.status ~= M.data.STATUS.INLINE then return false end return node_borrows_from_lang(term, page_lang, {}, false) end -- Add borrowing-related categories (top-level only) local function collect_borrowing_categories(categories, page_lang, term, config, check_reborrow_path) if check_reborrow_path and should_add_reborrow_category(page_lang, term) then add_reborrow_category(categories, page_lang) end if config.borrowing_type == "borrowed" and not lang_is_source(page_lang, term.lang) then local temp_categories = {} M.etymology.insert_borrowed_cat(temp_categories, page_lang, term.lang) for _, cat in ipairs(temp_categories) do add_category(categories, cat) end end if config.specialized_borrowing and not lang_is_source(page_lang, term.lang) then local result = M.etymology_specialized.specialized_borrowing { bortype = borrowing_name_map[config.specialized_borrowing] or config.specialized_borrowing, -- L10N lang = page_lang, sources = { term.lang }, terms = { { lang = term.lang, term = "-" } }, notext = true, nocat = false, } for cat_name in result:gmatch("%[%[Category:([^%]]+)%]%]") do add_category(categories, cat_name) end end end -- Add source-based derivation categories (top-level only) local function collect_source_derivation_categories(categories, page_lang, term, config) if not config.source_category_type then return end local temp_categories = {} M.etymology.insert_source_cat_get_display { lang = page_lang, source = term.lang, categories = temp_categories, borrowing_type = borrowing_name_map[config.source_category_type] or config.source_category_type, -- L10N nocat = false, } for _, cat in ipairs(temp_categories) do add_category(categories, cat) end end -- Add source language categories local function collect_source_categories(categories, page_lang, term, chain, get_norm_lang_func) if page_lang:getCode() == get_norm_lang_func(term.lang):getCode() then return end local temp_categories = {} M.etymology.insert_source_cat_get_display { lang = page_lang, source = term.lang, categories = temp_categories, nocat = false, } for _, cat in ipairs(temp_categories) do add_category(categories, cat) end if chain.inherited then temp_categories = {} M.etymology.insert_source_cat_get_display { lang = page_lang, source = term.lang, categories = temp_categories, borrowing_type = "繼承", -- L10N nocat = false, } for _, cat in ipairs(temp_categories) do add_category(categories, cat) end end end -- Add root/word categories local function collect_pos_categories(categories, page_lang, root_title, term, available_etymon_ids, chain, get_norm_lang_func, lang_exc, keyword) local pos_types = { root = "詞根", word = "詞" } -- L10N -- Determine pos: from term's postype, keyword's pos_override, or args.pos local pos local config = get_keyword_config(keyword, lang_exc) if term.postype then -- Term-level postype modifier takes highest priority pos = term.postype elseif config and config.pos_override then pos = config.pos_override elseif type(term.args) == "table" and term.args.pos then pos = term.args.pos end local pos_type = pos_types[pos] if not pos_type or term.unknown_term then return end -- Skip root/word categories for descendants of affix groups -- if pos_type then -- return -- end local same_language = get_norm_lang_func(page_lang):getFullCode() == get_norm_lang_func(term.lang):getFullCode() -- Skip self-references if same_language and root_title == term.title then return end -- Use makeEntryName to strip diacritics for category names local entry_name = term.lang:makeEntryName(term.title) local lang_name = page_lang:getCanonicalName() local cat_name if chain.passed_through then local etymon_lang_name = export.get_cat_name(term.lang) cat_name = "來自" .. etymon_lang_name .. pos_type .. entry_name .. "的" .. lang_name .. "詞" -- L10N else cat_name = pos_type .. "為" .. entry_name .. "的" .. lang_name .. "詞" -- L10N end -- Add ID disambiguation if needed (for roots/words: use etymon_id if resolved via senseid, otherwise use id) local target_ids = available_etymon_ids[term.target_key] local effective_id = term.etymon_id or term.id -- etymon_id if senseid, otherwise id is already an etymon id if target_ids and effective_id then local same_pos_count = 0 for _, id_data in ipairs(target_ids) do if type(id_data) == "table" and id_data.pos == pos then same_pos_count = same_pos_count + 1 end end if same_pos_count > 1 then -- L10N: ID位於詞綴後而非分類名末尾 local suffix = "的" .. lang_name .. "詞" cat_name = cat_name:sub(1, -#suffix - 1) .. " (" .. effective_id .. ")" .. suffix end end add_category(categories, cat_name) end -- Compute chain state for a term based on parent chain and keyword config -- Hyphen patterns for affix detection (regular hyphen + script-specific) local AFFIX_HYPHEN_PATTERN = "[%-%־ـ᠊]" -- regular hyphen, Hebrew maqqef, Arabic tatweel, Mongolian hyphen -- Check if a term is an actual affix (not a non-affix member of an affix group) local function is_actual_affix(term) -- Check explicit aftype modifier if term.aftype then local normalized = aftype_aliases[term.aftype] or term.aftype return normalized ~= "non-affix" end -- Check if pos=root (treated as non-affix) if term.args and term.args.pos and term.args.pos == "root" then return false end -- Auto-detect by hyphen: prefix ends with -, suffix starts with -, etc. if term.title then local title = term.title -- Strip leading * for reconstructed terms before checking hyphens title = title:gsub("^%*", "") -- Check for hyphens at start or end (handles script-specific hyphens too) if title:match("^" .. AFFIX_HYPHEN_PATTERN) or title:match(AFFIX_HYPHEN_PATTERN .. "$") then return true end end -- Default: not an affix return false end local function compute_category_chain(parent_chain, config, page_lang, term_lang, get_norm_lang_func, parent_term_lang, term) -- Track if we're inside an actual affix (for suppressing root categories on descendants) -- Only set if the term is an actual affix (prefix, suffix, etc.), not a non-affix member local inside_affix = parent_chain.inside_affix if config.affix_categories and term and is_actual_affix(term) then inside_affix = true end -- If no_child_categories is set, disable everything if config.no_child_categories then return { passed_through = parent_chain.passed_through or page_lang:getCode() ~= get_norm_lang_func(term_lang):getCode(), inherited = false, source = false, pos = false, recurse = false, inside_affix = inside_affix, } end local term_is_transitive = is_transitive(config.transitive, page_lang, term_lang) local new_source = parent_chain.source and term_is_transitive -- For CROSS_LANG_NO_INTERNAL_SOURCE: track internal derivation language context -- Check if this term is internal relative to parent term's language (if parent_term_lang provided) -- or relative to page language (if no parent_term_lang) local internal_lang = parent_chain.internal_lang local is_internal_in_context = false if config.transitive == M.data.TRANSITIVE.CROSS_LANG_NO_INTERNAL_SOURCE then local check_lang = parent_term_lang or page_lang local term_lang_code = get_norm_lang_func(term_lang):getCode() local check_lang_code = get_norm_lang_func(check_lang):getCode() if internal_lang then -- Already in an internal derivation context: check if this term is also internal is_internal_in_context = term_lang_code == internal_lang else -- Check if this term is internal relative to parent term (or page if no parent) is_internal_in_context = term_lang_code == check_lang_code end end -- Source chain behavior for CROSS_LANG_NO_INTERNAL_SOURCE if config.transitive == M.data.TRANSITIVE.CROSS_LANG_NO_INTERNAL_SOURCE then if is_internal_in_context then -- Internal derivation new_source = false internal_lang = get_norm_lang_func(term_lang):getCode() else -- Cross-language new_source = parent_chain.source and term_is_transitive internal_lang = nil end end local new_pos = parent_chain.pos return { passed_through = parent_chain.passed_through or page_lang:getCode() ~= get_norm_lang_func(term_lang):getCode(), inherited = parent_chain.inherited and config.inherited_chain, source = new_source, pos = new_pos, internal_lang = internal_lang, recurse = new_source or new_pos, inside_affix = inside_affix, } end function export.render(opts) opts = opts or {} local data_tree = opts.data_tree local page_lang = opts.page_lang local available_etymon_ids = opts.available_etymon_ids local senseid_parent_etymon = opts.senseid_parent_etymon local get_norm_lang_func = opts.get_norm_lang_func local lang_exc = opts.lang_exc local categories = {} local seen = {} local lang_name = page_lang:getCanonicalName() local root_title = data_tree.title -- Collect the tree recursively local function collect(node, parent_chain, is_toplevel) -- Avoid processing same node twice if not node.unknown_term and node.title then local key = node.lang:getFullCode() .. ":" .. (node.title or "") .. ":" .. (node.id or "") if seen[key] then return end seen[key] = true end -- Collect affix categories at top level only if is_toplevel then local affix_cats = collect_affix_categories(node, page_lang, available_etymon_ids, senseid_parent_etymon, lang_exc) for _, cat in ipairs(affix_cats) do local cat_name = cat.cat:find("的") and cat.cat:gsub("的", "的" .. lang_name) or lang_name .. cat.cat -- L10N add_category(categories, cat_name, cat.sort_key, cat.sort_base) end if node.supplements then for _, supplement in ipairs(node.supplements) do local config = supplement.config if config and config.toplevel_category then local cat_name = config.toplevel_category:find("的") and config.toplevel_category:gsub("的", "的" .. lang_name) or lang_name .. config.toplevel_category -- L10N add_category(categories, cat_name) end end end end -- Process each container for _, container in ipairs(node.children or {}) do local keyword = container.keyword local config = get_keyword_config(keyword, lang_exc) -- Skip invalid keywords if config then -- Process each term in the container for _, term in ipairs(container.terms or {}) do local term_chain = compute_category_chain(parent_chain, config, page_lang, term.lang, get_norm_lang_func, node.lang, term) local no_child_categories = config.no_child_categories == true local term_is_transitive = is_transitive(config.transitive, page_lang, term.lang) -- Top-level only processing if is_toplevel then -- Missing/ambiguous etymon tracking if not term.unknown_term and (term.status == M.data.STATUS.MISSING or term.status == M.data.STATUS.REDLINK) then add_category(categories, "引用缺失詞源的" .. lang_name .. "詞條") -- L10N end if not term.unknown_term and term.status == M.data.STATUS.AMBIGUOUS then add_category(categories, "引用歧義詞源的" .. lang_name .. "詞條") -- L10N end if term.missing_descendants_header then add_category(categories, "引用缺少後代詞章節之詞源的" .. lang_name .. "詞條") -- L10N end if term.missing_descendants_entry then add_category(categories, "引用未在後代詞章節列出本詞之詞源的" .. lang_name .. "詞條") -- L10N end -- Top-level category (e.g., "undefined derivations") if config.toplevel_category then local cat_name = config.toplevel_category:find("的") and config.toplevel_category:gsub("的", "的" .. lang_name) or lang_name .. config.toplevel_category -- L10N add_category(categories, cat_name) end -- Borrowing categories (bor, lbor, slbor, ubor, obor) if config.borrowing_type or config.specialized_borrowing then collect_borrowing_categories(categories, page_lang, term, config, true) end -- Borrowing categories from <bor>, <lbor>, or <slbor> modifiers on affix-group terms local kw_config = M.data.keywords[keyword] if kw_config and kw_config.affix_categories then if term.bor then local bor_config = { borrowing_type = "borrowed" } collect_borrowing_categories(categories, page_lang, term, bor_config, true) elseif term.lbor then local bor_config = { specialized_borrowing = "learned" } collect_borrowing_categories(categories, page_lang, term, bor_config, true) elseif term.slbor then local bor_config = { specialized_borrowing = "semi-learned" } collect_borrowing_categories(categories, page_lang, term, bor_config, true) end end -- Source-based derivation categories (sl, calque, pcal) if config.source_category_type then collect_source_derivation_categories(categories, page_lang, term, config) end -- Skip all child categorisation if no_child_categories is set if not no_child_categories then -- Source categories only if transitive if term_is_transitive then collect_source_categories(categories, page_lang, term, term_chain, get_norm_lang_func) end -- Pos categories always (unless no_child_categories) collect_pos_categories(categories, page_lang, root_title, term, available_etymon_ids, term_chain, get_norm_lang_func, lang_exc, keyword) end else -- Below top level, respect the parent chain if parent_chain.source then collect_source_categories(categories, page_lang, term, term_chain, get_norm_lang_func) end if parent_chain.pos then collect_pos_categories(categories, page_lang, root_title, term, available_etymon_ids, term_chain, get_norm_lang_func, lang_exc, keyword) end end -- Recurse into term's children if needed and status allows if term_chain.recurse and (term.status == M.data.STATUS.OK or term.status == M.data.STATUS.INLINE) then collect(term, term_chain, false) end end end end end -- Initial chain state local initial_chain = { passed_through = false, inherited = true, source = true, pos = true, internal_lang = nil, recurse = true, inside_affix = false, } collect(data_tree, initial_chain, true) local cat_list = {} for cat_name, sort_data in pairs(categories) do if sort_data.sort_key ~= nil or sort_data.sort_base ~= nil then table.insert(cat_list, { name = cat_name, sort_key = sort_data.sort_key, sort_base = sort_data.sort_base, }) else table.insert(cat_list, cat_name) end end return cat_list end function export.build(opts) opts = opts or {} local categories = {} if not opts.suppress_categories and not opts.nocat then categories = export.render({ data_tree = opts.data_tree, page_lang = opts.page_lang, available_etymon_ids = opts.available_etymon_ids, senseid_parent_etymon = opts.senseid_parent_etymon, get_norm_lang_func = opts.get_norm_lang_func, lang_exc = opts.lang_exc, }) end local page_lang = opts.page_lang if not page_lang then return categories end local lang_name = page_lang:getCanonicalName() table.insert(categories, "有詞源的頁面") -- L10N table.insert(categories, "有詞源的" .. lang_name .. "詞條") -- L10N if opts.tree then table.insert(categories, "有詞源樹的頁面") -- L10N table.insert(categories, "有詞源樹的" .. lang_name .. "詞條") -- L10N end if opts.text then table.insert(categories, "有詞源文字的" .. lang_name .. "詞條") -- L10N end if opts.exnihilo then table.insert(categories, "無中生有式創造的" .. lang_name .. "詞") -- L10N end if opts.toplevel_has_inline_etymology then table.insert(categories, "有紅鏈行內詞源的頁面") -- L10N end if opts.toplevel_redundant_etymology then table.insert(categories, "有冗餘行內詞源的頁面") -- L10N end if opts.toplevel_idless_etymon then table.insert(categories, "使用無ID詞源的頁面") -- L10N end if opts.has_mismatched_id then table.insert(categories, "引用ID不符之詞源的" .. lang_name .. "詞條") -- L10N end if opts.linked_page_multiple_etymons_idless then table.insert(categories, "引用缺失ID之多個詞源的" .. lang_name .. "詞條") -- L10N end if opts.linked_page_partial_etymology_sections then table.insert(categories, "引用缺失詞源模板之詞源章節的" .. lang_name .. "詞條") -- L10N end if opts.text_stop_lang_missing then table.insert(categories, "詞源文字停止語言不在鏈上的頁面") -- L10N table.insert(categories, "詞源文字停止語言不在鏈上的" .. lang_name .. "詞條") -- L10N end return categories end function export.format(entries, lang) if type(entries) ~= "table" or #entries == 0 then return "" end local parts = {} for _, category in ipairs(entries) do if type(category) == "table" and type(category.name) == "string" then table.insert(parts, M.utilities.format_categories({ category.name }, lang, category.sort_key, category.sort_base)) elseif type(category) == "string" then table.insert(parts, M.utilities.format_categories({ category }, lang)) end end return table.concat(parts) end return export kx21a9b6zkcgkhijpdunsk9d2452w2r 9813892 9813887 2026-06-15T18:22:44Z TongcyDai 53191 9813892 Scribunto text/plain local export = {} local M = require("Module:module loader").init({ require = { etymology = "Module:etymology", affix = "Module:affix", etymology_specialized = "Module:etymology/specialized", utilities = "Module:utilities", }, loadData = { data = "Module:etymon/data", }, }) local borrowing_name_map = { -- L10N ["borrowed"] = "借詞", ["learned"] = "古典借詞", ["semi-learned"] = "半接觸借詞", ["orthographic"] = "形譯詞", ["unadapted"] = "非同化借詞", ["calque"] = "仿譯詞", ["partial-calque"] = "部分仿譯詞", ["semantic-loan"] = "意譯詞", ["terms inherited"] = "繼承詞", } -- Evaluate whether a keyword is transitive for a given term local function is_transitive(transitive_mode, page_lang, term_lang) if transitive_mode == M.data.TRANSITIVE.ALWAYS then return true elseif transitive_mode == M.data.TRANSITIVE.NEVER then return false elseif transitive_mode == M.data.TRANSITIVE.CROSS_LANG then return page_lang:getCode() ~= term_lang:getCode() elseif transitive_mode == M.data.TRANSITIVE.CROSS_LANG_NO_INTERNAL_SOURCE then return page_lang:getCode() ~= term_lang:getCode() end error("Unknown transitive mode: " .. tostring(transitive_mode)) end -- Get keyword config with language-specific overrides local function get_keyword_config(keyword, lang_exc) local base_config = M.data.keywords[keyword] if not base_config then return nil -- Invalid keyword end local overrides = lang_exc and lang_exc.keyword_overrides and lang_exc.keyword_overrides[keyword] if not overrides then return base_config end -- Merge overrides into base config local merged = {} for k, v in pairs(base_config) do merged[k] = v end for k, v in pairs(overrides) do merged[k] = v end return merged end function export.get_cat_name(source) local _, cat_name = M.etymology.get_display_and_cat_name(source, true) return cat_name end -- Normalize affix type aliases local aftype_aliases = { ["pre"] = "prefix", ["suf"] = "suffix", ["in"] = "infix", ["inter"] = "interfix", ["circum"] = "circumfix", ["naf"] = "non-affix", ["root"] = "non-affix", } local function add_category(categories, cat_name, sort_key, sort_base) if categories[cat_name] == nil then categories[cat_name] = { sort_key = sort_key, sort_base = sort_base, } return end local existing = categories[cat_name] if existing.sort_key == nil and sort_key ~= nil then existing.sort_key = sort_key end if existing.sort_base == nil and sort_base ~= nil then existing.sort_base = sort_base end end -- Collect affix categories from top-level group containers local function collect_affix_categories(node, page_lang, available_etymon_ids, senseid_parent_etymon, lang_exc) local parts = {} local part_index = 1 for _, container in ipairs(node.children or {}) do local config = container.keyword_info if config and config.affix_categories then for _, term in ipairs(container.terms or {}) do if not term.unknown_term then local part_data = { term = term.title, tr = term.tr, ts = term.ts, alt = term.alt, itemno = part_index, orig_index = part_index } -- Determine affix type: explicit aftype > pos=root > auto-detect local aftype = term.aftype if aftype then aftype = aftype_aliases[aftype] or aftype part_data.type = aftype elseif term.args and term.args.pos and term.args.pos == "root" then part_data.type = "non-affix" end if term.lang:getCode() ~= page_lang:getCode() then part_data.lang = term.lang end local target_ids = available_etymon_ids[term.target_key] local has_multiple_ids = target_ids and #target_ids > 1 local id_exists_in_disambiguation = false local matched_id = nil -- Count available senseids for the target page local senseid_count = 0 local target_prefix = term.target_key .. ":" if senseid_parent_etymon then for key, _ in pairs(senseid_parent_etymon) do if key:sub(1, #target_prefix) == target_prefix then senseid_count = senseid_count + 1 end end end local has_multiple_senseids = senseid_count > 1 if term.id then -- Check if user provided a valid senseid local senseid_key = term.target_key .. ":" .. term.id if senseid_parent_etymon and senseid_parent_etymon[senseid_key] then if has_multiple_senseids then -- Ambiguous senseid: use senseid matched_id = term.id id_exists_in_disambiguation = true elseif has_multiple_ids then -- Unique senseid but ambiguous etymon: use etymon ID matched_id = term.etymon_id or term.id id_exists_in_disambiguation = true end else -- Check if user provided a valid etymon ID if has_multiple_ids and target_ids then for _, id_data in ipairs(target_ids) do local stored_id = type(id_data) == "table" and id_data.id or id_data if stored_id == term.id then -- Ambiguous etymon: use etymon ID id_exists_in_disambiguation = true matched_id = term.id break end end end -- Fallback: check resolved etymon_id (e.g. from previous steps) if not id_exists_in_disambiguation and has_multiple_ids and term.etymon_id and target_ids then for _, id_data in ipairs(target_ids) do local stored_id = type(id_data) == "table" and id_data.id or id_data if stored_id == term.etymon_id then id_exists_in_disambiguation = true matched_id = term.etymon_id break end end end end end -- Use the matched ID if found if term.override or id_exists_in_disambiguation then part_data.id = matched_id or term.id end table.insert(parts, part_data) part_index = part_index + 1 end end end end if #parts == 0 then return {} end local affix_data = { lang = page_lang, parts = parts, pos = "詞", -- L10N sort_key = nil, } if #parts == 1 then affix_data.allow_no_affixes_or_compounds = true end local affix_categories = M.affix.get_affix_categories_only(affix_data) local result = {} for _, cat in ipairs(affix_categories) do if type(cat) == "table" then table.insert(result, { cat = cat.cat, sort_key = cat.sort_key, sort_base = cat.sort_base }) else table.insert(result, { cat = cat }) end end return result end local function lang_is_source(page_lang, source) return page_lang:getCode() == source:getCode() or page_lang:hasParent(source) end local function is_borrowing_keyword_config(config) return config and (config.borrowing_type or config.specialized_borrowing) end local function add_reborrow_category(categories, page_lang) local lang_name = page_lang:getFullName() add_category(categories, lang_name .. "回借詞") -- L10N end local function borrow_returns_to_page_lang(page_lang, source, in_foreign_branch) if not in_foreign_branch then return false end if source:getFullCode() == page_lang:getFullCode() then return true end return page_lang:hasParent(source) end local function node_borrows_from_lang(node, page_lang, visited, in_foreign_branch) visited = visited or {} if not node or visited[node] then return false end visited[node] = true if node.is_duplicate then if node.duplicate_of then return node_borrows_from_lang(node.duplicate_of, page_lang, visited, in_foreign_branch) end return false end local node_is_foreign = in_foreign_branch or (node.lang and node.lang:getFullCode() ~= page_lang:getFullCode()) for _, container in ipairs(node.children or {}) do if is_borrowing_keyword_config(container.keyword_info) then for _, child_term in ipairs(container.terms or {}) do if borrow_returns_to_page_lang(page_lang, child_term.lang, node_is_foreign) then return true end end end for _, child_term in ipairs(container.terms or {}) do if child_term.status == M.data.STATUS.OK or child_term.status == M.data.STATUS.INLINE then if node_borrows_from_lang(child_term, page_lang, visited, node_is_foreign) then return true end end end end return false end local function should_add_reborrow_category(page_lang, term) if page_lang:getCode() == term.lang:getCode() then return false end if term.status ~= M.data.STATUS.OK and term.status ~= M.data.STATUS.INLINE then return false end return node_borrows_from_lang(term, page_lang, {}, false) end -- Add borrowing-related categories (top-level only) local function collect_borrowing_categories(categories, page_lang, term, config, check_reborrow_path) if check_reborrow_path and should_add_reborrow_category(page_lang, term) then add_reborrow_category(categories, page_lang) end if config.borrowing_type == "borrowed" and not lang_is_source(page_lang, term.lang) then local temp_categories = {} M.etymology.insert_borrowed_cat(temp_categories, page_lang, term.lang) for _, cat in ipairs(temp_categories) do add_category(categories, cat) end end if config.specialized_borrowing and not lang_is_source(page_lang, term.lang) then local result = M.etymology_specialized.specialized_borrowing { bortype = borrowing_name_map[config.specialized_borrowing] or config.specialized_borrowing, -- L10N lang = page_lang, sources = { term.lang }, terms = { { lang = term.lang, term = "-" } }, notext = true, nocat = false, } for cat_name in result:gmatch("%[%[Category:([^%]]+)%]%]") do add_category(categories, cat_name) end end end -- Add source-based derivation categories (top-level only) local function collect_source_derivation_categories(categories, page_lang, term, config) if not config.source_category_type then return end local temp_categories = {} M.etymology.insert_source_cat_get_display { lang = page_lang, source = term.lang, categories = temp_categories, borrowing_type = borrowing_name_map[config.source_category_type] or config.source_category_type, -- L10N nocat = false, } for _, cat in ipairs(temp_categories) do add_category(categories, cat) end end -- Add source language categories local function collect_source_categories(categories, page_lang, term, chain, get_norm_lang_func) if page_lang:getCode() == get_norm_lang_func(term.lang):getCode() then return end local temp_categories = {} M.etymology.insert_source_cat_get_display { lang = page_lang, source = term.lang, categories = temp_categories, nocat = false, } for _, cat in ipairs(temp_categories) do add_category(categories, cat) end if chain.inherited then temp_categories = {} M.etymology.insert_source_cat_get_display { lang = page_lang, source = term.lang, categories = temp_categories, borrowing_type = "繼承", nocat = false, } for _, cat in ipairs(temp_categories) do add_category(categories, cat) end end end -- Add root/word categories local function collect_pos_categories(categories, page_lang, root_title, term, available_etymon_ids, chain, get_norm_lang_func, lang_exc, keyword) local pos_types = { root = "詞根", word = "詞" } -- Determine pos: from term's postype, keyword's pos_override, or args.pos local pos local config = get_keyword_config(keyword, lang_exc) if term.postype then -- Term-level postype modifier takes highest priority pos = term.postype elseif config and config.pos_override then pos = config.pos_override elseif type(term.args) == "table" and term.args.pos then pos = term.args.pos end local pos_type = pos_types[pos] if not pos_type or term.unknown_term then return end -- Skip root/word categories for descendants of affix groups -- if pos_type then -- return -- end local same_language = get_norm_lang_func(page_lang):getFullCode() == get_norm_lang_func(term.lang):getFullCode() -- Skip self-references if same_language and root_title == term.title then return end -- Use makeEntryName to strip diacritics for category names local entry_name = term.lang:makeEntryName(term.title) local lang_name = page_lang:getCanonicalName() local cat_name if chain.passed_through then local etymon_lang_name = export.get_cat_name(term.lang) cat_name = "來自" .. etymon_lang_name .. pos_type .. entry_name .. "的" .. lang_name .. "詞" else cat_name = pos_type .. "為" .. entry_name .. "的" .. lang_name .. "詞" -- L10N end -- Add ID disambiguation if needed (for roots/words: use etymon_id if resolved via senseid, otherwise use id) local target_ids = available_etymon_ids[term.target_key] local effective_id = term.etymon_id or term.id -- etymon_id if senseid, otherwise id is already an etymon id if target_ids and effective_id then local same_pos_count = 0 for _, id_data in ipairs(target_ids) do if type(id_data) == "table" and id_data.pos == pos then same_pos_count = same_pos_count + 1 end end if same_pos_count > 1 then -- L10N: ID位於詞綴後而非分類名末尾 local suffix = "的" .. lang_name .. "詞" cat_name = cat_name:sub(1, -#suffix - 1) .. " (" .. effective_id .. ")" .. suffix end end add_category(categories, cat_name) end -- Compute chain state for a term based on parent chain and keyword config -- Hyphen patterns for affix detection (regular hyphen + script-specific) local AFFIX_HYPHEN_PATTERN = "[%-%־ـ᠊]" -- regular hyphen, Hebrew maqqef, Arabic tatweel, Mongolian hyphen -- Check if a term is an actual affix (not a non-affix member of an affix group) local function is_actual_affix(term) -- Check explicit aftype modifier if term.aftype then local normalized = aftype_aliases[term.aftype] or term.aftype return normalized ~= "non-affix" end -- Check if pos=root (treated as non-affix) if term.args and term.args.pos and term.args.pos == "root" then return false end -- Auto-detect by hyphen: prefix ends with -, suffix starts with -, etc. if term.title then local title = term.title -- Strip leading * for reconstructed terms before checking hyphens title = title:gsub("^%*", "") -- Check for hyphens at start or end (handles script-specific hyphens too) if title:match("^" .. AFFIX_HYPHEN_PATTERN) or title:match(AFFIX_HYPHEN_PATTERN .. "$") then return true end end -- Default: not an affix return false end local function compute_category_chain(parent_chain, config, page_lang, term_lang, get_norm_lang_func, parent_term_lang, term) -- Track if we're inside an actual affix (for suppressing root categories on descendants) -- Only set if the term is an actual affix (prefix, suffix, etc.), not a non-affix member local inside_affix = parent_chain.inside_affix if config.affix_categories and term and is_actual_affix(term) then inside_affix = true end -- If no_child_categories is set, disable everything if config.no_child_categories then return { passed_through = parent_chain.passed_through or page_lang:getCode() ~= get_norm_lang_func(term_lang):getCode(), inherited = false, source = false, pos = false, recurse = false, inside_affix = inside_affix, } end local term_is_transitive = is_transitive(config.transitive, page_lang, term_lang) local new_source = parent_chain.source and term_is_transitive -- For CROSS_LANG_NO_INTERNAL_SOURCE: track internal derivation language context -- Check if this term is internal relative to parent term's language (if parent_term_lang provided) -- or relative to page language (if no parent_term_lang) local internal_lang = parent_chain.internal_lang local is_internal_in_context = false if config.transitive == M.data.TRANSITIVE.CROSS_LANG_NO_INTERNAL_SOURCE then local check_lang = parent_term_lang or page_lang local term_lang_code = get_norm_lang_func(term_lang):getCode() local check_lang_code = get_norm_lang_func(check_lang):getCode() if internal_lang then -- Already in an internal derivation context: check if this term is also internal is_internal_in_context = term_lang_code == internal_lang else -- Check if this term is internal relative to parent term (or page if no parent) is_internal_in_context = term_lang_code == check_lang_code end end -- Source chain behavior for CROSS_LANG_NO_INTERNAL_SOURCE if config.transitive == M.data.TRANSITIVE.CROSS_LANG_NO_INTERNAL_SOURCE then if is_internal_in_context then -- Internal derivation new_source = false internal_lang = get_norm_lang_func(term_lang):getCode() else -- Cross-language new_source = parent_chain.source and term_is_transitive internal_lang = nil end end local new_pos = parent_chain.pos return { passed_through = parent_chain.passed_through or page_lang:getCode() ~= get_norm_lang_func(term_lang):getCode(), inherited = parent_chain.inherited and config.inherited_chain, source = new_source, pos = new_pos, internal_lang = internal_lang, recurse = new_source or new_pos, inside_affix = inside_affix, } end function export.render(opts) opts = opts or {} local data_tree = opts.data_tree local page_lang = opts.page_lang local available_etymon_ids = opts.available_etymon_ids local senseid_parent_etymon = opts.senseid_parent_etymon local get_norm_lang_func = opts.get_norm_lang_func local lang_exc = opts.lang_exc local categories = {} local seen = {} local lang_name = page_lang:getCanonicalName() local root_title = data_tree.title -- Collect the tree recursively local function collect(node, parent_chain, is_toplevel) -- Avoid processing same node twice if not node.unknown_term and node.title then local key = node.lang:getFullCode() .. ":" .. (node.title or "") .. ":" .. (node.id or "") if seen[key] then return end seen[key] = true end -- Collect affix categories at top level only if is_toplevel then local affix_cats = collect_affix_categories(node, page_lang, available_etymon_ids, senseid_parent_etymon, lang_exc) for _, cat in ipairs(affix_cats) do local cat_name = cat.cat:find("的") and cat.cat:gsub("的", "的" .. lang_name) or lang_name .. cat.cat -- L10N add_category(categories, cat_name, cat.sort_key, cat.sort_base) end if node.supplements then for _, supplement in ipairs(node.supplements) do local config = supplement.config if config and config.toplevel_category then local cat_name = config.toplevel_category:find("的") and config.toplevel_category:gsub("的", "的" .. lang_name) or lang_name .. config.toplevel_category -- L10N add_category(categories, cat_name) end end end end -- Process each container for _, container in ipairs(node.children or {}) do local keyword = container.keyword local config = get_keyword_config(keyword, lang_exc) -- Skip invalid keywords if config then -- Process each term in the container for _, term in ipairs(container.terms or {}) do local term_chain = compute_category_chain(parent_chain, config, page_lang, term.lang, get_norm_lang_func, node.lang, term) local no_child_categories = config.no_child_categories == true local term_is_transitive = is_transitive(config.transitive, page_lang, term.lang) -- Top-level only processing if is_toplevel then -- Missing/ambiguous etymon tracking if not term.unknown_term and (term.status == M.data.STATUS.MISSING or term.status == M.data.STATUS.REDLINK) then add_category(categories, "引用缺失詞源的" .. lang_name .. "詞條") -- L10N end if not term.unknown_term and term.status == M.data.STATUS.AMBIGUOUS then add_category(categories, "引用歧義詞源的" .. lang_name .. "詞條") -- L10N end if term.missing_descendants_header then add_category(categories, "引用缺少後代詞章節之詞源的" .. lang_name .. "詞條") -- L10N end if term.missing_descendants_entry then add_category(categories, "引用未在後代詞章節列出本詞之詞源的" .. lang_name .. "詞條") -- L10N end -- Top-level category (e.g., "undefined derivations") if config.toplevel_category then local cat_name = config.toplevel_category:find("的") and config.toplevel_category:gsub("的", "的" .. lang_name) or lang_name .. config.toplevel_category -- L10N add_category(categories, cat_name) end -- Borrowing categories (bor, lbor, slbor, ubor, obor) if config.borrowing_type or config.specialized_borrowing then collect_borrowing_categories(categories, page_lang, term, config, true) end -- Borrowing categories from <bor>, <lbor>, or <slbor> modifiers on affix-group terms local kw_config = M.data.keywords[keyword] if kw_config and kw_config.affix_categories then if term.bor then local bor_config = { borrowing_type = "borrowed" } collect_borrowing_categories(categories, page_lang, term, bor_config, true) elseif term.lbor then local bor_config = { specialized_borrowing = "learned" } collect_borrowing_categories(categories, page_lang, term, bor_config, true) elseif term.slbor then local bor_config = { specialized_borrowing = "semi-learned" } collect_borrowing_categories(categories, page_lang, term, bor_config, true) end end -- Source-based derivation categories (sl, calque, pcal) if config.source_category_type then collect_source_derivation_categories(categories, page_lang, term, config) end -- Skip all child categorisation if no_child_categories is set if not no_child_categories then -- Source categories only if transitive if term_is_transitive then collect_source_categories(categories, page_lang, term, term_chain, get_norm_lang_func) end -- Pos categories always (unless no_child_categories) collect_pos_categories(categories, page_lang, root_title, term, available_etymon_ids, term_chain, get_norm_lang_func, lang_exc, keyword) end else -- Below top level, respect the parent chain if parent_chain.source then collect_source_categories(categories, page_lang, term, term_chain, get_norm_lang_func) end if parent_chain.pos then collect_pos_categories(categories, page_lang, root_title, term, available_etymon_ids, term_chain, get_norm_lang_func, lang_exc, keyword) end end -- Recurse into term's children if needed and status allows if term_chain.recurse and (term.status == M.data.STATUS.OK or term.status == M.data.STATUS.INLINE) then collect(term, term_chain, false) end end end end end -- Initial chain state local initial_chain = { passed_through = false, inherited = true, source = true, pos = true, internal_lang = nil, recurse = true, inside_affix = false, } collect(data_tree, initial_chain, true) local cat_list = {} for cat_name, sort_data in pairs(categories) do if sort_data.sort_key ~= nil or sort_data.sort_base ~= nil then table.insert(cat_list, { name = cat_name, sort_key = sort_data.sort_key, sort_base = sort_data.sort_base, }) else table.insert(cat_list, cat_name) end end return cat_list end function export.build(opts) opts = opts or {} local categories = {} if not opts.suppress_categories and not opts.nocat then categories = export.render({ data_tree = opts.data_tree, page_lang = opts.page_lang, available_etymon_ids = opts.available_etymon_ids, senseid_parent_etymon = opts.senseid_parent_etymon, get_norm_lang_func = opts.get_norm_lang_func, lang_exc = opts.lang_exc, }) end local page_lang = opts.page_lang if not page_lang then return categories end local lang_name = page_lang:getCanonicalName() table.insert(categories, "有etymon的頁面") table.insert(categories, "有etymon的" .. lang_name .. "詞條") if opts.tree then table.insert(categories, "有詞源樹的頁面") table.insert(categories, "有詞源樹的" .. lang_name .. "詞條") end if opts.text then table.insert(categories, "有詞源文字的" .. lang_name .. "詞條") end if opts.exnihilo then table.insert(categories, "無中生有式創造的" .. lang_name .. "詞") end if opts.toplevel_has_inline_etymology then table.insert(categories, "有紅鏈行內詞源的頁面") end if opts.toplevel_redundant_etymology then table.insert(categories, "有冗餘行內詞源的頁面") end if opts.toplevel_idless_etymon then table.insert(categories, "使用無ID詞源的頁面") end if opts.has_mismatched_id then table.insert(categories, "引用ID不符之詞源的" .. lang_name .. "詞條") end if opts.linked_page_multiple_etymons_idless then table.insert(categories, "引用缺失ID之多個詞源的" .. lang_name .. "詞條") end if opts.linked_page_partial_etymology_sections then table.insert(categories, "引用缺失詞源模板之詞源章節的" .. lang_name .. "詞條") end if opts.text_stop_lang_missing then table.insert(categories, "詞源文字停止語言不在鏈上的頁面") table.insert(categories, "詞源文字停止語言不在鏈上的" .. lang_name .. "詞條") end return categories end function export.format(entries, lang) if type(entries) ~= "table" or #entries == 0 then return "" end local parts = {} for _, category in ipairs(entries) do if type(category) == "table" and type(category.name) == "string" then table.insert(parts, M.utilities.format_categories({ category.name }, lang, category.sort_key, category.sort_base)) elseif type(category) == "string" then table.insert(parts, M.utilities.format_categories({ category }, lang)) end end return table.concat(parts) end return export fb4jy73mfvb26tt9lv7lexkf8f2x697 9813909 9813892 2026-06-15T20:02:33Z TongcyDai 53191 9813909 Scribunto text/plain local export = {} local M = require("Module:module loader").init({ require = { etymology = "Module:etymology", affix = "Module:affix", etymology_specialized = "Module:etymology/specialized", utilities = "Module:utilities", }, loadData = { data = "Module:etymon/data", }, }) local borrowing_name_map = { -- L10N ["borrowed"] = "借詞", ["learned"] = "古典借詞", ["semi-learned"] = "半接觸借詞", ["orthographic"] = "形譯詞", ["unadapted"] = "非同化借詞", ["calque"] = "仿譯詞", ["partial-calque"] = "部分仿譯詞", ["semantic-loan"] = "意譯詞", ["terms inherited"] = "繼承詞", } -- Evaluate whether a keyword is transitive for a given term local function is_transitive(transitive_mode, page_lang, term_lang) if transitive_mode == M.data.TRANSITIVE.ALWAYS then return true elseif transitive_mode == M.data.TRANSITIVE.NEVER then return false elseif transitive_mode == M.data.TRANSITIVE.CROSS_LANG then return page_lang:getCode() ~= term_lang:getCode() elseif transitive_mode == M.data.TRANSITIVE.CROSS_LANG_NO_INTERNAL_SOURCE then return page_lang:getCode() ~= term_lang:getCode() end error("Unknown transitive mode: " .. tostring(transitive_mode)) end -- Get keyword config with language-specific overrides local function get_keyword_config(keyword, lang_exc) local base_config = M.data.keywords[keyword] if not base_config then return nil -- Invalid keyword end local overrides = lang_exc and lang_exc.keyword_overrides and lang_exc.keyword_overrides[keyword] if not overrides then return base_config end -- Merge overrides into base config local merged = {} for k, v in pairs(base_config) do merged[k] = v end for k, v in pairs(overrides) do merged[k] = v end return merged end function export.get_cat_name(source) local _, cat_name = M.etymology.get_display_and_cat_name(source, true) return cat_name end -- Normalize affix type aliases local aftype_aliases = { ["pre"] = "prefix", ["suf"] = "suffix", ["in"] = "infix", ["inter"] = "interfix", ["circum"] = "circumfix", ["naf"] = "non-affix", ["root"] = "non-affix", } local function add_category(categories, cat_name, sort_key, sort_base) if categories[cat_name] == nil then categories[cat_name] = { sort_key = sort_key, sort_base = sort_base, } return end local existing = categories[cat_name] if existing.sort_key == nil and sort_key ~= nil then existing.sort_key = sort_key end if existing.sort_base == nil and sort_base ~= nil then existing.sort_base = sort_base end end -- Collect affix categories from top-level group containers local function collect_affix_categories(node, page_lang, available_etymon_ids, senseid_parent_etymon, lang_exc) local parts = {} local part_index = 1 for _, container in ipairs(node.children or {}) do local config = container.keyword_info if config and config.affix_categories then for _, term in ipairs(container.terms or {}) do if not term.unknown_term then local part_data = { term = term.title, tr = term.tr, ts = term.ts, alt = term.alt, itemno = part_index, orig_index = part_index } -- Determine affix type: explicit aftype > pos=root > auto-detect local aftype = term.aftype if aftype then aftype = aftype_aliases[aftype] or aftype part_data.type = aftype elseif term.args and term.args.pos and term.args.pos == "root" then part_data.type = "non-affix" end if term.lang:getCode() ~= page_lang:getCode() then part_data.lang = term.lang end local target_ids = available_etymon_ids[term.target_key] local has_multiple_ids = target_ids and #target_ids > 1 local id_exists_in_disambiguation = false local matched_id = nil -- Count available senseids for the target page local senseid_count = 0 local target_prefix = term.target_key .. ":" if senseid_parent_etymon then for key, _ in pairs(senseid_parent_etymon) do if key:sub(1, #target_prefix) == target_prefix then senseid_count = senseid_count + 1 end end end local has_multiple_senseids = senseid_count > 1 if term.id then -- Check if user provided a valid senseid local senseid_key = term.target_key .. ":" .. term.id if senseid_parent_etymon and senseid_parent_etymon[senseid_key] then if has_multiple_senseids then -- Ambiguous senseid: use senseid matched_id = term.id id_exists_in_disambiguation = true elseif has_multiple_ids then -- Unique senseid but ambiguous etymon: use etymon ID matched_id = term.etymon_id or term.id id_exists_in_disambiguation = true end else -- Check if user provided a valid etymon ID if has_multiple_ids and target_ids then for _, id_data in ipairs(target_ids) do local stored_id = type(id_data) == "table" and id_data.id or id_data if stored_id == term.id then -- Ambiguous etymon: use etymon ID id_exists_in_disambiguation = true matched_id = term.id break end end end -- Fallback: check resolved etymon_id (e.g. from previous steps) if not id_exists_in_disambiguation and has_multiple_ids and term.etymon_id and target_ids then for _, id_data in ipairs(target_ids) do local stored_id = type(id_data) == "table" and id_data.id or id_data if stored_id == term.etymon_id then id_exists_in_disambiguation = true matched_id = term.etymon_id break end end end end end -- Use the matched ID if found if term.override or id_exists_in_disambiguation then part_data.id = matched_id or term.id end table.insert(parts, part_data) part_index = part_index + 1 end end end end if #parts == 0 then return {} end local affix_data = { lang = page_lang, parts = parts, pos = "詞", -- L10N sort_key = nil, } if #parts == 1 then affix_data.allow_no_affixes_or_compounds = true end local affix_categories = M.affix.get_affix_categories_only(affix_data) local result = {} for _, cat in ipairs(affix_categories) do if type(cat) == "table" then table.insert(result, { cat = cat.cat, sort_key = cat.sort_key, sort_base = cat.sort_base }) else table.insert(result, { cat = cat }) end end return result end local function lang_is_source(page_lang, source) return page_lang:getCode() == source:getCode() or page_lang:hasParent(source) end local function is_borrowing_keyword_config(config) return config and (config.borrowing_type or config.specialized_borrowing) end local function add_reborrow_category(categories, page_lang) local lang_name = page_lang:getFullName() add_category(categories, lang_name .. "回借詞") -- L10N end local function borrow_returns_to_page_lang(page_lang, source, in_foreign_branch) if not in_foreign_branch then return false end if source:getFullCode() == page_lang:getFullCode() then return true end return page_lang:hasParent(source) end local function node_borrows_from_lang(node, page_lang, visited, in_foreign_branch) visited = visited or {} if not node or visited[node] then return false end visited[node] = true if node.is_duplicate then if node.duplicate_of then return node_borrows_from_lang(node.duplicate_of, page_lang, visited, in_foreign_branch) end return false end local node_is_foreign = in_foreign_branch or (node.lang and node.lang:getFullCode() ~= page_lang:getFullCode()) for _, container in ipairs(node.children or {}) do if is_borrowing_keyword_config(container.keyword_info) then for _, child_term in ipairs(container.terms or {}) do if borrow_returns_to_page_lang(page_lang, child_term.lang, node_is_foreign) then return true end end end for _, child_term in ipairs(container.terms or {}) do if child_term.status == M.data.STATUS.OK or child_term.status == M.data.STATUS.INLINE then if node_borrows_from_lang(child_term, page_lang, visited, node_is_foreign) then return true end end end end return false end local function should_add_reborrow_category(page_lang, term) if page_lang:getCode() == term.lang:getCode() then return false end if term.status ~= M.data.STATUS.OK and term.status ~= M.data.STATUS.INLINE then return false end return node_borrows_from_lang(term, page_lang, {}, false) end -- Add borrowing-related categories (top-level only) local function collect_borrowing_categories(categories, page_lang, term, config, check_reborrow_path) if check_reborrow_path and should_add_reborrow_category(page_lang, term) then add_reborrow_category(categories, page_lang) end if config.borrowing_type == "borrowed" and not lang_is_source(page_lang, term.lang) then local temp_categories = {} M.etymology.insert_borrowed_cat(temp_categories, page_lang, term.lang) for _, cat in ipairs(temp_categories) do add_category(categories, cat) end end if config.specialized_borrowing and not lang_is_source(page_lang, term.lang) then local result = M.etymology_specialized.specialized_borrowing { bortype = borrowing_name_map[config.specialized_borrowing] or config.specialized_borrowing, -- L10N lang = page_lang, sources = { term.lang }, terms = { { lang = term.lang, term = "-" } }, notext = true, nocat = false, } for cat_name in result:gmatch("%[%[Category:([^%]]+)%]%]") do add_category(categories, cat_name) end end end -- Add source-based derivation categories (top-level only) local function collect_source_derivation_categories(categories, page_lang, term, config) if not config.source_category_type then return end local temp_categories = {} M.etymology.insert_source_cat_get_display { lang = page_lang, source = term.lang, categories = temp_categories, borrowing_type = borrowing_name_map[config.source_category_type] or config.source_category_type, -- L10N nocat = false, } for _, cat in ipairs(temp_categories) do add_category(categories, cat) end end -- Add source language categories local function collect_source_categories(categories, page_lang, term, chain, get_norm_lang_func) if page_lang:getCode() == get_norm_lang_func(term.lang):getCode() then return end local temp_categories = {} M.etymology.insert_source_cat_get_display { lang = page_lang, source = term.lang, categories = temp_categories, nocat = false, } for _, cat in ipairs(temp_categories) do add_category(categories, cat) end if chain.inherited then temp_categories = {} M.etymology.insert_source_cat_get_display { lang = page_lang, source = term.lang, categories = temp_categories, borrowing_type = "繼承", nocat = false, } for _, cat in ipairs(temp_categories) do add_category(categories, cat) end end end -- Add root/word categories local function collect_pos_categories(categories, page_lang, root_title, term, available_etymon_ids, chain, get_norm_lang_func, lang_exc, keyword) local pos_types = { root = "詞根", word = "詞" } -- Determine pos: from term's postype, keyword's pos_override, or args.pos local pos local config = get_keyword_config(keyword, lang_exc) if term.postype then -- Term-level postype modifier takes highest priority pos = term.postype elseif config and config.pos_override then pos = config.pos_override elseif type(term.args) == "table" and term.args.pos then pos = term.args.pos end local pos_type = pos_types[pos] if not pos_type or term.unknown_term then return end -- Skip root/word categories for descendants of affix groups -- if pos_type then -- return -- end local same_language = get_norm_lang_func(page_lang):getFullCode() == get_norm_lang_func(term.lang):getFullCode() -- Skip self-references if same_language and root_title == term.title then return end -- Use makeEntryName to strip diacritics for category names local entry_name = term.lang:makeEntryName(term.title) local lang_name = page_lang:getCanonicalName() local cat_name if chain.passed_through then local etymon_lang_name = export.get_cat_name(term.lang) cat_name = "來自" .. etymon_lang_name .. pos_type .. entry_name .. "的" .. lang_name .. "詞" else cat_name = pos_type .. "為" .. entry_name .. "的" .. lang_name .. "詞" -- L10N end -- Add ID disambiguation if needed (for roots/words: use etymon_id if resolved via senseid, otherwise use id) local target_ids = available_etymon_ids[term.target_key] local effective_id = term.etymon_id or term.id -- etymon_id if senseid, otherwise id is already an etymon id if target_ids and effective_id then local same_pos_count = 0 for _, id_data in ipairs(target_ids) do if type(id_data) == "table" and id_data.pos == pos then same_pos_count = same_pos_count + 1 end end if same_pos_count > 1 then -- L10N: ID位於詞綴後而非分類名末尾 local suffix = "的" .. lang_name .. "詞" cat_name = cat_name:sub(1, -#suffix - 1) .. " (" .. effective_id .. ")" .. suffix end end add_category(categories, cat_name) end -- Compute chain state for a term based on parent chain and keyword config -- Hyphen patterns for affix detection (regular hyphen + script-specific) local AFFIX_HYPHEN_PATTERN = "[%-%־ـ᠊]" -- regular hyphen, Hebrew maqqef, Arabic tatweel, Mongolian hyphen -- Check if a term is an actual affix (not a non-affix member of an affix group) local function is_actual_affix(term) -- Check explicit aftype modifier if term.aftype then local normalized = aftype_aliases[term.aftype] or term.aftype return normalized ~= "non-affix" end -- Check if pos=root (treated as non-affix) if term.args and term.args.pos and term.args.pos == "root" then return false end -- Auto-detect by hyphen: prefix ends with -, suffix starts with -, etc. if term.title then local title = term.title -- Strip leading * for reconstructed terms before checking hyphens title = title:gsub("^%*", "") -- Check for hyphens at start or end (handles script-specific hyphens too) if title:match("^" .. AFFIX_HYPHEN_PATTERN) or title:match(AFFIX_HYPHEN_PATTERN .. "$") then return true end end -- Default: not an affix return false end local function compute_category_chain(parent_chain, config, page_lang, term_lang, get_norm_lang_func, parent_term_lang, term) -- Track if we're inside an actual affix (for suppressing root categories on descendants) -- Only set if the term is an actual affix (prefix, suffix, etc.), not a non-affix member local inside_affix = parent_chain.inside_affix if config.affix_categories and term and is_actual_affix(term) then inside_affix = true end -- If no_child_categories is set, disable everything if config.no_child_categories then return { passed_through = parent_chain.passed_through or page_lang:getCode() ~= get_norm_lang_func(term_lang):getCode(), inherited = false, source = false, pos = false, recurse = false, inside_affix = inside_affix, } end local term_is_transitive = is_transitive(config.transitive, page_lang, term_lang) local new_source = parent_chain.source and term_is_transitive -- For CROSS_LANG_NO_INTERNAL_SOURCE: track internal derivation language context -- Check if this term is internal relative to parent term's language (if parent_term_lang provided) -- or relative to page language (if no parent_term_lang) local internal_lang = parent_chain.internal_lang local is_internal_in_context = false if config.transitive == M.data.TRANSITIVE.CROSS_LANG_NO_INTERNAL_SOURCE then local check_lang = parent_term_lang or page_lang local term_lang_code = get_norm_lang_func(term_lang):getCode() local check_lang_code = get_norm_lang_func(check_lang):getCode() if internal_lang then -- Already in an internal derivation context: check if this term is also internal is_internal_in_context = term_lang_code == internal_lang else -- Check if this term is internal relative to parent term (or page if no parent) is_internal_in_context = term_lang_code == check_lang_code end end -- Source chain behavior for CROSS_LANG_NO_INTERNAL_SOURCE if config.transitive == M.data.TRANSITIVE.CROSS_LANG_NO_INTERNAL_SOURCE then if is_internal_in_context then -- Internal derivation new_source = false internal_lang = get_norm_lang_func(term_lang):getCode() else -- Cross-language new_source = parent_chain.source and term_is_transitive internal_lang = nil end end local new_pos = parent_chain.pos return { passed_through = parent_chain.passed_through or page_lang:getCode() ~= get_norm_lang_func(term_lang):getCode(), inherited = parent_chain.inherited and config.inherited_chain, source = new_source, pos = new_pos, internal_lang = internal_lang, recurse = new_source or new_pos, inside_affix = inside_affix, } end function export.render(opts) opts = opts or {} local data_tree = opts.data_tree local page_lang = opts.page_lang local available_etymon_ids = opts.available_etymon_ids local senseid_parent_etymon = opts.senseid_parent_etymon local get_norm_lang_func = opts.get_norm_lang_func local lang_exc = opts.lang_exc local categories = {} local seen = {} local lang_name = page_lang:getCanonicalName() local root_title = data_tree.title -- Collect the tree recursively local function collect(node, parent_chain, is_toplevel) -- Avoid processing same node twice if not node.unknown_term and node.title then local key = node.lang:getFullCode() .. ":" .. (node.title or "") .. ":" .. (node.id or "") if seen[key] then return end seen[key] = true end -- Collect affix categories at top level only if is_toplevel then local affix_cats = collect_affix_categories(node, page_lang, available_etymon_ids, senseid_parent_etymon, lang_exc) for _, cat in ipairs(affix_cats) do local cat_name = cat.cat:find("的") and cat.cat:gsub("的", "的" .. lang_name) or lang_name .. cat.cat -- L10N add_category(categories, cat_name, cat.sort_key, cat.sort_base) end if node.supplements then for _, supplement in ipairs(node.supplements) do local config = supplement.config if config and config.toplevel_category then local cat_name = config.toplevel_category:find("的") and config.toplevel_category:gsub("的", "的" .. lang_name) or lang_name .. config.toplevel_category -- L10N add_category(categories, cat_name) end end end end -- Process each container for _, container in ipairs(node.children or {}) do local keyword = container.keyword local config = get_keyword_config(keyword, lang_exc) -- Skip invalid keywords if config then -- Process each term in the container for _, term in ipairs(container.terms or {}) do local term_chain = compute_category_chain(parent_chain, config, page_lang, term.lang, get_norm_lang_func, node.lang, term) local no_child_categories = config.no_child_categories == true local term_is_transitive = is_transitive(config.transitive, page_lang, term.lang) -- Top-level only processing if is_toplevel then -- Missing/ambiguous etymon tracking if not term.unknown_term and (term.status == M.data.STATUS.MISSING or term.status == M.data.STATUS.REDLINK) then add_category(categories, "引用缺失etymon的" .. lang_name .. "詞條") end if not term.unknown_term and term.status == M.data.STATUS.AMBIGUOUS then add_category(categories, "引用歧義etymon的" .. lang_name .. "詞條") end if term.missing_descendants_header then add_category(categories, "引用缺少後代詞章節之etymon的" .. lang_name .. "詞條") end if term.missing_descendants_entry then add_category(categories, "引用未在後代詞章節列出本詞之etymon的" .. lang_name .. "詞條") end -- Top-level category (e.g., "undefined derivations") if config.toplevel_category then local cat_name = config.toplevel_category:find("的") and config.toplevel_category:gsub("的", "的" .. lang_name) or lang_name .. config.toplevel_category -- L10N add_category(categories, cat_name) end -- Borrowing categories (bor, lbor, slbor, ubor, obor) if config.borrowing_type or config.specialized_borrowing then collect_borrowing_categories(categories, page_lang, term, config, true) end -- Borrowing categories from <bor>, <lbor>, or <slbor> modifiers on affix-group terms local kw_config = M.data.keywords[keyword] if kw_config and kw_config.affix_categories then if term.bor then local bor_config = { borrowing_type = "borrowed" } collect_borrowing_categories(categories, page_lang, term, bor_config, true) elseif term.lbor then local bor_config = { specialized_borrowing = "learned" } collect_borrowing_categories(categories, page_lang, term, bor_config, true) elseif term.slbor then local bor_config = { specialized_borrowing = "semi-learned" } collect_borrowing_categories(categories, page_lang, term, bor_config, true) end end -- Source-based derivation categories (sl, calque, pcal) if config.source_category_type then collect_source_derivation_categories(categories, page_lang, term, config) end -- Skip all child categorisation if no_child_categories is set if not no_child_categories then -- Source categories only if transitive if term_is_transitive then collect_source_categories(categories, page_lang, term, term_chain, get_norm_lang_func) end -- Pos categories always (unless no_child_categories) collect_pos_categories(categories, page_lang, root_title, term, available_etymon_ids, term_chain, get_norm_lang_func, lang_exc, keyword) end else -- Below top level, respect the parent chain if parent_chain.source then collect_source_categories(categories, page_lang, term, term_chain, get_norm_lang_func) end if parent_chain.pos then collect_pos_categories(categories, page_lang, root_title, term, available_etymon_ids, term_chain, get_norm_lang_func, lang_exc, keyword) end end -- Recurse into term's children if needed and status allows if term_chain.recurse and (term.status == M.data.STATUS.OK or term.status == M.data.STATUS.INLINE) then collect(term, term_chain, false) end end end end end -- Initial chain state local initial_chain = { passed_through = false, inherited = true, source = true, pos = true, internal_lang = nil, recurse = true, inside_affix = false, } collect(data_tree, initial_chain, true) local cat_list = {} for cat_name, sort_data in pairs(categories) do if sort_data.sort_key ~= nil or sort_data.sort_base ~= nil then table.insert(cat_list, { name = cat_name, sort_key = sort_data.sort_key, sort_base = sort_data.sort_base, }) else table.insert(cat_list, cat_name) end end return cat_list end function export.build(opts) opts = opts or {} local categories = {} if not opts.suppress_categories and not opts.nocat then categories = export.render({ data_tree = opts.data_tree, page_lang = opts.page_lang, available_etymon_ids = opts.available_etymon_ids, senseid_parent_etymon = opts.senseid_parent_etymon, get_norm_lang_func = opts.get_norm_lang_func, lang_exc = opts.lang_exc, }) end local page_lang = opts.page_lang if not page_lang then return categories end local lang_name = page_lang:getCanonicalName() table.insert(categories, "有etymon的頁面") table.insert(categories, "有etymon的" .. lang_name .. "詞條") if opts.tree then table.insert(categories, "有詞源樹的頁面") table.insert(categories, "有詞源樹的" .. lang_name .. "詞條") end if opts.text then table.insert(categories, "有詞源文字的" .. lang_name .. "詞條") end if opts.exnihilo then table.insert(categories, "無中生有式創造的" .. lang_name .. "詞") end if opts.toplevel_has_inline_etymology then table.insert(categories, "有紅鏈行內etymon的頁面") end if opts.toplevel_redundant_etymology then table.insert(categories, "有冗餘行內etymon的頁面") end if opts.toplevel_idless_etymon then table.insert(categories, "使用無ID之etymon的頁面") end if opts.has_mismatched_id then table.insert(categories, "引用ID不符之etymon的" .. lang_name .. "詞條") end if opts.linked_page_multiple_etymons_idless then table.insert(categories, "引用缺失ID之多個etymon的" .. lang_name .. "詞條") end if opts.linked_page_partial_etymology_sections then table.insert(categories, "引用缺失etymon之詞源章節的" .. lang_name .. "詞條") end if opts.text_stop_lang_missing then table.insert(categories, "詞源文字停止語言不在鏈上的頁面") table.insert(categories, "詞源文字停止語言不在鏈上的" .. lang_name .. "詞條") end return categories end function export.format(entries, lang) if type(entries) ~= "table" or #entries == 0 then return "" end local parts = {} for _, category in ipairs(entries) do if type(category) == "table" and type(category.name) == "string" then table.insert(parts, M.utilities.format_categories({ category.name }, lang, category.sort_key, category.sort_base)) elseif type(category) == "string" then table.insert(parts, M.utilities.format_categories({ category }, lang)) end end return table.concat(parts) end return export 77rs9b16ujqf6yh84pv869a1runnj0p Category:有詞源樹的頁面 14 3248120 9813907 9427824 2026-06-15T19:46:35Z TongcyDai 53191 9813907 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的原始圖皮-瓜拉尼語詞條 14 3248947 9813936 9633879 2026-06-15T20:12:06Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的原始圖皮-瓜拉尼語詞條]]至[[Category:引用缺失etymon的原始圖皮-瓜拉尼語詞條]],不留重定向 9428874 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的詞條 14 3248948 9813981 9633938 2026-06-15T20:14:16Z TongcyDai 53191 TongcyDai移动页面[[Category:引用缺失詞源的詞條]]至[[Category:引用缺失etymon的詞條]],不留重定向 9428875 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的西里西亞語詞條 14 3248956 9814032 9633931 2026-06-15T20:16:34Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的西里西亞語詞條]]至[[Category:引用缺失etymon的西里西亞語詞條]],不留重定向 9428886 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的波蘭語詞條 14 3248961 9813999 9633924 2026-06-15T20:15:36Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的波蘭語詞條]]至[[Category:引用缺失etymon的波蘭語詞條]],不留重定向 9428891 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的葡萄牙語詞條 14 3248962 9814024 9633930 2026-06-15T20:16:21Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的葡萄牙語詞條]]至[[Category:引用缺失etymon的葡萄牙語詞條]],不留重定向 9428892 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的拉丁語詞條 14 3248963 9813984 9633915 2026-06-15T20:14:44Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的拉丁語詞條]]至[[Category:引用缺失etymon的拉丁語詞條]],不留重定向 9428894 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的古奧克語詞條 14 3248969 9813948 9633899 2026-06-15T20:12:40Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的古奧克語詞條]]至[[Category:引用缺失etymon的古奧克語詞條]],不留重定向 9428907 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的古圖皮語詞條 14 3248978 9813947 9633898 2026-06-15T20:12:38Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的古圖皮語詞條]]至[[Category:引用缺失etymon的古圖皮語詞條]],不留重定向 9428921 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的古希臘語詞條 14 3249006 9813949 9633900 2026-06-15T20:12:43Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的古希臘語詞條]]至[[Category:引用缺失etymon的古希臘語詞條]],不留重定向 9428959 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的俄語詞條 14 3249033 9813924 9633886 2026-06-15T20:11:35Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的俄語詞條]]至[[Category:引用缺失etymon的俄語詞條]],不留重定向 9428989 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的亞拉姆語詞條 14 3249049 9813922 9633885 2026-06-15T20:11:27Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的亞拉姆語詞條]]至[[Category:引用缺失etymon的亞拉姆語詞條]],不留重定向 9429012 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的波斯語詞條 14 3249054 9813998 9633923 2026-06-15T20:15:34Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的波斯語詞條]]至[[Category:引用缺失etymon的波斯語詞條]],不留重定向 9429020 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的普拉克里特語詞條 14 3249060 9813992 9633920 2026-06-15T20:15:12Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的普拉克里特語詞條]]至[[Category:引用缺失etymon的普拉克里特語詞條]],不留重定向 9429027 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的旁遮普語詞條 14 3249061 9813990 9633918 2026-06-15T20:15:07Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的旁遮普語詞條]]至[[Category:引用缺失etymon的旁遮普語詞條]],不留重定向 9429030 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的阿拉伯語詞條 14 3249064 9814037 9633933 2026-06-15T20:16:41Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的阿拉伯語詞條]]至[[Category:引用缺失etymon的阿拉伯語詞條]],不留重定向 9429035 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的印地語詞條 14 3249067 9813931 9633890 2026-06-15T20:11:54Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的印地語詞條]]至[[Category:引用缺失etymon的印地語詞條]],不留重定向 9429041 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的梵語詞條 14 3249071 9813994 9633921 2026-06-15T20:15:17Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的梵語詞條]]至[[Category:引用缺失etymon的梵語詞條]],不留重定向 9429049 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的古英語詞條 14 3249139 9813958 9633905 2026-06-15T20:13:09Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的古英語詞條]]至[[Category:引用缺失etymon的古英語詞條]],不留重定向 9429164 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的原始日耳曼語詞條 14 3259497 9813941 9633895 2026-06-15T20:12:20Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的原始日耳曼語詞條]]至[[Category:引用缺失etymon的原始日耳曼語詞條]],不留重定向 9441061 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的古東斯拉夫語詞條 14 3274712 9813954 9633901 2026-06-15T20:12:55Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的古東斯拉夫語詞條]]至[[Category:引用缺失etymon的古東斯拉夫語詞條]],不留重定向 9458493 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的古盧森尼亞語詞條 14 3274713 9813957 9633904 2026-06-15T20:13:07Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的古盧森尼亞語詞條]]至[[Category:引用缺失etymon的古盧森尼亞語詞條]],不留重定向 9458494 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的原始印歐語詞條 14 3282436 9813935 9633893 2026-06-15T20:12:03Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的原始印歐語詞條]]至[[Category:引用缺失etymon的原始印歐語詞條]],不留重定向 9470759 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的德語詞條 14 3284506 9813980 9633913 2026-06-15T20:14:02Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的德語詞條]]至[[Category:引用缺失etymon的德語詞條]],不留重定向 9474773 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的原始西日耳曼語詞條 14 3333507 9813943 9633896 2026-06-15T20:12:25Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的原始西日耳曼語詞條]]至[[Category:引用缺失etymon的原始西日耳曼語詞條]],不留重定向 9595483 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的原始斯拉夫語詞條 14 3336832 9813940 9633894 2026-06-15T20:12:13Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的原始斯拉夫語詞條]]至[[Category:引用缺失etymon的原始斯拉夫語詞條]],不留重定向 9600188 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的原始凱爾特語詞條 14 3338583 9813933 9633891 2026-06-15T20:11:58Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的原始凱爾特語詞條]]至[[Category:引用缺失etymon的原始凱爾特語詞條]],不留重定向 9608443 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的哈薩克語詞條 14 3340077 9813961 9633908 2026-06-15T20:13:21Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的哈薩克語詞條]]至[[Category:引用缺失etymon的哈薩克語詞條]],不留重定向 9610482 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的上古泰米爾語詞條 14 3340205 9813914 9633880 2026-06-15T20:10:58Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的上古泰米爾語詞條]]至[[Category:引用缺失etymon的上古泰米爾語詞條]],不留重定向 9610638 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的世界語詞條 14 3345276 9813915 9633881 2026-06-15T20:11:00Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的世界語詞條]]至[[Category:引用缺失etymon的世界語詞條]],不留重定向 9616935 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的中世紀西班牙語詞條 14 3345277 9813916 9633882 2026-06-15T20:11:03Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的中世紀西班牙語詞條]]至[[Category:引用缺失etymon的中世紀西班牙語詞條]],不留重定向 9616936 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的中古波斯語詞條 14 3345283 9813918 9633883 2026-06-15T20:11:08Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的中古波斯語詞條]]至[[Category:引用缺失etymon的中古波斯語詞條]],不留重定向 9616942 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的中古英語詞條 14 3345294 9813919 9633884 2026-06-15T20:11:11Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的中古英語詞條]]至[[Category:引用缺失etymon的中古英語詞條]],不留重定向 9616953 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的加利西亞語詞條 14 3345295 9813927 9633887 2026-06-15T20:11:43Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的加利西亞語詞條]]至[[Category:引用缺失etymon的加利西亞語詞條]],不留重定向 9616954 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的博杰普爾語詞條 14 3345296 9813929 9633888 2026-06-15T20:11:48Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的博杰普爾語詞條]]至[[Category:引用缺失etymon的博杰普爾語詞條]],不留重定向 9616955 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的卡舒比語詞條 14 3345297 9813930 9633889 2026-06-15T20:11:51Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的卡舒比語詞條]]至[[Category:引用缺失etymon的卡舒比語詞條]],不留重定向 9616956 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的古吉拉特語詞條 14 3345298 9813946 9633897 2026-06-15T20:12:35Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的古吉拉特語詞條]]至[[Category:引用缺失etymon的古吉拉特語詞條]],不留重定向 9616957 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的古法語詞條 14 3345300 9813955 9633902 2026-06-15T20:12:57Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的古法語詞條]]至[[Category:引用缺失etymon的古法語詞條]],不留重定向 9616959 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的古波蘭語詞條 14 3345301 9813956 9633903 2026-06-15T20:12:59Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的古波蘭語詞條]]至[[Category:引用缺失etymon的古波蘭語詞條]],不留重定向 9616960 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的古葡萄牙語詞條 14 3345302 9813959 9633906 2026-06-15T20:13:16Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的古葡萄牙語詞條]]至[[Category:引用缺失etymon的古葡萄牙語詞條]],不留重定向 9616961 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的古高地德語詞條 14 3345303 9813960 9633907 2026-06-15T20:13:19Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的古高地德語詞條]]至[[Category:引用缺失etymon的古高地德語詞條]],不留重定向 9616962 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的奈恩加圖語詞條 14 3345304 9813968 9633909 2026-06-15T20:13:38Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的奈恩加圖語詞條]]至[[Category:引用缺失etymon的奈恩加圖語詞條]],不留重定向 9616963 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的孔卡尼語詞條 14 3345305 9813971 9633910 2026-06-15T20:13:46Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的孔卡尼語詞條]]至[[Category:引用缺失etymon的孔卡尼語詞條]],不留重定向 9616964 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的孟加拉語詞條 14 3345306 9813974 9633911 2026-06-15T20:13:49Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的孟加拉語詞條]]至[[Category:引用缺失etymon的孟加拉語詞條]],不留重定向 9616965 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的巴利語詞條 14 3345307 9813975 9633912 2026-06-15T20:13:52Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的巴利語詞條]]至[[Category:引用缺失etymon的巴利語詞條]],不留重定向 9616966 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的意大利語詞條 14 3345308 9813982 9633914 2026-06-15T20:14:30Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的意大利語詞條]]至[[Category:引用缺失etymon的意大利語詞條]],不留重定向 9616967 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的捷克語詞條 14 3345309 9813985 9633916 2026-06-15T20:14:50Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的捷克語詞條]]至[[Category:引用缺失etymon的捷克語詞條]],不留重定向 9616968 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的斯瓦希里語詞條 14 3345310 9813989 9633917 2026-06-15T20:15:03Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的斯瓦希里語詞條]]至[[Category:引用缺失etymon的斯瓦希里語詞條]],不留重定向 9616969 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的日語詞條 14 3345311 9813991 9633919 2026-06-15T20:15:10Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的日語詞條]]至[[Category:引用缺失etymon的日語詞條]],不留重定向 9616970 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的法語詞條 14 3345312 9813996 9633922 2026-06-15T20:15:22Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的法語詞條]]至[[Category:引用缺失etymon的法語詞條]],不留重定向 9616971 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的漢斯立克語詞條 14 3345313 9814001 9633925 2026-06-15T20:15:46Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的漢斯立克語詞條]]至[[Category:引用缺失etymon的漢斯立克語詞條]],不留重定向 9616972 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的烏爾都語詞條 14 3345314 9814004 9633926 2026-06-15T20:15:50Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的烏爾都語詞條]]至[[Category:引用缺失etymon的烏爾都語詞條]],不留重定向 9616973 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的穆西語詞條 14 3345316 9814010 9633927 2026-06-15T20:16:00Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的穆西語詞條]]至[[Category:引用缺失etymon的穆西語詞條]],不留重定向 9616975 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的英語詞條 14 3345317 9814019 9633928 2026-06-15T20:16:11Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的英語詞條]]至[[Category:引用缺失etymon的英語詞條]],不留重定向 9616976 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的荷蘭語詞條 14 3345318 9814022 9633929 2026-06-15T20:16:18Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的荷蘭語詞條]]至[[Category:引用缺失etymon的荷蘭語詞條]],不留重定向 9616977 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的阿塞拜疆語詞條 14 3345325 9814036 9633932 2026-06-15T20:16:39Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的阿塞拜疆語詞條]]至[[Category:引用缺失etymon的阿塞拜疆語詞條]],不留重定向 9616984 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的阿薩姆語詞條 14 3345335 9814043 9633934 2026-06-15T20:16:51Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的阿薩姆語詞條]]至[[Category:引用缺失etymon的阿薩姆語詞條]],不留重定向 9616994 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的馬來語詞條 14 3345336 9814045 9633935 2026-06-15T20:16:56Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的馬來語詞條]]至[[Category:引用缺失etymon的馬來語詞條]],不留重定向 9616995 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的馬拉地語詞條 14 3345337 9814048 9633936 2026-06-15T20:16:58Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的馬拉地語詞條]]至[[Category:引用缺失etymon的馬拉地語詞條]],不留重定向 9616996 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的原始南達羅毗荼語詞條 14 3352707 9813934 9633892 2026-06-15T20:12:01Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的原始南達羅毗荼語詞條]]至[[Category:引用缺失etymon的原始南達羅毗荼語詞條]],不留重定向 9625870 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Module:Etymon/data 828 3352710 9813889 9746198 2026-06-15T18:15:59Z TongcyDai 53191 9813889 Scribunto text/plain local export = {} export.STATUS = { OK = "ok", INLINE = "inline", MISSING = "missing", REDLINK = "redlink", AMBIGUOUS = "ambiguous", } export.TRANSITIVE = { ALWAYS = "always", -- always recurse into children NEVER = "never", -- never recurse into children CROSS_LANG = "cross_lang", -- only recurse when source lang differs from target lang (but pos chain continues) CROSS_LANG_NO_INTERNAL_SOURCE = "cross_lang_no_internal_source", -- like CROSS_LANG, but source breaks for internal derivations in the same language context } -- Deep merge tables (nested tables are merged recursively, later values override earlier) local function deep_merge(...) local result = {} for _, t in ipairs({ ... }) do for k, v in pairs(t) do if type(v) == "table" and type(result[k]) == "table" then result[k] = deep_merge(result[k], v) else result[k] = v end end end return result end local function make_glossary_link(term, display_text) if not term then return display_text end return "[[Appendix:Glossary#" .. term:gsub(" ", "_") .. "|" .. display_text .. "]]" end -- Extract base word and connector from text like "Borrowed from" or "calque of" local function split_glossary_text(text) for _, pattern in ipairs({ "^(.-)(%s+[Oo][Ff])$", "^(.-)(%s+[Ff][Rr][Oo][Mm])$" }) do local base, rest = text:match(pattern) if base then return base, rest end end return text, "" end local TRANSITIVE = export.TRANSITIVE local function create_keyword(opts) local entry = { is_group = opts.is_group or false, abbrev = opts.abbrev, glossary = opts.glossary, transitive = opts.transitive or TRANSITIVE.ALWAYS, -- default "always" inherited_chain = opts.inherited_chain or false, affix_categories = opts.affix_categories or false, borrowing_type = opts.borrowing_type, specialized_borrowing = opts.specialized_borrowing, toplevel_category = opts.toplevel_category, no_child_categories = opts.no_child_categories or false, source_category_type = opts.source_category_type, invisible = (opts.invisible == true and "all") or opts.invisible or false, pos_override = opts.pos_override, new_sentence = opts.new_sentence or false, separate_clause = opts.separate_clause or false, default_conj = opts.default_conj, min_etymons = opts.min_etymons, max_etymons = opts.max_etymons, term_rules = opts.term_rules, aliases = opts.aliases, } -- Only set text/phrase when visible in text (invisible ~= "all" and ~= "text") local inv = entry.invisible if inv ~= "all" and inv ~= "text" then entry.phrase = opts.phrase if opts.text then if opts.glossary then local base_word, rest = split_glossary_text(opts.text) entry.text = make_glossary_link(opts.glossary, base_word) .. rest else entry.text = opts.text end end end return entry end -- Shared defaults for keyword groups local DEFAULTS = { -- Keywords that pass through inheritance chain inheritance = { transitive = TRANSITIVE.ALWAYS, inherited_chain = true, }, -- Standard transitive derivation transitive = { transitive = TRANSITIVE.ALWAYS, }, -- Standard for internal derivations: transitive across languages, but not within them internal_derivation = { transitive = TRANSITIVE.CROSS_LANG, }, -- Borrowing keywords borrowing = { transitive = TRANSITIVE.ALWAYS, }, -- Affix group keywords (compound words, blends, etc.) affix_group = { is_group = true, min_etymons = 2, transitive = TRANSITIVE.CROSS_LANG, affix_categories = true, }, -- Calque-like keywords (calque, partial calque, semantic loan) calque_like = { transitive = TRANSITIVE.NEVER, no_child_categories = true, new_sentence = true, }, -- Non-transitive influence influence_like = { transitive = TRANSITIVE.NEVER, no_child_categories = true, }, } export.keywords = { -- -- Inheritance keywords -- ["from"] = create_keyword(deep_merge(DEFAULTS.inheritance, { text = "源自", phrase = "源自", term_rules = { entry_lang = true }, })), ["inherited"] = create_keyword(deep_merge(DEFAULTS.inheritance, { text = "繼承自", phrase = "源自", glossary = "inherited", aliases = { "inh" }, term_rules = { family = "disallowed", family_suffix = ";請使用具體語言。", ancestor_check = true, }, })), -- -- Basic derivation keywords -- ["uder"] = create_keyword(deep_merge(DEFAULTS.transitive, { text = "源自", phrase = "源自", toplevel_category = "派生形式不詳的詞", })), ["derived"] = create_keyword(deep_merge(DEFAULTS.transitive, { text = "派生自", phrase = "源自", abbrev = "派生", glossary = "derived terms", aliases = { "der" }, })), -- -- Affix/compound group keywords -- ["affix"] = create_keyword(deep_merge(DEFAULTS.affix_group, { text = "源自", phrase = "源自", min_etymons = 1, aliases = { "af" }, })), ["blend"] = create_keyword(deep_merge(DEFAULTS.affix_group, { text = "混成詞,源自", phrase = "混成自", abbrev = "混成", glossary = "blend", toplevel_category = "混成詞", })), ["univerbation"] = create_keyword(deep_merge(DEFAULTS.affix_group, { text = "合寫詞,源自", phrase = "合寫自", abbrev = "合寫", glossary = "univerbation", toplevel_category = "合寫詞", min_etymons = 1, aliases = { "univ" }, })), ["vrd-af"] = create_keyword(deep_merge(DEFAULTS.affix_group, { text = "Vṛddhi派生詞,源自", phrase = "Vṛddhi派生自", abbrev = "vṛd.", glossary = "vṛddhi derivative", toplevel_category = "Vṛddhi派生詞", })), ["sa-af"] = create_keyword(deep_merge(DEFAULTS.affix_group, { text = "[[梵語]][[Appendix:Glossary#構詞|構詞]],源自", phrase = "梵語構詞自", toplevel_category = "梵語構詞", })), -- -- Borrowing keywords -- ["bor"] = create_keyword(deep_merge(DEFAULTS.borrowing, { text = "借自", phrase = "借自", abbrev = "借詞", glossary = "loanword", borrowing_type = "borrowed", aliases = { "borrowed" }, })), ["lbor"] = create_keyword(deep_merge(DEFAULTS.borrowing, { text = "古典借詞,源自", phrase = "借自", abbrev = "古典", glossary = "learned borrowing", specialized_borrowing = "learned", })), ["obor"] = create_keyword(deep_merge(DEFAULTS.borrowing, { text = "形譯詞,源自", phrase = "借自", abbrev = "形譯", glossary = "orthographic borrowing", specialized_borrowing = "orthographic", })), ["slbor"] = create_keyword(deep_merge(DEFAULTS.borrowing, { text = "半接觸借詞,源自", phrase = "借自", abbrev = "半接觸", glossary = "semi-learned borrowing", specialized_borrowing = "semi-learned", })), ["ubor"] = create_keyword(deep_merge(DEFAULTS.borrowing, { text = "非同化借詞,源自", phrase = "借自", abbrev = "非同化", glossary = "unadapted borrowing", specialized_borrowing = "unadapted", })), -- -- Calque-like keywords (non-transitive, start new sentence) -- ["calque"] = create_keyword(deep_merge(DEFAULTS.calque_like, { text = "仿譯自", phrase = "仿譯自", abbrev = "仿譯", glossary = "calque", specialized_borrowing = "calque", aliases = { "cal", "clq" }, })), ["partial calque"] = create_keyword(deep_merge(DEFAULTS.calque_like, { text = "部分仿譯自", phrase = "部分仿譯自", abbrev = "部分仿譯", glossary = "partial calque", specialized_borrowing = "partial-calque", aliases = { "pcal" }, })), ["semantic loan"] = create_keyword(deep_merge(DEFAULTS.calque_like, { text = "意譯自", phrase = "意譯自", abbrev = "意譯", glossary = "semantic loan", specialized_borrowing = "semantic-loan", aliases = { "sl" }, })), ["psm"] = create_keyword(deep_merge(DEFAULTS.calque_like, { text = "音義兼譯自", phrase = "音義兼譯自", abbrev = "音義兼譯", glossary = "phono-semantic matching", specialized_borrowing = "phono-semantic-matching", aliases = { "phono-semantic matching" }, })), -- -- Influence keywords (non-transitive, separate clause) -- ["influence"] = create_keyword(deep_merge(DEFAULTS.influence_like, { text = "受影響於", phrase = "受影響於", abbrev = "受影響", glossary = "contamination", separate_clause = true, })), -- -- Morphological derivation keywords -- ["clipping"] = create_keyword(deep_merge(DEFAULTS.transitive, { text = "截斷形式,源自", phrase = "截斷自", abbrev = "截斷", glossary = "clipping", toplevel_category = "截斷形式", aliases = { "clip" }, })), ["ellipsis"] = create_keyword(deep_merge(DEFAULTS.transitive, { text = "縮略形式,源自", phrase = "縮略自", abbrev = "縮略", glossary = "ellipsis", toplevel_category = "縮略形式", aliases = { "ellip" }, })), ["back-formation"] = create_keyword(deep_merge(DEFAULTS.transitive, { text = "逆構詞,源自", phrase = "逆構自", abbrev = "逆構", glossary = "back-formation", toplevel_category = "逆構詞", aliases = { "bf" }, })), ["nominalization"] = create_keyword(deep_merge(DEFAULTS.transitive, { text = "名詞化,源自", phrase = "名詞化自", abbrev = "名詞化", glossary = "nominalization", toplevel_category = "名詞化", aliases = { "nom" }, })), ["transliteration"] = create_keyword(deep_merge(DEFAULTS.transitive, { text = "音譯自", phrase = "借自", abbrev = "音譯", glossary = "transliteration", aliases = { "translit" }, })), ["vrd"] = create_keyword(deep_merge(DEFAULTS.transitive, { text = "Vṛddhi派生詞,源自", phrase = "派生自", abbrev = "vṛd.", glossary = "vṛddhi derivative", toplevel_category = "Vṛddhi派生詞", })), ["apheretic"] = create_keyword(deep_merge(DEFAULTS.transitive, { text = "首音脫落詞,源自", phrase = "源自", abbrev = "首音脫落", glossary = "apheresis", aliases = { "apheresis", "aphetic" }, })), ["denominal"] = create_keyword(deep_merge(DEFAULTS.transitive, { text = "名詞派生的動詞,源自", phrase = "派生自名詞", abbrev = "名詞派生", glossary = "denominal", toplevel_category = "名詞派生詞", aliases = { "denom" }, })), ["deverbal"] = create_keyword(deep_merge(DEFAULTS.transitive, { text = "動詞派生詞,源自", phrase = "派生自動詞", abbrev = "動詞派生", glossary = "deverbal", toplevel_category = "動詞派生詞", })), ["reduplication"] = create_keyword(deep_merge(DEFAULTS.transitive, { text = "疊詞,源自", phrase = "疊詞,源自", abbrev = "疊詞", glossary = "reduplication", toplevel_category = "疊詞", aliases = { "redup" }, })), ["abbreviation"] = create_keyword(deep_merge(DEFAULTS.transitive, { text = "縮寫,源自", phrase = "縮寫自", abbrev = "縮寫", glossary = "abbreviation", aliases = { "abbr", "abbrev" }, })), ["syllabic abbreviation"] = create_keyword(deep_merge(DEFAULTS.transitive, { text = "音節縮寫,源自", phrase = "音節縮寫自", abbrev = "音節縮寫", glossary = "syllabic abbreviation", aliases = { "sylabbr", "sylabbrev" }, })), ["acronym"] = create_keyword(deep_merge(DEFAULTS.transitive, { text = "首字母縮拼詞,源自", phrase = "首字母縮拼詞,源自", abbrev = "首字母縮拼", glossary = "acronym", aliases = { "acro" }, })), ["initialism"] = create_keyword(deep_merge(DEFAULTS.transitive, { text = "首字母縮略詞,源自", phrase = "首字母縮略詞,源自", abbrev = "首字母縮略", glossary = "initialism", aliases = { "init" }, })), ["metathesis"] = create_keyword(deep_merge(DEFAULTS.transitive, { text = "語音換位,源自", phrase = "語音換位,源自", abbrev = "語音換位", glossary = "metathesis", toplevel_category = "語音換位詞", aliases = { "meta" }, })), -- -- Invisible keywords (no text output) -- ["root"] = create_keyword { transitive = TRANSITIVE.ALWAYS, invisible = "all", pos_override = "root", }, ["afeq"] = create_keyword(deep_merge(DEFAULTS.affix_group, { text = "源自", phrase = "源自", transitive = TRANSITIVE.NEVER, min_etymons = 1, invisible = "all", })), } -- Template-parameter supplements. export.supplements = { doublet = { text = "同源對似詞,源自", phrase = "同源對似詞,源自", glossary = "doublet", toplevel_category = "同源對似詞", default_conj = "和", term_rules = { entry_lang = true, require_term = true, disallow = { "suppress", "unknown", "family" }, }, }, } local aliases_to_register = {} local canonical_aliases = {} -- Map every keyword (canonical or alias) to its canonical form for consistent checks and tracking. export.keyword_canonical = {} for name, keyword_data in pairs(export.keywords) do export.keyword_canonical[name] = name if keyword_data.aliases then canonical_aliases[name] = keyword_data.aliases for _, alias in ipairs(keyword_data.aliases) do if export.keywords[alias] then error("Alias '" .. alias .. "' defined in keyword '" .. name .. "' collides with existing keyword '" .. alias .. "'.") end if aliases_to_register[alias] then error("Alias '" .. alias .. "' defined in keyword '" .. name .. "' is already claimed by another keyword.") end aliases_to_register[alias] = keyword_data export.keyword_canonical[alias] = name end keyword_data.aliases = nil end end for alias, data in pairs(aliases_to_register) do export.keywords[alias] = data end -- -- Language exception presets -- local EXCEPTION_PRESETS = { -- Fully disallowed: no tree, no text, no categories disallowed = { disallow = { tree = true, text = true }, suppress_categories = true, }, -- Suppress transliteration only no_translit = { suppress_tr = true, }, -- Suppress all categories only no_categories = { suppress_categories = true, }, } --[=[ Available exception options: disallow = { Related options for disallowing output: tree Disallow etymology trees for this language text Disallow etymology text generation for this language ref Reference link shown when tree/text is disallowed } suppress_tr Suppress transliteration in links suppress_categories Suppress all category generation normalize_to Normalize language code to a different code normalize_from_families Apply normalization to languages in these families normalize_exclude_families Exclude these families from normalization keyword_overrides Per-keyword categorisation overrides (e.g. { ["af"] = { transitive = TRANSITIVE.NEVER } }) ]=] local function create_exception(preset, overrides) local base = preset and EXCEPTION_PRESETS[preset] or {} return deep_merge(base, overrides or {}) end export.config = { lang_exceptions = { ["zh"] = create_exception("disallowed", { disallow = { ref = "[[en:Wiktionary:Beer parlour/2025/May#Template:etymon for Chinese]]" }, suppress_tr = true, normalize_to = "zh", normalize_from_families = { "zhx" }, normalize_exclude_families = { "qfa-cnt" }, }), }, } -- Supported codes for the nominalization <g:code> modifier (subset of common gender/number-style codes) export.nominalization_g_codes = { ["m"] = "陽性", ["f"] = "陰性", ["n"] = "中性", ["c"] = "通性", ["gneut"] = "性別中立", ["s"] = "單數", ["p"] = "複數", ["d"] = "雙數", ["pauc"] = "少數", ["mf"] = "陽性或陰性", ["fm"] = "陽性或陰性", ["mfn"] = "陽、陰或中性", ["mnf"] = "陽、中或陰性", ["fmn"] = "陰、陽或中性", ["fnm"] = "陰、中或陽性", ["nmf"] = "中、陽或陰性", ["nfm"] = "中、陰或陽性", } -- -- Propagate keyword overrides to aliases -- if export.config.lang_exceptions then for lang_code, exception in pairs(export.config.lang_exceptions) do if exception.keyword_overrides then for canonical, aliases in pairs(canonical_aliases) do if exception.keyword_overrides[canonical] then local override_data = exception.keyword_overrides[canonical] for _, alias in ipairs(aliases) do if not exception.keyword_overrides[alias] then exception.keyword_overrides[alias] = override_data end end end end end end end return export hdyxgeo436bcxt4m993eox3o07vcl36 Category:使用無ID之etymon的頁面 14 3354143 9814088 9633858 2026-06-15T20:18:54Z TongcyDai 53191 TongcyDai移动页面[[Category:使用無ID詞源的頁面]]至[[Category:使用無ID之etymon的頁面]],不留重定向 9633858 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的奧利亞語詞條 14 3354995 9813969 9634974 2026-06-15T20:13:41Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的奧利亞語詞條]]至[[Category:引用缺失etymon的奧利亞語詞條]],不留重定向 9634974 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的中阿特拉斯柏柏爾語詞條 14 3355002 9813921 9634981 2026-06-15T20:11:24Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的中阿特拉斯柏柏爾語詞條]]至[[Category:引用缺失etymon的中阿特拉斯柏柏爾語詞條]],不留重定向 9634981 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的科西嘉語詞條 14 3355005 9814009 9634985 2026-06-15T20:15:58Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的科西嘉語詞條]]至[[Category:引用缺失etymon的科西嘉語詞條]],不留重定向 9634985 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的西西里語詞條 14 3355010 9814031 9634990 2026-06-15T20:16:31Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的西西里語詞條]]至[[Category:引用缺失etymon的西西里語詞條]],不留重定向 9634990 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的科瓦語詞條 14 3355023 9814007 9635007 2026-06-15T20:15:55Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的科瓦語詞條]]至[[Category:引用缺失etymon的科瓦語詞條]],不留重定向 9635007 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的基爾丁薩米語詞條 14 3355038 9813965 9635023 2026-06-15T20:13:31Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的基爾丁薩米語詞條]]至[[Category:引用缺失etymon的基爾丁薩米語詞條]],不留重定向 9635023 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的塞浦路斯阿拉伯語詞條 14 3355054 9813966 9635039 2026-06-15T20:13:33Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的塞浦路斯阿拉伯語詞條]]至[[Category:引用缺失etymon的塞浦路斯阿拉伯語詞條]],不留重定向 9635039 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的他加祿語詞條 14 3383326 9813923 9683161 2026-06-15T20:11:29Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的他加祿語詞條]]至[[Category:引用缺失etymon的他加祿語詞條]],不留重定向 9683161 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Template:RQ:Browne Pseudodoxia Epidemica 10 3385704 9813786 9686540 2026-06-15T14:02:47Z TongcyDai 53191 9813786 wikitext text/x-wiki {{#invoke:quote|call_quote_template |en |author = w:托馬斯·布朗 |chapter = {{{chapter|{{{1|}}}}}} |title = [[w:Pseudodoxia Epidemica|Pseudodoxia Epidemica:{{nb...|Or, Enquiries into Very Many Received Tenents, and Commonly Presumed Truths.{{#ifeq:{{{edition|}}}|2nd|&#32;[...] Together with Some Marginall Observations, and a Table Alphabeticall at the End.}}}}]] |edition = {{#ifeq:{{{edition|}}}|2nd|2nd}} |location = 倫敦 |publisher = {{...|Printed by}} {{#ifeq:{{{edition|}}}|2nd | A[braham] Miller, for Edw[ard] Dod and Nath[aniel] Ekins,{{nb...|at the Gunne in Ivie Lane.}} | T[homas] H[arper] for Edward Dod,{{nb...|and are to be sold in Ivie Lane.}} }} |year = 16{{#ifeq:{{{edition|}}}|2nd|50|46}} |section = {{#if:{{{page|}}}{{{pageref|}}}{{{2|}}} | {{#ifeq:{{{edition|}}}|2nd | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<37 | 1st | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<85 | 2nd | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<153 | 3rd | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<197 | 4th | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<234 | 5th | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<290 | 6th | 7th }} }} }} }} }} }} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<49 | 1st | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<104 | 2nd | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<179 | 3rd | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<233 | 4th | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<273 | 5th | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<339 | 6th | 7th }} }} }} }} }} }} }} book{{#if:{{{para|}}}{{{paragraph|}}}|,&#32;}} }}{{#if:{{{para|}}}{{{paragraph|}}} | paragraph {{{para|{{{paragraph|}}}}}} }} |pageparam = 2 |pageurl = https://{{#ifeq:{{{edition|}}}|2nd | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}>68 and {{{page|}}}{{{pageref|}}}{{{2|}}}<71<!--For pages 69 and 70 missing from the Internet Archive version--> | books.google.com/books?id=ym0lfhtc2-sC&pg=PA{{{page|{{{pageref|{{{2|}}}}}}}}} | archive.org/details/BrownePseudodoxia1650Clark/page/n{{#expr:{{{page|{{{pageref|{{{2|}}}}}}}}}+{{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<69 | 19 | 15<!--pages 69 and 70 missing--> }}}}/mode/1up }} | archive.org/details/thomas-browne-pseudodoxia-epidemica-or-enquiries-into-very-many-received-tenents/page/n{{#expr:{{{page|{{{pageref|{{{2|}}}}}}}}}/2+8.5{{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}>7|-1}}{{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}>335|-1}} round 0}}/mode/1up }} |oclc = {{#ifeq:{{{edition|}}}|2nd | 152706203 | 1008551266 }} |textparam = 3 |allowparams = chapter,1,edition,pageref,para,paragraph }}<noinclude>{{documentation}}</noinclude> 552xe6yl3ngafo5aogywd2cufto784h 9813787 9813786 2026-06-15T14:03:07Z TongcyDai 53191 9813787 wikitext text/x-wiki {{#invoke:quote|call_quote_template |en |author = w:托馬斯·布朗 |chapter = {{{chapter|{{{1|}}}}}} |title = [[w:Pseudodoxia Epidemica|Pseudodoxia Epidemica:{{nb...|Or, Enquiries into Very Many Received Tenents, and Commonly Presumed Truths.{{#ifeq:{{{edition|}}}|2nd|&#32;[...] Together with Some Marginall Observations, and a Table Alphabeticall at the End.}}}}]] |edition = {{#ifeq:{{{edition|}}}|2nd|2nd}} |location = 倫敦 |publisher = {{...|Printed by}} {{#ifeq:{{{edition|}}}|2nd | A[braham] Miller, for Edw[ard] Dod and Nath[aniel] Ekins,{{nb...|at the Gunne in Ivie Lane.}} | T[homas] H[arper] for Edward Dod,{{nb...|and are to be sold in Ivie Lane.}} }} |year = 16{{#ifeq:{{{edition|}}}|2nd|50|46}} |section = {{#if:{{{page|}}}{{{pageref|}}}{{{2|}}} | {{#ifeq:{{{edition|}}}|2nd | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<37 | 1st | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<85 | 2nd | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<153 | 3rd | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<197 | 4th | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<234 | 5th | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<290 | 6th | 7th }} }} }} }} }} }} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<49 | 1st | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<104 | 2nd | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<179 | 3rd | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<233 | 4th | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<273 | 5th | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<339 | 6th | 7th }} }} }} }} }} }} }} book{{#if:{{{para|}}}{{{paragraph|}}}|,&#32;}} }}{{#if:{{{para|}}}{{{paragraph|}}} | paragraph {{{para|{{{paragraph|}}}}}} }} |pageparam = 2 |pageurl = https://{{#ifeq:{{{edition|}}}|2nd | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}>68 and {{{page|}}}{{{pageref|}}}{{{2|}}}<71<!--For pages 69 and 70 missing from the Internet Archive version--> | books.google.com/books?id=ym0lfhtc2-sC&pg=PA{{{page|{{{pageref|{{{2|}}}}}}}}} | archive.org/details/BrownePseudodoxia1650Clark/page/n{{#expr:{{{page|{{{pageref|{{{2|}}}}}}}}}+{{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}<69 | 19 | 15<!--pages 69 and 70 missing--> }}}}/mode/1up }} | archive.org/details/thomas-browne-pseudodoxia-epidemica-or-enquiries-into-very-many-received-tenents/page/n{{#expr:{{{page|{{{pageref|{{{2|}}}}}}}}}/2+8.5{{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}>7|-1}}{{#ifexpr:{{{page|}}}{{{pageref|}}}{{{2|}}}>335|-1}} round 0}}/mode/1up }} |oclc = {{#ifeq:{{{edition|}}}|2nd | 152706203 | 1008551266 }} |textparam = 3 |allowparams = chapter,1,edition,pageref,para,paragraph }}<noinclude>{{documentation}}{{quotecat}}</noinclude> sov2prlzo1d0r2a2g2i5wtt7chcsr6x Category:引用缺失etymon的翁布里亞語詞條 14 3387099 9814017 9688333 2026-06-15T20:16:09Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的翁布里亞語詞條]]至[[Category:引用缺失etymon的翁布里亞語詞條]],不留重定向 9688333 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的帕哈里-波特瓦里語詞條 14 3390367 9813976 9692662 2026-06-15T20:13:55Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的帕哈里-波特瓦里語詞條]]至[[Category:引用缺失etymon的帕哈里-波特瓦里語詞條]],不留重定向 9692662 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Module:Etymon/data/text allowed 828 3390380 9813896 9747279 2026-06-15T18:29:48Z TongcyDai 53191 9813896 Scribunto text/plain --[=[ Languages and families that may use the {{etymon}} `text=` parameter (language-community consensus). ]=] return { -- Mode: "off" = disabled, "warn" = warn only, "error" = enforce. default_mode = "warn", langs = { ["bg"] = true, ["bnt-sab-pro"] = true, ["cs"] = true, ["en"] = true, ["eo"] = true, ["es"] = true, ["fa"] = true, ["hsb"] = true, ["iir-pro"] = true, ["jbo"] = true, ["jdt"] = true, ["la"] = true, ["mul"] = true, ["ota"] = true, ["ps"] = true, ["ro"] = true, ["sk"] = true, ["sw"] = true, ["tg"] = true, ["tl"] = true, ["tr"] = true, ["uk"] = true, ["uz"] = true, ["zlw-ocs"] = true, ["zlw-osk"] = true, ["zle-ono"] = true, ["sla-pro"] = true, ---Austronesian ["map-pro"] = true, ["map-ata-pro"] = true, ["poz-pro"] = true, ["poz-btk-pro"] = true, ["poz-cet-pro"] = true, ["pqe-pro"] = true, ["poz-hce-pro"] = true, ["poz-oce-pro"] = true, ["poz-pol-pro"] = true, ["poz-pnp-pro"] = true, ["poz-pep-pro"] = true, ["poz-mic-pro"] = true, ["poz-lgx-pro"] = true, ["poz-msa-pro"] = true, ["poz-mcm-pro"] = true, ["cmc-pro"] = true, ["poz-mly-pro"] = true, ["poz-swa-pro"] = true, ["btk-pro"] = true, ["phi-pro"] = true, ["phi-kal-pro"] = true, ["poz-ssw-pro"] = true, ["dru-pro"] = true, }, families = { ["ber"] = true, -- Berber ["dra"] = true, -- Dravidian ["inc"] = true, -- Indo-Aryan ["iir-nur"] = true, -- Nuristani ["roa-gap"] = true, -- Galician-Portuguese ["sem-ara"] = true, -- Aramaic ["sem-arb"] = true, -- Arabic ["tup"] = true, -- Tupian ["zlw-lch"] = true, -- Lechitic ["mun"] = true, -- Munda }, } 3og0u66dbd5gk146lmw7ubsa2iyx4mo Category:引用缺失etymon的中古孟加拉語詞條 14 3397437 9813917 9701773 2026-06-15T20:11:05Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的中古孟加拉語詞條]]至[[Category:引用缺失etymon的中古孟加拉語詞條]],不留重定向 9701773 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的原始意大利語詞條 14 3397438 9813938 9701774 2026-06-15T20:12:11Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的原始意大利語詞條]]至[[Category:引用缺失etymon的原始意大利語詞條]],不留重定向 9701774 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的原始波羅的-斯拉夫語詞條 14 3397439 9813942 9701775 2026-06-15T20:12:22Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的原始波羅的-斯拉夫語詞條]]至[[Category:引用缺失etymon的原始波羅的-斯拉夫語詞條]],不留重定向 9701775 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的原始達羅毗荼語詞條 14 3397440 9813944 9701776 2026-06-15T20:12:31Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的原始達羅毗荼語詞條]]至[[Category:引用缺失etymon的原始達羅毗荼語詞條]],不留重定向 9701776 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的古教會斯拉夫語詞條 14 3401100 9813952 9706110 2026-06-15T20:12:50Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的古教會斯拉夫語詞條]]至[[Category:引用缺失etymon的古教會斯拉夫語詞條]],不留重定向 9706110 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的圖瓦語詞條 14 3401101 9813964 9706112 2026-06-15T20:13:28Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的圖瓦語詞條]]至[[Category:引用缺失etymon的圖瓦語詞條]],不留重定向 9706112 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的朝鮮語詞條 14 3401102 9813993 9706113 2026-06-15T20:15:15Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的朝鮮語詞條]]至[[Category:引用缺失etymon的朝鮮語詞條]],不留重定向 9706113 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的波拉布語詞條 14 3401103 9813997 9706114 2026-06-15T20:15:32Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的波拉布語詞條]]至[[Category:引用缺失etymon的波拉布語詞條]],不留重定向 9706114 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的保加利亞語詞條 14 3402209 9813925 9707603 2026-06-15T20:11:38Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的保加利亞語詞條]]至[[Category:引用缺失etymon的保加利亞語詞條]],不留重定向 9707603 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的安提瓜和巴布達克里奧爾英語詞條 14 3409825 9813913 9721268 2026-06-15T20:10:56Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的安提瓜和巴布達克里奧爾英語詞條]]至[[Category:引用缺失etymon的安提瓜和巴布達克里奧爾英語詞條]],不留重定向 9721268 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的康沃爾語詞條 14 3409953 9813979 9721402 2026-06-15T20:13:59Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的康沃爾語詞條]]至[[Category:引用缺失etymon的康沃爾語詞條]],不留重定向 9721402 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的古愛爾蘭語詞條 14 3409992 9813950 9721447 2026-06-15T20:12:45Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的古愛爾蘭語詞條]]至[[Category:引用缺失etymon的古愛爾蘭語詞條]],不留重定向 9721447 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的泰米爾語詞條 14 3410074 9814000 9721546 2026-06-15T20:15:44Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的泰米爾語詞條]]至[[Category:引用缺失etymon的泰米爾語詞條]],不留重定向 9721546 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的牙買加克里奧爾語詞條 14 3411466 9814005 9723505 2026-06-15T20:15:53Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的牙買加克里奧爾語詞條]]至[[Category:引用缺失etymon的牙買加克里奧爾語詞條]],不留重定向 9723505 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的沃拉普克語詞條 14 3412050 9813995 9724150 2026-06-15T20:15:19Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的沃拉普克語詞條]]至[[Category:引用缺失etymon的沃拉普克語詞條]],不留重定向 9724150 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的約拉語詞條 14 3412055 9814014 9724155 2026-06-15T20:16:04Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的約拉語詞條]]至[[Category:引用缺失etymon的約拉語詞條]],不留重定向 9724155 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的阿貝納基語詞條 14 3412056 9814044 9724156 2026-06-15T20:16:53Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的阿貝納基語詞條]]至[[Category:引用缺失etymon的阿貝納基語詞條]],不留重定向 9724156 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的阿爾巴尼亞語詞條 14 3412138 9814040 9724240 2026-06-15T20:16:48Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的阿爾巴尼亞語詞條]]至[[Category:引用缺失etymon的阿爾巴尼亞語詞條]],不留重定向 9724240 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的羅馬尼亞語詞條 14 3413094 9814015 9725231 2026-06-15T20:16:06Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的羅馬尼亞語詞條]]至[[Category:引用缺失etymon的羅馬尼亞語詞條]],不留重定向 9725231 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的印度河科希斯坦語詞條 14 3415796 9813932 9732191 2026-06-15T20:11:56Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的印度河科希斯坦語詞條]]至[[Category:引用缺失etymon的印度河科希斯坦語詞條]],不留重定向 9732191 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的西班牙語詞條 14 3419491 9814027 9736884 2026-06-15T20:16:25Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的西班牙語詞條]]至[[Category:引用缺失etymon的西班牙語詞條]],不留重定向 9736884 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的哥特語詞條 14 3419512 9813962 9736911 2026-06-15T20:13:24Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的哥特語詞條]]至[[Category:引用缺失etymon的哥特語詞條]],不留重定向 9736911 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的原始馬來-波利尼西亞語詞條 14 3419513 9813945 9736912 2026-06-15T20:12:33Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的原始馬來-波利尼西亞語詞條]]至[[Category:引用缺失etymon的原始馬來-波利尼西亞語詞條]],不留重定向 9736912 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的冰島語詞條 14 3421771 9813926 9739691 2026-06-15T20:11:41Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的冰島語詞條]]至[[Category:引用缺失etymon的冰島語詞條]],不留重定向 9739691 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的加泰羅尼亞語詞條 14 3421772 9813928 9739692 2026-06-15T20:11:45Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的加泰羅尼亞語詞條]]至[[Category:引用缺失etymon的加泰羅尼亞語詞條]],不留重定向 9739692 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的噶瑪蘭語詞條 14 3421773 9813963 9739693 2026-06-15T20:13:26Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的噶瑪蘭語詞條]]至[[Category:引用缺失etymon的噶瑪蘭語詞條]],不留重定向 9739693 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的威爾士語詞條 14 3421774 9813970 9739694 2026-06-15T20:13:43Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的威爾士語詞條]]至[[Category:引用缺失etymon的威爾士語詞條]],不留重定向 9739694 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的帕盧拉語詞條 14 3421775 9813977 9739695 2026-06-15T20:13:57Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的帕盧拉語詞條]]至[[Category:引用缺失etymon的帕盧拉語詞條]],不留重定向 9739695 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的蘇龍語詞條 14 3421776 9814026 9739696 2026-06-15T20:16:23Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的蘇龍語詞條]]至[[Category:引用缺失etymon的蘇龍語詞條]],不留重定向 9739696 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的原始希臘語詞條 14 3422293 9813937 9740280 2026-06-15T20:12:08Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的原始希臘語詞條]]至[[Category:引用缺失etymon的原始希臘語詞條]],不留重定向 9740280 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的中古高地德語詞條 14 3428118 9813920 9747282 2026-06-15T20:11:18Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的中古高地德語詞條]]至[[Category:引用缺失etymon的中古高地德語詞條]],不留重定向 9747282 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的托克皮辛語詞條 14 3439987 9813983 9761380 2026-06-15T20:14:41Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的托克皮辛語詞條]]至[[Category:引用缺失etymon的托克皮辛語詞條]],不留重定向 9761380 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的馬爾他語詞條 14 3439988 9814049 9761381 2026-06-15T20:17:01Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的馬爾他語詞條]]至[[Category:引用缺失etymon的馬爾他語詞條]],不留重定向 9761381 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的諾曼語詞條 14 3445353 9814034 9767825 2026-06-15T20:16:36Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的諾曼語詞條]]至[[Category:引用缺失etymon的諾曼語詞條]],不留重定向 9767825 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的烏克蘭語詞條 14 3458928 9814002 9787406 2026-06-15T20:15:48Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的烏克蘭語詞條]]至[[Category:引用缺失etymon的烏克蘭語詞條]],不留重定向 9787406 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的古斯洛伐克語詞條 14 3474922 9813953 9807143 2026-06-15T20:12:52Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的古斯洛伐克語詞條]]至[[Category:引用缺失etymon的古斯洛伐克語詞條]],不留重定向 9807143 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的斯洛溫語詞條 14 3474923 9813988 9807144 2026-06-15T20:15:01Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的斯洛溫語詞條]]至[[Category:引用缺失etymon的斯洛溫語詞條]],不留重定向 9807144 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的塞爾維亞-克羅地亞語詞條 14 3477220 9813967 9810083 2026-06-15T20:13:36Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的塞爾維亞-克羅地亞語詞條]]至[[Category:引用缺失etymon的塞爾維亞-克羅地亞語詞條]],不留重定向 9810083 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的斯洛文尼亞語詞條 14 3477223 9813987 9810086 2026-06-15T20:14:59Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的斯洛文尼亞語詞條]]至[[Category:引用缺失etymon的斯洛文尼亞語詞條]],不留重定向 9810086 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的立陶宛語詞條 14 3477224 9814012 9810087 2026-06-15T20:16:02Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的立陶宛語詞條]]至[[Category:引用缺失etymon的立陶宛語詞條]],不留重定向 9810087 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的古捷克語詞條 14 3479579 9813951 9813671 2026-06-15T20:12:47Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的古捷克語詞條]]至[[Category:引用缺失etymon的古捷克語詞條]],不留重定向 9813671 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:引用缺失etymon的斯洛伐克語詞條 14 3479580 9813986 9813672 2026-06-15T20:14:53Z TongcyBot 83009 TongcyBot移动页面[[Category:引用缺失詞源的斯洛伐克語詞條]]至[[Category:引用缺失etymon的斯洛伐克語詞條]],不留重定向 9813672 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Reconstruction:原始意大利語/-āzios 118 3479605 9814680 9813713 2026-06-16T11:01:16Z TongcyDai 53191 9814680 wikitext text/x-wiki {{reconstructed}} ==原始意大利語== ===詞源=== {{etymon|itc-pro|:der|ine-pro:*-yós<id:後綴>|id=形容詞}} 源自早期的 {{m|itc-pro||*-āzijos}},<ref>{{R:la:OHCGL|page=276|passage=*-āsii̯o-}}</ref><ref>{{R:ine:HCHIEL|843|''*-āsii̯o-''}}</ref>源自 {{m|itc-pro||*-āso-}}(源自{{der|itc-pro|ine-pro||*-eh₂so-}},亦參見赫梯語表示附屬關係的後綴 ''-ašša-''),並由表示關係的原始印歐語形容詞後綴 {{m|ine-pro|*-yós||屬於……的}} 擴展而來。<ref>{{R:la:Miller|pages=140–41|passage=*-ās-(i)yo-}}</ref> ===後綴=== {{head|itc-pro|後綴}}<ref>{{R:itc:Buck|1=186|passage=*-āsi̯o-}}</ref><ref>{{R:xum:Poultney:1959|1=87|text=*-āsyo-}}</ref><ref>{{R:itc-sbl:Wallace:2007|page=34|passage=*-(a)sio-}}</ref><ref>{{R:osc:Nishimura:2017|page=98|passage=''*-as-ii̯o-'' 變成了(可能經過 ''*-asio-'' >)''*-asi̯o-''}}</ref> # {{n-g|用於從名詞(以及罕見的數詞)構成關係形容詞}} ====變格==== {{itc-decl-adj-o+a|-āzi}} ====派生詞彙==== {{suffixsee|itc-pro}} ====派生語彙==== * {{desc|la|-ārius}} {{see desc}} * {{desc|osc|-𐌀𐌔𐌉𐌔|pos=nom. sg.|-𐌀𐌔𐌉𐌞𐌔|pos2=nom. pl. m.|-𐌀𐌔𐌉𐌞𐌝|pos3=dat. sg. m.|-𐌀𐌔𐌉𐌀𐌔|pos4=nom. pl. f.|-𐌀𐌔𐌉𐌀𐌝|pos5=loc. sg. f.}} * {{desc|xum|-𐌀𐌓𐌉𐌖𐌓|pos1=nom. pl. m.|-𐌀𐌓𐌉𐌀𐌚|pos2=acc. pl. f.|q3=帶有明顯未發生 R 音化(rhotacism)的現象?|-𐌀𐌔𐌉𐌀𐌓𐌖|pos3=gen. pl. f.|-𐌀𐌔𐌉𐌄𐌓|pos4=abl. pl.}} ===參考資料=== <references/> es070blug80jbq0t0lzfcayu5xrvik6 綠衛兵 0 3479610 9813719 2026-06-15T12:02:25Z ~2026-35085-62 133925 [[w:WP:AES|←]]建立內容為「 ==中文=== *[[:w:民主進步黨|民主進步黨]]或[[泛綠]]的激進支持者,部份行為如[[紅衛兵]]。」的新頁面 9813719 wikitext text/x-wiki ==中文=== *[[:w:民主進步黨|民主進步黨]]或[[泛綠]]的激進支持者,部份行為如[[紅衛兵]]。 a7evpesdiip9n7wx5xkkezqg77sr8sj 9813720 9813719 2026-06-15T12:03:31Z ~2026-35085-62 133925 9813720 wikitext text/x-wiki ==漢語== {{zh-forms|s=綠衛兵}} *[[:w:民主進步黨|民主進步黨]]或[[泛綠]]的激進支持者,部份行為如[[紅衛兵]]。 2lrbzl5o19pkg2kwsth5mfdzdvqa1ch 9813721 9813720 2026-06-15T12:04:50Z ~2026-35085-62 133925 9813721 wikitext text/x-wiki ==漢語== {{zh-forms|s=绿卫兵}} *[[:w:民主進步黨|民主進步黨]]或[[泛綠]]的激進支持者,部份行為如[[紅衛兵]]。 sevpbrlnsf4d95z8hulgddfxh6uqvkq 9813722 9813721 2026-06-15T12:05:15Z ~2026-35085-62 133925 9813722 wikitext text/x-wiki ==漢語== {{zh-forms|s=绿卫兵}} {{zh-pron |m=lǜwèibīng |cat=n }} *[[:w:民主進步黨|民主進步黨]]或[[泛綠]]的激進支持者,部份行為如[[紅衛兵]]。 mdiqyrg6hn7agz8mz74hb45od4p8lpq 9813723 9813722 2026-06-15T13:01:43Z Matt Zhuang 40037 9813723 wikitext text/x-wiki ==漢語== {{zh-forms|s=绿卫兵}} {{zh-pron |m=lǜwèibīng |cat=n }} *{{lb|zh|Taiwan|derogatory|offensive}}[[:w:民主進步黨|民主進步黨]]或[[泛綠]]的激進支持者,部份行為如[[紅衛兵]]。 81sqlscqzhripb04wp2za8wvyiyynio 9813728 9813723 2026-06-15T13:27:36Z Sayonzei 40728 9813728 wikitext text/x-wiki ==漢語== {{zh-forms|s=绿卫兵}} ===詞源=== [[綠色]]是{{w|民主進步黨}}的代表色;“[[衛兵]]”則喻指其行為有如[[紅衛兵]]。 ===發音=== {{zh-pron |m=lǜwèibīng |cat=n }} ===名詞=== {{head|zh|名詞}} # {{lb|zh|Taiwan|derogatory|offensive}} [[:w:民主進步黨|民主進步黨]]或[[泛綠]]的[[激進]][[支持者]] 4dyqej60zhkeqb7ardli8geccuy0kgs pajeet 0 3479611 9813724 2026-06-15T13:23:45Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==英語== ===其他形式=== * {{alt|en|Pajeet}} ===詞源=== 生造出来的聽起來像印度人的名字,源自2015年7月 {{w|4chan}} {{w|/int/}} 版的一則嘲諷南亞人的帖子 ''Pajeet, my son'',而這又源自2014年末 /int/ 版上流行的迷因 ''Mehmet, my son''。雖然實際上並不存在這個名字,但也有發音類似的名字,尤其是在印度旁遮普邦。可能派生自{{bor|en|pa|[[ਭਾ]] [[ਜੀ]]}}…」的新頁面 9813724 wikitext text/x-wiki ==英語== ===其他形式=== * {{alt|en|Pajeet}} ===詞源=== 生造出来的聽起來像印度人的名字,源自2015年7月 {{w|4chan}} {{w|/int/}} 版的一則嘲諷南亞人的帖子 ''Pajeet, my son'',而這又源自2014年末 /int/ 版上流行的迷因 ''Mehmet, my son''。雖然實際上並不存在這個名字,但也有發音類似的名字,尤其是在印度旁遮普邦。可能派生自{{bor|en|pa|[[ਭਾ]] [[ਜੀ]]}} / {{m|pa|بھا جی|t=我的大哥|pos=對男子的尊稱}}、{{bor|en|hi|पाजी}},以及其他以{{der|en|hi|जीत|t=勝利}} 結尾的旁遮普男性名字,如 {{m|en|Baljeet}} 和 {{m|en|Sanjeet}}。<ref name="GPAHE2024">{{cite-web|en|title=Online Racism Targeting South Asians Skyrockets|site=Global Project Against Hate and Extremism|archiveurl=https://web.archive.org/web/20240522091028/https://globalextremism.org/post/online-racism-targeting-south-asians-skyrockets/|date=8 May 2024}}</ref><ref>{{cite-web|title=Baltimore bridge collapse: Racist online attacks on Indian crew of MV Dali|url=https://www.newindianexpress.com/nation/2024/Mar/27/baltimore-bridge-collapse-racist-online-attacks-on-indian-crew-of-mv-dali|site=The New Indian Express|date=27 March 2024}}</ref><ref>{{cite-web|en|title=Racial slurs against Hindus have genocidal impact, says report|site=Hindu Times Canada|url=https://hindutimescanada.ca/racial-slurs-against-hindus-have-genocidal-impact-says-report/|date=1 June 2023}}</ref> ===發音=== * {{IPA|en|/ˌpəˈd͡ʒiːt/}} ===名詞=== {{en-noun}} # {{lb|en|Internet slang|originally|4chan|ethnic slur|貶義|offensive}} [[南亞]]裔人士<ref name="GPAHE2024"/> #: {{syn|en|poojeet}} #* {{quote-av|en|author=Luke Smith|title=Leave Amazon? You can't LEAVE Amazon!|url=https://www.youtube.com/watch?v=NK0NTmUR7pI&t=253|time=4:13|date=13 April 2019|passage=You used to be able to e-mail some Amazon representative and get your account deleted maybe; you can't do that anymore, what you have to do nowadays is you either have to live-chat with a '''pajeet''' or you have to manually call them.|t=以前你可以给亚马逊的客服人员发邮件,让他们删除你的账户;现在不行了,你现在要么得跟'''印度佬'''在线聊天,要么得手动打电话。}} #* {{quote-book|en|author={{w|lang=en|John T. Earnest}}<!--passage quoted with this .edu link in:-->|section=margin number 27|date=2019-04-27|title=An open letter [so-called Earnest Manifesto]|doi=10.1007/978-3-658-34451-1_6|url=https://bcsh.bard.edu/files/2019/06/Earnest-Manifesto-042719.pdf|passage=Apparently, Pewdiepie hates Jews as much as '''Pajeets'''.|t=显然,Pewdiepie 憎恨犹太人,就像他憎恨'''印度佬'''一样。}} #* {{quote-book|en|author=Patrik Hermansson|author2=David Lawrence|author3=Joe Mulhall|author4=Simon Murdoch|chapter=Myth, Mysticism, India, and the Alt-Right|title=The International Alt-Right: Fascism for the 21st Century?|location=New York, N.Y.|publisher=w:Routledge|date=31 January 2020|page=unnumbered|pageurl=https://books.google.com/books?id=43fNDwAAQBAJ&pg=RA2-PT39|isbn=978-0-429-62709-5|passage=A glance at the comments section of any alt-right website will confront the viewer with crude racism towards people of non-white ethnicities, not least people of Indian origin, who are variously degraded as "'''Pajeets'''," "street-shitters," or stereotyped as sexual harassers. Of course, this is unsurprising for a movement rooted in white supremacy.|t=随便浏览一下任何一个另类右翼网站的评论区,都会看到针对非白人族裔,尤其是印度裔的粗俗种族主义言论。他们被贬称为“'''印度佬'''”、“街头随地大便的人”,或者被刻板地描绘成性骚扰者。当然,对于一个根植于白人至上主义的运动来说,这并不令人意外。|brackets=on}} #* {{quote-web|en|work={{w|亞洲時報在線|Asia Times}}|date=2024-11-09|title= Ethnic slurs, Bo Yang, The Ugly Chinaman and national character |author=Han Feizi|url=https://asiatimes.com/2024/11/ethnic-slurs-bo-yang-the-ugly-chinaman-and-national-character/|passage=A South Asian ‘'''Pajeet'''’ and a ‘Chinaman’ are pretty much the same creature – a quasi-human living in squalor {{...}} This piece will not focus on Indians and their '''Pajeet''' situation, about which Han Feizi has little expertise. It will be about the “Chinaman” situation, which has dogged the Chinese for 150 years. {{...}} Han Feizi and all Gen-X Chinamen have crowd-shoving, queue-jumping and public quarreling skills that, although they may have atrophied since we were in our prime, would have matched those of the most uncouth '''Pajeet'''.|t=南亚的“'''印度佬'''”和所谓“中国佬”几乎是同一种生物——生活在肮脏环境中的“类人”。{{...}}本文不会着重讨论印度人及其“'''印度佬'''”的处境,因为韩非子对此知之甚少。本文将探讨困扰中国人150年的“中国佬”的处境。{{...}}韩非子和所有X世代的中国人都有推搡、插队和公开争吵的本领,虽然这些本领可能在我们年轻时有所退化,但当年也足以与最粗鲁的“'''印度佬'''”相提并论。}} # {{lb|en|巴基斯坦|Internet slang|ethnic slur|貶義|offensive}} [[印度人]],尤其是非[[穆斯林]] ====派生詞彙==== {{col|en|jeet|mujeet|pajeetware|poojeet}} ====參見==== {{col|en|curry-muncher|Paki|street shitter}} ===參考資料=== <references/> {{c|en|人}} jndhuyx35sdzw1z5tj4qiua6wwiuv2a pajeets 0 3479612 9813725 2026-06-15T13:23:51Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==英語== ===名詞=== {{head|en|名詞變格形}} # {{plural of|en|pajeet}}」的新頁面 9813725 wikitext text/x-wiki ==英語== ===名詞=== {{head|en|名詞變格形}} # {{plural of|en|pajeet}} ko2q3uqlc0jgek7bz6mn8fldwmbnhci Pajeet 0 3479613 9813726 2026-06-15T13:24:01Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==英語== ===名詞=== {{en-noun}} # {{alternative case form of|en|pajeet}}。」的新頁面 9813726 wikitext text/x-wiki ==英語== ===名詞=== {{en-noun}} # {{alternative case form of|en|pajeet}}。 ohubmvwem16b8gv4p9h6f51cu336xbs paukščiuose 0 3479614 9813729 2026-06-15T13:30:29Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==立陶宛語== ===發音=== {{lt-pr|paũkščiuose}} ===名詞=== {{head|lt|名詞變格形|head=paũkščiuose}} # {{infl of|lt|paũkštis||loc|p}}」的新頁面 9813729 wikitext text/x-wiki ==立陶宛語== ===發音=== {{lt-pr|paũkščiuose}} ===名詞=== {{head|lt|名詞變格形|head=paũkščiuose}} # {{infl of|lt|paũkštis||loc|p}} t3en1adc5ny3dsjnfp6xl1t02ppbcdq paukščio 0 3479615 9813730 2026-06-15T13:30:32Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==立陶宛語== ===發音=== {{lt-pr|paũkščio}} ===名詞=== {{head|lt|名詞變格形|head=paũkščio}} # {{infl of|lt|paũkštis||gen|s}}」的新頁面 9813730 wikitext text/x-wiki ==立陶宛語== ===發音=== {{lt-pr|paũkščio}} ===名詞=== {{head|lt|名詞變格形|head=paũkščio}} # {{infl of|lt|paũkštis||gen|s}} b1wc7u84hta4ateuvvydsnx2qvn32ua paukščiui 0 3479616 9813731 2026-06-15T13:30:32Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==立陶宛語== ===發音=== {{lt-pr|paũkščiui}} ===名詞=== {{head|lt|名詞變格形|head=paũkščiui}} # {{infl of|lt|paũkštis||dat|s}}」的新頁面 9813731 wikitext text/x-wiki ==立陶宛語== ===發音=== {{lt-pr|paũkščiui}} ===名詞=== {{head|lt|名詞變格形|head=paũkščiui}} # {{infl of|lt|paũkštis||dat|s}} ivzyqipsye5c89yj8s3ozthgrln82q3 paukštį 0 3479617 9813732 2026-06-15T13:30:33Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==立陶宛語== ===發音=== {{lt-pr|paũkštį}} ===名詞=== {{head|lt|名詞變格形|head=paũkštį}} # {{infl of|lt|paũkštis||acc|s}}」的新頁面 9813732 wikitext text/x-wiki ==立陶宛語== ===發音=== {{lt-pr|paũkštį}} ===名詞=== {{head|lt|名詞變格形|head=paũkštį}} # {{infl of|lt|paũkštis||acc|s}} hiruyb48cmduzvfflnim63l43n1nxo7 paukščiu 0 3479618 9813733 2026-06-15T13:30:33Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==立陶宛語== ===發音=== {{lt-pr|paukščiù}} ===名詞=== {{head|lt|名詞變格形|head=paukščiù}} # {{infl of|lt|paũkštis||ins|s}}」的新頁面 9813733 wikitext text/x-wiki ==立陶宛語== ===發音=== {{lt-pr|paukščiù}} ===名詞=== {{head|lt|名詞變格形|head=paukščiù}} # {{infl of|lt|paũkštis||ins|s}} 3zxe4wgxqj6i9qxkpeeg36sruerxuzm paukštyje 0 3479619 9813734 2026-06-15T13:30:33Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==立陶宛語== ===發音=== {{lt-pr|paũkštyje}} ===名詞=== {{head|lt|名詞變格形|head=paũkštyje}} # {{infl of|lt|paũkštis||loc|s}}」的新頁面 9813734 wikitext text/x-wiki ==立陶宛語== ===發音=== {{lt-pr|paũkštyje}} ===名詞=== {{head|lt|名詞變格形|head=paũkštyje}} # {{infl of|lt|paũkštis||loc|s}} 7ifcwz4okpo6ad7h1vmqjs1axana9wu paukščiai 0 3479620 9813735 2026-06-15T13:30:34Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==立陶宛語== ===發音=== {{lt-pr|paũkščiai}} ===名詞=== {{head|lt|名詞變格形|head=paũkščiai}} # {{infl of|lt|paũkštis||nom//voc|p}}」的新頁面 9813735 wikitext text/x-wiki ==立陶宛語== ===發音=== {{lt-pr|paũkščiai}} ===名詞=== {{head|lt|名詞變格形|head=paũkščiai}} # {{infl of|lt|paũkštis||nom//voc|p}} finay4cx6eq18j5h2b7owr28in9ecvu paukšti 0 3479621 9813736 2026-06-15T13:30:34Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==立陶宛語== ===發音=== {{lt-pr|paũkšti}} ===名詞=== {{head|lt|名詞變格形|head=paũkšti}} # {{infl of|lt|paũkštis||voc|s}}」的新頁面 9813736 wikitext text/x-wiki ==立陶宛語== ===發音=== {{lt-pr|paũkšti}} ===名詞=== {{head|lt|名詞變格形|head=paũkšti}} # {{infl of|lt|paũkštis||voc|s}} fkjw8vc5ukmcrhyo1igsr3hmxs16wby paukščių 0 3479622 9813737 2026-06-15T13:30:34Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==立陶宛語== ===發音=== {{lt-pr|paũkščių}} ===名詞=== {{head|lt|名詞變格形|head=paũkščių}} # {{infl of|lt|paũkštis||gen|p}}」的新頁面 9813737 wikitext text/x-wiki ==立陶宛語== ===發音=== {{lt-pr|paũkščių}} ===名詞=== {{head|lt|名詞變格形|head=paũkščių}} # {{infl of|lt|paũkštis||gen|p}} sk4fhmsyo6kctuwt080gyafogjlgui8 paukščius 0 3479623 9813738 2026-06-15T13:30:36Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==立陶宛語== ===發音=== {{lt-pr|paukščiùs}} ===名詞=== {{head|lt|名詞變格形|head=paukščiùs}} # {{infl of|lt|paũkštis||acc|p}}」的新頁面 9813738 wikitext text/x-wiki ==立陶宛語== ===發音=== {{lt-pr|paukščiùs}} ===名詞=== {{head|lt|名詞變格形|head=paukščiùs}} # {{infl of|lt|paũkštis||acc|p}} 48igg954tena58nafqdwiogkr1wf0k4 paukščiams 0 3479624 9813739 2026-06-15T13:30:36Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==立陶宛語== ===發音=== {{lt-pr|paũkščiams}} ===名詞=== {{head|lt|名詞變格形|head=paũkščiams}} # {{infl of|lt|paũkštis||dat|p}}」的新頁面 9813739 wikitext text/x-wiki ==立陶宛語== ===發音=== {{lt-pr|paũkščiams}} ===名詞=== {{head|lt|名詞變格形|head=paũkščiams}} # {{infl of|lt|paũkštis||dat|p}} iv7fohlauuzb5d4opseh4531yz2x81w paukščiais 0 3479625 9813740 2026-06-15T13:30:36Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==立陶宛語== ===發音=== {{lt-pr|paũkščiais}} ===名詞=== {{head|lt|名詞變格形|head=paũkščiais}} # {{infl of|lt|paũkštis||ins|p}}」的新頁面 9813740 wikitext text/x-wiki ==立陶宛語== ===發音=== {{lt-pr|paũkščiais}} ===名詞=== {{head|lt|名詞變格形|head=paũkščiais}} # {{infl of|lt|paũkštis||ins|p}} 4zeact5dwz04yr2k46l6zmxwqq5lppo Category:Rhymes:立陶宛語/ɒʊˑkʃʲt͡ʃʲo̟ː 14 3479626 9813741 2026-06-15T13:30:44Z TongcyBot 83009 養貓 9813741 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx dumbass 0 3479627 9813742 2026-06-15T13:30:55Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「{{also|dumb-ass|dumb ass}} ==英語== ===其他形式=== * {{alt|en|dumb-ass|dumb ass}} * {{alt|en|dumbarse||UK|Irish|Commonwealth}} ===詞源=== 源自 {{compound|en|dumb|ass}}。“ass”最初可能來自“驢”的義項(而非“屁股”),不過两种含义都并非完全不可能。不過,如今许多人可能会直接按照后一种方式来理解这个词;與 {{m|en|hard-ass}}、{{m|en|big-ass}} 等詞的類比可能會…」的新頁面 9813742 wikitext text/x-wiki {{also|dumb-ass|dumb ass}} ==英語== ===其他形式=== * {{alt|en|dumb-ass|dumb ass}} * {{alt|en|dumbarse||UK|Irish|Commonwealth}} ===詞源=== 源自 {{compound|en|dumb|ass}}。“ass”最初可能來自“驢”的義項(而非“屁股”),不過两种含义都并非完全不可能。不過,如今许多人可能会直接按照后一种方式来理解这个词;與 {{m|en|hard-ass}}、{{m|en|big-ass}} 等詞的類比可能會讓人更支持第二種解釋。类似的情況也体现在 {{m|en|buttload}} 和 {{m|en|assload}} 这两个词的字面意思上,它们最初分别指一车货物和一头驴能拉动的货物,但如今大多数英语使用者可能会认为它们的词源和屁股有关。 ===發音=== * {{IPA|en|/ˈdʌm.æs/}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-dumbass.wav|a=Southern England}} * {{hyph|en|dumb|ass}} ===名詞=== {{en-noun}} # {{lb|en|US|有時認為|_|粗俗|俚語|mildly|貶義}} [[蠢貨]] {{defdate|1959<ref name="Etymonline">{{R:Etymonline|dumb-ass}}</ref>}} #: {{ux|en|The '''dumbass''' walked off with my car keys and left me hers.|那个'''蠢货'''拿走了我的车钥匙,却把她的车钥匙留给了我。}} ====近義詞==== * 參見 [[Thesaurus:fool]] ====派生詞彙==== {{col|en|dumbassdom|dumbasshood|dumbassness |dumbassery|dumbassification|dumbassity}} ===形容詞=== {{en-adj|more,dumberass|sup=most,dumbestass}} # {{lb|en|US|粗俗|俚語|mildly|貶義}} [[愚蠢]]的 #: {{ux|en|That '''dumbass''' driver ruined my car!|那个'''笨蛋'''司机毁了我的车!}} #* {{quote-book|en|year=2015|author=Jason Reynolds; Brendan Kiely|title=All American Boys|publisher=Simon and Schuster|isbn=9781481463355 |passage=I zipped my coat up to the neck, worried now that going to the march was more '''dumbass''' than I&#39;d thought. It got closer—the only frigging thing in the road!—and I realized I was shaking. I couldn&#39;t move.|t=我把外套拉链拉到领口,现在我担心去参加游行比我想象的还要'''愚蠢'''。游行队伍越来越近——那可是路上唯一的障碍物!——我意识到自己浑身发抖。我动弹不得。}} ====參見==== {{col|en|hard-ass}} ===參考資料=== <references/> {{cln|en|詈語|形容詞-名詞複合詞}} 2egjsdgjg4jbbnm2qctca7lo9e9ph8f Category:Rhymes:立陶宛語/ɒʊˑkʃʲt͡ʃʲo̟ː/2音節 14 3479628 9813743 2026-06-15T13:30:55Z TongcyBot 83009 養貓 9813743 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx dumbasses 0 3479629 9813744 2026-06-15T13:31:00Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「{{also|dumb-asses|dumb asses}} ==英語== ===發音=== * {{audio|en|LL-Q1860 (eng)-Vealhurl-dumbasses.wav|a=Southern England}} ===名詞=== {{head|en|名詞變格形}} # {{plural of|en|dumbass}}」的新頁面 9813744 wikitext text/x-wiki {{also|dumb-asses|dumb asses}} ==英語== ===發音=== * {{audio|en|LL-Q1860 (eng)-Vealhurl-dumbasses.wav|a=Southern England}} ===名詞=== {{head|en|名詞變格形}} # {{plural of|en|dumbass}} 2xns9ixtxbxogth86g608tad9mctsan Category:Rhymes:立陶宛語/ɒʊˑkʃʲt͡ʃʲʊ̟ɪ 14 3479630 9813745 2026-06-15T13:31:06Z TongcyBot 83009 養貓 9813745 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:立陶宛語/ɒʊˑkʃʲt͡ʃʲʊ̟ɪ/3音節 14 3479631 9813746 2026-06-15T13:31:16Z TongcyBot 83009 養貓 9813746 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:立陶宛語/ɒʊˑkʃʲtʲiː 14 3479632 9813747 2026-06-15T13:31:26Z TongcyBot 83009 養貓 9813747 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:立陶宛語/ɒʊˑkʃʲtʲiː/2音節 14 3479633 9813748 2026-06-15T13:31:35Z TongcyBot 83009 養貓 9813748 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:立陶宛語/ɒʊˑkʃʲtʲiːjɛ 14 3479634 9813749 2026-06-15T13:31:45Z TongcyBot 83009 養貓 9813749 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:立陶宛語/ɒʊˑkʃʲtʲiːjɛ/3音節 14 3479635 9813750 2026-06-15T13:31:54Z TongcyBot 83009 養貓 9813750 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:立陶宛語/ɒʊˑkʃʲtʲɪ 14 3479636 9813751 2026-06-15T13:32:05Z TongcyBot 83009 養貓 9813751 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:立陶宛語/ɒʊˑkʃʲtʲɪ/2音節 14 3479637 9813752 2026-06-15T13:32:14Z TongcyBot 83009 養貓 9813752 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx dumb-asses 0 3479638 9813753 2026-06-15T13:32:18Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「{{also|dumbasses|dumb asses}} ==英語== ===名詞=== {{head|en|名詞變格形|head=[[dumb]]-[[asses]]}} # {{plural of|en|dumb-ass}}」的新頁面 9813753 wikitext text/x-wiki {{also|dumbasses|dumb asses}} ==英語== ===名詞=== {{head|en|名詞變格形|head=[[dumb]]-[[asses]]}} # {{plural of|en|dumb-ass}} 5fgcgl5ex4347b2utcn5z1yhdvdg1op Category:Rhymes:立陶宛語/ɒʊˑkʃʲt͡ʃʲɛɪ 14 3479639 9813754 2026-06-15T13:32:24Z TongcyBot 83009 養貓 9813754 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:立陶宛語/ɒʊˑkʃʲt͡ʃʲɛɪ/2音節 14 3479640 9813755 2026-06-15T13:32:34Z TongcyBot 83009 養貓 9813755 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx dumb ass 0 3479641 9813756 2026-06-15T13:32:34Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「{{also|dumbass|dumb-ass}} ==英語== ===名詞=== {{en-noun}} # {{alt sp|en|dumbass}}。 ===形容詞=== {{en-adj|more}} # {{alt sp|en|dumbass}}。」的新頁面 9813756 wikitext text/x-wiki {{also|dumbass|dumb-ass}} ==英語== ===名詞=== {{en-noun}} # {{alt sp|en|dumbass}}。 ===形容詞=== {{en-adj|more}} # {{alt sp|en|dumbass}}。 njkna4oo4dge1e563b7j4qwtyov31av dumbarse 0 3479642 9813757 2026-06-15T13:32:42Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==英語== ===詞源=== {{m|en|dumb}} + {{m|en|arse}} ===發音=== * {{audio|en|En-au-dumbarse.ogg|a=AU}} ===名詞=== {{en-noun}} # {{standard form of|en|dumbass|from=UK|from2=Ireland|from3=Commonwealth}} ===異序詞=== * {{anagrams|en|a=abdemrsu|Bermudas}}」的新頁面 9813757 wikitext text/x-wiki ==英語== ===詞源=== {{m|en|dumb}} + {{m|en|arse}} ===發音=== * {{audio|en|En-au-dumbarse.ogg|a=AU}} ===名詞=== {{en-noun}} # {{standard form of|en|dumbass|from=UK|from2=Ireland|from3=Commonwealth}} ===異序詞=== * {{anagrams|en|a=abdemrsu|Bermudas}} j7evyxqhepx0k6g1vkt48nhbjvhlhvd Category:Rhymes:立陶宛語/ɒʊˑkʃʲt͡ʃʲu̟ː 14 3479643 9813758 2026-06-15T13:32:43Z TongcyBot 83009 養貓 9813758 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx dumb asses 0 3479644 9813759 2026-06-15T13:32:47Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「{{also|dumbasses|dumb-asses}} ==英語== ===名詞=== {{head|en|名詞變格形}} # {{plural of|en|dumb ass}}」的新頁面 9813759 wikitext text/x-wiki {{also|dumbasses|dumb-asses}} ==英語== ===名詞=== {{head|en|名詞變格形}} # {{plural of|en|dumb ass}} qmry7selxonk046k82fo1weyjt6cnpo dumbarses 0 3479645 9813760 2026-06-15T13:32:52Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==英語== ===名詞=== {{head|en|名詞變格形}} # {{plural of|en|dumbarse}} ===異序詞=== * {{anagrams|en|a=abdemrssu|dumberass}}」的新頁面 9813760 wikitext text/x-wiki ==英語== ===名詞=== {{head|en|名詞變格形}} # {{plural of|en|dumbarse}} ===異序詞=== * {{anagrams|en|a=abdemrssu|dumberass}} kp484kgilfvb73ybkyda3mk969u7saf Category:Rhymes:立陶宛語/ɒʊˑkʃʲt͡ʃʲu̟ː/2音節 14 3479646 9813761 2026-06-15T13:32:53Z TongcyBot 83009 養貓 9813761 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:立陶宛語/ɒʊˑkʃʲt͡ʃʲɛms 14 3479647 9813762 2026-06-15T13:33:03Z TongcyBot 83009 養貓 9813762 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:立陶宛語/ɒʊˑkʃʲt͡ʃʲɛms/2音節 14 3479648 9813763 2026-06-15T13:33:12Z TongcyBot 83009 養貓 9813763 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:立陶宛語/ɒʊˑkʃʲt͡ʃʲɛɪs 14 3479649 9813765 2026-06-15T13:33:23Z TongcyBot 83009 養貓 9813765 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:立陶宛語/ɒʊˑkʃʲt͡ʃʲɛɪs/2音節 14 3479650 9813766 2026-06-15T13:33:33Z TongcyBot 83009 養貓 9813766 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:立陶宛語/ɒʊˑkʃʲt͡ʃʲu̟ɔsʲɛ 14 3479651 9813768 2026-06-15T13:33:43Z TongcyBot 83009 養貓 9813768 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:立陶宛語/ɒʊˑkʃʲt͡ʃʲu̟ɔsʲɛ/3音節 14 3479652 9813769 2026-06-15T13:33:53Z TongcyBot 83009 養貓 9813769 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:立陶宛語/æˑnʲtʲɪ 14 3479653 9813770 2026-06-15T13:34:04Z TongcyBot 83009 養貓 9813770 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:立陶宛語/æˑnʲtʲɪ/3音節 14 3479654 9813771 2026-06-15T13:34:14Z TongcyBot 83009 養貓 9813771 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx gyvatės 0 3479655 9813773 2026-06-15T13:54:12Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{also|gyvates}} ==立陶宛語== ===發音=== {{lt-pr|gyvãtės}} ===名詞=== {{head|lt|名詞變格形|g=f}} # {{infl of|lt|gyvatė||gen|s|;|nom//voc|p}}」的新頁面 9813773 wikitext text/x-wiki {{also|gyvates}} ==立陶宛語== ===發音=== {{lt-pr|gyvãtės}} ===名詞=== {{head|lt|名詞變格形|g=f}} # {{infl of|lt|gyvatė||gen|s|;|nom//voc|p}} q7amcg58xz61rw05ka6viop9bki2674 gyvatei 0 3479656 9813774 2026-06-15T13:54:24Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==立陶宛語== ===發音=== {{lt-pr|gyvãtei}} ===名詞=== {{head|lt|名詞變格形|g=f}} # {{noun form of|lt|gyvatė||dat|s}}」的新頁面 9813774 wikitext text/x-wiki ==立陶宛語== ===發音=== {{lt-pr|gyvãtei}} ===名詞=== {{head|lt|名詞變格形|g=f}} # {{noun form of|lt|gyvatė||dat|s}} o9yvlytux23owczv9uzl7d4289xtr8p gyvatę 0 3479657 9813775 2026-06-15T13:54:24Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{also|gyvate|gyvatė}} ==立陶宛語== ===發音=== {{lt-pr|gyvãtę}} ===名詞=== {{head|lt|名詞變格形|g=f}} # {{noun form of|lt|gyvatė||acc|s}}」的新頁面 9813775 wikitext text/x-wiki {{also|gyvate|gyvatė}} ==立陶宛語== ===發音=== {{lt-pr|gyvãtę}} ===名詞=== {{head|lt|名詞變格形|g=f}} # {{noun form of|lt|gyvatė||acc|s}} 4cayxmlyi1auh7hqjzs1i65y2xu071o gyvate 0 3479658 9813776 2026-06-15T13:56:21Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{also|gyvatę|gyvatė}} ==立陶宛語== ===發音1=== {{lt-pr|gyvatè}} ====名詞==== {{head|lt|名詞變格形|g=f|head=gyvatè}} # {{noun form of|lt|gyvãtė||ins|s}} ===發音2=== {{lt-pr|gyvãte}} ====名詞==== {{head|lt|名詞變格形|g=f|head=gyvãte}} # {{noun form of|lt|gyvãtė||voc|s}}」的新頁面 9813776 wikitext text/x-wiki {{also|gyvatę|gyvatė}} ==立陶宛語== ===發音1=== {{lt-pr|gyvatè}} ====名詞==== {{head|lt|名詞變格形|g=f|head=gyvatè}} # {{noun form of|lt|gyvãtė||ins|s}} ===發音2=== {{lt-pr|gyvãte}} ====名詞==== {{head|lt|名詞變格形|g=f|head=gyvãte}} # {{noun form of|lt|gyvãtė||voc|s}} o5dkuxgmplegymznft69pj7nq8te2wr Category:Rhymes:立陶宛語/ɑːtʲɛ 14 3479659 9813777 2026-06-15T13:56:28Z TongcyBot 83009 養貓 9813777 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx gyvatėje 0 3479660 9813778 2026-06-15T13:56:30Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==立陶宛語== ===發音=== {{lt-pr|gyvãtėje}} ===名詞=== {{head|lt|名詞變格形|g=f}} # {{noun form of|lt|gyvatė||loc|s}}」的新頁面 9813778 wikitext text/x-wiki ==立陶宛語== ===發音=== {{lt-pr|gyvãtėje}} ===名詞=== {{head|lt|名詞變格形|g=f}} # {{noun form of|lt|gyvatė||loc|s}} 95pu04n3b2i1wnubg54hc8kr6mg7kub gyvatėse 0 3479661 9813779 2026-06-15T13:56:30Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==立陶宛語== ===發音=== {{lt-pr|gyvãtėse}} ===名詞=== {{head|lt|名詞變格形|g=f-p}} # {{noun form of|lt|gyvatė||loc|p}}」的新頁面 9813779 wikitext text/x-wiki ==立陶宛語== ===發音=== {{lt-pr|gyvãtėse}} ===名詞=== {{head|lt|名詞變格形|g=f-p}} # {{noun form of|lt|gyvatė||loc|p}} 4digybcok6o9qymqpa3riueu3uf9neh gyvatėmis 0 3479662 9813780 2026-06-15T13:56:31Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==立陶宛語== ===發音=== {{lt-pr|gyvãtėmis}} ===名詞=== {{head|lt|名詞變格形|g=f-p}} # {{noun form of|lt|gyvatė||ins|p}}」的新頁面 9813780 wikitext text/x-wiki ==立陶宛語== ===發音=== {{lt-pr|gyvãtėmis}} ===名詞=== {{head|lt|名詞變格形|g=f-p}} # {{noun form of|lt|gyvatė||ins|p}} dj0bf1js8dwxfy6qgd2zvlypsa5hok1 gyvates 0 3479663 9813781 2026-06-15T13:56:31Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{also|gyvatės}} ==立陶宛語== ===發音=== {{lt-pr|gyvatès}} ===名詞=== {{head|lt|名詞變格形|g=f-p}} # {{noun form of|lt|gyvatė||acc|p}}」的新頁面 9813781 wikitext text/x-wiki {{also|gyvatės}} ==立陶宛語== ===發音=== {{lt-pr|gyvatès}} ===名詞=== {{head|lt|名詞變格形|g=f-p}} # {{noun form of|lt|gyvatė||acc|p}} l5231tj8amiq2nlxw3zzrbb0b14w436 gyvatėms 0 3479664 9813782 2026-06-15T13:56:32Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==立陶宛語== ===發音=== {{lt-pr|gyvãtėms}} ===名詞=== {{head|lt|名詞變格形|g=f-p}} # {{noun form of|lt|gyvatė||dat|p}}」的新頁面 9813782 wikitext text/x-wiki ==立陶宛語== ===發音=== {{lt-pr|gyvãtėms}} ===名詞=== {{head|lt|名詞變格形|g=f-p}} # {{noun form of|lt|gyvatė||dat|p}} gtx23hiy57ky25wi499b1razner8ona gyvačių 0 3479665 9813783 2026-06-15T13:56:33Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==立陶宛語== ===發音=== {{lt-pr|gyvãčių}} ===名詞=== {{head|lt|名詞變格形|g=f-p}} # {{noun form of|lt|gyvatė||gen|p}}」的新頁面 9813783 wikitext text/x-wiki ==立陶宛語== ===發音=== {{lt-pr|gyvãčių}} ===名詞=== {{head|lt|名詞變格形|g=f-p}} # {{noun form of|lt|gyvatė||gen|p}} odv1b0pzbp391rknarlyjd3zzy5wuhi Category:Rhymes:立陶宛語/ɑːtʲɛ/3音節 14 3479666 9813784 2026-06-15T13:56:38Z TongcyBot 83009 養貓 9813784 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx cvårnaru 0 3479667 9813792 2026-06-15T17:07:11Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==伊斯特羅-羅馬尼亞語== ===詞源=== {{rfe|ruo}} ===數詞=== {{head|ruo|數詞}} # [[四十]]」的新頁面 9813792 wikitext text/x-wiki ==伊斯特羅-羅馬尼亞語== ===詞源=== {{rfe|ruo}} ===數詞=== {{head|ruo|數詞}} # [[四十]] 253pybp014ye8pog45aub9f8cla5oiq câre 0 3479668 9813793 2026-06-15T17:07:39Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==伊斯特羅-羅馬尼亞語== ===詞源=== {{inh+|ruo|la|canis|canis, canem}}。對照{{cog|ro|câine}}、{{cog|rup|cãni}}。 ===發音=== * {{IPA|ruo|/kəre/}} ===名詞=== {{head|ruo|名詞|g=m|複數|câr}} # [[狗]] {{C|ruo|犬科動物}}」的新頁面 9813793 wikitext text/x-wiki ==伊斯特羅-羅馬尼亞語== ===詞源=== {{inh+|ruo|la|canis|canis, canem}}。對照{{cog|ro|câine}}、{{cog|rup|cãni}}。 ===發音=== * {{IPA|ruo|/kəre/}} ===名詞=== {{head|ruo|名詞|g=m|複數|câr}} # [[狗]] {{C|ruo|犬科動物}} du51cojhtorkctwggeqp8y03fkdwjth 9813814 9813793 2026-06-15T17:10:28Z TongcyDai 53191 9813814 wikitext text/x-wiki ==伊斯特羅-羅馬尼亞語== ===詞源=== {{inh+|ruo|la|canis|canis, canem}}。對照{{cog|ro|câine}}、{{cog|rup|cãni}}。 ===發音=== * {{IPA|ruo|/kəre/}} ===名詞=== {{head|ruo|名詞|g=m|複數|câr}} # [[狗]] {{C|ruo|狗}} or1rxytuh9dam9up3hqbfcjauimj9xf Category:伊斯特羅-羅馬尼亞語詞條詞源請求 14 3479669 9813794 2026-06-15T17:08:04Z TongcyBot 83009 養貓 9813794 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語相關請求 14 3479670 9813795 2026-06-15T17:08:11Z TongcyBot 83009 養貓 9813795 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 犬科動物 14 3479671 9813796 2026-06-15T17:08:19Z TongcyBot 83009 養貓 9813796 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx cåibĕ 0 3479672 9813797 2026-06-15T17:08:24Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==伊斯特羅-羅馬尼亞語== ===詞源=== {{inh+|ruo|la|cavea}}。 ===名詞=== {{head|ruo|名詞|g=f}} # [[籠]]」的新頁面 9813797 wikitext text/x-wiki ==伊斯特羅-羅馬尼亞語== ===詞源=== {{inh+|ruo|la|cavea}}。 ===名詞=== {{head|ruo|名詞|g=f}} # [[籠]] p8xo2dei91y8k1axd3r1n3zyhej6iwg Category:伊斯特羅-羅馬尼亞語 肉食性動物 14 3479673 9813798 2026-06-15T17:08:25Z TongcyBot 83009 養貓 9813798 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 哺乳動物 14 3479674 9813799 2026-06-15T17:08:31Z TongcyBot 83009 養貓 9813799 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 脊椎動物 14 3479675 9813800 2026-06-15T17:08:38Z TongcyBot 83009 養貓 9813800 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 脊索動物 14 3479676 9813801 2026-06-15T17:08:44Z TongcyBot 83009 養貓 9813801 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 動物 14 3479677 9813802 2026-06-15T17:08:51Z TongcyBot 83009 養貓 9813802 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 生命形式 14 3479678 9813803 2026-06-15T17:08:57Z TongcyBot 83009 養貓 9813803 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 生命 14 3479679 9813804 2026-06-15T17:09:03Z TongcyBot 83009 養貓 9813804 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 自然 14 3479680 9813805 2026-06-15T17:09:10Z TongcyBot 83009 養貓 9813805 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 集合分類列表 14 3479681 9813806 2026-06-15T17:09:17Z TongcyBot 83009 養貓 9813806 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx cåsĕ 0 3479682 9813807 2026-06-15T17:09:32Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{also|Appendix:"case"的變體}} ==伊斯特羅-羅馬尼亞語== ===詞源=== {{inh+|ruo|la|casa}}。 ===發音=== * {{IPA|ruo|[ˈkɔ.sə]}} ===名詞=== {{head|ruo|名詞|g=f|複數|cåse|定指單數|cåsa|定指複數|cåsele}} # [[房子]] {{C|ruo|建築|住宅}}」的新頁面 9813807 wikitext text/x-wiki {{also|Appendix:"case"的變體}} ==伊斯特羅-羅馬尼亞語== ===詞源=== {{inh+|ruo|la|casa}}。 ===發音=== * {{IPA|ruo|[ˈkɔ.sə]}} ===名詞=== {{head|ruo|名詞|g=f|複數|cåse|定指單數|cåsa|定指複數|cåsele}} # [[房子]] {{C|ruo|建築|住宅}} s6v8h22kild4wd9a245z2zi8qckggoc Category:伊斯特羅-羅馬尼亞語 住宅 14 3479683 9813808 2026-06-15T17:09:51Z TongcyBot 83009 養貓 9813808 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 家 14 3479684 9813809 2026-06-15T17:09:57Z TongcyBot 83009 養貓 9813809 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 社會 14 3479685 9813810 2026-06-15T17:10:03Z TongcyBot 83009 養貓 9813810 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 建築 14 3479686 9813811 2026-06-15T17:10:11Z TongcyBot 83009 養貓 9813811 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 建築物和構築物 14 3479687 9813812 2026-06-15T17:10:18Z TongcyBot 83009 養貓 9813812 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 建築學 14 3479688 9813813 2026-06-15T17:10:25Z TongcyBot 83009 養貓 9813813 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 應用科學 14 3479689 9813815 2026-06-15T17:10:32Z TongcyBot 83009 養貓 9813815 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 藝術 14 3479690 9813816 2026-06-15T17:10:38Z TongcyBot 83009 養貓 9813816 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx căre 0 3479691 9813817 2026-06-15T17:10:41Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{also|care|caré|çare|çarë|-care}} ==伊斯特羅-羅馬尼亞語== [[File:Hybrid vigour.jpg|thumb|Căre]] ===詞源=== {{inh+|ruo|la|canis}}、{{m|la|canem}},{{inh+|ruo|ine-pro|*ḱwṓ}}。對照{{cog|ro|câine}}、{{cog|rup|cãni}}。 ===名詞=== {{head|ruo|名詞|g=m}} # [[狗]] {{C|ruo|狗|哺乳動物}}」的新頁面 9813817 wikitext text/x-wiki {{also|care|caré|çare|çarë|-care}} ==伊斯特羅-羅馬尼亞語== [[File:Hybrid vigour.jpg|thumb|Căre]] ===詞源=== {{inh+|ruo|la|canis}}、{{m|la|canem}},{{inh+|ruo|ine-pro|*ḱwṓ}}。對照{{cog|ro|câine}}、{{cog|rup|cãni}}。 ===名詞=== {{head|ruo|名詞|g=m}} # [[狗]] {{C|ruo|狗|哺乳動物}} qvkf8e3a24wki011bio6xxhsjqkx8nx Category:伊斯特羅-羅馬尼亞語 文化 14 3479692 9813818 2026-06-15T17:10:46Z TongcyBot 83009 養貓 9813818 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 類型分類列表 14 3479693 9813819 2026-06-15T17:10:55Z TongcyBot 83009 養貓 9813819 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 狗 14 3479694 9813820 2026-06-15T17:11:05Z TongcyBot 83009 養貓 9813820 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx cľår 0 3479695 9813821 2026-06-15T17:11:19Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==伊斯特羅-羅馬尼亞語== ===詞源=== {{inh+|ruo|la|clārus}}。對照{{cog|ro|chiar}}。 ===形容詞=== {{head|ruo|形容詞}} # [[清晰]]的,[[明確]]的」的新頁面 9813821 wikitext text/x-wiki ==伊斯特羅-羅馬尼亞語== ===詞源=== {{inh+|ruo|la|clārus}}。對照{{cog|ro|chiar}}。 ===形容詞=== {{head|ruo|形容詞}} # [[清晰]]的,[[明確]]的 baxj0btxpm97zjhlplqmuj4b27ow8z1 deseta 0 3479696 9813822 2026-06-15T17:11:34Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==伊斯特羅-羅馬尼亞語== ===形容詞=== {{head|ruo|形容詞|g=f|陽性|desetile}} # {{cln|ruo|序數詞}} [[第十]]」的新頁面 9813822 wikitext text/x-wiki ==伊斯特羅-羅馬尼亞語== ===形容詞=== {{head|ruo|形容詞|g=f|陽性|desetile}} # {{cln|ruo|序數詞}} [[第十]] 9y5g2pw67bvcnkkhb6tbgset1w0l089 desetile 0 3479697 9813823 2026-06-15T17:11:43Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==伊斯特羅-羅馬尼亞語== ===形容詞=== {{head|ruo|形容詞|g=m|陰性|deseta}} # {{cln|ruo|序數詞}} [[第十]]」的新頁面 9813823 wikitext text/x-wiki ==伊斯特羅-羅馬尼亞語== ===形容詞=== {{head|ruo|形容詞|g=m|陰性|deseta}} # {{cln|ruo|序數詞}} [[第十]] 93mx8ccuampl8zpzs3xxunnlkgvp8c6 deveta 0 3479698 9813824 2026-06-15T17:11:58Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==伊斯特羅-羅馬尼亞語== ===形容詞=== {{head|ruo|形容詞|g=f|陽性|devetile}} # {{cln|ruo|序數詞}} [[第九]]」的新頁面 9813824 wikitext text/x-wiki ==伊斯特羅-羅馬尼亞語== ===形容詞=== {{head|ruo|形容詞|g=f|陽性|devetile}} # {{cln|ruo|序數詞}} [[第九]] p32n3nyxe5ubbdk3boux9823kmelt48 devetile 0 3479699 9813825 2026-06-15T17:12:01Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==伊斯特羅-羅馬尼亞語== ===形容詞=== {{head|ruo|形容詞|g=m|陰性|deveta}} # {{cln|ruo|序數詞}} [[第九]]」的新頁面 9813825 wikitext text/x-wiki ==伊斯特羅-羅馬尼亞語== ===形容詞=== {{head|ruo|形容詞|g=m|陰性|deveta}} # {{cln|ruo|序數詞}} [[第九]] n5gf0liegwbigf9rrju7rtob6m9fcy9 bărbåt 0 3479700 9813826 2026-06-15T17:15:11Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{also|barbat|barbât|bãrbat|bărbat|bărbåț}} ==伊斯特羅-羅馬尼亞語== ===詞源=== {{inh+|ruo|la|barbātus}}。對照[[達科-羅馬尼亞語]]、{{cog|ruq|bărbat}},以及{{cog|rup|bãrbat}}。 ===發音=== * {{IPA|ruo|[bərˈbwɔt]}} ===名詞=== {{head|ruo|名詞|g=m|複數|bărbåț|定指單數|bărbåtu}} # [[男人]] ====相關詞彙==== * {{l|ruo|borbĕ}} {{C|ruo|男性|人}}」的新頁面 9813826 wikitext text/x-wiki {{also|barbat|barbât|bãrbat|bărbat|bărbåț}} ==伊斯特羅-羅馬尼亞語== ===詞源=== {{inh+|ruo|la|barbātus}}。對照[[達科-羅馬尼亞語]]、{{cog|ruq|bărbat}},以及{{cog|rup|bãrbat}}。 ===發音=== * {{IPA|ruo|[bərˈbwɔt]}} ===名詞=== {{head|ruo|名詞|g=m|複數|bărbåț|定指單數|bărbåtu}} # [[男人]] ====相關詞彙==== * {{l|ruo|borbĕ}} {{C|ruo|男性|人}} b1lrfkgpx4bzynsq3hs4hwjbkbj2h8v Category:伊斯特羅-羅馬尼亞語 人 14 3479701 9813827 2026-06-15T17:15:20Z TongcyBot 83009 養貓 9813827 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 人類 14 3479702 9813828 2026-06-15T17:15:26Z TongcyBot 83009 養貓 9813828 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 男性 14 3479703 9813829 2026-06-15T17:15:33Z TongcyBot 83009 養貓 9813829 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 性別 14 3479704 9813830 2026-06-15T17:15:39Z TongcyBot 83009 養貓 9813830 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 心理學 14 3479705 9813831 2026-06-15T17:15:45Z TongcyBot 83009 養貓 9813831 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 社會科學 14 3479706 9813832 2026-06-15T17:15:51Z TongcyBot 83009 養貓 9813832 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 社會學 14 3479707 9813834 2026-06-15T17:15:59Z TongcyBot 83009 養貓 9813834 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx bire 0 3479708 9813835 2026-06-15T17:17:20Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{also|Appendix:"bire"的變體}} ==阿爾巴尼亞語== ===名詞=== {{head|sq|名詞變格形}} # {{infl of|sq|birë||indef|dat//abl|s}} ==伊斯特羅-羅馬尼亞語== ===詞源=== {{inh+|ruo|la|bene}}。對照{{cog|ro|bine}}。 ===發音=== * {{IPA|ruo|/bire/}} ===副詞=== {{head|ruo|副詞}} # [[好]]地 ==魯凱語== ===詞源=== {{bor+|dru|ja|ビール|tr=bīru}}。 ===名詞=== {{head|dru|名詞}} # [[啤酒]] {{C|dru|…」的新頁面 9813835 wikitext text/x-wiki {{also|Appendix:"bire"的變體}} ==阿爾巴尼亞語== ===名詞=== {{head|sq|名詞變格形}} # {{infl of|sq|birë||indef|dat//abl|s}} ==伊斯特羅-羅馬尼亞語== ===詞源=== {{inh+|ruo|la|bene}}。對照{{cog|ro|bine}}。 ===發音=== * {{IPA|ruo|/bire/}} ===副詞=== {{head|ruo|副詞}} # [[好]]地 ==魯凱語== ===詞源=== {{bor+|dru|ja|ビール|tr=bīru}}。 ===名詞=== {{head|dru|名詞}} # [[啤酒]] {{C|dru|啤酒|釀造學}} ==土耳其語== ===名詞=== {{head|tr|名詞變格形}} # {{inflection of|tr|bir||dat|s}} ==威尼斯語== ===名詞=== {{head|vec|名詞變格形}} # {{plural of|vec|bira}} ==瓦隆語== ===詞源=== {{bor+|wa|nl|bier}}。 ===發音=== * {{IPA|wa|/biːʀ/}} * {{audio|wa|Wa bire.oga}} ===名詞=== {{wa-noun|f}} # [[啤酒]] {{C|wa|啤酒|釀造學}} d9b8y7yssp52vdzblok8p1z1ypr55iv Category:伊斯特羅-羅馬尼亞語副詞 14 3479709 9813836 2026-06-15T17:17:35Z TongcyBot 83009 養貓 9813836 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:派生自荷蘭語的瓦隆語詞 14 3479710 9813837 2026-06-15T17:17:43Z TongcyBot 83009 養貓 9813837 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:派生自低法蘭克尼亞語支的瓦隆語詞 14 3479711 9813838 2026-06-15T17:17:50Z TongcyBot 83009 養貓 9813838 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:源自荷蘭語的瓦隆語借詞 14 3479712 9813839 2026-06-15T17:17:57Z TongcyBot 83009 養貓 9813839 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:瓦隆語 啤酒 14 3479713 9813840 2026-06-15T17:18:03Z TongcyBot 83009 養貓 9813840 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:瓦隆語 酒 14 3479714 9813841 2026-06-15T17:18:10Z TongcyBot 83009 養貓 9813841 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:瓦隆語 娛樂性藥物 14 3479715 9813842 2026-06-15T17:18:16Z TongcyBot 83009 養貓 9813842 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:瓦隆語 藥 14 3479716 9813843 2026-06-15T17:18:23Z TongcyBot 83009 養貓 9813843 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:瓦隆語 藥理學 14 3479717 9813845 2026-06-15T17:18:30Z TongcyBot 83009 養貓 9813845 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:瓦隆語 生物化學 14 3479718 9813846 2026-06-15T17:18:36Z TongcyBot 83009 養貓 9813846 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:瓦隆語 飲料 14 3479719 9813847 2026-06-15T17:18:45Z TongcyBot 83009 養貓 9813847 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:瓦隆語 飲酒 14 3479720 9813848 2026-06-15T17:18:51Z TongcyBot 83009 養貓 9813848 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:瓦隆語 釀造學 14 3479721 9813849 2026-06-15T17:19:02Z TongcyBot 83009 養貓 9813849 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:瓦隆語 釀造 14 3479722 9813850 2026-06-15T17:19:08Z TongcyBot 83009 養貓 9813850 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:瓦隆語 製酒 14 3479723 9813851 2026-06-15T17:19:15Z TongcyBot 83009 養貓 9813851 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:魯凱語 啤酒 14 3479724 9813852 2026-06-15T17:19:23Z TongcyBot 83009 養貓 9813852 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:魯凱語 酒 14 3479725 9813853 2026-06-15T17:19:30Z TongcyBot 83009 養貓 9813853 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:魯凱語 娛樂性藥物 14 3479726 9813854 2026-06-15T17:19:36Z TongcyBot 83009 養貓 9813854 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:魯凱語 藥 14 3479727 9813855 2026-06-15T17:19:42Z TongcyBot 83009 養貓 9813855 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:魯凱語 物質 14 3479728 9813856 2026-06-15T17:19:48Z TongcyBot 83009 養貓 9813856 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:魯凱語 化學 14 3479729 9813857 2026-06-15T17:19:56Z TongcyBot 83009 養貓 9813857 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:魯凱語 藥理學 14 3479730 9813858 2026-06-15T17:20:04Z TongcyBot 83009 養貓 9813858 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:魯凱語 生物化學 14 3479731 9813860 2026-06-15T17:20:10Z TongcyBot 83009 養貓 9813860 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:魯凱語 生物學 14 3479732 9813861 2026-06-15T17:20:16Z TongcyBot 83009 養貓 9813861 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:魯凱語 醫學 14 3479733 9813862 2026-06-15T17:20:24Z TongcyBot 83009 養貓 9813862 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:魯凱語 健康照護 14 3479734 9813863 2026-06-15T17:20:31Z TongcyBot 83009 養貓 9813863 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:魯凱語 飲料 14 3479735 9813864 2026-06-15T17:20:41Z TongcyBot 83009 養貓 9813864 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:魯凱語 液體 14 3479736 9813865 2026-06-15T17:20:47Z TongcyBot 83009 養貓 9813865 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:魯凱語 飲酒 14 3479737 9813866 2026-06-15T17:20:55Z TongcyBot 83009 養貓 9813866 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:魯凱語 釀造學 14 3479738 9813867 2026-06-15T17:21:06Z TongcyBot 83009 養貓 9813867 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:魯凱語 釀造 14 3479739 9813868 2026-06-15T17:21:13Z TongcyBot 83009 養貓 9813868 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:魯凱語 製酒 14 3479740 9813869 2026-06-15T17:21:19Z TongcyBot 83009 養貓 9813869 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 鬍鬚 14 3479741 9813870 2026-06-15T17:21:30Z TongcyBot 83009 養貓 9813870 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 時尚 14 3479742 9813871 2026-06-15T17:21:36Z TongcyBot 83009 養貓 9813871 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 服裝 14 3479743 9813873 2026-06-15T17:21:43Z TongcyBot 83009 養貓 9813873 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 毛髮 14 3479744 9813874 2026-06-15T17:21:51Z TongcyBot 83009 養貓 9813874 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 身體部位 14 3479745 9813875 2026-06-15T17:21:58Z TongcyBot 83009 養貓 9813875 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx doile 0 3479746 9813876 2026-06-15T17:22:00Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==伊斯特羅-羅馬尼亞語== ===形容詞=== {{head|ruo|形容詞|g=m|陰性|dova}} # {{cln|ruo|序數詞}} [[第二]]」的新頁面 9813876 wikitext text/x-wiki ==伊斯特羅-羅馬尼亞語== ===形容詞=== {{head|ruo|形容詞|g=m|陰性|dova}} # {{cln|ruo|序數詞}} [[第二]] goi6ydjbvcx2kkwdcsg3q8ybl0mlgj8 Category:伊斯特羅-羅馬尼亞語 混合分類列表 14 3479747 9813877 2026-06-15T17:22:06Z TongcyBot 83009 養貓 9813877 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 臉 14 3479748 9813878 2026-06-15T17:22:13Z TongcyBot 83009 養貓 9813878 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 頭頸部 14 3479749 9813879 2026-06-15T17:22:20Z TongcyBot 83009 養貓 9813879 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:鬍鬚 14 3479750 9813880 2026-06-15T17:22:27Z TongcyBot 83009 養貓 9813880 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 四肢 14 3479751 9813881 2026-06-15T17:22:36Z TongcyBot 83009 養貓 9813881 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 牙齒 14 3479752 9813882 2026-06-15T17:22:44Z TongcyBot 83009 養貓 9813882 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:伊斯特羅-羅馬尼亞語 嘴 14 3479753 9813883 2026-06-15T17:22:51Z TongcyBot 83009 養貓 9813883 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Reconstruction:原始意大利語/dormiō 118 3479754 9813884 2026-06-15T17:24:14Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{reconstructed}} ==原始意大利語== ===詞源=== {{etymon|itc-pro|id=睡|:inh|ine-pro:+<alt:*dr̥m-yé-ti><id:yé-現在時><ety:af<ine-pro:*drem-<id:睡><t:睡>><*-yéti>>|tree=1}} {{inh+|itc-pro|ine-pro||*dr̥m-yé-ti}},源自 {{m|ine-pro|*drem-|t=睡|id=睡}}。 ===動詞=== {{itc-verb}}<ref>{{R:itc:EDL|pages=179-80}}</ref> # [[睡]] ====屈折==== {{itc-conj-4th|type=nopass|dorm}} ====派生語彙==== * {{desc|la|dormiō}} {{s…」的新頁面 9813884 wikitext text/x-wiki {{reconstructed}} ==原始意大利語== ===詞源=== {{etymon|itc-pro|id=睡|:inh|ine-pro:+<alt:*dr̥m-yé-ti><id:yé-現在時><ety:af<ine-pro:*drem-<id:睡><t:睡>><*-yéti>>|tree=1}} {{inh+|itc-pro|ine-pro||*dr̥m-yé-ti}},源自 {{m|ine-pro|*drem-|t=睡|id=睡}}。 ===動詞=== {{itc-verb}}<ref>{{R:itc:EDL|pages=179-80}}</ref> # [[睡]] ====屈折==== {{itc-conj-4th|type=nopass|dorm}} ====派生語彙==== * {{desc|la|dormiō}} {{see desc}} ===參考資料=== <references/> c1ed99vjy6kwgho9ji62qwfch7dx9uf Module:Etymon/tracking 828 3479755 9813886 2026-06-15T18:05:42Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「--[=[ Documentation: [[WT:Tracking#Etymon]]. ]=] local export = {} local M = require("Module:module loader").init({ require = { track = "Module:debug/track", }, }) local DEPTH_RANGES = { { min = 50, label = "extremely-deep" }, { min = 20, label = "20+" }, { min = 10, max = 19, label = "10-19" }, { min = 5, max = 9, label = "5-9" }, { min = 3, max = 4, label = "3-4" }, { max = 2, label = "1-2" }, } local NODE_RANGES = { { min…」的新頁面 9813886 Scribunto text/plain --[=[ Documentation: [[WT:Tracking#Etymon]]. ]=] local export = {} local M = require("Module:module loader").init({ require = { track = "Module:debug/track", }, }) local DEPTH_RANGES = { { min = 50, label = "extremely-deep" }, { min = 20, label = "20+" }, { min = 10, max = 19, label = "10-19" }, { min = 5, max = 9, label = "5-9" }, { min = 3, max = 4, label = "3-4" }, { max = 2, label = "1-2" }, } local NODE_RANGES = { { min = 100, label = "extremely-large" }, { min = 50, label = "50+" }, { min = 20, max = 49, label = "20-49" }, { min = 10, max = 19, label = "10-19" }, { min = 5, max = 9, label = "5-9" }, { max = 4, label = "1-4" }, } local LANGUAGE_RANGES = { { min = 10, label = "10+" }, { min = 5, max = 9, label = "5-9" }, { min = 3, max = 4, label = "3-4" }, { exact = 2, label = "2" }, { exact = 1, label = "1" }, } local TERM_PAGE_NORMALIZERS = { { pattern = "^Reconstruction:[^/]+/(.+)$", normalize = function(term) if term:sub(1, 1) ~= "*" then return "*" .. term end return term end, }, { pattern = "^Appendix:[^/]+/(.+)$", normalize = function(term) return term end, }, } local function normalize_term_page(term_page) local page = tostring(term_page) for _, rule in ipairs(TERM_PAGE_NORMALIZERS) do local term = page:match(rule.pattern) if term then return rule.normalize(term) end end return page end local function sanitize_term_page(term_page) return normalize_term_page(term_page):gsub(":", "-"):gsub("/", "-"):gsub(" ", "_") end local function sanitize_track_segment(value) return tostring(value):gsub(":", "-"):gsub("/", "-"):gsub(" ", "_") end local function track_path(page_lang_code, path) M.track(path) if page_lang_code then M.track("etymon/lang/" .. page_lang_code .. "/" .. path:match("^etymon/(.+)$")) end end local function term_path(term_lang_code, term_page, ...) local safe_term = sanitize_term_page(term_page) local parts = { "etymon", "term", term_lang_code, safe_term } for i = 1, select("#", ...) do local segment = select(i, ...) if segment then table.insert(parts, segment) end end return table.concat(parts, "/") end local function term_id_path(term_lang_code, term_page, id_value, suffix) return term_path(term_lang_code, term_page, "id", sanitize_track_segment(id_value), suffix) end local function idless_term_path(term_lang_code, term_page, outcome) return term_path(term_lang_code, term_page, outcome) end local function mismatched_term_path(term_lang_code, term_page, id_value) return term_id_path(term_lang_code, term_page, id_value, "mismatched") end local function record_term_id(id_stats, term_lang_code, term_page, id_value, is_override) if not term_page or term_page == "" or not id_value or id_value == "" then return end id_stats.term_ids[term_lang_code] = id_stats.term_ids[term_lang_code] or {} id_stats.term_ids[term_lang_code][term_page] = id_stats.term_ids[term_lang_code][term_page] or {} local entry = id_stats.term_ids[term_lang_code][term_page][id_value] if not entry then entry = { count = 0, override = false } id_stats.term_ids[term_lang_code][term_page][id_value] = entry end entry.count = entry.count + 1 if is_override then entry.override = true end end local function record_idless_term(id_stats, term_lang_code, term_page) if not term_page or term_page == "" then return end id_stats.idless_terms[term_lang_code] = id_stats.idless_terms[term_lang_code] or {} local entry = id_stats.idless_terms[term_lang_code][term_page] if not entry then entry = { count = 0, outcomes = {} } id_stats.idless_terms[term_lang_code][term_page] = entry end entry.count = entry.count + 1 end local function track_ranges(base_key, value, ranges, lang_code) M.track("etymon/" .. base_key .. "/" .. value) if lang_code then M.track("etymon/lang/" .. lang_code .. "/" .. base_key .. "/" .. value) end for _, range in ipairs(ranges) do local matches = false if range.min and range.max then matches = value >= range.min and value <= range.max elseif range.min then matches = value >= range.min elseif range.max then matches = value <= range.max elseif range.exact then matches = value == range.exact end if matches then M.track("etymon/" .. base_key .. "/" .. range.label) if lang_code then M.track("etymon/lang/" .. lang_code .. "/" .. base_key .. "/" .. range.label) end break end end end function export.track_term(rest) if rest == "" then M.track("etymon/term/empty") elseif rest == "?" then M.track("etymon/term/question-mark") elseif rest == "-" then M.track("etymon/term/hyphen") end end function export.track_title_pagename_mismatch(lang) local lang_code = lang:getCode() M.track("etymon/title/pagename-mismatch-after-strip-diacritics") M.track("etymon/lang/" .. lang_code .. "/title/pagename-mismatch-after-strip-diacritics") end function export.record_keyword_usage(keyword_stats, keyword, target_lang, source_lang, is_toplevel) if not is_toplevel then return end if not keyword_stats[keyword] then keyword_stats[keyword] = { count = 0, target_langs = {}, source_langs = {}, } end local keyword_data = keyword_stats[keyword] keyword_data.count = keyword_data.count + 1 local target_code = target_lang:getCode() keyword_data.target_langs[target_code] = (keyword_data.target_langs[target_code] or 0) + 1 if source_lang then local source_code = source_lang:getCode() keyword_data.source_langs[source_code] = (keyword_data.source_langs[source_code] or 0) + 1 end end function export.track_tree_metrics(opts) local max_depth = opts.max_depth_reached if not max_depth or max_depth <= 0 then return end local lang_code = opts.lang:getCode() local total_nodes = opts.total_nodes local language_count = opts.language_count track_ranges("depth", max_depth, DEPTH_RANGES, lang_code) track_ranges("nodes", total_nodes, NODE_RANGES, lang_code) local unique_languages = 0 for _ in pairs(language_count) do unique_languages = unique_languages + 1 end track_ranges("unique-languages", unique_languages, LANGUAGE_RANGES, lang_code) if total_nodes == max_depth + 1 then track_ranges("linear-depth", max_depth, DEPTH_RANGES, lang_code) end end function export.track_keywords(keyword_stats, target_lang) local target_lang_code = target_lang:getCode() for keyword, keyword_data in pairs(keyword_stats) do M.track("etymon/keyword/" .. keyword) M.track("etymon/keyword/" .. keyword .. "/target/" .. target_lang_code) for source_code in pairs(keyword_data.source_langs) do M.track("etymon/keyword/" .. keyword .. "/source/" .. source_code) M.track("etymon/keyword/" .. keyword .. "/target/" .. target_lang_code .. "/source/" .. source_code) end end end function export.record_term_id_usage(id_stats, etymon_data, term_page) local term_lang_code = etymon_data.lang:getCode() if etymon_data.id and etymon_data.id ~= "" then record_term_id(id_stats, term_lang_code, term_page, etymon_data.id, etymon_data.override) else record_idless_term(id_stats, term_lang_code, term_page) end end function export.record_mismatched_id_usage(id_stats, term_lang, term_page, id_value) if not term_page or term_page == "" or not id_value or id_value == "" then return end local term_lang_code = term_lang:getCode() id_stats.mismatched_ids[term_lang_code] = id_stats.mismatched_ids[term_lang_code] or {} id_stats.mismatched_ids[term_lang_code][term_page] = id_stats.mismatched_ids[term_lang_code][term_page] or {} id_stats.mismatched_ids[term_lang_code][term_page][id_value] = (id_stats.mismatched_ids[term_lang_code][term_page][id_value] or 0) + 1 end function export.record_idless_resolution(id_stats, term_lang, term_page, outcome) if not term_page or term_page == "" then return end local term_lang_code = term_lang:getCode() id_stats.idless_terms[term_lang_code] = id_stats.idless_terms[term_lang_code] or {} local entry = id_stats.idless_terms[term_lang_code][term_page] if not entry then entry = { count = 0, outcomes = {} } id_stats.idless_terms[term_lang_code][term_page] = entry end entry.outcomes[outcome] = (entry.outcomes[outcome] or 0) + 1 end function export.track_text_stop_lang_missing(page_lang, stop_code) if not stop_code or stop_code == "" then return end local page_lang_code = page_lang:getCode() M.track("etymon/text/stop-lang/missing/" .. stop_code) M.track("etymon/lang/" .. page_lang_code .. "/text/stop-lang/missing/" .. stop_code) end function export.track_page_id(page_lang, id) local lang_code = page_lang:getCode() if id and id ~= "" then M.track("etymon/page-id/set") M.track("etymon/lang/" .. lang_code .. "/page-id/set") else M.track("etymon/page-id/unset") M.track("etymon/lang/" .. lang_code .. "/page-id/unset") end end function export.track_ids(id_stats, page_lang) local page_lang_code = page_lang:getCode() for term_lang_code, terms in pairs(id_stats.term_ids or {}) do for term_page, ids in pairs(terms) do for id_value, entry in pairs(ids) do if entry.count > 0 then track_path(page_lang_code, term_id_path(term_lang_code, term_page, id_value)) if entry.override then track_path(page_lang_code, term_id_path(term_lang_code, term_page, id_value, "override")) end end end end end for term_lang_code, terms in pairs(id_stats.idless_terms or {}) do for term_page, entry in pairs(terms) do if entry.count > 0 then track_path(page_lang_code, idless_term_path(term_lang_code, term_page)) end for outcome, count in pairs(entry.outcomes or {}) do if count > 0 then track_path(page_lang_code, idless_term_path(term_lang_code, term_page, outcome)) end end end end for term_lang_code, terms in pairs(id_stats.mismatched_ids or {}) do for term_page, ids in pairs(terms) do for id_value, count in pairs(ids) do if count > 0 then track_path(page_lang_code, mismatched_term_path(term_lang_code, term_page, id_value)) end end end end end function export.new_id_stats() return { term_ids = {}, idless_terms = {}, mismatched_ids = {}, } end return export 1a6uqo8jj8m8p5gt11ki7rx17qdrf11 9813972 9813886 2026-06-15T20:13:50Z Xiplus 25402 已保护“[[Module:Etymon/tracking]]”:​高風險模板:1117引用​([编辑权限=仅允许自动确认用户](无限期)​[移动权限=仅允许自动确认用户](无限期)) 9813886 Scribunto text/plain --[=[ Documentation: [[WT:Tracking#Etymon]]. ]=] local export = {} local M = require("Module:module loader").init({ require = { track = "Module:debug/track", }, }) local DEPTH_RANGES = { { min = 50, label = "extremely-deep" }, { min = 20, label = "20+" }, { min = 10, max = 19, label = "10-19" }, { min = 5, max = 9, label = "5-9" }, { min = 3, max = 4, label = "3-4" }, { max = 2, label = "1-2" }, } local NODE_RANGES = { { min = 100, label = "extremely-large" }, { min = 50, label = "50+" }, { min = 20, max = 49, label = "20-49" }, { min = 10, max = 19, label = "10-19" }, { min = 5, max = 9, label = "5-9" }, { max = 4, label = "1-4" }, } local LANGUAGE_RANGES = { { min = 10, label = "10+" }, { min = 5, max = 9, label = "5-9" }, { min = 3, max = 4, label = "3-4" }, { exact = 2, label = "2" }, { exact = 1, label = "1" }, } local TERM_PAGE_NORMALIZERS = { { pattern = "^Reconstruction:[^/]+/(.+)$", normalize = function(term) if term:sub(1, 1) ~= "*" then return "*" .. term end return term end, }, { pattern = "^Appendix:[^/]+/(.+)$", normalize = function(term) return term end, }, } local function normalize_term_page(term_page) local page = tostring(term_page) for _, rule in ipairs(TERM_PAGE_NORMALIZERS) do local term = page:match(rule.pattern) if term then return rule.normalize(term) end end return page end local function sanitize_term_page(term_page) return normalize_term_page(term_page):gsub(":", "-"):gsub("/", "-"):gsub(" ", "_") end local function sanitize_track_segment(value) return tostring(value):gsub(":", "-"):gsub("/", "-"):gsub(" ", "_") end local function track_path(page_lang_code, path) M.track(path) if page_lang_code then M.track("etymon/lang/" .. page_lang_code .. "/" .. path:match("^etymon/(.+)$")) end end local function term_path(term_lang_code, term_page, ...) local safe_term = sanitize_term_page(term_page) local parts = { "etymon", "term", term_lang_code, safe_term } for i = 1, select("#", ...) do local segment = select(i, ...) if segment then table.insert(parts, segment) end end return table.concat(parts, "/") end local function term_id_path(term_lang_code, term_page, id_value, suffix) return term_path(term_lang_code, term_page, "id", sanitize_track_segment(id_value), suffix) end local function idless_term_path(term_lang_code, term_page, outcome) return term_path(term_lang_code, term_page, outcome) end local function mismatched_term_path(term_lang_code, term_page, id_value) return term_id_path(term_lang_code, term_page, id_value, "mismatched") end local function record_term_id(id_stats, term_lang_code, term_page, id_value, is_override) if not term_page or term_page == "" or not id_value or id_value == "" then return end id_stats.term_ids[term_lang_code] = id_stats.term_ids[term_lang_code] or {} id_stats.term_ids[term_lang_code][term_page] = id_stats.term_ids[term_lang_code][term_page] or {} local entry = id_stats.term_ids[term_lang_code][term_page][id_value] if not entry then entry = { count = 0, override = false } id_stats.term_ids[term_lang_code][term_page][id_value] = entry end entry.count = entry.count + 1 if is_override then entry.override = true end end local function record_idless_term(id_stats, term_lang_code, term_page) if not term_page or term_page == "" then return end id_stats.idless_terms[term_lang_code] = id_stats.idless_terms[term_lang_code] or {} local entry = id_stats.idless_terms[term_lang_code][term_page] if not entry then entry = { count = 0, outcomes = {} } id_stats.idless_terms[term_lang_code][term_page] = entry end entry.count = entry.count + 1 end local function track_ranges(base_key, value, ranges, lang_code) M.track("etymon/" .. base_key .. "/" .. value) if lang_code then M.track("etymon/lang/" .. lang_code .. "/" .. base_key .. "/" .. value) end for _, range in ipairs(ranges) do local matches = false if range.min and range.max then matches = value >= range.min and value <= range.max elseif range.min then matches = value >= range.min elseif range.max then matches = value <= range.max elseif range.exact then matches = value == range.exact end if matches then M.track("etymon/" .. base_key .. "/" .. range.label) if lang_code then M.track("etymon/lang/" .. lang_code .. "/" .. base_key .. "/" .. range.label) end break end end end function export.track_term(rest) if rest == "" then M.track("etymon/term/empty") elseif rest == "?" then M.track("etymon/term/question-mark") elseif rest == "-" then M.track("etymon/term/hyphen") end end function export.track_title_pagename_mismatch(lang) local lang_code = lang:getCode() M.track("etymon/title/pagename-mismatch-after-strip-diacritics") M.track("etymon/lang/" .. lang_code .. "/title/pagename-mismatch-after-strip-diacritics") end function export.record_keyword_usage(keyword_stats, keyword, target_lang, source_lang, is_toplevel) if not is_toplevel then return end if not keyword_stats[keyword] then keyword_stats[keyword] = { count = 0, target_langs = {}, source_langs = {}, } end local keyword_data = keyword_stats[keyword] keyword_data.count = keyword_data.count + 1 local target_code = target_lang:getCode() keyword_data.target_langs[target_code] = (keyword_data.target_langs[target_code] or 0) + 1 if source_lang then local source_code = source_lang:getCode() keyword_data.source_langs[source_code] = (keyword_data.source_langs[source_code] or 0) + 1 end end function export.track_tree_metrics(opts) local max_depth = opts.max_depth_reached if not max_depth or max_depth <= 0 then return end local lang_code = opts.lang:getCode() local total_nodes = opts.total_nodes local language_count = opts.language_count track_ranges("depth", max_depth, DEPTH_RANGES, lang_code) track_ranges("nodes", total_nodes, NODE_RANGES, lang_code) local unique_languages = 0 for _ in pairs(language_count) do unique_languages = unique_languages + 1 end track_ranges("unique-languages", unique_languages, LANGUAGE_RANGES, lang_code) if total_nodes == max_depth + 1 then track_ranges("linear-depth", max_depth, DEPTH_RANGES, lang_code) end end function export.track_keywords(keyword_stats, target_lang) local target_lang_code = target_lang:getCode() for keyword, keyword_data in pairs(keyword_stats) do M.track("etymon/keyword/" .. keyword) M.track("etymon/keyword/" .. keyword .. "/target/" .. target_lang_code) for source_code in pairs(keyword_data.source_langs) do M.track("etymon/keyword/" .. keyword .. "/source/" .. source_code) M.track("etymon/keyword/" .. keyword .. "/target/" .. target_lang_code .. "/source/" .. source_code) end end end function export.record_term_id_usage(id_stats, etymon_data, term_page) local term_lang_code = etymon_data.lang:getCode() if etymon_data.id and etymon_data.id ~= "" then record_term_id(id_stats, term_lang_code, term_page, etymon_data.id, etymon_data.override) else record_idless_term(id_stats, term_lang_code, term_page) end end function export.record_mismatched_id_usage(id_stats, term_lang, term_page, id_value) if not term_page or term_page == "" or not id_value or id_value == "" then return end local term_lang_code = term_lang:getCode() id_stats.mismatched_ids[term_lang_code] = id_stats.mismatched_ids[term_lang_code] or {} id_stats.mismatched_ids[term_lang_code][term_page] = id_stats.mismatched_ids[term_lang_code][term_page] or {} id_stats.mismatched_ids[term_lang_code][term_page][id_value] = (id_stats.mismatched_ids[term_lang_code][term_page][id_value] or 0) + 1 end function export.record_idless_resolution(id_stats, term_lang, term_page, outcome) if not term_page or term_page == "" then return end local term_lang_code = term_lang:getCode() id_stats.idless_terms[term_lang_code] = id_stats.idless_terms[term_lang_code] or {} local entry = id_stats.idless_terms[term_lang_code][term_page] if not entry then entry = { count = 0, outcomes = {} } id_stats.idless_terms[term_lang_code][term_page] = entry end entry.outcomes[outcome] = (entry.outcomes[outcome] or 0) + 1 end function export.track_text_stop_lang_missing(page_lang, stop_code) if not stop_code or stop_code == "" then return end local page_lang_code = page_lang:getCode() M.track("etymon/text/stop-lang/missing/" .. stop_code) M.track("etymon/lang/" .. page_lang_code .. "/text/stop-lang/missing/" .. stop_code) end function export.track_page_id(page_lang, id) local lang_code = page_lang:getCode() if id and id ~= "" then M.track("etymon/page-id/set") M.track("etymon/lang/" .. lang_code .. "/page-id/set") else M.track("etymon/page-id/unset") M.track("etymon/lang/" .. lang_code .. "/page-id/unset") end end function export.track_ids(id_stats, page_lang) local page_lang_code = page_lang:getCode() for term_lang_code, terms in pairs(id_stats.term_ids or {}) do for term_page, ids in pairs(terms) do for id_value, entry in pairs(ids) do if entry.count > 0 then track_path(page_lang_code, term_id_path(term_lang_code, term_page, id_value)) if entry.override then track_path(page_lang_code, term_id_path(term_lang_code, term_page, id_value, "override")) end end end end end for term_lang_code, terms in pairs(id_stats.idless_terms or {}) do for term_page, entry in pairs(terms) do if entry.count > 0 then track_path(page_lang_code, idless_term_path(term_lang_code, term_page)) end for outcome, count in pairs(entry.outcomes or {}) do if count > 0 then track_path(page_lang_code, idless_term_path(term_lang_code, term_page, outcome)) end end end end for term_lang_code, terms in pairs(id_stats.mismatched_ids or {}) do for term_page, ids in pairs(terms) do for id_value, count in pairs(ids) do if count > 0 then track_path(page_lang_code, mismatched_term_path(term_lang_code, term_page, id_value)) end end end end end function export.new_id_stats() return { term_ids = {}, idless_terms = {}, mismatched_ids = {}, } end return export 1a6uqo8jj8m8p5gt11ki7rx17qdrf11 Module:Etymon/descendants 828 3479756 9813890 2026-06-15T18:17:03Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「local export = {} local M = require("Module:module loader").init({ require = { template_parser = "Module:template parser", links = "Module:links", languages = "Module:languages", }, }) local TRACKABLE_KEYWORDS = { inherited = true, bor = true, lbor = true, slbor = true, derived = true, uder = true, } local DESCENDANT_TEMPLATES = { ["desc"] = true, ["descendant"] = true, ["desctree"] = true, ["descendants tree"] = true, }…」的新頁面 9813890 Scribunto text/plain local export = {} local M = require("Module:module loader").init({ require = { template_parser = "Module:template parser", links = "Module:links", languages = "Module:languages", }, }) local TRACKABLE_KEYWORDS = { inherited = true, bor = true, lbor = true, slbor = true, derived = true, uder = true, } local DESCENDANT_TEMPLATES = { ["desc"] = true, ["descendant"] = true, ["desctree"] = true, ["descendants tree"] = true, } local SKIPPED_TERMS = { [""] = true, ["-"] = true, } local CHECK_MISSING_HEADER = { missing_header = true, missing_entry = false } local STRIPPED_REF_TEMPLATES = { ref = true, refn = true, } local ENABLE_DESCENDANTS_TRACKING = false local function _resolve_explicit_cache_id(explicit_id, parent_etymon) if parent_etymon then return parent_etymon.id or "*" end return explicit_id end local function _resolve_single_cache_id(id_data) return (type(id_data) == "table" and id_data.id) or id_data or "*" end local function _resolve_cache_id(lookup) if not lookup then return nil end if lookup.id then return lookup.id end if lookup.explicit_id then return _resolve_explicit_cache_id(lookup.explicit_id, lookup.parent_etymon) end if lookup.id_data ~= nil then return _resolve_single_cache_id(lookup.id_data) end return nil end local function _get_cached_check(cache_table, is_toplevel, base_key, cache_id) if not is_toplevel or not cache_table or not base_key or not cache_id then return nil end return cache_table[base_key .. ":" .. cache_id] end local function _store_checks(cache_table, lang_page_key, checks_by_id, redirected_from) if not cache_table or not lang_page_key or not checks_by_id then return end for id, check in pairs(checks_by_id) do cache_table[lang_page_key .. ":" .. id] = check end if redirected_from then for id, check in pairs(checks_by_id) do cache_table[redirected_from .. ":" .. id] = check end end end local function _strip_refs(value) if type(value) ~= "string" or value == "" then return value end local get_node_class = M.template_parser.class_else_type local function trim_local(text) return (type(text) == "string" and text:match("^%s*(.-)%s*$")) or "" end local function lower_local(text) return text and mw.ustring.lower(text) or text end local function template_name_unexpanded(template_node) return lower_local(trim_local(tostring(template_node[1]) or "")) end local function stringify_without_ref_templates(node) if type(node) ~= "table" then return node == nil and "" or tostring(node) end local node_class = get_node_class(node) if node_class == "template" and STRIPPED_REF_TEMPLATES[template_name_unexpanded(node)] then return "" end if node_class == "template" then return tostring(node) end if node_class == "heading" then return tostring(node) end if node_class and node_class ~= "wikitext" then return tostring(node) end local pieces = {} for i = 1, #node do pieces[i] = stringify_without_ref_templates(node[i]) end return table.concat(pieces) end local parsed = M.template_parser.parse(value) local cleaned = stringify_without_ref_templates(parsed) local changed = true while changed do local next_cleaned = mw.ustring.gsub(cleaned, "<%s*[Rr][Ee][Ff][^>]-/>", "") next_cleaned = mw.ustring.gsub(next_cleaned, "<%s*[Rr][Ee][Ff][^>]*>.-<%s*/%s*[Rr][Ee][Ff]%s*>", "") next_cleaned = mw.ustring.gsub(next_cleaned, "{{%s*[Rr][Ee][Ff]%s*}}", "") next_cleaned = mw.ustring.gsub(next_cleaned, "{{%s*[Rr][Ee][Ff]%s*|[^{}]-}}", "") changed = next_cleaned ~= cleaned cleaned = next_cleaned end return cleaned end local function _trim(value) if type(value) ~= "string" then return nil end return value:match("^%s*(.-)%s*$") end local function _lower(value) return value and mw.ustring.lower(value) or value end local function _is_index_in_range(index, start_index, end_index) return index and index >= start_index and index <= end_index end local function _build_parse_index(lang_section) local parsed = M.template_parser.parse(lang_section) local headings = {} local templates = {} for heading in parsed:iterate_nodes("heading") do local heading_name = heading:get_name() table.insert(headings, { index = heading.index or 1, level = heading.level or 0, name = heading_name and _lower(_trim(heading_name) or "") or nil, length = #tostring(heading), }) end for template in parsed:iterate_nodes("template") do local template_name = template:get_name() local template_args = template:get_arguments() table.insert(templates, { index = template.index or 1, name = template_name and _lower(_trim(template_name) or "") or "", args = template_args or {}, }) end return { headings = headings, templates = templates, } end local function _build_regions(lang_section, headings) local content_length = #lang_section local etymology_headings = {} for _, heading in ipairs(headings) do if heading.level == 3 and heading.name and mw.ustring.match(heading.name, "^etymology") then table.insert(etymology_headings, heading) end end if #etymology_headings == 0 then return { { start_index = 1, end_index = content_length } } end local regions = {} for i = 1, #etymology_headings do local heading = etymology_headings[i] local next_heading = etymology_headings[i + 1] local start_index = heading.index local end_index = next_heading and (next_heading.index - 1) or content_length if i == 1 and heading.index > 1 then local preamble = lang_section:sub(1, heading.index - 1) if preamble:match("%S") then start_index = 1 end end table.insert(regions, { start_index = start_index, end_index = end_index, }) end return regions end local function _count_region_etymons(region, templates, etymon_lang_code) local count = 0 for _, template in ipairs(templates) do if _is_index_in_range(template.index, region.start_index, region.end_index) and template.name == "etymon" and template.args[1] == etymon_lang_code then count = count + 1 end end return count end local function _get_descendants_sections(region, headings) local sections = {} for i = 1, #headings do local heading = headings[i] if _is_index_in_range(heading.index, region.start_index, region.end_index) and heading.name == "descendants" then local body_start = heading.index + heading.length local body_end = region.end_index for j = i + 1, #headings do local next_heading = headings[j] if next_heading.index > region.end_index then break end if next_heading.level <= heading.level then body_end = next_heading.index - 1 break end end table.insert(sections, { start_index = body_start, end_index = body_end, }) end end return sections end local function _template_lang_matches_entry(template_lang_code, entry_full_code, cache) local normalized_code = _trim(template_lang_code) if not normalized_code or normalized_code == "" then return false end local cached = cache[normalized_code] if cached ~= nil then return cached end local template_lang = M.languages.getByCode(normalized_code, nil, true) local is_match = template_lang and template_lang:getFullCode() == entry_full_code or false cache[normalized_code] = is_match return is_match end local function _template_lists_target(template_args, first_term_index, target_page_lower, entry_lang) for arg_index = first_term_index, #template_args do local template_term = _trim(template_args[arg_index]) if template_term and not SKIPPED_TERMS[template_term] then if _lower(template_term) == target_page_lower then return true end local template_page = M.links.get_link_page(template_term, entry_lang) if _lower(template_page) == target_page_lower then return true end end end return false end local function _is_target_listed_in_descendants(descendants_sections, templates, entry_title, entry_lang) if #descendants_sections == 0 then return false end local target_page = M.links.get_link_page(entry_title, entry_lang) local target_page_lower = _lower(target_page) local entry_full_code = entry_lang:getFullCode() local lang_match_cache = {} for _, section in ipairs(descendants_sections) do for _, template in ipairs(templates) do if _is_index_in_range(template.index, section.start_index, section.end_index) and DESCENDANT_TEMPLATES[template.name] then local lang_arg_index = nil for arg_index = 1, #template.args do if _template_lang_matches_entry(template.args[arg_index], entry_full_code, lang_match_cache) then lang_arg_index = arg_index break end end if lang_arg_index and _template_lists_target(template.args, lang_arg_index + 1, target_page_lower, entry_lang) then return true end end end end return false end local function _region_has_descendant_template(region, templates) for _, template in ipairs(templates) do if _is_index_in_range(template.index, region.start_index, region.end_index) and DESCENDANT_TEMPLATES[template.name] then return true end end return false end local function _get_region_check(region, parsed_index, entry_title, entry_lang) local descendants_sections = _get_descendants_sections(region, parsed_index.headings) if #descendants_sections == 0 then if _region_has_descendant_template(region, parsed_index.templates) then local fallback_sections = { { start_index = region.start_index, end_index = region.end_index, } } return { missing_header = false, missing_entry = not _is_target_listed_in_descendants(fallback_sections, parsed_index.templates, entry_title, entry_lang), } end return CHECK_MISSING_HEADER end return { missing_header = false, missing_entry = not _is_target_listed_in_descendants(descendants_sections, parsed_index.templates, entry_title, entry_lang), } end local function _build_checks_by_id(lang_section, etymon_lang_code, found_templates_for_lang, entry_title, entry_lang) local checks_by_id = {} local parsed_index = _build_parse_index(lang_section) local regions = _build_regions(lang_section, parsed_index.headings) local template_list_index = 1 local mapping_failed = false for _, region in ipairs(regions) do local region_etymon_count = _count_region_etymons(region, parsed_index.templates, etymon_lang_code) local region_check = nil if region_etymon_count > 0 then region_check = _get_region_check(region, parsed_index, entry_title, entry_lang) end for _ = 1, region_etymon_count do local found_template_args = found_templates_for_lang[template_list_index] if not found_template_args then mapping_failed = true break end checks_by_id[found_template_args.id or "*"] = region_check template_list_index = template_list_index + 1 end if mapping_failed then break end end if mapping_failed or template_list_index ~= (#found_templates_for_lang + 1) then local global_region = { start_index = 1, end_index = #lang_section } local fallback_check = _get_region_check(global_region, parsed_index, entry_title, entry_lang) checks_by_id = {} for _, template_args in ipairs(found_templates_for_lang) do checks_by_id[template_args.id or "*"] = fallback_check end end return checks_by_id end local function _compute_checks_for_page(opts) opts = opts or {} local found_templates_for_lang = opts.found_templates_for_lang or {} if #found_templates_for_lang == 0 then return {} end local entry_title = opts.entry_title local entry_lang = opts.entry_lang local etymon_lang_code = opts.etymon_lang_code if not entry_title or not entry_lang or not etymon_lang_code then return {} end local sanitized_lang_section = _strip_refs(opts.lang_section or "") return _build_checks_by_id( sanitized_lang_section, etymon_lang_code, found_templates_for_lang, entry_title, entry_lang ) end function export.cache_page_checks(opts) if not ENABLE_DESCENDANTS_TRACKING then return {} end opts = opts or {} local cache_table = opts.cached_descendants_checks local lang_page_key = opts.lang_page_key if not cache_table or not lang_page_key then return {} end local checks_by_id = _compute_checks_for_page(opts) _store_checks(cache_table, lang_page_key, checks_by_id, opts.redirected_from) return checks_by_id end function export.get_lookup_check(opts) if not ENABLE_DESCENDANTS_TRACKING then return nil end opts = opts or {} return _get_cached_check( opts.cached_descendants_checks, opts.is_toplevel, opts.base_key, _resolve_cache_id(opts.lookup) ) end function export.get_term_sync_flags(keyword, term_status, descendants_check) if not ENABLE_DESCENDANTS_TRACKING then return false, false end local should_track = term_status == "ok" and TRACKABLE_KEYWORDS[keyword] == true and descendants_check ~= nil if not should_track then return false, false end return descendants_check.missing_header or false, descendants_check.missing_entry or false end return export njoa75ldlbxvifpj024ykipfx44kfcd 9813978 9813890 2026-06-15T20:14:00Z Xiplus 25402 已保护“[[Module:Etymon/descendants]]”:​高風險模板:1040引用​([编辑权限=仅允许自动确认用户](无限期)​[移动权限=仅允许自动确认用户](无限期)) 9813890 Scribunto text/plain local export = {} local M = require("Module:module loader").init({ require = { template_parser = "Module:template parser", links = "Module:links", languages = "Module:languages", }, }) local TRACKABLE_KEYWORDS = { inherited = true, bor = true, lbor = true, slbor = true, derived = true, uder = true, } local DESCENDANT_TEMPLATES = { ["desc"] = true, ["descendant"] = true, ["desctree"] = true, ["descendants tree"] = true, } local SKIPPED_TERMS = { [""] = true, ["-"] = true, } local CHECK_MISSING_HEADER = { missing_header = true, missing_entry = false } local STRIPPED_REF_TEMPLATES = { ref = true, refn = true, } local ENABLE_DESCENDANTS_TRACKING = false local function _resolve_explicit_cache_id(explicit_id, parent_etymon) if parent_etymon then return parent_etymon.id or "*" end return explicit_id end local function _resolve_single_cache_id(id_data) return (type(id_data) == "table" and id_data.id) or id_data or "*" end local function _resolve_cache_id(lookup) if not lookup then return nil end if lookup.id then return lookup.id end if lookup.explicit_id then return _resolve_explicit_cache_id(lookup.explicit_id, lookup.parent_etymon) end if lookup.id_data ~= nil then return _resolve_single_cache_id(lookup.id_data) end return nil end local function _get_cached_check(cache_table, is_toplevel, base_key, cache_id) if not is_toplevel or not cache_table or not base_key or not cache_id then return nil end return cache_table[base_key .. ":" .. cache_id] end local function _store_checks(cache_table, lang_page_key, checks_by_id, redirected_from) if not cache_table or not lang_page_key or not checks_by_id then return end for id, check in pairs(checks_by_id) do cache_table[lang_page_key .. ":" .. id] = check end if redirected_from then for id, check in pairs(checks_by_id) do cache_table[redirected_from .. ":" .. id] = check end end end local function _strip_refs(value) if type(value) ~= "string" or value == "" then return value end local get_node_class = M.template_parser.class_else_type local function trim_local(text) return (type(text) == "string" and text:match("^%s*(.-)%s*$")) or "" end local function lower_local(text) return text and mw.ustring.lower(text) or text end local function template_name_unexpanded(template_node) return lower_local(trim_local(tostring(template_node[1]) or "")) end local function stringify_without_ref_templates(node) if type(node) ~= "table" then return node == nil and "" or tostring(node) end local node_class = get_node_class(node) if node_class == "template" and STRIPPED_REF_TEMPLATES[template_name_unexpanded(node)] then return "" end if node_class == "template" then return tostring(node) end if node_class == "heading" then return tostring(node) end if node_class and node_class ~= "wikitext" then return tostring(node) end local pieces = {} for i = 1, #node do pieces[i] = stringify_without_ref_templates(node[i]) end return table.concat(pieces) end local parsed = M.template_parser.parse(value) local cleaned = stringify_without_ref_templates(parsed) local changed = true while changed do local next_cleaned = mw.ustring.gsub(cleaned, "<%s*[Rr][Ee][Ff][^>]-/>", "") next_cleaned = mw.ustring.gsub(next_cleaned, "<%s*[Rr][Ee][Ff][^>]*>.-<%s*/%s*[Rr][Ee][Ff]%s*>", "") next_cleaned = mw.ustring.gsub(next_cleaned, "{{%s*[Rr][Ee][Ff]%s*}}", "") next_cleaned = mw.ustring.gsub(next_cleaned, "{{%s*[Rr][Ee][Ff]%s*|[^{}]-}}", "") changed = next_cleaned ~= cleaned cleaned = next_cleaned end return cleaned end local function _trim(value) if type(value) ~= "string" then return nil end return value:match("^%s*(.-)%s*$") end local function _lower(value) return value and mw.ustring.lower(value) or value end local function _is_index_in_range(index, start_index, end_index) return index and index >= start_index and index <= end_index end local function _build_parse_index(lang_section) local parsed = M.template_parser.parse(lang_section) local headings = {} local templates = {} for heading in parsed:iterate_nodes("heading") do local heading_name = heading:get_name() table.insert(headings, { index = heading.index or 1, level = heading.level or 0, name = heading_name and _lower(_trim(heading_name) or "") or nil, length = #tostring(heading), }) end for template in parsed:iterate_nodes("template") do local template_name = template:get_name() local template_args = template:get_arguments() table.insert(templates, { index = template.index or 1, name = template_name and _lower(_trim(template_name) or "") or "", args = template_args or {}, }) end return { headings = headings, templates = templates, } end local function _build_regions(lang_section, headings) local content_length = #lang_section local etymology_headings = {} for _, heading in ipairs(headings) do if heading.level == 3 and heading.name and mw.ustring.match(heading.name, "^etymology") then table.insert(etymology_headings, heading) end end if #etymology_headings == 0 then return { { start_index = 1, end_index = content_length } } end local regions = {} for i = 1, #etymology_headings do local heading = etymology_headings[i] local next_heading = etymology_headings[i + 1] local start_index = heading.index local end_index = next_heading and (next_heading.index - 1) or content_length if i == 1 and heading.index > 1 then local preamble = lang_section:sub(1, heading.index - 1) if preamble:match("%S") then start_index = 1 end end table.insert(regions, { start_index = start_index, end_index = end_index, }) end return regions end local function _count_region_etymons(region, templates, etymon_lang_code) local count = 0 for _, template in ipairs(templates) do if _is_index_in_range(template.index, region.start_index, region.end_index) and template.name == "etymon" and template.args[1] == etymon_lang_code then count = count + 1 end end return count end local function _get_descendants_sections(region, headings) local sections = {} for i = 1, #headings do local heading = headings[i] if _is_index_in_range(heading.index, region.start_index, region.end_index) and heading.name == "descendants" then local body_start = heading.index + heading.length local body_end = region.end_index for j = i + 1, #headings do local next_heading = headings[j] if next_heading.index > region.end_index then break end if next_heading.level <= heading.level then body_end = next_heading.index - 1 break end end table.insert(sections, { start_index = body_start, end_index = body_end, }) end end return sections end local function _template_lang_matches_entry(template_lang_code, entry_full_code, cache) local normalized_code = _trim(template_lang_code) if not normalized_code or normalized_code == "" then return false end local cached = cache[normalized_code] if cached ~= nil then return cached end local template_lang = M.languages.getByCode(normalized_code, nil, true) local is_match = template_lang and template_lang:getFullCode() == entry_full_code or false cache[normalized_code] = is_match return is_match end local function _template_lists_target(template_args, first_term_index, target_page_lower, entry_lang) for arg_index = first_term_index, #template_args do local template_term = _trim(template_args[arg_index]) if template_term and not SKIPPED_TERMS[template_term] then if _lower(template_term) == target_page_lower then return true end local template_page = M.links.get_link_page(template_term, entry_lang) if _lower(template_page) == target_page_lower then return true end end end return false end local function _is_target_listed_in_descendants(descendants_sections, templates, entry_title, entry_lang) if #descendants_sections == 0 then return false end local target_page = M.links.get_link_page(entry_title, entry_lang) local target_page_lower = _lower(target_page) local entry_full_code = entry_lang:getFullCode() local lang_match_cache = {} for _, section in ipairs(descendants_sections) do for _, template in ipairs(templates) do if _is_index_in_range(template.index, section.start_index, section.end_index) and DESCENDANT_TEMPLATES[template.name] then local lang_arg_index = nil for arg_index = 1, #template.args do if _template_lang_matches_entry(template.args[arg_index], entry_full_code, lang_match_cache) then lang_arg_index = arg_index break end end if lang_arg_index and _template_lists_target(template.args, lang_arg_index + 1, target_page_lower, entry_lang) then return true end end end end return false end local function _region_has_descendant_template(region, templates) for _, template in ipairs(templates) do if _is_index_in_range(template.index, region.start_index, region.end_index) and DESCENDANT_TEMPLATES[template.name] then return true end end return false end local function _get_region_check(region, parsed_index, entry_title, entry_lang) local descendants_sections = _get_descendants_sections(region, parsed_index.headings) if #descendants_sections == 0 then if _region_has_descendant_template(region, parsed_index.templates) then local fallback_sections = { { start_index = region.start_index, end_index = region.end_index, } } return { missing_header = false, missing_entry = not _is_target_listed_in_descendants(fallback_sections, parsed_index.templates, entry_title, entry_lang), } end return CHECK_MISSING_HEADER end return { missing_header = false, missing_entry = not _is_target_listed_in_descendants(descendants_sections, parsed_index.templates, entry_title, entry_lang), } end local function _build_checks_by_id(lang_section, etymon_lang_code, found_templates_for_lang, entry_title, entry_lang) local checks_by_id = {} local parsed_index = _build_parse_index(lang_section) local regions = _build_regions(lang_section, parsed_index.headings) local template_list_index = 1 local mapping_failed = false for _, region in ipairs(regions) do local region_etymon_count = _count_region_etymons(region, parsed_index.templates, etymon_lang_code) local region_check = nil if region_etymon_count > 0 then region_check = _get_region_check(region, parsed_index, entry_title, entry_lang) end for _ = 1, region_etymon_count do local found_template_args = found_templates_for_lang[template_list_index] if not found_template_args then mapping_failed = true break end checks_by_id[found_template_args.id or "*"] = region_check template_list_index = template_list_index + 1 end if mapping_failed then break end end if mapping_failed or template_list_index ~= (#found_templates_for_lang + 1) then local global_region = { start_index = 1, end_index = #lang_section } local fallback_check = _get_region_check(global_region, parsed_index, entry_title, entry_lang) checks_by_id = {} for _, template_args in ipairs(found_templates_for_lang) do checks_by_id[template_args.id or "*"] = fallback_check end end return checks_by_id end local function _compute_checks_for_page(opts) opts = opts or {} local found_templates_for_lang = opts.found_templates_for_lang or {} if #found_templates_for_lang == 0 then return {} end local entry_title = opts.entry_title local entry_lang = opts.entry_lang local etymon_lang_code = opts.etymon_lang_code if not entry_title or not entry_lang or not etymon_lang_code then return {} end local sanitized_lang_section = _strip_refs(opts.lang_section or "") return _build_checks_by_id( sanitized_lang_section, etymon_lang_code, found_templates_for_lang, entry_title, entry_lang ) end function export.cache_page_checks(opts) if not ENABLE_DESCENDANTS_TRACKING then return {} end opts = opts or {} local cache_table = opts.cached_descendants_checks local lang_page_key = opts.lang_page_key if not cache_table or not lang_page_key then return {} end local checks_by_id = _compute_checks_for_page(opts) _store_checks(cache_table, lang_page_key, checks_by_id, opts.redirected_from) return checks_by_id end function export.get_lookup_check(opts) if not ENABLE_DESCENDANTS_TRACKING then return nil end opts = opts or {} return _get_cached_check( opts.cached_descendants_checks, opts.is_toplevel, opts.base_key, _resolve_cache_id(opts.lookup) ) end function export.get_term_sync_flags(keyword, term_status, descendants_check) if not ENABLE_DESCENDANTS_TRACKING then return false, false end local should_track = term_status == "ok" and TRACKABLE_KEYWORDS[keyword] == true and descendants_check ~= nil if not should_track then return false, false end return descendants_check.missing_header or false, descendants_check.missing_entry or false end return export njoa75ldlbxvifpj024ykipfx44kfcd Template:R:ine:Byrd:2015 10 3479757 9813901 2026-06-15T19:31:04Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{#invoke:quote|call_template |template=cite-book |last=Byrd |first=Andrew Miles |title=The Indo-European Syllable |series=Brill's Studies in Indo-European Languages & Linguistics |seriesvolume=15 |location=Leiden |publisher=Brill |year=2015 |pageparam=1 |textparam=2 }}<noinclude>{{documentation}}{{refcat}}</noinclude>」的新頁面 9813901 wikitext text/x-wiki {{#invoke:quote|call_template |template=cite-book |last=Byrd |first=Andrew Miles |title=The Indo-European Syllable |series=Brill's Studies in Indo-European Languages & Linguistics |seriesvolume=15 |location=Leiden |publisher=Brill |year=2015 |pageparam=1 |textparam=2 }}<noinclude>{{documentation}}{{refcat}}</noinclude> avbwc3ib7ovgwxqw03sf02674qipuaw Category:來自原始印歐語詞根*bʰerH- (刺)的捷克語詞 14 3479758 9813902 2026-06-15T19:32:20Z TongcyBot 83009 養貓 9813902 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:來自原始印歐語詞根*bʰerH-的捷克語詞 14 3479759 9813903 2026-06-15T19:32:26Z TongcyBot 83009 養貓 9813903 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的頁面 14 3479760 9813906 2026-06-15T19:43:21Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{auto cat}}」的新頁面 9813906 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Reconstruction:原始意大利語/fworā 118 3479761 9813911 2026-06-15T20:06:49Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{reconstructed}} ==原始意大利語== ===詞源=== {{etymon|itc-pro|<alt:*þworā><ety:inh<ine-pro:<alt:*dʰworéh₂><ety:af<*dʰwer-><*-éh₂<id:o-級>>>>>}} 可能源自較早的 {{m|itc-pro||*þworā}},{{inh+|itc-pro|ine-pro||*dʰwor-éh₂}},源自詞根 {{m|ine-pro|*dʰwer-||們}}。 ===名詞=== {{head|itc-pro|名詞|g=f}}<ref>{{R:itc:EDL|head=foris|page=233}}</ref> # [[們]] #: {{syn|itc-pro|*fworis}} ====變格==== {{itc-…」的新頁面 9813911 wikitext text/x-wiki {{reconstructed}} ==原始意大利語== ===詞源=== {{etymon|itc-pro|<alt:*þworā><ety:inh<ine-pro:<alt:*dʰworéh₂><ety:af<*dʰwer-><*-éh₂<id:o-級>>>>>}} 可能源自較早的 {{m|itc-pro||*þworā}},{{inh+|itc-pro|ine-pro||*dʰwor-éh₂}},源自詞根 {{m|ine-pro|*dʰwer-||們}}。 ===名詞=== {{head|itc-pro|名詞|g=f}}<ref>{{R:itc:EDL|head=foris|page=233}}</ref> # [[們]] #: {{syn|itc-pro|*fworis}} ====變格==== {{itc-decl-noun-a|fwor}} ====派生語彙==== * {{desc|la|<alt:*fora>|forās<der>|forīs}} ===參考資料=== <references/> al83flmrcgzl1gsxiwmnpcyee7cqfqa Category:原始意大利語陰性名詞 14 3479762 9813912 2026-06-15T20:07:22Z TongcyBot 83009 養貓 9813912 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的詞條 14 3479763 9813939 2026-06-15T20:12:11Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{auto cat}}」的新頁面 9813939 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的德語詞條 14 3479765 9814003 2026-06-15T20:15:49Z TongcyBot 83009 養貓 9814003 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的伊多語詞條 14 3479766 9814006 2026-06-15T20:15:56Z TongcyBot 83009 養貓 9814006 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的法語詞條 14 3479767 9814008 2026-06-15T20:15:56Z TongcyBot 83009 養貓 9814008 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的信德語詞條 14 3479768 9814011 2026-06-15T20:16:01Z TongcyBot 83009 養貓 9814011 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的意大利語詞條 14 3479769 9814013 2026-06-15T20:16:02Z TongcyBot 83009 養貓 9814013 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的俾路支語詞條 14 3479770 9814016 2026-06-15T20:16:07Z TongcyBot 83009 養貓 9814016 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的英語詞條 14 3479771 9814018 2026-06-15T20:16:09Z TongcyBot 83009 養貓 9814018 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的加告茲語詞條 14 3479772 9814020 2026-06-15T20:16:14Z TongcyBot 83009 養貓 9814020 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的原始印歐語詞條 14 3479773 9814021 2026-06-15T20:16:15Z TongcyBot 83009 養貓 9814021 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的南非語詞條 14 3479774 9814023 2026-06-15T20:16:19Z TongcyBot 83009 養貓 9814023 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的波蘭語詞條 14 3479775 9814025 2026-06-15T20:16:23Z TongcyBot 83009 養貓 9814025 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的卡片片甘語詞條 14 3479776 9814028 2026-06-15T20:16:25Z TongcyBot 83009 養貓 9814028 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的拉丁語詞條 14 3479777 9814029 2026-06-15T20:16:29Z TongcyBot 83009 養貓 9814029 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的印度河科希斯坦語詞條 14 3479778 9814030 2026-06-15T20:16:32Z TongcyBot 83009 養貓 9814030 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的葡萄牙語詞條 14 3479779 9814033 2026-06-15T20:16:35Z TongcyBot 83009 養貓 9814033 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的原始伊朗語詞條 14 3479780 9814035 2026-06-15T20:16:38Z TongcyBot 83009 養貓 9814035 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的波斯語詞條 14 3479781 9814038 2026-06-15T20:16:42Z TongcyBot 83009 養貓 9814038 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的原始凱爾特語詞條 14 3479782 9814039 2026-06-15T20:16:44Z TongcyBot 83009 養貓 9814039 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的古英語詞條 14 3479783 9814041 2026-06-15T20:16:49Z TongcyBot 83009 養貓 9814041 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的原始南達羅毗荼語詞條 14 3479784 9814042 2026-06-15T20:16:50Z TongcyBot 83009 養貓 9814042 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的原始印度-伊朗語詞條 14 3479785 9814046 2026-06-15T20:16:56Z TongcyBot 83009 養貓 9814046 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的原始斯拉夫語詞條 14 3479786 9814047 2026-06-15T20:16:56Z TongcyBot 83009 養貓 9814047 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的原始圖皮語詞條 14 3479787 9814050 2026-06-15T20:17:02Z TongcyBot 83009 養貓 9814050 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的原始日耳曼語詞條 14 3479788 9814051 2026-06-15T20:17:03Z TongcyBot 83009 養貓 9814051 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:原始圖皮語詞條維護 14 3479789 9814052 2026-06-15T20:17:08Z TongcyBot 83009 養貓 9814052 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的中古英語詞條 14 3479790 9814053 2026-06-15T20:17:10Z TongcyBot 83009 養貓 9814053 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的原始希臘語詞條 14 3479791 9814054 2026-06-15T20:17:14Z TongcyBot 83009 養貓 9814054 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的阿拉伯語詞條 14 3479792 9814055 2026-06-15T20:17:16Z TongcyBot 83009 養貓 9814055 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的原始突厥語詞條 14 3479793 9814056 2026-06-15T20:17:20Z TongcyBot 83009 養貓 9814056 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的梵語詞條 14 3479794 9814057 2026-06-15T20:17:23Z TongcyBot 83009 養貓 9814057 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的原始菲律賓語詞條 14 3479795 9814058 2026-06-15T20:17:26Z TongcyBot 83009 養貓 9814058 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的西班牙語詞條 14 3479796 9814059 2026-06-15T20:17:29Z TongcyBot 83009 養貓 9814059 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的原始諾爾斯語詞條 14 3479798 9814061 2026-06-15T20:17:32Z TongcyBot 83009 養貓 9814061 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的古圖皮語詞條 14 3479799 9814062 2026-06-15T20:17:36Z TongcyBot 83009 養貓 9814062 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的原始閃米特語詞條 14 3479800 9814063 2026-06-15T20:17:38Z TongcyBot 83009 養貓 9814063 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的古葡萄牙語詞條 14 3479801 9814064 2026-06-15T20:17:42Z TongcyBot 83009 養貓 9814064 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的原始阿爾岡昆語詞條 14 3479802 9814065 2026-06-15T20:17:45Z TongcyBot 83009 養貓 9814065 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的原始西日耳曼語詞條 14 3479803 9814066 2026-06-15T20:17:49Z TongcyBot 83009 養貓 9814066 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的古古吉拉特語詞條 14 3479804 9814067 2026-06-15T20:17:50Z TongcyBot 83009 養貓 9814067 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的奈恩加圖語詞條 14 3479805 9814068 2026-06-15T20:17:56Z TongcyBot 83009 養貓 9814068 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的古奧克語詞條 14 3479806 9814069 2026-06-15T20:17:56Z TongcyBot 83009 養貓 9814069 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的古波斯語詞條 14 3479807 9814070 2026-06-15T20:18:02Z TongcyBot 83009 養貓 9814070 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的漢斯立克語詞條 14 3479808 9814071 2026-06-15T20:18:03Z TongcyBot 83009 養貓 9814071 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的古盧森尼亞語詞條 14 3479809 9814072 2026-06-15T20:18:08Z TongcyBot 83009 養貓 9814072 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的加利西亞語詞條 14 3479810 9814073 2026-06-15T20:18:09Z TongcyBot 83009 養貓 9814073 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的古荷蘭語詞條 14 3479811 9814074 2026-06-15T20:18:14Z TongcyBot 83009 養貓 9814074 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的卡舒比語詞條 14 3479812 9814075 2026-06-15T20:18:15Z TongcyBot 83009 養貓 9814075 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的古諾爾斯語詞條 14 3479813 9814077 2026-06-15T20:18:20Z TongcyBot 83009 養貓 9814077 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的原始意大利語詞條 14 3479814 9814078 2026-06-15T20:18:22Z TongcyBot 83009 養貓 9814078 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的古阿瓦德語詞條 14 3479815 9814079 2026-06-15T20:18:27Z TongcyBot 83009 養貓 9814079 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的古波蘭語詞條 14 3479816 9814080 2026-06-15T20:18:29Z TongcyBot 83009 養貓 9814080 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的吐火羅語B詞條 14 3479817 9814081 2026-06-15T20:18:33Z TongcyBot 83009 養貓 9814081 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的斯洛伐克語詞條 14 3479818 9814082 2026-06-15T20:18:37Z TongcyBot 83009 養貓 9814082 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的哈瓊語詞條 14 3479819 9814083 2026-06-15T20:18:40Z TongcyBot 83009 養貓 9814083 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的他加祿語詞條 14 3479820 9814084 2026-06-15T20:18:44Z TongcyBot 83009 養貓 9814084 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的喀奇語詞條 14 3479821 9814085 2026-06-15T20:18:46Z TongcyBot 83009 養貓 9814085 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的古高地德語詞條 14 3479822 9814086 2026-06-15T20:18:51Z TongcyBot 83009 養貓 9814086 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的噶瑪蘭語詞條 14 3479823 9814087 2026-06-15T20:18:53Z TongcyBot 83009 養貓 9814087 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的因紐特語詞條 14 3479824 9814089 2026-06-15T20:18:59Z TongcyBot 83009 養貓 9814089 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的捷克語詞條 14 3479825 9814090 2026-06-15T20:18:58Z TongcyBot 83009 養貓 9814090 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的圖瓦語詞條 14 3479826 9814091 2026-06-15T20:19:06Z TongcyBot 83009 養貓 9814091 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的烏爾都語詞條 14 3479827 9814092 2026-06-15T20:19:06Z TongcyBot 83009 養貓 9814092 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的基爾丁薩米語詞條 14 3479828 9814093 2026-06-15T20:19:12Z TongcyBot 83009 養貓 9814093 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的跨語言詞條 14 3479829 9814094 2026-06-15T20:19:13Z TongcyBot 83009 養貓 9814094 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的塔吉克語詞條 14 3479830 9814095 2026-06-15T20:19:18Z TongcyBot 83009 養貓 9814095 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的中古高地德語詞條 14 3479831 9814096 2026-06-15T20:19:20Z TongcyBot 83009 養貓 9814096 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的塞浦路斯阿拉伯語詞條 14 3479832 9814097 2026-06-15T20:19:25Z TongcyBot 83009 養貓 9814097 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的印地語詞條 14 3479833 9814098 2026-06-15T20:19:27Z TongcyBot 83009 養貓 9814098 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的壯語詞條 14 3479834 9814099 2026-06-15T20:19:31Z TongcyBot 83009 養貓 9814099 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的古吉拉特語詞條 14 3479835 9814100 2026-06-15T20:19:33Z TongcyBot 83009 養貓 9814100 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的奧克語詞條 14 3479836 9814101 2026-06-15T20:19:36Z TongcyBot 83009 養貓 9814101 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的古希臘語詞條 14 3479837 9814102 2026-06-15T20:19:40Z TongcyBot 83009 養貓 9814102 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的姆比亞瓜拉尼語詞條 14 3479838 9814103 2026-06-15T20:19:43Z TongcyBot 83009 養貓 9814103 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的原始波羅的-斯拉夫語詞條 14 3479839 9814104 2026-06-15T20:19:47Z TongcyBot 83009 養貓 9814104 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的孟語詞條 14 3479840 9814105 2026-06-15T20:19:49Z TongcyBot 83009 養貓 9814105 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的哈薩克語詞條 14 3479841 9814106 2026-06-15T20:19:53Z TongcyBot 83009 養貓 9814106 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的巴伐利亞語詞條 14 3479842 9814107 2026-06-15T20:19:56Z TongcyBot 83009 養貓 9814107 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的普拉克里特語詞條 14 3479843 9814108 2026-06-15T20:20:01Z TongcyBot 83009 養貓 9814108 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的巴拉圭瓜拉尼語詞條 14 3479844 9814109 2026-06-15T20:20:03Z TongcyBot 83009 養貓 9814109 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的荷蘭語詞條 14 3479845 9814110 2026-06-15T20:20:07Z TongcyBot 83009 養貓 9814110 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的希伯來語詞條 14 3479846 9814111 2026-06-15T20:20:09Z TongcyBot 83009 養貓 9814111 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的馬爾他語詞條 14 3479847 9814112 2026-06-15T20:20:14Z TongcyBot 83009 養貓 9814112 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的希臘語詞條 14 3479848 9814113 2026-06-15T20:20:15Z TongcyBot 83009 養貓 9814113 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的古斯洛伐克語詞條 14 3479849 9814114 2026-06-15T20:20:21Z TongcyBot 83009 養貓 9814114 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的愛沙尼亞語詞條 14 3479850 9814115 2026-06-15T20:20:22Z TongcyBot 83009 養貓 9814115 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的愛爾蘭語詞條 14 3479851 9814116 2026-06-15T20:20:29Z TongcyBot 83009 養貓 9814116 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的古法語詞條 14 3479852 9814117 2026-06-15T20:20:28Z TongcyBot 83009 養貓 9814117 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的孟加拉語詞條 14 3479853 9814118 2026-06-15T20:20:35Z TongcyBot 83009 養貓 9814118 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的托克皮辛語詞條 14 3479854 9814119 2026-06-15T20:20:36Z TongcyBot 83009 養貓 9814119 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的旁遮普語詞條 14 3479855 9814120 2026-06-15T20:20:42Z TongcyBot 83009 養貓 9814120 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的拉傑班什語詞條 14 3479856 9814121 2026-06-15T20:20:42Z TongcyBot 83009 養貓 9814121 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的新挪威語詞條 14 3479857 9814122 2026-06-15T20:20:48Z TongcyBot 83009 養貓 9814122 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的泰米爾語詞條 14 3479858 9814123 2026-06-15T20:20:48Z TongcyBot 83009 養貓 9814123 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的書面挪威語詞條 14 3479859 9814124 2026-06-15T20:20:54Z TongcyBot 83009 養貓 9814124 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的西里西亞語詞條 14 3479860 9814125 2026-06-15T20:20:56Z TongcyBot 83009 養貓 9814125 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的朝鮮語詞條 14 3479861 9814126 2026-06-15T20:21:01Z TongcyBot 83009 養貓 9814126 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的俄語詞條 14 3479862 9814127 2026-06-15T20:21:03Z TongcyBot 83009 養貓 9814127 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的比什奴普萊利亞-曼尼普爾語詞條 14 3479863 9814128 2026-06-15T20:21:07Z TongcyBot 83009 養貓 9814128 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的保加利亞語詞條 14 3479864 9814129 2026-06-15T20:21:09Z TongcyBot 83009 養貓 9814129 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的沃拉普克語詞條 14 3479865 9814130 2026-06-15T20:21:15Z TongcyBot 83009 養貓 9814130 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的原始圖皮-瓜拉尼語詞條 14 3479866 9814131 2026-06-15T20:21:16Z TongcyBot 83009 養貓 9814131 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的波拉布語詞條 14 3479867 9814132 2026-06-15T20:21:21Z TongcyBot 83009 養貓 9814132 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的古捷克語詞條 14 3479868 9814133 2026-06-15T20:21:23Z TongcyBot 83009 養貓 9814133 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的泰盧固語詞條 14 3479869 9814134 2026-06-15T20:21:28Z TongcyBot 83009 養貓 9814134 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的塞爾維亞-克羅地亞語詞條 14 3479870 9814135 2026-06-15T20:21:30Z TongcyBot 83009 養貓 9814135 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的漢語詞條 14 3479871 9814136 2026-06-15T20:21:33Z TongcyBot 83009 養貓 9814136 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的日語詞條 14 3479872 9814137 2026-06-15T20:21:38Z TongcyBot 83009 養貓 9814137 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的潘諾尼亞盧森尼亞語詞條 14 3479873 9814138 2026-06-15T20:21:39Z TongcyBot 83009 養貓 9814138 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的世界語詞條 14 3479874 9814139 2026-06-15T20:21:44Z TongcyBot 83009 養貓 9814139 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的澤西荷蘭語詞條 14 3479875 9814140 2026-06-15T20:21:46Z TongcyBot 83009 養貓 9814140 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的原始達羅毗荼語詞條 14 3479876 9814141 2026-06-15T20:21:51Z TongcyBot 83009 養貓 9814141 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的烏茲別克語詞條 14 3479877 9814142 2026-06-15T20:21:52Z TongcyBot 83009 養貓 9814142 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的康沃爾語詞條 14 3479878 9814143 2026-06-15T20:21:57Z TongcyBot 83009 養貓 9814143 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的牙買加克里奧爾語詞條 14 3479879 9814144 2026-06-15T20:21:59Z TongcyBot 83009 養貓 9814144 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的羅馬尼亞語詞條 14 3479880 9814145 2026-06-15T20:22:03Z TongcyBot 83009 養貓 9814145 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的特蘭西瓦尼亞薩克森語詞條 14 3479881 9814146 2026-06-15T20:22:05Z TongcyBot 83009 養貓 9814146 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的鄂圖曼土耳其語詞條 14 3479882 9814147 2026-06-15T20:22:09Z TongcyBot 83009 養貓 9814147 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的白俄羅斯語詞條 14 3479883 9814148 2026-06-15T20:22:12Z TongcyBot 83009 養貓 9814148 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的阿爾巴尼亞語詞條 14 3479884 9814149 2026-06-15T20:22:16Z TongcyBot 83009 養貓 9814149 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的科瓦語詞條 14 3479885 9814150 2026-06-15T20:22:19Z TongcyBot 83009 養貓 9814150 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的阿薩姆語詞條 14 3479886 9814151 2026-06-15T20:22:23Z TongcyBot 83009 養貓 9814151 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的科西嘉語詞條 14 3479887 9814152 2026-06-15T20:22:26Z TongcyBot 83009 養貓 9814152 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的馬拉雅拉姆語詞條 14 3479888 9814153 2026-06-15T20:22:29Z TongcyBot 83009 養貓 9814153 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的約拉語詞條 14 3479889 9814154 2026-06-15T20:22:32Z TongcyBot 83009 養貓 9814154 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的中古波斯語詞條 14 3479890 9814155 2026-06-15T20:22:36Z TongcyBot 83009 養貓 9814155 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的緬甸語詞條 14 3479891 9814156 2026-06-15T20:22:39Z TongcyBot 83009 養貓 9814156 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的丹麥語詞條 14 3479892 9814157 2026-06-15T20:22:43Z TongcyBot 83009 養貓 9814157 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的芬蘭語詞條 14 3479893 9814158 2026-06-15T20:22:46Z TongcyBot 83009 養貓 9814158 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的加泰羅尼亞語詞條 14 3479894 9814159 2026-06-15T20:22:49Z TongcyBot 83009 養貓 9814159 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的蘇龍語詞條 14 3479895 9814160 2026-06-15T20:22:52Z TongcyBot 83009 養貓 9814160 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的古教會斯拉夫語詞條 14 3479896 9814161 2026-06-15T20:22:57Z TongcyBot 83009 養貓 9814161 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的西庫爾語詞條 14 3479897 9814162 2026-06-15T20:22:58Z TongcyBot 83009 養貓 9814162 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的威爾士語詞條 14 3479898 9814163 2026-06-15T20:23:03Z TongcyBot 83009 養貓 9814163 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的西西里語詞條 14 3479899 9814164 2026-06-15T20:23:04Z TongcyBot 83009 養貓 9814164 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的尼泊爾語詞條 14 3479900 9814165 2026-06-15T20:23:09Z TongcyBot 83009 養貓 9814165 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的諾曼語詞條 14 3479901 9814166 2026-06-15T20:23:11Z TongcyBot 83009 養貓 9814166 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的瑞典語詞條 14 3479902 9814167 2026-06-15T20:23:16Z TongcyBot 83009 養貓 9814167 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的豪薩語詞條 14 3479903 9814168 2026-06-15T20:23:17Z TongcyBot 83009 養貓 9814168 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的賓夕法尼亞德語詞條 14 3479904 9814169 2026-06-15T20:23:23Z TongcyBot 83009 養貓 9814169 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的翁布里亞語詞條 14 3479905 9814170 2026-06-15T20:23:23Z TongcyBot 83009 養貓 9814170 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的那不勒斯語詞條 14 3479906 9814171 2026-06-15T20:23:29Z TongcyBot 83009 養貓 9814171 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的上古泰米爾語詞條 14 3479907 9814172 2026-06-15T20:23:31Z TongcyBot 83009 養貓 9814172 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的門西語詞條 14 3479908 9814173 2026-06-15T20:23:36Z TongcyBot 83009 養貓 9814173 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的中世紀西班牙語詞條 14 3479909 9814174 2026-06-15T20:23:37Z TongcyBot 83009 養貓 9814174 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的阿伊努語詞條 14 3479910 9814175 2026-06-15T20:23:42Z TongcyBot 83009 養貓 9814175 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的中古法語詞條 14 3479911 9814176 2026-06-15T20:23:43Z TongcyBot 83009 養貓 9814176 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的阿勒曼尼語詞條 14 3479912 9814177 2026-06-15T20:23:49Z TongcyBot 83009 養貓 9814177 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的亞拉姆語詞條 14 3479913 9814178 2026-06-15T20:23:50Z TongcyBot 83009 養貓 9814178 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的阿貝納基語詞條 14 3479914 9814179 2026-06-15T20:23:55Z TongcyBot 83009 養貓 9814179 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的冰島語詞條 14 3479915 9814180 2026-06-15T20:23:56Z TongcyBot 83009 養貓 9814180 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的阿輸迦普拉克里特語詞條 14 3479916 9814181 2026-06-15T20:24:02Z TongcyBot 83009 養貓 9814181 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的匈牙利語詞條 14 3479917 9814182 2026-06-15T20:24:02Z TongcyBot 83009 養貓 9814182 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的默切諾語詞條 14 3479918 9814183 2026-06-15T20:24:08Z TongcyBot 83009 養貓 9814183 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的博杰普爾語詞條 14 3479919 9814184 2026-06-15T20:24:08Z TongcyBot 83009 養貓 9814184 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的原始南島語詞條 14 3479920 9814185 2026-06-15T20:24:15Z TongcyBot 83009 養貓 9814185 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有詞源樹的原始意大利語詞條 14 3479921 9814186 2026-06-15T20:24:18Z TongcyBot 83009 養貓 9814186 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的原始馬來-波利尼西亞語詞條 14 3479922 9814187 2026-06-15T20:24:21Z TongcyBot 83009 養貓 9814187 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的古愛爾蘭語詞條 14 3479923 9814188 2026-06-15T20:24:29Z TongcyBot 83009 養貓 9814188 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的古東斯拉夫語詞條 14 3479924 9814189 2026-06-15T20:24:35Z TongcyBot 83009 養貓 9814189 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的哥特語詞條 14 3479925 9814190 2026-06-15T20:24:41Z TongcyBot 83009 養貓 9814190 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的奧利亞語詞條 14 3479926 9814191 2026-06-15T20:24:47Z TongcyBot 83009 養貓 9814191 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的孔卡尼語詞條 14 3479927 9814192 2026-06-15T20:24:54Z TongcyBot 83009 養貓 9814192 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的安提瓜和巴布達克里奧爾英語詞條 14 3479928 9814193 2026-06-15T20:25:02Z TongcyBot 83009 養貓 9814193 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的察合臺語詞條 14 3479929 9814194 2026-06-15T20:25:08Z TongcyBot 83009 養貓 9814194 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的巴利語詞條 14 3479930 9814195 2026-06-15T20:25:15Z TongcyBot 83009 養貓 9814195 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的巴斯克語詞條 14 3479931 9814196 2026-06-15T20:25:21Z TongcyBot 83009 養貓 9814196 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的帕哈里-波特瓦里語詞條 14 3479932 9814197 2026-06-15T20:25:28Z TongcyBot 83009 養貓 9814197 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的帕盧拉語詞條 14 3479933 9814198 2026-06-15T20:25:35Z TongcyBot 83009 養貓 9814198 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的斯洛文尼亞語詞條 14 3479934 9814199 2026-06-15T20:25:41Z TongcyBot 83009 養貓 9814199 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的斯洛溫語詞條 14 3479935 9814200 2026-06-15T20:25:47Z TongcyBot 83009 養貓 9814200 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的斯瓦希里語詞條 14 3479936 9814201 2026-06-15T20:25:54Z TongcyBot 83009 養貓 9814201 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的普什圖語詞條 14 3479937 9814202 2026-06-15T20:26:00Z TongcyBot 83009 養貓 9814202 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的烏克蘭語詞條 14 3479938 9814203 2026-06-15T20:26:07Z TongcyBot 83009 養貓 9814203 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的立陶宛語詞條 14 3479939 9814204 2026-06-15T20:26:13Z TongcyBot 83009 養貓 9814204 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的阿塞拜疆語詞條 14 3479940 9814205 2026-06-15T20:26:21Z TongcyBot 83009 養貓 9814205 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的馬來語詞條 14 3479941 9814206 2026-06-15T20:26:28Z TongcyBot 83009 養貓 9814206 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的馬其頓語詞條 14 3479942 9814207 2026-06-15T20:26:34Z TongcyBot 83009 養貓 9814207 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的馬拉地語詞條 14 3479943 9814208 2026-06-15T20:26:41Z TongcyBot 83009 養貓 9814208 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的下索布語詞條 14 3479944 9814209 2026-06-15T20:26:47Z TongcyBot 83009 養貓 9814209 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的中古孟加拉語詞條 14 3479945 9814210 2026-06-15T20:26:54Z TongcyBot 83009 養貓 9814210 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的中古荷蘭語詞條 14 3479946 9814211 2026-06-15T20:27:01Z TongcyBot 83009 養貓 9814211 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的中東部德語詞條 14 3479947 9814212 2026-06-15T20:27:07Z TongcyBot 83009 養貓 9814212 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的中納瓦特爾語詞條 14 3479948 9814213 2026-06-15T20:27:14Z TongcyBot 83009 養貓 9814213 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的中阿特拉斯柏柏爾語詞條 14 3479949 9814214 2026-06-15T20:27:22Z TongcyBot 83009 養貓 9814214 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有etymon的亞齊語詞條 14 3479950 9814215 2026-06-15T20:27:30Z TongcyBot 83009 養貓 9814215 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx 舔狗 0 3479951 9814216 2026-06-15T20:34:27Z P1ayer 5118 新詞條 9814216 wikitext text/x-wiki ==漢語== {{zh-forms}} {{zh-wp}} ===發音=== {{zh-pron |m=tiǎngǒu |cat=n }} ===名詞=== {{head|zh|名詞}} # {{lb|zh|figuratively}} 在感情或人際關係中,明知對方不喜歡自己,卻依然毫無原則與底線地去討好、付出,甚至為了迎合對方而放棄尊嚴 #: {{syn|zh|馱獸|工具人|觀音兵|火山孝子}} r5mymi1imi9c0do8uffiw2lybv9ufip 9814217 9814216 2026-06-16T01:33:34Z Sayonzei 40728 /* 漢語 */ 9814217 wikitext text/x-wiki ==漢語== {{zh-forms}} {{zh-wp}} ===發音=== {{zh-pron |m=tiǎngǒu |cat=n }} ===名詞=== {{head|zh|名詞}} # {{lb|zh|Internet slang|figuratively}} 在感情或人際關係中,明知對方不喜歡自己,卻依然毫無原則與底線地去[[討好]]、[[付出]],甚至為了[[迎合]]對方而放棄[[尊嚴]] #: {{syn|zh|馱獸|工具人|觀音兵|火山孝子}} #: {{zh-x|舔狗 舔 到 最後 一無所有}} 3ltfyw4l1s81ljomagz69869pkm38sf être sur un petit nuage 0 3479952 9814221 2026-06-16T03:12:10Z Hzy980512 19278 [[w:WP:AES|←]]建立內容為「==法语== ===发音=== * {{fr-IPA|être sur‿un petit nu-age|être sur‿un petit nuage}} * {{audio|fr|LL-Q150 (fra)-LoquaxFR-être sur un petit nuage.wav|a=<<France>> (<<Vosges>>)}} * {{audio|fr|LL-Q150 (fra)-Jérémy-Günther-Heinz Jähnick-être sur un petit nuage.wav|a=<<France>> (<<Somain>>)}} ===动词=== {{fr-verb}} # [[非常]][[开心]],非常[[幸福]],非常[[快乐]] #: {{syn|fr|être au septième ciel|être aux anges}}…」的新頁面 9814221 wikitext text/x-wiki ==法语== ===发音=== * {{fr-IPA|être sur‿un petit nu-age|être sur‿un petit nuage}} * {{audio|fr|LL-Q150 (fra)-LoquaxFR-être sur un petit nuage.wav|a=<<France>> (<<Vosges>>)}} * {{audio|fr|LL-Q150 (fra)-Jérémy-Günther-Heinz Jähnick-être sur un petit nuage.wav|a=<<France>> (<<Somain>>)}} ===动词=== {{fr-verb}} # [[非常]][[开心]],非常[[幸福]],非常[[快乐]] #: {{syn|fr|être au septième ciel|être aux anges}} ====参见==== * {{l|fr|être dans les nuages}} {{C|fr|快樂}} 585d7kbh8jphqtyc80boj0m6epfzqk9 vaguepost 0 3479953 9814223 2026-06-16T03:23:34Z Hzy980512 19278 [[w:WP:AES|←]]建立內容為「==英语== ===词源=== {{etymon|en|id=social media}} 源自{{affix|en|vague|-post}}。 ===发音=== * {{audio|en|LL-Q1860 (eng)-Sapaa-vaguepost.wav|a=US}} ===名词=== {{en-noun}} # {{lb|en|Internet slang|social media}} (社交媒体上发的)没有任何解释的,[[含糊其辞]]的[[暗示]]性[[帖子]],[[谜语人]]帖子 #* {{quote-journal|en|author=Page|title=Vagueposting Has Really Become an Inescapable Cultural Expectatio…」的新頁面 9814223 wikitext text/x-wiki ==英语== ===词源=== {{etymon|en|id=social media}} 源自{{affix|en|vague|-post}}。 ===发音=== * {{audio|en|LL-Q1860 (eng)-Sapaa-vaguepost.wav|a=US}} ===名词=== {{en-noun}} # {{lb|en|Internet slang|social media}} (社交媒体上发的)没有任何解释的,[[含糊其辞]]的[[暗示]]性[[帖子]],[[谜语人]]帖子 #* {{quote-journal|en|author=Page|title=Vagueposting Has Really Become an Inescapable Cultural Expectation|magazine=Poly.Land|url=https://poly.land/2020/02/27/vagueposting-has-really-become-an-inescapable-cultural-expectation/|date=2020-02-27|passage=I’ve had a draft sitting in my folder for about a year with the title and a few notes about the ex-girlfriend who saw '''vagueposts''' everywhere.|archiveurl=https://web.archive.org/web/20250401095200/https://poly.land/2020/02/27/vagueposting-has-really-become-an-inescapable-cultural-expectation/}} ===动词=== {{en-verb}} # {{lb|en|Internet slang|social media|ambitransitive}} 发谜语人帖子 #* {{quote-journal|en|author=Page|title=Vagueposting Has Really Become an Inescapable Cultural Expectation|magazine=Poly.Land|url=https://poly.land/2020/02/27/vagueposting-has-really-become-an-inescapable-cultural-expectation/|date=2020-02-27|passage=And as I pore over all of the available reading material, it becomes clear that some folks in this new community '''vaguepost''' all the damn time. {{...}} Perhaps unsurprisingly, I’m noticing that the ones most prone to '''vagueposting''' also are the ones who assume that others are '''vagueposting'''.|archiveurl=https://web.archive.org/web/20250401095200/https://poly.land/2020/02/27/vagueposting-has-really-become-an-inescapable-cultural-expectation/}} ====相关词汇==== * {{l|en|vaguebook}} * {{l|en|vagueblog}} ====参见==== * {{l|en|context collapse}} * {{l|en|subtweet}} ===延伸阅读=== * {{R:MWO}} 53fycajn8k8eaogazdhi1xr84aiynke 9814224 9814223 2026-06-16T03:31:15Z Hzy980512 19278 9814224 wikitext text/x-wiki ==英语== {{examples|examples= : {{ux|en|Well, that was a fun way to ruin my day.|糟心的一天,但是也算是乐子。}} : {{ux|en|I guess I know who my real friends are now.|我想我明白谁才是我真正的朋友了。}} : {{ux|en|I know something only some people know but I can't tell you.|我知道只有一部分人会知道的东西但是我不能说。}} }} ===词源=== {{etymon|en|id=social media}} 源自{{affix|en|vague|-post}}。 ===发音=== * {{audio|en|LL-Q1860 (eng)-Sapaa-vaguepost.wav|a=US}} ===名词=== {{en-noun}} # {{lb|en|Internet slang|social media}} (社交媒体上发的)没有任何解释的,[[含糊其辞]]的[[暗示]]性[[帖子]],[[谜语人]]帖子 #* {{quote-journal|en|author=Page|title=Vagueposting Has Really Become an Inescapable Cultural Expectation|magazine=Poly.Land|url=https://poly.land/2020/02/27/vagueposting-has-really-become-an-inescapable-cultural-expectation/|date=2020-02-27|passage=I’ve had a draft sitting in my folder for about a year with the title and a few notes about the ex-girlfriend who saw '''vagueposts''' everywhere.|archiveurl=https://web.archive.org/web/20250401095200/https://poly.land/2020/02/27/vagueposting-has-really-become-an-inescapable-cultural-expectation/}} ===动词=== {{en-verb}} # {{lb|en|Internet slang|social media|ambitransitive}} 发谜语人帖子 #* {{quote-journal|en|author=Page|title=Vagueposting Has Really Become an Inescapable Cultural Expectation|magazine=Poly.Land|url=https://poly.land/2020/02/27/vagueposting-has-really-become-an-inescapable-cultural-expectation/|date=2020-02-27|passage=And as I pore over all of the available reading material, it becomes clear that some folks in this new community '''vaguepost''' all the damn time. {{...}} Perhaps unsurprisingly, I’m noticing that the ones most prone to '''vagueposting''' also are the ones who assume that others are '''vagueposting'''.|archiveurl=https://web.archive.org/web/20250401095200/https://poly.land/2020/02/27/vagueposting-has-really-become-an-inescapable-cultural-expectation/}} ====相关词汇==== * {{l|en|vaguebook}} * {{l|en|vagueblog}} ====参见==== * {{l|en|context collapse}} * {{l|en|subtweet}} ===延伸阅读=== * {{R:MWO}} 0cmkm9yn9ck09b78jw9kbp8dzfawk4l loslassen 0 3479954 9814225 2026-06-16T04:19:50Z Hzy980512 19278 [[w:WP:AES|←]]建立內容為「==德语== ===词源=== {{ety|de|:af|los-|lassen}} 源自{{prefix|de|los|lassen}}。 ===发音=== * {{IPA|de|/ˈloːsˌlasən/|[ˈloːsˌlasn̩]}} * {{audio|de|De-loslassen.ogg|a=<<Germany>> (<<Berlin>>)}} ===动词=== {{de-verb|los.lassen<lässt#ließ,gelassen>}} # [[放开]],[[放手]],让...[[离开]] #: {{ux|de|'''Lass''' mich '''los'''!|'''放开'''我!}} #: {{ux|de|Sie '''ließ''' seine Hand '''los'''.|她放开了他的手。…」的新頁面 9814225 wikitext text/x-wiki ==德语== ===词源=== {{ety|de|:af|los-|lassen}} 源自{{prefix|de|los|lassen}}。 ===发音=== * {{IPA|de|/ˈloːsˌlasən/|[ˈloːsˌlasn̩]}} * {{audio|de|De-loslassen.ogg|a=<<Germany>> (<<Berlin>>)}} ===动词=== {{de-verb|los.lassen<lässt#ließ,gelassen>}} # [[放开]],[[放手]],让...[[离开]] #: {{ux|de|'''Lass''' mich '''los'''!|'''放开'''我!}} #: {{ux|de|Sie '''ließ''' seine Hand '''los'''.|她放开了他的手。}} #: {{ux|de|die Hunde '''loslassen'''|'''放走'''狗,'''放'''狗}} #: {{ux|de|Du bist heute wie '''losgelassen'''.|你今天真是豪放啊。/你今天真是放得开啊。}} # {{lb|de|俚语}} #: {{ux|de|einen eingeschriebenen Brief '''loslassen'''|寄挂号信}} #: {{ux|de|eine Beschwerde '''loslassen'''|举报,投诉}} #: {{ux|de|Witze '''loslassen'''|开玩笑}} #: {{ux|de|eine Rede '''loslassen'''|演讲;滔滔不绝,大谈特谈}} ====变位==== {{de-conj|los.lassen<lässt#ließ,gelassen>}} ===延伸阅读=== * {{R:de:DWDS}} * {{R:de:UniLeipzig}} * {{R:de:Duden}} * {{R:de:OpenThesaurus}} 5o0tpu703pafejk8holo9vyujtzflvi 9814226 9814225 2026-06-16T04:20:28Z Hzy980512 19278 9814226 wikitext text/x-wiki ==德语== ===词源=== {{ety|de|:af|los-|lassen}} 源自{{prefix|de|los|lassen}}。 ===发音=== * {{IPA|de|/ˈloːsˌlasən/|[ˈloːsˌlasn̩]}} * {{audio|de|De-loslassen.ogg|a=<<Germany>> (<<Berlin>>)}} ===动词=== {{de-verb|los.lassen<lässt#ließ,gelassen>}} # [[放开]],[[放手]],让...[[离开]] #: {{ux|de|'''Lass''' mich '''los'''!|'''放开'''我!}} #: {{ux|de|Sie '''ließ''' seine Hand '''los'''.|她放开了他的手。}} #: {{uxi|de|die Hunde '''loslassen'''|'''放走'''狗,'''放'''狗}} #: {{uxi|de|Du bist heute wie '''losgelassen'''.|你今天真是豪放啊。/你今天真是放得开啊。}} # {{lb|de|俚语}} #: {{uxi|de|einen eingeschriebenen Brief '''loslassen'''|寄挂号信}} #: {{uxi|de|eine Beschwerde '''loslassen'''|举报,投诉}} #: {{uxi|de|Witze '''loslassen'''|开玩笑}} #: {{uxi|de|eine Rede '''loslassen'''|演讲;滔滔不绝,大谈特谈}} ====变位==== {{de-conj|los.lassen<lässt#ließ,gelassen>}} ===延伸阅读=== * {{R:de:DWDS}} * {{R:de:UniLeipzig}} * {{R:de:Duden}} * {{R:de:OpenThesaurus}} 3z639ahy0q3ay91cet8j31dnxrkcmer 9814227 9814226 2026-06-16T04:21:12Z Hzy980512 19278 9814227 wikitext text/x-wiki ==德语== ===词源=== {{ety|de|:af|los-|lassen}} 源自{{prefix|de|los|lassen}}。 ===发音=== * {{IPA|de|/ˈloːsˌlasən/|[ˈloːsˌlasn̩]}} * {{audio|de|De-loslassen.ogg|a=<<Germany>> (<<Berlin>>)}} ===动词=== {{de-verb|los.lassen<lässt#ließ,gelassen>}} # [[放开]],[[放手]],让...[[离开]] #: {{ux|de|'''Lass''' mich '''los'''!|'''放开'''我!}} #: {{ux|de|Sie '''ließ''' seine Hand '''los'''.|她放开了他的手。}} #: {{uxi|de|die Hunde '''loslassen'''|'''放走'''狗,'''放'''狗}} #: {{ux|de|Du bist heute wie '''losgelassen'''.|你今天真是豪放啊。/你今天真是放得开啊。}} # {{lb|de|俚语}} #: {{uxi|de|einen eingeschriebenen Brief '''loslassen'''|寄挂号信}} #: {{uxi|de|eine Beschwerde '''loslassen'''|举报,投诉}} #: {{uxi|de|Witze '''loslassen'''|开玩笑}} #: {{uxi|de|eine Rede '''loslassen'''|演讲;滔滔不绝,大谈特谈}} ====变位==== {{de-conj|los.lassen<lässt#ließ,gelassen>}} ===延伸阅读=== * {{R:de:DWDS}} * {{R:de:UniLeipzig}} * {{R:de:Duden}} * {{R:de:OpenThesaurus}} hqovemv97i4ec0c7tk7lwi8fzrv9o7l loslassend 0 3479955 9814229 2026-06-16T04:34:39Z Sayonzei 40728 創建德語「[[loslassen]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814229 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈloːsˌlasn̩t/}} * {{audio|de|De-loslassend.ogg|a=柏林}} ===分詞=== {{head|de|現在分詞}} # {{present participle of|de|loslassen}} ====變格==== {{de-adecl}} 2gpjh59lhy6glcgkjqjdh1h366jx978 loslassenden 0 3479956 9814231 2026-06-16T04:34:59Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈloːsˌlasn̩dən/}} * {{audio|de|De-loslassenden.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|loslassend}}」的新頁面 9814231 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈloːsˌlasn̩dən/}} * {{audio|de|De-loslassenden.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|loslassend}} e70kswbezj2adayzbbg4ctlinw94u5o loslassendem 0 3479957 9814232 2026-06-16T04:35:02Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈloːsˌlasn̩dəm/}} * {{audio|de|De-loslassendem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|loslassend}}」的新頁面 9814232 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈloːsˌlasn̩dəm/}} * {{audio|de|De-loslassendem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|loslassend}} iwjh9a94xxcmeqt97778sx0ermcskoi loslassende 0 3479958 9814233 2026-06-16T04:35:09Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈloːsˌlasn̩də/}} * {{audio|de|De-loslassende.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|loslassend}}」的新頁面 9814233 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈloːsˌlasn̩də/}} * {{audio|de|De-loslassende.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|loslassend}} j235dc7or1gox0fl5xhtv61l6igqs19 loslassendes 0 3479959 9814234 2026-06-16T04:35:14Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈloːsˌlasn̩dəs/}} * {{audio|de|De-loslassendes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|loslassend}}」的新頁面 9814234 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈloːsˌlasn̩dəs/}} * {{audio|de|De-loslassendes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|loslassend}} eu19m4b3qtxkagehu8h54b41ciirxp0 loslassender 0 3479960 9814235 2026-06-16T04:35:30Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈloːsˌlasn̩dɐ/}} * {{audio|de|De-loslassender.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|loslassend}}」的新頁面 9814235 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈloːsˌlasn̩dɐ/}} * {{audio|de|De-loslassender.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|loslassend}} dw7evxdnq770o7njqs3ohbg0wj1lvck losgelassener 0 3479961 9814236 2026-06-16T04:36:20Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈloːsɡəˌlasənɐ/}} * {{audio|de|De-losgelassener.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|losgelassen}}」的新頁面 9814236 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈloːsɡəˌlasənɐ/}} * {{audio|de|De-losgelassener.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|losgelassen}} 7l0dkluctlcoc0o20cv2yvlnz6crzpg losgelassenen 0 3479962 9814237 2026-06-16T04:36:23Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈloːsɡəˌlasənən/}} * {{audio|de|De-losgelassenen.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|losgelassen}}」的新頁面 9814237 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈloːsɡəˌlasənən/}} * {{audio|de|De-losgelassenen.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|losgelassen}} 3rxa9woxxrhtlym4xebby89nj4yevp8 losgelassenem 0 3479963 9814238 2026-06-16T04:36:29Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈloːsɡəˌlasənəm/}} * {{audio|de|De-losgelassenem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|losgelassen}}」的新頁面 9814238 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈloːsɡəˌlasənəm/}} * {{audio|de|De-losgelassenem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|losgelassen}} ptcqvkv83jszqs4nduj9thaxboll9n5 losgelassene 0 3479964 9814239 2026-06-16T04:36:31Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈloːsɡəˌlasənə/}} * {{audio|de|De-losgelassene.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|losgelassen}}」的新頁面 9814239 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈloːsɡəˌlasənə/}} * {{audio|de|De-losgelassene.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|losgelassen}} 2nptf7ssdznst7dcc9me1ouj2ntjlwu losgelassenes 0 3479965 9814240 2026-06-16T04:36:34Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈloːsɡəˌlasənəs/}} * {{audio|de|De-losgelassenes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|losgelassen}}」的新頁面 9814240 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈloːsɡəˌlasənəs/}} * {{audio|de|De-losgelassenes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|losgelassen}} 11sjvnark20k5xgnx0lj1m1lw3y90oz lasse los 0 3479966 9814241 2026-06-16T04:36:51Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlasə ˈloːs/}} * {{audio|de|De-lasse los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||1|s|pres|;|1//3|s|sub|I|;|s|imp}}」的新頁面 9814241 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlasə ˈloːs/}} * {{audio|de|De-lasse los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||1|s|pres|;|1//3|s|sub|I|;|s|imp}} eragrcpus8kmpq3w0ri531xgdpi7u62 loszulassen 0 3479967 9814242 2026-06-16T04:36:53Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈloːst͡suˌlasn̩/}} * {{audio|de|De-loszulassen.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{de-zu-infinitive of|loslassen}}」的新頁面 9814242 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈloːst͡suˌlasn̩/}} * {{audio|de|De-loszulassen.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{de-zu-infinitive of|loslassen}} e55dk8s4ytied1arevdz2xrc4svuh24 lässt los 0 3479968 9814243 2026-06-16T04:36:56Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「{{also|lasst los}} ==德語== ===發音=== * {{IPA|de|/ˌlɛst ˈloːs/}} * {{audio|de|De-lässt los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2//3|s|pres}}」的新頁面 9814243 wikitext text/x-wiki {{also|lasst los}} ==德語== ===發音=== * {{IPA|de|/ˌlɛst ˈloːs/}} * {{audio|de|De-lässt los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2//3|s|pres}} kt0sgfn5x64wgbe7znu3pi4p8hiovs2 ließ los 0 3479969 9814244 2026-06-16T04:36:57Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌliːs ˈloːs/}} * {{audio|de|De-ließ los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||1//3|s|pret}}」的新頁面 9814244 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌliːs ˈloːs/}} * {{audio|de|De-ließ los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||1//3|s|pret}} 10ykeutbzeylqc5jbeluinkf7gqvtjk ließest los 0 3479970 9814245 2026-06-16T04:37:06Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌliːsəst ˈloːs/}} * {{audio|de|De-ließest los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|s|sub|II}}」的新頁面 9814245 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌliːsəst ˈloːs/}} * {{audio|de|De-ließest los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|s|sub|II}} ffti2je4xc69hobc1ctcn3d16nmwne0 ließt los 0 3479971 9814246 2026-06-16T04:37:09Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌliːst ˈloːs/}} * {{audio|de|De-ließt los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|s//p|pret}}」的新頁面 9814246 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌliːst ˈloːs/}} * {{audio|de|De-ließt los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|s//p|pret}} f6sxuuk3mnvsr09wld9znhivmptf7ds lass los 0 3479972 9814247 2026-06-16T04:37:14Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlas ˈloːs/}} * {{audio|de|De-lass los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|loslassen||s|imp}}」的新頁面 9814247 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlas ˈloːs/}} * {{audio|de|De-lass los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|loslassen||s|imp}} j8gagxnazsqqtshj1c092e6s0bv0hiz lassen los 0 3479973 9814248 2026-06-16T04:37:45Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlasn̩ ˈloːs/}} * {{audio|de|De-lassen los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||1//3|p|pres|;|1//3|p|sub|I}}」的新頁面 9814248 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlasn̩ ˈloːs/}} * {{audio|de|De-lassen los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||1//3|p|pres|;|1//3|p|sub|I}} 7n8r07uyzxb2xk5yldyuwek55xsluo8 ließen los 0 3479974 9814249 2026-06-16T04:37:47Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌliːsn̩ ˈloːs/}} * {{audio|de|De-ließen los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||1//3|p|pret|;|1//3|p|sub|II}}」的新頁面 9814249 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌliːsn̩ ˈloːs/}} * {{audio|de|De-ließen los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||1//3|p|pret|;|1//3|p|sub|II}} rh3iwcuiafhfjhkvqfebfca3prwf0ig lasst los 0 3479975 9814250 2026-06-16T04:37:49Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「{{also|lässt los}} ==德語== ===發音=== * {{IPA|de|/ˌlast ˈloːs/}} * {{audio|de|De-lasst los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|p|pres|;|p|imp}}」的新頁面 9814250 wikitext text/x-wiki {{also|lässt los}} ==德語== ===發音=== * {{IPA|de|/ˌlast ˈloːs/}} * {{audio|de|De-lasst los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|p|pres|;|p|imp}} ih25lmj82hc7sv109jg2acc1uw7yvmy lassest los 0 3479976 9814251 2026-06-16T04:37:50Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlasəst ˈloːs/}} * {{audio|de|De-lassest los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|s|sub|I}}」的新頁面 9814251 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlasəst ˈloːs/}} * {{audio|de|De-lassest los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|s|sub|I}} 3wtajlakosj56k6fnayd446uns7tvj8 lasset los 0 3479977 9814252 2026-06-16T04:37:53Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlasət ˈloːs/}} * {{audio|de|De-lasset los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|p|sub|I}}」的新頁面 9814252 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlasət ˈloːs/}} * {{audio|de|De-lasset los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|p|sub|I}} k55mnkst3qihpcxceyvyf8iyab0bwa2 ließe los 0 3479978 9814253 2026-06-16T04:38:10Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌliːsə ˈloːs/}} * {{audio|de|De-ließe los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||1//3|s|sub|II}}」的新頁面 9814253 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌliːsə ˈloːs/}} * {{audio|de|De-ließe los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||1//3|s|sub|II}} nnpxg6sxo33wegi5q5rlnvnxopjq85h ließet los 0 3479979 9814254 2026-06-16T04:38:12Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌliːsət ˈloːs/}} * {{audio|de|De-ließet los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|p|sub|II}}」的新頁面 9814254 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌliːsət ˈloːs/}} * {{audio|de|De-ließet los.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|p|sub|II}} 440b8vnrc53n2np19rbt8043ehiuzvs loslässt 0 3479980 9814255 2026-06-16T04:38:14Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「{{also|loslasst}} ==德語== ===發音=== * {{IPA|de|/ˈloːsˌlɛst/}} * {{audio|de|De-loslässt.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2//3|s|dep|pres}}」的新頁面 9814255 wikitext text/x-wiki {{also|loslasst}} ==德語== ===發音=== * {{IPA|de|/ˈloːsˌlɛst/}} * {{audio|de|De-loslässt.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2//3|s|dep|pres}} pki47zo2lpk7qo655t2gcj8hn22yl6q loslasse 0 3479981 9814256 2026-06-16T04:38:15Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈloːsˌlasə/}} * {{audio|de|De-loslasse.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||1|s|dep|pres|;|1//3|s|dep|sub|I}}」的新頁面 9814256 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈloːsˌlasə/}} * {{audio|de|De-loslasse.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||1|s|dep|pres|;|1//3|s|dep|sub|I}} 2z1dlm5b8wzw08oi9lri7a7luwj73hk loslasst 0 3479982 9814257 2026-06-16T04:38:18Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「{{also|loslässt}} ==德語== ===發音=== * {{IPA|de|/ˈloːsˌlast/}} * {{audio|de|De-loslasst.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|p|dep|pres}}」的新頁面 9814257 wikitext text/x-wiki {{also|loslässt}} ==德語== ===發音=== * {{IPA|de|/ˈloːsˌlast/}} * {{audio|de|De-loslasst.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|p|dep|pres}} cn2lhl4yfyi0bkfqdnru54qfv03qnq9 losließ 0 3479983 9814258 2026-06-16T04:38:29Z Sayonzei 40728 創建德語「[[loslassen]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814258 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈloːsˌliːs/}} * {{audio|de|De-losließ.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||1//3|s|dep|pret}} q9wpwnabk2bc6aqq3g9y6p5wa9it5bv losließt 0 3479984 9814259 2026-06-16T04:38:30Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈloːsˌliːst/}} * {{audio|de|De-losließt.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|s//p|dep|pret}}」的新頁面 9814259 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈloːsˌliːst/}} * {{audio|de|De-losließt.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|s//p|dep|pret}} 664cim5m25goluvkn3qzab1v0p05fap losließest 0 3479985 9814260 2026-06-16T04:38:32Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈloːsˌliːsəst/}} * {{audio|de|De-losließest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|s|dep|sub|II}}」的新頁面 9814260 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈloːsˌliːsəst/}} * {{audio|de|De-losließest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|s|dep|sub|II}} 4e4sd37ob2yxpxxo1pucceqqdel63xa losließen 0 3479986 9814261 2026-06-16T04:38:38Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈloːsˌliːsn̩/}} * {{audio|de|De-losließen.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||1//3|p|dep|pret|;|1//3|p|dep|sub|II}}」的新頁面 9814261 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈloːsˌliːsn̩/}} * {{audio|de|De-losließen.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||1//3|p|dep|pret|;|1//3|p|dep|sub|II}} d7yl63jv2mq8pp25l6fv7tad36bck09 loslassest 0 3479987 9814262 2026-06-16T04:38:40Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈloːsˌlasəst/}} * {{audio|de|De-loslassest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|s|dep|sub|I}}」的新頁面 9814262 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈloːsˌlasəst/}} * {{audio|de|De-loslassest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|s|dep|sub|I}} 6a0rvcmd89iupmz925firgwas4kr3xn loslasset 0 3479988 9814263 2026-06-16T04:38:42Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈloːsˌlasət/}} * {{audio|de|De-loslasset.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|p|dep|sub|I}}」的新頁面 9814263 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈloːsˌlasət/}} * {{audio|de|De-loslasset.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|p|dep|sub|I}} 4h0b68fxgtjur83l0xdt5lhf8extxpq losließe 0 3479989 9814264 2026-06-16T04:38:53Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈloːsˌliːsə/}} * {{audio|de|De-losließe.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||1//3|s|dep|sub|II}}」的新頁面 9814264 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈloːsˌliːsə/}} * {{audio|de|De-losließe.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||1//3|s|dep|sub|II}} 2k6yt3ylsj8m4y14jmpiraqsoyk4say losließet 0 3479990 9814265 2026-06-16T04:38:54Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈloːsˌliːsət/}} * {{audio|de|De-losließet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|p|dep|sub|II}}」的新頁面 9814265 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈloːsˌliːsət/}} * {{audio|de|De-losließet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|loslassen||2|p|dep|sub|II}} osayfnoast2pl333mr9mcj7t4ngx3tb eingeleuchtet 0 3479991 9814266 2026-06-16T04:44:26Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaɪ̯nɡəˌlɔɪ̯çtət/}} * {{audio|de|De-eingeleuchtet.ogg|a=柏林}} ===分詞=== {{head|de|過去分詞}} # {{past participle of|de|einleuchten}} ====變格==== {{de-adecl}}」的新頁面 9814266 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaɪ̯nɡəˌlɔɪ̯çtət/}} * {{audio|de|De-eingeleuchtet.ogg|a=柏林}} ===分詞=== {{head|de|過去分詞}} # {{past participle of|de|einleuchten}} ====變格==== {{de-adecl}} omead2dpp5n7335wwlheho1errso47o einzuleuchten 0 3479992 9814267 2026-06-16T04:44:27Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaɪ̯nt͡suˌlɔɪ̯çtn̩/}} * {{audio|de|De-einzuleuchten.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{de-zu-infinitive of|einleuchten}}」的新頁面 9814267 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaɪ̯nt͡suˌlɔɪ̯çtn̩/}} * {{audio|de|De-einzuleuchten.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{de-zu-infinitive of|einleuchten}} 9cvtaj6su5wtdypcmqbjyabyvsofaej leuchtet ein 0 3479993 9814268 2026-06-16T04:46:34Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtət ˈaɪ̯n/}} * {{audio|de|De-leuchtet ein.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|einleuchten||3|s|pres}}」的新頁面 9814268 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtət ˈaɪ̯n/}} * {{audio|de|De-leuchtet ein.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|einleuchten||3|s|pres}} plfaxf0xg6aj7evhhgi4d44ntqpmzzh leuchtete ein 0 3479994 9814269 2026-06-16T04:46:36Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtətə ˈaɪ̯n/}} * {{audio|de|De-leuchtete ein.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|einleuchten||3|s|pret|;|3|s|sub|II}}」的新頁面 9814269 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtətə ˈaɪ̯n/}} * {{audio|de|De-leuchtete ein.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|einleuchten||3|s|pret|;|3|s|sub|II}} 10n5b5hdb44mh0y8aljn9zjaw0602t0 leuchte ein 0 3479995 9814270 2026-06-16T04:46:39Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtə ˈaɪ̯n/}} * {{audio|de|De-leuchte ein.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|einleuchten||3|s|sub|I}}」的新頁面 9814270 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtə ˈaɪ̯n/}} * {{audio|de|De-leuchte ein.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|einleuchten||3|s|sub|I}} 9ffrlyi1n31p4hpw6garj4e4zgjp25s einleuchtete 0 3479996 9814271 2026-06-16T04:46:43Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaɪ̯nˌlɔɪ̯çtətə/}} * {{audio|de|De-einleuchtete.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|einleuchten||3|s|dep|pret|;|3|s|dep|sub|II}}」的新頁面 9814271 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaɪ̯nˌlɔɪ̯çtətə/}} * {{audio|de|De-einleuchtete.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|einleuchten||3|s|dep|pret|;|3|s|dep|sub|II}} 5j21kfv2dtn78jx1orrg94l3mxxowyc einleuchtet 0 3479997 9814272 2026-06-16T04:46:45Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaɪ̯nˌlɔɪ̯çtət/}} * {{audio|de|De-einleuchtet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|einleuchten||3|s|dep|pres}}」的新頁面 9814272 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaɪ̯nˌlɔɪ̯çtət/}} * {{audio|de|De-einleuchtet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|einleuchten||3|s|dep|pres}} i219ifs7srvdjtz2a983ssseurcxqa5 einleuchte 0 3479998 9814273 2026-06-16T04:46:47Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaɪ̯nˌlɔɪ̯çtə/}} * {{audio|de|De-einleuchte.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|einleuchten||3|s|dep|sub|I}}」的新頁面 9814273 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaɪ̯nˌlɔɪ̯çtə/}} * {{audio|de|De-einleuchte.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|einleuchten||3|s|dep|sub|I}} la5xn4zuci0hatm3m8kxijs2cl69lzh beleuchtend 0 3479999 9814275 2026-06-16T04:48:21Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtn̩t/}} * {{audio|de|De-beleuchtend.ogg|a=柏林}} ===分詞=== {{head|de|現在分詞}} # {{present participle of|de|beleuchten}} ====變格==== {{de-adecl}}」的新頁面 9814275 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtn̩t/}} * {{audio|de|De-beleuchtend.ogg|a=柏林}} ===分詞=== {{head|de|現在分詞}} # {{present participle of|de|beleuchten}} ====變格==== {{de-adecl}} 79k31etf5tw0k3dp0892n0ne03tkr5o beleuchtender 0 3480000 9814277 2026-06-16T04:48:34Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtn̩dɐ/}} * {{audio|de|De-beleuchtender.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|beleuchtend}}」的新頁面 9814277 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtn̩dɐ/}} * {{audio|de|De-beleuchtender.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|beleuchtend}} 4o9esg5403o52xmht79yelx8du8n6dw beleuchtenden 0 3480001 9814278 2026-06-16T04:48:36Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtn̩dən/}} * {{audio|de|De-beleuchtenden.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|beleuchtend}}」的新頁面 9814278 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtn̩dən/}} * {{audio|de|De-beleuchtenden.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|beleuchtend}} mtf81un30ct7z5f087aq0aj3ks5xuge beleuchtendem 0 3480002 9814279 2026-06-16T04:48:38Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtn̩dəm/}} * {{audio|de|De-beleuchtendem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|beleuchtend}}」的新頁面 9814279 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtn̩dəm/}} * {{audio|de|De-beleuchtendem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|beleuchtend}} idc1x5h4t8wl2vj3136e3pie9tycggi beleuchtende 0 3480003 9814280 2026-06-16T04:48:42Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtn̩də/}} * {{audio|de|De-beleuchtende.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|beleuchtend}}」的新頁面 9814280 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtn̩də/}} * {{audio|de|De-beleuchtende.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|beleuchtend}} nppc7slajwmvqjtz1cva28txr9j41de beleuchtendes 0 3480004 9814281 2026-06-16T04:48:44Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtn̩dəs/}} * {{audio|de|De-beleuchtendes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|beleuchtend}}」的新頁面 9814281 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtn̩dəs/}} * {{audio|de|De-beleuchtendes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|beleuchtend}} s607sun13jor14ceion01dpaokceh4r beleuchtetem 0 3480005 9814282 2026-06-16T04:48:58Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtətəm/}} * {{audio|de|De-beleuchtetem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|beleuchtet}}」的新頁面 9814282 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtətəm/}} * {{audio|de|De-beleuchtetem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|beleuchtet}} 33ougcgfgnibxwbiqc8cvz00wc3g5fb beleuchteter 0 3480006 9814283 2026-06-16T04:49:00Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtətɐ/}} * {{audio|de|De-beleuchteter.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|beleuchtet}}」的新頁面 9814283 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtətɐ/}} * {{audio|de|De-beleuchteter.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|beleuchtet}} 32zisive79szl6kxk568ffdodd4uei4 beleuchtetes 0 3480007 9814284 2026-06-16T04:49:03Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtətəs/}} * {{audio|de|De-beleuchtetes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|beleuchtet}}」的新頁面 9814284 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtətəs/}} * {{audio|de|De-beleuchtetes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|beleuchtet}} jdlg6o568hfiy46hg7yp7r4923y4imh beleuchtete 0 3480008 9814285 2026-06-16T04:49:21Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtətə/}} * {{audio|de|De-beleuchtete.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|beleuchten||1//3|s|pret|;|1//3|s|sub|II}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|beleuchtet}}」的新頁面 9814285 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtətə/}} * {{audio|de|De-beleuchtete.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|beleuchten||1//3|s|pret|;|1//3|s|sub|II}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|beleuchtet}} ec39t0whsx3xr3n0j0o94juot3vxdvz beleuchteten 0 3480009 9814286 2026-06-16T04:49:36Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtətn̩/}} * {{audio|de|De-beleuchteten.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|beleuchten||1//3|p|pret|;|1//3|p|sub|II}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|beleuchtet}}」的新頁面 9814286 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtətn̩/}} * {{audio|de|De-beleuchteten.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|beleuchten||1//3|p|pret|;|1//3|p|sub|II}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|beleuchtet}} 7opq2m95e2sigwx4zwdiy9336396u4k beleuchte 0 3480010 9814287 2026-06-16T04:49:49Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtə/}} * {{audio|de|De-beleuchte.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|beleuchten||1|s|pres|;|s|imp|;|1//3|s|sub|I}}」的新頁面 9814287 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtə/}} * {{audio|de|De-beleuchte.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|beleuchten||1|s|pres|;|s|imp|;|1//3|s|sub|I}} eq6hb2r0e7vbtbs2gntfdrv1a6dqfij beleuchtetest 0 3480011 9814288 2026-06-16T04:49:50Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtətəst/}} * {{audio|de|De-beleuchtetest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|beleuchten||2|s|pret|;|2|s|sub|II}}」的新頁面 9814288 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtətəst/}} * {{audio|de|De-beleuchtetest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|beleuchten||2|s|pret|;|2|s|sub|II}} 2gqphc6ukg1vk9fc9g7szqxi2k82lfz beleuchtest 0 3480012 9814289 2026-06-16T04:49:52Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtəst/}} * {{audio|de|De-beleuchtest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|beleuchten||2|s|pres|;|2|s|sub|I}}」的新頁面 9814289 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtəst/}} * {{audio|de|De-beleuchtest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|beleuchten||2|s|pres|;|2|s|sub|I}} caddvvajrabw14a6fic8ho1pnwb2mun beleucht 0 3480013 9814290 2026-06-16T04:49:54Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çt/}} * {{audio|de|De-beleucht.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|beleuchten||s|imp}}」的新頁面 9814290 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çt/}} * {{audio|de|De-beleucht.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|beleuchten||s|imp}} 4ad0tnwdia45tybfz5mjg1b7urq9tkz beleuchtetet 0 3480014 9814291 2026-06-16T04:49:56Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtətət/}} * {{audio|de|De-beleuchtetet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|beleuchten||2|p|pret|;|2|p|sub|II}}」的新頁面 9814291 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈlɔɪ̯çtətət/}} * {{audio|de|De-beleuchtetet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|beleuchten||2|p|pret|;|2|p|sub|II}} crkze3rqhip11xbsei36emgyvxgcjpz aufgeleuchtet 0 3480015 9814293 2026-06-16T04:52:19Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fɡəˌlɔɪ̯çtət/}} * {{audio|de|De-aufgeleuchtet.ogg|a=柏林}} ===分詞=== {{head|de|過去分詞}} # {{past participle of|de|aufleuchten}} ====變格==== {{de-adecl}}」的新頁面 9814293 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fɡəˌlɔɪ̯çtət/}} * {{audio|de|De-aufgeleuchtet.ogg|a=柏林}} ===分詞=== {{head|de|過去分詞}} # {{past participle of|de|aufleuchten}} ====變格==== {{de-adecl}} ategoap7pd8219xsyzt6bfsa42zc6uq aufgeleuchteter 0 3480016 9814295 2026-06-16T04:52:33Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fɡəˌlɔɪ̯çtətɐ/}} * {{audio|de|De-aufgeleuchteter.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|aufgeleuchtet}}」的新頁面 9814295 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fɡəˌlɔɪ̯çtətɐ/}} * {{audio|de|De-aufgeleuchteter.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|aufgeleuchtet}} 7l18qaoqc54utql1b2zohkfhc9197xv aufgeleuchteten 0 3480017 9814296 2026-06-16T04:52:35Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fɡəˌlɔɪ̯çtətn̩/}} * {{audio|de|De-aufgeleuchteten.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|aufgeleuchtet}}」的新頁面 9814296 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fɡəˌlɔɪ̯çtətn̩/}} * {{audio|de|De-aufgeleuchteten.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|aufgeleuchtet}} h25ugxyuibn7pxbpwbdj47l5jfbf1tp aufgeleuchtetem 0 3480018 9814297 2026-06-16T04:52:37Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fɡəˌlɔɪ̯çtətəm/}} * {{audio|de|De-aufgeleuchtetem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|aufgeleuchtet}}」的新頁面 9814297 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fɡəˌlɔɪ̯çtətəm/}} * {{audio|de|De-aufgeleuchtetem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|aufgeleuchtet}} 79nj0ac2yjc6jn9o03n0gch503hi46p aufgeleuchtete 0 3480019 9814298 2026-06-16T04:52:41Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fɡəˌlɔɪ̯çtətə/}} * {{audio|de|De-aufgeleuchtete.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|aufgeleuchtet}}」的新頁面 9814298 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fɡəˌlɔɪ̯çtətə/}} * {{audio|de|De-aufgeleuchtete.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|aufgeleuchtet}} ipaxn5iiptlo2nkcszivy2mzlgcary1 aufgeleuchtetes 0 3480020 9814299 2026-06-16T04:52:43Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fɡəˌlɔɪ̯çtətəs/}} * {{audio|de|De-aufgeleuchtetes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|aufgeleuchtet}}」的新頁面 9814299 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fɡəˌlɔɪ̯çtətəs/}} * {{audio|de|De-aufgeleuchtetes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|aufgeleuchtet}} sg6z27swd1dxhn7j9dwej0ep3acao76 aufleuchtender 0 3480021 9814300 2026-06-16T04:52:57Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtn̩dɐ/}} * {{audio|de|De-aufleuchtender.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|aufleuchtend}}」的新頁面 9814300 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtn̩dɐ/}} * {{audio|de|De-aufleuchtender.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|aufleuchtend}} a1d68u0zt6vilop8ho3z1uac8pawd13 aufleuchtenden 0 3480022 9814301 2026-06-16T04:52:59Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtn̩dən/}} * {{audio|de|De-aufleuchtenden.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|aufleuchtend}}」的新頁面 9814301 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtn̩dən/}} * {{audio|de|De-aufleuchtenden.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|aufleuchtend}} oaztd0wlbve2xjagjbares8mbqanytj aufleuchtendem 0 3480023 9814302 2026-06-16T04:53:01Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtn̩dəm/}} * {{audio|de|De-aufleuchtendem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|aufleuchtend}}」的新頁面 9814302 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtn̩dəm/}} * {{audio|de|De-aufleuchtendem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|aufleuchtend}} b2c0bokl16620t9iftd7o1hnqfbo6n7 aufleuchtende 0 3480024 9814303 2026-06-16T04:53:04Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtn̩də/}} * {{audio|de|De-aufleuchtende.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|aufleuchtend}}」的新頁面 9814303 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtn̩də/}} * {{audio|de|De-aufleuchtende.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|aufleuchtend}} nis4vsyeinkpfj98ludcchiw57ieoat aufleuchtendes 0 3480025 9814304 2026-06-16T04:53:06Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtn̩dəs/}} * {{audio|de|De-aufleuchtendes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|aufleuchtend}}」的新頁面 9814304 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtn̩dəs/}} * {{audio|de|De-aufleuchtendes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|aufleuchtend}} i2iqzij4azzb4nhddxvacshamgdftqh aufzuleuchten 0 3480026 9814305 2026-06-16T04:53:18Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯ft͡suˌlɔɪ̯çtn̩/}} * {{audio|de|De-aufzuleuchten.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{de-zu-infinitive of|aufleuchten}}」的新頁面 9814305 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯ft͡suˌlɔɪ̯çtn̩/}} * {{audio|de|De-aufzuleuchten.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{de-zu-infinitive of|aufleuchten}} 6haua5ojmccuif30h2975f0gvpwxf0q leuchte auf 0 3480027 9814306 2026-06-16T04:53:20Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtə ˈaʊ̯f/}} * {{audio|de|De-leuchte auf.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|aufleuchten||1|s|pres|;|1//3|s|sub|I|;|s|imp}}」的新頁面 9814306 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtə ˈaʊ̯f/}} * {{audio|de|De-leuchte auf.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|aufleuchten||1|s|pres|;|1//3|s|sub|I|;|s|imp}} mik8gb7px25ccemh4s3s89hkh79acy4 leuchtest auf 0 3480028 9814307 2026-06-16T04:53:21Z Sayonzei 40728 創建德語「[[aufleuchten]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814307 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtəst ˈaʊ̯f/}} * {{audio|de|De-leuchtest auf.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|aufleuchten||2|s|pres|;|2|s|sub|I}} oj75zpbar72u081n918kvhuokr9fp1l leuchten auf 0 3480029 9814308 2026-06-16T04:53:23Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtn̩ ˈaʊ̯f/}} * {{audio|de|De-leuchten auf.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|aufleuchten||1//3|p|pres|;|1//3|p|sub|I}}」的新頁面 9814308 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtn̩ ˈaʊ̯f/}} * {{audio|de|De-leuchten auf.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|aufleuchten||1//3|p|pres|;|1//3|p|sub|I}} ee82o529d7847oh3hkt667zr8d1xs4f leuchtet auf 0 3480030 9814309 2026-06-16T04:53:24Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtət ˈaʊ̯f/}} * {{audio|de|De-leuchtet auf.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|aufleuchten||2|p|pres|;|2|p|sub|I|;|3|s|pres|;|p|imp}}」的新頁面 9814309 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtət ˈaʊ̯f/}} * {{audio|de|De-leuchtet auf.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|aufleuchten||2|p|pres|;|2|p|sub|I|;|3|s|pres|;|p|imp}} 3eos0e92rx1sirt6mrn1ll4f0x9sj35 leucht auf 0 3480031 9814310 2026-06-16T04:53:27Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çt ˈaʊ̯f/}} * {{audio|de|De-leucht auf.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|aufleuchten||s|imp}}」的新頁面 9814310 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çt ˈaʊ̯f/}} * {{audio|de|De-leucht auf.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|aufleuchten||s|imp}} r65nbhl3k3wonu4zw0eb3z1oezjhcx1 leuchtete auf 0 3480032 9814311 2026-06-16T04:53:41Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtətə ˈaʊ̯f/}} * {{audio|de|De-leuchtete auf.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|aufleuchten||1//3|s|pret|;|1//3|s|sub|II}}」的新頁面 9814311 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtətə ˈaʊ̯f/}} * {{audio|de|De-leuchtete auf.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|aufleuchten||1//3|s|pret|;|1//3|s|sub|II}} b9tvtyuyn78ewe4if6s4sudxjrg61eb leuchtetest auf 0 3480033 9814312 2026-06-16T04:53:43Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtətəst ˈaʊ̯f/}} * {{audio|de|De-leuchtetest auf.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|aufleuchten||2|s|pret|;|2|s|sub|II}}」的新頁面 9814312 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtətəst ˈaʊ̯f/}} * {{audio|de|De-leuchtetest auf.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|aufleuchten||2|s|pret|;|2|s|sub|II}} 7iyxd2by0cdcamgkfk3g3cuqlqktx01 leuchteten auf 0 3480034 9814313 2026-06-16T04:53:44Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtətn̩ ˈaʊ̯f/}} * {{audio|de|De-leuchteten auf.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|aufleuchten||1//3|p|pret|;|1//3|p|sub|II}}」的新頁面 9814313 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtətn̩ ˈaʊ̯f/}} * {{audio|de|De-leuchteten auf.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|aufleuchten||1//3|p|pret|;|1//3|p|sub|II}} 94qccwvssiluqprk0w8ryweeq0sqb46 leuchtetet auf 0 3480035 9814314 2026-06-16T04:53:47Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtətət ˈaʊ̯f/}} * {{audio|de|De-leuchtetet auf.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|aufleuchten||2|p|pret|;|2|p|sub|II}}」的新頁面 9814314 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtətət ˈaʊ̯f/}} * {{audio|de|De-leuchtetet auf.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|aufleuchten||2|p|pret|;|2|p|sub|II}} 0mafhqvifetfti22ofpajkj61bce9tk aufleuchtet 0 3480036 9814315 2026-06-16T04:57:25Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtət/}} * {{audio|de|De-aufleuchtet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|aufleuchten||2|p|dep|pres|;|2|p|dep|sub|I|;|3|s|dep|pres}}」的新頁面 9814315 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtət/}} * {{audio|de|De-aufleuchtet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|aufleuchten||2|p|dep|pres|;|2|p|dep|sub|I|;|3|s|dep|pres}} d02sdil56tib1yiuhq5n1t0j6e468il aufleuchtete 0 3480037 9814316 2026-06-16T04:57:27Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtətə/}} * {{audio|de|De-aufleuchtete.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|aufleuchten||1//3|s|dep|pret|;|1//3|s|dep|sub|II}}」的新頁面 9814316 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtətə/}} * {{audio|de|De-aufleuchtete.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|aufleuchten||1//3|s|dep|pret|;|1//3|s|dep|sub|II}} pwmfht2cgkpiq050d7wql7a6tge45ij aufleuchtetest 0 3480038 9814317 2026-06-16T04:57:29Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtətəst/}} * {{audio|de|De-aufleuchtetest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|aufleuchten||2|s|dep|pret|;|2|s|dep|sub|II}}」的新頁面 9814317 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtətəst/}} * {{audio|de|De-aufleuchtetest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|aufleuchten||2|s|dep|pret|;|2|s|dep|sub|II}} jx9589mnvb3qcpvv792n3wwrvunwzof aufleuchteten 0 3480039 9814318 2026-06-16T04:57:31Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtətn̩/}} * {{audio|de|De-aufleuchteten.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|aufleuchten||1//3|p|dep|pret|;|1//3|p|dep|sub|II}}」的新頁面 9814318 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtətn̩/}} * {{audio|de|De-aufleuchteten.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|aufleuchten||1//3|p|dep|pret|;|1//3|p|dep|sub|II}} 74jchfduo7skdbm93sws3k6gm0648tg aufleuchtetet 0 3480040 9814319 2026-06-16T04:57:33Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtətət/}} * {{audio|de|De-aufleuchtetet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|aufleuchten||2|p|dep|pret|;|2|p|dep|sub|II}}」的新頁面 9814319 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtətət/}} * {{audio|de|De-aufleuchtetet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|aufleuchten||2|p|dep|pret|;|2|p|dep|sub|II}} jw6kpxdydzea6z90pceegkuy4ovc477 aufleuchtest 0 3480041 9814320 2026-06-16T04:57:37Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtəst/}} * {{audio|de|De-aufleuchtest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|aufleuchten||2|s|dep|pres|;|2|s|dep|sub|I}}」的新頁面 9814320 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtəst/}} * {{audio|de|De-aufleuchtest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|aufleuchten||2|s|dep|pres|;|2|s|dep|sub|I}} slwreryga4tejkljnqetrjn02ez04s4 aufleuchte 0 3480042 9814321 2026-06-16T04:57:53Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtə/}} * {{audio|de|De-aufleuchte.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|aufleuchten||1|s|dep|pres|;|1//3|s|dep|sub|I}}」的新頁面 9814321 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯fˌlɔɪ̯çtə/}} * {{audio|de|De-aufleuchte.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|aufleuchten||1|s|dep|pres|;|1//3|s|dep|sub|I}} mhonoaiuybia5w6o3pr7f2r61pgelc7 moinsen 0 3480043 9814322 2026-06-16T05:09:08Z Hzy980512 19278 [[w:WP:AES|←]]建立內容為「==德语== ===词源=== 可能是青年俚语中 {{univerbation|de|moin|zusammen}},因此一般用于多个人。 ===发音=== * {{IPA|de|/ˈmɔːɪ̯nzən/|/ˈmɔɪ̯nzən/}} * {{rfap|de|inline=1}} ===叹词=== {{head|de|interjection}} # {{alt form|from=俚语|de|moin|t=嗨,早}} ===延伸阅读=== * {{R:de:DWDS|moinsen}} * {{pedia|lang=de}}」的新頁面 9814322 wikitext text/x-wiki ==德语== ===词源=== 可能是青年俚语中 {{univerbation|de|moin|zusammen}},因此一般用于多个人。 ===发音=== * {{IPA|de|/ˈmɔːɪ̯nzən/|/ˈmɔɪ̯nzən/}} * {{rfap|de|inline=1}} ===叹词=== {{head|de|interjection}} # {{alt form|from=俚语|de|moin|t=嗨,早}} ===延伸阅读=== * {{R:de:DWDS|moinsen}} * {{pedia|lang=de}} kaf3ryda84sjy33bpn0qfbdrtmltnxz geleuchtet 0 3480044 9814326 2026-06-16T06:00:34Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ɡəˈlɔɪ̯çtət/}} * {{audio|de|De-geleuchtet.ogg|a=柏林}} ===分詞=== {{head|de|過去分詞}} # {{past participle of|de|leuchten}} ====變格==== {{de-adecl}}」的新頁面 9814326 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ɡəˈlɔɪ̯çtət/}} * {{audio|de|De-geleuchtet.ogg|a=柏林}} ===分詞=== {{head|de|過去分詞}} # {{past participle of|de|leuchten}} ====變格==== {{de-adecl}} 0pirjmiicx4bft53ud53vgvusa4iupm geleuchteter 0 3480045 9814327 2026-06-16T06:00:52Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ɡəˈlɔɪ̯çtətɐ/}} * {{audio|de|De-geleuchteter.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|geleuchtet}}」的新頁面 9814327 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ɡəˈlɔɪ̯çtətɐ/}} * {{audio|de|De-geleuchteter.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|geleuchtet}} gg8457b3lk2jao0oadi7zyi7mi8cb34 geleuchteten 0 3480046 9814328 2026-06-16T06:00:55Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ɡəˈlɔɪ̯çtətn̩/}} * {{audio|de|De-geleuchteten.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|geleuchtet}}」的新頁面 9814328 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ɡəˈlɔɪ̯çtətn̩/}} * {{audio|de|De-geleuchteten.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|geleuchtet}} ph0aeomvaukv52wjaof85moioo9ihsx geleuchtete 0 3480047 9814329 2026-06-16T06:00:57Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ɡəˈlɔɪ̯çtətə/}} * {{audio|de|De-geleuchtete.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|geleuchtet}}」的新頁面 9814329 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ɡəˈlɔɪ̯çtətə/}} * {{audio|de|De-geleuchtete.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|geleuchtet}} puf7a0o2lf9u3pd9kroehox95rh53rw geleuchtetem 0 3480048 9814330 2026-06-16T06:01:01Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ɡəˈlɔɪ̯çtətəm/}} * {{audio|de|De-geleuchtetem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|geleuchtet}}」的新頁面 9814330 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ɡəˈlɔɪ̯çtətəm/}} * {{audio|de|De-geleuchtetem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|geleuchtet}} a6b4rui5dungry8nlkkaazj6c5l345t geleuchtetes 0 3480049 9814331 2026-06-16T06:01:03Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ɡəˈlɔɪ̯çtətəs/}} * {{audio|de|De-geleuchtetes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|geleuchtet}}」的新頁面 9814331 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ɡəˈlɔɪ̯çtətəs/}} * {{audio|de|De-geleuchtetes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|geleuchtet}} 3h0n8axg3ol1q7v4xs28tpv6foyfmk5 leuchtender 0 3480050 9814333 2026-06-16T06:01:58Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈlɔɪ̯çtn̩dɐ/}} * {{audio|de|De-leuchtender.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級}} # {{comparative of|de|leuchtend}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|leuchtend}}」的新頁面 9814333 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈlɔɪ̯çtn̩dɐ/}} * {{audio|de|De-leuchtender.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級}} # {{comparative of|de|leuchtend}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|leuchtend}} kyzelngdvnzvve5wmr26nrt4kddlxbc leuchtenden 0 3480051 9814334 2026-06-16T06:02:00Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈlɔɪ̯çtn̩dən/}} * {{audio|de|De-leuchtenden.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|leuchtend}}」的新頁面 9814334 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈlɔɪ̯çtn̩dən/}} * {{audio|de|De-leuchtenden.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|leuchtend}} hc0dbwab4ovss4pxq40p8nkpus5ygt6 leuchtende 0 3480052 9814335 2026-06-16T06:02:01Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈlɔɪ̯çtn̩də/}} * {{audio|de|De-leuchtende.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|leuchtend}}」的新頁面 9814335 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈlɔɪ̯çtn̩də/}} * {{audio|de|De-leuchtende.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|leuchtend}} 9n36pih5ng28g4hwv2noukle8w8j7kw leuchtendem 0 3480053 9814336 2026-06-16T06:02:04Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈlɔɪ̯çtn̩dəm/}} * {{audio|de|De-leuchtendem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|leuchtend}}」的新頁面 9814336 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈlɔɪ̯çtn̩dəm/}} * {{audio|de|De-leuchtendem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|leuchtend}} srmy39uesaa8t19vyw0x633erlyidm9 leuchtendes 0 3480054 9814337 2026-06-16T06:02:05Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈlɔɪ̯çtn̩dəs/}} * {{audio|de|De-leuchtendes.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|leuchtend}}」的新頁面 9814337 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈlɔɪ̯çtn̩dəs/}} * {{audio|de|De-leuchtendes.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|leuchtend}} 11t341vv6yipss06b97olhj6h5mxocx leuchtenderer 0 3480055 9814338 2026-06-16T06:02:20Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|leuchtend}}」的新頁面 9814338 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|leuchtend}} rp5dubp41brrjpu93lc46ye5s2748kx leuchtenderen 0 3480056 9814339 2026-06-16T06:02:21Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|leuchtend}}」的新頁面 9814339 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|leuchtend}} rp5dubp41brrjpu93lc46ye5s2748kx leuchtendere 0 3480057 9814340 2026-06-16T06:02:22Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|leuchtend}}」的新頁面 9814340 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|leuchtend}} rp5dubp41brrjpu93lc46ye5s2748kx leuchtenderem 0 3480058 9814341 2026-06-16T06:02:24Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|leuchtend}}」的新頁面 9814341 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|leuchtend}} rp5dubp41brrjpu93lc46ye5s2748kx leuchtenderes 0 3480059 9814342 2026-06-16T06:02:25Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|leuchtend}}」的新頁面 9814342 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|leuchtend}} rp5dubp41brrjpu93lc46ye5s2748kx leuchtendster 0 3480060 9814343 2026-06-16T06:02:48Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|leuchtend}}」的新頁面 9814343 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|leuchtend}} 4qt5i3ro7ke69z551sa59p0xotsa0im leuchtendste 0 3480061 9814344 2026-06-16T06:02:50Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|leuchtend}}」的新頁面 9814344 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|leuchtend}} 4qt5i3ro7ke69z551sa59p0xotsa0im leuchtendsten 0 3480062 9814345 2026-06-16T06:02:52Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===形容詞=== {{head|de|形容詞最高級}} # {{superlative of|de|leuchtend}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|leuchtend}}」的新頁面 9814345 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞最高級}} # {{superlative of|de|leuchtend}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|leuchtend}} 498ig5fvd6uswk967js7ht3448upzx2 leuchtendstem 0 3480063 9814346 2026-06-16T06:02:53Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|leuchtend}}」的新頁面 9814346 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|leuchtend}} 4qt5i3ro7ke69z551sa59p0xotsa0im leuchtendstes 0 3480064 9814347 2026-06-16T06:02:55Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|leuchtend}}」的新頁面 9814347 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|leuchtend}} 4qt5i3ro7ke69z551sa59p0xotsa0im lumineszieren 0 3480065 9814348 2026-06-16T06:03:39Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===詞源=== {{ety|de|:af|Lumineszenz|-ieren}} 源自 {{af|de|Lumineszenz|-ieren}}。 ===發音=== * {{IPA|de|/luminɛsˈt͡siːʁən/}} * {{audio|de|De-lumineszieren.ogg|a=柏林}} ===動詞=== {{de-verb}} # [[發光]] ====變位==== {{de-conj}} ===延伸閱讀=== * {{R:de:DWDS}} * {{R:de:Duden}}」的新頁面 9814348 wikitext text/x-wiki ==德語== ===詞源=== {{ety|de|:af|Lumineszenz|-ieren}} 源自 {{af|de|Lumineszenz|-ieren}}。 ===發音=== * {{IPA|de|/luminɛsˈt͡siːʁən/}} * {{audio|de|De-lumineszieren.ogg|a=柏林}} ===動詞=== {{de-verb}} # [[發光]] ====變位==== {{de-conj}} ===延伸閱讀=== * {{R:de:DWDS}} * {{R:de:Duden}} rmqmn15yr3ep1knpxwpk99yzth3tzcj lumineszierend 0 3480066 9814349 2026-06-16T06:04:13Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/luminɛsˈt͡siːʁənt/}} * {{audio|de|De-lumineszierend.ogg|a=柏林}} ===分詞=== {{head|de|現在分詞}} # {{infl of|de|lumineszieren||pres|part}} ====變格==== {{de-adecl}}」的新頁面 9814349 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/luminɛsˈt͡siːʁənt/}} * {{audio|de|De-lumineszierend.ogg|a=柏林}} ===分詞=== {{head|de|現在分詞}} # {{infl of|de|lumineszieren||pres|part}} ====變格==== {{de-adecl}} 5qozans0guzcf9c7jbk8lq6uxy9zsnl luminesziert 0 3480067 9814350 2026-06-16T06:04:18Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/luminɛsˈt͡siːɐ̯t/}} * {{audio|de|De-luminesziert.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|lumineszieren||;|2|p|pres|;|3|s|pres|;|p|imp}} ===分詞=== {{head|de|過去分詞}} # {{infl of|de|lumineszieren||perf|part}} ====變格==== {{de-adecl}}」的新頁面 9814350 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/luminɛsˈt͡siːɐ̯t/}} * {{audio|de|De-luminesziert.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|lumineszieren||;|2|p|pres|;|3|s|pres|;|p|imp}} ===分詞=== {{head|de|過去分詞}} # {{infl of|de|lumineszieren||perf|part}} ====變格==== {{de-adecl}} 6khculs9fg9f3hp5k6o5q24m7mtqhi9 lumineszierender 0 3480068 9814351 2026-06-16T06:04:40Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/luminɛsˈt͡siːʁəndɐ/}} * {{audio|de|De-lumineszierender.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|lumineszierend}}」的新頁面 9814351 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/luminɛsˈt͡siːʁəndɐ/}} * {{audio|de|De-lumineszierender.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|lumineszierend}} nj383escudl85ycgqsf84qt52iacrw3 lumineszierenden 0 3480069 9814352 2026-06-16T06:04:42Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/luminɛsˈt͡siːʁəndn̩/}} * {{audio|de|De-lumineszierenden.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|lumineszierend}}」的新頁面 9814352 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/luminɛsˈt͡siːʁəndn̩/}} * {{audio|de|De-lumineszierenden.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|lumineszierend}} gyigiiz5i4fdoa4lylbsxxgdbmg8chy lumineszierendem 0 3480070 9814353 2026-06-16T06:04:44Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/luminɛsˈt͡siːʁəndəm/}} * {{audio|de|De-lumineszierendem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|lumineszierend}}」的新頁面 9814353 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/luminɛsˈt͡siːʁəndəm/}} * {{audio|de|De-lumineszierendem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|lumineszierend}} 60vgyz6wxy2nkfc2vbrmwlcddqsbzg9 lumineszierende 0 3480071 9814354 2026-06-16T06:04:46Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/luminɛsˈt͡siːʁəndə/}} * {{audio|de|De-lumineszierende.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|lumineszierend}}」的新頁面 9814354 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/luminɛsˈt͡siːʁəndə/}} * {{audio|de|De-lumineszierende.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|lumineszierend}} n9ajjzn3qcz1mzh0nn2l3nfgh692zjy lumineszierendes 0 3480072 9814355 2026-06-16T06:04:49Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/luminɛsˈt͡siːʁəndəs/}} * {{audio|de|De-lumineszierendes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|lumineszierend}}」的新頁面 9814355 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/luminɛsˈt͡siːʁəndəs/}} * {{audio|de|De-lumineszierendes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|lumineszierend}} f0why2dn7go2uk1b65u74xx8elwrinl luminesziere 0 3480073 9814356 2026-06-16T06:05:35Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/luminɛsˈt͡siːʁə/}} * {{audio|de|De-luminesziere.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|lumineszieren||1|s|pres|;|1//3|s|sub|I|;|s|imp}}」的新頁面 9814356 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/luminɛsˈt͡siːʁə/}} * {{audio|de|De-luminesziere.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|lumineszieren||1|s|pres|;|1//3|s|sub|I|;|s|imp}} 19k8lzw5z9255b2l94kjzmw68y3gtq0 lumineszierte 0 3480074 9814357 2026-06-16T06:05:42Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/luminɛsˈt͡siːɐ̯tə/}} * {{audio|de|De-lumineszierte.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|lumineszieren||1//3|s|pret|;|1//3|s|sub|II}}」的新頁面 9814357 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/luminɛsˈt͡siːɐ̯tə/}} * {{audio|de|De-lumineszierte.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|lumineszieren||1//3|s|pret|;|1//3|s|sub|II}} foc2dqyvble4wbw58y67wu4ea4aj4yl lumineszierten 0 3480075 9814358 2026-06-16T06:06:00Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/luminɛsˈt͡siːɐ̯tn̩/}} * {{audio|de|De-lumineszierten.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|lumineszieren||1//3|p|pret|;|1//3|p|sub|II}}」的新頁面 9814358 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/luminɛsˈt͡siːɐ̯tn̩/}} * {{audio|de|De-lumineszierten.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|lumineszieren||1//3|p|pret|;|1//3|p|sub|II}} a8mjzyh12s3z7ap62lh44icsm19eaxo bestrahlend 0 3480076 9814361 2026-06-16T06:11:39Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːlənt/}} * {{audio|de|De-bestrahlend.ogg|a=柏林}} ===分詞=== {{head|de|現在分詞}} # {{present participle of|de|bestrahlen}} ====變格==== {{de-adecl}}」的新頁面 9814361 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːlənt/}} * {{audio|de|De-bestrahlend.ogg|a=柏林}} ===分詞=== {{head|de|現在分詞}} # {{present participle of|de|bestrahlen}} ====變格==== {{de-adecl}} r9t4algauphtri3olh6l18ceza0x455 bestrahlt 0 3480077 9814362 2026-06-16T06:12:04Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːlt/}} * {{audio|de|De-bestrahlt.ogg|a=柏林}} ===分詞=== {{head|de|過去分詞}} # {{past participle of|de|bestrahlen}} ===形容詞=== {{de-adj}} # [[輻射]]過的 ====變格==== {{de-adecl}}」的新頁面 9814362 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːlt/}} * {{audio|de|De-bestrahlt.ogg|a=柏林}} ===分詞=== {{head|de|過去分詞}} # {{past participle of|de|bestrahlen}} ===形容詞=== {{de-adj}} # [[輻射]]過的 ====變格==== {{de-adecl}} jvkb74mfl6uup3e637mbmb1x8lvfeqx bestrahlender 0 3480078 9814363 2026-06-16T06:12:06Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːləndɐ/}} * {{audio|de|De-bestrahlender.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|bestrahlend}}」的新頁面 9814363 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːləndɐ/}} * {{audio|de|De-bestrahlender.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|bestrahlend}} ta4xylgijs3g91spvys8314sltea7di bestrahlenden 0 3480079 9814364 2026-06-16T06:12:08Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːləndn̩/}} * {{audio|de|De-bestrahlenden.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|bestrahlend}}」的新頁面 9814364 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːləndn̩/}} * {{audio|de|De-bestrahlenden.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|bestrahlend}} nif2eizlh9bzdjindd02cq2xm2x9kaq bestrahlendem 0 3480080 9814365 2026-06-16T06:12:10Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːləndəm/}} * {{audio|de|De-bestrahlendem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|bestrahlend}}」的新頁面 9814365 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːləndəm/}} * {{audio|de|De-bestrahlendem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|bestrahlend}} gq52buxp5v0arusdk5etn2ne11qci0v bestrahlende 0 3480081 9814366 2026-06-16T06:12:13Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːləndə/}} * {{audio|de|De-bestrahlende.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|bestrahlend}}」的新頁面 9814366 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːləndə/}} * {{audio|de|De-bestrahlende.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|bestrahlend}} shp45v4agy9e7c9dmhpzqcc23123izb bestrahlendes 0 3480082 9814367 2026-06-16T06:12:15Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːləndəs/}} * {{audio|de|De-bestrahlendes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|bestrahlend}}」的新頁面 9814367 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːləndəs/}} * {{audio|de|De-bestrahlendes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|bestrahlend}} cn46cbyaz49h6cskpaehjn64gtn8xyn bestrahlter 0 3480083 9814368 2026-06-16T06:12:30Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːltɐ/}} * {{audio|de|De-bestrahlter.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|bestrahlt}}」的新頁面 9814368 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːltɐ/}} * {{audio|de|De-bestrahlter.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|bestrahlt}} f87qfcrly6xarwlym3vj1jecsi1y8d0 bestrahltem 0 3480084 9814369 2026-06-16T06:12:32Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːltəm/}} * {{audio|de|De-bestrahltem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|bestrahlt}}」的新頁面 9814369 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːltəm/}} * {{audio|de|De-bestrahltem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|bestrahlt}} trx26phg34oskgndezmzso60megi311 bestrahltes 0 3480085 9814370 2026-06-16T06:12:33Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːltəs/}} * {{audio|de|De-bestrahltes.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|bestrahlt}}」的新頁面 9814370 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːltəs/}} * {{audio|de|De-bestrahltes.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|bestrahlt}} 1dc170o1i6d8sjv3dieo2q5qbg030iu bestrahlte 0 3480086 9814372 2026-06-16T06:13:04Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːltə/}} * {{audio|de|De-bestrahlte.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|bestrahlt}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|bestrahlen||1//3|s|pret|;|1//3|s|sub|II}}」的新頁面 9814372 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːltə/}} * {{audio|de|De-bestrahlte.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|bestrahlt}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|bestrahlen||1//3|s|pret|;|1//3|s|sub|II}} 3fd72nr2z0lq1poybn13t6cl21p83v3 bestrahltest 0 3480087 9814373 2026-06-16T06:13:05Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːltəst/}} * {{audio|de|De-bestrahltest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|bestrahlen||2|s|pret|;|2|s|sub|II}}」的新頁面 9814373 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːltəst/}} * {{audio|de|De-bestrahltest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|bestrahlen||2|s|pret|;|2|s|sub|II}} fw2r24qjw0ialpf57pvqod68h55syns bestrahltet 0 3480088 9814374 2026-06-16T06:13:14Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːltət/}} * {{audio|de|De-bestrahltet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|bestrahlen||2|p|pret|;|2|p|sub|II}}」的新頁面 9814374 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːltət/}} * {{audio|de|De-bestrahltet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|bestrahlen||2|p|pret|;|2|p|sub|II}} 6wrdvttvqrbmpsgwa48ryozgp6oikyd bestrahlten 0 3480089 9814375 2026-06-16T06:13:21Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːltn̩/}} * {{audio|de|De-bestrahlten.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|bestrahlt}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|bestrahlen||1//3|p|pret|;|1//3|p|sub|II}}」的新頁面 9814375 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːltn̩/}} * {{audio|de|De-bestrahlten.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|bestrahlt}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|bestrahlen||1//3|p|pret|;|1//3|p|sub|II}} caywqbp7owt64n5h96dy8awhd2g0js9 bestrahle 0 3480090 9814376 2026-06-16T06:13:34Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːlə/}} * {{audio|de|De-bestrahle.ogg|a=柏林}} * {{rhymes|de|aːlə|s=3}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|bestrahlen||1|s|pres|;|1//3|s|sub|I|;|s|imp}}」的新頁面 9814376 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːlə/}} * {{audio|de|De-bestrahle.ogg|a=柏林}} * {{rhymes|de|aːlə|s=3}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|bestrahlen||1|s|pres|;|1//3|s|sub|I|;|s|imp}} 25zxoh4i3vg2c7iwd3r4c06cz1zfkei bestrahlst 0 3480091 9814377 2026-06-16T06:13:35Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːlst/}} * {{audio|de|De-bestrahlst.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|bestrahlen||2|s|pres}}」的新頁面 9814377 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːlst/}} * {{audio|de|De-bestrahlst.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|bestrahlen||2|s|pres}} q8lvjxz8zlxvqd7bhwecs5zjph22l2i bestrahlest 0 3480092 9814378 2026-06-16T06:13:36Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːləst/}} * {{audio|de|De-bestrahlest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|bestrahlen||2|s|sub|I}}」的新頁面 9814378 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːləst/}} * {{audio|de|De-bestrahlest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|bestrahlen||2|s|sub|I}} oj0x8ufaeg7ai0nl816riz2auxtrvh7 bestrahl 0 3480093 9814379 2026-06-16T06:13:39Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːl/}} * {{audio|de|De-bestrahl.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|bestrahlen||s|imp}} # {{lb|de|口語}} {{verb form of|de|bestrahlen||1|s|pres}}」的新頁面 9814379 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːl/}} * {{audio|de|De-bestrahl.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|bestrahlen||s|imp}} # {{lb|de|口語}} {{verb form of|de|bestrahlen||1|s|pres}} e56brmkk0rba0pa7e3tfvieen6h7pzp bestrahlet 0 3480094 9814380 2026-06-16T06:13:40Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːlət/}} * {{audio|de|De-bestrahlet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|bestrahlen||2|p|sub|I}}」的新頁面 9814380 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈʃtʁaːlət/}} * {{audio|de|De-bestrahlet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|bestrahlen||2|p|sub|I}} qc85wltiniq6d5t1vwko2t8zcadob48 ausleuchtend 0 3480095 9814382 2026-06-16T06:16:09Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtn̩t/}} * {{audio|de|De-ausleuchtend.ogg|a=柏林}} ===分詞=== {{head|de|現在分詞}} # {{present participle of|de|ausleuchten}} ====變格==== {{de-adecl}}」的新頁面 9814382 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtn̩t/}} * {{audio|de|De-ausleuchtend.ogg|a=柏林}} ===分詞=== {{head|de|現在分詞}} # {{present participle of|de|ausleuchten}} ====變格==== {{de-adecl}} pcku0sgc6214hwd03qwngomu5h45ql2 ausgeleuchtet 0 3480096 9814383 2026-06-16T06:16:16Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sɡəˌlɔɪ̯çtət/}} * {{audio|de|De-ausgeleuchtet.ogg|a=柏林}} ===分詞=== {{head|de|過去分詞}} # {{infl of|de|ausleuchten||perf|part}} ====變格==== {{de-adecl}}」的新頁面 9814383 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sɡəˌlɔɪ̯çtət/}} * {{audio|de|De-ausgeleuchtet.ogg|a=柏林}} ===分詞=== {{head|de|過去分詞}} # {{infl of|de|ausleuchten||perf|part}} ====變格==== {{de-adecl}} secsix69okauksdfn4zamo2llenv4y0 auszuleuchten 0 3480097 9814384 2026-06-16T06:16:18Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯st͡suˌlɔɪ̯çtn̩/}} * {{audio|de|De-auszuleuchten.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{de-zu-infinitive of|ausleuchten}}」的新頁面 9814384 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯st͡suˌlɔɪ̯çtn̩/}} * {{audio|de|De-auszuleuchten.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{de-zu-infinitive of|ausleuchten}} kmhz1h588cjd48gsuphgdlko5q0v6eq ausgeleuchteter 0 3480098 9814385 2026-06-16T06:16:32Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sɡəˌlɔɪ̯çtətɐ/}} * {{audio|de|De-ausgeleuchteter.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|ausgeleuchtet}}」的新頁面 9814385 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sɡəˌlɔɪ̯çtətɐ/}} * {{audio|de|De-ausgeleuchteter.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|ausgeleuchtet}} fwl05w7cbgia7horeoe5vwkin66vz6c ausgeleuchteten 0 3480099 9814386 2026-06-16T06:16:34Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sɡəˌlɔɪ̯çtətn̩/}} * {{audio|de|De-ausgeleuchteten.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|ausgeleuchtet}}」的新頁面 9814386 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sɡəˌlɔɪ̯çtətn̩/}} * {{audio|de|De-ausgeleuchteten.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|ausgeleuchtet}} 4ejue65wbzpl94kfryb6bamk1vmaw3q ausgeleuchtetem 0 3480100 9814387 2026-06-16T06:16:36Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sɡəˌlɔɪ̯çtətəm/}} * {{audio|de|De-ausgeleuchtetem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|ausgeleuchtet}}」的新頁面 9814387 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sɡəˌlɔɪ̯çtətəm/}} * {{audio|de|De-ausgeleuchtetem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|ausgeleuchtet}} khuk395bvm5xsj5gftk89rq64f7sg7b ausgeleuchtetes 0 3480101 9814388 2026-06-16T06:16:38Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sɡəˌlɔɪ̯çtətəs/}} * {{audio|de|De-ausgeleuchtetes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|ausgeleuchtet}}」的新頁面 9814388 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sɡəˌlɔɪ̯çtətəs/}} * {{audio|de|De-ausgeleuchtetes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|ausgeleuchtet}} 02ytrbrhkbfio12cixqob4dfmir5fib ausgeleuchtete 0 3480102 9814389 2026-06-16T06:16:42Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sɡəˌlɔɪ̯çtətə/}} * {{audio|de|De-ausgeleuchtete.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|ausgeleuchtet}}」的新頁面 9814389 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sɡəˌlɔɪ̯çtətə/}} * {{audio|de|De-ausgeleuchtete.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|ausgeleuchtet}} 8htpd6bgnraoft1rk1syudee1gcoual ausleuchtenden 0 3480103 9814390 2026-06-16T06:17:04Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtn̩dən/}} * {{audio|de|De-ausleuchtenden.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|ausleuchtend}}」的新頁面 9814390 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtn̩dən/}} * {{audio|de|De-ausleuchtenden.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|ausleuchtend}} qf6b9oowj0ow1n4bjedhk6ptxs72a8v ausleuchtendem 0 3480104 9814391 2026-06-16T06:17:07Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtn̩dəm/}} * {{audio|de|De-ausleuchtendem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|ausleuchtend}}」的新頁面 9814391 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtn̩dəm/}} * {{audio|de|De-ausleuchtendem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|ausleuchtend}} 764dmll4r4dy1xurxfgblcpif5jezjs ausleuchtender 0 3480105 9814392 2026-06-16T06:17:09Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtn̩dɐ/}} * {{audio|de|De-ausleuchtender.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|ausleuchtend}}」的新頁面 9814392 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtn̩dɐ/}} * {{audio|de|De-ausleuchtender.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|ausleuchtend}} owf7s72ehsly8zy6b21uk3im44bte6b ausleuchtende 0 3480106 9814393 2026-06-16T06:17:11Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtn̩də/}} * {{audio|de|De-ausleuchtende.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|ausleuchtend}}」的新頁面 9814393 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtn̩də/}} * {{audio|de|De-ausleuchtende.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|ausleuchtend}} dzgxss1umocyctqjmxs8onhem7glhbu ausleuchtendes 0 3480107 9814394 2026-06-16T06:17:13Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtn̩dəs/}} * {{audio|de|De-ausleuchtendes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|ausleuchtend}}」的新頁面 9814394 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtn̩dəs/}} * {{audio|de|De-ausleuchtendes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|ausleuchtend}} 1cyw8x1l2srbaejlsb6x31e9f6h7wum leuchte aus 0 3480108 9814395 2026-06-16T06:17:33Z Sayonzei 40728 創建德語「[[ausleuchten]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814395 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtə ˈaʊ̯s/}} * {{audio|de|De-leuchte aus.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|ausleuchten||1|s|pres|;|1//3|s|sub|I|;|s|imp}} dbemzhjp04ifj6irqysad2fcrq3t2wo leuchtest aus 0 3480109 9814396 2026-06-16T06:17:35Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtəst ˈaʊ̯s/}} * {{audio|de|De-leuchtest aus.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|ausleuchten||2|s|pres|;|2|s|sub|I}}」的新頁面 9814396 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtəst ˈaʊ̯s/}} * {{audio|de|De-leuchtest aus.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|ausleuchten||2|s|pres|;|2|s|sub|I}} 7x1t5c5qpr9g0lhifg8h0kjjcb0fcb0 leuchtet aus 0 3480110 9814397 2026-06-16T06:17:38Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtət ˈaʊ̯s/}} * {{audio|de|De-leuchtet aus.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|ausleuchten||2|p|pres|;|2|p|sub|I|;|3|s|pres|;|p|imp}}」的新頁面 9814397 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtət ˈaʊ̯s/}} * {{audio|de|De-leuchtet aus.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|ausleuchten||2|p|pres|;|2|p|sub|I|;|3|s|pres|;|p|imp}} 0kqby7kxjuxxqrwsybcrtuu9fia79fk leuchten aus 0 3480111 9814398 2026-06-16T06:17:40Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtn̩ ˈaʊ̯s/}} * {{audio|de|De-leuchten aus.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|ausleuchten||1//3|p|pres|;|1//3|p|sub|I}}」的新頁面 9814398 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtn̩ ˈaʊ̯s/}} * {{audio|de|De-leuchten aus.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|ausleuchten||1//3|p|pres|;|1//3|p|sub|I}} 2cfajwvvjcjwcfa8nz7lc5rob2k8t5m leucht aus 0 3480112 9814399 2026-06-16T06:17:41Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çt ˈaʊ̯s/}} * {{audio|de|De-leucht aus.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|ausleuchten||s|imp}}」的新頁面 9814399 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çt ˈaʊ̯s/}} * {{audio|de|De-leucht aus.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|ausleuchten||s|imp}} 7coms13pyid1f6rxyz6axxvolp07igz leuchtete aus 0 3480113 9814400 2026-06-16T06:17:54Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtətə ˈaʊ̯s/}} * {{audio|de|De-leuchtete aus.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|ausleuchten||1//3|s|pret|;|1//3|s|sub|II}}」的新頁面 9814400 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtətə ˈaʊ̯s/}} * {{audio|de|De-leuchtete aus.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|ausleuchten||1//3|s|pret|;|1//3|s|sub|II}} si3avs0kwh5b4n1muzvxicrvlqwry7r leuchteten aus 0 3480114 9814401 2026-06-16T06:17:55Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtətn̩ ˈaʊ̯s/}} * {{audio|de|De-leuchteten aus.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|ausleuchten||1//3|p|pret|;|1//3|p|sub|II}}」的新頁面 9814401 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtətn̩ ˈaʊ̯s/}} * {{audio|de|De-leuchteten aus.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|ausleuchten||1//3|p|pret|;|1//3|p|sub|II}} qfws3aztsjex16ck0a1qzfodkb0dmve leuchtetest aus 0 3480115 9814402 2026-06-16T06:17:56Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtətəst ˈaʊ̯s/}} * {{audio|de|De-leuchtetest aus.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|ausleuchten||2|s|pret|;|2|s|sub|II}}」的新頁面 9814402 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtətəst ˈaʊ̯s/}} * {{audio|de|De-leuchtetest aus.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|ausleuchten||2|s|pret|;|2|s|sub|II}} 0c0jd97ryrzsadpg7v417kd7xuqv88t leuchtetet aus 0 3480116 9814403 2026-06-16T06:17:58Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtətət ˈaʊ̯s/}} * {{audio|de|De-leuchtetet aus.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|ausleuchten||2|p|pret|;|2|p|sub|II}}」的新頁面 9814403 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˌlɔɪ̯çtətət ˈaʊ̯s/}} * {{audio|de|De-leuchtetet aus.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|ausleuchten||2|p|pret|;|2|p|sub|II}} e5uhulqhat1i5t58gs87ncfy0xjjazt ausleuchtest 0 3480117 9814404 2026-06-16T06:18:15Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtəst/}} * {{audio|de|De-ausleuchtest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|ausleuchten||2|s|dep|pres|;|2|s|dep|sub|I}}」的新頁面 9814404 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtəst/}} * {{audio|de|De-ausleuchtest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|ausleuchten||2|s|dep|pres|;|2|s|dep|sub|I}} rpf9ne83xr37j7dxaq1l4t7ebilr58p ausleuchtet 0 3480118 9814405 2026-06-16T06:18:17Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtət/}} * {{audio|de|De-ausleuchtet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|ausleuchten||dep|3|s|pres|;|dep|2|p|pres|;|dep|2|p|sub|I}}」的新頁面 9814405 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtət/}} * {{audio|de|De-ausleuchtet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|ausleuchten||dep|3|s|pres|;|dep|2|p|pres|;|dep|2|p|sub|I}} 91v7l6u1miknpiqgda25jc28v7h6wng ausleuchtete 0 3480119 9814406 2026-06-16T06:18:29Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtətə/}} * {{audio|de|De-ausleuchtete.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|ausleuchten||1//3|s|dep|pret|;|1//3|s|dep|sub|II}}」的新頁面 9814406 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtətə/}} * {{audio|de|De-ausleuchtete.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|ausleuchten||1//3|s|dep|pret|;|1//3|s|dep|sub|II}} 1b2z6mtom5y3twbj0hclgo58jv9x7sz ausleuchtetest 0 3480120 9814407 2026-06-16T06:18:31Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtətəst/}} * {{audio|de|De-ausleuchtetest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|ausleuchten||2|s|dep|pret|;|2|s|dep|sub|II}}」的新頁面 9814407 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtətəst/}} * {{audio|de|De-ausleuchtetest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|ausleuchten||2|s|dep|pret|;|2|s|dep|sub|II}} f9maeu8h9rearueiw35nky8bo9ai1kk ausleuchteten 0 3480121 9814408 2026-06-16T06:18:33Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtətn̩/}} * {{audio|de|De-ausleuchteten.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|ausleuchten||1//3|p|dep|pret|;|1//3|p|dep|sub|II}}」的新頁面 9814408 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtətn̩/}} * {{audio|de|De-ausleuchteten.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|ausleuchten||1//3|p|dep|pret|;|1//3|p|dep|sub|II}} hjgl6d1qdomelh6g93ud66cesfe3o17 ausleuchtetet 0 3480122 9814409 2026-06-16T06:18:35Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtətət/}} * {{audio|de|De-ausleuchtetet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|ausleuchten||2|p|dep|pret|;|2|p|dep|sub|II}}」的新頁面 9814409 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtətət/}} * {{audio|de|De-ausleuchtetet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|ausleuchten||2|p|dep|pret|;|2|p|dep|sub|II}} 4rq2nhu6a7039zpyimtdmfaoq0fbeni ausleuchte 0 3480123 9814410 2026-06-16T06:18:40Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtə/}} * {{audio|de|De-ausleuchte.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|ausleuchten||1|s|dep|pres|;|1//3|s|dep|sub|I}}」的新頁面 9814410 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈaʊ̯sˌlɔɪ̯çtə/}} * {{audio|de|De-ausleuchte.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|ausleuchten||1|s|dep|pres|;|1//3|s|dep|sub|I}} est1smtf59pal6ixmb9m0xx5sok1xk9 vernebelnd 0 3480124 9814413 2026-06-16T06:22:44Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩nt/}} * {{audio|de|De-vernebelnd.ogg|a=柏林}} ===分詞=== {{head|de|現在分詞}} # {{present participle of|de|vernebeln}} ====變格==== {{de-adecl}}」的新頁面 9814413 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩nt/}} * {{audio|de|De-vernebelnd.ogg|a=柏林}} ===分詞=== {{head|de|現在分詞}} # {{present participle of|de|vernebeln}} ====變格==== {{de-adecl}} 075ba6k938iotfdz2uor1k8946py09m vernebelnden 0 3480125 9814414 2026-06-16T06:23:01Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩ndn̩/}} * {{audio|de|De-vernebelnden.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|vernebelnd}}」的新頁面 9814414 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩ndn̩/}} * {{audio|de|De-vernebelnden.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|vernebelnd}} 6bg91bjtdxgh51m8rtpfy92zhmpad9y vernebelndem 0 3480126 9814415 2026-06-16T06:23:03Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩ndəm/}} * {{audio|de|De-vernebelndem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|vernebelnd}}」的新頁面 9814415 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩ndəm/}} * {{audio|de|De-vernebelndem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|vernebelnd}} q53ui6m9gbtpzpnrdprrqpu9a9trqgj vernebelnde 0 3480127 9814416 2026-06-16T06:23:05Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩ndə/}} * {{audio|de|De-vernebelnde.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|vernebelnd}}」的新頁面 9814416 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩ndə/}} * {{audio|de|De-vernebelnde.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|vernebelnd}} ga883d0ddo5q5pmzlxww0povfswg1ld vernebelndes 0 3480128 9814417 2026-06-16T06:23:07Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩ndəs/}} * {{audio|de|De-vernebelndes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|vernebelnd}}」的新頁面 9814417 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩ndəs/}} * {{audio|de|De-vernebelndes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|vernebelnd}} ci6f008rdwh1n3m2x4q3pu9u5asqvk7 vernebelnder 0 3480129 9814418 2026-06-16T06:23:14Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩ndɐ/}} * {{audio|de|De-vernebelnder.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|vernebelnd}}」的新頁面 9814418 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩ndɐ/}} * {{audio|de|De-vernebelnder.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|vernebelnd}} lu4ep0jkgql0eavn7339ttb5iwsunwh vernebelter 0 3480130 9814419 2026-06-16T06:23:29Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩tɐ/}} * {{audio|de|De-vernebelter.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|vernebelt}}」的新頁面 9814419 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩tɐ/}} * {{audio|de|De-vernebelter.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|vernebelt}} qmgugzjrvz6kydhu9j3bu5xm4m4bh71 vernebeltem 0 3480131 9814420 2026-06-16T06:23:31Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩təm/}} * {{audio|de|De-vernebeltem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|vernebelt}}」的新頁面 9814420 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩təm/}} * {{audio|de|De-vernebeltem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|vernebelt}} l4g2zn1nhwdvzv5wjat126lhc4vxoks vernebeltes 0 3480132 9814421 2026-06-16T06:23:33Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩təs/}} * {{audio|de|De-vernebeltes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|vernebelt}}」的新頁面 9814421 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩təs/}} * {{audio|de|De-vernebeltes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|vernebelt}} 0bb2du3ulg8skv7bul0616qtx4pzetg vernebelte 0 3480133 9814422 2026-06-16T06:23:45Z Sayonzei 40728 創建德語「[[vernebeln]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814422 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩tə/}} * {{audio|de|De-vernebelte.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||1//3|s|pret|;|1//3|s|sub|II}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|vernebelt}} iwf5tddryo32w16btmh64tibd8x9eyv vernebelten 0 3480134 9814423 2026-06-16T06:23:48Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩tn̩/}} * {{audio|de|De-vernebelten.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||1//3|p|pret|;|1//3|p|sub|II}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|vernebelt}}」的新頁面 9814423 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩tn̩/}} * {{audio|de|De-vernebelten.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||1//3|p|pret|;|1//3|p|sub|II}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|vernebelt}} sx1xfdyngbqs6qhcgeopkpaudvrgzy5 verneble 0 3480135 9814424 2026-06-16T06:23:58Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːblə/}} * {{audio|de|De-verneble.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||1|s|pres|;|1//3|s|sub|I|;|s|imp}}」的新頁面 9814424 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːblə/}} * {{audio|de|De-verneble.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||1|s|pres|;|1//3|s|sub|I|;|s|imp}} cndxso5y2l5ljgxzfooqlypa1odo5qh vernebele 0 3480136 9814425 2026-06-16T06:23:59Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbələ/}} * {{audio|de|De-vernebele.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||1|s|pres|;|1|p|sub|I|;|3|s|sub|I|;|s|imp}}」的新頁面 9814425 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbələ/}} * {{audio|de|De-vernebele.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||1|s|pres|;|1|p|sub|I|;|3|s|sub|I|;|s|imp}} gjfu8hcub3s4jqotdmk5bia01jslto1 vernebel 0 3480137 9814426 2026-06-16T06:24:01Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩/}} * {{audio|de|De-vernebel.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||1|s|pres|;|s|imp}}」的新頁面 9814426 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩/}} * {{audio|de|De-vernebel.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||1|s|pres|;|s|imp}} 05mw4uqync8ne22ckjno13k0fdcs0jp vernebelst 0 3480138 9814427 2026-06-16T06:24:02Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩st/}} * {{audio|de|De-vernebelst.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||2|s|pres}}」的新頁面 9814427 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩st/}} * {{audio|de|De-vernebelst.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||2|s|pres}} coeye13q9402bos5rdwkcvdvelv9kpn vernebeltest 0 3480139 9814428 2026-06-16T06:24:03Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩təst/}} * {{audio|de|De-vernebeltest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||2|s|pret|;|2|s|sub|II}}」的新頁面 9814428 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩təst/}} * {{audio|de|De-vernebeltest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||2|s|pret|;|2|s|sub|II}} b245dt7rx8m6zh2o4rdnhfknbfofsf1 vernebeltet 0 3480140 9814429 2026-06-16T06:24:05Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩tət/}} * {{audio|de|De-vernebeltet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||2|p|pret|;|2|p|sub|II}}」的新頁面 9814429 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbl̩tət/}} * {{audio|de|De-vernebeltet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||2|p|pret|;|2|p|sub|II}} 0igroemmcwwcqaldcfzna008soy8nua vernebelest 0 3480141 9814430 2026-06-16T06:24:19Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||2|s|sub|I}}」的新頁面 9814430 wikitext text/x-wiki ==德語== ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||2|s|sub|I}} po8m1jtqyx5ee7yx5if2pazj7mv5qph verneblest 0 3480142 9814431 2026-06-16T06:24:20Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbləst/}} * {{audio|de|De-verneblest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||2|s|sub|I}}」的新頁面 9814431 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːbləst/}} * {{audio|de|De-verneblest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||2|s|sub|I}} 9l0l3xidkwgelvo2wl2rpw2caphmp3s vernebelet 0 3480143 9814432 2026-06-16T06:24:22Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||2|p|sub|I}}」的新頁面 9814432 wikitext text/x-wiki ==德語== ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||2|p|sub|I}} 708nk9166ji954aoaunjdxh4tweav1j verneblet 0 3480144 9814433 2026-06-16T06:24:24Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːblət/}} * {{audio|de|De-verneblet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||2|p|sub|I}}」的新頁面 9814433 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/fɛɐ̯ˈneːblət/}} * {{audio|de|De-verneblet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|vernebeln||2|p|sub|I}} f023ko65lqicsvbwpjbn4ed1mwjwayu nebelnd 0 3480145 9814436 2026-06-16T06:26:24Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩nt/}} * {{audio|de|De-nebelnd.ogg|a=柏林}} ===分詞=== {{head|de|現在分詞}} # {{present participle of|de|nebeln}} ====變格==== {{de-adecl}}」的新頁面 9814436 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩nt/}} * {{audio|de|De-nebelnd.ogg|a=柏林}} ===分詞=== {{head|de|現在分詞}} # {{present participle of|de|nebeln}} ====變格==== {{de-adecl}} 5wfewnyczzhz5fuo1iqjsdfot5x001b genebelt 0 3480146 9814437 2026-06-16T06:26:26Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ɡəˈneːbl̩t/}} * {{audio|de|De-genebelt.ogg|a=柏林}} ===分詞=== {{head|de|過去分詞}} # {{past participle of|de|nebeln}} ====變格==== {{de-adecl}}」的新頁面 9814437 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ɡəˈneːbl̩t/}} * {{audio|de|De-genebelt.ogg|a=柏林}} ===分詞=== {{head|de|過去分詞}} # {{past participle of|de|nebeln}} ====變格==== {{de-adecl}} twfjlco03zxqe6y4qln8lttd6e43zvs nebelnden 0 3480147 9814438 2026-06-16T06:26:45Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩ndn̩/}} * {{audio|de|De-nebelnden.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|nebelnd}}」的新頁面 9814438 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩ndn̩/}} * {{audio|de|De-nebelnden.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|nebelnd}} 9wz2lewaqazlqf8yjsxl6vf71ekl4y1 nebelnder 0 3480148 9814439 2026-06-16T06:26:47Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩ndɐ/}} * {{audio|de|De-nebelnder.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|nebelnd}}」的新頁面 9814439 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩ndɐ/}} * {{audio|de|De-nebelnder.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|nebelnd}} 76n7nav3mtx5bq92blibv3r9izf68f9 nebelndem 0 3480149 9814440 2026-06-16T06:26:49Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩ndəm/}} * {{audio|de|De-nebelndem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|nebelnd}}」的新頁面 9814440 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩ndəm/}} * {{audio|de|De-nebelndem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|nebelnd}} sm184x45ca5orju7ee4cz3bgia93pm0 nebelnde 0 3480150 9814441 2026-06-16T06:26:51Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩ndə/}} * {{audio|de|De-nebelnde.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|nebelnd}}」的新頁面 9814441 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩ndə/}} * {{audio|de|De-nebelnde.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|nebelnd}} rid9vei7iaivmjdq8uz4ga5jkavqwxh nebelndes 0 3480151 9814442 2026-06-16T06:26:53Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩ndəs/}} * {{audio|de|De-nebelndes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|nebelnd}}」的新頁面 9814442 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩ndəs/}} * {{audio|de|De-nebelndes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|nebelnd}} q5d1r0o9nczsmgxu0nn5f9n2xl1jlce genebelter 0 3480152 9814443 2026-06-16T06:27:10Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ɡəˈneːbl̩tɐ/}} * {{audio|de|De-genebelter.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|genebelt}}」的新頁面 9814443 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ɡəˈneːbl̩tɐ/}} * {{audio|de|De-genebelter.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|genebelt}} n7yvtapfy0ju4grd80aaoy2vr1xk7g0 genebeltem 0 3480153 9814444 2026-06-16T06:27:11Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ɡəˈneːbl̩təm/}} * {{audio|de|De-genebeltem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|genebelt}}」的新頁面 9814444 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ɡəˈneːbl̩təm/}} * {{audio|de|De-genebeltem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|genebelt}} 5nis2a81fcejk0dp6yz2gx8avyu1i4v genebelten 0 3480154 9814445 2026-06-16T06:27:13Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ɡəˈneːbl̩tn̩/}} * {{audio|de|De-genebelten.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|genebelt}}」的新頁面 9814445 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ɡəˈneːbl̩tn̩/}} * {{audio|de|De-genebelten.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|genebelt}} cs2vnf9nd1tccnxtar7m80qa64b8gh5 genebelte 0 3480155 9814446 2026-06-16T06:27:16Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ɡəˈneːbl̩tə/}} * {{audio|de|De-genebelte.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|genebelt}}」的新頁面 9814446 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ɡəˈneːbl̩tə/}} * {{audio|de|De-genebelte.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|genebelt}} og9wckj4urbsrskhfsnxrdna25ez9de genebeltes 0 3480156 9814447 2026-06-16T06:27:19Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ɡəˈneːbl̩təs/}} * {{audio|de|De-genebeltes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|genebelt}}」的新頁面 9814447 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ɡəˈneːbl̩təs/}} * {{audio|de|De-genebeltes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|genebelt}} 69fx357lpjqynezugqq54yu8m3wlttf neble 0 3480157 9814451 2026-06-16T06:42:53Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːblə/}} * {{audio|de|De-neble.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||1|s|pres|;|s|imp|;|1//3|s|sub|I}}」的新頁面 9814451 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːblə/}} * {{audio|de|De-neble.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||1|s|pres|;|s|imp|;|1//3|s|sub|I}} 8kblj4qdct22gmh80zau9opnoiq1ie9 nebele 0 3480158 9814452 2026-06-16T06:42:54Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbələ/}} * {{audio|de|De-nebele.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||1|s|pres|;|s|imp|;|1//3|s|sub|I}}」的新頁面 9814452 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbələ/}} * {{audio|de|De-nebele.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||1|s|pres|;|s|imp|;|1//3|s|sub|I}} 6hyi83k0p2m3a338zqr4gu1f16vcdc6 nebelt 0 3480159 9814453 2026-06-16T06:42:56Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩t/}} * {{audio|de|De-nebelt.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||3|s|pres|;|2|p|pres|;|p|imp}}」的新頁面 9814453 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩t/}} * {{audio|de|De-nebelt.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||3|s|pres|;|2|p|pres|;|p|imp}} 6adjhe1wg9l7l5cg6mj61sbthhyspbw nebelst 0 3480160 9814454 2026-06-16T06:42:59Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩st/}} * {{audio|de|De-nebelst.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||2|s|pres}}」的新頁面 9814454 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩st/}} * {{audio|de|De-nebelst.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||2|s|pres}} o0pq985x79gsygwev8jotjo5r73lu7n nebelte 0 3480161 9814455 2026-06-16T06:43:03Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩tə/}} * {{audio|de|De-nebelte.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||1//3|s|pret|;|1//3|s|sub|II}}」的新頁面 9814455 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩tə/}} * {{audio|de|De-nebelte.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||1//3|s|pret|;|1//3|s|sub|II}} os153ydkdhi763n2qzh5anoh4zjixj2 nebeltest 0 3480162 9814456 2026-06-16T06:43:04Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩təst/}} * {{audio|de|De-nebeltest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||2|s|pret|;|2|s|sub|II}}」的新頁面 9814456 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩təst/}} * {{audio|de|De-nebeltest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||2|s|pret|;|2|s|sub|II}} mys57gx76b9jxx1bgli5h13j23g9fg1 nebelten 0 3480163 9814457 2026-06-16T06:43:24Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩tn̩/}} * {{audio|de|De-nebelten.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||1//3|p|pret|;|1//3|p|sub|II}}」的新頁面 9814457 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩tn̩/}} * {{audio|de|De-nebelten.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||1//3|p|pret|;|1//3|p|sub|II}} jdkrrghicax587opinc59qwshxwh35b nebeltet 0 3480164 9814458 2026-06-16T06:43:25Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩tət/}} * {{audio|de|De-nebeltet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||2|p|pret|;|2|p|sub|II}}」的新頁面 9814458 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩tət/}} * {{audio|de|De-nebeltet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||2|p|pret|;|2|p|sub|II}} tjwv8wszje135oh8fgv9j7r2umotmod nebelest 0 3480165 9814459 2026-06-16T06:43:29Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||2|s|sub|I}}」的新頁面 9814459 wikitext text/x-wiki ==德語== ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||2|s|sub|I}} dec2o08hbsyqksn2e9jixuql4y92yop neblest 0 3480166 9814460 2026-06-16T06:43:32Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbləst/}} * {{audio|de|De-neblest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||2|s|sub|I}}」的新頁面 9814460 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbləst/}} * {{audio|de|De-neblest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||2|s|sub|I}} ojlft0csqxqihbp6vahmymrkujs6l9t nebelet 0 3480167 9814461 2026-06-16T06:43:34Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||2|p|sub|I}}」的新頁面 9814461 wikitext text/x-wiki ==德語== ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||2|p|sub|I}} 7c2vaxeybpo3kz77toppy9c0o3rxdgg neblet 0 3480168 9814462 2026-06-16T06:43:37Z Sayonzei 40728 創建德語「[[nebeln]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814462 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːblət/}} * {{audio|de|De-neblet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{verb form of|de|nebeln||2|p|sub|I}} f75e8ec1z2w8j2pjqd3l3fnpm35af1e Nebels 0 3480169 9814463 2026-06-16T06:43:58Z Sayonzei 40728 創建德語「[[Nebel]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814463 wikitext text/x-wiki {{also|nebels}} ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩s/}} * {{audio|de|De-Nebels.ogg|a=柏林}} ===名詞=== {{head|de|名詞變格形}} # {{inflection of|de|Nebel||gen|s}} jm98wrlq87w7y6chsvliqwfm64ugucg Nebeln 0 3480170 9814464 2026-06-16T06:44:00Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「{{also|nebeln}} ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩n/}} * {{audio|de|De-Nebeln.ogg|a=柏林}} ===名詞=== {{head|de|名詞變格形|g=m}} # {{inflection of|de|Nebel||dat|p}}」的新頁面 9814464 wikitext text/x-wiki {{also|nebeln}} ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩n/}} * {{audio|de|De-Nebeln.ogg|a=柏林}} ===名詞=== {{head|de|名詞變格形|g=m}} # {{inflection of|de|Nebel||dat|p}} 9hv38st9m6m0ehyxlmb8h072glwuej6 nebeliger 0 3480171 9814468 2026-06-16T06:45:29Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪɡɐ/}} * {{audio|de|De-nebeliger.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|nebelig}}」的新頁面 9814468 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪɡɐ/}} * {{audio|de|De-nebeliger.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|nebelig}} 6lbt0y70uxt16qporyxap6vydbmjl1a nebeligen 0 3480172 9814469 2026-06-16T06:45:31Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪɡn̩/}} * {{audio|de|De-nebeligen.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|nebelig}}」的新頁面 9814469 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪɡn̩/}} * {{audio|de|De-nebeligen.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|nebelig}} 6m73az65bgnzl5ug557btdd9hemicxn nebeligem 0 3480173 9814470 2026-06-16T06:45:32Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪɡəm/}} * {{audio|de|De-nebeligem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|nebelig}}」的新頁面 9814470 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪɡəm/}} * {{audio|de|De-nebeligem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|nebelig}} 31t7k3t8gzvqc4nih97odve5o3uic2f nebelige 0 3480174 9814471 2026-06-16T06:45:33Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪɡə/}} * {{audio|de|De-nebelige.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|nebelig}}」的新頁面 9814471 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪɡə/}} * {{audio|de|De-nebelige.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|nebelig}} hkcc6frf3s7d0brgm2zepvdgo7q4tzh nebeliges 0 3480175 9814472 2026-06-16T06:45:35Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪɡəs/}} * {{audio|de|De-nebeliges.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|nebelig}}」的新頁面 9814472 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪɡəs/}} * {{audio|de|De-nebeliges.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|nebelig}} g3z8zptqnq1hg6ynr360lulk276x1yu nebeligerer 0 3480176 9814473 2026-06-16T06:45:51Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪɡəʁɐ/}} * {{audio|de|De-nebeligerer.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|nebelig}}」的新頁面 9814473 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪɡəʁɐ/}} * {{audio|de|De-nebeligerer.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|nebelig}} sriatd564bm0q7fi23qnbcw94r03s0x nebeligeren 0 3480177 9814474 2026-06-16T06:45:52Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪɡəʁən/}} * {{audio|de|De-nebeligeren.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|nebelig}}」的新頁面 9814474 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪɡəʁən/}} * {{audio|de|De-nebeligeren.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|nebelig}} s9js9bes7yvjvnj9hkmwfrc2c4eiq9q nebeligere 0 3480178 9814475 2026-06-16T06:45:54Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪɡəʁə/}} * {{audio|de|De-nebeligere.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|nebelig}}」的新頁面 9814475 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪɡəʁə/}} * {{audio|de|De-nebeligere.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|nebelig}} b0r9gjltb78p8s7zggl1uassmiidhq0 nebeligerem 0 3480179 9814476 2026-06-16T06:45:55Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪɡəʁəm/}} * {{audio|de|De-nebeligerem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|nebelig}}」的新頁面 9814476 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪɡəʁəm/}} * {{audio|de|De-nebeligerem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|nebelig}} 7rn7jle3t6wzx3v798wpici5sbwbzv8 nebeligeres 0 3480180 9814477 2026-06-16T06:45:57Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪɡəʁəs/}} * {{audio|de|De-nebeligeres.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|nebelig}}」的新頁面 9814477 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪɡəʁəs/}} * {{audio|de|De-nebeligeres.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|nebelig}} n0w6wa636a00orncm8ou2r1bf1mc8i5 nebeligster 0 3480181 9814478 2026-06-16T06:46:07Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪçstɐ/|/ˈneːbəlɪkstɐ/}} * {{audio|de|De-nebeligster.ogg|a=柏林}} * {{audio|de|De-nebeligster2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|nebelig}}」的新頁面 9814478 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪçstɐ/|/ˈneːbəlɪkstɐ/}} * {{audio|de|De-nebeligster.ogg|a=柏林}} * {{audio|de|De-nebeligster2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|nebelig}} t0d9lj6u1be46y2s78ogehgzkidlqqq nebeligsten 0 3480182 9814479 2026-06-16T06:46:10Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪçstn̩/|/ˈneːbəlɪkstn̩/}} * {{audio|de|De-nebeligsten.ogg|a=柏林}} * {{audio|de|De-nebeligsten2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級}} # {{superlative of|de|nebelig}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|nebelig}}」的新頁面 9814479 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪçstn̩/|/ˈneːbəlɪkstn̩/}} * {{audio|de|De-nebeligsten.ogg|a=柏林}} * {{audio|de|De-nebeligsten2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級}} # {{superlative of|de|nebelig}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|nebelig}} 3cecmzmx7c87b86kz2qpjexycpo2tp0 nebeligstem 0 3480183 9814480 2026-06-16T06:46:11Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪçstəm/|/ˈneːbəlɪkstəm/}} * {{audio|de|De-nebeligstem.ogg|a=柏林}} * {{audio|de|De-nebeligstem2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|nebelig}}」的新頁面 9814480 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪçstəm/|/ˈneːbəlɪkstəm/}} * {{audio|de|De-nebeligstem.ogg|a=柏林}} * {{audio|de|De-nebeligstem2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|nebelig}} cldkfppm08dx2l6azsppwik8aga6m2t nebeligste 0 3480184 9814481 2026-06-16T06:46:13Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪçstə/|/ˈneːbəlɪkstə/}} * {{audio|de|De-nebeligste.ogg|a=柏林}} * {{audio|de|De-nebeligste2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|nebelig}}」的新頁面 9814481 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪçstə/|/ˈneːbəlɪkstə/}} * {{audio|de|De-nebeligste.ogg|a=柏林}} * {{audio|de|De-nebeligste2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|nebelig}} mutxrmb2mavflly7qvziiy4z91f6qkd nebeligstes 0 3480185 9814482 2026-06-16T06:46:14Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪçstəs/|/ˈneːbəlɪkstəs/}} * {{audio|de|De-nebeligstes.ogg|a=柏林}} * {{audio|de|De-nebeligstes2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|nebelig}}」的新頁面 9814482 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbəlɪçstəs/|/ˈneːbəlɪkstəs/}} * {{audio|de|De-nebeligstes.ogg|a=柏林}} * {{audio|de|De-nebeligstes2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|nebelig}} fcd440jcsm0p3sxk4ij84637xhbi6ml nebliger 0 3480186 9814484 2026-06-16T06:47:30Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːblɪɡɐ/}} * {{audio|de|De-nebliger.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|neblig}}」的新頁面 9814484 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːblɪɡɐ/}} * {{audio|de|De-nebliger.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|neblig}} 6a6cblip7yqmty528sd1t8dosw9yh2g nebligem 0 3480187 9814485 2026-06-16T06:47:32Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːblɪɡəm/}} * {{audio|de|De-nebligem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|neblig}}」的新頁面 9814485 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːblɪɡəm/}} * {{audio|de|De-nebligem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|neblig}} ixrtdv9wtqslpudykskam6d02q2qpxl nebligen 0 3480188 9814486 2026-06-16T06:47:34Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːblɪɡn̩/}} * {{audio|de|De-nebligen.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|neblig}}」的新頁面 9814486 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːblɪɡn̩/}} * {{audio|de|De-nebligen.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|neblig}} r995gsrc4k494mrlwciob50vclesega neblige 0 3480189 9814487 2026-06-16T06:47:34Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːblɪɡə/}} * {{audio|de|De-neblige.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|neblig}} ===異序詞=== * {{anagrams|de|a=beegiln|Belgien|Giebeln|nebelig}}」的新頁面 9814487 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːblɪɡə/}} * {{audio|de|De-neblige.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|neblig}} ===異序詞=== * {{anagrams|de|a=beegiln|Belgien|Giebeln|nebelig}} 30297qrriarav0kpkcprxbkvv5zn1qf nebliges 0 3480190 9814488 2026-06-16T06:47:36Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːblɪɡəs/}} * {{audio|de|De-nebliges.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|neblig}}」的新頁面 9814488 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːblɪɡəs/}} * {{audio|de|De-nebliges.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|neblig}} 2dgtxjekrndgc1pcorfinwmb2etjv5c nebligerer 0 3480191 9814489 2026-06-16T06:47:46Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːblɪɡəʁɐ/}} * {{audio|de|De-nebligerer.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|neblig}}」的新頁面 9814489 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːblɪɡəʁɐ/}} * {{audio|de|De-nebligerer.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|neblig}} hpb5q72ex62jyuaxn3p8i0k83873ict nebligeren 0 3480192 9814490 2026-06-16T06:47:48Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːblɪɡəʁən/}} * {{audio|de|De-nebligeren.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|neblig}}」的新頁面 9814490 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːblɪɡəʁən/}} * {{audio|de|De-nebligeren.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|neblig}} 5pfkaxo2i9c3ro63zuaplt0w24nvifq nebligere 0 3480193 9814491 2026-06-16T06:47:49Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːblɪɡəʁə/}} * {{audio|de|De-nebligere.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|neblig}}」的新頁面 9814491 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːblɪɡəʁə/}} * {{audio|de|De-nebligere.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|neblig}} fxv1fy7pnw9jla0b1219iprgv2lff0n nebligerem 0 3480194 9814492 2026-06-16T06:47:51Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːblɪɡəʁəm/}} * {{audio|de|De-nebligerem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|neblig}}」的新頁面 9814492 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːblɪɡəʁəm/}} * {{audio|de|De-nebligerem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|neblig}} bddeoyfw4x1w3wokfrkamtkisq7bg7d nebligeres 0 3480195 9814493 2026-06-16T06:47:53Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːblɪɡəʁəs/}} * {{audio|de|De-nebligeres.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|neblig}}」的新頁面 9814493 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːblɪɡəʁəs/}} * {{audio|de|De-nebligeres.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|neblig}} ljtdq12sd59syszel4dzxs7u7ra01ti nebligster 0 3480196 9814494 2026-06-16T06:48:49Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːblɪçstɐ/|/ˈneːblɪkstɐ/}} * {{audio|de|De-nebligster.ogg|a=柏林}} * {{audio|de|De-nebligster2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|neblig}}」的新頁面 9814494 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːblɪçstɐ/|/ˈneːblɪkstɐ/}} * {{audio|de|De-nebligster.ogg|a=柏林}} * {{audio|de|De-nebligster2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|neblig}} crf69jk2dut8ba2a15ov6bg046sm7xy nebligsten 0 3480197 9814495 2026-06-16T06:48:51Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːblɪçstn̩/|/ˈneːblɪkstn̩/}} * {{audio|de|De-nebligsten.ogg|a=柏林}} * {{audio|de|De-nebligsten2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級}} # {{superlative of|de|neblig}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|neblig}}」的新頁面 9814495 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːblɪçstn̩/|/ˈneːblɪkstn̩/}} * {{audio|de|De-nebligsten.ogg|a=柏林}} * {{audio|de|De-nebligsten2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級}} # {{superlative of|de|neblig}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|neblig}} 6au70lum8ts2ux2dhcor57yhheo8cpj nebligstem 0 3480198 9814496 2026-06-16T06:48:52Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːblɪçstəm/|/ˈneːblɪkstəm/}} * {{audio|de|De-nebligstem.ogg|a=柏林}} * {{audio|de|De-nebligstem2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|neblig}}」的新頁面 9814496 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːblɪçstəm/|/ˈneːblɪkstəm/}} * {{audio|de|De-nebligstem.ogg|a=柏林}} * {{audio|de|De-nebligstem2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|neblig}} aehnh9fh7p7xvd98vox1uor48hiegtf nebligste 0 3480199 9814497 2026-06-16T06:48:54Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːblɪçstə/|/ˈneːblɪkstə/}} * {{audio|de|De-nebligste.ogg|a=柏林}} * {{audio|de|De-nebligste2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|neblig}}」的新頁面 9814497 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːblɪçstə/|/ˈneːblɪkstə/}} * {{audio|de|De-nebligste.ogg|a=柏林}} * {{audio|de|De-nebligste2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|neblig}} dymz5gaj3p7huougob17dwl384wluf9 nebligstes 0 3480200 9814498 2026-06-16T06:48:55Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːblɪçstəs/|/ˈneːblɪkstəs/}} * {{audio|de|De-nebligstes.ogg|a=柏林}} * {{audio|de|De-nebligstes2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|neblig}}」的新頁面 9814498 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːblɪçstəs/|/ˈneːblɪkstəs/}} * {{audio|de|De-nebligstes.ogg|a=柏林}} * {{audio|de|De-nebligstes2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|neblig}} 8uukh9isri7brdtp9mkyep4wqqvv349 nebelhaft 0 3480201 9814499 2026-06-16T06:50:03Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===詞源=== {{ety|de|:af|Nebel|-haft}} {{suffix|de|Nebel|haft}} ===發音=== * {{IPA|de|/ˈneːbl̩haft/}} * {{audio|de|De-nebelhaft.ogg|a=柏林}} ===形容詞=== {{de-adj|comp}} # [[霧]]狀的 # [[模糊]]的,[[朦朧]]的 ====變格==== {{de-adecl|comp}} ====近義詞==== * {{l|de|schemenhaft}} ===延伸閱讀=== * {{R:de:DWDS}} * {{R:de:UniLeipzig}}」的新頁面 9814499 wikitext text/x-wiki ==德語== ===詞源=== {{ety|de|:af|Nebel|-haft}} {{suffix|de|Nebel|haft}} ===發音=== * {{IPA|de|/ˈneːbl̩haft/}} * {{audio|de|De-nebelhaft.ogg|a=柏林}} ===形容詞=== {{de-adj|comp}} # [[霧]]狀的 # [[模糊]]的,[[朦朧]]的 ====變格==== {{de-adecl|comp}} ====近義詞==== * {{l|de|schemenhaft}} ===延伸閱讀=== * {{R:de:DWDS}} * {{R:de:UniLeipzig}} jexeg74xfe4qiy2nwsooyyyqebswyqm nebelhafter 0 3480202 9814500 2026-06-16T06:50:26Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftɐ/}} * {{audio|de|De-nebelhafter.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級}} # {{comparative of|de|nebelhaft}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|nebelhaft}}」的新頁面 9814500 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftɐ/}} * {{audio|de|De-nebelhafter.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級}} # {{comparative of|de|nebelhaft}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|nebelhaft}} g2yu4mf7gt8lnnbvrbwtju9kd0qz27i nebelhaften 0 3480203 9814501 2026-06-16T06:50:26Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftn̩/}} * {{audio|de|De-nebelhaften.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|nebelhaft}}」的新頁面 9814501 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftn̩/}} * {{audio|de|De-nebelhaften.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|nebelhaft}} 9f5gs03627ijdxcz91zpi8yupmw4ci9 nebelhaftem 0 3480204 9814502 2026-06-16T06:50:28Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəm/}} * {{audio|de|De-nebelhaftem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|nebelhaft}}」的新頁面 9814502 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəm/}} * {{audio|de|De-nebelhaftem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|nebelhaft}} deovhiv0e5qmwghfgnva4ij51mlsiab nebelhaftes 0 3480205 9814503 2026-06-16T06:50:29Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəs/}} * {{audio|de|De-nebelhaftes.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|nebelhaft}}」的新頁面 9814503 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəs/}} * {{audio|de|De-nebelhaftes.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|nebelhaft}} 3fev0krz4xag05lbddg4be5wfn2zb6q nebelhafte 0 3480206 9814504 2026-06-16T06:50:31Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftə/}} * {{audio|de|De-nebelhafte.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|nebelhaft}}」的新頁面 9814504 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftə/}} * {{audio|de|De-nebelhafte.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|nebelhaft}} tqieu6cqzhrbs4w6lewk0if31kgi1e8 nebelhafterer 0 3480207 9814505 2026-06-16T06:50:44Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəʁɐ/}} * {{audio|de|De-nebelhafterer.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|nebelhaft}}」的新頁面 9814505 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəʁɐ/}} * {{audio|de|De-nebelhafterer.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|nebelhaft}} s3tt4r6juockq2lknkcnjd9sqtk4x7i nebelhafteren 0 3480208 9814506 2026-06-16T06:50:46Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəʁən/}} * {{audio|de|De-nebelhafteren.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|nebelhaft}}」的新頁面 9814506 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəʁən/}} * {{audio|de|De-nebelhafteren.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|nebelhaft}} 4zaq9axibbl2udfltwhxm95x46fnsjx nebelhaftere 0 3480209 9814507 2026-06-16T06:50:47Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəʁə/}} * {{audio|de|De-nebelhaftere.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|nebelhaft}}」的新頁面 9814507 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəʁə/}} * {{audio|de|De-nebelhaftere.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|nebelhaft}} bm3i08pdaokzza0n9acptk55mx76cnv nebelhafterem 0 3480210 9814508 2026-06-16T06:50:49Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəʁəm/}} * {{audio|de|De-nebelhafterem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|nebelhaft}}」的新頁面 9814508 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəʁəm/}} * {{audio|de|De-nebelhafterem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|nebelhaft}} na12jumip5td2xw7jn9ldih7ia5orv4 nebelhafteres 0 3480211 9814509 2026-06-16T06:50:51Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəʁəs/}} * {{audio|de|De-nebelhafteres.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|nebelhaft}}」的新頁面 9814509 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəʁəs/}} * {{audio|de|De-nebelhafteres.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|nebelhaft}} rr9snim8dwzxkwtntn79af28o4p32wf nebelhaftester 0 3480212 9814510 2026-06-16T06:51:04Z Sayonzei 40728 創建德語「[[nebelhaft]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814510 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəstɐ/}} * {{audio|de|De-nebelhaftester.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|nebelhaft}} jastcujm5wihwhwjg5xx27iww0jykjq nebelhaftesten 0 3480213 9814511 2026-06-16T06:51:05Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəstn̩/}} * {{audio|de|De-nebelhaftesten.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級}} # {{superlative of|de|nebelhaft}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|nebelhaft}}」的新頁面 9814511 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəstn̩/}} * {{audio|de|De-nebelhaftesten.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級}} # {{superlative of|de|nebelhaft}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|nebelhaft}} g3l1e7wc0i8r3g701ltznlzz4a1iit3 nebelhaftestem 0 3480214 9814512 2026-06-16T06:51:06Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəstəm/}} * {{audio|de|De-nebelhaftestem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|nebelhaft}}」的新頁面 9814512 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəstəm/}} * {{audio|de|De-nebelhaftestem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|nebelhaft}} qvn5drb8l7aqz0d904n8qxb5s3l2zpy nebelhafteste 0 3480215 9814513 2026-06-16T06:51:07Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəstə/}} * {{audio|de|De-nebelhafteste.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|nebelhaft}}」的新頁面 9814513 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəstə/}} * {{audio|de|De-nebelhafteste.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|nebelhaft}} 5to5dbh7qywlmw7rraeixvp1bvu0dg5 nebelhaftestes 0 3480216 9814514 2026-06-16T06:51:10Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəstəs/}} * {{audio|de|De-nebelhaftestes.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|nebelhaft}}」的新頁面 9814514 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈneːbl̩haftəstəs/}} * {{audio|de|De-nebelhaftestes.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|nebelhaft}} 97bzk3s1gshpov4ld7hqa78dbprha05 schemenhafter 0 3480217 9814516 2026-06-16T06:52:56Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftɐ/}} * {{audio|de|De-schemenhafter.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級}} # {{comparative of|de|schemenhaft}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|schemenhaft}}」的新頁面 9814516 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftɐ/}} * {{audio|de|De-schemenhafter.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級}} # {{comparative of|de|schemenhaft}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|schemenhaft}} jzfe1hkuivwf8w9114viz5613ot7w92 schemenhaften 0 3480218 9814517 2026-06-16T06:52:58Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftn̩/}} * {{audio|de|De-schemenhaften.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|schemenhaft}}」的新頁面 9814517 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftn̩/}} * {{audio|de|De-schemenhaften.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|schemenhaft}} qhecn69l9rtm7joisj0xwc1bjwntj1q schemenhaftem 0 3480219 9814518 2026-06-16T06:52:59Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəm/}} * {{audio|de|De-schemenhaftem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|schemenhaft}}」的新頁面 9814518 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəm/}} * {{audio|de|De-schemenhaftem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|schemenhaft}} iknzznttnpwyyiqrjo744ecv6pf5xcu schemenhafte 0 3480220 9814519 2026-06-16T06:53:00Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftə/}} * {{audio|de|De-schemenhafte.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|schemenhaft}}」的新頁面 9814519 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftə/}} * {{audio|de|De-schemenhafte.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|schemenhaft}} dklhkrp81jc55wwd5ibd7dcbe2yzcun schemenhaftes 0 3480221 9814520 2026-06-16T06:53:02Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəs/}} * {{audio|de|De-schemenhaftes.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|schemenhaft}}」的新頁面 9814520 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəs/}} * {{audio|de|De-schemenhaftes.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|schemenhaft}} 0lz0ey7vs2p6xene1pea8ujtoawuakn schemenhafterer 0 3480222 9814521 2026-06-16T06:53:15Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəʁɐ/}} * {{audio|de|De-schemenhafterer.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|schemenhaft}}」的新頁面 9814521 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəʁɐ/}} * {{audio|de|De-schemenhafterer.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|schemenhaft}} ehqc09uay6qhqojymr0xr9ood59kic8 schemenhafteren 0 3480223 9814522 2026-06-16T06:53:16Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəʁən/}} * {{audio|de|De-schemenhafteren.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|schemenhaft}}」的新頁面 9814522 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəʁən/}} * {{audio|de|De-schemenhafteren.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|schemenhaft}} 6j0sc0qvusvp9ki9md1rcjz3fojnlkx schemenhafterem 0 3480224 9814523 2026-06-16T06:53:17Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəʁəm/}} * {{audio|de|De-schemenhafterem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|schemenhaft}}」的新頁面 9814523 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəʁəm/}} * {{audio|de|De-schemenhafterem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|schemenhaft}} 4nxnecsaja6c56yncjucd9e2r9k937m schemenhaftere 0 3480225 9814524 2026-06-16T06:53:19Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəʁə/}} * {{audio|de|De-schemenhaftere.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|schemenhaft}}」的新頁面 9814524 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəʁə/}} * {{audio|de|De-schemenhaftere.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|schemenhaft}} py3jut6aa5n8kjfq5tyw5iie7hyi33j schemenhafteres 0 3480226 9814525 2026-06-16T06:53:20Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəʁəs/}} * {{audio|de|De-schemenhafteres.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|schemenhaft}}」的新頁面 9814525 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəʁəs/}} * {{audio|de|De-schemenhafteres.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|schemenhaft}} 1a3dgetq518zhkr49kjbkhynq1u2q5n schemenhaftester 0 3480227 9814526 2026-06-16T06:53:31Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəstɐ/}} * {{audio|de|De-schemenhaftester.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|schemenhaft}}」的新頁面 9814526 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəstɐ/}} * {{audio|de|De-schemenhaftester.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|schemenhaft}} 0whkv5byxt7gwq1c5gbgl8k6epaj8w3 schemenhaftesten 0 3480228 9814527 2026-06-16T06:53:32Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəstn̩/}} * {{audio|de|De-schemenhaftesten.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級}} # {{superlative of|de|schemenhaft}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|schemenhaft}}」的新頁面 9814527 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəstn̩/}} * {{audio|de|De-schemenhaftesten.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級}} # {{superlative of|de|schemenhaft}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|schemenhaft}} 4k7vd8bha6wtfxk1vdrwfioe5emmofb schemenhaftestem 0 3480229 9814528 2026-06-16T06:53:33Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəstəm/}} * {{audio|de|De-schemenhaftestem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|schemenhaft}}」的新頁面 9814528 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəstəm/}} * {{audio|de|De-schemenhaftestem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|schemenhaft}} fa0tsucsn4cqo4b759lvscl4j32ohjs schemenhafteste 0 3480230 9814529 2026-06-16T06:53:34Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəstə/}} * {{audio|de|De-schemenhafteste.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|schemenhaft}}」的新頁面 9814529 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəstə/}} * {{audio|de|De-schemenhafteste.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|schemenhaft}} g5941fngdcu8z5h7ee0xqf48glsss1z schemenhaftestes 0 3480231 9814530 2026-06-16T06:53:36Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəstəs/}} * {{audio|de|De-schemenhaftestes.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|schemenhaft}}」的新頁面 9814530 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʃeːmənhaftəstəs/}} * {{audio|de|De-schemenhaftestes.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|schemenhaft}} g0r49y80227op5ya8yvwoeznpvbmvvz unmissverständlicher 0 3480232 9814532 2026-06-16T06:56:07Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçɐ/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçɐ/}} * {{audio|de|De-unmissverständlicher.ogg|a=柏林}} * {{audio|de|De-unmissverständlicher2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級}} # {{comparative of|de|unmissverständlich}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|unmissverständlich}}」的新頁面 9814532 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçɐ/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçɐ/}} * {{audio|de|De-unmissverständlicher.ogg|a=柏林}} * {{audio|de|De-unmissverständlicher2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級}} # {{comparative of|de|unmissverständlich}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|unmissverständlich}} 8qg0ncz6vtqcvgb3xckfayemijbyy3q unmissverständlichen 0 3480233 9814533 2026-06-16T06:56:29Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçn̩/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçn̩/}} * {{audio|de|De-unmissverständlichen.ogg|a=柏林}} * {{audio|de|De-unmissverständlichen2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|unmissverständlich}}」的新頁面 9814533 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçn̩/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçn̩/}} * {{audio|de|De-unmissverständlichen.ogg|a=柏林}} * {{audio|de|De-unmissverständlichen2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|unmissverständlich}} m2ydx98di2ehrwa8nmpc0u5y21779xm unmissverständlichem 0 3480234 9814534 2026-06-16T06:56:31Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçm̩/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçm̩/}} * {{audio|de|De-unmissverständlichem.ogg|a=柏林}} * {{audio|de|De-unmissverständlichem2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|unmissverständlich}}」的新頁面 9814534 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçm̩/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçm̩/}} * {{audio|de|De-unmissverständlichem.ogg|a=柏林}} * {{audio|de|De-unmissverständlichem2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|unmissverständlich}} j3dahcbiw99oiit1guke24dtjvtw40n unmissverständliche 0 3480235 9814535 2026-06-16T06:56:32Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçə/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçə/}} * {{audio|de|De-unmissverständliche.ogg|a=柏林}} * {{audio|de|De-unmissverständliche2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|unmissverständlich}}」的新頁面 9814535 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçə/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçə/}} * {{audio|de|De-unmissverständliche.ogg|a=柏林}} * {{audio|de|De-unmissverständliche2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|unmissverständlich}} a1h2gtczmblhnamj6j928yxbih7hl3e unmissverständliches 0 3480236 9814536 2026-06-16T06:56:35Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçəs/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçəs/}} * {{audio|de|De-unmissverständliches.ogg|a=柏林}} * {{audio|de|De-unmissverständliches2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|unmissverständlich}}」的新頁面 9814536 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçəs/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçəs/}} * {{audio|de|De-unmissverständliches.ogg|a=柏林}} * {{audio|de|De-unmissverständliches2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|unmissverständlich}} 11qvte0tfn0zrxc7ovxqlws4rfkkm9p unmissverständlicherer 0 3480237 9814537 2026-06-16T06:56:50Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçəʁɐ/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçəʁɐ/}} * {{audio|de|De-unmissverständlicherer.ogg|a=柏林}} * {{audio|de|De-unmissverständlicherer2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|unmissverständlich}}」的新頁面 9814537 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçəʁɐ/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçəʁɐ/}} * {{audio|de|De-unmissverständlicherer.ogg|a=柏林}} * {{audio|de|De-unmissverständlicherer2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|unmissverständlich}} 4854msybnu02drt8v63xuc0l1q29t0u unmissverständlicherem 0 3480238 9814538 2026-06-16T06:56:53Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçəʁəm/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçəʁəm/}} * {{audio|de|De-unmissverständlicherem.ogg|a=柏林}} * {{audio|de|De-unmissverständlicherem2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|unmissverständlich}}」的新頁面 9814538 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçəʁəm/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçəʁəm/}} * {{audio|de|De-unmissverständlicherem.ogg|a=柏林}} * {{audio|de|De-unmissverständlicherem2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|unmissverständlich}} nal2en7nd14eysi9lm5sv05o1htupu0 unmissverständlicheren 0 3480239 9814539 2026-06-16T06:56:56Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçəʁən/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçəʁən/}} * {{audio|de|De-unmissverständlicheren.ogg|a=柏林}} * {{audio|de|De-unmissverständlicheren2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|unmissverständlich}}」的新頁面 9814539 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçəʁən/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçəʁən/}} * {{audio|de|De-unmissverständlicheren.ogg|a=柏林}} * {{audio|de|De-unmissverständlicheren2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|unmissverständlich}} h18haf85j04p3u9isq5z1x9kan8omti unmissverständlichere 0 3480240 9814540 2026-06-16T06:56:59Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçəʁə/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçəʁə/}} * {{audio|de|De-unmissverständlichere.ogg|a=柏林}} * {{audio|de|De-unmissverständlichere2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|unmissverständlich}}」的新頁面 9814540 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçəʁə/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçəʁə/}} * {{audio|de|De-unmissverständlichere.ogg|a=柏林}} * {{audio|de|De-unmissverständlichere2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|unmissverständlich}} k0eqvz9e8vwq37b9e0mr7j4dr4rlmbt unmissverständlicheres 0 3480241 9814541 2026-06-16T06:57:02Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçəʁəs/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçəʁəs/}} * {{audio|de|De-unmissverständlicheres.ogg|a=柏林}} * {{audio|de|De-unmissverständlicheres2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|unmissverständlich}}」的新頁面 9814541 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçəʁəs/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçəʁəs/}} * {{audio|de|De-unmissverständlicheres.ogg|a=柏林}} * {{audio|de|De-unmissverständlicheres2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|unmissverständlich}} nn3g1w5q4c929nra8gbet5u75dc1b4d unmissverständlichster 0 3480242 9814542 2026-06-16T06:57:17Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçstɐ/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçstɐ/}} * {{audio|de|De-unmissverständlichster.ogg|a=柏林}} * {{audio|de|De-unmissverständlichster2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|unmissverständlich}}」的新頁面 9814542 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçstɐ/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçstɐ/}} * {{audio|de|De-unmissverständlichster.ogg|a=柏林}} * {{audio|de|De-unmissverständlichster2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|unmissverständlich}} 3m0bxq2uxl68esxrrgohl9ywuznn7zk unmissverständlichsten 0 3480243 9814543 2026-06-16T06:57:23Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçstn̩/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçstn̩/}} * {{audio|de|De-unmissverständlichsten.ogg|a=柏林}} * {{audio|de|De-unmissverständlichsten2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級}} # {{superlative of|de|unmissverständlich}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|unmissverständlich}}」的新頁面 9814543 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçstn̩/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçstn̩/}} * {{audio|de|De-unmissverständlichsten.ogg|a=柏林}} * {{audio|de|De-unmissverständlichsten2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級}} # {{superlative of|de|unmissverständlich}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|unmissverständlich}} 97z4whgz4g5pzuoqvoubub2ktorm0u8 unmissverständlichstem 0 3480244 9814544 2026-06-16T06:57:27Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçstəm/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçstəm/}} * {{audio|de|De-unmissverständlichstem.ogg|a=柏林}} * {{audio|de|De-unmissverständlichstem2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|unmissverständlich}}」的新頁面 9814544 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçstəm/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçstəm/}} * {{audio|de|De-unmissverständlichstem.ogg|a=柏林}} * {{audio|de|De-unmissverständlichstem2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|unmissverständlich}} i3lv4nahq2l8803in16jv1z1zp02qci unmissverständlichste 0 3480245 9814545 2026-06-16T06:57:31Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçstə/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçstə/}} * {{audio|de|De-unmissverständlichste.ogg|a=柏林}} * {{audio|de|De-unmissverständlichste2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|unmissverständlich}}」的新頁面 9814545 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçstə/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçstə/}} * {{audio|de|De-unmissverständlichste.ogg|a=柏林}} * {{audio|de|De-unmissverständlichste2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|unmissverständlich}} nv3ximtz7bhsdaz5ghhom2jf5umocro unmissverständlichstes 0 3480246 9814546 2026-06-16T06:57:34Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçstəs/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçstəs/}} * {{audio|de|De-unmissverständlichstes.ogg|a=柏林}} * {{audio|de|De-unmissverständlichstes2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|unmissverständlich}}」的新頁面 9814546 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈʊnmɪsfɛɐ̯ˌʃtɛntlɪçstəs/|/ʊnmɪsfɛɐ̯ˈʃtɛntlɪçstəs/}} * {{audio|de|De-unmissverständlichstes.ogg|a=柏林}} * {{audio|de|De-unmissverständlichstes2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|unmissverständlich}} pdyoujqp5nvyn46w9gu4qce4bgv7w75 unmißverständlicher 0 3480247 9814548 2026-06-16T06:58:15Z Sayonzei 40728 增加德語「[[unmißverständlich]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814548 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞比較級}} # {{comparative of|de|unmißverständlich}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|unmißverständlich}} 5bn7kshecdgyuhga4pewdos691h647m unmißverständlichen 0 3480248 9814549 2026-06-16T06:58:18Z Sayonzei 40728 增加德語「[[unmißverständlich]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814549 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|unmißverständlich}} 57avpro8l93z4g4ik8dmnhsx2l48gny unmißverständliche 0 3480249 9814550 2026-06-16T06:58:22Z Sayonzei 40728 增加德語「[[unmißverständlich]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814550 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|unmißverständlich}} 57avpro8l93z4g4ik8dmnhsx2l48gny unmißverständliches 0 3480250 9814551 2026-06-16T06:58:24Z Sayonzei 40728 增加德語「[[unmißverständlich]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814551 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|unmißverständlich}} 57avpro8l93z4g4ik8dmnhsx2l48gny unmißverständlichem 0 3480251 9814552 2026-06-16T06:58:29Z Sayonzei 40728 增加德語「[[unmißverständlich]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814552 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|unmißverständlich}} 57avpro8l93z4g4ik8dmnhsx2l48gny unmißverständlicherer 0 3480252 9814553 2026-06-16T06:58:45Z Sayonzei 40728 增加德語「[[unmißverständlich]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814553 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|unmißverständlich}} bwx9lvrjlzbu3cpila0kg9b74tyv5w1 unmißverständlicheren 0 3480253 9814554 2026-06-16T06:58:49Z Sayonzei 40728 增加德語「[[unmißverständlich]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814554 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|unmißverständlich}} bwx9lvrjlzbu3cpila0kg9b74tyv5w1 unmißverständlicherem 0 3480254 9814555 2026-06-16T06:58:53Z Sayonzei 40728 增加德語「[[unmißverständlich]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814555 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|unmißverständlich}} bwx9lvrjlzbu3cpila0kg9b74tyv5w1 unmißverständlichere 0 3480255 9814556 2026-06-16T06:58:58Z Sayonzei 40728 增加德語「[[unmißverständlich]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814556 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|unmißverständlich}} bwx9lvrjlzbu3cpila0kg9b74tyv5w1 unmißverständlicheres 0 3480256 9814557 2026-06-16T06:59:02Z Sayonzei 40728 增加德語「[[unmißverständlich]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814557 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|unmißverständlich}} bwx9lvrjlzbu3cpila0kg9b74tyv5w1 unmißverständlichster 0 3480257 9814558 2026-06-16T06:59:47Z Sayonzei 40728 增加德語「[[unmißverständlich]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814558 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|unmißverständlich}} a5q7j78xwdlcqgwy7liqsyivkdf17uo unmißverständlichsten 0 3480258 9814559 2026-06-16T06:59:51Z Sayonzei 40728 增加德語「[[unmißverständlich]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814559 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞最高級}} # {{superlative of|de|unmißverständlich}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|unmißverständlich}} qjbrfpx11hx59af6srv99v0o6xh303n unmißverständlichstem 0 3480259 9814560 2026-06-16T06:59:55Z Sayonzei 40728 增加德語「[[unmißverständlich]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814560 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|unmißverständlich}} a5q7j78xwdlcqgwy7liqsyivkdf17uo unmißverständlichste 0 3480260 9814561 2026-06-16T06:59:59Z Sayonzei 40728 增加德語「[[unmißverständlich]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814561 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|unmißverständlich}} a5q7j78xwdlcqgwy7liqsyivkdf17uo unmißverständlichstes 0 3480261 9814562 2026-06-16T07:00:02Z Sayonzei 40728 增加德語「[[unmißverständlich]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814562 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|unmißverständlich}} a5q7j78xwdlcqgwy7liqsyivkdf17uo doppeldeutiger 0 3480262 9814564 2026-06-16T07:01:42Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪɡɐ/}} * {{audio|de|De-doppeldeutiger.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級}} # {{comparative of|de|doppeldeutig}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|doppeldeutig}}」的新頁面 9814564 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪɡɐ/}} * {{audio|de|De-doppeldeutiger.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級}} # {{comparative of|de|doppeldeutig}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|doppeldeutig}} 4dkwdh96i6m5xtevzwlv46hx1831q9b doppeldeutigem 0 3480263 9814565 2026-06-16T07:01:42Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪɡəm/}} * {{audio|de|De-doppeldeutigem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|doppeldeutig}}」的新頁面 9814565 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪɡəm/}} * {{audio|de|De-doppeldeutigem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|doppeldeutig}} aqvsc6ovn52nhf7vtqbewxr21y5jgez doppeldeutigen 0 3480264 9814566 2026-06-16T07:01:44Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪɡn̩/}} * {{audio|de|De-doppeldeutigen.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|doppeldeutig}}」的新頁面 9814566 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪɡn̩/}} * {{audio|de|De-doppeldeutigen.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|doppeldeutig}} dvcruqbyiy17g0n0ozvkrpnvdhg13le doppeldeutiges 0 3480265 9814567 2026-06-16T07:01:46Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪɡəs/}} * {{audio|de|De-doppeldeutiges.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|doppeldeutig}}」的新頁面 9814567 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪɡəs/}} * {{audio|de|De-doppeldeutiges.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|doppeldeutig}} 3fzc7j5qdchrk5r89owh9q6liuilehn doppeldeutige 0 3480266 9814568 2026-06-16T07:01:46Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪɡə/}} * {{audio|de|De-doppeldeutige.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|doppeldeutig}}」的新頁面 9814568 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪɡə/}} * {{audio|de|De-doppeldeutige.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|doppeldeutig}} 1h9lchgn97ot21rduyn1rgxiht4ot86 doppeldeutigerer 0 3480267 9814569 2026-06-16T07:02:00Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪɡəʁɐ/}} * {{audio|de|De-doppeldeutigerer.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|doppeldeutig}}」的新頁面 9814569 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪɡəʁɐ/}} * {{audio|de|De-doppeldeutigerer.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|doppeldeutig}} o87t6pqsxqru1oyjthtqhz1g9cx6qb7 doppeldeutigeren 0 3480268 9814570 2026-06-16T07:02:02Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪɡəʁən/}} * {{audio|de|De-doppeldeutigeren.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|doppeldeutig}}」的新頁面 9814570 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪɡəʁən/}} * {{audio|de|De-doppeldeutigeren.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|doppeldeutig}} 23m8l3144545u13q6tfhi9odegs55hp doppeldeutigerem 0 3480269 9814571 2026-06-16T07:02:03Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪɡəʁəm/}} * {{audio|de|De-doppeldeutigerem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|doppeldeutig}}」的新頁面 9814571 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪɡəʁəm/}} * {{audio|de|De-doppeldeutigerem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|doppeldeutig}} 2c6f9wb3sc3fmlbs0w4mm29vp345f8t doppeldeutigere 0 3480270 9814572 2026-06-16T07:02:05Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪɡəʁə/}} * {{audio|de|De-doppeldeutigere.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|doppeldeutig}}」的新頁面 9814572 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪɡəʁə/}} * {{audio|de|De-doppeldeutigere.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|doppeldeutig}} dhp5jwqdtsl8c7v07ioyza3evzeym4z doppeldeutigeres 0 3480271 9814573 2026-06-16T07:02:07Z Sayonzei 40728 創建德語「[[doppeldeutig]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814573 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪɡəʁəs/}} * {{audio|de|De-doppeldeutigeres.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|doppeldeutig}} hj2e3mnvxlkv90vdydsdq7j3rab2jqa doppeldeutigster 0 3480272 9814574 2026-06-16T07:02:19Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪçstɐ/|/ˈdɔpl̩ˌdɔɪ̯tɪkstɐ/}} * {{audio|de|De-doppeldeutigster.ogg|a=柏林}} * {{audio|de|De-doppeldeutigster2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|doppeldeutig}}」的新頁面 9814574 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪçstɐ/|/ˈdɔpl̩ˌdɔɪ̯tɪkstɐ/}} * {{audio|de|De-doppeldeutigster.ogg|a=柏林}} * {{audio|de|De-doppeldeutigster2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|doppeldeutig}} eur6ij6ykpeyvofe910n8irrysd37p1 doppeldeutigstem 0 3480273 9814575 2026-06-16T07:02:20Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪçstəm/|/ˈdɔpl̩ˌdɔɪ̯tɪkstəm/}} * {{audio|de|De-doppeldeutigstem.ogg|a=柏林}} * {{audio|de|De-doppeldeutigstem2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|doppeldeutig}}」的新頁面 9814575 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪçstəm/|/ˈdɔpl̩ˌdɔɪ̯tɪkstəm/}} * {{audio|de|De-doppeldeutigstem.ogg|a=柏林}} * {{audio|de|De-doppeldeutigstem2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|doppeldeutig}} huu9vpbquarx3s2boog8txqjmk6o016 doppeldeutigsten 0 3480274 9814576 2026-06-16T07:02:22Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪçstn̩/|/ˈdɔpl̩ˌdɔɪ̯tɪkstn̩/}} * {{audio|de|De-doppeldeutigsten.ogg|a=柏林}} * {{audio|de|De-doppeldeutigsten2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級}} # {{superlative of|de|doppeldeutig}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|doppeldeutig}}」的新頁面 9814576 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪçstn̩/|/ˈdɔpl̩ˌdɔɪ̯tɪkstn̩/}} * {{audio|de|De-doppeldeutigsten.ogg|a=柏林}} * {{audio|de|De-doppeldeutigsten2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級}} # {{superlative of|de|doppeldeutig}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|doppeldeutig}} awsd9lhigblz8l2ymrfdtg69sfrdz6l doppeldeutigstes 0 3480275 9814577 2026-06-16T07:02:23Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪçstəs/|/ˈdɔpl̩ˌdɔɪ̯tɪkstəs/}} * {{audio|de|De-doppeldeutigstes.ogg|a=柏林}} * {{audio|de|De-doppeldeutigstes2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|doppeldeutig}}」的新頁面 9814577 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪçstəs/|/ˈdɔpl̩ˌdɔɪ̯tɪkstəs/}} * {{audio|de|De-doppeldeutigstes.ogg|a=柏林}} * {{audio|de|De-doppeldeutigstes2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|doppeldeutig}} de9u61o1kn9isr3w9w4yoz0f1wz8q63 doppeldeutigste 0 3480276 9814578 2026-06-16T07:02:25Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪçstə/|/ˈdɔpl̩ˌdɔɪ̯tɪkstə/}} * {{audio|de|De-doppeldeutigste.ogg|a=柏林}} * {{audio|de|De-doppeldeutigste2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|doppeldeutig}}」的新頁面 9814578 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈdɔpl̩ˌdɔɪ̯tɪçstə/|/ˈdɔpl̩ˌdɔɪ̯tɪkstə/}} * {{audio|de|De-doppeldeutigste.ogg|a=柏林}} * {{audio|de|De-doppeldeutigste2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|doppeldeutig}} 4f38a2ueg9by1zavgwebfqoz0wjzbps mehrdeutiger 0 3480277 9814580 2026-06-16T07:04:34Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈmeːɐ̯ˌdɔɪ̯tɪɡɐ/}} * {{audio|de|De-mehrdeutiger.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級}} # {{comparative of|de|mehrdeutig}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|mehrdeutig}}」的新頁面 9814580 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈmeːɐ̯ˌdɔɪ̯tɪɡɐ/}} * {{audio|de|De-mehrdeutiger.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級}} # {{comparative of|de|mehrdeutig}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|mehrdeutig}} 6owqu1m4ehuhyqqwnm3yj0t0fcr1ljt mehrdeutigen 0 3480278 9814581 2026-06-16T07:04:35Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈmeːɐ̯ˌdɔɪ̯tɪɡn̩/}} * {{audio|de|De-mehrdeutigen.ogg|a=柏林}} * {{audio|de|De-mehrdeutigen2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|mehrdeutig}}」的新頁面 9814581 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈmeːɐ̯ˌdɔɪ̯tɪɡn̩/}} * {{audio|de|De-mehrdeutigen.ogg|a=柏林}} * {{audio|de|De-mehrdeutigen2.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|mehrdeutig}} a9jww53kfiv4w9ax2ixzgg3xal88mct mehrdeutigem 0 3480279 9814582 2026-06-16T07:04:36Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈmeːɐ̯ˌdɔɪ̯tɪɡəm/}} * {{audio|de|De-mehrdeutigem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|mehrdeutig}}」的新頁面 9814582 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈmeːɐ̯ˌdɔɪ̯tɪɡəm/}} * {{audio|de|De-mehrdeutigem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|mehrdeutig}} q8w453n6ffd4ekquhftsmr1wvqq4dh8 mehrdeutiges 0 3480280 9814583 2026-06-16T07:04:38Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈmeːɐ̯ˌdɔɪ̯tɪɡəs/}} * {{audio|de|De-mehrdeutiges.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|mehrdeutig}}」的新頁面 9814583 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈmeːɐ̯ˌdɔɪ̯tɪɡəs/}} * {{audio|de|De-mehrdeutiges.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|mehrdeutig}} gr3dhipdfgmvuffev92d20d5zrlwapc mehrdeutige 0 3480281 9814584 2026-06-16T07:04:39Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈmeːɐ̯ˌdɔɪ̯tɪɡə/}} * {{audio|de|De-mehrdeutige.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|mehrdeutig}}」的新頁面 9814584 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈmeːɐ̯ˌdɔɪ̯tɪɡə/}} * {{audio|de|De-mehrdeutige.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|mehrdeutig}} blxl7zlh2qgbd41cq4kippupwzsqxtl mehrdeutigerer 0 3480282 9814585 2026-06-16T07:04:49Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|mehrdeutig}}」的新頁面 9814585 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|mehrdeutig}} 9c250jlgcsu71a85ym4yiy1p7mwqhbf mehrdeutigerem 0 3480283 9814586 2026-06-16T07:04:51Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|mehrdeutig}}」的新頁面 9814586 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|mehrdeutig}} 9c250jlgcsu71a85ym4yiy1p7mwqhbf mehrdeutigeren 0 3480284 9814587 2026-06-16T07:04:52Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|mehrdeutig}}」的新頁面 9814587 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|mehrdeutig}} 9c250jlgcsu71a85ym4yiy1p7mwqhbf mehrdeutigeres 0 3480285 9814588 2026-06-16T07:04:54Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|mehrdeutig}}」的新頁面 9814588 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|mehrdeutig}} 9c250jlgcsu71a85ym4yiy1p7mwqhbf mehrdeutigere 0 3480286 9814589 2026-06-16T07:04:55Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|mehrdeutig}}」的新頁面 9814589 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|mehrdeutig}} 9c250jlgcsu71a85ym4yiy1p7mwqhbf mehrdeutigster 0 3480287 9814590 2026-06-16T07:05:05Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|mehrdeutig}}」的新頁面 9814590 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|mehrdeutig}} a68qmp8kv6mv7nv4oemy25vctj4h3zb mehrdeutigsten 0 3480288 9814591 2026-06-16T07:05:08Z Sayonzei 40728 創建德語「[[mehrdeutig]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814591 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞最高級}} # {{superlative of|de|mehrdeutig}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|mehrdeutig}} sw0lwx6wfbyiati5b230magwzo3h8g6 mehrdeutigstem 0 3480289 9814592 2026-06-16T07:05:10Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|mehrdeutig}}」的新頁面 9814592 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|mehrdeutig}} a68qmp8kv6mv7nv4oemy25vctj4h3zb mehrdeutigste 0 3480290 9814593 2026-06-16T07:05:10Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|mehrdeutig}}」的新頁面 9814593 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|mehrdeutig}} a68qmp8kv6mv7nv4oemy25vctj4h3zb mehrdeutigstes 0 3480291 9814594 2026-06-16T07:05:12Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|mehrdeutig}}」的新頁面 9814594 wikitext text/x-wiki ==德語== ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|mehrdeutig}} a68qmp8kv6mv7nv4oemy25vctj4h3zb widersprüchlicher 0 3480292 9814596 2026-06-16T07:06:07Z Sayonzei 40728 創建德語「[[widersprüchlich]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9814596 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçɐ/}} * {{audio|de|De-widersprüchlicher.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級}} # {{comparative of|de|widersprüchlich}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|widersprüchlich}} bomxzujutynbph0y1by9qgus0rtqugg widersprüchlichen 0 3480293 9814597 2026-06-16T07:06:08Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçn̩/}} * {{audio|de|De-widersprüchlichen.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|widersprüchlich}}」的新頁面 9814597 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçn̩/}} * {{audio|de|De-widersprüchlichen.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|widersprüchlich}} 5z7nnayg1nh6qpkfdx03k0r1vzgv7vu widersprüchlichem 0 3480294 9814598 2026-06-16T07:06:10Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçm̩/}} * {{audio|de|De-widersprüchlichem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|widersprüchlich}}」的新頁面 9814598 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçm̩/}} * {{audio|de|De-widersprüchlichem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|widersprüchlich}} ndoi7gvmuh06wim1jt4t7gd11x17xdy widersprüchliche 0 3480295 9814599 2026-06-16T07:06:12Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçə/}} * {{audio|de|De-widersprüchliche.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|widersprüchlich}}」的新頁面 9814599 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçə/}} * {{audio|de|De-widersprüchliche.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|widersprüchlich}} qwptqaj2h9wj013ieua42j9e4g3ep9y widersprüchliches 0 3480296 9814600 2026-06-16T07:06:14Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçəs/}} * {{audio|de|De-widersprüchliches.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|widersprüchlich}}」的新頁面 9814600 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçəs/}} * {{audio|de|De-widersprüchliches.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|widersprüchlich}} nr3i9qu4a7fpwoik8iqu4604evyn50u widersprüchlicherer 0 3480297 9814601 2026-06-16T07:06:28Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçəʁɐ/}} * {{audio|de|De-widersprüchlicherer.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|widersprüchlich}}」的新頁面 9814601 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçəʁɐ/}} * {{audio|de|De-widersprüchlicherer.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|widersprüchlich}} lc8votazsz40p3y0qhvh6z93cdj958f widersprüchlicheren 0 3480298 9814602 2026-06-16T07:06:31Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçəʁən/}} * {{audio|de|De-widersprüchlicheren.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|widersprüchlich}}」的新頁面 9814602 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçəʁən/}} * {{audio|de|De-widersprüchlicheren.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|widersprüchlich}} 0ol626y7h269yg1sguxc77l2s79yaog widersprüchlicherem 0 3480299 9814603 2026-06-16T07:06:34Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçəʁəm/}} * {{audio|de|De-widersprüchlicherem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|widersprüchlich}}」的新頁面 9814603 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçəʁəm/}} * {{audio|de|De-widersprüchlicherem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|widersprüchlich}} g69xxz5vka00st4qbxw2at38pc4qmvk widersprüchlichere 0 3480300 9814604 2026-06-16T07:06:36Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçəʁə/}} * {{audio|de|De-widersprüchlichere.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|widersprüchlich}}」的新頁面 9814604 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçəʁə/}} * {{audio|de|De-widersprüchlichere.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|widersprüchlich}} bm033d9fzrqhb893ae8ifavwhuvhe72 widersprüchlicheres 0 3480301 9814605 2026-06-16T07:06:39Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçəʁəs/}} * {{audio|de|De-widersprüchlicheres.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|widersprüchlich}}」的新頁面 9814605 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçəʁəs/}} * {{audio|de|De-widersprüchlicheres.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞比較級變格形}} # {{de-adj form of|widersprüchlich}} 4qfmxs9lp132ue55ul5fo2xenwnrwyl widersprüchlichster 0 3480302 9814606 2026-06-16T07:06:51Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçstɐ/}} * {{audio|de|De-widersprüchlichster.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|widersprüchlich}}」的新頁面 9814606 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçstɐ/}} * {{audio|de|De-widersprüchlichster.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|widersprüchlich}} 9z8ydd9uyev7t5meazylm42lp0587wz widersprüchlichsten 0 3480303 9814607 2026-06-16T07:06:52Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçstn̩/}} * {{audio|de|De-widersprüchlichsten.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級}} # {{superlative of|de|widersprüchlich}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|widersprüchlich}}」的新頁面 9814607 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçstn̩/}} * {{audio|de|De-widersprüchlichsten.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級}} # {{superlative of|de|widersprüchlich}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|widersprüchlich}} 2cqt2fuh6s6tygxnsjb0zwxd5uxf339 widersprüchlichstem 0 3480304 9814608 2026-06-16T07:06:54Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçstəm/}} * {{audio|de|De-widersprüchlichstem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|widersprüchlich}}」的新頁面 9814608 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçstəm/}} * {{audio|de|De-widersprüchlichstem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|widersprüchlich}} b5q4e502nj5ydue62r54y6qura4b9u3 widersprüchlichste 0 3480305 9814609 2026-06-16T07:06:55Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçstə/}} * {{audio|de|De-widersprüchlichste.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|widersprüchlich}}」的新頁面 9814609 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçstə/}} * {{audio|de|De-widersprüchlichste.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|widersprüchlich}} bn5lyc7av4qy3he43xbg19egctv6pwr widersprüchlichstes 0 3480306 9814610 2026-06-16T07:06:56Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçstəs/}} * {{audio|de|De-widersprüchlichstes.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|widersprüchlich}}」的新頁面 9814610 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈviːdɐˌʃpʁʏçlɪçstəs/}} * {{audio|de|De-widersprüchlichstes.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞最高級變格形}} # {{de-adj form of|widersprüchlich}} 6fxz6q8hvldzmh635v9toj7gg7mbzm4 montagneuse 0 3480307 9814612 2026-06-16T07:12:56Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==法語== ===發音=== * {{audio|fr|LL-Q150 (fra)-Lyokoï-montagneuse.wav|a=里昂}} ===形容詞=== {{head|fr|形容詞變格形}} # {{feminine singular of|fr|montagneux}}」的新頁面 9814612 wikitext text/x-wiki ==法語== ===發音=== * {{audio|fr|LL-Q150 (fra)-Lyokoï-montagneuse.wav|a=里昂}} ===形容詞=== {{head|fr|形容詞變格形}} # {{feminine singular of|fr|montagneux}} 84ky1h3d8328f2x8snmm66q70itp46p montagneuses 0 3480308 9814613 2026-06-16T07:12:57Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==法語== ===發音=== * {{fr-IPA}} * {{homophones|fr|montagneuse}} ===形容詞=== {{head|fr|形容詞變格形}} # {{feminine plural of|fr|montagneux}}」的新頁面 9814613 wikitext text/x-wiki ==法語== ===發音=== * {{fr-IPA}} * {{homophones|fr|montagneuse}} ===形容詞=== {{head|fr|形容詞變格形}} # {{feminine plural of|fr|montagneux}} 7jugylebcg9x5urz2j14msj6w2kotr2 befriste 0 3480309 9814617 2026-06-16T07:20:22Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstə/}} * {{audio|de|De-befriste.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|befristen||1|s|pres|;|1//3|s|sub|I|;|s|imp}}」的新頁面 9814617 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstə/}} * {{audio|de|De-befriste.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|befristen||1|s|pres|;|1//3|s|sub|I|;|s|imp}} 315c9fqxabp8fd9qj42fkcu8jfo0lpf befristest 0 3480310 9814618 2026-06-16T07:20:41Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstəst/}} * {{audio|de|De-befristest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|befristen||2|s|pres|;|2|s|sub|I}}」的新頁面 9814618 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstəst/}} * {{audio|de|De-befristest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|befristen||2|s|pres|;|2|s|sub|I}} i82aegp2se69gvccwvdpw9b986j442l befristeter 0 3480311 9814620 2026-06-16T07:21:48Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstətɐ/}} * {{audio|de|De-befristeter.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|befristet}}」的新頁面 9814620 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstətɐ/}} * {{audio|de|De-befristeter.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|befristet}} afenmcbhg0wq5gyxxis0psuj039bokg befristetem 0 3480312 9814621 2026-06-16T07:21:48Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstətəm/}} * {{audio|de|De-befristetem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|befristet}}」的新頁面 9814621 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstətəm/}} * {{audio|de|De-befristetem.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|befristet}} hit3ryh693648ke3729bfuxktrmnymj befristetes 0 3480313 9814622 2026-06-16T07:21:50Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstətəs/}} * {{audio|de|De-befristetes.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|befristet}}」的新頁面 9814622 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstətəs/}} * {{audio|de|De-befristetes.ogg|a=柏林}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|befristet}} ci4p9q1m9c9vrluhch0o9g1r4o8bak9 befristete 0 3480314 9814623 2026-06-16T07:22:22Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstətə/}} * {{audio|de|De-befristete.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|befristen||1//3|s|pret|;|1//3|s|sub|II}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|befristet}}」的新頁面 9814623 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstətə/}} * {{audio|de|De-befristete.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|befristen||1//3|s|pret|;|1//3|s|sub|II}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|befristet}} km4a5mqbi81rzmkdjns5vxdx1hm7j9j befristetest 0 3480315 9814624 2026-06-16T07:22:23Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstətəst/}} * {{audio|de|De-befristetest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|befristen||2|s|pret|;|2|s|sub|II}}」的新頁面 9814624 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstətəst/}} * {{audio|de|De-befristetest.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|befristen||2|s|pret|;|2|s|sub|II}} mf02xt6iu6nxlp9ojlxubd1q0f5z44k befristetet 0 3480316 9814625 2026-06-16T07:22:34Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstətət/}} * {{audio|de|De-befristetet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|befristen||2|p|pret|;|2|p|sub|II}}」的新頁面 9814625 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstətət/}} * {{audio|de|De-befristetet.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|befristen||2|p|pret|;|2|p|sub|II}} e8rogdyw7k87lwf2o5t0dj4j4qtgu5p befristeten 0 3480317 9814626 2026-06-16T07:22:43Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstətn̩/}} * {{audio|de|De-befristeten.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|befristen||1//3|p|pret|;|1//3|p|sub|II}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|befristet}}」的新頁面 9814626 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstətn̩/}} * {{audio|de|De-befristeten.ogg|a=柏林}} ===動詞=== {{head|de|動詞變位形式}} # {{infl of|de|befristen||1//3|p|pret|;|1//3|p|sub|II}} ===形容詞=== {{head|de|形容詞變格形}} # {{de-adj form of|befristet}} jtf10j9bvxsdzkob6uvx64mv1ok3uh0 befristend 0 3480318 9814627 2026-06-16T07:23:00Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstn̩t/}} * {{audio|de|De-befristend.ogg|a=柏林}} ===分詞=== {{head|de|現在分詞}} # {{infl of|de|befristen||pres|part}} ====變格==== {{de-adecl}}」的新頁面 9814627 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstn̩t/}} * {{audio|de|De-befristend.ogg|a=柏林}} ===分詞=== {{head|de|現在分詞}} # {{infl of|de|befristen||pres|part}} ====變格==== {{de-adecl}} qvnhi6fhi5soarhv47rt8f63okd7lwi befristender 0 3480319 9814628 2026-06-16T07:23:13Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstn̩dɐ/}} * {{audio|de|De-befristender.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|befristend}}」的新頁面 9814628 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstn̩dɐ/}} * {{audio|de|De-befristender.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|befristend}} n7byzoxea1mwpkszffpa92t7mabjwzt befristendem 0 3480320 9814629 2026-06-16T07:23:14Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstn̩dəm/}} * {{audio|de|De-befristendem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|befristend}}」的新頁面 9814629 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstn̩dəm/}} * {{audio|de|De-befristendem.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|befristend}} ew1knm32p11opek9mdmf744vp78ocmw befristenden 0 3480321 9814630 2026-06-16T07:23:16Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstn̩dən/}} * {{audio|de|De-befristenden.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|befristend}}」的新頁面 9814630 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstn̩dən/}} * {{audio|de|De-befristenden.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|befristend}} 1zvuy75miteb0enl72jgdet67vg9job befristende 0 3480322 9814631 2026-06-16T07:23:21Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstn̩də/}} * {{audio|de|De-befristende.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|befristend}}」的新頁面 9814631 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstn̩də/}} * {{audio|de|De-befristende.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|befristend}} 5a8xied5onrip8zgvmptn227wkfov2z befristendes 0 3480323 9814632 2026-06-16T07:23:23Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstn̩dəs/}} * {{audio|de|De-befristendes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|befristend}}」的新頁面 9814632 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/bəˈfʁɪstn̩dəs/}} * {{audio|de|De-befristendes.ogg|a=柏林}} ===分詞=== {{head|de|分詞變格形}} # {{de-adj form of|befristend}} fyjpvr7ptm10f3biqu1p2nqzlo8wims Template:RQ:Shakespeare All's Well 10 3480324 9814636 2026-06-16T08:25:27Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{#invoke:quote|call_quote_template |en |author = w:William Shakespeare |chapter = [[w:All's Well That Ends Well|All’s Well, that Ends Well]] |title = Mr. William Shakespeares Comedies, Histories, & Tragedies{{nb...|Published According to the True Originall Copies.}} |series = w:First Folio |location = London |publisher = {{...|Printed by}} [[w:William Jaggard|Isaac Iaggard]], and w:Edward…」的新頁面 9814636 wikitext text/x-wiki {{#invoke:quote|call_quote_template |en |author = w:William Shakespeare |chapter = [[w:All's Well That Ends Well|All’s Well, that Ends Well]] |title = Mr. William Shakespeares Comedies, Histories, & Tragedies{{nb...|Published According to the True Originall Copies.}} |series = w:First Folio |location = London |publisher = {{...|Printed by}} [[w:William Jaggard|Isaac Iaggard]], and [[w:Edward Blount|Ed[ward] Blount]] |year = c. '''1604–1605''' (date written) |year_published = 1623 |section = {{#if:{{{act|}}}{{{1|}}} | [Act {{uc:{{#if:{{num|{{{act|}}}{{{1|}}}}}|{{A2R|{{{act|{{{1|}}}}}}}}|{{{act|{{{1|}}}}}}}}}}、{{#if:{{{scene|}}}{{{2|}}} | scene {{lc:{{#if:{{num|{{{scene|}}}{{{2|}}}}}|{{A2R|{{{scene|{{{2|}}}}}}}}|{{{scene|{{{2|}}}}}}}}}}] | {{maintenance line|please specify the scene number in lowercase Roman numerals}}] }} | {{maintenance line|please specify the act number in uppercase Roman numerals{{#if:{{{scene|}}}{{{2|}}}||, and the scene number in lowercase Roman numerals}}}} }} |pageparam = 3 |pageurl = https://archive.org/details/mrvvilliamshakes00shak/page/{{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<235 | n{{#expr:{{{page|{{{pageref|{{{3|}}}}}}}}}+27}} | {{{page|{{{pageref|{{{3|}}}}}}}}} }}/mode/1up |column = {{{column|{{{4|}}}}}} |oclc = 606515358 |textparam = 5 |translation = {{{t|{{{translation|{{{6|}}}}}}}}} |propagateparams = columns,line,lines |allowparams = act,1,scene,2,pageref,column,4,t,translation,6 }}<noinclude>{{documentation}}{{quotecat|en}}</noinclude> 8m5qvdi8uu80ns83i1a03dna550fprh 打碟 0 3480325 9814638 2026-06-16T09:03:41Z Tony85poon 62011 [[w:WP:AES|←]]建立內容為「==漢語== {{zh-forms}} {{wp|唱片騎師}} ===動詞=== [[播放]]音樂,而[[現場]]有[[聽眾]],及或可能有人[[跳舞]]。 ===相關詞語=== *[[音樂光碟]]」的新頁面 9814638 wikitext text/x-wiki ==漢語== {{zh-forms}} {{wp|唱片騎師}} ===動詞=== [[播放]]音樂,而[[現場]]有[[聽眾]],及或可能有人[[跳舞]]。 ===相關詞語=== *[[音樂光碟]] j97ug1v9cdgm20dcxgo6xm8mrp16nis 9814639 9814638 2026-06-16T09:06:29Z Tony85poon 62011 /* 漢語 */ 發音 9814639 wikitext text/x-wiki ==漢語== {{zh-forms}} {{wp|唱片騎師}} ===發音=== {{zh-pron |m=Dǎ dié |cat=pron }} ===動詞=== # [[播放]]音樂,而[[現場]]有[[聽眾]],及或可能有人[[跳舞]]。 ===相關詞語=== *[[音樂光碟]] 39kejgtozoxx7e3kx6xddgsfvthrouq 9814641 9814639 2026-06-16T09:47:07Z Sayonzei 40728 9814641 wikitext text/x-wiki ==漢語== {{zh-forms}} ===發音=== {{zh-pron |m=dǎdié |cat=v }} ===動詞=== {{zh-verb}} # [[唱片騎師]]選擇並且播放事先錄好的[[音樂]],並在(多是舞廳、演唱會等場合的)現場[[混音]] ====相關詞==== * {{zh-l|音樂光碟}} {{c|zh|音樂}} fmsxxjj9kp8exihdfa4hahyxf4gzwhv Shang 0 3480326 9814644 2026-06-16T10:05:53Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==英語== ===詞源=== {{bor+|en|cmn|商|tr=Shāng}}。 {{wp|en:+ dynasty}} ===發音=== * {{IPA|en|/ʃæŋ/}} ===專有名詞=== {{en-proper noun}} # {{lb|en|historical}} [[商朝]] #* {{quote-book |en |year=1969 |author=w:en:Rutherford John Gettens |title=The Freer Chinese Bronzes |url=https://archive.org/details/freerchinesebron00free/ |volume=II |location=[[Washington]], D.C. |publisher=w:en:Meriden Gravure Company |OCLC=311989762 |p…」的新頁面 9814644 wikitext text/x-wiki ==英語== ===詞源=== {{bor+|en|cmn|商|tr=Shāng}}。 {{wp|en:+ dynasty}} ===發音=== * {{IPA|en|/ʃæŋ/}} ===專有名詞=== {{en-proper noun}} # {{lb|en|historical}} [[商朝]] #* {{quote-book |en |year=1969 |author=w:en:Rutherford John Gettens |title=The Freer Chinese Bronzes |url=https://archive.org/details/freerchinesebron00free/ |volume=II |location=[[Washington]], D.C. |publisher=w:en:Meriden Gravure Company |OCLC=311989762 |page=28 |pageurl=https://archive.org/details/freerchinesebron00free/page/28/ |text=Wilma Fairbank strongly supports the piece mold theory but points out that the mastery of bronze technology by the '''Shang''' people was an outgrowth of their earlier mastery of ceramic technology. |t=威尔玛·费尔班克强烈支持坯模理论,但她指出,'''商代'''人对青铜技术的掌握是他们早期对陶瓷技术的掌握的产物。}} #* {{quote-book |en |url=https://archive.org/details/culturalfrontier0000wats/ |year=1971 |title=Cultural Frontiers in Ancient East Asia |author={{w|lang=en|William Watson (sinologist)|William Watson}} |publisher=w:Edinburgh University Press |ISBN=0 85224 203 4 |page=[https://archive.org/details/culturalfrontier0000wats/page/81 81] |passage=In the '''Shang''' and Chou periods our knowledge from archaeology of ordinary dwellings is thus far poor, but something can be said of the more pretentious edifices. |t=我们对'''商'''周时期普通民居的考古发现了解甚少,但对于一些较为奢华的建筑,我们还是可以了解一些的。 }} #* {{quote-book |en |year=2011 |author=Ralph D. Sawyer |title=Ancient Chinese Warfare |url=https://archive.org/details/isbn_9780465021451/ |publisher=w:en:Basic Books |ISBN=978-0-465-02145-1 |LCCN=2010051391 |OCLC=657595552 |page=135 |pageurl=https://archive.org/details/isbn_9780465021451/page/135/ |text=Hsing-t'ai, Han-tan, and Shih-chia-chuang are thus among the numerous '''Shang''' sites marked by heavy upper Erh-li-kang cultural manifestations. |t=因此,邢台、邯郸、石家庄等众多'''商代'''遗址都具有浓厚的二里岗文化特征。}} ===異序詞=== * {{anagrams|en|a=aghns|Ghans|gnash|hangs}} {{C|en|中國|中國朝代|中國歷史}} 2w1ey6aqqe9mhxq1y2mwczjx0exl7ed Template:RQ:De Quincey Works 10 3480327 9814646 2026-06-16T10:12:52Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{#invoke:quote|call_quote_template |en |author = {{#if:{{{page|}}}{{{pageref|}}}{{{3|}}} | {{#switch:{{{volume|}}}{{{1|}}} | XII = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}>38 and {{{page|}}}{{{pageref|}}}{{{3|}}}<71<!--King of Hayti: according to OED--> | F. Laun [pseudonym] | w:en:Thomas De Quincey }}…」的新頁面 9814646 wikitext text/x-wiki {{#invoke:quote|call_quote_template |en |author = {{#if:{{{page|}}}{{{pageref|}}}{{{3|}}} | {{#switch:{{{volume|}}}{{{1|}}} | XII = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}>38 and {{{page|}}}{{{pageref|}}}{{{3|}}}<71<!--King of Hayti: according to OED--> | F. Laun [pseudonym] | w:en:Thomas De Quincey }} }} | w:en:Thomas De Quincey }} | w:en:Thomas De Quincey }} |chapter = {{#if:{{{page|}}}{{{pageref|}}}{{{3|}}} | {{#switch:{{{volume|}}}{{{1|}}} | II = {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<64 | Laxton{{#if:{{{chaptername|}}}{{{subchapter|}}}|. {{ucfirst:{{{chaptername|{{{subchapter|}}}}}}}}。}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<109 | The Priory | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<146 | Early Memorials of Grasmere | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<231 | w:en:Samuel Taylor Coleridge | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<319 | w:en:William Wordsworth | [[w:en:William Wordsworth|William Wordsworth]] and [[w:en:Robert Southey|Robert Southey]] }} }} }} }} }} | III = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<99 | The Spanish Military Nun | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<167 | The Last Days of [[w:en:Immanuel Kant|Immanuel Kant]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<206 | System of the Heavens as Revealed by [[w:en:William Parsons, 3rd Earl of Rosse|Lord Rosse]]’s Telescopes | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<246 | [[w:en:Joan of Arc|Joan of Arc]]. In Reference to M. [[w:en:Jules Michelet|Michelet]]’s History of France. | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<287 | The Casuistry of Roman Meals | Modern Superstition }} }} }} }} }} }} | IV = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<111 | On Murder, Considered as One of the Fine Arts | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<176 | Revolt of the Tartars; or, Flight of the Kalmuck Khan and His People from the Russian Territories to the Frontiers of China | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<258 | Dialogues of Three Templars on Political Economy, Chiefly in Relation to the Principles of Mr [[w:en:David Ricardo|[David] Ricardo]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<287 | On War | The English Mail-coach. Section the {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<320 | First.—The Glory of Motion | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<342 | Second.—The Vision of Sudden Death | Third.—Dream-Fugue. Founded on the Preceding Theme of Sudden Death }} }}。 }} }} }} }}{{#if:{{{subchapter|}}}|.&#32;{{ucfirst:{{{subchapter}}}}}。}} | Explanatory Notices }} | V = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<193 | Confessions of an English Opium-Eater | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<276 | The Pleasures of Opium | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<283 | The Daughter of Lebanon | Appendix }} }} }} | {{#ifexpr:{{R2A|{{{page|}}}{{{pageref|}}}{{{3|}}}}}<11 | Original Preface in the Year 1821 | Prefatory Notice }} }} | VI = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<30 | [[w:en:Percy Bysshe Shelley|Percy Bysshe Shelley]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<194 | Whiggism in Its Relations to Literature | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<234 | [[w:en:Oliver Goldsmith|Oliver Goldsmith]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<269 | On [[w:en:William Wordsworth|Wordsworth]]’s Poetry | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<289 | [[w:en:John Keats|John Keats]] | [[w:en:Homer|Homer]] and the Homeridæ }} }} }} }} }} | Preface }} | IX = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<54 | [[w:en:Alexander Pope|Alexander Pope]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<76 | Theory of Greek Tragedy | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<98 | Language | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<108 | French and English Manners | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<161 | [[w:en:Charles Lamb|Charles Lamb]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<212 | Philosophy of [[w:en:Herodotus|Herodotus]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<260 | [[w:en:Plato|Plato]]’s [[w:en:Republic (Plato)|Republic]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<284 | Sortilege and Astrology | Notes on [[w:en:Walter Savage Landor|Walter Savage Landor]] }} }} }} }} }} }} }} }} | Prefatory Notice }} | XI = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<21 | The Incognito; or, Count Fitz-Hum | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<79 | Rhetoric | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<99 | Life of [[w:en:John Milton|Milton]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<158 | The Revolution of Greece | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<293 | Style | The Dice }} }} }} }} }} | Prefatory Memoranda }} | XII = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<39 | Ceylon | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<71 | The King of Hayti. 源自the German. | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<112 | [[w:en:Samuel Taylor Coleridge|Coleridge]] and Opium-eating | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<146 | Toilette of the Hebrew Lady. Exhibited in Six Scenes. | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<176 | National Temperance Movements | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<199 | [[w:en:John Milton|Milton]] ''versus'' [[w:en:Robert Southey|Southey]] and [[w:en:Walter Savage Landor|Landor]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<234 | The Fatal Marksman | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<280 | On Christianity as an Organ of Political Movement | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<313 | Notes on [[w:en:George Gilfillan|Gilfillan]]’s Literary Portraits. [[w:en:William Godwin|Godwin]]—[[w:en:John Foster (essayist)|Foster]]—[[w:en:William Hazlitt|Hazlitt]]. | Falsification of English History }} }} }} }} }} }} }} }} }}{{#if:{{{chapter|}}}{{{2|}}}|&#32;Chapter {{uc:{{#if:{{num|{{{chapter|}}}{{{2|}}}}}|{{A2R|{{{chapter|{{{2|}}}}}}}}|{{{chapter|{{{2|}}}}}}}}}}。}}{{#if:{{{chaptername|}}}{{{subchapter|}}}|&#32;{{ucfirst:{{{chaptername|{{{subchapter|}}}}}}}}。}} | Prefatory Note }} | XIV = {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<8 | Note by the Publishers | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<95 | Letters to a Young Man whose Education has been Neglected{{#if:{{{letter|}}}|. Letter {{uc:{{#if:{{num|{{{letter}}}}}|{{A2R|{{{letter}}}}}|{{{letter}}}}}}}。}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<113 | Orthographic Mutineers. With a Special Reference to the Works of [[w:en:Walter Savage Landor|Walter Savage Landor]]. | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<150 | [[w:en:Jean Paul|John Paul Frederick Richter]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<180 | Conversation | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<192 | Presence of Mind: A Fragment | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<199 | On the Knocking at the Gate in [[w:en:Macbeth|Macbeth]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<234 | The [[w:en:Antigone (Sophocles play)|Antigone]] of [[w:en:Sophocles|Sophocles]] as Represented on the Edinburgh Stage | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<288 | Traditions of the Rabbins | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<333 | Modern Greece }} }} }} }} }} }} }} }} }} }} | {{{chapter|{{{2|}}}}}} }} }} |translator = {{#if:{{{page|}}}{{{pageref|}}}{{{3|}}} | {{#switch:{{{volume|}}}{{{1|}}} | XII = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}>38 and {{{page|}}}{{{pageref|}}}{{{3|}}}<71<!--King of Hayti--> | w:en:Thomas De Quincey }} }} }} }} |title = {{#if:{{{volume|}}}{{{1|}}} | {{#switch:{{{volume|}}}{{{1|}}} | I = Autobiographic Sketches | II = Autobiographic Sketches: With Recollections of the Lakes | III = Miscellanies: Chiefly Narrative | IV = Miscellanies | V = [[w:en:Confessions of an English Opium-Eater|Confessions of an English Opium-Eater.{{nb...|To which is Added The Daughter of Lebanon, Forming Part of “Suspiria de Profundis.” [...] Now First Carefully Revised by the Author, and Greatly Enlarged.}}]] | VI = Sketches: Critical and Biographic | VII = Studies on Secret Records, Personal and Historic; with Other Papers | VIII = Essays Sceptical and Anti-sceptical on Problems Neglected or Mis-conceived | IX = Leaders in Literature with a Notice of Traditional Errors Affecting Them | X = Classic Records Reviewed or Deciphered | XI = Critical Suggestions on Style and Rhetoric with German Tales and Other Narrative Papers | XII|XIII = Speculations Literary and Philosophic: With German Tales and Other Narrative Papers | XIV = Letters to a Young Man whose Education has been Neglected; and Other Papers }} | De Quincey’s Works }} |series = {{#if:{{{volume|}}}{{{1|}}}|De Quincey’s Works}} |seriesvolume = {{#if:{{{volume|}}}{{{1|}}} | {{#ifexpr:{{R2A|{{{volume|}}}{{{1|}}}}}<15 | {{{volume|{{{1|}}}}}} | {{maintenance line|<nowiki>please specify |volume=I to XIV</nowiki>}} }} | {{maintenance line|<nowiki>please specify |volume=I to XIV</nowiki>}} }} |location = London |publisher = [[w:en:James Hogg (publisher)|James Hogg & Sons]] |year = {{#switch:{{{volume|}}}{{{1|}}} | I = 1853 | II = {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<64 | 1854<!--Laxton; Priory: needs review--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<146 | '''1839''' September<!--Grasmere--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<231 | '''1834''' September–November; '''1835''' January<!--Coleridge--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<319 | '''1839''' January, February, April<!--Wordsworth--> | '''1839''' July<!--Wordsworth and Southey--> }} }} }} }} | III = 1854 | IV = {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}>175 and {{{page|}}}{{{pageref|}}}{{{3|}}}<258<!--Three Templars--> | '''1824''' April | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}>286 | '''1849''' {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<320 | October<!--English Mail-coach, 1st sect--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<342 |December<!--English Mail-coach, 2nd and 3rd sects--> }} }} | 1854 }} }} | V = 1856 | VI = {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<30 | 1857<!--Shelley: needs review--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<194 | '''1831''' June<!--Whiggism--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<269 | 1857<!--Goldsmith; On Wordsworth's Poetry: needs review--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<289 | '''1846''' April<!--Keats--> | '''1841''' October<!--Homer and the Homeridæ--> }} }} }} }} | VII = 1857 | VIII = 1858 | IX = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<54 | 1858<!--Pope: needs review--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<76 | '''1840''' February<!--Theory of Greek Tragedy--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<284 | 1858<!--Language; French and English Manners; Lamb; Herodotus; Plato's Republic; Sortilege and Astrology: needs review--> | '''1847''' February<!--Landor--> }} }} }} | 1858 }} | X|XIII = 1859 | XI = {{#if:{{{page|}}}{{{pageref|}}}{{{3|}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<21 | 1823<!--Incognito--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<79 | '''1828''' December<!--Rhetoric: originally from Blackwood's Edinburgh Magazine--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<99 | 1830–1831<!--Milton--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<158 | 1859<!--Revolution of Greece--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<293 | 1840<!--Style: originally from Blackwood's Magazine--> | 1859<!--Dice--> }} }} }} }} }} | 59 }} | XII = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<39 | '''1843''' November<!--Ceylon: 源自OED--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<71 | 1859<!--King of Hayti: needs review--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<112 | '''1845''' January<!--Coleridge and Opium-eating--> | 1859 }} }} }} | 1859 }} | XIV = {{#if:{{{page|}}}{{{pageref|}}}{{{3|}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}>7 and {{{page|}}}{{{pageref|}}}{{{3|}}}<95 | 1823<!--Letters to a Young Man--> | 1860 }} | 1860 }} | 1853–1860 }} |year_published = {{#switch:{{{volume|}}}{{{1|}}} | IV = {{#if:{{{page|}}}{{{pageref|}}}{{{3|}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}>175 and {{{page|}}}{{{pageref|}}}{{{3|}}}<258<!--Three Templars-->|1854}} }} | XI = 1859 | XIV = {{#if:{{{page|}}}{{{pageref|}}}{{{3|}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}>7 and {{{page|}}}{{{pageref|}}}{{{3|}}}<95 | 1860 }} }} }} |section = {{#if:{{{section|}}} | {{{section}}} }} |pageparam = 3 |pageurl = https://books.google.com/books?id={{#switch:{{{volume|}}}{{{1|}}} | I = Z3oohx97zwQ | II = McNeynQIl1Q | III = uNtJiUIcN_s | IV = K5zvbQmG5zc | V = m3CZCr6WNpY | VI = Ep66eMcoaM8 | VII = _UzyTIGNYMI | VIII = RnanQlXDdAM | IX = gZmwQCidJ7Q | X = 51W1W04Rx8Y | XI = OGYBtIEKo6E | XII = bhgKpkv7XE0 | XIII = 8OLF-jwRSTY | XIV = FDkStgupIJA }}C&pg=P{{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | A{{{page|{{{pageref|{{{3|}}}}}}}}} | R{{R2A|{{{page|{{{pageref|{{{3|}}}}}}}}}}} }} |oclc = 6497971 |textparam = 4 |allowparams = volume,1,chaptername,subchapter,chapter,2,letter,section,pageref |propagateparams=t,translation }}<noinclude>{{documentation}}</noinclude> d00qow2e6djowft8476en8qpv1ejc9u 9814670 9814646 2026-06-16T10:42:54Z TongcyDai 53191 9814670 wikitext text/x-wiki {{#invoke:quote|call_quote_template |en |author = {{#if:{{{page|}}}{{{pageref|}}}{{{3|}}} | {{#switch:{{{volume|}}}{{{1|}}} | XII = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}>38 and {{{page|}}}{{{pageref|}}}{{{3|}}}<71<!--King of Hayti: according to OED--> | F. Laun [pseudonym] | w:en:Thomas De Quincey }} }} | w:en:Thomas De Quincey }} | w:en:Thomas De Quincey }} |chapter = {{#if:{{{page|}}}{{{pageref|}}}{{{3|}}} | {{#switch:{{{volume|}}}{{{1|}}} | II = {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<64 | Laxton{{#if:{{{chaptername|}}}{{{subchapter|}}}|. {{ucfirst:{{{chaptername|{{{subchapter|}}}}}}}}。}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<109 | The Priory | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<146 | Early Memorials of Grasmere | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<231 | w:en:Samuel Taylor Coleridge | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<319 | w:en:William Wordsworth | [[w:en:William Wordsworth|William Wordsworth]] and [[w:en:Robert Southey|Robert Southey]] }} }} }} }} }} | III = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<99 | The Spanish Military Nun | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<167 | The Last Days of [[w:en:Immanuel Kant|Immanuel Kant]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<206 | System of the Heavens as Revealed by [[w:en:William Parsons, 3rd Earl of Rosse|Lord Rosse]]’s Telescopes | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<246 | [[w:en:Joan of Arc|Joan of Arc]]. In Reference to M. [[w:en:Jules Michelet|Michelet]]’s History of France. | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<287 | The Casuistry of Roman Meals | Modern Superstition }} }} }} }} }} }} | IV = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<111 | On Murder, Considered as One of the Fine Arts | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<176 | Revolt of the Tartars; or, Flight of the Kalmuck Khan and His People from the Russian Territories to the Frontiers of China | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<258 | Dialogues of Three Templars on Political Economy, Chiefly in Relation to the Principles of Mr [[w:en:David Ricardo|[David] Ricardo]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<287 | On War | The English Mail-coach. Section the {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<320 | First.—The Glory of Motion | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<342 | Second.—The Vision of Sudden Death | Third.—Dream-Fugue. Founded on the Preceding Theme of Sudden Death }} }}。 }} }} }} }}{{#if:{{{subchapter|}}}|.&#32;{{ucfirst:{{{subchapter}}}}}。}} | Explanatory Notices }} | V = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<193 | Confessions of an English Opium-Eater | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<276 | The Pleasures of Opium | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<283 | The Daughter of Lebanon | Appendix }} }} }} | {{#ifexpr:{{R2A|{{{page|}}}{{{pageref|}}}{{{3|}}}}}<11 | Original Preface in the Year 1821 | Prefatory Notice }} }} | VI = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<30 | [[w:en:Percy Bysshe Shelley|Percy Bysshe Shelley]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<194 | Whiggism in Its Relations to Literature | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<234 | [[w:en:Oliver Goldsmith|Oliver Goldsmith]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<269 | On [[w:en:William Wordsworth|Wordsworth]]’s Poetry | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<289 | [[w:en:John Keats|John Keats]] | [[w:en:Homer|Homer]] and the Homeridæ }} }} }} }} }} | Preface }} | IX = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<54 | [[w:en:Alexander Pope|Alexander Pope]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<76 | Theory of Greek Tragedy | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<98 | Language | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<108 | French and English Manners | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<161 | [[w:en:Charles Lamb|Charles Lamb]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<212 | Philosophy of [[w:en:Herodotus|Herodotus]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<260 | [[w:en:Plato|Plato]]’s [[w:en:Republic (Plato)|Republic]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<284 | Sortilege and Astrology | Notes on [[w:en:Walter Savage Landor|Walter Savage Landor]] }} }} }} }} }} }} }} }} | Prefatory Notice }} | XI = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<21 | The Incognito; or, Count Fitz-Hum | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<79 | Rhetoric | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<99 | Life of [[w:en:John Milton|Milton]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<158 | The Revolution of Greece | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<293 | Style | The Dice }} }} }} }} }} | Prefatory Memoranda }} | XII = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<39 | Ceylon | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<71 | The King of Hayti. 源自the German. | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<112 | [[w:en:Samuel Taylor Coleridge|Coleridge]] and Opium-eating | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<146 | Toilette of the Hebrew Lady. Exhibited in Six Scenes. | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<176 | National Temperance Movements | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<199 | [[w:en:John Milton|Milton]] ''versus'' [[w:en:Robert Southey|Southey]] and [[w:en:Walter Savage Landor|Landor]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<234 | The Fatal Marksman | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<280 | On Christianity as an Organ of Political Movement | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<313 | Notes on [[w:en:George Gilfillan|Gilfillan]]’s Literary Portraits. [[w:en:William Godwin|Godwin]]—[[w:en:John Foster (essayist)|Foster]]—[[w:en:William Hazlitt|Hazlitt]]. | Falsification of English History }} }} }} }} }} }} }} }} }}{{#if:{{{chapter|}}}{{{2|}}}|&#32;Chapter {{uc:{{#if:{{num|{{{chapter|}}}{{{2|}}}}}|{{A2R|{{{chapter|{{{2|}}}}}}}}|{{{chapter|{{{2|}}}}}}}}}}。}}{{#if:{{{chaptername|}}}{{{subchapter|}}}|&#32;{{ucfirst:{{{chaptername|{{{subchapter|}}}}}}}}。}} | Prefatory Note }} | XIV = {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<8 | Note by the Publishers | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<95 | Letters to a Young Man whose Education has been Neglected{{#if:{{{letter|}}}|. Letter {{uc:{{#if:{{num|{{{letter}}}}}|{{A2R|{{{letter}}}}}|{{{letter}}}}}}}。}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<113 | Orthographic Mutineers. With a Special Reference to the Works of [[w:en:Walter Savage Landor|Walter Savage Landor]]. | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<150 | [[w:en:Jean Paul|John Paul Frederick Richter]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<180 | Conversation | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<192 | Presence of Mind: A Fragment | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<199 | On the Knocking at the Gate in [[w:en:Macbeth|Macbeth]] | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<234 | The [[w:en:Antigone (Sophocles play)|Antigone]] of [[w:en:Sophocles|Sophocles]] as Represented on the Edinburgh Stage | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<288 | Traditions of the Rabbins | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<333 | Modern Greece }} }} }} }} }} }} }} }} }} }} | {{{chapter|{{{2|}}}}}} }} }} |translator = {{#if:{{{page|}}}{{{pageref|}}}{{{3|}}} | {{#switch:{{{volume|}}}{{{1|}}} | XII = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}>38 and {{{page|}}}{{{pageref|}}}{{{3|}}}<71<!--King of Hayti--> | w:en:Thomas De Quincey }} }} }} }} |title = {{#if:{{{volume|}}}{{{1|}}} | {{#switch:{{{volume|}}}{{{1|}}} | I = Autobiographic Sketches | II = Autobiographic Sketches: With Recollections of the Lakes | III = Miscellanies: Chiefly Narrative | IV = Miscellanies | V = [[w:en:Confessions of an English Opium-Eater|Confessions of an English Opium-Eater.{{nb...|To which is Added The Daughter of Lebanon, Forming Part of “Suspiria de Profundis.” [...] Now First Carefully Revised by the Author, and Greatly Enlarged.}}]] | VI = Sketches: Critical and Biographic | VII = Studies on Secret Records, Personal and Historic; with Other Papers | VIII = Essays Sceptical and Anti-sceptical on Problems Neglected or Mis-conceived | IX = Leaders in Literature with a Notice of Traditional Errors Affecting Them | X = Classic Records Reviewed or Deciphered | XI = Critical Suggestions on Style and Rhetoric with German Tales and Other Narrative Papers | XII|XIII = Speculations Literary and Philosophic: With German Tales and Other Narrative Papers | XIV = Letters to a Young Man whose Education has been Neglected; and Other Papers }} | De Quincey’s Works }} |series = {{#if:{{{volume|}}}{{{1|}}}|De Quincey’s Works}} |seriesvolume = {{#if:{{{volume|}}}{{{1|}}} | {{#ifexpr:{{R2A|{{{volume|}}}{{{1|}}}}}<15 | {{{volume|{{{1|}}}}}} | {{maintenance line|<nowiki>please specify |volume=I to XIV</nowiki>}} }} | {{maintenance line|<nowiki>please specify |volume=I to XIV</nowiki>}} }} |location = London |publisher = [[w:en:James Hogg (publisher)|James Hogg & Sons]] |year = {{#switch:{{{volume|}}}{{{1|}}} | I = 1853 | II = {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<64 | 1854<!--Laxton; Priory: needs review--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<146 | '''1839''' September<!--Grasmere--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<231 | '''1834''' September–November; '''1835''' January<!--Coleridge--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<319 | '''1839''' January, February, April<!--Wordsworth--> | '''1839''' July<!--Wordsworth and Southey--> }} }} }} }} | III = 1854 | IV = {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}>175 and {{{page|}}}{{{pageref|}}}{{{3|}}}<258<!--Three Templars--> | '''1824''' April | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}>286 | '''1849''' {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<320 | October<!--English Mail-coach, 1st sect--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<342 |December<!--English Mail-coach, 2nd and 3rd sects--> }} }} | 1854 }} }} | V = 1856 | VI = {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<30 | 1857<!--Shelley: needs review--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<194 | '''1831''' June<!--Whiggism--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<269 | 1857<!--Goldsmith; On Wordsworth's Poetry: needs review--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<289 | '''1846''' April<!--Keats--> | '''1841''' October<!--Homer and the Homeridæ--> }} }} }} }} | VII = 1857 | VIII = 1858 | IX = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<54 | 1858<!--Pope: needs review--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<76 | '''1840''' February<!--Theory of Greek Tragedy--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<284 | 1858<!--Language; French and English Manners; Lamb; Herodotus; Plato's Republic; Sortilege and Astrology: needs review--> | '''1847''' February<!--Landor--> }} }} }} | 1858 }} | X|XIII = 1859 | XI = {{#if:{{{page|}}}{{{pageref|}}}{{{3|}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<21 | 1823<!--Incognito--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<79 | '''1828''' December<!--Rhetoric: originally from Blackwood's Edinburgh Magazine--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<99 | 1830–1831<!--Milton--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<158 | 1859<!--Revolution of Greece--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<293 | 1840<!--Style: originally from Blackwood's Magazine--> | 1859<!--Dice--> }} }} }} }} }} | 59 }} | XII = {{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<39 | '''1843''' November<!--Ceylon: 源自OED--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<71 | 1859<!--King of Hayti: needs review--> | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}<112 | '''1845''' January<!--Coleridge and Opium-eating--> | 1859 }} }} }} | 1859 }} | XIV = {{#if:{{{page|}}}{{{pageref|}}}{{{3|}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}>7 and {{{page|}}}{{{pageref|}}}{{{3|}}}<95 | 1823<!--Letters to a Young Man--> | 1860 }} | 1860 }} | 1853–1860 }} |year_published = {{#switch:{{{volume|}}}{{{1|}}} | IV = {{#if:{{{page|}}}{{{pageref|}}}{{{3|}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}>175 and {{{page|}}}{{{pageref|}}}{{{3|}}}<258<!--Three Templars-->|1854}} }} | XI = 1859 | XIV = {{#if:{{{page|}}}{{{pageref|}}}{{{3|}}} | {{#ifexpr:{{{page|}}}{{{pageref|}}}{{{3|}}}>7 and {{{page|}}}{{{pageref|}}}{{{3|}}}<95 | 1860 }} }} }} |section = {{#if:{{{section|}}} | {{{section}}} }} |pageparam = 3 |pageurl = https://books.google.com/books?id={{#switch:{{{volume|}}}{{{1|}}} | I = Z3oohx97zwQ | II = McNeynQIl1Q | III = uNtJiUIcN_s | IV = K5zvbQmG5zc | V = m3CZCr6WNpY | VI = Ep66eMcoaM8 | VII = _UzyTIGNYMI | VIII = RnanQlXDdAM | IX = gZmwQCidJ7Q | X = 51W1W04Rx8Y | XI = OGYBtIEKo6E | XII = bhgKpkv7XE0 | XIII = 8OLF-jwRSTY | XIV = FDkStgupIJA }}C&pg=P{{#if:{{num|{{{page|}}}{{{pageref|}}}{{{3|}}}}} | A{{{page|{{{pageref|{{{3|}}}}}}}}} | R{{R2A|{{{page|{{{pageref|{{{3|}}}}}}}}}}} }} |oclc = 6497971 |textparam = 4 |allowparams = volume,1,chaptername,subchapter,chapter,2,letter,section,pageref |propagateparams=t,translation }}<noinclude>{{documentation}}{{quotecat|en}}</noinclude> tbq6xzcot92eo95ubgoln81kx3ahhh3 Category:Rhymes:愛沙尼亞語/osʲt 14 3480328 9814648 2026-06-16T10:14:00Z TongcyBot 83009 養貓 9814648 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:愛沙尼亞語/osʲt/1音節 14 3480329 9814649 2026-06-16T10:14:09Z TongcyBot 83009 養貓 9814649 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:荷蘭語/ɔst/1音節 14 3480330 9814650 2026-06-16T10:14:18Z TongcyBot 83009 養貓 9814650 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:因特語 網際網路 14 3480331 9814651 2026-06-16T10:14:28Z TongcyBot 83009 養貓 9814651 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:因特語 網路 14 3480332 9814652 2026-06-16T10:14:37Z TongcyBot 83009 養貓 9814652 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:因特語 計算機 14 3480333 9814653 2026-06-16T10:14:45Z TongcyBot 83009 養貓 9814653 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:愛沙尼亞語 建設 14 3480334 9814654 2026-06-16T10:14:57Z TongcyBot 83009 養貓 9814654 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:愛沙尼亞語 郵政 14 3480335 9814655 2026-06-16T10:15:06Z TongcyBot 83009 養貓 9814655 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有詞源文字的世界語詞條 14 3480336 9814656 2026-06-16T10:15:20Z TongcyBot 83009 養貓 9814656 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:英語 紙張尺寸 14 3480337 9814657 2026-06-16T10:15:29Z TongcyBot 83009 養貓 9814657 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:紙張尺寸 14 3480338 9814659 2026-06-16T10:15:38Z TongcyBot 83009 養貓 9814659 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:辛布里語 郵政 14 3480339 9814660 2026-06-16T10:15:47Z TongcyBot 83009 養貓 9814660 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx -aticum 0 3480340 9814662 2026-06-16T10:25:48Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==拉丁語== ===其他形式=== * {{alt|la|-āgium||中世紀法國與英格蘭;再次借自古法語 {{m|fro|-age}}}} ===詞源=== {{etymon|la|id=構成名詞|-āticus<id:構成形容詞>}} {{m|la|-āticus|pos=構成形容詞的後綴}} 中性形式的名詞化,其前身可能是古典拉丁語 {{m|la|viāticum}}。 ===後綴=== {{la-suffix-noun|-āticum<2>}} {{tlb|la|Late Latin|EML.}} # {{non-gloss|用於構成表示與詞根動詞…」的新頁面 9814662 wikitext text/x-wiki ==拉丁語== ===其他形式=== * {{alt|la|-āgium||中世紀法國與英格蘭;再次借自古法語 {{m|fro|-age}}}} ===詞源=== {{etymon|la|id=構成名詞|-āticus<id:構成形容詞>}} {{m|la|-āticus|pos=構成形容詞的後綴}} 中性形式的名詞化,其前身可能是古典拉丁語 {{m|la|viāticum}}。 ===後綴=== {{la-suffix-noun|-āticum<2>}} {{tlb|la|Late Latin|EML.}} # {{non-gloss|用於構成表示與詞根動詞或名詞相關的名詞}} # {{non-gloss|用於構成表示由某動作導致之狀態的名詞}} #: {{m|la|missus||被送出的}} → {{m|la|missāticum||訊息}} ====變格==== {{la-ndecl|-āticum<2>}} ====派生詞彙==== {{suffixsee|la}} ====派生語彙==== {{top4}} * 巴爾幹羅曼語支: ** {{desc|rup|-atic}} ** {{desc|ro|-atic|-atec}} * 意大利-羅曼語支: ** {{desc|co|-aticu}} ** {{desc|it|-atico}} *** {{desc|lld|-atich|bor=1}} *** {{desc|rgn|-àtic|bor=1}} ** {{desc|nap|-ateco}} ** {{desc|scn|-àticu}} * 北意大利語支: ** 高盧-意大利語支: *** {{desc|egl|-adeg|-adg|-âdg}} *** {{desc|lij|-ægo|qq=早期的 {{m|lij|-aigo}}}} *** {{desc|lmo|-àdeg|-àdig|-àdi}} *** {{desc|pms|-aj}} *** {{desc|rgn|-êdg|-êdgh}} ** {{desc|fur|-adi}} ** {{desc|rm|-adi}} ** {{desc|vec|-adego|-ego}} * 高盧-羅曼語支: ** {{desc|frp|-âjo}} **: Brionnais: {{desc|frp|-âdze|nolang=1}} **: Fribourgeois: {{desc|frp|-âdzo|nolang=1}} **: Jurassien: {{desc|frp|-aidge|nolang=1}} ** {{desctree|fro|-age}} * 奧克-羅曼語支: ** {{desc|ca|-atge}} ** {{desc|oc-gas|-}} /-ˈadje/ ** {{desctree|pro|-atge|qq=以下的借詞也可能來自古法語}} *** {{desc|an|-ache|bor=1}} *** {{desc|ast|-axe|bor=1}} *** {{desc|it|-aggio|bor=1}} *** {{desc|lld|-aje|bor=1}} *** {{desc|lmo|-agg|-acc|bor=1}} *** {{desc|nap|-aggio|bor=1}} *** {{desc|pms|-age|-agi|bor=1}} *** {{desc|roa-opt|-age|bor=1}} **** {{desc|gl|-axe}} **** {{desc|pt|-agem}} *** {{desc|scn|-aggiu|-aju|bor=1}} *** {{desc|osp|-age|-aje|-atge|bor=1}} **** {{desc|es|-aje}} *** {{desc|vec|-ajo|bor=1}} * 西伊比利亞語支: ** {{desc|roa-oan|-azgo}} ** {{desc|roa-ole|-adgo|-algo}} *** {{desc|ast|-algu}} *** {{desc|roa-leo|-algu}} ** {{desc|roa-opt|-adego}} *** {{desc|gl|-ádego|-ádigo}} *** {{desc|pt|-ádego|-ádigo}} ** {{desc|osp|-adgo}} *** {{desc|es|-azgo}} * 島嶼羅曼語支: ** {{desc|sc|-adigu|-aticu}} * 借詞: ** {{desc|fr|-atique|bor=1}} ** {{desc|pt|-ático|bor=1}} ** {{desc|es|-ático|bor=1}} {{bottom}} ===參考資料=== * {{cite-book|year=1906|chapter=I nomi locali in ''-aticus'': nell' Emilia e nella Romagna|author=Tito Zanardelli|pages=1-48|title=Studi glottologici italiani|volume=3|editor=Giacomo de Gregorio|location=[[w:都靈|Torino]]|publisher=Ermanno Loescher|url=https://archive.org/details/studiglottologi00unkngoog}}。 * {{cite-journal|year=1973|title=The Latin suffix ''-aticu'' in early Old Spanish|author=David G. Patterson|pages=60-65|journal=Vox Romanica|volume=32|location=[[w:伯爾尼|Bern]]|publisher=A. Francke AG Verlag|doi=http://doi.org/10.5169/seals-25978}}。 egpv31izyz70fwv8n6l4uhkur55ugd4 Category:世界語 臀部 14 3480341 9814663 2026-06-16T10:26:09Z TongcyBot 83009 養貓 9814663 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx -aticus 0 3480342 9814664 2026-06-16T10:34:15Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==拉丁語== ===詞源=== {{etymon|la|id=構成形容詞|:af|-ātus<id:形容詞>|-icus<id:形容詞後綴>}} 源自 {{suffix|la|-ātus|t1=……的,像……的|icus|pos2=派生後綴}},出現在一些原始情況中,後來被自由擴展。不要與在各種希臘語借詞中發現的後綴 {{m|la|-aticus}}(注意短音 /a/)混淆(參見 {{m|la|aenigmaticus}}、{{m|la|grammaticus}})。 ===發音=== * {{la-IPA|-āticus}} ==…」的新頁面 9814664 wikitext text/x-wiki ==拉丁語== ===詞源=== {{etymon|la|id=構成形容詞|:af|-ātus<id:形容詞>|-icus<id:形容詞後綴>}} 源自 {{suffix|la|-ātus|t1=……的,像……的|icus|pos2=派生後綴}},出現在一些原始情況中,後來被自由擴展。不要與在各種希臘語借詞中發現的後綴 {{m|la|-aticus}}(注意短音 /a/)混淆(參見 {{m|la|aenigmaticus}}、{{m|la|grammaticus}})。 ===發音=== * {{la-IPA|-āticus}} ===後綴=== {{la-suffix-adj|-āticus}} # {{non-gloss|用於構成表示與詞根名詞或其相關動作有關係的形容詞}} #: {{suffixusex|la|umbra|gloss1=影子,陰影|umbrāticus|gloss2=在陰影中發現的}} #: {{suffixusex|la|via|gloss1=道路,小徑|viāticus|gloss2=與旅程或旅行相關的}} ====變格==== {{la-adecl|-āticus}} ====派生詞彙==== * {{l|la|-āticum}} {{suffixsee|la}} ====派生語彙==== * {{desc|ast|-algu}} * {{desc|rup|-atic}} * {{desc|gl|-ádego}} * {{desc|it|-atico}} * {{desc|pt|-ático|bor=1}} * {{desc|ro|-atec|-atic}} * {{desc|scn|-aju|-aggiu|-àticu}} * {{desc|es|-azgo}} nxphez6ythimwpela64l0hea8wq27wm Category:構成形容詞的拉丁語後綴 14 3480343 9814665 2026-06-16T10:34:24Z TongcyBot 83009 養貓 9814665 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx -atus 0 3480344 9814666 2026-06-16T10:37:13Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{also|atus|-átus}} ==拉丁語== ===詞源1=== {{etymon|la|id=形容詞|:inh|itc-pro:*-ātos<id:構成形容詞><ety:inh<ine-pro:*-eh₂tos<id:形容詞>>>}} {{inh+|la|itc-pro|*-ātos}},{{inh+|la|ine-pro|*-eh₂tos}}。為「偽分詞」,可能與 {{m|la|-tus}} 相關,儘管其他印歐語系語言中的類似構詞表明它在印歐語時期就已經與其區分開來。對照 {{m|la|-ītus}}、{{m|la|-ūtus}}。 與{{cog|sla-pro|*…」的新頁面 9814666 wikitext text/x-wiki {{also|atus|-átus}} ==拉丁語== ===詞源1=== {{etymon|la|id=形容詞|:inh|itc-pro:*-ātos<id:構成形容詞><ety:inh<ine-pro:*-eh₂tos<id:形容詞>>>}} {{inh+|la|itc-pro|*-ātos}},{{inh+|la|ine-pro|*-eh₂tos}}。為「偽分詞」,可能與 {{m|la|-tus}} 相關,儘管其他印歐語系語言中的類似構詞表明它在印歐語時期就已經與其區分開來。對照 {{m|la|-ītus}}、{{m|la|-ūtus}}。 與{{cog|sla-pro|*-atъ}}、{{cog|gem-pro|*-ōdaz}}(英語 {{m|en|-ed||有……的|id=having}})同源。 ====後綴==== {{la-suffix-adj|-ātus}} # {{senseid|la|形容詞}} 帶有……的。{{non-gloss|用於從[[名詞]]構成[[形容詞]],表示擁有某物或包含其特徵}} #: {{suffixusex|la|barba|t1=鬍鬚|-ātus|barbātus|t3=長著鬍鬚的,有鬍鬚的}} #: {{suffixusex|la|caetra|t1=一種西班牙短盾|-ātus|caetrātus|t3=配備西班牙短盾的}} #: {{suffixusex|la|toga|t1=托加長袍|-ātus|togātus|t3=穿著托加長袍的}} # {{non-gloss|用於從其他[[形容詞]](尤其是顏色名稱)構成[[形容詞]],帶有「穿著[形容詞](顏色)衣服」的含義}} #: {{suffixusex|la|albus|t1=白色的|-ātus|albātus|t3=穿白衣的}} #: {{suffixusex|la|āter|t1=黑色的|-ātus|atrātus|t3=穿黑衣的}} #: {{suffixusex|la|sordidus|t1=不潔的,骯髒的|-ātus|sordidātus|t3=穿著髒衣服的,衣衫襤褸的}} # 像……的。{{non-gloss|用於從[[名詞]]構成[[形容詞]],表示與該名詞相似或相像}} #: {{suffixusex|la|rēticulum|t1=小網|-ātus|rēticulātus|t3=網狀的,像網的}} #: {{suffixusex|la|vir|t1=男人|-ātus|virātus|t3=有男子氣概的,像男人的}} =====變格===== {{la-adecl|-ātus}} =====派生詞彙===== {{suffixsee|la|id=形容詞}} {{col|la|-āticus,-āticum}} =====相關詞彙===== {{col|la|-ātim|-ātiō}} =====派生語彙===== {{top2}} * {{desc|ast|-áu|-ada}} * {{desc|ca|-at<id:形容詞><pos:形容詞>|-ada}} * {{desc|bor=1|en|-ate<id:形容詞>|-ade}} * {{desc|lbor=1|fr|-at<id:形容詞><pos:形容詞>|-ate<qq:化學>}} * {{desc|fur|-ât|-ade}} * {{desc|gl|-ado}} * {{desc|de|-at<id:形容詞><pos:形容詞>|bor=1}} * {{desc|it|-ato<id:形容詞><pos:形容詞>}} ** {{desc|fr|-ade|qq=源自義大利語或奧克語|bor=1}} * {{desc|oc|-at}} ** {{desc|fr|-ade|qq=源自義大利語或奧克語|bor=1}} * {{desctree|fro|-é<id:形容詞>|-et<id:分詞>}} * {{desctree|roa-opt|-ado|id=形容詞}} * {{desc|ro|-at|-ată}} * {{desctree|osp|-ado|id=形容詞}} * {{desc|scn|-atu|-ata}} * {{desc|pt|-ato|bor=1}} * {{desc|es|-ato|bor=1}} {{bottom}} ===詞源2=== {{etymon|la|title=-ātus|id=抽象名詞|-tus<alt:-tus, -tūs><id:抽象名詞>}} 由第一變位動詞的 {{m|la|-tus|-tus, -tūs|id=動作名詞}} 結尾的動作名詞(如 {{m|la|mercātus}},由 {{m|la|mercor}} + {{m|la|-tus|id=動作名詞}} 構成)經過{{w|lang=en|重新括號化|rebracketing}}形成,其中 {{m|la||-ā-}} 實際上是詞幹的一部分;{{inh+|la|itc-pro|*-tus}},{{inh+|la|ine-pro|*-tus|pos=由動詞詞根派生動作名詞的後綴}}。 ====後綴==== {{head|la|後綴|cat2=noun-forming suffixes|head=-ātus|g=m}} # {{non-gloss|加在名詞或形容詞後構成名詞,表示軍銜、職位、與該軍銜或職位相關的官員群體或某種狀態}} #: {{suffixusex|la|apostolus|apostolātus|altsuf=-ātus|t2=使徒職位}} #: {{suffixusex|la|triumvir|triumvirātus|altsuf=-ātus|t2=三頭政治}} #: {{suffixusex|la|reus|reātus|altsuf=-ātus|t1=有罪的|t2=有罪的狀態}} =====變格===== {{la-ndecl|-ātus<4>}} =====派生詞彙===== {{suffixsee|la|id=抽象名詞}} =====派生語彙===== {{top2}} * {{desc|ca|-at<id:抽象名詞><pos:抽象名詞>}} * {{desc|en|-ate<id:職級或職務>|bor=1}} * {{desc|fr|-at<id:抽象名詞><pos:抽象名詞>|lbor=1}} * {{desctree|de|-at<id:抽象名詞><pos:抽象名詞>|bor=1}} * {{desc|it|-ato<id:抽象名詞><pos:抽象名詞>}} * {{desc|nb|-at|bor=1}} * {{desctree|fro|-é<id:抽象名詞><pos:抽象名詞>}} * {{desc|pt|-ado<id:抽象名詞><pos:抽象名詞>}} * {{desctree|osp|-ado<id:抽象名詞><pos:抽象名詞>}} {{bottom}} {{cln|la|異分析詞}} s3wv3ri1sq2lgnewb1jmqtn3rxuni30 9814667 9814666 2026-06-16T10:37:37Z TongcyDai 53191 9814667 wikitext text/x-wiki {{also|atus|-átus}} ==拉丁語== ===詞源1=== {{etymon|la|id=形容詞|:inh|itc-pro:*-ātos<id:構成形容詞><ety:inh<ine-pro:*-eh₂tos<id:形容詞>>>}} {{inh+|la|itc-pro|*-ātos}},{{inh+|la|ine-pro|*-eh₂tos}}。為「偽分詞」,可能與 {{m|la|-tus}} 相關,儘管其他印歐語系語言中的類似構詞表明它在印歐語時期就已經與其區分開來。對照 {{m|la|-ītus}}、{{m|la|-ūtus}}。 與{{cog|sla-pro|*-atъ}}、{{cog|gem-pro|*-ōdaz}}(英語 {{m|en|-ed||有……的|id=having}})同源。 ====後綴==== {{la-suffix-adj|-ātus}} # {{senseid|la|形容詞}} 帶有……的。{{non-gloss|用於從[[名詞]]構成[[形容詞]],表示擁有某物或包含其特徵}} #: {{suffixusex|la|barba|t1=鬍鬚|-ātus|barbātus|t3=長著鬍鬚的,有鬍鬚的}} #: {{suffixusex|la|caetra|t1=一種西班牙短盾|-ātus|caetrātus|t3=配備西班牙短盾的}} #: {{suffixusex|la|toga|t1=托加長袍|-ātus|togātus|t3=穿著托加長袍的}} # {{non-gloss|用於從其他[[形容詞]](尤其是顏色名稱)構成[[形容詞]],帶有「穿著[形容詞](顏色)衣服」的含義}} #: {{suffixusex|la|albus|t1=白色的|-ātus|albātus|t3=穿白衣的}} #: {{suffixusex|la|āter|t1=黑色的|-ātus|atrātus|t3=穿黑衣的}} #: {{suffixusex|la|sordidus|t1=不潔的,骯髒的|-ātus|sordidātus|t3=穿著髒衣服的,衣衫襤褸的}} # 像……的。{{non-gloss|用於從[[名詞]]構成[[形容詞]],表示與該名詞相似或相像}} #: {{suffixusex|la|rēticulum|t1=小網|-ātus|rēticulātus|t3=網狀的,像網的}} #: {{suffixusex|la|vir|t1=男人|-ātus|virātus|t3=有男子氣概的,像男人的}} =====變格===== {{la-adecl|-ātus}} =====派生詞彙===== {{suffixsee|la|id=形容詞}} {{col|la|-āticus,-āticum}} =====相關詞彙===== {{col|la|-ātim|-ātiō}} =====派生語彙===== {{top2}} * {{desc|ast|-áu|-ada}} * {{desc|ca|-at<id:形容詞><pos:形容詞>|-ada}} * {{desc|bor=1|en|-ate<id:形容詞>|-ade}} * {{desc|lbor=1|fr|-at<id:形容詞><pos:形容詞>|-ate<qq:化學>}} * {{desc|fur|-ât|-ade}} * {{desc|gl|-ado}} * {{desc|de|-at<id:形容詞><pos:形容詞>|bor=1}} * {{desc|it|-ato<id:形容詞><pos:形容詞>}} ** {{desc|fr|-ade|qq=源自義大利語或奧克語|bor=1}} * {{desc|oc|-at}} ** {{desc|fr|-ade|qq=源自義大利語或奧克語|bor=1}} * {{desctree|fro|-é<id:形容詞>|-et<id:分詞>}} * {{desctree|roa-opt|-ado|id=形容詞}} * {{desc|ro|-at|-ată}} * {{desctree|osp|-ado|id=形容詞}} * {{desc|scn|-atu|-ata}} * {{desc|pt|-ato|bor=1}} * {{desc|es|-ato|bor=1}} {{bottom}} ===詞源2=== {{etymon|la|title=-ātus|id=抽象名詞|-tus<alt:-tus, -tūs><id:抽象名詞>}} 由第一變位動詞的 {{m|la|-tus|-tus, -tūs|id=動作名詞}} 結尾的動作名詞(如 {{m|la|mercātus}},由 {{m|la|mercor}} + {{m|la|-tus|id=動作名詞}} 構成)經過{{w|lang=en|重新括號化|rebracketing}}形成,其中 {{m|la||-ā-}} 實際上是詞幹的一部分;{{inh+|la|itc-pro|*-tus}},{{inh+|la|ine-pro|*-tus|pos=由動詞詞根派生動作名詞的後綴}}。 ====後綴==== {{head|la|後綴|cat2=構成名詞的後綴|head=-ātus|g=m}} # {{non-gloss|加在名詞或形容詞後構成名詞,表示軍銜、職位、與該軍銜或職位相關的官員群體或某種狀態}} #: {{suffixusex|la|apostolus|apostolātus|altsuf=-ātus|t2=使徒職位}} #: {{suffixusex|la|triumvir|triumvirātus|altsuf=-ātus|t2=三頭政治}} #: {{suffixusex|la|reus|reātus|altsuf=-ātus|t1=有罪的|t2=有罪的狀態}} =====變格===== {{la-ndecl|-ātus<4>}} =====派生詞彙===== {{suffixsee|la|id=抽象名詞}} =====派生語彙===== {{top2}} * {{desc|ca|-at<id:抽象名詞><pos:抽象名詞>}} * {{desc|en|-ate<id:職級或職務>|bor=1}} * {{desc|fr|-at<id:抽象名詞><pos:抽象名詞>|lbor=1}} * {{desctree|de|-at<id:抽象名詞><pos:抽象名詞>|bor=1}} * {{desc|it|-ato<id:抽象名詞><pos:抽象名詞>}} * {{desc|nb|-at|bor=1}} * {{desctree|fro|-é<id:抽象名詞><pos:抽象名詞>}} * {{desc|pt|-ado<id:抽象名詞><pos:抽象名詞>}} * {{desctree|osp|-ado<id:抽象名詞><pos:抽象名詞>}} {{bottom}} {{cln|la|異分析詞}} f54tibojnn7ljy5un3ngst7h1ggxatp Category:拉丁語陽性後綴 14 3480345 9814672 2026-06-16T10:45:30Z TongcyBot 83009 養貓 9814672 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:拉丁語各性別後綴 14 3480346 9814673 2026-06-16T10:45:39Z TongcyBot 83009 養貓 9814673 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Reconstruction:原始印歐語/-eh₂tos 118 3480347 9814674 2026-06-16T10:51:21Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{reconstructed}} ==原始印歐語== ===詞源=== {{etymon|ine-pro|id=形容詞|:af|ine-pro:*-éh₂<id:集合名詞>|ine-pro:*-tós<id:動詞性形容詞>}} 源自 {{m|ine-pro|*-éh₂|*-eh₂}} + {{m|ine-pro|*-tós}}。 ===後綴=== {{head|ine-pro|後綴|cat2=構成形容詞的後綴}} # {{n-g|由[[名詞]][[構成]][[形容詞]],表示具有某種[[事物]]或[[品質]]}} ====屈折==== {{ine-decl-adj|-eh₂to}} ====派生語彙===…」的新頁面 9814674 wikitext text/x-wiki {{reconstructed}} ==原始印歐語== ===詞源=== {{etymon|ine-pro|id=形容詞|:af|ine-pro:*-éh₂<id:集合名詞>|ine-pro:*-tós<id:動詞性形容詞>}} 源自 {{m|ine-pro|*-éh₂|*-eh₂}} + {{m|ine-pro|*-tós}}。 ===後綴=== {{head|ine-pro|後綴|cat2=構成形容詞的後綴}} # {{n-g|由[[名詞]][[構成]][[形容詞]],表示具有某種[[事物]]或[[品質]]}} ====屈折==== {{ine-decl-adj|-eh₂to}} ====派生語彙==== * {{desc|ine-bsl-pro|*-āˀtas}} ** {{desc|sla-pro|*-atъ}} * {{desc|gem-pro|*-ōdaz}} * {{desc|itc-pro|*-ātos}} ** {{desc|la|-ātus}} 22j3il5e0fxn106bkz3wfnr0d9v6w62 Category:含有後綴*-tós的原始印歐語詞 14 3480348 9814675 2026-06-16T10:51:30Z TongcyBot 83009 養貓 9814675 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:含有後綴*-éh₂ (集合名詞)的原始印歐語詞 14 3480349 9814676 2026-06-16T10:51:39Z TongcyBot 83009 養貓 9814676 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Reconstruction:原始印歐語/-tós 118 3480350 9814677 2026-06-16T10:52:00Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{also|Reconstruction:原始印歐語/-tos}} {{reconstructed}} ==原始印歐語== {{etymon|ine-pro|id=動詞性形容詞|pos=後綴}} ===後綴=== {{head|ine-pro|後綴|cat2=構成形容詞的後綴|head=*(Ø)-tós}}<ref name="Ringe 2006">{{R:gem:PIEPG}}</ref> # {{non-gloss|由[[動詞]][[詞根]][[構成]][[動詞性形容詞]]}} ====屈折==== {{ine-decl-adj|(Ø)-tó}} ====近義詞==== * {{l|ine-pro|*-nós}} * {{l|ine-pro|*-wós}} ==…」的新頁面 9814677 wikitext text/x-wiki {{also|Reconstruction:原始印歐語/-tos}} {{reconstructed}} ==原始印歐語== {{etymon|ine-pro|id=動詞性形容詞|pos=後綴}} ===後綴=== {{head|ine-pro|後綴|cat2=構成形容詞的後綴|head=*(Ø)-tós}}<ref name="Ringe 2006">{{R:gem:PIEPG}}</ref> # {{non-gloss|由[[動詞]][[詞根]][[構成]][[動詞性形容詞]]}} ====屈折==== {{ine-decl-adj|(Ø)-tó}} ====近義詞==== * {{l|ine-pro|*-nós}} * {{l|ine-pro|*-wós}} ====派生詞彙==== {{l|ine-pro|*-eh₂tos}} {{suffixsee|ine-pro}} ====派生語彙==== * {{desc|sqj-pro|*-tāi}} ** {{desc|sq|-të}} * {{desc|ine-bsl-pro|*-tas}} ** {{desc|sla-pro|*-tъ|pos=部分[[過去被動分詞]]}} * {{desc|grk-pro|*-tós}} ** {{desc|grc|-τός}} * {{desc|gem-pro|*-daz|pos=所有[[弱]][[過去分詞]],少數[[形容詞]]|*-taz|*-þaz|*-saz|pos4=[[輔音]]後的[[同位異形]]}} * {{desc|iir-pro|*-tás}} {{see desc}} * {{desc|itc-pro|*-tos}} {{see desc}} ===參考資料=== <references/> g42ciyont1xlx3t92ozti6f2jwyqwac Reconstruction:原始意大利語/-ikos 118 3480351 9814678 2026-06-16T10:53:55Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{reconstructed}} ==原始意大利語== ===詞源=== {{etymon|itc-pro|:inh|ine-pro:*-ikos<ety:from<ine-pro:*-kos<id:形容詞>>>|id=-ic}} 源自{{der|itc-pro|ine-pro|*-kos}}。 ===後綴=== {{head|itc-pro|後綴}}<ref>{{R:la:OHCGL|page=294|passage=*-iko-}}</ref><ref>{{R:itc:Buck|1=187|passage=-iko-}}</ref> # {{n-g|構成表示「屬於或與……有關的」的形容詞}} ====變格==== {{itc-decl-adj-o+a|-ik}} ====重構說明==== 該…」的新頁面 9814678 wikitext text/x-wiki {{reconstructed}} ==原始意大利語== ===詞源=== {{etymon|itc-pro|:inh|ine-pro:*-ikos<ety:from<ine-pro:*-kos<id:形容詞>>>|id=-ic}} 源自{{der|itc-pro|ine-pro|*-kos}}。 ===後綴=== {{head|itc-pro|後綴}}<ref>{{R:la:OHCGL|page=294|passage=*-iko-}}</ref><ref>{{R:itc:Buck|1=187|passage=-iko-}}</ref> # {{n-g|構成表示「屬於或與……有關的」的形容詞}} ====變格==== {{itc-decl-adj-o+a|-ik}} ====重構說明==== 該後綴也出現在{{w|奧斯坎-溫布利亞語支}}形式中,例如{{cog|osc|toutico}} 或{{cog|xum|fratreks}}。 ====派生詞彙==== {{suffixsee|itc-pro}} ====派生語彙==== * {{desc|la|-icus}} ===參考資料=== {{reflist}} oezcurm6rylb33tdxqayyuukj38vpf9 9814679 9814678 2026-06-16T10:56:11Z TongcyDai 53191 9814679 wikitext text/x-wiki {{reconstructed}} ==原始意大利語== ===詞源=== {{etymon|itc-pro|:inh|ine-pro:*-ikos<ety:from<ine-pro:*-kos<id:形容詞>>>|id=形容詞後綴}} 源自{{der|itc-pro|ine-pro|*-kos}}。 ===後綴=== {{head|itc-pro|後綴}}<ref>{{R:la:OHCGL|page=294|passage=*-iko-}}</ref><ref>{{R:itc:Buck|1=187|passage=-iko-}}</ref> # {{n-g|構成表示「屬於或與……有關的」的形容詞}} ====變格==== {{itc-decl-adj-o+a|-ik}} ====重構說明==== 該後綴也出現在{{w|奧斯坎-溫布利亞語支}}形式中,例如{{cog|osc|toutico}} 或{{cog|xum|fratreks}}。 ====派生詞彙==== {{suffixsee|itc-pro}} ====派生語彙==== * {{desc|la|-icus}} ===參考資料=== {{reflist}} chrgic7e9v8ideqiobr1zw8o2jxq1bi Category:斯洛溫語中性後綴 14 3480352 9814684 2026-06-16T11:02:20Z TongcyBot 83009 養貓 9814684 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有詞源樹的中古法語詞條 14 3480353 9814685 2026-06-16T11:02:30Z TongcyBot 83009 養貓 9814685 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:有詞源樹的古法語詞條 14 3480354 9814686 2026-06-16T11:02:39Z TongcyBot 83009 養貓 9814686 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:構成形容詞的加泰羅尼亞語後綴 14 3480355 9814687 2026-06-16T11:02:48Z TongcyBot 83009 養貓 9814687 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:加泰羅尼亞語派生後綴 14 3480356 9814688 2026-06-16T11:02:56Z TongcyBot 83009 養貓 9814688 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Template:Fr-suffix form 10 3480357 9814689 2026-06-16T11:03:20Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「<includeonly>{{#invoke:fr-headword|show|後綴變格形}}</includeonly><!-- --><noinclude>{{documentation}}{{tcat|hw}}</noinclude>」的新頁面 9814689 wikitext text/x-wiki <includeonly>{{#invoke:fr-headword|show|後綴變格形}}</includeonly><!-- --><noinclude>{{documentation}}{{tcat|hw}}</noinclude> 3n3xsxinawfa2475jds5vy7shsqlrc0 Reconstruction:原始印歐語/-yéti 118 3480358 9814690 2026-06-16T11:05:30Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{also|Reconstruction:原始印歐語/-yeti}} {{reconstructed}} ==原始印歐語== {{etymon|ine-pro|id=不及物動詞|pos=後綴}} ===後綴=== {{head|ine-pro|後綴|cat2=構成動詞的後綴|head=*(Ø)-yéti}} # {{non-gloss|由[[詞根]][[構成]][[不及物]](且通常[[異態動詞|異態]])的[[非完成體]][[動詞]]}} ====屈折==== {{ine-conj-impf|(Ø)-yé}} ====派生詞彙==== {{suffixsee|ine-pro}} * {{l|ine-pro|*-eh₂y…」的新頁面 9814690 wikitext text/x-wiki {{also|Reconstruction:原始印歐語/-yeti}} {{reconstructed}} ==原始印歐語== {{etymon|ine-pro|id=不及物動詞|pos=後綴}} ===後綴=== {{head|ine-pro|後綴|cat2=構成動詞的後綴|head=*(Ø)-yéti}} # {{non-gloss|由[[詞根]][[構成]][[不及物]](且通常[[異態動詞|異態]])的[[非完成體]][[動詞]]}} ====屈折==== {{ine-conj-impf|(Ø)-yé}} ====派生詞彙==== {{suffixsee|ine-pro}} * {{l|ine-pro|*-eh₂yéti}} * {{l|ine-pro|*-(i)dyéti}} * {{l|ine-pro|*-oyéti}} * {{l|ine-pro|*-syéti}} ====派生語彙==== * {{desc|ine-ana-pro|*-yéti}} * {{desc|gem-pro|*-janą|alt=*-(i)janą}} (j-[[現在時]],部分1類弱變化動詞) * {{desc|grk-pro|*-yō}} ** {{desc|grc|*-ϳω}} {{see desc}} * {{desc|itc-pro|*-jō}} ** {{desc|la|-iō}} ([[Appendix:Latin third conjugation|第三變位動詞]] iō-變體) ** {{desc|la|-iō}} (部分[[Appendix:Latin fourth conjugation|第四變位動詞]]) * {{desc|iir-pro|*-yáti}} ** {{desc|inc-pro|*-yáti}} *** {{desc|sa|-यति<qq:一些第4類動詞,重音移至詞根;如 {{m|sa|गृध्य॑ति}}>}} *** {{desc|sa|-यते<qq:一些第4類異相動詞,重音移至詞根;如 {{m|sa|जाय॑ते|}}、{{m|sa|बुध्य॑ते}}>}} *** {{desc|sa|-यते॑<qq:被動動詞:如 {{m|sa|क्रि॒यते॑|t=被做}}、{{m|sa|म्रि॒यते॑|t=死|ng=異相動詞}}>}} ** {{desc|ira-pro|*-yáti}} *** {{desc|ae|-𐬌𐬌𐬈𐬌𐬙𐬌}} (例如:{{l|ae|𐬬𐬆𐬭𐬆𐬰𐬌𐬌𐬈𐬌𐬙𐬌}}) ===參見=== * {{l|ine-pro|*-yeti}} ===參考資料=== * {{R:Sihler 1995}} * {{R:gem:PIEPG}} h5rudgqmnip2lhs0g6sy5hb5bubrmsy Reconstruction:原始印歐語/weyd- 118 3480359 9814691 2026-06-16T11:05:46Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{reconstructed}} ==原始印歐語== {{etymon|ine-pro|id=看見|pos=詞根}} ===詞根=== {{ine-root|stat}}<ref name="LIV">{{R:ine:LIV|head=*u̯ei̯d-|pages=665-667}}</ref><ref>{{R:ine:Cheung2007|head=*u̯aid¹, *u̯aid²|pages=408-410}}</ref><ref name="NIL">{{R:ine:NIL|pages=717-722|head=*ṷei̯d-}}</ref><ref name=EIEC>{{R:ine:EIEC|page=337|head=*ṷei̯d-}}</ref><ref>{{R:cel:Matasovic 2009|head=*wi-n-d-o-|pages=422-423|passage=*weyd- 'se…」的新頁面 9814691 wikitext text/x-wiki {{reconstructed}} ==原始印歐語== {{etymon|ine-pro|id=看見|pos=詞根}} ===詞根=== {{ine-root|stat}}<ref name="LIV">{{R:ine:LIV|head=*u̯ei̯d-|pages=665-667}}</ref><ref>{{R:ine:Cheung2007|head=*u̯aid¹, *u̯aid²|pages=408-410}}</ref><ref name="NIL">{{R:ine:NIL|pages=717-722|head=*ṷei̯d-}}</ref><ref name=EIEC>{{R:ine:EIEC|page=337|head=*ṷei̯d-}}</ref><ref>{{R:cel:Matasovic 2009|head=*wi-n-d-o-|pages=422-423|passage=*weyd- 'see, know'}}</ref><ref>{{R:xcl:Martirosyan|*git-|page=216|passage=PIE ''*u(e)id-''}}</ref> # {{c|ine-pro|視覺}} [[看見]] ====派生詞彙==== {{rootsee}} * {{l|ine-pro||*wéyd-e-ti|pos=[[主題元音]][[詞根]][[現在時]]}}<ref name="LIV" /><ref>{{R:cel:Matasovic 2009|head=*wēd-o-|page=407}}</ref> ** {{desc|cel-pro|*weideti|t=告訴,講述}} {{see desc}} ** {{desc|gem-pro|*wlītaną|t=看見,看|unc=1}} {{qualifier|可能是受到 {{l|ine-pro|*wel-}} ~ {{l|ine-pro||*wl-|t=看}} 的污染<ref>{{R:ine:LIV|head=u̯el-|pages=675}}</ref>}} {{see desc}} *** {{desc|gem-pro|*wlaitōną|t=尋找|der=1}} {{see desc}} *** {{desc|gem-pro|*wlitiz|t=視力;外貌;臉|der=1}} {{see desc}} ** {{desc|gem-pro|*wītaną|t=將注意力集中於;責罵}} {{see desc}} ** {{desc|grk-pro|*wéidō}} *** {{desc|grc|εἴδομαι|t=被看見,出現}} * {{l|ine-pro||*wéyd-t|pos=[[無主題元音]][[詞根]][[不定過去時]]}} ** {{desc|itc-pro}} *** {{desc|la|vīdī|qq=或源自 {{m|ine-pro|*wóyde}}|unc=1}} * {{l|ine-pro||*wid-éh₁-yeti|t=看見|pos=éh₁-[[狀態動詞]]}}<ref>{{R:itc:EDL|head=videō|page=676|passage=PIE *uid-eh₁- 'to see'}}</ref> ** {{desc|itc-pro|*widēō|t=看見}} * {{l|ine-pro|*widét|*wid-é-t|pos=[[主題元音]][[詞根]][[不定過去時]]}} * {{l|ine-pro|[[*winédti|*wi-né-d-ti]] ~ *wi-n-d-énti|pos=[[鼻音]][[中綴]][[現在時]]}} * {{l|ine-pro|*wóyde|*wóyd-e}} ~ {{l|ine-pro||*wid-ḗr|t=已看見,知道|pos=[[狀態動詞]]}}<ref name="LIV" /><ref>{{R:gem:PIEPG}}</ref> * {{l|ine-pro||*woyd-éye-ti|pos=eye-[[使役動詞]]}}<ref name="LIV" /> ** {{desc|cel-pro|*woidīti}} *** {{desc|sga|foídid}} ** {{desc|gem-pro|*waitijaną}} {{see desc}} ** {{desc|iir-pro|*waydáyati}} *** {{desc|inc-pro|*waydáyati}} **** {{desc|sa|वे॒दय॑ति}} *** {{desc|ira-pro|*waydáyati}} **** 古阿維斯陀語:{{l|ae|𐬁𐬎𐬎𐬀𐬉𐬜𐬀𐬌𐬌𐬀𐬨𐬀𐬵𐬍|pos=1pl.pres.caus.}} **** Younger 阿維斯陀語:{{l|ae|𐬬𐬀𐬉𐬜𐬀𐬌𐬌𐬈𐬨𐬌|pos=1sg.pres.caus.}} * {{l|ine-pro|*wéydseti|*wéyd-se-ti|pos=[[意願動詞]]|t=想看見}}<ref name="LIV" /> * {{l|ine-pro|*weydós|*weyd-ó-s}} * {{l|ine-pro|*wéydos|*wéyd-os ~ *wéyd-es-os}} * {{l|ine-pro||*wóyd-o-s}} ** {{desc|iir-pro|*wáydas}} *** {{desc|inc-pro|*wáydas}} **** {{desc|sa|वेद॑|t=知識}} * {{l|ine-pro||*wéyd-ih₂ ~ *wid-yéh₂-s}} ** {{desc|iir-pro|*waydyáH}} *** {{desc|inc-pro|*waydyáH}} **** {{desc|sa|वे॒द्या|t=知識;藝術}} * {{l|ine-pro||*weyd-oh₂-lo-m}} ** {{desc|grk-pro|*weidōlon}} *** {{desc|grc|εἴδωλον}} * {{l|ine-pro||*wéyd-ti-s ~ *wid-téy-s}} ** {{desc|ine-bsl-pro|*waiˀstis}} *** {{desc|lv|vēsts}} *** {{desc|sla-pro|*vě̏stь}} {{see desc}} ** {{desc|iir-pro}} *** {{desc|inc-pro}} **** {{desc|sa|वित्ति॑}} * {{l|ine-pro|*wéydtōr|*wéyd-tōr}} ~ {{l|ine-pro||*wid-tr-és|t=觀看者,目擊者}} * {{l|ine-pro||*wéyd-tu-s ~ *wid-téw-s|t=看見(的行為);知識}} ** {{desc|cel-pro|*wissus}} {{see desc}} ** 意大利語族:*** {{desc|la|vīsus}} {{see desc}} * {{l|ine-pro||*n̥-wid-eh₂-}} ** {{desc|grk-pro|*əwidās}} *** {{desc|grc|Ἀ̆ῐ̈́δης}} * {{l|ine-pro||*n̥-wid-ḗs}} (<*n̥-wid-és-s) ** {{desc|grk-pro|*əwidḗs}} *** {{desc|grc|ᾰ̓ῐ̈δής}} * {{l|ine-pro||*né-wid-s}} ** {{desc|grk-pro|*néwits}} *** {{desc|grc|νῆῐς}} * {{l|ine-pro||*wid-[[Reconstruction:Proto-Indo-European/-mṓ|mṓ]]}}<ref name="NIL"/><ref>{{R:ine:Yates mon|page=249-250}}</ref> ** {{desc|grk-pro|*idmōn}} *** {{desc|grc|ῐ̓́δμων|t=知道的}} ** {{desc|iir-pro|unc=1}} *** {{desc|inc-pro}} **** {{desc|sa|वि॒द्मन्|t=知識}} * {{l|ine-pro||*wid-ri-s}} ** {{desc|grk-pro|*widris}} *** {{desc|grc|ἴδρις}} * {{l|ine-pro||*wid-ró-s}} ** {{desc|gem-pro|*witraz}} {{see desc}} * {{l|ine-pro|*widtós|*wid-tó-s|t=被看見的}} * {{l|ine-pro||*wid-yó-s}} ** {{desc|gem-pro|*witją|t=知識;理智,感覺,理解;智慧}} ** {{desc|iir-pro|*widyáH}} {{qualifier|源自 {{m|ine-pro||*wid-y-éh₂}}}} *** {{desc|inc-pro|*widyáH}} **** {{desc|sa|वि॒द्या|t=知識;科學;學問}} ; 未分類的構詞: * 阿爾巴尼亞語: ** {{desc|sq|*vidsa}} *** {{desc|sq|vizë}} * 亞美尼亞語: ** {{desc|xcl|գիւտ}} * 波羅的-斯拉夫語族:** {{desc|ine-bsl-pro|*weiˀdēˀtei}} {{qualifier|可能是二次構詞<ref name="LIV" />}} *** {{desc|ltg|veidētʹ|t=可見的}} *** {{desc|lv|viedêt}} *** {{desc|lt|veizdė́ti}} *** {{desc|sla-pro|*vìděti}} {{see desc}} ** {{desc|lt|vaizdas}} ** {{desc|prg|widdai}} * {{desc|gem-pro|*wīsǭ|t=方式;方法}} * 希臘語族: ** {{desc|grc|ᾰ̓ῐ̈́δηλος}} ** {{desc|grc|ᾰ̓είδελος|t=不可見的}} <!-- fwiw, Beekes gives -ελ-α/ο- as a Pre-Greek suffix --> * {{desc|xpg|tr=wit-}} * {{desc|ine-toc-pro|*wäwén-}}<ref>{{R:txb:Adams 2013|head=ūwe|page=75-76}}</ref> {{see desc}} * {{desc|ine-toc-pro|*wiäime}} {{qualifier|可能}}<ref>{{R:txb:Adams 2013|head=īme|page=71}}</ref> {{see desc}} ====派生語彙==== * {{desc|iir-pro|*wayd-}} ** {{desc|inc-pro|*wayd-}} *** {{desc|sa|विद्}} ** {{desc|ira-pro|*wayd-}} {{see desc}} ===參考資料=== {{reflist}} ===延伸閱讀=== * {{R:EWddS|ed=22|hw=wissen}} * {{R:ine:IEW|page=1124|head=1. ṷeid-}} 7c9x1bc6xkjqtfgyzxcpjc4yvu3mvrc Category:含有後綴-atus (形容詞)的拉丁語詞 14 3480360 9814692 2026-06-16T11:07:18Z TongcyBot 83009 養貓 9814692 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:含有後綴-icus (形容詞後綴)的拉丁語詞 14 3480361 9814693 2026-06-16T11:08:15Z TongcyBot 83009 養貓 9814693 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx